<?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>164938</bug_id>
          
          <creation_ts>2016-11-18 11:31:21 -0800</creation_ts>
          <short_desc>Remove the deprecated WebKitSubtleCrypto interface</short_desc>
          <delta_ts>2017-08-18 16:25:02 -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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=160880</see_also>
          <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>
          <dependson>164943</dependson>
    
    <dependson>164939</dependson>
    
    <dependson>169806</dependson>
          <blocked>173325</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jiewen Tan">jiewen_tan</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>ap</cc>
    
    <cc>bfulgham</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1252746</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2016-11-18 11:31:21 -0800</bug_when>
    <thetext>This is an umbrella bug for deprecating WebKitSubtleCrypto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1264310</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-01-05 18:16:03 -0800</bug_when>
    <thetext>&lt;rdar://problem/29894563&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339359</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-08-16 16:55:01 -0700</bug_when>
    <thetext>Jiewen, are you working on this? If not, I&apos;ll take it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339362</commentid>
    <comment_count>3</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-08-16 17:04:37 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #2)
&gt; Jiewen, are you working on this? If not, I&apos;ll take it.

No, I am not. Feel free to take it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1339616</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-08-17 10:38:02 -0700</bug_when>
    <thetext>(In reply to Jiewen Tan from comment #3)
&gt; (In reply to Sam Weinig from comment #2)
&gt; &gt; Jiewen, are you working on this? If not, I&apos;ll take it.
&gt; 
&gt; No, I am not. Feel free to take it.

Great.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1340233</commentid>
    <comment_count>5</comment_count>
      <attachid>318540</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-08-18 14:24:13 -0700</bug_when>
    <thetext>Created attachment 318540
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1340237</commentid>
    <comment_count>6</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-18 14:28:48 -0700</bug_when>
    <thetext>Attachment 318540 did not pass style-queue:


ERROR: /Volumes/Data/StyleQueue/WebKit/LayoutTests/platform/gtk/TestExpectations:795:  Path does not exist.  [test/expectations] [5]
ERROR: /Volumes/Data/StyleQueue/WebKit/LayoutTests/platform/gtk/TestExpectations:796:  Path does not exist.  [test/expectations] [5]
ERROR: /Volumes/Data/StyleQueue/WebKit/LayoutTests/platform/gtk/TestExpectations:797:  Path does not exist.  [test/expectations] [5]
ERROR: /Volumes/Data/StyleQueue/WebKit/LayoutTests/platform/gtk/TestExpectations:798:  Path does not exist.  [test/expectations] [5]
ERROR: /Volumes/Data/StyleQueue/WebKit/LayoutTests/platform/gtk/TestExpectations:799:  Path does not exist.  [test/expectations] [5]
ERROR: /Volumes/Data/StyleQueue/WebKit/LayoutTests/platform/gtk/TestExpectations:800:  Path does not exist.  [test/expectations] [5]
ERROR: /Volumes/Data/StyleQueue/WebKit/LayoutTests/platform/gtk/TestExpectations:801:  Path does not exist.  [test/expectations] [5]
ERROR: /Volumes/Data/StyleQueue/WebKit/LayoutTests/platform/gtk/TestExpectations:802:  Path does not exist.  [test/expectations] [5]
ERROR: /Volumes/Data/StyleQueue/WebKit/LayoutTests/platform/gtk/TestExpectations:803:  Path does not exist.  [test/expectations] [5]
ERROR: /Volumes/Data/StyleQueue/WebKit/LayoutTests/platform/gtk/TestExpectations:804:  Path does not exist.  [test/expectations] [5]
ERROR: /Volumes/Data/StyleQueue/WebKit/LayoutTests/platform/gtk/TestExpectations:805:  Path does not exist.  [test/expectations] [5]
ERROR: /Volumes/Data/StyleQueue/WebKit/LayoutTests/platform/ios-wk1/TestExpectations:1008:  Path does not exist.  [test/expectations] [5]
ERROR: /Volumes/Data/StyleQueue/WebKit/LayoutTests/platform/ios-wk1/TestExpectations:1009:  Path does not exist.  [test/expectations] [5]
ERROR: /Volumes/Data/StyleQueue/WebKit/LayoutTests/platform/ios-wk1/TestExpectations:1010:  Path does not exist.  [test/expectations] [5]
ERROR: /Volumes/Data/StyleQueue/WebKit/LayoutTests/platform/ios-wk1/TestExpectations:1011:  Path does not exist.  [test/expectations] [5]
ERROR: /Volumes/Data/StyleQueue/WebKit/LayoutTests/platform/win/TestExpectations:260:  Path does not exist.  [test/expectations] [5]
ERROR: /Volumes/Data/StyleQueue/WebKit/LayoutTests/platform/win/TestExpectations:261:  Path does not exist.  [test/expectations] [5]
ERROR: /Volumes/Data/StyleQueue/WebKit/LayoutTests/platform/win/TestExpectations:262:  Path does not exist.  [test/expectations] [5]
ERROR: /Volumes/Data/StyleQueue/WebKit/LayoutTests/platform/win/TestExpectations:263:  Path does not exist.  [test/expectations] [5]
Total errors found: 19 in 3 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>1340250</commentid>
    <comment_count>7</comment_count>
      <attachid>318545</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-08-18 14:58:50 -0700</bug_when>
    <thetext>Created attachment 318545
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1340290</commentid>
    <comment_count>8</comment_count>
      <attachid>318545</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-08-18 16:15:31 -0700</bug_when>
    <thetext>Comment on attachment 318545
Patch

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

Thank you Sam. Looks good. Please address the following comments. Just wondering if you are planning of improving the structure further after the removal of WebKitSubtle?

&gt; Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_KW.h:53
&gt;      bool keyAlgorithmMatches(const CryptoKey&amp;) const;

Maybe we should remove this as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1340292</commentid>
    <comment_count>9</comment_count>
      <attachid>318545</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-08-18 16:22:10 -0700</bug_when>
    <thetext>Comment on attachment 318545
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1340293</commentid>
    <comment_count>10</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-08-18 16:23:53 -0700</bug_when>
    <thetext>(In reply to Jiewen Tan from comment #8)
&gt; Comment on attachment 318545 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=318545&amp;action=review
&gt; 
&gt; Thank you Sam. Looks good. Please address the following comments. Just
&gt; wondering if you are planning of improving the structure further after the
&gt; removal of WebKitSubtle?

Yeah, this was the first pass. There are a few simplifications I was going to make after this lands.

&gt; 
&gt; &gt; Source/WebCore/crypto/algorithms/CryptoAlgorithmAES_KW.h:53
&gt; &gt;      bool keyAlgorithmMatches(const CryptoKey&amp;) const;
&gt; 
&gt; Maybe we should remove this as well?

If its unused, yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1340297</commentid>
    <comment_count>11</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-08-18 16:25:02 -0700</bug_when>
    <thetext>Committed r220941: &lt;http://trac.webkit.org/changeset/220941&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>318540</attachid>
            <date>2017-08-18 14:24:13 -0700</date>
            <delta_ts>2017-08-18 14:58:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164938-20170818142412.patch</filename>
            <type>text/plain</type>
            <size>511666</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMDkzMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDkxIEBACisyMDE3LTA4LTE4ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIHRoZSBkZXByZWNhdGVkIFdl
YktpdFN1YnRsZUNyeXB0byBpbnRlcmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2NDkzOAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjk4OTQ1
NjM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBD
TWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICog
RGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9u
YXJ5LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NyeXB0b0FsZ29yaXRo
bURpY3Rpb25hcnkuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NyeXB0b0tl
eVNlcmlhbGl6YXRpb25KV0suY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
Q3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSy5oOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTQ3J5cHRvT3BlcmF0aW9uRGF0YS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogYmluZGlu
Z3MvanMvSlNDcnlwdG9PcGVyYXRpb25EYXRhLmg6IFJlbW92ZWQuCisgICAgICAgICogYmluZGlu
Z3MvanMvSlNXZWJLaXRTdWJ0bGVDcnlwdG9DdXN0b20uY3BwOiBSZW1vdmVkLgorICAgICAgICAq
IGNyeXB0by9DcnlwdG9BbGdvcml0aG0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxn
b3JpdGhtOjpkZXJpdmVLZXkpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxn
b3JpdGhtOjplbmNyeXB0Rm9yV3JhcEtleSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpD
cnlwdG9BbGdvcml0aG06OmRlY3J5cHRGb3JVbndyYXBLZXkpOiBEZWxldGVkLgorICAgICAgICAq
IGNyeXB0by9DcnlwdG9BbGdvcml0aG0uaDoKKyAgICAgICAgKiBjcnlwdG8vQ3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vQ3J5
cHRvS2V5U2VyaWFsaXphdGlvbi5oOiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by9XZWJLaXRT
dWJ0bGVDcnlwdG8uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by9XZWJLaXRTdWJ0bGVD
cnlwdG8uaDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vV2ViS2l0U3VidGxlQ3J5cHRvLmlk
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1B
RVNfQ0JDLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19DQkM6Omtl
eUFsZ29yaXRobU1hdGNoZXMgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGNyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRv
QWxnb3JpdGhtQUVTX0tXOjplbmNyeXB0Rm9yV3JhcEtleSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1BRVNfS1c6OmRlY3J5cHRGb3JVbndyYXBLZXkpOiBEZWxl
dGVkLgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19LVy5o
OgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtSE1BQzo6a2V5QWxnb3JpdGhtTWF0Y2hl
cyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtSE1BQy5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bVJTQUVTX1BLQ1MxX3YxXzUuY3BwOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzUuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6a2V5QWxnb3JpdGhtTWF0Y2hlcyBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtUlNBU1NBX1BLQ1MxX3YxXzUuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1SU0FfT0FFUC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0
aG1SU0FfT0FFUDo6a2V5QWxnb3JpdGhtTWF0Y2hlcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAg
ICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVAuaDoKKyAgICAgICAg
KiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmNwcDoKKyAgICAgICAgKiBj
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmg6CisgICAgICAgICogY3J5cHRv
L2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0LmNwcDoKKyAgICAgICAgKiBjcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyMjQuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyNTYuY3BwOgorICAgICAgICAqIGNyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTI1Ni5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobVNIQTM4NC5jcHA6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0Lmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMv
Q3J5cHRvQWxnb3JpdGhtU0hBNTEyLmNwcDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1TSEE1MTIuaDoKKyAgICAgICAgKiBjcnlwdG8vZ2NyeXB0L0NyeXB0b0Fs
Z29yaXRobUFFU19DQkNHQ3J5cHQuY3BwOgorICAgICAgICAqIGNyeXB0by9nY3J5cHQvQ3J5cHRv
QWxnb3JpdGhtQUVTX0tXR0NyeXB0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29y
aXRobUFFU19LVzo6cGxhdGZvcm1FbmNyeXB0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkNyeXB0b0FsZ29yaXRobUFFU19LVzo6cGxhdGZvcm1EZWNyeXB0KTogRGVsZXRlZC4KKyAgICAg
ICAgKiBjcnlwdG8vZ2NyeXB0L0NyeXB0b0FsZ29yaXRobUhNQUNHQ3J5cHQuY3BwOgorICAgICAg
ICAqIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNUdDcnlwdC5j
cHA6CisgICAgICAgICogY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFf
djFfNUdDcnlwdC5jcHA6CisgICAgICAgICogY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1S
U0FfT0FFUEdDcnlwdC5jcHA6CisgICAgICAgICogY3J5cHRvL2tleXMvQ3J5cHRvS2V5U2VyaWFs
aXphdGlvblJhdy5jcHA6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL2tleXMvQ3J5cHRvS2V5
U2VyaWFsaXphdGlvblJhdy5oOiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by9tYWMvQ3J5cHRv
QWxnb3JpdGhtQUVTX0NCQ01hYy5jcHA6CisgICAgICAgICogY3J5cHRvL21hYy9DcnlwdG9BbGdv
cml0aG1BRVNfS1dNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtQUVT
X0tXOjpwbGF0Zm9ybUVuY3J5cHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRv
QWxnb3JpdGhtQUVTX0tXOjpwbGF0Zm9ybURlY3J5cHQpOiBEZWxldGVkLgorICAgICAgICAqIGNy
eXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtSE1BQ01hYy5jcHA6CisgICAgICAgICogY3J5cHRvL21h
Yy9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81TWFjLmNwcDoKKyAgICAgICAgKiBjcnlw
dG8vbWFjL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81TWFjLmNwcDoKKyAgICAgICAg
KiBjcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQTWFjLmNwcDoKKyAgICAgICAgKiBj
cnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkLmg6
IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtQWVz
S2V5R2VuUGFyYW1zRGVwcmVjYXRlZC5oOiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by9wYXJh
bWV0ZXJzL0NyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXNEZXByZWNhdGVkLmg6IFJlbW92ZWQu
CisgICAgICAgICogY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0Rl
cHJlY2F0ZWQuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9B
bGdvcml0aG1Sc2FLZXlHZW5QYXJhbXNEZXByZWNhdGVkLmg6IFJlbW92ZWQuCisgICAgICAgICog
Y3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hEZXBy
ZWNhdGVkLmg6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxn
b3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlw
dG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNEZXByZWNhdGVkLmg6IFJl
bW92ZWQuCisgICAgICAgICogZmVhdHVyZXMuanNvbjoKKyAgICAgICAgKiBwYWdlL0NyeXB0by5j
cHA6CisgICAgICAgICogcGFnZS9DcnlwdG8uaDoKKyAgICAgICAgKiBwYWdlL0NyeXB0by5pZGw6
CisKIDIwMTctMDgtMTggIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFtXaW5dIGFjY2Vzc2liaWxpdHkvaGVhZGluZy1jcmFzaC1hZnRlci1oaWRkZW4uaHRt
bCBpcyBhIGZsYWt5IGNyYXNoLgpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDIy
MDkxOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0zNzEsNyArMzcxLDYgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMKICAgICBjcnlw
dG8vSnNvbldlYktleS5pZGwKICAgICBjcnlwdG8vUnNhT3RoZXJQcmltZXNJbmZvLmlkbAogICAg
IGNyeXB0by9TdWJ0bGVDcnlwdG8uaWRsCi0gICAgY3J5cHRvL1dlYktpdFN1YnRsZUNyeXB0by5p
ZGwKIAogICAgIGNyeXB0by9rZXlzL0NyeXB0b0Flc0tleUFsZ29yaXRobS5pZGwKICAgICBjcnlw
dG8va2V5cy9DcnlwdG9FY0tleUFsZ29yaXRobS5pZGwKQEAgLTExODUsOSArMTE4NCw2IEBAIHNl
dChXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy9qcy9KU0RlcHJlY2F0ZWRDU1NPTVZhbHVl
Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTQ2FsbGJhY2tEYXRhLmNwcAogICAgIGJpbmRp
bmdzL2pzL0pTQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQ3VzdG9tLmNwcAotICAgIGJpbmRpbmdz
L2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHAKLSAgICBiaW5kaW5ncy9qcy9KU0Ny
eXB0b0tleVNlcmlhbGl6YXRpb25KV0suY3BwCi0gICAgYmluZGluZ3MvanMvSlNDcnlwdG9PcGVy
YXRpb25EYXRhLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5j
cHAKICAgICBiaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRSZWdpc3RyeUN1c3RvbS5jcHAKICAg
ICBiaW5kaW5ncy9qcy9KU0N1c3RvbUV2ZW50Q3VzdG9tLmNwcApAQCAtMTI1Nyw3ICsxMjUzLDYg
QEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL2pzL0pTV2ViR0xSZW5kZXJpbmdD
b250ZXh0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTV2ViR1BVUmVuZGVyUGFzc0F0dGFj
aG1lbnREZXNjcmlwdG9yQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTV2ViR1BVUmVuZGVy
aW5nQ29udGV4dEN1c3RvbS5jcHAKLSAgICBiaW5kaW5ncy9qcy9KU1dlYktpdFN1YnRsZUNyeXB0
b0N1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQmFzZS5jcHAK
ICAgICBiaW5kaW5ncy9qcy9KU1dvcmtlckdsb2JhbFNjb3BlQ3VzdG9tLmNwcAogICAgIGJpbmRp
bmdzL2pzL0pTWE1MRG9jdW1lbnRDdXN0b20uY3BwCkBAIC0xMzE2LDcgKzEzMTEsNiBAQCBzZXQo
V2ViQ29yZV9TT1VSQ0VTCiAgICAgY3J5cHRvL0NyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcAog
ICAgIGNyeXB0by9DcnlwdG9LZXkuY3BwCiAgICAgY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAKLSAg
ICBjcnlwdG8vV2ViS2l0U3VidGxlQ3J5cHRvLmNwcAogCiAgICAgY3J5cHRvL2FsZ29yaXRobXMv
Q3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5jcHAKICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1BRVNfQ0ZCLmNwcApAQCAtMTM0NSw3ICsxMzM5LDYgQEAgc2V0KFdlYkNvcmVfU09V
UkNFUwogICAgIGNyeXB0by9rZXlzL0NyeXB0b0tleUhNQUMuY3BwCiAgICAgY3J5cHRvL2tleXMv
Q3J5cHRvS2V5UlNBLmNwcAogICAgIGNyeXB0by9rZXlzL0NyeXB0b0tleVJhdy5jcHAKLSAgICBj
cnlwdG8va2V5cy9DcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3LmNwcAogCiAgICAgY3NzL0Jhc2lj
U2hhcGVGdW5jdGlvbnMuY3BwCiAgICAgY3NzL0NTU0FzcGVjdFJhdGlvVmFsdWUuY3BwCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCShyZXZpc2lvbiAyMjA5MTkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYyMyw3ICs2MjMs
NiBAQAogI2luY2x1ZGUgIkpTV2ViS2l0TmFtZWRGbG93LmNwcCIKICNpbmNsdWRlICJKU1dlYktp
dFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQuY3BwIgogI2luY2x1ZGUgIkpTV2ViS2l0
UG9pbnQuY3BwIgotI2luY2x1ZGUgIkpTV2ViS2l0U3VidGxlQ3J5cHRvLmNwcCIKICNpbmNsdWRl
ICJKU1dlYktpdFRyYW5zaXRpb25FdmVudC5jcHAiCiAjaW5jbHVkZSAiSlNXZWJTb2NrZXQuY3Bw
IgogI2luY2x1ZGUgIkpTV2hlZWxFdmVudC5jcHAiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UJKHJldmlzaW9uIDIyMDkxOSkKKysrIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTMwNiw3ICszMDYsNiBAQCBKU19CSU5ESU5HX0lE
TFMgPSBcCiAgICAgJChXZWJDb3JlKS9jcnlwdG8vSnNvbldlYktleS5pZGwgXAogICAgICQoV2Vi
Q29yZSkvY3J5cHRvL1JzYU90aGVyUHJpbWVzSW5mby5pZGwgXAogICAgICQoV2ViQ29yZSkvY3J5
cHRvL1N1YnRsZUNyeXB0by5pZGwgXAotICAgICQoV2ViQ29yZSkvY3J5cHRvL1dlYktpdFN1YnRs
ZUNyeXB0by5pZGwgXAogICAgICQoV2ViQ29yZSkvY3J5cHRvL2tleXMvQ3J5cHRvQWVzS2V5QWxn
b3JpdGhtLmlkbCBcCiAgICAgJChXZWJDb3JlKS9jcnlwdG8va2V5cy9DcnlwdG9FY0tleUFsZ29y
aXRobS5pZGwgXAogICAgICQoV2ViQ29yZSkvY3J5cHRvL2tleXMvQ3J5cHRvSG1hY0tleUFsZ29y
aXRobS5pZGwgXApJbmRleDogU291cmNlL1dlYkNvcmUvZmVhdHVyZXMuanNvbgo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9mZWF0dXJlcy5qc29uCShyZXZpc2lvbiAyMjA5MTkpCisrKyBT
b3VyY2UvV2ViQ29yZS9mZWF0dXJlcy5qc29uCSh3b3JraW5nIGNvcHkpCkBAIC01ODksNyArNTg5
LDYgQEAKICAgICAgICAgImtleXdvcmRzIjogWyJ3ZWJjcnlwdG8iLCAid2ViIGNyeXB0b2dyYXBo
eSBhcGkiLCAiY3J5cHRvIl0sCiAgICAgICAgICJjYXRlZ29yeSI6ICJ3ZWJhcHBzIiwKICAgICAg
ICAgImRlc2NyaXB0aW9uIjogIkEgSmF2YVNjcmlwdCBBUEkgZm9yIHdlYiBhcHBsaWNhdGlvbnMg
dG8gcGVyZm9ybSBjcnlwdG9ncmFwaGljIG9wZXJhdGlvbnMuIiwKLSAgICAgICAgImNvbW1lbnQi
OiAiVGhlIHByZWZpeGVkIOKAmHdlYmtpdFN1YnRsZeKAmSBhdHRyaWJ1dGUgd2hpY2ggZ2F2ZSBh
Y2Nlc3MgdG8gdGhlIFN1YnRsZUNyeXB0byBBUEkgaXMgbm93IGRlcHJlY2F0ZWQgaW4gcHJlZmVy
ZW5jZSB0byB0aGUgb2ZmaWNpYWwg4oCcc3VidGxl4oCdIHByb3BlcnR5LiIsCiAgICAgICAgICJj
b250YWN0IjogewogICAgICAgICAgICAgIm5hbWUiOiAiSmlld2VuIFRhbiIsCiAgICAgICAgICAg
ICAiZW1haWwiOiAiamlld2VuX3RhbkBhcHBsZS5jb20iCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMjA5MTkp
CisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdv
cmtpbmcgY29weSkKQEAgLTI1NDIsMTEgKzI1NDIsNiBAQAogCQk1NzA2QTY5NjFEREU1Qzk1MDBB
MDNCMTQgLyogQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcwNkE2OTUxRERFNUM5NTAwQTAzQjE0IC8q
IENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXMuaCAqLzsgfTsKIAkJNTcwNkE2OTgxRERFNUU0
NjAwQTAzQjE0IC8qIEpTUnNhT2FlcFBhcmFtcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTcwNkE2OTcxRERFNUU0NjAwQTAzQjE0IC8qIEpTUnNhT2Fl
cFBhcmFtcy5oICovOyB9OwogCQk1NzA2QTY5QTFEREU1RTg1MDBBMDNCMTQgLyogSlNSc2FPYWVw
UGFyYW1zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDU3MDZBNjk5MURERTVFODUwMEEwM0IxNCAvKiBKU1JzYU9hZXBQYXJhbXMuY3BwICovOyB9Owot
CQk1NzA5RThDRDFENDEzRDQ3MDAzMjQ0QUMgLyogV2ViS2l0U3VidGxlQ3J5cHRvLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MDlFOENBMUQ0MTND
RTMwMDMyNDRBQyAvKiBXZWJLaXRTdWJ0bGVDcnlwdG8uY3BwICovOyB9OwotCQk1NzA5RThDRTFE
NDEzRDVCMDAzMjQ0QUMgLyogSlNXZWJLaXRTdWJ0bGVDcnlwdG9DdXN0b20uY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRjhGNjYxODA3NDYwODAw
MTMyNjc0IC8qIEpTV2ViS2l0U3VidGxlQ3J5cHRvQ3VzdG9tLmNwcCAqLzsgfTsKLQkJNTcwOUU4
Q0YxRDQxM0Q5QTAwMzI0NEFDIC8qIFdlYktpdFN1YnRsZUNyeXB0by5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcwOUU4Q0IxRDQxM0NFMzAwMzI0NEFD
IC8qIFdlYktpdFN1YnRsZUNyeXB0by5oICovOyB9OwotCQk1NzBBOTlEQTFENDE3NDA4MDA0RUM2
MzAgLyogSlNXZWJLaXRTdWJ0bGVDcnlwdG8uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRjhGNjIxODA3NDVEODAwMTMyNjc0IC8qIEpTV2ViS2l0
U3VidGxlQ3J5cHRvLmNwcCAqLzsgfTsKLQkJNTcwQTk5REIxRDQxQTJGMzAwNEVDNjMwIC8qIEpT
V2ViS2l0U3VidGxlQ3J5cHRvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMUZGOEY2MzE4MDc0NUQ4MDAxMzI2NzQgLyogSlNXZWJLaXRTdWJ0bGVDcnlw
dG8uaCAqLzsgfTsKIAkJNTcxMjUyNjkxRTUyNEVCMTAwOEZGMzY5IC8qIENyeXB0b0FsZ29yaXRo
bUFFU19DRkIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDU3MTI1MjY4MUU1MjRFQjEwMDhGRjM2OSAvKiBDcnlwdG9BbGdvcml0aG1BRVNfQ0ZCLmggKi87
IH07CiAJCTU3MUYyMTg5MURBNTdDNTQwMDVDOUVGRCAvKiBKU1N1YnRsZUNyeXB0by5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcxRjIxODgxREE1N0M1
NDAwNUM5RUZEIC8qIEpTU3VidGxlQ3J5cHRvLmggKi87IH07CiAJCTU3MUYyMThCMURBNTdDN0Iw
MDVDOUVGRCAvKiBKU1N1YnRsZUNyeXB0by5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1NzFGMjE4QTFEQTU3QzdBMDA1QzlFRkQgLyogSlNTdWJ0bGVD
cnlwdG8uY3BwICovOyB9OwpAQCAtNjQ4OSwxOSArNjQ4NCwxMSBAQAogCQlFMTI1RjgzNTE4MjJG
MThBMDBEODRDRDkgLyogQ3J5cHRvS2V5SE1BQy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTI1RjgzMzE4MjJGMThBMDBEODRDRDkgLyogQ3J5cHRv
S2V5SE1BQy5jcHAgKi87IH07CiAJCUUxMjVGODM2MTgyMkYxOEEwMEQ4NENEOSAvKiBDcnlwdG9L
ZXlITUFDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MTI1RjgzNDE4MjJGMThBMDBEODRDRDkgLyogQ3J5cHRvS2V5SE1BQy5oICovOyB9OwogCQlFMTI1
RjgzODE4MjJGMUVCMDBEODRDRDkgLyogQ3J5cHRvQWxnb3JpdGhtSE1BQ01hYy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTI1RjgzNzE4MjJGMUVC
MDBEODRDRDkgLyogQ3J5cHRvQWxnb3JpdGhtSE1BQ01hYy5jcHAgKi87IH07Ci0JCUUxMjVGODNB
MTgyNDEwNDgwMEQ4NENEOSAvKiBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVk
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTI1Rjgz
OTE4MjQxMDQ4MDBEODRDRDkgLyogQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zRGVwcmVjYXRl
ZC5oICovOyB9OwotCQlFMTI1RjgzRDE4MjQxMUU3MDBEODRDRDkgLyogSlNDcnlwdG9PcGVyYXRp
b25EYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxMjVGODNCMTgyNDExRTcwMEQ4NENEOSAvKiBKU0NyeXB0b09wZXJhdGlvbkRhdGEuY3BwICov
OyB9OwotCQlFMTI1RjgzRTE4MjQxMUU3MDBEODRDRDkgLyogSlNDcnlwdG9PcGVyYXRpb25EYXRh
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTI1Rjgz
QzE4MjQxMUU3MDBEODRDRDkgLyogSlNDcnlwdG9PcGVyYXRpb25EYXRhLmggKi87IH07CiAJCUUx
MjVGODQxMTgyNDI1M0EwMEQ4NENEOSAvKiBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMjVGODNGMTgyNDI1
M0EwMEQ4NENEOSAvKiBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmNwcCAqLzsgfTsKIAkJRTEyNUY4
NDIxODI0MjUzQTAwRDg0Q0Q5IC8qIENyeXB0b0FsZ29yaXRobUFFU19DQkMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMjVGODQwMTgyNDI1M0EwMEQ4
NENEOSAvKiBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmggKi87IH07CiAJCUUxMjVGODQ1MTgyNDI1
QzkwMEQ4NENEOSAvKiBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDTWFjLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMjVGODQzMTgyNDI1QzkwMEQ4NENE
OSAvKiBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDTWFjLmNwcCAqLzsgfTsKIAkJRTEyNUY4NEQxODI0
Mjg5RDAwRDg0Q0Q5IC8qIENyeXB0b0tleUFFUy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTI1Rjg0QjE4MjQyODlEMDBEODRDRDkgLyogQ3J5cHRv
S2V5QUVTLmNwcCAqLzsgfTsKIAkJRTEyNUY4NEUxODI0Mjg5RDAwRDg0Q0Q5IC8qIENyeXB0b0tl
eUFFUy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEy
NUY4NEMxODI0Mjg5RDAwRDg0Q0Q5IC8qIENyeXB0b0tleUFFUy5oICovOyB9OwotCQlFMTI1Rjg1
MTE4MjgzQTU2MDBEODRDRDkgLyogSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMjVGODRGMTgyODNB
NTYwMEQ4NENEOSAvKiBKU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0suY3BwICovOyB9OwotCQlF
MTI1Rjg1MjE4MjgzQTU2MDBEODRDRDkgLyogSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTI1Rjg1MDE4
MjgzQTU2MDBEODRDRDkgLyogSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLLmggKi87IH07Ci0J
CUUxMjVGODU2MTgyQzBGODMwMEQ4NENEOSAvKiBDcnlwdG9LZXlTZXJpYWxpemF0aW9uLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTI1Rjg1NTE4MkMw
RjgzMDBEODRDRDkgLyogQ3J5cHRvS2V5U2VyaWFsaXphdGlvbi5oICovOyB9OwotCQlFMTI1Rjg1
OTE4MkMxQUE2MDBEODRDRDkgLyogQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTI1Rjg1NzE4MkMxQUE2
MDBEODRDRDkgLyogQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdy5jcHAgKi87IH07Ci0JCUUxMjVG
ODVBMTgyQzFBQTYwMEQ4NENEOSAvKiBDcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTI1Rjg1ODE4MkMxQUE2
MDBEODRDRDkgLyogQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdy5oICovOyB9OwogCQlFMTI1Rjg1
RTE4MkMyREY2MDBEODRDRDkgLyogQ3J5cHRvS2V5RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEyNUY4NUQxODJDMkRGNjAwRDg0Q0Q5IC8qIENy
eXB0b0tleURhdGEuaCAqLzsgfTsKIAkJRTEyNUY4NjMxODJDMzAzQTAwRDg0Q0Q5IC8qIENyeXB0
b0tleURhdGFPY3RldFNlcXVlbmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUxMjVGODYxMTgyQzMwM0EwMEQ4NENEOSAvKiBDcnlwdG9LZXlEYXRh
T2N0ZXRTZXF1ZW5jZS5jcHAgKi87IH07CiAJCUUxMjVGODY0MTgyQzMwM0EwMEQ4NENEOSAvKiBD
cnlwdG9LZXlEYXRhT2N0ZXRTZXF1ZW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTEyNUY4NjIxODJDMzAzQTAwRDg0Q0Q5IC8qIENyeXB0b0tleURh
dGFPY3RldFNlcXVlbmNlLmggKi87IH07CkBAIC02NTgzLDkgKzY1NzAsNyBAQAogCQlFMTlBQzNG
MzE4MjREQzc5MDAzNDk0MjYgLyogQ3J5cHRvQWxnb3JpdGhtU0hBMzg0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTlBQzNFQjE4MjREQzc5MDAzNDk0
MjYgLyogQ3J5cHRvQWxnb3JpdGhtU0hBMzg0LmggKi87IH07CiAJCUUxOUFDM0Y0MTgyNERDNzkw
MDM0OTQyNiAvKiBDcnlwdG9BbGdvcml0aG1TSEE1MTIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE5QUMzRUMxODI0REM3OTAwMzQ5NDI2IC8qIENy
eXB0b0FsZ29yaXRobVNIQTUxMi5jcHAgKi87IH07CiAJCUUxOUFDM0Y1MTgyNERDNzkwMDM0OTQy
NiAvKiBDcnlwdG9BbGdvcml0aG1TSEE1MTIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUxOUFDM0VEMTgyNERDNzkwMDM0OTQyNiAvKiBDcnlwdG9BbGdv
cml0aG1TSEE1MTIuaCAqLzsgfTsKLQkJRTE5QUMzRjcxODI0RTVEMTAwMzQ5NDI2IC8qIENyeXB0
b0FsZ29yaXRobUFlc0tleUdlblBhcmFtc0RlcHJlY2F0ZWQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxOUFDM0Y2MTgyNEU1RDEwMDM0OTQyNiAvKiBD
cnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXNEZXByZWNhdGVkLmggKi87IH07CiAJCUUxOUFD
M0Y5MTgyNTY2RjcwMDM0OTQyNiAvKiBDcnlwdG9LZXlNYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE5QUMzRjgxODI1NjZGNzAwMzQ5NDI2IC8q
IENyeXB0b0tleU1hYy5jcHAgKi87IH07Ci0JCUUxOURBMjlDMTgxODlBREQwMDA4OEJDOCAvKiBD
cnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zRGVwcmVjYXRlZC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE5REEyOUIxODE4OUFERDAwMDg4QkM4IC8q
IENyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXNEZXByZWNhdGVkLmggKi87IH07CiAJCUUxQTE0
NzA4MTExMDJCMTUwMEVFQzBGMyAvKiBDb250YWluZXJOb2RlQWxnb3JpdGhtcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFBMTQ3MDcxMTEwMkIxNTAw
RUVDMEYzIC8qIENvbnRhaW5lck5vZGVBbGdvcml0aG1zLmggKi87IH07CiAJCUUxQTMxNjJEMTM0
QkMzMkQwMDdDOUE0RiAvKiBXZWJOU0F0dHJpYnV0ZWRTdHJpbmdFeHRyYXMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQTMxNjJCMTM0QkMzMkQwMDdD
OUE0RiAvKiBXZWJOU0F0dHJpYnV0ZWRTdHJpbmdFeHRyYXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMUEzMTYyRTEzNEJDMzJEMDA3QzlBNEYg
LyogV2ViTlNBdHRyaWJ1dGVkU3RyaW5nRXh0cmFzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFBMzE2MkMxMzRCQzMyRDAwN0M5QTRGIC8qIFdlYk5T
QXR0cmlidXRlZFN0cmluZ0V4dHJhcy5tbSAqLzsgfTsKQEAgLTY2MTIsMTIgKzY1OTcsOSBAQAog
CQlFMUJCODRBRDE4MjJDQTc0MDA1MjUwNDMgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnlNYWMu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFCQjg0
QUMxODIyQ0E3NDAwNTI1MDQzIC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5TWFjLmNwcCAqLzsg
fTsKIAkJRTFCRDMzMTkxODJEOERERDAwQzA1RDlGIC8qIENyeXB0b0FsZ29yaXRobVJTQVNTQV9Q
S0NTMV92MV81LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEUxQkQzMzE3MTgyRDhEREQwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtD
UzFfdjFfNS5jcHAgKi87IH07CiAJCUUxQkQzMzFBMTgyRDhEREQwMEMwNUQ5RiAvKiBDcnlwdG9B
bGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTFCRDMzMTgxODJEOERERDAwQzA1RDlGIC8qIENyeXB0b0FsZ29y
aXRobVJTQVNTQV9QS0NTMV92MV81LmggKi87IH07Ci0JCUUxQkQzMzFDMTgyRDhFRTkwMEMwNUQ5
RiAvKiBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNEZXByZWNhdGVkLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUJEMzMxQjE4MkQ4RUU5MDBDMDVE
OUYgLyogQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZC5oICovOyB9OwotCQlF
MUJEMzMxRTE4MkQ4RjQyMDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1z
RGVwcmVjYXRlZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTFCRDMzMUQxODJEOEY0MjAwQzA1RDlGIC8qIENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBh
cmFtc0RlcHJlY2F0ZWQuaCAqLzsgfTsKIAkJRTFCRTUxMkQwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhT
TFRVbmljb2RlU29ydC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMUJFNTEyQjBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmNwcCAq
LzsgfTsKIAkJRTFCRTUxMkUwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFCRTUxMkMwQ0Y2
QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5oICovOyB9OwogCQlFMUMyNjZEODE4MzE3
QUI0MDAzRjhCMzMgLyogQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzVNYWMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDMjY2RDYxODMx
N0FCNDAwM0Y4QjMzIC8qIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81TWFjLmNwcCAq
LzsgfTsKLQkJRTFDMjY2REIxODMxOTkzNTAwM0Y4QjMzIC8qIENyeXB0b0FsZ29yaXRobVJzYUtl
eVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTFDMjY2REExODMxOTkzNTAwM0Y4QjMzIC8qIENyeXB0b0FsZ29y
aXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZC5oICovOyB9OwogCQlFMUMyNjZERTE4
MzE5RjMxMDAzRjhCMzMgLyogQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDMjY2REMxODMxOUYzMTAw
M0Y4QjMzIC8qIENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzLmNwcCAqLzsgfTsKIAkJRTFDMjY2
REYxODMxOUYzMTAwM0Y4QjMzIC8qIENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUMyNjZERDE4MzE5RjMx
MDAzRjhCMzMgLyogQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMuaCAqLzsgfTsKIAkJRTFDMzYy
RUYwRUFGMkFBOTAwNzQxMEJDIC8qIEpTV29ya2VyTG9jYXRpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQzM2MkVEMEVBRjJBQTkwMDc0MTBCQyAv
KiBKU1dvcmtlckxvY2F0aW9uLmggKi87IH07CkBAIC02NjMyLDExICs2NjE0LDcgQEAKIAkJRTFD
NDE2MTcwRjY1NjMxODAwOTJEMkZCIC8qIENyb3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUM0MTYxNjBGNjU2
MzE4MDA5MkQyRkIgLyogQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmNwcCAqLzsgfTsKIAkJRTFD
NERFNjkwRUE3NUMxRTAwMjNDQ0Q2IC8qIEFjdGl2ZURPTU9iamVjdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDNERFNjgwRUE3NUMxRTAwMjNDQ0Q2
IC8qIEFjdGl2ZURPTU9iamVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUUxQzRERTZFMEVBNzVDNjUwMDIzQ0NENiAvKiBBY3RpdmVET01PYmpl
Y3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFD
NERFNkQwRUE3NUM2NTAwMjNDQ0Q2IC8qIEFjdGl2ZURPTU9iamVjdC5jcHAgKi87IH07Ci0JCUUx
QzY1NzEyMTgxNUY5REQwMDI1NkNERCAvKiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDNjU3MTAx
ODE1RjlERDAwMjU2Q0REIC8qIEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHAgKi87IH07
Ci0JCUUxQzY1NzEzMTgxNUY5REQwMDI1NkNERCAvKiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25h
cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQzY1
NzExMTgxNUY5REQwMDI1NkNERCAvKiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuaCAqLzsg
fTsKLQkJRTFDNjU3MUYxODE2RTUwMzAwMjU2Q0REIC8qIENyeXB0b0FsZ29yaXRobUhtYWNQYXJh
bXNEZXByZWNhdGVkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMUM2NTcxRTE4MTZFNTAzMDAyNTZDREQgLyogQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFt
c0RlcHJlY2F0ZWQuaCAqLzsgfTsKIAkJRTFDNjU3MjUxODE2RTY5RDAwMjU2Q0REIC8qIENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUxQzY1NzI0MTgxNkU2OUQwMDI1NkNERCAvKiBDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyLmggKi87IH07Ci0JCUUxQzY1NzI3MTgxNkY5RkUwMDI1NkNERCAvKiBDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDNjU3MjYxODE2RjlGRTAwMjU2Q0REIC8qIENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkLmggKi87IH07CiAJCUUxQzhCRTVEMEU4QkQxNUEw
MDY0Q0I3RCAvKiBKU1dvcmtlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMUM4QkU1QzBFOEJEMTVBMDA2NENCN0QgLyogSlNXb3JrZXIuY3BwICov
OyB9OwogCQlFMUM5NEFGOTE5MTMwM0YwMDBENUE4OTMgLyogQmxvYlBhcnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQzk0QUY3MTkxMzAzRjAwMEQ1
QTg5MyAvKiBCbG9iUGFydC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUUxQ0FBNUM2MEU4QkQyMzYwMEE3M0VDQSAvKiBKU1dvcmtlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDQUE1QzUwRThCRDIz
NjAwQTczRUNBIC8qIEpTV29ya2VyLmggKi87IH07CkBAIC02NjYwLDcgKzY2MzgsNiBAQAogCQlF
MUZFMTM3MDE4M0ZFQ0YwMDA4OTJGMTMgLyogQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVBNYWMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRTEzNkUx
ODNGRUNGMDAwODkyRjEzIC8qIENyeXB0b0FsZ29yaXRobVJTQV9PQUVQTWFjLmNwcCAqLzsgfTsK
IAkJRTFGRTEzNzQxODQwMkE2NzAwODkyRjEzIC8qIENvbW1vbkNyeXB0b1V0aWxpdGllcy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZFMTM3MjE4
NDAyQTY3MDA4OTJGMTMgLyogQ29tbW9uQ3J5cHRvVXRpbGl0aWVzLmNwcCAqLzsgfTsKIAkJRTFG
RTEzNzUxODQwMkE2NzAwODkyRjEzIC8qIENvbW1vbkNyeXB0b1V0aWxpdGllcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRTEzNzMxODQwMkE2NzAw
ODkyRjEzIC8qIENvbW1vbkNyeXB0b1V0aWxpdGllcy5oICovOyB9OwotCQlFMUZFMTM3NzE4NEQx
RTMzMDA4OTJGMTMgLyogQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkUxMzc2MTg0
RDFFMzMwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVjYXRlZC5o
ICovOyB9OwogCQlFMUZFMTM3QTE4NEQyMUJCMDA4OTJGMTMgLyogQ3J5cHRvQWxnb3JpdGhtQUVT
X0tXLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
RkUxMzc4MTg0RDIxQkIwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1BRVNfS1cuY3BwICovOyB9
OwogCQlFMUZFMTM3QjE4NEQyMUJCMDA4OTJGMTMgLyogQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZFMTM3OTE4
NEQyMUJCMDA4OTJGMTMgLyogQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmggKi87IH07CiAJCUUxRkUx
MzdFMTg0RDI3MDIwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1BRVNfS1dNYWMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRTEzN0MxODREMjcw
MjAwODkyRjEzIC8qIENyeXB0b0FsZ29yaXRobUFFU19LV01hYy5jcHAgKi87IH07CkBAIC0xMDMx
Miw5ICsxMDI4OSw2IEBACiAJCTU3MDZBNjk1MURERTVDOTUwMEEwM0IxNCAvKiBDcnlwdG9BbGdv
cml0aG1Sc2FPYWVwUGFyYW1zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENy
eXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTcwNkE2OTcxRERFNUU0NjAwQTAzQjE0IC8qIEpTUnNhT2FlcFBhcmFtcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1JzYU9hZXBQYXJhbXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTcwNkE2OTkxRERFNUU4NTAwQTAzQjE0IC8qIEpTUnNhT2FlcFBh
cmFtcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1JzYU9hZXBQ
YXJhbXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NzA5RThDQTFENDEzQ0Uz
MDAzMjQ0QUMgLyogV2ViS2l0U3VidGxlQ3J5cHRvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYktpdFN1YnRsZUNyeXB0by5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTU3MDlFOENCMUQ0MTNDRTMwMDMyNDRBQyAvKiBXZWJLaXRTdWJ0bGVDcnlw
dG8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0U3VidGxlQ3J5cHRv
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU3MDlFOENDMUQ0MTNDRTMwMDMyNDRB
QyAvKiBXZWJLaXRTdWJ0bGVDcnlwdG8uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYktp
dFN1YnRsZUNyeXB0by5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MTI1MjY4
MUU1MjRFQjEwMDhGRjM2OSAvKiBDcnlwdG9BbGdvcml0aG1BRVNfQ0ZCLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobUFFU19DRkIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcxMjUyNkExRTUyNTI3QzAwOEZGMzY5IC8qIENyeXB0b0Fs
Z29yaXRobUFFU19DRkIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Q3J5cHRvQWxnb3JpdGhtQUVTX0NGQi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTU3MUYyMTg4MURBNTdDNTQwMDVDOUVGRCAvKiBKU1N1YnRsZUNyeXB0by5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU1N1YnRsZUNyeXB0by5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTUwOTAsMTkgKzE1MDY0LDExIEBACiAJCUUxMjVGODMzMTgyMkYxOEEw
MEQ4NENEOSAvKiBDcnlwdG9LZXlITUFDLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IENyeXB0b0tleUhNQUMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFMTI1RjgzNDE4MjJGMThBMDBEODRDRDkgLyogQ3J5cHRvS2V5SE1BQy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9LZXlITUFDLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUUxMjVGODM3MTgyMkYxRUIwMEQ4NENEOSAvKiBDcnlwdG9BbGdvcml0aG1I
TUFDTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b0Fs
Z29yaXRobUhNQUNNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMTI1Rjgz
OTE4MjQxMDQ4MDBEODRDRDkgLyogQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zRGVwcmVjYXRl
ZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1BZXND
YmNQYXJhbXNEZXByZWNhdGVkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUxMjVG
ODNCMTgyNDExRTcwMEQ4NENEOSAvKiBKU0NyeXB0b09wZXJhdGlvbkRhdGEuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDcnlwdG9PcGVyYXRpb25EYXRhLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTEyNUY4M0MxODI0MTFFNzAwRDg0Q0Q5IC8q
IEpTQ3J5cHRvT3BlcmF0aW9uRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBKU0NyeXB0b09wZXJhdGlvbkRhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTEyNUY4M0YxODI0MjUzQTAwRDg0Q0Q5IC8qIENyeXB0b0FsZ29yaXRobUFFU19DQkMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtQUVTX0NC
Qy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxMjVGODQwMTgyNDI1M0EwMEQ4
NENEOSAvKiBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobUFFU19DQkMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTEyNUY4NDMxODI0MjVDOTAwRDg0Q0Q5IC8qIENyeXB0b0FsZ29yaXRobUFFU19D
QkNNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvQWxn
b3JpdGhtQUVTX0NCQ01hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxMjVG
ODRCMTgyNDI4OUQwMEQ4NENEOSAvKiBDcnlwdG9LZXlBRVMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvS2V5QUVTLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTEyNUY4NEMxODI0Mjg5RDAwRDg0Q0Q5IC8qIENyeXB0b0tleUFFUy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9LZXlBRVMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTEyNUY4NEYxODI4M0E1NjAwRDg0Q0Q5IC8qIEpTQ3J5cHRv
S2V5U2VyaWFsaXphdGlvbkpXSy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlFMTI1Rjg1MDE4MjgzQTU2MDBEODRDRDkgLyogSlNDcnlwdG9LZXlTZXJpYWxp
emF0aW9uSldLLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ3J5cHRvS2V5
U2VyaWFsaXphdGlvbkpXSy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMTI1Rjg1
NTE4MkMwRjgzMDBEODRDRDkgLyogQ3J5cHRvS2V5U2VyaWFsaXphdGlvbi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9LZXlTZXJpYWxpemF0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUxMjVGODU3MTgyQzFBQTYwMEQ4NENEOSAvKiBDcnlwdG9L
ZXlTZXJpYWxpemF0aW9uUmF3LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IENyeXB0b0tleVNlcmlhbGl6YXRpb25SYXcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlFMTI1Rjg1ODE4MkMxQUE2MDBEODRDRDkgLyogQ3J5cHRvS2V5U2VyaWFsaXphdGlv
blJhdy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9LZXlTZXJpYWxp
emF0aW9uUmF3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxMjVGODVEMTgyQzJE
RjYwMEQ4NENEOSAvKiBDcnlwdG9LZXlEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENyeXB0b0tleURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTEy
NUY4NjExODJDMzAzQTAwRDg0Q0Q5IC8qIENyeXB0b0tleURhdGFPY3RldFNlcXVlbmNlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b0tleURhdGFPY3RldFNl
cXVlbmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTEyNUY4NjIxODJDMzAz
QTAwRDg0Q0Q5IC8qIENyeXB0b0tleURhdGFPY3RldFNlcXVlbmNlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0tleURhdGFPY3RldFNlcXVlbmNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTE4OSw5ICsxNTE1NSw3IEBACiAJCUUxOUFDM0VCMTgy
NERDNzkwMDM0OTQyNiAvKiBDcnlwdG9BbGdvcml0aG1TSEEzODQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtU0hBMzg0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUxOUFDM0VDMTgyNERDNzkwMDM0OTQyNiAvKiBDcnlwdG9BbGdvcml0
aG1TSEE1MTIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRv
QWxnb3JpdGhtU0hBNTEyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE5QUMz
RUQxODI0REM3OTAwMzQ5NDI2IC8qIENyeXB0b0FsZ29yaXRobVNIQTUxMi5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1TSEE1MTIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTE5QUMzRjYxODI0RTVEMTAwMzQ5NDI2IC8qIENyeXB0b0Fs
Z29yaXRobUFlc0tleUdlblBhcmFtc0RlcHJlY2F0ZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zRGVwcmVjYXRlZC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTlBQzNGODE4MjU2NkY3MDAzNDk0MjYgLyog
Q3J5cHRvS2V5TWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENy
eXB0b0tleU1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUxOURBMjlCMTgx
ODlBREQwMDA4OEJDOCAvKiBDcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zRGVwcmVjYXRlZC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1IbWFjS2V5
UGFyYW1zRGVwcmVjYXRlZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUExNDcw
NzExMTAyQjE1MDBFRUMwRjMgLyogQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFBMzE2MkIxMzRCQzMyRDAwN0M5QTRGIC8qIFdlYk5T
QXR0cmlidXRlZFN0cmluZ0V4dHJhcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJOU0F0dHJpYnV0ZWRTdHJpbmdFeHRyYXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTFBMzE2MkMxMzRCQzMyRDAwN0M5QTRGIC8qIFdlYk5TQXR0cmlidXRlZFN0cmluZ0V4
dHJhcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYk5TQXR0
cmlidXRlZFN0cmluZ0V4dHJhcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1
MjI2LDEyICsxNTE5MCw5IEBACiAJCUUxQkI4NEFDMTgyMkNBNzQwMDUyNTA0MyAvKiBDcnlwdG9B
bGdvcml0aG1SZWdpc3RyeU1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeU1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUUxQkQzMzE3MTgyRDhEREQwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1SU0FT
U0FfUEtDUzFfdjFfNS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
cnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUUxQkQzMzE4MTgyRDhEREQwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1SU0FT
U0FfUEtDUzFfdjFfNS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9B
bGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlFMUJEMzMxQjE4MkQ4RUU5MDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1z
RGVwcmVjYXRlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdv
cml0aG1Sc2FTc2FQYXJhbXNEZXByZWNhdGVkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUUxQkQzMzFEMTgyRDhGNDIwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5Q
YXJhbXNEZXByZWNhdGVkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0
b0FsZ29yaXRobVJzYUtleUdlblBhcmFtc0RlcHJlY2F0ZWQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTFCRTUxMkIwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYU0xUVW5pY29kZVNvcnQu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUJFNTEyQzBDRjZDNTEyMDAyRUE5
NTkgLyogWFNMVFVuaWNvZGVTb3J0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFhTTFRVbmljb2RlU29ydC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUMyNjZE
NjE4MzE3QUI0MDAzRjhCMzMgLyogQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzVNYWMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGht
UlNBU1NBX1BLQ1MxX3YxXzVNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlF
MUMyNjZEQTE4MzE5OTM1MDAzRjhCMzMgLyogQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0
aEhhc2hEZXByZWNhdGVkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0
b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFMUMyNjZEQzE4MzE5RjMxMDAzRjhCMzMgLyogQ3J5cHRvS2V5RGF0
YVJTQUNvbXBvbmVudHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Q3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFMUMyNjZERDE4MzE5RjMxMDAzRjhCMzMgLyogQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVu
dHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvS2V5RGF0YVJTQUNv
bXBvbmVudHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFDMzYyRUQwRUFGMkFB
OTAwNzQxMEJDIC8qIEpTV29ya2VyTG9jYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNXb3JrZXJMb2NhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTUyNDYsMTEgKzE1MjA3LDcgQEAKIAkJRTFDNDE2MTYwRjY1NjMxODAwOTJEMkZCIC8qIENy
b3NzT3JpZ2luQWNjZXNzQ29udHJvbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFMUM0REU2ODBFQTc1QzFFMDAyM0NDRDYgLyogQWN0aXZlRE9NT2JqZWN0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFjdGl2ZURPTU9iamVjdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUM0REU2RDBFQTc1QzY1MDAyM0NDRDYgLyogQWN0
aXZlRE9NT2JqZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFj
dGl2ZURPTU9iamVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUxQzY1NzEw
MTgxNUY5REQwMDI1NkNERCAvKiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9u
YXJ5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTFDNjU3MTExODE1RjlERDAw
MjU2Q0REIC8qIEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTFDNjU3MUUxODE2RTUwMzAwMjU2Q0REIC8qIENyeXB0b0Fs
Z29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVkLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUUxQzY1NzI0MTgxNkU2OUQwMDI1NkNERCAvKiBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTFD
NjU3MjYxODE2RjlGRTAwMjU2Q0REIC8qIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNh
dGVkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnNEZXByZWNhdGVkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxQzZD
RkMyMTc0NkQyOTMwMDdCODdBMSAvKiBET01XaW5kb3dDb25zdHJ1Y3RvcnMuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERP
TVdpbmRvd0NvbnN0cnVjdG9ycy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUx
QzhCRTVDMEU4QkQxNUEwMDY0Q0I3RCAvKiBKU1dvcmtlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU1dvcmtlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUUxQzk0QUY3MTkxMzAzRjAwMEQ1QTg5MyAvKiBCbG9iUGFydC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBCbG9iUGFydC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTUyNzcsMTUgKzE1MjM0LDExIEBACiAJCUUxRkUxMzZFMTgzRkVDRjAwMDg5MkYx
MyAvKiBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUE1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUE1hYy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRkUxMzcyMTg0MDJBNjcwMDg5MkYxMyAvKiBDb21tb25D
cnlwdG9VdGlsaXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
Q29tbW9uQ3J5cHRvVXRpbGl0aWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTFGRTEzNzMxODQwMkE2NzAwODkyRjEzIC8qIENvbW1vbkNyeXB0b1V0aWxpdGllcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb21tb25DcnlwdG9VdGlsaXRpZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTFGRTEzNzYxODREMUUzMzAwODkyRjEzIC8qIENy
eXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVkLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVkLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRkUxMzc4MTg0RDIxQkIwMDg5MkYxMyAv
KiBDcnlwdG9BbGdvcml0aG1BRVNfS1cuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTFGRTEzNzkxODREMjFCQjAwODkyRjEzIC8qIENyeXB0b0FsZ29yaXRobUFFU19L
Vy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1BRVNf
S1cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFGRTEzN0MxODREMjcwMjAwODky
RjEzIC8qIENyeXB0b0FsZ29yaXRobUFFU19LV01hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1BRVNfS1dNYWMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMUZGNTdBMjBGMDEyNTVCMDA4OTFFQkIgLyogVGhyZWFkR2xv
YmFsRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUaHJlYWRHbG9iYWxE
YXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRkY1N0E1MEYwMTI1NkIwMDg5
MUVCQiAvKiBUaHJlYWRHbG9iYWxEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFRocmVhZEdsb2JhbERhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlFMUZGOEY2MjE4MDc0NUQ4MDAxMzI2NzQgLyogSlNXZWJLaXRTdWJ0bGVDcnlwdG8uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJLaXRTdWJ0bGVDcnlw
dG8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMUZGOEY2MzE4MDc0NUQ4MDAx
MzI2NzQgLyogSlNXZWJLaXRTdWJ0bGVDcnlwdG8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNXZWJLaXRTdWJ0bGVDcnlwdG8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJRTFGRjhGNjYxODA3NDYwODAwMTMyNjc0IC8qIEpTV2ViS2l0U3VidGxlQ3J5cHRvQ3Vz
dG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViS2l0U3Vi
dGxlQ3J5cHRvQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFGRjhG
NkExODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFGRjhGNkIxODBEQjVCRTAwMTMyNjc0
IC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUUzMDU5MjYxMUUyN0EzOEMwMEQ1N0M5OCAvKiBJbmxpbmVDbGFzc2ljU2NyaXB0LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElubGluZUNsYXNzaWNTY3Jp
cHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjM1NjYsMTIgKzIzNTE5LDYg
QEAKIAkJCQkxNDMyRTg0NjBDNTE0OTM4MDBCMTUwMEYgLyogR0NDb250cm9sbGVyLmggKi8sCiAJ
CQkJQzU4NUE2NjAxMUQ0RkFDNTAwNEMzRTRCIC8qIElEQkJpbmRpbmdVdGlsaXRpZXMuY3BwICov
LAogCQkJCUM1ODVBNjYxMTFENEZBQzUwMDRDM0U0QiAvKiBJREJCaW5kaW5nVXRpbGl0aWVzLmgg
Ki8sCi0JCQkJRTFDNjU3MTAxODE1RjlERDAwMjU2Q0REIC8qIEpTQ3J5cHRvQWxnb3JpdGhtRGlj
dGlvbmFyeS5jcHAgKi8sCi0JCQkJRTFDNjU3MTExODE1RjlERDAwMjU2Q0REIC8qIEpTQ3J5cHRv
QWxnb3JpdGhtRGljdGlvbmFyeS5oICovLAotCQkJCUUxMjVGODRGMTgyODNBNTYwMEQ4NENEOSAv
KiBKU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0suY3BwICovLAotCQkJCUUxMjVGODUwMTgyODNB
NTYwMEQ4NENEOSAvKiBKU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0suaCAqLywKLQkJCQlFMTI1
RjgzQjE4MjQxMUU3MDBEODRDRDkgLyogSlNDcnlwdG9PcGVyYXRpb25EYXRhLmNwcCAqLywKLQkJ
CQlFMTI1RjgzQzE4MjQxMUU3MDBEODRDRDkgLyogSlNDcnlwdG9PcGVyYXRpb25EYXRhLmggKi8s
CiAJCQkJOUJENEU5MTQxQzQ2Mjg3MjAwNTA2NUJDIC8qIEpTQ3VzdG9tRWxlbWVudEludGVyZmFj
ZS5jcHAgKi8sCiAJCQkJOUJENEU5MTUxQzQ2Mjg3MjAwNTA2NUJDIC8qIEpTQ3VzdG9tRWxlbWVu
dEludGVyZmFjZS5oICovLAogCQkJCTdDNTdCRkU2MUVERTJGNUIwMDUzNEE0OCAvKiBKU0RPTUFi
c3RyYWN0T3BlcmF0aW9ucy5oICovLApAQCAtMjM2NjAsNyArMjM2MDcsNiBAQAogCQkJCUJDNTgy
M0Y0MEMwQTk4REYwMDUzRjFCNSAvKiBKU0hUTUxFbGVtZW50Q3VzdG9tLmNwcCAqLywKIAkJCQlC
Q0UxQzQzRjBEOTgzMEY0MDAzQjAyRjIgLyogSlNMb2NhdGlvbkN1c3RvbS5jcHAgKi8sCiAJCQkJ
NDE4QzM5NUQxQzhGMEFBQjAwNTFDOEEzIC8qIEpTUmVhZGFibGVTdHJlYW1Tb3VyY2VDdXN0b20u
Y3BwICovLAotCQkJCUUxRkY4RjY2MTgwNzQ2MDgwMDEzMjY3NCAvKiBKU1dlYktpdFN1YnRsZUNy
eXB0b0N1c3RvbS5jcHAgKi8sCiAJCQkpOwogCQkJbmFtZSA9IEN1c3RvbTsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CkBAIC0yNDYwNiw4ICsyNDU1Miw2IEBACiAJCQkJNTc3NzdFM0IxRTcx
MjQyMjAwRUUxQThEIC8qIENyeXB0b0tleVJhdy5oICovLAogCQkJCTU3RTIzMzZBMURDQzI2MjQw
MEYyOEQwMSAvKiBDcnlwdG9LZXlSU0EuY3BwICovLAogCQkJCUUxNjRGQUEyMTgzMTVCRjQwMERC
NEU2MSAvKiBDcnlwdG9LZXlSU0EuaCAqLywKLQkJCQlFMTI1Rjg1NzE4MkMxQUE2MDBEODRDRDkg
LyogQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdy5jcHAgKi8sCi0JCQkJRTEyNUY4NTgxODJDMUFB
NjAwRDg0Q0Q5IC8qIENyeXB0b0tleVNlcmlhbGl6YXRpb25SYXcuaCAqLywKIAkJCQk3QzlBQ0FB
NjFGM0NDRUI0MDBGM0FBMDkgLyogQ3J5cHRvUnNhSGFzaGVkS2V5QWxnb3JpdGhtLmggKi8sCiAJ
CQkJN0M5QUNBQTcxRjNDQ0VCNDAwRjNBQTA5IC8qIENyeXB0b1JzYUhhc2hlZEtleUFsZ29yaXRo
bS5pZGwgKi8sCiAJCQkJN0M5QUNBQTIxRjNDQ0U2OTAwRjNBQTA5IC8qIENyeXB0b1JzYUtleUFs
Z29yaXRobS5oICovLApAQCAtMjQ2MjQsMjggKzI0NTY4LDIwIEBACiAJCQkJNTdCNUY4MDcxRTVE
MTlGMjAwRjM0RjkwIC8qIEFlc0djbVBhcmFtcy5pZGwgKi8sCiAJCQkJNTc3NDgzMTAxREFEQzQ5
OTAwNzE2RUY5IC8qIEFlc0tleVBhcmFtcy5pZGwgKi8sCiAJCQkJNTcyMDkzRDIxRERDRUI5QTAw
MzEwQUIwIC8qIENyeXB0b0FsZ29yaXRobUFlc0NiY0NmYlBhcmFtcy5oICovLAotCQkJCUUxMjVG
ODM5MTgyNDEwNDgwMEQ4NENEOSAvKiBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXNEZXByZWNh
dGVkLmggKi8sCiAJCQkJNTdFMUU1QTYxRThEQkQzRTAwRUUzN0M5IC8qIENyeXB0b0FsZ29yaXRo
bUFlc0N0clBhcmFtcy5oICovLAogCQkJCTU3QjVGODA4MUU1RDFBOTgwMEYzNEY5MCAvKiBDcnlw
dG9BbGdvcml0aG1BZXNHY21QYXJhbXMuaCAqLywKLQkJCQlFMTlBQzNGNjE4MjRFNUQxMDAzNDk0
MjYgLyogQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zRGVwcmVjYXRlZC5oICovLAogCQkJ
CTU3NzQ4MzExMURBREM1NUQwMDcxNkVGOSAvKiBDcnlwdG9BbGdvcml0aG1BZXNLZXlQYXJhbXMu
aCAqLywKIAkJCQk1NzY4MTQyOTFFNkY5OUMxMDBFNzc3NTQgLyogQ3J5cHRvQWxnb3JpdGhtRWNk
aEtleURlcml2ZVBhcmFtcy5oICovLAogCQkJCTU3RUVBQTREMUU5RkZCRkMwMDcwMTEyNCAvKiBD
cnlwdG9BbGdvcml0aG1FY2RzYVBhcmFtcy5oICovLAogCQkJCTU3NTBBOTdEMUU2QTEzRUYwMDcw
NUM0QSAvKiBDcnlwdG9BbGdvcml0aG1FY0tleVBhcmFtcy5oICovLAogCQkJCTU3OTU3Q0FGMUU5
NzI2NDUwMDgwNzJBQiAvKiBDcnlwdG9BbGdvcml0aG1Ia2RmUGFyYW1zLmggKi8sCiAJCQkJNTc3
NDgzMTgxREI0NDkxRjAwNzE2RUY5IC8qIENyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXMuaCAq
LywKLQkJCQlFMTlEQTI5QjE4MTg5QUREMDAwODhCQzggLyogQ3J5cHRvQWxnb3JpdGhtSG1hY0tl
eVBhcmFtc0RlcHJlY2F0ZWQuaCAqLywKLQkJCQlFMUM2NTcxRTE4MTZFNTAzMDAyNTZDREQgLyog
Q3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQuaCAqLywKIAkJCQk1N0U2NTdFQjFF
NzE2MkVBMDBGOTQxQ0EgLyogQ3J5cHRvQWxnb3JpdGhtUGJrZGYyUGFyYW1zLmggKi8sCiAJCQkJ
NTdFMjMzNkQxRENENDNGRDAwRjI4RDAxIC8qIENyeXB0b0FsZ29yaXRobVJzYUhhc2hlZEltcG9y
dFBhcmFtcy5oICovLAogCQkJCTU3RTIzMzc0MURDRDZEM0IwMEYyOEQwMSAvKiBDcnlwdG9BbGdv
cml0aG1Sc2FIYXNoZWRLZXlHZW5QYXJhbXMuaCAqLywKIAkJCQk1N0ZFREQzRTFEQjZENTkyMDBF
Qjk2RjUgLyogQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zLmggKi8sCi0JCQkJRTFCRDMz
MUQxODJEOEY0MjAwQzA1RDlGIC8qIENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtc0RlcHJl
Y2F0ZWQuaCAqLywKLQkJCQlFMUMyNjZEQTE4MzE5OTM1MDAzRjhCMzMgLyogQ3J5cHRvQWxnb3Jp
dGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hEZXByZWNhdGVkLmggKi8sCiAJCQkJNTcwNkE2OTUxRERF
NUM5NTAwQTAzQjE0IC8qIENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXMuaCAqLywKLQkJCQlF
MUZFMTM3NjE4NEQxRTMzMDA4OTJGMTMgLyogQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0Rl
cHJlY2F0ZWQuaCAqLywKIAkJCQk1NzIxQTk4ODFFQ0U1NzA0MDA4MTI5NUEgLyogQ3J5cHRvQWxn
b3JpdGhtUnNhUHNzUGFyYW1zLmggKi8sCi0JCQkJRTFCRDMzMUIxODJEOEVFOTAwQzA1RDlGIC8q
IENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc0RlcHJlY2F0ZWQuaCAqLywKIAkJCQk1NzY4MTQy
ODFFNkY5OEFEMDBFNzc3NTQgLyogRWNkaEtleURlcml2ZVBhcmFtcy5pZGwgKi8sCiAJCQkJNTdF
RUFBNEUxRTlGRkJGQzAwNzAxMTI0IC8qIEVjZHNhUGFyYW1zLmlkbCAqLywKIAkJCQk1NzUwQTk3
QzFFNkExMkI0MDA3MDVDNEEgLyogRWNLZXlQYXJhbXMuaWRsICovLApAQCAtMjQ3ODAsNyArMjQ3
MTYsNiBAQAogCQkJCUUxQzY1NzI0MTgxNkU2OUQwMDI1NkNERCAvKiBDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyLmggKi8sCiAJCQkJNTczNDg5MzgxREFDNkI2RDAwREMwNjY3IC8qIENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnMuaCAqLywKIAkJCQk1NzRBQzc1MzFEQUMzNjdEMDBFOTc0NEMgLyog
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5pZGwgKi8sCi0JCQkJRTFDNjU3MjYxODE2RjlGRTAw
MjU2Q0REIC8qIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkLmggKi8sCiAJCQkJ
RTFGRjhGNkExODBEQjVCRTAwMTMyNjc0IC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcCAq
LywKIAkJCQlFMUZGOEY2QjE4MERCNUJFMDAxMzI2NzQgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0
cnkuaCAqLywKIAkJCQlFMTU3QThFMjE4MTczQTNBMDA5RjgyMUQgLyogQ3J5cHRvS2V5LmNwcCAq
LywKQEAgLTI0NzkwLDcgKzI0NzI1LDYgQEAKIAkJCQk3QzlBQ0FDOTFGNDBCOTZBMDBGM0FBMDkg
LyogQ3J5cHRvS2V5Rm9ybWF0LmggKi8sCiAJCQkJRTFGODBCODYxODMxNzI1MjAwNzg4NUMzIC8q
IENyeXB0b0tleVBhaXIuaCAqLywKIAkJCQlFMUY4MEI4NDE4MzE3MjQ3MDA3ODg1QzMgLyogQ3J5
cHRvS2V5UGFpci5pZGwgKi8sCi0JCQkJRTEyNUY4NTUxODJDMEY4MzAwRDg0Q0Q5IC8qIENyeXB0
b0tleVNlcmlhbGl6YXRpb24uaCAqLywKIAkJCQlFMTk3MjcxNTE4MjA1NDlFMDA1OTJENTEgLyog
Q3J5cHRvS2V5VHlwZS5oICovLAogCQkJCUUxNzJBRjZGMTgwRjI4OTUwMEZCQURCOSAvKiBDcnlw
dG9LZXlVc2FnZS5oICovLAogCQkJCTU3RDAwMThCMUREM0RCQTQwMEVEMTlEOSAvKiBDcnlwdG9L
ZXlVc2FnZS5pZGwgKi8sCkBAIC0yNDgwMiw5ICsyNDczNiw2IEBACiAJCQkJNTc3OEJEODMxREE0
ODE3QjAwOUUzMDA5IC8qIFN1YnRsZUNyeXB0by5jcHAgKi8sCiAJCQkJNTc3OEJEODExREE0ODAy
QzAwOUUzMDA5IC8qIFN1YnRsZUNyeXB0by5oICovLAogCQkJCTU3NzhCRDgwMURBNDczM0UwMDlF
MzAwOSAvKiBTdWJ0bGVDcnlwdG8uaWRsICovLAotCQkJCTU3MDlFOENBMUQ0MTNDRTMwMDMyNDRB
QyAvKiBXZWJLaXRTdWJ0bGVDcnlwdG8uY3BwICovLAotCQkJCTU3MDlFOENCMUQ0MTNDRTMwMDMy
NDRBQyAvKiBXZWJLaXRTdWJ0bGVDcnlwdG8uaCAqLywKLQkJCQk1NzA5RThDQzFENDEzQ0UzMDAz
MjQ0QUMgLyogV2ViS2l0U3VidGxlQ3J5cHRvLmlkbCAqLywKIAkJCSk7CiAJCQlwYXRoID0gY3J5
cHRvOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI0ODY4LDggKzI0Nzk5LDYgQEAK
IAkJCQk1NzU0NzE5OTFFQ0U1RDJBMDBERDYzQjIgLyogSlNSc2FQc3NQYXJhbXMuaCAqLywKIAkJ
CQk1NzFGMjE4QTFEQTU3QzdBMDA1QzlFRkQgLyogSlNTdWJ0bGVDcnlwdG8uY3BwICovLAogCQkJ
CTU3MUYyMTg4MURBNTdDNTQwMDVDOUVGRCAvKiBKU1N1YnRsZUNyeXB0by5oICovLAotCQkJCUUx
RkY4RjYyMTgwNzQ1RDgwMDEzMjY3NCAvKiBKU1dlYktpdFN1YnRsZUNyeXB0by5jcHAgKi8sCi0J
CQkJRTFGRjhGNjMxODA3NDVEODAwMTMyNjc0IC8qIEpTV2ViS2l0U3VidGxlQ3J5cHRvLmggKi8s
CiAJCQkpOwogCQkJbmFtZSA9IENyeXB0bzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBA
IC0yNjkwMSwxMCArMjY4MzAsOCBAQAogCQkJCTU3QjVGN0Y5MUU1QkU4NDAwMEYzNEY5MCAvKiBD
cnlwdG9BbGdvcml0aG1BRVNfR0NNLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUZFMTM3QjE4NEQy
MUJCMDA4OTJGMTMgLyogQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1NzIwOTNEMzFERENFQjlBMDAzMTBBQjAgLyogQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjQ2ZiUGFy
YW1zLmggaW4gSGVhZGVycyAqLywKLQkJCQlFMTI1RjgzQTE4MjQxMDQ4MDBEODRDRDkgLyogQ3J5
cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zRGVwcmVjYXRlZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTdFMUU1QTcxRThEQkQzRTAwRUUzN0M5IC8qIENyeXB0b0FsZ29yaXRobUFlc0N0clBhcmFtcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTdCNUY4MDkxRTVEMUE5ODAwRjM0RjkwIC8qIENyeXB0b0Fs
Z29yaXRobUFlc0djbVBhcmFtcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTE5QUMzRjcxODI0RTVE
MTAwMzQ5NDI2IC8qIENyeXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFtc0RlcHJlY2F0ZWQuaCBp
biBIZWFkZXJzICovLAogCQkJCTU3NzQ4MzEyMURBREM1NUQwMDcxNkVGOSAvKiBDcnlwdG9BbGdv
cml0aG1BZXNLZXlQYXJhbXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3NTBBOTg3MUU2QTIxNjgw
MDcwNUM0QSAvKiBDcnlwdG9BbGdvcml0aG1FQ0RILmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzY4
MTQyQTFFNkY5OUMxMDBFNzc3NTQgLyogQ3J5cHRvQWxnb3JpdGhtRWNkaEtleURlcml2ZVBhcmFt
cy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjkxNSwxMSArMjY4NDIsOCBAQAogCQkJCTU3OTU3Q0Iy
MUU5NzI2NDUwMDgwNzJBQiAvKiBDcnlwdG9BbGdvcml0aG1Ia2RmUGFyYW1zLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFMTI1RjgzMjE4MjJGMTFCMDBEODRDRDkgLyogQ3J5cHRvQWxnb3JpdGhtSE1B
Qy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTc3NDgzMTkxREI0NDkxRjAwNzE2RUY5IC8qIENyeXB0
b0FsZ29yaXRobUhtYWNLZXlQYXJhbXMuaCBpbiBIZWFkZXJzICovLAotCQkJCUUxOURBMjlDMTgx
ODlBREQwMDA4OEJDOCAvKiBDcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zRGVwcmVjYXRlZC5o
IGluIEhlYWRlcnMgKi8sCi0JCQkJRTFDNjU3MUYxODE2RTUwMzAwMjU2Q0REIC8qIENyeXB0b0Fs
Z29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVkLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUM2NTcy
NTE4MTZFNjlEMDAyNTZDREQgLyogQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTczNDg5MzkxREFDNkI2RTAwREMwNjY3IC8qIENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAotCQkJCUUxQzY1NzI3MTgxNkY5RkUwMDI1NkNERCAv
KiBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTc3NzdFMzkxRTcxMjE3RDAwRUUxQThEIC8qIENyeXB0b0FsZ29yaXRobVBCS0RGMi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNTdFNjU3RUMxRTcxNjJFQTAwRjk0MUNBIC8qIENyeXB0b0FsZ29y
aXRobVBia2RmMlBhcmFtcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFGRjhGNkQxODBEQjVCRTAw
MTMyNjc0IC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmggaW4gSGVhZGVycyAqLywKQEAgLTI2
OTI4LDEzICsyNjg1Miw5IEBACiAJCQkJRTEyMzNGMEQxODVBM0UzQjAwOERGQUY1IC8qIENyeXB0
b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzUuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3RTIzMzZF
MURDRDQzRkQwMEYyOEQwMSAvKiBDcnlwdG9BbGdvcml0aG1Sc2FIYXNoZWRJbXBvcnRQYXJhbXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTU3RkVERDNGMURCNkQ1OTIwMEVCOTZGNSAvKiBDcnlwdG9B
bGdvcml0aG1Sc2FLZXlHZW5QYXJhbXMuaCBpbiBIZWFkZXJzICovLAotCQkJCUUxQkQzMzFFMTgy
RDhGNDIwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXNEZXByZWNhdGVk
LmggaW4gSGVhZGVycyAqLywKLQkJCQlFMUMyNjZEQjE4MzE5OTM1MDAzRjhCMzMgLyogQ3J5cHRv
QWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hEZXByZWNhdGVkLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1NzA2QTY5NjFEREU1Qzk1MDBBMDNCMTQgLyogQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBh
cmFtcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTFGRTEzNzcxODREMUUzMzAwODkyRjEzIC8qIENy
eXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVkLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1NzIxQTk4QjFFQ0U1NzA0MDA4MTI5NUEgLyogQ3J5cHRvQWxnb3JpdGhtUnNhUHNzUGFyYW1z
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUJEMzMxQTE4MkQ4REREMDBDMDVEOUYgLyogQ3J5cHRv
QWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaCBpbiBIZWFkZXJzICovLAotCQkJCUUxQkQzMzFD
MTgyRDhFRTkwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNEZXByZWNhdGVk
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTI1RjgyQzE4MjJDRkVDMDBEODRDRDkgLyogQ3J5cHRv
QWxnb3JpdGhtU0hBMS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE5QUMzRUYxODI0REM3OTAwMzQ5
NDI2IC8qIENyeXB0b0FsZ29yaXRobVNIQTIyNC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE5QUMz
RjExODI0REM3OTAwMzQ5NDI2IC8qIENyeXB0b0FsZ29yaXRobVNIQTI1Ni5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yNjk1NCw4ICsyNjg3NCw2IEBACiAJCQkJRTFGODBCODgxODMxNzI1MjAwNzg4NUMz
IC8qIENyeXB0b0tleVBhaXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3RTY1N0RGMUU3MTM3M0Ew
MEY5NDFDQSAvKiBDcnlwdG9LZXlSYXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxNjRGQUEzMTgz
MTVCRjQwMERCNEU2MSAvKiBDcnlwdG9LZXlSU0EuaCBpbiBIZWFkZXJzICovLAotCQkJCUUxMjVG
ODU2MTgyQzBGODMwMEQ4NENEOSAvKiBDcnlwdG9LZXlTZXJpYWxpemF0aW9uLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlFMTI1Rjg1QTE4MkMxQUE2MDBEODRDRDkgLyogQ3J5cHRvS2V5U2VyaWFsaXph
dGlvblJhdy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE5NzI3MTYxODIwNTQ5RTAwNTkyRDUxIC8q
IENyeXB0b0tleVR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxNzJBRjcwMTgwRjI4OTUwMEZC
QURCOSAvKiBDcnlwdG9LZXlVc2FnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M5QUNBQTgxRjND
Q0VCNDAwRjNBQTA5IC8qIENyeXB0b1JzYUhhc2hlZEtleUFsZ29yaXRobS5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yNzg2OCwxNiArMjc3ODYsMTMgQEAKIAkJCQk3N0Q1MTAwMjFFRDRGNzE4MDBEQTRD
ODcgLyogSlNDcmVkZW50aWFsVXNlckRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NUNBMkEy
MTMwMzY3OUQwMEU5OUFEOSAvKiBKU0NyeXB0by5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M5QUNB
QjgxRjNDRjFBRTAwRjNBQTA5IC8qIEpTQ3J5cHRvQWVzS2V5QWxnb3JpdGhtLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlFMUM2NTcxMzE4MTVGOUREMDAyNTZDREQgLyogSlNDcnlwdG9BbGdvcml0aG1E
aWN0aW9uYXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzM5RTEyRjFEQUM3Rjc4MDBFMTQzODMg
LyogSlNDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzlB
Q0FCQTFGM0NGMUFFMDBGM0FBMDkgLyogSlNDcnlwdG9FY0tleUFsZ29yaXRobS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJN0M5QUNBQkMxRjNDRjFBRTAwRjNBQTA5IC8qIEpTQ3J5cHRvSG1hY0tleUFs
Z29yaXRobS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE1N0E4RTExODE3MzMxQzAwOUY4MjFEIC8q
IEpTQ3J5cHRvS2V5LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzlBQ0FCRTFGM0NGMUFGMDBGM0FB
MDkgLyogSlNDcnlwdG9LZXlBbGdvcml0aG0uaCBpbiBIZWFkZXJzICovLAogCQkJCUUxRjgwQjhF
MTgzMTcyQjUwMDc4ODVDMyAvKiBKU0NyeXB0b0tleVBhaXIuaCBpbiBIZWFkZXJzICovLAotCQkJ
CUUxMjVGODUyMTgyODNBNTYwMEQ4NENEOSAvKiBKU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0su
aCBpbiBIZWFkZXJzICovLAogCQkJCTU3RDAwMThEMURENTQxMzIwMEVEMTlEOSAvKiBKU0NyeXB0
b0tleVVzYWdlLmggaW4gSGVhZGVycyAqLywKLQkJCQlFMTI1RjgzRTE4MjQxMUU3MDBEODRDRDkg
LyogSlNDcnlwdG9PcGVyYXRpb25EYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzlBQ0FDMDFG
M0NGMUFGMDBGM0FBMDkgLyogSlNDcnlwdG9Sc2FIYXNoZWRLZXlBbGdvcml0aG0uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTdDOUFDQUMyMUYzQ0YxQUYwMEYzQUEwOSAvKiBKU0NyeXB0b1JzYUtleUFs
Z29yaXRobS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM0NkMxRkQwQzBEREM4RjAwMjBDRkMzIC8q
IEpTQ1NTRm9udEZhY2VSdWxlLmggaW4gSGVhZGVycyAqLywKQEAgLTI4NTM5LDcgKzI4NDU0LDYg
QEAKIAkJCQk3Q0M2OTk0MTE5MUVDNUY1MDBBRjIyNzAgLyogSlNXZWJLaXROYW1lc3BhY2UuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGREE3QzI3MTg4MzMzMzIwMEM5NTRCNSAvKiBKU1dlYktpdFBs
YXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5NEJE
NzlFMEY1NUM5NEMwMDc0NzgyOCAvKiBKU1dlYktpdFBvaW50LmggaW4gSGVhZGVycyAqLywKLQkJ
CQk1NzBBOTlEQjFENDFBMkYzMDA0RUM2MzAgLyogSlNXZWJLaXRTdWJ0bGVDcnlwdG8uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTMxQzBGRjQwMEU0Q0VGQUMwMDdENkZFNSAvKiBKU1dlYktpdFRyYW5z
aXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNURBNUUwRkQxMDJCOTUzODAwMDg4Q0Y5
IC8qIEpTV2ViU29ja2V0LmggaW4gSGVhZGVycyAqLywKIAkJCQk2NURGMzIwNjA5RDFDQzYwMDAw
QkUzMjUgLyogSlNXaGVlbEV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTMwMTY3LDcgKzMwMDgx
LDYgQEAKIAkJCQk3QzQ4QTZEMTE5MUM5RDY1MDAwMjY2NzQgLyogV2ViS2l0TmFtZXNwYWNlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBNURFQkRBNDE2RkI5MDg3MDA4MzZGRTAgLyogV2ViS2l0UGxh
eWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDk0QkQ3
OTUwRjU1QzhFRTAwNzQ3ODI4IC8qIFdlYktpdFBvaW50LmggaW4gSGVhZGVycyAqLywKLQkJCQk1
NzA5RThDRjFENDEzRDlBMDAzMjQ0QUMgLyogV2ViS2l0U3VidGxlQ3J5cHRvLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkzMUMwRkYyNTBFNENFQjZFMDA3RDZGRTUgLyogV2ViS2l0VHJhbnNpdGlvbkV2
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkNGMzMyRjBGMkI5QTI1MDA0QjY3OTUgLyogV2Vi
TGF5ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3MDlENzhGMUFFNTU1NTQwMDRFNDJGOCAvKiBX
ZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKQEAgLTMxMDEwLDcgKzMwOTIz
LDYgQEAKIAkJCQk1N0U2NTdFMDFFNzEzOTc4MDBGOTQxQ0EgLyogQ3J5cHRvS2V5UmF3LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTU3RTIzMzZCMURDQzI2MjQwMEYyOEQwMSAvKiBDcnlwdG9LZXlS
U0EuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTE2NEZBQTUxODMxNUUxQTAwREI0RTYxIC8qIENy
eXB0b0tleVJTQU1hYy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlFMTI1Rjg1OTE4MkMxQUE2MDBE
ODRDRDkgLyogQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkzMTZGRTExMzBFNkUxREE3MDBCRjYwODggLyogQ1NTQW5pbWF0aW9uQ29udHJvbGxlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkzMUJDNzQyRDFBQUZGNDVDMDA2QjQzNDAgLyogQ1NTQW5pbWF0
aW9uVHJpZ2dlclNjcm9sbFZhbHVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNBRTlGOTBGMTQ2
NDQxRjAwMEMyNDVCMCAvKiBDU1NBc3BlY3RSYXRpb1ZhbHVlLmNwcCBpbiBTb3VyY2VzICovLApA
QCAtMzE4NDksMTYgKzMxNzYxLDEzIEBACiAJCQkJNzdENTEwMDMxRUQ0RjcxQjAwREE0Qzg3IC8q
IEpTQ3JlZGVudGlhbFVzZXJEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3NUNBMkExMTMw
MzY3OUQwMEU5OUFEOSAvKiBKU0NyeXB0by5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzlBQ0FC
NzFGM0NGMUFFMDBGM0FBMDkgLyogSlNDcnlwdG9BZXNLZXlBbGdvcml0aG0uY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJRTFDNjU3MTIxODE1RjlERDAwMjU2Q0REIC8qIEpTQ3J5cHRvQWxnb3JpdGht
RGljdGlvbmFyeS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1NzM5RTEzMTFEQUM3RkQxMDBFMTQz
ODMgLyogSlNDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTdDOUFDQUI5MUYzQ0YxQUUwMEYzQUEwOSAvKiBKU0NyeXB0b0VjS2V5QWxnb3JpdGhtLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTdDOUFDQUJCMUYzQ0YxQUUwMEYzQUEwOSAvKiBKU0NyeXB0b0ht
YWNLZXlBbGdvcml0aG0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTE1N0E4RTAxODE3MzMxQzAw
OUY4MjFEIC8qIEpTQ3J5cHRvS2V5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDOUFDQUJEMUYz
Q0YxQUUwMEYzQUEwOSAvKiBKU0NyeXB0b0tleUFsZ29yaXRobS5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlFMUY4MEI4RDE4MzE3MkI1MDA3ODg1QzMgLyogSlNDcnlwdG9LZXlQYWlyLmNwcCBpbiBT
b3VyY2VzICovLAotCQkJCUUxMjVGODUxMTgyODNBNTYwMEQ4NENEOSAvKiBKU0NyeXB0b0tleVNl
cmlhbGl6YXRpb25KV0suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTdEMDAxOEYxREQ1NDE1MzAw
RUQxOUQ5IC8qIEpTQ3J5cHRvS2V5VXNhZ2UuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRTEyNUY4
M0QxODI0MTFFNzAwRDg0Q0Q5IC8qIEpTQ3J5cHRvT3BlcmF0aW9uRGF0YS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk3QzlBQ0FCRjFGM0NGMUFGMDBGM0FBMDkgLyogSlNDcnlwdG9Sc2FIYXNoZWRL
ZXlBbGdvcml0aG0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M5QUNBQzExRjNDRjFBRjAwRjNB
QTA5IC8qIEpTQ3J5cHRvUnNhS2V5QWxnb3JpdGhtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
NDZDMUZDMEMwRERDOEYwMDIwQ0ZDMyAvKiBKU0NTU0ZvbnRGYWNlUnVsZS5jcHAgaW4gU291cmNl
cyAqLywKQEAgLTMyNTYwLDggKzMyNDY5LDYgQEAKIAkJCQk3Q0M2OTk0MDE5MUVDNUY1MDBBRjIy
NzAgLyogSlNXZWJLaXROYW1lc3BhY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZEQTdDMjYx
ODgzMzMzMjAwQzk1NEI1IC8qIEpTV2ViS2l0UGxheWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlFdmVu
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OTRCRDc5RDBGNTVDOTRDMDA3NDc4MjggLyogSlNX
ZWJLaXRQb2ludC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk1NzBBOTlEQTFENDE3NDA4MDA0RUM2
MzAgLyogSlNXZWJLaXRTdWJ0bGVDcnlwdG8uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTcwOUU4
Q0UxRDQxM0Q1QjAwMzI0NEFDIC8qIEpTV2ViS2l0U3VidGxlQ3J5cHRvQ3VzdG9tLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTMxQzBGRjNGMEU0Q0VGQUMwMDdENkZFNSAvKiBKU1dlYktpdFRyYW5z
aXRpb25FdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1REE1RTBGQzEwMkI5NTM4MDAwODhD
RjkgLyogSlNXZWJTb2NrZXQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNjVERjMyMDUwOUQxQ0M2
MDAwMEJFMzI1IC8qIEpTV2hlZWxFdmVudC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMzODkyLDcg
KzMzNzk5LDYgQEAKIAkJCQlENzYxM0E1MDE0NzRGMTNGMDBEQjg2MDYgLyogV2ViS2l0TmFtZWRG
bG93LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDNDhBNkQwMTkxQzlENjUwMDAyNjY3NCAvKiBX
ZWJLaXROYW1lc3BhY2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTVERUJEQTMxNkZCOTA4NzAw
ODM2RkUwIC8qIFdlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJNTcwOUU4Q0QxRDQxM0Q0NzAwMzI0NEFDIC8qIFdlYktpdFN1YnRsZUNy
eXB0by5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUMwRkYyNDBFNENFQjZFMDA3RDZGRTUgLyog
V2ViS2l0VHJhbnNpdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQ0YzMzJFMEYy
QjlBMjUwMDRCNjc5NSAvKiBXZWJMYXllci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTA3MDlENzhF
MUFFNTU1NTQwMDRFNDJGOCAvKiBXZWJNZWRpYVNlc3Npb25NYW5hZ2VyLmNwcCBpbiBTb3VyY2Vz
ICovLApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9BbGdvcml0aG1E
aWN0aW9uYXJ5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuY3BwCShyZXZpc2lvbiAyMjA5MTkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuY3BwCShu
b25leGlzdGVudCkKQEAgLTEsNjM4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMs
IDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmgiCi0K
LSNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKLQotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUFl
c0NiY1BhcmFtc0RlcHJlY2F0ZWQuaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1BZXNLZXlH
ZW5QYXJhbXNEZXByZWNhdGVkLmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBh
cmFtc0RlcHJlY2F0ZWQuaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVw
cmVjYXRlZC5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMuaCIKLSNpbmNs
dWRlICJDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRo
bVJzYUtleUdlblBhcmFtc0RlcHJlY2F0ZWQuaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1S
c2FLZXlQYXJhbXNXaXRoSGFzaERlcHJlY2F0ZWQuaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0
aG1Sc2FPYWVwUGFyYW1zRGVwcmVjYXRlZC5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJz
YVNzYVBhcmFtc0RlcHJlY2F0ZWQuaCIKLSNpbmNsdWRlICJKU0NyeXB0b09wZXJhdGlvbkRhdGEu
aCIKLSNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnRCdWZm
ZXJTb3VyY2UuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnROdW1iZXJzLmgiCi0jaW5jbHVkZSAi
SlNET01Db252ZXJ0U3RyaW5ncy5oIgotCi11c2luZyBuYW1lc3BhY2UgSlNDOwotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLXN0YXRpYyBpbmxpbmUgSlNWYWx1ZSBnZXRQcm9wZXJ0eShFeGVjU3Rh
dGUmIHN0YXRlLCBKU09iamVjdCogb2JqZWN0LCBjb25zdCBjaGFyKiBuYW1lKQotewotICAgIHJl
dHVybiBvYmplY3QtPmdldCgmc3RhdGUsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnN0YXRlLCBu
YW1lKSk7Ci19Ci0KLUNyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgSlNDcnlwdG9BbGdvcml0aG1E
aWN0aW9uYXJ5OjpwYXJzZUFsZ29yaXRobUlkZW50aWZpZXIoRXhlY1N0YXRlJiBzdGF0ZSwgVGhy
b3dTY29wZSYgc2NvcGUsIEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgLy8gdHlwZWRlZiAoQWxnb3Jp
dGhtIG9yIERPTVN0cmluZykgQWxnb3JpdGhtSWRlbnRpZmllcjsKLQotICAgIFN0cmluZyBhbGdv
cml0aG1OYW1lOwotICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7Ci0KLSAgICBpZiAodmFsdWUuaXNT
dHJpbmcoKSkgewotICAgICAgICBhbGdvcml0aG1OYW1lID0gYXNTdHJpbmcodmFsdWUpLT52YWx1
ZSgmc3RhdGUpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotICAg
IH0gZWxzZSBpZiAodmFsdWUuaXNPYmplY3QoKSkgewotICAgICAgICBpZiAoYXNPYmplY3QodmFs
dWUpLT5pbmhlcml0cyh2bSwgU3RyaW5nT2JqZWN0OjppbmZvKCkpKSB7Ci0gICAgICAgICAgICBh
bGdvcml0aG1OYW1lID0gYXNTdHJpbmdPYmplY3QodmFsdWUpLT5pbnRlcm5hbFZhbHVlKCktPnZh
bHVlKCZzdGF0ZSk7Ci0gICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0p
OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgZG9lc24ndCBw
ZXJmb3JtIHNvbWUgY2hlY2tzIG1hbmRhdGVkIGJ5IFdlYklETCBmb3IgZGljdGlvbmFyaWVzOgot
ICAgICAgICAgICAgLy8gLSBudWxsIGFuZCB1bmRlZmluZWQgaW5wdXQgc2hvdWxkIGJlIHRyZWF0
ZWQgYXMgaWYgYWxsIGVsZW1lbnRzIGluIHRoZSBkaWN0aW9uYXJ5IHdlcmUgdW5kZWZpbmVkOwot
ICAgICAgICAgICAgLy8gLSB1bmRlZmluZWQgZWxlbWVudHMgc2hvdWxkIGJlIHRyZWF0ZWQgYXMg
aGF2aW5nIGEgZGVmYXVsdCB2YWx1ZSwgb3IgYXMgbm90IHByZXNlbnQgaWYgdGhlcmUgaXNuJ3Qg
c3VjaDsKLSAgICAgICAgICAgIC8vIC0gUmVnRXhwIGFuZCBEYXRlIG9iamVjdHMgY2Fubm90IGJl
IGNvbnZlcnRlZCB0byBkaWN0aW9uYXJpZXMuCi0gICAgICAgICAgICAvLwotICAgICAgICAgICAg
Ly8gVGhpcyBpcyBwYXJ0aWFsbHkgYmVjYXVzZSB3ZSBkb24ndCBpbXBsZW1lbnQgaXQgZWxzZXdo
ZXJlIGluIFdlYkNvcmUgeWV0LCBhbmQgcGFydGlhbGx5IGJlY2F1c2UKLSAgICAgICAgICAgIC8v
IFdlYkNyeXB0byBkb2Vzbid0IHlldCBjbGVhcmx5IHNwZWNpZnkgd2hhdCB0byBkbyB3aXRoIG5v
bi1wcmVzZW50IHZhbHVlcyBpbiBtb3N0IGNhc2VzIGFueXdheS4KLQotICAgICAgICAgICAgYXV0
byBuYW1lVmFsdWUgPSBnZXRQcm9wZXJ0eShzdGF0ZSwgYXNPYmplY3QodmFsdWUpLCAibmFtZSIp
OwotICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKLQotICAgICAg
ICAgICAgYWxnb3JpdGhtTmFtZSA9IGNvbnZlcnQ8SURMRE9NU3RyaW5nPihzdGF0ZSwgbmFtZVZh
bHVlKTsKLSAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0gICAg
ICAgIH0KLSAgICB9Ci0KLSAgICBpZiAoIWFsZ29yaXRobU5hbWUuY29udGFpbnNPbmx5QVNDSUko
KSkgewotICAgICAgICB0aHJvd1N5bnRheEVycm9yKCZzdGF0ZSwgc2NvcGUpOwotICAgICAgICBy
ZXR1cm4geyB9OwotICAgIH0KLQotICAgIGF1dG8gaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRo
bVJlZ2lzdHJ5OjpzaW5nbGV0b24oKS5pZGVudGlmaWVyKGFsZ29yaXRobU5hbWUpOwotICAgIGlm
ICghaWRlbnRpZmllcikgewotICAgICAgICB0aHJvd05vdFN1cHBvcnRlZEVycm9yKHN0YXRlLCBz
Y29wZSk7Ci0gICAgICAgIHJldHVybiB7IH07Ci0gICAgfQotCi0gICAgcmV0dXJuIGlkZW50aWZp
ZXIudmFsdWUoKTsKLX0KLQotc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllcj4gb3B0aW9uYWxIYXNoQWxnb3JpdGhtKEV4ZWNTdGF0ZSYgc3RhdGUsIFRocm93U2Nv
cGUmIHNjb3BlLCBKU09iamVjdCogb2JqZWN0KQotewotICAgIGF1dG8gaGFzaCA9IGdldFByb3Bl
cnR5KHN0YXRlLCBvYmplY3QsICJoYXNoIik7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgeyB9KTsKLQotICAgIGlmIChoYXNoLmlzVW5kZWZpbmVkT3JOdWxsKCkpCi0gICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICByZXR1cm4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9u
YXJ5OjpwYXJzZUFsZ29yaXRobUlkZW50aWZpZXIoc3RhdGUsIHNjb3BlLCBoYXNoKTsKLX0KLQot
c3RhdGljIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgcmVxdWlyZWRIYXNoQWxnb3JpdGhtKEV4
ZWNTdGF0ZSYgc3RhdGUsIFRocm93U2NvcGUmIHNjb3BlLCBKU09iamVjdCogb2JqZWN0KQotewot
ICAgIGF1dG8gcmVzdWx0ID0gb3B0aW9uYWxIYXNoQWxnb3JpdGhtKHN0YXRlLCBzY29wZSwgb2Jq
ZWN0KTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotCi0gICAgaWYgKCFy
ZXN1bHQpIHsKLSAgICAgICAgdGhyb3dOb3RTdXBwb3J0ZWRFcnJvcihzdGF0ZSwgc2NvcGUpOwot
ICAgICAgICByZXR1cm4geyB9OwotICAgIH0KLQotICAgIHJldHVybiByZXN1bHQudmFsdWUoKTsK
LX0KLQotc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4g
Y3JlYXRlQWVzQ2JjUGFyYW1zKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFsdWUgdmFsdWUpCi17Ci0g
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoc3RhdGUudm0oKSk7Ci0KLSAgICBp
ZiAoIXZhbHVlLmlzT2JqZWN0KCkpIHsKLSAgICAgICAgdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBz
Y29wZSk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLQotICAgIGF1dG8gaXYgPSBn
ZXRQcm9wZXJ0eShzdGF0ZSwgYXNPYmplY3QodmFsdWUpLCAiaXYiKTsKLSAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotCi0gICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3
IENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0ZWQpOwotCi0gICAgYXV0byBpdkRh
dGEgPSBjcnlwdG9PcGVyYXRpb25EYXRhRnJvbUpTVmFsdWUoc3RhdGUsIHNjb3BlLCBpdik7Ci0g
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKLQotICAgIGlmIChpdkRhdGEuc2Vj
b25kICE9IDE2KSB7Ci0gICAgICAgIHRocm93RXhjZXB0aW9uKCZzdGF0ZSwgc2NvcGUsIGNyZWF0
ZUVycm9yKCZzdGF0ZSwgIkFFUy1DQkMgaW5pdGlhbGl6YXRpb24gZGF0YSBtdXN0IGJlIDE2IGJ5
dGVzIikpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0KLSAgICBtZW1jcHkocmVz
dWx0LT5pdi5kYXRhKCksIGl2RGF0YS5maXJzdCwgaXZEYXRhLnNlY29uZCk7Ci0KLSAgICByZXR1
cm4gV1RGTW92ZShyZXN1bHQpOwotfQotCi1zdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnNEZXByZWNhdGVkPiBjcmVhdGVBZXNLZXlHZW5QYXJhbXMoRXhlY1N0YXRlJiBzdGF0
ZSwgSlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RShzdGF0ZS52bSgpKTsKLQotICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSkgewotICAgICAgICB0
aHJvd1R5cGVFcnJvcigmc3RhdGUsIHNjb3BlKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0g
ICAgfQotCi0gICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobUFl
c0tleUdlblBhcmFtc0RlcHJlY2F0ZWQpOwotCi0gICAgYXV0byBsZW5ndGhWYWx1ZSA9IGdldFBy
b3BlcnR5KHN0YXRlLCBhc09iamVjdCh2YWx1ZSksICJsZW5ndGgiKTsKLSAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKLQotICAgIHJlc3VsdC0+bGVuZ3RoID0gY29udmVy
dDxJRExFbmZvcmNlUmFuZ2VBZGFwdG9yPElETFVuc2lnbmVkU2hvcnQ+PihzdGF0ZSwgbGVuZ3Ro
VmFsdWUpOwotCi0gICAgcmV0dXJuIFdURk1vdmUocmVzdWx0KTsKLX0KLQotc3RhdGljIFJlZlB0
cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gY3JlYXRlSG1hY1BhcmFtcyhF
eGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlKQotewotICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHN0YXRlLnZtKCkpOwotCi0gICAgaWYgKCF2YWx1ZS5pc09iamVjdCgp
KSB7Ci0gICAgICAgIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUpOwotICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLSAgICB9Ci0KLSAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgQ3J5
cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQpOwotCi0gICAgcmVzdWx0LT5oYXNoID0g
cmVxdWlyZWRIYXNoQWxnb3JpdGhtKHN0YXRlLCBzY29wZSwgYXNPYmplY3QodmFsdWUpKTsKLSAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotCi0gICAgcmV0dXJuIFdURk1vdmUo
cmVzdWx0KTsKLX0KLQotc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVw
cmVjYXRlZD4gY3JlYXRlSG1hY0tleVBhcmFtcyhFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZh
bHVlKQotewotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHN0YXRlLnZtKCkp
OwotCi0gICAgaWYgKCF2YWx1ZS5pc09iamVjdCgpKSB7Ci0gICAgICAgIHRocm93VHlwZUVycm9y
KCZzdGF0ZSwgc2NvcGUpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0KLSAgICBh
dXRvIHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtc0Rl
cHJlY2F0ZWQpOwotCi0gICAgcmVzdWx0LT5oYXNoID0gcmVxdWlyZWRIYXNoQWxnb3JpdGhtKHN0
YXRlLCBzY29wZSwgYXNPYmplY3QodmFsdWUpKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB7IH0pOwotCi0gICAgYXV0byBsZW5ndGhWYWx1ZSA9IGdldFByb3BlcnR5KHN0YXRlLCBh
c09iamVjdCh2YWx1ZSksICJsZW5ndGgiKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBudWxscHRyKTsKLQotICAgIHJlc3VsdC0+bGVuZ3RoID0gY29udmVydDxJRExVbnNpZ25lZFNo
b3J0PihzdGF0ZSwgbGVuZ3RoVmFsdWUpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IG51bGxwdHIpOwotCi0gICAgcmVzdWx0LT5oYXNMZW5ndGggPSB0cnVlOwotCi0gICAgcmV0dXJu
IFdURk1vdmUocmVzdWx0KTsKLX0KLQotc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzRGVwcmVjYXRlZD4gY3JlYXRlUnNhS2V5R2VuUGFyYW1zKEV4ZWNTdGF0ZSYgc3RhdGUs
IEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgVk0mIHZtID0gc3RhdGUudm0oKTsKLSAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0KLSAgICBpZiAoIXZhbHVlLmlzT2JqZWN0
KCkpIHsKLSAgICAgICAgdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBzY29wZSk7Ci0gICAgICAgIHJl
dHVybiBudWxscHRyOwotICAgIH0KLQotICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBD
cnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXNEZXByZWNhdGVkKTsKLQotICAgIGF1dG8gbW9k
dWx1c0xlbmd0aFZhbHVlID0gZ2V0UHJvcGVydHkoc3RhdGUsIGFzT2JqZWN0KHZhbHVlKSwgIm1v
ZHVsdXNMZW5ndGgiKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsK
LQotICAgIC8vIEZJWE1FOiBXaHkgbm8gRW5mb3JjZVJhbmdlPyBGaWxlZCBhcyA8aHR0cHM6Ly93
d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD0yMzc3OT4uCi0gICAgcmVzdWx0
LT5tb2R1bHVzTGVuZ3RoID0gY29udmVydDxJRExVbnNpZ25lZExvbmc+KHN0YXRlLCBtb2R1bHVz
TGVuZ3RoVmFsdWUpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwot
Ci0gICAgYXV0byBwdWJsaWNFeHBvbmVudFZhbHVlID0gZ2V0UHJvcGVydHkoc3RhdGUsIGFzT2Jq
ZWN0KHZhbHVlKSwgInB1YmxpY0V4cG9uZW50Iik7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgbnVsbHB0cik7Ci0KLSAgICBhdXRvIHB1YmxpY0V4cG9uZW50QXJyYXkgPSB0b1Vuc2hh
cmVkVWludDhBcnJheSh2bSwgcHVibGljRXhwb25lbnRWYWx1ZSk7Ci0gICAgaWYgKCFwdWJsaWNF
eHBvbmVudEFycmF5KSB7Ci0gICAgICAgIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUsIEFT
Q0lJTGl0ZXJhbCgiRXhwZWN0ZWQgYSBVaW50OEFycmF5IGluIHB1YmxpY0V4cG9uZW50IikpOwot
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgcmVzdWx0LT5wdWJsaWNFeHBvbmVu
dC5hcHBlbmQocHVibGljRXhwb25lbnRBcnJheS0+ZGF0YSgpLCBwdWJsaWNFeHBvbmVudEFycmF5
LT5ieXRlTGVuZ3RoKCkpOwotCi0gICAgaWYgKGF1dG8gb3B0aW9uYWxIYXNoID0gb3B0aW9uYWxI
YXNoQWxnb3JpdGhtKHN0YXRlLCBzY29wZSwgYXNPYmplY3QodmFsdWUpKSkgewotICAgICAgICBy
ZXN1bHQtPmhhc0hhc2ggPSB0cnVlOwotICAgICAgICByZXN1bHQtPmhhc2ggPSBvcHRpb25hbEhh
c2gudmFsdWUoKTsKLSAgICB9Ci0KLSAgICByZXR1cm4gV1RGTW92ZShyZXN1bHQpOwotfQotCi1z
dGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBjcmVhdGVS
c2FLZXlQYXJhbXNXaXRoSGFzaChFeGVjU3RhdGUmLCBKU1ZhbHVlKQotewotICAgIC8vIFdlYkNy
eXB0byBSU0EgYWxnb3JpdGhtcyBjdXJyZW50bHkgZG8gbm90IHRha2UgYW55IHBhcmFtZXRlcnMg
dG8gaW1wb3J0S2V5LgotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVJz
YUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZCk7Ci19Ci0KLXN0YXRpYyBSZWZQdHI8Q3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IGNyZWF0ZVJzYU9hZXBQYXJhbXMoRXhlY1N0
YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRShzdGF0ZS52bSgpKTsKLQotICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSkgewot
ICAgICAgICB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIHNjb3BlKTsKLSAgICAgICAgcmV0dXJuIG51
bGxwdHI7Ci0gICAgfQotCi0gICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IENyeXB0b0Fs
Z29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVkKTsKLQotICAgIHJlc3VsdC0+aGFzaCA9IHJl
cXVpcmVkSGFzaEFsZ29yaXRobShzdGF0ZSwgc2NvcGUsIGFzT2JqZWN0KHZhbHVlKSk7Ci0gICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKLQotICAgIGF1dG8gbGFiZWxWYWx1ZSA9
IGdldFByb3BlcnR5KHN0YXRlLCBhc09iamVjdCh2YWx1ZSksICJsYWJlbCIpOwotICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0KLSAgICByZXN1bHQtPmhhc0xhYmVsID0gIWxh
YmVsVmFsdWUuaXNVbmRlZmluZWRPck51bGwoKTsKLSAgICBpZiAoIXJlc3VsdC0+aGFzTGFiZWwp
Ci0gICAgICAgIHJldHVybiBXVEZNb3ZlKHJlc3VsdCk7Ci0KLSAgICBhdXRvIGxhYmVsRGF0YSA9
IGNyeXB0b09wZXJhdGlvbkRhdGFGcm9tSlNWYWx1ZShzdGF0ZSwgc2NvcGUsIGxhYmVsVmFsdWUp
OwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0KLSAgICByZXN1bHQtPmxh
YmVsLmFwcGVuZChsYWJlbERhdGEuZmlyc3QsIGxhYmVsRGF0YS5zZWNvbmQpOwotCi0gICAgcmV0
dXJuIFdURk1vdmUocmVzdWx0KTsKLX0KLQotc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1Q
YXJhbWV0ZXJzRGVwcmVjYXRlZD4gY3JlYXRlUnNhU3NhUGFyYW1zKEV4ZWNTdGF0ZSYgc3RhdGUs
IEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
c3RhdGUudm0oKSk7Ci0KLSAgICBpZiAoIXZhbHVlLmlzT2JqZWN0KCkpIHsKLSAgICAgICAgdGhy
b3dUeXBlRXJyb3IoJnN0YXRlLCBzY29wZSk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAg
IH0KLQotICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1Sc2FT
c2FQYXJhbXNEZXByZWNhdGVkKTsKLQotICAgIHJlc3VsdC0+aGFzaCA9IHJlcXVpcmVkSGFzaEFs
Z29yaXRobShzdGF0ZSwgc2NvcGUsIGFzT2JqZWN0KHZhbHVlKSk7Ci0gICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgeyB9KTsKLQotICAgIHJldHVybiBXVEZNb3ZlKHJlc3VsdCk7Ci19Ci0K
LVJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gSlNDcnlwdG9BbGdv
cml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yRW5jcnlwdChFeGVjU3RhdGUmIHN0
YXRlLCBUaHJvd1Njb3BlJiBzY29wZSwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0
aG0sIEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgc3dpdGNoIChhbGdvcml0aG0pIHsKLSAgICBjYXNl
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQUVTX1BLQ1MxX3YxXzU6Ci0gICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkKTsK
LSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQVNTQV9QS0NTMV92MV81Ogot
ICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBX1BTUzoKLSAgICAgICAgdGhy
b3dOb3RTdXBwb3J0ZWRFcnJvcihzdGF0ZSwgc2NvcGUpOwotICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQV9PQUVQOgotICAgICAg
ICByZXR1cm4gY3JlYXRlUnNhT2FlcFBhcmFtcyhzdGF0ZSwgdmFsdWUpOwotICAgIGNhc2UgQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6RUNEU0E6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyOjpFQ0RIOgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVT
X0NUUjoKLSAgICAgICAgdGhyb3dOb3RTdXBwb3J0ZWRFcnJvcihzdGF0ZSwgc2NvcGUpOwotICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6
OkFFU19DQkM6Ci0gICAgICAgIHJldHVybiBjcmVhdGVBZXNDYmNQYXJhbXMoc3RhdGUsIHZhbHVl
KTsKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19HQ006Ci0gICAgY2Fz
ZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0ZCOgotICAgICAgICB0aHJvd05vdFN1
cHBvcnRlZEVycm9yKHN0YXRlLCBzY29wZSk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAg
IGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0tXOgotICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCk7Ci0gICAg
Y2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpITUFDOgotICAgIGNhc2UgQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllcjo6U0hBXzE6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyOjpTSEFfMjI0OgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzI1
NjoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8zODQ6Ci0gICAgY2Fz
ZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfNTEyOgotICAgIGNhc2UgQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllcjo6SEtERjoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXI6OlBCS0RGMjoKLSAgICAgICAgdGhyb3dOb3RTdXBwb3J0ZWRFcnJvcihzdGF0ZSwgc2NvcGUp
OwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgUkVMRUFTRV9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLQotUmVmUHRyPENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNy
ZWF0ZVBhcmFtZXRlcnNGb3JEZWNyeXB0KEV4ZWNTdGF0ZSYgc3RhdGUsIFRocm93U2NvcGUmIHNj
b3BlLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgSlNWYWx1ZSB2YWx1ZSkK
LXsKLSAgICBzd2l0Y2ggKGFsZ29yaXRobSkgewotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllcjo6UlNBRVNfUEtDUzFfdjFfNToKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQpOwotICAgIGNhc2UgQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllcjo6UlNBU1NBX1BLQ1MxX3YxXzU6Ci0gICAgY2FzZSBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyOjpSU0FfUFNTOgotICAgICAgICB0aHJvd05vdFN1cHBvcnRlZEVycm9y
KHN0YXRlLCBzY29wZSk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIGNhc2UgQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBX09BRVA6Ci0gICAgICAgIHJldHVybiBjcmVhdGVSc2FP
YWVwUGFyYW1zKHN0YXRlLCB2YWx1ZSk7Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyOjpFQ0RTQToKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkVDREg6Ci0g
ICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ1RSOgotICAgICAgICB0aHJv
d05vdFN1cHBvcnRlZEVycm9yKHN0YXRlLCBzY29wZSk7Ci0gICAgICAgIHJldHVybiBudWxscHRy
OwotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0NCQzoKLSAgICAgICAg
cmV0dXJuIGNyZWF0ZUFlc0NiY1BhcmFtcyhzdGF0ZSwgdmFsdWUpOwotICAgIGNhc2UgQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0dDTToKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlk
ZW50aWZpZXI6OkFFU19DRkI6Ci0gICAgICAgIHRocm93Tm90U3VwcG9ydGVkRXJyb3Ioc3RhdGUs
IHNjb3BlKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyOjpBRVNfS1c6Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkKTsKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXI6OkhNQUM6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpT
SEFfMToKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8yMjQ6Ci0gICAg
Y2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMjU2OgotICAgIGNhc2UgQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzM4NDoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlk
ZW50aWZpZXI6OlNIQV81MTI6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpI
S0RGOgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UEJLREYyOgotICAgICAg
ICB0aHJvd05vdFN1cHBvcnRlZEVycm9yKHN0YXRlLCBzY29wZSk7Ci0gICAgICAgIHJldHVybiBu
dWxscHRyOwotICAgIH0KLSAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJl
dHVybiBudWxscHRyOwotfQotCi1SZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJl
Y2F0ZWQ+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvclNp
Z24oRXhlY1N0YXRlJiBzdGF0ZSwgVGhyb3dTY29wZSYgc2NvcGUsIENyeXB0b0FsZ29yaXRobUlk
ZW50aWZpZXIgYWxnb3JpdGhtLCBKU1ZhbHVlIHZhbHVlKQotewotICAgIHN3aXRjaCAoYWxnb3Jp
dGhtKSB7Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FFU19QS0NTMV92
MV81OgotICAgICAgICB0aHJvd05vdFN1cHBvcnRlZEVycm9yKHN0YXRlLCBzY29wZSk7Ci0gICAg
ICAgIHJldHVybiBudWxscHRyOwotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6
UlNBU1NBX1BLQ1MxX3YxXzU6Ci0gICAgICAgIHJldHVybiBjcmVhdGVSc2FTc2FQYXJhbXMoc3Rh
dGUsIHZhbHVlKTsKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQV9QU1M6
Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FfT0FFUDoKLSAgICBjYXNl
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkVDRFNBOgotICAgIGNhc2UgQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllcjo6RUNESDoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6
OkFFU19DVFI6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0JDOgot
ICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0dDTToKLSAgICBjYXNlIENy
eXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19DRkI6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyOjpBRVNfS1c6Ci0gICAgICAgIHRocm93Tm90U3VwcG9ydGVkRXJyb3Ioc3Rh
dGUsIHNjb3BlKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgY2FzZSBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyOjpITUFDOgotICAgICAgICByZXR1cm4gY3JlYXRlSG1hY1BhcmFtcyhz
dGF0ZSwgdmFsdWUpOwotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzE6
Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMjI0OgotICAgIGNhc2Ug
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzI1NjoKLSAgICBjYXNlIENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXI6OlNIQV8zODQ6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyOjpTSEFfNTEyOgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6SEtERjoK
LSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlBCS0RGMjoKLSAgICAgICAgdGhy
b3dOb3RTdXBwb3J0ZWRFcnJvcihzdGF0ZSwgc2NvcGUpOwotICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLSAgICB9Ci0gICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4g
bnVsbHB0cjsKLX0KLQotUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVk
PiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JWZXJpZnko
RXhlY1N0YXRlJiBzdGF0ZSwgVGhyb3dTY29wZSYgc2NvcGUsIENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXIgYWxnb3JpdGhtLCBKU1ZhbHVlIHZhbHVlKQotewotICAgIHN3aXRjaCAoYWxnb3JpdGht
KSB7Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FFU19QS0NTMV92MV81
OgotICAgICAgICB0aHJvd05vdFN1cHBvcnRlZEVycm9yKHN0YXRlLCBzY29wZSk7Ci0gICAgICAg
IHJldHVybiBudWxscHRyOwotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNB
U1NBX1BLQ1MxX3YxXzU6Ci0gICAgICAgIHJldHVybiBjcmVhdGVSc2FTc2FQYXJhbXMoc3RhdGUs
IHZhbHVlKTsKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQV9QU1M6Ci0g
ICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FfT0FFUDoKLSAgICBjYXNlIENy
eXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkVDRFNBOgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllcjo6RUNESDoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFF
U19DVFI6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0JDOgotICAg
IGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0dDTToKLSAgICBjYXNlIENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19DRkI6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyOjpBRVNfS1c6Ci0gICAgICAgIHRocm93Tm90U3VwcG9ydGVkRXJyb3Ioc3RhdGUs
IHNjb3BlKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyOjpITUFDOgotICAgICAgICByZXR1cm4gY3JlYXRlSG1hY1BhcmFtcyhzdGF0
ZSwgdmFsdWUpOwotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzE6Ci0g
ICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMjI0OgotICAgIGNhc2UgQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzI1NjoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXI6OlNIQV8zODQ6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
OjpTSEFfNTEyOgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6SEtERjoKLSAg
ICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlBCS0RGMjoKLSAgICAgICAgdGhyb3dO
b3RTdXBwb3J0ZWRFcnJvcihzdGF0ZSwgc2NvcGUpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LSAgICB9Ci0gICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gbnVs
bHB0cjsKLX0KLQotUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBK
U0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JEaWdlc3QoRXhl
Y1N0YXRlJiBzdGF0ZSwgVGhyb3dTY29wZSYgc2NvcGUsIENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXIgYWxnb3JpdGhtLCBKU1ZhbHVlKQotewotICAgIHN3aXRjaCAoYWxnb3JpdGhtKSB7Ci0gICAg
Y2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FFU19QS0NTMV92MV81OgotICAgIGNh
c2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBU1NBX1BLQ1MxX3YxXzU6Ci0gICAgY2Fz
ZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FfUFNTOgotICAgIGNhc2UgQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllcjo6UlNBX09BRVA6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyOjpFQ0RTQToKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkVDREg6
Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ1RSOgotICAgIGNhc2Ug
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0NCQzoKLSAgICBjYXNlIENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXI6OkFFU19HQ006Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyOjpBRVNfQ0ZCOgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0tX
OgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6SE1BQzoKLSAgICAgICAgdGhy
b3dOb3RTdXBwb3J0ZWRFcnJvcihzdGF0ZSwgc2NvcGUpOwotICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8xOgotICAgIGNhc2Ug
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzIyNDoKLSAgICBjYXNlIENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXI6OlNIQV8yNTY6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyOjpTSEFfMzg0OgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzUx
MjoKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
c0RlcHJlY2F0ZWQpOwotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6SEtERjoK
LSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlBCS0RGMjoKLSAgICAgICAgdGhy
b3dOb3RTdXBwb3J0ZWRFcnJvcihzdGF0ZSwgc2NvcGUpOwotICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLSAgICB9Ci0gICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4g
bnVsbHB0cjsKLX0KLQotUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVk
PiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JHZW5lcmF0
ZUtleShFeGVjU3RhdGUmIHN0YXRlLCBUaHJvd1Njb3BlJiBzY29wZSwgQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllciBhbGdvcml0aG0sIEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgc3dpdGNoIChhbGdv
cml0aG0pIHsKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQUVTX1BLQ1Mx
X3YxXzU6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FTU0FfUEtDUzFf
djFfNToKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQV9QU1M6Ci0gICAg
Y2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FfT0FFUDoKLSAgICAgICAgcmV0dXJu
IGNyZWF0ZVJzYUtleUdlblBhcmFtcyhzdGF0ZSwgdmFsdWUpOwotICAgIGNhc2UgQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllcjo6RUNEU0E6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyOjpFQ0RIOgotICAgICAgICB0aHJvd05vdFN1cHBvcnRlZEVycm9yKHN0YXRlLCBzY29wZSk7
Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
Zmllcjo6QUVTX0NUUjoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19D
QkM6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfR0NNOgotICAgIGNh
c2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0NGQjoKLSAgICBjYXNlIENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXI6OkFFU19LVzoKLSAgICAgICAgcmV0dXJuIGNyZWF0ZUFlc0tleUdl
blBhcmFtcyhzdGF0ZSwgdmFsdWUpOwotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
cjo6SE1BQzoKLSAgICAgICAgcmV0dXJuIGNyZWF0ZUhtYWNLZXlQYXJhbXMoc3RhdGUsIHZhbHVl
KTsKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8xOgotICAgIGNhc2Ug
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzIyNDoKLSAgICBjYXNlIENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXI6OlNIQV8yNTY6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyOjpTSEFfMzg0OgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzUx
MjoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkhLREY6Ci0gICAgY2FzZSBD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpQQktERjI6Ci0gICAgICAgIHRocm93Tm90U3VwcG9y
dGVkRXJyb3Ioc3RhdGUsIHNjb3BlKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQot
ICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19
Ci0KLVJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gSlNDcnlwdG9B
bGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yRGVyaXZlS2V5KEV4ZWNTdGF0
ZSYgc3RhdGUsIFRocm93U2NvcGUmIHNjb3BlLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFs
Z29yaXRobSwgSlNWYWx1ZSkKLXsKLSAgICBzd2l0Y2ggKGFsZ29yaXRobSkgewotICAgIGNhc2Ug
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBRVNfUEtDUzFfdjFfNToKLSAgICBjYXNlIENy
eXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQVNTQV9QS0NTMV92MV81OgotICAgIGNhc2UgQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBX1BTUzoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXI6OlJTQV9PQUVQOgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
cjo6RUNEU0E6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpFQ0RIOgotICAg
IGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0NUUjoKLSAgICBjYXNlIENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19DQkM6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyOjpBRVNfR0NNOgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6
QUVTX0NGQjoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19LVzoKLSAg
ICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkhNQUM6Ci0gICAgY2FzZSBDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMToKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXI6OlNIQV8yMjQ6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFf
MjU2OgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzM4NDoKLSAgICBj
YXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV81MTI6Ci0gICAgY2FzZSBDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyOjpIS0RGOgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
Zmllcjo6UEJLREYyOgotICAgICAgICB0aHJvd05vdFN1cHBvcnRlZEVycm9yKHN0YXRlLCBzY29w
ZSk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLSAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBudWxscHRyOwotfQotCi1SZWZQdHI8Q3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6
Y3JlYXRlUGFyYW1ldGVyc0ZvckRlcml2ZUJpdHMoRXhlY1N0YXRlJiBzdGF0ZSwgVGhyb3dTY29w
ZSYgc2NvcGUsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU1ZhbHVlKQot
ewotICAgIHN3aXRjaCAoYWxnb3JpdGhtKSB7Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyOjpSU0FFU19QS0NTMV92MV81OgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
Zmllcjo6UlNBU1NBX1BLQ1MxX3YxXzU6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyOjpSU0FfUFNTOgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBX09B
RVA6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpFQ0RTQToKLSAgICBjYXNl
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkVDREg6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyOjpBRVNfQ1RSOgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
cjo6QUVTX0NCQzoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19HQ006
Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0ZCOgotICAgIGNhc2Ug
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0tXOgotICAgIGNhc2UgQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllcjo6SE1BQzoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6
OlNIQV8xOgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzIyNDoKLSAg
ICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8yNTY6Ci0gICAgY2FzZSBDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMzg0OgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllcjo6U0hBXzUxMjoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6
OkhLREY6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpQQktERjI6Ci0gICAg
ICAgIHRocm93Tm90U3VwcG9ydGVkRXJyb3Ioc3RhdGUsIHNjb3BlKTsKLSAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgfQotICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
cmV0dXJuIG51bGxwdHI7Ci19Ci0KLVJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVw
cmVjYXRlZD4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9y
SW1wb3J0S2V5KEV4ZWNTdGF0ZSYgc3RhdGUsIFRocm93U2NvcGUmIHNjb3BlLCBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgSlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBzd2l0Y2gg
KGFsZ29yaXRobSkgewotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBRVNf
UEtDUzFfdjFfNToKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQVNTQV9Q
S0NTMV92MV81OgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBX1BTUzoK
LSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQV9PQUVQOgotICAgICAgICBy
ZXR1cm4gY3JlYXRlUnNhS2V5UGFyYW1zV2l0aEhhc2goc3RhdGUsIHZhbHVlKTsKLSAgICBjYXNl
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkVDRFNBOgotICAgIGNhc2UgQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllcjo6RUNESDoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6
OkFFU19DVFI6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0JDOgot
ICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0dDTToKLSAgICBjYXNlIENy
eXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19DRkI6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyOjpBRVNfS1c6Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkKTsKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXI6OkhNQUM6Ci0gICAgICAgIHJldHVybiBjcmVhdGVIbWFjUGFyYW1zKHN0YXRl
LCB2YWx1ZSk7Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMToKLSAg
ICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8yMjQ6Ci0gICAgY2FzZSBDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMjU2OgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllcjo6U0hBXzM4NDoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6
OlNIQV81MTI6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpIS0RGOgotICAg
IGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UEJLREYyOgotICAgICAgICB0aHJvd05v
dFN1cHBvcnRlZEVycm9yKHN0YXRlLCBzY29wZSk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwot
ICAgIH0KLSAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBudWxs
cHRyOwotfQotCi1SZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IEpT
Q3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckV4cG9ydEtleShF
eGVjU3RhdGUmIHN0YXRlLCBUaHJvd1Njb3BlJiBzY29wZSwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
ZmllciBhbGdvcml0aG0sIEpTVmFsdWUpCi17Ci0gICAgc3dpdGNoIChhbGdvcml0aG0pIHsKLSAg
ICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQUVTX1BLQ1MxX3YxXzU6Ci0gICAg
Y2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FTU0FfUEtDUzFfdjFfNToKLSAgICBj
YXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQV9QU1M6Ci0gICAgY2FzZSBDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyOjpSU0FfT0FFUDoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlk
ZW50aWZpZXI6OkVDRFNBOgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6RUNE
SDoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19DVFI6Ci0gICAgY2Fz
ZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0JDOgotICAgIGNhc2UgQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllcjo6QUVTX0dDTToKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXI6OkFFU19DRkI6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNf
S1c6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpITUFDOgotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCk7
Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMToKLSAgICBjYXNlIENy
eXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8yMjQ6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyOjpTSEFfMjU2OgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
cjo6U0hBXzM4NDoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV81MTI6
Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpIS0RGOgotICAgIGNhc2UgQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UEJLREYyOgotICAgICAgICB0aHJvd05vdFN1cHBvcnRl
ZEVycm9yKHN0YXRlLCBzY29wZSk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLSAg
ICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBudWxscHRyOwotfQot
Ci19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFy
eS5oCShyZXZpc2lvbiAyMjA5MTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Ny
eXB0b0FsZ29yaXRobURpY3Rpb25hcnkuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDYxICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQot
Ci0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllci5oIgotI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+Ci0KLW5hbWVzcGFjZSBKU0MgewotY2xhc3MgRXhlY1N0YXRlOwotY2xhc3MgSlNW
YWx1ZTsKLWNsYXNzIFRocm93U2NvcGU7Ci19Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xh
c3MgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ7Ci0KLWNsYXNzIEpTQ3J5cHRv
QWxnb3JpdGhtRGljdGlvbmFyeSB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXIgcGFyc2VBbGdvcml0aG1JZGVudGlmaWVyKEpTQzo6RXhlY1N0YXRlJiwgSlND
OjpUaHJvd1Njb3BlJiwgSlNDOjpKU1ZhbHVlKTsKLQotICAgIHN0YXRpYyBSZWZQdHI8Q3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IGNyZWF0ZVBhcmFtZXRlcnNGb3JFbmNyeXB0
KEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpUaHJvd1Njb3BlJiwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
ZmllciwgSlNDOjpKU1ZhbHVlKTsKLSAgICBzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnNEZXByZWNhdGVkPiBjcmVhdGVQYXJhbWV0ZXJzRm9yRGVjcnlwdChKU0M6OkV4ZWNT
dGF0ZSYsIEpTQzo6VGhyb3dTY29wZSYsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIsIEpTQzo6
SlNWYWx1ZSk7Ci0gICAgc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVw
cmVjYXRlZD4gY3JlYXRlUGFyYW1ldGVyc0ZvclNpZ24oSlNDOjpFeGVjU3RhdGUmLCBKU0M6OlRo
cm93U2NvcGUmLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLCBKU0M6OkpTVmFsdWUpOwotICAg
IHN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IGNyZWF0
ZVBhcmFtZXRlcnNGb3JWZXJpZnkoSlNDOjpFeGVjU3RhdGUmLCBKU0M6OlRocm93U2NvcGUmLCBD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLCBKU0M6OkpTVmFsdWUpOwotICAgIHN0YXRpYyBSZWZQ
dHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IGNyZWF0ZVBhcmFtZXRlcnNG
b3JEaWdlc3QoSlNDOjpFeGVjU3RhdGUmLCBKU0M6OlRocm93U2NvcGUmLCBDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyLCBKU0M6OkpTVmFsdWUpOwotICAgIHN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IGNyZWF0ZVBhcmFtZXRlcnNGb3JHZW5lcmF0ZUtl
eShKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6VGhyb3dTY29wZSYsIENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXIsIEpTQzo6SlNWYWx1ZSk7Ci0gICAgc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1Q
YXJhbWV0ZXJzRGVwcmVjYXRlZD4gY3JlYXRlUGFyYW1ldGVyc0ZvckRlcml2ZUtleShKU0M6OkV4
ZWNTdGF0ZSYsIEpTQzo6VGhyb3dTY29wZSYsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIsIEpT
Qzo6SlNWYWx1ZSk7Ci0gICAgc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
RGVwcmVjYXRlZD4gY3JlYXRlUGFyYW1ldGVyc0ZvckRlcml2ZUJpdHMoSlNDOjpFeGVjU3RhdGUm
LCBKU0M6OlRocm93U2NvcGUmLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLCBKU0M6OkpTVmFs
dWUpOwotICAgIHN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0
ZWQ+IGNyZWF0ZVBhcmFtZXRlcnNGb3JJbXBvcnRLZXkoSlNDOjpFeGVjU3RhdGUmLCBKU0M6OlRo
cm93U2NvcGUmLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLCBKU0M6OkpTVmFsdWUpOwotICAg
IHN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IGNyZWF0
ZVBhcmFtZXRlcnNGb3JFeHBvcnRLZXkoSlNDOjpFeGVjU3RhdGUmLCBKU0M6OlRocm93U2NvcGUm
LCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLCBKU0M6OkpTVmFsdWUpOwotfTsKLQotfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0su
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvS2V5
U2VyaWFsaXphdGlvbkpXSy5jcHAJKHJldmlzaW9uIDIyMDkxOSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSy5jcHAJKG5vbmV4aXN0ZW50
KQpAQCAtMSw3NzAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIkpTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSy5oIgotCi0jaWYgRU5BQkxF
KFNVQlRMRV9DUllQVE8pCi0KLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG0uaCIKLSNpbmNsdWRl
ICJDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZC5oIgotI2luY2x1ZGUgIkNyeXB0
b0FsZ29yaXRobVJlZ2lzdHJ5LmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFy
YW1zV2l0aEhhc2hEZXByZWNhdGVkLmgiCi0jaW5jbHVkZSAiQ3J5cHRvS2V5LmgiCi0jaW5jbHVk
ZSAiQ3J5cHRvS2V5QUVTLmgiCi0jaW5jbHVkZSAiQ3J5cHRvS2V5RGF0YU9jdGV0U2VxdWVuY2Uu
aCIKLSNpbmNsdWRlICJDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cy5oIgotI2luY2x1ZGUgIkNy
eXB0b0tleUhNQUMuaCIKLSNpbmNsdWRlICJDcnlwdG9LZXlSU0EuaCIKLSNpbmNsdWRlICJKU0RP
TUJpbmRpbmcuaCIKLSNpbmNsdWRlIDxoZWFwL1N0cm9uZ0lubGluZXMuaD4KLSNpbmNsdWRlIDxy
dW50aW1lL0pTQ0lubGluZXMuaD4KLSNpbmNsdWRlIDxydW50aW1lL0pTT05PYmplY3QuaD4KLSNp
bmNsdWRlIDxydW50aW1lL09iamVjdENvbnN0cnVjdG9yLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQv
QmFzZTY0Lmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotc3RhdGljIGJvb2wgZ2V0SlNBcnJheUZyb21KU09OKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmpl
Y3QqIGpzb24sIGNvbnN0IGNoYXIqIGtleSwgSlNBcnJheSomIHJlc3VsdCkKLXsKLSAgICBWTSYg
dm0gPSBleGVjLT52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZt
KTsKLQotICAgIElkZW50aWZpZXIgaWRlbnRpZmllciA9IElkZW50aWZpZXI6OmZyb21TdHJpbmco
ZXhlYywga2V5KTsKLSAgICBQcm9wZXJ0eVNsb3Qgc2xvdChqc29uLCBQcm9wZXJ0eVNsb3Q6Oklu
dGVybmFsTWV0aG9kVHlwZTo6R2V0KTsKLQotICAgIGlmICghanNvbi0+Z2V0UHJvcGVydHlTbG90
KGV4ZWMsIGlkZW50aWZpZXIsIHNsb3QpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBK
U1ZhbHVlIHZhbHVlID0gc2xvdC5nZXRWYWx1ZShleGVjLCBpZGVudGlmaWVyKTsKLSAgICBzY29w
ZS5hc3NlcnROb0V4Y2VwdGlvbigpOwotICAgIGlmICghaXNKU0FycmF5KHZhbHVlKSkgewotICAg
ICAgICB0aHJvd1R5cGVFcnJvcihleGVjLCBzY29wZSwgU3RyaW5nOjpmb3JtYXQoIkV4cGVjdGVk
IGFuIGFycmF5IGZvciBcIiVzXCIgSlNPTiBrZXkiLCAga2V5KSk7Ci0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICB9Ci0KLSAgICByZXN1bHQgPSBhc0FycmF5KHZhbHVlKTsKLQotICAgIHJldHVy
biB0cnVlOwotfQotCi1zdGF0aWMgYm9vbCBnZXRTdHJpbmdGcm9tSlNPTihFeGVjU3RhdGUqIGV4
ZWMsIEpTT2JqZWN0KiBqc29uLCBjb25zdCBjaGFyKiBrZXksIFN0cmluZyYgcmVzdWx0KQotewot
ICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOwotCi0gICAgSWRlbnRpZmllciBpZGVudGlmaWVyID0gSWRlbnRpZmllcjo6ZnJv
bVN0cmluZyhleGVjLCBrZXkpOwotICAgIFByb3BlcnR5U2xvdCBzbG90KGpzb24sIFByb3BlcnR5
U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpHZXQpOwotCi0gICAgaWYgKCFqc29uLT5nZXRQcm9w
ZXJ0eVNsb3QoZXhlYywgaWRlbnRpZmllciwgc2xvdCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LQotICAgIEpTVmFsdWUganNWYWx1ZSA9IHNsb3QuZ2V0VmFsdWUoZXhlYywgaWRlbnRpZmllcik7
Ci0gICAgc2NvcGUuYXNzZXJ0Tm9FeGNlcHRpb24oKTsKLSAgICBpZiAoIWpzVmFsdWUuZ2V0U3Ry
aW5nKGV4ZWMsIHJlc3VsdCkpIHsKLSAgICAgICAgLy8gQ2FuIGdldCBhbiBvdXQgb2YgbWVtb3J5
IGV4Y2VwdGlvbi4KLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwot
ICAgICAgICB0aHJvd1R5cGVFcnJvcihleGVjLCBzY29wZSwgU3RyaW5nOjpmb3JtYXQoIkV4cGVj
dGVkIGEgc3RyaW5nIHZhbHVlIGZvciBcIiVzXCIgSlNPTiBrZXkiLCAga2V5KSk7Ci0gICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotc3RhdGljIGJv
b2wgZ2V0Qm9vbGVhbkZyb21KU09OKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGpzb24sIGNv
bnN0IGNoYXIqIGtleSwgYm9vbCYgcmVzdWx0KQotewotICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7
Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotCi0gICAgSWRlbnRp
ZmllciBpZGVudGlmaWVyID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhleGVjLCBrZXkpOwotICAg
IFByb3BlcnR5U2xvdCBzbG90KGpzb24sIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBl
OjpHZXQpOwotCi0gICAgaWYgKCFqc29uLT5nZXRQcm9wZXJ0eVNsb3QoZXhlYywgaWRlbnRpZmll
ciwgc2xvdCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIEpTVmFsdWUganNWYWx1ZSA9
IHNsb3QuZ2V0VmFsdWUoZXhlYywgaWRlbnRpZmllcik7Ci0gICAgc2NvcGUuYXNzZXJ0Tm9FeGNl
cHRpb24oKTsKLSAgICBpZiAoIWpzVmFsdWUuaXNCb29sZWFuKCkpIHsKLSAgICAgICAgdGhyb3dU
eXBlRXJyb3IoZXhlYywgc2NvcGUsIFN0cmluZzo6Zm9ybWF0KCJFeHBlY3RlZCBhIGJvb2xlYW4g
dmFsdWUgZm9yIFwiJXNcIiBKU09OIGtleSIsICBrZXkpKTsKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIH0KLQotICAgIHJlc3VsdCA9IGpzVmFsdWUuYXNCb29sZWFuKCk7Ci0gICAgcmV0dXJu
IHRydWU7Ci19Ci0KLXN0YXRpYyBib29sIGdldEJpZ0ludGVnZXJWZWN0b3JGcm9tSlNPTihFeGVj
U3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBqc29uLCBjb25zdCBjaGFyKiBrZXksIFZlY3Rvcjx1aW50
OF90PiYgcmVzdWx0KQotewotICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7Ci0gICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotCi0gICAgU3RyaW5nIGJhc2U2NHVybEVuY29k
ZWROdW1iZXI7Ci0gICAgaWYgKCFnZXRTdHJpbmdGcm9tSlNPTihleGVjLCBqc29uLCBrZXksIGJh
c2U2NHVybEVuY29kZWROdW1iZXIpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAo
IWJhc2U2NFVSTERlY29kZShiYXNlNjR1cmxFbmNvZGVkTnVtYmVyLCByZXN1bHQpKSB7Ci0gICAg
ICAgIHRocm93VHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIkNhbm5vdCBkZWNv
ZGUgYmFzZTY0dXJsIGtleSBkYXRhIGluIEpXSyIpKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIH0KLQotICAgIGlmIChyZXN1bHRbMF0gPT0gMCkgewotICAgICAgICB0aHJvd1R5cGVFcnJv
cihleGVjLCBzY29wZSwgQVNDSUlMaXRlcmFsKCJKV0sgQmlnSW50ZWdlciBtdXN0IHV0aWxpemUg
dGhlIG1pbmltdW0gbnVtYmVyIG9mIG9jdGV0cyB0byByZXByZXNlbnQgdGhlIHZhbHVlIikpOwot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLUpT
Q3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSzo6SlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgU3RyaW5nJiBqc29uU3RyaW5nKQotICAgIDogbV9leGVjKGV4
ZWMpCi17Ci0gICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7Ci0KLSAgICBKU1ZhbHVlIGpzb25WYWx1ZSA9IEpTT05QYXJzZShl
eGVjLCBqc29uU3RyaW5nKTsKLSAgICBpZiAoVU5MSUtFTFkoc2NvcGUuZXhjZXB0aW9uKCkpKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoIWpzb25WYWx1ZSB8fCAhanNvblZhbHVlLmlzT2Jq
ZWN0KCkpIHsKLSAgICAgICAgdGhyb3dUeXBlRXJyb3IoZXhlYywgc2NvcGUsIEFTQ0lJTGl0ZXJh
bCgiSW52YWxpZCBKV0sgc2VyaWFsaXphdGlvbiIpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LQotICAgIG1fanNvbi5zZXQodm0sIGFzT2JqZWN0KGpzb25WYWx1ZSkpOwotfQotCi1KU0NyeXB0
b0tleVNlcmlhbGl6YXRpb25KV0s6On5KU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0soKQotewot
fQotCi1zdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBjcmVh
dGVITUFDUGFyYW1ldGVycyhDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGhhc2hGdW5jdGlvbikK
LXsKLSAgICBhdXRvIGhtYWNQYXJhbWV0ZXJzID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0
aG1IbWFjUGFyYW1zRGVwcmVjYXRlZCk7Ci0gICAgaG1hY1BhcmFtZXRlcnMtPmhhc2ggPSBoYXNo
RnVuY3Rpb247Ci0gICAgcmV0dXJuIFdURk1vdmUoaG1hY1BhcmFtZXRlcnMpOwotfQotCi1zdGF0
aWMgUmVmPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBjcmVhdGVSU0FLZXlQ
YXJhbWV0ZXJzV2l0aEhhc2goQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBoYXNoRnVuY3Rpb24p
Ci17Ci0gICAgYXV0byByc2FLZXlQYXJhbWV0ZXJzID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdv
cml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERlcHJlY2F0ZWQpOwotICAgIHJzYUtleVBhcmFtZXRl
cnMtPmhhc0hhc2ggPSB0cnVlOwotICAgIHJzYUtleVBhcmFtZXRlcnMtPmhhc2ggPSBoYXNoRnVu
Y3Rpb247Ci0gICAgcmV0dXJuIFdURk1vdmUocnNhS2V5UGFyYW1ldGVycyk7Ci19Ci0KLXN0ZDo6
b3B0aW9uYWw8Q3J5cHRvQWxnb3JpdGhtUGFpcj4gSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldL
OjpyZWNvbmNpbGVBbGdvcml0aG0oQ3J5cHRvQWxnb3JpdGhtKiBzdWdnZXN0ZWRBbGdvcml0aG0s
IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkKiBzdWdnZXN0ZWRQYXJhbWV0ZXJz
KSBjb25zdAotewotICAgIFZNJiB2bSA9IG1fZXhlYy0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0KLSAgICBpZiAoIWdldFN0cmluZ0Zyb21KU09OKG1f
ZXhlYywgbV9qc29uLmdldCgpLCAiYWxnIiwgbV9qd2tBbGdvcml0aG1OYW1lKSkgewotICAgICAg
ICAvLyBBbGdvcml0aG0gaXMgb3B0aW9uYWwgaW4gSldLLgotICAgICAgICByZXR1cm4gQ3J5cHRv
QWxnb3JpdGhtUGFpciB7IHN1Z2dlc3RlZEFsZ29yaXRobSwgc3VnZ2VzdGVkUGFyYW1ldGVycyB9
OwotICAgIH0KLQotICAgIGF1dG8mIGFsZ29yaXRobVJlZ2lzdHkgPSBDcnlwdG9BbGdvcml0aG1S
ZWdpc3RyeTo6c2luZ2xldG9uKCk7Ci0gICAgUmVmUHRyPENyeXB0b0FsZ29yaXRobT4gYWxnb3Jp
dGhtOwotICAgIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gcGFy
YW1ldGVyczsKLSAgICBpZiAobV9qd2tBbGdvcml0aG1OYW1lID09ICJIUzI1NiIpIHsKLSAgICAg
ICAgYWxnb3JpdGhtID0gYWxnb3JpdGhtUmVnaXN0eS5jcmVhdGUoQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllcjo6SE1BQyk7Ci0gICAgICAgIHBhcmFtZXRlcnMgPSBjcmVhdGVITUFDUGFyYW1ldGVy
cyhDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMjU2KTsKLSAgICB9IGVsc2UgaWYgKG1f
andrQWxnb3JpdGhtTmFtZSA9PSAiSFMzODQiKSB7Ci0gICAgICAgIGFsZ29yaXRobSA9IGFsZ29y
aXRobVJlZ2lzdHkuY3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkhNQUMpOwotICAg
ICAgICBwYXJhbWV0ZXJzID0gY3JlYXRlSE1BQ1BhcmFtZXRlcnMoQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllcjo6U0hBXzM4NCk7Ci0gICAgfSBlbHNlIGlmIChtX2p3a0FsZ29yaXRobU5hbWUgPT0g
IkhTNTEyIikgewotICAgICAgICBhbGdvcml0aG0gPSBhbGdvcml0aG1SZWdpc3R5LmNyZWF0ZShD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpITUFDKTsKLSAgICAgICAgcGFyYW1ldGVycyA9IGNy
ZWF0ZUhNQUNQYXJhbWV0ZXJzKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV81MTIpOwot
ICAgIH0gZWxzZSBpZiAobV9qd2tBbGdvcml0aG1OYW1lID09ICJSUzI1NiIpIHsKLSAgICAgICAg
YWxnb3JpdGhtID0gYWxnb3JpdGhtUmVnaXN0eS5jcmVhdGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
Zmllcjo6UlNBU1NBX1BLQ1MxX3YxXzUpOwotICAgICAgICBwYXJhbWV0ZXJzID0gY3JlYXRlUlNB
S2V5UGFyYW1ldGVyc1dpdGhIYXNoKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8yNTYp
OwotICAgIH0gZWxzZSBpZiAobV9qd2tBbGdvcml0aG1OYW1lID09ICJSUzM4NCIpIHsKLSAgICAg
ICAgYWxnb3JpdGhtID0gYWxnb3JpdGhtUmVnaXN0eS5jcmVhdGUoQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllcjo6UlNBU1NBX1BLQ1MxX3YxXzUpOwotICAgICAgICBwYXJhbWV0ZXJzID0gY3JlYXRl
UlNBS2V5UGFyYW1ldGVyc1dpdGhIYXNoKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8z
ODQpOwotICAgIH0gZWxzZSBpZiAobV9qd2tBbGdvcml0aG1OYW1lID09ICJSUzUxMiIpIHsKLSAg
ICAgICAgYWxnb3JpdGhtID0gYWxnb3JpdGhtUmVnaXN0eS5jcmVhdGUoQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllcjo6UlNBU1NBX1BLQ1MxX3YxXzUpOwotICAgICAgICBwYXJhbWV0ZXJzID0gY3Jl
YXRlUlNBS2V5UGFyYW1ldGVyc1dpdGhIYXNoKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNI
QV81MTIpOwotICAgIH0gZWxzZSBpZiAobV9qd2tBbGdvcml0aG1OYW1lID09ICJSU0ExXzUiKSB7
Ci0gICAgICAgIGFsZ29yaXRobSA9IGFsZ29yaXRobVJlZ2lzdHkuY3JlYXRlKENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXI6OlJTQUVTX1BLQ1MxX3YxXzUpOwotICAgICAgICBwYXJhbWV0ZXJzID0g
YWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERlcHJlY2F0
ZWQpOwotICAgIH0gZWxzZSBpZiAobV9qd2tBbGdvcml0aG1OYW1lID09ICJSU0EtT0FFUCIpIHsK
LSAgICAgICAgYWxnb3JpdGhtID0gYWxnb3JpdGhtUmVnaXN0eS5jcmVhdGUoQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllcjo6UlNBX09BRVApOwotICAgICAgICBwYXJhbWV0ZXJzID0gY3JlYXRlUlNB
S2V5UGFyYW1ldGVyc1dpdGhIYXNoKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8xKTsK
LSAgICB9IGVsc2UgaWYgKG1fandrQWxnb3JpdGhtTmFtZSA9PSAiQTEyOENCQyIpIHsKLSAgICAg
ICAgYWxnb3JpdGhtID0gYWxnb3JpdGhtUmVnaXN0eS5jcmVhdGUoQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllcjo6QUVTX0NCQyk7Ci0gICAgICAgIHBhcmFtZXRlcnMgPSBhZG9wdFJlZigqbmV3IENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkKTsKLSAgICB9IGVsc2UgaWYgKG1fandr
QWxnb3JpdGhtTmFtZSA9PSAiQTE5MkNCQyIpIHsKLSAgICAgICAgYWxnb3JpdGhtID0gYWxnb3Jp
dGhtUmVnaXN0eS5jcmVhdGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0NCQyk7Ci0g
ICAgICAgIHBhcmFtZXRlcnMgPSBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnNEZXByZWNhdGVkKTsKLSAgICB9IGVsc2UgaWYgKG1fandrQWxnb3JpdGhtTmFtZSA9PSAiQTI1
NkNCQyIpIHsKLSAgICAgICAgYWxnb3JpdGhtID0gYWxnb3JpdGhtUmVnaXN0eS5jcmVhdGUoQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0NCQyk7Ci0gICAgICAgIHBhcmFtZXRlcnMgPSBh
ZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkKTsKLSAgICB9
IGVsc2UgaWYgKG1fandrQWxnb3JpdGhtTmFtZSA9PSAiQTEyOEtXIikgewotICAgICAgICBhbGdv
cml0aG0gPSBhbGdvcml0aG1SZWdpc3R5LmNyZWF0ZShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
OjpBRVNfS1cpOwotICAgICAgICBwYXJhbWV0ZXJzID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCk7Ci0gICAgfSBlbHNlIGlmIChtX2p3a0FsZ29yaXRo
bU5hbWUgPT0gIkExOTJLVyIpIHsKLSAgICAgICAgYWxnb3JpdGhtID0gYWxnb3JpdGhtUmVnaXN0
eS5jcmVhdGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0tXKTsKLSAgICAgICAgcGFy
YW1ldGVycyA9IGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0
ZWQpOwotICAgIH0gZWxzZSBpZiAobV9qd2tBbGdvcml0aG1OYW1lID09ICJBMjU2S1ciKSB7Ci0g
ICAgICAgIGFsZ29yaXRobSA9IGFsZ29yaXRobVJlZ2lzdHkuY3JlYXRlKENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXI6OkFFU19LVyk7Ci0gICAgICAgIHBhcmFtZXRlcnMgPSBhZG9wdFJlZigqbmV3
IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkKTsKLSAgICB9IGVsc2UgewotICAg
ICAgICB0aHJvd1R5cGVFcnJvcihtX2V4ZWMsIHNjb3BlLCAiVW5zdXBwb3J0ZWQgSldLIGFsZ29y
aXRobSAiICsgbV9qd2tBbGdvcml0aG1OYW1lKTsKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKLSAgICB9Ci0KLSAgICBpZiAoIXN1Z2dlc3RlZEFsZ29yaXRobSkKLSAgICAgICAgcmV0dXJu
IENyeXB0b0FsZ29yaXRobVBhaXIgeyBhbGdvcml0aG0sIHBhcmFtZXRlcnMgfTsKLQotICAgIGlm
ICghYWxnb3JpdGhtKQotICAgICAgICByZXR1cm4gQ3J5cHRvQWxnb3JpdGhtUGFpciB7IHN1Z2dl
c3RlZEFsZ29yaXRobSwgc3VnZ2VzdGVkUGFyYW1ldGVycyB9OwotCi0gICAgaWYgKGFsZ29yaXRo
bS0+aWRlbnRpZmllcigpICE9IHN1Z2dlc3RlZEFsZ29yaXRobS0+aWRlbnRpZmllcigpKQotICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgaWYgKGFsZ29yaXRobS0+aWRlbnRpZmll
cigpID09IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkhNQUMpIHsKLSAgICAgICAgaWYgKGRv
d25jYXN0PENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVkPigqcGFyYW1ldGVycyku
aGFzaCAhPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZD4oKnN1
Z2dlc3RlZFBhcmFtZXRlcnMpLmhhc2gpCi0gICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwotICAgICAgICByZXR1cm4gQ3J5cHRvQWxnb3JpdGhtUGFpciB7IHN1Z2dlc3RlZEFsZ29yaXRo
bSwgc3VnZ2VzdGVkUGFyYW1ldGVycyB9OwotICAgIH0KLSAgICBpZiAoYWxnb3JpdGhtLT5pZGVu
dGlmaWVyKCkgPT0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBU1NBX1BLQ1MxX3YxXzUK
LSAgICAgICAgfHwgYWxnb3JpdGhtLT5pZGVudGlmaWVyKCkgPT0gQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllcjo6UlNBX09BRVApIHsKLSAgICAgICAgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1z
V2l0aEhhc2hEZXByZWNhdGVkJiByc2FLZXlQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxn
b3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hEZXByZWNhdGVkPigqcGFyYW1ldGVycyk7Ci0gICAg
ICAgIENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZCYgc3VnZ2Vz
dGVkUlNBS2V5UGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFt
c1dpdGhIYXNoRGVwcmVjYXRlZD4oKnN1Z2dlc3RlZFBhcmFtZXRlcnMpOwotICAgICAgICBBU1NF
UlQocnNhS2V5UGFyYW1ldGVycy5oYXNIYXNoKTsKLSAgICAgICAgaWYgKHN1Z2dlc3RlZFJTQUtl
eVBhcmFtZXRlcnMuaGFzSGFzaCkgewotICAgICAgICAgICAgaWYgKHN1Z2dlc3RlZFJTQUtleVBh
cmFtZXRlcnMuaGFzaCAhPSByc2FLZXlQYXJhbWV0ZXJzLmhhc2gpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICAgICAgICAgIHJldHVybiBDcnlwdG9BbGdvcml0aG1Q
YWlyIHsgc3VnZ2VzdGVkQWxnb3JpdGhtLCBzdWdnZXN0ZWRQYXJhbWV0ZXJzIH07Ci0gICAgICAg
IH0KLSAgICAgICAgc3VnZ2VzdGVkUlNBS2V5UGFyYW1ldGVycy5oYXNIYXNoID0gdHJ1ZTsKLSAg
ICAgICAgc3VnZ2VzdGVkUlNBS2V5UGFyYW1ldGVycy5oYXNoID0gcnNhS2V5UGFyYW1ldGVycy5o
YXNoOwotICAgIH0KLQotICAgIC8vIE90aGVyIGFsZ29yaXRobXMgZG9uJ3QgaGF2ZSBwYXJhbWV0
ZXJzLgotICAgIHJldHVybiBDcnlwdG9BbGdvcml0aG1QYWlyIHsgc3VnZ2VzdGVkQWxnb3JpdGht
LCBzdWdnZXN0ZWRQYXJhbWV0ZXJzIH07Ci19Ci0KLXN0YXRpYyBib29sIHRyeUpXS0tleU9wc1Zh
bHVlKEV4ZWNTdGF0ZSogZXhlYywgQ3J5cHRvS2V5VXNhZ2VCaXRtYXAmIHVzYWdlcywgY29uc3Qg
U3RyaW5nJiBvcGVyYXRpb24sIGNvbnN0IFN0cmluZyYgdHJ5T3BlcmF0aW9uLCBDcnlwdG9LZXlV
c2FnZUJpdG1hcCB0cnlVc2FnZSkKLXsKLSAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLQotICAgIGlmIChvcGVyYXRpb24g
PT0gdHJ5T3BlcmF0aW9uKSB7Ci0gICAgICAgIGlmICh1c2FnZXMgJiB0cnlVc2FnZSkgewotICAg
ICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZXhlYywgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiSldLIGtl
eV9vcHMgY29udGFpbnMgYSBkdXBsaWNhdGUgb3BlcmF0aW9uIikpOwotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgICAgIHVzYWdlcyB8PSB0cnlVc2FnZTsKLSAgICB9
Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLXZvaWQgSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldL
OjpyZWNvbmNpbGVVc2FnZXMoQ3J5cHRvS2V5VXNhZ2VCaXRtYXAmIHN1Z2dlc3RlZFVzYWdlcykg
Y29uc3QKLXsKLSAgICBWTSYgdm0gPSBtX2V4ZWMtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwotCi0gICAgQ3J5cHRvS2V5VXNhZ2VCaXRtYXAgandrVXNh
Z2VzID0gMDsKLQotICAgIEpTQXJyYXkqIGtleU9wczsKLSAgICBpZiAoZ2V0SlNBcnJheUZyb21K
U09OKG1fZXhlYywgbV9qc29uLmdldCgpLCAia2V5X29wcyIsIGtleU9wcykpIHsKLSAgICAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBrZXlPcHMtPmxlbmd0aCgpOyArK2kpIHsKLSAgICAgICAg
ICAgIEpTVmFsdWUganNWYWx1ZSA9IGtleU9wcy0+Z2V0SW5kZXgobV9leGVjLCBpKTsKLSAgICAg
ICAgICAgIFN0cmluZyBvcGVyYXRpb247Ci0gICAgICAgICAgICBpZiAoIWpzVmFsdWUuZ2V0U3Ry
aW5nKG1fZXhlYywgb3BlcmF0aW9uKSkgewotICAgICAgICAgICAgICAgIGlmICghc2NvcGUuZXhj
ZXB0aW9uKCkpCi0gICAgICAgICAgICAgICAgICAgIHRocm93VHlwZUVycm9yKG1fZXhlYywgc2Nv
cGUsIEFTQ0lJTGl0ZXJhbCgiSldLIGtleV9vcHMgYXR0cmlidXRlIGNvdWxkIG5vdCBiZSBwcm9j
ZXNzZWQiKSk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQotICAgICAg
ICAgICAgaWYgKCF0cnlKV0tLZXlPcHNWYWx1ZShtX2V4ZWMsIGp3a1VzYWdlcywgb3BlcmF0aW9u
LCBBU0NJSUxpdGVyYWwoInNpZ24iKSwgQ3J5cHRvS2V5VXNhZ2VTaWduKSkKLSAgICAgICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgICAgICBpZiAoIXRyeUpXS0tleU9wc1ZhbHVlKG1fZXhlYywg
andrVXNhZ2VzLCBvcGVyYXRpb24sIEFTQ0lJTGl0ZXJhbCgidmVyaWZ5IiksIENyeXB0b0tleVVz
YWdlVmVyaWZ5KSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBpZiAoIXRy
eUpXS0tleU9wc1ZhbHVlKG1fZXhlYywgandrVXNhZ2VzLCBvcGVyYXRpb24sIEFTQ0lJTGl0ZXJh
bCgiZW5jcnlwdCIpLCBDcnlwdG9LZXlVc2FnZUVuY3J5cHQpKQotICAgICAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgICAgIGlmICghdHJ5SldLS2V5T3BzVmFsdWUobV9leGVjLCBqd2tVc2Fn
ZXMsIG9wZXJhdGlvbiwgQVNDSUlMaXRlcmFsKCJkZWNyeXB0IiksIENyeXB0b0tleVVzYWdlRGVj
cnlwdCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgaWYgKCF0cnlKV0tL
ZXlPcHNWYWx1ZShtX2V4ZWMsIGp3a1VzYWdlcywgb3BlcmF0aW9uLCBBU0NJSUxpdGVyYWwoIndy
YXBLZXkiKSwgQ3J5cHRvS2V5VXNhZ2VXcmFwS2V5KSkKLSAgICAgICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgICAgICBpZiAoIXRyeUpXS0tleU9wc1ZhbHVlKG1fZXhlYywgandrVXNhZ2VzLCBv
cGVyYXRpb24sIEFTQ0lJTGl0ZXJhbCgidW53cmFwS2V5IiksIENyeXB0b0tleVVzYWdlVW53cmFw
S2V5KSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBpZiAoIXRyeUpXS0tl
eU9wc1ZhbHVlKG1fZXhlYywgandrVXNhZ2VzLCBvcGVyYXRpb24sIEFTQ0lJTGl0ZXJhbCgiZGVy
aXZlS2V5IiksIENyeXB0b0tleVVzYWdlRGVyaXZlS2V5KSkKLSAgICAgICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgICAgICBpZiAoIXRyeUpXS0tleU9wc1ZhbHVlKG1fZXhlYywgandrVXNhZ2Vz
LCBvcGVyYXRpb24sIEFTQ0lJTGl0ZXJhbCgiZGVyaXZlQml0cyIpLCBDcnlwdG9LZXlVc2FnZURl
cml2ZUJpdHMpKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0gZWxz
ZSB7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7Ci0KLSAgICAg
ICAgU3RyaW5nIGp3a1VzZVN0cmluZzsKLSAgICAgICAgaWYgKCFnZXRTdHJpbmdGcm9tSlNPTiht
X2V4ZWMsIG1fanNvbi5nZXQoKSwgInVzZSIsIGp3a1VzZVN0cmluZykpIHsKLSAgICAgICAgICAg
IC8vIFdlIGhhdmUgbmVpdGhlciBrZXlfb3BzIG5vciB1c2UuCi0gICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoandrVXNlU3RyaW5nID09ICJlbmMiKQotICAgICAg
ICAgICAgandrVXNhZ2VzIHw9IChDcnlwdG9LZXlVc2FnZUVuY3J5cHQgfCBDcnlwdG9LZXlVc2Fn
ZURlY3J5cHQgfCBDcnlwdG9LZXlVc2FnZVdyYXBLZXkgfCBDcnlwdG9LZXlVc2FnZVVud3JhcEtl
eSk7Ci0gICAgICAgIGVsc2UgaWYgKGp3a1VzZVN0cmluZyA9PSAic2lnIikKLSAgICAgICAgICAg
IGp3a1VzYWdlcyB8PSAoQ3J5cHRvS2V5VXNhZ2VTaWduIHwgQ3J5cHRvS2V5VXNhZ2VWZXJpZnkp
OwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIHRocm93VHlwZUVycm9yKG1fZXhlYywgc2Nv
cGUsICJVbnN1cHBvcnRlZCBKV0sga2V5IHVzZSB2YWx1ZSBcIiIgKyBqd2tVc2VTdHJpbmcgKyAi
XCIiKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHN1Z2dl
c3RlZFVzYWdlcyA9IHN1Z2dlc3RlZFVzYWdlcyAmIGp3a1VzYWdlczsKLX0KLQotdm9pZCBKU0Ny
eXB0b0tleVNlcmlhbGl6YXRpb25KV0s6OnJlY29uY2lsZUV4dHJhY3RhYmxlKGJvb2wmIHN1Z2dl
c3RlZEV4dHJhY3RhYmxlKSBjb25zdAotewotICAgIGJvb2wgandrRXh0cmFjdGFibGU7Ci0gICAg
aWYgKCFnZXRCb29sZWFuRnJvbUpTT04obV9leGVjLCBtX2pzb24uZ2V0KCksICJleHQiLCBqd2tF
eHRyYWN0YWJsZSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIHN1Z2dlc3RlZEV4dHJhY3RhYmxl
ID0gc3VnZ2VzdGVkRXh0cmFjdGFibGUgJiYgandrRXh0cmFjdGFibGU7Ci19Ci0KLWJvb2wgSlND
cnlwdG9LZXlTZXJpYWxpemF0aW9uSldLOjprZXlTaXplSXNWYWxpZChzaXplX3Qgc2l6ZUluQml0
cykgY29uc3QKLXsKLSAgICBpZiAobV9qd2tBbGdvcml0aG1OYW1lID09ICJIUzI1NiIpCi0gICAg
ICAgIHJldHVybiBzaXplSW5CaXRzID49IDI1NjsKLSAgICBpZiAobV9qd2tBbGdvcml0aG1OYW1l
ID09ICJIUzM4NCIpCi0gICAgICAgIHJldHVybiBzaXplSW5CaXRzID49IDM4NDsKLSAgICBpZiAo
bV9qd2tBbGdvcml0aG1OYW1lID09ICJIUzUxMiIpCi0gICAgICAgIHJldHVybiBzaXplSW5CaXRz
ID49IDUxMjsKLSAgICBpZiAobV9qd2tBbGdvcml0aG1OYW1lID09ICJBMTI4Q0JDIikKLSAgICAg
ICAgcmV0dXJuIHNpemVJbkJpdHMgPT0gMTI4OwotICAgIGlmIChtX2p3a0FsZ29yaXRobU5hbWUg
PT0gIkExOTJDQkMiKQotICAgICAgICByZXR1cm4gc2l6ZUluQml0cyA9PSAxOTI7Ci0gICAgaWYg
KG1fandrQWxnb3JpdGhtTmFtZSA9PSAiQTI1NkNCQyIpCi0gICAgICAgIHJldHVybiBzaXplSW5C
aXRzID09IDI1NjsKLSAgICBpZiAobV9qd2tBbGdvcml0aG1OYW1lID09ICJBMTI4S1ciKQotICAg
ICAgICByZXR1cm4gc2l6ZUluQml0cyA9PSAxMjg7Ci0gICAgaWYgKG1fandrQWxnb3JpdGhtTmFt
ZSA9PSAiQTE5MktXIikKLSAgICAgICAgcmV0dXJuIHNpemVJbkJpdHMgPT0gMTkyOwotICAgIGlm
IChtX2p3a0FsZ29yaXRobU5hbWUgPT0gIkEyNTZLVyIpCi0gICAgICAgIHJldHVybiBzaXplSW5C
aXRzID09IDI1NjsKLSAgICBpZiAobV9qd2tBbGdvcml0aG1OYW1lID09ICJSUzI1NiIpCi0gICAg
ICAgIHJldHVybiBzaXplSW5CaXRzID49IDIwNDg7Ci0gICAgaWYgKG1fandrQWxnb3JpdGhtTmFt
ZSA9PSAiUlMzODQiKQotICAgICAgICByZXR1cm4gc2l6ZUluQml0cyA+PSAyMDQ4OwotICAgIGlm
IChtX2p3a0FsZ29yaXRobU5hbWUgPT0gIlJTNTEyIikKLSAgICAgICAgcmV0dXJuIHNpemVJbkJp
dHMgPj0gMjA0ODsKLSAgICBpZiAobV9qd2tBbGdvcml0aG1OYW1lID09ICJSU0ExXzUiKQotICAg
ICAgICByZXR1cm4gc2l6ZUluQml0cyA+PSAyMDQ4OwotICAgIGlmIChtX2p3a0FsZ29yaXRobU5h
bWUgPT0gIlJTQV9PQUVQIikKLSAgICAgICAgcmV0dXJuIHNpemVJbkJpdHMgPj0gMjA0ODsKLSAg
ICByZXR1cm4gdHJ1ZTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPENyeXB0b0tleURhdGE+IEpTQ3J5
cHRvS2V5U2VyaWFsaXphdGlvbkpXSzo6a2V5RGF0YU9jdGV0U2VxdWVuY2UoKSBjb25zdAotewot
ICAgIFZNJiB2bSA9IG1fZXhlYy0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7Ci0KLSAgICBTdHJpbmcga2V5QmFzZTY0VVJMOwotICAgIGlmICghZ2V0U3Ry
aW5nRnJvbUpTT04obV9leGVjLCBtX2pzb24uZ2V0KCksICJrIiwga2V5QmFzZTY0VVJMKSkgewot
ICAgICAgICBpZiAoIXNjb3BlLmV4Y2VwdGlvbigpKQotICAgICAgICAgICAgdGhyb3dUeXBlRXJy
b3IobV9leGVjLCBzY29wZSwgQVNDSUlMaXRlcmFsKCJTZWNyZXQga2V5IGRhdGEgaXMgbm90IHBy
ZXNlbnQgaXMgSldLIikpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0KLSAgICBW
ZWN0b3I8dWludDhfdD4gb2N0ZXRTZXF1ZW5jZTsKLSAgICBpZiAoIWJhc2U2NFVSTERlY29kZShr
ZXlCYXNlNjRVUkwsIG9jdGV0U2VxdWVuY2UpKSB7Ci0gICAgICAgIHRocm93VHlwZUVycm9yKG1f
ZXhlYywgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiQ2Fubm90IGRlY29kZSBiYXNlNjR1cmwga2V5IGRh
dGEgaW4gSldLIikpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0KLSAgICBpZiAo
IWtleVNpemVJc1ZhbGlkKG9jdGV0U2VxdWVuY2Uuc2l6ZSgpICogOCkpIHsKLSAgICAgICAgdGhy
b3dUeXBlRXJyb3IobV9leGVjLCBzY29wZSwgIktleSBzaXplIGlzIG5vdCB2YWxpZCBmb3IgIiAr
IG1fandrQWxnb3JpdGhtTmFtZSk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLQot
ICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPENyeXB0b0tleURhdGFPY3RldFNlcXVlbmNlPihv
Y3RldFNlcXVlbmNlKTsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPENyeXB0b0tleURhdGE+IEpTQ3J5
cHRvS2V5U2VyaWFsaXphdGlvbkpXSzo6a2V5RGF0YVJTQUNvbXBvbmVudHMoKSBjb25zdAotewot
ICAgIFZNJiB2bSA9IG1fZXhlYy0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7Ci0KLSAgICBWZWN0b3I8dWludDhfdD4gbW9kdWx1czsKLSAgICBWZWN0b3I8
dWludDhfdD4gZXhwb25lbnQ7Ci0gICAgVmVjdG9yPHVpbnQ4X3Q+IHByaXZhdGVFeHBvbmVudDsK
LQotICAgIGlmICghZ2V0QmlnSW50ZWdlclZlY3RvckZyb21KU09OKG1fZXhlYywgbV9qc29uLmdl
dCgpLCAibiIsIG1vZHVsdXMpKSB7Ci0gICAgICAgIGlmICghc2NvcGUuZXhjZXB0aW9uKCkpCi0g
ICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihtX2V4ZWMsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIlJl
cXVpcmVkIEpXSyBcIm5cIiBtZW1iZXIgaXMgbWlzc2luZyIpKTsKLSAgICAgICAgcmV0dXJuIG51
bGxwdHI7Ci0gICAgfQotCi0gICAgaWYgKCFrZXlTaXplSXNWYWxpZChtb2R1bHVzLnNpemUoKSAq
IDgpKSB7Ci0gICAgICAgIHRocm93VHlwZUVycm9yKG1fZXhlYywgc2NvcGUsICJLZXkgc2l6ZSBp
cyBub3QgdmFsaWQgZm9yICIgKyBtX2p3a0FsZ29yaXRobU5hbWUpOwotICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLSAgICB9Ci0KLSAgICBpZiAoIWdldEJpZ0ludGVnZXJWZWN0b3JGcm9tSlNPTiht
X2V4ZWMsIG1fanNvbi5nZXQoKSwgImUiLCBleHBvbmVudCkpIHsKLSAgICAgICAgaWYgKCFzY29w
ZS5leGNlcHRpb24oKSkKLSAgICAgICAgICAgIHRocm93VHlwZUVycm9yKG1fZXhlYywgc2NvcGUs
IEFTQ0lJTGl0ZXJhbCgiUmVxdWlyZWQgSldLIFwiZVwiIG1lbWJlciBpcyBtaXNzaW5nIikpOwot
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0KLSAgICBpZiAoIWdldEJpZ0ludGVnZXJW
ZWN0b3JGcm9tSlNPTihtX2V4ZWMsIG1fanNvbi5nZXQoKSwgImQiLCBtb2R1bHVzKSkgewotICAg
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKLSAgICAgICAgcmV0dXJu
IENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzOjpjcmVhdGVQdWJsaWMobW9kdWx1cywgZXhwb25l
bnQpOwotICAgIH0KLQotICAgIENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzOjpQcmltZUluZm8g
Zmlyc3RQcmltZUluZm87Ci0gICAgQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHM6OlByaW1lSW5m
byBzZWNvbmRQcmltZUluZm87Ci0gICAgVmVjdG9yPENyeXB0b0tleURhdGFSU0FDb21wb25lbnRz
OjpQcmltZUluZm8+IG90aGVyUHJpbWVJbmZvczsKLSAgICBpZiAoIWdldEJpZ0ludGVnZXJWZWN0
b3JGcm9tSlNPTihtX2V4ZWMsIG1fanNvbi5nZXQoKSwgInAiLCBmaXJzdFByaW1lSW5mby5wcmlt
ZUZhY3RvcikpIHsKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7
Ci0gICAgICAgIHJldHVybiBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50czo6Y3JlYXRlUHJpdmF0
ZShtb2R1bHVzLCBleHBvbmVudCwgcHJpdmF0ZUV4cG9uZW50KTsKLSAgICB9Ci0KLSAgICBpZiAo
IWdldEJpZ0ludGVnZXJWZWN0b3JGcm9tSlNPTihtX2V4ZWMsIG1fanNvbi5nZXQoKSwgImRwIiwg
Zmlyc3RQcmltZUluZm8uZmFjdG9yQ1JURXhwb25lbnQpKSB7Ci0gICAgICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwotICAgICAgICByZXR1cm4gQ3J5cHRvS2V5RGF0YVJT
QUNvbXBvbmVudHM6OmNyZWF0ZVByaXZhdGUobW9kdWx1cywgZXhwb25lbnQsIHByaXZhdGVFeHBv
bmVudCk7Ci0gICAgfQotCi0gICAgaWYgKCFnZXRCaWdJbnRlZ2VyVmVjdG9yRnJvbUpTT04obV9l
eGVjLCBtX2pzb24uZ2V0KCksICJxIiwgc2Vjb25kUHJpbWVJbmZvLnByaW1lRmFjdG9yKSkgewot
ICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKLSAgICAgICAgcmV0
dXJuIENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzOjpjcmVhdGVQcml2YXRlKG1vZHVsdXMsIGV4
cG9uZW50LCBwcml2YXRlRXhwb25lbnQpOwotICAgIH0KLQotICAgIGlmICghZ2V0QmlnSW50ZWdl
clZlY3RvckZyb21KU09OKG1fZXhlYywgbV9qc29uLmdldCgpLCAiZHEiLCBzZWNvbmRQcmltZUlu
Zm8uZmFjdG9yQ1JURXhwb25lbnQpKSB7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIG51bGxwdHIpOwotICAgICAgICByZXR1cm4gQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHM6
OmNyZWF0ZVByaXZhdGUobW9kdWx1cywgZXhwb25lbnQsIHByaXZhdGVFeHBvbmVudCk7Ci0gICAg
fQotCi0gICAgaWYgKCFnZXRCaWdJbnRlZ2VyVmVjdG9yRnJvbUpTT04obV9leGVjLCBtX2pzb24u
Z2V0KCksICJxaSIsIHNlY29uZFByaW1lSW5mby5mYWN0b3JDUlRDb2VmZmljaWVudCkpIHsKLSAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7Ci0gICAgICAgIHJldHVy
biBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50czo6Y3JlYXRlUHJpdmF0ZShtb2R1bHVzLCBleHBv
bmVudCwgcHJpdmF0ZUV4cG9uZW50KTsKLSAgICB9Ci0KLSAgICBKU0FycmF5KiBvdGhlclByaW1l
SW5mb0pTQXJyYXk7Ci0gICAgaWYgKCFnZXRKU0FycmF5RnJvbUpTT04obV9leGVjLCBtX2pzb24u
Z2V0KCksICJvdGgiLCBvdGhlclByaW1lSW5mb0pTQXJyYXkpKSB7Ci0gICAgICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwotICAgICAgICByZXR1cm4gQ3J5cHRvS2V5RGF0
YVJTQUNvbXBvbmVudHM6OmNyZWF0ZVByaXZhdGVXaXRoQWRkaXRpb25hbERhdGEobW9kdWx1cywg
ZXhwb25lbnQsIHByaXZhdGVFeHBvbmVudCwgZmlyc3RQcmltZUluZm8sIHNlY29uZFByaW1lSW5m
bywgb3RoZXJQcmltZUluZm9zKTsKLSAgICB9Ci0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IG90aGVyUHJpbWVJbmZvSlNBcnJheS0+bGVuZ3RoKCk7ICsraSkgewotICAgICAgICBDcnlwdG9L
ZXlEYXRhUlNBQ29tcG9uZW50czo6UHJpbWVJbmZvIGluZm87Ci0gICAgICAgIEpTVmFsdWUgZWxl
bWVudCA9IG90aGVyUHJpbWVJbmZvSlNBcnJheS0+Z2V0SW5kZXgobV9leGVjLCBpKTsKLSAgICAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7Ci0gICAgICAgIGlmICghZWxl
bWVudC5pc09iamVjdCgpKSB7Ci0gICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihtX2V4ZWMsIHNj
b3BlLCBBU0NJSUxpdGVyYWwoIkpXSyBcIm90aFwiIGFycmF5IG1lbWJlciBpcyBub3QgYW4gb2Jq
ZWN0IikpOwotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIH0KLSAgICAgICAg
aWYgKCFnZXRCaWdJbnRlZ2VyVmVjdG9yRnJvbUpTT04obV9leGVjLCBhc09iamVjdChlbGVtZW50
KSwgInIiLCBpbmZvLnByaW1lRmFjdG9yKSkgewotICAgICAgICAgICAgaWYgKCFzY29wZS5leGNl
cHRpb24oKSkKLSAgICAgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihtX2V4ZWMsIHNjb3BlLCBB
U0NJSUxpdGVyYWwoIkNhbm5vdCBnZXQgcHJpbWUgZmFjdG9yIGZvciBhIHByaW1lIGluIFwib3Ro
XCIgZGljdGlvbmFyeSIpKTsKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICB9
Ci0gICAgICAgIGlmICghZ2V0QmlnSW50ZWdlclZlY3RvckZyb21KU09OKG1fZXhlYywgYXNPYmpl
Y3QoZWxlbWVudCksICJkIiwgaW5mby5mYWN0b3JDUlRFeHBvbmVudCkpIHsKLSAgICAgICAgICAg
IGlmICghc2NvcGUuZXhjZXB0aW9uKCkpCi0gICAgICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3Io
bV9leGVjLCBzY29wZSwgQVNDSUlMaXRlcmFsKCJDYW5ub3QgZ2V0IGZhY3RvciBDUlQgZXhwb25l
bnQgZm9yIGEgcHJpbWUgaW4gXCJvdGhcIiBkaWN0aW9uYXJ5IikpOwotICAgICAgICAgICAgcmV0
dXJuIG51bGxwdHI7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFnZXRCaWdJbnRlZ2VyVmVjdG9y
RnJvbUpTT04obV9leGVjLCBhc09iamVjdChlbGVtZW50KSwgInQiLCBpbmZvLmZhY3RvckNSVENv
ZWZmaWNpZW50KSkgewotICAgICAgICAgICAgaWYgKCFzY29wZS5leGNlcHRpb24oKSkKLSAgICAg
ICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihtX2V4ZWMsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIkNh
bm5vdCBnZXQgZmFjdG9yIENSVCBjb2VmZmljaWVudCBmb3IgYSBwcmltZSBpbiBcIm90aFwiIGRp
Y3Rpb25hcnkiKSk7Ci0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgfQotICAg
ICAgICBvdGhlclByaW1lSW5mb3MuYXBwZW5kKGluZm8pOwotICAgIH0KLQotICAgIHJldHVybiBD
cnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50czo6Y3JlYXRlUHJpdmF0ZVdpdGhBZGRpdGlvbmFsRGF0
YShtb2R1bHVzLCBleHBvbmVudCwgcHJpdmF0ZUV4cG9uZW50LCBmaXJzdFByaW1lSW5mbywgc2Vj
b25kUHJpbWVJbmZvLCBvdGhlclByaW1lSW5mb3MpOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8Q3J5
cHRvS2V5RGF0YT4gSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLOjprZXlEYXRhKCkgY29uc3QK
LXsKLSAgICBWTSYgdm0gPSBtX2V4ZWMtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwotCi0gICAgU3RyaW5nIGp3a0tleVR5cGU7Ci0gICAgaWYgKCFnZXRT
dHJpbmdGcm9tSlNPTihtX2V4ZWMsIG1fanNvbi5nZXQoKSwgImt0eSIsIGp3a0tleVR5cGUpKSB7
Ci0gICAgICAgIGlmICghc2NvcGUuZXhjZXB0aW9uKCkpCi0gICAgICAgICAgICB0aHJvd1R5cGVF
cnJvcihtX2V4ZWMsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIlJlcXVpcmVkIEpXSyBcImt0eVwiIG1l
bWJlciBpcyBtaXNzaW5nIikpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0KLSAg
ICBpZiAoandrS2V5VHlwZSA9PSAib2N0IikKLSAgICAgICAgcmV0dXJuIGtleURhdGFPY3RldFNl
cXVlbmNlKCk7Ci0KLSAgICBpZiAoandrS2V5VHlwZSA9PSAiUlNBIikKLSAgICAgICAgcmV0dXJu
IGtleURhdGFSU0FDb21wb25lbnRzKCk7Ci0KLSAgICB0aHJvd1R5cGVFcnJvcihtX2V4ZWMsIHNj
b3BlLCAiVW5zdXBwb3J0ZWQgSldLIGtleSB0eXBlICIgKyBqd2tLZXlUeXBlKTsKLSAgICByZXR1
cm4gbnVsbHB0cjsKLX0KLQotc3RhdGljIHZvaWQgYWRkVG9KU09OKEV4ZWNTdGF0ZSogZXhlYywg
SlNPYmplY3QqIGpzb24sIGNvbnN0IGNoYXIqIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKLXsK
LSAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgIElkZW50aWZpZXIgaWRlbnRpZmllciA9IElk
ZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCBrZXkpOwotICAgIGpzb24tPnB1dERpcmVjdCh2bSwg
aWRlbnRpZmllciwganNTdHJpbmcoZXhlYywgdmFsdWUpKTsKLX0KLQotc3RhdGljIHZvaWQgYnVp
bGRKU09ORm9yT2N0ZXRTZXF1ZW5jZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFZlY3Rvcjx1aW50
OF90PiYga2V5RGF0YSwgSlNPYmplY3QqIHJlc3VsdCkKLXsKLSAgICBhZGRUb0pTT04oZXhlYywg
cmVzdWx0LCAia3R5IiwgIm9jdCIpOwotICAgIGFkZFRvSlNPTihleGVjLCByZXN1bHQsICJrIiwg
YmFzZTY0VVJMRW5jb2RlKGtleURhdGEpKTsKLX0KLQotc3RhdGljIHZvaWQgYnVpbGRKU09ORm9y
UlNBQ29tcG9uZW50cyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQ3J5cHRvS2V5RGF0YVJT
QUNvbXBvbmVudHMmIGRhdGEsIEpTQzo6SlNPYmplY3QqIHJlc3VsdCkKLXsKLSAgICBWTSYgdm0g
PSBleGVjLT52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
LQotICAgIGFkZFRvSlNPTihleGVjLCByZXN1bHQsICJrdHkiLCAiUlNBIik7Ci0gICAgYWRkVG9K
U09OKGV4ZWMsIHJlc3VsdCwgIm4iLCBiYXNlNjRVUkxFbmNvZGUoZGF0YS5tb2R1bHVzKCkpKTsK
LSAgICBhZGRUb0pTT04oZXhlYywgcmVzdWx0LCAiZSIsIGJhc2U2NFVSTEVuY29kZShkYXRhLmV4
cG9uZW50KCkpKTsKLQotICAgIGlmIChkYXRhLnR5cGUoKSA9PSBDcnlwdG9LZXlEYXRhUlNBQ29t
cG9uZW50czo6VHlwZTo6UHVibGljKQotICAgICAgICByZXR1cm47Ci0KLSAgICBhZGRUb0pTT04o
ZXhlYywgcmVzdWx0LCAiZCIsIGJhc2U2NFVSTEVuY29kZShkYXRhLnByaXZhdGVFeHBvbmVudCgp
KSk7Ci0KLSAgICBpZiAoIWRhdGEuaGFzQWRkaXRpb25hbFByaXZhdGVLZXlQYXJhbWV0ZXJzKCkp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIGFkZFRvSlNPTihleGVjLCByZXN1bHQsICJwIiwgYmFz
ZTY0VVJMRW5jb2RlKGRhdGEuZmlyc3RQcmltZUluZm8oKS5wcmltZUZhY3RvcikpOwotICAgIGFk
ZFRvSlNPTihleGVjLCByZXN1bHQsICJxIiwgYmFzZTY0VVJMRW5jb2RlKGRhdGEuc2Vjb25kUHJp
bWVJbmZvKCkucHJpbWVGYWN0b3IpKTsKLSAgICBhZGRUb0pTT04oZXhlYywgcmVzdWx0LCAiZHAi
LCBiYXNlNjRVUkxFbmNvZGUoZGF0YS5maXJzdFByaW1lSW5mbygpLmZhY3RvckNSVEV4cG9uZW50
KSk7Ci0gICAgYWRkVG9KU09OKGV4ZWMsIHJlc3VsdCwgImRxIiwgYmFzZTY0VVJMRW5jb2RlKGRh
dGEuc2Vjb25kUHJpbWVJbmZvKCkuZmFjdG9yQ1JURXhwb25lbnQpKTsKLSAgICBhZGRUb0pTT04o
ZXhlYywgcmVzdWx0LCAicWkiLCBiYXNlNjRVUkxFbmNvZGUoZGF0YS5zZWNvbmRQcmltZUluZm8o
KS5mYWN0b3JDUlRDb2VmZmljaWVudCkpOwotCi0gICAgaWYgKGRhdGEub3RoZXJQcmltZUluZm9z
KCkuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBKU0FycmF5KiBvdGggPSBjb25z
dHJ1Y3RFbXB0eUFycmF5KGV4ZWMsIDAsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSwgZGF0
YS5vdGhlclByaW1lSW5mb3MoKS5zaXplKCkpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIHZvaWQoKSk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDAsIHNpemUgPSBkYXRhLm90aGVyUHJp
bWVJbmZvcygpLnNpemUoKTsgaSA8IHNpemU7ICsraSkgewotICAgICAgICBKU09iamVjdCoganNQ
cmltZUluZm8gPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChleGVjKTsKLSAgICAgICAgYWRkVG9KU09O
KGV4ZWMsIGpzUHJpbWVJbmZvLCAiciIsIGJhc2U2NFVSTEVuY29kZShkYXRhLm90aGVyUHJpbWVJ
bmZvcygpW2ldLnByaW1lRmFjdG9yKSk7Ci0gICAgICAgIGFkZFRvSlNPTihleGVjLCBqc1ByaW1l
SW5mbywgImQiLCBiYXNlNjRVUkxFbmNvZGUoZGF0YS5vdGhlclByaW1lSW5mb3MoKVtpXS5mYWN0
b3JDUlRFeHBvbmVudCkpOwotICAgICAgICBhZGRUb0pTT04oZXhlYywganNQcmltZUluZm8sICJ0
IiwgYmFzZTY0VVJMRW5jb2RlKGRhdGEub3RoZXJQcmltZUluZm9zKClbaV0uZmFjdG9yQ1JUQ29l
ZmZpY2llbnQpKTsKLSAgICAgICAgb3RoLT5wdXREaXJlY3RJbmRleChleGVjLCBpLCBqc1ByaW1l
SW5mbyk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7Ci0gICAg
fQotICAgIHJlc3VsdC0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMs
ICJvdGgiKSwgb3RoKTsKLX0KLQotc3RhdGljIHZvaWQgYWRkQm9vbFRvSlNPTihFeGVjU3RhdGUq
IGV4ZWMsIEpTT2JqZWN0KiBqc29uLCBjb25zdCBjaGFyKiBrZXksIGJvb2wgdmFsdWUpCi17Ci0g
ICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKLSAgICBJZGVudGlmaWVyIGlkZW50aWZpZXIgPSBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwga2V5KTsKLSAgICBqc29uLT5wdXREaXJlY3Qodm0sIGlk
ZW50aWZpZXIsIGpzQm9vbGVhbih2YWx1ZSkpOwotfQotCi1zdGF0aWMgdm9pZCBhZGRKV0tBbGdv
cml0aG1Ub0pTT04oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCoganNvbiwgY29uc3QgQ3J5cHRv
S2V5JiBrZXkpCi17Ci0gICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0KLSAgICBTdHJpbmcgandrQWxnb3JpdGhtOwotICAg
IHN3aXRjaCAoa2V5LmFsZ29yaXRobUlkZW50aWZpZXIoKSkgewotICAgIGNhc2UgQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllcjo6SE1BQzoKLSAgICAgICAgc3dpdGNoIChkb3duY2FzdDxDcnlwdG9L
ZXlITUFDPihrZXkpLmhhc2hBbGdvcml0aG1JZGVudGlmaWVyKCkpIHsKLSAgICAgICAgY2FzZSBD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMjU2OgotICAgICAgICAgICAgaWYgKGRvd25j
YXN0PENyeXB0b0tleUhNQUM+KGtleSkua2V5KCkuc2l6ZSgpICogOCA+PSAyNTYpCi0gICAgICAg
ICAgICAgICAgandrQWxnb3JpdGhtID0gIkhTMjU2IjsKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8zODQ6Ci0gICAgICAgICAg
ICBpZiAoZG93bmNhc3Q8Q3J5cHRvS2V5SE1BQz4oa2V5KS5rZXkoKS5zaXplKCkgKiA4ID49IDM4
NCkKLSAgICAgICAgICAgICAgICBqd2tBbGdvcml0aG0gPSAiSFMzODQiOwotICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzUxMjoK
LSAgICAgICAgICAgIGlmIChkb3duY2FzdDxDcnlwdG9LZXlITUFDPihrZXkpLmtleSgpLnNpemUo
KSAqIDggPj0gNTEyKQotICAgICAgICAgICAgICAgIGp3a0FsZ29yaXRobSA9ICJIUzUxMiI7Ci0g
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICB9Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
Zmllcjo6QUVTX0NCQzoKLSAgICAgICAgc3dpdGNoIChkb3duY2FzdDxDcnlwdG9LZXlBRVM+KGtl
eSkua2V5KCkuc2l6ZSgpICogOCkgewotICAgICAgICBjYXNlIDEyODoKLSAgICAgICAgICAgIGp3
a0FsZ29yaXRobSA9ICJBMTI4Q0JDIjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNl
IDE5MjoKLSAgICAgICAgICAgIGp3a0FsZ29yaXRobSA9ICJBMTkyQ0JDIjsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIDI1NjoKLSAgICAgICAgICAgIGp3a0FsZ29yaXRobSA9ICJB
MjU2Q0JDIjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0tXOgotICAgICAgICBzd2l0
Y2ggKGRvd25jYXN0PENyeXB0b0tleUFFUz4oa2V5KS5rZXkoKS5zaXplKCkgKiA4KSB7Ci0gICAg
ICAgIGNhc2UgMTI4OgotICAgICAgICAgICAgandrQWxnb3JpdGhtID0gIkExMjhLVyI7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAxOTI6Ci0gICAgICAgICAgICBqd2tBbGdvcml0
aG0gPSAiQTE5MktXIjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIDI1NjoKLSAg
ICAgICAgICAgIGp3a0FsZ29yaXRobSA9ICJBMjU2S1ciOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIH0KLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyOjpSU0FTU0FfUEtDUzFfdjFfNTogewotICAgICAgICBjb25zdCBDcnlwdG9LZXlSU0EmIHJz
YUtleSA9IGRvd25jYXN0PENyeXB0b0tleVJTQT4oa2V5KTsKLSAgICAgICAgQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllciBoYXNoOwotICAgICAgICBpZiAoIXJzYUtleS5pc1Jlc3RyaWN0ZWRUb0hh
c2goaGFzaCkpCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgaWYgKHJzYUtleS5rZXlTaXpl
SW5CaXRzKCkgPCAyMDQ4KQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIHN3aXRjaCAoaGFz
aCkgewotICAgICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8yNTY6Ci0g
ICAgICAgICAgICBqd2tBbGdvcml0aG0gPSAiUlMyNTYiOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzM4NDoKLSAgICAgICAg
ICAgIGp3a0FsZ29yaXRobSA9ICJSUzM4NCI7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfNTEyOgotICAgICAgICAgICAgandr
QWxnb3JpdGhtID0gIlJTNTEyIjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0
OgotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgICAgYnJlYWs7Ci0gICAgfQot
ICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBRVNfUEtDUzFfdjFfNTogewot
ICAgICAgICBjb25zdCBDcnlwdG9LZXlSU0EmIHJzYUtleSA9IGRvd25jYXN0PENyeXB0b0tleVJT
QT4oa2V5KTsKLSAgICAgICAgaWYgKHJzYUtleS5rZXlTaXplSW5CaXRzKCkgPCAyMDQ4KQotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGp3a0FsZ29yaXRobSA9ICJSU0ExXzUiOwotICAgICAg
ICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0Ff
T0FFUDogewotICAgICAgICBjb25zdCBDcnlwdG9LZXlSU0EmIHJzYUtleSA9IGRvd25jYXN0PENy
eXB0b0tleVJTQT4oa2V5KTsKLSAgICAgICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBoYXNo
OwotICAgICAgICAvLyBXZWJDcnlwdG8gUlNBLU9BRVAga2V5cyBhcmUgbm90IHRpZWQgdG8gYW55
IHBhcnRpY3VsYXIgaGFzaCwgdW5sZXNzIHByZXZpb3VzbHkgaW1wb3J0ZWQgZnJvbSBKV0ssIHdo
aWNoIG9ubHkgc3VwcG9ydHMgU0hBLTEuCi0gICAgICAgIGlmIChyc2FLZXkuaXNSZXN0cmljdGVk
VG9IYXNoKGhhc2gpICYmIGhhc2ggIT0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzEp
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgaWYgKHJzYUtleS5rZXlTaXplSW5CaXRzKCkg
PCAyMDQ4KQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGp3a0FsZ29yaXRobSA9ICJSU0Et
T0FFUCI7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBkZWZhdWx0OgotICAgICAgICBicmVh
azsKLSAgICB9Ci0KLSAgICBpZiAoandrQWxnb3JpdGhtLmlzTnVsbCgpKSB7Ci0gICAgICAgIC8v
IFRoZSBzcGVjIGRvZXNuJ3QgY3VycmVudGx5IHRlbGwgd2hldGhlciBleHBvcnQgc2hvdWxkIGZh
aWwsIG9yIGp1c3Qgc2tpcCAiYWxnIiAod2hpY2ggaXMgYW4gb3B0aW9uYWwga2V5IGluIEpXSyku
Ci0gICAgICAgIHRocm93VHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIktleSBh
bGdvcml0aG0gYW5kIHNpemUgZG8gbm90IG1hcCB0byBhbnkgSldLIGFsZ29yaXRobSBpZGVudGlm
aWVyIikpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgYWRkVG9KU09OKGV4ZWMsIGpz
b24sICJhbGciLCBqd2tBbGdvcml0aG0pOwotfQotCi1zdGF0aWMgdm9pZCBhZGRVc2FnZXNUb0pT
T04oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCoganNvbiwgQ3J5cHRvS2V5VXNhZ2VCaXRtYXAg
dXNhZ2VzKQotewotICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwotICAgIEpTQXJyYXkqIGtleU9wcyA9IGNvbnN0cnVjdEVt
cHR5QXJyYXkoZXhlYywgMCwgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLCAwKTsKLSAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwotCi0gICAgdW5zaWduZWQgaW5kZXgg
PSAwOwotICAgIGlmICh1c2FnZXMgJiBDcnlwdG9LZXlVc2FnZVNpZ24pIHsKLSAgICAgICAga2V5
T3BzLT5wdXREaXJlY3RJbmRleChleGVjLCBpbmRleCsrLCBqc05vbnRyaXZpYWxTdHJpbmcoZXhl
YywgQVNDSUlMaXRlcmFsKCJzaWduIikpKTsKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgdm9pZCgpKTsKLSAgICB9Ci0gICAgaWYgKHVzYWdlcyAmIENyeXB0b0tleVVzYWdlVmVy
aWZ5KSB7Ci0gICAgICAgIGtleU9wcy0+cHV0RGlyZWN0SW5kZXgoZXhlYywgaW5kZXgrKywganNO
b250cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgidmVyaWZ5IikpKTsKLSAgICAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKLSAgICB9Ci0gICAgaWYgKHVzYWdl
cyAmIENyeXB0b0tleVVzYWdlRW5jcnlwdCkgewotICAgICAgICBrZXlPcHMtPnB1dERpcmVjdElu
ZGV4KGV4ZWMsIGluZGV4KyssIGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwo
ImVuY3J5cHQiKSkpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkp
OwotICAgIH0KLSAgICBpZiAodXNhZ2VzICYgQ3J5cHRvS2V5VXNhZ2VEZWNyeXB0KSB7Ci0gICAg
ICAgIGtleU9wcy0+cHV0RGlyZWN0SW5kZXgoZXhlYywgaW5kZXgrKywganNOb250cml2aWFsU3Ry
aW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiZGVjcnlwdCIpKSk7Ci0gICAgICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIHZvaWQoKSk7Ci0gICAgfQotICAgIGlmICh1c2FnZXMgJiBDcnlwdG9L
ZXlVc2FnZVdyYXBLZXkpIHsKLSAgICAgICAga2V5T3BzLT5wdXREaXJlY3RJbmRleChleGVjLCBp
bmRleCsrLCBqc05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJ3cmFwS2V5Iikp
KTsKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKLSAgICB9Ci0g
ICAgaWYgKHVzYWdlcyAmIENyeXB0b0tleVVzYWdlVW53cmFwS2V5KSB7Ci0gICAgICAgIGtleU9w
cy0+cHV0RGlyZWN0SW5kZXgoZXhlYywgaW5kZXgrKywganNOb250cml2aWFsU3RyaW5nKGV4ZWMs
IEFTQ0lJTGl0ZXJhbCgidW53cmFwS2V5IikpKTsKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgdm9pZCgpKTsKLSAgICB9Ci0gICAgaWYgKHVzYWdlcyAmIENyeXB0b0tleVVzYWdl
RGVyaXZlS2V5KSB7Ci0gICAgICAgIGtleU9wcy0+cHV0RGlyZWN0SW5kZXgoZXhlYywgaW5kZXgr
KywganNOb250cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiZGVyaXZlS2V5IikpKTsK
LSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKLSAgICB9Ci0gICAg
aWYgKHVzYWdlcyAmIENyeXB0b0tleVVzYWdlRGVyaXZlQml0cykgewotICAgICAgICBrZXlPcHMt
PnB1dERpcmVjdEluZGV4KGV4ZWMsIGluZGV4KyssIGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBB
U0NJSUxpdGVyYWwoImRlcml2ZUJpdHMiKSkpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCB2b2lkKCkpOwotICAgIH0KLQotICAgIGpzb24tPnB1dERpcmVjdCh2bSwgSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZyhleGVjLCAia2V5X29wcyIpLCBrZXlPcHMpOwotfQotCi1TdHJpbmcg
SlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLOjpzZXJpYWxpemUoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBDcnlwdG9LZXkmIGtleSkKLXsKLSAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLQotICAgIHN0ZDo6dW5pcXVlX3B0
cjxDcnlwdG9LZXlEYXRhPiBrZXlEYXRhID0ga2V5LmV4cG9ydERhdGEoKTsKLSAgICBpZiAoIWtl
eURhdGEpIHsKLSAgICAgICAgLy8gVGhpcyBnZW5lcmFsbHkgc2hvdWxkbid0IGhhcHBlbiBhcyBs
b25nIGFzIGFsbCBrZXkgdHlwZXMgaW1wbGVtZW50IGV4cG9ydERhdGEoKSwgYnV0IGFzIHVuZGVy
bHlpbmcgbGlicmFyaWVzIHJldHVybiBlcnJvcnMsIHRoZXJlIG1heSBiZSBzb21lIHJhcmUgZmFp
bHVyZSBjb25kaXRpb25zLgotICAgICAgICB0aHJvd1R5cGVFcnJvcihleGVjLCBzY29wZSwgQVND
SUlMaXRlcmFsKCJDb3VsZG4ndCBleHBvcnQga2V5IG1hdGVyaWFsIikpOwotICAgICAgICByZXR1
cm4gU3RyaW5nKCk7Ci0gICAgfQotCi0gICAgSlNPYmplY3QqIHJlc3VsdCA9IGNvbnN0cnVjdEVt
cHR5T2JqZWN0KGV4ZWMpOwotCi0gICAgYWRkSldLQWxnb3JpdGhtVG9KU09OKGV4ZWMsIHJlc3Vs
dCwga2V5KTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBTdHJpbmcoKSk7Ci0KLSAg
ICBhZGRCb29sVG9KU09OKGV4ZWMsIHJlc3VsdCwgImV4dCIsIGtleS5leHRyYWN0YWJsZSgpKTsK
LQotICAgIGFkZFVzYWdlc1RvSlNPTihleGVjLCByZXN1bHQsIGtleS51c2FnZXNCaXRtYXAoKSk7
Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgU3RyaW5nKCkpOwotCi0gICAgaWYgKGlz
PENyeXB0b0tleURhdGFPY3RldFNlcXVlbmNlPigqa2V5RGF0YSkpCi0gICAgICAgIGJ1aWxkSlNP
TkZvck9jdGV0U2VxdWVuY2UoZXhlYywgZG93bmNhc3Q8Q3J5cHRvS2V5RGF0YU9jdGV0U2VxdWVu
Y2U+KCprZXlEYXRhKS5vY3RldFNlcXVlbmNlKCksIHJlc3VsdCk7Ci0gICAgZWxzZSBpZiAoaXM8
Q3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHM+KCprZXlEYXRhKSkKLSAgICAgICAgYnVpbGRKU09O
Rm9yUlNBQ29tcG9uZW50cyhleGVjLCBkb3duY2FzdDxDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50
cz4oKmtleURhdGEpLCByZXN1bHQpOwotICAgIGVsc2UgewotICAgICAgICB0aHJvd1R5cGVFcnJv
cihleGVjLCBzY29wZSwgQVNDSUlMaXRlcmFsKCJLZXkgZG9lc24ndCBzdXBwb3J0IGV4cG9ydEtl
eSIpKTsKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOwotICAgIH0KLSAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBTdHJpbmcoKSk7Ci0KLSAgICByZXR1cm4gSlNPTlN0cmluZ2lmeShleGVj
LCByZXN1bHQsIDApOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBF
TkFCTEUoU1VCVExFX0NSWVBUTykKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSy5jcHAKX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpE
ZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Ny
eXB0b0tleVNlcmlhbGl6YXRpb25KV0suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0suaAkocmV2aXNpb24gMjIwOTE5
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9u
SldLLmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw3MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdt
YSBvbmNlCi0KLSNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKLQotI2luY2x1ZGUgIkNyeXB0b0tl
eVNlcmlhbGl6YXRpb24uaCIKLSNpbmNsdWRlIDxoZWFwL1N0cm9uZy5oPgotI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgotCi1uYW1lc3BhY2UgSlNDIHsKLWNsYXNzIEV4ZWNTdGF0ZTsK
LWNsYXNzIEpTT2JqZWN0OwotfQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkOwotY2xhc3MgQ3J5cHRvS2V5OwotY2xhc3Mg
Q3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHM7Ci0KLWNsYXNzIEpTQ3J5cHRvS2V5U2VyaWFsaXph
dGlvbkpXSyBmaW5hbCA6IHB1YmxpYyBDcnlwdG9LZXlTZXJpYWxpemF0aW9uIHsKLVdURl9NQUtF
X05PTkNPUFlBQkxFKEpTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSyk7Ci1wdWJsaWM6Ci0gICAg
SlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3RyaW5n
Jik7Ci0gICAgdmlydHVhbCB+SlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLKCk7Ci0KLSAgICBz
dGF0aWMgU3RyaW5nIHNlcmlhbGl6ZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQ3J5cHRv
S2V5Jik7Ci0KLXByaXZhdGU6Ci0gICAgc3RkOjpvcHRpb25hbDxDcnlwdG9BbGdvcml0aG1QYWly
PiByZWNvbmNpbGVBbGdvcml0aG0oQ3J5cHRvQWxnb3JpdGhtKiwgQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVyc0RlcHJlY2F0ZWQqKSBjb25zdCBvdmVycmlkZTsKLQotICAgIHZvaWQgcmVjb25jaWxl
VXNhZ2VzKENyeXB0b0tleVVzYWdlQml0bWFwJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBy
ZWNvbmNpbGVFeHRyYWN0YWJsZShib29sJikgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICBzdGQ6OnVu
aXF1ZV9wdHI8Q3J5cHRvS2V5RGF0YT4ga2V5RGF0YSgpIGNvbnN0IG92ZXJyaWRlOwotCi0gICAg
Ym9vbCBrZXlTaXplSXNWYWxpZChzaXplX3Qgc2l6ZUluQml0cykgY29uc3Q7Ci0gICAgc3RkOjp1
bmlxdWVfcHRyPENyeXB0b0tleURhdGE+IGtleURhdGFPY3RldFNlcXVlbmNlKCkgY29uc3Q7Ci0g
ICAgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0tleURhdGE+IGtleURhdGFSU0FDb21wb25lbnRzKCkg
Y29uc3Q7Ci0KLSAgICBKU0M6OkV4ZWNTdGF0ZSogbV9leGVjOwotICAgIEpTQzo6U3Ryb25nPEpT
Qzo6SlNPYmplY3Q+IG1fanNvbjsKLQotICAgIG11dGFibGUgU3RyaW5nIG1fandrQWxnb3JpdGht
TmFtZTsgLy8gU3RvcmVkIHdoZW4gcmVjb25jaWxlQWxnb3JpdGhtIGlzIGNhbGxlZCwgYW5kIHVz
ZWQgbGF0ZXIuCi19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFC
TEUoU1VCVExFX0NSWVBUTykKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSy5oCl9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRl
ZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBwcm9wZXJ0eQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9P
cGVyYXRpb25EYXRhLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0NyeXB0b09wZXJhdGlvbkRhdGEuY3BwCShyZXZpc2lvbiAyMjA5MTkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0b09wZXJhdGlvbkRhdGEuY3BwCShub25leGlzdGVu
dCkKQEAgLTEsNTMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
LSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJKU0NyeXB0b09wZXJhdGlvbkRhdGEuaCIKLQotI2lmIEVOQUJMRShTVUJU
TEVfQ1JZUFRPKQotCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0QnVmZmVyU291cmNlLmgiCi0jaW5j
bHVkZSA8aGVhcC9IZWFwSW5saW5lcy5oPgotCi11c2luZyBuYW1lc3BhY2UgSlNDOwotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLUNyeXB0b09wZXJhdGlvbkRhdGEgY3J5cHRvT3BlcmF0aW9uRGF0
YUZyb21KU1ZhbHVlKEV4ZWNTdGF0ZSYgc3RhdGUsIFRocm93U2NvcGUmIHNjb3BlLCBKU1ZhbHVl
IHZhbHVlKQotewotICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7Ci0gICAgaWYgKGF1dG8qIGJ1ZmZl
ciA9IHRvVW5zaGFyZWRBcnJheUJ1ZmZlcih2bSwgdmFsdWUpKQotICAgICAgICByZXR1cm4geyBz
dGF0aWNfY2FzdDx1aW50OF90Kj4oYnVmZmVyLT5kYXRhKCkpLCBidWZmZXItPmJ5dGVMZW5ndGgo
KSB9OwotCi0gICAgaWYgKGF1dG8gYnVmZmVyVmlldyA9IHRvVW5zaGFyZWRBcnJheUJ1ZmZlclZp
ZXcodm0sIHZhbHVlKSkKLSAgICAgICAgcmV0dXJuIHsgc3RhdGljX2Nhc3Q8dWludDhfdCo+KGJ1
ZmZlclZpZXctPmJhc2VBZGRyZXNzKCkpLCBidWZmZXJWaWV3LT5ieXRlTGVuZ3RoKCkgfTsKLQot
ICAgIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiT25seSBBcnJh
eUJ1ZmZlciBhbmQgQXJyYXlCdWZmZXJWaWV3IG9iamVjdHMgY2FuIGJlIHBhc3NlZCBhcyBDcnlw
dG9PcGVyYXRpb25EYXRhIikpOwotICAgIHJldHVybiB7IH07Ci19Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9PcGVyYXRpb25EYXRhLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9PcGVyYXRpb25EYXRhLmgJKHJl
dmlzaW9uIDIyMDkxOSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvT3Bl
cmF0aW9uRGF0YS5oCShub25leGlzdGVudCkKQEAgLTEsNDQgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCi0KLW5hbWVzcGFjZSBK
U0MgewotY2xhc3MgRXhlY1N0YXRlOwotY2xhc3MgSlNWYWx1ZTsKLWNsYXNzIFRocm93U2NvcGU7
Ci19Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdXNpbmcgQ3J5cHRvT3BlcmF0aW9uRGF0YSA9
IHN0ZDo6cGFpcjxjb25zdCB1aW50OF90Kiwgc2l6ZV90PjsKLQotQ3J5cHRvT3BlcmF0aW9uRGF0
YSBjcnlwdG9PcGVyYXRpb25EYXRhRnJvbUpTVmFsdWUoSlNDOjpFeGVjU3RhdGUmLCBKU0M6OlRo
cm93U2NvcGUmLCBKU0M6OkpTVmFsdWUpOwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNl
bmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTV2ViS2l0U3VidGxlQ3J5cHRvQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdFN1YnRsZUNyeXB0b0N1c3RvbS5jcHAJKHJl
dmlzaW9uIDIyMDkxOSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0U3Vi
dGxlQ3J5cHRvQ3VzdG9tLmNwcAkobm9uZXhpc3RlbnQpCkBAIC0xLDY5MSArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkpTV2ViS2l0U3Vi
dGxlQ3J5cHRvLmgiCi0KLSNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKLQotI2luY2x1ZGUgIkJ1
ZmZlclNvdXJjZS5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobS5oIgotI2luY2x1ZGUgIkNy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkLmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxn
b3JpdGhtUmVnaXN0cnkuaCIKLSNpbmNsdWRlICJDcnlwdG9LZXlEYXRhLmgiCi0jaW5jbHVkZSAi
Q3J5cHRvS2V5Rm9ybWF0LmgiCi0jaW5jbHVkZSAiQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdy5o
IgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiSlNDcnlwdG9BbGdvcml0aG1EaWN0
aW9uYXJ5LmgiCi0jaW5jbHVkZSAiSlNDcnlwdG9LZXkuaCIKLSNpbmNsdWRlICJKU0NyeXB0b0tl
eVBhaXIuaCIKLSNpbmNsdWRlICJKU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0suaCIKLSNpbmNs
dWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgotI2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgiCi0j
aW5jbHVkZSA8cnVudGltZS9FcnJvci5oPgotCi11c2luZyBuYW1lc3BhY2UgSlNDOwotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLXN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGVB
bGdvcml0aG1Gcm9tSlNWYWx1ZShFeGVjU3RhdGUmIHN0YXRlLCBUaHJvd1Njb3BlJiBzY29wZSwg
SlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBhdXRvIGFsZ29yaXRobUlkZW50aWZpZXIgPSBKU0NyeXB0
b0FsZ29yaXRobURpY3Rpb25hcnk6OnBhcnNlQWxnb3JpdGhtSWRlbnRpZmllcihzdGF0ZSwgc2Nv
cGUsIHZhbHVlKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotCi0gICAg
YXV0byByZXN1bHQgPSBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeTo6c2luZ2xldG9uKCkuY3JlYXRl
KGFsZ29yaXRobUlkZW50aWZpZXIpOwotICAgIGlmICghcmVzdWx0KQotICAgICAgICB0aHJvd05v
dFN1cHBvcnRlZEVycm9yKHN0YXRlLCBzY29wZSk7Ci0KLSAgICByZXR1cm4gcmVzdWx0OwotfQot
Ci1zdGF0aWMgQ3J5cHRvS2V5Rm9ybWF0IGNyeXB0b0tleUZvcm1hdEZyb21KU1ZhbHVlKEV4ZWNT
dGF0ZSYgc3RhdGUsIFRocm93U2NvcGUmIHNjb3BlLCBKU1ZhbHVlIHZhbHVlKQotewotICAgIGF1
dG8ga2V5Rm9ybWF0U3RyaW5nID0gdmFsdWUudG9XVEZTdHJpbmcoJnN0YXRlKTsKLSAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotCi0gICAgaWYgKGtleUZvcm1hdFN0cmluZyA9
PSAicmF3IikKLSAgICAgICAgcmV0dXJuIENyeXB0b0tleUZvcm1hdDo6UmF3OwotICAgIGlmIChr
ZXlGb3JtYXRTdHJpbmcgPT0gInBrY3M4IikKLSAgICAgICAgcmV0dXJuIENyeXB0b0tleUZvcm1h
dDo6UGtjczg7Ci0gICAgaWYgKGtleUZvcm1hdFN0cmluZyA9PSAic3BraSIpCi0gICAgICAgIHJl
dHVybiBDcnlwdG9LZXlGb3JtYXQ6OlNwa2k7Ci0gICAgaWYgKGtleUZvcm1hdFN0cmluZyA9PSAi
andrIikKLSAgICAgICAgcmV0dXJuIENyeXB0b0tleUZvcm1hdDo6SndrOwotCi0gICAgdGhyb3dU
eXBlRXJyb3IoJnN0YXRlLCBzY29wZSwgQVNDSUlMaXRlcmFsKCJVbmtub3duIGtleSBmb3JtYXQi
KSk7Ci0gICAgcmV0dXJuIHsgfTsKLX0KLQotc3RhdGljIENyeXB0b0tleVVzYWdlQml0bWFwIGNy
eXB0b0tleVVzYWdlc0Zyb21KU1ZhbHVlKEV4ZWNTdGF0ZSYgc3RhdGUsIFRocm93U2NvcGUmIHNj
b3BlLCBKU1ZhbHVlIHZhbHVlKQotewotICAgIGlmICghaXNKU0FycmF5KHZhbHVlKSkgewotICAg
ICAgICB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIHNjb3BlKTsKLSAgICAgICAgcmV0dXJuIHsgfTsK
LSAgICB9Ci0KLSAgICBDcnlwdG9LZXlVc2FnZUJpdG1hcCByZXN1bHQgPSAwOwotICAgIEpTQXJy
YXkqIGFycmF5ID0gYXNBcnJheSh2YWx1ZSk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGFycmF5LT5sZW5ndGgoKTsgKytpKSB7Ci0gICAgICAgIGF1dG8gdXNhZ2VTdHJpbmcgPSBhcnJh
eS0+Z2V0SW5kZXgoJnN0YXRlLCBpKS50b1dURlN0cmluZygmc3RhdGUpOwotICAgICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotICAgICAgICBpZiAodXNhZ2VTdHJpbmcgPT0g
ImVuY3J5cHQiKQotICAgICAgICAgICAgcmVzdWx0IHw9IENyeXB0b0tleVVzYWdlRW5jcnlwdDsK
LSAgICAgICAgZWxzZSBpZiAodXNhZ2VTdHJpbmcgPT0gImRlY3J5cHQiKQotICAgICAgICAgICAg
cmVzdWx0IHw9IENyeXB0b0tleVVzYWdlRGVjcnlwdDsKLSAgICAgICAgZWxzZSBpZiAodXNhZ2VT
dHJpbmcgPT0gInNpZ24iKQotICAgICAgICAgICAgcmVzdWx0IHw9IENyeXB0b0tleVVzYWdlU2ln
bjsKLSAgICAgICAgZWxzZSBpZiAodXNhZ2VTdHJpbmcgPT0gInZlcmlmeSIpCi0gICAgICAgICAg
ICByZXN1bHQgfD0gQ3J5cHRvS2V5VXNhZ2VWZXJpZnk7Ci0gICAgICAgIGVsc2UgaWYgKHVzYWdl
U3RyaW5nID09ICJkZXJpdmVLZXkiKQotICAgICAgICAgICAgcmVzdWx0IHw9IENyeXB0b0tleVVz
YWdlRGVyaXZlS2V5OwotICAgICAgICBlbHNlIGlmICh1c2FnZVN0cmluZyA9PSAiZGVyaXZlQml0
cyIpCi0gICAgICAgICAgICByZXN1bHQgfD0gQ3J5cHRvS2V5VXNhZ2VEZXJpdmVCaXRzOwotICAg
ICAgICBlbHNlIGlmICh1c2FnZVN0cmluZyA9PSAid3JhcEtleSIpCi0gICAgICAgICAgICByZXN1
bHQgfD0gQ3J5cHRvS2V5VXNhZ2VXcmFwS2V5OwotICAgICAgICBlbHNlIGlmICh1c2FnZVN0cmlu
ZyA9PSAidW53cmFwS2V5IikKLSAgICAgICAgICAgIHJlc3VsdCB8PSBDcnlwdG9LZXlVc2FnZVVu
d3JhcEtleTsKLSAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotSlNWYWx1ZSBKU1dlYktp
dFN1YnRsZUNyeXB0bzo6ZW5jcnlwdChFeGVjU3RhdGUmIHN0YXRlKQotewotICAgIFZNJiB2bSA9
IHN0YXRlLnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwot
Ci0gICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA8IDMpCi0gICAgICAgIHJldHVybiB0aHJv
d0V4Y2VwdGlvbigmc3RhdGUsIHNjb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigm
c3RhdGUpKTsKLQotICAgIGF1dG8gYWxnb3JpdGhtID0gY3JlYXRlQWxnb3JpdGhtRnJvbUpTVmFs
dWUoc3RhdGUsIHNjb3BlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7Ci0gICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKLQotICAgIGF1dG8gcGFyYW1ldGVycyA9IEpTQ3J5
cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckVuY3J5cHQoc3RhdGUs
IHNjb3BlLCBhbGdvcml0aG0tPmlkZW50aWZpZXIoKSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQo
MCkpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0KLSAgICBSZWZQdHI8
Q3J5cHRvS2V5PiBrZXkgPSBKU0NyeXB0b0tleTo6dG9XcmFwcGVkKHZtLCBzdGF0ZS51bmNoZWNr
ZWRBcmd1bWVudCgxKSk7Ci0gICAgaWYgKCFrZXkpCi0gICAgICAgIHJldHVybiB0aHJvd1R5cGVF
cnJvcigmc3RhdGUsIHNjb3BlKTsKLQotICAgIGlmICgha2V5LT5hbGxvd3MoQ3J5cHRvS2V5VXNh
Z2VFbmNyeXB0KSkgewotICAgICAgICB3cmFwcGVkKCkuZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1l
c3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIEFTQ0lJTGl0ZXJh
bCgiS2V5IHVzYWdlcyBkbyBub3QgaW5jbHVkZSAnZW5jcnlwdCciKSk7Ci0gICAgICAgIHRocm93
Tm90U3VwcG9ydGVkRXJyb3Ioc3RhdGUsIHNjb3BlKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7Ci0gICAgfQotCi0gICAgQnVmZmVyU291cmNlIGRhdGEgPSBjb252ZXJ0PElETFVuaW9u
PElETEFycmF5QnVmZmVyVmlldywgSURMQXJyYXlCdWZmZXI+PihzdGF0ZSwgc3RhdGUudW5jaGVj
a2VkQXJndW1lbnQoMikpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0K
LSAgICBSZWZQdHI8RGVmZXJyZWRQcm9taXNlPiB3cmFwcGVyID0gY3JlYXRlRGVmZXJyZWRQcm9t
aXNlKHN0YXRlLCBkb21XaW5kb3coKSk7Ci0gICAgYXV0byBwcm9taXNlID0gd3JhcHBlci0+cHJv
bWlzZSgpOwotICAgIGF1dG8gc3VjY2Vzc0NhbGxiYWNrID0gW3dyYXBwZXJdKGNvbnN0IFZlY3Rv
cjx1aW50OF90PiYgcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgZnVsZmlsbFByb21pc2VXaXRo
QXJyYXlCdWZmZXIod3JhcHBlci5yZWxlYXNlTm9uTnVsbCgpLCByZXN1bHQuZGF0YSgpLCByZXN1
bHQuc2l6ZSgpKTsKLSAgICB9OwotICAgIGF1dG8gZmFpbHVyZUNhbGxiYWNrID0gW3dyYXBwZXJd
KCkgbXV0YWJsZSB7Ci0gICAgICAgIHdyYXBwZXItPnJlamVjdCgpOyAvLyBGSVhNRTogVGhpcyBz
aG91bGQgcmVqZWN0IHdpdGggYW4gRXhjZXB0aW9uLgotICAgIH07Ci0KLSAgICBhdXRvIHJlc3Vs
dCA9IGFsZ29yaXRobS0+ZW5jcnlwdCgqcGFyYW1ldGVycywgKmtleSwgeyBkYXRhLmRhdGEoKSwg
ZGF0YS5sZW5ndGgoKSB9LCBXVEZNb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIFdURk1vdmUoZmFpbHVy
ZUNhbGxiYWNrKSk7Ci0gICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAgICAgICBw
cm9wYWdhdGVFeGNlcHRpb24oc3RhdGUsIHNjb3BlLCByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigp
KTsKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcHJvbWlzZTsKLX0K
LQotSlNWYWx1ZSBKU1dlYktpdFN1YnRsZUNyeXB0bzo6ZGVjcnlwdChFeGVjU3RhdGUmIHN0YXRl
KQotewotICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwotCi0gICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA8IDMpCi0g
ICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbigmc3RhdGUsIHNjb3BlLCBjcmVhdGVOb3RFbm91
Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKLQotICAgIGF1dG8gYWxnb3JpdGhtID0gY3JlYXRl
QWxnb3JpdGhtRnJvbUpTVmFsdWUoc3RhdGUsIHNjb3BlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVu
dCgwKSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKLQotICAgIGF1dG8g
cGFyYW1ldGVycyA9IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVy
c0ZvckRlY3J5cHQoc3RhdGUsIHNjb3BlLCBhbGdvcml0aG0tPmlkZW50aWZpZXIoKSwgc3RhdGUu
dW5jaGVja2VkQXJndW1lbnQoMCkpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsg
fSk7Ci0KLSAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSBKU0NyeXB0b0tleTo6dG9XcmFwcGVk
KHZtLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSk7Ci0gICAgaWYgKCFrZXkpCi0gICAgICAg
IHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIHNjb3BlKTsKLQotICAgIGlmICgha2V5LT5h
bGxvd3MoQ3J5cHRvS2V5VXNhZ2VEZWNyeXB0KSkgewotICAgICAgICB3cmFwcGVkKCkuZG9jdW1l
bnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6
RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiS2V5IHVzYWdlcyBkbyBub3QgaW5jbHVkZSAnZGVjcnlwdCci
KSk7Ci0gICAgICAgIHRocm93Tm90U3VwcG9ydGVkRXJyb3Ioc3RhdGUsIHNjb3BlKTsKLSAgICAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgQnVmZmVyU291cmNlIGRhdGEg
PSBjb252ZXJ0PElETFVuaW9uPElETEFycmF5QnVmZmVyVmlldywgSURMQXJyYXlCdWZmZXI+Pihz
dGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMikpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIHsgfSk7Ci0KLSAgICBSZWZQdHI8RGVmZXJyZWRQcm9taXNlPiB3cmFwcGVyID0g
Y3JlYXRlRGVmZXJyZWRQcm9taXNlKHN0YXRlLCBkb21XaW5kb3coKSk7Ci0gICAgYXV0byBwcm9t
aXNlID0gd3JhcHBlci0+cHJvbWlzZSgpOwotICAgIGF1dG8gc3VjY2Vzc0NhbGxiYWNrID0gW3dy
YXBwZXJdKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAg
ZnVsZmlsbFByb21pc2VXaXRoQXJyYXlCdWZmZXIod3JhcHBlci5yZWxlYXNlTm9uTnVsbCgpLCBy
ZXN1bHQuZGF0YSgpLCByZXN1bHQuc2l6ZSgpKTsKLSAgICB9OwotICAgIGF1dG8gZmFpbHVyZUNh
bGxiYWNrID0gW3dyYXBwZXJdKCkgbXV0YWJsZSB7Ci0gICAgICAgIHdyYXBwZXItPnJlamVjdCgp
OyAvLyBGSVhNRTogVGhpcyBzaG91bGQgcmVqZWN0IHdpdGggYW4gRXhjZXB0aW9uLgotICAgIH07
Ci0KLSAgICBhdXRvIHJlc3VsdCA9IGFsZ29yaXRobS0+ZGVjcnlwdCgqcGFyYW1ldGVycywgKmtl
eSwgeyBkYXRhLmRhdGEoKSwgZGF0YS5sZW5ndGgoKSB9LCBXVEZNb3ZlKHN1Y2Nlc3NDYWxsYmFj
ayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSk7Ci0gICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRp
b24oKSkgewotICAgICAgICBwcm9wYWdhdGVFeGNlcHRpb24oc3RhdGUsIHNjb3BlLCByZXN1bHQu
cmVsZWFzZUV4Y2VwdGlvbigpKTsKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICB9Ci0KLSAgICBy
ZXR1cm4gcHJvbWlzZTsKLX0KLQotSlNWYWx1ZSBKU1dlYktpdFN1YnRsZUNyeXB0bzo6c2lnbihF
eGVjU3RhdGUmIHN0YXRlKQotewotICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7Ci0gICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotCi0gICAgaWYgKHN0YXRlLmFyZ3VtZW50
Q291bnQoKSA8IDMpCi0gICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbigmc3RhdGUsIHNjb3Bl
LCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKLQotICAgIGF1dG8gYWxn
b3JpdGhtID0gY3JlYXRlQWxnb3JpdGhtRnJvbUpTVmFsdWUoc3RhdGUsIHNjb3BlLCBzdGF0ZS51
bmNoZWNrZWRBcmd1bWVudCgwKSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9
KTsKLQotICAgIGF1dG8gcGFyYW1ldGVycyA9IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6
Y3JlYXRlUGFyYW1ldGVyc0ZvclNpZ24oc3RhdGUsIHNjb3BlLCBhbGdvcml0aG0tPmlkZW50aWZp
ZXIoKSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIHsgfSk7Ci0KLSAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSBKU0NyeXB0b0tl
eTo6dG9XcmFwcGVkKHZtLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSk7Ci0gICAgaWYgKCFr
ZXkpCi0gICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIHNjb3BlKTsKLQotICAg
IGlmICgha2V5LT5hbGxvd3MoQ3J5cHRvS2V5VXNhZ2VTaWduKSkgewotICAgICAgICB3cmFwcGVk
KCkuZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3Nh
Z2VMZXZlbDo6RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiS2V5IHVzYWdlcyBkbyBub3QgaW5jbHVkZSAn
c2lnbiciKSk7Ci0gICAgICAgIHRocm93Tm90U3VwcG9ydGVkRXJyb3Ioc3RhdGUsIHNjb3BlKTsK
LSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgQnVmZmVyU291cmNl
IGRhdGEgPSBjb252ZXJ0PElETFVuaW9uPElETEFycmF5QnVmZmVyVmlldywgSURMQXJyYXlCdWZm
ZXI+PihzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMikpOwotICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIHsgfSk7Ci0KLSAgICBSZWZQdHI8RGVmZXJyZWRQcm9taXNlPiB3cmFw
cGVyID0gY3JlYXRlRGVmZXJyZWRQcm9taXNlKHN0YXRlLCBkb21XaW5kb3coKSk7Ci0gICAgYXV0
byBwcm9taXNlID0gd3JhcHBlci0+cHJvbWlzZSgpOwotICAgIGF1dG8gc3VjY2Vzc0NhbGxiYWNr
ID0gW3dyYXBwZXJdKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgcmVzdWx0KSBtdXRhYmxlIHsKLSAg
ICAgICAgZnVsZmlsbFByb21pc2VXaXRoQXJyYXlCdWZmZXIod3JhcHBlci5yZWxlYXNlTm9uTnVs
bCgpLCByZXN1bHQuZGF0YSgpLCByZXN1bHQuc2l6ZSgpKTsKLSAgICB9OwotICAgIGF1dG8gZmFp
bHVyZUNhbGxiYWNrID0gW3dyYXBwZXJdKCkgbXV0YWJsZSB7Ci0gICAgICAgIHdyYXBwZXItPnJl
amVjdCgpOyAvLyBGSVhNRTogVGhpcyBzaG91bGQgcmVqZWN0IHdpdGggYW4gRXhjZXB0aW9uLgot
ICAgIH07Ci0KLSAgICBhdXRvIHJlc3VsdCA9IGFsZ29yaXRobS0+c2lnbigqcGFyYW1ldGVycywg
KmtleSwgeyBkYXRhLmRhdGEoKSwgZGF0YS5sZW5ndGgoKSB9LCBXVEZNb3ZlKHN1Y2Nlc3NDYWxs
YmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSk7Ci0gICAgaWYgKHJlc3VsdC5oYXNFeGNl
cHRpb24oKSkgewotICAgICAgICBwcm9wYWdhdGVFeGNlcHRpb24oc3RhdGUsIHNjb3BlLCByZXN1
bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICB9Ci0KLSAg
ICByZXR1cm4gcHJvbWlzZTsKLX0KLQotSlNWYWx1ZSBKU1dlYktpdFN1YnRsZUNyeXB0bzo6dmVy
aWZ5KEV4ZWNTdGF0ZSYgc3RhdGUpCi17Ci0gICAgVk0mIHZtID0gc3RhdGUudm0oKTsKLSAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0KLSAgICBpZiAoc3RhdGUuYXJn
dW1lbnRDb3VudCgpIDwgNCkKLSAgICAgICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKCZzdGF0ZSwg
c2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCZzdGF0ZSkpOwotCi0gICAgYXV0
byBhbGdvcml0aG0gPSBjcmVhdGVBbGdvcml0aG1Gcm9tSlNWYWx1ZShzdGF0ZSwgc2NvcGUsIHN0
YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCB7IH0pOwotCi0gICAgYXV0byBwYXJhbWV0ZXJzID0gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9u
YXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yVmVyaWZ5KHN0YXRlLCBzY29wZSwgYWxnb3JpdGhtLT5p
ZGVudGlmaWVyKCksIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKLSAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotCi0gICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gSlND
cnlwdG9LZXk6OnRvV3JhcHBlZCh2bSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkpOwotICAg
IGlmICgha2V5KQotICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBzY29wZSk7
Ci0KLSAgICBpZiAoIWtleS0+YWxsb3dzKENyeXB0b0tleVVzYWdlVmVyaWZ5KSkgewotICAgICAg
ICB3cmFwcGVkKCkuZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6
SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiS2V5IHVzYWdlcyBkbyBub3Qg
aW5jbHVkZSAndmVyaWZ5JyIpKTsKLSAgICAgICAgdGhyb3dOb3RTdXBwb3J0ZWRFcnJvcihzdGF0
ZSwgc2NvcGUpOwotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICBC
dWZmZXJTb3VyY2Ugc2lnbmF0dXJlID0gY29udmVydDxJRExVbmlvbjxJRExBcnJheUJ1ZmZlclZp
ZXcsIElETEFycmF5QnVmZmVyPj4oc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIpKTsK
LSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotCi0gICAgQnVmZmVyU291cmNl
IGRhdGEgPSBjb252ZXJ0PElETFVuaW9uPElETEFycmF5QnVmZmVyVmlldywgSURMQXJyYXlCdWZm
ZXI+PihzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMykpOwotICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIHsgfSk7Ci0KLSAgICBSZWZQdHI8RGVmZXJyZWRQcm9taXNlPiB3cmFw
cGVyID0gY3JlYXRlRGVmZXJyZWRQcm9taXNlKHN0YXRlLCBkb21XaW5kb3coKSk7Ci0gICAgYXV0
byBwcm9taXNlID0gd3JhcHBlci0+cHJvbWlzZSgpOwotICAgIGF1dG8gc3VjY2Vzc0NhbGxiYWNr
ID0gW3dyYXBwZXJdKGJvb2wgcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgd3JhcHBlci0+cmVz
b2x2ZTxJRExCb29sZWFuPihyZXN1bHQpOwotICAgIH07Ci0gICAgYXV0byBmYWlsdXJlQ2FsbGJh
Y2sgPSBbd3JhcHBlcl0oKSBtdXRhYmxlIHsKLSAgICAgICAgd3JhcHBlci0+cmVqZWN0KCk7IC8v
IEZJWE1FOiBUaGlzIHNob3VsZCByZWplY3Qgd2l0aCBhbiBFeGNlcHRpb24uCi0gICAgfTsKLQot
ICAgIGF1dG8gcmVzdWx0ID0gYWxnb3JpdGhtLT52ZXJpZnkoKnBhcmFtZXRlcnMsICprZXksIHsg
c2lnbmF0dXJlLmRhdGEoKSwgc2lnbmF0dXJlLmxlbmd0aCgpIH0sIHsgZGF0YS5kYXRhKCksIGRh
dGEubGVuZ3RoKCkgfSwgV1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVD
YWxsYmFjaykpOwotICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKLSAgICAgICAgcHJv
cGFnYXRlRXhjZXB0aW9uKHN0YXRlLCBzY29wZSwgcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7
Ci0gICAgICAgIHJldHVybiB7IH07Ci0gICAgfQotCi0gICAgcmV0dXJuIHByb21pc2U7Ci19Ci0K
LUpTVmFsdWUgSlNXZWJLaXRTdWJ0bGVDcnlwdG86OmRpZ2VzdChFeGVjU3RhdGUmIHN0YXRlKQot
ewotICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwotCi0gICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA8IDIpCi0gICAg
ICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbigmc3RhdGUsIHNjb3BlLCBjcmVhdGVOb3RFbm91Z2hB
cmd1bWVudHNFcnJvcigmc3RhdGUpKTsKLQotICAgIGF1dG8gYWxnb3JpdGhtID0gY3JlYXRlQWxn
b3JpdGhtRnJvbUpTVmFsdWUoc3RhdGUsIHNjb3BlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgw
KSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKLQotICAgIGF1dG8gcGFy
YW1ldGVycyA9IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0Zv
ckRpZ2VzdChzdGF0ZSwgc2NvcGUsIGFsZ29yaXRobS0+aWRlbnRpZmllcigpLCBzdGF0ZS51bmNo
ZWNrZWRBcmd1bWVudCgwKSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsK
LQotICAgIEJ1ZmZlclNvdXJjZSBkYXRhID0gY29udmVydDxJRExVbmlvbjxJRExBcnJheUJ1ZmZl
clZpZXcsIElETEFycmF5QnVmZmVyPj4oc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEp
KTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotCi0gICAgUmVmUHRyPERl
ZmVycmVkUHJvbWlzZT4gd3JhcHBlciA9IGNyZWF0ZURlZmVycmVkUHJvbWlzZShzdGF0ZSwgZG9t
V2luZG93KCkpOwotICAgIGF1dG8gcHJvbWlzZSA9IHdyYXBwZXItPnByb21pc2UoKTsKLSAgICBh
dXRvIHN1Y2Nlc3NDYWxsYmFjayA9IFt3cmFwcGVyXShjb25zdCBWZWN0b3I8dWludDhfdD4mIHJl
c3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIGZ1bGZpbGxQcm9taXNlV2l0aEFycmF5QnVmZmVyKHdy
YXBwZXIucmVsZWFzZU5vbk51bGwoKSwgcmVzdWx0LmRhdGEoKSwgcmVzdWx0LnNpemUoKSk7Ci0g
ICAgfTsKLSAgICBhdXRvIGZhaWx1cmVDYWxsYmFjayA9IFt3cmFwcGVyXSgpIG11dGFibGUgewot
ICAgICAgICB3cmFwcGVyLT5yZWplY3QoKTsgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHJlamVjdCB3
aXRoIGFuIEV4Y2VwdGlvbi4KLSAgICB9OwotCi0gICAgYXV0byByZXN1bHQgPSBhbGdvcml0aG0t
PmRpZ2VzdCgqcGFyYW1ldGVycywgeyBkYXRhLmRhdGEoKSwgZGF0YS5sZW5ndGgoKSB9LCBXVEZN
b3ZlKHN1Y2Nlc3NDYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSk7Ci0gICAgaWYg
KHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAgICAgICBwcm9wYWdhdGVFeGNlcHRpb24oc3Rh
dGUsIHNjb3BlLCByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKLSAgICAgICAgcmV0dXJuIHsg
fTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcHJvbWlzZTsKLX0KLQotSlNWYWx1ZSBKU1dlYktpdFN1
YnRsZUNyeXB0bzo6Z2VuZXJhdGVLZXkoRXhlY1N0YXRlJiBzdGF0ZSkKLXsKLSAgICBWTSYgdm0g
PSBzdGF0ZS52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
LQotICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgPCAxKQotICAgICAgICByZXR1cm4gdGhy
b3dFeGNlcHRpb24oJnN0YXRlLCBzY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3Io
JnN0YXRlKSk7Ci0KLSAgICBhdXRvIGFsZ29yaXRobSA9IGNyZWF0ZUFsZ29yaXRobUZyb21KU1Zh
bHVlKHN0YXRlLCBzY29wZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOwotICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0KLSAgICBhdXRvIHBhcmFtZXRlcnMgPSBKU0Ny
eXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JHZW5lcmF0ZUtleShz
dGF0ZSwgc2NvcGUsIGFsZ29yaXRobS0+aWRlbnRpZmllcigpLCBzdGF0ZS51bmNoZWNrZWRBcmd1
bWVudCgwKSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKLQotICAgIGJv
b2wgZXh0cmFjdGFibGUgPSBzdGF0ZS5hcmd1bWVudCgxKS50b0Jvb2xlYW4oJnN0YXRlKTsKLSAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotCi0gICAgQ3J5cHRvS2V5VXNhZ2VC
aXRtYXAga2V5VXNhZ2VzID0gMDsKLSAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpID49IDMp
IHsKLSAgICAgICAga2V5VXNhZ2VzID0gY3J5cHRvS2V5VXNhZ2VzRnJvbUpTVmFsdWUoc3RhdGUs
IHNjb3BlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgyKSk7Ci0gICAgICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIHsgfSk7Ci0gICAgfQotCi0gICAgUmVmUHRyPERlZmVycmVkUHJvbWlz
ZT4gd3JhcHBlciA9IGNyZWF0ZURlZmVycmVkUHJvbWlzZShzdGF0ZSwgZG9tV2luZG93KCkpOwot
ICAgIGF1dG8gcHJvbWlzZSA9IHdyYXBwZXItPnByb21pc2UoKTsKLSAgICBhdXRvIHN1Y2Nlc3ND
YWxsYmFjayA9IFt3cmFwcGVyXShLZXlPcktleVBhaXImJiBrZXlPcktleVBhaXIpIG11dGFibGUg
ewotICAgICAgICBXVEY6OnN3aXRjaE9uKGtleU9yS2V5UGFpciwKLSAgICAgICAgICAgIFsmd3Jh
cHBlcl0gKFJlZlB0cjxDcnlwdG9LZXk+JiBrZXkpIHsKLSAgICAgICAgICAgICAgICB3cmFwcGVy
LT5yZXNvbHZlPElETEludGVyZmFjZTxDcnlwdG9LZXk+Pigqa2V5KTsKLSAgICAgICAgICAgIH0s
Ci0gICAgICAgICAgICBbJndyYXBwZXJdIChDcnlwdG9LZXlQYWlyJiBrZXlQYWlyKSB7Ci0gICAg
ICAgICAgICAgICAgd3JhcHBlci0+cmVzb2x2ZTxJRExEaWN0aW9uYXJ5PENyeXB0b0tleVBhaXI+
PihrZXlQYWlyKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgKTsKLSAgICB9OwotICAgIGF1dG8g
ZmFpbHVyZUNhbGxiYWNrID0gW3dyYXBwZXJdKCkgbXV0YWJsZSB7Ci0gICAgICAgIHdyYXBwZXIt
PnJlamVjdCgpOyAvLyBGSVhNRTogVGhpcyBzaG91bGQgcmVqZWN0IHdpdGggYW4gRXhjZXB0aW9u
LgotICAgIH07Ci0KLSAgICBhdXRvIHJlc3VsdCA9IGFsZ29yaXRobS0+Z2VuZXJhdGVLZXkoKnBh
cmFtZXRlcnMsIGV4dHJhY3RhYmxlLCBrZXlVc2FnZXMsIFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNr
KSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJhY2spLCAqc2NyaXB0RXhlY3V0aW9uQ29udGV4dEZyb21F
eGVjU3RhdGUoJnN0YXRlKSk7Ci0gICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAg
ICAgICBwcm9wYWdhdGVFeGNlcHRpb24oc3RhdGUsIHNjb3BlLCByZXN1bHQucmVsZWFzZUV4Y2Vw
dGlvbigpKTsKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcHJvbWlz
ZTsKLX0KLQotc3RhdGljIHZvaWQgaW1wb3J0S2V5KEV4ZWNTdGF0ZSYgc3RhdGUsIENyeXB0b0tl
eUZvcm1hdCBrZXlGb3JtYXQsIENyeXB0b09wZXJhdGlvbkRhdGEgZGF0YSwgUmVmUHRyPENyeXB0
b0FsZ29yaXRobT4gYWxnb3JpdGhtLCBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0Rl
cHJlY2F0ZWQ+IHBhcmFtZXRlcnMsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlQml0
bWFwIGtleVVzYWdlcywgQ3J5cHRvQWxnb3JpdGhtOjpLZXlDYWxsYmFjayBjYWxsYmFjaywgQ3J5
cHRvQWxnb3JpdGhtOjpWb2lkQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrKQotewotICAgIFZNJiB2
bSA9IHN0YXRlLnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwotCi0gICAgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0tleVNlcmlhbGl6YXRpb24+IGtleVNlcmlh
bGl6YXRpb247Ci0gICAgc3dpdGNoIChrZXlGb3JtYXQpIHsKLSAgICBjYXNlIENyeXB0b0tleUZv
cm1hdDo6UmF3OgotICAgICAgICBrZXlTZXJpYWxpemF0aW9uID0gQ3J5cHRvS2V5U2VyaWFsaXph
dGlvblJhdzo6Y3JlYXRlKGRhdGEpOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIENyeXB0b0tl
eUZvcm1hdDo6SndrOiB7Ci0gICAgICAgIFN0cmluZyBqd2tTdHJpbmcgPSBTdHJpbmc6OmZyb21V
VEY4KGRhdGEuZmlyc3QsIGRhdGEuc2Vjb25kKTsKLSAgICAgICAgaWYgKGp3a1N0cmluZy5pc051
bGwoKSkgewotICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBzY29wZSwgQVNDSUlM
aXRlcmFsKCJKV0sgSlNPTiBzZXJpYWxpemF0aW9uIGlzIG5vdCB2YWxpZCBVVEYtOCIpKTsKLSAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBrZXlTZXJpYWxpemF0aW9uID0g
c3RkOjptYWtlX3VuaXF1ZTxKU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0s+KCZzdGF0ZSwgandr
U3RyaW5nKTsKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHRocm93VHlwZUVycm9y
KCZzdGF0ZSwgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiVW5zdXBwb3J0ZWQga2V5IGZvcm1hdCBmb3Ig
aW1wb3J0IikpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgQVNTRVJUKGtleVNlcmlh
bGl6YXRpb24pOwotCi0gICAgc3RkOjpvcHRpb25hbDxDcnlwdG9BbGdvcml0aG1QYWlyPiByZWNv
bmNpbGVkUmVzdWx0ID0ga2V5U2VyaWFsaXphdGlvbi0+cmVjb25jaWxlQWxnb3JpdGhtKGFsZ29y
aXRobS5nZXQoKSwgcGFyYW1ldGVycy5nZXQoKSk7Ci0gICAgaWYgKCFyZWNvbmNpbGVkUmVzdWx0
KSB7Ci0gICAgICAgIGlmICghc2NvcGUuZXhjZXB0aW9uKCkpCi0gICAgICAgICAgICB0aHJvd1R5
cGVFcnJvcigmc3RhdGUsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIkFsZ29yaXRobSBzcGVjaWZpZWQg
aW4ga2V5IGlzIG5vdCBjb21wYXRpYmxlIHdpdGggb25lIHBhc3NlZCB0byBpbXBvcnRLZXkgYXMg
YXJndW1lbnQiKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgdm9pZCgpKTsKLQotICAgIGFsZ29yaXRobSA9IHJlY29uY2lsZWRSZXN1bHQt
PmFsZ29yaXRobTsKLSAgICBwYXJhbWV0ZXJzID0gcmVjb25jaWxlZFJlc3VsdC0+cGFyYW1ldGVy
czsKLSAgICBpZiAoIWFsZ29yaXRobSkgewotICAgICAgICB0aHJvd1R5cGVFcnJvcigmc3RhdGUs
IHNjb3BlLCBBU0NJSUxpdGVyYWwoIk5laXRoZXIga2V5IG5vciBmdW5jdGlvbiBhcmd1bWVudCBo
YXMgY3J5cHRvIGFsZ29yaXRobSBzcGVjaWZpZWQiKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0gICAgQVNTRVJUKHBhcmFtZXRlcnMpOwotCi0gICAga2V5U2VyaWFsaXphdGlvbi0+cmVjb25j
aWxlRXh0cmFjdGFibGUoZXh0cmFjdGFibGUpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIHZvaWQoKSk7Ci0KLSAgICBrZXlTZXJpYWxpemF0aW9uLT5yZWNvbmNpbGVVc2FnZXMoa2V5
VXNhZ2VzKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwotCi0gICAg
YXV0byBrZXlEYXRhID0ga2V5U2VyaWFsaXphdGlvbi0+a2V5RGF0YSgpOwotICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7Ci0KLSAgICBwcm9wYWdhdGVFeGNlcHRpb24oc3Rh
dGUsIHNjb3BlLCBhbGdvcml0aG0tPmltcG9ydEtleSgqcGFyYW1ldGVycywgKmtleURhdGEsIGV4
dHJhY3RhYmxlLCBrZXlVc2FnZXMsIFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVD
YWxsYmFjaykpKTsKLX0KLQotSlNWYWx1ZSBKU1dlYktpdFN1YnRsZUNyeXB0bzo6aW1wb3J0S2V5
KEV4ZWNTdGF0ZSYgc3RhdGUpCi17Ci0gICAgVk0mIHZtID0gc3RhdGUudm0oKTsKLSAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0KLSAgICBpZiAoc3RhdGUuYXJndW1l
bnRDb3VudCgpIDwgMykKLSAgICAgICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKCZzdGF0ZSwgc2Nv
cGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCZzdGF0ZSkpOwotCi0gICAgYXV0byBr
ZXlGb3JtYXQgPSBjcnlwdG9LZXlGb3JtYXRGcm9tSlNWYWx1ZShzdGF0ZSwgc2NvcGUsIHN0YXRl
LnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7
IH0pOwotCi0gICAgQnVmZmVyU291cmNlIGRhdGEgPSBjb252ZXJ0PElETFVuaW9uPElETEFycmF5
QnVmZmVyVmlldywgSURMQXJyYXlCdWZmZXI+PihzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1l
bnQoMSkpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0KLSAgICBSZWZQ
dHI8Q3J5cHRvQWxnb3JpdGhtPiBhbGdvcml0aG07Ci0gICAgUmVmUHRyPENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnNEZXByZWNhdGVkPiBwYXJhbWV0ZXJzOwotICAgIGlmICghc3RhdGUudW5jaGVj
a2VkQXJndW1lbnQoMikuaXNOdWxsKCkpIHsKLSAgICAgICAgYWxnb3JpdGhtID0gY3JlYXRlQWxn
b3JpdGhtRnJvbUpTVmFsdWUoc3RhdGUsIHNjb3BlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgy
KSk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0KLSAgICAgICAg
cGFyYW1ldGVycyA9IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVy
c0ZvckltcG9ydEtleShzdGF0ZSwgc2NvcGUsIGFsZ29yaXRobS0+aWRlbnRpZmllcigpLCBzdGF0
ZS51bmNoZWNrZWRBcmd1bWVudCgyKSk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIHsgfSk7Ci0gICAgfQotCi0gICAgYm9vbCBleHRyYWN0YWJsZSA9IHN0YXRlLmFyZ3VtZW50
KDMpLnRvQm9vbGVhbigmc3RhdGUpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpT
VmFsdWUoKSk7Ci0KLSAgICBDcnlwdG9LZXlVc2FnZUJpdG1hcCBrZXlVc2FnZXMgPSAwOwotICAg
IGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgPj0gNSkgewotICAgICAgICBrZXlVc2FnZXMgPSBj
cnlwdG9LZXlVc2FnZXNGcm9tSlNWYWx1ZShzdGF0ZSwgc2NvcGUsIHN0YXRlLnVuY2hlY2tlZEFy
Z3VtZW50KDQpKTsKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKLSAg
ICB9Ci0KLSAgICBSZWZQdHI8RGVmZXJyZWRQcm9taXNlPiB3cmFwcGVyID0gY3JlYXRlRGVmZXJy
ZWRQcm9taXNlKHN0YXRlLCBkb21XaW5kb3coKSk7Ci0gICAgYXV0byBwcm9taXNlID0gd3JhcHBl
ci0+cHJvbWlzZSgpOwotICAgIGF1dG8gc3VjY2Vzc0NhbGxiYWNrID0gW3dyYXBwZXJdKENyeXB0
b0tleSYgcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgd3JhcHBlci0+cmVzb2x2ZTxJRExJbnRl
cmZhY2U8Q3J5cHRvS2V5Pj4ocmVzdWx0KTsKLSAgICB9OwotICAgIGF1dG8gZmFpbHVyZUNhbGxi
YWNrID0gW3dyYXBwZXJdKCkgbXV0YWJsZSB7Ci0gICAgICAgIHdyYXBwZXItPnJlamVjdCgpOyAv
LyBGSVhNRTogVGhpcyBzaG91bGQgcmVqZWN0IHdpdGggYW4gRXhjZXB0aW9uLgotICAgIH07Ci0K
LSAgICBXZWJDb3JlOjppbXBvcnRLZXkoc3RhdGUsIGtleUZvcm1hdCwgeyBkYXRhLmRhdGEoKSwg
ZGF0YS5sZW5ndGgoKSB9LCBXVEZNb3ZlKGFsZ29yaXRobSksIFdURk1vdmUocGFyYW1ldGVycyks
IGV4dHJhY3RhYmxlLCBrZXlVc2FnZXMsIFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgV1RGTW92
ZShmYWlsdXJlQ2FsbGJhY2spKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1Zh
bHVlKCkpOwotCi0gICAgcmV0dXJuIHByb21pc2U7Ci19Ci0KLXN0YXRpYyB2b2lkIGV4cG9ydEtl
eShFeGVjU3RhdGUmIHN0YXRlLCBDcnlwdG9LZXlGb3JtYXQga2V5Rm9ybWF0LCBjb25zdCBDcnlw
dG9LZXkmIGtleSwgQ3J5cHRvQWxnb3JpdGhtOjpWZWN0b3JDYWxsYmFjayBjYWxsYmFjaywgQ3J5
cHRvQWxnb3JpdGhtOjpWb2lkQ2FsbGJhY2sgZmFpbHVyZUNhbGxiYWNrKQotewotICAgIFZNJiB2
bSA9IHN0YXRlLnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwotCi0gICAgaWYgKCFrZXkuZXh0cmFjdGFibGUoKSkgewotICAgICAgICB0aHJvd1R5cGVFcnJv
cigmc3RhdGUsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIktleSBpcyBub3QgZXh0cmFjdGFibGUiKSk7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBzd2l0Y2ggKGtleUZvcm1hdCkgewotICAg
IGNhc2UgQ3J5cHRvS2V5Rm9ybWF0OjpSYXc6IHsKLSAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IHJl
c3VsdDsKLSAgICAgICAgaWYgKENyeXB0b0tleVNlcmlhbGl6YXRpb25SYXc6OnNlcmlhbGl6ZShr
ZXksIHJlc3VsdCkpCi0gICAgICAgICAgICBjYWxsYmFjayhyZXN1bHQpOwotICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBmYWlsdXJlQ2FsbGJhY2soKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQot
ICAgIGNhc2UgQ3J5cHRvS2V5Rm9ybWF0OjpKd2s6IHsKLSAgICAgICAgU3RyaW5nIHJlc3VsdCA9
IEpTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSzo6c2VyaWFsaXplKCZzdGF0ZSwga2V5KTsKLSAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKLSAgICAgICAgQ1N0cmlu
ZyB1dGY4U3RyaW5nID0gcmVzdWx0LnV0ZjgoU3RyaWN0Q29udmVyc2lvbik7Ci0gICAgICAgIFZl
Y3Rvcjx1aW50OF90PiByZXN1bHRCdWZmZXI7Ci0gICAgICAgIHJlc3VsdEJ1ZmZlci5hcHBlbmQo
dXRmOFN0cmluZy5kYXRhKCksIHV0ZjhTdHJpbmcubGVuZ3RoKCkpOwotICAgICAgICBjYWxsYmFj
ayhyZXN1bHRCdWZmZXIpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgZGVmYXVsdDoKLSAg
ICAgICAgdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBzY29wZSwgQVNDSUlMaXRlcmFsKCJVbnN1cHBv
cnRlZCBrZXkgZm9ybWF0IGZvciBleHBvcnQiKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLX0K
LQotSlNWYWx1ZSBKU1dlYktpdFN1YnRsZUNyeXB0bzo6ZXhwb3J0S2V5KEV4ZWNTdGF0ZSYgc3Rh
dGUpCi17Ci0gICAgVk0mIHZtID0gc3RhdGUudm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRSh2bSk7Ci0KLSAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpIDwgMikK
LSAgICAgICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKCZzdGF0ZSwgc2NvcGUsIGNyZWF0ZU5vdEVu
b3VnaEFyZ3VtZW50c0Vycm9yKCZzdGF0ZSkpOwotCi0gICAgYXV0byBrZXlGb3JtYXQgPSBjcnlw
dG9LZXlGb3JtYXRGcm9tSlNWYWx1ZShzdGF0ZSwgc2NvcGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3Vt
ZW50KDApKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotCi0gICAgUmVm
UHRyPENyeXB0b0tleT4ga2V5ID0gSlNDcnlwdG9LZXk6OnRvV3JhcHBlZCh2bSwgc3RhdGUudW5j
aGVja2VkQXJndW1lbnQoMSkpOwotICAgIGlmICgha2V5KQotICAgICAgICByZXR1cm4gdGhyb3dU
eXBlRXJyb3IoJnN0YXRlLCBzY29wZSk7Ci0KLSAgICBSZWZQdHI8RGVmZXJyZWRQcm9taXNlPiB3
cmFwcGVyID0gY3JlYXRlRGVmZXJyZWRQcm9taXNlKHN0YXRlLCBkb21XaW5kb3coKSk7Ci0gICAg
YXV0byBwcm9taXNlID0gd3JhcHBlci0+cHJvbWlzZSgpOwotICAgIGF1dG8gc3VjY2Vzc0NhbGxi
YWNrID0gW3dyYXBwZXJdKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgcmVzdWx0KSBtdXRhYmxlIHsK
LSAgICAgICAgZnVsZmlsbFByb21pc2VXaXRoQXJyYXlCdWZmZXIod3JhcHBlci5yZWxlYXNlTm9u
TnVsbCgpLCByZXN1bHQuZGF0YSgpLCByZXN1bHQuc2l6ZSgpKTsKLSAgICB9OwotICAgIGF1dG8g
ZmFpbHVyZUNhbGxiYWNrID0gW3dyYXBwZXJdKCkgbXV0YWJsZSB7Ci0gICAgICAgIHdyYXBwZXIt
PnJlamVjdCgpOyAvLyBGSVhNRTogVGhpcyBzaG91bGQgcmVqZWN0IHdpdGggYW4gRXhjZXB0aW9u
LgotICAgIH07Ci0KLSAgICBXZWJDb3JlOjpleHBvcnRLZXkoc3RhdGUsIGtleUZvcm1hdCwgKmtl
eSwgV1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjaykpOwot
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0KLSAgICByZXR1cm4g
cHJvbWlzZTsKLX0KLQotSlNWYWx1ZSBKU1dlYktpdFN1YnRsZUNyeXB0bzo6d3JhcEtleShFeGVj
U3RhdGUmIHN0YXRlKQotewotICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7Ci0gICAgYXV0byBzY29w
ZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotCi0gICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291
bnQoKSA8IDQpCi0gICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbigmc3RhdGUsIHNjb3BlLCBj
cmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKLQotICAgIGF1dG8ga2V5Rm9y
bWF0ID0gY3J5cHRvS2V5Rm9ybWF0RnJvbUpTVmFsdWUoc3RhdGUsIHNjb3BlLCBzdGF0ZS51bmNo
ZWNrZWRBcmd1bWVudCgwKSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsK
LQotICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b1dyYXBwZWQodm0s
IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKLSAgICBpZiAoIWtleSkKLSAgICAgICAgcmV0
dXJuIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUpOwotCi0gICAgUmVmUHRyPENyeXB0b0tl
eT4gd3JhcHBpbmdLZXkgPSBKU0NyeXB0b0tleTo6dG9XcmFwcGVkKHZtLCBzdGF0ZS51bmNoZWNr
ZWRBcmd1bWVudCgyKSk7Ci0gICAgaWYgKCFrZXkpCi0gICAgICAgIHJldHVybiB0aHJvd1R5cGVF
cnJvcigmc3RhdGUsIHNjb3BlKTsKLQotICAgIGlmICghd3JhcHBpbmdLZXktPmFsbG93cyhDcnlw
dG9LZXlVc2FnZVdyYXBLZXkpKSB7Ci0gICAgICAgIHdyYXBwZWQoKS5kb2N1bWVudCgpLT5hZGRD
b25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgQVND
SUlMaXRlcmFsKCJLZXkgdXNhZ2VzIGRvIG5vdCBpbmNsdWRlICd3cmFwS2V5JyIpKTsKLSAgICAg
ICAgdGhyb3dOb3RTdXBwb3J0ZWRFcnJvcihzdGF0ZSwgc2NvcGUpOwotICAgICAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICBhdXRvIGFsZ29yaXRobSA9IGNyZWF0ZUFsZ29y
aXRobUZyb21KU1ZhbHVlKHN0YXRlLCBzY29wZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMykp
OwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0KLSAgICBhdXRvIHBhcmFt
ZXRlcnMgPSBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JF
bmNyeXB0KHN0YXRlLCBzY29wZSwgYWxnb3JpdGhtLT5pZGVudGlmaWVyKCksIHN0YXRlLnVuY2hl
Y2tlZEFyZ3VtZW50KDMpKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwot
Ci0gICAgUmVmUHRyPERlZmVycmVkUHJvbWlzZT4gd3JhcHBlciA9IGNyZWF0ZURlZmVycmVkUHJv
bWlzZShzdGF0ZSwgZG9tV2luZG93KCkpOwotICAgIGF1dG8gcHJvbWlzZSA9IHdyYXBwZXItPnBy
b21pc2UoKTsKLQotICAgIGF1dG8gZXhwb3J0U3VjY2Vzc0NhbGxiYWNrID0gW2FsZ29yaXRobSwg
cGFyYW1ldGVycywgd3JhcHBpbmdLZXksIHdyYXBwZXJdKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYg
ZXhwb3J0ZWRLZXlEYXRhKSBtdXRhYmxlIHsKLSAgICAgICAgYXV0byBlbmNyeXB0U3VjY2Vzc0Nh
bGxiYWNrID0gW3dyYXBwZXJdKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgZW5jcnlwdGVkRGF0YSkg
bXV0YWJsZSB7Ci0gICAgICAgICAgICBmdWxmaWxsUHJvbWlzZVdpdGhBcnJheUJ1ZmZlcih3cmFw
cGVyLnJlbGVhc2VOb25OdWxsKCksIGVuY3J5cHRlZERhdGEuZGF0YSgpLCBlbmNyeXB0ZWREYXRh
LnNpemUoKSk7Ci0gICAgICAgIH07Ci0gICAgICAgIGF1dG8gZW5jcnlwdEZhaWx1cmVDYWxsYmFj
ayA9IFt3cmFwcGVyXSgpIG11dGFibGUgewotICAgICAgICB3cmFwcGVyLT5yZWplY3QoKTsgLy8g
RklYTUU6IFRoaXMgc2hvdWxkIHJlamVjdCB3aXRoIGFuIEV4Y2VwdGlvbi4KLSAgICAgICAgfTsK
LSAgICAgICAgYXV0byByZXN1bHQgPSBhbGdvcml0aG0tPmVuY3J5cHRGb3JXcmFwS2V5KCpwYXJh
bWV0ZXJzLCAqd3JhcHBpbmdLZXksIHN0ZDo6bWFrZV9wYWlyKGV4cG9ydGVkS2V5RGF0YS5kYXRh
KCksIGV4cG9ydGVkS2V5RGF0YS5zaXplKCkpLCBXVEZNb3ZlKGVuY3J5cHRTdWNjZXNzQ2FsbGJh
Y2spLCBXVEZNb3ZlKGVuY3J5cHRGYWlsdXJlQ2FsbGJhY2spKTsKLSAgICAgICAgaWYgKHJlc3Vs
dC5oYXNFeGNlcHRpb24oKSkgewotICAgICAgICAgICAgLy8gRklYTUU6IFJlcG9ydCBmYWlsdXJl
IGRldGFpbHMgdG8gY29uc29sZSwgYW5kIHBvc3NpYmx5IHRvIGNhbGxpbmcgc2NyaXB0IG9uY2Ug
dGhlcmUgaXMgYSBzdGFuZGFyZGl6ZWQgd2F5IHRvIHBhc3MgZXJyb3JzIHRvIFdlYkNyeXB0byBw
cm9taXNlIHJlamVjdCBmdW5jdGlvbnMuCi0gICAgICAgICAgICB3cmFwcGVyLT5yZWplY3QoKTsg
Ly8gRklYTUU6IFRoaXMgc2hvdWxkIHJlamVjdCB3aXRoIGFuIEV4Y2VwdGlvbi4KLSAgICAgICAg
fQotICAgIH07Ci0KLSAgICBhdXRvIGV4cG9ydEZhaWx1cmVDYWxsYmFjayA9IFt3cmFwcGVyXSgp
IG11dGFibGUgewotICAgICAgICB3cmFwcGVyLT5yZWplY3QoKTsgLy8gRklYTUU6IFRoaXMgc2hv
dWxkIHJlamVjdCB3aXRoIGFuIEV4Y2VwdGlvbi4KLSAgICB9OwotCi0gICAgV2ViQ29yZTo6ZXhw
b3J0S2V5KHN0YXRlLCBrZXlGb3JtYXQsICprZXksIFdURk1vdmUoZXhwb3J0U3VjY2Vzc0NhbGxi
YWNrKSwgV1RGTW92ZShleHBvcnRGYWlsdXJlQ2FsbGJhY2spKTsKLQotICAgIHJldHVybiBwcm9t
aXNlOwotfQotCi1KU1ZhbHVlIEpTV2ViS2l0U3VidGxlQ3J5cHRvOjp1bndyYXBLZXkoRXhlY1N0
YXRlJiBzdGF0ZSkKLXsKLSAgICBWTSYgdm0gPSBzdGF0ZS52bSgpOwotICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLQotICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50
KCkgPCA1KQotICAgICAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24oJnN0YXRlLCBzY29wZSwgY3Jl
YXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7Ci0KLSAgICBhdXRvIGtleUZvcm1h
dCA9IGNyeXB0b0tleUZvcm1hdEZyb21KU1ZhbHVlKHN0YXRlLCBzY29wZSwgc3RhdGUudW5jaGVj
a2VkQXJndW1lbnQoMCkpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0K
LSAgICBCdWZmZXJTb3VyY2Ugd3JhcHBlZEtleURhdGEgPSBjb252ZXJ0PElETFVuaW9uPElETEFy
cmF5QnVmZmVyVmlldywgSURMQXJyYXlCdWZmZXI+PihzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJn
dW1lbnQoMSkpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0KLSAgICBS
ZWZQdHI8Q3J5cHRvS2V5PiB1bndyYXBwaW5nS2V5ID0gSlNDcnlwdG9LZXk6OnRvV3JhcHBlZCh2
bSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMikpOwotICAgIGlmICghdW53cmFwcGluZ0tleSkK
LSAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUpOwotCi0gICAgaWYg
KCF1bndyYXBwaW5nS2V5LT5hbGxvd3MoQ3J5cHRvS2V5VXNhZ2VVbndyYXBLZXkpKSB7Ci0gICAg
ICAgIHdyYXBwZWQoKS5kb2N1bWVudCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNl
OjpKUywgTWVzc2FnZUxldmVsOjpFcnJvciwgQVNDSUlMaXRlcmFsKCJLZXkgdXNhZ2VzIGRvIG5v
dCBpbmNsdWRlICd1bndyYXBLZXknIikpOwotICAgICAgICB0aHJvd05vdFN1cHBvcnRlZEVycm9y
KHN0YXRlLCBzY29wZSk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQot
ICAgIGF1dG8gdW53cmFwQWxnb3JpdGhtID0gY3JlYXRlQWxnb3JpdGhtRnJvbUpTVmFsdWUoc3Rh
dGUsIHNjb3BlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgzKSk7Ci0gICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgeyB9KTsKLQotICAgIGF1dG8gdW53cmFwQWxnb3JpdGhtUGFyYW1ldGVy
cyA9IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckRlY3J5
cHQoc3RhdGUsIHNjb3BlLCB1bndyYXBBbGdvcml0aG0tPmlkZW50aWZpZXIoKSwgc3RhdGUudW5j
aGVja2VkQXJndW1lbnQoMykpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7
Ci0KLSAgICBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtPiB1bndyYXBwZWRLZXlBbGdvcml0aG07Ci0g
ICAgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiB1bndyYXBwZWRL
ZXlBbGdvcml0aG1QYXJhbWV0ZXJzOwotICAgIGlmICghc3RhdGUudW5jaGVja2VkQXJndW1lbnQo
NCkuaXNOdWxsKCkpIHsKLSAgICAgICAgdW53cmFwcGVkS2V5QWxnb3JpdGhtID0gY3JlYXRlQWxn
b3JpdGhtRnJvbUpTVmFsdWUoc3RhdGUsIHNjb3BlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCg0
KSk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0KLSAgICAgICAg
dW53cmFwcGVkS2V5QWxnb3JpdGhtUGFyYW1ldGVycyA9IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlv
bmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckltcG9ydEtleShzdGF0ZSwgc2NvcGUsIHVud3JhcHBl
ZEtleUFsZ29yaXRobS0+aWRlbnRpZmllcigpLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCg0KSk7
Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0gICAgfQotCi0gICAg
Ym9vbCBleHRyYWN0YWJsZSA9IHN0YXRlLmFyZ3VtZW50KDUpLnRvQm9vbGVhbigmc3RhdGUpOwot
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0KLSAgICBDcnlwdG9LZXlVc2Fn
ZUJpdG1hcCBrZXlVc2FnZXMgPSAwOwotICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgPj0g
NykgewotICAgICAgICBrZXlVc2FnZXMgPSBjcnlwdG9LZXlVc2FnZXNGcm9tSlNWYWx1ZShzdGF0
ZSwgc2NvcGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDYpKTsKLSAgICAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgeyB9KTsKLSAgICB9Ci0KLSAgICBSZWZQdHI8RGVmZXJyZWRQcm9t
aXNlPiB3cmFwcGVyID0gY3JlYXRlRGVmZXJyZWRQcm9taXNlKHN0YXRlLCBkb21XaW5kb3coKSk7
Ci0gICAgYXV0byBwcm9taXNlID0gd3JhcHBlci0+cHJvbWlzZSgpOwotICAgIFN0cm9uZzxKU0RP
TUdsb2JhbE9iamVjdD4gZG9tR2xvYmFsT2JqZWN0KHN0YXRlLnZtKCksIGdsb2JhbE9iamVjdCgp
KTsKLQotICAgIGF1dG8gZGVjcnlwdFN1Y2Nlc3NDYWxsYmFjayA9IFtkb21HbG9iYWxPYmplY3Qs
IGtleUZvcm1hdCwgdW53cmFwcGVkS2V5QWxnb3JpdGhtLCB1bndyYXBwZWRLZXlBbGdvcml0aG1Q
YXJhbWV0ZXJzLCBleHRyYWN0YWJsZSwga2V5VXNhZ2VzLCB3cmFwcGVyXShjb25zdCBWZWN0b3I8
dWludDhfdD4mIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIGF1dG8gaW1wb3J0U3VjY2Vzc0Nh
bGxiYWNrID0gW3dyYXBwZXJdKENyeXB0b0tleSYga2V5KSBtdXRhYmxlIHsKLSAgICAgICAgICAg
IHdyYXBwZXItPnJlc29sdmU8SURMSW50ZXJmYWNlPENyeXB0b0tleT4+KGtleSk7Ci0gICAgICAg
IH07Ci0gICAgICAgIGF1dG8gaW1wb3J0RmFpbHVyZUNhbGxiYWNrID0gW3dyYXBwZXJdKCkgbXV0
YWJsZSB7Ci0gICAgICAgICAgICB3cmFwcGVyLT5yZWplY3QoKTsgLy8gRklYTUU6IFRoaXMgc2hv
dWxkIHJlamVjdCB3aXRoIGFuIEV4Y2VwdGlvbi4KLSAgICAgICAgfTsKLQotICAgICAgICBWTSYg
dm0gPSBkb21HbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJF
X0NBVENIX1NDT1BFKHZtKTsKLQotICAgICAgICBFeGVjU3RhdGUmIHN0YXRlID0gKmRvbUdsb2Jh
bE9iamVjdC0+Z2xvYmFsRXhlYygpOwotICAgICAgICBXZWJDb3JlOjppbXBvcnRLZXkoc3RhdGUs
IGtleUZvcm1hdCwgc3RkOjptYWtlX3BhaXIocmVzdWx0LmRhdGEoKSwgcmVzdWx0LnNpemUoKSks
IHVud3JhcHBlZEtleUFsZ29yaXRobSwgdW53cmFwcGVkS2V5QWxnb3JpdGhtUGFyYW1ldGVycywg
ZXh0cmFjdGFibGUsIGtleVVzYWdlcywgV1RGTW92ZShpbXBvcnRTdWNjZXNzQ2FsbGJhY2spLCBX
VEZNb3ZlKGltcG9ydEZhaWx1cmVDYWxsYmFjaykpOwotICAgICAgICBpZiAoVU5MSUtFTFkoc2Nv
cGUuZXhjZXB0aW9uKCkpKSB7Ci0gICAgICAgICAgICAvLyBGSVhNRTogUmVwb3J0IGV4Y2VwdGlv
biBkZXRhaWxzIHRvIGNvbnNvbGUsIGFuZCBwb3NzaWJseSB0byBjYWxsaW5nIHNjcmlwdCBvbmNl
IHRoZXJlIGlzIGEgc3RhbmRhcmRpemVkIHdheSB0byBwYXNzIGVycm9ycyB0byBXZWJDcnlwdG8g
cHJvbWlzZSByZWplY3QgZnVuY3Rpb25zLgotICAgICAgICAgICAgc2NvcGUuY2xlYXJFeGNlcHRp
b24oKTsKLSAgICAgICAgICAgIHdyYXBwZXItPnJlamVjdCgpOyAvLyBGSVhNRTogVGhpcyBzaG91
bGQgcmVqZWN0IHdpdGggYW4gRXhjZXB0aW9uLgotICAgICAgICB9Ci0gICAgfTsKLQotICAgIGF1
dG8gZGVjcnlwdEZhaWx1cmVDYWxsYmFjayA9IFt3cmFwcGVyXSgpIG11dGFibGUgewotICAgICAg
ICB3cmFwcGVyLT5yZWplY3QoKTsgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHJlamVjdCB3aXRoIGFu
IEV4Y2VwdGlvbi4KLSAgICB9OwotCi0gICAgYXV0byByZXN1bHQgPSB1bndyYXBBbGdvcml0aG0t
PmRlY3J5cHRGb3JVbndyYXBLZXkoKnVud3JhcEFsZ29yaXRobVBhcmFtZXRlcnMsICp1bndyYXBw
aW5nS2V5LCB7IHdyYXBwZWRLZXlEYXRhLmRhdGEoKSwgd3JhcHBlZEtleURhdGEubGVuZ3RoKCkg
fSwgV1RGTW92ZShkZWNyeXB0U3VjY2Vzc0NhbGxiYWNrKSwgV1RGTW92ZShkZWNyeXB0RmFpbHVy
ZUNhbGxiYWNrKSk7Ci0gICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAgICAgICBw
cm9wYWdhdGVFeGNlcHRpb24oc3RhdGUsIHNjb3BlLCByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigp
KTsKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICB9Ci0KLSAgICByZXR1cm4gcHJvbWlzZTsKLX0K
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2NyeXB0by9DcnlwdG9BbGdvcml0aG0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2NyeXB0by9DcnlwdG9BbGdvcml0aG0uY3BwCShyZXZpc2lvbiAyMjA5MTkpCisrKyBTb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTAs
NjEgKzkwLDYgQEAgRXhjZXB0aW9uT3I8c2l6ZV90PiBDcnlwdG9BbGdvcml0aG06OmdldAogICAg
IHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OwogfQogCi1FeGNlcHRpb25P
cjx2b2lkPiBDcnlwdG9BbGdvcml0aG06OmVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRp
b25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYpCi17Ci0gICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07Ci19Ci0KLUV4Y2VwdGlvbk9yPHZvaWQ+
IENyeXB0b0FsZ29yaXRobTo6ZGVjcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
RGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEm
LCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJikKLXsKLSAgICByZXR1cm4gRXhjZXB0
aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKLX0KLQotRXhjZXB0aW9uT3I8dm9pZD4gQ3J5cHRv
QWxnb3JpdGhtOjpzaWduKGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVk
JiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNh
bGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmKQotewotICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RT
dXBwb3J0ZWRFcnJvciB9OwotfQotCi1FeGNlcHRpb25Pcjx2b2lkPiBDcnlwdG9BbGdvcml0aG06
OnZlcmlmeShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0
IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBjb25zdCBDcnlwdG9PcGVy
YXRpb25EYXRhJiwgQm9vbENhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmKQotewotICAgIHJldHVy
biBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OwotfQotCi1FeGNlcHRpb25Pcjx2b2lk
PiBDcnlwdG9BbGdvcml0aG06OmRpZ2VzdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
RGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYm
LCBWb2lkQ2FsbGJhY2smJikKLXsKLSAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVk
RXJyb3IgfTsKLX0KLQotRXhjZXB0aW9uT3I8dm9pZD4gQ3J5cHRvQWxnb3JpdGhtOjpnZW5lcmF0
ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGJvb2wsIENy
eXB0b0tleVVzYWdlQml0bWFwLCBLZXlPcktleVBhaXJDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2sm
JiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpCi17Ci0gICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5v
dFN1cHBvcnRlZEVycm9yIH07Ci19Ci0KLUV4Y2VwdGlvbk9yPHZvaWQ+IENyeXB0b0FsZ29yaXRo
bTo6ZGVyaXZlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwg
Y29uc3QgQ3J5cHRvS2V5JiwgQ3J5cHRvQWxnb3JpdGhtKiwgYm9vbCwgQ3J5cHRvS2V5VXNhZ2VC
aXRtYXAsIEtleUNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmKQotewotICAgIHJldHVybiBFeGNl
cHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OwotfQotCi1FeGNlcHRpb25Pcjx2b2lkPiBDcnlw
dG9BbGdvcml0aG06OmRlcml2ZUJpdHMoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0Rl
cHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmLCBzaXplX3QsIFZlY3RvckNhbGxiYWNrJiYsIFZv
aWRDYWxsYmFjayYmKQotewotICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJv
ciB9OwotfQotCi1FeGNlcHRpb25Pcjx2b2lkPiBDcnlwdG9BbGdvcml0aG06OmltcG9ydEtleShj
b25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tl
eURhdGEmLCBib29sLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCwgS2V5Q2FsbGJhY2smJiwgVm9pZENh
bGxiYWNrJiYpCi17Ci0gICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07
Ci19Ci0KLUV4Y2VwdGlvbk9yPHZvaWQ+IENyeXB0b0FsZ29yaXRobTo6ZW5jcnlwdEZvcldyYXBL
ZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMs
IGNvbnN0IENyeXB0b0tleSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBW
ZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2sp
Ci17Ci0gICAgcmV0dXJuIGVuY3J5cHQocGFyYW1ldGVycywga2V5LCBkYXRhLCBXVEZNb3ZlKGNh
bGxiYWNrKSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJhY2spKTsKLX0KLQotRXhjZXB0aW9uT3I8dm9p
ZD4gQ3J5cHRvQWxnb3JpdGhtOjpkZWNyeXB0Rm9yVW53cmFwS2V5KGNvbnN0IENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtl
eSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxs
YmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrKQotewotICAgIHJldHVybiBkZWNy
eXB0KHBhcmFtZXRlcnMsIGtleSwgZGF0YSwgV1RGTW92ZShjYWxsYmFjayksIFdURk1vdmUoZmFp
bHVyZUNhbGxiYWNrKSk7Ci19Ci0KIH0KIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9j
cnlwdG8vQ3J5cHRvQWxnb3JpdGhtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3J5
cHRvL0NyeXB0b0FsZ29yaXRobS5oCShyZXZpc2lvbiAyMjA5MTkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtLmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDE0ICs0Miwx
MCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0
ZXJzOwotY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ7CiBjbGFzcyBD
cnlwdG9LZXk7CiBjbGFzcyBDcnlwdG9LZXlEYXRhOwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dDsKIAotLy8gRGF0YSBpcyBtdXRhYmxlLCBzbyBhc3luYyBvcGVyYXRpb25zIHNob3VsZCBj
b3B5IGl0IGZpcnN0LgotdXNpbmcgQ3J5cHRvT3BlcmF0aW9uRGF0YSA9IHN0ZDo6cGFpcjxjb25z
dCB1aW50OF90Kiwgc2l6ZV90PjsKLQogdXNpbmcgS2V5RGF0YSA9IFZhcmlhbnQ8VmVjdG9yPHVp
bnQ4X3Q+LCBKc29uV2ViS2V5PjsKIHVzaW5nIEtleU9yS2V5UGFpciA9IFZhcmlhbnQ8UmVmUHRy
PENyeXB0b0tleT4sIENyeXB0b0tleVBhaXI+OwogCkBAIC04MSwyMSArNzcsNiBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHdyYXBLZXkoUmVmPENyeXB0b0tleT4mJiwgVmVjdG9yPHVpbnQ4
X3Q+JiYsIFZlY3RvckNhbGxiYWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYpOwogICAgIHZpcnR1
YWwgdm9pZCB1bndyYXBLZXkoUmVmPENyeXB0b0tleT4mJiwgVmVjdG9yPHVpbnQ4X3Q+JiYsIFZl
Y3RvckNhbGxiYWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYpOwogICAgIHZpcnR1YWwgRXhjZXB0
aW9uT3I8c2l6ZV90PiBnZXRLZXlMZW5ndGgoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
cyYpOwotCi0gICAgLy8gVGhlIGZvbGxvd2luZyB3aWxsIGJlIGRlcHJlY2F0ZWQuCi0gICAgdmly
dHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBlbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9u
RGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjayk7
Ci0gICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBkZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRv
T3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVD
YWxsYmFjayk7Ci0gICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBzaWduKGNvbnN0IENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3Qg
Q3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZh
aWx1cmVDYWxsYmFjayk7Ci0gICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiB2ZXJpZnkoY29u
c3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkm
LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBzaWduYXR1cmUsIGNvbnN0IENyeXB0b09wZXJh
dGlvbkRhdGEmLCBCb29sQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNr
KTsKLSAgICB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IGRpZ2VzdChjb25zdCBDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBW
ZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spOwotICAgIHZp
cnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4gZ2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJp
dG1hcCwgS2V5T3JLZXlQYWlyQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxi
YWNrLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7Ci0gICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2
b2lkPiBkZXJpdmVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQm
LCBjb25zdCBDcnlwdG9LZXkmIGJhc2VLZXksIENyeXB0b0FsZ29yaXRobSogZGVyaXZlZEtleVR5
cGUsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlQml0bWFwLCBLZXlDYWxsYmFjayYm
LCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spOwotICAgIHZpcnR1YWwgRXhjZXB0aW9u
T3I8dm9pZD4gZGVyaXZlQml0cyhjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVj
YXRlZCYsIGNvbnN0IENyeXB0b0tleSYgYmFzZUtleSwgc2l6ZV90IGxlbmd0aCwgVmVjdG9yQ2Fs
bGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrKTsKLSAgICB2aXJ0dWFsIEV4
Y2VwdGlvbk9yPHZvaWQ+IGltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
RGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleURhdGEmLCBib29sIGV4dHJhY3RhYmxlLCBDcnlw
dG9LZXlVc2FnZUJpdG1hcCwgS2V5Q2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNh
bGxiYWNrKTsKLQotICAgIC8vIFRoZXNlIGFyZSBvbmx5IGRpZmZlcmVudCBmcm9tIGVuY3J5cHQv
ZGVjcnlwdCBiZWNhdXNlIHNvbWUgYWxnb3JpdGhtcyBtYXkgbm90IGV4cG9zZSBlbmNyeXB0L2Rl
Y3J5cHQuCi0gICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBlbmNyeXB0Rm9yV3JhcEtleShj
b25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tl
eSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2Fs
bGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spOwotICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4g
ZGVjcnlwdEZvclVud3JhcEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVj
YXRlZCYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0
b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkLmgJKHJldmlzaW9u
IDIyMDkxOSkKKysrIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG1QYXJhbWV0
ZXJzRGVwcmVjYXRlZC5oCShub25leGlzdGVudCkKQEAgLTEsNjAgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCi0KLSNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1jbGFzcyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRl
ZCA6IHB1YmxpYyBSZWZDb3VudGVkPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVk
PiB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJl
Y2F0ZWQoKSB7IH0KLQotICAgIGVudW0gY2xhc3MgQ2xhc3MgewotICAgICAgICBOb25lLAotICAg
ICAgICBBZXNDYmNQYXJhbXMsCi0gICAgICAgIEFlc0tleUdlblBhcmFtcywKLSAgICAgICAgSG1h
Y0tleVBhcmFtcywKLSAgICAgICAgSG1hY1BhcmFtcywKLSAgICAgICAgUnNhS2V5R2VuUGFyYW1z
LAotICAgICAgICBSc2FLZXlQYXJhbXNXaXRoSGFzaCwKLSAgICAgICAgUnNhT2FlcFBhcmFtcywK
LSAgICAgICAgUnNhU3NhUGFyYW1zCi0gICAgfTsKLSAgICB2aXJ0dWFsIENsYXNzIHBhcmFtZXRl
cnNDbGFzcygpIGNvbnN0IHsgcmV0dXJuIENsYXNzOjpOb25lOyB9Ci19OwotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCi0KLSNkZWZpbmUgU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DUllQVE9fQUxH
T1JJVEhNX1BBUkFNRVRFUlNfREVQUkVDQVRFRChUb0NsYXNzTmFtZSkgXAotU1BFQ0lBTElaRV9U
WVBFX1RSQUlUU19CRUdJTihXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG0jI1RvQ2xhc3NOYW1lIyNE
ZXByZWNhdGVkKSBcCi0gICAgc3RhdGljIGJvb2wgaXNUeXBlKGNvbnN0IFdlYkNvcmU6OkNyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzKSB7IHJldHVybiBwYXJh
bWV0ZXJzLnBhcmFtZXRlcnNDbGFzcygpID09IFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnNEZXByZWNhdGVkOjpDbGFzczo6VG9DbGFzc05hbWU7IH0gXAotU1BFQ0lBTElaRV9UWVBF
X1RSQUlUU19FTkQoKQotCi0jZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvS2V5U2VyaWFsaXphdGlvbi5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9LZXlTZXJpYWxpemF0aW9uLmgJKHJldmlz
aW9uIDIyMDkxOSkKKysrIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9LZXlTZXJpYWxpemF0
aW9uLmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw2NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdt
YSBvbmNlCi0KLSNpbmNsdWRlICJDcnlwdG9LZXlVc2FnZS5oIgotI2luY2x1ZGUgPHd0Zi9Ob25j
b3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KLQotI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7
Ci0KLWNsYXNzIENyeXB0b0FsZ29yaXRobTsKLWNsYXNzIENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnNEZXByZWNhdGVkOwotY2xhc3MgQ3J5cHRvS2V5RGF0YTsKLQotdHlwZWRlZiBzdGQ6OnBhaXI8
Y29uc3QgdWludDhfdCosIHNpemVfdD4gQ3J5cHRvT3BlcmF0aW9uRGF0YTsKLQotc3RydWN0IENy
eXB0b0FsZ29yaXRobVBhaXIgewotICAgIFJlZlB0cjxDcnlwdG9BbGdvcml0aG0+IGFsZ29yaXRo
bTsKLSAgICBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IHBhcmFt
ZXRlcnM7Ci19OwotCi1jbGFzcyBDcnlwdG9LZXlTZXJpYWxpemF0aW9uIHsKLSAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShDcnlwdG9LZXlTZXJpYWxpemF0aW9uKTsKLXB1YmxpYzoKLSAgICBDcnlw
dG9LZXlTZXJpYWxpemF0aW9uKCkgeyB9Ci0gICAgdmlydHVhbCB+Q3J5cHRvS2V5U2VyaWFsaXph
dGlvbigpIHsgfQotCi0gICAgLy8gUmV0dXJucyBmYWxzZSBpZiBzdWdnZXN0ZWQgYWxnb3JpdGht
IHdhcyBub3QgY29tcGF0aWJsZSB3aXRoIG9uZSBzdG9yZWQgaW4gdGhlIHNlcmlhbGl6YXRpb24u
Ci0gICAgdmlydHVhbCBzdGQ6Om9wdGlvbmFsPENyeXB0b0FsZ29yaXRobVBhaXI+IHJlY29uY2ls
ZUFsZ29yaXRobShDcnlwdG9BbGdvcml0aG0qLCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVw
cmVjYXRlZCopIGNvbnN0ID0gMDsKLQotICAgIHZpcnR1YWwgdm9pZCByZWNvbmNpbGVVc2FnZXMo
Q3J5cHRvS2V5VXNhZ2VCaXRtYXAmKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJlY29u
Y2lsZUV4dHJhY3RhYmxlKGJvb2wmKSBjb25zdCA9IDA7Ci0KLSAgICB2aXJ0dWFsIHN0ZDo6dW5p
cXVlX3B0cjxDcnlwdG9LZXlEYXRhPiBrZXlEYXRhKCkgY29uc3QgPSAwOwotfTsKLQotfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCgpQcm9w
ZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvS2V5U2VyaWFsaXph
dGlvbi5oCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1u
YXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogU291cmNlL1dlYkNv
cmUvY3J5cHRvL1dlYktpdFN1YnRsZUNyeXB0by5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvY3J5cHRvL1dlYktpdFN1YnRsZUNyeXB0by5jcHAJKHJldmlzaW9uIDIyMDkxOSkKKysr
IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9XZWJLaXRTdWJ0bGVDcnlwdG8uY3BwCShub25leGlzdGVu
dCkKQEAgLTEsNDcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJXZWJLaXRTdWJ0bGVDcnlwdG8uaCIKLQotI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRP
KQotCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1XZWJL
aXRTdWJ0bGVDcnlwdG86OldlYktpdFN1YnRsZUNyeXB0byhEb2N1bWVudCYgZG9jdW1lbnQpCi0g
ICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmZG9jdW1lbnQpCi17Ci19Ci0KLURvY3Vt
ZW50KiBXZWJLaXRTdWJ0bGVDcnlwdG86OmRvY3VtZW50KCkgY29uc3QKLXsKLSAgICByZXR1cm4g
ZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci19Ci0KLX0KLQot
I2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vV2ViS2l0U3VidGxlQ3J5cHRvLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3J5cHRvL1dlYktpdFN1YnRsZUNyeXB0by5o
CShyZXZpc2lvbiAyMjA5MTkpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vV2ViS2l0U3VidGxl
Q3J5cHRvLmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw1MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3By
YWdtYSBvbmNlCi0KLSNpbmNsdWRlICJDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIiAKLSNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9SZWYuaD4KLQotI2lmIEVO
QUJMRShTVUJUTEVfQ1JZUFRPKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIERvY3Vt
ZW50OwotCi1jbGFzcyBXZWJLaXRTdWJ0bGVDcnlwdG8gOiBwdWJsaWMgQ29udGV4dERlc3RydWN0
aW9uT2JzZXJ2ZXIsIHB1YmxpYyBSZWZDb3VudGVkPFdlYktpdFN1YnRsZUNyeXB0bz4gewotcHVi
bGljOgotICAgIHN0YXRpYyBSZWY8V2ViS2l0U3VidGxlQ3J5cHRvPiBjcmVhdGUoRG9jdW1lbnQm
IGRvY3VtZW50KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFdlYktpdFN1YnRsZUNyeXB0byhkb2N1
bWVudCkpOyB9Ci0KLSAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBjb25zdDsKLQotcHJpdmF0ZToK
LSAgICBXZWJLaXRTdWJ0bGVDcnlwdG8oRG9jdW1lbnQmKTsKLX07Ci0KLX0KLQotI2VuZGlmCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vV2ViS2l0U3VidGxlQ3J5cHRvLmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vV2ViS2l0U3VidGxlQ3J5cHRvLmlkbAkocmV2
aXNpb24gMjIwOTE5KQorKysgU291cmNlL1dlYkNvcmUvY3J5cHRvL1dlYktpdFN1YnRsZUNyeXB0
by5pZGwJKG5vbmV4aXN0ZW50KQpAQCAtMSw0MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotWwotICAg
IENvbmRpdGlvbmFsPVNVQlRMRV9DUllQVE8sCi0gICAgR2VuZXJhdGVJc1JlYWNoYWJsZT1JbXBs
RG9jdW1lbnQsCi0gICAgTm9JbnRlcmZhY2VPYmplY3QsCi1dIGludGVyZmFjZSBXZWJLaXRTdWJ0
bGVDcnlwdG8gewotICAgIFtDdXN0b20sIFJldHVybnNPd25Qcm9taXNlXSBQcm9taXNlPEFycmF5
QnVmZmVyPiBlbmNyeXB0KEFsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBLZXkga2V5LCBz
ZXF1ZW5jZTxCdWZmZXJTb3VyY2U+IGRhdGEpOwotICAgIFtDdXN0b20sIFJldHVybnNPd25Qcm9t
aXNlXSBQcm9taXNlPEFycmF5QnVmZmVyPiBkZWNyeXB0KEFsZ29yaXRobUlkZW50aWZpZXIgYWxn
b3JpdGhtLCBLZXkga2V5LCBzZXF1ZW5jZTxCdWZmZXJTb3VyY2U+IGRhdGEpOwotICAgIFtDdXN0
b20sIFJldHVybnNPd25Qcm9taXNlXSBQcm9taXNlPEFycmF5QnVmZmVyPiBzaWduKEFsZ29yaXRo
bUlkZW50aWZpZXIgYWxnb3JpdGhtLCBLZXkga2V5LCBzZXF1ZW5jZTxCdWZmZXJTb3VyY2U+IGRh
dGEpOwotICAgIFtDdXN0b20sIFJldHVybnNPd25Qcm9taXNlXSBQcm9taXNlPGJvb2xlYW4+IHZl
cmlmeShBbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgS2V5IGtleSwgQnVmZmVyU291cmNl
IHNpZ25hdHVyZSwgc2VxdWVuY2U8QnVmZmVyU291cmNlPiBkYXRhKTsKLSAgICBbQ3VzdG9tLCBS
ZXR1cm5zT3duUHJvbWlzZV0gUHJvbWlzZTxBcnJheUJ1ZmZlcj4gZGlnZXN0KEFsZ29yaXRobUlk
ZW50aWZpZXIgYWxnb3JpdGhtLCBzZXF1ZW5jZTxCdWZmZXJTb3VyY2U+IGRhdGEpOwotICAgIFtD
dXN0b20sIFJldHVybnNPd25Qcm9taXNlXSBQcm9taXNlPChDcnlwdG9LZXkgb3IgQ3J5cHRvS2V5
UGFpcik+IGdlbmVyYXRlS2V5KEFsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBvcHRpb25h
bCBib29sZWFuIGV4dHJhY3RhYmxlLCBvcHRpb25hbCBzZXF1ZW5jZTxLZXlVc2FnZT4ga2V5VXNh
Z2VzKTsKLSAgICBbQ3VzdG9tLCBSZXR1cm5zT3duUHJvbWlzZV0gUHJvbWlzZTxDcnlwdG9LZXk+
IGltcG9ydEtleShLZXlGb3JtYXQgZm9ybWF0LCBCdWZmZXJTb3VyY2Uga2V5RGF0YSwgQWxnb3Jp
dGhtSWRlbnRpZmllcj8gYWxnb3JpdGhtLCBvcHRpb25hbCBib29sZWFuIGV4dHJhY3RhYmxlLCBv
cHRpb25hbCBzZXF1ZW5jZTxLZXlVc2FnZT4ga2V5VXNhZ2VzKTsKLSAgICBbQ3VzdG9tLCBSZXR1
cm5zT3duUHJvbWlzZV0gUHJvbWlzZTxBcnJheUJ1ZmZlcj4gZXhwb3J0S2V5KEtleUZvcm1hdCBm
b3JtYXQsIEtleSBrZXkpOwotICAgIFtDdXN0b20sIFJldHVybnNPd25Qcm9taXNlXSBQcm9taXNl
PEFycmF5QnVmZmVyPiB3cmFwS2V5KEtleUZvcm1hdCBmb3JtYXQsIEtleSBrZXksIEtleSB3cmFw
cGluZ0tleSwgQWxnb3JpdGhtSWRlbnRpZmllciB3cmFwQWxnb3JpdGhtKTsKLSAgICBbQ3VzdG9t
LCBSZXR1cm5zT3duUHJvbWlzZV0gUHJvbWlzZTxDcnlwdG9LZXk+IHVud3JhcEtleShLZXlGb3Jt
YXQgZm9ybWF0LCBCdWZmZXJTb3VyY2Ugd3JhcHBlZEtleSwgS2V5IHVud3JhcHBpbmdLZXksIEFs
Z29yaXRobUlkZW50aWZpZXIgdW53cmFwQWxnb3JpdGhtLCBBbGdvcml0aG1JZGVudGlmaWVyPyB1
bndyYXBwZWRLZXlBbGdvcml0aG0sIG9wdGlvbmFsIGJvb2xlYW4gZXh0cmFjdGFibGUsIG9wdGlv
bmFsIHNlcXVlbmNlPEtleVVzYWdlPiBrZXlVc2FnZXMpOwotfTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFF
U19DQkMuY3BwCShyZXZpc2lvbiAyMjA5MTkpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjks
OCArMjksNiBAQAogI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQogCiAjaW5jbHVkZSAiQ3J5cHRv
QWxnb3JpdGhtQWVzQ2JjQ2ZiUGFyYW1zLmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtQWVz
Q2JjUGFyYW1zRGVwcmVjYXRlZC5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUFlc0tleUdl
blBhcmFtc0RlcHJlY2F0ZWQuaCIKICNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1BZXNLZXlQYXJh
bXMuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlBRVMuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlEYXRh
T2N0ZXRTZXF1ZW5jZS5oIgpAQCAtNTcsMTQgKzU1LDYgQEAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
ZmllciBDcnlwdG9BbGdvcml0aAogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKLWJvb2wg
Q3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6a2V5QWxnb3JpdGhtTWF0Y2hlcyhjb25zdCBDcnlwdG9B
bGdvcml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiBrZXkpIGNv
bnN0Ci17Ci0gICAgaWYgKGtleS5hbGdvcml0aG1JZGVudGlmaWVyKCkgIT0gc19pZGVudGlmaWVy
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgQVNTRVJUKGlzPENyeXB0b0tleUFFUz4oa2V5
KSk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIHZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6
ZW5jcnlwdChzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4mJiBwYXJh
bWV0ZXJzLCBSZWY8Q3J5cHRvS2V5PiYmIGtleSwgVmVjdG9yPHVpbnQ4X3Q+JiYgcGxhaW5UZXh0
LCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBFeGNlcHRpb25DYWxsYmFjayYmIGV4Y2VwdGlv
bkNhbGxiYWNrLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBXb3JrUXVldWUmIHdv
cmtRdWV1ZSkKIHsKICAgICBBU1NFUlQocGFyYW1ldGVycyk7CkBAIC0xOTAsNDUgKzE4MCw2IEBA
IEV4Y2VwdGlvbk9yPHNpemVfdD4gQ3J5cHRvQWxnb3JpdGhtQUVTX0MKICAgICByZXR1cm4gQ3J5
cHRvS2V5QUVTOjpnZXRLZXlMZW5ndGgocGFyYW1ldGVycyk7CiB9CiAKLUV4Y2VwdGlvbk9yPHZv
aWQ+IENyeXB0b0FsZ29yaXRobUFFU19DQkM6OmVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVyc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleSYga2V5LCBj
b25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNr
LCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spCi17Ci0gICAgYXV0byYgYWVzQ0JDUGFy
YW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0ZWQ+
KHBhcmFtZXRlcnMpOwotICAgIGlmICgha2V5QWxnb3JpdGhtTWF0Y2hlcyhhZXNDQkNQYXJhbWV0
ZXJzLCBrZXkpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3Ig
fTsKLSAgICByZXR1cm4gcGxhdGZvcm1FbmNyeXB0KGFlc0NCQ1BhcmFtZXRlcnMsIGRvd25jYXN0
PENyeXB0b0tleUFFUz4oa2V5KSwgZGF0YSwgV1RGTW92ZShjYWxsYmFjayksIFdURk1vdmUoZmFp
bHVyZUNhbGxiYWNrKSk7Ci19Ci0KLUV4Y2VwdGlvbk9yPHZvaWQ+IENyeXB0b0FsZ29yaXRobUFF
U19DQkM6OmRlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQm
IHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25E
YXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWls
dXJlQ2FsbGJhY2spCi17Ci0gICAgYXV0byYgYWVzQ0JDUGFyYW1ldGVycyA9IGRvd25jYXN0PENy
eXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0ZWQ+KHBhcmFtZXRlcnMpOwotICAgIGlm
ICgha2V5QWxnb3JpdGhtTWF0Y2hlcyhhZXNDQkNQYXJhbWV0ZXJzLCBrZXkpKQotICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKLSAgICByZXR1cm4gcGxhdGZv
cm1EZWNyeXB0KGFlc0NCQ1BhcmFtZXRlcnMsIGRvd25jYXN0PENyeXB0b0tleUFFUz4oa2V5KSwg
ZGF0YSwgV1RGTW92ZShjYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSk7Ci19Ci0K
LUV4Y2VwdGlvbk9yPHZvaWQ+IENyeXB0b0FsZ29yaXRobUFFU19DQkM6OmdlbmVyYXRlS2V5KGNv
bnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBib29s
IGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCB1c2FnZXMsIEtleU9yS2V5UGFpckNh
bGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYpCi17Ci0gICAgYXV0byYgYWVzUGFyYW1ldGVycyA9IGRvd25jYXN0
PENyeXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFtc0RlcHJlY2F0ZWQ+KHBhcmFtZXRlcnMpOwot
Ci0gICAgYXV0byByZXN1bHQgPSBDcnlwdG9LZXlBRVM6OmdlbmVyYXRlKENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXI6OkFFU19DQkMsIGFlc1BhcmFtZXRlcnMubGVuZ3RoLCBleHRyYWN0YWJsZSwg
dXNhZ2VzKTsKLSAgICBpZiAoIXJlc3VsdCkgewotICAgICAgICBmYWlsdXJlQ2FsbGJhY2soKTsK
LSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICB9Ci0KLSAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3Vs
dCkpOwotICAgIHJldHVybiB7IH07Ci19Ci0KLUV4Y2VwdGlvbk9yPHZvaWQ+IENyeXB0b0FsZ29y
aXRobUFFU19DQkM6OmltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVw
cmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleURhdGEmIGtleURhdGEsIGJvb2wgZXh0cmFjdGFibGUs
IENyeXB0b0tleVVzYWdlQml0bWFwIHVzYWdlLCBLZXlDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lk
Q2FsbGJhY2smJikKLXsKLSAgICBpZiAoIWlzPENyeXB0b0tleURhdGFPY3RldFNlcXVlbmNlPihr
ZXlEYXRhKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07
Ci0gICAgYXV0byYga2V5RGF0YU9jdGV0U2VxdWVuY2UgPSBkb3duY2FzdDxDcnlwdG9LZXlEYXRh
T2N0ZXRTZXF1ZW5jZT4oa2V5RGF0YSk7Ci0gICAgY2FsbGJhY2soQ3J5cHRvS2V5QUVTOjpjcmVh
dGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0NCQywga2V5RGF0YU9jdGV0U2VxdWVu
Y2Uub2N0ZXRTZXF1ZW5jZSgpLCBleHRyYWN0YWJsZSwgdXNhZ2UpKTsKLSAgICByZXR1cm4geyB9
OwotfQotCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1BRVNfQ0JDLmgJKHJldmlzaW9uIDIyMDkxOSkKKysrIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuaAkod29ya2luZyBjb3B5KQpAQCAtMzEs
NyArMzEsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENyeXB0b0FsZ29yaXRo
bUFlc0NiY1BhcmFtc0RlcHJlY2F0ZWQ7CiBjbGFzcyBDcnlwdG9LZXlBRVM7CiAKIGNsYXNzIENy
eXB0b0FsZ29yaXRobUFFU19DQkMgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKQEAg
LTUxLDE2ICs1MCw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBleHBvcnRLZXkoQ3J5cHRvS2V5Rm9y
bWF0LCBSZWY8Q3J5cHRvS2V5PiYmLCBLZXlEYXRhQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ2FsbGJh
Y2smJikgZmluYWw7CiAgICAgRXhjZXB0aW9uT3I8c2l6ZV90PiBnZXRLZXlMZW5ndGgoY29uc3Qg
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYpIGZpbmFsOwogCi0gICAgRXhjZXB0aW9uT3I8dm9p
ZD4gZW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNv
bnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFj
ayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spIGZpbmFsOwotICAgIEV4Y2VwdGlv
bk9yPHZvaWQ+IGRlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0
ZWQmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9y
Q2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrKSBmaW5hbDsKLSAgICBF
eGNlcHRpb25Pcjx2b2lkPiBnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0
ZXJzRGVwcmVjYXRlZCYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlQml0bWFwLCBL
ZXlPcktleVBhaXJDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBmaW5hbDsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBpbXBv
cnRLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBD
cnlwdG9LZXlEYXRhJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2VCaXRtYXAsIEtl
eUNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaykgZmluYWw7Ci0KLSAg
ICBib29sIGtleUFsZ29yaXRobU1hdGNoZXMoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFy
YW1zRGVwcmVjYXRlZCYgYWxnb3JpdGhtUGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JikgY29u
c3Q7CiAgICAgdm9pZCBwbGF0Zm9ybUVuY3J5cHQoc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnM+JiYsIFJlZjxDcnlwdG9LZXk+JiYsIFZlY3Rvcjx1aW50OF90PiYmLCBW
ZWN0b3JDYWxsYmFjayYmLCBFeGNlcHRpb25DYWxsYmFjayYmLCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgV29ya1F1ZXVlJik7CiAgICAgdm9pZCBwbGF0Zm9ybURlY3J5cHQoc3RkOjp1bmlxdWVf
cHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+JiYsIFJlZjxDcnlwdG9LZXk+JiYsIFZlY3Rv
cjx1aW50OF90PiYmLCBWZWN0b3JDYWxsYmFjayYmLCBFeGNlcHRpb25DYWxsYmFjayYmLCBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiwgV29ya1F1ZXVlJik7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4g
cGxhdGZvcm1FbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0
ZWQmLCBjb25zdCBDcnlwdG9LZXlBRVMmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVj
dG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrKTsKLSAgICBFeGNl
cHRpb25Pcjx2b2lkPiBwbGF0Zm9ybURlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2Jj
UGFyYW1zRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleUFFUyYsIGNvbnN0IENyeXB0b09wZXJh
dGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJh
Y2spOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cu
Y3BwCShyZXZpc2lvbiAyMjA5MTkpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw2
IEBACiAKICNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKIAotI2luY2x1ZGUgIkNyeXB0b0FsZ29y
aXRobUFlc0tleUdlblBhcmFtc0RlcHJlY2F0ZWQuaCIKICNpbmNsdWRlICJDcnlwdG9BbGdvcml0
aG1BZXNLZXlQYXJhbXMuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlBRVMuaCIKICNpbmNsdWRlICJD
cnlwdG9LZXlEYXRhT2N0ZXRTZXF1ZW5jZS5oIgpAQCAtMTc3LDQwICsxNzYsNiBAQCBFeGNlcHRp
b25PcjxzaXplX3Q+IENyeXB0b0FsZ29yaXRobUFFU19LCiAgICAgcmV0dXJuIENyeXB0b0tleUFF
Uzo6Z2V0S2V5TGVuZ3RoKHBhcmFtZXRlcnMpOwogfQogCi1FeGNlcHRpb25Pcjx2b2lkPiBDcnlw
dG9BbGdvcml0aG1BRVNfS1c6OmVuY3J5cHRGb3JXcmFwS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiBrZXksIGNvbnN0IENyeXB0
b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxs
YmFjayYmIGZhaWx1cmVDYWxsYmFjaykKLXsKLSAgICBpZiAoIWtleUFsZ29yaXRobU1hdGNoZXMo
a2V5KSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07Ci0g
ICAgcmV0dXJuIHBsYXRmb3JtRW5jcnlwdChkb3duY2FzdDxDcnlwdG9LZXlBRVM+KGtleSksIGRh
dGEsIFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjaykpOwotfQotCi1F
eGNlcHRpb25Pcjx2b2lkPiBDcnlwdG9BbGdvcml0aG1BRVNfS1c6OmRlY3J5cHRGb3JVbndyYXBL
ZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlw
dG9LZXkmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJh
Y2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrKQotewotICAgIGlm
ICgha2V5QWxnb3JpdGhtTWF0Y2hlcyhrZXkpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
Tm90U3VwcG9ydGVkRXJyb3IgfTsKLSAgICByZXR1cm4gcGxhdGZvcm1EZWNyeXB0KGRvd25jYXN0
PENyeXB0b0tleUFFUz4oa2V5KSwgZGF0YSwgV1RGTW92ZShjYWxsYmFjayksIFdURk1vdmUoZmFp
bHVyZUNhbGxiYWNrKSk7Ci19Ci0KLUV4Y2VwdGlvbk9yPHZvaWQ+IENyeXB0b0FsZ29yaXRobUFF
U19LVzo6Z2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0
ZWQmIHBhcmFtZXRlcnMsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlQml0bWFwIHVz
YWdlcywgS2V5T3JLZXlQYWlyQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFp
bHVyZUNhbGxiYWNrLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0JikKLXsKLSAgICBhdXRvIHJlc3Vs
dCA9IENyeXB0b0tleUFFUzo6Z2VuZXJhdGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVT
X0tXLCBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXNEZXByZWNhdGVkPihw
YXJhbWV0ZXJzKS5sZW5ndGgsIGV4dHJhY3RhYmxlLCB1c2FnZXMpOwotICAgIGlmICghcmVzdWx0
KSB7Ci0gICAgICAgIGZhaWx1cmVDYWxsYmFjaygpOwotICAgICAgICByZXR1cm4geyB9OwotICAg
IH0KLQotICAgIGNhbGxiYWNrKFdURk1vdmUocmVzdWx0KSk7Ci0gICAgcmV0dXJuIHsgfTsKLX0K
LQotRXhjZXB0aW9uT3I8dm9pZD4gQ3J5cHRvQWxnb3JpdGhtQUVTX0tXOjppbXBvcnRLZXkoY29u
c3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXlE
YXRhJiBrZXlEYXRhLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCB1c2Fn
ZSwgS2V5Q2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYpCi17Ci0gICAgaWYgKCFp
czxDcnlwdG9LZXlEYXRhT2N0ZXRTZXF1ZW5jZT4oa2V5RGF0YSkpCi0gICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OwotICAgIGNhbGxiYWNrKENyeXB0b0tleUFF
Uzo6Y3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19LVywgZG93bmNhc3Q8Q3J5
cHRvS2V5RGF0YU9jdGV0U2VxdWVuY2U+KGtleURhdGEpLm9jdGV0U2VxdWVuY2UoKSwgZXh0cmFj
dGFibGUsIHVzYWdlKSk7Ci0gICAgcmV0dXJuIHsgfTsKLX0KLQogfQogCiAjZW5kaWYgLy8gRU5B
QkxFKFNVQlRMRV9DUllQVE8pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9j
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuaAkocmV2aXNpb24gMjIwOTE5
KQorKysgU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVT
X0tXLmgJKHdvcmtpbmcgY29weSkKQEAgLTUwLDE2ICs1MCw5IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCB1bndyYXBLZXkoUmVmPENyeXB0b0tleT4mJiwgVmVjdG9yPHVpbnQ4X3Q+JiYsIFZlY3RvckNh
bGxiYWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYpIGZpbmFsOwogICAgIEV4Y2VwdGlvbk9yPHNp
emVfdD4gZ2V0S2V5TGVuZ3RoKGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmKSBmaW5h
bDsKIAotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGVuY3J5cHRGb3JXcmFwS2V5KGNvbnN0IENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3Qg
Q3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZh
aWx1cmVDYWxsYmFjaykgZmluYWw7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gZGVjcnlwdEZvclVu
d3JhcEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0
IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYm
LCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spIGZpbmFsOwotICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IGdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNh
dGVkJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2VCaXRtYXAsIEtleU9yS2V5UGFp
ckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYpIGZpbmFsOwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGltcG9ydEtleShjb25z
dCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleURh
dGEmLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCwgS2V5Q2FsbGJhY2sm
JiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrKSBmaW5hbDsKLQogICAgIGJvb2wga2V5
QWxnb3JpdGhtTWF0Y2hlcyhjb25zdCBDcnlwdG9LZXkmKSBjb25zdDsKICAgICB2b2lkIHBsYXRm
b3JtV3JhcEtleShSZWY8Q3J5cHRvS2V5PiYmLCBWZWN0b3I8dWludDhfdD4mJiwgVmVjdG9yQ2Fs
bGJhY2smJiwgRXhjZXB0aW9uQ2FsbGJhY2smJik7CiAgICAgdm9pZCBwbGF0Zm9ybVVud3JhcEtl
eShSZWY8Q3J5cHRvS2V5PiYmLCBWZWN0b3I8dWludDhfdD4mJiwgVmVjdG9yQ2FsbGJhY2smJiwg
RXhjZXB0aW9uQ2FsbGJhY2smJik7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gcGxhdGZvcm1FbmNy
eXB0KGNvbnN0IENyeXB0b0tleUFFUyYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0
b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spOwotICAgIEV4Y2Vw
dGlvbk9yPHZvaWQ+IHBsYXRmb3JtRGVjcnlwdChjb25zdCBDcnlwdG9LZXlBRVMmLCBjb25zdCBD
cnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFp
bHVyZUNhbGxiYWNrKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bUhNQUMuY3BwCShyZXZpc2lvbiAyMjA5MTkpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1ITUFDLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksOCAr
MjksNiBAQAogI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQogCiAjaW5jbHVkZSAiQ3J5cHRvQWxn
b3JpdGhtSG1hY0tleVBhcmFtcy5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUhtYWNLZXlQ
YXJhbXNEZXByZWNhdGVkLmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0Rl
cHJlY2F0ZWQuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlEYXRhT2N0ZXRTZXF1ZW5jZS5oIgogI2lu
Y2x1ZGUgIkNyeXB0b0tleUhNQUMuaCIKICNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgpAQCAtNTgs
MTcgKzU2LDYgQEAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBDcnlwdG9BbGdvcml0aAogICAg
IHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKLWJvb2wgQ3J5cHRvQWxnb3JpdGhtSE1BQzo6a2V5
QWxnb3JpdGhtTWF0Y2hlcyhjb25zdCBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRl
ZCYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JiBrZXkpIGNvbnN0Ci17Ci0gICAgaWYgKGtl
eS5hbGdvcml0aG1JZGVudGlmaWVyKCkgIT0gc19pZGVudGlmaWVyKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0KLSAgICBpZiAoZG93bmNhc3Q8Q3J5cHRvS2V5SE1BQz4oa2V5KS5oYXNoQWxnb3Jp
dGhtSWRlbnRpZmllcigpICE9IHBhcmFtZXRlcnMuaGFzaCkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIHZvaWQgQ3J5cHRvQWxnb3JpdGhtSE1BQzo6c2ln
bihzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4mJiwgUmVmPENyeXB0
b0tleT4mJiBrZXksIFZlY3Rvcjx1aW50OF90PiYmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2Fs
bGJhY2ssIEV4Y2VwdGlvbkNhbGxiYWNrJiYgZXhjZXB0aW9uQ2FsbGJhY2ssIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGNvbnRleHQsIFdvcmtRdWV1ZSYgd29ya1F1ZXVlKQogewogICAgIHBsYXRm
b3JtU2lnbihXVEZNb3ZlKGtleSksIFdURk1vdmUoZGF0YSksIFdURk1vdmUoY2FsbGJhY2spLCBX
VEZNb3ZlKGV4Y2VwdGlvbkNhbGxiYWNrKSwgY29udGV4dCwgd29ya1F1ZXVlKTsKQEAgLTIwMSw0
MiArMTg4LDYgQEAgRXhjZXB0aW9uT3I8c2l6ZV90PiBDcnlwdG9BbGdvcml0aG1ITUFDOgogICAg
IHJldHVybiBDcnlwdG9LZXlITUFDOjpnZXRLZXlMZW5ndGgocGFyYW1ldGVycyk7CiB9CiAKLUV4
Y2VwdGlvbk9yPHZvaWQ+IENyeXB0b0FsZ29yaXRobUhNQUM6OnNpZ24oY29uc3QgQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleSYg
a2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNh
bGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spCi17Ci0gICAgYXV0byYgaG1h
Y1BhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRl
ZD4ocGFyYW1ldGVycyk7Ci0gICAgaWYgKCFrZXlBbGdvcml0aG1NYXRjaGVzKGhtYWNQYXJhbWV0
ZXJzLCBrZXkpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3Ig
fTsKLSAgICByZXR1cm4gcGxhdGZvcm1TaWduKGhtYWNQYXJhbWV0ZXJzLCBkb3duY2FzdDxDcnlw
dG9LZXlITUFDPihrZXkpLCBkYXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShmYWlsdXJl
Q2FsbGJhY2spKTsKLX0KLQotRXhjZXB0aW9uT3I8dm9pZD4gQ3J5cHRvQWxnb3JpdGhtSE1BQzo6
dmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiBwYXJhbWV0
ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZXhw
ZWN0ZWRTaWduYXR1cmUsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIEJvb2xDYWxs
YmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spCi17Ci0gICAg
YXV0byYgaG1hY1BhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1z
RGVwcmVjYXRlZD4ocGFyYW1ldGVycyk7Ci0gICAgaWYgKCFrZXlBbGdvcml0aG1NYXRjaGVzKGht
YWNQYXJhbWV0ZXJzLCBrZXkpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9y
dGVkRXJyb3IgfTsKLSAgICByZXR1cm4gcGxhdGZvcm1WZXJpZnkoaG1hY1BhcmFtZXRlcnMsIGRv
d25jYXN0PENyeXB0b0tleUhNQUM+KGtleSksIGV4cGVjdGVkU2lnbmF0dXJlLCBkYXRhLCBXVEZN
b3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJhY2spKTsKLX0KLQotRXhjZXB0aW9u
T3I8dm9pZD4gQ3J5cHRvQWxnb3JpdGhtSE1BQzo6Z2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGJvb2wgZXh0cmFjdGFibGUs
IENyeXB0b0tleVVzYWdlQml0bWFwIHVzYWdlcywgS2V5T3JLZXlQYWlyQ2FsbGJhY2smJiBjYWxs
YmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0JikKLXsKLSAgICBhdXRvJiBobWFjUGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29y
aXRobUhtYWNLZXlQYXJhbXNEZXByZWNhdGVkPihwYXJhbWV0ZXJzKTsKLSAgICBhdXRvIHJlc3Vs
dCA9IENyeXB0b0tleUhNQUM6OmdlbmVyYXRlKGhtYWNQYXJhbWV0ZXJzLmhhc0xlbmd0aCA/IGht
YWNQYXJhbWV0ZXJzLmxlbmd0aCA6IDAsIGhtYWNQYXJhbWV0ZXJzLmhhc2gsIGV4dHJhY3RhYmxl
LCB1c2FnZXMpOwotICAgIGlmICghcmVzdWx0KSB7Ci0gICAgICAgIGZhaWx1cmVDYWxsYmFjaygp
OwotICAgICAgICByZXR1cm4geyB9OwotICAgIH0KLSAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3Vs
dCkpOwotICAgIHJldHVybiB7IH07Ci19Ci0KLUV4Y2VwdGlvbk9yPHZvaWQ+IENyeXB0b0FsZ29y
aXRobUhNQUM6OmltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVj
YXRlZCYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5RGF0YSYga2V5RGF0YSwgYm9vbCBleHRy
YWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2VCaXRtYXAgdXNhZ2UsIEtleUNhbGxiYWNrJiYgY2FsbGJh
Y2ssIFZvaWRDYWxsYmFjayYmKQotewotICAgIGlmICghaXM8Q3J5cHRvS2V5RGF0YU9jdGV0U2Vx
dWVuY2U+KGtleURhdGEpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVk
RXJyb3IgfTsKLSAgICBjYWxsYmFjayhDcnlwdG9LZXlITUFDOjpjcmVhdGUoZG93bmNhc3Q8Q3J5
cHRvS2V5RGF0YU9jdGV0U2VxdWVuY2U+KGtleURhdGEpLm9jdGV0U2VxdWVuY2UoKSwgZG93bmNh
c3Q8Q3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQ+KHBhcmFtZXRlcnMpLmhhc2gs
IGV4dHJhY3RhYmxlLCB1c2FnZSkpOwotICAgIHJldHVybiB7IH07Ci19Ci0KIH0KIAogI2VuZGlm
IC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQpJbmRleDogU291cmNlL1dlYkNvcmUvY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSE1BQy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMuaAkocmV2aXNpb24gMjIw
OTE5KQorKysgU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
SE1BQy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw2IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotY2xhc3MgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQ7CiBjbGFz
cyBDcnlwdG9LZXlITUFDOwogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1ITUFDIGZpbmFsIDogcHVi
bGljIENyeXB0b0FsZ29yaXRobSB7CkBAIC01MSwxNyArNTAsOCBAQCBwcml2YXRlOgogICAgIHZv
aWQgZXhwb3J0S2V5KENyeXB0b0tleUZvcm1hdCwgUmVmPENyeXB0b0tleT4mJiwgS2V5RGF0YUNh
bGxiYWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYpIGZpbmFsOwogICAgIEV4Y2VwdGlvbk9yPHNp
emVfdD4gZ2V0S2V5TGVuZ3RoKGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmKSBmaW5h
bDsKIAotICAgIC8vIFRoZSBmb2xsb3dpbmcgd2lsbCBiZSBkZXByZWNhdGVkLgotICAgIEV4Y2Vw
dGlvbk9yPHZvaWQ+IHNpZ24oY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0
ZWQmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9y
Q2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrKSBmaW5hbDsKLSAgICBF
eGNlcHRpb25Pcjx2b2lkPiB2ZXJpZnkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0Rl
cHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBz
aWduYXR1cmUsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBCb29sQ2FsbGJhY2smJiwgVm9p
ZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrKSBmaW5hbDsKLSAgICBFeGNlcHRpb25Pcjx2b2lk
PiBnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYs
IGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlQml0bWFwLCBLZXlPcktleVBhaXJDYWxs
YmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmKSBmaW5hbDsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBpbXBvcnRLZXkoY29uc3QgQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXlEYXRhJiwg
Ym9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2VCaXRtYXAsIEtleUNhbGxiYWNrJiYsIFZv
aWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaykgZmluYWw7Ci0KLSAgICBib29sIGtleUFsZ29y
aXRobU1hdGNoZXMoY29uc3QgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQmIGFs
Z29yaXRobVBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleSYpIGNvbnN0OwogICAgIHZvaWQgcGxh
dGZvcm1TaWduKFJlZjxDcnlwdG9LZXk+JiYsIFZlY3Rvcjx1aW50OF90PiYmLCBWZWN0b3JDYWxs
YmFjayYmLCBFeGNlcHRpb25DYWxsYmFjayYmLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgV29y
a1F1ZXVlJik7CiAgICAgdm9pZCBwbGF0Zm9ybVZlcmlmeShSZWY8Q3J5cHRvS2V5PiYmLCBWZWN0
b3I8dWludDhfdD4mJiBzaWduYXR1cmUsIFZlY3Rvcjx1aW50OF90PiYmLCBCb29sQ2FsbGJhY2sm
JiwgRXhjZXB0aW9uQ2FsbGJhY2smJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFdvcmtRdWV1
ZSYpOwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHBsYXRmb3JtU2lnbihjb25zdCBDcnlwdG9BbGdv
cml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleUhNQUMmLCBjb25zdCBD
cnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFp
bHVyZUNhbGxiYWNrKTsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBwbGF0Zm9ybVZlcmlmeShjb25z
dCBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleUhN
QUMmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBzaWduYXR1cmUsIGNvbnN0IENyeXB0b09w
ZXJhdGlvbkRhdGEmLCBCb29sQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxi
YWNrKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobVJTQUVTX1BLQ1MxX3YxXzUuY3BwCShyZXZpc2lvbiAyMjA5MTkpCisrKyBTb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjksOCArMjksNiBAQAogI2lmIEVOQUJMRShTVUJUTEVfQ1JZ
UFRPKQogCiAjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zLmgiCi0jaW5j
bHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zRGVwcmVjYXRlZC5oIgotI2luY2x1
ZGUgIkNyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZC5oIgogI2lu
Y2x1ZGUgIkNyeXB0b0tleURhdGFSU0FDb21wb25lbnRzLmgiCiAjaW5jbHVkZSAiQ3J5cHRvS2V5
UGFpci5oIgogI2luY2x1ZGUgIkNyeXB0b0tleVJTQS5oIgpAQCAtMTkxLDQzICsxODksNiBAQCB2
b2lkIENyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzU6OmV4CiAgICAgY2FsbGJhY2soZm9y
bWF0LCBXVEZNb3ZlKHJlc3VsdCkpOwogfQogCi1FeGNlcHRpb25Pcjx2b2lkPiBDcnlwdG9BbGdv
cml0aG1SU0FFU19QS0NTMV92MV81OjplbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiBrZXksIGNvbnN0IENyeXB0b09wZXJh
dGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYm
IGZhaWx1cmVDYWxsYmFjaykKLXsKLSAgICBpZiAoIWtleUFsZ29yaXRobU1hdGNoZXMoa2V5KSkK
LSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07Ci0gICAgcmV0
dXJuIHBsYXRmb3JtRW5jcnlwdChkb3duY2FzdDxDcnlwdG9LZXlSU0E+KGtleSksIGRhdGEsIFdU
Rk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjaykpOwotfQotCi1FeGNlcHRp
b25Pcjx2b2lkPiBDcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81OjpkZWNyeXB0KGNvbnN0
IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiBr
ZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2Fs
bGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaykKLXsKLSAgICBpZiAoIWtleUFs
Z29yaXRobU1hdGNoZXMoa2V5KSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBv
cnRlZEVycm9yIH07Ci0gICAgcmV0dXJuIHBsYXRmb3JtRGVjcnlwdChkb3duY2FzdDxDcnlwdG9L
ZXlSU0E+KGtleSksIGRhdGEsIFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxs
YmFjaykpOwotfQotCi1FeGNlcHRpb25Pcjx2b2lkPiBDcnlwdG9BbGdvcml0aG1SU0FFU19QS0NT
MV92MV81OjpnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVj
YXRlZCYgcGFyYW1ldGVycywgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2VCaXRtYXAg
dXNhZ2VzLCBLZXlPcktleVBhaXJDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBm
YWlsdXJlQ2FsbGJhY2ssIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCi17Ci0gICAg
YXV0byYgcnNhUGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBh
cmFtc0RlcHJlY2F0ZWQ+KHBhcmFtZXRlcnMpOwotICAgIGF1dG8ga2V5UGFpckNhbGxiYWNrID0g
W2NhcHR1cmVkQ2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oQ3J5cHRvS2V5UGFpciYmIHBh
aXIpIHsKLSAgICAgICAgY2FwdHVyZWRDYWxsYmFjayhXVEZNb3ZlKHBhaXIpKTsKLSAgICB9Owot
ICAgIENyeXB0b0tleVJTQTo6Z2VuZXJhdGVQYWlyKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6
OlJTQUVTX1BLQ1MxX3YxXzUsIHJzYVBhcmFtZXRlcnMuaGFzaCwgcnNhUGFyYW1ldGVycy5oYXNI
YXNoLCByc2FQYXJhbWV0ZXJzLm1vZHVsdXNMZW5ndGgsIHJzYVBhcmFtZXRlcnMucHVibGljRXhw
b25lbnQsIGV4dHJhY3RhYmxlLCB1c2FnZXMsIFdURk1vdmUoa2V5UGFpckNhbGxiYWNrKSwgV1RG
TW92ZShmYWlsdXJlQ2FsbGJhY2spLCAmY29udGV4dCk7Ci0gICAgcmV0dXJuIHsgfTsKLX0KLQot
RXhjZXB0aW9uT3I8dm9pZD4gQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNTo6aW1wb3J0
S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiBwYXJhbWV0ZXJz
LCBjb25zdCBDcnlwdG9LZXlEYXRhJiBrZXlEYXRhLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9L
ZXlVc2FnZUJpdG1hcCB1c2FnZSwgS2V5Q2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNr
JiYgZmFpbHVyZUNhbGxiYWNrKQotewotICAgIGF1dG8mIHJzYVBhcmFtZXRlcnMgPSBkb3duY2Fz
dDxDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERlcHJlY2F0ZWQ+KHBhcmFtZXRl
cnMpOwotICAgIGF1dG8mIHJzYUNvbXBvbmVudHMgPSBkb3duY2FzdDxDcnlwdG9LZXlEYXRhUlNB
Q29tcG9uZW50cz4oa2V5RGF0YSk7Ci0gICAgYXV0byByZXN1bHQgPSBDcnlwdG9LZXlSU0E6OmNy
ZWF0ZShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FFU19QS0NTMV92MV81LCByc2FQYXJh
bWV0ZXJzLmhhc2gsIHJzYVBhcmFtZXRlcnMuaGFzSGFzaCwgcnNhQ29tcG9uZW50cywgZXh0cmFj
dGFibGUsIHVzYWdlKTsKLSAgICBpZiAoIXJlc3VsdCkgewotICAgICAgICBmYWlsdXJlQ2FsbGJh
Y2soKTsKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICB9Ci0gICAgY2FsbGJhY2soKnJlc3VsdCk7
Ci0gICAgcmV0dXJuIHsgfTsKLX0KLQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQ
VE8pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1SU0FFU19QS0NTMV92MV81LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3J5cHRv
L2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5oCShyZXZpc2lvbiAy
MjA5MTkpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1SU0FFU19QS0NTMV92MV81LmgJKHdvcmtpbmcgY29weSkKQEAgLTUwLDE2ICs1MCw5IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBpbXBvcnRLZXkoQ3J5cHRvS2V5Rm9ybWF0LCBLZXlEYXRhJiYsIGNv
bnN0IHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiYmLCBib29sIGV4
dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCwgS2V5Q2FsbGJhY2smJiwgRXhjZXB0aW9u
Q2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBleHBvcnRLZXkoQ3J5cHRvS2V5Rm9ybWF0LCBS
ZWY8Q3J5cHRvS2V5PiYmLCBLZXlEYXRhQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ2FsbGJhY2smJikg
ZmluYWw7CiAKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBlbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRv
T3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVD
YWxsYmFjaykgZmluYWw7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gZGVjcnlwdChjb25zdCBDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0
IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBm
YWlsdXJlQ2FsbGJhY2spIGZpbmFsOwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGdlbmVyYXRlS2V5
KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgYm9vbCBleHRyYWN0
YWJsZSwgQ3J5cHRvS2V5VXNhZ2VCaXRtYXAsIEtleU9yS2V5UGFpckNhbGxiYWNrJiYsIFZvaWRD
YWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIGZpbmFs
OwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1Q
YXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleURhdGEmLCBib29sIGV4dHJhY3Rh
YmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCwgS2V5Q2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYg
ZmFpbHVyZUNhbGxiYWNrKSBmaW5hbDsKLQogICAgIGJvb2wga2V5QWxnb3JpdGhtTWF0Y2hlcyhj
b25zdCBDcnlwdG9LZXkmKSBjb25zdDsKICAgICB2b2lkIHBsYXRmb3JtRW5jcnlwdChSZWY8Q3J5
cHRvS2V5PiYmLCBWZWN0b3I8dWludDhfdD4mJiwgVmVjdG9yQ2FsbGJhY2smJiwgRXhjZXB0aW9u
Q2FsbGJhY2smJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFdvcmtRdWV1ZSYpOwogICAgIHZv
aWQgcGxhdGZvcm1EZWNyeXB0KFJlZjxDcnlwdG9LZXk+JiYsIFZlY3Rvcjx1aW50OF90PiYmLCBW
ZWN0b3JDYWxsYmFjayYmLCBFeGNlcHRpb25DYWxsYmFjayYmLCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgV29ya1F1ZXVlJik7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gcGxhdGZvcm1FbmNyeXB0
KGNvbnN0IENyeXB0b0tleVJTQSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JD
YWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spOwotICAgIEV4Y2VwdGlv
bk9yPHZvaWQ+IHBsYXRmb3JtRGVjcnlwdChjb25zdCBDcnlwdG9LZXlSU0EmLCBjb25zdCBDcnlw
dG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVy
ZUNhbGxiYWNrKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5jcHAJKHJldmlzaW9uIDIyMDkxOSkKKysrIFNv
dXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NT
MV92MV81LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsOSArMzAsNiBAQAogCiAjaW5jbHVkZSAi
Q3J5cHRvQWxnb3JpdGhtUnNhSGFzaGVkSW1wb3J0UGFyYW1zLmgiCiAjaW5jbHVkZSAiQ3J5cHRv
QWxnb3JpdGhtUnNhSGFzaGVkS2V5R2VuUGFyYW1zLmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3Jp
dGhtUnNhS2V5R2VuUGFyYW1zRGVwcmVjYXRlZC5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRo
bVJzYUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZC5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29y
aXRobVJzYVNzYVBhcmFtc0RlcHJlY2F0ZWQuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlEYXRhUlNB
Q29tcG9uZW50cy5oIgogI2luY2x1ZGUgIkNyeXB0b0tleVBhaXIuaCIKICNpbmNsdWRlICJDcnlw
dG9LZXlSU0EuaCIKQEAgLTU2LDE4ICs1Myw2IEBAIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIg
Q3J5cHRvQWxnb3JpdGgKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCi1ib29sIENyeXB0
b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81OjprZXlBbGdvcml0aG1NYXRjaGVzKGNvbnN0IENy
eXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc0RlcHJlY2F0ZWQmIGFsZ29yaXRobVBhcmFtZXRlcnMs
IGNvbnN0IENyeXB0b0tleSYga2V5KSBjb25zdAotewotICAgIGlmIChrZXkuYWxnb3JpdGhtSWRl
bnRpZmllcigpICE9IHNfaWRlbnRpZmllcikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAg
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBrZXlIYXNoOwotICAgIGlmIChkb3duY2FzdDxDcnlw
dG9LZXlSU0E+KGtleSkuaXNSZXN0cmljdGVkVG9IYXNoKGtleUhhc2gpICYmIGtleUhhc2ggIT0g
YWxnb3JpdGhtUGFyYW1ldGVycy5oYXNoKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBy
ZXR1cm4gdHJ1ZTsKLX0KLQogdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6
c2lnbihzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4mJiwgUmVmPENy
eXB0b0tleT4mJiBrZXksIFZlY3Rvcjx1aW50OF90PiYmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYg
Y2FsbGJhY2ssIEV4Y2VwdGlvbkNhbGxiYWNrJiYgZXhjZXB0aW9uQ2FsbGJhY2ssIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFdvcmtRdWV1ZSYgd29ya1F1ZXVlKQogewogICAgIGlm
IChrZXktPnR5cGUoKSAhPSBDcnlwdG9LZXlUeXBlOjpQcml2YXRlKSB7CkBAIC0yNDQsNDUgKzIy
OSw2IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OmUKICAgICBjYWxs
YmFjayhmb3JtYXQsIFdURk1vdmUocmVzdWx0KSk7CiB9CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IENy
eXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81OjpzaWduKGNvbnN0IENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtleSwg
Y29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFj
aywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrKQotewotICAgIGF1dG8mIHJzYVNTQVBh
cmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNEZXByZWNhdGVk
PihwYXJhbWV0ZXJzKTsKLSAgICBpZiAoIWtleUFsZ29yaXRobU1hdGNoZXMocnNhU1NBUGFyYW1l
dGVycywga2V5KSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9y
IH07Ci0gICAgcmV0dXJuIHBsYXRmb3JtU2lnbihyc2FTU0FQYXJhbWV0ZXJzLCBkb3duY2FzdDxD
cnlwdG9LZXlSU0E+KGtleSksIGRhdGEsIFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1
cmVDYWxsYmFjaykpOwotfQotCi1FeGNlcHRpb25Pcjx2b2lkPiBDcnlwdG9BbGdvcml0aG1SU0FT
U0FfUEtDUzFfdjFfNTo6dmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXBy
ZWNhdGVkJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5cHRvT3Bl
cmF0aW9uRGF0YSYgc2lnbmF0dXJlLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBC
b29sQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrKQot
ewotICAgIGF1dG8mIHJzYVNTQVBhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1S
c2FTc2FQYXJhbXNEZXByZWNhdGVkPihwYXJhbWV0ZXJzKTsKLSAgICBpZiAoIWtleUFsZ29yaXRo
bU1hdGNoZXMocnNhU1NBUGFyYW1ldGVycywga2V5KSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IE5vdFN1cHBvcnRlZEVycm9yIH07Ci0gICAgcmV0dXJuIHBsYXRmb3JtVmVyaWZ5KHJzYVNT
QVBhcmFtZXRlcnMsICBkb3duY2FzdDxDcnlwdG9LZXlSU0E+KGtleSksIHNpZ25hdHVyZSwgZGF0
YSwgV1RGTW92ZShjYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSk7Ci19Ci0KLUV4
Y2VwdGlvbk9yPHZvaWQ+IENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81OjpnZW5lcmF0
ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYgcGFyYW1ldGVy
cywgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2VCaXRtYXAgdXNhZ2VzLCBLZXlPcktl
eVBhaXJDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ss
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCi17Ci0gICAgYXV0byYgcnNhUGFyYW1l
dGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtc0RlcHJlY2F0ZWQ+
KHBhcmFtZXRlcnMpOwotICAgIGF1dG8ga2V5UGFpckNhbGxiYWNrID0gW2NhcHR1cmVkQ2FsbGJh
Y2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oQ3J5cHRvS2V5UGFpciYmIHBhaXIpIHsKLSAgICAgICAg
Y2FwdHVyZWRDYWxsYmFjayhXVEZNb3ZlKHBhaXIpKTsKLSAgICB9OwotICAgIENyeXB0b0tleVJT
QTo6Z2VuZXJhdGVQYWlyKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQVNTQV9QS0NTMV92
MV81LCByc2FQYXJhbWV0ZXJzLmhhc2gsIHJzYVBhcmFtZXRlcnMuaGFzSGFzaCwgcnNhUGFyYW1l
dGVycy5tb2R1bHVzTGVuZ3RoLCByc2FQYXJhbWV0ZXJzLnB1YmxpY0V4cG9uZW50LCBleHRyYWN0
YWJsZSwgdXNhZ2VzLCBXVEZNb3ZlKGtleVBhaXJDYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNh
bGxiYWNrKSwgJmNvbnRleHQpOwotICAgIHJldHVybiB7IH07Ci19Ci0KLUV4Y2VwdGlvbk9yPHZv
aWQ+IENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81OjppbXBvcnRLZXkoY29uc3QgQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0
b0tleURhdGEmIGtleURhdGEsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlQml0bWFw
IHVzYWdlLCBLZXlDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2Fs
bGJhY2spCi17Ci0gICAgYXV0byYgcnNhS2V5UGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0Fs
Z29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZD4ocGFyYW1ldGVycyk7Ci0gICAg
YXV0byYgcnNhQ29tcG9uZW50cyA9IGRvd25jYXN0PENyeXB0b0tleURhdGFSU0FDb21wb25lbnRz
PihrZXlEYXRhKTsKLSAgICBhdXRvIHJlc3VsdCA9IENyeXB0b0tleVJTQTo6Y3JlYXRlKENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQVNTQV9QS0NTMV92MV81LCByc2FLZXlQYXJhbWV0ZXJz
Lmhhc2gsIHJzYUtleVBhcmFtZXRlcnMuaGFzSGFzaCwgcnNhQ29tcG9uZW50cywgZXh0cmFjdGFi
bGUsIHVzYWdlKTsKLSAgICBpZiAoIXJlc3VsdCkgewotICAgICAgICBmYWlsdXJlQ2FsbGJhY2so
KTsKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICB9Ci0gICAgY2FsbGJhY2soKnJlc3VsdCk7Ci0g
ICAgcmV0dXJuIHsgfTsKLX0KLQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8p
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1S
U0FTU0FfUEtDUzFfdjFfNS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmgJKHJldmlzaW9uIDIy
MDkxOSkKKysrIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bVJTQVNTQV9QS0NTMV92MV81LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDYgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNE
ZXByZWNhdGVkOwogY2xhc3MgQ3J5cHRvS2V5UlNBOwogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1S
U0FTU0FfUEtDUzFfdjFfNSBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewpAQCAtNTAs
MTYgKzQ5LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGltcG9ydEtleShDcnlwdG9LZXlGb3JtYXQs
IEtleURhdGEmJiwgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnM+JiYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlQml0bWFwLCBLZXlDYWxsYmFj
ayYmLCBFeGNlcHRpb25DYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGV4cG9ydEtleShDcnlw
dG9LZXlGb3JtYXQsIFJlZjxDcnlwdG9LZXk+JiYsIEtleURhdGFDYWxsYmFjayYmLCBFeGNlcHRp
b25DYWxsYmFjayYmKSBmaW5hbDsKIAotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNpZ24oY29uc3Qg
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmLCBj
b25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNr
JiYgZmFpbHVyZUNhbGxiYWNrKSBmaW5hbDsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiB2ZXJpZnko
Y29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9L
ZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBzaWduYXR1cmUsIGNvbnN0IENyeXB0b09w
ZXJhdGlvbkRhdGEmLCBCb29sQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxi
YWNrKSBmaW5hbDsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBnZW5lcmF0ZUtleShjb25zdCBDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0
b0tleVVzYWdlQml0bWFwLCBLZXlPcktleVBhaXJDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBm
YWlsdXJlQ2FsbGJhY2ssIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBmaW5hbDsKLSAgICBFeGNl
cHRpb25Pcjx2b2lkPiBpbXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0Rl
cHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXlEYXRhJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRv
S2V5VXNhZ2VCaXRtYXAsIEtleUNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxs
YmFjaykgZmluYWw7Ci0KLSAgICBib29sIGtleUFsZ29yaXRobU1hdGNoZXMoY29uc3QgQ3J5cHRv
QWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZCYgYWxnb3JpdGhtUGFyYW1ldGVycywgY29u
c3QgQ3J5cHRvS2V5JikgY29uc3Q7CiAgICAgdm9pZCBwbGF0Zm9ybVNpZ24oUmVmPENyeXB0b0tl
eT4mJiwgVmVjdG9yPHVpbnQ4X3Q+JiYsIFZlY3RvckNhbGxiYWNrJiYsIEV4Y2VwdGlvbkNhbGxi
YWNrJiYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBXb3JrUXVldWUmKTsKICAgICB2b2lkIHBs
YXRmb3JtVmVyaWZ5KFJlZjxDcnlwdG9LZXk+JiYsIFZlY3Rvcjx1aW50OF90PiYmIHNpZ25hdHVy
ZSwgVmVjdG9yPHVpbnQ4X3Q+JiYsIEJvb2xDYWxsYmFjayYmLCBFeGNlcHRpb25DYWxsYmFjayYm
LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgV29ya1F1ZXVlJik7Ci0gICAgRXhjZXB0aW9uT3I8
dm9pZD4gcGxhdGZvcm1TaWduKGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc0RlcHJl
Y2F0ZWQmLCBjb25zdCBDcnlwdG9LZXlSU0EmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwg
VmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrKTsKLSAgICBF
eGNlcHRpb25Pcjx2b2lkPiBwbGF0Zm9ybVZlcmlmeShjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FT
c2FQYXJhbXNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5UlNBJiwgY29uc3QgQ3J5cHRvT3Bl
cmF0aW9uRGF0YSYgc2lnbmF0dXJlLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgQm9vbENh
bGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjayk7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1SU0FfT0FFUC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVAuY3BwCShyZXZpc2lvbiAy
MjA5MTkpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1SU0FfT0FFUC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDkgKzMwLDYgQEAKIAogI2luY2x1
ZGUgIkNyeXB0b0FsZ29yaXRobVJzYUhhc2hlZEltcG9ydFBhcmFtcy5oIgogI2luY2x1ZGUgIkNy
eXB0b0FsZ29yaXRobVJzYUhhc2hlZEtleUdlblBhcmFtcy5oIgotI2luY2x1ZGUgIkNyeXB0b0Fs
Z29yaXRobVJzYUtleUdlblBhcmFtc0RlcHJlY2F0ZWQuaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdv
cml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERlcHJlY2F0ZWQuaCIKLSNpbmNsdWRlICJDcnlwdG9B
bGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVjYXRlZC5oIgogI2luY2x1ZGUgIkNyeXB0b0tleURh
dGFSU0FDb21wb25lbnRzLmgiCiAjaW5jbHVkZSAiQ3J5cHRvS2V5UGFpci5oIgogI2luY2x1ZGUg
IkNyeXB0b0tleVJTQS5oIgpAQCAtNTYsMTggKzUzLDYgQEAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
ZmllciBDcnlwdG9BbGdvcml0aAogICAgIHJldHVybiBzX2lkZW50aWZpZXI7CiB9CiAKLWJvb2wg
Q3J5cHRvQWxnb3JpdGhtUlNBX09BRVA6OmtleUFsZ29yaXRobU1hdGNoZXMoY29uc3QgQ3J5cHRv
QWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQmIGFsZ29yaXRobVBhcmFtZXRlcnMsIGNv
bnN0IENyeXB0b0tleSYga2V5KSBjb25zdAotewotICAgIGlmIChrZXkuYWxnb3JpdGhtSWRlbnRp
ZmllcigpICE9IHNfaWRlbnRpZmllcikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllciBrZXlIYXNoOwotICAgIGlmIChkb3duY2FzdDxDcnlwdG9L
ZXlSU0E+KGtleSkuaXNSZXN0cmljdGVkVG9IYXNoKGtleUhhc2gpICYmIGtleUhhc2ggIT0gYWxn
b3JpdGhtUGFyYW1ldGVycy5oYXNoKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1
cm4gdHJ1ZTsKLX0KLQogdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6ZW5jcnlwdChzdGQ6
OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4mJiBwYXJhbWV0ZXJzLCBSZWY8
Q3J5cHRvS2V5PiYmIGtleSwgVmVjdG9yPHVpbnQ4X3Q+JiYgcGxhaW5UZXh0LCBWZWN0b3JDYWxs
YmFjayYmIGNhbGxiYWNrLCBFeGNlcHRpb25DYWxsYmFjayYmIGV4Y2VwdGlvbkNhbGxiYWNrLCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBXb3JrUXVldWUmIHdvcmtRdWV1ZSkKIHsK
ICAgICBBU1NFUlQocGFyYW1ldGVycyk7CkBAIC0yNjAsNDUgKzI0NSw2IEBAIHZvaWQgQ3J5cHRv
QWxnb3JpdGhtUlNBX09BRVA6OmV4cG9ydEtleSgKICAgICBjYWxsYmFjayhmb3JtYXQsIFdURk1v
dmUocmVzdWx0KSk7CiB9CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IENyeXB0b0FsZ29yaXRobVJTQV9P
QUVQOjplbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiBw
YXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0
YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVy
ZUNhbGxiYWNrKQotewotICAgIGF1dG8mIHJzYU9BRVBQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5
cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQ+KHBhcmFtZXRlcnMpOwotICAgIGlm
ICgha2V5QWxnb3JpdGhtTWF0Y2hlcyhyc2FPQUVQUGFyYW1ldGVycywga2V5KSkKLSAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07Ci0gICAgcmV0dXJuIHBsYXRm
b3JtRW5jcnlwdChyc2FPQUVQUGFyYW1ldGVycywgZG93bmNhc3Q8Q3J5cHRvS2V5UlNBPihrZXkp
LCBkYXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJhY2spKTsKLX0K
LQotRXhjZXB0aW9uT3I8dm9pZD4gQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVA6OmRlY3J5cHQoY29u
c3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0
IENyeXB0b0tleSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JD
YWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spCi17Ci0g
ICAgYXV0byYgcnNhT0FFUFBhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1Sc2FP
YWVwUGFyYW1zRGVwcmVjYXRlZD4ocGFyYW1ldGVycyk7Ci0gICAgaWYgKCFrZXlBbGdvcml0aG1N
YXRjaGVzKHJzYU9BRVBQYXJhbWV0ZXJzLCBrZXkpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKLSAgICByZXR1cm4gcGxhdGZvcm1EZWNyeXB0KHJzYU9B
RVBQYXJhbWV0ZXJzLCBkb3duY2FzdDxDcnlwdG9LZXlSU0E+KGtleSksIGRhdGEsIFdURk1vdmUo
Y2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjaykpOwotfQotCi1FeGNlcHRpb25Pcjx2
b2lkPiBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6Z2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGJvb2wgZXh0cmFjdGFibGUs
IENyeXB0b0tleVVzYWdlQml0bWFwIHVzYWdlcywgS2V5T3JLZXlQYWlyQ2FsbGJhY2smJiBjYWxs
YmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0KQotewotICAgIGF1dG8mIHJzYVBhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlw
dG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXNEZXByZWNhdGVkPihwYXJhbWV0ZXJzKTsKLSAgICBh
dXRvIGtleVBhaXJDYWxsYmFjayA9IFtjYXB0dXJlZENhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFj
ayldKENyeXB0b0tleVBhaXImJiBwYWlyKSB7Ci0gICAgICAgIGNhcHR1cmVkQ2FsbGJhY2soV1RG
TW92ZShwYWlyKSk7Ci0gICAgfTsKLSAgICBDcnlwdG9LZXlSU0E6OmdlbmVyYXRlUGFpcihDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FfT0FFUCwgcnNhUGFyYW1ldGVycy5oYXNoLCByc2FQ
YXJhbWV0ZXJzLmhhc0hhc2gsIHJzYVBhcmFtZXRlcnMubW9kdWx1c0xlbmd0aCwgcnNhUGFyYW1l
dGVycy5wdWJsaWNFeHBvbmVudCwgZXh0cmFjdGFibGUsIHVzYWdlcywgV1RGTW92ZShrZXlQYWly
Q2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjayksICZjb250ZXh0KTsKLSAgICByZXR1
cm4geyB9OwotfQotCi1FeGNlcHRpb25Pcjx2b2lkPiBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6
aW1wb3J0S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiBwYXJh
bWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlEYXRhJiBrZXlEYXRhLCBib29sIGV4dHJhY3RhYmxlLCBD
cnlwdG9LZXlVc2FnZUJpdG1hcCB1c2FnZSwgS2V5Q2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENh
bGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrKQotewotICAgIGF1dG8mIHJzYUtleVBhcmFtZXRlcnMg
PSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERlcHJlY2F0ZWQ+
KHBhcmFtZXRlcnMpOwotICAgIGF1dG8mIHJzYUNvbXBvbmVudHMgPSBkb3duY2FzdDxDcnlwdG9L
ZXlEYXRhUlNBQ29tcG9uZW50cz4oa2V5RGF0YSk7Ci0gICAgYXV0byByZXN1bHQgPSBDcnlwdG9L
ZXlSU0E6OmNyZWF0ZShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FfT0FFUCwgcnNhS2V5
UGFyYW1ldGVycy5oYXNoLCByc2FLZXlQYXJhbWV0ZXJzLmhhc0hhc2gsIHJzYUNvbXBvbmVudHMs
IGV4dHJhY3RhYmxlLCB1c2FnZSk7Ci0gICAgaWYgKCFyZXN1bHQpIHsKLSAgICAgICAgZmFpbHVy
ZUNhbGxiYWNrKCk7Ci0gICAgICAgIHJldHVybiB7IH07Ci0gICAgfQotICAgIGNhbGxiYWNrKCpy
ZXN1bHQpOwotICAgIHJldHVybiB7IH07Ci19Ci0KIH0KIAogI2VuZGlmIC8vIEVOQUJMRShTVUJU
TEVfQ1JZUFRPKQpJbmRleDogU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtUlNBX09BRVAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUC5oCShyZXZpc2lvbiAyMjA5MTkpCisr
KyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FfT0FF
UC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQ7CiBjbGFz
cyBDcnlwdG9LZXlSU0E7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobVJTQV9PQUVQIGZpbmFsIDog
cHVibGljIENyeXB0b0FsZ29yaXRobSB7CkBAIC01MCwxNiArNDksOCBAQCBwcml2YXRlOgogICAg
IHZvaWQgaW1wb3J0S2V5KENyeXB0b0tleUZvcm1hdCwgS2V5RGF0YSYmLCBjb25zdCBzdGQ6OnVu
aXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4mJiwgYm9vbCBleHRyYWN0YWJsZSwg
Q3J5cHRvS2V5VXNhZ2VCaXRtYXAsIEtleUNhbGxiYWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYp
IGZpbmFsOwogICAgIHZvaWQgZXhwb3J0S2V5KENyeXB0b0tleUZvcm1hdCwgUmVmPENyeXB0b0tl
eT4mJiwgS2V5RGF0YUNhbGxiYWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYpIGZpbmFsOwogCi0g
ICAgRXhjZXB0aW9uT3I8dm9pZD4gZW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0
ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRh
dGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spIGZp
bmFsOwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGRlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVy
YXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxi
YWNrKSBmaW5hbDsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBnZW5lcmF0ZUtleShjb25zdCBDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0
b0tleVVzYWdlQml0bWFwLCBLZXlPcktleVBhaXJDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBm
YWlsdXJlQ2FsbGJhY2ssIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBmaW5hbDsKLSAgICBFeGNl
cHRpb25Pcjx2b2lkPiBpbXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0Rl
cHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXlEYXRhJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRv
S2V5VXNhZ2VCaXRtYXAsIEtleUNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxs
YmFjaykgZmluYWw7Ci0KLSAgICBib29sIGtleUFsZ29yaXRobU1hdGNoZXMoY29uc3QgQ3J5cHRv
QWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQmIGFsZ29yaXRobVBhcmFtZXRlcnMsIGNv
bnN0IENyeXB0b0tleSYpIGNvbnN0OwogICAgIHZvaWQgcGxhdGZvcm1FbmNyeXB0KHN0ZDo6dW5p
cXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiYmLCBSZWY8Q3J5cHRvS2V5PiYmLCBW
ZWN0b3I8dWludDhfdD4mJiwgVmVjdG9yQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ2FsbGJhY2smJiwg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFdvcmtRdWV1ZSYpOwogICAgIHZvaWQgcGxhdGZvcm1E
ZWNyeXB0KHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiYmLCBSZWY8
Q3J5cHRvS2V5PiYmLCBWZWN0b3I8dWludDhfdD4mJiwgVmVjdG9yQ2FsbGJhY2smJiwgRXhjZXB0
aW9uQ2FsbGJhY2smJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFdvcmtRdWV1ZSYpOwotICAg
IEV4Y2VwdGlvbk9yPHZvaWQ+IHBsYXRmb3JtRW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1S
c2FPYWVwUGFyYW1zRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleVJTQSYsIGNvbnN0IENyeXB0
b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJl
Q2FsbGJhY2spOwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHBsYXRmb3JtRGVjcnlwdChjb25zdCBD
cnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleVJT
QSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2Fs
bGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJ
bmRleDogU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hB
MS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5
cHRvQWxnb3JpdGhtU0hBMS5jcHAJKHJldmlzaW9uIDIyMDkxOSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTEuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC02MiwxOCArNjIsNiBAQCB2b2lkIENyeXB0b0FsZ29yaXRobVNIQTE6OmRpZ2VzdChWZWN0
b3I8CiAgICAgfSk7CiB9CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IENyeXB0b0FsZ29yaXRobVNIQTE6
OmRpZ2VzdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0
IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZv
aWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaykKLXsKLSAgICBhdXRvIGRpZ2VzdCA9IFBBTDo6
Q3J5cHRvRGlnZXN0OjpjcmVhdGUoUEFMOjpDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzEp
OwotICAgIGlmICghZGlnZXN0KSB7Ci0gICAgICAgIGZhaWx1cmVDYWxsYmFjaygpOwotICAgICAg
ICByZXR1cm4geyB9OwotICAgIH0KLSAgICBkaWdlc3QtPmFkZEJ5dGVzKGRhdGEuZmlyc3QsIGRh
dGEuc2Vjb25kKTsKLSAgICBjYWxsYmFjayhkaWdlc3QtPmNvbXB1dGVIYXNoKCkpOwotICAgIHJl
dHVybiB7IH07Ci19Ci0KIH0KIAogI2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobVNIQTEuaAkocmV2aXNpb24gMjIwOTE5KQorKysgU291cmNlL1dlYkNvcmUvY3J5cHRv
L2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3
ICs0MSw2IEBAIHByaXZhdGU6CiAgICAgQ3J5cHRvQWxnb3JpdGhtU0hBMSgpID0gZGVmYXVsdDsK
ICAgICBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCBmaW5hbDsK
ICAgICB2b2lkIGRpZ2VzdChWZWN0b3I8dWludDhfdD4mJiwgVmVjdG9yQ2FsbGJhY2smJiwgRXhj
ZXB0aW9uQ2FsbGJhY2smJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFdvcmtRdWV1ZSYpIGZp
bmFsOwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGRpZ2VzdChjb25zdCBDcnlwdG9BbGdvcml0aG1Q
YXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JD
YWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spIGZpbmFsOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyMjQuY3BwCShyZXZpc2lv
biAyMjA5MTkpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1TSEEyMjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MiwxOCArNjIsNiBAQCB2b2lkIENy
eXB0b0FsZ29yaXRobVNIQTIyNDo6ZGlnZXN0KFZlY3RvCiAgICAgfSk7CiB9CiAKLUV4Y2VwdGlv
bk9yPHZvaWQ+IENyeXB0b0FsZ29yaXRobVNIQTIyNDo6ZGlnZXN0KGNvbnN0IENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0
YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxi
YWNrKQotewotICAgIGF1dG8gZGlnZXN0ID0gUEFMOjpDcnlwdG9EaWdlc3Q6OmNyZWF0ZShQQUw6
OkNyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtOjpTSEFfMjI0KTsKLSAgICBpZiAoIWRpZ2VzdCkgewot
ICAgICAgICBmYWlsdXJlQ2FsbGJhY2soKTsKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICB9Ci0g
ICAgZGlnZXN0LT5hZGRCeXRlcyhkYXRhLmZpcnN0LCBkYXRhLnNlY29uZCk7Ci0gICAgY2FsbGJh
Y2soZGlnZXN0LT5jb21wdXRlSGFzaCgpKTsKLSAgICByZXR1cm4geyB9OwotfQotCiB9CiAKICNl
bmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTIyNC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTIyNC5oCShyZXZp
c2lvbiAyMjA5MTkpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1TSEEyMjQuaAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNiBAQCBwcml2YXRl
OgogICAgIENyeXB0b0FsZ29yaXRobVNIQTIyNCgpID0gZGVmYXVsdDsKICAgICBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGRpZ2Vz
dChWZWN0b3I8dWludDhfdD4mJiwgVmVjdG9yQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ2FsbGJhY2sm
JiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFdvcmtRdWV1ZSYpIGZpbmFsOwotICAgIEV4Y2Vw
dGlvbk9yPHZvaWQ+IGRpZ2VzdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVj
YXRlZCYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lk
Q2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spIGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtU0hBMjU2LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyNTYuY3BwCShyZXZpc2lvbiAyMjA5MTkpCisrKyBT
b3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyNTYuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC02MiwxOCArNjIsNiBAQCB2b2lkIENyeXB0b0FsZ29yaXRobVNI
QTI1Njo6ZGlnZXN0KFZlY3RvCiAgICAgfSk7CiB9CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IENyeXB0
b0FsZ29yaXRobVNIQTI1Njo6ZGlnZXN0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNE
ZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJh
Y2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrKQotewotICAgIGF1
dG8gZGlnZXN0ID0gUEFMOjpDcnlwdG9EaWdlc3Q6OmNyZWF0ZShQQUw6OkNyeXB0b0RpZ2VzdDo6
QWxnb3JpdGhtOjpTSEFfMjU2KTsKLSAgICBpZiAoIWRpZ2VzdCkgewotICAgICAgICBmYWlsdXJl
Q2FsbGJhY2soKTsKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICB9Ci0gICAgZGlnZXN0LT5hZGRC
eXRlcyhkYXRhLmZpcnN0LCBkYXRhLnNlY29uZCk7Ci0gICAgY2FsbGJhY2soZGlnZXN0LT5jb21w
dXRlSGFzaCgpKTsKLSAgICByZXR1cm4geyB9OwotfQotCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUo
U1VCVExFX0NSWVBUTykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobVNIQTI1Ni5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTI1Ni5oCShyZXZpc2lvbiAyMjA5MTkpCisr
KyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyNTYu
aAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNiBAQCBwcml2YXRlOgogICAgIENyeXB0b0Fs
Z29yaXRobVNIQTI1NigpID0gZGVmYXVsdDsKICAgICBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
IGlkZW50aWZpZXIoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGRpZ2VzdChWZWN0b3I8dWludDhf
dD4mJiwgVmVjdG9yQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ2FsbGJhY2smJiwgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYsIFdvcmtRdWV1ZSYpIGZpbmFsOwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGRp
Z2VzdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENy
eXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWls
dXJlQ2FsbGJhY2spIGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDog
U291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1TSEEzODQuY3BwCShyZXZpc2lvbiAyMjA5MTkpCisrKyBTb3VyY2UvV2ViQ29yZS9j
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEzODQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC02MiwxOCArNjIsNiBAQCB2b2lkIENyeXB0b0FsZ29yaXRobVNIQTM4NDo6ZGlnZXN0KFZl
Y3RvCiAgICAgfSk7CiB9CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IENyeXB0b0FsZ29yaXRobVNIQTM4
NDo6ZGlnZXN0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29u
c3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywg
Vm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrKQotewotICAgIGF1dG8gZGlnZXN0ID0gUEFM
OjpDcnlwdG9EaWdlc3Q6OmNyZWF0ZShQQUw6OkNyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtOjpTSEFf
Mzg0KTsKLSAgICBpZiAoIWRpZ2VzdCkgewotICAgICAgICBmYWlsdXJlQ2FsbGJhY2soKTsKLSAg
ICAgICAgcmV0dXJuIHsgfTsKLSAgICB9Ci0gICAgZGlnZXN0LT5hZGRCeXRlcyhkYXRhLmZpcnN0
LCBkYXRhLnNlY29uZCk7Ci0gICAgY2FsbGJhY2soZGlnZXN0LT5jb21wdXRlSGFzaCgpKTsKLSAg
ICByZXR1cm4geyB9OwotfQotCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNI
QTM4NC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobVNIQTM4NC5oCShyZXZpc2lvbiAyMjA5MTkpCisrKyBTb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEzODQuaAkod29ya2luZyBjb3B5
KQpAQCAtNDEsNyArNDEsNiBAQCBwcml2YXRlOgogICAgIENyeXB0b0FsZ29yaXRobVNIQTM4NCgp
ID0gZGVmYXVsdDsKICAgICBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIoKSBj
b25zdCBmaW5hbDsKICAgICB2b2lkIGRpZ2VzdChWZWN0b3I8dWludDhfdD4mJiwgVmVjdG9yQ2Fs
bGJhY2smJiwgRXhjZXB0aW9uQ2FsbGJhY2smJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFdv
cmtRdWV1ZSYpIGZpbmFsOwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGRpZ2VzdChjb25zdCBDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRh
dGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spIGZp
bmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEE1MTIu
Y3BwCShyZXZpc2lvbiAyMjA5MTkpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1TSEE1MTIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MiwxOCArNjIs
NiBAQCB2b2lkIENyeXB0b0FsZ29yaXRobVNIQTUxMjo6ZGlnZXN0KFZlY3RvCiAgICAgfSk7CiB9
CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IENyeXB0b0FsZ29yaXRobVNIQTUxMjo6ZGlnZXN0KGNvbnN0
IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvT3BlcmF0
aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYg
ZmFpbHVyZUNhbGxiYWNrKQotewotICAgIGF1dG8gZGlnZXN0ID0gUEFMOjpDcnlwdG9EaWdlc3Q6
OmNyZWF0ZShQQUw6OkNyeXB0b0RpZ2VzdDo6QWxnb3JpdGhtOjpTSEFfNTEyKTsKLSAgICBpZiAo
IWRpZ2VzdCkgewotICAgICAgICBmYWlsdXJlQ2FsbGJhY2soKTsKLSAgICAgICAgcmV0dXJuIHsg
fTsKLSAgICB9Ci0gICAgZGlnZXN0LT5hZGRCeXRlcyhkYXRhLmZpcnN0LCBkYXRhLnNlY29uZCk7
Ci0gICAgY2FsbGJhY2soZGlnZXN0LT5jb21wdXRlSGFzaCgpKTsKLSAgICByZXR1cm4geyB9Owot
fQotCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTUxMi5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNI
QTUxMi5oCShyZXZpc2lvbiAyMjA5MTkpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1TSEE1MTIuaAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEs
NiBAQCBwcml2YXRlOgogICAgIENyeXB0b0FsZ29yaXRobVNIQTUxMigpID0gZGVmYXVsdDsKICAg
ICBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCBmaW5hbDsKICAg
ICB2b2lkIGRpZ2VzdChWZWN0b3I8dWludDhfdD4mJiwgVmVjdG9yQ2FsbGJhY2smJiwgRXhjZXB0
aW9uQ2FsbGJhY2smJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFdvcmtRdWV1ZSYpIGZpbmFs
OwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGRpZ2VzdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxs
YmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spIGZpbmFsOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvY3J5cHRvL2djcnlwdC9D
cnlwdG9BbGdvcml0aG1BRVNfQ0JDR0NyeXB0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vZ2NyeXB0L0NyeXB0b0FsZ29yaXRobUFFU19DQkNHQ3J5cHQuY3BwCShyZXZp
c2lvbiAyMjA5MTkpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ2NyeXB0L0NyeXB0b0FsZ29y
aXRobUFFU19DQkNHQ3J5cHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMjMsMTggKzIyMyw2IEBA
IHZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6cGxhdGZvcm1EZWMKICAgICAgICAgfSk7CiB9
CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IENyeXB0b0FsZ29yaXRobUFFU19DQkM6OnBsYXRmb3JtRW5j
cnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkJiwgY29uc3Qg
Q3J5cHRvS2V5QUVTJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNr
JiYsIFZvaWRDYWxsYmFjayYmKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07Ci19Ci0KLUV4Y2VwdGlvbk9yPHZvaWQ+
IENyeXB0b0FsZ29yaXRobUFFU19DQkM6OnBsYXRmb3JtRGVjcnlwdChjb25zdCBDcnlwdG9BbGdv
cml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5QUVTJiwgY29uc3Qg
Q3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmKQot
ewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBv
cnRlZEVycm9yIH07Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVO
QUJMRShTVUJUTEVfQ1JZUFRPKQpJbmRleDogU291cmNlL1dlYkNvcmUvY3J5cHRvL2djcnlwdC9D
cnlwdG9BbGdvcml0aG1BRVNfS1dHQ3J5cHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2NyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXR0NyeXB0LmNwcAkocmV2aXNp
b24gMjIwOTE5KQorKysgU291cmNlL1dlYkNvcmUvY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0
aG1BRVNfS1dHQ3J5cHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw2IEBACiAjaWYg
RU5BQkxFKFNVQlRMRV9DUllQVE8pCiAKICNpbmNsdWRlICJDcnlwdG9LZXlBRVMuaCIKLSNpbmNs
dWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgPHBhbC9jcnlwdG8vZ2NyeXB0L0hhbmRs
ZS5oPgogI2luY2x1ZGUgPHBhbC9jcnlwdG8vZ2NyeXB0L1V0aWxpdGllcy5oPgogCkBAIC0xNDAs
MTggKzEzOSw2IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0tXOjpwbGF0Zm9ybVVud3IKICAg
ICBjYWxsYmFjaygqb3V0cHV0KTsKIH0KIAotRXhjZXB0aW9uT3I8dm9pZD4gQ3J5cHRvQWxnb3Jp
dGhtQUVTX0tXOjpwbGF0Zm9ybUVuY3J5cHQoY29uc3QgQ3J5cHRvS2V5QUVTJiwgY29uc3QgQ3J5
cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmKQotewot
ICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRl
ZEVycm9yIH07Ci19Ci0KLUV4Y2VwdGlvbk9yPHZvaWQ+IENyeXB0b0FsZ29yaXRobUFFU19LVzo6
cGxhdGZvcm1EZWNyeXB0KGNvbnN0IENyeXB0b0tleUFFUyYsIGNvbnN0IENyeXB0b09wZXJhdGlv
bkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJikKLXsKLSAgICBub3RJbXBs
ZW1lbnRlZCgpOwotICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9Owot
fQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NS
WVBUTykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGht
SE1BQ0dDcnlwdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3J5cHRvL2djcnlw
dC9DcnlwdG9BbGdvcml0aG1ITUFDR0NyeXB0LmNwcAkocmV2aXNpb24gMjIwOTE5KQorKysgU291
cmNlL1dlYkNvcmUvY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1ITUFDR0NyeXB0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNiBAQAogCiAjaWYgRU5BQkxFKFNVQlRMRV9DUllQ
VE8pCiAKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZC5oIgog
I2luY2x1ZGUgIkNyeXB0b0tleUhNQUMuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250
ZXh0LmgiCiAjaW5jbHVkZSA8cGFsL2NyeXB0by9nY3J5cHQvSGFuZGxlLmg+CkBAIC04NCwxMSAr
ODMsNiBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhfdD4+IGNhCiAgICAgcmV0
dXJuIFdURk1vdmUoc2lnbmF0dXJlKTsKIH0KIAotc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVjdG9y
PHVpbnQ4X3Q+PiBjYWxjdWxhdGVTaWduYXR1cmUoaW50IGFsZ29yaXRobSwgY29uc3QgVmVjdG9y
PHVpbnQ4X3Q+JiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEpCi17Ci0gICAg
cmV0dXJuIGNhbGN1bGF0ZVNpZ25hdHVyZShhbGdvcml0aG0sIGtleSwgZGF0YS5maXJzdCwgZGF0
YS5zZWNvbmQpOwotfQotCiB2b2lkIENyeXB0b0FsZ29yaXRobUhNQUM6OnBsYXRmb3JtU2lnbihS
ZWY8Q3J5cHRvS2V5PiYmIGtleSwgVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSwgVmVjdG9yQ2FsbGJh
Y2smJiBjYWxsYmFjaywgRXhjZXB0aW9uQ2FsbGJhY2smJiBleGNlcHRpb25DYWxsYmFjaywgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgV29ya1F1ZXVlJiB3b3JrUXVldWUpCiB7CiAg
ICAgY29udGV4dC5yZWYoKTsKQEAgLTE0MSwzOSArMTM1LDYgQEAgdm9pZCBDcnlwdG9BbGdvcml0
aG1ITUFDOjpwbGF0Zm9ybVZlcmlmeQogICAgIH0pOwogfQogCi1FeGNlcHRpb25Pcjx2b2lkPiBD
cnlwdG9BbGdvcml0aG1ITUFDOjpwbGF0Zm9ybVNpZ24oY29uc3QgQ3J5cHRvQWxnb3JpdGhtSG1h
Y1BhcmFtc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleUhNQUMmIGtleSwg
Y29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFj
aywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrKQotewotICAgIGludCBhbGdvcml0aG0g
PSBnZXRHQ3J5cHREaWdlc3RBbGdvcml0aG0ocGFyYW1ldGVycy5oYXNoKTsKLSAgICBpZiAoYWxn
b3JpdGhtID09IEdDUllfTUFDX05PTkUpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RT
dXBwb3J0ZWRFcnJvciB9OwotCi0gICAgYXV0byBzaWduYXR1cmUgPSBjYWxjdWxhdGVTaWduYXR1
cmUoYWxnb3JpdGhtLCBrZXkua2V5KCksIGRhdGEpOwotICAgIGlmIChzaWduYXR1cmUpCi0gICAg
ICAgIGNhbGxiYWNrKCpzaWduYXR1cmUpOwotICAgIGVsc2UKLSAgICAgICAgZmFpbHVyZUNhbGxi
YWNrKCk7Ci0gICAgcmV0dXJuIHsgfTsKLX0KLQotRXhjZXB0aW9uT3I8dm9pZD4gQ3J5cHRvQWxn
b3JpdGhtSE1BQzo6cGxhdGZvcm1WZXJpZnkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFt
c0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleUhNQUMmIGtleSwgY29uc3Qg
Q3J5cHRvT3BlcmF0aW9uRGF0YSYgZXhwZWN0ZWRTaWduYXR1cmUsIGNvbnN0IENyeXB0b09wZXJh
dGlvbkRhdGEmIGRhdGEsIEJvb2xDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBm
YWlsdXJlQ2FsbGJhY2spCi17Ci0gICAgaW50IGFsZ29yaXRobSA9IGdldEdDcnlwdERpZ2VzdEFs
Z29yaXRobShwYXJhbWV0ZXJzLmhhc2gpOwotICAgIGlmIChhbGdvcml0aG0gPT0gR0NSWV9NQUNf
Tk9ORSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07Ci0K
LSAgICBhdXRvIHNpZ25hdHVyZSA9IGNhbGN1bGF0ZVNpZ25hdHVyZShhbGdvcml0aG0sIGtleS5r
ZXkoKSwgZGF0YSk7Ci0gICAgaWYgKCFzaWduYXR1cmUpIHsKLSAgICAgICAgZmFpbHVyZUNhbGxi
YWNrKCk7Ci0gICAgICAgIHJldHVybiB7IH07Ci0gICAgfQotCi0gICAgLy8gVXNpbmcgYSBjb25z
dGFudCB0aW1lIGNvbXBhcmlzb24gdG8gcHJldmVudCB0aW1pbmcgYXR0YWNrcy4KLSAgICBib29s
IHJlc3VsdCA9IHNpZ25hdHVyZS52YWx1ZSgpLnNpemUoKSA9PSBleHBlY3RlZFNpZ25hdHVyZS5z
ZWNvbmQgJiYgIWNvbnN0YW50VGltZU1lbWNtcChzaWduYXR1cmUudmFsdWUoKS5kYXRhKCksIGV4
cGVjdGVkU2lnbmF0dXJlLmZpcnN0LCBzaWduYXR1cmUudmFsdWUoKS5zaXplKCkpOwotCi0gICAg
Y2FsbGJhY2socmVzdWx0KTsKLSAgICByZXR1cm4geyB9OwotfQotCiB9CiAKICNlbmRpZiAvLyBF
TkFCTEUoU1VCVExFX0NSWVBUTykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9nY3J5cHQv
Q3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNUdDcnlwdC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92
MV81R0NyeXB0LmNwcAkocmV2aXNpb24gMjIwOTE5KQorKysgU291cmNlL1dlYkNvcmUvY3J5cHRv
L2djcnlwdC9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81R0NyeXB0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzAsNyArMzAsNiBAQAogCiAjaW5jbHVkZSAiQ3J5cHRvS2V5UlNBLmgiCiAj
aW5jbHVkZSAiR0NyeXB0VXRpbGl0aWVzLmgiCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIK
ICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTE0OSwxOCArMTQ4LDYgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92
MV81OjpwbAogICAgICAgICB9KTsKIH0KIAotRXhjZXB0aW9uT3I8dm9pZD4gQ3J5cHRvQWxnb3Jp
dGhtUlNBRVNfUEtDUzFfdjFfNTo6cGxhdGZvcm1FbmNyeXB0KGNvbnN0IENyeXB0b0tleVJTQSYs
IGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJh
Y2smJikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBFeGNlcHRpb24geyBO
b3RTdXBwb3J0ZWRFcnJvciB9OwotfQotCi1FeGNlcHRpb25Pcjx2b2lkPiBDcnlwdG9BbGdvcml0
aG1SU0FFU19QS0NTMV92MV81OjpwbGF0Zm9ybURlY3J5cHQoY29uc3QgQ3J5cHRvS2V5UlNBJiwg
Y29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFj
ayYmKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5v
dFN1cHBvcnRlZEVycm9yIH07Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
IC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQpJbmRleDogU291cmNlL1dlYkNvcmUvY3J5cHRvL2dj
cnlwdC9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNUdDcnlwdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1SU0FTU0Ff
UEtDUzFfdjFfNUdDcnlwdC5jcHAJKHJldmlzaW9uIDIyMDkxOSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2NyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzVHQ3J5cHQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw2IEBACiAKICNpZiBFTkFCTEUoU1VCVExFX0NS
WVBUTykKIAotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc0RlcHJlY2F0ZWQu
aCIKICNpbmNsdWRlICJDcnlwdG9LZXlSU0EuaCIKICNpbmNsdWRlICJHQ3J5cHRVdGlsaXRpZXMu
aCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgpAQCAtMTkwLDE4ICsxODksNiBAQCB2b2lk
IENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81OjpwCiAgICAgICAgIH0pOwogfQogCi1F
eGNlcHRpb25Pcjx2b2lkPiBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6cGxhdGZv
cm1TaWduKGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc0RlcHJlY2F0ZWQmLCBjb25z
dCBDcnlwdG9LZXlSU0EmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJh
Y2smJiwgVm9pZENhbGxiYWNrJiYpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1
cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKLX0KLQotRXhjZXB0aW9uT3I8dm9p
ZD4gQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OnBsYXRmb3JtVmVyaWZ5KGNvbnN0
IENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXlS
U0EmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0
YSYsIEJvb2xDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJikKLXsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOwotICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OwotfQotCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtUlNBX09B
RVBHQ3J5cHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9nY3J5cHQv
Q3J5cHRvQWxnb3JpdGhtUlNBX09BRVBHQ3J5cHQuY3BwCShyZXZpc2lvbiAyMjA5MTkpCisrKyBT
b3VyY2UvV2ViQ29yZS9jcnlwdG8vZ2NyeXB0L0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQR0NyeXB0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY3LDE4ICsxNjcsNiBAQCB2b2lkIENyeXB0b0FsZ29y
aXRobVJTQV9PQUVQOjpwbGF0Zm9ybURlCiAgICAgICAgIH0pOwogfQogCi1FeGNlcHRpb25Pcjx2
b2lkPiBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6cGxhdGZvcm1FbmNyeXB0KGNvbnN0IENyeXB0
b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5UlNBJiwg
Y29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFj
ayYmKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5v
dFN1cHBvcnRlZEVycm9yIH07Ci19Ci0KLUV4Y2VwdGlvbk9yPHZvaWQ+IENyeXB0b0FsZ29yaXRo
bVJTQV9PQUVQOjpwbGF0Zm9ybURlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBh
cmFtc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXlSU0EmLCBjb25zdCBDcnlwdG9PcGVyYXRp
b25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYpCi17Ci0gICAgbm90SW1w
bGVtZW50ZWQoKTsKLSAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsK
LX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9D
UllQVE8pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlTZXJpYWxp
emF0aW9uUmF3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9D
cnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3LmNwcAkocmV2aXNpb24gMjIwOTE5KQorKysgU291cmNl
L1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdy5jcHAJKG5vbmV4
aXN0ZW50KQpAQCAtMSw4MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIkNyeXB0b0tleVNlcmlhbGl6YXRpb25SYXcuaCIKLQotI2lmIEVOQUJMRShT
VUJUTEVfQ1JZUFRPKQotCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtLmgiCi0jaW5jbHVkZSAi
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQuaCIKLSNpbmNsdWRlICJDcnlwdG9L
ZXkuaCIKLSNpbmNsdWRlICJDcnlwdG9LZXlEYXRhT2N0ZXRTZXF1ZW5jZS5oIgotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLUNyeXB0b0tleVNlcmlhbGl6YXRpb25SYXc6OkNyeXB0b0tleVNlcmlh
bGl6YXRpb25SYXcoY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSkKLXsKLSAgICBtX2Rh
dGEuYXBwZW5kKGRhdGEuZmlyc3QsIGRhdGEuc2Vjb25kKTsKLX0KLQotQ3J5cHRvS2V5U2VyaWFs
aXphdGlvblJhdzo6fkNyeXB0b0tleVNlcmlhbGl6YXRpb25SYXcoKQotewotfQotCi1zdGQ6Om9w
dGlvbmFsPENyeXB0b0FsZ29yaXRobVBhaXI+IENyeXB0b0tleVNlcmlhbGl6YXRpb25SYXc6OnJl
Y29uY2lsZUFsZ29yaXRobShDcnlwdG9BbGdvcml0aG0qIGFsZ29yaXRobSwgQ3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQqIHBhcmFtZXRlcnMpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IENyeXB0b0FsZ29yaXRobVBhaXIgeyBhbGdvcml0aG0sIHBhcmFtZXRlcnMgfTsKLX0KLQotdm9p
ZCBDcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3OjpyZWNvbmNpbGVVc2FnZXMoQ3J5cHRvS2V5VXNh
Z2VCaXRtYXAmKSBjb25zdAotewotfQotCi12b2lkIENyeXB0b0tleVNlcmlhbGl6YXRpb25SYXc6
OnJlY29uY2lsZUV4dHJhY3RhYmxlKGJvb2wmKSBjb25zdAotewotfQotCi1zdGQ6OnVuaXF1ZV9w
dHI8Q3J5cHRvS2V5RGF0YT4gQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdzo6a2V5RGF0YSgpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8Q3J5cHRvS2V5RGF0YU9jdGV0U2Vx
dWVuY2U+KG1fZGF0YSk7Ci19Ci0KLWJvb2wgQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdzo6c2Vy
aWFsaXplKGNvbnN0IENyeXB0b0tleSYga2V5LCBWZWN0b3I8dWludDhfdD4mIHJlc3VsdCkKLXsK
LSAgICBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvS2V5RGF0YT4ga2V5RGF0YSA9IGtleS5leHBvcnRE
YXRhKCk7Ci0gICAgaWYgKCFrZXlEYXRhKSB7Ci0gICAgICAgIC8vIFRoaXMgZ2VuZXJhbGx5IHNo
b3VsZG4ndCBoYXBwZW4gYXMgbG9uZyBhcyBhbGwga2V5IHR5cGVzIGltcGxlbWVudCBleHBvcnRE
YXRhKCksIGJ1dCBhcyB1bmRlcmx5aW5nIGxpYnJhcmllcyByZXR1cm4gZXJyb3JzLCB0aGVyZSBt
YXkgYmUgc29tZSByYXJlIGZhaWx1cmUgY29uZGl0aW9ucy4KLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgIH0KLQotICAgIGlmICghaXM8Q3J5cHRvS2V5RGF0YU9jdGV0U2VxdWVuY2U+KCprZXlE
YXRhKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmVzdWx0LmFwcGVuZFZlY3Rvcihk
b3duY2FzdDxDcnlwdG9LZXlEYXRhT2N0ZXRTZXF1ZW5jZT4oKmtleURhdGEpLm9jdGV0U2VxdWVu
Y2UoKSk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQot
Ci0jZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBT
b3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3LmNwcApf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZlClwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NyeXB0
by9rZXlzL0NyeXB0b0tleVNlcmlhbGl6YXRpb25SYXcuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3LmgJKHJldmlzaW9u
IDIyMDkxOSkKKysrIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVNlcmlhbGl6
YXRpb25SYXcuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDY1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
cHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkNyeXB0b0tleVNlcmlhbGl6YXRpb24uaCIKLSNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLSNp
ZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBD
cnlwdG9LZXk7Ci0KLWNsYXNzIENyeXB0b0tleVNlcmlhbGl6YXRpb25SYXcgZmluYWwgOiBwdWJs
aWMgQ3J5cHRvS2V5U2VyaWFsaXphdGlvbiB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ3J5
cHRvS2V5U2VyaWFsaXphdGlvblJhdyk7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxDcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3PiBjcmVhdGUoY29uc3QgQ3J5cHRvT3BlcmF0
aW9uRGF0YSYgZGF0YSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8Q3J5
cHRvS2V5U2VyaWFsaXphdGlvblJhdz4obmV3IENyeXB0b0tleVNlcmlhbGl6YXRpb25SYXcoZGF0
YSkpOwotICAgIH0KLQotICAgIHZpcnR1YWwgfkNyeXB0b0tleVNlcmlhbGl6YXRpb25SYXcoKTsK
LQotICAgIHN0YXRpYyBib29sIHNlcmlhbGl6ZShjb25zdCBDcnlwdG9LZXkmLCBWZWN0b3I8dWlu
dDhfdD4mKTsKLQotcHJpdmF0ZToKLSAgICBDcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3KGNvbnN0
IENyeXB0b09wZXJhdGlvbkRhdGEmKTsKLQotICAgIHN0ZDo6b3B0aW9uYWw8Q3J5cHRvQWxnb3Jp
dGhtUGFpcj4gcmVjb25jaWxlQWxnb3JpdGhtKENyeXB0b0FsZ29yaXRobSosIENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnNEZXByZWNhdGVkKikgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICB2b2lkIHJl
Y29uY2lsZVVzYWdlcyhDcnlwdG9LZXlVc2FnZUJpdG1hcCYpIGNvbnN0IG92ZXJyaWRlOwotICAg
IHZvaWQgcmVjb25jaWxlRXh0cmFjdGFibGUoYm9vbCYpIGNvbnN0IG92ZXJyaWRlOwotCi0gICAg
c3RkOjp1bmlxdWVfcHRyPENyeXB0b0tleURhdGE+IGtleURhdGEoKSBjb25zdCBvdmVycmlkZTsK
LQotICAgIFZlY3Rvcjx1aW50OF90PiBtX2RhdGE7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykKClByb3BlcnR5IGNoYW5nZXMg
b246IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVNlcmlhbGl6YXRpb25SYXcu
aApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZl
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Ny
eXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQ01hYy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDTWFjLmNwcAkocmV2
aXNpb24gMjIwOTE5KQorKysgU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0
aG1BRVNfQ0JDTWFjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNiBAQAogI2lmIEVO
QUJMRShTVUJUTEVfQ1JZUFRPKQogCiAjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjQ2Zi
UGFyYW1zLmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zRGVwcmVjYXRl
ZC5oIgogI2luY2x1ZGUgIkNyeXB0b0tleUFFUy5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuaCIKICNpbmNsdWRlIDxDb21tb25DcnlwdG8vQ29tbW9uQ3J5cHRvLmg+CkBAIC0x
MTQsMzAgKzExMyw2IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6cGxhdGZvcm1EZWMK
ICAgICB9KTsKIH0KIAotRXhjZXB0aW9uT3I8dm9pZD4gQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6
cGxhdGZvcm1FbmNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0
ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleUFFUyYga2V5LCBjb25zdCBDcnlwdG9PcGVy
YXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2sm
JiBmYWlsdXJlQ2FsbGJhY2spCi17Ci0gICAgQVNTRVJUKHNpemVvZihwYXJhbWV0ZXJzLml2KSA9
PSBrQ0NCbG9ja1NpemVBRVMxMjgpOwotICAgIGF1dG8gcmVzdWx0ID0gdHJhbnNmb3JtQUVTX0NC
QyhrQ0NFbmNyeXB0LCBwYXJhbWV0ZXJzLml2LmRhdGEoKSwga2V5LmtleSgpLCBkYXRhLmZpcnN0
LCBkYXRhLnNlY29uZCk7Ci0gICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAgICAg
ICBmYWlsdXJlQ2FsbGJhY2soKTsKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICB9Ci0gICAgY2Fs
bGJhY2socmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKLSAgICByZXR1cm4geyB9OwotfQot
Ci1FeGNlcHRpb25Pcjx2b2lkPiBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpwbGF0Zm9ybURlY3J5
cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zRGVwcmVjYXRlZCYgcGFyYW1ldGVy
cywgY29uc3QgQ3J5cHRvS2V5QUVTJiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRh
dGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxs
YmFjaykKLXsKLSAgICBBU1NFUlQoc2l6ZW9mKHBhcmFtZXRlcnMuaXYpID09IGtDQ0Jsb2NrU2l6
ZUFFUzEyOCk7Ci0gICAgYXV0byByZXN1bHQgPSB0cmFuc2Zvcm1BRVNfQ0JDKGtDQ0RlY3J5cHQs
IHBhcmFtZXRlcnMuaXYuZGF0YSgpLCBrZXkua2V5KCksIGRhdGEuZmlyc3QsIGRhdGEuc2Vjb25k
KTsKLSAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7Ci0gICAgICAgIGZhaWx1cmVDYWxs
YmFjaygpOwotICAgICAgICByZXR1cm4geyB9OwotICAgIH0KLSAgICBjYWxsYmFjayhyZXN1bHQu
cmVsZWFzZVJldHVyblZhbHVlKCkpOwotICAgIHJldHVybiB7IH07Ci19Ci0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQpJbmRleDogU291
cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1BRVNfS1dNYWMuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tX
TWFjLmNwcAkocmV2aXNpb24gMjIwOTE5KQorKysgU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9D
cnlwdG9BbGdvcml0aG1BRVNfS1dNYWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NSwzNCArODUs
NiBAQCB2b2lkIENyeXB0b0FsZ29yaXRobUFFU19LVzo6cGxhdGZvcm1VbndyCiAgICAgY2FsbGJh
Y2socmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKIH0KIAotRXhjZXB0aW9uT3I8dm9pZD4g
Q3J5cHRvQWxnb3JpdGhtQUVTX0tXOjpwbGF0Zm9ybUVuY3J5cHQoY29uc3QgQ3J5cHRvS2V5QUVT
JiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYg
Y2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaykKLXsKLSAgICBpZiAoZGF0
YS5zZWNvbmQgJSA4KSB7Ci0gICAgICAgIC8vIFJGQyAzMzk0IHVzZXMgNjQtYml0IGJsb2NrcyBh
cyBpbnB1dC4KLSAgICAgICAgLy8gPHJkYXI6Ly9wcm9ibGVtLzE1OTQ5OTkyPiBDb21tb25Dcnlw
dG8gZG9lc24ndCBkZXRlY3QgaW5jb3JyZWN0IGRhdGEgbGVuZ3RoLCBzaWxlbnRseSBwcm9kdWNp
bmcgYSBiYWQgY3lwaGVydGV4dC4KLSAgICAgICAgZmFpbHVyZUNhbGxiYWNrKCk7Ci0gICAgICAg
IHJldHVybiB7IH07Ci0gICAgfQotCi0gICAgYXV0byByZXN1bHQgPSB3cmFwS2V5QUVTX0tXKGtl
eS5rZXkoKSwgZGF0YS5maXJzdCwgZGF0YS5zZWNvbmQpOwotICAgIGlmIChyZXN1bHQuaGFzRXhj
ZXB0aW9uKCkpIHsKLSAgICAgICAgZmFpbHVyZUNhbGxiYWNrKCk7Ci0gICAgICAgIHJldHVybiB7
IH07Ci0gICAgfQotICAgIGNhbGxiYWNrKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7Ci0g
ICAgcmV0dXJuIHsgfTsKLX0KLQotRXhjZXB0aW9uT3I8dm9pZD4gQ3J5cHRvQWxnb3JpdGhtQUVT
X0tXOjpwbGF0Zm9ybURlY3J5cHQoY29uc3QgQ3J5cHRvS2V5QUVTJiBrZXksIGNvbnN0IENyeXB0
b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxs
YmFjayYmIGZhaWx1cmVDYWxsYmFjaykKLXsKLSAgICBhdXRvIHJlc3VsdCA9IHVud3JhcEtleUFF
U19LVyhrZXkua2V5KCksIGRhdGEuZmlyc3QsIGRhdGEuc2Vjb25kKTsKLSAgICBpZiAocmVzdWx0
Lmhhc0V4Y2VwdGlvbigpKSB7Ci0gICAgICAgIGZhaWx1cmVDYWxsYmFjaygpOwotICAgICAgICBy
ZXR1cm4geyB9OwotICAgIH0KLSAgICBjYWxsYmFjayhyZXN1bHQucmVsZWFzZVJldHVyblZhbHVl
KCkpOwotICAgIHJldHVybiB7IH07fQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9t
YWMvQ3J5cHRvQWxnb3JpdGhtSE1BQ01hYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1ITUFDTWFjLmNwcAkocmV2aXNpb24gMjIwOTE5
KQorKysgU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1ITUFDTWFjLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNiBAQAogCiAjaWYgRU5BQkxFKFNVQlRMRV9D
UllQVE8pCiAKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZC5o
IgogI2luY2x1ZGUgIkNyeXB0b0tleUhNQUMuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25D
b250ZXh0LmgiCiAjaW5jbHVkZSA8Q29tbW9uQ3J5cHRvL0NvbW1vbkhNQUMuaD4KQEAgLTEzNCwz
MSArMTMzLDYgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1ITUFDOjpwbGF0Zm9ybVZlcmlmeQogICAg
IH0pOwogfQogCi1FeGNlcHRpb25Pcjx2b2lkPiBDcnlwdG9BbGdvcml0aG1ITUFDOjpwbGF0Zm9y
bVNpZ24oY29uc3QgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQmIHBhcmFtZXRl
cnMsIGNvbnN0IENyeXB0b0tleUhNQUMmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYg
ZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYpCi17Ci0gICAg
YXV0byBhbGdvcml0aG0gPSBjb21tb25DcnlwdG9ITUFDQWxnb3JpdGhtKHBhcmFtZXRlcnMuaGFz
aCk7Ci0gICAgaWYgKCFhbGdvcml0aG0pCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RT
dXBwb3J0ZWRFcnJvciB9OwotICAgIGNhbGxiYWNrKGNhbGN1bGF0ZVNpZ25hdHVyZSgqYWxnb3Jp
dGhtLCBrZXkua2V5KCksIGRhdGEuZmlyc3QsIGRhdGEuc2Vjb25kKSk7Ci0gICAgcmV0dXJuIHsg
fTsKLX0KLQotRXhjZXB0aW9uT3I8dm9pZD4gQ3J5cHRvQWxnb3JpdGhtSE1BQzo6cGxhdGZvcm1W
ZXJpZnkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQmIHBhcmFtZXRl
cnMsIGNvbnN0IENyeXB0b0tleUhNQUMmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYg
ZXhwZWN0ZWRTaWduYXR1cmUsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIEJvb2xD
YWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJikKLXsKLSAgICBhdXRvIGFsZ29yaXRo
bSA9IGNvbW1vbkNyeXB0b0hNQUNBbGdvcml0aG0ocGFyYW1ldGVycy5oYXNoKTsKLSAgICBpZiAo
IWFsZ29yaXRobSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9y
IH07Ci0KLSAgICBhdXRvIHNpZ25hdHVyZSA9IGNhbGN1bGF0ZVNpZ25hdHVyZSgqYWxnb3JpdGht
LCBrZXkua2V5KCksIGRhdGEuZmlyc3QsIGRhdGEuc2Vjb25kKTsKLQotICAgIC8vIFVzaW5nIGEg
Y29uc3RhbnQgdGltZSBjb21wYXJpc29uIHRvIHByZXZlbnQgdGltaW5nIGF0dGFja3MuCi0gICAg
Ym9vbCByZXN1bHQgPSBzaWduYXR1cmUuc2l6ZSgpID09IGV4cGVjdGVkU2lnbmF0dXJlLnNlY29u
ZCAmJiAhY29uc3RhbnRUaW1lTWVtY21wKHNpZ25hdHVyZS5kYXRhKCksIGV4cGVjdGVkU2lnbmF0
dXJlLmZpcnN0LCBzaWduYXR1cmUuc2l6ZSgpKTsKLQotICAgIGNhbGxiYWNrKHJlc3VsdCk7Ci0K
LSAgICByZXR1cm4geyB9OwotfQotCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBU
TykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNf
UEtDUzFfdjFfNU1hYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3J5cHRvL21h
Yy9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81TWFjLmNwcAkocmV2aXNpb24gMjIwOTE5
KQorKysgU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NT
MV92MV81TWFjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTAzLDI4ICsxMDMsNiBAQCB2b2lkIENy
eXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzU6OnBsCiAgICAgfSk7CiB9CiAKLUV4Y2VwdGlv
bk9yPHZvaWQ+IENyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzU6OnBsYXRmb3JtRW5jcnlw
dChjb25zdCBDcnlwdG9LZXlSU0EmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0
YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxi
YWNrKQotewotICAgIGF1dG8gcmVzdWx0ID0gZW5jcnlwdFJTQUVTX1BLQ1MxX3YxXzUoa2V5LnBs
YXRmb3JtS2V5KCksIGtleS5rZXlTaXplSW5CaXRzKCksIGRhdGEuZmlyc3QsIGRhdGEuc2Vjb25k
KTsKLSAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7Ci0gICAgICAgIGZhaWx1cmVDYWxs
YmFjaygpOwotICAgICAgICByZXR1cm4geyB9OwotICAgIH0KLSAgICBjYWxsYmFjayhyZXN1bHQu
cmVsZWFzZVJldHVyblZhbHVlKCkpOwotICAgIHJldHVybiB7IH07Ci19Ci0KLUV4Y2VwdGlvbk9y
PHZvaWQ+IENyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzU6OnBsYXRmb3JtRGVjcnlwdChj
b25zdCBDcnlwdG9LZXlSU0EmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwg
VmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNr
KQotewotICAgIGF1dG8gcmVzdWx0ID0gZGVjcnlwdFJTQUVTX1BLQ1MxX3YxXzUoa2V5LnBsYXRm
b3JtS2V5KCksIGtleS5rZXlTaXplSW5CaXRzKCksIGRhdGEuZmlyc3QsIGRhdGEuc2Vjb25kKTsK
LSAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7Ci0gICAgICAgIGZhaWx1cmVDYWxsYmFj
aygpOwotICAgICAgICByZXR1cm4geyB9OwotICAgIH0KLSAgICBjYWxsYmFjayhyZXN1bHQucmVs
ZWFzZVJldHVyblZhbHVlKCkpOwotICAgIHJldHVybiB7IH07Ci19Ci0KIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQpJbmRleDogU291cmNl
L1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNU1hYy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0
aG1SU0FTU0FfUEtDUzFfdjFfNU1hYy5jcHAJKHJldmlzaW9uIDIyMDkxOSkKKysrIFNvdXJjZS9X
ZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzVNYWMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw2IEBACiAjaWYgRU5BQkxFKFNVQlRMRV9DUllQ
VE8pCiAKICNpbmNsdWRlICJDb21tb25DcnlwdG9VdGlsaXRpZXMuaCIKLSNpbmNsdWRlICJDcnlw
dG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNEZXByZWNhdGVkLmgiCiAjaW5jbHVkZSAiQ3J5cHRvRGln
ZXN0QWxnb3JpdGhtLmgiCiAjaW5jbHVkZSAiQ3J5cHRvS2V5UlNBLmgiCiAjaW5jbHVkZSAiU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5oIgpAQCAtMTMzLDI4ICsxMzIsNiBAQCB2b2lkIENyeXB0b0Fs
Z29yaXRobVJTQVNTQV9QS0NTMV92MV81OjpwCiAgICAgfSk7CiB9CiAKLUV4Y2VwdGlvbk9yPHZv
aWQ+IENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81OjpwbGF0Zm9ybVNpZ24oY29uc3Qg
Q3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZCYgcGFyYW1ldGVycywgY29uc3Qg
Q3J5cHRvS2V5UlNBJiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3Rv
ckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaykKLXsK
LSAgICBhdXRvIHJlc3VsdCA9IHNpZ25SU0FTU0FfUEtDUzFfdjFfNShwYXJhbWV0ZXJzLmhhc2gs
IGtleS5wbGF0Zm9ybUtleSgpLCBrZXkua2V5U2l6ZUluQml0cygpLCBkYXRhLmZpcnN0LCBkYXRh
LnNlY29uZCk7Ci0gICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAgICAgICBmYWls
dXJlQ2FsbGJhY2soKTsKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICB9Ci0gICAgY2FsbGJhY2so
cmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKLSAgICByZXR1cm4geyB9OwotfQotCi1FeGNl
cHRpb25Pcjx2b2lkPiBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6cGxhdGZvcm1W
ZXJpZnkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZCYgcGFyYW1l
dGVycywgY29uc3QgQ3J5cHRvS2V5UlNBJiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEm
IHNpZ25hdHVyZSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgQm9vbENhbGxiYWNr
JiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaykKLXsKLSAgICBhdXRv
IHJlc3VsdCA9IHZlcmlmeVJTQVNTQV9QS0NTMV92MV81KHBhcmFtZXRlcnMuaGFzaCwga2V5LnBs
YXRmb3JtS2V5KCksIHNpZ25hdHVyZS5maXJzdCwgc2lnbmF0dXJlLnNlY29uZCwgZGF0YS5maXJz
dCwgZGF0YS5zZWNvbmQpOwotICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKLSAgICAg
ICAgZmFpbHVyZUNhbGxiYWNrKCk7Ci0gICAgICAgIHJldHVybiB7IH07Ci0gICAgfQotICAgIGNh
bGxiYWNrKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7Ci0gICAgcmV0dXJuIHsgfTsKLX0K
LQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQ
VE8pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobVJTQV9P
QUVQTWFjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0
b0FsZ29yaXRobVJTQV9PQUVQTWFjLmNwcAkocmV2aXNpb24gMjIwOTE5KQorKysgU291cmNlL1dl
YkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUE1hYy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMwLDcgKzMwLDYgQEAKIAogI2luY2x1ZGUgIkNvbW1vbkNyeXB0b1V0aWxpdGll
cy5oIgogI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXMuaCIKLSNpbmNsdWRl
ICJDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVjYXRlZC5oIgogI2luY2x1ZGUgIkNy
eXB0b0tleVJTQS5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKIApAQCAt
MTE1LDMwICsxMTQsNiBAQCB2b2lkIENyeXB0b0FsZ29yaXRobVJTQV9PQUVQOjpwbGF0Zm9ybURl
CiAgICAgfSk7CiB9CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IENyeXB0b0FsZ29yaXRobVJTQV9PQUVQ
OjpwbGF0Zm9ybUVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJl
Y2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleVJTQSYga2V5LCBjb25zdCBDcnlwdG9P
cGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJh
Y2smJiBmYWlsdXJlQ2FsbGJhY2spCi17Ci0gICAgQVNTRVJUKHBhcmFtZXRlcnMuaGFzTGFiZWwg
fHwgcGFyYW1ldGVycy5sYWJlbC5pc0VtcHR5KCkpOwotICAgIGF1dG8gcmVzdWx0ID0gZW5jcnlw
dFJTQV9PQUVQKHBhcmFtZXRlcnMuaGFzaCwgcGFyYW1ldGVycy5sYWJlbCwga2V5LnBsYXRmb3Jt
S2V5KCksIGtleS5rZXlTaXplSW5CaXRzKCksIGRhdGEuZmlyc3QsIGRhdGEuc2Vjb25kKTsKLSAg
ICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7Ci0gICAgICAgIGZhaWx1cmVDYWxsYmFjaygp
OwotICAgICAgICByZXR1cm4geyB9OwotICAgIH0KLSAgICBjYWxsYmFjayhyZXN1bHQucmVsZWFz
ZVJldHVyblZhbHVlKCkpOwotICAgIHJldHVybiB7IH07Ci19Ci0KLUV4Y2VwdGlvbk9yPHZvaWQ+
IENyeXB0b0FsZ29yaXRobVJTQV9PQUVQOjpwbGF0Zm9ybURlY3J5cHQoY29uc3QgQ3J5cHRvQWxn
b3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tl
eVJTQSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFj
ayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spCi17Ci0gICAgQVNT
RVJUKHBhcmFtZXRlcnMuaGFzTGFiZWwgfHwgcGFyYW1ldGVycy5sYWJlbC5pc0VtcHR5KCkpOwot
ICAgIGF1dG8gcmVzdWx0ID0gZGVjcnlwdFJTQV9PQUVQKHBhcmFtZXRlcnMuaGFzaCwgcGFyYW1l
dGVycy5sYWJlbCwga2V5LnBsYXRmb3JtS2V5KCksIGtleS5rZXlTaXplSW5CaXRzKCksIGRhdGEu
Zmlyc3QsIGRhdGEuc2Vjb25kKTsKLSAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7Ci0g
ICAgICAgIGZhaWx1cmVDYWxsYmFjaygpOwotICAgICAgICByZXR1cm4geyB9OwotICAgIH0KLSAg
ICBjYWxsYmFjayhyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOwotICAgIHJldHVybiB7IH07
Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTVUJUTEVf
Q1JZUFRPKQpJbmRleDogU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxn
b3JpdGhtQWVzQ2JjUGFyYW1zRGVwcmVjYXRlZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0
ZWQuaAkocmV2aXNpb24gMjIwOTE5KQorKysgU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRl
cnMvQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zRGVwcmVjYXRlZC5oCShub25leGlzdGVudCkK
QEAgLTEsNDcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAi
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQuaCIKLSNpbmNsdWRlIDxhcnJheT4K
LQotI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNs
YXNzIENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0ZWQgZmluYWwgOiBwdWJsaWMg
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQgewotcHVibGljOgotICAgIC8vIFRo
ZSBpbml0aWFsaXphdGlvbiB2ZWN0b3IuIE1VU1QgYmUgMTYgYnl0ZXMuCi0gICAgc3RkOjphcnJh
eTx1aW50OF90LCAxNj4gaXY7Ci0KLSAgICBDbGFzcyBwYXJhbWV0ZXJzQ2xhc3MoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBDbGFzczo6QWVzQ2JjUGFyYW1zOyB9Ci19OwotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCi0KLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ1JZUFRPX0FMR09SSVRITV9Q
QVJBTUVURVJTX0RFUFJFQ0FURUQoQWVzQ2JjUGFyYW1zKQotCi0jZW5kaWYgLy8gRU5BQkxFKFNV
QlRMRV9DUllQVE8pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9Dcnlw
dG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXNEZXByZWNhdGVkLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFy
YW1zRGVwcmVjYXRlZC5oCShyZXZpc2lvbiAyMjA5MTkpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlw
dG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXNEZXByZWNhdGVkLmgJ
KG5vbmV4aXN0ZW50KQpAQCAtMSw0NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNl
Ci0KLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZC5oIgotCi0j
aWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3Mg
Q3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zRGVwcmVjYXRlZCBmaW5hbCA6IHB1YmxpYyBD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCB7Ci1wdWJsaWM6Ci0gICAgLy8gVGhl
IGxlbmd0aCwgaW4gYml0cywgb2YgdGhlIGtleS4KLSAgICB1bnNpZ25lZCBsZW5ndGg7Ci0KLSAg
ICBDbGFzcyBwYXJhbWV0ZXJzQ2xhc3MoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDbGFzczo6
QWVzS2V5R2VuUGFyYW1zOyB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLVNQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfQ1JZUFRPX0FMR09SSVRITV9QQVJBTUVURVJTX0RFUFJFQ0FURUQo
QWVzS2V5R2VuUGFyYW1zKQotCi0jZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1IbWFjS2V5
UGFyYW1zRGVwcmVjYXRlZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9w
YXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXNEZXByZWNhdGVkLmgJKHJldmlz
aW9uIDIyMDkxOSkKKysrIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0Fs
Z29yaXRobUhtYWNLZXlQYXJhbXNEZXByZWNhdGVkLmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw1MiAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0Rl
cHJlY2F0ZWQuaCIKLQotI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLWNsYXNzIENyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXNEZXByZWNhdGVkIGZp
bmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkIHsKLXB1Ymxp
YzoKLSAgICAvLyBUaGUgaW5uZXIgaGFzaCBmdW5jdGlvbiB0byB1c2UuCi0gICAgQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllciBoYXNoOwotCi0gICAgLy8gVGhlIGxlbmd0aCAoaW4gYnl0ZXMpIG9m
IHRoZSBrZXkgdG8gZ2VuZXJhdGUuIElmIHVuc3BlY2lmaWVkLCB0aGUgcmVjb21tZW5kZWQgbGVu
Z3RoIHdpbGwgYmUgdXNlZCwKLSAgICAvLyB3aGljaCBpcyB0aGUgc2l6ZSBvZiB0aGUgYXNzb2Np
YXRlZCBoYXNoIGZ1bmN0aW9uJ3MgYmxvY2sgc2l6ZS4KLSAgICBib29sIGhhc0xlbmd0aCB7IGZh
bHNlIH07Ci0gICAgdW5zaWduZWQgbGVuZ3RoOwotCi0gICAgQ2xhc3MgcGFyYW1ldGVyc0NsYXNz
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ2xhc3M6OkhtYWNLZXlQYXJhbXM7IH0KLX07Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DUllQVE9f
QUxHT1JJVEhNX1BBUkFNRVRFUlNfREVQUkVDQVRFRChIbWFjS2V5UGFyYW1zKQotCi0jZW5kaWYg
Ly8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFy
YW1ldGVycy9DcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUhtYWNQ
YXJhbXNEZXByZWNhdGVkLmgJKHJldmlzaW9uIDIyMDkxOSkKKysrIFNvdXJjZS9XZWJDb3JlL2Ny
eXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVkLmgJKG5v
bmV4aXN0ZW50KQpAQCAtMSw0NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0K
LSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQuaCIKLQotI2lmIEVOQUJMRShTVUJUTEVfQ1JZ
UFRPKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENyeXB0b0FsZ29yaXRobUhtYWNQ
YXJhbXNEZXByZWNhdGVkIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNE
ZXByZWNhdGVkIHsKLXB1YmxpYzoKLSAgICAvLyBUaGUgaW5uZXIgaGFzaCBmdW5jdGlvbiB0byB1
c2UuCi0gICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBoYXNoOwotCi0gICAgQ2xhc3MgcGFy
YW1ldGVyc0NsYXNzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ2xhc3M6OkhtYWNQYXJhbXM7
IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotU1BFQ0lBTElaRV9UWVBFX1RSQUlU
U19DUllQVE9fQUxHT1JJVEhNX1BBUkFNRVRFUlNfREVQUkVDQVRFRChIbWFjUGFyYW1zKQotCi0j
ZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlw
dG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXNEZXByZWNhdGVkLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxn
b3JpdGhtUnNhS2V5R2VuUGFyYW1zRGVwcmVjYXRlZC5oCShyZXZpc2lvbiAyMjA5MTkpCisrKyBT
b3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5Q
YXJhbXNEZXByZWNhdGVkLmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw1MiArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
RGVwcmVjYXRlZC5oIgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotI2lmIEVOQUJMRShTVUJU
TEVfQ1JZUFRPKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENyeXB0b0FsZ29yaXRo
bVJzYUtleUdlblBhcmFtc0RlcHJlY2F0ZWQgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVyc0RlcHJlY2F0ZWQgewotcHVibGljOgotICAgIC8vIFRoZSBsZW5ndGgsIGluIGJp
dHMsIG9mIHRoZSBSU0EgbW9kdWx1cy4KLSAgICB1bnNpZ25lZCBtb2R1bHVzTGVuZ3RoOwotICAg
IC8vIFRoZSBSU0EgcHVibGljIGV4cG9uZW50LCBlbmNvZGVkIGFzIEJpZ0ludGVnZXIuCi0gICAg
VmVjdG9yPHVpbnQ4X3Q+IHB1YmxpY0V4cG9uZW50OwotICAgIC8vIFRoZSBoYXNoIGFsZ29yaXRo
IGlkZW50aWZpZXIKLSAgICBib29sIGhhc0hhc2ggeyBmYWxzZSB9OwotICAgIENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXIgaGFzaDsKLQotICAgIENsYXNzIHBhcmFtZXRlcnNDbGFzcygpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIENsYXNzOjpSc2FLZXlHZW5QYXJhbXM7IH0KLX07Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKLQotU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19DUllQVE9fQUxHT1JJ
VEhNX1BBUkFNRVRFUlNfREVQUkVDQVRFRChSc2FLZXlHZW5QYXJhbXMpCi0KLSNlbmRpZiAvLyBF
TkFCTEUoU1VCVExFX0NSWVBUTykKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3Jl
L2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtc0RlcHJlY2F0
ZWQuaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0
aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVw
cmVjYXRlZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJz
L0NyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZC5oCShyZXZpc2lv
biAyMjA5MTkpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdv
cml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERlcHJlY2F0ZWQuaAkobm9uZXhpc3RlbnQpCkBAIC0x
LDU2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkNyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXIuaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1QYXJhbWV0
ZXJzRGVwcmVjYXRlZC5oIgotCi0jaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCi0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotLy8gVGhpcyBwYXJhbWV0ZXJzIGNsYXNzIGlzIGN1cnJlbnRseSBub3Qg
c3BlY2lmaWVkIGluIFdlYkNyeXB0by4KLS8vIEl0IGlzIG5lY2Vzc2FyeSB0byBzdXBwb3J0IGlt
cG9ydCBmcm9tIEpXSywgd2hpY2ggdHJlYXRzIGhhc2ggZnVuY3Rpb24gYXMgcGFydCBvZiBhbGdv
cml0aG0KLS8vIGlkZW50aWZpZXIsIHNvIHdlIG5lZWQgdG8gcmVtZW1iZXIgaXQgdG8gY29tcGFy
ZSB3aXRoIG9uZSBwYXNzZWQgdG8gc2lnbiBvciB2ZXJpZnkgZnVuY3Rpb25zLgotY2xhc3MgQ3J5
cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hEZXByZWNhdGVkIGZpbmFsIDogcHVibGlj
IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkIHsKLXB1YmxpYzoKLSAgICBDcnlw
dG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERlcHJlY2F0ZWQoKQotICAgICAgICA6IGhh
c0hhc2goZmFsc2UpCi0gICAgewotICAgIH0KLQotICAgIC8vIFRoZSBoYXNoIGFsZ29yaXRobSB0
byB1c2UuCi0gICAgYm9vbCBoYXNIYXNoOwotICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIg
aGFzaDsKLQotICAgIENsYXNzIHBhcmFtZXRlcnNDbGFzcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIENsYXNzOjpSc2FLZXlQYXJhbXNXaXRoSGFzaDsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQotCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NSWVBUT19BTEdPUklUSE1fUEFSQU1F
VEVSU19ERVBSRUNBVEVEKFJzYUtleVBhcmFtc1dpdGhIYXNoKQotCi0jZW5kaWYgLy8gRU5BQkxF
KFNVQlRMRV9DUllQVE8pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9D
cnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVjYXRlZC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJh
bXNEZXByZWNhdGVkLmgJKHJldmlzaW9uIDIyMDkxOSkKKysrIFNvdXJjZS9XZWJDb3JlL2NyeXB0
by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVkLmgJKG5v
bmV4aXN0ZW50KQpAQCAtMSw1MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0K
LSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQuaCIKLQotI2lmIEVOQUJMRShTVUJUTEVfQ1JZ
UFRPKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENyeXB0b0FsZ29yaXRobVJzYU9h
ZXBQYXJhbXNEZXByZWNhdGVkIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnNEZXByZWNhdGVkIHsKLXB1YmxpYzoKLSAgICAvLyBUaGUgaGFzaCBmdW5jdGlvbiB0byBhcHBs
eSB0byB0aGUgbWVzc2FnZS4KLSAgICBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGhhc2g7Ci0K
LSAgICAvLyBUaGUgb3B0aW9uYWwgbGFiZWwvYXBwbGljYXRpb24gZGF0YSB0byBhc3NvY2lhdGUg
d2l0aCB0aGUgbWVzc2FnZS4KLSAgICAvLyBGSVhNRTogSXMgdGhlcmUgYSBkaWZmZXJlbmNlIGJl
dHdlZW4gYSBtaXNzaW5nIGxhYmVsIGFuZCBhbiBlbXB0eSBvbmU/IFBlcmhhcHMgd2UgZG9uJ3Qg
bmVlZCB0aGUgaGFzTGFiZWwgbWVtYmVyLgotICAgIGJvb2wgaGFzTGFiZWwgeyBmYWxzZSB9Owot
ICAgIFZlY3Rvcjx1aW50OF90PiBsYWJlbDsKLQotICAgIENsYXNzIHBhcmFtZXRlcnNDbGFzcygp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENsYXNzOjpSc2FPYWVwUGFyYW1zOyB9Ci19OwotCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ1JZUFRPX0FM
R09SSVRITV9QQVJBTUVURVJTX0RFUFJFQ0FURUQoUnNhT2FlcFBhcmFtcykKLQotI2VuZGlmIC8v
IEVOQUJMRShTVUJUTEVfQ1JZUFRPKQoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNv
cmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0
ZWQuaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0
aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc0RlcHJlY2F0ZWQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9B
bGdvcml0aG1Sc2FTc2FQYXJhbXNEZXByZWNhdGVkLmgJKHJldmlzaW9uIDIyMDkxOSkKKysrIFNv
dXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFt
c0RlcHJlY2F0ZWQuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDQ3ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIuaCIK
LSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZC5oIgotCi0jaWYg
RU5BQkxFKFNVQlRMRV9DUllQVE8pCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQ3J5
cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZCBmaW5hbCA6IHB1YmxpYyBDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCB7Ci1wdWJsaWM6Ci0gICAgLy8gVGhlIGhhc2gg
YWxnb3JpdGhtIHRvIHVzZS4KLSAgICBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGhhc2g7Ci0K
LSAgICBDbGFzcyBwYXJhbWV0ZXJzQ2xhc3MoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDbGFz
czo6UnNhU3NhUGFyYW1zOyB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLVNQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfQ1JZUFRPX0FMR09SSVRITV9QQVJBTUVURVJTX0RFUFJFQ0FURUQo
UnNhU3NhUGFyYW1zKQotCi0jZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGFnZS9DcnlwdG8uY3BwCShyZXZpc2lvbiAyMjA5MTkpCisrKyBTb3VyY2UvV2ViQ29yZS9w
YWdlL0NyeXB0by5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDE1ICszMSwxNSBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNyeXB0by5oIgogCi0jaWYgT1MoREFSV0lOKQotI2lu
Y2x1ZGUgIkNvbW1vbkNyeXB0b1V0aWxpdGllcy5oIgotI2VuZGlmCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJTdWJ0bGVDcnlwdG8uaCIKLSNpbmNsdWRlICJXZWJLaXRTdWJ0bGVD
cnlwdG8uaCIKICNpbmNsdWRlIDxydW50aW1lL0FycmF5QnVmZmVyVmlldy5oPgogI2luY2x1ZGUg
PHd0Zi9DcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5oPgogCisjaWYgT1MoREFSV0lOKQor
I2luY2x1ZGUgIkNvbW1vbkNyeXB0b1V0aWxpdGllcy5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogQ3J5cHRvOjpDcnlwdG8oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCkKQEAgLTc2LDE5ICs3Niw2IEBAIFN1YnRsZUNyeXB0byYgQ3J5cHRvOjpzdWJ0bGUoKQogICAg
IHJldHVybiBtX3N1YnRsZTsKIH0KIAotRXhjZXB0aW9uT3I8V2ViS2l0U3VidGxlQ3J5cHRvJj4g
Q3J5cHRvOjp3ZWJraXRTdWJ0bGUoKQotewotICAgIGlmICghaXNNYWluVGhyZWFkKCkpCi0gICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OwotCi0gICAgaWYgKCFt
X3dlYmtpdFN1YnRsZSkgewotICAgICAgICBtX3dlYmtpdFN1YnRsZSA9IFdlYktpdFN1YnRsZUNy
eXB0bzo6Y3JlYXRlKCpkb3duY2FzdDxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
KSk7Ci0gICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+YWRkQ29uc29sZU1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgQVNDSUlMaXRlcmFs
KCJXZWJLaXRTdWJ0bGVDcnlwdG8gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBTdWJ0bGVDcnlw
dG8gaW5zdGVhZC4iKSk7Ci0gICAgfQotCi0gICAgcmV0dXJuICptX3dlYmtpdFN1YnRsZTsKLX0K
LQogI2VuZGlmCiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ3J5cHRvLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uaAkocmV2aXNpb24gMjIwOTE5KQor
KysgU291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uaAkod29ya2luZyBjb3B5KQpAQCAtMzksNyAr
MzksNiBAQCBjbGFzcyBBcnJheUJ1ZmZlclZpZXc7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIFN1YnRsZUNyeXB0bzsKLWNsYXNzIFdlYktpdFN1YnRsZUNyeXB0bzsKIAogY2xhc3MgQ3J5
cHRvIDogcHVibGljIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLCBwdWJsaWMgUmVmQ291bnRl
ZDxDcnlwdG8+IHsKIHB1YmxpYzoKQEAgLTUwLDkgKzQ5LDYgQEAgcHVibGljOgogCiAjaWYgRU5B
QkxFKFNVQlRMRV9DUllQVE8pCiAgICAgU3VidGxlQ3J5cHRvJiBzdWJ0bGUoKTsKLQotICAgIC8v
IFdpbGwgYmUgZGVwcmVjYXRlZC4KLSAgICBFeGNlcHRpb25PcjxXZWJLaXRTdWJ0bGVDcnlwdG8m
PiB3ZWJraXRTdWJ0bGUoKTsKICNlbmRpZgogCiBwcml2YXRlOgpAQCAtNjAsOSArNTYsNiBAQCBw
cml2YXRlOgogCiAjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCiAgICAgUmVmPFN1YnRsZUNyeXB0
bz4gbV9zdWJ0bGU7Ci0KLSAgICAvLyBXaWxsIGJlIGRlcHJlY2F0ZWQuCi0gICAgUmVmUHRyPFdl
YktpdFN1YnRsZUNyeXB0bz4gbV93ZWJraXRTdWJ0bGU7CiAjZW5kaWYKIH07CiAKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BhZ2UvQ3J5cHRvLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wYWdlL0NyeXB0by5pZGwJKHJldmlzaW9uIDIyMDkxOSkKKysrIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ3J5cHRvLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNCBAQAogXSBpbnRlcmZh
Y2UgQ3J5cHRvIHsKICAgICBbQ29uZGl0aW9uYWw9U1VCVExFX0NSWVBUT10gcmVhZG9ubHkgYXR0
cmlidXRlIFN1YnRsZUNyeXB0byBzdWJ0bGU7CiAgICAgW01heVRocm93RXhjZXB0aW9uXSBBcnJh
eUJ1ZmZlclZpZXcgZ2V0UmFuZG9tVmFsdWVzKFtSZXR1cm5WYWx1ZV0gQXJyYXlCdWZmZXJWaWV3
IGFycmF5KTsKLQotICAgIC8vIFdpbGwgYmUgZGVwcmVjYXRlZC4KLSAgICBbQ29uZGl0aW9uYWw9
U1VCVExFX0NSWVBUTywgR2V0dGVyTWF5VGhyb3dFeGNlcHRpb25dIHJlYWRvbmx5IGF0dHJpYnV0
ZSBXZWJLaXRTdWJ0bGVDcnlwdG8gd2Via2l0U3VidGxlOwogfTsKSW5kZXg6IExheW91dFRlc3Rz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDIyMDkxOSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDEzOCBAQAorMjAxNy0wOC0xOCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisg
ICAgICAgIFJlbW92ZSB0aGUgZGVwcmVjYXRlZCBXZWJLaXRTdWJ0bGVDcnlwdG8gaW50ZXJmYWNl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjQ5MzgK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI5ODk0NTYzPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZTogUmVtb3Zl
ZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtMTkyLWVuY3J5cHQtZGVj
cnlwdC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRs
ZS9hZXMtY2JjLTE5Mi1lbmNyeXB0LWRlY3J5cHQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBj
cnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtMjU2LWVuY3J5cHQtZGVjcnlwdC1leHBlY3RlZC50
eHQ6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLTI1Ni1l
bmNyeXB0LWRlY3J5cHQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3Vi
dGxlL2Flcy1jYmMtZW5jcnlwdC1kZWNyeXB0LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtZW5jcnlwdC1kZWNyeXB0LXdpdGgtcGFk
ZGluZy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRs
ZS9hZXMtY2JjLWVuY3J5cHQtZGVjcnlwdC13aXRoLXBhZGRpbmcuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtZW5jcnlwdC1kZWNyeXB0Lmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWdlbmVyYXRl
LWtleS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRs
ZS9hZXMtY2JjLWdlbmVyYXRlLWtleS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93
ZWJraXRTdWJ0bGUvYWVzLWNiYy1pbXBvcnQtandrLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtaW1wb3J0LWp3ay5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy1pbnZhbGlkLWxlbmd0
aC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9h
ZXMtY2JjLWludmFsaWQtbGVuZ3RoLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dl
YmtpdFN1YnRsZS9hZXMtY2JjLXVud3JhcC1mYWlsdXJlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4K
KyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtdW53cmFwLWZhaWx1cmUuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtdW53cmFw
LXJzYS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRs
ZS9hZXMtY2JjLXVud3JhcC1yc2EuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Vi
a2l0U3VidGxlL2Flcy1jYmMtd3JhcC1yc2EtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy13cmFwLXJzYS1ub24tZXh0cmFjdGFibGUt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYWVz
LWNiYy13cmFwLXJzYS1ub24tZXh0cmFjdGFibGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBj
cnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtd3JhcC1yc2EuaHRtbDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtd3Jvbmcta2V5LWNsYXNzLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtd3Jv
bmcta2V5LWNsYXNzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRs
ZS9hZXMtZXhwb3J0LWtleS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRv
L3dlYmtpdFN1YnRsZS9hZXMtZXhwb3J0LWtleS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGNy
eXB0by93ZWJraXRTdWJ0bGUvYWVzLWt3LWtleS1tYW5pcHVsYXRpb24tZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWt3LWtleS1tYW5pcHVs
YXRpb24uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1r
dy13cmFwLXVud3JhcC1hZXMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0
by93ZWJraXRTdWJ0bGUvYWVzLWt3LXdyYXAtdW53cmFwLWFlcy5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYWVzLXBvc3RNZXNzYWdlLWV4cGVjdGVkLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1wb3N0TWVzc2FnZS5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYXJndW1lbnQtY29u
dmVyc2lvbi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1
YnRsZS9hcmd1bWVudC1jb252ZXJzaW9uLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRv
L3dlYmtpdFN1YnRsZS9hcnJheS1idWZmZXItdmlldy1vZmZzZXQtZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYXJyYXktYnVmZmVyLXZpZXctb2Zm
c2V0Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9kaXNhbGxv
d2VkLWluLXdvcmtlci1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dl
YmtpdFN1YnRsZS9kaXNhbGxvd2VkLWluLXdvcmtlci5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGNyeXB0by93ZWJraXRTdWJ0bGUvZ2MtMi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogY3J5cHRvL3dlYmtpdFN1YnRsZS9nYy0yLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogY3J5
cHRvL3dlYmtpdFN1YnRsZS9nYy0zLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBj
cnlwdG8vd2Via2l0U3VidGxlL2djLTMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8v
d2Via2l0U3VidGxlL2djLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8v
d2Via2l0U3VidGxlL2djLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1
YnRsZS9obWFjLWNoZWNrLWFsZ29yaXRobS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLWNoZWNrLWFsZ29yaXRobS5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1leHBvcnQta2V5LWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2htYWMtZXhwb3J0
LWtleS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1n
ZW5lcmF0ZS1rZXktZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJr
aXRTdWJ0bGUvaG1hYy1nZW5lcmF0ZS1rZXkuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlw
dG8vd2Via2l0U3VidGxlL2htYWMtaW1wb3J0LWp3ay1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisg
ICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLWltcG9ydC1qd2suaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2htYWMtcG9zdE1lc3NhZ2UtZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1wb3N0
TWVzc2FnZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvaG1h
Yy1zaWduLXZlcmlmeS1lbXB0eS1rZXktZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAq
IGNyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1zaWduLXZlcmlmeS1lbXB0eS1rZXkuaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2htYWMtc2lnbi12ZXJpZnktZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1z
aWduLXZlcmlmeS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUv
aW1wb3J0LWV4cG9ydC1yYXcta2V5LWxlYWstZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvaW1wb3J0LWV4cG9ydC1yYXcta2V5LWxlYWsuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2ltcG9ydC1qd2stZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvaW1wb3J0LWp3
ay5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvandrLWV4cG9y
dC11c2UtdmFsdWVzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Vi
a2l0U3VidGxlL2p3ay1leHBvcnQtdXNlLXZhbHVlcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGNyeXB0by93ZWJraXRTdWJ0bGUvandrLWltcG9ydC11c2UtdmFsdWVzLWV4cGVjdGVkLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2p3ay1pbXBvcnQtdXNlLXZh
bHVlcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvcmVzb3Vy
Y2VzOiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvcmVzb3VyY2VzL2Rp
c2FsbG93ZWQtaW4td29ya2VyLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRT
dWJ0bGUvcmVzb3VyY2VzL3JzYS1pbmRleGVkZGItbm9uLWV4cG9ydGFibGUuanM6IFJlbW92ZWQu
CisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9yZXNvdXJjZXMvcnNhLWluZGV4ZWRkYi5q
czogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL3JzYS1leHBvcnQtZ2Vu
ZXJhdGVkLWtleXMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJr
aXRTdWJ0bGUvcnNhLWV4cG9ydC1nZW5lcmF0ZWQta2V5cy5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWV4cG9ydC1rZXktZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWV4cG9ydC1rZXkuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL3JzYS1leHBvcnQtcHJpdmF0
ZS1rZXktZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0
bGUvcnNhLWV4cG9ydC1wcml2YXRlLWtleS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0
by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4ZWRkYi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL3JzYS1p
bmRleGVkZGItbm9uLWV4cG9ydGFibGUtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisg
ICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxl
LXByaXZhdGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL3Jz
YS1pbmRleGVkZGItbm9uLWV4cG9ydGFibGUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlw
dG8vd2Via2l0U3VidGxlL3JzYS1pbmRleGVkZGItcHJpdmF0ZS1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLXByaXZhdGUu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL3JzYS1pbmRleGVk
ZGIuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL3JzYS1vYWVw
LWdlbmVyYXRlLW5vbi1leHRyYWN0YWJsZS1rZXktZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAtZ2VuZXJhdGUtbm9uLWV4dHJhY3Rh
YmxlLWtleS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvcnNh
LW9hZXAta2V5LW1hbmlwdWxhdGlvbi1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
Y3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Etb2FlcC1rZXktbWFuaXB1bGF0aW9uLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Etb2FlcC1wbGFpbnRleHQtbGVu
Z3RoLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxl
L3JzYS1vYWVwLXBsYWludGV4dC1sZW5ndGguaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlw
dG8vd2Via2l0U3VidGxlL3JzYS1vYWVwLXdyYXAtdW53cmFwLWFlcy1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Etb2FlcC13cmFwLXVud3Jh
cC1hZXMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL3JzYS1w
b3N0TWVzc2FnZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtp
dFN1YnRsZS9yc2EtcG9zdE1lc3NhZ2UuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8v
d2Via2l0U3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtZGVjcnlwdC1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Flcy1wa2NzMS12MV81LWRlY3J5
cHQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL3JzYWVzLXBr
Y3MxLXYxXzUtd3JhcC11bndyYXAtYWVzLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBjcnlwdG8vd2Via2l0U3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtd3JhcC11bndyYXAtYWVzLmh0
bWw6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEt
djFfNS1nZW5lcmF0ZS1rZXktZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0
by93ZWJraXRTdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtZ2VuZXJhdGUta2V5LXdpdGgtbGVhZGlu
Zy16ZXJvZXMtaW4tZXhwb25lbnQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGNy
eXB0by93ZWJraXRTdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtZ2VuZXJhdGUta2V5LXdpdGgtbGVh
ZGluZy16ZXJvZXMtaW4tZXhwb25lbnQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8v
d2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWdlbmVyYXRlLWtleS5odG1sOiBSZW1vdmVk
LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtaW1wb3J0
LWp3ay1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRs
ZS9yc2Fzc2EtcGtjczEtdjFfNS1pbXBvcnQtandrLXNtYWxsLWtleS1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1p
bXBvcnQtandrLXNtYWxsLWtleS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJr
aXRTdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtaW1wb3J0LWp3ay5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtc2lnbi12ZXJpZnkt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvcnNh
c3NhLXBrY3MxLXYxXzUtc2lnbi12ZXJpZnkuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlw
dG8vd2Via2l0U3VidGxlL3NoYS0xLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBj
cnlwdG8vd2Via2l0U3VidGxlL3NoYS0xLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRv
L3dlYmtpdFN1YnRsZS9zaGEtMjI0LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBj
cnlwdG8vd2Via2l0U3VidGxlL3NoYS0yMjQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlw
dG8vd2Via2l0U3VidGxlL3NoYS0yNTYtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAq
IGNyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTI1Ni5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGNy
eXB0by93ZWJraXRTdWJ0bGUvc2hhLTM4NC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAg
ICogY3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtMzg0Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
Y3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtNTEyLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL3NoYS01MTIuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBjcnlwdG8vd2Via2l0U3VidGxlL3VuaW1wbGVtZW50ZWQtdW53cmFwLWNyYXNoLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL3VuaW1wbGVtZW50
ZWQtdW53cmFwLWNyYXNoLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1
YnRsZS91bndyYXBLZXktY2hlY2stdXNhZ2UtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvdW53cmFwS2V5LWNoZWNrLXVzYWdlLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS93cmFwS2V5LWNoZWNrLXVzYWdlLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL3dyYXBL
ZXktY2hlY2stdXNhZ2UuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cv
cHJvcGVydHktYWNjZXNzLW9uLWNhY2hlZC13aW5kb3ctYWZ0ZXItZnJhbWUtcmVtb3ZlZC1leHBl
Y3RlZC50eHQ6CisKIDIwMTctMDgtMTggIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5j
b20+CiAKICAgICAgICAgUmViYXNlbGluZSBqcy9kb20vZ2xvYmFsLWNvbnN0cnVjdG9ycy1hdHRy
aWJ1dGVzLmh0bWwgZm9yIEVsIENhcGl0YW4gV0syLgpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRv
L3dlYmtpdFN1YnRsZS9hZXMtY2JjLTE5Mi1lbmNyeXB0LWRlY3J5cHQtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy0xOTIt
ZW5jcnlwdC1kZWNyeXB0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjIwOTE5KQorKysgTGF5b3V0
VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLTE5Mi1lbmNyeXB0LWRlY3J5cHQtZXhw
ZWN0ZWQudHh0CShub25leGlzdGVudCkKQEAgLTEsMjAgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDIyOiBXZWJLaXRTdWJ0bGVDcnlwdG8gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBT
dWJ0bGVDcnlwdG8gaW5zdGVhZC4KLVRlc3QgQUVTLUNCQyBlbmNyeXB0IGFuZCBkZWNyeXB0IGZ1
bmN0aW9ucyB3aXRoIGEgMjU2IGJpdCBrZXkuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
LQotCi1JbXBvcnRpbmcgYSByYXcgQUVTIGtleSBmcm9tIHN0cmluZyBsaXRlcmFsLi4uCi1QQVNT
IGtleS50eXBlIGlzICdzZWNyZXQnCi1QQVNTIGtleS5leHRyYWN0YWJsZSBpcyB0cnVlCi1QQVNT
IGtleS5hbGdvcml0aG0ubmFtZSBpcyAnQUVTLUNCQycKLVBBU1Mga2V5LmFsZ29yaXRobS5sZW5n
dGggaXMgMTkyCi1QQVNTIGtleS51c2FnZXMgaXMgWydkZWNyeXB0JywgJ2VuY3J5cHQnXQotVXNp
bmcgdGhlIGtleSB0byBlbmNyeXB0IHBsYWludGV4dC4uLgotUEFTUyBieXRlc1RvSGV4U3RyaW5n
KG5ldyBVaW50OEFycmF5KGVuY3J5cHRpb25SZXN1bHQpKSBpcyAnNGYwMjFkYjI0M2JjNjMzZDcx
NzgxODNhOWZhMDcxZThiNGQ5YWRhOWFkN2RlZGY0ZTVlNzM4NzYzZjY5MTQ1YTU3MWIyNDIwMTJm
YjdhZTA3ZmE5YmFhYzNkZjEwMmUwMDhiMGUyNzk4ODU5ODg4MWQ5MjBhOWU2NGY1NjE1Y2Q2MTJj
Y2Q3OTIyNGIzNTA5MzVkNDVkZDZhOThmODE3NicKLURlY3J5cHRpbmcgaXQgYmFjay4uLgotUEFT
UyBuZXcgVWludDhBcnJheShkZWNyeXB0aW9uUmVzdWx0KSBpcyBwbGFpbnRleHQKLVBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRU
ZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtMTkyLWVuY3J5cHQtZGVjcnlwdC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy0x
OTItZW5jcnlwdC1kZWNyeXB0Lmh0bWwJKHJldmlzaW9uIDIyMDkxOSkKKysrIExheW91dFRlc3Rz
L2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy0xOTItZW5jcnlwdC1kZWNyeXB0Lmh0bWwJKG5v
bmV4aXN0ZW50KQpAQCAtMSw0OCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhl
YWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IEFFUy1DQkMgZW5jcnlwdCBhbmQg
ZGVjcnlwdCBmdW5jdGlvbnMgd2l0aCBhIDI1NiBiaXQga2V5LiIpOwotCi1qc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKLQotdmFyIGtleURhdGEgPSBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjhlNzNiMGY3
ZGEwZTY0NTJjODEwZjMyYjgwOTA3OWU1NjJmOGVhZDI1MjJjNmI3YiIpOwotdmFyIGl2ID0gaGV4
U3RyaW5nVG9VaW50OEFycmF5KCIwMDAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZiIpOwot
dmFyIHBsYWludGV4dCA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiNmJjMWJlZTIyZTQwOWY5NmU5
M2Q3ZTExNzM5MzE3MmFhZTJkOGE1NzFlMDNhYzljOWViNzZmYWM0NWFmOGU1MTMwYzgxYzQ2YTM1
Y2U0MTFlNWZiYzExOTFhMGE1MmVmZjY5ZjI0NDVkZjRmOWIxN2FkMmI0MTdiZTY2YzM3MTAiKTsK
LXZhciBleHRyYWN0YWJsZSA9IHRydWU7Ci0KLWRlYnVnKCJJbXBvcnRpbmcgYSByYXcgQUVTIGtl
eSBmcm9tIHN0cmluZyBsaXRlcmFsLi4uIik7Ci1jcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtl
eSgicmF3Iiwga2V5RGF0YSwgImFlcy1jYmMiLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRl
Y3J5cHQiXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBrZXkgPSByZXN1bHQ7Ci0gICAg
c2hvdWxkQmUoImtleS50eXBlIiwgIidzZWNyZXQnIik7Ci0gICAgc2hvdWxkQmUoImtleS5leHRy
YWN0YWJsZSIsICJ0cnVlIik7Ci0gICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubmFtZSIsICIn
QUVTLUNCQyciKTsKLSAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5sZW5ndGgiLCAiMTkyIik7
Ci0gICAgc2hvdWxkQmUoImtleS51c2FnZXMiLCAiWydkZWNyeXB0JywgJ2VuY3J5cHQnXSIpOwot
Ci0gICAgZGVidWcoIlVzaW5nIHRoZSBrZXkgdG8gZW5jcnlwdCBwbGFpbnRleHQuLi4iKTsKLSAg
ICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS5lbmNyeXB0KHtuYW1lOiAiYWVzLWNiYyIsIGl2
OiBpdn0sIGtleSwgcGxhaW50ZXh0KTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAg
ZW5jcnlwdGlvblJlc3VsdCA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmlu
ZyhuZXcgVWludDhBcnJheShlbmNyeXB0aW9uUmVzdWx0KSkiLCAiJzRmMDIxZGIyNDNiYzYzM2Q3
MTc4MTgzYTlmYTA3MWU4YjRkOWFkYTlhZDdkZWRmNGU1ZTczODc2M2Y2OTE0NWE1NzFiMjQyMDEy
ZmI3YWUwN2ZhOWJhYWMzZGYxMDJlMDA4YjBlMjc5ODg1OTg4ODFkOTIwYTllNjRmNTYxNWNkNjEy
Y2NkNzkyMjRiMzUwOTM1ZDQ1ZGQ2YTk4ZjgxNzYnIik7Ci0KLSAgICBkZWJ1ZygiRGVjcnlwdGlu
ZyBpdCBiYWNrLi4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUuZGVjcnlwdCh7
bmFtZTogImFlcy1jYmMiLCBpdjogaXZ9LCBrZXksIHJlc3VsdCk7Ci19KS50aGVuKGZ1bmN0aW9u
KHJlc3VsdCkgewotICAgIGRlY3J5cHRpb25SZXN1bHQgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUo
Im5ldyBVaW50OEFycmF5KGRlY3J5cHRpb25SZXN1bHQpIiwgInBsYWludGV4dCIpOwotCi0gICAg
ZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtMjU2LWVuY3J5cHQtZGVj
cnlwdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtp
dFN1YnRsZS9hZXMtY2JjLTI1Ni1lbmNyeXB0LWRlY3J5cHQtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAyMjA5MTkpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtMjU2
LWVuY3J5cHQtZGVjcnlwdC1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSwyMCArMCww
IEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjI6IFdlYktpdFN1YnRsZUNyeXB0byBpcyBkZXBy
ZWNhdGVkLiBQbGVhc2UgdXNlIFN1YnRsZUNyeXB0byBpbnN0ZWFkLgotVGVzdCBBRVMtQ0JDIGVu
Y3J5cHQgYW5kIGRlY3J5cHQgZnVuY3Rpb25zIHdpdGggYSAyNTYgYml0IGtleS4KLQotT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLUltcG9ydGluZyBhIHJhdyBBRVMga2V5IGZyb20gc3Ry
aW5nIGxpdGVyYWwuLi4KLVBBU1Mga2V5LnR5cGUgaXMgJ3NlY3JldCcKLVBBU1Mga2V5LmV4dHJh
Y3RhYmxlIGlzIHRydWUKLVBBU1Mga2V5LmFsZ29yaXRobS5uYW1lIGlzICdBRVMtQ0JDJwotUEFT
UyBrZXkuYWxnb3JpdGhtLmxlbmd0aCBpcyAyNTYKLVBBU1Mga2V5LnVzYWdlcyBpcyBbJ2RlY3J5
cHQnLCAnZW5jcnlwdCddCi1Vc2luZyB0aGUga2V5IHRvIGVuY3J5cHQgcGxhaW50ZXh0Li4uCi1Q
QVNTIGJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZW5jcnlwdGlvblJlc3VsdCkpIGlz
ICdmNThjNGMwNGQ2ZTVmMWJhNzc5ZWFiZmI1ZjdiZmJkNjljZmM0ZTk2N2VkYjgwOGQ2NzlmNzc3
YmM2NzAyYzdkMzlmMjMzNjlhOWQ5YmFjZmE1MzBlMjYzMDQyMzE0NjFiMmViMDVlMmMzOWJlOWZj
ZGE2YzE5MDc4YzZhOWQxYjNmNDYxNzk2ZDZiMGQ2YjJlMGMyYTcyYjRkODBlNjQ0JwotRGVjcnlw
dGluZyBpdCBiYWNrLi4uCi1QQVNTIG5ldyBVaW50OEFycmF5KGRlY3J5cHRpb25SZXN1bHQpIGlz
IHBsYWludGV4dAotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBM
RVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy0yNTYt
ZW5jcnlwdC1kZWNyeXB0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dl
YmtpdFN1YnRsZS9hZXMtY2JjLTI1Ni1lbmNyeXB0LWRlY3J5cHQuaHRtbAkocmV2aXNpb24gMjIw
OTE5KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLTI1Ni1lbmNy
eXB0LWRlY3J5cHQuaHRtbAkobm9uZXhpc3RlbnQpCkBAIC0xLDQ4ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9jb21tb24u
anMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
LTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3Qg
QUVTLUNCQyBlbmNyeXB0IGFuZCBkZWNyeXB0IGZ1bmN0aW9ucyB3aXRoIGEgMjU2IGJpdCBrZXku
Iik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi12YXIga2V5RGF0YSA9IGhleFN0cmluZ1Rv
VWludDhBcnJheSgiNjAzZGViMTAxNWNhNzFiZTJiNzNhZWYwODU3ZDc3ODExZjM1MmMwNzNiNjEw
OGQ3MmQ5ODEwYTMwOTE0ZGZmNCIpOwotdmFyIGl2ID0gaGV4U3RyaW5nVG9VaW50OEFycmF5KCIw
MDAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZiIpOwotdmFyIHBsYWludGV4dCA9IGhleFN0
cmluZ1RvVWludDhBcnJheSgiNmJjMWJlZTIyZTQwOWY5NmU5M2Q3ZTExNzM5MzE3MmFhZTJkOGE1
NzFlMDNhYzljOWViNzZmYWM0NWFmOGU1MTMwYzgxYzQ2YTM1Y2U0MTFlNWZiYzExOTFhMGE1MmVm
ZjY5ZjI0NDVkZjRmOWIxN2FkMmI0MTdiZTY2YzM3MTAiKTsKLXZhciBleHRyYWN0YWJsZSA9IHRy
dWU7Ci0KLWRlYnVnKCJJbXBvcnRpbmcgYSByYXcgQUVTIGtleSBmcm9tIHN0cmluZyBsaXRlcmFs
Li4uIik7Ci1jcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgicmF3Iiwga2V5RGF0YSwgImFl
cy1jYmMiLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiXSkudGhlbihmdW5jdGlv
bihyZXN1bHQpIHsKLSAgICBrZXkgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImtleS50eXBlIiwg
IidzZWNyZXQnIik7Ci0gICAgc2hvdWxkQmUoImtleS5leHRyYWN0YWJsZSIsICJ0cnVlIik7Ci0g
ICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubmFtZSIsICInQUVTLUNCQyciKTsKLSAgICBzaG91
bGRCZSgia2V5LmFsZ29yaXRobS5sZW5ndGgiLCAiMjU2Iik7Ci0gICAgc2hvdWxkQmUoImtleS51
c2FnZXMiLCAiWydkZWNyeXB0JywgJ2VuY3J5cHQnXSIpOwotCi0gICAgZGVidWcoIlVzaW5nIHRo
ZSBrZXkgdG8gZW5jcnlwdCBwbGFpbnRleHQuLi4iKTsKLSAgICByZXR1cm4gY3J5cHRvLndlYmtp
dFN1YnRsZS5lbmNyeXB0KHtuYW1lOiAiYWVzLWNiYyIsIGl2OiBpdn0sIGtleSwgcGxhaW50ZXh0
KTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgZW5jcnlwdGlvblJlc3VsdCA9IHJl
c3VsdDsKLSAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShlbmNy
eXB0aW9uUmVzdWx0KSkiLCAiJ2Y1OGM0YzA0ZDZlNWYxYmE3NzllYWJmYjVmN2JmYmQ2OWNmYzRl
OTY3ZWRiODA4ZDY3OWY3NzdiYzY3MDJjN2QzOWYyMzM2OWE5ZDliYWNmYTUzMGUyNjMwNDIzMTQ2
MWIyZWIwNWUyYzM5YmU5ZmNkYTZjMTkwNzhjNmE5ZDFiM2Y0NjE3OTZkNmIwZDZiMmUwYzJhNzJi
NGQ4MGU2NDQnIik7Ci0KLSAgICBkZWJ1ZygiRGVjcnlwdGluZyBpdCBiYWNrLi4uIik7Ci0gICAg
cmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUuZGVjcnlwdCh7bmFtZTogImFlcy1jYmMiLCBpdjog
aXZ9LCBrZXksIHJlc3VsdCk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGRlY3J5
cHRpb25SZXN1bHQgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoIm5ldyBVaW50OEFycmF5KGRlY3J5
cHRpb25SZXN1bHQpIiwgInBsYWludGV4dCIpOwotCi0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsK
LTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8v
d2Via2l0U3VidGxlL2Flcy1jYmMtZW5jcnlwdC1kZWNyeXB0LWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtZW5jcnlwdC1k
ZWNyeXB0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjIwOTE5KQorKysgTGF5b3V0VGVzdHMvY3J5
cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWVuY3J5cHQtZGVjcnlwdC1leHBlY3RlZC50eHQJKG5v
bmV4aXN0ZW50KQpAQCAtMSwyNSArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjI6IFdl
YktpdFN1YnRsZUNyeXB0byBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIFN1YnRsZUNyeXB0byBp
bnN0ZWFkLgotVGVzdCBBRVMtQ0JDIGVuY3J5cHQgYW5kIGRlY3J5cHQgZnVuY3Rpb25zLgotCi1P
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotSW1wb3J0aW5nIGEgcmF3IEFFUyBrZXkgZnJv
bSBzdHJpbmcgbGl0ZXJhbC4uLgotUEFTUyBrZXkudHlwZSBpcyAnc2VjcmV0JwotUEFTUyBrZXku
ZXh0cmFjdGFibGUgaXMgdHJ1ZQotUEFTUyBrZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ0FFUy1DQkMn
Ci1QQVNTIGtleS5hbGdvcml0aG0ubGVuZ3RoIGlzIDEyOAotUEFTUyBrZXkudXNhZ2VzIGlzIFsn
ZGVjcnlwdCcsICdlbmNyeXB0J10KLVVzaW5nIHRoZSBrZXkgdG8gZW5jcnlwdCBwbGFpbnRleHQu
Li4KLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShlbmNyeXB0aW9uUmVzdWx0
KSkgaXMgJzc2NDlhYmFjODExOWIyNDZjZWU5OGU5YjEyZTkxOTdkNTA4NmNiOWI1MDcyMTllZTk1
ZGIxMTNhOTE3Njc4YjI3M2JlZDZiOGUzYzE3NDNiNzExNmU2OWUyMjIyOTUxNjNmZjFjYWExNjgx
ZmFjMDkxMjBlY2EzMDc1ODZlMWE3OGNiODI4MDcyMzBlMTMyMWQzZmFlMDBkMThjYzIwMTInCi1E
ZWNyeXB0aW5nIGl0IGJhY2suLi4KLVBBU1MgbmV3IFVpbnQ4QXJyYXkoZGVjcnlwdGlvblJlc3Vs
dCkgaXMgcGxhaW50ZXh0Ci1UZXN0aW5nIGluaXRpYWxpemF0aW9uIHZlY3RvciBiaW5kaW5ncy4u
LgotUEFTUyBjcnlwdG8ud2Via2l0U3VidGxlLmVuY3J5cHQoe25hbWU6ICdBRVMtQ0JDJywgaXY6
IG51bGx9LCBrZXksIHBsYWludGV4dCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogT25seSBB
cnJheUJ1ZmZlciBhbmQgQXJyYXlCdWZmZXJWaWV3IG9iamVjdHMgY2FuIGJlIHBhc3NlZCBhcyBD
cnlwdG9PcGVyYXRpb25EYXRhLgotUEFTUyBjcnlwdG8ud2Via2l0U3VidGxlLmVuY3J5cHQoe25h
bWU6ICdBRVMtQ0JDJ30sIGtleSwgcGxhaW50ZXh0KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBPbmx5IEFycmF5QnVmZmVyIGFuZCBBcnJheUJ1ZmZlclZpZXcgb2JqZWN0cyBjYW4gYmUgcGFz
c2VkIGFzIENyeXB0b09wZXJhdGlvbkRhdGEuCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUuZW5j
cnlwdCh7bmFtZTogJ0FFUy1DQkMnLCBpdjogM30sIGtleSwgcGxhaW50ZXh0KSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBPbmx5IEFycmF5QnVmZmVyIGFuZCBBcnJheUJ1ZmZlclZpZXcgb2Jq
ZWN0cyBjYW4gYmUgcGFzc2VkIGFzIENyeXB0b09wZXJhdGlvbkRhdGEuCi1QQVNTIGNyeXB0by53
ZWJraXRTdWJ0bGUuZW5jcnlwdCh7bmFtZTogJ0FFUy1DQkMnLCBpdjogbmV3IFVpbnQ4QXJyYXko
WzBdKX0sIGtleSwgcGxhaW50ZXh0KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEFFUy1DQkMgaW5p
dGlhbGl6YXRpb24gZGF0YSBtdXN0IGJlIDE2IGJ5dGVzLgotUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93
ZWJraXRTdWJ0bGUvYWVzLWNiYy1lbmNyeXB0LWRlY3J5cHQtd2l0aC1wYWRkaW5nLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1j
YmMtZW5jcnlwdC1kZWNyeXB0LXdpdGgtcGFkZGluZy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIy
MDkxOSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy1lbmNyeXB0
LWRlY3J5cHQtd2l0aC1wYWRkaW5nLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCkBAIC0xLDIw
ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyMjogV2ViS2l0U3VidGxlQ3J5cHRvIGlz
IGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgU3VidGxlQ3J5cHRvIGluc3RlYWQuCi1UZXN0IEFFUy1D
QkMgZW5jcnlwdCBhbmQgZGVjcnlwdCBmdW5jdGlvbnMgb24gYSBwbGFpbnRleHQgdGhhdCBpcyBu
b3QgYSBtdWx0aXBsZSBvZiBibG9jayBzaXplIGluIGxlbmd0aC4KLQotT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgotCi0KLUltcG9ydGluZyBhIHJhdyBBRVMga2V5IGZyb20gc3RyaW5nIGxpdGVy
YWwuLi4KLVBBU1Mga2V5LnR5cGUgaXMgJ3NlY3JldCcKLVBBU1Mga2V5LmV4dHJhY3RhYmxlIGlz
IHRydWUKLVBBU1Mga2V5LmFsZ29yaXRobS5uYW1lIGlzICdBRVMtQ0JDJwotUEFTUyBrZXkuYWxn
b3JpdGhtLmxlbmd0aCBpcyAxMjgKLVBBU1Mga2V5LnVzYWdlcyBpcyBbJ2RlY3J5cHQnLCAnZW5j
cnlwdCddCi1Vc2luZyB0aGUga2V5IHRvIGVuY3J5cHQgcGxhaW50ZXh0Li4uCi1QQVNTIGJ5dGVz
VG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoY3lwaGVydGV4dCkpIGlzICc2MzAxOTljNWYyMDJj
YzcxNjdiYjg0YzZjNzJiMzQ5ZCcKLURlY3J5cHRpbmcgaXQgYmFjay4uLgotUEFTUyBuZXcgVWlu
dDhBcnJheShkZWNyeXB0aW9uUmVzdWx0KSBpcyBwbGFpbnRleHQKLVBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9jcnlw
dG8vd2Via2l0U3VidGxlL2Flcy1jYmMtZW5jcnlwdC1kZWNyeXB0LXdpdGgtcGFkZGluZy5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy1l
bmNyeXB0LWRlY3J5cHQtd2l0aC1wYWRkaW5nLmh0bWwJKHJldmlzaW9uIDIyMDkxOSkKKysrIExh
eW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy1lbmNyeXB0LWRlY3J5cHQtd2l0
aC1wYWRkaW5nLmh0bWwJKG5vbmV4aXN0ZW50KQpAQCAtMSw0NyArMCwwIEBACi08IURPQ1RZUEUg
aHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvY29tbW9uLmpz
Ij48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IEFF
Uy1DQkMgZW5jcnlwdCBhbmQgZGVjcnlwdCBmdW5jdGlvbnMgb24gYSBwbGFpbnRleHQgdGhhdCBp
cyBub3QgYSBtdWx0aXBsZSBvZiBibG9jayBzaXplIGluIGxlbmd0aC4iKTsKLQotanNUZXN0SXNB
c3luYyA9IHRydWU7Ci0KLXZhciBrZXlEYXRhID0gaGV4U3RyaW5nVG9VaW50OEFycmF5KCIyYjdl
MTUxNjI4YWVkMmE2YWJmNzE1ODgwOWNmNGYzYyIpOwotdmFyIGl2ID0gaGV4U3RyaW5nVG9VaW50
OEFycmF5KCIwMDAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZiIpOwotdmFyIHBsYWludGV4
dCA9IGFzY2lpVG9VaW50OEFycmF5KCJ0ZXN0Iik7Ci12YXIgZXh0cmFjdGFibGUgPSB0cnVlOwot
Ci1kZWJ1ZygiSW1wb3J0aW5nIGEgcmF3IEFFUyBrZXkgZnJvbSBzdHJpbmcgbGl0ZXJhbC4uLiIp
OwotY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIGtleURhdGEsICJhZXMtY2Jj
IiwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0Il0pLnRoZW4oZnVuY3Rpb24ocmVz
dWx0KSB7Ci0gICAga2V5ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJrZXkudHlwZSIsICInc2Vj
cmV0JyIpOwotICAgIHNob3VsZEJlKCJrZXkuZXh0cmFjdGFibGUiLCAidHJ1ZSIpOwotICAgIHNo
b3VsZEJlKCJrZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0FFUy1DQkMnIik7Ci0gICAgc2hvdWxkQmUo
ImtleS5hbGdvcml0aG0ubGVuZ3RoIiwgIjEyOCIpOwotICAgIHNob3VsZEJlKCJrZXkudXNhZ2Vz
IiwgIlsnZGVjcnlwdCcsICdlbmNyeXB0J10iKTsKLQotICAgIGRlYnVnKCJVc2luZyB0aGUga2V5
IHRvIGVuY3J5cHQgcGxhaW50ZXh0Li4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0
bGUuZW5jcnlwdCh7bmFtZTogImFlcy1jYmMiLCBpdjogaXZ9LCBrZXksIHBsYWludGV4dCk7Ci19
KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGN5cGhlcnRleHQgPSByZXN1bHQ7Ci0gICAg
c2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoY3lwaGVydGV4dCkpIiwg
Iic2MzAxOTljNWYyMDJjYzcxNjdiYjg0YzZjNzJiMzQ5ZCciKTsKLQotICAgIGRlYnVnKCJEZWNy
eXB0aW5nIGl0IGJhY2suLi4iKTsKLSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS5kZWNy
eXB0KHtuYW1lOiAiYWVzLWNiYyIsIGl2OiBpdn0sIGtleSwgcmVzdWx0KTsKLX0pLnRoZW4oZnVu
Y3Rpb24ocmVzdWx0KSB7Ci0gICAgZGVjcnlwdGlvblJlc3VsdCA9IHJlc3VsdDsKLSAgICBzaG91
bGRCZSgibmV3IFVpbnQ4QXJyYXkoZGVjcnlwdGlvblJlc3VsdCkiLCAicGxhaW50ZXh0Iik7Ci0g
ICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtZW5jcnlwdC1kZWNy
eXB0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9h
ZXMtY2JjLWVuY3J5cHQtZGVjcnlwdC5odG1sCShyZXZpc2lvbiAyMjA5MTkpCisrKyBMYXlvdXRU
ZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtZW5jcnlwdC1kZWNyeXB0Lmh0bWwJKG5v
bmV4aXN0ZW50KQpAQCAtMSw1NCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhl
YWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IEFFUy1DQkMgZW5jcnlwdCBhbmQg
ZGVjcnlwdCBmdW5jdGlvbnMuIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi12YXIga2V5
RGF0YSA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiMmI3ZTE1MTYyOGFlZDJhNmFiZjcxNTg4MDlj
ZjRmM2MiKTsKLXZhciBpdiA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiMDAwMTAyMDMwNDA1MDYw
NzA4MDkwYTBiMGMwZDBlMGYiKTsKLXZhciBwbGFpbnRleHQgPSBoZXhTdHJpbmdUb1VpbnQ4QXJy
YXkoIjZiYzFiZWUyMmU0MDlmOTZlOTNkN2UxMTczOTMxNzJhYWUyZDhhNTcxZTAzYWM5YzllYjc2
ZmFjNDVhZjhlNTEzMGM4MWM0NmEzNWNlNDExZTVmYmMxMTkxYTBhNTJlZmY2OWYyNDQ1ZGY0Zjli
MTdhZDJiNDE3YmU2NmMzNzEwIik7Ci12YXIgZXh0cmFjdGFibGUgPSB0cnVlOwotCi1kZWJ1Zygi
SW1wb3J0aW5nIGEgcmF3IEFFUyBrZXkgZnJvbSBzdHJpbmcgbGl0ZXJhbC4uLiIpOwotY3J5cHRv
LndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIGtleURhdGEsICJhZXMtY2JjIiwgZXh0cmFj
dGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0g
ICAga2V5ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJrZXkudHlwZSIsICInc2VjcmV0JyIpOwot
ICAgIHNob3VsZEJlKCJrZXkuZXh0cmFjdGFibGUiLCAidHJ1ZSIpOwotICAgIHNob3VsZEJlKCJr
ZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0FFUy1DQkMnIik7Ci0gICAgc2hvdWxkQmUoImtleS5hbGdv
cml0aG0ubGVuZ3RoIiwgIjEyOCIpOwotICAgIHNob3VsZEJlKCJrZXkudXNhZ2VzIiwgIlsnZGVj
cnlwdCcsICdlbmNyeXB0J10iKTsKLQotICAgIGRlYnVnKCJVc2luZyB0aGUga2V5IHRvIGVuY3J5
cHQgcGxhaW50ZXh0Li4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUuZW5jcnlw
dCh7bmFtZTogImFlcy1jYmMiLCBpdjogaXZ9LCBrZXksIHBsYWludGV4dCk7Ci19KS50aGVuKGZ1
bmN0aW9uKHJlc3VsdCkgewotICAgIGVuY3J5cHRpb25SZXN1bHQgPSByZXN1bHQ7Ci0gICAgc2hv
dWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZW5jcnlwdGlvblJlc3VsdCkp
IiwgIic3NjQ5YWJhYzgxMTliMjQ2Y2VlOThlOWIxMmU5MTk3ZDUwODZjYjliNTA3MjE5ZWU5NWRi
MTEzYTkxNzY3OGIyNzNiZWQ2YjhlM2MxNzQzYjcxMTZlNjllMjIyMjk1MTYzZmYxY2FhMTY4MWZh
YzA5MTIwZWNhMzA3NTg2ZTFhNzhjYjgyODA3MjMwZTEzMjFkM2ZhZTAwZDE4Y2MyMDEyJyIpOwot
Ci0gICAgZGVidWcoIkRlY3J5cHRpbmcgaXQgYmFjay4uLiIpOwotICAgIHJldHVybiBjcnlwdG8u
d2Via2l0U3VidGxlLmRlY3J5cHQoe25hbWU6ICJhZXMtY2JjIiwgaXY6IGl2fSwga2V5LCByZXN1
bHQpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBkZWNyeXB0aW9uUmVzdWx0ID0g
cmVzdWx0OwotICAgIHNob3VsZEJlKCJuZXcgVWludDhBcnJheShkZWNyeXB0aW9uUmVzdWx0KSIs
ICJwbGFpbnRleHQiKTsKLQotICAgIGRlYnVnKCJUZXN0aW5nIGluaXRpYWxpemF0aW9uIHZlY3Rv
ciBiaW5kaW5ncy4uLiIpOwotICAgIHNob3VsZFRocm93KCJjcnlwdG8ud2Via2l0U3VidGxlLmVu
Y3J5cHQoe25hbWU6ICdBRVMtQ0JDJywgaXY6IG51bGx9LCBrZXksIHBsYWludGV4dCkiKTsKLSAg
ICBzaG91bGRUaHJvdygiY3J5cHRvLndlYmtpdFN1YnRsZS5lbmNyeXB0KHtuYW1lOiAnQUVTLUNC
Qyd9LCBrZXksIHBsYWludGV4dCkiKTsKLSAgICBzaG91bGRUaHJvdygiY3J5cHRvLndlYmtpdFN1
YnRsZS5lbmNyeXB0KHtuYW1lOiAnQUVTLUNCQycsIGl2OiAzfSwga2V5LCBwbGFpbnRleHQpIik7
Ci0gICAgc2hvdWxkVGhyb3coImNyeXB0by53ZWJraXRTdWJ0bGUuZW5jcnlwdCh7bmFtZTogJ0FF
Uy1DQkMnLCBpdjogbmV3IFVpbnQ4QXJyYXkoWzBdKX0sIGtleSwgcGxhaW50ZXh0KSIpOwotCi0g
ICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtZ2VuZXJhdGUta2V5
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3Vi
dGxlL2Flcy1jYmMtZ2VuZXJhdGUta2V5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjIwOTE5KQor
KysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWdlbmVyYXRlLWtleS1l
eHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSwyMCArMCwwIEBACi1DT05TT0xFIE1FU1NB
R0U6IGxpbmUgNjE2OiBXZWJLaXRTdWJ0bGVDcnlwdG8gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVz
ZSBTdWJ0bGVDcnlwdG8gaW5zdGVhZC4KLVRlc3QgZ2VuZXJhdGluZyBhbiBBRVMga2V5IHVzaW5n
IEFFUy1DQkMgYWxnb3JpdGhtLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFT
UyBjcnlwdG8ud2Via2l0U3VidGxlLmdlbmVyYXRlS2V5KCJhZXMtY2JjIiwgZXh0cmFjdGFibGUs
IFsiZW5jcnlwdCIsICJkZWNyeXB0Il0pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUg
ZXJyb3IuCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUuZ2VuZXJhdGVLZXkoe25hbWU6ICJhZXMt
Y2JjIn0sIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCJdKSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBWYWx1ZSBOYU4gaXMgb3V0c2lkZSB0aGUgcmFuZ2UgWzAsIDY1NTM1XS4K
LVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogImFlcy1jYmMiLCBs
ZW5ndGg6IHVuZGVmaW5lZH0sIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCJdKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBWYWx1ZSBOYU4gaXMgb3V0c2lkZSB0aGUgcmFuZ2Ug
WzAsIDY1NTM1XS4KLVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTog
ImFlcy1jYmMiLCBsZW5ndGg6IHt9fSwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0
Il0pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFZhbHVlIE5hTiBpcyBvdXRzaWRlIHRoZSBy
YW5nZSBbMCwgNjU1MzVdLgotR2VuZXJhdGluZyBhIGtleS4uLgotUEFTUyBrZXkudHlwZSBpcyAn
c2VjcmV0JwotUEFTUyBrZXkuZXh0cmFjdGFibGUgaXMgdHJ1ZQotUEFTUyBrZXkuYWxnb3JpdGht
Lm5hbWUgaXMgJ0FFUy1DQkMnCi1QQVNTIGtleS5hbGdvcml0aG0ubGVuZ3RoIGlzIDEyOAotUEFT
UyBrZXkudXNhZ2VzIGlzIFsnZGVjcnlwdCcsICdlbmNyeXB0J10KLVBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9jcnlw
dG8vd2Via2l0U3VidGxlL2Flcy1jYmMtZ2VuZXJhdGUta2V5Lmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWdlbmVyYXRlLWtleS5odG1s
CShyZXZpc2lvbiAyMjA5MTkpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Fl
cy1jYmMtZ2VuZXJhdGUta2V5Lmh0bWwJKG5vbmV4aXN0ZW50KQpAQCAtMSwzOSArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMv
Y29tbW9uLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9u
Ij48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9u
KCJUZXN0IGdlbmVyYXRpbmcgYW4gQUVTIGtleSB1c2luZyBBRVMtQ0JDIGFsZ29yaXRobS4iKTsK
LQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBleHRyYWN0YWJsZSA9IHRydWU7Ci0KLXNo
b3VsZFRocm93KCdjcnlwdG8ud2Via2l0U3VidGxlLmdlbmVyYXRlS2V5KCJhZXMtY2JjIiwgZXh0
cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0Il0pJyk7Ci1zaG91bGRUaHJvdygnY3J5cHRv
LndlYmtpdFN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogImFlcy1jYmMifSwgZXh0cmFjdGFibGUs
IFsiZW5jcnlwdCIsICJkZWNyeXB0Il0pJyk7Ci1zaG91bGRUaHJvdygnY3J5cHRvLndlYmtpdFN1
YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogImFlcy1jYmMiLCBsZW5ndGg6IHVuZGVmaW5lZH0sIGV4
dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCJdKScpOwotc2hvdWxkVGhyb3coJ2NyeXB0
by53ZWJraXRTdWJ0bGUuZ2VuZXJhdGVLZXkoe25hbWU6ICJhZXMtY2JjIiwgbGVuZ3RoOiB7fX0s
IGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCJdKScpOwotCi1kZWJ1ZygiR2VuZXJh
dGluZyBhIGtleS4uLiIpOwotY3J5cHRvLndlYmtpdFN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTog
ImFlcy1jYmMiLCBsZW5ndGg6IDEyOH0sIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlw
dCJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGtleSA9IHJlc3VsdDsKLQotICAgIHNo
b3VsZEJlKCJrZXkudHlwZSIsICInc2VjcmV0JyIpOwotICAgIHNob3VsZEJlKCJrZXkuZXh0cmFj
dGFibGUiLCAidHJ1ZSIpOwotICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0FF
Uy1DQkMnIik7Ci0gICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubGVuZ3RoIiwgIjEyOCIpOwot
ICAgIHNob3VsZEJlKCJrZXkudXNhZ2VzIiwgIlsnZGVjcnlwdCcsICdlbmNyeXB0J10iKTsKLQot
ICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWltcG9ydC1qd2st
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0
bGUvYWVzLWNiYy1pbXBvcnQtandrLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjIwOTE5KQorKysg
TGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWltcG9ydC1qd2stZXhwZWN0
ZWQudHh0CShub25leGlzdGVudCkKQEAgLTEsMjAgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDMyOiBXZWJLaXRTdWJ0bGVDcnlwdG8gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBTdWJ0
bGVDcnlwdG8gaW5zdGVhZC4KLVRlc3QgaW1wb3J0aW5nIGEgSldLIGtleSBmb3IgQUVTLUNCQy4K
LQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLUltcG9ydGluZyBhIGtleS4uLgotCi1Q
QVNTIGtleS50eXBlIGlzICdzZWNyZXQnCi1QQVNTIGtleS5leHRyYWN0YWJsZSBpcyBmYWxzZQot
UEFTUyBrZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ0FFUy1DQkMnCi1QQVNTIGtleS5hbGdvcml0aG0u
bGVuZ3RoIGlzIDE5MgotUEFTUyBrZXkudXNhZ2VzIGlzIFsiZW5jcnlwdCJdCi0KLVVzaW5nIHRo
ZSBrZXkgdG8gZW5jcnlwdCBwbGFpbnRleHQuLi4KLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhuZXcg
VWludDhBcnJheShlbmNyeXB0aW9uUmVzdWx0KSkgaXMgJzRmMDIxZGIyNDNiYzYzM2Q3MTc4MTgz
YTlmYTA3MWU4YjRkOWFkYTlhZDdkZWRmNGU1ZTczODc2M2Y2OTE0NWE1NzFiMjQyMDEyZmI3YWUw
N2ZhOWJhYWMzZGYxMDJlMDA4YjBlMjc5ODg1OTg4ODFkOTIwYTllNjRmNTYxNWNkNjEyY2NkNzky
MjRiMzUwOTM1ZDQ1ZGQ2YTk4ZjgxNzYnCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
Ci0KLVRFU1QgQ09NUExFVEUKLQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvY3J5
cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWltcG9ydC1qd2stZXhwZWN0ZWQudHh0Cl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRpdmUKXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpEZWxldGVkOiBzdm46bWltZS10eXBlCiMjIC0xICswLDAg
IyMKLXRleHQvcGxhaW4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogTGF5
b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWltcG9ydC1qd2suaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtaW1wb3J0
LWp3ay5odG1sCShyZXZpc2lvbiAyMjA5MTkpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL2Flcy1jYmMtaW1wb3J0LWp3ay5odG1sCShub25leGlzdGVudCkKQEAgLTEsNTIgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNj
cmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNj
cmlwdGlvbigiVGVzdCBpbXBvcnRpbmcgYSBKV0sga2V5IGZvciBBRVMtQ0JDLiIpOwotCi1qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKLQotdmFyIGl2ID0g
aGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMDAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZiIp
OwotdmFyIHBsYWludGV4dCA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiNmJjMWJlZTIyZTQwOWY5
NmU5M2Q3ZTExNzM5MzE3MmFhZTJkOGE1NzFlMDNhYzljOWViNzZmYWM0NWFmOGU1MTMwYzgxYzQ2
YTM1Y2U0MTFlNWZiYzExOTFhMGE1MmVmZjY5ZjI0NDVkZjRmOWIxN2FkMmI0MTdiZTY2YzM3MTAi
KTsKLQotdmFyIGp3a0tleSA9IHsKLSAgICAia3R5IjogIm9jdCIsCi0gICAgImFsZyI6ICJBMTky
Q0JDIiwKLSAgICAidXNlIjogImVuYyIsCi0gICAgImV4dCI6IHRydWUsCi0gICAgImsiOiAiam5P
dzk5b09aRkxJRVBNcmdKQjU1V0w0NnRKU0xHdDciCi19OwotCi12YXIgandrS2V5QXNBcnJheUJ1
ZmZlciA9IGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5KGp3a0tleSkpOwotCi1kZWJ1
ZygiSW1wb3J0aW5nIGEga2V5Li4uXG4iKTsKLWNyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0S2V5
KCJqd2siLCBqd2tLZXlBc0FycmF5QnVmZmVyLCBudWxsLCBmYWxzZSwgWyJlbmNyeXB0Il0pLnRo
ZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAga2V5ID0gcmVzdWx0OwotCi0gICAgc2hvdWxkQmUo
ImtleS50eXBlIiwgIidzZWNyZXQnIik7Ci0gICAgc2hvdWxkQmUoImtleS5leHRyYWN0YWJsZSIs
ICJmYWxzZSIpOwotICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0FFUy1DQkMn
Iik7Ci0gICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubGVuZ3RoIiwgIjE5MiIpOwotICAgIHNo
b3VsZEJlKCJrZXkudXNhZ2VzIiwgJ1siZW5jcnlwdCJdJyk7Ci0KLSAgICBkZWJ1ZygiXG5Vc2lu
ZyB0aGUga2V5IHRvIGVuY3J5cHQgcGxhaW50ZXh0Li4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by53
ZWJraXRTdWJ0bGUuZW5jcnlwdCh7bmFtZTogImFlcy1jYmMiLCBpdjogaXZ9LCBrZXksIHBsYWlu
dGV4dCk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGVuY3J5cHRpb25SZXN1bHQg
PSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXko
ZW5jcnlwdGlvblJlc3VsdCkpIiwgIic0ZjAyMWRiMjQzYmM2MzNkNzE3ODE4M2E5ZmEwNzFlOGI0
ZDlhZGE5YWQ3ZGVkZjRlNWU3Mzg3NjNmNjkxNDVhNTcxYjI0MjAxMmZiN2FlMDdmYTliYWFjM2Rm
MTAyZTAwOGIwZTI3OTg4NTk4ODgxZDkyMGE5ZTY0ZjU2MTVjZDYxMmNjZDc5MjI0YjM1MDkzNWQ0
NWRkNmE5OGY4MTc2JyIpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLQot
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgot
PC9ib2R5PgotPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvY3J5cHRv
L3dlYmtpdFN1YnRsZS9hZXMtY2JjLWltcG9ydC1qd2suaHRtbApfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6
IHN2bjptaW1lLXR5cGUKIyMgLTEgKzAsMCAjIwotdGV4dC9odG1sClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgcHJvcGVydHkKSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVz
LWNiYy1pbnZhbGlkLWxlbmd0aC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWludmFsaWQtbGVuZ3RoLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMjIwOTE5KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9h
ZXMtY2JjLWludmFsaWQtbGVuZ3RoLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCkBAIC0xLDE4
ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyMjogV2ViS2l0U3VidGxlQ3J5cHRvIGlz
IGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgU3VidGxlQ3J5cHRvIGluc3RlYWQuCi1UZXN0IGFuIHVu
c3VwcG9ydGVkIEFFUyBrZXkgbGVuZ3RoLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0K
LQotSW1wb3J0aW5nIGEgcmF3IEFFUyBrZXkgZnJvbSBzdHJpbmcgbGl0ZXJhbC4uLgotUEFTUyBr
ZXkudHlwZSBpcyAnc2VjcmV0JwotUEFTUyBrZXkuZXh0cmFjdGFibGUgaXMgdHJ1ZQotUEFTUyBr
ZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ0FFUy1DQkMnCi1QQVNTIGtleS5hbGdvcml0aG0ubGVuZ3Ro
IGlzIDE3NgotUEFTUyBrZXkudXNhZ2VzIGlzIFsnZGVjcnlwdCcsICdlbmNyeXB0J10KLVVzaW5n
IHRoZSBrZXkgdG8gZW5jcnlwdCBwbGFpbnRleHQuLi4KLUZhaWxlZCwgYXMgZXhwZWN0ZWQuIE5v
dGUgdGhhdCB0aGUgc3BlYyBkb2Vzbid0IGFwcGVhciB0byBjbGVhcmx5IGRlZmluZSB3aGljaCBz
dGVwIHNob3VsZCBmYWlsLgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNU
IENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNi
Yy1pbnZhbGlkLWxlbmd0aC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93
ZWJraXRTdWJ0bGUvYWVzLWNiYy1pbnZhbGlkLWxlbmd0aC5odG1sCShyZXZpc2lvbiAyMjA5MTkp
CisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtaW52YWxpZC1sZW5n
dGguaHRtbAkobm9uZXhpc3RlbnQpCkBAIC0xLDQxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgot
PGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9jb21tb24uanMiPjwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3QgYW4gdW5zdXBw
b3J0ZWQgQUVTIGtleSBsZW5ndGguIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi12YXIg
a2V5RGF0YSA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiOGU3M2IwZjdkYTBlNjQ1MmM4MTBmMzJi
ODA5MDc5ZTU2MmY4ZWFkMjUyMmMiKTsKLXZhciBpdiA9IGhleFN0cmluZ1RvVWludDhBcnJheSgi
MDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBlMGYiKTsKLXZhciBwbGFpbnRleHQgPSBoZXhT
dHJpbmdUb1VpbnQ4QXJyYXkoIjZiYzFiZWUyMmU0MDlmOTZlOTNkN2UxMTczOTMxNzJhYWUyZDhh
NTcxZTAzYWM5YzllYjc2ZmFjNDVhZjhlNTEzMGM4MWM0NmEzNWNlNDExZTVmYmMxMTkxYTBhNTJl
ZmY2OWYyNDQ1ZGY0ZjliMTdhZDJiNDE3YmU2NmMzNzEwIik7Ci12YXIgZXh0cmFjdGFibGUgPSB0
cnVlOwotCi1kZWJ1ZygiSW1wb3J0aW5nIGEgcmF3IEFFUyBrZXkgZnJvbSBzdHJpbmcgbGl0ZXJh
bC4uLiIpOwotY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIGtleURhdGEsICJh
ZXMtY2JjIiwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0Il0pLnRoZW4oZnVuY3Rp
b24ocmVzdWx0KSB7Ci0gICAga2V5ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJrZXkudHlwZSIs
ICInc2VjcmV0JyIpOwotICAgIHNob3VsZEJlKCJrZXkuZXh0cmFjdGFibGUiLCAidHJ1ZSIpOwot
ICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0FFUy1DQkMnIik7Ci0gICAgc2hv
dWxkQmUoImtleS5hbGdvcml0aG0ubGVuZ3RoIiwgIjE3NiIpOwotICAgIHNob3VsZEJlKCJrZXku
dXNhZ2VzIiwgIlsnZGVjcnlwdCcsICdlbmNyeXB0J10iKTsKLQotICAgIGRlYnVnKCJVc2luZyB0
aGUga2V5IHRvIGVuY3J5cHQgcGxhaW50ZXh0Li4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJr
aXRTdWJ0bGUuZW5jcnlwdCh7bmFtZTogImFlcy1jYmMiLCBpdjogaXZ9LCBrZXksIFtwbGFpbnRl
eHRdKTsKLX0pLnRoZW4odW5kZWZpbmVkLCBmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBkZWJ1Zygi
RmFpbGVkLCBhcyBleHBlY3RlZC4gTm90ZSB0aGF0IHRoZSBzcGVjIGRvZXNuJ3QgYXBwZWFyIHRv
IGNsZWFybHkgZGVmaW5lIHdoaWNoIHN0ZXAgc2hvdWxkIGZhaWwuIik7Ci0KLSAgICBmaW5pc2hK
U1Rlc3QoKTsKLX0pOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy11bndyYXAtZmFpbHVyZS1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMt
Y2JjLXVud3JhcC1mYWlsdXJlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjIwOTE5KQorKysgTGF5
b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLXVud3JhcC1mYWlsdXJlLWV4cGVj
dGVkLnR4dAkobm9uZXhpc3RlbnQpCkBAIC0xLDE0ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTog
bGluZSAyMzogV2ViS2l0U3VidGxlQ3J5cHRvIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgU3Vi
dGxlQ3J5cHRvIGluc3RlYWQuCi1UZXN0IHVud3JhcHBpbmcgYW4gUlNBIGtleSB3aXRoIEFFUy1D
QkMuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1JbXBvcnRpbmcgYW4gdW53cmFw
cGluZyBrZXkuLi4KLVBBU1MgdW53cmFwcGluZ0tleS5hbGdvcml0aG0ubmFtZSBpcyAnQUVTLUNC
QycKLVVud3JhcHBpbmcgYSBrZXkuLi4KLVBBU1MgUHJvbWlzZSByZWplY3RlZAotUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KClByb3BlcnR5IGNoYW5n
ZXMgb246IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy11bndyYXAtZmFp
bHVyZS1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0x
ICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkRlbGV0ZWQ6
IHN2bjptaW1lLXR5cGUKIyMgLTEgKzAsMCAjIwotdGV4dC9wbGFpbgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIHByb3BlcnR5CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Fl
cy1jYmMtdW53cmFwLWZhaWx1cmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlw
dG8vd2Via2l0U3VidGxlL2Flcy1jYmMtdW53cmFwLWZhaWx1cmUuaHRtbAkocmV2aXNpb24gMjIw
OTE5KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLXVud3JhcC1m
YWlsdXJlLmh0bWwJKG5vbmV4aXN0ZW50KQpAQCAtMSwzOCArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvY29tbW9uLmpzIj48
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IHVud3Jh
cHBpbmcgYW4gUlNBIGtleSB3aXRoIEFFUy1DQkMuIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVl
OwotCi12YXIgZXh0cmFjdGFibGUgPSB0cnVlOwotdmFyIG5vbkV4dHJhY3RhYmxlID0gZmFsc2U7
Ci0KLXZhciB1bndyYXBwaW5nS2V5T2N0ZXRzID0gaGV4U3RyaW5nVG9VaW50OEFycmF5KCIyYTAw
ZTBlNzc2ZTk0ZTRkYzg5YmY5NDdjZWJkZWJlMSIpOwotdmFyIHdyYXBwZWRLZXkgPSBoZXhTdHJp
bmdUb1VpbnQ4QXJyYXkoImI0OTBkZWRiM2FiYzNmZDU0NWUxNDY1MzhlNmNjM2NhIik7IC8vIEFu
IGVtcHR5IGVuY3J5cHRlZCBKU09OLgotCi1kZWJ1ZygiSW1wb3J0aW5nIGFuIHVud3JhcHBpbmcg
a2V5Li4uIik7Ci1jcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgicmF3IiwgdW53cmFwcGlu
Z0tleU9jdGV0cywgIkFFUy1DQkMiLCBub25FeHRyYWN0YWJsZSwgWyJ1bndyYXBLZXkiXSkudGhl
bihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICB1bndyYXBwaW5nS2V5ID0gcmVzdWx0OwotICAgIHNo
b3VsZEJlKCJ1bndyYXBwaW5nS2V5LmFsZ29yaXRobS5uYW1lIiwgIidBRVMtQ0JDJyIpOwotICAg
IHZhciB1bndyYXBBbGdvcml0aG0gPSB7bmFtZTogIkFFUy1DQkMiLCBpdjogaGV4U3RyaW5nVG9V
aW50OEFycmF5KCIwMDAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZiIpfTsKLSAgICBkZWJ1
ZygiVW53cmFwcGluZyBhIGtleS4uLiIpOwotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxl
LnVud3JhcEtleSgiandrIiwgd3JhcHBlZEtleSwgdW53cmFwcGluZ0tleSwgdW53cmFwQWxnb3Jp
dGhtLCBudWxsLCBleHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSIsICJlbmNyeXB0IiwgImRl
Y3J5cHQiLCAid3JhcCIsICJ1bndyYXAiXSk7Ci19KS50aGVuKHVuZGVmaW5lZCwgZnVuY3Rpb24o
cmVzdWx0KSB7Ci0gICAgdGVzdFBhc3NlZCgiUHJvbWlzZSByZWplY3RlZCIpOwotICAgIGZpbmlz
aEpTVGVzdCgpOwotfSk7Ci0KLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CgpQcm9wZXJ0
eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtdW53
cmFwLWZhaWx1cmUuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjptaW1lLXR5cGUKIyMgLTEg
KzAsMCAjIwotdGV4dC9odG1sClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6
IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy11bndyYXAtcnNhLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Fl
cy1jYmMtdW53cmFwLXJzYS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIyMDkxOSkKKysrIExheW91
dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy11bndyYXAtcnNhLWV4cGVjdGVkLnR4
dAkobm9uZXhpc3RlbnQpCkBAIC0xLDIxICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAz
MjogV2ViS2l0U3VidGxlQ3J5cHRvIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgU3VidGxlQ3J5
cHRvIGluc3RlYWQuCi1UZXN0IHVud3JhcHBpbmcgYW4gUlNBIGtleSB3aXRoIEFFUy1DQkMuCi0K
LU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1JbXBvcnRpbmcgYW4gdW53cmFwcGluZyBr
ZXkuLi4KLVBBU1MgdW53cmFwcGluZ0tleS5hbGdvcml0aG0ubmFtZSBpcyAnQUVTLUNCQycKLVVu
d3JhcHBpbmcgYSBrZXkuLi4KLVBBU1MgdW53cmFwcGVkS2V5LnRvU3RyaW5nKCkgaXMgJ1tvYmpl
Y3QgQ3J5cHRvS2V5XScKLVBBU1MgdW53cmFwcGVkS2V5LnR5cGUgaXMgJ3B1YmxpYycKLVBBU1Mg
dW53cmFwcGVkS2V5LnVzYWdlcyBpcyBbJ3NpZ24nLCd2ZXJpZnknXQotUEFTUyB1bndyYXBwZWRL
ZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ1JTQVNTQS1QS0NTMS12MV81JwotUEFTUyB1bndyYXBwZWRL
ZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGggaXMgMjA0OAotUEFTUyBCYXNlNjRVUkwuc3RyaW5n
aWZ5KHVud3JhcHBlZEtleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIGlzIHB1YmxpY0tleUpT
T04uZQotUEFTUyB1bndyYXBwZWRLZXkuYWxnb3JpdGhtLmhhc2gubmFtZSBpcyAnU0hBLTI1NicK
LVBBU1MgdW53cmFwcGVkS2V5LmV4dHJhY3RhYmxlIGlzIGZhbHNlCi1QQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQoKUHJvcGVydHkgY2hhbmdlcyBvbjog
TGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLXVud3JhcC1yc2EtZXhwZWN0
ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1u
YXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpEZWxldGVkOiBzdm46bWltZS10
eXBlCiMjIC0xICswLDAgIyMKLXRleHQvcGxhaW4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9w
ZXJ0eQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLXVud3Jh
cC1yc2EuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxl
L2Flcy1jYmMtdW53cmFwLXJzYS5odG1sCShyZXZpc2lvbiAyMjA5MTkpCisrKyBMYXlvdXRUZXN0
cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtdW53cmFwLXJzYS5odG1sCShub25leGlzdGVu
dCkKQEAgLTEsNTYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9k
eT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0K
LTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCB1bndyYXBwaW5nIGFuIFJTQSBrZXkgd2l0aCBB
RVMtQ0JDLiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIGV4dHJhY3RhYmxlID0g
dHJ1ZTsKLXZhciBub25FeHRyYWN0YWJsZSA9IGZhbHNlOwotCi12YXIgcHVibGljS2V5SlNPTiA9
IHsKLSAgICBrdHk6ICJSU0EiLAotICAgIGFsZzogIlJTMjU2IiwKLSAgICBuOiAicmNDVUN2N09j
MUhWYW0xREloQ3pxa25UaFdhd09wOFFMazhaaXkycDEwQnlqUUZDYWpvRml5dUFXbC1SMVdYWmFm
NHhpdExScmFjVDlhZ3B6SXpjLU1iTFNISUdnV1FHTzIxbEdpSW15NWZ0Wi1EOGJIQXFSejJ5MTVw
ekQ0YzRDRW91N1hTU0xEb1JuUjBRRzVNc0RoRDZzMmdWOW13SGtydGtDeHRNV2RCaS03N2FzOHdH
bWxOUmxkY09TZ1pETEs4VW5DU2dBMU9ndVo5ODliRnljOHRPT0VJYjB4VVNmUFN6M0xQU0NueVl6
NjhhRGptS1ZlTkgtaWc4NTdPU2N5V2JHeUV5M0JpdzY0cXVuM2p1VWxOV3NKM3puZ2tPZHRlWVd5
dHg1UXI0WEtOczZSLU15eXE3MktVcDAybUpEWmlpeWlnbHhNTF9pMy1fQ2VlY0N3IiwKLSAgICBl
OiAiQVFBQiIsCi0gICAgZXh0OiBmYWxzZSwKLSAgICB1c2U6ICJzaWciCi19OwotCi12YXIgdW53
cmFwcGluZ0tleU9jdGV0cyA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiMmEwMGUwZTc3NmU5NGU0
ZGM4OWJmOTQ3Y2ViZGViZTEiKTsKLXZhciB3cmFwcGVkS2V5ID0gaGV4U3RyaW5nVG9VaW50OEFy
cmF5KCIzNTExZjYwMjhkYjA0ZWE5N2U3Y2ZhZDNjNGNjNjA4MzdiY2VmZjI1Y2I2Yzg4MjkyZmJj
YjQ1NDc1NzBhZmRjMzJlNDAwM2ZlNGQ2NWYxZTdkZjYwZGMxZmRiM2RmMzZjM2Y1OGFiMjI4ZTMz
YWEzMTAwNTg1MmQ0NmQwYzJhZDEzMTg0MzVhMDcxYmJiNWJiYjA1NjUwZWE2M2Q1NTE2OThiMGMw
NDBkZDk1ZWQwZDM3OWI1ZTJlY2NiNTQ1YWU1NjIwYWNiODA1MTE3NGNkMmFkNjQ3MzI4YWQ5OWRj
ZDQ2MmZlYzQwNzQ4NzI0ZWIxZTY4ZjIwOWY3NzlmYWEyYzM1YjRkNGQxYjY2MDRhNzRlNjJhMTg0
NjI0OWVhNjE5Mjk1NGE1YWYxMGM3MWViZmVhNzk5NDgxNDI0NDFlZDMwN2U5ZjUyZTc5N2E1MWE4
MDA3YTZmODdiNTdjNTFmOWU3ZWVmNTRiN2U0YTFmODE4YmE2YWMyNWVlNTkzNWMyM2IzMjUzZDZk
OWQyMjIyNjJjNzljY2RiNzE0N2Q5YzA3NTI3YzIyZmU3YTRhYjkxYWYyMDQ3OWVkZjU5MzBiM2Mw
NTNjMGEwYjI3MDkyY2ZiNTMyMDM2MzNkMDFkY2Y2ZTMzM2I1YmU3YzE5MzNjMzIxYzk1M2Y5NjJi
OTM0ZWJlZmQ5ZGY4Y2NhNmMwYTI1ZmNkNWZiOTYxMDU0MzVjNDJkOTkwMjQwNmY4MmJjOGRhYThl
YzEyZmE4NWQ5YWZhNjVhZGJmZTNmNjA4MjhlZjY0YWRhZjQzYWQ4ZTNiMGFmMTA0Y2JmYWZkOTk0
MzIzNzMyYmJhMDhmODRkNWNhYzFkMTU3YjI3NjIzM2RmZmVjYWZlNDc5NDJiODNjODVlYWQ2ZDU4
ODZjNmJhZGY1MzRkNGEzMmQzZjU0NWU4MDMyZGQ1ZTQxOWQ3YmZmM2FjZGUyYzM3YTk2ZmMzNGZk
YTg3NDdkODk1MDBiZjlmN2VmNDU4NzNjNmIzYjI3NDFhYWY3NGZmOTZhMmY5NTAwMjhmMzhlYjYy
ZjFiZTkzNmZlMGE5OTRlYmZhOTI4MDIxYzBjOTYxNzJkODQ1ODRlIik7Ci0KLWRlYnVnKCJJbXBv
cnRpbmcgYW4gdW53cmFwcGluZyBrZXkuLi4iKTsKLWNyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0
S2V5KCJyYXciLCB1bndyYXBwaW5nS2V5T2N0ZXRzLCAiQUVTLUNCQyIsIG5vbkV4dHJhY3RhYmxl
LCBbInVud3JhcEtleSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHVud3JhcHBpbmdL
ZXkgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoInVud3JhcHBpbmdLZXkuYWxnb3JpdGhtLm5hbWUi
LCAiJ0FFUy1DQkMnIik7Ci0gICAgdmFyIHVud3JhcEFsZ29yaXRobSA9IHtuYW1lOiAiQUVTLUNC
QyIsIGl2OiBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAwMDEwMjAzMDQwNTA2MDcwODA5MGEwYjBj
MGQwZTBmIil9OwotICAgIGRlYnVnKCJVbndyYXBwaW5nIGEga2V5Li4uIik7Ci0gICAgcmV0dXJu
IGNyeXB0by53ZWJraXRTdWJ0bGUudW53cmFwS2V5KCJqd2siLCB3cmFwcGVkS2V5LCB1bndyYXBw
aW5nS2V5LCB1bndyYXBBbGdvcml0aG0sIG51bGwsIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVy
aWZ5IiwgImVuY3J5cHQiLCAiZGVjcnlwdCIsICJ3cmFwIiwgInVud3JhcCJdKTsKLX0pLnRoZW4o
ZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgdW53cmFwcGVkS2V5ID0gcmVzdWx0OwotCi0gICAgc2hv
dWxkQmUoInVud3JhcHBlZEtleS50b1N0cmluZygpIiwgIidbb2JqZWN0IENyeXB0b0tleV0nIik7
Ci0gICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS50eXBlIiwgIidwdWJsaWMnIik7Ci0gICAgc2hv
dWxkQmUoInVud3JhcHBlZEtleS51c2FnZXMiLCAiWydzaWduJywndmVyaWZ5J10iKTsKLSAgICBz
aG91bGRCZSgidW53cmFwcGVkS2V5LmFsZ29yaXRobS5uYW1lIiwgIidSU0FTU0EtUEtDUzEtdjFf
NSciKTsKLSAgICBzaG91bGRCZSgidW53cmFwcGVkS2V5LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3Ro
IiwgIjIwNDgiKTsKLSAgICBzaG91bGRCZSgiQmFzZTY0VVJMLnN0cmluZ2lmeSh1bndyYXBwZWRL
ZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSIsICJwdWJsaWNLZXlKU09OLmUiKTsKLSAgICBz
aG91bGRCZSgidW53cmFwcGVkS2V5LmFsZ29yaXRobS5oYXNoLm5hbWUiLCAiJ1NIQS0yNTYnIik7
Ci0gICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS5leHRyYWN0YWJsZSIsICJmYWxzZSIpOwotICAg
IGZpbmlzaEpTVGVzdCgpOwotfSk7Ci0KLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CgpQ
cm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1j
YmMtdW53cmFwLXJzYS5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOm1pbWUtdHlwZQojIyAt
MSArMCwwICMjCi10ZXh0L2h0bWwKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRl
eDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLXdyYXAtcnNhLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Fl
cy1jYmMtd3JhcC1yc2EtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMjA5MTkpCisrKyBMYXlvdXRU
ZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtd3JhcC1yc2EtZXhwZWN0ZWQudHh0CShu
b25leGlzdGVudCkKQEAgLTEsMTUgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDMyOiBX
ZWJLaXRTdWJ0bGVDcnlwdG8gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBTdWJ0bGVDcnlwdG8g
aW5zdGVhZC4KLVRlc3Qgd3JhcHBpbmcgYW4gUlNBIGtleSB3aXRoIEFFUy1DQkMuCi0KLU9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1JbXBvcnRpbmcgYSBrZXkgdG8gd3JhcC4uLgotUEFT
UyBrZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ1JTQVNTQS1QS0NTMS12MV81JwotSW1wb3J0aW5nIGEg
a2V5IGVuY3J5cHRpb24ga2V5Li4uCi1QQVNTIHdyYXBwaW5nS2V5LmFsZ29yaXRobS5uYW1lIGlz
ICdBRVMtQ0JDJwotUEFTUyB3cmFwcGVkS2V5LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgQXJyYXlC
dWZmZXJdJwotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRF
Ci0KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUv
YWVzLWNiYy13cmFwLXJzYS1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9s
LXN0eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3Bl
cnR5CkRlbGV0ZWQ6IHN2bjptaW1lLXR5cGUKIyMgLTEgKzAsMCAjIwotdGV4dC9wbGFpbgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Vi
a2l0U3VidGxlL2Flcy1jYmMtd3JhcC1yc2Etbm9uLWV4dHJhY3RhYmxlLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtd3Jh
cC1yc2Etbm9uLWV4dHJhY3RhYmxlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjIwOTE5KQorKysg
TGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLXdyYXAtcnNhLW5vbi1leHRy
YWN0YWJsZS1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSwxNiArMCwwIEBACi1DT05T
T0xFIE1FU1NBR0U6IGxpbmUgMzI6IFdlYktpdFN1YnRsZUNyeXB0byBpcyBkZXByZWNhdGVkLiBQ
bGVhc2UgdXNlIFN1YnRsZUNyeXB0byBpbnN0ZWFkLgotVGVzdCB3cmFwcGluZyBhbiBSU0Ega2V5
IHdpdGggQUVTLUNCQy4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLUltcG9ydGlu
ZyBhIGtleSB0byB3cmFwLi4uCi1QQVNTIGtleS5hbGdvcml0aG0ubmFtZSBpcyAnUlNBU1NBLVBL
Q1MxLXYxXzUnCi1JbXBvcnRpbmcgYSBrZXkgZW5jcnlwdGlvbiBrZXkuLi4KLVBBU1Mgd3JhcHBp
bmdLZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ0FFUy1DQkMnCi13cmFwcGluZyB0aGUga2V5Li4uCi1Q
QVNTIFJlamVjdGVkCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09N
UExFVEUKLQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1
YnRsZS9hZXMtY2JjLXdyYXAtcnNhLW5vbi1leHRyYWN0YWJsZS1leHBlY3RlZC50eHQKX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkRlbGV0ZWQ6IHN2bjptaW1lLXR5cGUKIyMgLTEgKzAs
MCAjIwotdGV4dC9wbGFpbgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBM
YXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtd3JhcC1yc2Etbm9uLWV4dHJh
Y3RhYmxlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRs
ZS9hZXMtY2JjLXdyYXAtcnNhLW5vbi1leHRyYWN0YWJsZS5odG1sCShyZXZpc2lvbiAyMjA5MTkp
CisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtd3JhcC1yc2Etbm9u
LWV4dHJhY3RhYmxlLmh0bWwJKG5vbmV4aXN0ZW50KQpAQCAtMSw1MiArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvY29tbW9u
LmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0
IHdyYXBwaW5nIGFuIFJTQSBrZXkgd2l0aCBBRVMtQ0JDLiIpOwotCi1qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKLQotdmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKLXZhciBub25FeHRyYWN0YWJsZSA9IGZh
bHNlOwotCi12YXIgcHVibGljS2V5SlNPTiA9IHsKLSAgICBrdHk6ICJSU0EiLAotICAgIGFsZzog
IlJTMjU2IiwKLSAgICBuOiAicmNDVUN2N09jMUhWYW0xREloQ3pxa25UaFdhd09wOFFMazhaaXky
cDEwQnlqUUZDYWpvRml5dUFXbC1SMVdYWmFmNHhpdExScmFjVDlhZ3B6SXpjLU1iTFNISUdnV1FH
TzIxbEdpSW15NWZ0Wi1EOGJIQXFSejJ5MTVwekQ0YzRDRW91N1hTU0xEb1JuUjBRRzVNc0RoRDZz
MmdWOW13SGtydGtDeHRNV2RCaS03N2FzOHdHbWxOUmxkY09TZ1pETEs4VW5DU2dBMU9ndVo5ODli
RnljOHRPT0VJYjB4VVNmUFN6M0xQU0NueVl6NjhhRGptS1ZlTkgtaWc4NTdPU2N5V2JHeUV5M0Jp
dzY0cXVuM2p1VWxOV3NKM3puZ2tPZHRlWVd5dHg1UXI0WEtOczZSLU15eXE3MktVcDAybUpEWmlp
eWlnbHhNTF9pMy1fQ2VlY0N3IiwKLSAgICBlOiAiQVFBQiIsCi0gICAgZXh0OiBmYWxzZSwKLSAg
ICB1c2U6ICJzaWciCi19OwotCi12YXIgandrS2V5QXNBcnJheUJ1ZmZlciA9IGFzY2lpVG9VaW50
OEFycmF5KEpTT04uc3RyaW5naWZ5KHB1YmxpY0tleUpTT04pKTsKLXZhciB3cmFwcGluZ0tleU9j
dGV0cyA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiMmEwMGUwZTc3NmU5NGU0ZGM4OWJmOTQ3Y2Vi
ZGViZTEiKTsKLQotZGVidWcoIkltcG9ydGluZyBhIGtleSB0byB3cmFwLi4uIik7Ci1jcnlwdG8u
d2Via2l0U3VidGxlLmltcG9ydEtleSgiandrIiwgandrS2V5QXNBcnJheUJ1ZmZlciwgbnVsbCwg
ZXh0cmFjdGFibGUsIFsic2lnbiIsICJ2ZXJpZnkiXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsK
LSAgICBrZXkgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubmFtZSIsICIn
UlNBU1NBLVBLQ1MxLXYxXzUnIik7Ci0gICAgZGVidWcoIkltcG9ydGluZyBhIGtleSBlbmNyeXB0
aW9uIGtleS4uLiIpOwotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgi
cmF3Iiwgd3JhcHBpbmdLZXlPY3RldHMsICJBRVMtQ0JDIiwgbm9uRXh0cmFjdGFibGUsIFsid3Jh
cEtleSJdKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgd3JhcHBpbmdLZXkgPSBy
ZXN1bHQ7Ci0gICAgc2hvdWxkQmUoIndyYXBwaW5nS2V5LmFsZ29yaXRobS5uYW1lIiwgIidBRVMt
Q0JDJyIpOwotICAgIHZhciB3cmFwQWxnb3JpdGhtID0ge25hbWU6ICJBRVMtQ0JDIiwgaXY6IGhl
eFN0cmluZ1RvVWludDhBcnJheSgiMDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBlMGYiKX07
Ci0gICAgZGVidWcoIndyYXBwaW5nIHRoZSBrZXkuLi4iKTsKLSAgICByZXR1cm4gY3J5cHRvLndl
YmtpdFN1YnRsZS53cmFwS2V5KCJqd2siLCBrZXksIHdyYXBwaW5nS2V5LCB3cmFwQWxnb3JpdGht
KTsKLX0pLnRoZW4odW5kZWZpbmVkLCBmdW5jdGlvbigpIHsKLSAgICB0ZXN0UGFzc2VkKCJSZWpl
Y3RlZCIpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci0KLTwvc2NyaXB0PgotCi08c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+
Ci08L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL2Flcy1jYmMtd3JhcC1yc2Etbm9uLWV4dHJhY3RhYmxlLmh0bWwKX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpE
ZWxldGVkOiBzdm46bWltZS10eXBlCiMjIC0xICswLDAgIyMKLXRleHQvaHRtbApcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3Vi
dGxlL2Flcy1jYmMtd3JhcC1yc2EuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlw
dG8vd2Via2l0U3VidGxlL2Flcy1jYmMtd3JhcC1yc2EuaHRtbAkocmV2aXNpb24gMjIwOTE5KQor
KysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLXdyYXAtcnNhLmh0bWwJ
KG5vbmV4aXN0ZW50KQpAQCAtMSw1MiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwv
aGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IHdyYXBwaW5nIGFuIFJTQSBr
ZXkgd2l0aCBBRVMtQ0JDLiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIGV4dHJh
Y3RhYmxlID0gdHJ1ZTsKLXZhciBub25FeHRyYWN0YWJsZSA9IGZhbHNlOwotCi12YXIgcHVibGlj
S2V5SlNPTiA9IHsKLSAgICBrdHk6ICJSU0EiLAotICAgIGFsZzogIlJTMjU2IiwKLSAgICBuOiAi
cmNDVUN2N09jMUhWYW0xREloQ3pxa25UaFdhd09wOFFMazhaaXkycDEwQnlqUUZDYWpvRml5dUFX
bC1SMVdYWmFmNHhpdExScmFjVDlhZ3B6SXpjLU1iTFNISUdnV1FHTzIxbEdpSW15NWZ0Wi1EOGJI
QXFSejJ5MTVwekQ0YzRDRW91N1hTU0xEb1JuUjBRRzVNc0RoRDZzMmdWOW13SGtydGtDeHRNV2RC
aS03N2FzOHdHbWxOUmxkY09TZ1pETEs4VW5DU2dBMU9ndVo5ODliRnljOHRPT0VJYjB4VVNmUFN6
M0xQU0NueVl6NjhhRGptS1ZlTkgtaWc4NTdPU2N5V2JHeUV5M0JpdzY0cXVuM2p1VWxOV3NKM3pu
Z2tPZHRlWVd5dHg1UXI0WEtOczZSLU15eXE3MktVcDAybUpEWmlpeWlnbHhNTF9pMy1fQ2VlY0N3
IiwKLSAgICBlOiAiQVFBQiIsCi0gICAgZXh0OiB0cnVlLAotICAgIHVzZTogInNpZyIKLX07Ci0K
LXZhciBqd2tLZXlBc0FycmF5QnVmZmVyID0gYXNjaWlUb1VpbnQ4QXJyYXkoSlNPTi5zdHJpbmdp
ZnkocHVibGljS2V5SlNPTikpOwotdmFyIHdyYXBwaW5nS2V5T2N0ZXRzID0gaGV4U3RyaW5nVG9V
aW50OEFycmF5KCIyYTAwZTBlNzc2ZTk0ZTRkYzg5YmY5NDdjZWJkZWJlMSIpOwotCi1kZWJ1Zygi
SW1wb3J0aW5nIGEga2V5IHRvIHdyYXAuLi4iKTsKLWNyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0
S2V5KCJqd2siLCBqd2tLZXlBc0FycmF5QnVmZmVyLCBudWxsLCBleHRyYWN0YWJsZSwgWyJzaWdu
IiwgInZlcmlmeSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGtleSA9IHJlc3VsdDsK
LSAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5uYW1lIiwgIidSU0FTU0EtUEtDUzEtdjFfNSci
KTsKLSAgICBkZWJ1ZygiSW1wb3J0aW5nIGEga2V5IGVuY3J5cHRpb24ga2V5Li4uIik7Ci0gICAg
cmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCB3cmFwcGluZ0tleU9j
dGV0cywgIkFFUy1DQkMiLCBub25FeHRyYWN0YWJsZSwgWyJ3cmFwS2V5Il0pOwotfSkudGhlbihm
dW5jdGlvbihyZXN1bHQpIHsKLSAgICB3cmFwcGluZ0tleSA9IHJlc3VsdDsKLSAgICBzaG91bGRC
ZSgid3JhcHBpbmdLZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0FFUy1DQkMnIik7Ci0gICAgdmFyIHdy
YXBBbGdvcml0aG0gPSB7bmFtZTogIkFFUy1DQkMiLCBpdjogaGV4U3RyaW5nVG9VaW50OEFycmF5
KCIwMDAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZiIpfTsKLSAgICByZXR1cm4gY3J5cHRv
LndlYmtpdFN1YnRsZS53cmFwS2V5KCJqd2siLCBrZXksIHdyYXBwaW5nS2V5LCB3cmFwQWxnb3Jp
dGhtKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgd3JhcHBlZEtleSA9IHJlc3Vs
dDsKLSAgICBzaG91bGRCZSgid3JhcHBlZEtleS50b1N0cmluZygpIiwgIidbb2JqZWN0IEFycmF5
QnVmZmVyXSciKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOwotCi08L3NjcmlwdD4KLQotPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9i
b2R5PgotPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvY3J5cHRvL3dl
YmtpdFN1YnRsZS9hZXMtY2JjLXdyYXAtcnNhLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46
bWltZS10eXBlCiMjIC0xICswLDAgIyMKLXRleHQvaHRtbApcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IHByb3BlcnR5CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMt
d3Jvbmcta2V5LWNsYXNzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9j
cnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtd3Jvbmcta2V5LWNsYXNzLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMjIwOTE5KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMt
Y2JjLXdyb25nLWtleS1jbGFzcy1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSwxMyAr
MCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjI6IFdlYktpdFN1YnRsZUNyeXB0byBpcyBk
ZXByZWNhdGVkLiBQbGVhc2UgdXNlIFN1YnRsZUNyeXB0byBpbnN0ZWFkLgotVGVzdCBjYWxsaW5n
IEFFUy1DQkMgZW5jcnlwdCB3aXRoIGEgSE1BQyBrZXkuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KLQotCi1JbXBvcnRpbmcgYSByYXcgSE1BQyBrZXkgZnJvbSBzdHJpbmcgbGl0ZXJhbC4u
LgotVXNpbmcgdGhlIGtleSB0byBlbmNyeXB0IHBsYWludGV4dC4uLgotUEFTUyBjcnlwdG8ud2Vi
a2l0U3VidGxlLmVuY3J5cHQoe25hbWU6ICJhZXMtY2JjIiwgaXY6IGl2fSwga2V5LCBwbGFpbnRl
eHQpIHRocmV3IGV4Y2VwdGlvbiBOb3RTdXBwb3J0ZWRFcnJvcjogVGhlIG9wZXJhdGlvbiBpcyBu
b3Qgc3VwcG9ydGVkLi4KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBD
T01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMt
d3Jvbmcta2V5LWNsYXNzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dl
YmtpdFN1YnRsZS9hZXMtY2JjLXdyb25nLWtleS1jbGFzcy5odG1sCShyZXZpc2lvbiAyMjA5MTkp
CisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtd3Jvbmcta2V5LWNs
YXNzLmh0bWwJKG5vbmV4aXN0ZW50KQpAQCAtMSwzMyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvY29tbW9uLmpzIj48L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IGNhbGxpbmcg
QUVTLUNCQyBlbmNyeXB0IHdpdGggYSBITUFDIGtleS4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRy
dWU7Ci0KLXZhciBpdiA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiMDAwMTAyMDMwNDA1MDYwNzA4
MDkwYTBiMGMwZDBlMGYiKTsKLXZhciBwbGFpbnRleHQgPSBoZXhTdHJpbmdUb1VpbnQ4QXJyYXko
IjZiYzFiZWUyMmU0MDlmOTZlOTNkN2UxMTczOTMxNzJhYWUyZDhhNTcxZTAzYWM5YzllYjc2ZmFj
NDVhZjhlNTEzMGM4MWM0NmEzNWNlNDExZTVmYmMxMTkxYTBhNTJlZmY2OWYyNDQ1ZGY0ZjliMTdh
ZDJiNDE3YmU2NmMzNzEwIik7Ci12YXIgaG1hY0tleSA9IGFzY2lpVG9VaW50OEFycmF5KCdhJyk7
Ci12YXIgZXh0cmFjdGFibGUgPSB0cnVlOwotCi1kZWJ1ZygiSW1wb3J0aW5nIGEgcmF3IEhNQUMg
a2V5IGZyb20gc3RyaW5nIGxpdGVyYWwuLi4iKTsKLWNyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0
S2V5KCJyYXciLCBobWFjS2V5LCB7bmFtZTogJ2htYWMnLCBoYXNoOiB7bmFtZTogJ3NoYS0xJ319
LCBleHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSIsICJlbmNyeXB0IiwgImRlY3J5cHQiXSku
dGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBrZXkgPSByZXN1bHQ7Ci0gICAgZGVidWcoIlVz
aW5nIHRoZSBrZXkgdG8gZW5jcnlwdCBwbGFpbnRleHQuLi4iKTsKLSAgICBzaG91bGRUaHJvdygn
Y3J5cHRvLndlYmtpdFN1YnRsZS5lbmNyeXB0KHtuYW1lOiAiYWVzLWNiYyIsIGl2OiBpdn0sIGtl
eSwgcGxhaW50ZXh0KScpCi0KLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOwotPC9zY3JpcHQ+Ci0K
LTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
LTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUv
YWVzLWV4cG9ydC1rZXktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Ny
eXB0by93ZWJraXRTdWJ0bGUvYWVzLWV4cG9ydC1rZXktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAy
MjA5MTkpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1leHBvcnQta2V5
LWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCkBAIC0xLDM5ICswLDAgQEAKLUNPTlNPTEUgTUVT
U0FHRTogbGluZSA2MTY6IFdlYktpdFN1YnRsZUNyeXB0byBpcyBkZXByZWNhdGVkLiBQbGVhc2Ug
dXNlIFN1YnRsZUNyeXB0byBpbnN0ZWFkLgotVGVzdCBleHBvcnRpbmcgYW4gQUVTIGtleS4KLQot
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5l
eHBvcnRLZXkoInJhdyIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJn
dW1lbnRzLgotUEFTUyBjcnlwdG8ud2Via2l0U3VidGxlLmV4cG9ydEtleSgicmF3IiwgbnVsbCkg
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgY3J5cHRvLndlYmtp
dFN1YnRsZS5leHBvcnRLZXkoInJhdyIsIHVuZGVmaW5lZCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogVHlwZSBlcnJvci4KLVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5leHBvcnRLZXkoInJh
dyIsIHt9KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjcnlw
dG8ud2Via2l0U3VidGxlLmV4cG9ydEtleSgicmF3IiwgMSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogVHlwZSBlcnJvci4KLQotSW1wb3J0aW5nIGEgSldLIGtleS4uLgotUEFTUyBjcnlwdG8u
d2Via2l0U3VidGxlLmV4cG9ydEtleShudWxsLCBrZXkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IFVua25vd24ga2V5IGZvcm1hdC4KLVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5leHBvcnRL
ZXkodW5kZWZpbmVkLCBrZXkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFVua25vd24ga2V5
IGZvcm1hdC4KLVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5leHBvcnRLZXkoe30sIGtleSkgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVW5rbm93biBrZXkgZm9ybWF0LgotUEFTUyBjcnlwdG8u
d2Via2l0U3VidGxlLmV4cG9ydEtleSgiIiwga2V5KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBVbmtub3duIGtleSBmb3JtYXQuCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUuZXhwb3J0S2V5
KCJmb29iYXIiLCBrZXkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFVua25vd24ga2V5IGZv
cm1hdC4KLQotRXhwb3J0aW5nIHRoZSBrZXkgYXMgcmF3IGRhdGEuLi4KLVBBU1MgYnl0ZXNUb0hl
eFN0cmluZyhuZXcgVWludDhBcnJheShleHBvcnRlZERhdGEpKSBpcyAnOGU3M2IwZjdkYTBlNjQ1
MmM4MTBmMzJiODA5MDc5ZTU2MmY4ZWFkMjUyMmM2YjdiJwotRXhwb3J0aW5nIHRoZSBrZXkgYXMg
SldLLi4uCi1QQVNTIGV4cG9ydGVkSldLLmt0eSBpcyAnb2N0JwotUEFTUyBleHBvcnRlZEpXSy5r
IGlzICdqbk93OTlvT1pGTElFUE1yZ0pCNTVXTDQ2dEpTTEd0NycKLVBBU1MgZXhwb3J0ZWRKV0su
YWxnIGlzICdBMTkyQ0JDJwotUEFTUyBleHBvcnRlZEpXSy5leHQgaXMgdHJ1ZQotUEFTUyBleHBv
cnRlZEpXSy51c2UgaXMgdW5kZWZpbmVkCi1QQVNTIGV4cG9ydGVkSldLLmtleV9vcHMgaXMgWydl
bmNyeXB0JywgJ2RlY3J5cHQnLCAnd3JhcEtleScsICd1bndyYXBLZXknXQotCi1JbXBvcnRpbmcg
YSBrZXkgdGhhdCdzIG5vdCBleHRyYWN0YWJsZS4uLgotCi1UcnlpbmcgdG8gZXhwb3J0IGFzIHJh
dy4uLgotUEFTUyBSZWplY3RlZCwgYXMgZXhwZWN0ZWQKLVRyeWluZyB0byBleHBvcnQgYXMgandr
Li4uCi1QQVNTIFJlamVjdGVkLCBhcyBleHBlY3RlZAotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJr
aXRTdWJ0bGUvYWVzLWV4cG9ydC1rZXkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9j
cnlwdG8vd2Via2l0U3VidGxlL2Flcy1leHBvcnQta2V5Lmh0bWwJKHJldmlzaW9uIDIyMDkxOSkK
KysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWV4cG9ydC1rZXkuaHRtbAko
bm9uZXhpc3RlbnQpCkBAIC0xLDg2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08
aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9o
ZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3QgZXhwb3J0aW5nIGFuIEFFUyBr
ZXkuIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi12YXIgZXh0cmFjdGFibGUgPSB0cnVl
OwotdmFyIG5vbkV4dHJhY3RhYmxlID0gZmFsc2U7Ci0KLXZhciBqd2tLZXkgPSB7Ci0gICAga3R5
OiAib2N0IiwKLSAgICBrOiAiam5Pdzk5b09aRkxJRVBNcmdKQjU1V0w0NnRKU0xHdDciCi19Owot
Ci12YXIgandrS2V5QXNBcnJheUJ1ZmZlciA9IGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5n
aWZ5KGp3a0tleSkpOwotCi1zaG91bGRUaHJvdygnY3J5cHRvLndlYmtpdFN1YnRsZS5leHBvcnRL
ZXkoInJhdyIpJyk7Ci1zaG91bGRUaHJvdygnY3J5cHRvLndlYmtpdFN1YnRsZS5leHBvcnRLZXko
InJhdyIsIG51bGwpJyk7Ci1zaG91bGRUaHJvdygnY3J5cHRvLndlYmtpdFN1YnRsZS5leHBvcnRL
ZXkoInJhdyIsIHVuZGVmaW5lZCknKTsKLXNob3VsZFRocm93KCdjcnlwdG8ud2Via2l0U3VidGxl
LmV4cG9ydEtleSgicmF3Iiwge30pJyk7Ci1zaG91bGRUaHJvdygnY3J5cHRvLndlYmtpdFN1YnRs
ZS5leHBvcnRLZXkoInJhdyIsIDEpJyk7Ci0KLWRlYnVnKCJcbkltcG9ydGluZyBhIEpXSyBrZXku
Li4iKTsKLWNyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBqd2tLZXlBc0FycmF5
QnVmZmVyLCAiQUVTLUNCQyIsIGV4dHJhY3RhYmxlLCBbJ2VuY3J5cHQnLCAnZGVjcnlwdCcsICd3
cmFwS2V5JywgJ3Vud3JhcEtleSddKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGtleSA9
IHJlc3VsdDsKLQotICAgIHNob3VsZFRocm93KCdjcnlwdG8ud2Via2l0U3VidGxlLmV4cG9ydEtl
eShudWxsLCBrZXkpJyk7Ci0gICAgc2hvdWxkVGhyb3coJ2NyeXB0by53ZWJraXRTdWJ0bGUuZXhw
b3J0S2V5KHVuZGVmaW5lZCwga2V5KScpOwotICAgIHNob3VsZFRocm93KCdjcnlwdG8ud2Via2l0
U3VidGxlLmV4cG9ydEtleSh7fSwga2V5KScpOwotICAgIHNob3VsZFRocm93KCdjcnlwdG8ud2Vi
a2l0U3VidGxlLmV4cG9ydEtleSgiIiwga2V5KScpOwotICAgIHNob3VsZFRocm93KCdjcnlwdG8u
d2Via2l0U3VidGxlLmV4cG9ydEtleSgiZm9vYmFyIiwga2V5KScpOwotCi0gICAgZGVidWcoIlxu
RXhwb3J0aW5nIHRoZSBrZXkgYXMgcmF3IGRhdGEuLi4iKTsKLSAgICByZXR1cm4gY3J5cHRvLndl
YmtpdFN1YnRsZS5leHBvcnRLZXkoInJhdyIsIGtleSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3Vs
dCkgewotICAgIGV4cG9ydGVkRGF0YSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgiYnl0ZXNUb0hl
eFN0cmluZyhuZXcgVWludDhBcnJheShleHBvcnRlZERhdGEpKSIsICInOGU3M2IwZjdkYTBlNjQ1
MmM4MTBmMzJiODA5MDc5ZTU2MmY4ZWFkMjUyMmM2YjdiJyIpOwotCi0gICAgZGVidWcoIkV4cG9y
dGluZyB0aGUga2V5IGFzIEpXSy4uLiIpOwotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxl
LmV4cG9ydEtleSgiandrIiwga2V5KTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAg
ZXhwb3J0ZWRKV0sgPSBKU09OLnBhcnNlKGJ5dGVzVG9BU0NJSVN0cmluZyhyZXN1bHQpKTsKLSAg
ICBzaG91bGRCZSgiZXhwb3J0ZWRKV0sua3R5IiwgIidvY3QnIik7Ci0gICAgc2hvdWxkQmUoImV4
cG9ydGVkSldLLmsiLCAiJ2puT3c5OW9PWkZMSUVQTXJnSkI1NVdMNDZ0SlNMR3Q3JyIpOwotICAg
IHNob3VsZEJlKCJleHBvcnRlZEpXSy5hbGciLCAiJ0ExOTJDQkMnIik7Ci0gICAgc2hvdWxkQmUo
ImV4cG9ydGVkSldLLmV4dCIsICJ0cnVlIik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLnVz
ZSIsICJ1bmRlZmluZWQiKTsKLSAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0sua2V5X29wcyIsICJb
J2VuY3J5cHQnLCAnZGVjcnlwdCcsICd3cmFwS2V5JywgJ3Vud3JhcEtleSddIik7Ci0KLSAgICBk
ZWJ1ZygiXG5JbXBvcnRpbmcgYSBrZXkgdGhhdCdzIG5vdCBleHRyYWN0YWJsZS4uLiIpOwotICAg
IHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgiandrIiwgandrS2V5QXNBcnJh
eUJ1ZmZlciwgIkFFUy1DQkMiLCBub25FeHRyYWN0YWJsZSwgWydlbmNyeXB0JywgJ2RlY3J5cHQn
LCAnd3JhcEtleScsICd1bndyYXBLZXknXSkKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0g
ICAga2V5ID0gcmVzdWx0OwotCi0gICAgZGVidWcoIlxuVHJ5aW5nIHRvIGV4cG9ydCBhcyByYXcu
Li4iKTsKLSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS5leHBvcnRLZXkoInJhdyIsIGtl
eSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHRlc3RGYWlsZWQoIlByb21pc2Ug
d2Fzbid0IHJlamVjdGVkIik7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19LCBmdW5jdGlvbigpIHsK
LSAgICB0ZXN0UGFzc2VkKCJSZWplY3RlZCwgYXMgZXhwZWN0ZWQiKTsKLQotICAgIGRlYnVnKCJU
cnlpbmcgdG8gZXhwb3J0IGFzIGp3ay4uLiIpOwotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3Vi
dGxlLmV4cG9ydEtleSgiandrIiwga2V5KTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0g
ICAgdGVzdEZhaWxlZCgiUHJvbWlzZSB3YXNuJ3QgcmVqZWN0ZWQiKTsKLSAgICBmaW5pc2hKU1Rl
c3QoKTsKLX0sIGZ1bmN0aW9uKCkgewotICAgIHRlc3RQYXNzZWQoIlJlamVjdGVkLCBhcyBleHBl
Y3RlZCIpOwotCi0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+
Ci08L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL2Flcy1leHBvcnQta2V5Lmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46bWltZS10
eXBlCiMjIC0xICswLDAgIyMKLXRleHQvaHRtbApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3Bl
cnR5CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1rdy1rZXktbWFu
aXB1bGF0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8v
d2Via2l0U3VidGxlL2Flcy1rdy1rZXktbWFuaXB1bGF0aW9uLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMjIwOTE5KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMta3cta2V5
LW1hbmlwdWxhdGlvbi1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSwyNiArMCwwIEBA
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTk6IFdlYktpdFN1YnRsZUNyeXB0byBpcyBkZXByZWNh
dGVkLiBQbGVhc2UgdXNlIFN1YnRsZUNyeXB0byBpbnN0ZWFkLgotVGVzdCBnZW5lcmF0aW5nLCBp
bXBvcnRpbmcgYW5kIGV4cG9ydGluZyBrZXlzIGZvciBBRVMtS1cuIFRlc3QgdGhhdCB0aGV5IGNh
bid0IGJlIHVzZWQgd2l0aCBhbm90aGVyIGFsZ29yaXRobS4KLQotT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgotCi0KLUdlbmVyYXRpbmcgYSBrZXkuLi4KLVBBU1Mga2V5LnRvU3RyaW5nKCkgaXMg
J1tvYmplY3QgQ3J5cHRvS2V5XScKLVBBU1Mga2V5LnR5cGUgaXMgJ3NlY3JldCcKLVBBU1Mga2V5
LmFsZ29yaXRobS5uYW1lIGlzICdBRVMtS1cnCi1QQVNTIGtleS5hbGdvcml0aG0ubGVuZ3RoIGlz
IDI1NgotCi1UZXN0aW5nIHRoYXQgdGhlIGtleSBjYW4ndCBiZSB1c2VkIHdpdGggQUVTLUNCQy4u
LgotUEFTUyBjcnlwdG8ud2Via2l0U3VidGxlLmVuY3J5cHQoe25hbWU6ICJhZXMtY2JjIiwgaXY6
IGl2fSwga2V5LCBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAwIikpIHRocmV3IGV4Y2VwdGlvbiBO
b3RTdXBwb3J0ZWRFcnJvcjogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLi4KLQotRXhw
b3J0aW5nIHRoZSBrZXkgdG8gcmF3Li4uCi1QQVNTIGV4cG9ydGVkS2V5LnRvU3RyaW5nKCkgaXMg
J1tvYmplY3QgQXJyYXlCdWZmZXJdJwotSW1wb3J0aW5nIGl0IGJhY2suLi4KLVBBU1MgaW1wb3J0
ZWRLZXkudG9TdHJpbmcoKSBpcyAnW29iamVjdCBDcnlwdG9LZXldJwotUEFTUyBpbXBvcnRlZEtl
eS50eXBlIGlzICdzZWNyZXQnCi1QQVNTIGltcG9ydGVkS2V5LmFsZ29yaXRobS5uYW1lIGlzICdB
RVMtS1cnCi1QQVNTIGltcG9ydGVkS2V5LmFsZ29yaXRobS5sZW5ndGggaXMgMjU2Ci1QQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQoKUHJvcGVydHkgY2hh
bmdlcyBvbjogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMta3cta2V5LW1hbmlw
dWxhdGlvbi1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMj
IC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkRlbGV0
ZWQ6IHN2bjptaW1lLXR5cGUKIyMgLTEgKzAsMCAjIwotdGV4dC9wbGFpbgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxl
L2Flcy1rdy1rZXktbWFuaXB1bGF0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Y3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMta3cta2V5LW1hbmlwdWxhdGlvbi5odG1sCShyZXZpc2lv
biAyMjA5MTkpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1rdy1rZXkt
bWFuaXB1bGF0aW9uLmh0bWwJKG5vbmV4aXN0ZW50KQpAQCAtMSw1MSArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvY29tbW9u
LmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0
IGdlbmVyYXRpbmcsIGltcG9ydGluZyBhbmQgZXhwb3J0aW5nIGtleXMgZm9yIEFFUy1LVy4gVGVz
dCB0aGF0IHRoZXkgY2FuJ3QgYmUgdXNlZCB3aXRoIGFub3RoZXIgYWxnb3JpdGhtLiIpOwotCi1q
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKLQotZGVidWco
IkdlbmVyYXRpbmcgYSBrZXkuLi4iKTsKLWNyeXB0by53ZWJraXRTdWJ0bGUuZ2VuZXJhdGVLZXko
e25hbWU6ICJhZXMta3ciLCBsZW5ndGg6IDI1Nn0sIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAi
ZGVjcnlwdCIsICJ3cmFwS2V5IiwgInVud3JhcEtleSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkg
ewotICAgIGtleSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgia2V5LnRvU3RyaW5nKCkiLCAiJ1tv
YmplY3QgQ3J5cHRvS2V5XSciKTsKLSAgICBzaG91bGRCZSgia2V5LnR5cGUiLCAiJ3NlY3JldCci
KTsKLSAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5uYW1lIiwgIidBRVMtS1cnIik7Ci0gICAg
c2hvdWxkQmUoImtleS5hbGdvcml0aG0ubGVuZ3RoIiwgIjI1NiIpOwotCi0gICAgZGVidWcoIlxu
VGVzdGluZyB0aGF0IHRoZSBrZXkgY2FuJ3QgYmUgdXNlZCB3aXRoIEFFUy1DQkMuLi4iKTsKLSAg
ICBpdiA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiMDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMw
ZDBlMGYiKTsKLSAgICBzaG91bGRUaHJvdygnY3J5cHRvLndlYmtpdFN1YnRsZS5lbmNyeXB0KHtu
YW1lOiAiYWVzLWNiYyIsIGl2OiBpdn0sIGtleSwgaGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMCIp
KScpOwotCi0gICAgZGVidWcoIlxuRXhwb3J0aW5nIHRoZSBrZXkgdG8gcmF3Li4uIik7Ci0gICAg
cmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUuZXhwb3J0S2V5KCdyYXcnLCBrZXkpOwotfSkudGhl
bihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBleHBvcnRlZEtleSA9IHJlc3VsdDsKLSAgICBzaG91
bGRCZSgiZXhwb3J0ZWRLZXkudG9TdHJpbmcoKSIsICInW29iamVjdCBBcnJheUJ1ZmZlcl0nIik7
Ci0gICAgZGVidWcoIkltcG9ydGluZyBpdCBiYWNrLi4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by53
ZWJraXRTdWJ0bGUuaW1wb3J0S2V5KCdyYXcnLCBleHBvcnRlZEtleSwgImFlcy1rdyIsIGV4dHJh
Y3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCIsICJ3cmFwS2V5IiwgInVud3JhcEtleSJdKTsK
LX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgaW1wb3J0ZWRLZXkgPSByZXN1bHQ7Ci0K
LSAgICBzaG91bGRCZSgiaW1wb3J0ZWRLZXkudG9TdHJpbmcoKSIsICInW29iamVjdCBDcnlwdG9L
ZXldJyIpOwotICAgIHNob3VsZEJlKCJpbXBvcnRlZEtleS50eXBlIiwgIidzZWNyZXQnIik7Ci0g
ICAgc2hvdWxkQmUoImltcG9ydGVkS2V5LmFsZ29yaXRobS5uYW1lIiwgIidBRVMtS1cnIik7Ci0g
ICAgc2hvdWxkQmUoImltcG9ydGVkS2V5LmFsZ29yaXRobS5sZW5ndGgiLCAiMjU2Iik7Ci0KLSAg
ICBmaW5pc2hKU1Rlc3QoKTsKLX0pOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KClBy
b3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWt3
LWtleS1tYW5pcHVsYXRpb24uaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjptaW1lLXR5cGUK
IyMgLTEgKzAsMCAjIwotdGV4dC9odG1sClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkK
SW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWt3LXdyYXAtdW53cmFw
LWFlcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtp
dFN1YnRsZS9hZXMta3ctd3JhcC11bndyYXAtYWVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjIw
OTE5KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMta3ctd3JhcC11bndy
YXAtYWVzLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCkBAIC0xLDIzICswLDAgQEAKLUNPTlNP
TEUgTUVTU0FHRTogbGluZSAyMTogV2ViS2l0U3VidGxlQ3J5cHRvIGlzIGRlcHJlY2F0ZWQuIFBs
ZWFzZSB1c2UgU3VidGxlQ3J5cHRvIGluc3RlYWQuCi1UZXN0IHdyYXBwaW5nIGFuZCB1bndyYXBw
aW5nIGtleXMgd2l0aCBBRVMtS1cuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1J
bXBvcnRpbmcga2V5IGVuY3J5cHRpb24ga2V5Li4uCi1JbXBvcnRpbmcgYSBrZXkgdG8gYmUgd3Jh
cHBlZC4uLgotV3JhcHBpbmcgaXQuLi4KLVBBU1MgYnl0ZXNUb0hleFN0cmluZyh3cmFwcGVkS2V5
KSBpcyAnMWZhNjhiMGE4MTEyYjQ0N2FlZjM0YmQ4ZmI1YTdiODI5ZDNlODYyMzcxZDJjZmU1Jwot
VW53cmFwcGluZyBpdC4uLgotUEFTUyB1bndyYXBwZWRLZXkudG9TdHJpbmcoKSBpcyAnW29iamVj
dCBDcnlwdG9LZXldJwotUEFTUyB1bndyYXBwZWRLZXkudHlwZSBpcyAnc2VjcmV0JwotUEFTUyB1
bndyYXBwZWRLZXkuZXh0cmFjdGFibGUgaXMgdHJ1ZQotUEFTUyB1bndyYXBwZWRLZXkuYWxnb3Jp
dGhtLm5hbWUgaXMgJ0FFUy1DQkMnCi1QQVNTIHVud3JhcHBlZEtleS5hbGdvcml0aG0ubGVuZ3Ro
IGlzIDEyOAotUEFTUyB1bndyYXBwZWRLZXkudXNhZ2VzIGlzIFsnZGVjcnlwdCcsICdlbmNyeXB0
JywgJ3Vud3JhcEtleScsICd3cmFwS2V5J10KLUV4cG9ydGluZyBpdC4uLgotUEFTUyBieXRlc1Rv
SGV4U3RyaW5nKHVud3JhcHBlZEtleURhdGEpIGlzIGJ5dGVzVG9IZXhTdHJpbmcoa2V5RGF0YSkK
LVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCgpQcm9w
ZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1rdy13
cmFwLXVud3JhcC1hZXMtZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1z
dHlsZQojIyAtMSArMCwwICMjCi1uYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0
eQpEZWxldGVkOiBzdm46bWltZS10eXBlCiMjIC0xICswLDAgIyMKLXRleHQvcGxhaW4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtp
dFN1YnRsZS9hZXMta3ctd3JhcC11bndyYXAtYWVzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMta3ctd3JhcC11bndyYXAtYWVzLmh0bWwJKHJl
dmlzaW9uIDIyMDkxOSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWt3
LXdyYXAtdW53cmFwLWFlcy5odG1sCShub25leGlzdGVudCkKQEAgLTEsNTggKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2Nv
bW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+
PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigi
VGVzdCB3cmFwcGluZyBhbmQgdW53cmFwcGluZyBrZXlzIHdpdGggQUVTLUtXLiIpOwotCi1qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIGtla0RhdGEgPSBoZXhTdHJpbmdUb1VpbnQ4QXJyYXko
IjAwMDEwMjAzMDQwNTA2MDcwODA5MEEwQjBDMEQwRTBGIik7Ci12YXIga2V5RGF0YSA9IGhleFN0
cmluZ1RvVWludDhBcnJheSgiMDAxMTIyMzM0NDU1NjY3Nzg4OTlBQUJCQ0NEREVFRkYiKTsKLXZh
ciBleHRyYWN0YWJsZSA9IHRydWU7Ci0KLWRlYnVnKCJJbXBvcnRpbmcga2V5IGVuY3J5cHRpb24g
a2V5Li4uIik7Ci1jcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgicmF3Iiwga2VrRGF0YSwg
ImFlcy1rdyIsIGV4dHJhY3RhYmxlLCBbIndyYXBLZXkiLCAidW53cmFwS2V5Il0pLnRoZW4oZnVu
Y3Rpb24ocmVzdWx0KSB7Ci0gICAga2VrID0gcmVzdWx0OwotCi0gICAgZGVidWcoIkltcG9ydGlu
ZyBhIGtleSB0byBiZSB3cmFwcGVkLi4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0
bGUuaW1wb3J0S2V5KCJyYXciLCBrZXlEYXRhLCAiYWVzLWNiYyIsIGV4dHJhY3RhYmxlLCBbImVu
Y3J5cHQiLCAiZGVjcnlwdCIsICJ3cmFwS2V5IiwgInVud3JhcEtleSJdKTsKLX0pLnRoZW4oZnVu
Y3Rpb24ocmVzdWx0KSB7Ci0gICAga2V5ID0gcmVzdWx0OwotCi0gICAgZGVidWcoIldyYXBwaW5n
IGl0Li4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUud3JhcEtleSgicmF3Iiwg
a2V5LCBrZWssICJhZXMta3ciKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgd3Jh
cHBlZEtleSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyh3cmFwcGVk
S2V5KSIsICInMWZhNjhiMGE4MTEyYjQ0N2FlZjM0YmQ4ZmI1YTdiODI5ZDNlODYyMzcxZDJjZmU1
JyIpOyAvLyBSZXN1bHQgZnJvbSBSRkMgMzM5NC4KLQotICAgIGRlYnVnKCJVbndyYXBwaW5nIGl0
Li4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUudW53cmFwS2V5KCJyYXciLCB3
cmFwcGVkS2V5LCBrZWssICJhZXMta3ciLCAiYWVzLWNiYyIsIGV4dHJhY3RhYmxlLCBbImVuY3J5
cHQiLCAiZGVjcnlwdCIsICJ3cmFwS2V5IiwgInVud3JhcEtleSJdKTsKLX0pLnRoZW4oZnVuY3Rp
b24ocmVzdWx0KSB7Ci0gICAgdW53cmFwcGVkS2V5ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJ1
bndyYXBwZWRLZXkudG9TdHJpbmcoKSIsICInW29iamVjdCBDcnlwdG9LZXldJyIpOwotICAgIHNo
b3VsZEJlKCJ1bndyYXBwZWRLZXkudHlwZSIsICInc2VjcmV0JyIpOwotICAgIHNob3VsZEJlKCJ1
bndyYXBwZWRLZXkuZXh0cmFjdGFibGUiLCAidHJ1ZSIpOwotICAgIHNob3VsZEJlKCJ1bndyYXBw
ZWRLZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0FFUy1DQkMnIik7Ci0gICAgc2hvdWxkQmUoInVud3Jh
cHBlZEtleS5hbGdvcml0aG0ubGVuZ3RoIiwgIjEyOCIpOwotICAgIHNob3VsZEJlKCJ1bndyYXBw
ZWRLZXkudXNhZ2VzIiwgIlsnZGVjcnlwdCcsICdlbmNyeXB0JywgJ3Vud3JhcEtleScsICd3cmFw
S2V5J10iKTsKLQotICAgIGRlYnVnKCJFeHBvcnRpbmcgaXQuLi4iKTsKLSAgICByZXR1cm4gY3J5
cHRvLndlYmtpdFN1YnRsZS5leHBvcnRLZXkoInJhdyIsIHVud3JhcHBlZEtleSk7Ci19KS50aGVu
KGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHVud3JhcHBlZEtleURhdGEgPSByZXN1bHQ7Ci0gICAg
c2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcodW53cmFwcGVkS2V5RGF0YSkiLCAiYnl0ZXNUb0hl
eFN0cmluZyhrZXlEYXRhKSIpOwotCi0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0
PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Ci08L2JvZHk+Ci08L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9j
cnlwdG8vd2Via2l0U3VidGxlL2Flcy1rdy13cmFwLXVud3JhcC1hZXMuaHRtbApfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
CkRlbGV0ZWQ6IHN2bjptaW1lLXR5cGUKIyMgLTEgKzAsMCAjIwotdGV4dC9odG1sClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRT
dWJ0bGUvYWVzLXBvc3RNZXNzYWdlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1wb3N0TWVzc2FnZS1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDIyMDkxOSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLXBv
c3RNZXNzYWdlLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCkBAIC0xLDE1ICswLDAgQEAKLUNP
TlNPTEUgTUVTU0FHRTogbGluZSAyNjogV2ViS2l0U3VidGxlQ3J5cHRvIGlzIGRlcHJlY2F0ZWQu
IFBsZWFzZSB1c2UgU3VidGxlQ3J5cHRvIGluc3RlYWQuCi1UZXN0IHNlbmRpbmcgY3J5cHRvIGtl
eXMgdmlhIHBvc3RNZXNzYWdlLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFT
UyBrZXkudHlwZSBpcyAnc2VjcmV0JwotUEFTUyBrZXkuZXh0cmFjdGFibGUgaXMgdHJ1ZQotUEFT
UyBrZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ0FFUy1DQkMnCi1QQVNTIGtleS5hbGdvcml0aG0ubGVu
Z3RoIGlzIDEyOAotUEFTUyBrZXkudXNhZ2VzIGlzIFsiZGVjcnlwdCIsICJlbmNyeXB0Il0KLVBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCgpQcm9wZXJ0
eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1wb3N0TWVz
c2FnZS1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0x
ICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkRlbGV0ZWQ6
IHN2bjptaW1lLXR5cGUKIyMgLTEgKzAsMCAjIwotdGV4dC9wbGFpbgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIHByb3BlcnR5CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Fl
cy1wb3N0TWVzc2FnZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJr
aXRTdWJ0bGUvYWVzLXBvc3RNZXNzYWdlLmh0bWwJKHJldmlzaW9uIDIyMDkxOSkKKysrIExheW91
dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLXBvc3RNZXNzYWdlLmh0bWwJKG5vbmV4aXN0
ZW50KQpAQCAtMSwzMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvY29tbW9uLmpz
Ij48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdD4KLQotZGVzY3JpcHRpb24oIlRl
c3Qgc2VuZGluZyBjcnlwdG8ga2V5cyB2aWEgcG9zdE1lc3NhZ2UuIik7Ci0KLWpzVGVzdElzQXN5
bmMgPSB0cnVlOwotCi13aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGZ1bmN0aW9u
KGV2dCkgewotICAgIGtleSA9IGV2dC5kYXRhOwotICAgIHNob3VsZEJlKCJrZXkudHlwZSIsICIn
c2VjcmV0JyIpOwotICAgIHNob3VsZEJlKCJrZXkuZXh0cmFjdGFibGUiLCAidHJ1ZSIpOwotICAg
IHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0FFUy1DQkMnIik7Ci0gICAgc2hvdWxk
QmUoImtleS5hbGdvcml0aG0ubGVuZ3RoIiwgIjEyOCIpOwotICAgIHNob3VsZEJlKCJrZXkudXNh
Z2VzIiwgJ1siZGVjcnlwdCIsICJlbmNyeXB0Il0nKTsKLQotICAgIGZpbmlzaEpTVGVzdCgpOwot
fSwgZmFsc2UpOwotCi1jcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgicmF3IiwgYXNjaWlU
b1VpbnQ4QXJyYXkoIjE2IGJ5dGVzIG9mIGtleSEiKSwge25hbWU6ICJhZXMtY2JjIiwgbGVuZ3Ro
OiAxMjh9LCB0cnVlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCJdKS50aGVuKGZ1bmN0aW9uKGtleSkg
ewotICAgIHBvc3RNZXNzYWdlKGtleSwgIioiKTsKLX0pOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08
L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3Vi
dGxlL2Flcy1wb3N0TWVzc2FnZS5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOm1pbWUtdHlw
ZQojIyAtMSArMCwwICMjCi10ZXh0L2h0bWwKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0
eQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hcmd1bWVudC1jb252ZXJz
aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL2FyZ3VtZW50LWNvbnZlcnNpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMjA5MTkp
CisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2FyZ3VtZW50LWNvbnZlcnNpb24t
ZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKQEAgLTEsMzkgKzAsMCBAQAotQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDE6IFdlYktpdFN1YnRsZUNyeXB0byBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNl
IFN1YnRsZUNyeXB0byBpbnN0ZWFkLgotVGVzdCBjcnlwdG8ud2Via2l0U3VidGxlIGFyZ3VtZW50
IGNvbnZlcnNpb24KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLQotUGFzc2luZyBh
bGdvcml0aG0gbmFtZSBhcyBhIHN0cmluZyBvYmplY3QuLi4KLVBBU1MgLi4uc3VjY2VlZGVkCi0K
LVBhc3NpbmcgYWxnb3JpdGhtIG5hbWUgYXMgYSBzdHJpbmcgb2JqZWN0IGluIGEgZGljdGlvbmFy
eS4uLgotUEFTUyAuLi5zdWNjZWVkZWQKLQotUGFzc2luZyBhbGdvcml0aG0gbmFtZSBhcyBhbiBv
YmplY3Qgd2l0aCB0b1N0cmluZwotUEFTUyAuLi5zdWNjZWVkZWQKLQotUGFzc2luZyBpbnZhbGlk
IGRhdGEgdG8gZGlnZXN0KCkKLVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5kaWdlc3Qoe25hbWU6
ICdzaGEtMSd9KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50
cy4KLVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtMSd9LCBudWxs
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjcnlwdG8ud2Vi
a2l0U3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0xJ30sIDEwKSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjcnlwdG8ud2Via2l0U3VidGxlLmRpZ2VzdCh7bmFt
ZTogJ3NoYS0xJ30sIFsxMF0pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJyb3Iu
Ci1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0KHtuYW1lOiAnc2hhLTEnfSwgW25ldyBV
aW50OEFycmF5KFswXSldKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgot
Ci1QYXNzaW5nIGludmFsaWQgYWxnb3JpdGhtSWRlbnRpZmllcnMgdG8gZGlnZXN0KCkKLVBBU1Mg
Y3J5cHRvLndlYmtpdFN1YnRsZS5kaWdlc3QoeyB0b1N0cmluZzpmdW5jdGlvbigpIHsgcmV0dXJu
ICdzaGEtMScgfSB9LCBkYXRhKSB0aHJldyBleGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3I6IFRo
ZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4uCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUu
ZGlnZXN0KHtuYW1lOiAnJ30sIGRhdGEpIHRocmV3IGV4Y2VwdGlvbiBOb3RTdXBwb3J0ZWRFcnJv
cjogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLi4KLVBBU1MgY3J5cHRvLndlYmtpdFN1
YnRsZS5kaWdlc3Qoe25hbWU6IG51bGx9LCBkYXRhKSB0aHJldyBleGNlcHRpb24gTm90U3VwcG9y
dGVkRXJyb3I6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4uCi1QQVNTIGNyeXB0by53
ZWJraXRTdWJ0bGUuZGlnZXN0KHtuYW1lOiB1bmRlZmluZWR9LCBkYXRhKSB0aHJldyBleGNlcHRp
b24gTm90U3VwcG9ydGVkRXJyb3I6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4uCi1Q
QVNTIGNyeXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0KHtuYW1lOiAnc2hhJ30sIGRhdGEpIHRocmV3
IGV4Y2VwdGlvbiBOb3RTdXBwb3J0ZWRFcnJvcjogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9y
dGVkLi4KLVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5kaWdlc3Qoe25hbWU6IDF9LCBkYXRhKSB0
aHJldyBleGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3I6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1
cHBvcnRlZC4uCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0KCcnLCBkYXRhKSB0aHJl
dyBleGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3I6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBv
cnRlZC4uCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0KG51bGwsIGRhdGEpIHRocmV3
IGV4Y2VwdGlvbiBOb3RTdXBwb3J0ZWRFcnJvcjogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9y
dGVkLi4KLVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5kaWdlc3QodW5kZWZpbmVkLCBkYXRhKSB0
aHJldyBleGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3I6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1
cHBvcnRlZC4uCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0KDEsIGRhdGEpIHRocmV3
IGV4Y2VwdGlvbiBOb3RTdXBwb3J0ZWRFcnJvcjogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9y
dGVkLi4KLVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5kaWdlc3Qoe30sIGRhdGEpIHRocmV3IGV4
Y2VwdGlvbiBOb3RTdXBwb3J0ZWRFcnJvcjogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVk
Li4KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCklu
ZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2FyZ3VtZW50LWNvbnZlcnNpb24u
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2FyZ3Vt
ZW50LWNvbnZlcnNpb24uaHRtbAkocmV2aXNpb24gMjIwOTE5KQorKysgTGF5b3V0VGVzdHMvY3J5
cHRvL3dlYmtpdFN1YnRsZS9hcmd1bWVudC1jb252ZXJzaW9uLmh0bWwJKG5vbmV4aXN0ZW50KQpA
QCAtMSw1NiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5Pgot
PHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNj
cmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IGNyeXB0by53ZWJraXRTdWJ0bGUgYXJndW1lbnQgY29u
dmVyc2lvbiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotUHJvbWlzZS5yZXNvbHZlKG51
bGwpLnRoZW4oZnVuY3Rpb24oKSB7Ci0gICAgZGVidWcoIlxuUGFzc2luZyBhbGdvcml0aG0gbmFt
ZSBhcyBhIHN0cmluZyBvYmplY3QuLi4iKTsKLSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRs
ZS5kaWdlc3QobmV3IFN0cmluZygnc2hhLTEnKSwgbmV3IFVpbnQ4QXJyYXkoW10pKTsKLX0pLnRo
ZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgdGVzdFBhc3NlZCgiLi4uc3VjY2VlZGVkIik7Ci0g
ICAgZGVidWcoIlxuUGFzc2luZyBhbGdvcml0aG0gbmFtZSBhcyBhIHN0cmluZyBvYmplY3QgaW4g
YSBkaWN0aW9uYXJ5Li4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0
KHtuYW1lOiBuZXcgU3RyaW5nKCdzaGEtMScpfSwgbmV3IFVpbnQ4QXJyYXkoW10pKTsKLX0pLnRo
ZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgdGVzdFBhc3NlZCgiLi4uc3VjY2VlZGVkIik7Ci0g
ICAgZGVidWcoIlxuUGFzc2luZyBhbGdvcml0aG0gbmFtZSBhcyBhbiBvYmplY3Qgd2l0aCB0b1N0
cmluZyIpOwotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLmRpZ2VzdCh7bmFtZTogeyB0
b1N0cmluZzpmdW5jdGlvbigpIHsgcmV0dXJuICdzaGEtMScgfSB9IH0sIG5ldyBVaW50OEFycmF5
KFtdKSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHRlc3RQYXNzZWQoIi4uLnN1
Y2NlZWRlZCIpOwotCi0gICAgZGVidWcoIlxuUGFzc2luZyBpbnZhbGlkIGRhdGEgdG8gZGlnZXN0
KCkiKTsKLSAgICBzaG91bGRUaHJvdygiY3J5cHRvLndlYmtpdFN1YnRsZS5kaWdlc3Qoe25hbWU6
ICdzaGEtMSd9KSIpOwotICAgIHNob3VsZFRocm93KCJjcnlwdG8ud2Via2l0U3VidGxlLmRpZ2Vz
dCh7bmFtZTogJ3NoYS0xJ30sIG51bGwpIik7Ci0gICAgc2hvdWxkVGhyb3coImNyeXB0by53ZWJr
aXRTdWJ0bGUuZGlnZXN0KHtuYW1lOiAnc2hhLTEnfSwgMTApIik7Ci0gICAgc2hvdWxkVGhyb3co
ImNyeXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0KHtuYW1lOiAnc2hhLTEnfSwgWzEwXSkiKTsKLSAg
ICBzaG91bGRUaHJvdygiY3J5cHRvLndlYmtpdFN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtMSd9
LCBbbmV3IFVpbnQ4QXJyYXkoWzBdKV0pIik7Ci0KLSAgICBkZWJ1ZygiXG5QYXNzaW5nIGludmFs
aWQgYWxnb3JpdGhtSWRlbnRpZmllcnMgdG8gZGlnZXN0KCkiKTsKLSAgICBkYXRhID0gbmV3IFVp
bnQ4QXJyYXkoWzBdKTsKLSAgICBzaG91bGRUaHJvdygiY3J5cHRvLndlYmtpdFN1YnRsZS5kaWdl
c3QoeyB0b1N0cmluZzpmdW5jdGlvbigpIHsgcmV0dXJuICdzaGEtMScgfSB9LCBkYXRhKSIpOyAv
LyBBbGdvcml0aG0gbm9ybWFsaXphdGlvbiBkb2Vzbid0IGF0dGVtcHQgdG8gY2FsbCB0b1N0cmlu
Zy4KLSAgICBzaG91bGRUaHJvdygiY3J5cHRvLndlYmtpdFN1YnRsZS5kaWdlc3Qoe25hbWU6ICcn
fSwgZGF0YSkiKTsKLSAgICBzaG91bGRUaHJvdygiY3J5cHRvLndlYmtpdFN1YnRsZS5kaWdlc3Qo
e25hbWU6IG51bGx9LCBkYXRhKSIpOwotICAgIHNob3VsZFRocm93KCJjcnlwdG8ud2Via2l0U3Vi
dGxlLmRpZ2VzdCh7bmFtZTogdW5kZWZpbmVkfSwgZGF0YSkiKTsKLSAgICBzaG91bGRUaHJvdygi
Y3J5cHRvLndlYmtpdFN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEnfSwgZGF0YSkiKTsKLSAgICBz
aG91bGRUaHJvdygiY3J5cHRvLndlYmtpdFN1YnRsZS5kaWdlc3Qoe25hbWU6IDF9LCBkYXRhKSIp
OwotICAgIHNob3VsZFRocm93KCJjcnlwdG8ud2Via2l0U3VidGxlLmRpZ2VzdCgnJywgZGF0YSki
KTsKLSAgICBzaG91bGRUaHJvdygiY3J5cHRvLndlYmtpdFN1YnRsZS5kaWdlc3QobnVsbCwgZGF0
YSkiKTsKLSAgICBzaG91bGRUaHJvdygiY3J5cHRvLndlYmtpdFN1YnRsZS5kaWdlc3QodW5kZWZp
bmVkLCBkYXRhKSIpOwotICAgIHNob3VsZFRocm93KCJjcnlwdG8ud2Via2l0U3VidGxlLmRpZ2Vz
dCgxLCBkYXRhKSIpOwotICAgIHNob3VsZFRocm93KCJjcnlwdG8ud2Via2l0U3VidGxlLmRpZ2Vz
dCh7fSwgZGF0YSkiKTsKLX0pLnRoZW4oZmluaXNoSlNUZXN0KTsKLQotPC9zY3JpcHQ+Ci0KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwv
Ym9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYXJy
YXktYnVmZmVyLXZpZXctb2Zmc2V0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2FycmF5LWJ1ZmZlci12aWV3LW9mZnNldC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDIyMDkxOSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0
bGUvYXJyYXktYnVmZmVyLXZpZXctb2Zmc2V0LWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCkBA
IC0xLDExICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBXZWJLaXRTdWJ0bGVDcnlw
dG8gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBTdWJ0bGVDcnlwdG8gaW5zdGVhZC4KLVRlc3Qg
dGhhdCBhbiBBcnJheUJ1ZmZlclZpZXcgd2l0aCBvZmZzZXQgaXMgcHJvY2Vzc2VkIGNvcnJlY3Rs
eS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgYnl0ZXNUb0hleFN0cmlu
ZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSBpcyAnMmM3ZTdjMzg0Zjc4Mjk2OTQyODJiMWUzYTYy
MTZkZWY4MDgyZDA1NScKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBD
T01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2FycmF5LWJ1
ZmZlci12aWV3LW9mZnNldC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93
ZWJraXRTdWJ0bGUvYXJyYXktYnVmZmVyLXZpZXctb2Zmc2V0Lmh0bWwJKHJldmlzaW9uIDIyMDkx
OSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYXJyYXktYnVmZmVyLXZpZXct
b2Zmc2V0Lmh0bWwJKG5vbmV4aXN0ZW50KQpAQCAtMSwzMCArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvY29tbW9uLmpzIj48
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IHRoYXQg
YW4gQXJyYXlCdWZmZXJWaWV3IHdpdGggb2Zmc2V0IGlzIHByb2Nlc3NlZCBjb3JyZWN0bHkuIik7
Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1Qcm9taXNlLnJlc29sdmUobnVsbCkudGhlbihm
dW5jdGlvbigpIHsKLSAgICB2YXIgb3JpZ2luYWxEYXRhID0gbmV3IFVpbnQ4QXJyYXkoWzB4Ziwg
MHhmLCAweGYsIDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwLCAweGYsIDB4ZiwgMHhm
XSk7Ci0gICAgdmFyIHNsaWNlZERhdGEgPSBuZXcgVWludDhBcnJheShvcmlnaW5hbERhdGEuYnVm
ZmVyLCAzLCAxMSk7Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0KHtuYW1l
OiAnc2hhLTEnfSwgc2xpY2VkRGF0YSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAg
IGRpZ2VzdCA9IHJlc3VsdDsKLSAgICAvLyBFeHBlY3RlZCByZXN1bHQgZm9yIFswLCAxLCAyLCAz
LCA0LCA1LCA2LCA3LCA4LCA5LCAxMF0uCi0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmco
bmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkiLCAiJzJjN2U3YzM4NGY3ODI5Njk0MjgyYjFlM2E2MjE2
ZGVmODA4MmQwNTUnIik7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08
L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Rp
c2FsbG93ZWQtaW4td29ya2VyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9jcnlwdG8vd2Via2l0U3VidGxlL2Rpc2FsbG93ZWQtaW4td29ya2VyLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMjIwOTE5KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9kaXNh
bGxvd2VkLWluLXdvcmtlci1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSwxMSArMCww
IEBACi1bV29ya2VyXSBUZXN0cyB0aGF0IGNyeXB0by53ZWJraXRTdWJ0bGUgd2lsbCB0aHJvdyBp
biB3b3JrZXJzLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotU3RhcnRpbmcgd29y
a2VyOiByZXNvdXJjZXMvZGlzYWxsb3dlZC1pbi13b3JrZXIuanMKLVBBU1MgW1dvcmtlcl0gY3J5
cHRvLndlYmtpdFN1YnRsZSB0aHJldyBleGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3I6IFRoZSBv
cGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4uCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1
YnRsZS9kaXNhbGxvd2VkLWluLXdvcmtlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2NyeXB0by93ZWJraXRTdWJ0bGUvZGlzYWxsb3dlZC1pbi13b3JrZXIuaHRtbAkocmV2aXNpb24g
MjIwOTE5KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9kaXNhbGxvd2VkLWlu
LXdvcmtlci5odG1sCShub25leGlzdGVudCkKQEAgLTEsMTIgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08aHRtbD4KLTxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci0gICAgPHNjcmlwdD4KLSAg
ICAgICAgd29ya2VyID0gc3RhcnRXb3JrZXIoJ3Jlc291cmNlcy9kaXNhbGxvd2VkLWluLXdvcmtl
ci5qcycpOwotICAgIDwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvZ2MtMi1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9nYy0yLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMjIwOTE5KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9nYy0yLWV4
cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCkBAIC0xLDEzICswLDAgQEAKLUNPTlNPTEUgTUVTU0FH
RTogbGluZSAxOTogV2ViS2l0U3VidGxlQ3J5cHRvIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2Ug
U3VidGxlQ3J5cHRvIGluc3RlYWQuCi1UZXN0IHRoYXQgd2luZG93LmNyeXB0by53ZWJraXRTdWJ0
bGUgd3JhcHBlciBwcmVzZXJ2ZXMgY3VzdG9tIHByb3BlcnRpZXMuCi0KLU9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KLQotCi1QQVNTIFtvYmplY3QgQ3J5cHRvXSBpcyBkZWZpbmVkLgotUEFTUyBb
b2JqZWN0IFdlYktpdFN1YnRsZUNyeXB0b10gaXMgZGVmaW5lZC4KLVBBU1MgYW5vdGhlcldpbmRv
d0NyeXB0by53ZWJraXRTdWJ0bGUuZm9vIGlzICJiYXIiCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dl
YmtpdFN1YnRsZS9nYy0yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dl
YmtpdFN1YnRsZS9nYy0yLmh0bWwJKHJldmlzaW9uIDIyMDkxOSkKKysrIExheW91dFRlc3RzL2Ny
eXB0by93ZWJraXRTdWJ0bGUvZ2MtMi5odG1sCShub25leGlzdGVudCkKQEAgLTEsNDYgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgi
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci0KLWRlc2NyaXB0aW9uKCJUZXN0IHRoYXQgd2lu
ZG93LmNyeXB0by53ZWJraXRTdWJ0bGUgd3JhcHBlciBwcmVzZXJ2ZXMgY3VzdG9tIHByb3BlcnRp
ZXMuIik7Ci1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIGFub3RoZXJXaW5kb3dDcnlwdG87
Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17Ci0gICAgYW5vdGhlcldpbmRvd0NyeXB0byA9IGZy
YW1lc1swXS5jcnlwdG87Ci0gICAgc2hvdWxkQmVEZWZpbmVkKGFub3RoZXJXaW5kb3dDcnlwdG8p
OwotICAgIHNob3VsZEJlRGVmaW5lZChhbm90aGVyV2luZG93Q3J5cHRvLndlYmtpdFN1YnRsZSk7
Ci0KLSAgICBhbm90aGVyV2luZG93Q3J5cHRvLndlYmtpdFN1YnRsZS5mb28gPSAiYmFyIjsKLSAg
ICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCJpZnJhbWUiKVswXSk7Ci0gICAgZ2MoKTsKLSAgICBzZXRUaW1lb3V0KGNvbnRpbnVlVGVzdCwg
MTApOwotfQotCi1mdW5jdGlvbiBjb250aW51ZVRlc3QoKQotewotICAgIGdjKCk7Ci0gICAgc2V0
VGltZW91dChmaW5pc2hUZXN0LCAxMCk7Ci19Ci0KLWZ1bmN0aW9uIGZpbmlzaFRlc3QoKQotewot
ICAgIGdjKCk7Ci0gICAgc2hvdWxkQmUoJ2Fub3RoZXJXaW5kb3dDcnlwdG8ud2Via2l0U3VidGxl
LmZvbycsICciYmFyIicpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfQotCi13aW5kb3cub25sb2Fk
ID0gc3RhcnRUZXN0OwotCi08L3NjcmlwdD4KLTxpZnJhbWUgc3JjPSJhYm91dDpibGFuayI+PC9p
ZnJhbWU+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL2djLTMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0
by93ZWJraXRTdWJ0bGUvZ2MtMy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIyMDkxOSkKKysrIExh
eW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvZ2MtMy1leHBlY3RlZC50eHQJKG5vbmV4aXN0
ZW50KQpAQCAtMSwxMSArMCwwIEBACi1UZXN0IHRoYXQgd2luZG93LmNyeXB0byB3cmFwcGVyIHBy
b3RlY3RzIGFsbCBkZXBlbmRlbmNpZXMsIHNvIGl0IGNhbiBhbHdheXMgYmUgdXNlZCB0byBjcmVh
dGUgY3J5cHRvLndlYmtpdFN1YnRsZS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0K
LVBBU1MgW29iamVjdCBDcnlwdG9dIGlzIGRlZmluZWQuCi1QQVNTIFtvYmplY3QgV2ViS2l0U3Vi
dGxlQ3J5cHRvXSBpcyBkZWZpbmVkLgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQot
Ci1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUv
Z2MtMy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUv
Z2MtMy5odG1sCShyZXZpc2lvbiAyMjA5MTkpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL2djLTMuaHRtbAkobm9uZXhpc3RlbnQpCkBAIC0xLDQzICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHk+Ci08c2NyaXB0PgotCi1kZXNjcmlwdGlvbigiVGVzdCB0aGF0IHdpbmRvdy5jcnlwdG8g
d3JhcHBlciBwcm90ZWN0cyBhbGwgZGVwZW5kZW5jaWVzLCBzbyBpdCBjYW4gYWx3YXlzIGJlIHVz
ZWQgdG8gY3JlYXRlIGNyeXB0by53ZWJraXRTdWJ0bGUuIik7Ci1qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKLQotdmFyIGFub3RoZXJXaW5kb3dDcnlwdG87Ci0KLWZ1bmN0aW9uIHN0YXJ0VGVzdCgpCi17
Ci0gICAgYW5vdGhlcldpbmRvd0NyeXB0byA9IGZyYW1lc1swXS5jcnlwdG87Ci0gICAgc2hvdWxk
QmVEZWZpbmVkKGFub3RoZXJXaW5kb3dDcnlwdG8pOwotICAgIGRvY3VtZW50LmJvZHkucmVtb3Zl
Q2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlmcmFtZSIpWzBdKTsKLSAgICBn
YygpOwotICAgIHNldFRpbWVvdXQoY29udGludWVUZXN0LCAxMCk7Ci19Ci0KLWZ1bmN0aW9uIGNv
bnRpbnVlVGVzdCgpCi17Ci0gICAgZ2MoKTsKLSAgICBzZXRUaW1lb3V0KGZpbmlzaFRlc3QsIDEw
KTsKLX0KLQotZnVuY3Rpb24gZmluaXNoVGVzdCgpCi17Ci0gICAgZ2MoKTsKLSAgICBzaG91bGRC
ZURlZmluZWQoYW5vdGhlcldpbmRvd0NyeXB0by53ZWJraXRTdWJ0bGUpOwotICAgIGZpbmlzaEpT
VGVzdCgpOwotfQotCi13aW5kb3cub25sb2FkID0gc3RhcnRUZXN0OwotCi08L3NjcmlwdD4KLTxp
ZnJhbWUgc3JjPSJhYm91dDpibGFuayI+PC9pZnJhbWU+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2djLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2djLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMjIwOTE5KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9nYy1l
eHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSwxMSArMCwwIEBACi1DT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTU6IFdlYktpdFN1YnRsZUNyeXB0byBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNl
IFN1YnRsZUNyeXB0byBpbnN0ZWFkLgotVGVzdCB0aGF0IHdpbmRvdy5jcnlwdG8ud2Via2l0U3Vi
dGxlIHdyYXBwZXIgcHJlc2VydmVzIGN1c3RvbSBwcm9wZXJ0aWVzLgotCi1PbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCi0KLQotUEFTUyB3aW5kb3cuY3J5cHRvLndlYmtpdFN1YnRsZS5mb28gaXMg
ImJhciIKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQot
CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2djLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9nYy5odG1sCShyZXZpc2lvbiAy
MjA5MTkpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2djLmh0bWwJKG5vbmV4
aXN0ZW50KQpAQCAtMSwzOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+
Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdD4KLQotZGVz
Y3JpcHRpb24oIlRlc3QgdGhhdCB3aW5kb3cuY3J5cHRvLndlYmtpdFN1YnRsZSB3cmFwcGVyIHBy
ZXNlcnZlcyBjdXN0b20gcHJvcGVydGllcy4iKTsKLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1m
dW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIHdpbmRvdy5jcnlwdG8ud2Via2l0U3VidGxlLmZv
byA9ICJiYXIiOwotICAgIGdjKCk7Ci0gICAgc2V0VGltZW91dChjb250aW51ZVRlc3QsIDEwKTsK
LX0KLQotZnVuY3Rpb24gY29udGludWVUZXN0KCkKLXsKLSAgICBnYygpOwotICAgIHNldFRpbWVv
dXQoZmluaXNoVGVzdCwgMTApOwotfQotCi1mdW5jdGlvbiBmaW5pc2hUZXN0KCkKLXsKLSAgICBn
YygpOwotICAgIHNob3VsZEJlKCd3aW5kb3cuY3J5cHRvLndlYmtpdFN1YnRsZS5mb28nLCAnImJh
ciInKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0KLQotd2luZG93Lm9ubG9hZCA9IHN0YXJ0VGVz
dDsKLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlw
dG8vd2Via2l0U3VidGxlL2htYWMtY2hlY2stYWxnb3JpdGhtLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2htYWMtY2hlY2stYWxnb3Jp
dGhtLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjIwOTE5KQorKysgTGF5b3V0VGVzdHMvY3J5cHRv
L3dlYmtpdFN1YnRsZS9obWFjLWNoZWNrLWFsZ29yaXRobS1leHBlY3RlZC50eHQJKG5vbmV4aXN0
ZW50KQpAQCAtMSwxNiArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjA6IFdlYktpdFN1
YnRsZUNyeXB0byBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIFN1YnRsZUNyeXB0byBpbnN0ZWFk
LgotVGVzdCB0aGF0IEhNQUMgb3BlcmF0aW9ucyBvbmx5IHdvcmsgd2hlbiBoYXNoIGZ1bmN0aW9u
cyBtYXRjaCBiZXR3ZWVuIGludm9jYXRpb24gYW5kIGtleS4KLQotT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgotCi0KLUltcG9ydGluZyBhIHJhdyBITUFDIFNIQS0xIGtleSBmcm9tIHN0cmluZyBs
aXRlcmFsLi4uCi1Eb25lCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUuc2lnbih7bmFtZTogJ2ht
YWMnLCBoYXNoOiB7bmFtZTogJ3NoYS0xJ319LCBrZXksIGFzY2lpVG9VaW50OEFycmF5KCdmb28n
KSkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUuc2ln
bih7bmFtZTogJ2htYWMnLCBoYXNoOiB7bmFtZTogJ3NoYS0yNTYnfX0sIGtleSwgYXNjaWlUb1Vp
bnQ4QXJyYXkoJ2ZvbycpKSB0aHJldyBleGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3I6IFRoZSBv
cGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4uCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUudmVy
aWZ5KHtuYW1lOiAnaG1hYycsIGhhc2g6IHtuYW1lOiAnc2hhLTEnfX0sIGtleSwgYXNjaWlUb1Vp
bnQ4QXJyYXkoJ2Zha2Ugc2lnbmF0dXJlJyksIGFzY2lpVG9VaW50OEFycmF5KCdmb28nKSkgZGlk
IG5vdCB0aHJvdyBleGNlcHRpb24uCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUudmVyaWZ5KHtu
YW1lOiAnaG1hYycsIGhhc2g6IHtuYW1lOiAnc2hhLTI1Nid9fSwga2V5LCBhc2NpaVRvVWludDhB
cnJheSgnZmFrZSBzaWduYXR1cmUnKSwgYXNjaWlUb1VpbnQ4QXJyYXkoJ2ZvbycpKSB0aHJldyBl
eGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3I6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRl
ZC4uCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJ
bmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLWNoZWNrLWFsZ29yaXRo
bS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaG1h
Yy1jaGVjay1hbGdvcml0aG0uaHRtbAkocmV2aXNpb24gMjIwOTE5KQorKysgTGF5b3V0VGVzdHMv
Y3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLWNoZWNrLWFsZ29yaXRobS5odG1sCShub25leGlzdGVu
dCkKQEAgLTEsMzYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9k
eT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0K
LTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCB0aGF0IEhNQUMgb3BlcmF0aW9ucyBvbmx5IHdv
cmsgd2hlbiBoYXNoIGZ1bmN0aW9ucyBtYXRjaCBiZXR3ZWVuIGludm9jYXRpb24gYW5kIGtleS4i
KTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBobWFjS2V5ID0gYXNjaWlUb1VpbnQ4
QXJyYXkoJ2EnKTsKLXZhciBleHRyYWN0YWJsZSA9IHRydWU7Ci0KLWRlYnVnKCJJbXBvcnRpbmcg
YSByYXcgSE1BQyBTSEEtMSBrZXkgZnJvbSBzdHJpbmcgbGl0ZXJhbC4uLiIpOwotY3J5cHRvLndl
YmtpdFN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIGhtYWNLZXksIHtuYW1lOiAnaG1hYycsIGhhc2g6
IHtuYW1lOiAnc2hhLTEnfX0sIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pLnRoZW4o
ZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgZGVidWcoIkRvbmUiKTsKLSAgICBrZXkgPSByZXN1bHQ7
Ci0KLSAgICBzaG91bGROb3RUaHJvdygiY3J5cHRvLndlYmtpdFN1YnRsZS5zaWduKHtuYW1lOiAn
aG1hYycsIGhhc2g6IHtuYW1lOiAnc2hhLTEnfX0sIGtleSwgYXNjaWlUb1VpbnQ4QXJyYXkoJ2Zv
bycpKSIpOwotICAgIHNob3VsZFRocm93KCJjcnlwdG8ud2Via2l0U3VidGxlLnNpZ24oe25hbWU6
ICdobWFjJywgaGFzaDoge25hbWU6ICdzaGEtMjU2J319LCBrZXksIGFzY2lpVG9VaW50OEFycmF5
KCdmb28nKSkiKTsKLQotICAgIHNob3VsZE5vdFRocm93KCJjcnlwdG8ud2Via2l0U3VidGxlLnZl
cmlmeSh7bmFtZTogJ2htYWMnLCBoYXNoOiB7bmFtZTogJ3NoYS0xJ319LCBrZXksIGFzY2lpVG9V
aW50OEFycmF5KCdmYWtlIHNpZ25hdHVyZScpLCBhc2NpaVRvVWludDhBcnJheSgnZm9vJykpIik7
Ci0gICAgc2hvdWxkVGhyb3coImNyeXB0by53ZWJraXRTdWJ0bGUudmVyaWZ5KHtuYW1lOiAnaG1h
YycsIGhhc2g6IHtuYW1lOiAnc2hhLTI1Nid9fSwga2V5LCBhc2NpaVRvVWludDhBcnJheSgnZmFr
ZSBzaWduYXR1cmUnKSwgYXNjaWlUb1VpbnQ4QXJyYXkoJ2ZvbycpKSIpOwotCi0gICAgZmluaXNo
SlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2htYWMtZXhwb3J0LWtleS1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLWV4cG9y
dC1rZXktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMjA5MTkpCisrKyBMYXlvdXRUZXN0cy9jcnlw
dG8vd2Via2l0U3VidGxlL2htYWMtZXhwb3J0LWtleS1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50
KQpAQCAtMSwzMiArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjc6IFdlYktpdFN1YnRs
ZUNyeXB0byBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIFN1YnRsZUNyeXB0byBpbnN0ZWFkLgot
VGVzdCBleHBvcnRpbmcgYW4gQUVTIGtleS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgot
Ci0KLUltcG9ydGluZyBhIEpXSyBrZXkuLi4KLVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5leHBv
cnRLZXkobnVsbCwga2V5KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBVbmtub3duIGtleSBm
b3JtYXQuCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUuZXhwb3J0S2V5KHVuZGVmaW5lZCwga2V5
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBVbmtub3duIGtleSBmb3JtYXQuCi1QQVNTIGNy
eXB0by53ZWJraXRTdWJ0bGUuZXhwb3J0S2V5KHt9LCBrZXkpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IFVua25vd24ga2V5IGZvcm1hdC4KLVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5leHBv
cnRLZXkoIiIsIGtleSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVW5rbm93biBrZXkgZm9y
bWF0LgotUEFTUyBjcnlwdG8ud2Via2l0U3VidGxlLmV4cG9ydEtleSgiZm9vYmFyIiwga2V5KSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBVbmtub3duIGtleSBmb3JtYXQuCi1FeHBvcnRpbmcg
dGhlIGtleSBhcyByYXcgZGF0YS4uLgotUEFTUyBieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFy
cmF5KGV4cG9ydGVkRGF0YSkpIGlzICc2YTE4ZTQ5ZmVmZjdmM2I3ZTA5ZWM4OWI3ZjZkZWFiMmY2
YTE4ZTQ5ZmVmZjdmM2I3ZTA5ZWM4OWI3ZjZkZWFiJwotRXhwb3J0aW5nIHRoZSBrZXkgYXMgSldL
Li4uCi1QQVNTIGV4cG9ydGVkSldLLmt0eSBpcyAnb2N0JwotUEFTUyBleHBvcnRlZEpXSy5rIGlz
ICdhaGprbi1fMzg3Zmduc2liZjIzcXN2YWhqa24tXzM4N2ZnbnNpYmYyM3FzJwotUEFTUyBleHBv
cnRlZEpXSy5hbGcgaXMgJ0hTMjU2JwotUEFTUyBleHBvcnRlZEpXSy5leHQgaXMgdHJ1ZQotUEFT
UyBleHBvcnRlZEpXSy51c2UgaXMgdW5kZWZpbmVkCi1QQVNTIGV4cG9ydGVkSldLLmtleV9vcHMg
aXMgWydzaWduJywgJ3ZlcmlmeSddCi0KLUltcG9ydGluZyBhIGtleSB0aGF0J3Mgbm90IGV4dHJh
Y3RhYmxlLi4uCi0KLVRyeWluZyB0byBleHBvcnQgYXMgcmF3Li4uCi1QQVNTIFJlamVjdGVkLCBh
cyBleHBlY3RlZAotVHJ5aW5nIHRvIGV4cG9ydCBhcyBqd2suLi4KLVBBU1MgUmVqZWN0ZWQsIGFz
IGV4cGVjdGVkCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExF
VEUKLQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRs
ZS9obWFjLWV4cG9ydC1rZXktZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVv
bC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9w
ZXJ0eQpEZWxldGVkOiBzdm46bWltZS10eXBlCiMjIC0xICswLDAgIyMKLXRleHQvcGxhaW4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dl
YmtpdFN1YnRsZS9obWFjLWV4cG9ydC1rZXkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9jcnlwdG8vd2Via2l0U3VidGxlL2htYWMtZXhwb3J0LWtleS5odG1sCShyZXZpc2lvbiAyMjA5
MTkpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2htYWMtZXhwb3J0LWtleS5o
dG1sCShub25leGlzdGVudCkKQEAgLTEsODAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBleHBvcnRpbmcgYW4g
QUVTIGtleS4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBleHRyYWN0YWJsZSA9
IHRydWU7Ci12YXIgbm9uRXh0cmFjdGFibGUgPSBmYWxzZTsKLQotdmFyIGp3a0tleSA9IHsKLSAg
ICAia3R5IjogIm9jdCIsCi0gICAgImsiOiAiYWhqa24tXzM4N2ZnbnNpYmYyM3FzdmFoamtuLV8z
ODdmZ25zaWJmMjNxcyIKLX07Ci0KLXZhciBqd2tLZXlBc0FycmF5QnVmZmVyID0gYXNjaWlUb1Vp
bnQ4QXJyYXkoSlNPTi5zdHJpbmdpZnkoandrS2V5KSk7Ci0KLWRlYnVnKCJJbXBvcnRpbmcgYSBK
V0sga2V5Li4uIik7Ci1jcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgiandrIiwgandrS2V5
QXNBcnJheUJ1ZmZlciwgeyBuYW1lOiAiSE1BQyIsIGhhc2g6ICJTSEEtMjU2IiB9LCBleHRyYWN0
YWJsZSwgWyJzaWduIiwgInZlcmlmeSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGtl
eSA9IHJlc3VsdDsKLQotICAgIHNob3VsZFRocm93KCdjcnlwdG8ud2Via2l0U3VidGxlLmV4cG9y
dEtleShudWxsLCBrZXkpJyk7Ci0gICAgc2hvdWxkVGhyb3coJ2NyeXB0by53ZWJraXRTdWJ0bGUu
ZXhwb3J0S2V5KHVuZGVmaW5lZCwga2V5KScpOwotICAgIHNob3VsZFRocm93KCdjcnlwdG8ud2Vi
a2l0U3VidGxlLmV4cG9ydEtleSh7fSwga2V5KScpOwotICAgIHNob3VsZFRocm93KCdjcnlwdG8u
d2Via2l0U3VidGxlLmV4cG9ydEtleSgiIiwga2V5KScpOwotICAgIHNob3VsZFRocm93KCdjcnlw
dG8ud2Via2l0U3VidGxlLmV4cG9ydEtleSgiZm9vYmFyIiwga2V5KScpOwotCi0gICAgZGVidWco
IkV4cG9ydGluZyB0aGUga2V5IGFzIHJhdyBkYXRhLi4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by53
ZWJraXRTdWJ0bGUuZXhwb3J0S2V5KCJyYXciLCBrZXkpOwotfSkudGhlbihmdW5jdGlvbihyZXN1
bHQpIHsKLSAgICBleHBvcnRlZERhdGEgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9I
ZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZXhwb3J0ZWREYXRhKSkiLCAiJzZhMThlNDlmZWZmN2Yz
YjdlMDllYzg5YjdmNmRlYWIyZjZhMThlNDlmZWZmN2YzYjdlMDllYzg5YjdmNmRlYWInIik7Ci0K
LSAgICBkZWJ1ZygiRXhwb3J0aW5nIHRoZSBrZXkgYXMgSldLLi4uIik7Ci0gICAgcmV0dXJuIGNy
eXB0by53ZWJraXRTdWJ0bGUuZXhwb3J0S2V5KCJqd2siLCBrZXkpOwotfSkudGhlbihmdW5jdGlv
bihyZXN1bHQpIHsKLSAgICBleHBvcnRlZEpXSyA9IEpTT04ucGFyc2UoYnl0ZXNUb0FTQ0lJU3Ry
aW5nKHJlc3VsdCkpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5rdHkiLCAiJ29jdCciKTsK
LSAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0suayIsICInYWhqa24tXzM4N2ZnbnNpYmYyM3FzdmFo
amtuLV8zODdmZ25zaWJmMjNxcyciKTsKLSAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0suYWxnIiwg
IidIUzI1NiciKTsKLSAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0suZXh0IiwgInRydWUiKTsKLSAg
ICBzaG91bGRCZSgiZXhwb3J0ZWRKV0sudXNlIiwgInVuZGVmaW5lZCIpOwotICAgIHNob3VsZEJl
KCJleHBvcnRlZEpXSy5rZXlfb3BzIiwgIlsnc2lnbicsICd2ZXJpZnknXSIpOwotCi0gICAgZGVi
dWcoIlxuSW1wb3J0aW5nIGEga2V5IHRoYXQncyBub3QgZXh0cmFjdGFibGUuLi4iKTsKLSAgICBy
ZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGp3a0tleUFzQXJyYXlC
dWZmZXIsIHsgbmFtZTogIkhNQUMiLCBoYXNoOiAiU0hBLTI1NiIgfSwgbm9uRXh0cmFjdGFibGUs
IFsic2lnbiIsICJ2ZXJpZnkiXSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGtl
eSA9IHJlc3VsdDsKLQotICAgIGRlYnVnKCJcblRyeWluZyB0byBleHBvcnQgYXMgcmF3Li4uIik7
Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUuZXhwb3J0S2V5KCJyYXciLCBrZXkpOwot
fSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICB0ZXN0RmFpbGVkKCJQcm9taXNlIHdhc24n
dCByZWplY3RlZCIpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSwgZnVuY3Rpb24oKSB7Ci0gICAg
dGVzdFBhc3NlZCgiUmVqZWN0ZWQsIGFzIGV4cGVjdGVkIik7Ci0KLSAgICBkZWJ1ZygiVHJ5aW5n
IHRvIGV4cG9ydCBhcyBqd2suLi4iKTsKLSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS5l
eHBvcnRLZXkoImp3ayIsIGtleSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHRl
c3RGYWlsZWQoIlByb21pc2Ugd2Fzbid0IHJlamVjdGVkIik7Ci0gICAgZmluaXNoSlNUZXN0KCk7
Ci19LCBmdW5jdGlvbigpIHsKLSAgICB0ZXN0UGFzc2VkKCJSZWplY3RlZCwgYXMgZXhwZWN0ZWQi
KTsKLQotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9o
dG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRs
ZS9obWFjLWV4cG9ydC1rZXkuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjptaW1lLXR5cGUK
IyMgLTEgKzAsMCAjIwotdGV4dC9odG1sClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkK
SW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1nZW5lcmF0ZS1rZXkt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0
bGUvaG1hYy1nZW5lcmF0ZS1rZXktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMjA5MTkpCisrKyBM
YXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2htYWMtZ2VuZXJhdGUta2V5LWV4cGVjdGVk
LnR4dAkobm9uZXhpc3RlbnQpCkBAIC0xLDMwICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGlu
ZSA2MTY6IFdlYktpdFN1YnRsZUNyeXB0byBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIFN1YnRs
ZUNyeXB0byBpbnN0ZWFkLgotVGVzdCBnZW5lcmF0aW5nIGEgSE1BQyBrZXkuCi0KLU9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUuZ2VuZXJhdGVL
ZXkoImhtYWMiLCBleHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSJdKSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjcnlwdG8ud2Via2l0U3VidGxlLmdlbmVy
YXRlS2V5KHtuYW1lOiAiaG1hYyJ9LCBleHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSJdKSB0
aHJldyBleGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3I6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1
cHBvcnRlZC4uCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUuZ2VuZXJhdGVLZXkoe25hbWU6ICJo
bWFjIiwgbGVuZ3RoOiB1bmRlZmluZWR9LCBleHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSJd
KSB0aHJldyBleGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3I6IFRoZSBvcGVyYXRpb24gaXMgbm90
IHN1cHBvcnRlZC4uCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUuZ2VuZXJhdGVLZXkoe25hbWU6
ICJobWFjIiwgbGVuZ3RoOiB7fX0sIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pIHRo
cmV3IGV4Y2VwdGlvbiBOb3RTdXBwb3J0ZWRFcnJvcjogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3Vw
cG9ydGVkLi4KLQotR2VuZXJhdGluZyBhIGtleSB3aXRoIGRlZmF1bHQgbGVuZ3RoLi4uCi1QQVNT
IGtleS50eXBlIGlzICdzZWNyZXQnCi1QQVNTIGtleS5leHRyYWN0YWJsZSBpcyB0cnVlCi1QQVNT
IGtleS5hbGdvcml0aG0ubmFtZSBpcyAnSE1BQycKLVBBU1Mga2V5LmFsZ29yaXRobS5sZW5ndGgg
aXMgNTEyCi1QQVNTIGtleS5hbGdvcml0aG0uaGFzaC5uYW1lIGlzICdTSEEtMScKLVBBU1Mga2V5
LnVzYWdlcyBpcyBbInNpZ24iLCAidmVyaWZ5Il0KLQotR2VuZXJhdGluZyBhIGtleSB3aXRoIGN1
c3RvbSBsZW5ndGguLi4KLVBBU1Mga2V5LnR5cGUgaXMgJ3NlY3JldCcKLVBBU1Mga2V5LmV4dHJh
Y3RhYmxlIGlzIHRydWUKLVBBU1Mga2V5LmFsZ29yaXRobS5uYW1lIGlzICdITUFDJwotUEFTUyBr
ZXkuYWxnb3JpdGhtLmxlbmd0aCBpcyA4Ci1QQVNTIGtleS5hbGdvcml0aG0uaGFzaC5uYW1lIGlz
ICdTSEEtMScKLVBBU1Mga2V5LnVzYWdlcyBpcyBbInNpZ24iXQotUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2NyeXB0
by93ZWJraXRTdWJ0bGUvaG1hYy1nZW5lcmF0ZS1rZXkuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2htYWMtZ2VuZXJhdGUta2V5Lmh0bWwJKHJldmlz
aW9uIDIyMDkxOSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1nZW5l
cmF0ZS1rZXkuaHRtbAkobm9uZXhpc3RlbnQpCkBAIC0xLDUxICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9jb21tb24uanMi
Pjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3QgZ2Vu
ZXJhdGluZyBhIEhNQUMga2V5LiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIGV4
dHJhY3RhYmxlID0gdHJ1ZTsKLQotc2hvdWxkVGhyb3coJ2NyeXB0by53ZWJraXRTdWJ0bGUuZ2Vu
ZXJhdGVLZXkoImhtYWMiLCBleHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSJdKScpOwotc2hv
dWxkVGhyb3coJ2NyeXB0by53ZWJraXRTdWJ0bGUuZ2VuZXJhdGVLZXkoe25hbWU6ICJobWFjIn0s
IGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pJyk7Ci1zaG91bGRUaHJvdygnY3J5cHRv
LndlYmtpdFN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogImhtYWMiLCBsZW5ndGg6IHVuZGVmaW5l
ZH0sIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pJyk7Ci1zaG91bGRUaHJvdygnY3J5
cHRvLndlYmtpdFN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogImhtYWMiLCBsZW5ndGg6IHt9fSwg
ZXh0cmFjdGFibGUsIFsic2lnbiIsICJ2ZXJpZnkiXSknKTsKLQotZGVidWcoIlxuR2VuZXJhdGlu
ZyBhIGtleSB3aXRoIGRlZmF1bHQgbGVuZ3RoLi4uIik7Ci1jcnlwdG8ud2Via2l0U3VidGxlLmdl
bmVyYXRlS2V5KHtuYW1lOiAiaG1hYyIsIGhhc2g6ICJzaGEtMSJ9LCBleHRyYWN0YWJsZSwgWyJz
aWduIiwgInZlcmlmeSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGtleSA9IHJlc3Vs
dDsKLQotICAgIHNob3VsZEJlKCJrZXkudHlwZSIsICInc2VjcmV0JyIpOwotICAgIHNob3VsZEJl
KCJrZXkuZXh0cmFjdGFibGUiLCAidHJ1ZSIpOwotICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGht
Lm5hbWUiLCAiJ0hNQUMnIik7Ci0gICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubGVuZ3RoIiwg
IjUxMiIpOwotICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLmhhc2gubmFtZSIsICInU0hBLTEn
Iik7Ci0gICAgc2hvdWxkQmUoImtleS51c2FnZXMiLCAnWyJzaWduIiwgInZlcmlmeSJdJyk7Ci0K
LSAgICBkZWJ1ZygiXG5HZW5lcmF0aW5nIGEga2V5IHdpdGggY3VzdG9tIGxlbmd0aC4uLiIpOwot
ICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiaG1hYyIs
IGhhc2g6ICJzaGEtMSIsIGxlbmd0aDogOH0sIGV4dHJhY3RhYmxlLCBbInNpZ24iXSk7Ci19KS50
aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGtleSA9IHJlc3VsdDsKLQotICAgIHNob3VsZEJl
KCJrZXkudHlwZSIsICInc2VjcmV0JyIpOwotICAgIHNob3VsZEJlKCJrZXkuZXh0cmFjdGFibGUi
LCAidHJ1ZSIpOwotICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0hNQUMnIik7
Ci0gICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubGVuZ3RoIiwgIjgiKTsKLSAgICBzaG91bGRC
ZSgia2V5LmFsZ29yaXRobS5oYXNoLm5hbWUiLCAiJ1NIQS0xJyIpOwotICAgIHNob3VsZEJlKCJr
ZXkudXNhZ2VzIiwgJ1sic2lnbiJdJyk7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2Ny
aXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL2htYWMtaW1wb3J0LWp3ay1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLWltcG9ydC1qd2stZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAyMjA5MTkpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2htYWMt
aW1wb3J0LWp3ay1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSwyMyArMCwwIEBACi1D
T05TT0xFIE1FU1NBR0U6IGxpbmUgMjk6IFdlYktpdFN1YnRsZUNyeXB0byBpcyBkZXByZWNhdGVk
LiBQbGVhc2UgdXNlIFN1YnRsZUNyeXB0byBpbnN0ZWFkLgotVGVzdCBpbXBvcnRpbmcgYSBKV0sg
a2V5IGZvciBITUFDLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotSW1wb3J0aW5n
IGEga2V5Li4uCi0KLVBBU1Mga2V5LnR5cGUgaXMgJ3NlY3JldCcKLVBBU1Mga2V5LmV4dHJhY3Rh
YmxlIGlzIGZhbHNlCi1QQVNTIGtleS5hbGdvcml0aG0ubmFtZSBpcyAnSE1BQycKLVBBU1Mga2V5
LmFsZ29yaXRobS5sZW5ndGggaXMgMjU2Ci1QQVNTIGtleS51c2FnZXMgaXMgWyJzaWduIiwgInZl
cmlmeSJdCi0KLVVzaW5nIHRoZSBrZXkgdG8gc2lnbiBtZXNzYWdlICdmb28nLi4uCi1QQVNTIGJ5
dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoc2lnbmF0dXJlKSkgaXMgJ2UwMzczNmZlMDk4
ODkyYjJhMmRhNzc4MTI0MzFmN2MwMTRkMzJlMmZkNjlmM2JjZmY4ODNhYzkyM2E4ZmEyZGEnCi0K
LVZlcmlmeWluZyB0aGUgc2lnbmF0dXJlLi4uCi1QQVNTIHZlcmlmaWNhdGlvblJlc3VsdCBpcyB0
cnVlCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQoK
UHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFj
LWltcG9ydC1qd2stZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHls
ZQojIyAtMSArMCwwICMjCi1uYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpE
ZWxldGVkOiBzdm46bWltZS10eXBlCiMjIC0xICswLDAgIyMKLXRleHQvcGxhaW4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1
YnRsZS9obWFjLWltcG9ydC1qd2suaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlw
dG8vd2Via2l0U3VidGxlL2htYWMtaW1wb3J0LWp3ay5odG1sCShyZXZpc2lvbiAyMjA5MTkpCisr
KyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2htYWMtaW1wb3J0LWp3ay5odG1sCShu
b25leGlzdGVudCkKQEAgLTEsNTUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hl
YWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBpbXBvcnRpbmcgYSBKV0sga2V5
IGZvciBITUFDLiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIGV4dHJhY3RhYmxl
ID0gdHJ1ZTsKLQotdmFyIGhtYWNLZXkgPSB7Ci0gICAgImt0eSI6ICJvY3QiLAotICAgICJhbGci
OiAiSFMyNTYiLAotICAgICJ1c2UiOiAic2lnIiwKLSAgICAiZXh0IjogZmFsc2UsCi0gICAgImsi
OiAiYWhqa24tXzM4N2ZnbnNpYmYyM3FzdmFoamtuLV8zODdmZ25zaWJmMjNxcyIKLX07Ci0KLXZh
ciBobWFjS2V5QXNBcnJheUJ1ZmZlciA9IGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5
KGhtYWNLZXkpKTsKLQotZGVidWcoIkltcG9ydGluZyBhIGtleS4uLlxuIik7Ci1jcnlwdG8ud2Vi
a2l0U3VidGxlLmltcG9ydEtleSgiandrIiwgaG1hY0tleUFzQXJyYXlCdWZmZXIsIG51bGwsIGV4
dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0g
ICAga2V5ID0gcmVzdWx0OwotCi0gICAgc2hvdWxkQmUoImtleS50eXBlIiwgIidzZWNyZXQnIik7
Ci0gICAgc2hvdWxkQmUoImtleS5leHRyYWN0YWJsZSIsICJmYWxzZSIpOwotICAgIHNob3VsZEJl
KCJrZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0hNQUMnIik7Ci0gICAgc2hvdWxkQmUoImtleS5hbGdv
cml0aG0ubGVuZ3RoIiwgIjI1NiIpOwotICAgIHNob3VsZEJlKCJrZXkudXNhZ2VzIiwgJ1sic2ln
biIsICJ2ZXJpZnkiXScpOwotCi0gICAgZGVidWcoIlxuVXNpbmcgdGhlIGtleSB0byBzaWduIG1l
c3NhZ2UgJ2ZvbycuLi4iKTsKLSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS5zaWduKGtl
eS5hbGdvcml0aG0sIGtleSwgYXNjaWlUb1VpbnQ4QXJyYXkoJ2ZvbycpKTsKLX0pLnRoZW4oZnVu
Y3Rpb24ocmVzdWx0KSB7Ci0gICAgc2lnbmF0dXJlID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJi
eXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KHNpZ25hdHVyZSkpIiwgIidlMDM3MzZmZTA5
ODg5MmIyYTJkYTc3ODEyNDMxZjdjMDE0ZDMyZTJmZDY5ZjNiY2ZmODgzYWM5MjNhOGZhMmRhJyIp
OwotCi0gICAgZGVidWcoIlxuVmVyaWZ5aW5nIHRoZSBzaWduYXR1cmUuLi4iKTsKLSAgICByZXR1
cm4gY3J5cHRvLndlYmtpdFN1YnRsZS52ZXJpZnkoa2V5LmFsZ29yaXRobSwga2V5LCByZXN1bHQs
IGFzY2lpVG9VaW50OEFycmF5KCdmb28nKSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewot
ICAgIHZlcmlmaWNhdGlvblJlc3VsdCA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgidmVyaWZpY2F0
aW9uUmVzdWx0IiwgInRydWUiKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOwotPC9zY3JpcHQ+
Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KLTwvYm9keT4KLTwvaHRtbD4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Ny
eXB0by93ZWJraXRTdWJ0bGUvaG1hYy1pbXBvcnQtandrLmh0bWwKX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVk
OiBzdm46bWltZS10eXBlCiMjIC0xICswLDAgIyMKLXRleHQvaHRtbApcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIHByb3BlcnR5CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2ht
YWMtcG9zdE1lc3NhZ2UtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Ny
eXB0by93ZWJraXRTdWJ0bGUvaG1hYy1wb3N0TWVzc2FnZS1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDIyMDkxOSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1wb3N0TWVz
c2FnZS1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSwxNSArMCwwIEBACi1DT05TT0xF
IE1FU1NBR0U6IGxpbmUgMjY6IFdlYktpdFN1YnRsZUNyeXB0byBpcyBkZXByZWNhdGVkLiBQbGVh
c2UgdXNlIFN1YnRsZUNyeXB0byBpbnN0ZWFkLgotVGVzdCBzZW5kaW5nIGNyeXB0byBrZXlzIHZp
YSBwb3N0TWVzc2FnZS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mga2V5
LnR5cGUgaXMgJ3NlY3JldCcKLVBBU1Mga2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKLVBBU1Mga2V5
LmFsZ29yaXRobS5uYW1lIGlzICdITUFDJwotUEFTUyBrZXkuYWxnb3JpdGhtLmxlbmd0aCBpcyAx
MjgKLVBBU1Mga2V5LnVzYWdlcyBpcyBbInNpZ24iLCAidmVyaWZ5Il0KLVBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCgpQcm9wZXJ0eSBjaGFuZ2VzIG9u
OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2htYWMtcG9zdE1lc3NhZ2UtZXhwZWN0
ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1u
YXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpEZWxldGVkOiBzdm46bWltZS10
eXBlCiMjIC0xICswLDAgIyMKLXRleHQvcGxhaW4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9w
ZXJ0eQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLXBvc3RNZXNz
YWdlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9o
bWFjLXBvc3RNZXNzYWdlLmh0bWwJKHJldmlzaW9uIDIyMDkxOSkKKysrIExheW91dFRlc3RzL2Ny
eXB0by93ZWJraXRTdWJ0bGUvaG1hYy1wb3N0TWVzc2FnZS5odG1sCShub25leGlzdGVudCkKQEAg
LTEsMzIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hh
cnNldD0idXRmLTgiPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci0KLWRlc2NyaXB0aW9uKCJUZXN0IHNlbmRp
bmcgY3J5cHRvIGtleXMgdmlhIHBvc3RNZXNzYWdlLiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKLQotd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbihldnQpIHsK
LSAgICBrZXkgPSBldnQuZGF0YTsKLSAgICBzaG91bGRCZSgia2V5LnR5cGUiLCAiJ3NlY3JldCci
KTsKLSAgICBzaG91bGRCZSgia2V5LmV4dHJhY3RhYmxlIiwgInRydWUiKTsKLSAgICBzaG91bGRC
ZSgia2V5LmFsZ29yaXRobS5uYW1lIiwgIidITUFDJyIpOwotICAgIHNob3VsZEJlKCJrZXkuYWxn
b3JpdGhtLmxlbmd0aCIsICIxMjgiKTsKLSAgICBzaG91bGRCZSgia2V5LnVzYWdlcyIsICdbInNp
Z24iLCAidmVyaWZ5Il0nKTsKLQotICAgIGZpbmlzaEpTVGVzdCgpOwotfSwgZmFsc2UpOwotCi1j
cnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgicmF3IiwgYXNjaWlUb1VpbnQ4QXJyYXkoIjE2
IGJ5dGVzIG9mIGtleSEiKSwge25hbWU6ICdobWFjJywgaGFzaDoge25hbWU6ICdzaGEtMSd9fSwg
dHJ1ZSwgWydzaWduJywgJ3ZlcmlmeSddKS50aGVuKGZ1bmN0aW9uKGtleSkgewotICAgIHBvc3RN
ZXNzYWdlKGtleSwgIioiKTsKLX0pOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CgpQcm9w
ZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2htYWMtcG9z
dE1lc3NhZ2UuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjptaW1lLXR5cGUKIyMgLTEgKzAs
MCAjIwotdGV4dC9odG1sClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IExh
eW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1zaWduLXZlcmlmeS1lbXB0eS1rZXkt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0
bGUvaG1hYy1zaWduLXZlcmlmeS1lbXB0eS1rZXktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMjA5
MTkpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2htYWMtc2lnbi12ZXJpZnkt
ZW1wdHkta2V5LWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCkBAIC0xLDIxICswLDAgQEAKLUNP
TlNPTEUgTUVTU0FHRTogbGluZSAyMDogV2ViS2l0U3VidGxlQ3J5cHRvIGlzIGRlcHJlY2F0ZWQu
IFBsZWFzZSB1c2UgU3VidGxlQ3J5cHRvIGluc3RlYWQuCi1UZXN0IEhNQUMgc2lnbiBhbmQgdmVy
aWZ5IGZ1bmN0aW9ucyB3aXRoIGFuIGVtcHR5IGtleS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgotCi0KLUltcG9ydGluZyBhIHJhdyBITUFDIGtleSBmcm9tIHN0cmluZyBsaXRlcmFsLi4u
Ci1QQVNTIGtleS50eXBlIGlzICdzZWNyZXQnCi1QQVNTIGtleS5leHRyYWN0YWJsZSBpcyB0cnVl
Ci1QQVNTIGtleS5hbGdvcml0aG0ubmFtZSBpcyAnSE1BQycKLVBBU1Mga2V5LmFsZ29yaXRobS5s
ZW5ndGggaXMgMAotUEFTUyBrZXkuYWxnb3JpdGhtLmhhc2gubmFtZSBpcyAnU0hBLTEnCi1QQVNT
IGtleS51c2FnZXMgaXMgWydzaWduJywgJ3ZlcmlmeSddCi1Vc2luZyB0aGUga2V5IHRvIHNpZ24g
J2ZvbycuLi4KLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShzaWduYXR1cmUp
KSBpcyAnYTNjYzc3MGZjMDMzZTJjYjQxOWQ0MmI2NGUwMDgxYTNiZDNiZTMwZScKLVZlcmlmeWlu
ZyB0aGUgc2lnbmF0dXJlLi4uCi1QQVNTIHZlcmlmaWNhdGlvblJlc3VsdCBpcyB0cnVlCi1QQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQoKUHJvcGVydHkg
Y2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLXNpZ24tdmVy
aWZ5LWVtcHR5LWtleS1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0
eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5
CkRlbGV0ZWQ6IHN2bjptaW1lLXR5cGUKIyMgLTEgKzAsMCAjIwotdGV4dC9wbGFpbgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL2htYWMtc2lnbi12ZXJpZnktZW1wdHkta2V5Lmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLXNpZ24tdmVyaWZ5LWVtcHR5LWtleS5o
dG1sCShyZXZpc2lvbiAyMjA5MTkpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxl
L2htYWMtc2lnbi12ZXJpZnktZW1wdHkta2V5Lmh0bWwJKG5vbmV4aXN0ZW50KQpAQCAtMSw0NiAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRl
c2NyaXB0aW9uKCJUZXN0IEhNQUMgc2lnbiBhbmQgdmVyaWZ5IGZ1bmN0aW9ucyB3aXRoIGFuIGVt
cHR5IGtleS4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBobWFjS2V5ID0gYXNj
aWlUb1VpbnQ4QXJyYXkoJycpOwotdmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKLQotZGVidWcoIklt
cG9ydGluZyBhIHJhdyBITUFDIGtleSBmcm9tIHN0cmluZyBsaXRlcmFsLi4uIik7Ci1jcnlwdG8u
d2Via2l0U3VidGxlLmltcG9ydEtleSgicmF3IiwgaG1hY0tleSwge25hbWU6ICdobWFjJywgaGFz
aDoge25hbWU6ICdzaGEtMSd9fSwgZXh0cmFjdGFibGUsIFsic2lnbiIsICJ2ZXJpZnkiXSkudGhl
bihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBrZXkgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImtl
eS50eXBlIiwgIidzZWNyZXQnIik7Ci0gICAgc2hvdWxkQmUoImtleS5leHRyYWN0YWJsZSIsICJ0
cnVlIik7Ci0gICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubmFtZSIsICInSE1BQyciKTsKLSAg
ICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5sZW5ndGgiLCAiMCIpOyAvLyBTZWUgPGh0dHBzOi8v
d3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9MjMwOTg+LgotICAgIHNob3Vs
ZEJlKCJrZXkuYWxnb3JpdGhtLmhhc2gubmFtZSIsICInU0hBLTEnIik7Ci0gICAgc2hvdWxkQmUo
ImtleS51c2FnZXMiLCAiWydzaWduJywgJ3ZlcmlmeSddIik7Ci0KLSAgICBkZWJ1ZygiVXNpbmcg
dGhlIGtleSB0byBzaWduICdmb28nLi4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0
bGUuc2lnbihrZXkuYWxnb3JpdGhtLCBrZXksIGFzY2lpVG9VaW50OEFycmF5KCdmb28nKSk7Ci19
KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHNpZ25hdHVyZSA9IHJlc3VsdDsKLSAgICBz
aG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShzaWduYXR1cmUpKSIsICIn
YTNjYzc3MGZjMDMzZTJjYjQxOWQ0MmI2NGUwMDgxYTNiZDNiZTMwZSciKTsKLQotICAgIGRlYnVn
KCJWZXJpZnlpbmcgdGhlIHNpZ25hdHVyZS4uLiIpOwotICAgIHJldHVybiBjcnlwdG8ud2Via2l0
U3VidGxlLnZlcmlmeShrZXkuYWxnb3JpdGhtLCBrZXksIHJlc3VsdCwgYXNjaWlUb1VpbnQ4QXJy
YXkoJ2ZvbycpKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgdmVyaWZpY2F0aW9u
UmVzdWx0ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJ2ZXJpZmljYXRpb25SZXN1bHQiLCAidHJ1
ZSIpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9o
dG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRs
ZS9obWFjLXNpZ24tdmVyaWZ5LWVtcHR5LWtleS5odG1sCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3Zu
Om1pbWUtdHlwZQojIyAtMSArMCwwICMjCi10ZXh0L2h0bWwKXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBwcm9wZXJ0eQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLXNp
Z24tdmVyaWZ5LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8v
d2Via2l0U3VidGxlL2htYWMtc2lnbi12ZXJpZnktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMjA5
MTkpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2htYWMtc2lnbi12ZXJpZnkt
ZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKQEAgLTEsMjEgKzAsMCBAQAotQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDIwOiBXZWJLaXRTdWJ0bGVDcnlwdG8gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVz
ZSBTdWJ0bGVDcnlwdG8gaW5zdGVhZC4KLVRlc3QgSE1BQyBzaWduIGFuZCB2ZXJpZnkgZnVuY3Rp
b25zLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotSW1wb3J0aW5nIGEgcmF3IEhN
QUMga2V5IGZyb20gc3RyaW5nIGxpdGVyYWwuLi4KLVBBU1Mga2V5LnR5cGUgaXMgJ3NlY3JldCcK
LVBBU1Mga2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKLVBBU1Mga2V5LmFsZ29yaXRobS5uYW1lIGlz
ICdITUFDJwotUEFTUyBrZXkuYWxnb3JpdGhtLmxlbmd0aCBpcyA4Ci1QQVNTIGtleS5hbGdvcml0
aG0uaGFzaC5uYW1lIGlzICdTSEEtMScKLVBBU1Mga2V5LnVzYWdlcyBpcyBbJ3NpZ24nLCAndmVy
aWZ5J10KLVVzaW5nIHRoZSBrZXkgdG8gc2lnbiAnZm9vJy4uLgotUEFTUyBieXRlc1RvSGV4U3Ry
aW5nKG5ldyBVaW50OEFycmF5KHNpZ25hdHVyZSkpIGlzICdiZWJiYzAyZTQ2YjBmODExODNmNDBj
MjVkY2UyM2U1MDQ1ZDY1NTE5JwotVmVyaWZ5aW5nIHRoZSBzaWduYXR1cmUuLi4KLVBBU1MgdmVy
aWZpY2F0aW9uUmVzdWx0IGlzIHRydWUKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
LQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxl
L2htYWMtc2lnbi12ZXJpZnkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8v
d2Via2l0U3VidGxlL2htYWMtc2lnbi12ZXJpZnkuaHRtbAkocmV2aXNpb24gMjIwOTE5KQorKysg
TGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLXNpZ24tdmVyaWZ5Lmh0bWwJKG5v
bmV4aXN0ZW50KQpAQCAtMSw0NiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhl
YWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwvaGVh
ZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IEhNQUMgc2lnbiBhbmQgdmVyaWZ5
IGZ1bmN0aW9ucy4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBobWFjS2V5ID0g
YXNjaWlUb1VpbnQ4QXJyYXkoJ2EnKTsKLXZhciBleHRyYWN0YWJsZSA9IHRydWU7Ci0KLWRlYnVn
KCJJbXBvcnRpbmcgYSByYXcgSE1BQyBrZXkgZnJvbSBzdHJpbmcgbGl0ZXJhbC4uLiIpOwotY3J5
cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIGhtYWNLZXksIHtuYW1lOiAnaG1hYycs
IGhhc2g6IHtuYW1lOiAnc2hhLTEnfX0sIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0p
LnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAga2V5ID0gcmVzdWx0OwotICAgIHNob3VsZEJl
KCJrZXkudHlwZSIsICInc2VjcmV0JyIpOwotICAgIHNob3VsZEJlKCJrZXkuZXh0cmFjdGFibGUi
LCAidHJ1ZSIpOwotICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0hNQUMnIik7
Ci0gICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubGVuZ3RoIiwgIjgiKTsgLy8gU2VlIDxodHRw
czovL3d3dy53My5vcmcvQnVncy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTIzMDk4Pi4KLSAgICBz
aG91bGRCZSgia2V5LmFsZ29yaXRobS5oYXNoLm5hbWUiLCAiJ1NIQS0xJyIpOwotICAgIHNob3Vs
ZEJlKCJrZXkudXNhZ2VzIiwgIlsnc2lnbicsICd2ZXJpZnknXSIpOwotCi0gICAgZGVidWcoIlVz
aW5nIHRoZSBrZXkgdG8gc2lnbiAnZm9vJy4uLiIpOwotICAgIHJldHVybiBjcnlwdG8ud2Via2l0
U3VidGxlLnNpZ24oa2V5LmFsZ29yaXRobSwga2V5LCBhc2NpaVRvVWludDhBcnJheSgnZm9vJykp
OwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBzaWduYXR1cmUgPSByZXN1bHQ7Ci0g
ICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoc2lnbmF0dXJlKSki
LCAiJ2JlYmJjMDJlNDZiMGY4MTE4M2Y0MGMyNWRjZTIzZTUwNDVkNjU1MTknIik7Ci0KLSAgICBk
ZWJ1ZygiVmVyaWZ5aW5nIHRoZSBzaWduYXR1cmUuLi4iKTsKLSAgICByZXR1cm4gY3J5cHRvLndl
YmtpdFN1YnRsZS52ZXJpZnkoa2V5LmFsZ29yaXRobSwga2V5LCByZXN1bHQsIGFzY2lpVG9VaW50
OEFycmF5KCdmb28nKSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHZlcmlmaWNh
dGlvblJlc3VsdCA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgidmVyaWZpY2F0aW9uUmVzdWx0Iiwg
InRydWUiKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4K
LTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaW1wb3J0LWV4
cG9ydC1yYXcta2V5LWxlYWstZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2NyeXB0by93ZWJraXRTdWJ0bGUvaW1wb3J0LWV4cG9ydC1yYXcta2V5LWxlYWstZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAyMjA5MTkpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxl
L2ltcG9ydC1leHBvcnQtcmF3LWtleS1sZWFrLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCkBA
IC0xLDggKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ0OiBXZWJLaXRTdWJ0bGVDcnlw
dG8gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBTdWJ0bGVDcnlwdG8gaW5zdGVhZC4KLVNlbmRp
bmcgV29ya2VyIE1lc3NhZ2UKLVdvcmtlciBUZXJtaW5hdGVkCi1QQVNTIGV4cG9ydGVkS2V5LmJ5
dGVMZW5ndGggaXMgMAotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENP
TVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaW1wb3J0LWV4
cG9ydC1yYXcta2V5LWxlYWsuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8v
d2Via2l0U3VidGxlL2ltcG9ydC1leHBvcnQtcmF3LWtleS1sZWFrLmh0bWwJKHJldmlzaW9uIDIy
MDkxOSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaW1wb3J0LWV4cG9ydC1y
YXcta2V5LWxlYWsuaHRtbAkobm9uZXhpc3RlbnQpCkBAIC0xLDQ1ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+Ci0gICAganNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLSAgICB2YXIga2V5U2l6ZSA9IDB4
MTAwOwotICAgIHZhciBibG9iID0gbmV3IEJsb2IoWyIiXSwge3R5cGUgOiAnYXBwbGljYXRpb24v
amF2YXNjcmlwdCd9KTsKLSAgICB2YXIgd29ya2VyID0gbmV3IFdvcmtlcihVUkwuY3JlYXRlT2Jq
ZWN0VVJMKGJsb2IpKTsKLQotICAgIGZ1bmN0aW9uIHJ1bigpCi0gICAgewotICAgICAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
LQotICAgICAgICBmdW5jdGlvbiBhcnJheUJ1ZmZlck5ldXRlcihhYikKLSAgICAgICAgewotICAg
ICAgICAgICAgLyogTmV1dGVyIHRoZSBBcnJheUJ1ZmZlciAqLwotICAgICAgICAgICAgZGVidWco
IlNlbmRpbmcgV29ya2VyIE1lc3NhZ2UiKTsKLSAgICAgICAgICAgIHdvcmtlci5wb3N0TWVzc2Fn
ZShhYiwgW2FiXSk7Ci0gICAgICAgICAgICB3b3JrZXIudGVybWluYXRlKCk7Ci0gICAgICAgICAg
ICBkZWJ1ZygiV29ya2VyIFRlcm1pbmF0ZWQiKTsKLSAgICAgICAgfQotCi0gICAgICAgIHZhciBh
ID0gbmV3IEFycmF5QnVmZmVyKGtleVNpemUpOwotICAgICAgICB2YXIgYiA9IHsgfTsKLSAgICAg
ICAgYi5fX2RlZmluZUdldHRlcl9fKCduYW1lJywgZnVuY3Rpb24oKXsKLSAgICAgICAgICAgIGFy
cmF5QnVmZmVyTmV1dGVyKGEpOwotICAgICAgICAgICAgcmV0dXJuICJBRVMtQ0JDIjsKLSAgICAg
ICAgfSk7Ci0gICAgICAgIHZhciByZXN1bHQgPSB3aW5kb3cuY3J5cHRvLndlYmtpdFN1YnRsZS5p
bXBvcnRLZXkoInJhdyIsIGEsIGIsIHRydWUpOwotICAgICAgICByZXN1bHQudGhlbihmdW5jdGlv
bihrZXkpIHsKLSAgICAgICAgICAgIHdpbmRvdy5jcnlwdG8ud2Via2l0U3VidGxlLmV4cG9ydEtl
eSgicmF3Iiwga2V5KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgICAgICAgICAgICAgIGV4
cG9ydGVkS2V5ID0gcmVzdWx0OwotICAgICAgICAgICAgICAgIHNob3VsZEJlWmVybygiZXhwb3J0
ZWRLZXkuYnl0ZUxlbmd0aCIpOwotICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAg
ICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0KLSAgICA8L3NjcmlwdD4KLSAgICA8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2hl
YWQ+Ci08Ym9keSBvbmxvYWQ9InJ1bigpIj48L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2ltcG9ydC1qd2stZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaW1wb3J0LWp3ay1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDIyMDkxOSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0
bGUvaW1wb3J0LWp3ay1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSwzMSArMCwwIEBA
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNjE2OiBXZWJLaXRTdWJ0bGVDcnlwdG8gaXMgZGVwcmVj
YXRlZC4gUGxlYXNlIHVzZSBTdWJ0bGVDcnlwdG8gaW5zdGVhZC4KLVRlc3QgZXJyb3IgaGFuZGxp
bmcgZm9yIEpXSyBpbXBvcnQuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNT
IGNyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheSgn
JyksIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEludmFsaWQgSldLIHNlcmlhbGl6
YXRpb24uCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRv
VWludDhBcnJheSgneycpLCBudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBJbnZhbGlk
IEpXSyBzZXJpYWxpemF0aW9uLgotUEFTUyBjcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgi
andrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoJ251bGwnKSwgbnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogSW52YWxpZCBKV0sgc2VyaWFsaXphdGlvbi4KLVBBU1MgY3J5cHRvLndlYmtpdFN1
YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KCd1bmRlZmluZWQnKSwgbnVs
bCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogSW52YWxpZCBKV0sgc2VyaWFsaXphdGlvbi4K
LVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFy
cmF5KCd7fScpLCBudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOZWl0aGVyIGtleSBu
b3IgZnVuY3Rpb24gYXJndW1lbnQgaGFzIGNyeXB0byBhbGdvcml0aG0gc3BlY2lmaWVkLgotUEFT
UyBjcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXko
J3t9JyksICJhZXMtY2JjIikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogUmVxdWlyZWQgSldL
ICJrdHkiIG1lbWJlciBpcyBtaXNzaW5nLgotUEFTUyBjcnlwdG8ud2Via2l0U3VidGxlLmltcG9y
dEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoJ3sgImt0eSI6ICJmb29iYXIiLCAiYWxnIjog
IkhTMjU2IiwgInVzZSI6ICJzaWciLCAiayI6ICJhaGprbjIzMzg3Zmduc2liZjIzcXN2YWhqa24z
NzM4N2ZnbnNpYmYyM3FzIiB9JyksIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFVu
c3VwcG9ydGVkIEpXSyBrZXkgdHlwZSBmb29iYXIuCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUu
aW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheSgneyAia3R5IjogIm9jdCIsICJhbGci
OiAiZm9vYmFyIiwgInVzZSI6ICJzaWciLCAiayI6ICJhaGprbjIzMzg3Zmduc2liZjIzcXN2YWhq
a24zNzM4N2ZnbnNpYmYyM3FzIiB9JyksIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IFVuc3VwcG9ydGVkIEpXSyBhbGdvcml0aG0gZm9vYmFyLgotUEFTUyBjcnlwdG8ud2Via2l0U3Vi
dGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoJ3sgImt0eSI6ICJvY3QiLCAi
YWxnIjogIkhTMjU2IiwgInVzZSI6ICJzaWciLCAiZXh0IjogZmFsc2UsICJrIjogImFoamtuMjMz
ODdmZ25zaWJmMjNxc3ZhaGprbjM3Mzg3Zmduc2liZjIzcXMiIH0nKSwgImFlcy1jYmMiKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBBbGdvcml0aG0gc3BlY2lmaWVkIGluIGtleSBpcyBub3Qg
Y29tcGF0aWJsZSB3aXRoIG9uZSBwYXNzZWQgdG8gaW1wb3J0S2V5IGFzIGFyZ3VtZW50LgotUEFT
UyBjcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXko
J3sgImt0eSI6ICJvY3QiLCAiYWxnIjogIkhTMjU2IiwgInVzZSI6ICJzaWciLCAiZXh0IjogZmFs
c2UsICJrIjogImFoamtuMjMzODdmZ25zaWJmMjNxc3ZhaGprbjM3Mzg3Zmduc2liZjIzcXMiIH0n
KSwgeyBuYW1lOiAiaG1hYyIsIGhhc2g6ICJzaGEtMSIgfSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogQWxnb3JpdGhtIHNwZWNpZmllZCBpbiBrZXkgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBv
bmUgcGFzc2VkIHRvIGltcG9ydEtleSBhcyBhcmd1bWVudC4KLVBBU1MgY3J5cHRvLndlYmtpdFN1
YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KCd7ICJrdHkiOiAib2N0Iiwg
ImFsZyI6ICJIUzI1NiIgfScpLCBudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBTZWNy
ZXQga2V5IGRhdGEgaXMgbm90IHByZXNlbnQgaXMgSldLLgotUEFTUyBjcnlwdG8ud2Via2l0U3Vi
dGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoJ3sgImt0eSI6ICJvY3QiLCAi
YWxnIjogIkExMjhDQkMiIH0nKSwgbnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogU2Vj
cmV0IGtleSBkYXRhIGlzIG5vdCBwcmVzZW50IGlzIEpXSy4KLVBBU1MgY3J5cHRvLndlYmtpdFN1
YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KCd7ICJrdHkiOiAib2N0Iiwg
ImFsZyI6ICJIUzI1NiIsICJ1c2UiOiAic2lnIiwgImV4dCI6IGZhbHNlLCAiayI6ICIxMjM0IiB9
JyksIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEtleSBzaXplIGlzIG5vdCB2YWxp
ZCBmb3IgSFMyNTYuCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBh
c2NpaVRvVWludDhBcnJheSgneyAia3R5IjogIm9jdCIsICJhbGciOiAiQTEyOENCQyIsICJ1c2Ui
OiAic2lnIiwgImV4dCI6IGZhbHNlLCAiayI6ICIxMjM0IiB9JyksIG51bGwpIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IEtleSBzaXplIGlzIG5vdCB2YWxpZCBmb3IgQTEyOENCQy4KLVBBU1Mg
Y3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KCd7
ICJrdHkiOiAib2N0IiwgImFsZyI6ICJBMTI4Q0JDIiwgInVzZSI6ICJzaWciLCAiZXh0IjogZmFs
c2UsICJrIjogImFoamtuMjMzODdmZ25zaWJmMjNxc3ZhaGprbjM3Mzg3Zmduc2liZjIzcXMiIH0n
KSwgbnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogS2V5IHNpemUgaXMgbm90IHZhbGlk
IGZvciBBMTI4Q0JDLgotUEFTUyBjcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgiandrIiwg
YXNjaWlUb1VpbnQ4QXJyYXkoJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjogIkhTMjU2IiwgInVzZSI6
ICJzaWciLCAiZXh0IjogZmFsc2UsICJrIjogImFoamtuMjMzODdmK25zaWJmMjNxc3ZhaGprbjM3
Mzg3Zmduc2liZjIzcXMiIH0nKSwgbnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogQ2Fu
bm90IGRlY29kZSBiYXNlNjR1cmwga2V5IGRhdGEgaW4gSldLLgotUEFTUyBjcnlwdG8ud2Via2l0
U3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoJ3sgImt0eSI6IDEsICJh
bGciOiAiSFMyNTYiLCAidXNlIjogInNpZyIsICJleHQiOiBmYWxzZSwgImsiOiAiYWhqa24yMzM4
N2ZnbnNpYmYyM3FzdmFoamtuMzczODdmZ25zaWJmMjNxcyIgfScpLCBudWxsKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBFeHBlY3RlZCBhIHN0cmluZyB2YWx1ZSBmb3IgImt0eSIgSlNPTiBr
ZXkuCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWlu
dDhBcnJheSgneyAia3R5IjogIm9jdCIsICJhbGciOiAxLCAidXNlIjogInNpZyIsICJleHQiOiBm
YWxzZSwgImsiOiAiYWhqa24yMzM4N2ZnbnNpYmYyM3FzdmFoamtuMzczODdmZ25zaWJmMjNxcyIg
fScpLCBudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBFeHBlY3RlZCBhIHN0cmluZyB2
YWx1ZSBmb3IgImFsZyIgSlNPTiBrZXkuCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0
S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheSgneyAia3R5IjogIm9jdCIsICJhbGciOiAiSFMy
NTYiLCAidXNlIjogMSwgImV4dCI6IGZhbHNlLCAiayI6ICJhaGprbjIzMzg3Zmduc2liZjIzcXN2
YWhqa24zNzM4N2ZnbnNpYmYyM3FzIiB9JyksIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJy
b3I6IEV4cGVjdGVkIGEgc3RyaW5nIHZhbHVlIGZvciAidXNlIiBKU09OIGtleS4KLVBBU1MgY3J5
cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KCd7ICJr
dHkiOiAib2N0IiwgImFsZyI6ICJIUzI1NiIsICJ1c2UiOiAic2lnIiwgImV4dCI6ICJmYWxzZSIs
ICJrIjogImFoamtuMjMzODdmZ25zaWJmMjNxc3ZhaGprbjM3Mzg3Zmduc2liZjIzcXMiIH0nKSwg
bnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogRXhwZWN0ZWQgYSBib29sZWFuIHZhbHVl
IGZvciAiZXh0IiBKU09OIGtleS4KLVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXko
Imp3ayIsIGFzY2lpVG9VaW50OEFycmF5KCd7ICJrdHkiOiAib2N0IiwgImFsZyI6ICJIUzI1NiIs
ICJ1c2UiOiAic2lnIiwgImV4dCI6IGZhbHNlLCAiayI6IDEgfScpLCBudWxsKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBFeHBlY3RlZCBhIHN0cmluZyB2YWx1ZSBmb3IgImsiIEpTT04ga2V5
LgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5k
ZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaW1wb3J0LWp3ay5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaW1wb3J0LWp3ay5odG1s
CShyZXZpc2lvbiAyMjA5MTkpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2lt
cG9ydC1qd2suaHRtbAkobm9uZXhpc3RlbnQpCkBAIC0xLDUxICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9jb21tb24uanMi
Pjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3QgZXJy
b3IgaGFuZGxpbmcgZm9yIEpXSyBpbXBvcnQuIik7Ci0KLXNob3VsZFRocm93KCdjcnlwdG8ud2Vi
a2l0U3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoXCdcJyksIG51bGwp
JykKLXNob3VsZFRocm93KCdjcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgiandrIiwgYXNj
aWlUb1VpbnQ4QXJyYXkoXCd7XCcpLCBudWxsKScpCi1zaG91bGRUaHJvdygnY3J5cHRvLndlYmtp
dFN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KFwnbnVsbFwnKSwgbnVs
bCknKQotc2hvdWxkVGhyb3coJ2NyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBh
c2NpaVRvVWludDhBcnJheShcJ3VuZGVmaW5lZFwnKSwgbnVsbCknKQotc2hvdWxkVGhyb3coJ2Ny
eXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShcJ3t9
XCcpLCBudWxsKScpCi1zaG91bGRUaHJvdygnY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXko
Imp3ayIsIGFzY2lpVG9VaW50OEFycmF5KFwne31cJyksICJhZXMtY2JjIiknKQotCi0vLyBVbmtu
b3duL2ludmFsaWQgSldLIHZhbHVlcy4KLXNob3VsZFRocm93KCdjcnlwdG8ud2Via2l0U3VidGxl
LmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoXCd7ICJrdHkiOiAiZm9vYmFyIiwg
ImFsZyI6ICJIUzI1NiIsICJ1c2UiOiAic2lnIiwgImsiOiAiYWhqa24yMzM4N2ZnbnNpYmYyM3Fz
dmFoamtuMzczODdmZ25zaWJmMjNxcyIgfVwnKSwgbnVsbCknKQotc2hvdWxkVGhyb3coJ2NyeXB0
by53ZWJraXRTdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShcJ3sgImt0
eSI6ICJvY3QiLCAiYWxnIjogImZvb2JhciIsICJ1c2UiOiAic2lnIiwgImsiOiAiYWhqa24yMzM4
N2ZnbnNpYmYyM3FzdmFoamtuMzczODdmZ25zaWJmMjNxcyIgfVwnKSwgbnVsbCknKQotCi0vLyBB
bGdvcml0aG0gbWlzbWF0Y2guCi1zaG91bGRUaHJvdygnY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBv
cnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KFwneyAia3R5IjogIm9jdCIsICJhbGciOiAi
SFMyNTYiLCAidXNlIjogInNpZyIsICJleHQiOiBmYWxzZSwgImsiOiAiYWhqa24yMzM4N2ZnbnNp
YmYyM3FzdmFoamtuMzczODdmZ25zaWJmMjNxcyIgfVwnKSwgImFlcy1jYmMiKScpCi1zaG91bGRU
aHJvdygnY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFy
cmF5KFwneyAia3R5IjogIm9jdCIsICJhbGciOiAiSFMyNTYiLCAidXNlIjogInNpZyIsICJleHQi
OiBmYWxzZSwgImsiOiAiYWhqa24yMzM4N2ZnbnNpYmYyM3FzdmFoamtuMzczODdmZ25zaWJmMjNx
cyIgfVwnKSwgeyBuYW1lOiAiaG1hYyIsIGhhc2g6ICJzaGEtMSIgfSknKQotCi0vLyBObyBrZXkg
ZGF0YS4KLXNob3VsZFRocm93KCdjcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgiandrIiwg
YXNjaWlUb1VpbnQ4QXJyYXkoXCd7ICJrdHkiOiAib2N0IiwgImFsZyI6ICJIUzI1NiIgfVwnKSwg
bnVsbCknKQotc2hvdWxkVGhyb3coJ2NyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0S2V5KCJqd2si
LCBhc2NpaVRvVWludDhBcnJheShcJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjogIkExMjhDQkMiIH1c
JyksIG51bGwpJykKLQotLy8gS2V5IGRhdGEgbGVuZ3RoIGlzIGluY29ycmVjdCwgbm90IGFsbG93
ZWQgaW4gSldLLgotc2hvdWxkVGhyb3coJ2NyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0S2V5KCJq
d2siLCBhc2NpaVRvVWludDhBcnJheShcJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjogIkhTMjU2Iiwg
InVzZSI6ICJzaWciLCAiZXh0IjogZmFsc2UsICJrIjogIjEyMzQiIH1cJyksIG51bGwpJykKLXNo
b3VsZFRocm93KCdjcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1Vp
bnQ4QXJyYXkoXCd7ICJrdHkiOiAib2N0IiwgImFsZyI6ICJBMTI4Q0JDIiwgInVzZSI6ICJzaWci
LCAiZXh0IjogZmFsc2UsICJrIjogIjEyMzQiIH1cJyksIG51bGwpJykKLXNob3VsZFRocm93KCdj
cnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoXCd7
ICJrdHkiOiAib2N0IiwgImFsZyI6ICJBMTI4Q0JDIiwgInVzZSI6ICJzaWciLCAiZXh0IjogZmFs
c2UsICJrIjogImFoamtuMjMzODdmZ25zaWJmMjNxc3ZhaGprbjM3Mzg3Zmduc2liZjIzcXMiIH1c
JyksIG51bGwpJykKLQotLy8gS2V5IGRhdGEgaXMgbm90IHZhbGlkIGJhc2U2NHVybC4KLXNob3Vs
ZFRocm93KCdjcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4
QXJyYXkoXCd7ICJrdHkiOiAib2N0IiwgImFsZyI6ICJIUzI1NiIsICJ1c2UiOiAic2lnIiwgImV4
dCI6IGZhbHNlLCAiayI6ICJhaGprbjIzMzg3Zituc2liZjIzcXN2YWhqa24zNzM4N2ZnbnNpYmYy
M3FzIiB9XCcpLCBudWxsKScpCi0KLS8vIEluY29ycmVjdCBkYXRhIHR5cGVzLgotc2hvdWxkVGhy
b3coJ2NyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJh
eShcJ3sgImt0eSI6IDEsICJhbGciOiAiSFMyNTYiLCAidXNlIjogInNpZyIsICJleHQiOiBmYWxz
ZSwgImsiOiAiYWhqa24yMzM4N2ZnbnNpYmYyM3FzdmFoamtuMzczODdmZ25zaWJmMjNxcyIgfVwn
KSwgbnVsbCknKQotc2hvdWxkVGhyb3coJ2NyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0S2V5KCJq
d2siLCBhc2NpaVRvVWludDhBcnJheShcJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjogMSwgInVzZSI6
ICJzaWciLCAiZXh0IjogZmFsc2UsICJrIjogImFoamtuMjMzODdmZ25zaWJmMjNxc3ZhaGprbjM3
Mzg3Zmduc2liZjIzcXMiIH1cJyksIG51bGwpJykKLXNob3VsZFRocm93KCdjcnlwdG8ud2Via2l0
U3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoXCd7ICJrdHkiOiAib2N0
IiwgImFsZyI6ICJIUzI1NiIsICJ1c2UiOiAxLCAiZXh0IjogZmFsc2UsICJrIjogImFoamtuMjMz
ODdmZ25zaWJmMjNxc3ZhaGprbjM3Mzg3Zmduc2liZjIzcXMiIH1cJyksIG51bGwpJykKLXNob3Vs
ZFRocm93KCdjcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4
QXJyYXkoXCd7ICJrdHkiOiAib2N0IiwgImFsZyI6ICJIUzI1NiIsICJ1c2UiOiAic2lnIiwgImV4
dCI6ICJmYWxzZSIsICJrIjogImFoamtuMjMzODdmZ25zaWJmMjNxc3ZhaGprbjM3Mzg3Zmduc2li
ZjIzcXMiIH1cJyksIG51bGwpJykKLXNob3VsZFRocm93KCdjcnlwdG8ud2Via2l0U3VidGxlLmlt
cG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoXCd7ICJrdHkiOiAib2N0IiwgImFsZyI6
ICJIUzI1NiIsICJ1c2UiOiAic2lnIiwgImV4dCI6IGZhbHNlLCAiayI6IDEgfVwnKSwgbnVsbCkn
KQotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2NyeXB0
by93ZWJraXRTdWJ0bGUvandrLWV4cG9ydC11c2UtdmFsdWVzLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2p3ay1leHBvcnQtdXNlLXZh
bHVlcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIyMDkxOSkKKysrIExheW91dFRlc3RzL2NyeXB0
by93ZWJraXRTdWJ0bGUvandrLWV4cG9ydC11c2UtdmFsdWVzLWV4cGVjdGVkLnR4dAkobm9uZXhp
c3RlbnQpCkBAIC0xLDU0ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0ODogV2ViS2l0
U3VidGxlQ3J5cHRvIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgU3VidGxlQ3J5cHRvIGluc3Rl
YWQuCi1UZXN0IGV4cG9ydGluZyBrZXlzIHdpdGggdmFyaW91cyB1c2FnZXMgdG8gSldLLgotCi1P
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotZW5jcnlwdDoKLVBBU1MgandrLnVzZSBpcyB1
bmRlZmluZWQKLVBBU1MgandrLmtleV9vcHMgaXMgWyJlbmNyeXB0Il0KLQotZGVjcnlwdDoKLVBB
U1MgandrLnVzZSBpcyB1bmRlZmluZWQKLVBBU1MgandrLmtleV9vcHMgaXMgWyJkZWNyeXB0Il0K
LQotZW5jcnlwdCxkZWNyeXB0OgotUEFTUyBqd2sudXNlIGlzIHVuZGVmaW5lZAotUEFTUyBqd2su
a2V5X29wcyBpcyBbImVuY3J5cHQiLCJkZWNyeXB0Il0KLQotd3JhcEtleToKLVBBU1MgandrLnVz
ZSBpcyB1bmRlZmluZWQKLVBBU1MgandrLmtleV9vcHMgaXMgWyJ3cmFwS2V5Il0KLQotdW53cmFw
S2V5OgotUEFTUyBqd2sudXNlIGlzIHVuZGVmaW5lZAotUEFTUyBqd2sua2V5X29wcyBpcyBbInVu
d3JhcEtleSJdCi0KLXdyYXBLZXksdW53cmFwS2V5OgotUEFTUyBqd2sudXNlIGlzIHVuZGVmaW5l
ZAotUEFTUyBqd2sua2V5X29wcyBpcyBbIndyYXBLZXkiLCJ1bndyYXBLZXkiXQotCi1lbmNyeXB0
LGRlY3J5cHQsd3JhcEtleToKLVBBU1MgandrLnVzZSBpcyB1bmRlZmluZWQKLVBBU1MgandrLmtl
eV9vcHMgaXMgWyJlbmNyeXB0IiwiZGVjcnlwdCIsIndyYXBLZXkiXQotCi1lbmNyeXB0LGRlY3J5
cHQsd3JhcEtleSx1bndyYXBLZXk6Ci1QQVNTIGp3ay51c2UgaXMgdW5kZWZpbmVkCi1QQVNTIGp3
ay5rZXlfb3BzIGlzIFsiZW5jcnlwdCIsImRlY3J5cHQiLCJ3cmFwS2V5IiwidW53cmFwS2V5Il0K
LQotc2lnbjoKLVBBU1MgandrLnVzZSBpcyB1bmRlZmluZWQKLVBBU1MgandrLmtleV9vcHMgaXMg
WyJzaWduIl0KLQotdmVyaWZ5OgotUEFTUyBqd2sudXNlIGlzIHVuZGVmaW5lZAotUEFTUyBqd2su
a2V5X29wcyBpcyBbInZlcmlmeSJdCi0KLXNpZ24sdmVyaWZ5OgotUEFTUyBqd2sudXNlIGlzIHVu
ZGVmaW5lZAotUEFTUyBqd2sua2V5X29wcyBpcyBbInNpZ24iLCJ2ZXJpZnkiXQotCi1QQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQoKUHJvcGVydHkgY2hh
bmdlcyBvbjogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9qd2stZXhwb3J0LXVzZS12
YWx1ZXMtZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAt
MSArMCwwICMjCi1uYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpEZWxldGVk
OiBzdm46bWltZS10eXBlCiMjIC0xICswLDAgIyMKLXRleHQvcGxhaW4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9q
d2stZXhwb3J0LXVzZS12YWx1ZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlw
dG8vd2Via2l0U3VidGxlL2p3ay1leHBvcnQtdXNlLXZhbHVlcy5odG1sCShyZXZpc2lvbiAyMjA5
MTkpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2p3ay1leHBvcnQtdXNlLXZh
bHVlcy5odG1sCShub25leGlzdGVudCkKQEAgLTEsNjQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBleHBvcnRp
bmcga2V5cyB3aXRoIHZhcmlvdXMgdXNhZ2VzIHRvIEpXSy4iKTsKLQotanNUZXN0SXNBc3luYyA9
IHRydWU7Ci0KLXZhciBleHRyYWN0YWJsZSA9IHRydWU7Ci0KLXZhciBhZXNLZXlBc0FycmF5QnVm
ZmVyID0gQmFzZTY0VVJMLnBhcnNlKCJqbk93OTlvT1pGTElFUE1yZ0pCNTVXTDQ2dEpTTEd0NyIp
OwotdmFyIGhtYWNLZXlBc0FycmF5QnVmZmVyID0gQmFzZTY0VVJMLnBhcnNlKCJhaGprbi1fMzg3
Zmduc2liZjIzcXN2YWhqa24tXzM4N2ZnbnNpYmYyM3FzIik7Ci0KLWZ1bmN0aW9uIHRlc3RXaXRo
QUVTQ0JDKHVzYWdlcywgZXhwZWN0ZWRLZXlPcHMpCi17Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJr
aXRTdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBhZXNLZXlBc0FycmF5QnVmZmVyLCAiQUVTLUNCQyIs
IGV4dHJhY3RhYmxlLCB1c2FnZXMpLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgICAgIHJl
dHVybiBjcnlwdG8ud2Via2l0U3VidGxlLmV4cG9ydEtleSgiandrIiwgcmVzdWx0KTsKLSAgICB9
KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgICAgICBqd2sgPSBKU09OLnBhcnNlKGJ5dGVz
VG9BU0NJSVN0cmluZyhyZXN1bHQpKTsKLSAgICAgICAgZGVidWcodXNhZ2VzICsgIjoiKTsKLSAg
ICAgICAgc2hvdWxkQmUoImp3ay51c2UiLCAidW5kZWZpbmVkIik7Ci0gICAgICAgIHNob3VsZEJl
KCJqd2sua2V5X29wcyIsIEpTT04uc3RyaW5naWZ5KGV4cGVjdGVkS2V5T3BzKSk7Ci0gICAgICAg
IGRlYnVnKCIiKTsKLSAgICB9KTsKLX0KLQotZnVuY3Rpb24gdGVzdFdpdGhITUFDKHVzYWdlcywg
ZXhwZWN0ZWRLZXlPcHMpCi17Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0
S2V5KCJyYXciLCBobWFjS2V5QXNBcnJheUJ1ZmZlciwge25hbWU6ICdobWFjJywgaGFzaDoge25h
bWU6ICdzaGEtMjU2J319LCBleHRyYWN0YWJsZSwgdXNhZ2VzKS50aGVuKGZ1bmN0aW9uKHJlc3Vs
dCkgewotICAgICAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS5leHBvcnRLZXkoImp3ayIs
IHJlc3VsdCk7Ci0gICAgfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICAgICAgandrID0g
SlNPTi5wYXJzZShieXRlc1RvQVNDSUlTdHJpbmcocmVzdWx0KSk7Ci0gICAgICAgIGRlYnVnKHVz
YWdlcyArICI6Iik7Ci0gICAgICAgIHNob3VsZEJlKCJqd2sudXNlIiwgInVuZGVmaW5lZCIpOwot
ICAgICAgICBzaG91bGRCZSgiandrLmtleV9vcHMiLCBKU09OLnN0cmluZ2lmeShleHBlY3RlZEtl
eU9wcykpOwotICAgICAgICBkZWJ1ZygiIik7Ci0gICAgfSk7Ci19Ci0KLVByb21pc2UuYWxsKFsK
LSAgICB0ZXN0V2l0aEFFU0NCQyhbImVuY3J5cHQiXSwgWyJlbmNyeXB0Il0pLAotICAgIHRlc3RX
aXRoQUVTQ0JDKFsiZGVjcnlwdCJdLCBbImRlY3J5cHQiXSksCi0gICAgdGVzdFdpdGhBRVNDQkMo
WyJlbmNyeXB0IiwgImRlY3J5cHQiXSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiXSksCi0gICAgdGVz
dFdpdGhBRVNDQkMoWyJ3cmFwS2V5Il0sIFsid3JhcEtleSJdKSwKLSAgICB0ZXN0V2l0aEFFU0NC
QyhbInVud3JhcEtleSJdLCBbInVud3JhcEtleSJdKSwKLSAgICB0ZXN0V2l0aEFFU0NCQyhbIndy
YXBLZXkiLCAidW53cmFwS2V5Il0sIFsid3JhcEtleSIsICJ1bndyYXBLZXkiXSksCi0gICAgdGVz
dFdpdGhBRVNDQkMoWyJlbmNyeXB0IiwgImRlY3J5cHQiLCAid3JhcEtleSJdLCBbImVuY3J5cHQi
LCAiZGVjcnlwdCIsICJ3cmFwS2V5Il0pLAotICAgIHRlc3RXaXRoQUVTQ0JDKFsiZW5jcnlwdCIs
ICJkZWNyeXB0IiwgIndyYXBLZXkiLCAidW53cmFwS2V5Il0sIFsiZW5jcnlwdCIsICJkZWNyeXB0
IiwgIndyYXBLZXkiLCAidW53cmFwS2V5Il0pLAotICAgIHRlc3RXaXRoSE1BQyhbInNpZ24iXSwg
WyJzaWduIl0pLAotICAgIHRlc3RXaXRoSE1BQyhbInZlcmlmeSJdLCBbInZlcmlmeSJdKSwKLSAg
ICB0ZXN0V2l0aEhNQUMoWyJzaWduIiwgInZlcmlmeSJdLCBbInNpZ24iLCAidmVyaWZ5Il0pLAot
XSkudGhlbihmdW5jdGlvbigpIHsgZmluaXNoSlNUZXN0KCk7IH0gKTsKLTwvc2NyaXB0PgotCi08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08
L2JvZHk+Ci08L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9jcnlwdG8v
d2Via2l0U3VidGxlL2p3ay1leHBvcnQtdXNlLXZhbHVlcy5odG1sCl9fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRl
ZDogc3ZuOm1pbWUtdHlwZQojIyAtMSArMCwwICMjCi10ZXh0L2h0bWwKXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9q
d2staW1wb3J0LXVzZS12YWx1ZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvandrLWltcG9ydC11c2UtdmFsdWVzLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMjIwOTE5KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9q
d2staW1wb3J0LXVzZS12YWx1ZXMtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKQEAgLTEsNTQg
KzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFdlYktpdFN1YnRsZUNyeXB0byBpcyBk
ZXByZWNhdGVkLiBQbGVhc2UgdXNlIFN1YnRsZUNyeXB0byBpbnN0ZWFkLgotVGVzdCBpbXBvcnRp
bmcga2V5cyB3aXRoIHZhcmlvdXMgdXNlcyBmcm9tIEpXSy4KLQotT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgotCi0KLVBBU1MgdGVzdFdpdGhBRVNDQkMoWyJlbmNyeXB0Il0sIHtrZXlfb3BzOiBb
ImVuY3J5cHQiLCAiZW5jcnlwdCJdfSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogSldLIGtl
eV9vcHMgY29udGFpbnMgYSBkdXBsaWNhdGUgb3BlcmF0aW9uLgotCi17ImtleV9vcHMiOlsiZW5j
cnlwdCJdfToKLVBBU1Mga2V5LnVzYWdlcyBpcyBbImVuY3J5cHQiXQotCi17ImtleV9vcHMiOlsi
ZGVjcnlwdCJdfToKLVBBU1Mga2V5LnVzYWdlcyBpcyBbImRlY3J5cHQiXQotCi17ImtleV9vcHMi
OlsiZW5jcnlwdCIsImRlY3J5cHQiXX06Ci1QQVNTIGtleS51c2FnZXMgaXMgWyJkZWNyeXB0Iiwi
ZW5jcnlwdCJdCi0KLXsia2V5X29wcyI6WyJ3cmFwS2V5Il19OgotUEFTUyBrZXkudXNhZ2VzIGlz
IFsid3JhcEtleSJdCi0KLXsia2V5X29wcyI6WyJ1bndyYXBLZXkiXX06Ci1QQVNTIGtleS51c2Fn
ZXMgaXMgWyJ1bndyYXBLZXkiXQotCi17ImtleV9vcHMiOlsid3JhcEtleSIsInVud3JhcEtleSJd
fToKLVBBU1Mga2V5LnVzYWdlcyBpcyBbInVud3JhcEtleSIsIndyYXBLZXkiXQotCi17ImtleV9v
cHMiOlsiZW5jcnlwdCIsImRlY3J5cHQiLCJ3cmFwS2V5Il19OgotUEFTUyBrZXkudXNhZ2VzIGlz
IFsiZGVjcnlwdCIsImVuY3J5cHQiLCJ3cmFwS2V5Il0KLQoteyJ1c2UiOiJlbmMifToKLVBBU1Mg
a2V5LnVzYWdlcyBpcyBbImRlY3J5cHQiLCJlbmNyeXB0IiwidW53cmFwS2V5Iiwid3JhcEtleSJd
Ci0KLXsia2V5X29wcyI6WyJzaWduIl19OgotUEFTUyBrZXkudXNhZ2VzIGlzIFsic2lnbiJdCi0K
LXsia2V5X29wcyI6WyJ2ZXJpZnkiXX06Ci1QQVNTIGtleS51c2FnZXMgaXMgWyJ2ZXJpZnkiXQot
Ci17InVzZSI6InNpZyJ9OgotUEFTUyBrZXkudXNhZ2VzIGlzIFsic2lnbiIsInZlcmlmeSJdCi0K
LXsia2V5X29wcyI6WyInZW5jcnlwdCciXX06Ci1QQVNTIGtleS51c2FnZXMgaXMgW10KLQoteyJr
ZXlfb3BzIjpbImVuY3J5cHQgIl19OgotUEFTUyBrZXkudXNhZ2VzIGlzIFtdCi0KLXsia2V5X29w
cyI6WyJFbmNyeXB0Il19OgotUEFTUyBrZXkudXNhZ2VzIGlzIFtdCi0KLVBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCgpQcm9wZXJ0eSBjaGFuZ2VzIG9u
OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2p3ay1pbXBvcnQtdXNlLXZhbHVlcy1l
eHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0xICswLDAg
IyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkRlbGV0ZWQ6IHN2bjpt
aW1lLXR5cGUKIyMgLTEgKzAsMCAjIwotdGV4dC9wbGFpbgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IHByb3BlcnR5CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2p3ay1pbXBv
cnQtdXNlLXZhbHVlcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJr
aXRTdWJ0bGUvandrLWltcG9ydC11c2UtdmFsdWVzLmh0bWwJKHJldmlzaW9uIDIyMDkxOSkKKysr
IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvandrLWltcG9ydC11c2UtdmFsdWVzLmh0
bWwJKG5vbmV4aXN0ZW50KQpAQCAtMSw5NSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1s
PgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IGltcG9ydGluZyBrZXlz
IHdpdGggdmFyaW91cyB1c2VzIGZyb20gSldLLiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
LQotdmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKLQotdmFyIGFlc0tleUFzSlNPTiA9IHsKLSAgICAi
YWxnIjogIkExOTJDQkMiLAotICAgICJleHQiOiB0cnVlLAotICAgICJrdHkiOiAib2N0IiwKLSAg
ICAiayI6ICJqbk93OTlvT1pGTElFUE1yZ0pCNTVXTDQ2dEpTTEd0NyIKLX07Ci0KLXZhciBobWFj
S2V5QXNKU09OID0gewotICAgICJhbGciOiAiSFMyNTYiLAotICAgICJleHQiOiB0cnVlLAotICAg
ICJrdHkiOiAib2N0IiwKLSAgICAiayI6ICJhaGprbi1fMzg3Zmduc2liZjIzcXN2YWhqa24tXzM4
N2ZnbnNpYmYyM3FzIgotfTsKLQotZnVuY3Rpb24gdGVzdFdpdGhBRVNDQkMoZXhwZWN0ZWRVc2Fn
ZXMsIGp3a1VzYWdlcykKLXsKLSAgICBpZiAoandrVXNhZ2VzLmtleV9vcHMpIHsKLSAgICAgICAg
YWVzS2V5QXNKU09OLmtleV9vcHMgPSBqd2tVc2FnZXMua2V5X29wczsKLSAgICAgICAgZGVsZXRl
IGFlc0tleUFzSlNPTi51c2U7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZGVsZXRlIGFlc0tleUFz
SlNPTi5rZXlfb3BzOwotICAgICAgICBhZXNLZXlBc0pTT04udXNlID0gandrVXNhZ2VzLnVzZTsK
LSAgICB9Ci0KLSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoImp3ayIs
IGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5KGFlc0tleUFzSlNPTikpLCAiQUVTLUNC
QyIsIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCIsICJ3cmFwS2V5IiwgInVud3Jh
cEtleSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgICAgICBrZXkgPSByZXN1bHQ7Ci0g
ICAgICAgIGRlYnVnKEpTT04uc3RyaW5naWZ5KGp3a1VzYWdlcykgKyAiOiIpOwotICAgICAgICBz
aG91bGRCZSgia2V5LnVzYWdlcyIsIEpTT04uc3RyaW5naWZ5KGV4cGVjdGVkVXNhZ2VzKSk7Ci0g
ICAgICAgIGRlYnVnKCIiKTsKLSAgICB9KTsKLX0KLQotZnVuY3Rpb24gdGVzdFdpdGhITUFDKGV4
cGVjdGVkVXNhZ2VzLCBqd2tVc2FnZXMpCi17Ci0gICAgaWYgKGp3a1VzYWdlcy5rZXlfb3BzKSB7
Ci0gICAgICAgIGhtYWNLZXlBc0pTT04ua2V5X29wcyA9IGp3a1VzYWdlcy5rZXlfb3BzOwotICAg
ICAgICBkZWxldGUgaG1hY0tleUFzSlNPTi51c2U7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgZGVs
ZXRlIGhtYWNLZXlBc0pTT04ua2V5X29wczsKLSAgICAgICAgaG1hY0tleUFzSlNPTi51c2UgPSBq
d2tVc2FnZXMudXNlOwotICAgIH0KLQotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLmlt
cG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoSlNPTi5zdHJpbmdpZnkoaG1hY0tleUFz
SlNPTikpLCB7bmFtZTogJ2htYWMnLCBoYXNoOiB7bmFtZTogJ3NoYS0yNTYnfX0sIGV4dHJhY3Rh
YmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgICAg
IGtleSA9IHJlc3VsdDsKLSAgICAgICAgZGVidWcoSlNPTi5zdHJpbmdpZnkoandrVXNhZ2VzKSAr
ICI6Iik7Ci0gICAgICAgIHNob3VsZEJlKCJrZXkudXNhZ2VzIiwgSlNPTi5zdHJpbmdpZnkoZXhw
ZWN0ZWRVc2FnZXMpKTsKLSAgICAgICAgZGVidWcoIiIpOwotICAgIH0pOwotfQotCi0vLyBEdXBs
aWNhdGVzIGFyZSBub3QgYWxsb3dlZC4gV2UgY3VycmVudGx5IHJhaXNlIGFuIGV4Y2VwdGlvbiwg
YWx0aG91Z2ggd2Ugc2hvdWxkIHJlamVjdCB0aGUgcHJvbWlzZSBpbnN0ZWFkLgotc2hvdWxkVGhy
b3coJ3Rlc3RXaXRoQUVTQ0JDKFsiZW5jcnlwdCJdLCB7a2V5X29wczogWyJlbmNyeXB0IiwgImVu
Y3J5cHQiXX0pJyk7Ci1kZWJ1ZygiIik7Ci0KLVByb21pc2UuYWxsKFsKLSAgICB0ZXN0V2l0aEFF
U0NCQyhbImVuY3J5cHQiXSwge2tleV9vcHM6IFsiZW5jcnlwdCJdfSksCi0gICAgdGVzdFdpdGhB
RVNDQkMoWyJkZWNyeXB0Il0sIHtrZXlfb3BzOiBbImRlY3J5cHQiXX0pLAotICAgIHRlc3RXaXRo
QUVTQ0JDKFsiZGVjcnlwdCIsICJlbmNyeXB0Il0sIHtrZXlfb3BzOiBbImVuY3J5cHQiLCAiZGVj
cnlwdCJdfSksCi0gICAgdGVzdFdpdGhBRVNDQkMoWyJ3cmFwS2V5Il0sIHtrZXlfb3BzOiBbIndy
YXBLZXkiXX0pLAotICAgIHRlc3RXaXRoQUVTQ0JDKFsidW53cmFwS2V5Il0sIHtrZXlfb3BzOiBb
InVud3JhcEtleSJdfSksCi0gICAgdGVzdFdpdGhBRVNDQkMoWyJ1bndyYXBLZXkiLCAid3JhcEtl
eSJdLCB7a2V5X29wczogWyJ3cmFwS2V5IiwgInVud3JhcEtleSJdfSksCi0gICAgdGVzdFdpdGhB
RVNDQkMoWyJkZWNyeXB0IiwgImVuY3J5cHQiLCAid3JhcEtleSJdLCB7a2V5X29wczogWyJlbmNy
eXB0IiwgImRlY3J5cHQiLCAid3JhcEtleSJdfSksCi0gICAgdGVzdFdpdGhBRVNDQkMoWyJkZWNy
eXB0IiwgImVuY3J5cHQiLCAidW53cmFwS2V5IiwgIndyYXBLZXkiXSwge3VzZTogImVuYyJ9KSwK
LSAgICB0ZXN0V2l0aEhNQUMoWyJzaWduIl0sIHtrZXlfb3BzOiBbInNpZ24iXX0pLAotICAgIHRl
c3RXaXRoSE1BQyhbInZlcmlmeSJdLCB7a2V5X29wczogWyJ2ZXJpZnkiXX0pLAotICAgIHRlc3RX
aXRoSE1BQyhbInNpZ24iLCAidmVyaWZ5Il0sIHt1c2U6ICJzaWcifSksCi0KLS8vIFVua25vd24g
a2V5X29wcyBzdHJpbmdzIGFyZSBpZ25vcmVkLgotICAgIHRlc3RXaXRoQUVTQ0JDKFtdLCB7a2V5
X29wczogWyInZW5jcnlwdCciXX0pLAotICAgIHRlc3RXaXRoQUVTQ0JDKFtdLCB7a2V5X29wczog
WyJlbmNyeXB0ICJdfSksCi0gICAgdGVzdFdpdGhBRVNDQkMoW10sIHtrZXlfb3BzOiBbIkVuY3J5
cHQiXX0pLAotCi1dKS50aGVuKGZ1bmN0aW9uKCkgeyBmaW5pc2hKU1Rlc3QoKTsgfSApOwotPC9z
Y3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRl
c3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvandrLWltcG9ydC11c2UtdmFsdWVzLmh0bWwKX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwpEZWxldGVkOiBzdm46bWltZS10eXBlCiMjIC0xICswLDAgIyMKLXRleHQvaHRtbApcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Vi
a2l0U3VidGxlL3Jlc291cmNlcy9kaXNhbGxvd2VkLWluLXdvcmtlci5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3Jlc291cmNlcy9kaXNhbGxvd2VkLWlu
LXdvcmtlci5qcwkocmV2aXNpb24gMjIwOTE5KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtp
dFN1YnRsZS9yZXNvdXJjZXMvZGlzYWxsb3dlZC1pbi13b3JrZXIuanMJKG5vbmV4aXN0ZW50KQpA
QCAtMSw3ICswLDAgQEAKLWltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcycpOwotCi1kZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBjcnlwdG8ud2Via2l0U3VidGxl
IHdpbGwgdGhyb3cgaW4gd29ya2Vycy4iKTsKLQotc2hvdWxkVGhyb3dFcnJvck5hbWUoImNyeXB0
by53ZWJraXRTdWJ0bGUiLCAiTm90U3VwcG9ydGVkRXJyb3IiKTsKLQotZmluaXNoSlNUZXN0KCk7
CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3Jlc291cmNlcy9yc2EtaW5k
ZXhlZGRiLW5vbi1leHBvcnRhYmxlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0
by93ZWJraXRTdWJ0bGUvcmVzb3VyY2VzL3JzYS1pbmRleGVkZGItbm9uLWV4cG9ydGFibGUuanMJ
KHJldmlzaW9uIDIyMDkxOSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcmVz
b3VyY2VzL3JzYS1pbmRleGVkZGItbm9uLWV4cG9ydGFibGUuanMJKG5vbmV4aXN0ZW50KQpAQCAt
MSw2MSArMCwwIEBACi1kZXNjcmlwdGlvbigiVGVzdCBzdG9yaW5nIGEgcHJpdmF0ZSBSU0Ega2V5
IGluIEluZGV4ZWREQiwgYW5kIHJldHJpZXZpbmcgaXQuIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0
cnVlOwotCi12YXIgcHJpdmF0ZUtleUpTT04gPSB7Ci0gICAga3R5OiAiUlNBIiwKLSAgICBhbGc6
ICJSUzI1NiIsCi0gICAgbjogInJjQ1VDdjdPYzFIVmFtMURJaEN6cWtuVGhXYXdPcDhRTGs4Wml5
MnAxMEJ5alFGQ2Fqb0ZpeXVBV2wtUjFXWFphZjR4aXRMUnJhY1Q5YWdwekl6Yy1NYkxTSElHZ1dR
R08yMWxHaUlteTVmdFotRDhiSEFxUnoyeTE1cHpENGM0Q0VvdTdYU1NMRG9SblIwUUc1TXNEaEQ2
czJnVjltd0hrcnRrQ3h0TVdkQmktNzdhczh3R21sTlJsZGNPU2daRExLOFVuQ1NnQTFPZ3VaOTg5
YkZ5Yzh0T09FSWIweFVTZlBTejNMUFNDbnlZejY4YURqbUtWZU5ILWlnODU3T1NjeVdiR3lFeTNC
aXc2NHF1bjNqdVVsTldzSjN6bmdrT2R0ZVlXeXR4NVFyNFhLTnM2Ui1NeXlxNzJLVXAwMm1KRFpp
aXlpZ2x4TUxfaTMtX0NlZWNDdyIsCi0gICAgZTogIkFRQUIiLAotICAgIGQ6ICJlTkxTMzdhQ3o3
UlhTTlBEX0R0TEJKNmo1VDhjU3hkelJCQ2pQYUk2V2NHcUpwMTZscTNVVHd1b0RMQXFsQTlvR1lt
MjM4ZHNJV3B1dWNQX2xRdGJXZS03U3B4b0k2X3ZtWUdmN1lWVUh2MS1ERjlxaU9tU3JNbWR4TW5W
T3pZWFk4UmFUNnRoUGpuX0o1Y2ZMVjJ4SV9Md3NyTXRtcGRTeU5sZ1gwelRVaHd0dWFoZ0FLTUVD
aFlqSDJFbmpIZEh3NnNZMi13QXBkY1FJN1VMRTBvbzVSemJRWnBtdWhjTjloaUJjMEwzaGhGMHFv
NTBtYmwwMl82NV9HUTdEcFZrWEJ4TmdSQkx6bFBhYm16ekcyb0FoZmVmTGdZbVNDMW9wYUNrWEU2
dlJXUU5XTkw0NVJaTlpGWU0zdW9KZ2hPTXFHZW9jTTBCcGpkQ2hIclBPbEZ2U1EiLAotICAgIHA6
ICI0bWlUdUFqS01lSDV1SjVLQjM5N1FVd2hia1lFZ1NiY0EybWlmbVNrdkUyMDE4Z2I1NXFrQkhL
MWVWcnlmMV9tNDNMTmxjNk9fYWs2Z2Z6ZFpJWnZTNU5DR2pQbDBxMDlwbFVwdThxRk9Tc3BCd0E2
N3FHSDc2bEZsWkxuX2Q0eWdsUzd3ZkxydTRfNVlzOHFMTHMtRHFWTHZpd3Bvc09ueXlXcXdNNUFY
cDAiLAotICAgIHE6ICJ4SFlyemtpdnRtbnpfc0djaG5XR2MwcS1wRE9rS2ljcHRScHYycE1GSUlY
eG5GWDVhTWVFWElaalZ1alh0d1V5MVVsRklOMkdaSlN2eTVLSjc5bXVfWHlObkZITXplZEgtQTNl
ZTN1OGgxVVVyWkYtdlV1MV9lNFVfeDY3Tk4xZGVkelVTS3luTjdwRmwzT2t1U2hNQldHVi1jd3pP
UGRjVkFmVnVabHhVTWMiLAotICAgIGRwOiAiZkJ6RHpZRFVCbUJRR29wN0huMGR2Zl9UMjdWNlJx
cGN0V28wNzRDUVpjRmJQMmF0RlZ0S1NqM3ZpV1QzeGlkMlZIemNnaURIZGZwTTNuRVZsRU8xd3dJ
b25HQ1N2ZGpHRU9aaWlGVk9qclpBT1Z4QThndU9qeXlGdnFiWGtlMDZWd1BJSVZ2ZktlU1UyenVo
YlBfXzF0dDZGX2Z4b3c0S2IyeG9uR1QwR0drIiwKLSAgICBkcTogImptRTJEaUlQZGh3RGdMWEFR
cElhQnFRODFiTzNYZlZUX0xSVUxBd3d3d2xQdVFWMTQ4SDA0emxoOVRKNlkyR1pIWW9rVjFVMGVP
QnBKeGZrYjdkTFl0cEpwdWlCalJmNHlJVUVvR2xra0lfUWxKbkZTRnItWWpHUmRmTkhxV0JreGxT
TVpMNzcwUjltSUFUbmRHa0g3ejV4LXI5S3dCWkZDNEZDRzJoZ196RSIsCi0gICAgcWk6ICJZQ1hf
cEx3Yk1CQTFUaFZIMFdjd21ueXRxTmNyTUNFd1RtN0J5QTJlVTZuV2JRclVMdmY3bTlfa3pmTFVj
anNucEFWbEJRRzVKTVhNeTBTcTRwdHdieXdzYTUtRzhLQU9PT1IyTDN2NGhDLUV5czlmdGdGTV8z
aTBvNDBlZVFINGIzaGFQYm50ckllTWc4SXpsT3VWWUtmOS0yUXVLRG9XZVJkZDdOc2R4VGsiCi19
OwotCi1jcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJy
YXkoSlNPTi5zdHJpbmdpZnkocHJpdmF0ZUtleUpTT04pKSwgbnVsbCwgZmFsc2UsIFsic2lnbiIs
ICJ2ZXJpZnkiXSkudGhlbihmdW5jdGlvbihrZXkpIHsKLSAgICB2YXIgb3BlblJlcXVlc3QgPSBp
bmRleGVkREIub3BlbigiY3J5cHRvX3dlYmtpdFN1YnRsZSIpOwotICAgIG9wZW5SZXF1ZXN0Lm9u
dXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgIHZhciBvYmplY3RTdG9y
ZSA9IGV2ZW50LnRhcmdldC5yZXN1bHQuY3JlYXRlT2JqZWN0U3RvcmUoInJzYS1pbmRleGVkZGIi
KTsKLSAgICB9Ci0gICAgb3BlblJlcXVlc3Qub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0g
ICAgICAgIHRlc3RGYWlsZWQoIkNvdWxkIG5vdCBvcGVuIGRhdGFiYXNlOiAiICsgZXZlbnQudGFy
Z2V0LmVycm9yLm5hbWUpOwotICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICB9Ci0gICAgb3Bl
blJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgZGIgPSBldmVu
dC50YXJnZXQucmVzdWx0OwotICAgICAgICBzdG9yZUtleSgpOwotICAgIH0KLQotICAgIGZ1bmN0
aW9uIHN0b3JlS2V5KCkgewotICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBkYi50cmFuc2FjdGlv
bigicnNhLWluZGV4ZWRkYiIsICJyZWFkd3JpdGUiKS5vYmplY3RTdG9yZSgicnNhLWluZGV4ZWRk
YiIpOwotICAgICAgICB2YXIgcmVxID0gb2JqZWN0U3RvcmUucHV0KGtleSwgIm15a2V5Iik7Ci0g
ICAgICAgIHJlcS5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkNvdWxkIG5vdCBwdXQgYSBrZXkgaW50byBkYXRhYmFzZTogIiArIGV2ZW50LnRhcmdl
dC5lcnJvci5uYW1lKTsKLSAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICB9Ci0g
ICAgICAgIHJlcS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkgeyByZWFkS2V5KCk7IH0KLSAg
ICB9Ci0KLSAgICBmdW5jdGlvbiByZWFkS2V5KCkgewotICAgICAgICB2YXIgb2JqZWN0U3RvcmUg
PSBkYi50cmFuc2FjdGlvbigicnNhLWluZGV4ZWRkYiIpLm9iamVjdFN0b3JlKCJyc2EtaW5kZXhl
ZGRiIik7Ci0gICAgICAgIHZhciByZXEgPSBvYmplY3RTdG9yZS5nZXQoIm15a2V5Iik7Ci0gICAg
ICAgIHJlcS5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkNvdWxkIG5vdCBnZXQgYSBrZXkgZnJvbSBkYXRhYmFzZTogIiArIGV2ZW50LnRhcmdldC5l
cnJvci5uYW1lKTsKLSAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICB9Ci0gICAg
ICAgIHJlcS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkgewotICAgICAgICAgICAgd2luZG93
LnJldHJpZXZlZEtleSA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7Ci0gICAgICAgICAgICBzaG91bGRC
ZSgicmV0cmlldmVkS2V5LnR5cGUiLCAiJ3ByaXZhdGUnIik7Ci0gICAgICAgICAgICBzaG91bGRC
ZSgicmV0cmlldmVkS2V5LmV4dHJhY3RhYmxlIiwgImZhbHNlIik7Ci0gICAgICAgICAgICBzaG91
bGRCZSgicmV0cmlldmVkS2V5LmFsZ29yaXRobS5uYW1lIiwgIidSU0FTU0EtUEtDUzEtdjFfNSci
KTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJyZXRyaWV2ZWRLZXkuYWxnb3JpdGhtLm1vZHVsdXNM
ZW5ndGgiLCAiMjA0OCIpOwotICAgICAgICAgICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmco
cmV0cmlldmVkS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkiLCAiJzAxMDAwMSciKTsKLSAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXRyaWV2ZWRLZXkudXNhZ2VzIiwgJ1sic2lnbiIsICJ2ZXJp
ZnkiXScpOwotCi0gICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgfQotICAgIH0K
LX0pOwpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yZXNvdXJjZXMvcnNh
LWluZGV4ZWRkYi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3Vi
dGxlL3Jlc291cmNlcy9yc2EtaW5kZXhlZGRiLmpzCShyZXZpc2lvbiAyMjA5MTkpCisrKyBMYXlv
dXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3Jlc291cmNlcy9yc2EtaW5kZXhlZGRiLmpzCShu
b25leGlzdGVudCkKQEAgLTEsNjEgKzAsMCBAQAotZGVzY3JpcHRpb24oIlRlc3Qgc3RvcmluZyBh
IHByaXZhdGUgUlNBIGtleSBpbiBJbmRleGVkREIsIGFuZCByZXRyaWV2aW5nIGl0LiIpOwotCi1q
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
V2VSZGQ3TnNkeFRrIgotfTsKLQotY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoImp3ayIs
IGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5KHByaXZhdGVLZXlKU09OKSksIG51bGws
IHRydWUsIFsic2lnbiIsICJ2ZXJpZnkiXSkudGhlbihmdW5jdGlvbihrZXkpIHsKLSAgICB2YXIg
b3BlblJlcXVlc3QgPSBpbmRleGVkREIub3BlbigiY3J5cHRvX3dlYmtpdFN1YnRsZSIpOwotICAg
IG9wZW5SZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAg
IHZhciBvYmplY3RTdG9yZSA9IGV2ZW50LnRhcmdldC5yZXN1bHQuY3JlYXRlT2JqZWN0U3RvcmUo
InJzYS1pbmRleGVkZGIiKTsKLSAgICB9Ci0gICAgb3BlblJlcXVlc3Qub25lcnJvciA9IGZ1bmN0
aW9uKGV2ZW50KSB7Ci0gICAgICAgIHRlc3RGYWlsZWQoIkNvdWxkIG5vdCBvcGVuIGRhdGFiYXNl
OiAiICsgZXZlbnQudGFyZ2V0LmVycm9yLm5hbWUpOwotICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
LSAgICB9Ci0gICAgb3BlblJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAg
ICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OwotICAgICAgICBzdG9yZUtleSgpOwotICAg
IH0KLQotICAgIGZ1bmN0aW9uIHN0b3JlS2V5KCkgewotICAgICAgICB2YXIgb2JqZWN0U3RvcmUg
PSBkYi50cmFuc2FjdGlvbigicnNhLWluZGV4ZWRkYiIsICJyZWFkd3JpdGUiKS5vYmplY3RTdG9y
ZSgicnNhLWluZGV4ZWRkYiIpOwotICAgICAgICB2YXIgcmVxID0gb2JqZWN0U3RvcmUucHV0KGtl
eSwgIm15a2V5Iik7Ci0gICAgICAgIHJlcS5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAg
ICAgICAgICAgIHRlc3RGYWlsZWQoIkNvdWxkIG5vdCBwdXQgYSBrZXkgaW50byBkYXRhYmFzZTog
IiArIGV2ZW50LnRhcmdldC5lcnJvci5uYW1lKTsKLSAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgp
OwotICAgICAgICB9Ci0gICAgICAgIHJlcS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkgeyBy
ZWFkS2V5KCk7IH0KLSAgICB9Ci0KLSAgICBmdW5jdGlvbiByZWFkS2V5KCkgewotICAgICAgICB2
YXIgb2JqZWN0U3RvcmUgPSBkYi50cmFuc2FjdGlvbigicnNhLWluZGV4ZWRkYiIpLm9iamVjdFN0
b3JlKCJyc2EtaW5kZXhlZGRiIik7Ci0gICAgICAgIHZhciByZXEgPSBvYmplY3RTdG9yZS5nZXQo
Im15a2V5Iik7Ci0gICAgICAgIHJlcS5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAg
ICAgICAgIHRlc3RGYWlsZWQoIkNvdWxkIG5vdCBnZXQgYSBrZXkgZnJvbSBkYXRhYmFzZTogIiAr
IGV2ZW50LnRhcmdldC5lcnJvci5uYW1lKTsKLSAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwot
ICAgICAgICB9Ci0gICAgICAgIHJlcS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihldmVudCkgewotICAg
ICAgICAgICAgd2luZG93LnJldHJpZXZlZEtleSA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7Ci0gICAg
ICAgICAgICBzaG91bGRCZSgicmV0cmlldmVkS2V5LnR5cGUiLCAiJ3ByaXZhdGUnIik7Ci0gICAg
ICAgICAgICBzaG91bGRCZSgicmV0cmlldmVkS2V5LmV4dHJhY3RhYmxlIiwgInRydWUiKTsKLSAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXRyaWV2ZWRLZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ1JTQVNT
QS1QS0NTMS12MV81JyIpOwotICAgICAgICAgICAgc2hvdWxkQmUoInJldHJpZXZlZEtleS5hbGdv
cml0aG0ubW9kdWx1c0xlbmd0aCIsICIyMDQ4Iik7Ci0gICAgICAgICAgICBzaG91bGRCZSgiYnl0
ZXNUb0hleFN0cmluZyhyZXRyaWV2ZWRLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSIsICIn
MDEwMDAxJyIpOwotICAgICAgICAgICAgc2hvdWxkQmUoInJldHJpZXZlZEtleS51c2FnZXMiLCAn
WyJzaWduIiwgInZlcmlmeSJdJyk7Ci0KLSAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAg
ICAgICB9Ci0gICAgfQotfSk7CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9jcnlw
dG8vd2Via2l0U3VidGxlL3Jlc291cmNlcy9yc2EtaW5kZXhlZGRiLmpzCl9fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVs
ZXRlZDogc3ZuOm1pbWUtdHlwZQojIyAtMSArMCwwICMjCi10ZXh0L2h0bWwKXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRs
ZS9yc2EtZXhwb3J0LWdlbmVyYXRlZC1rZXlzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1leHBvcnQtZ2VuZXJhdGVkLWtleXMt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMjA5MTkpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Vi
a2l0U3VidGxlL3JzYS1leHBvcnQtZ2VuZXJhdGVkLWtleXMtZXhwZWN0ZWQudHh0CShub25leGlz
dGVudCkKQEAgLTEsMzMgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI2OiBXZWJLaXRT
dWJ0bGVDcnlwdG8gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBTdWJ0bGVDcnlwdG8gaW5zdGVh
ZC4KLVRlc3QgZXhwb3J0aW5nIGEgZ2VuZXJhdGVkIFJTQSBrZXlwYWlyIHdpdGggaGFzaC4KLQot
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLQotR2VuZXJhdGluZyBSU0EtUEtDUzEtdjEu
NSBrZXlQYWlyLi4uCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUuZXhwb3J0S2V5KG51bGwsIGtl
eSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVW5rbm93biBrZXkgZm9ybWF0LgotUEFTUyBj
cnlwdG8ud2Via2l0U3VidGxlLmV4cG9ydEtleSh1bmRlZmluZWQsIGtleSkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogVW5rbm93biBrZXkgZm9ybWF0LgotUEFTUyBjcnlwdG8ud2Via2l0U3Vi
dGxlLmV4cG9ydEtleSh7fSwga2V5KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBVbmtub3du
IGtleSBmb3JtYXQuCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUuZXhwb3J0S2V5KCIiLCBrZXkp
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFVua25vd24ga2V5IGZvcm1hdC4KLVBBU1MgY3J5
cHRvLndlYmtpdFN1YnRsZS5leHBvcnRLZXkoImZvb2JhciIsIGtleSkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogVW5rbm93biBrZXkgZm9ybWF0LgotUEFTUyBrZXkucHVibGljS2V5LmFsZ29y
aXRobS5oYXNoLm5hbWUgaXMgZGVmaW5lZC4KLVBBU1Mga2V5LnByaXZhdGVLZXkuYWxnb3JpdGht
Lmhhc2gubmFtZSBpcyBkZWZpbmVkLgotCi1FeHBvcnRpbmcgcHVibGljIGtleSBhcyBKV0suLi4K
LVBBU1MgZXhwb3J0ZWRKV0sua3R5IGlzICdSU0EnCi1QQVNTIGV4cG9ydGVkSldLLmFsZyBpcyAn
UlMyNTYnCi1QQVNTIGV4cG9ydGVkSldLLmV4dCBpcyB0cnVlCi1QQVNTIGV4cG9ydGVkSldLLnVz
ZSBpcyB1bmRlZmluZWQKLVBBU1MgZXhwb3J0ZWRKV0sua2V5X29wcyBpcyBbJ3NpZ24nLCAndmVy
aWZ5J10KLQotRXhwb3J0aW5nIHByaXZhdGUga2V5IGFzIEpXSy4uLgotUEFTUyBleHBvcnRlZEpX
Sy5rdHkgaXMgJ1JTQScKLVBBU1MgZXhwb3J0ZWRKV0suYWxnIGlzICdSUzI1NicKLVBBU1MgZXhw
b3J0ZWRKV0suZXh0IGlzIHRydWUKLVBBU1MgZXhwb3J0ZWRKV0sudXNlIGlzIHVuZGVmaW5lZAot
UEFTUyBleHBvcnRlZEpXSy5rZXlfb3BzIGlzIFsnc2lnbicsICd2ZXJpZnknXQotUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRl
c3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWV4cG9ydC1nZW5lcmF0ZWQta2V5cy5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWV4cG9ydC1n
ZW5lcmF0ZWQta2V5cy5odG1sCShyZXZpc2lvbiAyMjA5MTkpCisrKyBMYXlvdXRUZXN0cy9jcnlw
dG8vd2Via2l0U3VidGxlL3JzYS1leHBvcnQtZ2VuZXJhdGVkLWtleXMuaHRtbAkobm9uZXhpc3Rl
bnQpCkBAIC0xLDY2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgot
Ci08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3QgZXhwb3J0aW5nIGEgZ2VuZXJhdGVkIFJTQSBr
ZXlwYWlyIHdpdGggaGFzaC4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBleHRy
YWN0YWJsZSA9IHRydWU7Ci0KLXZhciBhbGdvcml0aG0gPSB7Ci0gICAgbmFtZTogIlJTQVNTQS1Q
S0NTMS12MV81IiwKLSAgICBtb2R1bHVzTGVuZ3RoOiAiMjA0OCIsCi0gICAgcHVibGljRXhwb25l
bnQ6IG5ldyBVaW50OEFycmF5KFsxLCAwLCAxXSksIC8vIDJeMTYgKyAxICg2NTUzNykKLSAgICBo
YXNoOiB7IG5hbWU6ICJTSEEtMjU2IiB9Ci19OwotCi1kZWJ1ZygiXG5HZW5lcmF0aW5nIFJTQS1Q
S0NTMS12MS41IGtleVBhaXIuLi4iKTsKLWNyeXB0by53ZWJraXRTdWJ0bGUuZ2VuZXJhdGVLZXko
YWxnb3JpdGhtLCBleHRyYWN0YWJsZSwgWydzaWduJywgJ3ZlcmlmeSddKQotLnRoZW4oZnVuY3Rp
b24ocmVzdWx0KSB7Ci0gICAga2V5ID0gcmVzdWx0OwotCi0gICAgc2hvdWxkVGhyb3coJ2NyeXB0
by53ZWJraXRTdWJ0bGUuZXhwb3J0S2V5KG51bGwsIGtleSknKTsKLSAgICBzaG91bGRUaHJvdygn
Y3J5cHRvLndlYmtpdFN1YnRsZS5leHBvcnRLZXkodW5kZWZpbmVkLCBrZXkpJyk7Ci0gICAgc2hv
dWxkVGhyb3coJ2NyeXB0by53ZWJraXRTdWJ0bGUuZXhwb3J0S2V5KHt9LCBrZXkpJyk7Ci0gICAg
c2hvdWxkVGhyb3coJ2NyeXB0by53ZWJraXRTdWJ0bGUuZXhwb3J0S2V5KCIiLCBrZXkpJyk7Ci0g
ICAgc2hvdWxkVGhyb3coJ2NyeXB0by53ZWJraXRTdWJ0bGUuZXhwb3J0S2V5KCJmb29iYXIiLCBr
ZXkpJyk7Ci0gICAgc2hvdWxkQmVEZWZpbmVkKCdrZXkucHVibGljS2V5LmFsZ29yaXRobS5oYXNo
Lm5hbWUnKTsKLSAgICBzaG91bGRCZURlZmluZWQoJ2tleS5wcml2YXRlS2V5LmFsZ29yaXRobS5o
YXNoLm5hbWUnKTsKLQotICAgIGRlYnVnKCJcbkV4cG9ydGluZyBwdWJsaWMga2V5IGFzIEpXSy4u
LiIpOwotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLmV4cG9ydEtleSgiandrIiwga2V5
LnB1YmxpY0tleSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGV4cG9ydGVkSldL
ID0gSlNPTi5wYXJzZShieXRlc1RvQVNDSUlTdHJpbmcocmVzdWx0KSk7Ci0KLSAgICBzaG91bGRC
ZSgiZXhwb3J0ZWRKV0sua3R5IiwgIidSU0EnIik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkSldL
LmFsZyIsICInUlMyNTYnIik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmV4dCIsICJ0cnVl
Iik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLnVzZSIsICJ1bmRlZmluZWQiKTsKLSAgICBz
aG91bGRCZSgiZXhwb3J0ZWRKV0sua2V5X29wcyIsICJbJ3NpZ24nLCAndmVyaWZ5J10iKTsKLQot
ICAgIGRlYnVnKCJcbkV4cG9ydGluZyBwcml2YXRlIGtleSBhcyBKV0suLi4iKTsKLSAgICByZXR1
cm4gY3J5cHRvLndlYmtpdFN1YnRsZS5leHBvcnRLZXkoImp3ayIsIGtleS5wcml2YXRlS2V5KTsK
LX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgZXhwb3J0ZWRKV0sgPSBKU09OLnBhcnNl
KGJ5dGVzVG9BU0NJSVN0cmluZyhyZXN1bHQpKTsKLQotICAgIHNob3VsZEJlKCJleHBvcnRlZEpX
Sy5rdHkiLCAiJ1JTQSciKTsKLSAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0suYWxnIiwgIidSUzI1
NiciKTsKLSAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0suZXh0IiwgInRydWUiKTsKLSAgICBzaG91
bGRCZSgiZXhwb3J0ZWRKV0sudXNlIiwgInVuZGVmaW5lZCIpOwotICAgIHNob3VsZEJlKCJleHBv
cnRlZEpXSy5rZXlfb3BzIiwgIlsnc2lnbicsICd2ZXJpZnknXSIpOwotCi0gICAgZmluaXNoSlNU
ZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1leHBvcnQta2V5LWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1leHBvcnQta2V5
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjIwOTE5KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dl
YmtpdFN1YnRsZS9yc2EtZXhwb3J0LWtleS1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAt
MSwyNiArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjk6IFdlYktpdFN1YnRsZUNyeXB0
byBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIFN1YnRsZUNyeXB0byBpbnN0ZWFkLgotVGVzdCBl
eHBvcnRpbmcgYW4gUlNBIGtleS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLQot
SW1wb3J0aW5nIGEgSldLIGtleS4uLgotUEFTUyBjcnlwdG8ud2Via2l0U3VidGxlLmV4cG9ydEtl
eShudWxsLCBrZXkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFVua25vd24ga2V5IGZvcm1h
dC4KLVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5leHBvcnRLZXkodW5kZWZpbmVkLCBrZXkpIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFVua25vd24ga2V5IGZvcm1hdC4KLVBBU1MgY3J5cHRv
LndlYmtpdFN1YnRsZS5leHBvcnRLZXkoe30sIGtleSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogVW5rbm93biBrZXkgZm9ybWF0LgotUEFTUyBjcnlwdG8ud2Via2l0U3VidGxlLmV4cG9ydEtl
eSgiIiwga2V5KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBVbmtub3duIGtleSBmb3JtYXQu
Ci1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUuZXhwb3J0S2V5KCJmb29iYXIiLCBrZXkpIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFVua25vd24ga2V5IGZvcm1hdC4KLQotRXhwb3J0aW5nIHRo
ZSBrZXkgYXMgSldLLi4uCi1QQVNTIGV4cG9ydGVkSldLLmt0eSBpcyAnUlNBJwotUEFTUyBleHBv
cnRlZEpXSy5uIGlzIHB1YmxpY0tleUpTT04ubgotUEFTUyBleHBvcnRlZEpXSy5lIGlzIHB1Ymxp
Y0tleUpTT04uZQotUEFTUyBleHBvcnRlZEpXSy5hbGcgaXMgJ1JTMjU2JwotUEFTUyBleHBvcnRl
ZEpXSy5leHQgaXMgdHJ1ZQotUEFTUyBleHBvcnRlZEpXSy51c2UgaXMgdW5kZWZpbmVkCi1QQVNT
IGV4cG9ydGVkSldLLmtleV9vcHMgaXMgWydzaWduJywgJ3ZlcmlmeSddCi1QQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQoKUHJvcGVydHkgY2hhbmdlcyBv
bjogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtZXhwb3J0LWtleS1leHBlY3Rl
ZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0xICswLDAgIyMKLW5h
dGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkRlbGV0ZWQ6IHN2bjptaW1lLXR5
cGUKIyMgLTEgKzAsMCAjIwotdGV4dC9wbGFpbgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3Bl
cnR5CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1leHBvcnQta2V5
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Et
ZXhwb3J0LWtleS5odG1sCShyZXZpc2lvbiAyMjA5MTkpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8v
d2Via2l0U3VidGxlL3JzYS1leHBvcnQta2V5Lmh0bWwJKG5vbmV4aXN0ZW50KQpAQCAtMSw1NyAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRl
c2NyaXB0aW9uKCJUZXN0IGV4cG9ydGluZyBhbiBSU0Ega2V5LiIpOwotCi1qc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKLQotdmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKLXZhciBub25FeHRyYWN0YWJsZSA9
IGZhbHNlOwotCi12YXIgcHVibGljS2V5SlNPTiA9IHsKLSAgICBrdHk6ICJSU0EiLAotICAgIGFs
ZzogIlJTMjU2IiwKLSAgICBuOiAicmNDVUN2N09jMUhWYW0xREloQ3pxa25UaFdhd09wOFFMazha
aXkycDEwQnlqUUZDYWpvRml5dUFXbC1SMVdYWmFmNHhpdExScmFjVDlhZ3B6SXpjLU1iTFNISUdn
V1FHTzIxbEdpSW15NWZ0Wi1EOGJIQXFSejJ5MTVwekQ0YzRDRW91N1hTU0xEb1JuUjBRRzVNc0Ro
RDZzMmdWOW13SGtydGtDeHRNV2RCaS03N2FzOHdHbWxOUmxkY09TZ1pETEs4VW5DU2dBMU9ndVo5
ODliRnljOHRPT0VJYjB4VVNmUFN6M0xQU0NueVl6NjhhRGptS1ZlTkgtaWc4NTdPU2N5V2JHeUV5
M0JpdzY0cXVuM2p1VWxOV3NKM3puZ2tPZHRlWVd5dHg1UXI0WEtOczZSLU15eXE3MktVcDAybUpE
WmlpeWlnbHhNTF9pMy1fQ2VlY0N3IiwKLSAgICBlOiAiQVFBQiIKLX07Ci0KLXZhciBqd2tLZXlB
c0FycmF5QnVmZmVyID0gYXNjaWlUb1VpbnQ4QXJyYXkoSlNPTi5zdHJpbmdpZnkocHVibGljS2V5
SlNPTikpOwotCi1kZWJ1ZygiXG5JbXBvcnRpbmcgYSBKV0sga2V5Li4uIik7Ci1jcnlwdG8ud2Vi
a2l0U3VidGxlLmltcG9ydEtleSgiandrIiwgandrS2V5QXNBcnJheUJ1ZmZlciwgIlJTQVNTQS1Q
S0NTMS12MV81IiwgZXh0cmFjdGFibGUsIFsnc2lnbicsICd2ZXJpZnknXSkudGhlbihmdW5jdGlv
bihyZXN1bHQpIHsKLSAgICBrZXkgPSByZXN1bHQ7Ci0KLSAgICBzaG91bGRUaHJvdygnY3J5cHRv
LndlYmtpdFN1YnRsZS5leHBvcnRLZXkobnVsbCwga2V5KScpOwotICAgIHNob3VsZFRocm93KCdj
cnlwdG8ud2Via2l0U3VidGxlLmV4cG9ydEtleSh1bmRlZmluZWQsIGtleSknKTsKLSAgICBzaG91
bGRUaHJvdygnY3J5cHRvLndlYmtpdFN1YnRsZS5leHBvcnRLZXkoe30sIGtleSknKTsKLSAgICBz
aG91bGRUaHJvdygnY3J5cHRvLndlYmtpdFN1YnRsZS5leHBvcnRLZXkoIiIsIGtleSknKTsKLSAg
ICBzaG91bGRUaHJvdygnY3J5cHRvLndlYmtpdFN1YnRsZS5leHBvcnRLZXkoImZvb2JhciIsIGtl
eSknKTsKLQotICAgIGRlYnVnKCJcbkV4cG9ydGluZyB0aGUga2V5IGFzIEpXSy4uLiIpOwotICAg
IHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLmV4cG9ydEtleSgiandrIiwga2V5KTsKLX0pLnRo
ZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgZXhwb3J0ZWRKV0sgPSBKU09OLnBhcnNlKGJ5dGVz
VG9BU0NJSVN0cmluZyhyZXN1bHQpKTsKLQotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5rdHki
LCAiJ1JTQSciKTsKLSAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0subiIsICJwdWJsaWNLZXlKU09O
Lm4iKTsKLSAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0suZSIsICJwdWJsaWNLZXlKU09OLmUiKTsK
LSAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0suYWxnIiwgIidSUzI1NiciKTsKLSAgICBzaG91bGRC
ZSgiZXhwb3J0ZWRKV0suZXh0IiwgInRydWUiKTsKLSAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0su
dXNlIiwgInVuZGVmaW5lZCIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5rZXlfb3BzIiwg
Ilsnc2lnbicsICd2ZXJpZnknXSIpOwotCi0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2Ny
aXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0
cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1leHBvcnQta2V5Lmh0bWwKX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxl
dGVkOiBzdm46bWltZS10eXBlCiMjIC0xICswLDAgIyMKLXRleHQvaHRtbApcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxl
L3JzYS1leHBvcnQtcHJpdmF0ZS1rZXktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWV4cG9ydC1wcml2YXRlLWtleS1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDIyMDkxOSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0
bGUvcnNhLWV4cG9ydC1wcml2YXRlLWtleS1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAt
MSwyOCArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMzY6IFdlYktpdFN1YnRsZUNyeXB0
byBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIFN1YnRsZUNyeXB0byBpbnN0ZWFkLgotVGVzdCBl
eHBvcnRpbmcgYSBwcml2YXRlIFJTQSBrZXkuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
LQotCi0KLUltcG9ydGluZyBhIEpXSyBrZXkuLi4KLQotRXhwb3J0aW5nIHRoZSBrZXkgYXMgSldL
Li4uCi1QQVNTIGV4cG9ydGVkSldLLmt0eSBpcyAnUlNBJwotUEFTUyBleHBvcnRlZEpXSy5uIGlz
IHByaXZhdGVLZXlKU09OLm4KLVBBU1MgZXhwb3J0ZWRKV0suZSBpcyBwcml2YXRlS2V5SlNPTi5l
Ci1QQVNTIGV4cG9ydGVkSldLLmQgaXMgcHJpdmF0ZUtleUpTT04uZAotUEFTUyBleHBvcnRlZEpX
Sy5wIGlzIHByaXZhdGVLZXlKU09OLnAKLVBBU1MgZXhwb3J0ZWRKV0sucSBpcyBwcml2YXRlS2V5
SlNPTi5xCi1QQVNTIGV4cG9ydGVkSldLLmRwIGlzIHByaXZhdGVLZXlKU09OLmRwCi1QQVNTIGV4
cG9ydGVkSldLLmRxIGlzIHByaXZhdGVLZXlKU09OLmRxCi1QQVNTIGV4cG9ydGVkSldLLnFpIGlz
IHByaXZhdGVLZXlKU09OLnFpCi1QQVNTIGV4cG9ydGVkSldLLm90aCBpcyBwcml2YXRlS2V5SlNP
Ti5vdGgKLVBBU1MgZXhwb3J0ZWRKV0suYWxnIGlzIHByaXZhdGVLZXlKU09OLmFsZwotUEFTUyBl
eHBvcnRlZEpXSy5leHQgaXMgdHJ1ZQotUEFTUyBleHBvcnRlZEpXSy5rZXlfb3BzIGlzIFsnc2ln
bicsICd2ZXJpZnknXQotUEFTUyBleHBvcnRlZEpXSy51c2UgaXMgdW5kZWZpbmVkCi1QQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQoKUHJvcGVydHkgY2hh
bmdlcyBvbjogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtZXhwb3J0LXByaXZh
dGUta2V5LWV4cGVjdGVkLnR4dApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMg
LTEgKzAsMCAjIwotbmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKRGVsZXRl
ZDogc3ZuOm1pbWUtdHlwZQojIyAtMSArMCwwICMjCi10ZXh0L3BsYWluClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUv
cnNhLWV4cG9ydC1wcml2YXRlLWtleS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Ny
eXB0by93ZWJraXRTdWJ0bGUvcnNhLWV4cG9ydC1wcml2YXRlLWtleS5odG1sCShyZXZpc2lvbiAy
MjA5MTkpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1leHBvcnQtcHJp
dmF0ZS1rZXkuaHRtbAkobm9uZXhpc3RlbnQpCkBAIC0xLDY1ICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9jb21tb24uanMi
Pjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3QgZXhw
b3J0aW5nIGEgcHJpdmF0ZSBSU0Ega2V5LiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQot
dmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKLXZhciBub25FeHRyYWN0YWJsZSA9IGZhbHNlOwotCi0v
LyBFeGFtcGxlIGZyb20gSldLIHNwZWNpZmljYXRpb24uCi12YXIgcHJpdmF0ZUtleUpTT04gPSB7
Ci0gICAgImt0eSI6IlJTQSIsCi0gICAgIm4iOiIwdng3YWdvZWJHY1FTdXVQaUxKWFpwdE45bm5k
clFtYlhFcHMyYWlBRmJXaE03OExoV3g0Y2JiZkFBdFZUODZ6d3UxUks3YVBGRnh1aERSMUw2dFNv
Y19CSkVDUGViV0tSWGpCWkNpRlY0bjNva25qaE1zdG42NHRaXzJXLTVKc0dZNEhjNW45eUJYQXJ3
bDkzbHF0N19STjV3NkNmMGg0UXlRNXYtNjVZR2pRUjBfRkRXMlF2enFZMzY4UVFNaWNBdGFTcXpz
OEtKWmduWWI5YzdkMHpnZEFaSHp1NnFNUXZSTDVoYWpybjFuOTFDYk9wYklTRDA4cU5MeXJka3Qt
YkZUV2hBSTR2TVFGaDZXZVp1MGZNNGxGZDJOY1J3cjNYUGtzSU5IYVEtR194Qm5pSXFidzBMczFq
RjQ0LWNzRkN1ci1rRWdVOGF3YXBKektucURLZ3ciLAotICAgICJlIjoiQVFBQiIsCi0gICAgImQi
OiJYNGNUdGVKWV9nbjRGWVBzWEI4cmRYaXg1dndzZzFGTE41RTNFYUc2UkpvVkgtSExMS0Q5TTdk
eDVvbzdHVVJrbmNobnJSd2VVa0M3aFQ1ZkpMTTBXYkZBS05MV1kydnY3QjZOcVhTelV2eFQwX1lT
ZnFpandwM1JUemxCYUN4V3A0ZG9GazVOMm84R3lfbkhOS3JvQURJa0o0NnBSVW9oc1h5d2JSZUFk
WWFNd0ZzOXR2OGRfY1BWWTNpMDdhM3Q4TU42VE53bTBkU2F3bTl2NDdVaUNsM1NrNVppRzd4b2pQ
THU0c2JnMVUyang0SUJUTkJ6bmJKU3pGSEs2NmpUOGJna3Vxc2swR2pza0RKazE5WjRxd2p3YnNu
bjRqMldCaWkzUkwtVXMybEdWa1k4ZmtGem1lMXowSGJJa2Z6MFk2bXFuT1l0cWMwWDRqZmNLb0FD
OFEiLAotICAgICJwIjoiODNpLTdJdk1HWG9NWENza3Y3M1RLcjg2MzdGaU83WjI3enY4b2o2cGJX
VVF5TFBRQlF4dFBWbndEMjBSLTYwZVREbUQydWpuTXQ1UG9xTXJtOFJmbU5oVldEdGpqTW1DTWpP
cFNYaWNGSGo3WE91VklZUXlxVldsV0VoNmROMzZHVlpZazkzTjhCYzl2WTQxeHk4QjlSenpPR1ZR
elh2TkV2bjdPMG5WYmZzIiwKLSAgICAicSI6IjNkZk9SOWN1WXEtMFMtbWtGTHpnSXRnTUVmRnpC
MnEzaFdlaE11RzBvQ3VxbmIzdm9iTHl1bXFqVlpRTzFkSXJkd2dUbkNkcFl6QmNPZlc1cjM3MEFG
WGppV2Z0X05HRWlvdm9uaXpoS3BvOVZWUzc4VHpGZ3hrSWRyZWNSZXpzWi0xa1lkX3MxcURieHRr
REVnZkFJVEFHOUxVbkFEdW40dkljYjZ5ZWx4ayIsCi0gICAgImRwIjoiRzRzUFhrYzZZYTl5OG9K
VzlfSUxqNHh1cHB1MGx6aV9IN1ZUa1M4eGo1U2RYM2NvRTBvaW1Zd3hJaTJlbVRBdWUwVU9hNWRw
Z0ZHeUJKNGM4dFEyVkY0MDJYUnVnS0RUUDhha1loRm81dEFBNzdRZV9ObXR1WVpjM0MzbTNJMjRH
Mkd2UjVzU0R4VXlBTjJ6cThMZm45RVVtczZyWTNPYjhZZWlLa1RpQmowIiwKLSAgICAiZHEiOiJz
OWxBSDlmZ2dCc29GUjhPYWMyUl9FMmd3MjgyclQya0dPQWh2SWxsRVRFMWVmckE2aHVVVXZNZkJj
TXBuOGxxZVc2dnp6bllZNVNTUUY3cE1kQ19hZ0kzbkc4SWJwMUJVYjBKVWlyYVJOcVVmTGhjUWJf
ZDlHRjREaDdlNzRXYlJzb2JSb251alRZTjF4Q2FQNlRPNjFqdldyWC1MMTh0eFh3NDk0UV9jZ2si
LAotICAgICJxaSI6Ikd5TV9wNkpyWHlTaXoxdG9GZ0tiV1YtSmRJM2pRNHlwdTlyYk1XeDNyUUpC
Zm10MEZvWXpnVUlaRVZGRWNPcXdlbVJOODF6b0RBYWEtQmswS1dOR0RqSkhaRGREbUZoVzNBTjds
SS1wdXhrX21IWkdKMTFyeHlSOE81NVhMU2UzU1BtUmZLd1pJNnlVMjRaeHZRS0ZZSXRkbGRVS0d6
TzZJYTZ6VEtoQVZSVSIsCi0gICAgImFsZyI6IlJTMjU2IiwKLSAgICAia2lkIjoiMjAxMS0wNC0y
OSIKLX0KLXZhciBqd2tLZXlBc0FycmF5QnVmZmVyID0gYXNjaWlUb1VpbnQ4QXJyYXkoSlNPTi5z
dHJpbmdpZnkocHJpdmF0ZUtleUpTT04pKTsKLQotZGVidWcoIlxuSW1wb3J0aW5nIGEgSldLIGtl
eS4uLiIpOwotY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGp3a0tleUFzQXJy
YXlCdWZmZXIsICJSU0FTU0EtUEtDUzEtdjFfNSIsIGV4dHJhY3RhYmxlLCBbJ3NpZ24nLCAndmVy
aWZ5J10pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAga2V5ID0gcmVzdWx0OwotCi0gICAg
ZGVidWcoIlxuRXhwb3J0aW5nIHRoZSBrZXkgYXMgSldLLi4uIik7Ci0gICAgcmV0dXJuIGNyeXB0
by53ZWJraXRTdWJ0bGUuZXhwb3J0S2V5KCJqd2siLCBrZXkpOwotfSkudGhlbihmdW5jdGlvbihy
ZXN1bHQpIHsKLSAgICBleHBvcnRlZEpXSyA9IEpTT04ucGFyc2UoYnl0ZXNUb0FTQ0lJU3RyaW5n
KHJlc3VsdCkpOwotCi0gICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmt0eSIsICInUlNBJyIpOwot
ICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5uIiwgInByaXZhdGVLZXlKU09OLm4iKTsKLSAgICBz
aG91bGRCZSgiZXhwb3J0ZWRKV0suZSIsICJwcml2YXRlS2V5SlNPTi5lIik7Ci0gICAgc2hvdWxk
QmUoImV4cG9ydGVkSldLLmQiLCAicHJpdmF0ZUtleUpTT04uZCIpOwotICAgIHNob3VsZEJlKCJl
eHBvcnRlZEpXSy5wIiwgInByaXZhdGVLZXlKU09OLnAiKTsKLSAgICBzaG91bGRCZSgiZXhwb3J0
ZWRKV0sucSIsICJwcml2YXRlS2V5SlNPTi5xIik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkSldL
LmRwIiwgInByaXZhdGVLZXlKU09OLmRwIik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmRx
IiwgInByaXZhdGVLZXlKU09OLmRxIik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLnFpIiwg
InByaXZhdGVLZXlKU09OLnFpIik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLm90aCIsICJw
cml2YXRlS2V5SlNPTi5vdGgiKTsKLSAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0suYWxnIiwgInBy
aXZhdGVLZXlKU09OLmFsZyIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5leHQiLCAidHJ1
ZSIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5rZXlfb3BzIiwgIlsnc2lnbicsICd2ZXJp
ZnknXSIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy51c2UiLCAidW5kZWZpbmVkIik7Ci0K
LSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4K
ClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNh
LWV4cG9ydC1wcml2YXRlLWtleS5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOm1pbWUtdHlw
ZQojIyAtMSArMCwwICMjCi10ZXh0L2h0bWwKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0
eQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxl
L3JzYS1pbmRleGVkZGItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMjA5MTkpCisrKyBMYXlvdXRU
ZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1pbmRleGVkZGItZXhwZWN0ZWQudHh0CShub25l
eGlzdGVudCkKQEAgLTEsMTYgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4OiBXZWJL
aXRTdWJ0bGVDcnlwdG8gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBTdWJ0bGVDcnlwdG8gaW5z
dGVhZC4KLVRlc3Qgc3RvcmluZyBhIHByaXZhdGUgUlNBIGtleSBpbiBJbmRleGVkREIsIGFuZCBy
ZXRyaWV2aW5nIGl0LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyByZXRy
aWV2ZWRLZXkudHlwZSBpcyAncHJpdmF0ZScKLVBBU1MgcmV0cmlldmVkS2V5LmV4dHJhY3RhYmxl
IGlzIHRydWUKLVBBU1MgcmV0cmlldmVkS2V5LmFsZ29yaXRobS5uYW1lIGlzICdSU0FTU0EtUEtD
UzEtdjFfNScKLVBBU1MgcmV0cmlldmVkS2V5LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3RoIGlzIDIw
NDgKLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhyZXRyaWV2ZWRLZXkuYWxnb3JpdGhtLnB1YmxpY0V4
cG9uZW50KSBpcyAnMDEwMDAxJwotUEFTUyByZXRyaWV2ZWRLZXkudXNhZ2VzIGlzIFsic2lnbiIs
ICJ2ZXJpZnkiXQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBM
RVRFCi0KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0
bGUvcnNhLWluZGV4ZWRkYi1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9s
LXN0eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3Bl
cnR5CkRlbGV0ZWQ6IHN2bjptaW1lLXR5cGUKIyMgLTEgKzAsMCAjIwotdGV4dC9wbGFpbgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Vi
a2l0U3VidGxlL3JzYS1pbmRleGVkZGItbm9uLWV4cG9ydGFibGUtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4ZWRkYi1u
b24tZXhwb3J0YWJsZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIyMDkxOSkKKysrIExheW91dFRl
c3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS1leHBl
Y3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSwxNiArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6
IGxpbmUgMTg6IFdlYktpdFN1YnRsZUNyeXB0byBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIFN1
YnRsZUNyeXB0byBpbnN0ZWFkLgotVGVzdCBzdG9yaW5nIGEgcHJpdmF0ZSBSU0Ega2V5IGluIElu
ZGV4ZWREQiwgYW5kIHJldHJpZXZpbmcgaXQuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
LQotCi1QQVNTIHJldHJpZXZlZEtleS50eXBlIGlzICdwcml2YXRlJwotUEFTUyByZXRyaWV2ZWRL
ZXkuZXh0cmFjdGFibGUgaXMgZmFsc2UKLVBBU1MgcmV0cmlldmVkS2V5LmFsZ29yaXRobS5uYW1l
IGlzICdSU0FTU0EtUEtDUzEtdjFfNScKLVBBU1MgcmV0cmlldmVkS2V5LmFsZ29yaXRobS5tb2R1
bHVzTGVuZ3RoIGlzIDIwNDgKLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhyZXRyaWV2ZWRLZXkuYWxn
b3JpdGhtLnB1YmxpY0V4cG9uZW50KSBpcyAnMDEwMDAxJwotUEFTUyByZXRyaWV2ZWRLZXkudXNh
Z2VzIGlzIFsic2lnbiIsICJ2ZXJpZnkiXQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0
bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS1wcml2YXRlLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1pbmRleGVkZGIt
bm9uLWV4cG9ydGFibGUtcHJpdmF0ZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIyMDkxOSkKKysr
IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0
YWJsZS1wcml2YXRlLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCkBAIC0xLDE2ICswLDAgQEAK
LUNPTlNPTEUgTUVTU0FHRTogbGluZSAxODogV2ViS2l0U3VidGxlQ3J5cHRvIGlzIGRlcHJlY2F0
ZWQuIFBsZWFzZSB1c2UgU3VidGxlQ3J5cHRvIGluc3RlYWQuCi1UZXN0IHN0b3JpbmcgYSBwcml2
YXRlIFJTQSBrZXkgaW4gSW5kZXhlZERCLCBhbmQgcmV0cmlldmluZyBpdC4KLQotT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgcmV0cmlldmVkS2V5LnR5cGUgaXMgJ3ByaXZhdGUn
Ci1QQVNTIHJldHJpZXZlZEtleS5leHRyYWN0YWJsZSBpcyBmYWxzZQotUEFTUyByZXRyaWV2ZWRL
ZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ1JTQVNTQS1QS0NTMS12MV81JwotUEFTUyByZXRyaWV2ZWRL
ZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGggaXMgMjA0OAotUEFTUyBieXRlc1RvSGV4U3RyaW5n
KHJldHJpZXZlZEtleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIGlzICcwMTAwMDEnCi1QQVNT
IHJldHJpZXZlZEtleS51c2FnZXMgaXMgWyJzaWduIiwgInZlcmlmeSJdCi1QQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMv
Y3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLXByaXZhdGUu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1p
bmRleGVkZGItbm9uLWV4cG9ydGFibGUtcHJpdmF0ZS5odG1sCShyZXZpc2lvbiAyMjA5MTkpCisr
KyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1pbmRleGVkZGItbm9uLWV4cG9y
dGFibGUtcHJpdmF0ZS5odG1sCShub25leGlzdGVudCkKQEAgLTEsMTQgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdD4KLWVuYWJsZVByaXZhdGVCcm93c2lu
ZyA9IHRydWU7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9jb21tb24uanMi
Pjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JzYS1p
bmRleGVkZGItbm9uLWV4cG9ydGFibGUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1l
eHBvcnRhYmxlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1
YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLmh0bWwJKHJldmlzaW9uIDIyMDkxOSkK
KysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhw
b3J0YWJsZS5odG1sCShub25leGlzdGVudCkKQEAgLTEsMTEgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5qcyI+
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcnNhLWlu
ZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1pbmRleGVkZGItcHJpdmF0
ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1
YnRsZS9yc2EtaW5kZXhlZGRiLXByaXZhdGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMjA5MTkp
CisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1pbmRleGVkZGItcHJpdmF0
ZS1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSwxNiArMCwwIEBACi1DT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTg6IFdlYktpdFN1YnRsZUNyeXB0byBpcyBkZXByZWNhdGVkLiBQbGVhc2Ug
dXNlIFN1YnRsZUNyeXB0byBpbnN0ZWFkLgotVGVzdCBzdG9yaW5nIGEgcHJpdmF0ZSBSU0Ega2V5
IGluIEluZGV4ZWREQiwgYW5kIHJldHJpZXZpbmcgaXQuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KLQotCi1QQVNTIHJldHJpZXZlZEtleS50eXBlIGlzICdwcml2YXRlJwotUEFTUyByZXRy
aWV2ZWRLZXkuZXh0cmFjdGFibGUgaXMgdHJ1ZQotUEFTUyByZXRyaWV2ZWRLZXkuYWxnb3JpdGht
Lm5hbWUgaXMgJ1JTQVNTQS1QS0NTMS12MV81JwotUEFTUyByZXRyaWV2ZWRLZXkuYWxnb3JpdGht
Lm1vZHVsdXNMZW5ndGggaXMgMjA0OAotUEFTUyBieXRlc1RvSGV4U3RyaW5nKHJldHJpZXZlZEtl
eS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIGlzICcwMTAwMDEnCi1QQVNTIHJldHJpZXZlZEtl
eS51c2FnZXMgaXMgWyJzaWduIiwgInZlcmlmeSJdCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtp
dFN1YnRsZS9yc2EtaW5kZXhlZGRiLXByaXZhdGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1pbmRleGVkZGItcHJpdmF0ZS5odG1sCShyZXZp
c2lvbiAyMjA5MTkpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1pbmRl
eGVkZGItcHJpdmF0ZS5odG1sCShub25leGlzdGVudCkKQEAgLTEsMTQgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdD4KLWVuYWJsZVByaXZhdGVCcm93c2lu
ZyA9IHRydWU7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9jb21tb24uanMi
Pjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JzYS1p
bmRleGVkZGIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLmh0bWwJKHJldmlz
aW9uIDIyMDkxOSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4
ZWRkYi5odG1sCShub25leGlzdGVudCkKQEAgLTEsMTEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcnNhLWluZGV4
ZWRkYi5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9u
OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1pbmRleGVkZGIuaHRtbApfX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fCkRlbGV0ZWQ6IHN2bjptaW1lLXR5cGUKIyMgLTEgKzAsMCAjIwotdGV4dC9odG1sClwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93
ZWJraXRTdWJ0bGUvcnNhLW9hZXAtZ2VuZXJhdGUtbm9uLWV4dHJhY3RhYmxlLWtleS1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Et
b2FlcC1nZW5lcmF0ZS1ub24tZXh0cmFjdGFibGUta2V5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MjIwOTE5KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Etb2FlcC1nZW5l
cmF0ZS1ub24tZXh0cmFjdGFibGUta2V5LWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCkBAIC0x
LDI0ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyNTogV2ViS2l0U3VidGxlQ3J5cHRv
IGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgU3VidGxlQ3J5cHRvIGluc3RlYWQuCi1UZXN0IHRo
YXQgZXZlbiB3aGVuIG5vbi1leHRyYWN0YWJpbGl0eSBpcyByZXF1ZXN0ZWQsIHRoZSBwdWJsaWMg
a2V5IGlzIHN0aWxsIGV4dHJhY3RhYmxlLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0K
LQotR2VuZXJhdGluZyBhIGtleSBwYWlyLi4uCi1QQVNTIGtleVBhaXIudG9TdHJpbmcoKSBpcyAn
W29iamVjdCBPYmplY3RdJwotUEFTUyBrZXlQYWlyLnB1YmxpY0tleS50eXBlIGlzICdwdWJsaWMn
Ci1QQVNTIGtleVBhaXIucHVibGljS2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKLVBBU1Mga2V5UGFp
ci5wdWJsaWNLZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ1JTQS1PQUVQJwotUEFTUyBrZXlQYWlyLnB1
YmxpY0tleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCBpcyAyMDQ4Ci1QQVNTIGJ5dGVzVG9IZXhT
dHJpbmcoa2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSBpcyAnMDEw
MDAxJwotUEFTUyBrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0uaGFzaCBpcyB1bmRlZmluZWQu
Ci1QQVNTIGtleVBhaXIucHJpdmF0ZUtleS50eXBlIGlzICdwcml2YXRlJwotUEFTUyBrZXlQYWly
LnByaXZhdGVLZXkuZXh0cmFjdGFibGUgaXMgZmFsc2UKLVBBU1Mga2V5UGFpci5wcml2YXRlS2V5
LmFsZ29yaXRobS5uYW1lIGlzICdSU0EtT0FFUCcKLVBBU1Mga2V5UGFpci5wcml2YXRlS2V5LmFs
Z29yaXRobS5tb2R1bHVzTGVuZ3RoIGlzIDIwNDgKLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhrZXlQ
YWlyLnByaXZhdGVLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSBpcyAnMDEwMDAxJwotUEFT
UyBrZXlQYWlyLnByaXZhdGVLZXkuYWxnb3JpdGhtLmhhc2ggaXMgdW5kZWZpbmVkLgotUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KClByb3BlcnR5IGNo
YW5nZXMgb246IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAtZ2VuZXJh
dGUtbm9uLWV4dHJhY3RhYmxlLWtleS1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBz
dm46ZW9sLXN0eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IHByb3BlcnR5CkRlbGV0ZWQ6IHN2bjptaW1lLXR5cGUKIyMgLTEgKzAsMCAjIwotdGV4dC9wbGFp
bgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlw
dG8vd2Via2l0U3VidGxlL3JzYS1vYWVwLWdlbmVyYXRlLW5vbi1leHRyYWN0YWJsZS1rZXkuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1vYWVw
LWdlbmVyYXRlLW5vbi1leHRyYWN0YWJsZS1rZXkuaHRtbAkocmV2aXNpb24gMjIwOTE5KQorKysg
TGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Etb2FlcC1nZW5lcmF0ZS1ub24tZXh0
cmFjdGFibGUta2V5Lmh0bWwJKG5vbmV4aXN0ZW50KQpAQCAtMSw0NyArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvY29tbW9u
LmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+
Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0
IHRoYXQgZXZlbiB3aGVuIG5vbi1leHRyYWN0YWJpbGl0eSBpcyByZXF1ZXN0ZWQsIHRoZSBwdWJs
aWMga2V5IGlzIHN0aWxsIGV4dHJhY3RhYmxlLiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
LQotdmFyIGFsZ29yaXRobUtleUdlbiA9IHsKLSAgICBuYW1lOiAiUlNBLU9BRVAiLAotICAgIC8v
IFJzYUtleUdlblBhcmFtcwotICAgIG1vZHVsdXNMZW5ndGg6IDIwNDgsCi0gICAgcHVibGljRXhw
b25lbnQ6IG5ldyBVaW50OEFycmF5KFsweDAxLCAweDAwLCAweDAxXSksICAvLyBFcXVpdmFsZW50
IHRvIDY1NTM3Ci19OwotdmFyIG5vbkV4dHJhY3RhYmxlID0gZmFsc2U7Ci0KLWRlYnVnKCJHZW5l
cmF0aW5nIGEga2V5IHBhaXIuLi4iKTsKLWNyeXB0by53ZWJraXRTdWJ0bGUuZ2VuZXJhdGVLZXko
YWxnb3JpdGhtS2V5R2VuLCBub25FeHRyYWN0YWJsZSwgW10pLnRoZW4oZnVuY3Rpb24ocmVzdWx0
KSB7Ci0gICAga2V5UGFpciA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgia2V5UGFpci50b1N0cmlu
ZygpIiwgIidbb2JqZWN0IE9iamVjdF0nIik7Ci0gICAgc2hvdWxkQmUoImtleVBhaXIucHVibGlj
S2V5LnR5cGUiLCAiJ3B1YmxpYyciKTsKLSAgICBzaG91bGRCZSgia2V5UGFpci5wdWJsaWNLZXku
ZXh0cmFjdGFibGUiLCAidHJ1ZSIpOwotICAgIHNob3VsZEJlKCJrZXlQYWlyLnB1YmxpY0tleS5h
bGdvcml0aG0ubmFtZSIsICInUlNBLU9BRVAnIik7Ci0gICAgc2hvdWxkQmUoImtleVBhaXIucHVi
bGljS2V5LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3RoIiwgIjIwNDgiKTsKLSAgICBzaG91bGRCZSgi
Ynl0ZXNUb0hleFN0cmluZyhrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0ucHVibGljRXhwb25l
bnQpIiwgIicwMTAwMDEnIik7Ci0gICAgc2hvdWxkQmVVbmRlZmluZWQoImtleVBhaXIucHVibGlj
S2V5LmFsZ29yaXRobS5oYXNoIik7Ci0gICAgc2hvdWxkQmUoImtleVBhaXIucHJpdmF0ZUtleS50
eXBlIiwgIidwcml2YXRlJyIpOwotICAgIHNob3VsZEJlKCJrZXlQYWlyLnByaXZhdGVLZXkuZXh0
cmFjdGFibGUiLCAiZmFsc2UiKTsKLSAgICBzaG91bGRCZSgia2V5UGFpci5wcml2YXRlS2V5LmFs
Z29yaXRobS5uYW1lIiwgIidSU0EtT0FFUCciKTsKLSAgICBzaG91bGRCZSgia2V5UGFpci5wcml2
YXRlS2V5LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3RoIiwgIjIwNDgiKTsKLSAgICBzaG91bGRCZSgi
Ynl0ZXNUb0hleFN0cmluZyhrZXlQYWlyLnByaXZhdGVLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9u
ZW50KSIsICInMDEwMDAxJyIpOwotICAgIHNob3VsZEJlVW5kZWZpbmVkKCJrZXlQYWlyLnByaXZh
dGVLZXkuYWxnb3JpdGhtLmhhc2giKTsKLQotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3Nj
cmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVz
dHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Etb2FlcC1nZW5lcmF0ZS1ub24tZXh0cmFjdGFibGUt
a2V5Lmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46bWltZS10eXBlCiMjIC0xICswLDAgIyMK
LXRleHQvaHRtbApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBMYXlvdXRU
ZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1vYWVwLWtleS1tYW5pcHVsYXRpb24tZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNh
LW9hZXAta2V5LW1hbmlwdWxhdGlvbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIyMDkxOSkKKysr
IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAta2V5LW1hbmlwdWxhdGlv
bi1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSw0NyArMCwwIEBACi1DT05TT0xFIE1F
U1NBR0U6IGxpbmUgMjU6IFdlYktpdFN1YnRsZUNyeXB0byBpcyBkZXByZWNhdGVkLiBQbGVhc2Ug
dXNlIFN1YnRsZUNyeXB0byBpbnN0ZWFkLgotVGVzdCBnZW5lcmF0aW5nLCBpbXBvcnRpbmcgYW5k
IGV4cG9ydGluZyBSU0Ega2V5cyBmb3IgUlNBLU9BRVAuIFRlc3QgdGhhdCB0aGV5IGNhbid0IGJl
IHVzZWQgd2l0aCBhbm90aGVyIGFsZ29yaXRobS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgotCi0KLUdlbmVyYXRpbmcgYSBrZXkgcGFpci4uLgotUEFTUyBrZXlQYWlyLnRvU3RyaW5nKCkg
aXMgJ1tvYmplY3QgT2JqZWN0XScKLVBBU1Mga2V5UGFpci5wdWJsaWNLZXkudHlwZSBpcyAncHVi
bGljJwotUEFTUyBrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0ubmFtZSBpcyAnUlNBLU9BRVAn
Ci1QQVNTIGtleVBhaXIucHVibGljS2V5LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3RoIGlzIDIwNDgK
LVBBU1MgYnl0ZXNUb0hleFN0cmluZyhrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0ucHVibGlj
RXhwb25lbnQpIGlzICcwMTAwMDEnCi1QQVNTIGtleVBhaXIucHVibGljS2V5LmFsZ29yaXRobS5o
YXNoIGlzIHVuZGVmaW5lZC4KLVBBU1Mga2V5UGFpci5wcml2YXRlS2V5LnR5cGUgaXMgJ3ByaXZh
dGUnCi1QQVNTIGtleVBhaXIucHJpdmF0ZUtleS5hbGdvcml0aG0ubmFtZSBpcyAnUlNBLU9BRVAn
Ci1QQVNTIGtleVBhaXIucHJpdmF0ZUtleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCBpcyAyMDQ4
Ci1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcoa2V5UGFpci5wcml2YXRlS2V5LmFsZ29yaXRobS5wdWJs
aWNFeHBvbmVudCkgaXMgJzAxMDAwMScKLVBBU1Mga2V5UGFpci5wcml2YXRlS2V5LmFsZ29yaXRo
bS5oYXNoIGlzIHVuZGVmaW5lZC4KLQotVGVzdGluZyB0aGF0IHRoZSBrZXlzIGNhbid0IGJlIHVz
ZWQgd2l0aCBkaWZmZXJlbnQgYWxnb3JpdGhtcy4uLgotUEFTUyBjcnlwdG8ud2Via2l0U3VidGxl
LmVuY3J5cHQoe25hbWU6ICJhZXMtY2JjIiwgaXY6IGl2fSwga2V5UGFpci5wcml2YXRlS2V5LCBo
ZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAwIikpIHRocmV3IGV4Y2VwdGlvbiBOb3RTdXBwb3J0ZWRF
cnJvcjogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLi4KLVBBU1MgY3J5cHRvLndlYmtp
dFN1YnRsZS5lbmNyeXB0KHtuYW1lOiAiYWVzLWNiYyIsIGl2OiBpdn0sIGtleVBhaXIucHVibGlj
S2V5LCBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAwIikpIHRocmV3IGV4Y2VwdGlvbiBOb3RTdXBw
b3J0ZWRFcnJvcjogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLi4KLQotVHJ5aW5nIHRv
IGV4cG9ydCBrZXlzIHRvIHJhdy4uLgotUEFTUyBQcm9taXNlIHJlamVjdGVkIGZvciBleHBvcnRp
bmcgcHVibGljIGtleQotUEFTUyBQcm9taXNlIHJlamVjdGVkIGZvciBleHBvcnRpbmcgcHJpdmF0
ZSBrZXkKLQotRXhwb3J0aW5nIHB1YmxpYyBrZXkgdG8gSldLLi4uCi1QQVNTIGp3a1B1YmxpY0tl
eS5hbGcgaXMgJ1JTQS1PQUVQJwotUEFTUyBqd2tQdWJsaWNLZXkuZXh0IGlzIHRydWUKLVBBU1Mg
andrUHVibGljS2V5LmtleV9vcHMgaXMgWydlbmNyeXB0JywgJ2RlY3J5cHQnLCAnd3JhcEtleScs
ICd1bndyYXBLZXknXQotUEFTUyBqd2tQdWJsaWNLZXkudXNlIGlzIHVuZGVmaW5lZAotUEFTUyBq
d2tQdWJsaWNLZXkua3R5IGlzICdSU0EnCi1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcoQmFzZTY0VVJM
LnBhcnNlKGp3a1B1YmxpY0tleS5lKSkgaXMgJzAxMDAwMScKLQotSW1wb3J0aW5nIGl0IGJhY2su
Li4KLVBBU1MgZXhwb3J0ZWRQdWJsaWNLZXkudHlwZSBpcyAncHVibGljJwotUEFTUyBleHBvcnRl
ZFB1YmxpY0tleS5hbGdvcml0aG0ubmFtZSBpcyAnUlNBLU9BRVAnCi1QQVNTIGV4cG9ydGVkUHVi
bGljS2V5LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3RoIGlzIDIwNDgKLVBBU1MgYnl0ZXNUb0hleFN0
cmluZyhleHBvcnRlZFB1YmxpY0tleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIGlzICcwMTAw
MDEnCi1QQVNTIGV4cG9ydGVkUHVibGljS2V5LmFsZ29yaXRobS5oYXNoLm5hbWUgaXMgJ1NIQS0x
JwotUEFTUyBleHBvcnRlZFB1YmxpY0tleS5leHRyYWN0YWJsZSBpcyB0cnVlCi1QQVNTIGV4cG9y
dGVkUHVibGljS2V5LnVzYWdlcyBpcyBbJ2RlY3J5cHQnLCdlbmNyeXB0JywndW53cmFwS2V5Jywn
d3JhcEtleSddCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExF
VEUKLQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRs
ZS9yc2Etb2FlcC1rZXktbWFuaXB1bGF0aW9uLWV4cGVjdGVkLnR4dApfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0
ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZlClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgcHJvcGVydHkKRGVsZXRlZDogc3ZuOm1pbWUtdHlwZQojIyAtMSArMCwwICMjCi10ZXh0
L3BsYWluClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IExheW91dFRlc3Rz
L2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAta2V5LW1hbmlwdWxhdGlvbi5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAta2V5LW1h
bmlwdWxhdGlvbi5odG1sCShyZXZpc2lvbiAyMjA5MTkpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8v
d2Via2l0U3VidGxlL3JzYS1vYWVwLWtleS1tYW5pcHVsYXRpb24uaHRtbAkobm9uZXhpc3RlbnQp
CkBAIC0xLDgyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+
Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08
c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3QgZ2VuZXJhdGluZywgaW1wb3J0aW5nIGFuZCBleHBv
cnRpbmcgUlNBIGtleXMgZm9yIFJTQS1PQUVQLiBUZXN0IHRoYXQgdGhleSBjYW4ndCBiZSB1c2Vk
IHdpdGggYW5vdGhlciBhbGdvcml0aG0uIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi12
YXIgYWxnb3JpdGhtS2V5R2VuID0gewotICAgIG5hbWU6ICJSU0EtT0FFUCIsCi0gICAgLy8gUnNh
S2V5R2VuUGFyYW1zCi0gICAgbW9kdWx1c0xlbmd0aDogMjA0OCwKLSAgICBwdWJsaWNFeHBvbmVu
dDogbmV3IFVpbnQ4QXJyYXkoWzB4MDEsIDB4MDAsIDB4MDFdKSwgIC8vIEVxdWl2YWxlbnQgdG8g
NjU1MzcKLX07Ci12YXIgZXh0cmFjdGFibGUgPSB0cnVlOwotCi1kZWJ1ZygiR2VuZXJhdGluZyBh
IGtleSBwYWlyLi4uIik7Ci1jcnlwdG8ud2Via2l0U3VidGxlLmdlbmVyYXRlS2V5KGFsZ29yaXRo
bUtleUdlbiwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0IiwgIndyYXBLZXkiLCAi
dW53cmFwS2V5Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAga2V5UGFpciA9IHJlc3Vs
dDsKLSAgICBzaG91bGRCZSgia2V5UGFpci50b1N0cmluZygpIiwgIidbb2JqZWN0IE9iamVjdF0n
Iik7Ci0gICAgc2hvdWxkQmUoImtleVBhaXIucHVibGljS2V5LnR5cGUiLCAiJ3B1YmxpYyciKTsK
LSAgICBzaG91bGRCZSgia2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ1JTQS1P
QUVQJyIpOwotICAgIHNob3VsZEJlKCJrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0ubW9kdWx1
c0xlbmd0aCIsICIyMDQ4Iik7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcoa2V5UGFp
ci5wdWJsaWNLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSIsICInMDEwMDAxJyIpOwotICAg
IHNob3VsZEJlVW5kZWZpbmVkKCJrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0uaGFzaCIpOwot
ICAgIHNob3VsZEJlKCJrZXlQYWlyLnByaXZhdGVLZXkudHlwZSIsICIncHJpdmF0ZSciKTsKLSAg
ICBzaG91bGRCZSgia2V5UGFpci5wcml2YXRlS2V5LmFsZ29yaXRobS5uYW1lIiwgIidSU0EtT0FF
UCciKTsKLSAgICBzaG91bGRCZSgia2V5UGFpci5wcml2YXRlS2V5LmFsZ29yaXRobS5tb2R1bHVz
TGVuZ3RoIiwgIjIwNDgiKTsKLSAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhrZXlQYWly
LnByaXZhdGVLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSIsICInMDEwMDAxJyIpOwotICAg
IHNob3VsZEJlVW5kZWZpbmVkKCJrZXlQYWlyLnByaXZhdGVLZXkuYWxnb3JpdGhtLmhhc2giKTsK
LQotICAgIGRlYnVnKCJcblRlc3RpbmcgdGhhdCB0aGUga2V5cyBjYW4ndCBiZSB1c2VkIHdpdGgg
ZGlmZmVyZW50IGFsZ29yaXRobXMuLi4iKTsKLSAgICBpdiA9IGhleFN0cmluZ1RvVWludDhBcnJh
eSgiMDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBlMGYiKTsKLSAgICBzaG91bGRUaHJvdygn
Y3J5cHRvLndlYmtpdFN1YnRsZS5lbmNyeXB0KHtuYW1lOiAiYWVzLWNiYyIsIGl2OiBpdn0sIGtl
eVBhaXIucHJpdmF0ZUtleSwgaGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMCIpKScpOwotICAgIHNo
b3VsZFRocm93KCdjcnlwdG8ud2Via2l0U3VidGxlLmVuY3J5cHQoe25hbWU6ICJhZXMtY2JjIiwg
aXY6IGl2fSwga2V5UGFpci5wdWJsaWNLZXksIGhleFN0cmluZ1RvVWludDhBcnJheSgiMDAiKSkn
KTsKLQotICAgIGRlYnVnKCJcblRyeWluZyB0byBleHBvcnQga2V5cyB0byByYXcuLi4iKTsKLSAg
ICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS5leHBvcnRLZXkoJ3JhdycsIGtleVBhaXIucHVi
bGljS2V5KTsKLX0pLnRoZW4odW5kZWZpbmVkLCBmdW5jdGlvbihyZXN1bHQpIHsKLSAgICB0ZXN0
UGFzc2VkKCJQcm9taXNlIHJlamVjdGVkIGZvciBleHBvcnRpbmcgcHVibGljIGtleSIpOwotICAg
IHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLmV4cG9ydEtleSgncmF3Jywga2V5UGFpci5wcml2
YXRlS2V5KTsKLX0pLnRoZW4odW5kZWZpbmVkLCBmdW5jdGlvbihyZXN1bHQpIHsKLSAgICB0ZXN0
UGFzc2VkKCJQcm9taXNlIHJlamVjdGVkIGZvciBleHBvcnRpbmcgcHJpdmF0ZSBrZXkiKTsKLQot
ICAgIGRlYnVnKCJcbkV4cG9ydGluZyBwdWJsaWMga2V5IHRvIEpXSy4uLiIpOwotICAgIHJldHVy
biBjcnlwdG8ud2Via2l0U3VidGxlLmV4cG9ydEtleSgiandrIiwga2V5UGFpci5wdWJsaWNLZXkp
OwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBqd2tQdWJsaWNLZXlBcnJheSA9IHJl
c3VsdDsKLSAgICBqd2tQdWJsaWNLZXkgPSBKU09OLnBhcnNlKGJ5dGVzVG9BU0NJSVN0cmluZyhq
d2tQdWJsaWNLZXlBcnJheSkpOwotICAgIHNob3VsZEJlKCJqd2tQdWJsaWNLZXkuYWxnIiwgIidS
U0EtT0FFUCciKTsKLSAgICBzaG91bGRCZSgiandrUHVibGljS2V5LmV4dCIsICJ0cnVlIik7Ci0g
ICAgc2hvdWxkQmUoImp3a1B1YmxpY0tleS5rZXlfb3BzIiwgIlsnZW5jcnlwdCcsICdkZWNyeXB0
JywgJ3dyYXBLZXknLCAndW53cmFwS2V5J10iKTsKLSAgICBzaG91bGRCZSgiandrUHVibGljS2V5
LnVzZSIsICJ1bmRlZmluZWQiKTsKLSAgICBzaG91bGRCZSgiandrUHVibGljS2V5Lmt0eSIsICIn
UlNBJyIpOwotICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKEJhc2U2NFVSTC5wYXJzZShq
d2tQdWJsaWNLZXkuZSkpIiwgIicwMTAwMDEnIik7Ci0KLSAgICBkZWJ1ZygiXG5JbXBvcnRpbmcg
aXQgYmFjay4uLiIpOwotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgi
andrIiwgandrUHVibGljS2V5QXJyYXksIG51bGwsIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAi
ZGVjcnlwdCIsICJ3cmFwS2V5IiwgInVud3JhcEtleSJdKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVz
dWx0KSB7Ci0gICAgZXhwb3J0ZWRQdWJsaWNLZXkgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImV4
cG9ydGVkUHVibGljS2V5LnR5cGUiLCAiJ3B1YmxpYyciKTsKLSAgICBzaG91bGRCZSgiZXhwb3J0
ZWRQdWJsaWNLZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ1JTQS1PQUVQJyIpOwotICAgIHNob3VsZEJl
KCJleHBvcnRlZFB1YmxpY0tleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCIsICIyMDQ4Iik7Ci0g
ICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcoZXhwb3J0ZWRQdWJsaWNLZXkuYWxnb3JpdGht
LnB1YmxpY0V4cG9uZW50KSIsICInMDEwMDAxJyIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZFB1
YmxpY0tleS5hbGdvcml0aG0uaGFzaC5uYW1lIiwgIidTSEEtMSciKTsKLSAgICBzaG91bGRCZSgi
ZXhwb3J0ZWRQdWJsaWNLZXkuZXh0cmFjdGFibGUiLCAidHJ1ZSIpOwotICAgIHNob3VsZEJlKCJl
eHBvcnRlZFB1YmxpY0tleS51c2FnZXMiLCAiWydkZWNyeXB0JywnZW5jcnlwdCcsJ3Vud3JhcEtl
eScsJ3dyYXBLZXknXSIpOwotCi0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0Pgot
Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Ci08L2JvZHk+Ci08L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9jcnlw
dG8vd2Via2l0U3VidGxlL3JzYS1vYWVwLWtleS1tYW5pcHVsYXRpb24uaHRtbApfX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
CkRlbGV0ZWQ6IHN2bjptaW1lLXR5cGUKIyMgLTEgKzAsMCAjIwotdGV4dC9odG1sClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRT
dWJ0bGUvcnNhLW9hZXAtcGxhaW50ZXh0LWxlbmd0aC1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Etb2FlcC1wbGFpbnRleHQtbGVu
Z3RoLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjIwOTE5KQorKysgTGF5b3V0VGVzdHMvY3J5cHRv
L3dlYmtpdFN1YnRsZS9yc2Etb2FlcC1wbGFpbnRleHQtbGVuZ3RoLWV4cGVjdGVkLnR4dAkobm9u
ZXhpc3RlbnQpCkBAIC0xLDE1ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0MDogV2Vi
S2l0U3VidGxlQ3J5cHRvIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgU3VidGxlQ3J5cHRvIGlu
c3RlYWQuCi1UZXN0IHdoYXQgaGFwcGVucyB3aGVuIHRyeWluZyB0byBlbmNyeXB0IGEgdG9vIGxh
cmdlIHBsYWluIHRleHQgd2l0aCBSU0EtT0FFUC4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgotCi0KLUltcG9ydGluZyBSU0Ega2V5cy4uLgotRW5jcnlwdGluZyBhIDIxNCBieXRlIGJ1ZmZl
ciB3aXRoIFJTQS1PQUVQIFNIQS0xLCAyMDQ4IGJpdCBrZXkuLi4KLVBBU1MgU3VjY2VlZGVkCi1F
bmNyeXB0aW5nIGEgMjE1IGJ5dGUgYnVmZmVyLi4uCi1QQVNTIFJlamVjdGVkCi1QQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQoKUHJvcGVydHkgY2hhbmdl
cyBvbjogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Etb2FlcC1wbGFpbnRleHQt
bGVuZ3RoLWV4cGVjdGVkLnR4dApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMg
LTEgKzAsMCAjIwotbmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKRGVsZXRl
ZDogc3ZuOm1pbWUtdHlwZQojIyAtMSArMCwwICMjCi10ZXh0L3BsYWluClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUv
cnNhLW9hZXAtcGxhaW50ZXh0LWxlbmd0aC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAtcGxhaW50ZXh0LWxlbmd0aC5odG1sCShyZXZp
c2lvbiAyMjA5MTkpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1vYWVw
LXBsYWludGV4dC1sZW5ndGguaHRtbAkobm9uZXhpc3RlbnQpCkBAIC0xLDYzICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9j
b21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24o
IlRlc3Qgd2hhdCBoYXBwZW5zIHdoZW4gdHJ5aW5nIHRvIGVuY3J5cHQgYSB0b28gbGFyZ2UgcGxh
aW4gdGV4dCB3aXRoIFJTQS1PQUVQLiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFy
IHB1YmxpY0tleUpTT04gPSB7Ci0gICAga3R5OiAiUlNBIiwKLSAgICBhbGc6ICJSU0EtT0FFUCIs
Ci0gICAgbjogInJjQ1VDdjdPYzFIVmFtMURJaEN6cWtuVGhXYXdPcDhRTGs4Wml5MnAxMEJ5alFG
Q2Fqb0ZpeXVBV2wtUjFXWFphZjR4aXRMUnJhY1Q5YWdwekl6Yy1NYkxTSElHZ1dRR08yMWxHaUlt
eTVmdFotRDhiSEFxUnoyeTE1cHpENGM0Q0VvdTdYU1NMRG9SblIwUUc1TXNEaEQ2czJnVjltd0hr
cnRrQ3h0TVdkQmktNzdhczh3R21sTlJsZGNPU2daRExLOFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0T09F
SWIweFVTZlBTejNMUFNDbnlZejY4YURqbUtWZU5ILWlnODU3T1NjeVdiR3lFeTNCaXc2NHF1bjNq
dVVsTldzSjN6bmdrT2R0ZVlXeXR4NVFyNFhLTnM2Ui1NeXlxNzJLVXAwMm1KRFppaXlpZ2x4TUxf
aTMtX0NlZWNDdyIsCi0gICAgZTogIkFRQUIiCi19OwotCi12YXIgcHJpdmF0ZUtleUpTT04gPSB7
Ci0gICAga3R5OiAiUlNBIiwKLSAgICBhbGc6ICJSU0EtT0FFUCIsCi0gICAgbjogInJjQ1VDdjdP
YzFIVmFtMURJaEN6cWtuVGhXYXdPcDhRTGs4Wml5MnAxMEJ5alFGQ2Fqb0ZpeXVBV2wtUjFXWFph
ZjR4aXRMUnJhY1Q5YWdwekl6Yy1NYkxTSElHZ1dRR08yMWxHaUlteTVmdFotRDhiSEFxUnoyeTE1
cHpENGM0Q0VvdTdYU1NMRG9SblIwUUc1TXNEaEQ2czJnVjltd0hrcnRrQ3h0TVdkQmktNzdhczh3
R21sTlJsZGNPU2daRExLOFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0T09FSWIweFVTZlBTejNMUFNDbnlZ
ejY4YURqbUtWZU5ILWlnODU3T1NjeVdiR3lFeTNCaXc2NHF1bjNqdVVsTldzSjN6bmdrT2R0ZVlX
eXR4NVFyNFhLTnM2Ui1NeXlxNzJLVXAwMm1KRFppaXlpZ2x4TUxfaTMtX0NlZWNDdyIsCi0gICAg
ZTogIkFRQUIiLAotICAgIGQ6ICJlTkxTMzdhQ3o3UlhTTlBEX0R0TEJKNmo1VDhjU3hkelJCQ2pQ
YUk2V2NHcUpwMTZscTNVVHd1b0RMQXFsQTlvR1ltMjM4ZHNJV3B1dWNQX2xRdGJXZS03U3B4b0k2
X3ZtWUdmN1lWVUh2MS1ERjlxaU9tU3JNbWR4TW5WT3pZWFk4UmFUNnRoUGpuX0o1Y2ZMVjJ4SV9M
d3NyTXRtcGRTeU5sZ1gwelRVaHd0dWFoZ0FLTUVDaFlqSDJFbmpIZEh3NnNZMi13QXBkY1FJN1VM
RTBvbzVSemJRWnBtdWhjTjloaUJjMEwzaGhGMHFvNTBtYmwwMl82NV9HUTdEcFZrWEJ4TmdSQkx6
bFBhYm16ekcyb0FoZmVmTGdZbVNDMW9wYUNrWEU2dlJXUU5XTkw0NVJaTlpGWU0zdW9KZ2hPTXFH
ZW9jTTBCcGpkQ2hIclBPbEZ2U1EiLAotICAgIHA6ICI0bWlUdUFqS01lSDV1SjVLQjM5N1FVd2hi
a1lFZ1NiY0EybWlmbVNrdkUyMDE4Z2I1NXFrQkhLMWVWcnlmMV9tNDNMTmxjNk9fYWs2Z2Z6ZFpJ
WnZTNU5DR2pQbDBxMDlwbFVwdThxRk9Tc3BCd0E2N3FHSDc2bEZsWkxuX2Q0eWdsUzd3ZkxydTRf
NVlzOHFMTHMtRHFWTHZpd3Bvc09ueXlXcXdNNUFYcDAiLAotICAgIHE6ICJ4SFlyemtpdnRtbnpf
c0djaG5XR2MwcS1wRE9rS2ljcHRScHYycE1GSUlYeG5GWDVhTWVFWElaalZ1alh0d1V5MVVsRklO
MkdaSlN2eTVLSjc5bXVfWHlObkZITXplZEgtQTNlZTN1OGgxVVVyWkYtdlV1MV9lNFVfeDY3Tk4x
ZGVkelVTS3luTjdwRmwzT2t1U2hNQldHVi1jd3pPUGRjVkFmVnVabHhVTWMiLAotICAgIGRwOiAi
ZkJ6RHpZRFVCbUJRR29wN0huMGR2Zl9UMjdWNlJxcGN0V28wNzRDUVpjRmJQMmF0RlZ0S1NqM3Zp
V1QzeGlkMlZIemNnaURIZGZwTTNuRVZsRU8xd3dJb25HQ1N2ZGpHRU9aaWlGVk9qclpBT1Z4QThn
dU9qeXlGdnFiWGtlMDZWd1BJSVZ2ZktlU1UyenVoYlBfXzF0dDZGX2Z4b3c0S2IyeG9uR1QwR0dr
IiwKLSAgICBkcTogImptRTJEaUlQZGh3RGdMWEFRcElhQnFRODFiTzNYZlZUX0xSVUxBd3d3d2xQ
dVFWMTQ4SDA0emxoOVRKNlkyR1pIWW9rVjFVMGVPQnBKeGZrYjdkTFl0cEpwdWlCalJmNHlJVUVv
R2xra0lfUWxKbkZTRnItWWpHUmRmTkhxV0JreGxTTVpMNzcwUjltSUFUbmRHa0g3ejV4LXI5S3dC
WkZDNEZDRzJoZ196RSIsCi0gICAgcWk6ICJZQ1hfcEx3Yk1CQTFUaFZIMFdjd21ueXRxTmNyTUNF
d1RtN0J5QTJlVTZuV2JRclVMdmY3bTlfa3pmTFVjanNucEFWbEJRRzVKTVhNeTBTcTRwdHdieXdz
YTUtRzhLQU9PT1IyTDN2NGhDLUV5czlmdGdGTV8zaTBvNDBlZVFINGIzaGFQYm50ckllTWc4SXps
T3VWWUtmOS0yUXVLRG9XZVJkZDdOc2R4VGsiCi19OwotdmFyIGVuY3J5cHRBbGdvcml0aG0gPSB7
bmFtZTogIlJTQS1PQUVQIiwgaGFzaDogInNoYS0xIn07Ci12YXIgZXh0cmFjdGFibGUgPSB0cnVl
OwotdmFyIG5vbkV4dHJhY3RhYmxlID0gZmFsc2U7Ci0KLWRlYnVnKCJJbXBvcnRpbmcgUlNBIGtl
eXMuLi4iKTsKLWNyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWlu
dDhBcnJheShKU09OLnN0cmluZ2lmeShwdWJsaWNLZXlKU09OKSksIG51bGwsIGV4dHJhY3RhYmxl
LCBbImVuY3J5cHQiLCAiZGVjcnlwdCJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHB1
YmxpY0tleSA9IHJlc3VsdDsKLSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRL
ZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5KHByaXZhdGVLZXlKU09O
KSksIG51bGwsIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCJdKTsKLX0pLnRoZW4o
ZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgcHJpdmF0ZUtleSA9IHJlc3VsdDsKLQotICAgIGRlYnVn
KCJFbmNyeXB0aW5nIGEgMjE0IGJ5dGUgYnVmZmVyIHdpdGggUlNBLU9BRVAgU0hBLTEsIDIwNDgg
Yml0IGtleS4uLiIpOwotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLmVuY3J5cHQoe25h
bWU6ICJSU0EtT0FFUCIsIGhhc2g6ICJTSEEtMSJ9LCBwdWJsaWNLZXksIG5ldyBVaW50OEFycmF5
KDIxNCkpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICB0ZXN0UGFzc2VkKCJTdWNj
ZWVkZWQiKTsKLSAgICBkZWJ1ZygiRW5jcnlwdGluZyBhIDIxNSBieXRlIGJ1ZmZlci4uLiIpOwot
ICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLmVuY3J5cHQoe25hbWU6ICJSU0EtT0FFUCIs
IGhhc2g6ICJTSEEtMSJ9LCBwdWJsaWNLZXksIG5ldyBVaW50OEFycmF5KDIxNSkpOwotfSkudGhl
bihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICB0ZXN0RmFpbGVkKCJTdWNjZWVkZWQiKTsKLSAgICBm
aW5pc2hKU1Rlc3QoKTsKLX0sIGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHRlc3RQYXNzZWQoIlJl
amVjdGVkIik7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+
Ci08L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL3JzYS1vYWVwLXBsYWludGV4dC1sZW5ndGguaHRtbApfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6
IHN2bjptaW1lLXR5cGUKIyMgLTEgKzAsMCAjIwotdGV4dC9odG1sClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgcHJvcGVydHkKSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNh
LW9hZXAtd3JhcC11bndyYXAtYWVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1vYWVwLXdyYXAtdW53cmFwLWFlcy1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDIyMDkxOSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0
bGUvcnNhLW9hZXAtd3JhcC11bndyYXAtYWVzLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCkBA
IC0xLDM1ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0MDogV2ViS2l0U3VidGxlQ3J5
cHRvIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgU3VidGxlQ3J5cHRvIGluc3RlYWQuCi1UZXN0
IHdyYXBwaW5nIGFuZCB1bndyYXBwaW5nIEFFUyBrZXlzIHdpdGggUlNBLU9BRVAuCi0KLU9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1JbXBvcnRpbmcgUlNBIGtleXMuLi4KLUltcG9ydGlu
ZyBhbiBBRVMga2V5Li4uCi1XcmFwcGluZyBpdC4uLgotUEFTUyB3cmFwcGVkS2V5LnRvU3RyaW5n
KCkgaXMgJ1tvYmplY3QgQXJyYXlCdWZmZXJdJwotVW53cmFwcGluZyBpdC4uLgotUEFTUyB1bndy
YXBwZWRLZXkudG9TdHJpbmcoKSBpcyAnW29iamVjdCBDcnlwdG9LZXldJwotUEFTUyB1bndyYXBw
ZWRLZXkudHlwZSBpcyAnc2VjcmV0JwotUEFTUyB1bndyYXBwZWRLZXkuZXh0cmFjdGFibGUgaXMg
dHJ1ZQotUEFTUyB1bndyYXBwZWRLZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ0FFUy1DQkMnCi1QQVNT
IHVud3JhcHBlZEtleS5hbGdvcml0aG0ubGVuZ3RoIGlzIDI1NgotUEFTUyB1bndyYXBwZWRLZXku
dXNhZ2VzIGlzIFsnZGVjcnlwdCcsICdlbmNyeXB0J10KLUV4cG9ydGluZyBpdC4uLgotUEFTUyBi
eXRlc1RvSGV4U3RyaW5nKHVud3JhcHBlZEtleURhdGEpIGlzIGJ5dGVzVG9IZXhTdHJpbmcoYWVz
S2V5RGF0YSkKLQotV3JhcHBpbmcgdGhlIHNhbWUga2V5IGFzIEpXSy4uLgotUEFTUyB3cmFwcGVk
S2V5LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgQXJyYXlCdWZmZXJdJwotVW53cmFwcGluZyBpdC4u
LgotUEFTUyB1bndyYXBwZWRLZXkudG9TdHJpbmcoKSBpcyAnW29iamVjdCBDcnlwdG9LZXldJwot
UEFTUyB1bndyYXBwZWRLZXkudHlwZSBpcyAnc2VjcmV0JwotUEFTUyB1bndyYXBwZWRLZXkuZXh0
cmFjdGFibGUgaXMgdHJ1ZQotUEFTUyB1bndyYXBwZWRLZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ0FF
Uy1DQkMnCi1QQVNTIHVud3JhcHBlZEtleS5hbGdvcml0aG0ubGVuZ3RoIGlzIDI1NgotUEFTUyB1
bndyYXBwZWRLZXkudXNhZ2VzIGlzIFsnZGVjcnlwdCcsICdlbmNyeXB0J10KLUV4cG9ydGluZyBp
dC4uLgotUEFTUyBieXRlc1RvSGV4U3RyaW5nKHVud3JhcHBlZEtleURhdGEpIGlzIGJ5dGVzVG9I
ZXhTdHJpbmcoYWVzS2V5RGF0YSkKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQot
VEVTVCBDT01QTEVURQotCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9jcnlwdG8v
d2Via2l0U3VidGxlL3JzYS1vYWVwLXdyYXAtdW53cmFwLWFlcy1leHBlY3RlZC50eHQKX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkRlbGV0ZWQ6IHN2bjptaW1lLXR5cGUKIyMgLTEgKzAs
MCAjIwotdGV4dC9wbGFpbgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBM
YXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1vYWVwLXdyYXAtdW53cmFwLWFlcy5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9h
ZXAtd3JhcC11bndyYXAtYWVzLmh0bWwJKHJldmlzaW9uIDIyMDkxOSkKKysrIExheW91dFRlc3Rz
L2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAtd3JhcC11bndyYXAtYWVzLmh0bWwJKG5vbmV4
aXN0ZW50KQpAQCAtMSwxMDMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+
Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCB3cmFwcGluZyBhbmQgdW53cmFwcGlu
ZyBBRVMga2V5cyB3aXRoIFJTQS1PQUVQLiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQot
dmFyIHB1YmxpY0tleUpTT04gPSB7Ci0gICAga3R5OiAiUlNBIiwKLSAgICBhbGc6ICJSU0EtT0FF
UCIsCi0gICAgbjogInJjQ1VDdjdPYzFIVmFtMURJaEN6cWtuVGhXYXdPcDhRTGs4Wml5MnAxMEJ5
alFGQ2Fqb0ZpeXVBV2wtUjFXWFphZjR4aXRMUnJhY1Q5YWdwekl6Yy1NYkxTSElHZ1dRR08yMWxH
aUlteTVmdFotRDhiSEFxUnoyeTE1cHpENGM0Q0VvdTdYU1NMRG9SblIwUUc1TXNEaEQ2czJnVjlt
d0hrcnRrQ3h0TVdkQmktNzdhczh3R21sTlJsZGNPU2daRExLOFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0
T09FSWIweFVTZlBTejNMUFNDbnlZejY4YURqbUtWZU5ILWlnODU3T1NjeVdiR3lFeTNCaXc2NHF1
bjNqdVVsTldzSjN6bmdrT2R0ZVlXeXR4NVFyNFhLTnM2Ui1NeXlxNzJLVXAwMm1KRFppaXlpZ2x4
TUxfaTMtX0NlZWNDdyIsCi0gICAgZTogIkFRQUIiCi19OwotCi12YXIgcHJpdmF0ZUtleUpTT04g
PSB7Ci0gICAga3R5OiAiUlNBIiwKLSAgICBhbGc6ICJSU0EtT0FFUCIsCi0gICAgbjogInJjQ1VD
djdPYzFIVmFtMURJaEN6cWtuVGhXYXdPcDhRTGs4Wml5MnAxMEJ5alFGQ2Fqb0ZpeXVBV2wtUjFX
WFphZjR4aXRMUnJhY1Q5YWdwekl6Yy1NYkxTSElHZ1dRR08yMWxHaUlteTVmdFotRDhiSEFxUnoy
eTE1cHpENGM0Q0VvdTdYU1NMRG9SblIwUUc1TXNEaEQ2czJnVjltd0hrcnRrQ3h0TVdkQmktNzdh
czh3R21sTlJsZGNPU2daRExLOFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0T09FSWIweFVTZlBTejNMUFND
bnlZejY4YURqbUtWZU5ILWlnODU3T1NjeVdiR3lFeTNCaXc2NHF1bjNqdVVsTldzSjN6bmdrT2R0
ZVlXeXR4NVFyNFhLTnM2Ui1NeXlxNzJLVXAwMm1KRFppaXlpZ2x4TUxfaTMtX0NlZWNDdyIsCi0g
ICAgZTogIkFRQUIiLAotICAgIGQ6ICJlTkxTMzdhQ3o3UlhTTlBEX0R0TEJKNmo1VDhjU3hkelJC
Q2pQYUk2V2NHcUpwMTZscTNVVHd1b0RMQXFsQTlvR1ltMjM4ZHNJV3B1dWNQX2xRdGJXZS03U3B4
b0k2X3ZtWUdmN1lWVUh2MS1ERjlxaU9tU3JNbWR4TW5WT3pZWFk4UmFUNnRoUGpuX0o1Y2ZMVjJ4
SV9Md3NyTXRtcGRTeU5sZ1gwelRVaHd0dWFoZ0FLTUVDaFlqSDJFbmpIZEh3NnNZMi13QXBkY1FJ
N1VMRTBvbzVSemJRWnBtdWhjTjloaUJjMEwzaGhGMHFvNTBtYmwwMl82NV9HUTdEcFZrWEJ4TmdS
Qkx6bFBhYm16ekcyb0FoZmVmTGdZbVNDMW9wYUNrWEU2dlJXUU5XTkw0NVJaTlpGWU0zdW9KZ2hP
TXFHZW9jTTBCcGpkQ2hIclBPbEZ2U1EiLAotICAgIHA6ICI0bWlUdUFqS01lSDV1SjVLQjM5N1FV
d2hia1lFZ1NiY0EybWlmbVNrdkUyMDE4Z2I1NXFrQkhLMWVWcnlmMV9tNDNMTmxjNk9fYWs2Z2Z6
ZFpJWnZTNU5DR2pQbDBxMDlwbFVwdThxRk9Tc3BCd0E2N3FHSDc2bEZsWkxuX2Q0eWdsUzd3Zkxy
dTRfNVlzOHFMTHMtRHFWTHZpd3Bvc09ueXlXcXdNNUFYcDAiLAotICAgIHE6ICJ4SFlyemtpdnRt
bnpfc0djaG5XR2MwcS1wRE9rS2ljcHRScHYycE1GSUlYeG5GWDVhTWVFWElaalZ1alh0d1V5MVVs
RklOMkdaSlN2eTVLSjc5bXVfWHlObkZITXplZEgtQTNlZTN1OGgxVVVyWkYtdlV1MV9lNFVfeDY3
Tk4xZGVkelVTS3luTjdwRmwzT2t1U2hNQldHVi1jd3pPUGRjVkFmVnVabHhVTWMiLAotICAgIGRw
OiAiZkJ6RHpZRFVCbUJRR29wN0huMGR2Zl9UMjdWNlJxcGN0V28wNzRDUVpjRmJQMmF0RlZ0S1Nq
M3ZpV1QzeGlkMlZIemNnaURIZGZwTTNuRVZsRU8xd3dJb25HQ1N2ZGpHRU9aaWlGVk9qclpBT1Z4
QThndU9qeXlGdnFiWGtlMDZWd1BJSVZ2ZktlU1UyenVoYlBfXzF0dDZGX2Z4b3c0S2IyeG9uR1Qw
R0drIiwKLSAgICBkcTogImptRTJEaUlQZGh3RGdMWEFRcElhQnFRODFiTzNYZlZUX0xSVUxBd3d3
d2xQdVFWMTQ4SDA0emxoOVRKNlkyR1pIWW9rVjFVMGVPQnBKeGZrYjdkTFl0cEpwdWlCalJmNHlJ
VUVvR2xra0lfUWxKbkZTRnItWWpHUmRmTkhxV0JreGxTTVpMNzcwUjltSUFUbmRHa0g3ejV4LXI5
S3dCWkZDNEZDRzJoZ196RSIsCi0gICAgcWk6ICJZQ1hfcEx3Yk1CQTFUaFZIMFdjd21ueXRxTmNy
TUNFd1RtN0J5QTJlVTZuV2JRclVMdmY3bTlfa3pmTFVjanNucEFWbEJRRzVKTVhNeTBTcTRwdHdi
eXdzYTUtRzhLQU9PT1IyTDN2NGhDLUV5czlmdGdGTV8zaTBvNDBlZVFINGIzaGFQYm50ckllTWc4
SXpsT3VWWUtmOS0yUXVLRG9XZVJkZDdOc2R4VGsiCi19OwotdmFyIHdyYXBBbGdvcml0aG0gPSB7
bmFtZTogIlJTQS1PQUVQIiwgaGFzaDogInNoYS0xIn07Ci12YXIgZXh0cmFjdGFibGUgPSB0cnVl
OwotdmFyIG5vbkV4dHJhY3RhYmxlID0gZmFsc2U7Ci0KLWRlYnVnKCJJbXBvcnRpbmcgUlNBIGtl
eXMuLi4iKTsKLWNyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWlu
dDhBcnJheShKU09OLnN0cmluZ2lmeShwdWJsaWNLZXlKU09OKSksIG51bGwsIGV4dHJhY3RhYmxl
LCBbIndyYXBLZXkiLCAidW53cmFwS2V5Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAg
cHVibGljS2V5ID0gcmVzdWx0OwotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLmltcG9y
dEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoSlNPTi5zdHJpbmdpZnkocHJpdmF0ZUtleUpT
T04pKSwgbnVsbCwgZXh0cmFjdGFibGUsIFsid3JhcEtleSIsICJ1bndyYXBLZXkiXSk7Ci19KS50
aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHByaXZhdGVLZXkgPSByZXN1bHQ7Ci0KLSAgICBk
ZWJ1ZygiSW1wb3J0aW5nIGFuIEFFUyBrZXkuLi4iKTsKLSAgICBhZXNLZXlEYXRhID0gaGV4U3Ry
aW5nVG9VaW50OEFycmF5KCI2MDNkZWIxMDE1Y2E3MWJlMmI3M2FlZjA4NTdkNzc4MTFmMzUyYzA3
M2I2MTA4ZDcyZDk4MTBhMzA5MTRkZmY0Iik7Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0
bGUuaW1wb3J0S2V5KCJyYXciLCBhZXNLZXlEYXRhLCAiYWVzLWNiYyIsIGV4dHJhY3RhYmxlLCBb
ImVuY3J5cHQiLCAiZGVjcnlwdCIsICJ3cmFwS2V5IiwgInVud3JhcEtleSJdKQotfSkudGhlbihm
dW5jdGlvbihyZXN1bHQpIHsKLSAgICBhZXNLZXkgPSByZXN1bHQ7Ci0gICAgZGVidWcoIldyYXBw
aW5nIGl0Li4uIik7Ci0KLSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS53cmFwS2V5KCJy
YXciLCBhZXNLZXksIHB1YmxpY0tleSwgd3JhcEFsZ29yaXRobSk7Ci19KS50aGVuKGZ1bmN0aW9u
KHJlc3VsdCkgewotICAgIHdyYXBwZWRLZXkgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoIndyYXBw
ZWRLZXkudG9TdHJpbmcoKSIsICInW29iamVjdCBBcnJheUJ1ZmZlcl0nIik7Ci0KLSAgICBkZWJ1
ZygiVW53cmFwcGluZyBpdC4uLiIpOwotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLnVu
d3JhcEtleSgicmF3Iiwgd3JhcHBlZEtleSwgcHJpdmF0ZUtleSwgd3JhcEFsZ29yaXRobSwgImFl
cy1jYmMiLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiXSk7Ci19KS50aGVuKGZ1
bmN0aW9uKHJlc3VsdCkgewotICAgIHVud3JhcHBlZEtleSA9IHJlc3VsdDsKLSAgICBzaG91bGRC
ZSgidW53cmFwcGVkS2V5LnRvU3RyaW5nKCkiLCAiJ1tvYmplY3QgQ3J5cHRvS2V5XSciKTsKLSAg
ICBzaG91bGRCZSgidW53cmFwcGVkS2V5LnR5cGUiLCAiJ3NlY3JldCciKTsKLSAgICBzaG91bGRC
ZSgidW53cmFwcGVkS2V5LmV4dHJhY3RhYmxlIiwgInRydWUiKTsKLSAgICBzaG91bGRCZSgidW53
cmFwcGVkS2V5LmFsZ29yaXRobS5uYW1lIiwgIidBRVMtQ0JDJyIpOwotICAgIHNob3VsZEJlKCJ1
bndyYXBwZWRLZXkuYWxnb3JpdGhtLmxlbmd0aCIsICIyNTYiKTsKLSAgICBzaG91bGRCZSgidW53
cmFwcGVkS2V5LnVzYWdlcyIsICJbJ2RlY3J5cHQnLCAnZW5jcnlwdCddIik7Ci0KLSAgICBkZWJ1
ZygiRXhwb3J0aW5nIGl0Li4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUuZXhw
b3J0S2V5KCJyYXciLCB1bndyYXBwZWRLZXkpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsK
LSAgICB1bndyYXBwZWRLZXlEYXRhID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJieXRlc1RvSGV4
U3RyaW5nKHVud3JhcHBlZEtleURhdGEpIiwgImJ5dGVzVG9IZXhTdHJpbmcoYWVzS2V5RGF0YSki
KTsKLQotICAgIGRlYnVnKCJcbldyYXBwaW5nIHRoZSBzYW1lIGtleSBhcyBKV0suLi4iKTsKLSAg
ICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS53cmFwS2V5KCJqd2siLCBhZXNLZXksIHB1Ymxp
Y0tleSwgd3JhcEFsZ29yaXRobSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHdy
YXBwZWRLZXkgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoIndyYXBwZWRLZXkudG9TdHJpbmcoKSIs
ICInW29iamVjdCBBcnJheUJ1ZmZlcl0nIik7Ci0KLSAgICBkZWJ1ZygiVW53cmFwcGluZyBpdC4u
LiIpOwotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLnVud3JhcEtleSgiandrIiwgd3Jh
cHBlZEtleSwgcHJpdmF0ZUtleSwgd3JhcEFsZ29yaXRobSwgImFlcy1jYmMiLCBleHRyYWN0YWJs
ZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiXSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewot
ICAgIHVud3JhcHBlZEtleSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgidW53cmFwcGVkS2V5LnRv
U3RyaW5nKCkiLCAiJ1tvYmplY3QgQ3J5cHRvS2V5XSciKTsKLSAgICBzaG91bGRCZSgidW53cmFw
cGVkS2V5LnR5cGUiLCAiJ3NlY3JldCciKTsKLSAgICBzaG91bGRCZSgidW53cmFwcGVkS2V5LmV4
dHJhY3RhYmxlIiwgInRydWUiKTsKLSAgICBzaG91bGRCZSgidW53cmFwcGVkS2V5LmFsZ29yaXRo
bS5uYW1lIiwgIidBRVMtQ0JDJyIpOwotICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXkuYWxnb3Jp
dGhtLmxlbmd0aCIsICIyNTYiKTsKLSAgICBzaG91bGRCZSgidW53cmFwcGVkS2V5LnVzYWdlcyIs
ICJbJ2RlY3J5cHQnLCAnZW5jcnlwdCddIik7Ci0KLSAgICBkZWJ1ZygiRXhwb3J0aW5nIGl0Li4u
Iik7Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUuZXhwb3J0S2V5KCJyYXciLCB1bndy
YXBwZWRLZXkpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICB1bndyYXBwZWRLZXlE
YXRhID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKHVud3JhcHBlZEtl
eURhdGEpIiwgImJ5dGVzVG9IZXhTdHJpbmcoYWVzS2V5RGF0YSkiKTsKLSAgICBmaW5pc2hKU1Rl
c3QoKTsKLX0pOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KClByb3BlcnR5IGNoYW5n
ZXMgb246IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAtd3JhcC11bndy
YXAtYWVzLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46bWltZS10eXBlCiMjIC0xICswLDAg
IyMKLXRleHQvaHRtbApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBMYXlv
dXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1wb3N0TWVzc2FnZS1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtcG9zdE1l
c3NhZ2UtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMjA5MTkpCisrKyBMYXlvdXRUZXN0cy9jcnlw
dG8vd2Via2l0U3VidGxlL3JzYS1wb3N0TWVzc2FnZS1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50
KQpAQCAtMSwzMyArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNjA6IFdlYktpdFN1YnRs
ZUNyeXB0byBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIFN1YnRsZUNyeXB0byBpbnN0ZWFkLgot
VGVzdCBzZW5kaW5nIGNyeXB0byBrZXlzIHZpYSBwb3N0TWVzc2FnZS4KLQotT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgotCi0KLUtleSByZWNlaXZlZCBpbiBhIG1lc3NhZ2U6Ci1QQVNTIGtleS50
eXBlIGlzICdwcml2YXRlJwotUEFTUyBrZXkuZXh0cmFjdGFibGUgaXMgdHJ1ZQotUEFTUyBrZXku
YWxnb3JpdGhtLm5hbWUgaXMgJ1JTQVNTQS1QS0NTMS12MV81JwotUEFTUyBrZXkuYWxnb3JpdGht
Lm1vZHVsdXNMZW5ndGggaXMgMjA0OAotUEFTUyBieXRlc1RvSGV4U3RyaW5nKGtleS5hbGdvcml0
aG0ucHVibGljRXhwb25lbnQpIGlzICcwMTAwMDEnCi1QQVNTIGtleS51c2FnZXMgaXMgWyJzaWdu
IiwgInZlcmlmeSJdCi0KLUV4cG9ydGVkIGJhY2sgdG8gSldLOgotUEFTUyBleHBvcnRlZEpXSy5r
dHkgaXMgJ1JTQScKLVBBU1MgZXhwb3J0ZWRKV0suYWxnIGlzICdSUzI1NicKLVBBU1MgZXhwb3J0
ZWRKV0suZXh0IGlzIHRydWUKLVBBU1MgZXhwb3J0ZWRKV0sua2V5X29wcyBpcyBbJ3NpZ24nLCd2
ZXJpZnknXQotUEFTUyBleHBvcnRlZEpXSy51c2UgaXMgdW5kZWZpbmVkCi1QQVNTIGV4cG9ydGVk
SldLLm4gaXMgcHJpdmF0ZUtleUpTT04ubgotUEFTUyBleHBvcnRlZEpXSy5lIGlzIHByaXZhdGVL
ZXlKU09OLmUKLVBBU1MgZXhwb3J0ZWRKV0suZCBpcyBwcml2YXRlS2V5SlNPTi5kCi1QQVNTIGV4
cG9ydGVkSldLLnAgaXMgcHJpdmF0ZUtleUpTT04ucAotUEFTUyBleHBvcnRlZEpXSy5xIGlzIHBy
aXZhdGVLZXlKU09OLnEKLVBBU1MgZXhwb3J0ZWRKV0suZHAgaXMgcHJpdmF0ZUtleUpTT04uZHAK
LVBBU1MgZXhwb3J0ZWRKV0suZHEgaXMgcHJpdmF0ZUtleUpTT04uZHEKLVBBU1MgZXhwb3J0ZWRK
V0sucWkgaXMgcHJpdmF0ZUtleUpTT04ucWkKLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3Rz
L2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLXBvc3RNZXNzYWdlLWV4cGVjdGVkLnR4dApfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZlClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKRGVsZXRlZDogc3ZuOm1pbWUtdHlwZQojIyAtMSArMCww
ICMjCi10ZXh0L3BsYWluClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IExh
eW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLXBvc3RNZXNzYWdlLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtcG9zdE1lc3NhZ2Uu
aHRtbAkocmV2aXNpb24gMjIwOTE5KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRs
ZS9yc2EtcG9zdE1lc3NhZ2UuaHRtbAkobm9uZXhpc3RlbnQpCkBAIC0xLDY2ICswLDAgQEAKLTwh
RE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHk+Ci08c2NyaXB0PgotCi1kZXNjcmlwdGlvbigiVGVzdCBzZW5kaW5nIGNyeXB0byBrZXlzIHZp
YSBwb3N0TWVzc2FnZS4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBwcml2YXRl
S2V5SlNPTiA9IHsKLSAgICBrdHk6ICJSU0EiLAotICAgIGFsZzogIlJTMjU2IiwKLSAgICBuOiAi
cmNDVUN2N09jMUhWYW0xREloQ3pxa25UaFdhd09wOFFMazhaaXkycDEwQnlqUUZDYWpvRml5dUFX
bC1SMVdYWmFmNHhpdExScmFjVDlhZ3B6SXpjLU1iTFNISUdnV1FHTzIxbEdpSW15NWZ0Wi1EOGJI
QXFSejJ5MTVwekQ0YzRDRW91N1hTU0xEb1JuUjBRRzVNc0RoRDZzMmdWOW13SGtydGtDeHRNV2RC
aS03N2FzOHdHbWxOUmxkY09TZ1pETEs4VW5DU2dBMU9ndVo5ODliRnljOHRPT0VJYjB4VVNmUFN6
M0xQU0NueVl6NjhhRGptS1ZlTkgtaWc4NTdPU2N5V2JHeUV5M0JpdzY0cXVuM2p1VWxOV3NKM3pu
Z2tPZHRlWVd5dHg1UXI0WEtOczZSLU15eXE3MktVcDAybUpEWmlpeWlnbHhNTF9pMy1fQ2VlY0N3
IiwKLSAgICBlOiAiQVFBQiIsCi0gICAgZDogImVOTFMzN2FDejdSWFNOUERfRHRMQko2ajVUOGNT
eGR6UkJDalBhSTZXY0dxSnAxNmxxM1VUd3VvRExBcWxBOW9HWW0yMzhkc0lXcHV1Y1BfbFF0Yldl
LTdTcHhvSTZfdm1ZR2Y3WVZVSHYxLURGOXFpT21Tck1tZHhNblZPellYWThSYVQ2dGhQam5fSjVj
ZkxWMnhJX0x3c3JNdG1wZFN5TmxnWDB6VFVod3R1YWhnQUtNRUNoWWpIMkVuakhkSHc2c1kyLXdB
cGRjUUk3VUxFMG9vNVJ6YlFacG11aGNOOWhpQmMwTDNoaEYwcW81MG1ibDAyXzY1X0dRN0RwVmtY
QnhOZ1JCTHpsUGFibXp6RzJvQWhmZWZMZ1ltU0Mxb3BhQ2tYRTZ2UldRTldOTDQ1UlpOWkZZTTN1
b0pnaE9NcUdlb2NNMEJwamRDaEhyUE9sRnZTUSIsCi0gICAgcDogIjRtaVR1QWpLTWVINXVKNUtC
Mzk3UVV3aGJrWUVnU2JjQTJtaWZtU2t2RTIwMThnYjU1cWtCSEsxZVZyeWYxX200M0xObGM2T19h
azZnZnpkWkladlM1TkNHalBsMHEwOXBsVXB1OHFGT1NzcEJ3QTY3cUdINzZsRmxaTG5fZDR5Z2xT
N3dmTHJ1NF81WXM4cUxMcy1EcVZMdml3cG9zT255eVdxd001QVhwMCIsCi0gICAgcTogInhIWXJ6
a2l2dG1uel9zR2NobldHYzBxLXBET2tLaWNwdFJwdjJwTUZJSVh4bkZYNWFNZUVYSVpqVnVqWHR3
VXkxVWxGSU4yR1pKU3Z5NUtKNzltdV9YeU5uRkhNemVkSC1BM2VlM3U4aDFVVXJaRi12VXUxX2U0
VV94NjdOTjFkZWR6VVNLeW5ON3BGbDNPa3VTaE1CV0dWLWN3ek9QZGNWQWZWdVpseFVNYyIsCi0g
ICAgZHA6ICJmQnpEellEVUJtQlFHb3A3SG4wZHZmX1QyN1Y2UnFwY3RXbzA3NENRWmNGYlAyYXRG
VnRLU2ozdmlXVDN4aWQyVkh6Y2dpREhkZnBNM25FVmxFTzF3d0lvbkdDU3ZkakdFT1ppaUZWT2py
WkFPVnhBOGd1T2p5eUZ2cWJYa2UwNlZ3UElJVnZmS2VTVTJ6dWhiUF9fMXR0NkZfZnhvdzRLYjJ4
b25HVDBHR2siLAotICAgIGRxOiAiam1FMkRpSVBkaHdEZ0xYQVFwSWFCcVE4MWJPM1hmVlRfTFJV
TEF3d3d3bFB1UVYxNDhIMDR6bGg5VEo2WTJHWkhZb2tWMVUwZU9CcEp4ZmtiN2RMWXRwSnB1aUJq
UmY0eUlVRW9HbGtrSV9RbEpuRlNGci1ZakdSZGZOSHFXQmt4bFNNWkw3NzBSOW1JQVRuZEdrSDd6
NXgtcjlLd0JaRkM0RkNHMmhnX3pFIiwKLSAgICBxaTogIllDWF9wTHdiTUJBMVRoVkgwV2N3bW55
dHFOY3JNQ0V3VG03QnlBMmVVNm5XYlFyVUx2ZjdtOV9remZMVWNqc25wQVZsQlFHNUpNWE15MFNx
NHB0d2J5d3NhNS1HOEtBT09PUjJMM3Y0aEMtRXlzOWZ0Z0ZNXzNpMG80MGVlUUg0YjNoYVBibnRy
SWVNZzhJemxPdVZZS2Y5LTJRdUtEb1dlUmRkN05zZHhUayIKLX07Ci0KLXdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24oZXZ0KSB7Ci0gICAgZGVidWcoIktleSByZWNl
aXZlZCBpbiBhIG1lc3NhZ2U6Iik7Ci0gICAga2V5ID0gZXZ0LmRhdGE7Ci0gICAgc2hvdWxkQmUo
ImtleS50eXBlIiwgIidwcml2YXRlJyIpOwotICAgIHNob3VsZEJlKCJrZXkuZXh0cmFjdGFibGUi
LCAidHJ1ZSIpOwotICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ1JTQVNTQS1Q
S0NTMS12MV81JyIpOwotICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGgi
LCAiMjA0OCIpOwotICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKGtleS5hbGdvcml0aG0u
cHVibGljRXhwb25lbnQpIiwgIicwMTAwMDEnIik7Ci0gICAgc2hvdWxkQmUoImtleS51c2FnZXMi
LCAnWyJzaWduIiwgInZlcmlmeSJdJyk7Ci0KLSAgICBjcnlwdG8ud2Via2l0U3VidGxlLmV4cG9y
dEtleSgiandrIiwga2V5KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgICAgICBleHBvcnRl
ZEpXSyA9IEpTT04ucGFyc2UoYnl0ZXNUb0FTQ0lJU3RyaW5nKHJlc3VsdCkpOwotICAgICAgICBk
ZWJ1ZygiXG5FeHBvcnRlZCBiYWNrIHRvIEpXSzoiKTsKLSAgICAgICAgc2hvdWxkQmUoImV4cG9y
dGVkSldLLmt0eSIsICInUlNBJyIpOwotICAgICAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0suYWxn
IiwgIidSUzI1NiciKTsKLSAgICAgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmV4dCIsICJ0cnVl
Iik7Ci0gICAgICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5rZXlfb3BzIiwgIlsnc2lnbicsJ3Zl
cmlmeSddIik7Ci0gICAgICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy51c2UiLCAidW5kZWZpbmVk
Iik7Ci0gICAgICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5uIiwgInByaXZhdGVLZXlKU09OLm4i
KTsKLSAgICAgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmUiLCAicHJpdmF0ZUtleUpTT04uZSIp
OwotICAgICAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0suZCIsICJwcml2YXRlS2V5SlNPTi5kIik7
Ci0gICAgICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5wIiwgInByaXZhdGVLZXlKU09OLnAiKTsK
LSAgICAgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLnEiLCAicHJpdmF0ZUtleUpTT04ucSIpOwot
ICAgICAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0suZHAiLCAicHJpdmF0ZUtleUpTT04uZHAiKTsK
LSAgICAgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmRxIiwgInByaXZhdGVLZXlKU09OLmRxIik7
Ci0gICAgICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5xaSIsICJwcml2YXRlS2V5SlNPTi5xaSIp
OwotICAgICAgICBkZWJ1ZygiIik7Ci0KLSAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgfSk7
Ci19LCBmYWxzZSk7Ci0KLWNyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2Np
aVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShwcml2YXRlS2V5SlNPTikpLCBudWxsLCB0cnVl
LCBbInNpZ24iLCAidmVyaWZ5Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgcG9zdE1l
c3NhZ2UocmVzdWx0LCAiKiIpOwotfSk7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KClBy
b3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLXBv
c3RNZXNzYWdlLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46bWltZS10eXBlCiMjIC0xICsw
LDAgIyMKLXRleHQvaHRtbApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBM
YXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtZGVjcnlwdC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRs
ZS9yc2Flcy1wa2NzMS12MV81LWRlY3J5cHQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMjA5MTkp
CisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtZGVj
cnlwdC1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSwxMyArMCwwIEBACi1DT05TT0xF
IE1FU1NBR0U6IGxpbmUgMzM6IFdlYktpdFN1YnRsZUNyeXB0byBpcyBkZXByZWNhdGVkLiBQbGVh
c2UgdXNlIFN1YnRsZUNyeXB0byBpbnN0ZWFkLgotVGVzdCBkZWNyeXB0aW5nIGEga25vd24gbWVz
c2FnZSB3aXRoIFJTQUVTLVBLQ1MxLXYxXzUuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
LQotCi1JbXBvcnRpbmcgYW4gUlNBIGtleS4uLgotRGVjcnlwdGluZy4uLgotUEFTUyBieXRlc1Rv
SGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KG1lc3NhZ2UpKSBpcyAnMmFhY2VjODZmNDIzZGQ5MjVl
YzE1ODgyMmE3NDhjYmU2YzMxYTAnCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0K
LVRFU1QgQ09NUExFVEUKLQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvY3J5cHRv
L3dlYmtpdFN1YnRsZS9yc2Flcy1wa2NzMS12MV81LWRlY3J5cHQtZXhwZWN0ZWQudHh0Cl9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRpdmUKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpEZWxldGVkOiBzdm46bWltZS10eXBlCiMjIC0xICsw
LDAgIyMKLXRleHQvcGxhaW4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDog
TGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Flcy1wa2NzMS12MV81LWRlY3J5cHQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYWVz
LXBrY3MxLXYxXzUtZGVjcnlwdC5odG1sCShyZXZpc2lvbiAyMjA5MTkpCisrKyBMYXlvdXRUZXN0
cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtZGVjcnlwdC5odG1sCShub25l
eGlzdGVudCkKQEAgLTEsNDkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+
Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBkZWNyeXB0aW5nIGEga25vd24gbWVz
c2FnZSB3aXRoIFJTQUVTLVBLQ1MxLXYxXzUuIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwot
Ci12YXIgcHJpdmF0ZUtleUpTT04gPSB7Ci0gICAga3R5OiAiUlNBIiwKLSAgICBhbGc6ICJSU0Ex
XzUiLAotICAgIG46IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCJk
Y2ZhMTBmZmE3NDY2NWFlZWY4NzA5NzRlYTk5YjJjZTU0NTQ3YzY3ZjQyYWFhNmRkMDFhMmVkMzFm
ZDJjMjQyYWY1ZDk2MGIxZjg5NmVmYmEzNTQzZDY1NTRiN2IxMjY4N2E1YzY4ODU2OGYzMmUwMjZj
NTMyZDI1OTkzYjk3YTdjMjg0MmVjMmI4ZTEyMzVlZWUyNDE0ZDI1ODA2YzZmYmFlNDM4OTU0ZWJh
OWQyNzU1ZGZmZWViMWI0NzcwMDk1NzgxNWE4YTIzM2Y5N2IxYTJjNzE0YjNlMmJlMmU0MmQ4YmUz
MGIxOTYxNTgyZWE5OTQ4OTEwZTBjNzk3YzUwZmM0YmI0NTVmMGZjNDVlNWUzNGU2Mzk2YWM1YjJk
NDYyMzkzNjVjN2YzZGFhZjA5MDk0MDBkNjFjZjllMGNhODA4M2VhZjMzNWE2ZmNlYjY4NjNjMWNj
MGNmNWExNzFhZmYzNWQ5N2VjYjYwZWYyNTFjN2VjMmM4YTU4ODM2MWRjNDEyNjZhNGI3ZWQzOGIw
MjZjZTBkNTM3ODY0NDlkYmIxMWEwNmVhMzNjY2YxZWNhNTc1MjAxZWQxYWE0NzNlZDExODdlYzFk
OGE3NDRlYTM0NWJlZDdlYTAwZWU0ZTgxYmJhNDY0ODYwMWRkNTM3ZGM5MTAxNWQzMWYwYzJjMSIp
KSwKLSAgICBlOiBCYXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiMDEw
MDAxIikpLAotICAgIGQ6IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5
KCIyMTk1MDg1MWNkZjI1MzIwMzE4YjMwNWFmYTBmMzcxZjA3YWU1YTQ0YjMxNGViZDcyOWY1ZGNi
MTVkYTdmYTM5NDdhY2RkOTE1ZGFlZDU3NGJkMTZkZjg4YmY4NWY2MTA2MGIzODcxNzJmYWU2ZTAx
MjYyYjM4NjRjMmQzYzIyZjk0ZTA0YTgxNTk0MjJiNGVkMjc5YzQ4YTRjOWQ3NjdkNDk2NjA3MWE1
YmJmNWQwNDNlMTZmZjQ2ZWMxYmEwNzE2ZjAwYmJjOTdiZmY1ZDU2OTNlMjE0ZTk5Yzk3MjFmMTJi
M2VjNjI4MmFlMmE0ODU3MjFiOTZkZGNmNzQwM2ZhMDM3ZDBjNTdhYjQ2M2M0NDhkZTVjYzEyMjY1
YWRkODg2ZDMxMWVhOGQ4YTU5MDNmYTU2YzVmMWM5Y2YyZWIxMWNiNjU3YTFhN2QzZTQxMzUyZGMz
ZTY4Njg5OGM0Y2U0MzA1ZThiNjM4ZTFiMDhhMmE4NmNjOWViOTg2NmYzNDk5YWM3N2I2MTM2Yjgx
Y2IyNzZkNjE0Y2ZlYjdiNmVkM2YzYmM3NzVlNDZjMDAwNjZlYmVlZTJjZmY3MTY2YjU3NTIwNTk4
OTQ3ZmY2MjEwMzIwYjI4OGZiNGYyYzNmOGZlOTdiMjc5NDE0ZWJmNzIwMzAwMGExOWZjMDQyNDg3
NSIpKSwKLSAgICBwOiBCYXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgi
ZjEyM2JmZTUzZGU5N2E1NjlkOTFhZGNmNTU2ZmE2MjVhZDMwZjNmZDNkODExZjllOTFlNmFmNDRi
NmU3ODBjYjBmMzI3ODI5ZmIyMTE5MGFlMjgwNjY0NmQ3MjhjZDliNjUzMTEzMmIxZWJmZWYxMjcy
OTkzMDYwZjFjZTcwYjEyNDM5MzA5MWVlODU5M2I3MjczNjdlZGJiYTAwOWVjNWJlMTdjNGFjZWUx
MjBjODQxMjY3ZDQ3NjMxYTE2YzM2YTZkMWM5OTk3M2MxYjBiNWE4MzViZjM5ZmVhZmU4ZjY0MjFm
ZDljMmE5MGJjMjc5NzY2NTllNjdiYzgzMTI0ZCIpKSwKLSAgICBxOiBCYXNlNjRVUkwuc3RyaW5n
aWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiZWE5ODM5YjdlMzdlYTg5YmJkYTI3ZTRjOTM0NzFj
YjRmZDkyMTg5YTBhOTZiY2I0ZDc1NjkzZjE4YTVjMmY3NDJhZjllMzZmZGU2NzlmYmQ5ZWFlMzQ1
ZmEyNjk1MjdiNjk2NTAyMWM0YmRmNTRkNjg1YmYwODk2MGNjOTc2ZjY4ZGNhMjFjZWJmNDRmMjY4
YTU5ZGFiOGQxYTI1ZTUxOWY1MTQ3ZTFmNDVmZTI4N2Q3NGNmNzI1YmVjMTMyNmQzNDIxMmM1NmNm
NGZmZmEyMDJmNTdiNjhlZThjY2E5NDNmM2MxMzhjNGNkZTMzYmRmMmM5NDQwZGY2NTMyMjQ0NSIp
KSwKLSAgICBkcDogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoImNh
MGM5YjYwYjhlNGE2MDY2NzU2YzY1ZDIwODg0MTlkZjYyNTNiN2I2ODhhODVmNGY2ZTk2NGQ4NWRh
ZDUyYTQ1MjYyODY3ZjFlOTYxODA2OWZjY2Q4NjVlOTI4OWU0NmUzOWUyMDIyOTQ0YzVjNDQ4N2Qz
NDVjZjI1MmQ0NjBkOTc3ZDc3ZWRmZWZlZGJjYmFlNDZhMjNhZjdmYTQ3MGYwNzdkYTBlNTA5NDIw
NDRjYjFhMzYwNDk3Y2MyNzYwYWMwZjJhZDRhMmZjZDBlODRkN2ExZDk0ZGZkZDI2NThmZDljZTE4
NDc1YzFmYTc1ZWUwY2ViYWQwY2YwYWMwNGQiKSksCi0gICAgZHE6IEJhc2U2NFVSTC5zdHJpbmdp
ZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCI1MjgxNzEyMzNjNGU0YTZjNjNiODY3NjRmNTEzMzg4
NDZhZmRkYmNiMjk1ODM0NGMwMWM0MDA0YTFkZDgyODE0NWExZDAyYTE1MDdkZWY0ZjU4MjQ3YTY0
ZmMxMGMwYTI4OGMxYWU4OTU3MjFkNzhiOGYwNDRkYjdjMDBkODZkYTU1YTliNjU0MjkyZWNkNzY4
MjcwYmU2OWU0YmQ1OTIyZDRlZmZkMWY3MDk1NWY5NjI3ZTNlMTliNzQ5ZTkzYjQwZWYzZGQxZDYx
ZDkzOTE1ZTJiMDlkOTMwYjRiMTc2OGJmYWNjMDEzNmYzOWIwY2ZkZmI0ZDA1MDAxMWUyZTY1Iikp
LAotICAgIHFpOiBCYXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiZGYy
ZWIyMzIyY2MyZGFhYmY0ZDE0NjU1MDhmNDE1MjFjZGE3Y2VmZjIzZWJlNjFkMDBkNDQxZWU3Mjhk
ZGE1ZDE2YzdiZjkyMGNkOTVmMzRiZWI0ZmUzMmVlODE3ZWYzMzYyZTBiY2QxZDEyNDVmN2IwNzc5
M2VhYTE5MGRjNWEzN2ZkYWY0YzY4ZTJjYTEzOTcyZDdmNTE0OGI3OTZiNmZiNmQ3YWRkYTA3YmQy
Y2QxM2JlOThjZWJlZDFlZGM2Y2E0MTJlMzk1MzUwYzU5YTFkODQyYmM0YWEyZjNjMGIyNDNmZGU3
ZGZkOTUzNTZmMjQzOTI1MWExMTcyYzQ1ZSIpKQotfTsKLQotdmFyIGV4dHJhY3RhYmxlID0gdHJ1
ZTsKLXZhciBub25FeHRyYWN0YWJsZSA9IGZhbHNlOwotCi1kZWJ1ZygiSW1wb3J0aW5nIGFuIFJT
QSBrZXkuLi4iKTsKLWNyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRv
VWludDhBcnJheShKU09OLnN0cmluZ2lmeShwcml2YXRlS2V5SlNPTikpLCBudWxsLCBleHRyYWN0
YWJsZSwgWyJkZWNyeXB0Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgcHJpdmF0ZUtl
eSA9IHJlc3VsdDsKLQotICAgIGRlYnVnKCJEZWNyeXB0aW5nLi4uIik7Ci0gICAgZW5jcnlwdGVk
TWVzc2FnZSA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiNjA0MmU3NDU1ODlhZjAzYWY4NzUyMGY5
M2M0NWQ4YzM1OTg1YWRhMTE2MWEzN2Q4MjJlOWY5NDYwZmM3NWZjZjAxNzlkODQ5MWI4ZjVkMWU0
ZGU4Y2ViMzFlMDdjNDg2NWM1YTNlZmRiYmI2OWE4ODAzYjg5ZWU2NWE0MzBhNTgwOWM3MDc1Njkx
NTBiNTgwYmI2ODZhOTRjNTU0MWM0NmFkY2Q4Mjc5NjBjZTI0NGZmNjg4Mzg3ZDE2MTZlODViNGQx
NzgwYzY0ODM2MDZjZjkyNGI1NGYwODBjZjQxNTRlNjY4MjliZjZlNTMyNDgxMDQ4ZWM0MWZhZGMw
N2Q3NTViYjM0YmIyODE0NTIxOWNiMzBkNDdkMGQ2MTg3MDkxODBlOTAzMDNmZjllZjA5MDE4YmVk
M2RhNzU3NjFkYTc5NDgxMWY5NmJjOWU4ZDdjNGJhMWI1OTQ2YmRhMGJkMzEzZmFlYzRjOTkzZWQy
NzQ4ZWVkOGNjZTRiZGI1MjBiYTdkYjE2NWY5ZmU1NmFhODQ1NGQ2ZmYzMzg3NGZlZWViZjI5ZGUy
ZGY1YjdmMDBhYTFkOWZiMDczZmM0MDY3YjU4ZGM1MDYyNGUxMjdmNzExZGRlMmNjMmNmZGFiNDkx
OWNjZjI4YzgzNjYwZGZjMjI3YjBmNTAwZWMxZjkwNGYiKTsKLSAgICByZXR1cm4gY3J5cHRvLndl
YmtpdFN1YnRsZS5kZWNyeXB0KCJSU0FFUy1QS0NTMS12MV81IiwgcHJpdmF0ZUtleSwgZW5jcnlw
dGVkTWVzc2FnZSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIG1lc3NhZ2UgPSBy
ZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkobWVz
c2FnZSkpIiwgIicyYWFjZWM4NmY0MjNkZDkyNWVjMTU4ODIyYTc0OGNiZTZjMzFhMCciKTsKLQot
ICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgoK
UHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fl
cy1wa2NzMS12MV81LWRlY3J5cHQuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjptaW1lLXR5
cGUKIyMgLTEgKzAsMCAjIwotdGV4dC9odG1sClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVy
dHkKSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhZXMtcGtjczEtdjFf
NS13cmFwLXVud3JhcC1hZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhZXMtcGtjczEtdjFfNS13cmFwLXVud3JhcC1hZXMtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAyMjA5MTkpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtd3JhcC11bndyYXAtYWVzLWV4cGVjdGVkLnR4dAkobm9u
ZXhpc3RlbnQpCkBAIC0xLDM1ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0MDogV2Vi
S2l0U3VidGxlQ3J5cHRvIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgU3VidGxlQ3J5cHRvIGlu
c3RlYWQuCi1UZXN0IHdyYXBwaW5nIGFuZCB1bndyYXBwaW5nIGFuIEFFUyBrZXkgd2l0aCBSU0FF
Uy1QS0NTMS12MV81LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotSW1wb3J0aW5n
IFJTQSBrZXlzLi4uCi1JbXBvcnRpbmcgYW4gQUVTIGtleS4uLgotV3JhcHBpbmcgaXQuLi4KLVBB
U1Mgd3JhcHBlZEtleS50b1N0cmluZygpIGlzICdbb2JqZWN0IEFycmF5QnVmZmVyXScKLVVud3Jh
cHBpbmcgaXQuLi4KLVBBU1MgdW53cmFwcGVkS2V5LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgQ3J5
cHRvS2V5XScKLVBBU1MgdW53cmFwcGVkS2V5LnR5cGUgaXMgJ3NlY3JldCcKLVBBU1MgdW53cmFw
cGVkS2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKLVBBU1MgdW53cmFwcGVkS2V5LmFsZ29yaXRobS5u
YW1lIGlzICdBRVMtQ0JDJwotUEFTUyB1bndyYXBwZWRLZXkuYWxnb3JpdGhtLmxlbmd0aCBpcyAy
NTYKLVBBU1MgdW53cmFwcGVkS2V5LnVzYWdlcyBpcyBbJ2RlY3J5cHQnLCAnZW5jcnlwdCddCi1F
eHBvcnRpbmcgaXQuLi4KLVBBU1MgYnl0ZXNUb0hleFN0cmluZyh1bndyYXBwZWRLZXlEYXRhKSBp
cyBieXRlc1RvSGV4U3RyaW5nKGFlc0tleURhdGEpCi0KLVdyYXBwaW5nIHRoZSBzYW1lIGtleSBh
cyBKV0suLi4KLVBBU1Mgd3JhcHBlZEtleS50b1N0cmluZygpIGlzICdbb2JqZWN0IEFycmF5QnVm
ZmVyXScKLVVud3JhcHBpbmcgaXQuLi4KLVBBU1MgdW53cmFwcGVkS2V5LnRvU3RyaW5nKCkgaXMg
J1tvYmplY3QgQ3J5cHRvS2V5XScKLVBBU1MgdW53cmFwcGVkS2V5LnR5cGUgaXMgJ3NlY3JldCcK
LVBBU1MgdW53cmFwcGVkS2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKLVBBU1MgdW53cmFwcGVkS2V5
LmFsZ29yaXRobS5uYW1lIGlzICdBRVMtQ0JDJwotUEFTUyB1bndyYXBwZWRLZXkuYWxnb3JpdGht
Lmxlbmd0aCBpcyAyNTYKLVBBU1MgdW53cmFwcGVkS2V5LnVzYWdlcyBpcyBbJ2RlY3J5cHQnLCAn
ZW5jcnlwdCddCi1FeHBvcnRpbmcgaXQuLi4KLVBBU1MgYnl0ZXNUb0hleFN0cmluZyh1bndyYXBw
ZWRLZXlEYXRhKSBpcyBieXRlc1RvSGV4U3RyaW5nKGFlc0tleURhdGEpCi1QQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQoKUHJvcGVydHkgY2hhbmdlcyBv
bjogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Flcy1wa2NzMS12MV81LXdyYXAt
dW53cmFwLWFlcy1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxl
CiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkRl
bGV0ZWQ6IHN2bjptaW1lLXR5cGUKIyMgLTEgKzAsMCAjIwotdGV4dC9wbGFpbgpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3Vi
dGxlL3JzYWVzLXBrY3MxLXYxXzUtd3JhcC11bndyYXAtYWVzLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Flcy1wa2NzMS12MV81LXdyYXAtdW53
cmFwLWFlcy5odG1sCShyZXZpc2lvbiAyMjA5MTkpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Vi
a2l0U3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtd3JhcC11bndyYXAtYWVzLmh0bWwJKG5vbmV4aXN0
ZW50KQpAQCAtMSwxMDMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgot
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCB3cmFwcGluZyBhbmQgdW53cmFwcGluZyBh
biBBRVMga2V5IHdpdGggUlNBRVMtUEtDUzEtdjFfNS4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRy
dWU7Ci0KLXZhciBwdWJsaWNLZXlKU09OID0gewotICAgIGt0eTogIlJTQSIsCi0gICAgYWxnOiAi
UlNBMV81IiwKLSAgICBuOiBCYXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJh
eSgiZGNmYTEwZmZhNzQ2NjVhZWVmODcwOTc0ZWE5OWIyY2U1NDU0N2M2N2Y0MmFhYTZkZDAxYTJl
ZDMxZmQyYzI0MmFmNWQ5NjBiMWY4OTZlZmJhMzU0M2Q2NTU0YjdiMTI2ODdhNWM2ODg1NjhmMzJl
MDI2YzUzMmQyNTk5M2I5N2E3YzI4NDJlYzJiOGUxMjM1ZWVlMjQxNGQyNTgwNmM2ZmJhZTQzODk1
NGViYTlkMjc1NWRmZmVlYjFiNDc3MDA5NTc4MTVhOGEyMzNmOTdiMWEyYzcxNGIzZTJiZTJlNDJk
OGJlMzBiMTk2MTU4MmVhOTk0ODkxMGUwYzc5N2M1MGZjNGJiNDU1ZjBmYzQ1ZTVlMzRlNjM5NmFj
NWIyZDQ2MjM5MzY1YzdmM2RhYWYwOTA5NDAwZDYxY2Y5ZTBjYTgwODNlYWYzMzVhNmZjZWI2ODYz
YzFjYzBjZjVhMTcxYWZmMzVkOTdlY2I2MGVmMjUxYzdlYzJjOGE1ODgzNjFkYzQxMjY2YTRiN2Vk
MzhiMDI2Y2UwZDUzNzg2NDQ5ZGJiMTFhMDZlYTMzY2NmMWVjYTU3NTIwMWVkMWFhNDczZWQxMTg3
ZWMxZDhhNzQ0ZWEzNDViZWQ3ZWEwMGVlNGU4MWJiYTQ2NDg2MDFkZDUzN2RjOTEwMTVkMzFmMGMy
YzEiKSksCi0gICAgZTogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXko
IjAxMDAwMSIpKQotfTsKLQotdmFyIHByaXZhdGVLZXlKU09OID0gewotICAgIGt0eTogIlJTQSIs
Ci0gICAgYWxnOiAiUlNBMV81IiwKLSAgICBuOiBCYXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0cmlu
Z1RvVWludDhBcnJheSgiZGNmYTEwZmZhNzQ2NjVhZWVmODcwOTc0ZWE5OWIyY2U1NDU0N2M2N2Y0
MmFhYTZkZDAxYTJlZDMxZmQyYzI0MmFmNWQ5NjBiMWY4OTZlZmJhMzU0M2Q2NTU0YjdiMTI2ODdh
NWM2ODg1NjhmMzJlMDI2YzUzMmQyNTk5M2I5N2E3YzI4NDJlYzJiOGUxMjM1ZWVlMjQxNGQyNTgw
NmM2ZmJhZTQzODk1NGViYTlkMjc1NWRmZmVlYjFiNDc3MDA5NTc4MTVhOGEyMzNmOTdiMWEyYzcx
NGIzZTJiZTJlNDJkOGJlMzBiMTk2MTU4MmVhOTk0ODkxMGUwYzc5N2M1MGZjNGJiNDU1ZjBmYzQ1
ZTVlMzRlNjM5NmFjNWIyZDQ2MjM5MzY1YzdmM2RhYWYwOTA5NDAwZDYxY2Y5ZTBjYTgwODNlYWYz
MzVhNmZjZWI2ODYzYzFjYzBjZjVhMTcxYWZmMzVkOTdlY2I2MGVmMjUxYzdlYzJjOGE1ODgzNjFk
YzQxMjY2YTRiN2VkMzhiMDI2Y2UwZDUzNzg2NDQ5ZGJiMTFhMDZlYTMzY2NmMWVjYTU3NTIwMWVk
MWFhNDczZWQxMTg3ZWMxZDhhNzQ0ZWEzNDViZWQ3ZWEwMGVlNGU4MWJiYTQ2NDg2MDFkZDUzN2Rj
OTEwMTVkMzFmMGMyYzEiKSksCi0gICAgZTogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdU
b1VpbnQ4QXJyYXkoIjAxMDAwMSIpKSwKLSAgICBkOiBCYXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0
cmluZ1RvVWludDhBcnJheSgiMjE5NTA4NTFjZGYyNTMyMDMxOGIzMDVhZmEwZjM3MWYwN2FlNWE0
NGIzMTRlYmQ3MjlmNWRjYjE1ZGE3ZmEzOTQ3YWNkZDkxNWRhZWQ1NzRiZDE2ZGY4OGJmODVmNjEw
NjBiMzg3MTcyZmFlNmUwMTI2MmIzODY0YzJkM2MyMmY5NGUwNGE4MTU5NDIyYjRlZDI3OWM0OGE0
YzlkNzY3ZDQ5NjYwNzFhNWJiZjVkMDQzZTE2ZmY0NmVjMWJhMDcxNmYwMGJiYzk3YmZmNWQ1Njkz
ZTIxNGU5OWM5NzIxZjEyYjNlYzYyODJhZTJhNDg1NzIxYjk2ZGRjZjc0MDNmYTAzN2QwYzU3YWI0
NjNjNDQ4ZGU1Y2MxMjI2NWFkZDg4NmQzMTFlYThkOGE1OTAzZmE1NmM1ZjFjOWNmMmViMTFjYjY1
N2ExYTdkM2U0MTM1MmRjM2U2ODY4OThjNGNlNDMwNWU4YjYzOGUxYjA4YTJhODZjYzllYjk4NjZm
MzQ5OWFjNzdiNjEzNmI4MWNiMjc2ZDYxNGNmZWI3YjZlZDNmM2JjNzc1ZTQ2YzAwMDY2ZWJlZWUy
Y2ZmNzE2NmI1NzUyMDU5ODk0N2ZmNjIxMDMyMGIyODhmYjRmMmMzZjhmZTk3YjI3OTQxNGViZjcy
MDMwMDBhMTlmYzA0MjQ4NzUiKSksCi0gICAgcDogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJp
bmdUb1VpbnQ4QXJyYXkoImYxMjNiZmU1M2RlOTdhNTY5ZDkxYWRjZjU1NmZhNjI1YWQzMGYzZmQz
ZDgxMWY5ZTkxZTZhZjQ0YjZlNzgwY2IwZjMyNzgyOWZiMjExOTBhZTI4MDY2NDZkNzI4Y2Q5YjY1
MzExMzJiMWViZmVmMTI3Mjk5MzA2MGYxY2U3MGIxMjQzOTMwOTFlZTg1OTNiNzI3MzY3ZWRiYmEw
MDllYzViZTE3YzRhY2VlMTIwYzg0MTI2N2Q0NzYzMWExNmMzNmE2ZDFjOTk5NzNjMWIwYjVhODM1
YmYzOWZlYWZlOGY2NDIxZmQ5YzJhOTBiYzI3OTc2NjU5ZTY3YmM4MzEyNGQiKSksCi0gICAgcTog
QmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoImVhOTgzOWI3ZTM3ZWE4
OWJiZGEyN2U0YzkzNDcxY2I0ZmQ5MjE4OWEwYTk2YmNiNGQ3NTY5M2YxOGE1YzJmNzQyYWY5ZTM2
ZmRlNjc5ZmJkOWVhZTM0NWZhMjY5NTI3YjY5NjUwMjFjNGJkZjU0ZDY4NWJmMDg5NjBjYzk3NmY2
OGRjYTIxY2ViZjQ0ZjI2OGE1OWRhYjhkMWEyNWU1MTlmNTE0N2UxZjQ1ZmUyODdkNzRjZjcyNWJl
YzEzMjZkMzQyMTJjNTZjZjRmZmZhMjAyZjU3YjY4ZWU4Y2NhOTQzZjNjMTM4YzRjZGUzM2JkZjJj
OTQ0MGRmNjUzMjI0NDUiKSksCi0gICAgZHA6IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5n
VG9VaW50OEFycmF5KCJjYTBjOWI2MGI4ZTRhNjA2Njc1NmM2NWQyMDg4NDE5ZGY2MjUzYjdiNjg4
YTg1ZjRmNmU5NjRkODVkYWQ1MmE0NTI2Mjg2N2YxZTk2MTgwNjlmY2NkODY1ZTkyODllNDZlMzll
MjAyMjk0NGM1YzQ0ODdkMzQ1Y2YyNTJkNDYwZDk3N2Q3N2VkZmVmZWRiY2JhZTQ2YTIzYWY3ZmE0
NzBmMDc3ZGEwZTUwOTQyMDQ0Y2IxYTM2MDQ5N2NjMjc2MGFjMGYyYWQ0YTJmY2QwZTg0ZDdhMWQ5
NGRmZGQyNjU4ZmQ5Y2UxODQ3NWMxZmE3NWVlMGNlYmFkMGNmMGFjMDRkIikpLAotICAgIGRxOiBC
YXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiNTI4MTcxMjMzYzRlNGE2
YzYzYjg2NzY0ZjUxMzM4ODQ2YWZkZGJjYjI5NTgzNDRjMDFjNDAwNGExZGQ4MjgxNDVhMWQwMmEx
NTA3ZGVmNGY1ODI0N2E2NGZjMTBjMGEyODhjMWFlODk1NzIxZDc4YjhmMDQ0ZGI3YzAwZDg2ZGE1
NWE5YjY1NDI5MmVjZDc2ODI3MGJlNjllNGJkNTkyMmQ0ZWZmZDFmNzA5NTVmOTYyN2UzZTE5Yjc0
OWU5M2I0MGVmM2RkMWQ2MWQ5MzkxNWUyYjA5ZDkzMGI0YjE3NjhiZmFjYzAxMzZmMzliMGNmZGZi
NGQwNTAwMTFlMmU2NSIpKSwKLSAgICBxaTogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdU
b1VpbnQ4QXJyYXkoImRmMmViMjMyMmNjMmRhYWJmNGQxNDY1NTA4ZjQxNTIxY2RhN2NlZmYyM2Vi
ZTYxZDAwZDQ0MWVlNzI4ZGRhNWQxNmM3YmY5MjBjZDk1ZjM0YmViNGZlMzJlZTgxN2VmMzM2MmUw
YmNkMWQxMjQ1ZjdiMDc3OTNlYWExOTBkYzVhMzdmZGFmNGM2OGUyY2ExMzk3MmQ3ZjUxNDhiNzk2
YjZmYjZkN2FkZGEwN2JkMmNkMTNiZTk4Y2ViZWQxZWRjNmNhNDEyZTM5NTM1MGM1OWExZDg0MmJj
NGFhMmYzYzBiMjQzZmRlN2RmZDk1MzU2ZjI0MzkyNTFhMTE3MmM0NWUiKSkKLX07Ci12YXIgd3Jh
cEFsZ29yaXRobSA9IHtuYW1lOiAiUlNBRVMtUEtDUzEtdjFfNSJ9OwotdmFyIGV4dHJhY3RhYmxl
ID0gdHJ1ZTsKLXZhciBub25FeHRyYWN0YWJsZSA9IGZhbHNlOwotCi1kZWJ1ZygiSW1wb3J0aW5n
IFJTQSBrZXlzLi4uIik7Ci1jcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgiandrIiwgYXNj
aWlUb1VpbnQ4QXJyYXkoSlNPTi5zdHJpbmdpZnkocHVibGljS2V5SlNPTikpLCBudWxsLCBleHRy
YWN0YWJsZSwgWyJ3cmFwS2V5IiwgInVud3JhcEtleSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkg
ewotICAgIHB1YmxpY0tleSA9IHJlc3VsdDsKLSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRs
ZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5KHByaXZh
dGVLZXlKU09OKSksIG51bGwsIGV4dHJhY3RhYmxlLCBbIndyYXBLZXkiLCAidW53cmFwS2V5Il0p
OwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBwcml2YXRlS2V5ID0gcmVzdWx0Owot
Ci0gICAgZGVidWcoIkltcG9ydGluZyBhbiBBRVMga2V5Li4uIik7Ci0gICAgYWVzS2V5RGF0YSA9
IGhleFN0cmluZ1RvVWludDhBcnJheSgiNjAzZGViMTAxNWNhNzFiZTJiNzNhZWYwODU3ZDc3ODEx
ZjM1MmMwNzNiNjEwOGQ3MmQ5ODEwYTMwOTE0ZGZmNCIpOwotICAgIHJldHVybiBjcnlwdG8ud2Vi
a2l0U3VidGxlLmltcG9ydEtleSgicmF3IiwgYWVzS2V5RGF0YSwgImFlcy1jYmMiLCBleHRyYWN0
YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiLCAid3JhcEtleSIsICJ1bndyYXBLZXkiXSkKLX0p
LnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgYWVzS2V5ID0gcmVzdWx0OwotICAgIGRlYnVn
KCJXcmFwcGluZyBpdC4uLiIpOwotCi0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUud3Jh
cEtleSgicmF3IiwgYWVzS2V5LCBwdWJsaWNLZXksIHdyYXBBbGdvcml0aG0pOwotfSkudGhlbihm
dW5jdGlvbihyZXN1bHQpIHsKLSAgICB3cmFwcGVkS2V5ID0gcmVzdWx0OwotICAgIHNob3VsZEJl
KCJ3cmFwcGVkS2V5LnRvU3RyaW5nKCkiLCAiJ1tvYmplY3QgQXJyYXlCdWZmZXJdJyIpOwotCi0g
ICAgZGVidWcoIlVud3JhcHBpbmcgaXQuLi4iKTsKLSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1
YnRsZS51bndyYXBLZXkoInJhdyIsIHdyYXBwZWRLZXksIHByaXZhdGVLZXksIHdyYXBBbGdvcml0
aG0sICJhZXMtY2JjIiwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0Il0pOwotfSku
dGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICB1bndyYXBwZWRLZXkgPSByZXN1bHQ7Ci0gICAg
c2hvdWxkQmUoInVud3JhcHBlZEtleS50b1N0cmluZygpIiwgIidbb2JqZWN0IENyeXB0b0tleV0n
Iik7Ci0gICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS50eXBlIiwgIidzZWNyZXQnIik7Ci0gICAg
c2hvdWxkQmUoInVud3JhcHBlZEtleS5leHRyYWN0YWJsZSIsICJ0cnVlIik7Ci0gICAgc2hvdWxk
QmUoInVud3JhcHBlZEtleS5hbGdvcml0aG0ubmFtZSIsICInQUVTLUNCQyciKTsKLSAgICBzaG91
bGRCZSgidW53cmFwcGVkS2V5LmFsZ29yaXRobS5sZW5ndGgiLCAiMjU2Iik7Ci0gICAgc2hvdWxk
QmUoInVud3JhcHBlZEtleS51c2FnZXMiLCAiWydkZWNyeXB0JywgJ2VuY3J5cHQnXSIpOwotCi0g
ICAgZGVidWcoIkV4cG9ydGluZyBpdC4uLiIpOwotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3Vi
dGxlLmV4cG9ydEtleSgicmF3IiwgdW53cmFwcGVkS2V5KTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVz
dWx0KSB7Ci0gICAgdW53cmFwcGVkS2V5RGF0YSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgiYnl0
ZXNUb0hleFN0cmluZyh1bndyYXBwZWRLZXlEYXRhKSIsICJieXRlc1RvSGV4U3RyaW5nKGFlc0tl
eURhdGEpIik7Ci0KLSAgICBkZWJ1ZygiXG5XcmFwcGluZyB0aGUgc2FtZSBrZXkgYXMgSldLLi4u
Iik7Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUud3JhcEtleSgiandrIiwgYWVzS2V5
LCBwdWJsaWNLZXksIHdyYXBBbGdvcml0aG0pOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsK
LSAgICB3cmFwcGVkS2V5ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJ3cmFwcGVkS2V5LnRvU3Ry
aW5nKCkiLCAiJ1tvYmplY3QgQXJyYXlCdWZmZXJdJyIpOwotCi0gICAgZGVidWcoIlVud3JhcHBp
bmcgaXQuLi4iKTsKLSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS51bndyYXBLZXkoImp3
ayIsIHdyYXBwZWRLZXksIHByaXZhdGVLZXksIHdyYXBBbGdvcml0aG0sICJhZXMtY2JjIiwgZXh0
cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0Il0pOwotfSkudGhlbihmdW5jdGlvbihyZXN1
bHQpIHsKLSAgICB1bndyYXBwZWRLZXkgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoInVud3JhcHBl
ZEtleS50b1N0cmluZygpIiwgIidbb2JqZWN0IENyeXB0b0tleV0nIik7Ci0gICAgc2hvdWxkQmUo
InVud3JhcHBlZEtleS50eXBlIiwgIidzZWNyZXQnIik7Ci0gICAgc2hvdWxkQmUoInVud3JhcHBl
ZEtleS5leHRyYWN0YWJsZSIsICJ0cnVlIik7Ci0gICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS5h
bGdvcml0aG0ubmFtZSIsICInQUVTLUNCQyciKTsKLSAgICBzaG91bGRCZSgidW53cmFwcGVkS2V5
LmFsZ29yaXRobS5sZW5ndGgiLCAiMjU2Iik7Ci0gICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS51
c2FnZXMiLCAiWydkZWNyeXB0JywgJ2VuY3J5cHQnXSIpOwotCi0gICAgZGVidWcoIkV4cG9ydGlu
ZyBpdC4uLiIpOwotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLmV4cG9ydEtleSgicmF3
IiwgdW53cmFwcGVkS2V5KTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgdW53cmFw
cGVkS2V5RGF0YSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyh1bndy
YXBwZWRLZXlEYXRhKSIsICJieXRlc1RvSGV4U3RyaW5nKGFlc0tleURhdGEpIik7Ci0gICAgZmlu
aXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CgpQcm9wZXJ0
eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYWVzLXBrY3Mx
LXYxXzUtd3JhcC11bndyYXAtYWVzLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46bWltZS10
eXBlCiMjIC0xICswLDAgIyMKLXRleHQvaHRtbApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3Bl
cnR5CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12
MV81LWdlbmVyYXRlLWtleS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Y3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1nZW5lcmF0ZS1rZXktZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAyMjA5MTkpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3Vi
dGxlL3JzYXNzYS1wa2NzMS12MV81LWdlbmVyYXRlLWtleS1leHBlY3RlZC50eHQJKG5vbmV4aXN0
ZW50KQpAQCAtMSwyNSArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjU6IFdlYktpdFN1
YnRsZUNyeXB0byBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIFN1YnRsZUNyeXB0byBpbnN0ZWFk
LgotVGVzdCBnZW5lcmF0aW5nIGFuIFJTQSBrZXkgcGFpciBmb3IgUlNBU1NBLVBLQ1MxLXYxXzUu
Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1HZW5lcmF0aW5nIGEga2V5IHBhaXIu
Li4KLVBBU1Mga2V5UGFpci50b1N0cmluZygpIGlzICdbb2JqZWN0IE9iamVjdF0nCi1QQVNTIGtl
eVBhaXIucHVibGljS2V5LnR5cGUgaXMgJ3B1YmxpYycKLVBBU1Mga2V5UGFpci5wdWJsaWNLZXku
YWxnb3JpdGhtLm5hbWUgaXMgJ1JTQVNTQS1QS0NTMS12MV81JwotUEFTUyBrZXlQYWlyLnB1Ymxp
Y0tleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCBpcyAyMDQ4Ci1QQVNTIGJ5dGVzVG9IZXhTdHJp
bmcoa2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSBpcyAnMDEwMDAx
JwotUEFTUyBrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0uaGFzaCBpcyB1bmRlZmluZWQuCi1Q
QVNTIGtleVBhaXIucHJpdmF0ZUtleS50eXBlIGlzICdwcml2YXRlJwotUEFTUyBrZXlQYWlyLnBy
aXZhdGVLZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ1JTQVNTQS1QS0NTMS12MV81JwotUEFTUyBrZXlQ
YWlyLnByaXZhdGVLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGggaXMgMjA0OAotUEFTUyBieXRl
c1RvSGV4U3RyaW5nKGtleVBhaXIucHJpdmF0ZUtleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQp
IGlzICcwMTAwMDEnCi1QQVNTIGtleVBhaXIucHJpdmF0ZUtleS5hbGdvcml0aG0uaGFzaCBpcyB1
bmRlZmluZWQuCi0KLVRlc3RpbmcgdGhhdCBjdXN0b20gYXR0cmlidXRlcyBvbiBrZXlzIHN1cnZp
dmUgZ2FyYmFnZSBjb2xsZWN0aW9uLi4uCi1QQVNTIGtleVBhaXIucHVibGljS2V5LmZvbyBpcyAn
YmFyJwotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0K
SW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUt
Z2VuZXJhdGUta2V5LXdpdGgtbGVhZGluZy16ZXJvZXMtaW4tZXhwb25lbnQtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhc3NhLXBr
Y3MxLXYxXzUtZ2VuZXJhdGUta2V5LXdpdGgtbGVhZGluZy16ZXJvZXMtaW4tZXhwb25lbnQtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAyMjA5MTkpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWdlbmVyYXRlLWtleS13aXRoLWxlYWRpbmctemVyb2Vz
LWluLWV4cG9uZW50LWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCkBAIC0xLDE3ICswLDAgQEAK
LUNPTlNPTEUgTUVTU0FHRTogbGluZSAyNTogV2ViS2l0U3VidGxlQ3J5cHRvIGlzIGRlcHJlY2F0
ZWQuIFBsZWFzZSB1c2UgU3VidGxlQ3J5cHRvIGluc3RlYWQuCi1UZXN0IGdlbmVyYXRpbmcgYW4g
UlNBIGtleSBwYWlyIGZvciBSU0FTU0EtUEtDUzEtdjFfNSB3aGVuIGV4cG9uZW50IGhhcyBsZWFk
aW5nIHplcm9lcy4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLUdlbmVyYXRpbmcg
YSBrZXkgcGFpci4uLgotUEFTUyBrZXlQYWlyLnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgT2JqZWN0
XScKLVBBU1Mga2V5UGFpci5wdWJsaWNLZXkudHlwZSBpcyAncHVibGljJwotUEFTUyBrZXlQYWly
LnB1YmxpY0tleS5hbGdvcml0aG0ubmFtZSBpcyAnUlNBU1NBLVBLQ1MxLXYxXzUnCi1QQVNTIGtl
eVBhaXIucHVibGljS2V5LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3RoIGlzIDIwNDgKLVBBU1MgYnl0
ZXNUb0hleFN0cmluZyhrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQp
IGlzICcwMTAwMDEnCi1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcoa2V5UGFpci5wcml2YXRlS2V5LmFs
Z29yaXRobS5wdWJsaWNFeHBvbmVudCkgaXMgJzAxMDAwMScKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8v
d2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWdlbmVyYXRlLWtleS13aXRoLWxlYWRpbmct
emVyb2VzLWluLWV4cG9uZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRv
L3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1nZW5lcmF0ZS1rZXktd2l0aC1sZWFkaW5n
LXplcm9lcy1pbi1leHBvbmVudC5odG1sCShyZXZpc2lvbiAyMjA5MTkpCisrKyBMYXlvdXRUZXN0
cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWdlbmVyYXRlLWtleS13aXRo
LWxlYWRpbmctemVyb2VzLWluLWV4cG9uZW50Lmh0bWwJKG5vbmV4aXN0ZW50KQpAQCAtMSw0MCAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRl
c2NyaXB0aW9uKCJUZXN0IGdlbmVyYXRpbmcgYW4gUlNBIGtleSBwYWlyIGZvciBSU0FTU0EtUEtD
UzEtdjFfNSB3aGVuIGV4cG9uZW50IGhhcyBsZWFkaW5nIHplcm9lcy4iKTsKLQotanNUZXN0SXNB
c3luYyA9IHRydWU7Ci0KLXZhciBhbGdvcml0aG1LZXlHZW4gPSB7Ci0gICAgbmFtZTogIlJTQVNT
QS1QS0NTMS12MV81IiwKLSAgICAvLyBSc2FLZXlHZW5QYXJhbXMKLSAgICBtb2R1bHVzTGVuZ3Ro
OiAyMDQ4LAotICAgIHB1YmxpY0V4cG9uZW50OiBuZXcgVWludDhBcnJheShbMHgwMCwgMHgwMCwg
MHgwMCwgMHgwMCwgMHgwMCwgMHgwMSwgMHgwMCwgMHgwMV0pLCAgLy8gRXF1aXZhbGVudCB0byA2
NTUzNwotfTsKLXZhciBleHRyYWN0YWJsZSA9IHRydWU7Ci0KLWRlYnVnKCJHZW5lcmF0aW5nIGEg
a2V5IHBhaXIuLi4iKTsKLWNyeXB0by53ZWJraXRTdWJ0bGUuZ2VuZXJhdGVLZXkoYWxnb3JpdGht
S2V5R2VuLCBleHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSJdKS50aGVuKGZ1bmN0aW9uKHJl
c3VsdCkgewotICAgIGtleVBhaXIgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImtleVBhaXIudG9T
dHJpbmcoKSIsICInW29iamVjdCBPYmplY3RdJyIpOwotICAgIHNob3VsZEJlKCJrZXlQYWlyLnB1
YmxpY0tleS50eXBlIiwgIidwdWJsaWMnIik7Ci0gICAgc2hvdWxkQmUoImtleVBhaXIucHVibGlj
S2V5LmFsZ29yaXRobS5uYW1lIiwgIidSU0FTU0EtUEtDUzEtdjFfNSciKTsKLSAgICBzaG91bGRC
ZSgia2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGgiLCAiMjA0OCIpOwot
ICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKGtleVBhaXIucHVibGljS2V5LmFsZ29yaXRo
bS5wdWJsaWNFeHBvbmVudCkiLCAiJzAxMDAwMSciKTsKLSAgICBzaG91bGRCZSgiYnl0ZXNUb0hl
eFN0cmluZyhrZXlQYWlyLnByaXZhdGVLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSIsICIn
MDEwMDAxJyIpOwotCi0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2Jv
ZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYXNz
YS1wa2NzMS12MV81LWdlbmVyYXRlLWtleS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtZ2VuZXJhdGUta2V5Lmh0bWwJ
KHJldmlzaW9uIDIyMDkxOSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNh
c3NhLXBrY3MxLXYxXzUtZ2VuZXJhdGUta2V5Lmh0bWwJKG5vbmV4aXN0ZW50KQpAQCAtMSw1NCAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRl
c2NyaXB0aW9uKCJUZXN0IGdlbmVyYXRpbmcgYW4gUlNBIGtleSBwYWlyIGZvciBSU0FTU0EtUEtD
UzEtdjFfNS4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBhbGdvcml0aG1LZXlH
ZW4gPSB7Ci0gICAgbmFtZTogIlJTQVNTQS1QS0NTMS12MV81IiwKLSAgICAvLyBSc2FLZXlHZW5Q
YXJhbXMKLSAgICBtb2R1bHVzTGVuZ3RoOiAyMDQ4LAotICAgIHB1YmxpY0V4cG9uZW50OiBuZXcg
VWludDhBcnJheShbMHgwMSwgMHgwMCwgMHgwMV0pLCAgLy8gRXF1aXZhbGVudCB0byA2NTUzNwot
fTsKLXZhciBleHRyYWN0YWJsZSA9IHRydWU7Ci0KLWRlYnVnKCJHZW5lcmF0aW5nIGEga2V5IHBh
aXIuLi4iKTsKLWNyeXB0by53ZWJraXRTdWJ0bGUuZ2VuZXJhdGVLZXkoYWxnb3JpdGhtS2V5R2Vu
LCBleHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkg
ewotICAgIGtleVBhaXIgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImtleVBhaXIudG9TdHJpbmco
KSIsICInW29iamVjdCBPYmplY3RdJyIpOwotICAgIHNob3VsZEJlKCJrZXlQYWlyLnB1YmxpY0tl
eS50eXBlIiwgIidwdWJsaWMnIik7Ci0gICAgc2hvdWxkQmUoImtleVBhaXIucHVibGljS2V5LmFs
Z29yaXRobS5uYW1lIiwgIidSU0FTU0EtUEtDUzEtdjFfNSciKTsKLSAgICBzaG91bGRCZSgia2V5
UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGgiLCAiMjA0OCIpOwotICAgIHNo
b3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKGtleVBhaXIucHVibGljS2V5LmFsZ29yaXRobS5wdWJs
aWNFeHBvbmVudCkiLCAiJzAxMDAwMSciKTsKLSAgICBzaG91bGRCZVVuZGVmaW5lZCgia2V5UGFp
ci5wdWJsaWNLZXkuYWxnb3JpdGhtLmhhc2giKTsKLSAgICBzaG91bGRCZSgia2V5UGFpci5wcml2
YXRlS2V5LnR5cGUiLCAiJ3ByaXZhdGUnIik7Ci0gICAgc2hvdWxkQmUoImtleVBhaXIucHJpdmF0
ZUtleS5hbGdvcml0aG0ubmFtZSIsICInUlNBU1NBLVBLQ1MxLXYxXzUnIik7Ci0gICAgc2hvdWxk
QmUoImtleVBhaXIucHJpdmF0ZUtleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCIsICIyMDQ4Iik7
Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcoa2V5UGFpci5wcml2YXRlS2V5LmFsZ29y
aXRobS5wdWJsaWNFeHBvbmVudCkiLCAiJzAxMDAwMSciKTsKLSAgICBzaG91bGRCZVVuZGVmaW5l
ZCgia2V5UGFpci5wcml2YXRlS2V5LmFsZ29yaXRobS5oYXNoIik7Ci0KLSAgICBkZWJ1ZygiXG5U
ZXN0aW5nIHRoYXQgY3VzdG9tIGF0dHJpYnV0ZXMgb24ga2V5cyBzdXJ2aXZlIGdhcmJhZ2UgY29s
bGVjdGlvbi4uLiIpOwotICAgIGtleVBhaXIucHVibGljS2V5LmZvbyA9ICJiYXIiOwotICAgIGdj
KCk7Ci0gICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgZ2MoKTsKLSAgICAgICAg
c2V0VGltZW91dChmdW5jdGlvbigpIHsKLSAgICAgICAgICAgIHNob3VsZEJlKCJrZXlQYWlyLnB1
YmxpY0tleS5mb28iLCAiJ2JhciciKTsKLSAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAg
ICAgICB9LCAwKTsKLSAgICB9LCAwKTsKLX0pOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRt
bD4KSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhc3NhLXBrY3MxLXYx
XzUtaW1wb3J0LWp3ay1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5
cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1pbXBvcnQtandrLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMjIwOTE5KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9y
c2Fzc2EtcGtjczEtdjFfNS1pbXBvcnQtandrLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCkBA
IC0xLDI3ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzOTogV2ViS2l0U3VidGxlQ3J5
cHRvIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgU3VidGxlQ3J5cHRvIGluc3RlYWQuCi1UZXN0
IGltcG9ydGluZyBhbiBSU0Ega2V5IGZvciBSU0FTU0EtUEtDUzEtdjFfNS4KLQotT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgotCi0KLUltcG9ydGluZyBhIHB1YmxpYyBrZXkuLi4KLVBBU1MgcHVi
bGljS2V5LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgQ3J5cHRvS2V5XScKLVBBU1MgcHVibGljS2V5
LnR5cGUgaXMgJ3B1YmxpYycKLVBBU1MgcHVibGljS2V5LnVzYWdlcyBpcyBbJ3NpZ24nLCd2ZXJp
ZnknXQotUEFTUyBwdWJsaWNLZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ1JTQVNTQS1QS0NTMS12MV81
JwotUEFTUyBwdWJsaWNLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGggaXMgMjA0OAotUEFTUyBi
eXRlc1RvSGV4U3RyaW5nKHB1YmxpY0tleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIGlzICcw
MTAwMDEnCi1QQVNTIHB1YmxpY0tleS5hbGdvcml0aG0uaGFzaC5uYW1lIGlzICdTSEEtMjU2Jwot
Ci1JbXBvcnRpbmcgYSBwcml2YXRlIGtleS4uLgotUEFTUyBwcml2YXRlS2V5LnRvU3RyaW5nKCkg
aXMgJ1tvYmplY3QgQ3J5cHRvS2V5XScKLVBBU1MgcHJpdmF0ZUtleS50eXBlIGlzICdwcml2YXRl
JwotUEFTUyBwcml2YXRlS2V5LnVzYWdlcyBpcyBbJ3NpZ24nLCd2ZXJpZnknXQotUEFTUyBwcml2
YXRlS2V5LmFsZ29yaXRobS5uYW1lIGlzICdSU0FTU0EtUEtDUzEtdjFfNScKLVBBU1MgcHJpdmF0
ZUtleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCBpcyAyMDQ4Ci1QQVNTIGJ5dGVzVG9IZXhTdHJp
bmcocHJpdmF0ZUtleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIGlzICcwMTAwMDEnCi1QQVNT
IHByaXZhdGVLZXkuYWxnb3JpdGhtLmhhc2gubmFtZSBpcyAnU0hBLTI1NicKLVBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0
cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWltcG9ydC1qd2stc21hbGwt
a2V5LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWltcG9ydC1qd2stc21hbGwta2V5LWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMjIwOTE5KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9y
c2Fzc2EtcGtjczEtdjFfNS1pbXBvcnQtandrLXNtYWxsLWtleS1leHBlY3RlZC50eHQJKG5vbmV4
aXN0ZW50KQpAQCAtMSwxMiArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNjE2OiBXZWJL
aXRTdWJ0bGVDcnlwdG8gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBTdWJ0bGVDcnlwdG8gaW5z
dGVhZC4KLUEga2V5IG9mIHNpemUgMjA0OCBiaXRzIG9yIGxhcmdlciBNVVNUIGJlIHVzZWQgd2l0
aCBSUzI1NiwgUlMzODQsIFJTNTEyIEpXSyBhbGdvcml0aG1zLgotCi1PbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCi0KLQotUEFTUyBjcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgiandrIiwg
YXNjaWlUb1VpbnQ4QXJyYXkoSlNPTi5zdHJpbmdpZnkocHVibGljS2V5SlNPTikpLCBudWxsLCBl
eHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSJdKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBLZXkgc2l6ZSBpcyBub3QgdmFsaWQgZm9yIFJTMjU2LgotUEFTUyBjcnlwdG8ud2Via2l0U3Vi
dGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoSlNPTi5zdHJpbmdpZnkocHJp
dmF0ZUtleUpTT04pKSwgbnVsbCwgZXh0cmFjdGFibGUsIFsic2lnbiIsICJ2ZXJpZnkiXSkgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogS2V5IHNpemUgaXMgbm90IHZhbGlkIGZvciBSUzUxMi4K
LVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4
OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWltcG9y
dC1qd2stc21hbGwta2V5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dl
YmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1pbXBvcnQtandrLXNtYWxsLWtleS5odG1sCShy
ZXZpc2lvbiAyMjA5MTkpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYXNz
YS1wa2NzMS12MV81LWltcG9ydC1qd2stc21hbGwta2V5Lmh0bWwJKG5vbmV4aXN0ZW50KQpAQCAt
MSw0NCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAg
aWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlw
dD4KLWRlc2NyaXB0aW9uKCJBIGtleSBvZiBzaXplIDIwNDggYml0cyBvciBsYXJnZXIgTVVTVCBi
ZSB1c2VkIHdpdGggUlMyNTYsIFJTMzg0LCBSUzUxMiBKV0sgYWxnb3JpdGhtcy4iKTsKLQotdmFy
IGV4dHJhY3RhYmxlID0gdHJ1ZTsKLQotLy8gb3BlbnNzbCBnZW5yc2EgMTAyNCA+MTAyNC5wZW0K
LS8vIG9wZW5zc2wgYXNuMXBhcnNlIC1pbiAxMDI0LnBlbQotdmFyIHB1YmxpY0tleUpTT04gPSB7
Ci0gICAga3R5OiAiUlNBIiwKLSAgICBhbGc6ICJSUzI1NiIsCi0gICAgbjogQmFzZTY0VVJMLnN0
cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIkI3RjEwM0Y4NDEyQ0NEMjZGNUQ1NEZDMzE1
N0NEOENFMUYxMzRGNEVBQkYwQTA0MjM1MEJERDdGMDBGRUEyQjc3RUVGMTk5MTVCMTBBQTI0MTdC
QjJDQjRFQzFENTdCOTY2MUEyMDA3MjQ2OUI5REY5QzZFODlDQjM1Q0NDODU0M0NDNDA3NzBEQ0Mz
MEQwQkJGRjFCRjlEQTFFMjU0OUY0MDQ3NkVEQURCOTMxMjk4NURBRThDNzUyN0MxQzEyQUFGRURG
NDU4NDk4OTk2OENEQ0M5RUZFQjE5NzQzOEM1MzREMUJGQUFDMzBCMUQ0MUY3NUVBREI4NkNDNTgx
QjkiKSksCi0gICAgZTogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXko
IjAxMDAwMSIpKQotfTsKLQotdmFyIHByaXZhdGVLZXlKU09OID0gewotICAgIGt0eTogIlJTQSIs
Ci0gICAgYWxnOiAiUlM1MTIiLAotICAgIG46IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5n
VG9VaW50OEFycmF5KCJCN0YxMDNGODQxMkNDRDI2RjVENTRGQzMxNTdDRDhDRTFGMTM0RjRFQUJG
MEEwNDIzNTBCREQ3RjAwRkVBMkI3N0VFRjE5OTE1QjEwQUEyNDE3QkIyQ0I0RUMxRDU3Qjk2NjFB
MjAwNzI0NjlCOURGOUM2RTg5Q0IzNUNDQzg1NDNDQzQwNzcwRENDMzBEMEJCRkYxQkY5REExRTI1
NDlGNDA0NzZFREFEQjkzMTI5ODVEQUU4Qzc1MjdDMUMxMkFBRkVERjQ1ODQ5ODk5NjhDRENDOUVG
RUIxOTc0MzhDNTM0RDFCRkFBQzMwQjFENDFGNzVFQURCODZDQzU4MUI5IikpLAotICAgIGU6IEJh
c2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMTAwMDEiKSksCi0gICAg
ZDogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjVCQTZGNEYyNkIw
RjM2QkRCNUZBNkVCRUU2RTMwOTY4NTMyNTlDRkJCNzQyQjNBN0E5QTREQURERTA5MjAwNjNFQzE0
OTkyOUNCMzU1NzgxOUE2RDgyNEUzN0U0M0IwNEJGMzIzRjQ5MkZDNDlBODAyODAzMTAxN0I4MUJF
Q0E4RUMyQTg1QUJDRjE5MzUwMUQ4MERDMjUxREI4ODYzQjg2NzNEOEI2NzcyREIyRDJBRTA4Q0Qx
ODI5QzNGNTQyMTQxNDYxQ0FDRTRFOEExRjExMkFEMTNGRjRBNEREODY1QTg5QUVBOTRFOTg0RDQ4
N0U1Nzk4RUYwNzY0M0I5Q0QiKSksCi0gICAgcDogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJp
bmdUb1VpbnQ4QXJyYXkoIkUwNkJGRTU3MjJBNjhFNUQ1OTdERDhEQjkzNzQ4M0NCQTM1MkFCODE3
MjA5Mjc1QURBRDEwMzc3MkI3QThFRjRFQTk0NjMxMUEyQjUxODA1OTU5ODE4Q0VCMzYyRjI1N0Q2
OTk4QjQ3NUZFQTlFMzRGMkEzMDIwNUI1RjVBN0ZGIikpLAotICAgIHE6IEJhc2U2NFVSTC5zdHJp
bmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCJEMUQyREJEQjFGNERDQkZFOEQxNkNERDJDRjgz
QzdCNUZBREZDNzg5MUYyMkZDNTI3QkYyMDhGODFCOTJGMjU0MzU2OUMzQUQyMjIyNEI4MkQ0MDdE
RUI2NUY2NTFEMDlEMjU1OEZFRThCQzZFNURBNTFGNkYxMzIwNkNDMTY0NyIpKSwKLSAgICBkcDog
QmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjczRUNCNEYzRDNBRDRG
NkFCRUY4NzdENTZDODRDQTMzOUQ4OEVEOThBRjBDMzU2RDA0MENFNThBNjA0NjJEQTQyQkFDM0ND
NDc2NTRBRjM0RUI0MjI2QzY1NkY5NkM4RjlEMDVCMTYxNEMxNTg4NjU3NzU0NjY4RTA2QTBGRjg3
IikpLAotICAgIGRxOiBCYXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgi
NUI5QzVBQ0RCMzNGM0U1RkU3QUUxQjMzN0REMzI1QjEzOEQ1RDdDMkYwQ0I0RkFCOUJERTMzMzg1
MEExQkExODM2MzFGNTczNzQ0MUQxMDI1MDFEMTc4QTNDRTA2MkVCNTRFMDcyQjU0RTY2MEIxOTY1
NEMxMjQ3MkI1Qzk0MjUiKSksCi0gICAgcWk6IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5n
VG9VaW50OEFycmF5KCJENkE5MjBCMjQxMTc4OTIzQzU5QkNCRDFBODE1NzY0NjE5MjI1QTkwRjJD
MDkwQTlGQkQ1OTRBNjE1NjE1NDJEMERGMTc5NTkwNDEzQzI2QzhBNzJGQzZFMTRFQzYzQTM3NzE2
OTk3MDY3MUIzQTFFQjVFNEY0REYxQTRDQTcyNSIpKQotfTsKLQotc2hvdWxkVGhyb3coJ2NyeXB0
by53ZWJraXRTdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShKU09OLnN0
cmluZ2lmeShwdWJsaWNLZXlKU09OKSksIG51bGwsIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVy
aWZ5Il0pJyk7Ci1zaG91bGRUaHJvdygnY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoImp3
ayIsIGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5KHByaXZhdGVLZXlKU09OKSksIG51
bGwsIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pJyk7Ci08L3NjcmlwdD4KLQotPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9i
b2R5PgotPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvY3J5cHRvL3dl
YmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1pbXBvcnQtandrLXNtYWxsLWtleS5odG1sCl9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18KRGVsZXRlZDogc3ZuOm1pbWUtdHlwZQojIyAtMSArMCwwICMjCi10ZXh0L2h0bWwK
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRv
L3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1pbXBvcnQtandrLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1p
bXBvcnQtandrLmh0bWwJKHJldmlzaW9uIDIyMDkxOSkKKysrIExheW91dFRlc3RzL2NyeXB0by93
ZWJraXRTdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtaW1wb3J0LWp3ay5odG1sCShub25leGlzdGVu
dCkKQEAgLTEsNjUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9k
eT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0K
LTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBpbXBvcnRpbmcgYW4gUlNBIGtleSBmb3IgUlNB
U1NBLVBLQ1MxLXYxXzUuIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi12YXIgZXh0cmFj
dGFibGUgPSB0cnVlOwotCi12YXIgcHVibGljS2V5SlNPTiA9IHsKLSAgICBrdHk6ICJSU0EiLAot
ICAgIGFsZzogIlJTMjU2IiwKLSAgICBuOiAicmNDVUN2N09jMUhWYW0xREloQ3pxa25UaFdhd09w
OFFMazhaaXkycDEwQnlqUUZDYWpvRml5dUFXbC1SMVdYWmFmNHhpdExScmFjVDlhZ3B6SXpjLU1i
TFNISUdnV1FHTzIxbEdpSW15NWZ0Wi1EOGJIQXFSejJ5MTVwekQ0YzRDRW91N1hTU0xEb1JuUjBR
RzVNc0RoRDZzMmdWOW13SGtydGtDeHRNV2RCaS03N2FzOHdHbWxOUmxkY09TZ1pETEs4VW5DU2dB
MU9ndVo5ODliRnljOHRPT0VJYjB4VVNmUFN6M0xQU0NueVl6NjhhRGptS1ZlTkgtaWc4NTdPU2N5
V2JHeUV5M0JpdzY0cXVuM2p1VWxOV3NKM3puZ2tPZHRlWVd5dHg1UXI0WEtOczZSLU15eXE3MktV
cDAybUpEWmlpeWlnbHhNTF9pMy1fQ2VlY0N3IiwKLSAgICBlOiAiQVFBQiIKLX07Ci0KLXZhciBw
cml2YXRlS2V5SlNPTiA9IHsKLSAgICBrdHk6ICJSU0EiLAotICAgIGFsZzogIlJTMjU2IiwKLSAg
ICBuOiAicmNDVUN2N09jMUhWYW0xREloQ3pxa25UaFdhd09wOFFMazhaaXkycDEwQnlqUUZDYWpv
Rml5dUFXbC1SMVdYWmFmNHhpdExScmFjVDlhZ3B6SXpjLU1iTFNISUdnV1FHTzIxbEdpSW15NWZ0
Wi1EOGJIQXFSejJ5MTVwekQ0YzRDRW91N1hTU0xEb1JuUjBRRzVNc0RoRDZzMmdWOW13SGtydGtD
eHRNV2RCaS03N2FzOHdHbWxOUmxkY09TZ1pETEs4VW5DU2dBMU9ndVo5ODliRnljOHRPT0VJYjB4
VVNmUFN6M0xQU0NueVl6NjhhRGptS1ZlTkgtaWc4NTdPU2N5V2JHeUV5M0JpdzY0cXVuM2p1VWxO
V3NKM3puZ2tPZHRlWVd5dHg1UXI0WEtOczZSLU15eXE3MktVcDAybUpEWmlpeWlnbHhNTF9pMy1f
Q2VlY0N3IiwKLSAgICBlOiAiQVFBQiIsCi0gICAgZDogImVOTFMzN2FDejdSWFNOUERfRHRMQko2
ajVUOGNTeGR6UkJDalBhSTZXY0dxSnAxNmxxM1VUd3VvRExBcWxBOW9HWW0yMzhkc0lXcHV1Y1Bf
bFF0YldlLTdTcHhvSTZfdm1ZR2Y3WVZVSHYxLURGOXFpT21Tck1tZHhNblZPellYWThSYVQ2dGhQ
am5fSjVjZkxWMnhJX0x3c3JNdG1wZFN5TmxnWDB6VFVod3R1YWhnQUtNRUNoWWpIMkVuakhkSHc2
c1kyLXdBcGRjUUk3VUxFMG9vNVJ6YlFacG11aGNOOWhpQmMwTDNoaEYwcW81MG1ibDAyXzY1X0dR
N0RwVmtYQnhOZ1JCTHpsUGFibXp6RzJvQWhmZWZMZ1ltU0Mxb3BhQ2tYRTZ2UldRTldOTDQ1UlpO
WkZZTTN1b0pnaE9NcUdlb2NNMEJwamRDaEhyUE9sRnZTUSIsCi0gICAgcDogIjRtaVR1QWpLTWVI
NXVKNUtCMzk3UVV3aGJrWUVnU2JjQTJtaWZtU2t2RTIwMThnYjU1cWtCSEsxZVZyeWYxX200M0xO
bGM2T19hazZnZnpkWkladlM1TkNHalBsMHEwOXBsVXB1OHFGT1NzcEJ3QTY3cUdINzZsRmxaTG5f
ZDR5Z2xTN3dmTHJ1NF81WXM4cUxMcy1EcVZMdml3cG9zT255eVdxd001QVhwMCIsCi0gICAgcTog
InhIWXJ6a2l2dG1uel9zR2NobldHYzBxLXBET2tLaWNwdFJwdjJwTUZJSVh4bkZYNWFNZUVYSVpq
VnVqWHR3VXkxVWxGSU4yR1pKU3Z5NUtKNzltdV9YeU5uRkhNemVkSC1BM2VlM3U4aDFVVXJaRi12
VXUxX2U0VV94NjdOTjFkZWR6VVNLeW5ON3BGbDNPa3VTaE1CV0dWLWN3ek9QZGNWQWZWdVpseFVN
YyIsCi0gICAgZHA6ICJmQnpEellEVUJtQlFHb3A3SG4wZHZmX1QyN1Y2UnFwY3RXbzA3NENRWmNG
YlAyYXRGVnRLU2ozdmlXVDN4aWQyVkh6Y2dpREhkZnBNM25FVmxFTzF3d0lvbkdDU3ZkakdFT1pp
aUZWT2pyWkFPVnhBOGd1T2p5eUZ2cWJYa2UwNlZ3UElJVnZmS2VTVTJ6dWhiUF9fMXR0NkZfZnhv
dzRLYjJ4b25HVDBHR2siLAotICAgIGRxOiAiam1FMkRpSVBkaHdEZ0xYQVFwSWFCcVE4MWJPM1hm
VlRfTFJVTEF3d3d3bFB1UVYxNDhIMDR6bGg5VEo2WTJHWkhZb2tWMVUwZU9CcEp4ZmtiN2RMWXRw
SnB1aUJqUmY0eUlVRW9HbGtrSV9RbEpuRlNGci1ZakdSZGZOSHFXQmt4bFNNWkw3NzBSOW1JQVRu
ZEdrSDd6NXgtcjlLd0JaRkM0RkNHMmhnX3pFIiwKLSAgICBxaTogIllDWF9wTHdiTUJBMVRoVkgw
V2N3bW55dHFOY3JNQ0V3VG03QnlBMmVVNm5XYlFyVUx2ZjdtOV9remZMVWNqc25wQVZsQlFHNUpN
WE15MFNxNHB0d2J5d3NhNS1HOEtBT09PUjJMM3Y0aEMtRXlzOWZ0Z0ZNXzNpMG80MGVlUUg0YjNo
YVBibnRySWVNZzhJemxPdVZZS2Y5LTJRdUtEb1dlUmRkN05zZHhUayIKLX07Ci0KLWRlYnVnKCJJ
bXBvcnRpbmcgYSBwdWJsaWMga2V5Li4uIik7Ci1jcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtl
eSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoSlNPTi5zdHJpbmdpZnkocHVibGljS2V5SlNPTikp
LCBudWxsLCBleHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSJdKS50aGVuKGZ1bmN0aW9uKHJl
c3VsdCkgewotICAgIHB1YmxpY0tleSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgicHVibGljS2V5
LnRvU3RyaW5nKCkiLCAiJ1tvYmplY3QgQ3J5cHRvS2V5XSciKTsKLSAgICBzaG91bGRCZSgicHVi
bGljS2V5LnR5cGUiLCAiJ3B1YmxpYyciKTsKLSAgICBzaG91bGRCZSgicHVibGljS2V5LnVzYWdl
cyIsICJbJ3NpZ24nLCd2ZXJpZnknXSIpOwotICAgIHNob3VsZEJlKCJwdWJsaWNLZXkuYWxnb3Jp
dGhtLm5hbWUiLCAiJ1JTQVNTQS1QS0NTMS12MV81JyIpOwotICAgIHNob3VsZEJlKCJwdWJsaWNL
ZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGgiLCAiMjA0OCIpOwotICAgIHNob3VsZEJlKCJieXRl
c1RvSGV4U3RyaW5nKHB1YmxpY0tleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIiwgIicwMTAw
MDEnIik7Ci0gICAgc2hvdWxkQmUoInB1YmxpY0tleS5hbGdvcml0aG0uaGFzaC5uYW1lIiwgIidT
SEEtMjU2JyIpOwotICAgIGRlYnVnKCJcbkltcG9ydGluZyBhIHByaXZhdGUga2V5Li4uIik7Ci0g
ICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWlu
dDhBcnJheShKU09OLnN0cmluZ2lmeShwcml2YXRlS2V5SlNPTikpLCBudWxsLCBleHRyYWN0YWJs
ZSwgWyJzaWduIiwgInZlcmlmeSJdKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAg
cHJpdmF0ZUtleSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgicHJpdmF0ZUtleS50b1N0cmluZygp
IiwgIidbb2JqZWN0IENyeXB0b0tleV0nIik7Ci0gICAgc2hvdWxkQmUoInByaXZhdGVLZXkudHlw
ZSIsICIncHJpdmF0ZSciKTsKLSAgICBzaG91bGRCZSgicHJpdmF0ZUtleS51c2FnZXMiLCAiWydz
aWduJywndmVyaWZ5J10iKTsKLSAgICBzaG91bGRCZSgicHJpdmF0ZUtleS5hbGdvcml0aG0ubmFt
ZSIsICInUlNBU1NBLVBLQ1MxLXYxXzUnIik7Ci0gICAgc2hvdWxkQmUoInByaXZhdGVLZXkuYWxn
b3JpdGhtLm1vZHVsdXNMZW5ndGgiLCAiMjA0OCIpOwotICAgIHNob3VsZEJlKCJieXRlc1RvSGV4
U3RyaW5nKHByaXZhdGVLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSIsICInMDEwMDAxJyIp
OwotICAgIHNob3VsZEJlKCJwcml2YXRlS2V5LmFsZ29yaXRobS5oYXNoLm5hbWUiLCAiJ1NIQS0y
NTYnIik7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYXNzYS1wa2Nz
MS12MV81LXNpZ24tdmVyaWZ5LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LXNpZ24tdmVyaWZ5LWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMjIwOTE5KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1
YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1zaWduLXZlcmlmeS1leHBlY3RlZC50eHQJKG5vbmV4aXN0
ZW50KQpAQCAtMSwyMiArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDE6IFdlYktpdFN1
YnRsZUNyeXB0byBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIFN1YnRsZUNyeXB0byBpbnN0ZWFk
LgotVGVzdCBpbXBvcnRpbmcgYW4gUlNBIGtleSBmb3IgUlNBU1NBLVBLQ1MxLXYxXzUuCi0KLU9u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1JbXBvcnRpbmcgYSBwdWJsaWMga2V5Li4uCi0K
LUltcG9ydGluZyBhIHByaXZhdGUga2V5Li4uCi0KLVNpZ25pbmcgc29tZSB0ZXh0Li4uCi1QQVNT
IGJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoc2lnbmF0dXJlKSkgaXMgJzBmZDlhOGFl
ZjRjYzE4NzZjMGI3NjI1NDUzMzZjNmQxZmIzMTVhZTE2YWU0YjVlNGJmMzRkMzg0ZDg1ODVlYTdh
MDFlNzZlYTA5ZWU3ZjdlZThkMWMxMjJlN2RkMTViN2M5NGE1NzNiMmFhMDcyMDNlOGQxM2JjNmZk
MTYxNTZjZDhlNWYwYzE1YTE1ZGNjYjYyZDE1MjEyN2ZjYTA5ODgyZmI1M2JjM2U2MGFiNTg2ZDE1
Yjk1Y2Y0MTFlM2FhYjRhMWMyMzFhN2U5MWFhYjA5ZWUzZDRiMTNkMTFlOTc1MDVkZGZmNzc2ODM0
NzBkYTUxMGVlNzZlOGJkNTMwYzU2YTg1ZjkwMTYyNmE1YTcxMGY3MTZmMTEzZGZlOWNmNmM0NzNl
ZTE2ZmEyNDhhZWEzNDgwYTEwMzNhYmUzMGY0YzEyNDMyODlhNjYxZTY0ZDc4MThiNTU2OTgyODA2
ODgwOTcxMzU5NjhjNmQ0YjAyOTQ5NmQ4NWNhYjJhNjdlNDY5NjczNzc4MWY3MGU0MzkyYzdkZjcx
YmJkNmM5MjQ2NTk0N2YwMjlhMWRlNDgxNjBhY2VkMTFiNTcyMWIxY2QyNTAzOWZlMmMxNmMyYjM4
ZGU3M2RmM2I5YTgzZTNlYTc1NWZkMGNmZTUxY2EwNmI2MWZhZGY2ZDg0Njc3Zjk1JwotCi1WZXJp
ZnlpbmcgdGhlIHNpZ25hdHVyZS4uLgotUEFTUyB2ZXJpZmljYXRpb25SZXN1bHQgaXMgdHJ1ZQot
Ci1WZXJpZnlpbmcgYSBiYWQgc2lnbmF0dXJlLi4uCi1QQVNTIHZlcmlmaWNhdGlvblJlc3VsdCBp
cyBmYWxzZQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRF
Ci0KSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhc3NhLXBrY3MxLXYx
XzUtc2lnbi12ZXJpZnkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Vi
a2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LXNpZ24tdmVyaWZ5Lmh0bWwJKHJldmlzaW9uIDIy
MDkxOSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhc3NhLXBrY3MxLXYx
XzUtc2lnbi12ZXJpZnkuaHRtbAkobm9uZXhpc3RlbnQpCkBAIC0xLDY5ICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9jb21t
b24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwv
cD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRl
c3QgaW1wb3J0aW5nIGFuIFJTQSBrZXkgZm9yIFJTQVNTQS1QS0NTMS12MV81LiIpOwotCi1qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKLQotdmFyIHB1Ymxp
Y0tleUpTT04gPSB7Ci0gICAga3R5OiAiUlNBIiwKLSAgICBhbGc6ICJSUzI1NiIsCi0gICAgbjog
QmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIkFEQzA5NDBBRkVDRTcz
NTFENTZBNkQ0MzIyMTBCM0FBNDlEMzg1NjZCMDNBOUYxMDJFNEYxOThCMkRBOUQ3NDA3MjhEMDE0
MjZBM0EwNThCMkI4MDVBNUY5MUQ1NjVEOTY5RkUzMThBRDJEMUFEQTcxM0Y1QTgyOUNDOENEQ0Y4
QzZDQjQ4NzIwNjgxNjQwNjNCNkQ2NTFBMjIyNkNCOTdFRDY3RTBGQzZDNzAyQTQ3M0RCMkQ3OUE3
MzBGODczODA4NEEyRUVENzQ5MjJDM0ExMTlEMUQxMDFCOTMyQzBFMTBGQUIzNjgxNUY2NkMwNzky
QkI2NDBCMUI0QzU5RDA2MkZCQkVEQUIzQ0MwNjlBNTM1MTk1RDcwRTRBMDY0MzJDQUYxNDlDMjRB
MDAzNTNBMEI5OUY3Q0Y1QjE3MjczQ0I0RTM4NDIxQkQzMTUxMjdDRjRCM0RDQjNEMjBBN0M5OENG
QUYxQTBFMzk4QTU1RTM0N0ZBMjgzQ0U3QjM5MjczMjU5QjFCMjEzMkRDMThCMEVCOEFBRTlGNzhF
RTUyNTM1NkIwOURGMzlFMDkwRTc2RDc5ODVCMkI3MUU1MEFGODVDQTM2Q0U5MUY4Q0NCMkFCQkQ4
QTUyOUQzNjk4OTBEOThBMkNBMjgyNUM0QzJGRjhCN0ZCRjA5RTc5QzBCIikpLAotICAgIGU6IEJh
c2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMTAwMDEiKSksCi19Owot
Ci12YXIgcHJpdmF0ZUtleUpTT04gPSB7Ci0gICAga3R5OiAiUlNBIiwKLSAgICBhbGc6ICJSUzI1
NiIsCi0gICAgbjogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIkFE
QzA5NDBBRkVDRTczNTFENTZBNkQ0MzIyMTBCM0FBNDlEMzg1NjZCMDNBOUYxMDJFNEYxOThCMkRB
OUQ3NDA3MjhEMDE0MjZBM0EwNThCMkI4MDVBNUY5MUQ1NjVEOTY5RkUzMThBRDJEMUFEQTcxM0Y1
QTgyOUNDOENEQ0Y4QzZDQjQ4NzIwNjgxNjQwNjNCNkQ2NTFBMjIyNkNCOTdFRDY3RTBGQzZDNzAy
QTQ3M0RCMkQ3OUE3MzBGODczODA4NEEyRUVENzQ5MjJDM0ExMTlEMUQxMDFCOTMyQzBFMTBGQUIz
NjgxNUY2NkMwNzkyQkI2NDBCMUI0QzU5RDA2MkZCQkVEQUIzQ0MwNjlBNTM1MTk1RDcwRTRBMDY0
MzJDQUYxNDlDMjRBMDAzNTNBMEI5OUY3Q0Y1QjE3MjczQ0I0RTM4NDIxQkQzMTUxMjdDRjRCM0RD
QjNEMjBBN0M5OENGQUYxQTBFMzk4QTU1RTM0N0ZBMjgzQ0U3QjM5MjczMjU5QjFCMjEzMkRDMThC
MEVCOEFBRTlGNzhFRTUyNTM1NkIwOURGMzlFMDkwRTc2RDc5ODVCMkI3MUU1MEFGODVDQTM2Q0U5
MUY4Q0NCMkFCQkQ4QTUyOUQzNjk4OTBEOThBMkNBMjgyNUM0QzJGRjhCN0ZCRjA5RTc5QzBCIikp
LAotICAgIGU6IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMTAw
MDEiKSksCi0gICAgZDogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXko
Ijc4RDJEMkRGQjY4MkNGQjQ1NzQ4RDNDM0ZDM0I0QjA0OUVBM0U1M0YxQzRCMTc3MzQ0MTBBMzNE
QTIzQTU5QzFBQTI2OUQ3QTk2QURENDRGMEJBODBDQjAyQTk0MEY2ODE5ODlCNkRGQzc2QzIxNkE2
RUI5QzNGRjk1MEI1QjU5RUZCQjRBOUM2ODIzQUZFRjk5ODE5RkVEODU1NDFFRkQ3RTBDNUY2QTg4
RTk5MkFDQzk5REM0QzlENTNCMzYxNzYzQzQ1QTRGQUI2MTNFMzlGRjI3OTcxRjJENURCMTIzRjJG
MEIyQjMyRDlBOTc1MkM4RDk2MDVGNENEMzUyMUMyREI5QTg2MDAwQTMwNDBBMTYyMzFGNjEyNzhD
Nzc0N0MzQUIxOERCRUMwMEE1RDcxMDIzQjUwQjEzNEEyOEU1MUNEQjQxOUE2NkJBMTcwREY2MTg4
MTczNDJGNzg2MTE3NEFBOEU3NDk5Qjk3NERCRkVCOUZDNjQzQjBFOTU2NDVDMUM0RDgxMTA0QkNF
NTNEQTZFNkNGMzFCNkEwMDg1Rjc5RjJFMDYyNjQ4MkQ2OEE1QTBBNDVDNEVBRjQ1NjQwRDU4RDJG
OEU1MTY0RDY0NTYwQ0RFRUEwOTgyMTM4Q0E4NjdBODcwQ0QwMUE2Mzc0Mjg0N0FDRjNBNTE2RjQ5
IikpLAotICAgIHA6IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCJF
MjY4OTNCODA4Q0EzMUUxRjlCODlFNEEwNzdGN0I0MTRDMjE2RTQ2MDQ4MTI2REMwMzY5QTI3RTY0
QTRCQzREQjREN0M4MUJFNzlBQTQwNDcyQjU3OTVBRjI3RjVGRTZFMzcyQ0Q5NUNFOEVGREE5M0E4
MUZDREQ2NDg2NkY0QjkzNDIxQTMzRTVEMkFEM0RBNjU1MjlCQkNBODUzOTJCMjkwNzAwM0FFRUEx
ODdFRkE5NDU5NTkyRTdGRERFMzI4MjU0QkJDMUYyRUJCQjhGRjk2MkNGMkEyQ0JCM0UwRUE1NEJC
RTJDMjlBMkMzQTdDQjI1QUFDMENFNDA1RTlEIikpLAotICAgIHE6IEJhc2U2NFVSTC5zdHJpbmdp
ZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCJDNDc2MkJDRTQ4QUZCNjY5RjNGRUMxOUM4Njc1ODY3
MzRBQkVBNDMzQTQyQTI3MjlCNTFBNkZEQTkzMDUyMDg1RjE5QzU1Rjk2OEM3ODQ1Qzg2NjM1NkU4
RDdCNzA1MzJENTQ5NDUyMEREODY2NDk0QUZDQjkyODlFRkQ5QUVGRDdDOEQ5QzUxQ0NDREU3NDdG
ODBEREU3QjdCQkM4NzU1MTRBRDkxN0VCRDRCQjVGREVFMTRGRjFFQkIzNERENUQ3OURDRDQ0OEFD
QTczN0JBNDU5NzczQTRCOTI4NEMwNTYxOTVGOUNDMzMzOEY3NUM1NDA3RDVCOTk5NzE1MEM3Iikp
LAotICAgIGRwOiBCYXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiN0Mx
Q0MzQ0Q4MEQ0MDY2MDUwMUE4QTdCMUU3RDFEQkRGRkQzREJCNTdBNDZBQTVDQjU2QTM0RUY4MDkw
NjVDMTVCM0Y2NkFEMTU1QjRBNEEzREVGODk2NEY3QzYyNzc2NTQ3Q0RDODIyMEM3NzVGQTRDREU3
MTE1OTQ0M0I1QzMwMjI4OUM2MDkyQkREOEM2MTBFNjYyODg1NTRFOEVCNjQwMzk1QzQwRjIwQjhF
OEYyQzg1QkVBNkQ3OTFFRDNBNTcwM0M4MjE1QkRGMjlFNDk0REIzQkExNkNGRkZGRDZEQjdBMTdG
N0YxQTMwRTBBNkY2QzY4OUM2NEY0MTg2OSIpKSwKLSAgICBkcTogQmFzZTY0VVJMLnN0cmluZ2lm
eShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjhFNjEzNjBFMjIwRjc2MUMwMzgwQjVDMDQyOTIxQTA2
QTQzQ0Q1QjNCNzVERjU1M0ZDQjQ1NDJDMEMzMEMzMDk0RkI5MDU3NUUzQzFGNEUzMzk2MUY1MzI3
QTYzNjE5OTFEOEEyNDU3NTUzNDc4RTA2OTI3MTdFNDZGQjc0QjYyREE0OUE2RTg4MThEMTdGOEM4
ODUwNEEwNjk2NDkwOEZEMDk0OTlDNTQ4NUFGRTYyMzE5MTc1RjM0N0E5NjA2NEM2NTQ4QzY0QkVG
QkQxMUY2NjIwMDRFNzc0NjkwN0VGM0U3MUZBQkY0QUMwMTY0NTBCODE0MjFCNjg2MEZGMzEiKSks
Ci0gICAgcWk6IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCI2MDI1
RkZBNEJDMUIzMDEwMzU0RTE1NDdEMTY3MzA5QTdDQURBOEQ3MkIzMDIxMzA0RTZFQzFDODBEOUU1
M0E5RDY2RDBBRDQyRUY3RkI5QkRGRTRDREYyRDQ3MjNCMjdBNDA1NjUwNTAxQjkyNEM1Q0NDQjQ0
QUFFMjlCNzA2RjJDMkM2QjlGODZGMEEwMEUzOEU0NzYyRjdCRjg4NDJGODRDQUNGNUZCNjAxNENG
Rjc4QjRBMzhEMUU3OTAxRjg2Rjc4NUEzREI5RURBQzg3OEM4M0MyMzM5NEVCOTU2MEE3RkRGQjY0
MkUyODNBMTY3OTE3NURFQ0RCMURDNTM5IikpCi19OwotCi12YXIgZGF0YSA9IGFzY2lpVG9VaW50
OEFycmF5KCJIZWxsbywgd29ybGQhIik7Ci0KLWRlYnVnKCJJbXBvcnRpbmcgYSBwdWJsaWMga2V5
Li4uIik7Ci1jcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4
QXJyYXkoSlNPTi5zdHJpbmdpZnkocHVibGljS2V5SlNPTikpLCBudWxsLCBleHRyYWN0YWJsZSwg
WyJzaWduIiwgInZlcmlmeSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHB1YmxpY0tl
eSA9IHJlc3VsdDsKLSAgICBkZWJ1ZygiXG5JbXBvcnRpbmcgYSBwcml2YXRlIGtleS4uLiIpOwot
ICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1Vp
bnQ4QXJyYXkoSlNPTi5zdHJpbmdpZnkocHJpdmF0ZUtleUpTT04pKSwgbnVsbCwgZXh0cmFjdGFi
bGUsIFsic2lnbiIsICJ2ZXJpZnkiXSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAg
IHByaXZhdGVLZXkgPSByZXN1bHQ7Ci0gICAgZGVidWcoIlxuU2lnbmluZyBzb21lIHRleHQuLi4i
KTsKLSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS5zaWduKHsgbmFtZTogIlJTQVNTQS1Q
S0NTMS12MV81IiwgaGFzaDogIlNIQS0yNTYiIH0sIHByaXZhdGVLZXksIGRhdGEpOwotfSkudGhl
bihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBzaWduYXR1cmUgPSByZXN1bHQ7Ci0gICAgc2hvdWxk
QmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoc2lnbmF0dXJlKSkiLCAiJzBmZDlh
OGFlZjRjYzE4NzZjMGI3NjI1NDUzMzZjNmQxZmIzMTVhZTE2YWU0YjVlNGJmMzRkMzg0ZDg1ODVl
YTdhMDFlNzZlYTA5ZWU3ZjdlZThkMWMxMjJlN2RkMTViN2M5NGE1NzNiMmFhMDcyMDNlOGQxM2Jj
NmZkMTYxNTZjZDhlNWYwYzE1YTE1ZGNjYjYyZDE1MjEyN2ZjYTA5ODgyZmI1M2JjM2U2MGFiNTg2
ZDE1Yjk1Y2Y0MTFlM2FhYjRhMWMyMzFhN2U5MWFhYjA5ZWUzZDRiMTNkMTFlOTc1MDVkZGZmNzc2
ODM0NzBkYTUxMGVlNzZlOGJkNTMwYzU2YTg1ZjkwMTYyNmE1YTcxMGY3MTZmMTEzZGZlOWNmNmM0
NzNlZTE2ZmEyNDhhZWEzNDgwYTEwMzNhYmUzMGY0YzEyNDMyODlhNjYxZTY0ZDc4MThiNTU2OTgy
ODA2ODgwOTcxMzU5NjhjNmQ0YjAyOTQ5NmQ4NWNhYjJhNjdlNDY5NjczNzc4MWY3MGU0MzkyYzdk
ZjcxYmJkNmM5MjQ2NTk0N2YwMjlhMWRlNDgxNjBhY2VkMTFiNTcyMWIxY2QyNTAzOWZlMmMxNmMy
YjM4ZGU3M2RmM2I5YTgzZTNlYTc1NWZkMGNmZTUxY2EwNmI2MWZhZGY2ZDg0Njc3Zjk1JyIpOwot
Ci0gICAgZGVidWcoIlxuVmVyaWZ5aW5nIHRoZSBzaWduYXR1cmUuLi4iKTsKLSAgICByZXR1cm4g
Y3J5cHRvLndlYmtpdFN1YnRsZS52ZXJpZnkoeyBuYW1lOiAiUlNBU1NBLVBLQ1MxLXYxXzUiLCBo
YXNoOiAiU0hBLTI1NiIgfSwgcHVibGljS2V5LCBzaWduYXR1cmUsIGRhdGEpOwotfSkudGhlbihm
dW5jdGlvbihyZXN1bHQpIHsKLSAgICB2ZXJpZmljYXRpb25SZXN1bHQgPSByZXN1bHQ7Ci0gICAg
c2hvdWxkQmUoInZlcmlmaWNhdGlvblJlc3VsdCIsICJ0cnVlIik7Ci0gICAgZGVidWcoIlxuVmVy
aWZ5aW5nIGEgYmFkIHNpZ25hdHVyZS4uLiIpOwotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3Vi
dGxlLnZlcmlmeSh7IG5hbWU6ICJSU0FTU0EtUEtDUzEtdjFfNSIsIGhhc2g6ICJTSEEtMjU2IiB9
LCBwdWJsaWNLZXksIG5ldyBVaW50OEFycmF5KDI1NiksIGRhdGEpOwotfSkudGhlbihmdW5jdGlv
bihyZXN1bHQpIHsKLSAgICB2ZXJpZmljYXRpb25SZXN1bHQgPSByZXN1bHQ7Ci0gICAgc2hvdWxk
QmUoInZlcmlmaWNhdGlvblJlc3VsdCIsICJmYWxzZSIpOwotICAgIGZpbmlzaEpTVGVzdCgpOwot
fSk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvY3J5
cHRvL3dlYmtpdFN1YnRsZS9zaGEtMS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtMS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIy
MDkxOSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTEtZXhwZWN0ZWQu
dHh0CShub25leGlzdGVudCkKQEAgLTEsMTcgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDE6IFdlYktpdFN1YnRsZUNyeXB0byBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIFN1YnRsZUNy
eXB0byBpbnN0ZWFkLgotVGVzdCBjcnlwdG8ud2Via2l0U3VidGxlLmRpZ2VzdC4KLQotT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVNIQTEgb2YgW10KLVBBU1MgYnl0ZXNUb0hleFN0cmlu
ZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSBpcyAnZGEzOWEzZWU1ZTZiNGIwZDMyNTViZmVmOTU2
MDE4OTBhZmQ4MDcwOScKLVNIQTEgb2YgWzB4MF0KLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhuZXcg
VWludDhBcnJheShkaWdlc3QpKSBpcyAnNWJhOTNjOWRiMGNmZjkzZjUyYjUyMWQ3NDIwZTQzZjZl
ZGEyNzg0ZicKLVNIQTEgb2YgWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwXQotUEFT
UyBieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkpIGlzICcyYzdlN2MzODRm
NzgyOTY5NDI4MmIxZTNhNjIxNmRlZjgwODJkMDU1JwotUEFTUyBjcnlwdG8ud2Via2l0U3VidGxl
LmdlbmVyYXRlS2V5KCdzaGEtMScpIHRocmV3IGV4Y2VwdGlvbiBOb3RTdXBwb3J0ZWRFcnJvcjog
VGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLi4KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Vi
a2l0U3VidGxlL3NoYS0xLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dl
YmtpdFN1YnRsZS9zaGEtMS5odG1sCShyZXZpc2lvbiAyMjA5MTkpCisrKyBMYXlvdXRUZXN0cy9j
cnlwdG8vd2Via2l0U3VidGxlL3NoYS0xLmh0bWwJKG5vbmV4aXN0ZW50KQpAQCAtMSw0NCArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2Ny
aXB0aW9uKCJUZXN0IGNyeXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0LiIpOwotCi1qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKLQotUHJvbWlzZS5yZXNvbHZlKG51bGwpLnRoZW4oZnVuY3Rpb24oKSB7Ci0g
ICAgZGVidWcoIlNIQTEgb2YgW10iKTsKLSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS5k
aWdlc3QoJ3NoYS0xJywgbmV3IFVpbnQ4QXJyYXkoW10pKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVz
dWx0KSB7Ci0gICAgZGlnZXN0ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3Ry
aW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkpIiwgIidkYTM5YTNlZTVlNmI0YjBkMzI1NWJmZWY5
NTYwMTg5MGFmZDgwNzA5JyIpOwotCi0gICAgZGVidWcoIlNIQTEgb2YgWzB4MF0iKQotICAgIHJl
dHVybiBjcnlwdG8ud2Via2l0U3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0xJ30sIG5ldyBVaW50
OEFycmF5KFswXSkpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBkaWdlc3QgPSBy
ZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGln
ZXN0KSkiLCAiJzViYTkzYzlkYjBjZmY5M2Y1MmI1MjFkNzQyMGU0M2Y2ZWRhMjc4NGYnIik7Ci0K
LSAgICBkZWJ1ZygiU0hBMSBvZiBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBdIik7
Ci0gICAgdmFyIGRhdGEgPSBuZXcgVWludDhBcnJheShbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywg
OCwgOSwgMTBdKTsKLSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS5kaWdlc3Qoe25hbWU6
ICdzaGEtMSd9LCBkYXRhKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgZGlnZXN0
ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5
KGRpZ2VzdCkpIiwgIicyYzdlN2MzODRmNzgyOTY5NDI4MmIxZTNhNjIxNmRlZjgwODJkMDU1JyIp
OwotCi0gICAgLy8gQWxsIFNIQS0xIGNhbiBkbyBpcyBkaWdlc3QuCi0gICAgc2hvdWxkVGhyb3co
ImNyeXB0by53ZWJraXRTdWJ0bGUuZ2VuZXJhdGVLZXkoJ3NoYS0xJykiKTsKLSAgICBmaW5pc2hK
U1Rlc3QoKTsKLX0pOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91
dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTIyNC1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtMjI0LWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMjIwOTE5KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9z
aGEtMjI0LWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCkBAIC0xLDE2ICswLDAgQEAKLUNPTlNP
TEUgTUVTU0FHRTogbGluZSAxOiBXZWJLaXRTdWJ0bGVDcnlwdG8gaXMgZGVwcmVjYXRlZC4gUGxl
YXNlIHVzZSBTdWJ0bGVDcnlwdG8gaW5zdGVhZC4KLVRlc3QgY3J5cHRvLndlYmtpdFN1YnRsZS5k
aWdlc3QuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1TSEEyMjQgb2YgW10KLVBB
U1MgYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSBpcyAnZDE0YTAyOGMy
YTNhMmJjOTQ3NjEwMmJiMjg4MjM0YzQxNWEyYjAxZjgyOGVhNjJhYzViM2U0MmYnCi1TSEEyMjQg
b2YgWzB4MF0KLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSBp
cyAnZmZmOTI5MmI0MjAxNjE3YmRjNGQzMDUzZmNlMDI3MzQxNjZhNjgzZDdkODU4YTdmNWY1OWIw
NzMnCi1TSEEyMjQgb2YgWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwXQotUEFTUyBi
eXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkpIGlzICc3NjdkMGNkYzExMDc5
YmE4ZGNhMjc2ZGY1YzRiODU1MDdkZTY3ZGNlNDdlZGE0Y2Q5MTk2ZDMxMicKLVBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0
cy9jcnlwdG8vd2Via2l0U3VidGxlL3NoYS0yMjQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3NoYS0yMjQuaHRtbAkocmV2aXNpb24gMjIwOTE5KQor
KysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtMjI0Lmh0bWwJKG5vbmV4aXN0
ZW50KQpAQCAtMSw0MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxi
b2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
LQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IGNyeXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0
LiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotUHJvbWlzZS5yZXNvbHZlKG51bGwpLnRo
ZW4oZnVuY3Rpb24oKSB7Ci0gICAgZGVidWcoIlNIQTIyNCBvZiBbXSIpOwotICAgIHJldHVybiBj
cnlwdG8ud2Via2l0U3VidGxlLmRpZ2VzdCgnc2hhLTIyNCcsIG5ldyBVaW50OEFycmF5KFtdKSk7
Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGRpZ2VzdCA9IHJlc3VsdDsKLSAgICBz
aG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSIsICInZDE0
YTAyOGMyYTNhMmJjOTQ3NjEwMmJiMjg4MjM0YzQxNWEyYjAxZjgyOGVhNjJhYzViM2U0MmYnIik7
Ci0KLSAgICBkZWJ1ZygiU0hBMjI0IG9mIFsweDBdIikKLSAgICByZXR1cm4gY3J5cHRvLndlYmtp
dFN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtMjI0J30sIG5ldyBVaW50OEFycmF5KFswXSkpOwot
fSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBkaWdlc3QgPSByZXN1bHQ7Ci0gICAgc2hv
dWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkiLCAiJ2ZmZjky
OTJiNDIwMTYxN2JkYzRkMzA1M2ZjZTAyNzM0MTY2YTY4M2Q3ZDg1OGE3ZjVmNTliMDczJyIpOwot
Ci0gICAgZGVidWcoIlNIQTIyNCBvZiBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBd
Iik7Ci0gICAgdmFyIGRhdGEgPSBuZXcgVWludDhBcnJheShbMCwgMSwgMiwgMywgNCwgNSwgNiwg
NywgOCwgOSwgMTBdKTsKLSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS5kaWdlc3Qoe25h
bWU6ICdzaGEtMjI0J30sIGRhdGEpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBk
aWdlc3QgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4
QXJyYXkoZGlnZXN0KSkiLCAiJzc2N2QwY2RjMTEwNzliYThkY2EyNzZkZjVjNGI4NTUwN2RlNjdk
Y2U0N2VkYTRjZDkxOTZkMzEyJyIpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3Njcmlw
dD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1
YnRsZS9zaGEtMjU2LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlw
dG8vd2Via2l0U3VidGxlL3NoYS0yNTYtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMjA5MTkpCisr
KyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3NoYS0yNTYtZXhwZWN0ZWQudHh0CShu
b25leGlzdGVudCkKQEAgLTEsMTYgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFdl
YktpdFN1YnRsZUNyeXB0byBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIFN1YnRsZUNyeXB0byBp
bnN0ZWFkLgotVGVzdCBjcnlwdG8ud2Via2l0U3VidGxlLmRpZ2VzdC4KLQotT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgotCi0KLVNIQTI1NiBvZiBbXQotUEFTUyBieXRlc1RvSGV4U3RyaW5nKG5l
dyBVaW50OEFycmF5KGRpZ2VzdCkpIGlzICdlM2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjky
NDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4NTJiODU1JwotU0hBMjU2IG9mIFsweDBdCi1QQVNT
IGJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkgaXMgJzZlMzQwYjljZmZi
MzdhOTg5Y2E1NDRlNmJiNzgwYTJjNzg5MDFkM2ZiMzM3Mzg3Njg1MTFhMzA2MTdhZmEwMWQnCi1T
SEEyNTYgb2YgWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwXQotUEFTUyBieXRlc1Rv
SGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkpIGlzICc3OGE2MjczMTAzZDE3YzM5YTBi
NjEyNmUyMjZjZWM3MGUzMzMzN2Y0YmM2YTM4MDY3NDAxYjU0YTMzZTc4ZWFkJwotUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRl
c3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTI1Ni5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTI1Ni5odG1sCShyZXZpc2lvbiAyMjA5MTkp
CisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3NoYS0yNTYuaHRtbAkobm9uZXhp
c3RlbnQpCkBAIC0xLDQxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3QgY3J5cHRvLndlYmtpdFN1YnRsZS5kaWdl
c3QuIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1Qcm9taXNlLnJlc29sdmUobnVsbCku
dGhlbihmdW5jdGlvbigpIHsKLSAgICBkZWJ1ZygiU0hBMjU2IG9mIFtdIik7Ci0gICAgcmV0dXJu
IGNyeXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0KCdzaGEtMjU2JywgbmV3IFVpbnQ4QXJyYXkoW10p
KTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgZGlnZXN0ID0gcmVzdWx0OwotICAg
IHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkpIiwgIidl
M2IwYzQ0Mjk4ZmMxYzE0OWFmYmY0Yzg5OTZmYjkyNDI3YWU0MWU0NjQ5YjkzNGNhNDk1OTkxYjc4
NTJiODU1JyIpOwotCi0gICAgZGVidWcoIlNIQTI1NiBvZiBbMHgwXSIpCi0gICAgcmV0dXJuIGNy
eXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0KHtuYW1lOiAnc2hhLTI1Nid9LCBuZXcgVWludDhBcnJh
eShbMF0pKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgZGlnZXN0ID0gcmVzdWx0
OwotICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkp
IiwgIic2ZTM0MGI5Y2ZmYjM3YTk4OWNhNTQ0ZTZiYjc4MGEyYzc4OTAxZDNmYjMzNzM4NzY4NTEx
YTMwNjE3YWZhMDFkJyIpOwotCi0gICAgZGVidWcoIlNIQTI1NiBvZiBbMCwgMSwgMiwgMywgNCwg
NSwgNiwgNywgOCwgOSwgMTBdIik7Ci0gICAgdmFyIGRhdGEgPSBuZXcgVWludDhBcnJheShbMCwg
MSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBdKTsKLSAgICByZXR1cm4gY3J5cHRvLndlYmtp
dFN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtMjU2J30sIGRhdGEpOwotfSkudGhlbihmdW5jdGlv
bihyZXN1bHQpIHsKLSAgICBkaWdlc3QgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9I
ZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkiLCAiJzc4YTYyNzMxMDNkMTdjMzlhMGI2
MTI2ZTIyNmNlYzcwZTMzMzM3ZjRiYzZhMzgwNjc0MDFiNTRhMzNlNzhlYWQnIik7Ci0gICAgZmlu
aXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3NoYS0zODQtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTM4NC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDIyMDkxOSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0
bGUvc2hhLTM4NC1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSwxNiArMCwwIEBACi1D
T05TT0xFIE1FU1NBR0U6IGxpbmUgMTogV2ViS2l0U3VidGxlQ3J5cHRvIGlzIGRlcHJlY2F0ZWQu
IFBsZWFzZSB1c2UgU3VidGxlQ3J5cHRvIGluc3RlYWQuCi1UZXN0IGNyeXB0by53ZWJraXRTdWJ0
bGUuZGlnZXN0LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotU0hBMzg0IG9mIFtd
Ci1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkgaXMgJzM4YjA2
MGE3NTFhYzk2Mzg0Y2Q5MzI3ZWIxYjFlMzZhMjFmZGI3MTExNGJlMDc0MzRjMGNjN2JmNjNmNmUx
ZGEyNzRlZGViZmU3NmY2NWZiZDUxYWQyZjE0ODk4Yjk1YicKLVNIQTM4NCBvZiBbMHgwXQotUEFT
UyBieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkpIGlzICdiZWMwMjFiNGYz
NjhlMzA2OTEzNGUwMTJjMmI0MzA3MDgzZDNhOWJkZDIwNmUyNGU1ZjBkODZlMTNkNjYzNjY1NTkz
M2VjMmI0MTM0NjU5NjY4MTdhOWMyMDhhMTE3MTcnCi1TSEEzODQgb2YgWzAsIDEsIDIsIDMsIDQs
IDUsIDYsIDcsIDgsIDksIDEwXQotUEFTUyBieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5
KGRpZ2VzdCkpIGlzICc4OWJmY2Y1NjlhZTRhZjcxODUxMGRhNzhjNjc0MTQxMDlmNTczOWJiNWM0
MGQ1MWM5YzhjNTBlMmIyY2VlODZmMmY4MGM4YjlkNjhmN2MwMTIwMWEwNzE0NTcyZmU2MDInCi1Q
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDog
TGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtMzg0Lmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtMzg0Lmh0bWwJKHJldmlzaW9u
IDIyMDkxOSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTM4NC5odG1s
CShub25leGlzdGVudCkKQEAgLTEsNDEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBjcnlwdG8ud2Via2l0U3Vi
dGxlLmRpZ2VzdC4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLVByb21pc2UucmVzb2x2
ZShudWxsKS50aGVuKGZ1bmN0aW9uKCkgewotICAgIGRlYnVnKCJTSEEzODQgb2YgW10iKTsKLSAg
ICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS5kaWdlc3QoJ3NoYS0zODQnLCBuZXcgVWludDhB
cnJheShbXSkpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBkaWdlc3QgPSByZXN1
bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0
KSkiLCAiJzM4YjA2MGE3NTFhYzk2Mzg0Y2Q5MzI3ZWIxYjFlMzZhMjFmZGI3MTExNGJlMDc0MzRj
MGNjN2JmNjNmNmUxZGEyNzRlZGViZmU3NmY2NWZiZDUxYWQyZjE0ODk4Yjk1YiciKTsKLQotICAg
IGRlYnVnKCJTSEEzODQgb2YgWzB4MF0iKQotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxl
LmRpZ2VzdCh7bmFtZTogJ3NoYS0zODQnfSwgbmV3IFVpbnQ4QXJyYXkoWzBdKSk7Ci19KS50aGVu
KGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGRpZ2VzdCA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgi
Ynl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSIsICInYmVjMDIxYjRmMzY4
ZTMwNjkxMzRlMDEyYzJiNDMwNzA4M2QzYTliZGQyMDZlMjRlNWYwZDg2ZTEzZDY2MzY2NTU5MzNl
YzJiNDEzNDY1OTY2ODE3YTljMjA4YTExNzE3JyIpOwotCi0gICAgZGVidWcoIlNIQTM4NCBvZiBb
MCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBdIik7Ci0gICAgdmFyIGRhdGEgPSBuZXcg
VWludDhBcnJheShbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBdKTsKLSAgICByZXR1
cm4gY3J5cHRvLndlYmtpdFN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtMzg0J30sIGRhdGEpOwot
fSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBkaWdlc3QgPSByZXN1bHQ7Ci0gICAgc2hv
dWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkiLCAiJzg5YmZj
ZjU2OWFlNGFmNzE4NTEwZGE3OGM2NzQxNDEwOWY1NzM5YmI1YzQwZDUxYzljOGM1MGUyYjJjZWU4
NmYyZjgwYzhiOWQ2OGY3YzAxMjAxYTA3MTQ1NzJmZTYwMiciKTsKLSAgICBmaW5pc2hKU1Rlc3Qo
KTsKLX0pOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3Rz
L2NyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTUxMi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtNTEyLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMjIwOTE5KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtNTEy
LWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCkBAIC0xLDE2ICswLDAgQEAKLUNPTlNPTEUgTUVT
U0FHRTogbGluZSAxOiBXZWJLaXRTdWJ0bGVDcnlwdG8gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVz
ZSBTdWJ0bGVDcnlwdG8gaW5zdGVhZC4KLVRlc3QgY3J5cHRvLndlYmtpdFN1YnRsZS5kaWdlc3Qu
Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1TSEE1MTIgb2YgW10KLVBBU1MgYnl0
ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSBpcyAnY2Y4M2UxMzU3ZWVmYjhi
ZGYxNTQyODUwZDY2ZDgwMDdkNjIwZTQwNTBiNTcxNWRjODNmNGE5MjFkMzZjZTljZTQ3ZDBkMTNj
NWQ4NWYyYjBmZjgzMThkMjg3N2VlYzJmNjNiOTMxYmQ0NzQxN2E4MWE1MzgzMjdhZjkyN2RhM2Un
Ci1TSEE1MTIgb2YgWzB4MF0KLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShk
aWdlc3QpKSBpcyAnYjgyNDRkMDI4OTgxZDY5M2FmN2I0NTZhZjhlZmE0Y2FkNjNkMjgyZTE5ZmYx
NDk0MmMyNDZlNTBkOTM1MWQyMjcwNGE4MDJhNzFjMzU4MGI2MzcwZGU0Y2ViMjkzYzMyNGE4NDIz
MzQyNTU3ZDRlNWMzODQzOGYwZTM2OTEwZWUnCi1TSEE1MTIgb2YgWzAsIDEsIDIsIDMsIDQsIDUs
IDYsIDcsIDgsIDksIDEwXQotUEFTUyBieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRp
Z2VzdCkpIGlzICc4ZmZhZWUwY2NjYzE2Mjg1MWZhZjA1MWFlMzg2NjdlZWZkNDIzYzAxNjRjNTAw
NTVmOGFkZTAwYWZjMzcwNWUzY2RlYjk5MDAwMDRiMGU0MjZjYTY2YWI2M2FhM2I5OWIwNzUyNzNm
NDRmZDM3YzIyYTM1NTVjNmZkMWYzN2NjYicKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3Vi
dGxlL3NoYS01MTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL3NoYS01MTIuaHRtbAkocmV2aXNpb24gMjIwOTE5KQorKysgTGF5b3V0VGVzdHMvY3J5
cHRvL3dlYmtpdFN1YnRsZS9zaGEtNTEyLmh0bWwJKG5vbmV4aXN0ZW50KQpAQCAtMSw0MSArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2Ny
aXB0aW9uKCJUZXN0IGNyeXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0LiIpOwotCi1qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKLQotUHJvbWlzZS5yZXNvbHZlKG51bGwpLnRoZW4oZnVuY3Rpb24oKSB7Ci0g
ICAgZGVidWcoIlNIQTUxMiBvZiBbXSIpOwotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxl
LmRpZ2VzdCgnc2hhLTUxMicsIG5ldyBVaW50OEFycmF5KFtdKSk7Ci19KS50aGVuKGZ1bmN0aW9u
KHJlc3VsdCkgewotICAgIGRpZ2VzdCA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgiYnl0ZXNUb0hl
eFN0cmluZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSIsICInY2Y4M2UxMzU3ZWVmYjhiZGYxNTQy
ODUwZDY2ZDgwMDdkNjIwZTQwNTBiNTcxNWRjODNmNGE5MjFkMzZjZTljZTQ3ZDBkMTNjNWQ4NWYy
YjBmZjgzMThkMjg3N2VlYzJmNjNiOTMxYmQ0NzQxN2E4MWE1MzgzMjdhZjkyN2RhM2UnIik7Ci0K
LSAgICBkZWJ1ZygiU0hBNTEyIG9mIFsweDBdIikKLSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1
YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtNTEyJ30sIG5ldyBVaW50OEFycmF5KFswXSkpOwotfSku
dGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBkaWdlc3QgPSByZXN1bHQ7Ci0gICAgc2hvdWxk
QmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkiLCAiJ2I4MjQ0ZDAy
ODk4MWQ2OTNhZjdiNDU2YWY4ZWZhNGNhZDYzZDI4MmUxOWZmMTQ5NDJjMjQ2ZTUwZDkzNTFkMjI3
MDRhODAyYTcxYzM1ODBiNjM3MGRlNGNlYjI5M2MzMjRhODQyMzM0MjU1N2Q0ZTVjMzg0MzhmMGUz
NjkxMGVlJyIpOwotCi0gICAgZGVidWcoIlNIQTUxMiBvZiBbMCwgMSwgMiwgMywgNCwgNSwgNiwg
NywgOCwgOSwgMTBdIik7Ci0gICAgdmFyIGRhdGEgPSBuZXcgVWludDhBcnJheShbMCwgMSwgMiwg
MywgNCwgNSwgNiwgNywgOCwgOSwgMTBdKTsKLSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRs
ZS5kaWdlc3Qoe25hbWU6ICdzaGEtNTEyJ30sIGRhdGEpOwotfSkudGhlbihmdW5jdGlvbihyZXN1
bHQpIHsKLSAgICBkaWdlc3QgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJp
bmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkiLCAiJzhmZmFlZTBjY2NjMTYyODUxZmFmMDUxYWUz
ODY2N2VlZmQ0MjNjMDE2NGM1MDA1NWY4YWRlMDBhZmMzNzA1ZTNjZGViOTkwMDAwNGIwZTQyNmNh
NjZhYjYzYWEzYjk5YjA3NTI3M2Y0NGZkMzdjMjJhMzU1NWM2ZmQxZjM3Y2NiJyIpOwotICAgIGZp
bmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS91bmltcGxlbWVudGVkLXVud3JhcC1jcmFz
aC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1
YnRsZS91bmltcGxlbWVudGVkLXVud3JhcC1jcmFzaC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIy
MDkxOSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvdW5pbXBsZW1lbnRlZC11
bndyYXAtY3Jhc2gtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKQEAgLTEsMTAgKzAsMCBAQAot
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDE3OiBXZWJLaXRTdWJ0bGVDcnlwdG8gaXMgZGVwcmVjYXRl
ZC4gUGxlYXNlIHVzZSBTdWJ0bGVDcnlwdG8gaW5zdGVhZC4KLU1ha2Ugc3VyZSB0aGF0IHVud3Jh
cCBkb2VzIG5vdCBjYXVzZSBhIGNyYXNoLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0K
LQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5k
ZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvdW5pbXBsZW1lbnRlZC11bndyYXAt
Y3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxl
L3VuaW1wbGVtZW50ZWQtdW53cmFwLWNyYXNoLmh0bWwJKHJldmlzaW9uIDIyMDkxOSkKKysrIExh
eW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvdW5pbXBsZW1lbnRlZC11bndyYXAtY3Jhc2gu
aHRtbAkobm9uZXhpc3RlbnQpCkBAIC0xLDI2ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0
bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiTWFrZSBzdXJlIHRoYXQgdW53
cmFwIGRvZXMgbm90IGNhdXNlIGEgY3Jhc2guIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwot
Ci1jcnlwdG8ud2Via2l0U3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiQUVTLUtXIiwgbGVuZ3Ro
OiAyNTZ9LCBmYWxzZSwgWyJ3cmFwS2V5Il0pLnRoZW4oZnVuY3Rpb24od3JhcHBpbmdLZXkpIHsK
LSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogIkhNQUMi
LCBoYXNoOiB7bmFtZTogIlNIQS0yNTYifX0sIHRydWUsIFsic2lnbiIsICJ2ZXJpZnkiXSkudGhl
bihmdW5jdGlvbihhZXNLZXkpIHsKLSAgICAgICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUu
d3JhcEtleSgicmF3IiwgYWVzS2V5LCB3cmFwcGluZ0tleSwge25hbWU6ICJBRVMtS1cifSk7Ci0g
ICAgfSk7Ci19KS50aGVuKGZpbmlzaEpTVGVzdCwgZmluaXNoSlNUZXN0KTsgLy8gT0sgaWYgdGhl
IGJyb3dzZXIgZG9lcyBub3QgY3Jhc2guCi08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS91bndyYXBLZXktY2hlY2stdXNh
Z2UtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRT
dWJ0bGUvdW53cmFwS2V5LWNoZWNrLXVzYWdlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjIwOTE5
KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS91bndyYXBLZXktY2hlY2stdXNh
Z2UtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKQEAgLTEsMTYgKzAsMCBAQAotQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDQwOiBXZWJLaXRTdWJ0bGVDcnlwdG8gaXMgZGVwcmVjYXRlZC4gUGxlYXNl
IHVzZSBTdWJ0bGVDcnlwdG8gaW5zdGVhZC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBLZXkg
dXNhZ2VzIGRvIG5vdCBpbmNsdWRlICd1bndyYXBLZXknCi1WZXJpZnkgdGhhdCB1c2FnZSBpcyBy
ZXNwZWN0ZWQgaW4gdW53cmFwS2V5IG9wZXJhdGlvbi4KLQotT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgotCi0KLUltcG9ydGluZyBSU0Ega2V5cy4uLgotSW1wb3J0aW5nIGFuIEFFUyBrZXkuLi4K
LVdyYXBwaW5nIGl0Li4uCi1VbndyYXBwaW5nIGl0Li4uCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0
bGUudW53cmFwS2V5KCJyYXciLCB3cmFwcGVkS2V5LCBwcml2YXRlS2V5LCB3cmFwQWxnb3JpdGht
LCAiYWVzLWNiYyIsIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCJdKSB0aHJldyBl
eGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3I6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRl
ZC4uCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQoK
UHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS91bndy
YXBLZXktY2hlY2stdXNhZ2UtZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVv
bC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9w
ZXJ0eQpEZWxldGVkOiBzdm46bWltZS10eXBlCiMjIC0xICswLDAgIyMKLXRleHQvcGxhaW4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dl
YmtpdFN1YnRsZS91bndyYXBLZXktY2hlY2stdXNhZ2UuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3Vud3JhcEtleS1jaGVjay11c2FnZS5odG1sCShy
ZXZpc2lvbiAyMjA5MTkpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3Vud3Jh
cEtleS1jaGVjay11c2FnZS5odG1sCShub25leGlzdGVudCkKQEAgLTEsNjcgKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2Nv
bW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+
PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigi
VmVyaWZ5IHRoYXQgdXNhZ2UgaXMgcmVzcGVjdGVkIGluIHVud3JhcEtleSBvcGVyYXRpb24uIik7
Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi12YXIgcHVibGljS2V5SlNPTiA9IHsKLSAgICBr
dHk6ICJSU0EiLAotICAgIGFsZzogIlJTQS1PQUVQIiwKLSAgICBuOiAicmNDVUN2N09jMUhWYW0x
REloQ3pxa25UaFdhd09wOFFMazhaaXkycDEwQnlqUUZDYWpvRml5dUFXbC1SMVdYWmFmNHhpdExS
cmFjVDlhZ3B6SXpjLU1iTFNISUdnV1FHTzIxbEdpSW15NWZ0Wi1EOGJIQXFSejJ5MTVwekQ0YzRD
RW91N1hTU0xEb1JuUjBRRzVNc0RoRDZzMmdWOW13SGtydGtDeHRNV2RCaS03N2FzOHdHbWxOUmxk
Y09TZ1pETEs4VW5DU2dBMU9ndVo5ODliRnljOHRPT0VJYjB4VVNmUFN6M0xQU0NueVl6NjhhRGpt
S1ZlTkgtaWc4NTdPU2N5V2JHeUV5M0JpdzY0cXVuM2p1VWxOV3NKM3puZ2tPZHRlWVd5dHg1UXI0
WEtOczZSLU15eXE3MktVcDAybUpEWmlpeWlnbHhNTF9pMy1fQ2VlY0N3IiwKLSAgICBlOiAiQVFB
QiIKLX07Ci0KLXZhciBwcml2YXRlS2V5SlNPTiA9IHsKLSAgICBrdHk6ICJSU0EiLAotICAgIGFs
ZzogIlJTQS1PQUVQIiwKLSAgICBuOiAicmNDVUN2N09jMUhWYW0xREloQ3pxa25UaFdhd09wOFFM
azhaaXkycDEwQnlqUUZDYWpvRml5dUFXbC1SMVdYWmFmNHhpdExScmFjVDlhZ3B6SXpjLU1iTFNI
SUdnV1FHTzIxbEdpSW15NWZ0Wi1EOGJIQXFSejJ5MTVwekQ0YzRDRW91N1hTU0xEb1JuUjBRRzVN
c0RoRDZzMmdWOW13SGtydGtDeHRNV2RCaS03N2FzOHdHbWxOUmxkY09TZ1pETEs4VW5DU2dBMU9n
dVo5ODliRnljOHRPT0VJYjB4VVNmUFN6M0xQU0NueVl6NjhhRGptS1ZlTkgtaWc4NTdPU2N5V2JH
eUV5M0JpdzY0cXVuM2p1VWxOV3NKM3puZ2tPZHRlWVd5dHg1UXI0WEtOczZSLU15eXE3MktVcDAy
bUpEWmlpeWlnbHhNTF9pMy1fQ2VlY0N3IiwKLSAgICBlOiAiQVFBQiIsCi0gICAgZDogImVOTFMz
N2FDejdSWFNOUERfRHRMQko2ajVUOGNTeGR6UkJDalBhSTZXY0dxSnAxNmxxM1VUd3VvRExBcWxB
OW9HWW0yMzhkc0lXcHV1Y1BfbFF0YldlLTdTcHhvSTZfdm1ZR2Y3WVZVSHYxLURGOXFpT21Tck1t
ZHhNblZPellYWThSYVQ2dGhQam5fSjVjZkxWMnhJX0x3c3JNdG1wZFN5TmxnWDB6VFVod3R1YWhn
QUtNRUNoWWpIMkVuakhkSHc2c1kyLXdBcGRjUUk3VUxFMG9vNVJ6YlFacG11aGNOOWhpQmMwTDNo
aEYwcW81MG1ibDAyXzY1X0dRN0RwVmtYQnhOZ1JCTHpsUGFibXp6RzJvQWhmZWZMZ1ltU0Mxb3Bh
Q2tYRTZ2UldRTldOTDQ1UlpOWkZZTTN1b0pnaE9NcUdlb2NNMEJwamRDaEhyUE9sRnZTUSIsCi0g
ICAgcDogIjRtaVR1QWpLTWVINXVKNUtCMzk3UVV3aGJrWUVnU2JjQTJtaWZtU2t2RTIwMThnYjU1
cWtCSEsxZVZyeWYxX200M0xObGM2T19hazZnZnpkWkladlM1TkNHalBsMHEwOXBsVXB1OHFGT1Nz
cEJ3QTY3cUdINzZsRmxaTG5fZDR5Z2xTN3dmTHJ1NF81WXM4cUxMcy1EcVZMdml3cG9zT255eVdx
d001QVhwMCIsCi0gICAgcTogInhIWXJ6a2l2dG1uel9zR2NobldHYzBxLXBET2tLaWNwdFJwdjJw
TUZJSVh4bkZYNWFNZUVYSVpqVnVqWHR3VXkxVWxGSU4yR1pKU3Z5NUtKNzltdV9YeU5uRkhNemVk
SC1BM2VlM3U4aDFVVXJaRi12VXUxX2U0VV94NjdOTjFkZWR6VVNLeW5ON3BGbDNPa3VTaE1CV0dW
LWN3ek9QZGNWQWZWdVpseFVNYyIsCi0gICAgZHA6ICJmQnpEellEVUJtQlFHb3A3SG4wZHZmX1Qy
N1Y2UnFwY3RXbzA3NENRWmNGYlAyYXRGVnRLU2ozdmlXVDN4aWQyVkh6Y2dpREhkZnBNM25FVmxF
TzF3d0lvbkdDU3ZkakdFT1ppaUZWT2pyWkFPVnhBOGd1T2p5eUZ2cWJYa2UwNlZ3UElJVnZmS2VT
VTJ6dWhiUF9fMXR0NkZfZnhvdzRLYjJ4b25HVDBHR2siLAotICAgIGRxOiAiam1FMkRpSVBkaHdE
Z0xYQVFwSWFCcVE4MWJPM1hmVlRfTFJVTEF3d3d3bFB1UVYxNDhIMDR6bGg5VEo2WTJHWkhZb2tW
MVUwZU9CcEp4ZmtiN2RMWXRwSnB1aUJqUmY0eUlVRW9HbGtrSV9RbEpuRlNGci1ZakdSZGZOSHFX
Qmt4bFNNWkw3NzBSOW1JQVRuZEdrSDd6NXgtcjlLd0JaRkM0RkNHMmhnX3pFIiwKLSAgICBxaTog
IllDWF9wTHdiTUJBMVRoVkgwV2N3bW55dHFOY3JNQ0V3VG03QnlBMmVVNm5XYlFyVUx2ZjdtOV9r
emZMVWNqc25wQVZsQlFHNUpNWE15MFNxNHB0d2J5d3NhNS1HOEtBT09PUjJMM3Y0aEMtRXlzOWZ0
Z0ZNXzNpMG80MGVlUUg0YjNoYVBibnRySWVNZzhJemxPdVZZS2Y5LTJRdUtEb1dlUmRkN05zZHhU
ayIKLX07Ci12YXIgd3JhcEFsZ29yaXRobSA9IHtuYW1lOiAiUlNBLU9BRVAiLCBoYXNoOiAic2hh
LTEifTsKLXZhciBleHRyYWN0YWJsZSA9IHRydWU7Ci12YXIgbm9uRXh0cmFjdGFibGUgPSBmYWxz
ZTsKLQotZGVidWcoIkltcG9ydGluZyBSU0Ega2V5cy4uLiIpOwotY3J5cHRvLndlYmtpdFN1YnRs
ZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5KHB1Ymxp
Y0tleUpTT04pKSwgbnVsbCwgZXh0cmFjdGFibGUsIFsid3JhcEtleSJdKS50aGVuKGZ1bmN0aW9u
KHJlc3VsdCkgewotICAgIHB1YmxpY0tleSA9IHJlc3VsdDsKLSAgICByZXR1cm4gY3J5cHRvLndl
YmtpdFN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5n
aWZ5KHByaXZhdGVLZXlKU09OKSksIG51bGwsIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVj
cnlwdCIsICJ3cmFwS2V5Il0pOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBwcml2
YXRlS2V5ID0gcmVzdWx0OwotCi0gICAgZGVidWcoIkltcG9ydGluZyBhbiBBRVMga2V5Li4uIik7
Ci0gICAgYWVzS2V5RGF0YSA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiNjAzZGViMTAxNWNhNzFi
ZTJiNzNhZWYwODU3ZDc3ODExZjM1MmMwNzNiNjEwOGQ3MmQ5ODEwYTMwOTE0ZGZmNCIpOwotICAg
IHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgicmF3IiwgYWVzS2V5RGF0YSwg
ImFlcy1jYmMiLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiLCAid3JhcEtleSIs
ICJ1bndyYXBLZXkiXSkKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgYWVzS2V5ID0g
cmVzdWx0OwotCi0gICAgZGVidWcoIldyYXBwaW5nIGl0Li4uIik7Ci0gICAgcmV0dXJuIGNyeXB0
by53ZWJraXRTdWJ0bGUud3JhcEtleSgicmF3IiwgYWVzS2V5LCBwdWJsaWNLZXksIHdyYXBBbGdv
cml0aG0pOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICB3cmFwcGVkS2V5ID0gcmVz
dWx0OwotCi0gICAgZGVidWcoIlVud3JhcHBpbmcgaXQuLi4iKTsKLSAgICAvLyBwcml2YXRlS2V5
IGxhY2tzIHVud3JhcEtleSB1c2FnZS4KLSAgICBzaG91bGRUaHJvdygnY3J5cHRvLndlYmtpdFN1
YnRsZS51bndyYXBLZXkoInJhdyIsIHdyYXBwZWRLZXksIHByaXZhdGVLZXksIHdyYXBBbGdvcml0
aG0sICJhZXMtY2JjIiwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0Il0pJyk7Ci0K
LSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4K
ClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvdW53
cmFwS2V5LWNoZWNrLXVzYWdlLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46bWltZS10eXBl
CiMjIC0xICswLDAgIyMKLXRleHQvaHRtbApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5
CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3dyYXBLZXktY2hlY2stdXNh
Z2UtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRT
dWJ0bGUvd3JhcEtleS1jaGVjay11c2FnZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIyMDkxOSkK
KysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvd3JhcEtleS1jaGVjay11c2FnZS1l
eHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSwxNSArMCwwIEBACi1DT05TT0xFIE1FU1NB
R0U6IGxpbmUgMjg6IFdlYktpdFN1YnRsZUNyeXB0byBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNl
IFN1YnRsZUNyeXB0byBpbnN0ZWFkLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IEtleSB1c2Fn
ZXMgZG8gbm90IGluY2x1ZGUgJ3dyYXBLZXknCi1WZXJpZnkgdGhhdCB1c2FnZSBpcyByZXNwZWN0
ZWQgaW4gd3JhcEtleSBvcGVyYXRpb24uCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQot
Ci1JbXBvcnRpbmcgYW4gUlNBIGtleS4uLgotSW1wb3J0aW5nIGFuIEFFUyBrZXkuLi4KLVdyYXBw
aW5nIGl0Li4uCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUud3JhcEtleSgicmF3IiwgYWVzS2V5
LCBwdWJsaWNLZXksIHdyYXBBbGdvcml0aG0pIHRocmV3IGV4Y2VwdGlvbiBOb3RTdXBwb3J0ZWRF
cnJvcjogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLi4KLVBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBM
YXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3dyYXBLZXktY2hlY2stdXNhZ2UtZXhwZWN0
ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1u
YXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpEZWxldGVkOiBzdm46bWltZS10
eXBlCiMjIC0xICswLDAgIyMKLXRleHQvcGxhaW4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9w
ZXJ0eQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS93cmFwS2V5LWNoZWNr
LXVzYWdlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRs
ZS93cmFwS2V5LWNoZWNrLXVzYWdlLmh0bWwJKHJldmlzaW9uIDIyMDkxOSkKKysrIExheW91dFRl
c3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvd3JhcEtleS1jaGVjay11c2FnZS5odG1sCShub25leGlz
dGVudCkKQEAgLTEsNDYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgot
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08
Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVmVyaWZ5IHRoYXQgdXNhZ2UgaXMgcmVzcGVjdGVk
IGluIHdyYXBLZXkgb3BlcmF0aW9uLiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFy
IHB1YmxpY0tleUpTT04gPSB7Ci0gICAga3R5OiAiUlNBIiwKLSAgICBhbGc6ICJSU0EtT0FFUCIs
Ci0gICAgbjogInJjQ1VDdjdPYzFIVmFtMURJaEN6cWtuVGhXYXdPcDhRTGs4Wml5MnAxMEJ5alFG
Q2Fqb0ZpeXVBV2wtUjFXWFphZjR4aXRMUnJhY1Q5YWdwekl6Yy1NYkxTSElHZ1dRR08yMWxHaUlt
eTVmdFotRDhiSEFxUnoyeTE1cHpENGM0Q0VvdTdYU1NMRG9SblIwUUc1TXNEaEQ2czJnVjltd0hr
cnRrQ3h0TVdkQmktNzdhczh3R21sTlJsZGNPU2daRExLOFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0T09F
SWIweFVTZlBTejNMUFNDbnlZejY4YURqbUtWZU5ILWlnODU3T1NjeVdiR3lFeTNCaXc2NHF1bjNq
dVVsTldzSjN6bmdrT2R0ZVlXeXR4NVFyNFhLTnM2Ui1NeXlxNzJLVXAwMm1KRFppaXlpZ2x4TUxf
aTMtX0NlZWNDdyIsCi0gICAgZTogIkFRQUIiCi19OwotCi12YXIgd3JhcEFsZ29yaXRobSA9IHtu
YW1lOiAiUlNBLU9BRVAiLCBoYXNoOiAic2hhLTEifTsKLXZhciBleHRyYWN0YWJsZSA9IHRydWU7
Ci12YXIgbm9uRXh0cmFjdGFibGUgPSBmYWxzZTsKLQotZGVidWcoIkltcG9ydGluZyBhbiBSU0Eg
a2V5Li4uIik7Ci1jcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1Vp
bnQ4QXJyYXkoSlNPTi5zdHJpbmdpZnkocHVibGljS2V5SlNPTikpLCBudWxsLCBleHRyYWN0YWJs
ZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiLCAidW53cmFwS2V5Il0pLnRoZW4oZnVuY3Rpb24ocmVz
dWx0KSB7Ci0gICAgcHVibGljS2V5ID0gcmVzdWx0OwotCi0gICAgZGVidWcoIkltcG9ydGluZyBh
biBBRVMga2V5Li4uIik7Ci0gICAgYWVzS2V5RGF0YSA9IGhleFN0cmluZ1RvVWludDhBcnJheSgi
NjAzZGViMTAxNWNhNzFiZTJiNzNhZWYwODU3ZDc3ODExZjM1MmMwNzNiNjEwOGQ3MmQ5ODEwYTMw
OTE0ZGZmNCIpOwotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgicmF3
IiwgYWVzS2V5RGF0YSwgImFlcy1jYmMiLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5
cHQiLCAid3JhcEtleSIsICJ1bndyYXBLZXkiXSkKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7
Ci0gICAgYWVzS2V5ID0gcmVzdWx0OwotCi0gICAgZGVidWcoIldyYXBwaW5nIGl0Li4uIik7Ci0g
ICAgLy8gcHVibGljS2V5IGxhY2tzIHdyYXBLZXkgdXNhZ2UuCi0gICAgc2hvdWxkVGhyb3coJ2Ny
eXB0by53ZWJraXRTdWJ0bGUud3JhcEtleSgicmF3IiwgYWVzS2V5LCBwdWJsaWNLZXksIHdyYXBB
bGdvcml0aG0pJyk7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2Jv
ZHk+Ci08L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Vi
a2l0U3VidGxlL3dyYXBLZXktY2hlY2stdXNhZ2UuaHRtbApfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2
bjptaW1lLXR5cGUKIyMgLTEgKzAsMCAjIwotdGV4dC9odG1sClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgcHJvcGVydHkKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9wcm9wZXJ0eS1h
Y2Nlc3Mtb24tY2FjaGVkLXdpbmRvdy1hZnRlci1mcmFtZS1yZW1vdmVkLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcHJvcGVydHktYWNjZXNz
LW9uLWNhY2hlZC13aW5kb3ctYWZ0ZXItZnJhbWUtcmVtb3ZlZC1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDIyMDkxOSkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9wcm9wZXJ0eS1hY2Nl
c3Mtb24tY2FjaGVkLXdpbmRvdy1hZnRlci1mcmFtZS1yZW1vdmVkLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMSwyICsxIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTA2OiBXZWJL
aXRTdWJ0bGVDcnlwdG8gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBTdWJ0bGVDcnlwdG8gaW5z
dGVhZC4KIFBhc3MuIFdlYktpdCBkaWRuJ3QgY3Jhc2guCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>318545</attachid>
            <date>2017-08-18 14:58:50 -0700</date>
            <delta_ts>2017-08-18 16:22:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-164938-20170818145849.patch</filename>
            <type>text/plain</type>
            <size>516280</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyMDkzNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDkzIEBACisyMDE3LTA4LTE4ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVtb3ZlIHRoZSBkZXByZWNhdGVkIFdl
YktpdFN1YnRsZUNyeXB0byBpbnRlcmZhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2NDkzOAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjk4OTQ1
NjM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVt
b3ZlIFdlYktpdFN1YnRsZUNyeXB0byBhbmQgYWxsIG9mIGl0cyBoZWxwZXIgY2xhc3NlcyAvIGZ1
bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy5jcHA6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0suY3BwOiBSZW1vdmVk
LgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSy5oOiBS
ZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ3J5cHRvT3BlcmF0aW9uRGF0YS5jcHA6
IFJlbW92ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNDcnlwdG9PcGVyYXRpb25EYXRhLmg6
IFJlbW92ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNXZWJLaXRTdWJ0bGVDcnlwdG9DdXN0
b20uY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by9DcnlwdG9BbGdvcml0aG0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtOjpkZXJpdmVLZXkpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtOjplbmNyeXB0Rm9yV3JhcEtleSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG06OmRlY3J5cHRGb3JVbndy
YXBLZXkpOiBEZWxldGVkLgorICAgICAgICAqIGNyeXB0by9DcnlwdG9BbGdvcml0aG0uaDoKKyAg
ICAgICAgKiBjcnlwdG8vQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQuaDogUmVt
b3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vQ3J5cHRvS2V5U2VyaWFsaXphdGlvbi5oOiBSZW1vdmVk
LgorICAgICAgICAqIGNyeXB0by9XZWJLaXRTdWJ0bGVDcnlwdG8uY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIGNyeXB0by9XZWJLaXRTdWJ0bGVDcnlwdG8uaDogUmVtb3ZlZC4KKyAgICAgICAgKiBj
cnlwdG8vV2ViS2l0U3VidGxlQ3J5cHRvLmlkbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNyeXB0b0FsZ29yaXRobUFFU19DQkM6OmtleUFsZ29yaXRobU1hdGNoZXMgY29uc3QpOiBEZWxl
dGVkLgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMu
aDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtQUVTX0tXOjplbmNyeXB0Rm9yV3Jh
cEtleSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1BRVNfS1c6
OmRlY3J5cHRGb3JVbndyYXBLZXkpOiBEZWxldGVkLgorICAgICAgICAqIGNyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobUFFU19LVy5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobUhNQUMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3Jp
dGhtSE1BQzo6a2V5QWxnb3JpdGhtTWF0Y2hlcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICog
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSE1BQy5oOgorICAgICAgICAqIGNyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzUuY3BwOgorICAgICAg
ICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzUuaDoK
KyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFf
djFfNS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFf
djFfNTo6a2V5QWxnb3JpdGhtTWF0Y2hlcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaDoKKyAgICAg
ICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6a2V5QWxnb3JpdGhtTWF0Y2hl
cyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtUlNBX09BRVAuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1TSEExLmNwcDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1TSEExLmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hB
MjI0LmNwcDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEy
MjQuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyNTYu
Y3BwOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTI1Ni5o
OgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTM4NC5jcHA6
CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0Lmg6Cisg
ICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmNwcDoKKyAg
ICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEE1MTIuaDoKKyAgICAg
ICAgKiBjcnlwdG8vZ2NyeXB0L0NyeXB0b0FsZ29yaXRobUFFU19DQkNHQ3J5cHQuY3BwOgorICAg
ICAgICAqIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXR0NyeXB0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19LVzo6cGxhdGZvcm1FbmNyeXB0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUFFU19LVzo6cGxhdGZv
cm1EZWNyeXB0KTogRGVsZXRlZC4KKyAgICAgICAgKiBjcnlwdG8vZ2NyeXB0L0NyeXB0b0FsZ29y
aXRobUhNQUNHQ3J5cHQuY3BwOgorICAgICAgICAqIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3Jp
dGhtUlNBRVNfUEtDUzFfdjFfNUdDcnlwdC5jcHA6CisgICAgICAgICogY3J5cHRvL2djcnlwdC9D
cnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNUdDcnlwdC5jcHA6CisgICAgICAgICogY3J5
cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUEdDcnlwdC5jcHA6CisgICAgICAgICog
Y3J5cHRvL2tleXMvQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdy5jcHA6IFJlbW92ZWQuCisgICAg
ICAgICogY3J5cHRvL2tleXMvQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdy5oOiBSZW1vdmVkLgor
ICAgICAgICAqIGNyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQ01hYy5jcHA6CisgICAg
ICAgICogY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1BRVNfS1dNYWMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtQUVTX0tXOjpwbGF0Zm9ybUVuY3J5cHQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtQUVTX0tXOjpwbGF0Zm9ybURlY3J5
cHQpOiBEZWxldGVkLgorICAgICAgICAqIGNyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtSE1BQ01h
Yy5jcHA6CisgICAgICAgICogY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92
MV81TWFjLmNwcDoKKyAgICAgICAgKiBjcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9Q
S0NTMV92MV81TWFjLmNwcDoKKyAgICAgICAgKiBjcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobVJT
QV9PQUVQTWFjLmNwcDoKKyAgICAgICAgKiBjcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0
aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkLmg6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3Bh
cmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zRGVwcmVjYXRlZC5oOiBSZW1v
dmVkLgorICAgICAgICAqIGNyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUhtYWNLZXlQ
YXJhbXNEZXByZWNhdGVkLmg6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3BhcmFtZXRlcnMv
Q3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQuaDogUmVtb3ZlZC4KKyAgICAgICAg
KiBjcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXNEZXByZWNh
dGVkLmg6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3Jp
dGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hEZXByZWNhdGVkLmg6IFJlbW92ZWQuCisgICAgICAgICog
Y3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQu
aDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1S
c2FTc2FQYXJhbXNEZXByZWNhdGVkLmg6IFJlbW92ZWQuCisgICAgICAgICogZmVhdHVyZXMuanNv
bjoKKyAgICAgICAgKiBwYWdlL0NyeXB0by5jcHA6CisgICAgICAgICogcGFnZS9DcnlwdG8uaDoK
KyAgICAgICAgKiBwYWdlL0NyeXB0by5pZGw6CisKIDIwMTctMDgtMTggIFJ5b3N1a2UgTml3YSAg
PHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmVuYW1lIERhdGFUcmFuc2ZlckFjY2Vzc1Bv
bGljeSB0byBtYXRjaCBzcGVjIGFuZCByZWZhY3RvciByZWxhdGVkIG5vZGUKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CShyZXZpc2lvbiAyMjA5MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzcyLDcgKzM3Miw2IEBAIHNldChXZWJDb3JlX05P
Tl9TVkdfSURMX0ZJTEVTCiAgICAgY3J5cHRvL0pzb25XZWJLZXkuaWRsCiAgICAgY3J5cHRvL1Jz
YU90aGVyUHJpbWVzSW5mby5pZGwKICAgICBjcnlwdG8vU3VidGxlQ3J5cHRvLmlkbAotICAgIGNy
eXB0by9XZWJLaXRTdWJ0bGVDcnlwdG8uaWRsCiAKICAgICBjcnlwdG8va2V5cy9DcnlwdG9BZXNL
ZXlBbGdvcml0aG0uaWRsCiAgICAgY3J5cHRvL2tleXMvQ3J5cHRvRWNLZXlBbGdvcml0aG0uaWRs
CkBAIC0xMTg2LDkgKzExODUsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3Mv
anMvSlNEZXByZWNhdGVkQ1NTT01WYWx1ZUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0Nh
bGxiYWNrRGF0YS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQy
REN1c3RvbS5jcHAKLSAgICBiaW5kaW5ncy9qcy9KU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnku
Y3BwCi0gICAgYmluZGluZ3MvanMvSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLLmNwcAotICAg
IGJpbmRpbmdzL2pzL0pTQ3J5cHRvT3BlcmF0aW9uRGF0YS5jcHAKICAgICBiaW5kaW5ncy9qcy9K
U0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuY3BwCiAgICAgYmluZGluZ3MvanMvSlNDdXN0b21FbGVt
ZW50UmVnaXN0cnlDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNDdXN0b21FdmVudEN1c3Rv
bS5jcHAKQEAgLTEyNTgsNyArMTI1NCw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5k
aW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9q
cy9KU1dlYkdQVVJlbmRlclBhc3NBdHRhY2htZW50RGVzY3JpcHRvckN1c3RvbS5jcHAKICAgICBi
aW5kaW5ncy9qcy9KU1dlYkdQVVJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwCi0gICAgYmluZGlu
Z3MvanMvSlNXZWJLaXRTdWJ0bGVDcnlwdG9DdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNX
b3JrZXJHbG9iYWxTY29wZUJhc2UuY3BwCiAgICAgYmluZGluZ3MvanMvSlNXb3JrZXJHbG9iYWxT
Y29wZUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1hNTERvY3VtZW50Q3VzdG9tLmNwcApA
QCAtMTMxNyw3ICsxMzEyLDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGNyeXB0by9Dcnlw
dG9BbGdvcml0aG1SZWdpc3RyeS5jcHAKICAgICBjcnlwdG8vQ3J5cHRvS2V5LmNwcAogICAgIGNy
eXB0by9TdWJ0bGVDcnlwdG8uY3BwCi0gICAgY3J5cHRvL1dlYktpdFN1YnRsZUNyeXB0by5jcHAK
IAogICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuY3BwCiAgICAg
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NGQi5jcHAKQEAgLTEzNDYsNyAr
MTM0MCw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBjcnlwdG8va2V5cy9DcnlwdG9LZXlI
TUFDLmNwcAogICAgIGNyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5jcHAKICAgICBjcnlwdG8va2V5
cy9DcnlwdG9LZXlSYXcuY3BwCi0gICAgY3J5cHRvL2tleXMvQ3J5cHRvS2V5U2VyaWFsaXphdGlv
blJhdy5jcHAKIAogICAgIGNzcy9CYXNpY1NoYXBlRnVuY3Rpb25zLmNwcAogICAgIGNzcy9DU1NB
c3BlY3RSYXRpb1ZhbHVlLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAkocmV2
aXNpb24gMjIwOTM1KQorKysgU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02MjMsNyArNjIzLDYgQEAKICNpbmNsdWRlICJKU1dlYktpdE5hbWVkRmxv
dy5jcHAiCiAjaW5jbHVkZSAiSlNXZWJLaXRQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUV2ZW50
LmNwcCIKICNpbmNsdWRlICJKU1dlYktpdFBvaW50LmNwcCIKLSNpbmNsdWRlICJKU1dlYktpdFN1
YnRsZUNyeXB0by5jcHAiCiAjaW5jbHVkZSAiSlNXZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwIgog
I2luY2x1ZGUgIkpTV2ViU29ja2V0LmNwcCIKICNpbmNsdWRlICJKU1doZWVsRXZlbnQuY3BwIgpJ
bmRleDogU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiAyMjA5MzUpCisrKyBT
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0zMDYs
NyArMzA2LDYgQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvY3J5cHRvL0pz
b25XZWJLZXkuaWRsIFwKICAgICAkKFdlYkNvcmUpL2NyeXB0by9Sc2FPdGhlclByaW1lc0luZm8u
aWRsIFwKICAgICAkKFdlYkNvcmUpL2NyeXB0by9TdWJ0bGVDcnlwdG8uaWRsIFwKLSAgICAkKFdl
YkNvcmUpL2NyeXB0by9XZWJLaXRTdWJ0bGVDcnlwdG8uaWRsIFwKICAgICAkKFdlYkNvcmUpL2Ny
eXB0by9rZXlzL0NyeXB0b0Flc0tleUFsZ29yaXRobS5pZGwgXAogICAgICQoV2ViQ29yZSkvY3J5
cHRvL2tleXMvQ3J5cHRvRWNLZXlBbGdvcml0aG0uaWRsIFwKICAgICAkKFdlYkNvcmUpL2NyeXB0
by9rZXlzL0NyeXB0b0htYWNLZXlBbGdvcml0aG0uaWRsIFwKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2ZlYXR1cmVzLmpzb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZmVhdHVyZXMuanNv
bgkocmV2aXNpb24gMjIwOTM1KQorKysgU291cmNlL1dlYkNvcmUvZmVhdHVyZXMuanNvbgkod29y
a2luZyBjb3B5KQpAQCAtNTg5LDcgKzU4OSw2IEBACiAgICAgICAgICJrZXl3b3JkcyI6IFsid2Vi
Y3J5cHRvIiwgIndlYiBjcnlwdG9ncmFwaHkgYXBpIiwgImNyeXB0byJdLAogICAgICAgICAiY2F0
ZWdvcnkiOiAid2ViYXBwcyIsCiAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBIEphdmFTY3JpcHQg
QVBJIGZvciB3ZWIgYXBwbGljYXRpb25zIHRvIHBlcmZvcm0gY3J5cHRvZ3JhcGhpYyBvcGVyYXRp
b25zLiIsCi0gICAgICAgICJjb21tZW50IjogIlRoZSBwcmVmaXhlZCDigJh3ZWJraXRTdWJ0bGXi
gJkgYXR0cmlidXRlIHdoaWNoIGdhdmUgYWNjZXNzIHRvIHRoZSBTdWJ0bGVDcnlwdG8gQVBJIGlz
IG5vdyBkZXByZWNhdGVkIGluIHByZWZlcmVuY2UgdG8gdGhlIG9mZmljaWFsIOKAnHN1YnRsZeKA
nSBwcm9wZXJ0eS4iLAogICAgICAgICAiY29udGFjdCI6IHsKICAgICAgICAgICAgICJuYW1lIjog
IkppZXdlbiBUYW4iLAogICAgICAgICAgICAgImVtYWlsIjogImppZXdlbl90YW5AYXBwbGUuY29t
IgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkocmV2aXNpb24gMjIwOTM1KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yNTQ2LDExICsyNTQ2LDYg
QEAKIAkJNTcwNkE2OTYxRERFNUM5NTAwQTAzQjE0IC8qIENyeXB0b0FsZ29yaXRobVJzYU9hZXBQ
YXJhbXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3
MDZBNjk1MURERTVDOTUwMEEwM0IxNCAvKiBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zLmgg
Ki87IH07CiAJCTU3MDZBNjk4MURERTVFNDYwMEEwM0IxNCAvKiBKU1JzYU9hZXBQYXJhbXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MDZBNjk3MURE
RTVFNDYwMEEwM0IxNCAvKiBKU1JzYU9hZXBQYXJhbXMuaCAqLzsgfTsKIAkJNTcwNkE2OUExRERF
NUU4NTAwQTAzQjE0IC8qIEpTUnNhT2FlcFBhcmFtcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzA2QTY5OTFEREU1RTg1MDBBMDNCMTQgLyogSlNS
c2FPYWVwUGFyYW1zLmNwcCAqLzsgfTsKLQkJNTcwOUU4Q0QxRDQxM0Q0NzAwMzI0NEFDIC8qIFdl
YktpdFN1YnRsZUNyeXB0by5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NzA5RThDQTFENDEzQ0UzMDAzMjQ0QUMgLyogV2ViS2l0U3VidGxlQ3J5cHRv
LmNwcCAqLzsgfTsKLQkJNTcwOUU4Q0UxRDQxM0Q1QjAwMzI0NEFDIC8qIEpTV2ViS2l0U3VidGxl
Q3J5cHRvQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUxRkY4RjY2MTgwNzQ2MDgwMDEzMjY3NCAvKiBKU1dlYktpdFN1YnRsZUNyeXB0b0N1
c3RvbS5jcHAgKi87IH07Ci0JCTU3MDlFOENGMUQ0MTNEOUEwMDMyNDRBQyAvKiBXZWJLaXRTdWJ0
bGVDcnlwdG8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDU3MDlFOENCMUQ0MTNDRTMwMDMyNDRBQyAvKiBXZWJLaXRTdWJ0bGVDcnlwdG8uaCAqLzsgfTsK
LQkJNTcwQTk5REExRDQxNzQwODAwNEVDNjMwIC8qIEpTV2ViS2l0U3VidGxlQ3J5cHRvLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRkY4RjYyMTgw
NzQ1RDgwMDEzMjY3NCAvKiBKU1dlYktpdFN1YnRsZUNyeXB0by5jcHAgKi87IH07Ci0JCTU3MEE5
OURCMUQ0MUEyRjMwMDRFQzYzMCAvKiBKU1dlYktpdFN1YnRsZUNyeXB0by5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFGRjhGNjMxODA3NDVEODAwMTMy
Njc0IC8qIEpTV2ViS2l0U3VidGxlQ3J5cHRvLmggKi87IH07CiAJCTU3MTI1MjY5MUU1MjRFQjEw
MDhGRjM2OSAvKiBDcnlwdG9BbGdvcml0aG1BRVNfQ0ZCLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzEyNTI2ODFFNTI0RUIxMDA4RkYzNjkgLyogQ3J5
cHRvQWxnb3JpdGhtQUVTX0NGQi5oICovOyB9OwogCQk1NzFGMjE4OTFEQTU3QzU0MDA1QzlFRkQg
LyogSlNTdWJ0bGVDcnlwdG8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDU3MUYyMTg4MURBNTdDNTQwMDVDOUVGRCAvKiBKU1N1YnRsZUNyeXB0by5oICov
OyB9OwogCQk1NzFGMjE4QjFEQTU3QzdCMDA1QzlFRkQgLyogSlNTdWJ0bGVDcnlwdG8uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcxRjIxOEExREE1
N0M3QTAwNUM5RUZEIC8qIEpTU3VidGxlQ3J5cHRvLmNwcCAqLzsgfTsKQEAgLTY0OTMsMTkgKzY0
ODgsMTEgQEAKIAkJRTEyNUY4MzUxODIyRjE4QTAwRDg0Q0Q5IC8qIENyeXB0b0tleUhNQUMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEyNUY4MzMx
ODIyRjE4QTAwRDg0Q0Q5IC8qIENyeXB0b0tleUhNQUMuY3BwICovOyB9OwogCQlFMTI1RjgzNjE4
MjJGMThBMDBEODRDRDkgLyogQ3J5cHRvS2V5SE1BQy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEyNUY4MzQxODIyRjE4QTAwRDg0Q0Q5IC8qIENyeXB0
b0tleUhNQUMuaCAqLzsgfTsKIAkJRTEyNUY4MzgxODIyRjFFQjAwRDg0Q0Q5IC8qIENyeXB0b0Fs
Z29yaXRobUhNQUNNYWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTEyNUY4MzcxODIyRjFFQjAwRDg0Q0Q5IC8qIENyeXB0b0FsZ29yaXRobUhNQUNN
YWMuY3BwICovOyB9OwotCQlFMTI1RjgzQTE4MjQxMDQ4MDBEODRDRDkgLyogQ3J5cHRvQWxnb3Jp
dGhtQWVzQ2JjUGFyYW1zRGVwcmVjYXRlZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTEyNUY4MzkxODI0MTA0ODAwRDg0Q0Q5IC8qIENyeXB0b0FsZ29y
aXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0ZWQuaCAqLzsgfTsKLQkJRTEyNUY4M0QxODI0MTFFNzAw
RDg0Q0Q5IC8qIEpTQ3J5cHRvT3BlcmF0aW9uRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTI1RjgzQjE4MjQxMUU3MDBEODRDRDkgLyogSlND
cnlwdG9PcGVyYXRpb25EYXRhLmNwcCAqLzsgfTsKLQkJRTEyNUY4M0UxODI0MTFFNzAwRDg0Q0Q5
IC8qIEpTQ3J5cHRvT3BlcmF0aW9uRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTEyNUY4M0MxODI0MTFFNzAwRDg0Q0Q5IC8qIEpTQ3J5cHRvT3Bl
cmF0aW9uRGF0YS5oICovOyB9OwogCQlFMTI1Rjg0MTE4MjQyNTNBMDBEODRDRDkgLyogQ3J5cHRv
QWxnb3JpdGhtQUVTX0NCQy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMTI1RjgzRjE4MjQyNTNBMDBEODRDRDkgLyogQ3J5cHRvQWxnb3JpdGhtQUVT
X0NCQy5jcHAgKi87IH07CiAJCUUxMjVGODQyMTgyNDI1M0EwMEQ4NENEOSAvKiBDcnlwdG9BbGdv
cml0aG1BRVNfQ0JDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMTI1Rjg0MDE4MjQyNTNBMDBEODRDRDkgLyogQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5o
ICovOyB9OwogCQlFMTI1Rjg0NTE4MjQyNUM5MDBEODRDRDkgLyogQ3J5cHRvQWxnb3JpdGhtQUVT
X0NCQ01hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMTI1Rjg0MzE4MjQyNUM5MDBEODRDRDkgLyogQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQ01hYy5j
cHAgKi87IH07CiAJCUUxMjVGODREMTgyNDI4OUQwMEQ4NENEOSAvKiBDcnlwdG9LZXlBRVMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEyNUY4NEIx
ODI0Mjg5RDAwRDg0Q0Q5IC8qIENyeXB0b0tleUFFUy5jcHAgKi87IH07CiAJCUUxMjVGODRFMTgy
NDI4OUQwMEQ4NENEOSAvKiBDcnlwdG9LZXlBRVMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMjVGODRDMTgyNDI4OUQwMEQ4NENEOSAvKiBDcnlwdG9L
ZXlBRVMuaCAqLzsgfTsKLQkJRTEyNUY4NTExODI4M0E1NjAwRDg0Q0Q5IC8qIEpTQ3J5cHRvS2V5
U2VyaWFsaXphdGlvbkpXSy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMTI1Rjg0RjE4MjgzQTU2MDBEODRDRDkgLyogSlNDcnlwdG9LZXlTZXJpYWxp
emF0aW9uSldLLmNwcCAqLzsgfTsKLQkJRTEyNUY4NTIxODI4M0E1NjAwRDg0Q0Q5IC8qIEpTQ3J5
cHRvS2V5U2VyaWFsaXphdGlvbkpXSy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTEyNUY4NTAxODI4M0E1NjAwRDg0Q0Q5IC8qIEpTQ3J5cHRvS2V5U2Vy
aWFsaXphdGlvbkpXSy5oICovOyB9OwotCQlFMTI1Rjg1NjE4MkMwRjgzMDBEODRDRDkgLyogQ3J5
cHRvS2V5U2VyaWFsaXphdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTEyNUY4NTUxODJDMEY4MzAwRDg0Q0Q5IC8qIENyeXB0b0tleVNlcmlhbGl6
YXRpb24uaCAqLzsgfTsKLQkJRTEyNUY4NTkxODJDMUFBNjAwRDg0Q0Q5IC8qIENyeXB0b0tleVNl
cmlhbGl6YXRpb25SYXcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTEyNUY4NTcxODJDMUFBNjAwRDg0Q0Q5IC8qIENyeXB0b0tleVNlcmlhbGl6YXRp
b25SYXcuY3BwICovOyB9OwotCQlFMTI1Rjg1QTE4MkMxQUE2MDBEODRDRDkgLyogQ3J5cHRvS2V5
U2VyaWFsaXphdGlvblJhdy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTEyNUY4NTgxODJDMUFBNjAwRDg0Q0Q5IC8qIENyeXB0b0tleVNlcmlhbGl6YXRp
b25SYXcuaCAqLzsgfTsKIAkJRTEyNUY4NUUxODJDMkRGNjAwRDg0Q0Q5IC8qIENyeXB0b0tleURh
dGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMjVG
ODVEMTgyQzJERjYwMEQ4NENEOSAvKiBDcnlwdG9LZXlEYXRhLmggKi87IH07CiAJCUUxMjVGODYz
MTgyQzMwM0EwMEQ4NENEOSAvKiBDcnlwdG9LZXlEYXRhT2N0ZXRTZXF1ZW5jZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTI1Rjg2MTE4MkMzMDNB
MDBEODRDRDkgLyogQ3J5cHRvS2V5RGF0YU9jdGV0U2VxdWVuY2UuY3BwICovOyB9OwogCQlFMTI1
Rjg2NDE4MkMzMDNBMDBEODRDRDkgLyogQ3J5cHRvS2V5RGF0YU9jdGV0U2VxdWVuY2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMjVGODYyMTgyQzMw
M0EwMEQ4NENEOSAvKiBDcnlwdG9LZXlEYXRhT2N0ZXRTZXF1ZW5jZS5oICovOyB9OwpAQCAtNjU4
Nyw5ICs2NTc0LDcgQEAKIAkJRTE5QUMzRjMxODI0REM3OTAwMzQ5NDI2IC8qIENyeXB0b0FsZ29y
aXRobVNIQTM4NC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTE5QUMzRUIxODI0REM3OTAwMzQ5NDI2IC8qIENyeXB0b0FsZ29yaXRobVNIQTM4NC5oICov
OyB9OwogCQlFMTlBQzNGNDE4MjREQzc5MDAzNDk0MjYgLyogQ3J5cHRvQWxnb3JpdGhtU0hBNTEy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxOUFD
M0VDMTgyNERDNzkwMDM0OTQyNiAvKiBDcnlwdG9BbGdvcml0aG1TSEE1MTIuY3BwICovOyB9Owog
CQlFMTlBQzNGNTE4MjREQzc5MDAzNDk0MjYgLyogQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTlBQzNFRDE4MjRE
Qzc5MDAzNDk0MjYgLyogQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmggKi87IH07Ci0JCUUxOUFDM0Y3
MTgyNEU1RDEwMDM0OTQyNiAvKiBDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXNEZXByZWNh
dGVkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTlB
QzNGNjE4MjRFNUQxMDAzNDk0MjYgLyogQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zRGVw
cmVjYXRlZC5oICovOyB9OwogCQlFMTlBQzNGOTE4MjU2NkY3MDAzNDk0MjYgLyogQ3J5cHRvS2V5
TWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
OUFDM0Y4MTgyNTY2RjcwMDM0OTQyNiAvKiBDcnlwdG9LZXlNYWMuY3BwICovOyB9OwotCQlFMTlE
QTI5QzE4MTg5QUREMDAwODhCQzggLyogQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtc0RlcHJl
Y2F0ZWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
OURBMjlCMTgxODlBREQwMDA4OEJDOCAvKiBDcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zRGVw
cmVjYXRlZC5oICovOyB9OwogCQlFMUExNDcwODExMTAyQjE1MDBFRUMwRjMgLyogQ29udGFpbmVy
Tm9kZUFsZ29yaXRobXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUxQTE0NzA3MTExMDJCMTUwMEVFQzBGMyAvKiBDb250YWluZXJOb2RlQWxnb3JpdGht
cy5oICovOyB9OwogCQlFMUEzMTYyRDEzNEJDMzJEMDA3QzlBNEYgLyogV2ViTlNBdHRyaWJ1dGVk
U3RyaW5nRXh0cmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMUEzMTYyQjEzNEJDMzJEMDA3QzlBNEYgLyogV2ViTlNBdHRyaWJ1dGVkU3RyaW5nRXh0
cmFzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
RTFBMzE2MkUxMzRCQzMyRDAwN0M5QTRGIC8qIFdlYk5TQXR0cmlidXRlZFN0cmluZ0V4dHJhcy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQTMxNjJD
MTM0QkMzMkQwMDdDOUE0RiAvKiBXZWJOU0F0dHJpYnV0ZWRTdHJpbmdFeHRyYXMubW0gKi87IH07
CkBAIC02NjE2LDEyICs2NjAxLDkgQEAKIAkJRTFCQjg0QUQxODIyQ0E3NDAwNTI1MDQzIC8qIENy
eXB0b0FsZ29yaXRobVJlZ2lzdHJ5TWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUxQkI4NEFDMTgyMkNBNzQwMDUyNTA0MyAvKiBDcnlwdG9BbGdv
cml0aG1SZWdpc3RyeU1hYy5jcHAgKi87IH07CiAJCUUxQkQzMzE5MTgyRDhEREQwMEMwNUQ5RiAv
KiBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUJEMzMxNzE4MkQ4REREMDBDMDVEOUYgLyog
Q3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuY3BwICovOyB9OwogCQlFMUJEMzMxQTE4
MkQ4REREMDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQkQzMzE4MTgyRDhE
REQwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oICovOyB9Owot
CQlFMUJEMzMxQzE4MkQ4RUU5MDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1z
RGVwcmVjYXRlZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTFCRDMzMUIxODJEOEVFOTAwQzA1RDlGIC8qIENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFt
c0RlcHJlY2F0ZWQuaCAqLzsgfTsKLQkJRTFCRDMzMUUxODJEOEY0MjAwQzA1RDlGIC8qIENyeXB0
b0FsZ29yaXRobVJzYUtleUdlblBhcmFtc0RlcHJlY2F0ZWQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQkQzMzFEMTgyRDhGNDIwMEMwNUQ5RiAvKiBD
cnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXNEZXByZWNhdGVkLmggKi87IH07CiAJCUUxQkU1
MTJEMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFCRTUxMkIwQ0Y2QzUxMjAwMkVBOTU5
IC8qIFhTTFRVbmljb2RlU29ydC5jcHAgKi87IH07CiAJCUUxQkU1MTJFMENGNkM1MTIwMDJFQTk1
OSAvKiBYU0xUVW5pY29kZVNvcnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUxQkU1MTJDMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQu
aCAqLzsgfTsKIAkJRTFDMjY2RDgxODMxN0FCNDAwM0Y4QjMzIC8qIENyeXB0b0FsZ29yaXRobVJT
QVNTQV9QS0NTMV92MV81TWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEUxQzI2NkQ2MTgzMTdBQjQwMDNGOEIzMyAvKiBDcnlwdG9BbGdvcml0aG1S
U0FTU0FfUEtDUzFfdjFfNU1hYy5jcHAgKi87IH07Ci0JCUUxQzI2NkRCMTgzMTk5MzUwMDNGOEIz
MyAvKiBDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERlcHJlY2F0ZWQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQzI2NkRBMTgzMTk5
MzUwMDNGOEIzMyAvKiBDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERlcHJlY2F0
ZWQuaCAqLzsgfTsKIAkJRTFDMjY2REUxODMxOUYzMTAwM0Y4QjMzIC8qIENyeXB0b0tleURhdGFS
U0FDb21wb25lbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUxQzI2NkRDMTgzMTlGMzEwMDNGOEIzMyAvKiBDcnlwdG9LZXlEYXRhUlNBQ29tcG9u
ZW50cy5jcHAgKi87IH07CiAJCUUxQzI2NkRGMTgzMTlGMzEwMDNGOEIzMyAvKiBDcnlwdG9LZXlE
YXRhUlNBQ29tcG9uZW50cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTFDMjY2REQxODMxOUYzMTAwM0Y4QjMzIC8qIENyeXB0b0tleURhdGFSU0FDb21w
b25lbnRzLmggKi87IH07CiAJCUUxQzM2MkVGMEVBRjJBQTkwMDc0MTBCQyAvKiBKU1dvcmtlckxv
Y2F0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MUMzNjJFRDBFQUYyQUE5MDA3NDEwQkMgLyogSlNXb3JrZXJMb2NhdGlvbi5oICovOyB9OwpAQCAt
NjYzNiwxMSArNjYxOCw3IEBACiAJCUUxQzQxNjE3MEY2NTYzMTgwMDkyRDJGQiAvKiBDcm9zc09y
aWdpbkFjY2Vzc0NvbnRyb2wuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTFDNDE2MTYwRjY1NjMxODAwOTJEMkZCIC8qIENyb3NzT3JpZ2luQWNjZXNz
Q29udHJvbC5jcHAgKi87IH07CiAJCUUxQzRERTY5MEVBNzVDMUUwMDIzQ0NENiAvKiBBY3RpdmVE
T01PYmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEUxQzRERTY4MEVBNzVDMUUwMDIzQ0NENiAvKiBBY3RpdmVET01PYmplY3QuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMUM0REU2RTBFQTc1QzY1
MDAyM0NDRDYgLyogQWN0aXZlRE9NT2JqZWN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQzRERTZEMEVBNzVDNjUwMDIzQ0NENiAvKiBBY3RpdmVE
T01PYmplY3QuY3BwICovOyB9OwotCQlFMUM2NTcxMjE4MTVGOUREMDAyNTZDREQgLyogSlNDcnlw
dG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUxQzY1NzEwMTgxNUY5REQwMDI1NkNERCAvKiBKU0NyeXB0b0FsZ29y
aXRobURpY3Rpb25hcnkuY3BwICovOyB9OwotCQlFMUM2NTcxMzE4MTVGOUREMDAyNTZDREQgLyog
SlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMUM2NTcxMTE4MTVGOUREMDAyNTZDREQgLyogSlNDcnlwdG9B
bGdvcml0aG1EaWN0aW9uYXJ5LmggKi87IH07Ci0JCUUxQzY1NzFGMTgxNkU1MDMwMDI1NkNERCAv
KiBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDNjU3MUUxODE2RTUwMzAwMjU2Q0REIC8q
IENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVkLmggKi87IH07CiAJCUUxQzY1NzI1
MTgxNkU2OUQwMDI1NkNERCAvKiBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUM2NTcyNDE4MTZFNjlEMDAy
NTZDREQgLyogQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllci5oICovOyB9OwotCQlFMUM2NTcyNzE4
MTZGOUZFMDAyNTZDREQgLyogQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQzY1NzI2MTgx
NkY5RkUwMDI1NkNERCAvKiBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZC5oICov
OyB9OwogCQlFMUM4QkU1RDBFOEJEMTVBMDA2NENCN0QgLyogSlNXb3JrZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDOEJFNUMwRThCRDE1QTAw
NjRDQjdEIC8qIEpTV29ya2VyLmNwcCAqLzsgfTsKIAkJRTFDOTRBRjkxOTEzMDNGMDAwRDVBODkz
IC8qIEJsb2JQYXJ0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMUM5NEFGNzE5MTMwM0YwMDBENUE4OTMgLyogQmxvYlBhcnQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMUNBQTVDNjBFOEJEMjM2MDBB
NzNFQ0EgLyogSlNXb3JrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxQ0FBNUM1MEU4QkQyMzYwMEE3M0VDQSAvKiBKU1dvcmtlci5oICovOyB9OwpA
QCAtNjY2NCw3ICs2NjQyLDYgQEAKIAkJRTFGRTEzNzAxODNGRUNGMDAwODkyRjEzIC8qIENyeXB0
b0FsZ29yaXRobVJTQV9PQUVQTWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUxRkUxMzZFMTgzRkVDRjAwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0
aG1SU0FfT0FFUE1hYy5jcHAgKi87IH07CiAJCUUxRkUxMzc0MTg0MDJBNjcwMDg5MkYxMyAvKiBD
b21tb25DcnlwdG9VdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTFGRTEzNzIxODQwMkE2NzAwODkyRjEzIC8qIENvbW1vbkNyeXB0b1V0
aWxpdGllcy5jcHAgKi87IH07CiAJCUUxRkUxMzc1MTg0MDJBNjcwMDg5MkYxMyAvKiBDb21tb25D
cnlwdG9VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUxRkUxMzczMTg0MDJBNjcwMDg5MkYxMyAvKiBDb21tb25DcnlwdG9VdGlsaXRpZXMu
aCAqLzsgfTsKLQkJRTFGRTEzNzcxODREMUUzMzAwODkyRjEzIC8qIENyeXB0b0FsZ29yaXRobVJz
YU9hZXBQYXJhbXNEZXByZWNhdGVkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMUZFMTM3NjE4NEQxRTMzMDA4OTJGMTMgLyogQ3J5cHRvQWxnb3JpdGht
UnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQuaCAqLzsgfTsKIAkJRTFGRTEzN0ExODREMjFCQjAwODky
RjEzIC8qIENyeXB0b0FsZ29yaXRobUFFU19LVy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUZFMTM3ODE4NEQyMUJCMDA4OTJGMTMgLyogQ3J5cHRv
QWxnb3JpdGhtQUVTX0tXLmNwcCAqLzsgfTsKIAkJRTFGRTEzN0IxODREMjFCQjAwODkyRjEzIC8q
IENyeXB0b0FsZ29yaXRobUFFU19LVy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTFGRTEzNzkxODREMjFCQjAwODkyRjEzIC8qIENyeXB0b0FsZ29yaXRo
bUFFU19LVy5oICovOyB9OwogCQlFMUZFMTM3RTE4NEQyNzAyMDA4OTJGMTMgLyogQ3J5cHRvQWxn
b3JpdGhtQUVTX0tXTWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxRkUxMzdDMTg0RDI3MDIwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1BRVNf
S1dNYWMuY3BwICovOyB9OwpAQCAtMTAzMjAsOSArMTAyOTcsNiBAQAogCQk1NzA2QTY5NTFEREU1
Qzk1MDBBMDNCMTQgLyogQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MDZBNjk3MURERTVFNDYwMEEwM0IxNCAvKiBK
U1JzYU9hZXBQYXJhbXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSc2FP
YWVwUGFyYW1zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MDZBNjk5MURERTVF
ODUwMEEwM0IxNCAvKiBKU1JzYU9hZXBQYXJhbXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNSc2FPYWVwUGFyYW1zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJNTcwOUU4Q0ExRDQxM0NFMzAwMzI0NEFDIC8qIFdlYktpdFN1YnRsZUNyeXB0by5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJLaXRTdWJ0bGVDcnlw
dG8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NzA5RThDQjFENDEzQ0UzMDAz
MjQ0QUMgLyogV2ViS2l0U3VidGxlQ3J5cHRvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYktpdFN1YnRsZUNyeXB0by5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk1NzA5RThDQzFENDEzQ0UzMDAzMjQ0QUMgLyogV2ViS2l0U3VidGxlQ3J5cHRvLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBXZWJLaXRTdWJ0bGVDcnlwdG8uaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1NzEyNTI2ODFFNTI0RUIxMDA4RkYzNjkgLyogQ3J5cHRvQWxnb3Jp
dGhtQUVTX0NGQi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdv
cml0aG1BRVNfQ0ZCLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3MTI1MjZBMUU1
MjUyN0MwMDhGRjM2OSAvKiBDcnlwdG9BbGdvcml0aG1BRVNfQ0ZCLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobUFFU19DRkIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzFGMjE4ODFEQTU3QzU0MDA1QzlFRkQgLyogSlNT
dWJ0bGVDcnlwdG8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNTdWJ0bGVD
cnlwdG8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1MDk4LDE5ICsxNTA3Miwx
MSBAQAogCQlFMTI1RjgzMzE4MjJGMThBMDBEODRDRDkgLyogQ3J5cHRvS2V5SE1BQy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcnlwdG9LZXlITUFDLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTEyNUY4MzQxODIyRjE4QTAwRDg0Q0Q5IC8qIENy
eXB0b0tleUhNQUMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvS2V5
SE1BQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTI1RjgzNzE4MjJGMUVCMDBE
ODRDRDkgLyogQ3J5cHRvQWxnb3JpdGhtSE1BQ01hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1ITUFDTWFjLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJRTEyNUY4MzkxODI0MTA0ODAwRDg0Q0Q5IC8qIENyeXB0b0FsZ29y
aXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0ZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zRGVwcmVjYXRlZC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlFMTI1RjgzQjE4MjQxMUU3MDBEODRDRDkgLyogSlNDcnlwdG9P
cGVyYXRpb25EYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
Q3J5cHRvT3BlcmF0aW9uRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUx
MjVGODNDMTgyNDExRTcwMEQ4NENEOSAvKiBKU0NyeXB0b09wZXJhdGlvbkRhdGEuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDcnlwdG9PcGVyYXRpb25EYXRhLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxMjVGODNGMTgyNDI1M0EwMEQ4NENEOSAvKiBDcnlw
dG9BbGdvcml0aG1BRVNfQ0JDLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IENyeXB0b0FsZ29yaXRobUFFU19DQkMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFMTI1Rjg0MDE4MjQyNTNBMDBEODRDRDkgLyogQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1BRVNfQ0JD
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxMjVGODQzMTgyNDI1QzkwMEQ4NENE
OSAvKiBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobUFFU19DQkNNYWMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMTI1Rjg0QjE4MjQyODlEMDBEODRDRDkgLyogQ3J5cHRvS2V5
QUVTLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b0tleUFF
Uy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxMjVGODRDMTgyNDI4OUQwMEQ4
NENEOSAvKiBDcnlwdG9LZXlBRVMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q3J5cHRvS2V5QUVTLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUxMjVGODRGMTgy
ODNBNTYwMEQ4NENEOSAvKiBKU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0suY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldL
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTEyNUY4NTAxODI4M0E1NjAwRDg0
Q0Q5IC8qIEpTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0suaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJRTEyNUY4NTUxODJDMEY4MzAwRDg0Q0Q5IC8qIENyeXB0b0tleVNl
cmlhbGl6YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvS2V5
U2VyaWFsaXphdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMTI1Rjg1NzE4
MkMxQUE2MDBEODRDRDkgLyogQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTEyNUY4NTgxODJDMUFBNjAwRDg0Q0Q5
IC8qIENyeXB0b0tleVNlcmlhbGl6YXRpb25SYXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFMTI1Rjg1RDE4MkMyREY2MDBEODRDRDkgLyogQ3J5cHRvS2V5RGF0YS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9LZXlEYXRhLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxMjVGODYxMTgyQzMwM0EwMEQ4NENEOSAvKiBDcnlwdG9L
ZXlEYXRhT2N0ZXRTZXF1ZW5jZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBDcnlwdG9LZXlEYXRhT2N0ZXRTZXF1ZW5jZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUUxMjVGODYyMTgyQzMwM0EwMEQ4NENEOSAvKiBDcnlwdG9LZXlEYXRhT2N0ZXRT
ZXF1ZW5jZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9LZXlEYXRh
T2N0ZXRTZXF1ZW5jZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTUxOTcsOSAr
MTUxNjMsNyBAQAogCQlFMTlBQzNFQjE4MjREQzc5MDAzNDk0MjYgLyogQ3J5cHRvQWxnb3JpdGht
U0hBMzg0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRo
bVNIQTM4NC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTlBQzNFQzE4MjREQzc5
MDAzNDk0MjYgLyogQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVNIQTUxMi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUUxOUFDM0VEMTgyNERDNzkwMDM0OTQyNiAvKiBDcnlwdG9BbGdv
cml0aG1TSEE1MTIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxn
b3JpdGhtU0hBNTEyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUxOUFDM0Y2MTgy
NEU1RDEwMDM0OTQyNiAvKiBDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXNEZXByZWNhdGVk
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobUFlc0tl
eUdlblBhcmFtc0RlcHJlY2F0ZWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE5
QUMzRjgxODI1NjZGNzAwMzQ5NDI2IC8qIENyeXB0b0tleU1hYy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcnlwdG9LZXlNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlFMTlEQTI5QjE4MTg5QUREMDAwODhCQzggLyogQ3J5cHRvQWxnb3JpdGht
SG1hY0tleVBhcmFtc0RlcHJlY2F0ZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtc0RlcHJlY2F0ZWQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTFBMTQ3MDcxMTEwMkIxNTAwRUVDMEYzIC8qIENvbnRhaW5lck5v
ZGVBbGdvcml0aG1zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnRhaW5l
ck5vZGVBbGdvcml0aG1zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxQTMxNjJC
MTM0QkMzMkQwMDdDOUE0RiAvKiBXZWJOU0F0dHJpYnV0ZWRTdHJpbmdFeHRyYXMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTlNBdHRyaWJ1dGVkU3RyaW5nRXh0cmFzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxQTMxNjJDMTM0QkMzMkQwMDdDOUE0RiAv
KiBXZWJOU0F0dHJpYnV0ZWRTdHJpbmdFeHRyYXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBXZWJOU0F0dHJpYnV0ZWRTdHJpbmdFeHRyYXMubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTIzNCwxMiArMTUxOTgsOSBAQAogCQlFMUJCODRBQzE4
MjJDQTc0MDA1MjUwNDMgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnlNYWMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnlNYWMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUJEMzMxNzE4MkQ4REREMDBDMDVE
OUYgLyogQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUJEMzMxODE4MkQ4REREMDBDMDVE
OUYgLyogQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTFCRDMzMUIxODJEOEVFOTAwQzA1RDlGIC8qIENy
eXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc0RlcHJlY2F0ZWQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMUJEMzMxRDE4MkQ4RjQyMDBDMDVEOUYgLyog
Q3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zRGVwcmVjYXRlZC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXNEZXByZWNh
dGVkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxQkU1MTJCMENGNkM1MTIwMDJF
QTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gWFNMVFVuaWNvZGVTb3J0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTFCRTUxMkMwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYU0xUVW5pY29kZVNvcnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTFDMjY2RDYxODMxN0FCNDAwM0Y4QjMzIC8qIENyeXB0b0FsZ29y
aXRobVJTQVNTQV9QS0NTMV92MV81TWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81TWFjLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTFDMjY2REExODMxOTkzNTAwM0Y4QjMzIC8qIENyeXB0
b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERl
cHJlY2F0ZWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFDMjY2REMxODMxOUYz
MTAwM0Y4QjMzIC8qIENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFDMjY2REQxODMxOUYzMTAwM0Y4QjMzIC8q
IENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUUxQzM2MkVEMEVBRjJBQTkwMDc0MTBCQyAvKiBKU1dvcmtlckxvY2F0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV29ya2VyTG9jYXRpb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1MjU0LDExICsxNTIxNSw3IEBACiAJCUUxQzQx
NjE2MEY2NTYzMTgwMDkyRDJGQiAvKiBDcm9zc09yaWdpbkFjY2Vzc0NvbnRyb2wuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9s
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFDNERFNjgwRUE3NUMxRTAwMjND
Q0Q2IC8qIEFjdGl2ZURPTU9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBBY3RpdmVET01PYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFDNERF
NkQwRUE3NUM2NTAwMjNDQ0Q2IC8qIEFjdGl2ZURPTU9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBY3RpdmVET01PYmplY3QuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlFMUM2NTcxMDE4MTVGOUREMDAyNTZDREQgLyogSlNDcnlwdG9BbGdv
cml0aG1EaWN0aW9uYXJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUUxQzY1NzExMTgxNUY5REQwMDI1NkNERCAvKiBKU0NyeXB0b0FsZ29yaXRobURpY3Rp
b25hcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDcnlwdG9BbGdvcml0
aG1EaWN0aW9uYXJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUxQzY1NzFFMTgx
NkU1MDMwMDI1NkNERCAvKiBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1z
RGVwcmVjYXRlZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUM2NTcyNDE4MTZF
NjlEMDAyNTZDREQgLyogQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUxQzY1NzI2MTgxNkY5RkUwMDI1NkNERCAvKiBDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMUM2Q0ZDMjE3NDZEMjkzMDA3Qjg3QTEgLyogRE9NV2luZG93
Q29uc3RydWN0b3JzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBET01XaW5kb3dDb25zdHJ1Y3RvcnMuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlFMUM4QkU1QzBFOEJEMTVBMDA2NENCN0QgLyogSlNXb3Jr
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXb3JrZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUM5NEFGNzE5MTMwM0YwMDBENUE4OTMg
LyogQmxvYlBhcnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmxvYlBhcnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1Mjg1LDE1ICsxNTI0MiwxMSBAQAog
CQlFMUZFMTM2RTE4M0ZFQ0YwMDA4OTJGMTMgLyogQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVBNYWMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGht
UlNBX09BRVBNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUZFMTM3MjE4
NDAyQTY3MDA4OTJGMTMgLyogQ29tbW9uQ3J5cHRvVXRpbGl0aWVzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbW1vbkNyeXB0b1V0aWxpdGllcy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRkUxMzczMTg0MDJBNjcwMDg5MkYxMyAvKiBDb21t
b25DcnlwdG9VdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29t
bW9uQ3J5cHRvVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUxRkUx
Mzc2MTg0RDFFMzMwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVj
YXRlZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1S
c2FPYWVwUGFyYW1zRGVwcmVjYXRlZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
MUZFMTM3ODE4NEQyMUJCMDA4OTJGMTMgLyogQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobUFFU19LVy5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxRkUxMzc5MTg0RDIxQkIwMDg5MkYx
MyAvKiBDcnlwdG9BbGdvcml0aG1BRVNfS1cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUUxRkUxMzdDMTg0RDI3MDIwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1BRVNfS1dNYWMu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGht
QUVTX0tXTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFGRjU3QTIwRjAx
MjU1QjAwODkxRUJCIC8qIFRocmVhZEdsb2JhbERhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVGhyZWFkR2xvYmFsRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFMUZGNTdBNTBGMDEyNTZCMDA4OTFFQkIgLyogVGhyZWFkR2xvYmFsRGF0YS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUaHJlYWRHbG9iYWxEYXRhLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTFGRjhGNjIxODA3NDVEODAwMTMyNjc0IC8q
IEpTV2ViS2l0U3VidGxlQ3J5cHRvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTV2ViS2l0U3VidGxlQ3J5cHRvLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJRTFGRjhGNjMxODA3NDVEODAwMTMyNjc0IC8qIEpTV2ViS2l0U3VidGxlQ3J5cHRvLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViS2l0U3VidGxlQ3J5cHRvLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUUxRkY4RjY2MTgwNzQ2MDgwMDEzMjY3NCAv
KiBKU1dlYktpdFN1YnRsZUNyeXB0b0N1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU1dlYktpdFN1YnRsZUNyeXB0b0N1c3RvbS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUUxRkY4RjZBMTgwREI1QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdv
cml0aG1SZWdpc3RyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
cnlwdG9BbGdvcml0aG1SZWdpc3RyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUUxRkY4RjZCMTgwREI1QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMzA1OTI2MTFFMjdBMzhDMDBENTdDOTgg
LyogSW5saW5lQ2xhc3NpY1NjcmlwdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBJbmxpbmVDbGFzc2ljU2NyaXB0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTIzNTg2LDEyICsyMzUzOSw2IEBACiAJCQkJMTQzMkU4NDYwQzUxNDkzODAwQjE1MDBG
IC8qIEdDQ29udHJvbGxlci5oICovLAogCQkJCUM1ODVBNjYwMTFENEZBQzUwMDRDM0U0QiAvKiBJ
REJCaW5kaW5nVXRpbGl0aWVzLmNwcCAqLywKIAkJCQlDNTg1QTY2MTExRDRGQUM1MDA0QzNFNEIg
LyogSURCQmluZGluZ1V0aWxpdGllcy5oICovLAotCQkJCUUxQzY1NzEwMTgxNUY5REQwMDI1NkNE
RCAvKiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuY3BwICovLAotCQkJCUUxQzY1NzExMTgx
NUY5REQwMDI1NkNERCAvKiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuaCAqLywKLQkJCQlF
MTI1Rjg0RjE4MjgzQTU2MDBEODRDRDkgLyogSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLLmNw
cCAqLywKLQkJCQlFMTI1Rjg1MDE4MjgzQTU2MDBEODRDRDkgLyogSlNDcnlwdG9LZXlTZXJpYWxp
emF0aW9uSldLLmggKi8sCi0JCQkJRTEyNUY4M0IxODI0MTFFNzAwRDg0Q0Q5IC8qIEpTQ3J5cHRv
T3BlcmF0aW9uRGF0YS5jcHAgKi8sCi0JCQkJRTEyNUY4M0MxODI0MTFFNzAwRDg0Q0Q5IC8qIEpT
Q3J5cHRvT3BlcmF0aW9uRGF0YS5oICovLAogCQkJCTlCRDRFOTE0MUM0NjI4NzIwMDUwNjVCQyAv
KiBKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuY3BwICovLAogCQkJCTlCRDRFOTE1MUM0NjI4NzIw
MDUwNjVCQyAvKiBKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuaCAqLywKIAkJCQk3QzU3QkZFNjFF
REUyRjVCMDA1MzRBNDggLyogSlNET01BYnN0cmFjdE9wZXJhdGlvbnMuaCAqLywKQEAgLTIzNjgw
LDcgKzIzNjI3LDYgQEAKIAkJCQlCQzU4MjNGNDBDMEE5OERGMDA1M0YxQjUgLyogSlNIVE1MRWxl
bWVudEN1c3RvbS5jcHAgKi8sCiAJCQkJQkNFMUM0M0YwRDk4MzBGNDAwM0IwMkYyIC8qIEpTTG9j
YXRpb25DdXN0b20uY3BwICovLAogCQkJCTQxOEMzOTVEMUM4RjBBQUIwMDUxQzhBMyAvKiBKU1Jl
YWRhYmxlU3RyZWFtU291cmNlQ3VzdG9tLmNwcCAqLywKLQkJCQlFMUZGOEY2NjE4MDc0NjA4MDAx
MzI2NzQgLyogSlNXZWJLaXRTdWJ0bGVDcnlwdG9DdXN0b20uY3BwICovLAogCQkJKTsKIAkJCW5h
bWUgPSBDdXN0b207CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjQ2MjYsOCArMjQ1
NzIsNiBAQAogCQkJCTU3Nzc3RTNCMUU3MTI0MjIwMEVFMUE4RCAvKiBDcnlwdG9LZXlSYXcuaCAq
LywKIAkJCQk1N0UyMzM2QTFEQ0MyNjI0MDBGMjhEMDEgLyogQ3J5cHRvS2V5UlNBLmNwcCAqLywK
IAkJCQlFMTY0RkFBMjE4MzE1QkY0MDBEQjRFNjEgLyogQ3J5cHRvS2V5UlNBLmggKi8sCi0JCQkJ
RTEyNUY4NTcxODJDMUFBNjAwRDg0Q0Q5IC8qIENyeXB0b0tleVNlcmlhbGl6YXRpb25SYXcuY3Bw
ICovLAotCQkJCUUxMjVGODU4MTgyQzFBQTYwMEQ4NENEOSAvKiBDcnlwdG9LZXlTZXJpYWxpemF0
aW9uUmF3LmggKi8sCiAJCQkJN0M5QUNBQTYxRjNDQ0VCNDAwRjNBQTA5IC8qIENyeXB0b1JzYUhh
c2hlZEtleUFsZ29yaXRobS5oICovLAogCQkJCTdDOUFDQUE3MUYzQ0NFQjQwMEYzQUEwOSAvKiBD
cnlwdG9Sc2FIYXNoZWRLZXlBbGdvcml0aG0uaWRsICovLAogCQkJCTdDOUFDQUEyMUYzQ0NFNjkw
MEYzQUEwOSAvKiBDcnlwdG9Sc2FLZXlBbGdvcml0aG0uaCAqLywKQEAgLTI0NjQ0LDI4ICsyNDU4
OCwyMCBAQAogCQkJCTU3QjVGODA3MUU1RDE5RjIwMEYzNEY5MCAvKiBBZXNHY21QYXJhbXMuaWRs
ICovLAogCQkJCTU3NzQ4MzEwMURBREM0OTkwMDcxNkVGOSAvKiBBZXNLZXlQYXJhbXMuaWRsICov
LAogCQkJCTU3MjA5M0QyMUREQ0VCOUEwMDMxMEFCMCAvKiBDcnlwdG9BbGdvcml0aG1BZXNDYmND
ZmJQYXJhbXMuaCAqLywKLQkJCQlFMTI1RjgzOTE4MjQxMDQ4MDBEODRDRDkgLyogQ3J5cHRvQWxn
b3JpdGhtQWVzQ2JjUGFyYW1zRGVwcmVjYXRlZC5oICovLAogCQkJCTU3RTFFNUE2MUU4REJEM0Uw
MEVFMzdDOSAvKiBDcnlwdG9BbGdvcml0aG1BZXNDdHJQYXJhbXMuaCAqLywKIAkJCQk1N0I1Rjgw
ODFFNUQxQTk4MDBGMzRGOTAgLyogQ3J5cHRvQWxnb3JpdGhtQWVzR2NtUGFyYW1zLmggKi8sCi0J
CQkJRTE5QUMzRjYxODI0RTVEMTAwMzQ5NDI2IC8qIENyeXB0b0FsZ29yaXRobUFlc0tleUdlblBh
cmFtc0RlcHJlY2F0ZWQuaCAqLywKIAkJCQk1Nzc0ODMxMTFEQURDNTVEMDA3MTZFRjkgLyogQ3J5
cHRvQWxnb3JpdGhtQWVzS2V5UGFyYW1zLmggKi8sCiAJCQkJNTc2ODE0MjkxRTZGOTlDMTAwRTc3
NzU0IC8qIENyeXB0b0FsZ29yaXRobUVjZGhLZXlEZXJpdmVQYXJhbXMuaCAqLywKIAkJCQk1N0VF
QUE0RDFFOUZGQkZDMDA3MDExMjQgLyogQ3J5cHRvQWxnb3JpdGhtRWNkc2FQYXJhbXMuaCAqLywK
IAkJCQk1NzUwQTk3RDFFNkExM0VGMDA3MDVDNEEgLyogQ3J5cHRvQWxnb3JpdGhtRWNLZXlQYXJh
bXMuaCAqLywKIAkJCQk1Nzk1N0NBRjFFOTcyNjQ1MDA4MDcyQUIgLyogQ3J5cHRvQWxnb3JpdGht
SGtkZlBhcmFtcy5oICovLAogCQkJCTU3NzQ4MzE4MURCNDQ5MUYwMDcxNkVGOSAvKiBDcnlwdG9B
bGdvcml0aG1IbWFjS2V5UGFyYW1zLmggKi8sCi0JCQkJRTE5REEyOUIxODE4OUFERDAwMDg4QkM4
IC8qIENyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXNEZXByZWNhdGVkLmggKi8sCi0JCQkJRTFD
NjU3MUUxODE2RTUwMzAwMjU2Q0REIC8qIENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNEZXByZWNh
dGVkLmggKi8sCiAJCQkJNTdFNjU3RUIxRTcxNjJFQTAwRjk0MUNBIC8qIENyeXB0b0FsZ29yaXRo
bVBia2RmMlBhcmFtcy5oICovLAogCQkJCTU3RTIzMzZEMURDRDQzRkQwMEYyOEQwMSAvKiBDcnlw
dG9BbGdvcml0aG1Sc2FIYXNoZWRJbXBvcnRQYXJhbXMuaCAqLywKIAkJCQk1N0UyMzM3NDFEQ0Q2
RDNCMDBGMjhEMDEgLyogQ3J5cHRvQWxnb3JpdGhtUnNhSGFzaGVkS2V5R2VuUGFyYW1zLmggKi8s
CiAJCQkJNTdGRUREM0UxREI2RDU5MjAwRUI5NkY1IC8qIENyeXB0b0FsZ29yaXRobVJzYUtleUdl
blBhcmFtcy5oICovLAotCQkJCUUxQkQzMzFEMTgyRDhGNDIwMEMwNUQ5RiAvKiBDcnlwdG9BbGdv
cml0aG1Sc2FLZXlHZW5QYXJhbXNEZXByZWNhdGVkLmggKi8sCi0JCQkJRTFDMjY2REExODMxOTkz
NTAwM0Y4QjMzIC8qIENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRl
ZC5oICovLAogCQkJCTU3MDZBNjk1MURERTVDOTUwMEEwM0IxNCAvKiBDcnlwdG9BbGdvcml0aG1S
c2FPYWVwUGFyYW1zLmggKi8sCi0JCQkJRTFGRTEzNzYxODREMUUzMzAwODkyRjEzIC8qIENyeXB0
b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVkLmggKi8sCiAJCQkJNTcyMUE5ODgxRUNF
NTcwNDAwODEyOTVBIC8qIENyeXB0b0FsZ29yaXRobVJzYVBzc1BhcmFtcy5oICovLAotCQkJCUUx
QkQzMzFCMTgyRDhFRTkwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNEZXBy
ZWNhdGVkLmggKi8sCiAJCQkJNTc2ODE0MjgxRTZGOThBRDAwRTc3NzU0IC8qIEVjZGhLZXlEZXJp
dmVQYXJhbXMuaWRsICovLAogCQkJCTU3RUVBQTRFMUU5RkZCRkMwMDcwMTEyNCAvKiBFY2RzYVBh
cmFtcy5pZGwgKi8sCiAJCQkJNTc1MEE5N0MxRTZBMTJCNDAwNzA1QzRBIC8qIEVjS2V5UGFyYW1z
LmlkbCAqLywKQEAgLTI0ODAwLDcgKzI0NzM2LDYgQEAKIAkJCQlFMUM2NTcyNDE4MTZFNjlEMDAy
NTZDREQgLyogQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllci5oICovLAogCQkJCTU3MzQ4OTM4MURB
QzZCNkQwMERDMDY2NyAvKiBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzLmggKi8sCiAJCQkJNTc0
QUM3NTMxREFDMzY3RDAwRTk3NDRDIC8qIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMuaWRsICov
LAotCQkJCUUxQzY1NzI2MTgxNkY5RkUwMDI1NkNERCAvKiBDcnlwdG9BbGdvcml0aG1QYXJhbWV0
ZXJzRGVwcmVjYXRlZC5oICovLAogCQkJCUUxRkY4RjZBMTgwREI1QkUwMDEzMjY3NCAvKiBDcnlw
dG9BbGdvcml0aG1SZWdpc3RyeS5jcHAgKi8sCiAJCQkJRTFGRjhGNkIxODBEQjVCRTAwMTMyNjc0
IC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmggKi8sCiAJCQkJRTE1N0E4RTIxODE3M0EzQTAw
OUY4MjFEIC8qIENyeXB0b0tleS5jcHAgKi8sCkBAIC0yNDgxMCw3ICsyNDc0NSw2IEBACiAJCQkJ
N0M5QUNBQzkxRjQwQjk2QTAwRjNBQTA5IC8qIENyeXB0b0tleUZvcm1hdC5oICovLAogCQkJCUUx
RjgwQjg2MTgzMTcyNTIwMDc4ODVDMyAvKiBDcnlwdG9LZXlQYWlyLmggKi8sCiAJCQkJRTFGODBC
ODQxODMxNzI0NzAwNzg4NUMzIC8qIENyeXB0b0tleVBhaXIuaWRsICovLAotCQkJCUUxMjVGODU1
MTgyQzBGODMwMEQ4NENEOSAvKiBDcnlwdG9LZXlTZXJpYWxpemF0aW9uLmggKi8sCiAJCQkJRTE5
NzI3MTUxODIwNTQ5RTAwNTkyRDUxIC8qIENyeXB0b0tleVR5cGUuaCAqLywKIAkJCQlFMTcyQUY2
RjE4MEYyODk1MDBGQkFEQjkgLyogQ3J5cHRvS2V5VXNhZ2UuaCAqLywKIAkJCQk1N0QwMDE4QjFE
RDNEQkE0MDBFRDE5RDkgLyogQ3J5cHRvS2V5VXNhZ2UuaWRsICovLApAQCAtMjQ4MjIsOSArMjQ3
NTYsNiBAQAogCQkJCTU3NzhCRDgzMURBNDgxN0IwMDlFMzAwOSAvKiBTdWJ0bGVDcnlwdG8uY3Bw
ICovLAogCQkJCTU3NzhCRDgxMURBNDgwMkMwMDlFMzAwOSAvKiBTdWJ0bGVDcnlwdG8uaCAqLywK
IAkJCQk1Nzc4QkQ4MDFEQTQ3MzNFMDA5RTMwMDkgLyogU3VidGxlQ3J5cHRvLmlkbCAqLywKLQkJ
CQk1NzA5RThDQTFENDEzQ0UzMDAzMjQ0QUMgLyogV2ViS2l0U3VidGxlQ3J5cHRvLmNwcCAqLywK
LQkJCQk1NzA5RThDQjFENDEzQ0UzMDAzMjQ0QUMgLyogV2ViS2l0U3VidGxlQ3J5cHRvLmggKi8s
Ci0JCQkJNTcwOUU4Q0MxRDQxM0NFMzAwMzI0NEFDIC8qIFdlYktpdFN1YnRsZUNyeXB0by5pZGwg
Ki8sCiAJCQkpOwogCQkJcGF0aCA9IGNyeXB0bzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CkBAIC0yNDg4OCw4ICsyNDgxOSw2IEBACiAJCQkJNTc1NDcxOTkxRUNFNUQyQTAwREQ2M0IyIC8q
IEpTUnNhUHNzUGFyYW1zLmggKi8sCiAJCQkJNTcxRjIxOEExREE1N0M3QTAwNUM5RUZEIC8qIEpT
U3VidGxlQ3J5cHRvLmNwcCAqLywKIAkJCQk1NzFGMjE4ODFEQTU3QzU0MDA1QzlFRkQgLyogSlNT
dWJ0bGVDcnlwdG8uaCAqLywKLQkJCQlFMUZGOEY2MjE4MDc0NUQ4MDAxMzI2NzQgLyogSlNXZWJL
aXRTdWJ0bGVDcnlwdG8uY3BwICovLAotCQkJCUUxRkY4RjYzMTgwNzQ1RDgwMDEzMjY3NCAvKiBK
U1dlYktpdFN1YnRsZUNyeXB0by5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBDcnlwdG87CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjY5MjEsMTAgKzI2ODUwLDggQEAKIAkJCQk1N0I1
RjdGOTFFNUJFODQwMDBGMzRGOTAgLyogQ3J5cHRvQWxnb3JpdGhtQUVTX0dDTS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRTFGRTEzN0IxODREMjFCQjAwODkyRjEzIC8qIENyeXB0b0FsZ29yaXRobUFF
U19LVy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcyMDkzRDMxRERDRUI5QTAwMzEwQUIwIC8qIENy
eXB0b0FsZ29yaXRobUFlc0NiY0NmYlBhcmFtcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTEyNUY4
M0ExODI0MTA0ODAwRDg0Q0Q5IC8qIENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0
ZWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3RTFFNUE3MUU4REJEM0UwMEVFMzdDOSAvKiBDcnlw
dG9BbGdvcml0aG1BZXNDdHJQYXJhbXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3QjVGODA5MUU1
RDFBOTgwMEYzNEY5MCAvKiBDcnlwdG9BbGdvcml0aG1BZXNHY21QYXJhbXMuaCBpbiBIZWFkZXJz
ICovLAotCQkJCUUxOUFDM0Y3MTgyNEU1RDEwMDM0OTQyNiAvKiBDcnlwdG9BbGdvcml0aG1BZXNL
ZXlHZW5QYXJhbXNEZXByZWNhdGVkLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Nzc0ODMxMjFEQURD
NTVEMDA3MTZFRjkgLyogQ3J5cHRvQWxnb3JpdGhtQWVzS2V5UGFyYW1zLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1NzUwQTk4NzFFNkEyMTY4MDA3MDVDNEEgLyogQ3J5cHRvQWxnb3JpdGhtRUNESC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNTc2ODE0MkExRTZGOTlDMTAwRTc3NzU0IC8qIENyeXB0b0Fs
Z29yaXRobUVjZGhLZXlEZXJpdmVQYXJhbXMuaCBpbiBIZWFkZXJzICovLApAQCAtMjY5MzUsMTEg
KzI2ODYyLDggQEAKIAkJCQk1Nzk1N0NCMjFFOTcyNjQ1MDA4MDcyQUIgLyogQ3J5cHRvQWxnb3Jp
dGhtSGtkZlBhcmFtcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEyNUY4MzIxODIyRjExQjAwRDg0
Q0Q5IC8qIENyeXB0b0FsZ29yaXRobUhNQUMuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3NzQ4MzE5
MURCNDQ5MUYwMDcxNkVGOSAvKiBDcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zLmggaW4gSGVh
ZGVycyAqLywKLQkJCQlFMTlEQTI5QzE4MTg5QUREMDAwODhCQzggLyogQ3J5cHRvQWxnb3JpdGht
SG1hY0tleVBhcmFtc0RlcHJlY2F0ZWQuaCBpbiBIZWFkZXJzICovLAotCQkJCUUxQzY1NzFGMTgx
NkU1MDMwMDI1NkNERCAvKiBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRTFDNjU3MjUxODE2RTY5RDAwMjU2Q0REIC8qIENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3MzQ4OTM5MURBQzZCNkUwMERD
MDY2NyAvKiBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywKLQkJCQlF
MUM2NTcyNzE4MTZGOUZFMDAyNTZDREQgLyogQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJl
Y2F0ZWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3Nzc3RTM5MUU3MTIxN0QwMEVFMUE4RCAvKiBD
cnlwdG9BbGdvcml0aG1QQktERjIuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3RTY1N0VDMUU3MTYy
RUEwMEY5NDFDQSAvKiBDcnlwdG9BbGdvcml0aG1QYmtkZjJQYXJhbXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCUUxRkY4RjZEMTgwREI1QkUwMDEzMjY3NCAvKiBDcnlwdG9BbGdvcml0aG1SZWdpc3Ry
eS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjk0OCwxMyArMjY4NzIsOSBAQAogCQkJCUUxMjMzRjBE
MTg1QTNFM0IwMDhERkFGNSAvKiBDcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81LmggaW4g
SGVhZGVycyAqLywKIAkJCQk1N0UyMzM2RTFEQ0Q0M0ZEMDBGMjhEMDEgLyogQ3J5cHRvQWxnb3Jp
dGhtUnNhSGFzaGVkSW1wb3J0UGFyYW1zLmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0ZFREQzRjFE
QjZENTkyMDBFQjk2RjUgLyogQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zLmggaW4gSGVh
ZGVycyAqLywKLQkJCQlFMUJEMzMxRTE4MkQ4RjQyMDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGht
UnNhS2V5R2VuUGFyYW1zRGVwcmVjYXRlZC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTFDMjY2REIx
ODMxOTkzNTAwM0Y4QjMzIC8qIENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVw
cmVjYXRlZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcwNkE2OTYxRERFNUM5NTAwQTAzQjE0IC8q
IENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXMuaCBpbiBIZWFkZXJzICovLAotCQkJCUUxRkUx
Mzc3MTg0RDFFMzMwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVj
YXRlZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcyMUE5OEIxRUNFNTcwNDAwODEyOTVBIC8qIENy
eXB0b0FsZ29yaXRobVJzYVBzc1BhcmFtcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTFCRDMzMUEx
ODJEOERERDAwQzA1RDlGIC8qIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmggaW4g
SGVhZGVycyAqLywKLQkJCQlFMUJEMzMxQzE4MkQ4RUU5MDBDMDVEOUYgLyogQ3J5cHRvQWxnb3Jp
dGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEyNUY4MkMx
ODIyQ0ZFQzAwRDg0Q0Q5IC8qIENyeXB0b0FsZ29yaXRobVNIQTEuaCBpbiBIZWFkZXJzICovLAog
CQkJCUUxOUFDM0VGMTgyNERDNzkwMDM0OTQyNiAvKiBDcnlwdG9BbGdvcml0aG1TSEEyMjQuaCBp
biBIZWFkZXJzICovLAogCQkJCUUxOUFDM0YxMTgyNERDNzkwMDM0OTQyNiAvKiBDcnlwdG9BbGdv
cml0aG1TSEEyNTYuaCBpbiBIZWFkZXJzICovLApAQCAtMjY5NzQsOCArMjY4OTQsNiBAQAogCQkJ
CUUxRjgwQjg4MTgzMTcyNTIwMDc4ODVDMyAvKiBDcnlwdG9LZXlQYWlyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk1N0U2NTdERjFFNzEzNzNBMDBGOTQxQ0EgLyogQ3J5cHRvS2V5UmF3LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFMTY0RkFBMzE4MzE1QkY0MDBEQjRFNjEgLyogQ3J5cHRvS2V5UlNBLmgg
aW4gSGVhZGVycyAqLywKLQkJCQlFMTI1Rjg1NjE4MkMwRjgzMDBEODRDRDkgLyogQ3J5cHRvS2V5
U2VyaWFsaXphdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTEyNUY4NUExODJDMUFBNjAwRDg0
Q0Q5IC8qIENyeXB0b0tleVNlcmlhbGl6YXRpb25SYXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUUx
OTcyNzE2MTgyMDU0OUUwMDU5MkQ1MSAvKiBDcnlwdG9LZXlUeXBlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlFMTcyQUY3MDE4MEYyODk1MDBGQkFEQjkgLyogQ3J5cHRvS2V5VXNhZ2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTdDOUFDQUE4MUYzQ0NFQjQwMEYzQUEwOSAvKiBDcnlwdG9Sc2FIYXNoZWRL
ZXlBbGdvcml0aG0uaCBpbiBIZWFkZXJzICovLApAQCAtMjc4ODgsMTYgKzI3ODA2LDEzIEBACiAJ
CQkJNzdENTEwMDIxRUQ0RjcxODAwREE0Qzg3IC8qIEpTQ3JlZGVudGlhbFVzZXJEYXRhLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5NzVDQTJBMjEzMDM2NzlEMDBFOTlBRDkgLyogSlNDcnlwdG8uaCBp
biBIZWFkZXJzICovLAogCQkJCTdDOUFDQUI4MUYzQ0YxQUUwMEYzQUEwOSAvKiBKU0NyeXB0b0Fl
c0tleUFsZ29yaXRobS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTFDNjU3MTMxODE1RjlERDAwMjU2
Q0REIC8qIEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTczOUUxMkYxREFDN0Y3ODAwRTE0MzgzIC8qIEpTQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJN0M5QUNBQkExRjNDRjFBRTAwRjNBQTA5IC8qIEpTQ3J5cHRv
RWNLZXlBbGdvcml0aG0uaCBpbiBIZWFkZXJzICovLAogCQkJCTdDOUFDQUJDMUYzQ0YxQUUwMEYz
QUEwOSAvKiBKU0NyeXB0b0htYWNLZXlBbGdvcml0aG0uaCBpbiBIZWFkZXJzICovLAogCQkJCUUx
NTdBOEUxMTgxNzMzMUMwMDlGODIxRCAvKiBKU0NyeXB0b0tleS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJN0M5QUNBQkUxRjNDRjFBRjAwRjNBQTA5IC8qIEpTQ3J5cHRvS2V5QWxnb3JpdGhtLmggaW4g
SGVhZGVycyAqLywKIAkJCQlFMUY4MEI4RTE4MzE3MkI1MDA3ODg1QzMgLyogSlNDcnlwdG9LZXlQ
YWlyLmggaW4gSGVhZGVycyAqLywKLQkJCQlFMTI1Rjg1MjE4MjgzQTU2MDBEODRDRDkgLyogSlND
cnlwdG9LZXlTZXJpYWxpemF0aW9uSldLLmggaW4gSGVhZGVycyAqLywKIAkJCQk1N0QwMDE4RDFE
RDU0MTMyMDBFRDE5RDkgLyogSlNDcnlwdG9LZXlVc2FnZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
RTEyNUY4M0UxODI0MTFFNzAwRDg0Q0Q5IC8qIEpTQ3J5cHRvT3BlcmF0aW9uRGF0YS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJN0M5QUNBQzAxRjNDRjFBRjAwRjNBQTA5IC8qIEpTQ3J5cHRvUnNhSGFz
aGVkS2V5QWxnb3JpdGhtLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzlBQ0FDMjFGM0NGMUFGMDBG
M0FBMDkgLyogSlNDcnlwdG9Sc2FLZXlBbGdvcml0aG0uaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
NDZDMUZEMEMwRERDOEYwMDIwQ0ZDMyAvKiBKU0NTU0ZvbnRGYWNlUnVsZS5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yODU1OSw3ICsyODQ3NCw2IEBACiAJCQkJN0NDNjk5NDExOTFFQzVGNTAwQUYyMjcw
IC8qIEpTV2ViS2l0TmFtZXNwYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkRBN0MyNzE4ODMz
MzMyMDBDOTU0QjUgLyogSlNXZWJLaXRQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUV2ZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0OTRCRDc5RTBGNTVDOTRDMDA3NDc4MjggLyogSlNXZWJLaXRQ
b2ludC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTcwQTk5REIxRDQxQTJGMzAwNEVDNjMwIC8qIEpT
V2ViS2l0U3VidGxlQ3J5cHRvLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUMwRkY0MDBFNENFRkFD
MDA3RDZGRTUgLyogSlNXZWJLaXRUcmFuc2l0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTVEQTVFMEZEMTAyQjk1MzgwMDA4OENGOSAvKiBKU1dlYlNvY2tldC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNjVERjMyMDYwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTV2hlZWxFdmVudC5oIGluIEhlYWRl
cnMgKi8sCkBAIC0zMDE5MCw3ICszMDEwNCw2IEBACiAJCQkJN0M0OEE2RDExOTFDOUQ2NTAwMDI2
Njc0IC8qIFdlYktpdE5hbWVzcGFjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVERUJEQTQxNkZC
OTA4NzAwODM2RkUwIC8qIFdlYktpdFBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTQ5NEJENzk1MEY1NUM4RUUwMDc0NzgyOCAvKiBXZWJLaXRQb2lu
dC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTcwOUU4Q0YxRDQxM0Q5QTAwMzI0NEFDIC8qIFdlYktp
dFN1YnRsZUNyeXB0by5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFDMEZGMjUwRTRDRUI2RTAwN0Q2
RkU1IC8qIFdlYktpdFRyYW5zaXRpb25FdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDRjMz
MkYwRjJCOUEyNTAwNEI2Nzk1IC8qIFdlYkxheWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzA5
RDc4RjFBRTU1NTU0MDA0RTQyRjggLyogV2ViTWVkaWFTZXNzaW9uTWFuYWdlci5oIGluIEhlYWRl
cnMgKi8sCkBAIC0zMTAzMyw3ICszMDk0Niw2IEBACiAJCQkJNTdFNjU3RTAxRTcxMzk3ODAwRjk0
MUNBIC8qIENyeXB0b0tleVJhdy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1N0UyMzM2QjFEQ0My
NjI0MDBGMjhEMDEgLyogQ3J5cHRvS2V5UlNBLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxNjRG
QUE1MTgzMTVFMUEwMERCNEU2MSAvKiBDcnlwdG9LZXlSU0FNYWMuY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJRTEyNUY4NTkxODJDMUFBNjAwRDg0Q0Q5IC8qIENyeXB0b0tleVNlcmlhbGl6YXRpb25S
YXcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzE2RkUxMTMwRTZFMURBNzAwQkY2MDg4IC8qIENT
U0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFCQzc0MkQxQUFG
RjQ1QzAwNkI0MzQwIC8qIENTU0FuaW1hdGlvblRyaWdnZXJTY3JvbGxWYWx1ZS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlDQUU5RjkwRjE0NjQ0MUYwMDBDMjQ1QjAgLyogQ1NTQXNwZWN0UmF0aW9W
YWx1ZS5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMxODcyLDE2ICszMTc4NCwxMyBAQAogCQkJCTc3
RDUxMDAzMUVENEY3MUIwMERBNEM4NyAvKiBKU0NyZWRlbnRpYWxVc2VyRGF0YS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk5NzVDQTJBMTEzMDM2NzlEMDBFOTlBRDkgLyogSlNDcnlwdG8uY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0M5QUNBQjcxRjNDRjFBRTAwRjNBQTA5IC8qIEpTQ3J5cHRvQWVz
S2V5QWxnb3JpdGhtLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUUxQzY1NzEyMTgxNUY5REQwMDI1
NkNERCAvKiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTczOUUxMzExREFDN0ZEMTAwRTE0MzgzIC8qIEpTQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzlBQ0FCOTFGM0NGMUFFMDBGM0FBMDkgLyogSlND
cnlwdG9FY0tleUFsZ29yaXRobS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzlBQ0FCQjFGM0NG
MUFFMDBGM0FBMDkgLyogSlNDcnlwdG9IbWFjS2V5QWxnb3JpdGhtLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUUxNTdBOEUwMTgxNzMzMUMwMDlGODIxRCAvKiBKU0NyeXB0b0tleS5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk3QzlBQ0FCRDFGM0NGMUFFMDBGM0FBMDkgLyogSlNDcnlwdG9LZXlBbGdv
cml0aG0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFGODBCOEQxODMxNzJCNTAwNzg4NUMzIC8q
IEpTQ3J5cHRvS2V5UGFpci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlFMTI1Rjg1MTE4MjgzQTU2
MDBEODRDRDkgLyogSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTU3RDAwMThGMURENTQxNTMwMEVEMTlEOSAvKiBKU0NyeXB0b0tleVVzYWdlLmNwcCBp
biBTb3VyY2VzICovLAotCQkJCUUxMjVGODNEMTgyNDExRTcwMEQ4NENEOSAvKiBKU0NyeXB0b09w
ZXJhdGlvbkRhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M5QUNBQkYxRjNDRjFBRjAwRjNB
QTA5IC8qIEpTQ3J5cHRvUnNhSGFzaGVkS2V5QWxnb3JpdGhtLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTdDOUFDQUMxMUYzQ0YxQUYwMEYzQUEwOSAvKiBKU0NyeXB0b1JzYUtleUFsZ29yaXRobS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzQ2QzFGQzBDMEREQzhGMDAyMENGQzMgLyogSlNDU1NG
b250RmFjZVJ1bGUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zMjU4NCw4ICszMjQ5Myw2IEBACiAJ
CQkJN0NDNjk5NDAxOTFFQzVGNTAwQUYyMjcwIC8qIEpTV2ViS2l0TmFtZXNwYWNlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGREE3QzI2MTg4MzMzMzIwMEM5NTRCNSAvKiBKU1dlYktpdFBsYXli
YWNrVGFyZ2V0QXZhaWxhYmlsaXR5RXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDk0QkQ3
OUQwRjU1Qzk0QzAwNzQ3ODI4IC8qIEpTV2ViS2l0UG9pbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0J
CQkJNTcwQTk5REExRDQxNzQwODAwNEVDNjMwIC8qIEpTV2ViS2l0U3VidGxlQ3J5cHRvLmNwcCBp
biBTb3VyY2VzICovLAotCQkJCTU3MDlFOENFMUQ0MTNENUIwMDMyNDRBQyAvKiBKU1dlYktpdFN1
YnRsZUNyeXB0b0N1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzMUMwRkYzRjBFNENFRkFD
MDA3RDZGRTUgLyogSlNXZWJLaXRUcmFuc2l0aW9uRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNURBNUUwRkMxMDJCOTUzODAwMDg4Q0Y5IC8qIEpTV2ViU29ja2V0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTY1REYzMjA1MDlEMUNDNjAwMDBCRTMyNSAvKiBKU1doZWVsRXZlbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCkBAIC0zMzkxNiw3ICszMzgyMyw2IEBACiAJCQkJRDc2MTNBNTAxNDc0RjEz
RjAwREI4NjA2IC8qIFdlYktpdE5hbWVkRmxvdy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzQ4
QTZEMDE5MUM5RDY1MDAwMjY2NzQgLyogV2ViS2l0TmFtZXNwYWNlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE1REVCREEzMTZGQjkwODcwMDgzNkZFMCAvKiBXZWJLaXRQbGF5YmFja1RhcmdldEF2
YWlsYWJpbGl0eUV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTU3MDlFOENEMUQ0MTNENDcw
MDMyNDRBQyAvKiBXZWJLaXRTdWJ0bGVDcnlwdG8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFD
MEZGMjQwRTRDRUI2RTAwN0Q2RkU1IC8qIFdlYktpdFRyYW5zaXRpb25FdmVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwRkNGMzMyRTBGMkI5QTI1MDA0QjY3OTUgLyogV2ViTGF5ZXIubW0gaW4g
U291cmNlcyAqLywKIAkJCQkwNzA5RDc4RTFBRTU1NTU0MDA0RTQyRjggLyogV2ViTWVkaWFTZXNz
aW9uTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNwcAko
cmV2aXNpb24gMjIwOTM1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9B
bGdvcml0aG1EaWN0aW9uYXJ5LmNwcAkobm9uZXhpc3RlbnQpCkBAIC0xLDYzOCArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkpTQ3J5cHRv
QWxnb3JpdGhtRGljdGlvbmFyeS5oIgotCi0jaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCi0KLSNp
bmNsdWRlICJDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkLmgiCi0jaW5jbHVk
ZSAiQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zRGVwcmVjYXRlZC5oIgotI2luY2x1ZGUg
IkNyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXNEZXByZWNhdGVkLmgiCi0jaW5jbHVkZSAiQ3J5
cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQuaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzLmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnkuaCIK
LSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXNEZXByZWNhdGVkLmgiCi0j
aW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hEZXByZWNhdGVkLmgi
Ci0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQuaCIKLSNp
bmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNEZXByZWNhdGVkLmgiCi0jaW5jbHVk
ZSAiSlNDcnlwdG9PcGVyYXRpb25EYXRhLmgiCi0jaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCi0j
aW5jbHVkZSAiSlNET01Db252ZXJ0QnVmZmVyU291cmNlLmgiCi0jaW5jbHVkZSAiSlNET01Db252
ZXJ0TnVtYmVycy5oIgotI2luY2x1ZGUgIkpTRE9NQ29udmVydFN0cmluZ3MuaCIKLQotdXNpbmcg
bmFtZXNwYWNlIEpTQzsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1zdGF0aWMgaW5saW5lIEpT
VmFsdWUgZ2V0UHJvcGVydHkoRXhlY1N0YXRlJiBzdGF0ZSwgSlNPYmplY3QqIG9iamVjdCwgY29u
c3QgY2hhciogbmFtZSkKLXsKLSAgICByZXR1cm4gb2JqZWN0LT5nZXQoJnN0YXRlLCBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKCZzdGF0ZSwgbmFtZSkpOwotfQotCi1DcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyIEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6cGFyc2VBbGdvcml0aG1JZGVudGlm
aWVyKEV4ZWNTdGF0ZSYgc3RhdGUsIFRocm93U2NvcGUmIHNjb3BlLCBKU1ZhbHVlIHZhbHVlKQot
ewotICAgIC8vIHR5cGVkZWYgKEFsZ29yaXRobSBvciBET01TdHJpbmcpIEFsZ29yaXRobUlkZW50
aWZpZXI7Ci0KLSAgICBTdHJpbmcgYWxnb3JpdGhtTmFtZTsKLSAgICBWTSYgdm0gPSBzdGF0ZS52
bSgpOwotCi0gICAgaWYgKHZhbHVlLmlzU3RyaW5nKCkpIHsKLSAgICAgICAgYWxnb3JpdGhtTmFt
ZSA9IGFzU3RyaW5nKHZhbHVlKS0+dmFsdWUoJnN0YXRlKTsKLSAgICAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgeyB9KTsKLSAgICB9IGVsc2UgaWYgKHZhbHVlLmlzT2JqZWN0KCkpIHsK
LSAgICAgICAgaWYgKGFzT2JqZWN0KHZhbHVlKS0+aW5oZXJpdHModm0sIFN0cmluZ09iamVjdDo6
aW5mbygpKSkgewotICAgICAgICAgICAgYWxnb3JpdGhtTmFtZSA9IGFzU3RyaW5nT2JqZWN0KHZh
bHVlKS0+aW50ZXJuYWxWYWx1ZSgpLT52YWx1ZSgmc3RhdGUpOwotICAgICAgICAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
IC8vIEZJWE1FOiBUaGlzIGRvZXNuJ3QgcGVyZm9ybSBzb21lIGNoZWNrcyBtYW5kYXRlZCBieSBX
ZWJJREwgZm9yIGRpY3Rpb25hcmllczoKLSAgICAgICAgICAgIC8vIC0gbnVsbCBhbmQgdW5kZWZp
bmVkIGlucHV0IHNob3VsZCBiZSB0cmVhdGVkIGFzIGlmIGFsbCBlbGVtZW50cyBpbiB0aGUgZGlj
dGlvbmFyeSB3ZXJlIHVuZGVmaW5lZDsKLSAgICAgICAgICAgIC8vIC0gdW5kZWZpbmVkIGVsZW1l
bnRzIHNob3VsZCBiZSB0cmVhdGVkIGFzIGhhdmluZyBhIGRlZmF1bHQgdmFsdWUsIG9yIGFzIG5v
dCBwcmVzZW50IGlmIHRoZXJlIGlzbid0IHN1Y2g7Ci0gICAgICAgICAgICAvLyAtIFJlZ0V4cCBh
bmQgRGF0ZSBvYmplY3RzIGNhbm5vdCBiZSBjb252ZXJ0ZWQgdG8gZGljdGlvbmFyaWVzLgotICAg
ICAgICAgICAgLy8KLSAgICAgICAgICAgIC8vIFRoaXMgaXMgcGFydGlhbGx5IGJlY2F1c2Ugd2Ug
ZG9uJ3QgaW1wbGVtZW50IGl0IGVsc2V3aGVyZSBpbiBXZWJDb3JlIHlldCwgYW5kIHBhcnRpYWxs
eSBiZWNhdXNlCi0gICAgICAgICAgICAvLyBXZWJDcnlwdG8gZG9lc24ndCB5ZXQgY2xlYXJseSBz
cGVjaWZ5IHdoYXQgdG8gZG8gd2l0aCBub24tcHJlc2VudCB2YWx1ZXMgaW4gbW9zdCBjYXNlcyBh
bnl3YXkuCi0KLSAgICAgICAgICAgIGF1dG8gbmFtZVZhbHVlID0gZ2V0UHJvcGVydHkoc3RhdGUs
IGFzT2JqZWN0KHZhbHVlKSwgIm5hbWUiKTsKLSAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIHsgfSk7Ci0KLSAgICAgICAgICAgIGFsZ29yaXRobU5hbWUgPSBjb252ZXJ0PElE
TERPTVN0cmluZz4oc3RhdGUsIG5hbWVWYWx1ZSk7Ci0gICAgICAgICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCB7IH0pOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKCFhbGdvcml0
aG1OYW1lLmNvbnRhaW5zT25seUFTQ0lJKCkpIHsKLSAgICAgICAgdGhyb3dTeW50YXhFcnJvcigm
c3RhdGUsIHNjb3BlKTsKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICB9Ci0KLSAgICBhdXRvIGlk
ZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeTo6c2luZ2xldG9uKCkuaWRlbnRpZmll
cihhbGdvcml0aG1OYW1lKTsKLSAgICBpZiAoIWlkZW50aWZpZXIpIHsKLSAgICAgICAgdGhyb3dO
b3RTdXBwb3J0ZWRFcnJvcihzdGF0ZSwgc2NvcGUpOwotICAgICAgICByZXR1cm4geyB9OwotICAg
IH0KLQotICAgIHJldHVybiBpZGVudGlmaWVyLnZhbHVlKCk7Ci19Ci0KLXN0YXRpYyBzdGQ6Om9w
dGlvbmFsPENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI+IG9wdGlvbmFsSGFzaEFsZ29yaXRobShF
eGVjU3RhdGUmIHN0YXRlLCBUaHJvd1Njb3BlJiBzY29wZSwgSlNPYmplY3QqIG9iamVjdCkKLXsK
LSAgICBhdXRvIGhhc2ggPSBnZXRQcm9wZXJ0eShzdGF0ZSwgb2JqZWN0LCAiaGFzaCIpOwotICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0KLSAgICBpZiAoaGFzaC5pc1VuZGVm
aW5lZE9yTnVsbCgpKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgcmV0dXJu
IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6cGFyc2VBbGdvcml0aG1JZGVudGlmaWVyKHN0
YXRlLCBzY29wZSwgaGFzaCk7Ci19Ci0KLXN0YXRpYyBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
IHJlcXVpcmVkSGFzaEFsZ29yaXRobShFeGVjU3RhdGUmIHN0YXRlLCBUaHJvd1Njb3BlJiBzY29w
ZSwgSlNPYmplY3QqIG9iamVjdCkKLXsKLSAgICBhdXRvIHJlc3VsdCA9IG9wdGlvbmFsSGFzaEFs
Z29yaXRobShzdGF0ZSwgc2NvcGUsIG9iamVjdCk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgeyB9KTsKLQotICAgIGlmICghcmVzdWx0KSB7Ci0gICAgICAgIHRocm93Tm90U3VwcG9y
dGVkRXJyb3Ioc3RhdGUsIHNjb3BlKTsKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICB9Ci0KLSAg
ICByZXR1cm4gcmVzdWx0LnZhbHVlKCk7Ci19Ci0KLXN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IGNyZWF0ZUFlc0NiY1BhcmFtcyhFeGVjU3RhdGUmIHN0
YXRlLCBKU1ZhbHVlIHZhbHVlKQotewotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHN0YXRlLnZtKCkpOwotCi0gICAgaWYgKCF2YWx1ZS5pc09iamVjdCgpKSB7Ci0gICAgICAg
IHRocm93VHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LSAgICB9Ci0KLSAgICBhdXRvIGl2ID0gZ2V0UHJvcGVydHkoc3RhdGUsIGFzT2JqZWN0KHZhbHVl
KSwgIml2Iik7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKLQotICAgIGF1
dG8gcmVzdWx0ID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXNEZXBy
ZWNhdGVkKTsKLQotICAgIGF1dG8gaXZEYXRhID0gY3J5cHRvT3BlcmF0aW9uRGF0YUZyb21KU1Zh
bHVlKHN0YXRlLCBzY29wZSwgaXYpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsg
fSk7Ci0KLSAgICBpZiAoaXZEYXRhLnNlY29uZCAhPSAxNikgewotICAgICAgICB0aHJvd0V4Y2Vw
dGlvbigmc3RhdGUsIHNjb3BlLCBjcmVhdGVFcnJvcigmc3RhdGUsICJBRVMtQ0JDIGluaXRpYWxp
emF0aW9uIGRhdGEgbXVzdCBiZSAxNiBieXRlcyIpKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0gICAgfQotCi0gICAgbWVtY3B5KHJlc3VsdC0+aXYuZGF0YSgpLCBpdkRhdGEuZmlyc3QsIGl2
RGF0YS5zZWNvbmQpOwotCi0gICAgcmV0dXJuIFdURk1vdmUocmVzdWx0KTsKLX0KLQotc3RhdGlj
IFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gY3JlYXRlQWVzS2V5
R2VuUGFyYW1zKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgYXV0byBz
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoc3RhdGUudm0oKSk7Ci0KLSAgICBpZiAoIXZhbHVl
LmlzT2JqZWN0KCkpIHsKLSAgICAgICAgdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBzY29wZSk7Ci0g
ICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLQotICAgIGF1dG8gcmVzdWx0ID0gYWRvcHRS
ZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXNEZXByZWNhdGVkKTsKLQotICAg
IGF1dG8gbGVuZ3RoVmFsdWUgPSBnZXRQcm9wZXJ0eShzdGF0ZSwgYXNPYmplY3QodmFsdWUpLCAi
bGVuZ3RoIik7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7Ci0KLSAg
ICByZXN1bHQtPmxlbmd0aCA9IGNvbnZlcnQ8SURMRW5mb3JjZVJhbmdlQWRhcHRvcjxJRExVbnNp
Z25lZFNob3J0Pj4oc3RhdGUsIGxlbmd0aFZhbHVlKTsKLQotICAgIHJldHVybiBXVEZNb3ZlKHJl
c3VsdCk7Ci19Ci0KLXN0YXRpYyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJl
Y2F0ZWQ+IGNyZWF0ZUhtYWNQYXJhbXMoRXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2YWx1ZSkK
LXsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShzdGF0ZS52bSgpKTsKLQot
ICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSkgewotICAgICAgICB0aHJvd1R5cGVFcnJvcigmc3Rh
dGUsIHNjb3BlKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCi0gICAgYXV0byBy
ZXN1bHQgPSBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVk
KTsKLQotICAgIHJlc3VsdC0+aGFzaCA9IHJlcXVpcmVkSGFzaEFsZ29yaXRobShzdGF0ZSwgc2Nv
cGUsIGFzT2JqZWN0KHZhbHVlKSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9
KTsKLQotICAgIHJldHVybiBXVEZNb3ZlKHJlc3VsdCk7Ci19Ci0KLXN0YXRpYyBSZWZQdHI8Q3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IGNyZWF0ZUhtYWNLZXlQYXJhbXMoRXhl
Y1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRShzdGF0ZS52bSgpKTsKLQotICAgIGlmICghdmFsdWUuaXNPYmplY3QoKSkg
ewotICAgICAgICB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIHNjb3BlKTsKLSAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgfQotCi0gICAgYXV0byByZXN1bHQgPSBhZG9wdFJlZigqbmV3IENyeXB0
b0FsZ29yaXRobUhtYWNLZXlQYXJhbXNEZXByZWNhdGVkKTsKLQotICAgIHJlc3VsdC0+aGFzaCA9
IHJlcXVpcmVkSGFzaEFsZ29yaXRobShzdGF0ZSwgc2NvcGUsIGFzT2JqZWN0KHZhbHVlKSk7Ci0g
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKLQotICAgIGF1dG8gbGVuZ3RoVmFs
dWUgPSBnZXRQcm9wZXJ0eShzdGF0ZSwgYXNPYmplY3QodmFsdWUpLCAibGVuZ3RoIik7Ci0gICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7Ci0KLSAgICByZXN1bHQtPmxlbmd0
aCA9IGNvbnZlcnQ8SURMVW5zaWduZWRTaG9ydD4oc3RhdGUsIGxlbmd0aFZhbHVlKTsKLSAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKLQotICAgIHJlc3VsdC0+aGFzTGVu
Z3RoID0gdHJ1ZTsKLQotICAgIHJldHVybiBXVEZNb3ZlKHJlc3VsdCk7Ci19Ci0KLXN0YXRpYyBS
ZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IGNyZWF0ZVJzYUtleUdl
blBhcmFtcyhFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlKQotewotICAgIFZNJiB2bSA9
IHN0YXRlLnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwot
Ci0gICAgaWYgKCF2YWx1ZS5pc09iamVjdCgpKSB7Ci0gICAgICAgIHRocm93VHlwZUVycm9yKCZz
dGF0ZSwgc2NvcGUpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0KLSAgICBhdXRv
IHJlc3VsdCA9IGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zRGVw
cmVjYXRlZCk7Ci0KLSAgICBhdXRvIG1vZHVsdXNMZW5ndGhWYWx1ZSA9IGdldFByb3BlcnR5KHN0
YXRlLCBhc09iamVjdCh2YWx1ZSksICJtb2R1bHVzTGVuZ3RoIik7Ci0gICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgbnVsbHB0cik7Ci0KLSAgICAvLyBGSVhNRTogV2h5IG5vIEVuZm9yY2VS
YW5nZT8gRmlsZWQgYXMgPGh0dHBzOi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5j
Z2k/aWQ9MjM3Nzk+LgotICAgIHJlc3VsdC0+bW9kdWx1c0xlbmd0aCA9IGNvbnZlcnQ8SURMVW5z
aWduZWRMb25nPihzdGF0ZSwgbW9kdWx1c0xlbmd0aFZhbHVlKTsKLSAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBudWxscHRyKTsKLQotICAgIGF1dG8gcHVibGljRXhwb25lbnRWYWx1ZSA9
IGdldFByb3BlcnR5KHN0YXRlLCBhc09iamVjdCh2YWx1ZSksICJwdWJsaWNFeHBvbmVudCIpOwot
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwotCi0gICAgYXV0byBwdWJs
aWNFeHBvbmVudEFycmF5ID0gdG9VbnNoYXJlZFVpbnQ4QXJyYXkodm0sIHB1YmxpY0V4cG9uZW50
VmFsdWUpOwotICAgIGlmICghcHVibGljRXhwb25lbnRBcnJheSkgewotICAgICAgICB0aHJvd1R5
cGVFcnJvcigmc3RhdGUsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIkV4cGVjdGVkIGEgVWludDhBcnJh
eSBpbiBwdWJsaWNFeHBvbmVudCIpKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQot
ICAgIHJlc3VsdC0+cHVibGljRXhwb25lbnQuYXBwZW5kKHB1YmxpY0V4cG9uZW50QXJyYXktPmRh
dGEoKSwgcHVibGljRXhwb25lbnRBcnJheS0+Ynl0ZUxlbmd0aCgpKTsKLQotICAgIGlmIChhdXRv
IG9wdGlvbmFsSGFzaCA9IG9wdGlvbmFsSGFzaEFsZ29yaXRobShzdGF0ZSwgc2NvcGUsIGFzT2Jq
ZWN0KHZhbHVlKSkpIHsKLSAgICAgICAgcmVzdWx0LT5oYXNIYXNoID0gdHJ1ZTsKLSAgICAgICAg
cmVzdWx0LT5oYXNoID0gb3B0aW9uYWxIYXNoLnZhbHVlKCk7Ci0gICAgfQotCi0gICAgcmV0dXJu
IFdURk1vdmUocmVzdWx0KTsKLX0KLQotc3RhdGljIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzRGVwcmVjYXRlZD4gY3JlYXRlUnNhS2V5UGFyYW1zV2l0aEhhc2goRXhlY1N0YXRlJiwg
SlNWYWx1ZSkKLXsKLSAgICAvLyBXZWJDcnlwdG8gUlNBIGFsZ29yaXRobXMgY3VycmVudGx5IGRv
IG5vdCB0YWtlIGFueSBwYXJhbWV0ZXJzIHRvIGltcG9ydEtleS4KLSAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERlcHJlY2F0ZWQpOwot
fQotCi1zdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBj
cmVhdGVSc2FPYWVwUGFyYW1zKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFsdWUgdmFsdWUpCi17Ci0g
ICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoc3RhdGUudm0oKSk7Ci0KLSAgICBp
ZiAoIXZhbHVlLmlzT2JqZWN0KCkpIHsKLSAgICAgICAgdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBz
Y29wZSk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLQotICAgIGF1dG8gcmVzdWx0
ID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVjYXRlZCk7
Ci0KLSAgICByZXN1bHQtPmhhc2ggPSByZXF1aXJlZEhhc2hBbGdvcml0aG0oc3RhdGUsIHNjb3Bl
LCBhc09iamVjdCh2YWx1ZSkpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7
Ci0KLSAgICBhdXRvIGxhYmVsVmFsdWUgPSBnZXRQcm9wZXJ0eShzdGF0ZSwgYXNPYmplY3QodmFs
dWUpLCAibGFiZWwiKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotCi0g
ICAgcmVzdWx0LT5oYXNMYWJlbCA9ICFsYWJlbFZhbHVlLmlzVW5kZWZpbmVkT3JOdWxsKCk7Ci0g
ICAgaWYgKCFyZXN1bHQtPmhhc0xhYmVsKQotICAgICAgICByZXR1cm4gV1RGTW92ZShyZXN1bHQp
OwotCi0gICAgYXV0byBsYWJlbERhdGEgPSBjcnlwdG9PcGVyYXRpb25EYXRhRnJvbUpTVmFsdWUo
c3RhdGUsIHNjb3BlLCBsYWJlbFZhbHVlKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCB7IH0pOwotCi0gICAgcmVzdWx0LT5sYWJlbC5hcHBlbmQobGFiZWxEYXRhLmZpcnN0LCBsYWJl
bERhdGEuc2Vjb25kKTsKLQotICAgIHJldHVybiBXVEZNb3ZlKHJlc3VsdCk7Ci19Ci0KLXN0YXRp
YyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IGNyZWF0ZVJzYVNz
YVBhcmFtcyhFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlKQotewotICAgIGF1dG8gc2Nv
cGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHN0YXRlLnZtKCkpOwotCi0gICAgaWYgKCF2YWx1ZS5p
c09iamVjdCgpKSB7Ci0gICAgICAgIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUpOwotICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0KLSAgICBhdXRvIHJlc3VsdCA9IGFkb3B0UmVm
KCpuZXcgQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZCk7Ci0KLSAgICByZXN1
bHQtPmhhc2ggPSByZXF1aXJlZEhhc2hBbGdvcml0aG0oc3RhdGUsIHNjb3BlLCBhc09iamVjdCh2
YWx1ZSkpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0KLSAgICByZXR1
cm4gV1RGTW92ZShyZXN1bHQpOwotfQotCi1SZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
c0RlcHJlY2F0ZWQ+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVy
c0ZvckVuY3J5cHQoRXhlY1N0YXRlJiBzdGF0ZSwgVGhyb3dTY29wZSYgc2NvcGUsIENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU1ZhbHVlIHZhbHVlKQotewotICAgIHN3aXRj
aCAoYWxnb3JpdGhtKSB7Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FF
U19QS0NTMV92MV81OgotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCk7Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyOjpSU0FTU0FfUEtDUzFfdjFfNToKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXI6OlJTQV9QU1M6Ci0gICAgICAgIHRocm93Tm90U3VwcG9ydGVkRXJyb3Ioc3RhdGUsIHNjb3Bl
KTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyOjpSU0FfT0FFUDoKLSAgICAgICAgcmV0dXJuIGNyZWF0ZVJzYU9hZXBQYXJhbXMoc3Rh
dGUsIHZhbHVlKTsKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkVDRFNBOgot
ICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6RUNESDoKLSAgICBjYXNlIENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19DVFI6Ci0gICAgICAgIHRocm93Tm90U3VwcG9ydGVk
RXJyb3Ioc3RhdGUsIHNjb3BlKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgY2FzZSBD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0JDOgotICAgICAgICByZXR1cm4gY3JlYXRl
QWVzQ2JjUGFyYW1zKHN0YXRlLCB2YWx1ZSk7Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyOjpBRVNfR0NNOgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVT
X0NGQjoKLSAgICAgICAgdGhyb3dOb3RTdXBwb3J0ZWRFcnJvcihzdGF0ZSwgc2NvcGUpOwotICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6
OkFFU19LVzoKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVyc0RlcHJlY2F0ZWQpOwotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6
SE1BQzoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8xOgotICAgIGNh
c2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzIyNDoKLSAgICBjYXNlIENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXI6OlNIQV8yNTY6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyOjpTSEFfMzg0OgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hB
XzUxMjoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkhLREY6Ci0gICAgY2Fz
ZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpQQktERjI6Ci0gICAgICAgIHRocm93Tm90U3Vw
cG9ydGVkRXJyb3Ioc3RhdGUsIHNjb3BlKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAg
fQotICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7
Ci19Ci0KLVJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gSlNDcnlw
dG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yRGVjcnlwdChFeGVjU3Rh
dGUmIHN0YXRlLCBUaHJvd1Njb3BlJiBzY29wZSwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBh
bGdvcml0aG0sIEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgc3dpdGNoIChhbGdvcml0aG0pIHsKLSAg
ICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQUVTX1BLQ1MxX3YxXzU6Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNh
dGVkKTsKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQVNTQV9QS0NTMV92
MV81OgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBX1BTUzoKLSAgICAg
ICAgdGhyb3dOb3RTdXBwb3J0ZWRFcnJvcihzdGF0ZSwgc2NvcGUpOwotICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQV9PQUVQOgot
ICAgICAgICByZXR1cm4gY3JlYXRlUnNhT2FlcFBhcmFtcyhzdGF0ZSwgdmFsdWUpOwotICAgIGNh
c2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6RUNEU0E6Ci0gICAgY2FzZSBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyOjpFQ0RIOgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
cjo6QUVTX0NUUjoKLSAgICAgICAgdGhyb3dOb3RTdXBwb3J0ZWRFcnJvcihzdGF0ZSwgc2NvcGUp
OwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXI6OkFFU19DQkM6Ci0gICAgICAgIHJldHVybiBjcmVhdGVBZXNDYmNQYXJhbXMoc3RhdGUs
IHZhbHVlKTsKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19HQ006Ci0g
ICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0ZCOgotICAgICAgICB0aHJv
d05vdFN1cHBvcnRlZEVycm9yKHN0YXRlLCBzY29wZSk7Ci0gICAgICAgIHJldHVybiBudWxscHRy
OwotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0tXOgotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCk7
Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpITUFDOgotICAgIGNhc2UgQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzE6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyOjpTSEFfMjI0OgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6
U0hBXzI1NjoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8zODQ6Ci0g
ICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfNTEyOgotICAgIGNhc2UgQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6SEtERjoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlk
ZW50aWZpZXI6OlBCS0RGMjoKLSAgICAgICAgdGhyb3dOb3RTdXBwb3J0ZWRFcnJvcihzdGF0ZSwg
c2NvcGUpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLQotUmVmUHRyPENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25h
cnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JTaWduKEV4ZWNTdGF0ZSYgc3RhdGUsIFRocm93U2NvcGUm
IHNjb3BlLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgSlNWYWx1ZSB2YWx1
ZSkKLXsKLSAgICBzd2l0Y2ggKGFsZ29yaXRobSkgewotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllcjo6UlNBRVNfUEtDUzFfdjFfNToKLSAgICAgICAgdGhyb3dOb3RTdXBwb3J0ZWRF
cnJvcihzdGF0ZSwgc2NvcGUpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBjYXNlIENy
eXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQVNTQV9QS0NTMV92MV81OgotICAgICAgICByZXR1
cm4gY3JlYXRlUnNhU3NhUGFyYW1zKHN0YXRlLCB2YWx1ZSk7Ci0gICAgY2FzZSBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyOjpSU0FfUFNTOgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
Zmllcjo6UlNBX09BRVA6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpFQ0RT
QToKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkVDREg6Ci0gICAgY2FzZSBD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ1RSOgotICAgIGNhc2UgQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllcjo6QUVTX0NCQzoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXI6OkFFU19HQ006Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0ZC
OgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0tXOgotICAgICAgICB0
aHJvd05vdFN1cHBvcnRlZEVycm9yKHN0YXRlLCBzY29wZSk7Ci0gICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6SE1BQzoKLSAgICAgICAg
cmV0dXJuIGNyZWF0ZUhtYWNQYXJhbXMoc3RhdGUsIHZhbHVlKTsKLSAgICBjYXNlIENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXI6OlNIQV8xOgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
Zmllcjo6U0hBXzIyNDoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8y
NTY6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMzg0OgotICAgIGNh
c2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzUxMjoKLSAgICBjYXNlIENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXI6OkhLREY6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyOjpQQktERjI6Ci0gICAgICAgIHRocm93Tm90U3VwcG9ydGVkRXJyb3Ioc3RhdGUsIHNjb3Bl
KTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KLVJlZlB0cjxDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5Ojpj
cmVhdGVQYXJhbWV0ZXJzRm9yVmVyaWZ5KEV4ZWNTdGF0ZSYgc3RhdGUsIFRocm93U2NvcGUmIHNj
b3BlLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgSlNWYWx1ZSB2YWx1ZSkK
LXsKLSAgICBzd2l0Y2ggKGFsZ29yaXRobSkgewotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllcjo6UlNBRVNfUEtDUzFfdjFfNToKLSAgICAgICAgdGhyb3dOb3RTdXBwb3J0ZWRFcnJv
cihzdGF0ZSwgc2NvcGUpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBjYXNlIENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQVNTQV9QS0NTMV92MV81OgotICAgICAgICByZXR1cm4g
Y3JlYXRlUnNhU3NhUGFyYW1zKHN0YXRlLCB2YWx1ZSk7Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyOjpSU0FfUFNTOgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
cjo6UlNBX09BRVA6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpFQ0RTQToK
LSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkVDREg6Ci0gICAgY2FzZSBDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ1RSOgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllcjo6QUVTX0NCQzoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6
OkFFU19HQ006Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0ZCOgot
ICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0tXOgotICAgICAgICB0aHJv
d05vdFN1cHBvcnRlZEVycm9yKHN0YXRlLCBzY29wZSk7Ci0gICAgICAgIHJldHVybiBudWxscHRy
OwotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6SE1BQzoKLSAgICAgICAgcmV0
dXJuIGNyZWF0ZUhtYWNQYXJhbXMoc3RhdGUsIHZhbHVlKTsKLSAgICBjYXNlIENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXI6OlNIQV8xOgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
cjo6U0hBXzIyNDoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8yNTY6
Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMzg0OgotICAgIGNhc2Ug
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzUxMjoKLSAgICBjYXNlIENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXI6OkhLREY6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
OjpQQktERjI6Ci0gICAgICAgIHRocm93Tm90U3VwcG9ydGVkRXJyb3Ioc3RhdGUsIHNjb3BlKTsK
LSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KLVJlZlB0cjxDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVh
dGVQYXJhbWV0ZXJzRm9yRGlnZXN0KEV4ZWNTdGF0ZSYgc3RhdGUsIFRocm93U2NvcGUmIHNjb3Bl
LCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgSlNWYWx1ZSkKLXsKLSAgICBz
d2l0Y2ggKGFsZ29yaXRobSkgewotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6
UlNBRVNfUEtDUzFfdjFfNToKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJT
QVNTQV9QS0NTMV92MV81OgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNB
X1BTUzoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQV9PQUVQOgotICAg
IGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6RUNEU0E6Ci0gICAgY2FzZSBDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyOjpFQ0RIOgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
Zmllcjo6QUVTX0NUUjoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19D
QkM6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfR0NNOgotICAgIGNh
c2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0NGQjoKLSAgICBjYXNlIENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXI6OkFFU19LVzoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXI6OkhNQUM6Ci0gICAgICAgIHRocm93Tm90U3VwcG9ydGVkRXJyb3Ioc3RhdGUsIHNjb3Bl
KTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyOjpTSEFfMToKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8y
MjQ6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMjU2OgotICAgIGNh
c2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzM4NDoKLSAgICBjYXNlIENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXI6OlNIQV81MTI6Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkKTsKLSAgICBjYXNlIENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXI6OkhLREY6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyOjpQQktERjI6Ci0gICAgICAgIHRocm93Tm90U3VwcG9ydGVkRXJyb3Ioc3RhdGUsIHNjb3Bl
KTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KLVJlZlB0cjxDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5Ojpj
cmVhdGVQYXJhbWV0ZXJzRm9yR2VuZXJhdGVLZXkoRXhlY1N0YXRlJiBzdGF0ZSwgVGhyb3dTY29w
ZSYgc2NvcGUsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU1ZhbHVlIHZh
bHVlKQotewotICAgIHN3aXRjaCAoYWxnb3JpdGhtKSB7Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyOjpSU0FFU19QS0NTMV92MV81OgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllcjo6UlNBU1NBX1BLQ1MxX3YxXzU6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyOjpSU0FfUFNTOgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6
UlNBX09BRVA6Ci0gICAgICAgIHJldHVybiBjcmVhdGVSc2FLZXlHZW5QYXJhbXMoc3RhdGUsIHZh
bHVlKTsKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkVDRFNBOgotICAgIGNh
c2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6RUNESDoKLSAgICAgICAgdGhyb3dOb3RTdXBw
b3J0ZWRFcnJvcihzdGF0ZSwgc2NvcGUpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBj
YXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19DVFI6Ci0gICAgY2FzZSBDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0JDOgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllcjo6QUVTX0dDTToKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFF
U19DRkI6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfS1c6Ci0gICAg
ICAgIHJldHVybiBjcmVhdGVBZXNLZXlHZW5QYXJhbXMoc3RhdGUsIHZhbHVlKTsKLSAgICBjYXNl
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkhNQUM6Ci0gICAgICAgIHJldHVybiBjcmVhdGVI
bWFjS2V5UGFyYW1zKHN0YXRlLCB2YWx1ZSk7Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyOjpTSEFfMToKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8y
MjQ6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMjU2OgotICAgIGNh
c2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzM4NDoKLSAgICBjYXNlIENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXI6OlNIQV81MTI6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyOjpIS0RGOgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UEJLREYy
OgotICAgICAgICB0aHJvd05vdFN1cHBvcnRlZEVycm9yKHN0YXRlLCBzY29wZSk7Ci0gICAgICAg
IHJldHVybiBudWxscHRyOwotICAgIH0KLSAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgIHJldHVybiBudWxscHRyOwotfQotCi1SZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVyc0RlcHJlY2F0ZWQ+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1l
dGVyc0ZvckRlcml2ZUtleShFeGVjU3RhdGUmIHN0YXRlLCBUaHJvd1Njb3BlJiBzY29wZSwgQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEpTVmFsdWUpCi17Ci0gICAgc3dpdGNo
IChhbGdvcml0aG0pIHsKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQUVT
X1BLQ1MxX3YxXzU6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FTU0Ff
UEtDUzFfdjFfNToKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQV9QU1M6
Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FfT0FFUDoKLSAgICBjYXNl
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkVDRFNBOgotICAgIGNhc2UgQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllcjo6RUNESDoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6
OkFFU19DVFI6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0JDOgot
ICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0dDTToKLSAgICBjYXNlIENy
eXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19DRkI6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyOjpBRVNfS1c6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
OjpITUFDOgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzE6Ci0gICAg
Y2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMjI0OgotICAgIGNhc2UgQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzI1NjoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlk
ZW50aWZpZXI6OlNIQV8zODQ6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpT
SEFfNTEyOgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6SEtERjoKLSAgICBj
YXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlBCS0RGMjoKLSAgICAgICAgdGhyb3dOb3RT
dXBwb3J0ZWRFcnJvcihzdGF0ZSwgc2NvcGUpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAg
ICB9Ci0gICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gbnVsbHB0
cjsKLX0KLQotUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBKU0Ny
eXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JEZXJpdmVCaXRzKEV4
ZWNTdGF0ZSYgc3RhdGUsIFRocm93U2NvcGUmIHNjb3BlLCBDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyIGFsZ29yaXRobSwgSlNWYWx1ZSkKLXsKLSAgICBzd2l0Y2ggKGFsZ29yaXRobSkgewotICAg
IGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBRVNfUEtDUzFfdjFfNToKLSAgICBj
YXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQVNTQV9QS0NTMV92MV81OgotICAgIGNh
c2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBX1BTUzoKLSAgICBjYXNlIENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXI6OlJTQV9PQUVQOgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllcjo6RUNEU0E6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpFQ0RI
OgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0NUUjoKLSAgICBjYXNl
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19DQkM6Ci0gICAgY2FzZSBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyOjpBRVNfR0NNOgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
Zmllcjo6QUVTX0NGQjoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19L
VzoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkhNQUM6Ci0gICAgY2FzZSBD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMToKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXI6OlNIQV8yMjQ6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
OjpTSEFfMjU2OgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzM4NDoK
LSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV81MTI6Ci0gICAgY2FzZSBD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpIS0RGOgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllcjo6UEJLREYyOgotICAgICAgICB0aHJvd05vdFN1cHBvcnRlZEVycm9yKHN0YXRl
LCBzY29wZSk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLSAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBudWxscHRyOwotfQotCi1SZWZQdHI8Q3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlv
bmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckltcG9ydEtleShFeGVjU3RhdGUmIHN0YXRlLCBUaHJv
d1Njb3BlJiBzY29wZSwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEpTVmFs
dWUgdmFsdWUpCi17Ci0gICAgc3dpdGNoIChhbGdvcml0aG0pIHsKLSAgICBjYXNlIENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXI6OlJTQUVTX1BLQ1MxX3YxXzU6Ci0gICAgY2FzZSBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyOjpSU0FTU0FfUEtDUzFfdjFfNToKLSAgICBjYXNlIENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXI6OlJTQV9QU1M6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyOjpSU0FfT0FFUDoKLSAgICAgICAgcmV0dXJuIGNyZWF0ZVJzYUtleVBhcmFtc1dpdGhIYXNo
KHN0YXRlLCB2YWx1ZSk7Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpFQ0RT
QToKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkVDREg6Ci0gICAgY2FzZSBD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ1RSOgotICAgIGNhc2UgQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllcjo6QUVTX0NCQzoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXI6OkFFU19HQ006Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0ZC
OgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0tXOgotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCk7
Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpITUFDOgotICAgICAgICByZXR1
cm4gY3JlYXRlSG1hY1BhcmFtcyhzdGF0ZSwgdmFsdWUpOwotICAgIGNhc2UgQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllcjo6U0hBXzE6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
OjpTSEFfMjI0OgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzI1NjoK
LSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8zODQ6Ci0gICAgY2FzZSBD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfNTEyOgotICAgIGNhc2UgQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllcjo6SEtERjoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6
OlBCS0RGMjoKLSAgICAgICAgdGhyb3dOb3RTdXBwb3J0ZWRFcnJvcihzdGF0ZSwgc2NvcGUpOwot
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLQotUmVmUHRyPENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnNEZXByZWNhdGVkPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0
ZVBhcmFtZXRlcnNGb3JFeHBvcnRLZXkoRXhlY1N0YXRlJiBzdGF0ZSwgVGhyb3dTY29wZSYgc2Nv
cGUsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU1ZhbHVlKQotewotICAg
IHN3aXRjaCAoYWxnb3JpdGhtKSB7Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
OjpSU0FFU19QS0NTMV92MV81OgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6
UlNBU1NBX1BLQ1MxX3YxXzU6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpS
U0FfUFNTOgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBX09BRVA6Ci0g
ICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpFQ0RTQToKLSAgICBjYXNlIENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXI6OkVDREg6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyOjpBRVNfQ1RSOgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVT
X0NCQzoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19HQ006Ci0gICAg
Y2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0ZCOgotICAgIGNhc2UgQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0tXOgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllcjo6SE1BQzoKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQpOwotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
Zmllcjo6U0hBXzE6Ci0gICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMjI0
OgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzI1NjoKLSAgICBjYXNl
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8zODQ6Ci0gICAgY2FzZSBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyOjpTSEFfNTEyOgotICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
Zmllcjo6SEtERjoKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlBCS0RGMjoK
LSAgICAgICAgdGhyb3dOb3RTdXBwb3J0ZWRFcnJvcihzdGF0ZSwgc2NvcGUpOwotICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLQotfQotCi0jZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9D
UllQVE8pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0FsZ29yaXRo
bURpY3Rpb25hcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuaAkocmV2aXNpb24gMjIwOTM1KQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmgJKG5vbmV4
aXN0ZW50KQpAQCAtMSw2MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNp
ZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKLQotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXIuaCIKLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotCi1uYW1lc3BhY2UgSlNDIHsKLWNs
YXNzIEV4ZWNTdGF0ZTsKLWNsYXNzIEpTVmFsdWU7Ci1jbGFzcyBUaHJvd1Njb3BlOwotfQotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXBy
ZWNhdGVkOwotCi1jbGFzcyBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkgewotcHVibGljOgot
ICAgIHN0YXRpYyBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHBhcnNlQWxnb3JpdGhtSWRlbnRp
ZmllcihKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6VGhyb3dTY29wZSYsIEpTQzo6SlNWYWx1ZSk7Ci0K
LSAgICBzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBj
cmVhdGVQYXJhbWV0ZXJzRm9yRW5jcnlwdChKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6VGhyb3dTY29w
ZSYsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIsIEpTQzo6SlNWYWx1ZSk7Ci0gICAgc3RhdGlj
IFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gY3JlYXRlUGFyYW1l
dGVyc0ZvckRlY3J5cHQoSlNDOjpFeGVjU3RhdGUmLCBKU0M6OlRocm93U2NvcGUmLCBDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyLCBKU0M6OkpTVmFsdWUpOwotICAgIHN0YXRpYyBSZWZQdHI8Q3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IGNyZWF0ZVBhcmFtZXRlcnNGb3JTaWdu
KEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpUaHJvd1Njb3BlJiwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
ZmllciwgSlNDOjpKU1ZhbHVlKTsKLSAgICBzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnNEZXByZWNhdGVkPiBjcmVhdGVQYXJhbWV0ZXJzRm9yVmVyaWZ5KEpTQzo6RXhlY1N0
YXRlJiwgSlNDOjpUaHJvd1Njb3BlJiwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgSlNDOjpK
U1ZhbHVlKTsKLSAgICBzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXBy
ZWNhdGVkPiBjcmVhdGVQYXJhbWV0ZXJzRm9yRGlnZXN0KEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpU
aHJvd1Njb3BlJiwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgSlNDOjpKU1ZhbHVlKTsKLSAg
ICBzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBjcmVh
dGVQYXJhbWV0ZXJzRm9yR2VuZXJhdGVLZXkoSlNDOjpFeGVjU3RhdGUmLCBKU0M6OlRocm93U2Nv
cGUmLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLCBKU0M6OkpTVmFsdWUpOwotICAgIHN0YXRp
YyBSZWZQdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IGNyZWF0ZVBhcmFt
ZXRlcnNGb3JEZXJpdmVLZXkoSlNDOjpFeGVjU3RhdGUmLCBKU0M6OlRocm93U2NvcGUmLCBDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyLCBKU0M6OkpTVmFsdWUpOwotICAgIHN0YXRpYyBSZWZQdHI8
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IGNyZWF0ZVBhcmFtZXRlcnNGb3JE
ZXJpdmVCaXRzKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpUaHJvd1Njb3BlJiwgQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllciwgSlNDOjpKU1ZhbHVlKTsKLSAgICBzdGF0aWMgUmVmUHRyPENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBjcmVhdGVQYXJhbWV0ZXJzRm9ySW1wb3J0S2V5
KEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpUaHJvd1Njb3BlJiwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
ZmllciwgSlNDOjpKU1ZhbHVlKTsKLSAgICBzdGF0aWMgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnNEZXByZWNhdGVkPiBjcmVhdGVQYXJhbWV0ZXJzRm9yRXhwb3J0S2V5KEpTQzo6RXhl
Y1N0YXRlJiwgSlNDOjpUaHJvd1Njb3BlJiwgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgSlND
OjpKU1ZhbHVlKTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVO
QUJMRShTVUJUTEVfQ1JZUFRPKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlND
cnlwdG9LZXlTZXJpYWxpemF0aW9uSldLLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0suY3BwCShyZXZpc2lvbiAy
MjA5MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0tleVNlcmlhbGl6
YXRpb25KV0suY3BwCShub25leGlzdGVudCkKQEAgLTEsNzcwICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTMtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJKU0NyeXB0b0tleVNlcmlhbGl6
YXRpb25KV0suaCIKLQotI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotCi0jaW5jbHVkZSAiQ3J5
cHRvQWxnb3JpdGhtLmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJl
Y2F0ZWQuaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oIgotI2luY2x1ZGUg
IkNyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZC5oIgotI2luY2x1
ZGUgIkNyeXB0b0tleS5oIgotI2luY2x1ZGUgIkNyeXB0b0tleUFFUy5oIgotI2luY2x1ZGUgIkNy
eXB0b0tleURhdGFPY3RldFNlcXVlbmNlLmgiCi0jaW5jbHVkZSAiQ3J5cHRvS2V5RGF0YVJTQUNv
bXBvbmVudHMuaCIKLSNpbmNsdWRlICJDcnlwdG9LZXlITUFDLmgiCi0jaW5jbHVkZSAiQ3J5cHRv
S2V5UlNBLmgiCi0jaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCi0jaW5jbHVkZSA8aGVhcC9TdHJv
bmdJbmxpbmVzLmg+Ci0jaW5jbHVkZSA8cnVudGltZS9KU0NJbmxpbmVzLmg+Ci0jaW5jbHVkZSA8
cnVudGltZS9KU09OT2JqZWN0Lmg+Ci0jaW5jbHVkZSA8cnVudGltZS9PYmplY3RDb25zdHJ1Y3Rv
ci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0Jhc2U2NC5oPgotCi11c2luZyBuYW1lc3BhY2UgSlND
OwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXN0YXRpYyBib29sIGdldEpTQXJyYXlGcm9tSlNP
TihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBqc29uLCBjb25zdCBjaGFyKiBrZXksIEpTQXJy
YXkqJiByZXN1bHQpCi17Ci0gICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKLSAgICBhdXRvIHNjb3Bl
ID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0KLSAgICBJZGVudGlmaWVyIGlkZW50aWZpZXIg
PSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGV4ZWMsIGtleSk7Ci0gICAgUHJvcGVydHlTbG90IHNs
b3QoanNvbiwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OkdldCk7Ci0KLSAgICBp
ZiAoIWpzb24tPmdldFByb3BlcnR5U2xvdChleGVjLCBpZGVudGlmaWVyLCBzbG90KSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotCi0gICAgSlNWYWx1ZSB2YWx1ZSA9IHNsb3QuZ2V0VmFsdWUoZXhl
YywgaWRlbnRpZmllcik7Ci0gICAgc2NvcGUuYXNzZXJ0Tm9FeGNlcHRpb24oKTsKLSAgICBpZiAo
IWlzSlNBcnJheSh2YWx1ZSkpIHsKLSAgICAgICAgdGhyb3dUeXBlRXJyb3IoZXhlYywgc2NvcGUs
IFN0cmluZzo6Zm9ybWF0KCJFeHBlY3RlZCBhbiBhcnJheSBmb3IgXCIlc1wiIEpTT04ga2V5Iiwg
IGtleSkpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgcmVzdWx0ID0gYXNB
cnJheSh2YWx1ZSk7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotc3RhdGljIGJvb2wgZ2V0U3Ry
aW5nRnJvbUpTT04oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCoganNvbiwgY29uc3QgY2hhciog
a2V5LCBTdHJpbmcmIHJlc3VsdCkKLXsKLSAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLQotICAgIElkZW50aWZpZXIgaWRl
bnRpZmllciA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywga2V5KTsKLSAgICBQcm9wZXJ0
eVNsb3Qgc2xvdChqc29uLCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6R2V0KTsK
LQotICAgIGlmICghanNvbi0+Z2V0UHJvcGVydHlTbG90KGV4ZWMsIGlkZW50aWZpZXIsIHNsb3Qp
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBKU1ZhbHVlIGpzVmFsdWUgPSBzbG90Lmdl
dFZhbHVlKGV4ZWMsIGlkZW50aWZpZXIpOwotICAgIHNjb3BlLmFzc2VydE5vRXhjZXB0aW9uKCk7
Ci0gICAgaWYgKCFqc1ZhbHVlLmdldFN0cmluZyhleGVjLCByZXN1bHQpKSB7Ci0gICAgICAgIC8v
IENhbiBnZXQgYW4gb3V0IG9mIG1lbW9yeSBleGNlcHRpb24uCi0gICAgICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIGZhbHNlKTsKLSAgICAgICAgdGhyb3dUeXBlRXJyb3IoZXhlYywgc2Nv
cGUsIFN0cmluZzo6Zm9ybWF0KCJFeHBlY3RlZCBhIHN0cmluZyB2YWx1ZSBmb3IgXCIlc1wiIEpT
T04ga2V5IiwgIGtleSkpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgcmV0
dXJuIHRydWU7Ci19Ci0KLXN0YXRpYyBib29sIGdldEJvb2xlYW5Gcm9tSlNPTihFeGVjU3RhdGUq
IGV4ZWMsIEpTT2JqZWN0KiBqc29uLCBjb25zdCBjaGFyKiBrZXksIGJvb2wmIHJlc3VsdCkKLXsK
LSAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKLQotICAgIElkZW50aWZpZXIgaWRlbnRpZmllciA9IElkZW50aWZpZXI6OmZy
b21TdHJpbmcoZXhlYywga2V5KTsKLSAgICBQcm9wZXJ0eVNsb3Qgc2xvdChqc29uLCBQcm9wZXJ0
eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6R2V0KTsKLQotICAgIGlmICghanNvbi0+Z2V0UHJv
cGVydHlTbG90KGV4ZWMsIGlkZW50aWZpZXIsIHNsb3QpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSAgICBKU1ZhbHVlIGpzVmFsdWUgPSBzbG90LmdldFZhbHVlKGV4ZWMsIGlkZW50aWZpZXIp
OwotICAgIHNjb3BlLmFzc2VydE5vRXhjZXB0aW9uKCk7Ci0gICAgaWYgKCFqc1ZhbHVlLmlzQm9v
bGVhbigpKSB7Ci0gICAgICAgIHRocm93VHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBTdHJpbmc6OmZv
cm1hdCgiRXhwZWN0ZWQgYSBib29sZWFuIHZhbHVlIGZvciBcIiVzXCIgSlNPTiBrZXkiLCAga2V5
KSk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICByZXN1bHQgPSBqc1ZhbHVl
LmFzQm9vbGVhbigpOwotICAgIHJldHVybiB0cnVlOwotfQotCi1zdGF0aWMgYm9vbCBnZXRCaWdJ
bnRlZ2VyVmVjdG9yRnJvbUpTT04oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCoganNvbiwgY29u
c3QgY2hhcioga2V5LCBWZWN0b3I8dWludDhfdD4mIHJlc3VsdCkKLXsKLSAgICBWTSYgdm0gPSBl
eGVjLT52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLQot
ICAgIFN0cmluZyBiYXNlNjR1cmxFbmNvZGVkTnVtYmVyOwotICAgIGlmICghZ2V0U3RyaW5nRnJv
bUpTT04oZXhlYywganNvbiwga2V5LCBiYXNlNjR1cmxFbmNvZGVkTnVtYmVyKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKCFiYXNlNjRVUkxEZWNvZGUoYmFzZTY0dXJsRW5jb2Rl
ZE51bWJlciwgcmVzdWx0KSkgewotICAgICAgICB0aHJvd1R5cGVFcnJvcihleGVjLCBzY29wZSwg
QVNDSUlMaXRlcmFsKCJDYW5ub3QgZGVjb2RlIGJhc2U2NHVybCBrZXkgZGF0YSBpbiBKV0siKSk7
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBpZiAocmVzdWx0WzBdID09IDAp
IHsKLSAgICAgICAgdGhyb3dUeXBlRXJyb3IoZXhlYywgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiSldL
IEJpZ0ludGVnZXIgbXVzdCB1dGlsaXplIHRoZSBtaW5pbXVtIG51bWJlciBvZiBvY3RldHMgdG8g
cmVwcmVzZW50IHRoZSB2YWx1ZSIpKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQot
ICAgIHJldHVybiB0cnVlOwotfQotCi1KU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0s6OkpTQ3J5
cHRvS2V5U2VyaWFsaXphdGlvbkpXSyhFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN0cmluZyYganNv
blN0cmluZykKLSAgICA6IG1fZXhlYyhleGVjKQotewotICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7
Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotCi0gICAgSlNWYWx1
ZSBqc29uVmFsdWUgPSBKU09OUGFyc2UoZXhlYywganNvblN0cmluZyk7Ci0gICAgaWYgKFVOTElL
RUxZKHNjb3BlLmV4Y2VwdGlvbigpKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKCFqc29u
VmFsdWUgfHwgIWpzb25WYWx1ZS5pc09iamVjdCgpKSB7Ci0gICAgICAgIHRocm93VHlwZUVycm9y
KGV4ZWMsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIkludmFsaWQgSldLIHNlcmlhbGl6YXRpb24iKSk7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBtX2pzb24uc2V0KHZtLCBhc09iamVjdChq
c29uVmFsdWUpKTsKLX0KLQotSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLOjp+SlNDcnlwdG9L
ZXlTZXJpYWxpemF0aW9uSldLKCkKLXsKLX0KLQotc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG1Q
YXJhbWV0ZXJzRGVwcmVjYXRlZD4gY3JlYXRlSE1BQ1BhcmFtZXRlcnMoQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllciBoYXNoRnVuY3Rpb24pCi17Ci0gICAgYXV0byBobWFjUGFyYW1ldGVycyA9IGFk
b3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQpOwotICAgIGht
YWNQYXJhbWV0ZXJzLT5oYXNoID0gaGFzaEZ1bmN0aW9uOwotICAgIHJldHVybiBXVEZNb3ZlKGht
YWNQYXJhbWV0ZXJzKTsKLX0KLQotc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
RGVwcmVjYXRlZD4gY3JlYXRlUlNBS2V5UGFyYW1ldGVyc1dpdGhIYXNoKENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXIgaGFzaEZ1bmN0aW9uKQotewotICAgIGF1dG8gcnNhS2V5UGFyYW1ldGVycyA9
IGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hEZXByZWNh
dGVkKTsKLSAgICByc2FLZXlQYXJhbWV0ZXJzLT5oYXNIYXNoID0gdHJ1ZTsKLSAgICByc2FLZXlQ
YXJhbWV0ZXJzLT5oYXNoID0gaGFzaEZ1bmN0aW9uOwotICAgIHJldHVybiBXVEZNb3ZlKHJzYUtl
eVBhcmFtZXRlcnMpOwotfQotCi1zdGQ6Om9wdGlvbmFsPENyeXB0b0FsZ29yaXRobVBhaXI+IEpT
Q3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSzo6cmVjb25jaWxlQWxnb3JpdGhtKENyeXB0b0FsZ29y
aXRobSogc3VnZ2VzdGVkQWxnb3JpdGhtLCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVj
YXRlZCogc3VnZ2VzdGVkUGFyYW1ldGVycykgY29uc3QKLXsKLSAgICBWTSYgdm0gPSBtX2V4ZWMt
PnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotCi0gICAg
aWYgKCFnZXRTdHJpbmdGcm9tSlNPTihtX2V4ZWMsIG1fanNvbi5nZXQoKSwgImFsZyIsIG1fandr
QWxnb3JpdGhtTmFtZSkpIHsKLSAgICAgICAgLy8gQWxnb3JpdGhtIGlzIG9wdGlvbmFsIGluIEpX
Sy4KLSAgICAgICAgcmV0dXJuIENyeXB0b0FsZ29yaXRobVBhaXIgeyBzdWdnZXN0ZWRBbGdvcml0
aG0sIHN1Z2dlc3RlZFBhcmFtZXRlcnMgfTsKLSAgICB9Ci0KLSAgICBhdXRvJiBhbGdvcml0aG1S
ZWdpc3R5ID0gQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnk6OnNpbmdsZXRvbigpOwotICAgIFJlZlB0
cjxDcnlwdG9BbGdvcml0aG0+IGFsZ29yaXRobTsKLSAgICBSZWZQdHI8Q3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVyc0RlcHJlY2F0ZWQ+IHBhcmFtZXRlcnM7Ci0gICAgaWYgKG1fandrQWxnb3JpdGht
TmFtZSA9PSAiSFMyNTYiKSB7Ci0gICAgICAgIGFsZ29yaXRobSA9IGFsZ29yaXRobVJlZ2lzdHku
Y3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkhNQUMpOwotICAgICAgICBwYXJhbWV0
ZXJzID0gY3JlYXRlSE1BQ1BhcmFtZXRlcnMoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hB
XzI1Nik7Ci0gICAgfSBlbHNlIGlmIChtX2p3a0FsZ29yaXRobU5hbWUgPT0gIkhTMzg0Iikgewot
ICAgICAgICBhbGdvcml0aG0gPSBhbGdvcml0aG1SZWdpc3R5LmNyZWF0ZShDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyOjpITUFDKTsKLSAgICAgICAgcGFyYW1ldGVycyA9IGNyZWF0ZUhNQUNQYXJh
bWV0ZXJzKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8zODQpOwotICAgIH0gZWxzZSBp
ZiAobV9qd2tBbGdvcml0aG1OYW1lID09ICJIUzUxMiIpIHsKLSAgICAgICAgYWxnb3JpdGhtID0g
YWxnb3JpdGhtUmVnaXN0eS5jcmVhdGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6SE1BQyk7
Ci0gICAgICAgIHBhcmFtZXRlcnMgPSBjcmVhdGVITUFDUGFyYW1ldGVycyhDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyOjpTSEFfNTEyKTsKLSAgICB9IGVsc2UgaWYgKG1fandrQWxnb3JpdGhtTmFt
ZSA9PSAiUlMyNTYiKSB7Ci0gICAgICAgIGFsZ29yaXRobSA9IGFsZ29yaXRobVJlZ2lzdHkuY3Jl
YXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQVNTQV9QS0NTMV92MV81KTsKLSAgICAg
ICAgcGFyYW1ldGVycyA9IGNyZWF0ZVJTQUtleVBhcmFtZXRlcnNXaXRoSGFzaChDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyOjpTSEFfMjU2KTsKLSAgICB9IGVsc2UgaWYgKG1fandrQWxnb3JpdGht
TmFtZSA9PSAiUlMzODQiKSB7Ci0gICAgICAgIGFsZ29yaXRobSA9IGFsZ29yaXRobVJlZ2lzdHku
Y3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQVNTQV9QS0NTMV92MV81KTsKLSAg
ICAgICAgcGFyYW1ldGVycyA9IGNyZWF0ZVJTQUtleVBhcmFtZXRlcnNXaXRoSGFzaChDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMzg0KTsKLSAgICB9IGVsc2UgaWYgKG1fandrQWxnb3Jp
dGhtTmFtZSA9PSAiUlM1MTIiKSB7Ci0gICAgICAgIGFsZ29yaXRobSA9IGFsZ29yaXRobVJlZ2lz
dHkuY3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQVNTQV9QS0NTMV92MV81KTsK
LSAgICAgICAgcGFyYW1ldGVycyA9IGNyZWF0ZVJTQUtleVBhcmFtZXRlcnNXaXRoSGFzaChDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfNTEyKTsKLSAgICB9IGVsc2UgaWYgKG1fandrQWxn
b3JpdGhtTmFtZSA9PSAiUlNBMV81IikgewotICAgICAgICBhbGdvcml0aG0gPSBhbGdvcml0aG1S
ZWdpc3R5LmNyZWF0ZShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FFU19QS0NTMV92MV81
KTsKLSAgICAgICAgcGFyYW1ldGVycyA9IGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUnNh
S2V5UGFyYW1zV2l0aEhhc2hEZXByZWNhdGVkKTsKLSAgICB9IGVsc2UgaWYgKG1fandrQWxnb3Jp
dGhtTmFtZSA9PSAiUlNBLU9BRVAiKSB7Ci0gICAgICAgIGFsZ29yaXRobSA9IGFsZ29yaXRobVJl
Z2lzdHkuY3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQV9PQUVQKTsKLSAgICAg
ICAgcGFyYW1ldGVycyA9IGNyZWF0ZVJTQUtleVBhcmFtZXRlcnNXaXRoSGFzaChDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyOjpTSEFfMSk7Ci0gICAgfSBlbHNlIGlmIChtX2p3a0FsZ29yaXRobU5h
bWUgPT0gIkExMjhDQkMiKSB7Ci0gICAgICAgIGFsZ29yaXRobSA9IGFsZ29yaXRobVJlZ2lzdHku
Y3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19DQkMpOwotICAgICAgICBwYXJh
bWV0ZXJzID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRl
ZCk7Ci0gICAgfSBlbHNlIGlmIChtX2p3a0FsZ29yaXRobU5hbWUgPT0gIkExOTJDQkMiKSB7Ci0g
ICAgICAgIGFsZ29yaXRobSA9IGFsZ29yaXRobVJlZ2lzdHkuY3JlYXRlKENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXI6OkFFU19DQkMpOwotICAgICAgICBwYXJhbWV0ZXJzID0gYWRvcHRSZWYoKm5l
dyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCk7Ci0gICAgfSBlbHNlIGlmICht
X2p3a0FsZ29yaXRobU5hbWUgPT0gIkEyNTZDQkMiKSB7Ci0gICAgICAgIGFsZ29yaXRobSA9IGFs
Z29yaXRobVJlZ2lzdHkuY3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19DQkMp
OwotICAgICAgICBwYXJhbWV0ZXJzID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzRGVwcmVjYXRlZCk7Ci0gICAgfSBlbHNlIGlmIChtX2p3a0FsZ29yaXRobU5hbWUgPT0g
IkExMjhLVyIpIHsKLSAgICAgICAgYWxnb3JpdGhtID0gYWxnb3JpdGhtUmVnaXN0eS5jcmVhdGUo
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0tXKTsKLSAgICAgICAgcGFyYW1ldGVycyA9
IGFkb3B0UmVmKCpuZXcgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQpOwotICAg
IH0gZWxzZSBpZiAobV9qd2tBbGdvcml0aG1OYW1lID09ICJBMTkyS1ciKSB7Ci0gICAgICAgIGFs
Z29yaXRobSA9IGFsZ29yaXRobVJlZ2lzdHkuY3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXI6OkFFU19LVyk7Ci0gICAgICAgIHBhcmFtZXRlcnMgPSBhZG9wdFJlZigqbmV3IENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkKTsKLSAgICB9IGVsc2UgaWYgKG1fandrQWxnb3Jp
dGhtTmFtZSA9PSAiQTI1NktXIikgewotICAgICAgICBhbGdvcml0aG0gPSBhbGdvcml0aG1SZWdp
c3R5LmNyZWF0ZShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfS1cpOwotICAgICAgICBw
YXJhbWV0ZXJzID0gYWRvcHRSZWYoKm5ldyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVj
YXRlZCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgdGhyb3dUeXBlRXJyb3IobV9leGVjLCBzY29w
ZSwgIlVuc3VwcG9ydGVkIEpXSyBhbGdvcml0aG0gIiArIG1fandrQWxnb3JpdGhtTmFtZSk7Ci0g
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgfQotCi0gICAgaWYgKCFzdWdnZXN0ZWRB
bGdvcml0aG0pCi0gICAgICAgIHJldHVybiBDcnlwdG9BbGdvcml0aG1QYWlyIHsgYWxnb3JpdGht
LCBwYXJhbWV0ZXJzIH07Ci0KLSAgICBpZiAoIWFsZ29yaXRobSkKLSAgICAgICAgcmV0dXJuIENy
eXB0b0FsZ29yaXRobVBhaXIgeyBzdWdnZXN0ZWRBbGdvcml0aG0sIHN1Z2dlc3RlZFBhcmFtZXRl
cnMgfTsKLQotICAgIGlmIChhbGdvcml0aG0tPmlkZW50aWZpZXIoKSAhPSBzdWdnZXN0ZWRBbGdv
cml0aG0tPmlkZW50aWZpZXIoKSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAg
IGlmIChhbGdvcml0aG0tPmlkZW50aWZpZXIoKSA9PSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
OjpITUFDKSB7Ci0gICAgICAgIGlmIChkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1z
RGVwcmVjYXRlZD4oKnBhcmFtZXRlcnMpLmhhc2ggIT0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGht
SG1hY1BhcmFtc0RlcHJlY2F0ZWQ+KCpzdWdnZXN0ZWRQYXJhbWV0ZXJzKS5oYXNoKQotICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICAgICAgcmV0dXJuIENyeXB0b0FsZ29yaXRo
bVBhaXIgeyBzdWdnZXN0ZWRBbGdvcml0aG0sIHN1Z2dlc3RlZFBhcmFtZXRlcnMgfTsKLSAgICB9
Ci0gICAgaWYgKGFsZ29yaXRobS0+aWRlbnRpZmllcigpID09IENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXI6OlJTQVNTQV9QS0NTMV92MV81Ci0gICAgICAgIHx8IGFsZ29yaXRobS0+aWRlbnRpZmll
cigpID09IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQV9PQUVQKSB7Ci0gICAgICAgIENy
eXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVwcmVjYXRlZCYgcnNhS2V5UGFyYW1l
dGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNoRGVwcmVj
YXRlZD4oKnBhcmFtZXRlcnMpOwotICAgICAgICBDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNX
aXRoSGFzaERlcHJlY2F0ZWQmIHN1Z2dlc3RlZFJTQUtleVBhcmFtZXRlcnMgPSBkb3duY2FzdDxD
cnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERlcHJlY2F0ZWQ+KCpzdWdnZXN0ZWRQ
YXJhbWV0ZXJzKTsKLSAgICAgICAgQVNTRVJUKHJzYUtleVBhcmFtZXRlcnMuaGFzSGFzaCk7Ci0g
ICAgICAgIGlmIChzdWdnZXN0ZWRSU0FLZXlQYXJhbWV0ZXJzLmhhc0hhc2gpIHsKLSAgICAgICAg
ICAgIGlmIChzdWdnZXN0ZWRSU0FLZXlQYXJhbWV0ZXJzLmhhc2ggIT0gcnNhS2V5UGFyYW1ldGVy
cy5oYXNoKQotICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgICAgICAg
ICByZXR1cm4gQ3J5cHRvQWxnb3JpdGhtUGFpciB7IHN1Z2dlc3RlZEFsZ29yaXRobSwgc3VnZ2Vz
dGVkUGFyYW1ldGVycyB9OwotICAgICAgICB9Ci0gICAgICAgIHN1Z2dlc3RlZFJTQUtleVBhcmFt
ZXRlcnMuaGFzSGFzaCA9IHRydWU7Ci0gICAgICAgIHN1Z2dlc3RlZFJTQUtleVBhcmFtZXRlcnMu
aGFzaCA9IHJzYUtleVBhcmFtZXRlcnMuaGFzaDsKLSAgICB9Ci0KLSAgICAvLyBPdGhlciBhbGdv
cml0aG1zIGRvbid0IGhhdmUgcGFyYW1ldGVycy4KLSAgICByZXR1cm4gQ3J5cHRvQWxnb3JpdGht
UGFpciB7IHN1Z2dlc3RlZEFsZ29yaXRobSwgc3VnZ2VzdGVkUGFyYW1ldGVycyB9OwotfQotCi1z
dGF0aWMgYm9vbCB0cnlKV0tLZXlPcHNWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIENyeXB0b0tleVVz
YWdlQml0bWFwJiB1c2FnZXMsIGNvbnN0IFN0cmluZyYgb3BlcmF0aW9uLCBjb25zdCBTdHJpbmcm
IHRyeU9wZXJhdGlvbiwgQ3J5cHRvS2V5VXNhZ2VCaXRtYXAgdHJ5VXNhZ2UpCi17Ci0gICAgVk0m
IHZtID0gZXhlYy0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7Ci0KLSAgICBpZiAob3BlcmF0aW9uID09IHRyeU9wZXJhdGlvbikgewotICAgICAgICBpZiAo
dXNhZ2VzICYgdHJ5VXNhZ2UpIHsKLSAgICAgICAgICAgIHRocm93VHlwZUVycm9yKGV4ZWMsIHNj
b3BlLCBBU0NJSUxpdGVyYWwoIkpXSyBrZXlfb3BzIGNvbnRhaW5zIGEgZHVwbGljYXRlIG9wZXJh
dGlvbiIpKTsKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgICAgICB1
c2FnZXMgfD0gdHJ5VXNhZ2U7Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwotfQotCi12b2lkIEpT
Q3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSzo6cmVjb25jaWxlVXNhZ2VzKENyeXB0b0tleVVzYWdl
Qml0bWFwJiBzdWdnZXN0ZWRVc2FnZXMpIGNvbnN0Ci17Ci0gICAgVk0mIHZtID0gbV9leGVjLT52
bSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLQotICAgIENy
eXB0b0tleVVzYWdlQml0bWFwIGp3a1VzYWdlcyA9IDA7Ci0KLSAgICBKU0FycmF5KiBrZXlPcHM7
Ci0gICAgaWYgKGdldEpTQXJyYXlGcm9tSlNPTihtX2V4ZWMsIG1fanNvbi5nZXQoKSwgImtleV9v
cHMiLCBrZXlPcHMpKSB7Ci0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwga2V5T3BzLT5s
ZW5ndGgoKTsgKytpKSB7Ci0gICAgICAgICAgICBKU1ZhbHVlIGpzVmFsdWUgPSBrZXlPcHMtPmdl
dEluZGV4KG1fZXhlYywgaSk7Ci0gICAgICAgICAgICBTdHJpbmcgb3BlcmF0aW9uOwotICAgICAg
ICAgICAgaWYgKCFqc1ZhbHVlLmdldFN0cmluZyhtX2V4ZWMsIG9wZXJhdGlvbikpIHsKLSAgICAg
ICAgICAgICAgICBpZiAoIXNjb3BlLmV4Y2VwdGlvbigpKQotICAgICAgICAgICAgICAgICAgICB0
aHJvd1R5cGVFcnJvcihtX2V4ZWMsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIkpXSyBrZXlfb3BzIGF0
dHJpYnV0ZSBjb3VsZCBub3QgYmUgcHJvY2Vzc2VkIikpOwotICAgICAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICghdHJ5SldLS2V5T3BzVmFsdWUobV9l
eGVjLCBqd2tVc2FnZXMsIG9wZXJhdGlvbiwgQVNDSUlMaXRlcmFsKCJzaWduIiksIENyeXB0b0tl
eVVzYWdlU2lnbikpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgaWYgKCF0
cnlKV0tLZXlPcHNWYWx1ZShtX2V4ZWMsIGp3a1VzYWdlcywgb3BlcmF0aW9uLCBBU0NJSUxpdGVy
YWwoInZlcmlmeSIpLCBDcnlwdG9LZXlVc2FnZVZlcmlmeSkpCi0gICAgICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICAgICAgaWYgKCF0cnlKV0tLZXlPcHNWYWx1ZShtX2V4ZWMsIGp3a1VzYWdl
cywgb3BlcmF0aW9uLCBBU0NJSUxpdGVyYWwoImVuY3J5cHQiKSwgQ3J5cHRvS2V5VXNhZ2VFbmNy
eXB0KSkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBpZiAoIXRyeUpXS0tl
eU9wc1ZhbHVlKG1fZXhlYywgandrVXNhZ2VzLCBvcGVyYXRpb24sIEFTQ0lJTGl0ZXJhbCgiZGVj
cnlwdCIpLCBDcnlwdG9LZXlVc2FnZURlY3J5cHQpKQotICAgICAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgICAgIGlmICghdHJ5SldLS2V5T3BzVmFsdWUobV9leGVjLCBqd2tVc2FnZXMsIG9w
ZXJhdGlvbiwgQVNDSUlMaXRlcmFsKCJ3cmFwS2V5IiksIENyeXB0b0tleVVzYWdlV3JhcEtleSkp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgaWYgKCF0cnlKV0tLZXlPcHNW
YWx1ZShtX2V4ZWMsIGp3a1VzYWdlcywgb3BlcmF0aW9uLCBBU0NJSUxpdGVyYWwoInVud3JhcEtl
eSIpLCBDcnlwdG9LZXlVc2FnZVVud3JhcEtleSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICAgICAgaWYgKCF0cnlKV0tLZXlPcHNWYWx1ZShtX2V4ZWMsIGp3a1VzYWdlcywgb3Bl
cmF0aW9uLCBBU0NJSUxpdGVyYWwoImRlcml2ZUtleSIpLCBDcnlwdG9LZXlVc2FnZURlcml2ZUtl
eSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgaWYgKCF0cnlKV0tLZXlP
cHNWYWx1ZShtX2V4ZWMsIGp3a1VzYWdlcywgb3BlcmF0aW9uLCBBU0NJSUxpdGVyYWwoImRlcml2
ZUJpdHMiKSwgQ3J5cHRvS2V5VXNhZ2VEZXJpdmVCaXRzKSkKLSAgICAgICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCB2b2lkKCkpOwotCi0gICAgICAgIFN0cmluZyBqd2tVc2VTdHJpbmc7Ci0gICAgICAg
IGlmICghZ2V0U3RyaW5nRnJvbUpTT04obV9leGVjLCBtX2pzb24uZ2V0KCksICJ1c2UiLCBqd2tV
c2VTdHJpbmcpKSB7Ci0gICAgICAgICAgICAvLyBXZSBoYXZlIG5laXRoZXIga2V5X29wcyBub3Ig
dXNlLgotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGp3a1Vz
ZVN0cmluZyA9PSAiZW5jIikKLSAgICAgICAgICAgIGp3a1VzYWdlcyB8PSAoQ3J5cHRvS2V5VXNh
Z2VFbmNyeXB0IHwgQ3J5cHRvS2V5VXNhZ2VEZWNyeXB0IHwgQ3J5cHRvS2V5VXNhZ2VXcmFwS2V5
IHwgQ3J5cHRvS2V5VXNhZ2VVbndyYXBLZXkpOwotICAgICAgICBlbHNlIGlmIChqd2tVc2VTdHJp
bmcgPT0gInNpZyIpCi0gICAgICAgICAgICBqd2tVc2FnZXMgfD0gKENyeXB0b0tleVVzYWdlU2ln
biB8IENyeXB0b0tleVVzYWdlVmVyaWZ5KTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICB0
aHJvd1R5cGVFcnJvcihtX2V4ZWMsIHNjb3BlLCAiVW5zdXBwb3J0ZWQgSldLIGtleSB1c2UgdmFs
dWUgXCIiICsgandrVXNlU3RyaW5nICsgIlwiIik7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIH0KLSAgICB9Ci0KLSAgICBzdWdnZXN0ZWRVc2FnZXMgPSBzdWdnZXN0ZWRVc2FnZXMgJiBq
d2tVc2FnZXM7Ci19Ci0KLXZvaWQgSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLOjpyZWNvbmNp
bGVFeHRyYWN0YWJsZShib29sJiBzdWdnZXN0ZWRFeHRyYWN0YWJsZSkgY29uc3QKLXsKLSAgICBi
b29sIGp3a0V4dHJhY3RhYmxlOwotICAgIGlmICghZ2V0Qm9vbGVhbkZyb21KU09OKG1fZXhlYywg
bV9qc29uLmdldCgpLCAiZXh0IiwgandrRXh0cmFjdGFibGUpKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBzdWdnZXN0ZWRFeHRyYWN0YWJsZSA9IHN1Z2dlc3RlZEV4dHJhY3RhYmxlICYmIGp3a0V4
dHJhY3RhYmxlOwotfQotCi1ib29sIEpTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSzo6a2V5U2l6
ZUlzVmFsaWQoc2l6ZV90IHNpemVJbkJpdHMpIGNvbnN0Ci17Ci0gICAgaWYgKG1fandrQWxnb3Jp
dGhtTmFtZSA9PSAiSFMyNTYiKQotICAgICAgICByZXR1cm4gc2l6ZUluQml0cyA+PSAyNTY7Ci0g
ICAgaWYgKG1fandrQWxnb3JpdGhtTmFtZSA9PSAiSFMzODQiKQotICAgICAgICByZXR1cm4gc2l6
ZUluQml0cyA+PSAzODQ7Ci0gICAgaWYgKG1fandrQWxnb3JpdGhtTmFtZSA9PSAiSFM1MTIiKQot
ICAgICAgICByZXR1cm4gc2l6ZUluQml0cyA+PSA1MTI7Ci0gICAgaWYgKG1fandrQWxnb3JpdGht
TmFtZSA9PSAiQTEyOENCQyIpCi0gICAgICAgIHJldHVybiBzaXplSW5CaXRzID09IDEyODsKLSAg
ICBpZiAobV9qd2tBbGdvcml0aG1OYW1lID09ICJBMTkyQ0JDIikKLSAgICAgICAgcmV0dXJuIHNp
emVJbkJpdHMgPT0gMTkyOwotICAgIGlmIChtX2p3a0FsZ29yaXRobU5hbWUgPT0gIkEyNTZDQkMi
KQotICAgICAgICByZXR1cm4gc2l6ZUluQml0cyA9PSAyNTY7Ci0gICAgaWYgKG1fandrQWxnb3Jp
dGhtTmFtZSA9PSAiQTEyOEtXIikKLSAgICAgICAgcmV0dXJuIHNpemVJbkJpdHMgPT0gMTI4Owot
ICAgIGlmIChtX2p3a0FsZ29yaXRobU5hbWUgPT0gIkExOTJLVyIpCi0gICAgICAgIHJldHVybiBz
aXplSW5CaXRzID09IDE5MjsKLSAgICBpZiAobV9qd2tBbGdvcml0aG1OYW1lID09ICJBMjU2S1ci
KQotICAgICAgICByZXR1cm4gc2l6ZUluQml0cyA9PSAyNTY7Ci0gICAgaWYgKG1fandrQWxnb3Jp
dGhtTmFtZSA9PSAiUlMyNTYiKQotICAgICAgICByZXR1cm4gc2l6ZUluQml0cyA+PSAyMDQ4Owot
ICAgIGlmIChtX2p3a0FsZ29yaXRobU5hbWUgPT0gIlJTMzg0IikKLSAgICAgICAgcmV0dXJuIHNp
emVJbkJpdHMgPj0gMjA0ODsKLSAgICBpZiAobV9qd2tBbGdvcml0aG1OYW1lID09ICJSUzUxMiIp
Ci0gICAgICAgIHJldHVybiBzaXplSW5CaXRzID49IDIwNDg7Ci0gICAgaWYgKG1fandrQWxnb3Jp
dGhtTmFtZSA9PSAiUlNBMV81IikKLSAgICAgICAgcmV0dXJuIHNpemVJbkJpdHMgPj0gMjA0ODsK
LSAgICBpZiAobV9qd2tBbGdvcml0aG1OYW1lID09ICJSU0FfT0FFUCIpCi0gICAgICAgIHJldHVy
biBzaXplSW5CaXRzID49IDIwNDg7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLXN0ZDo6dW5pcXVl
X3B0cjxDcnlwdG9LZXlEYXRhPiBKU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0s6OmtleURhdGFP
Y3RldFNlcXVlbmNlKCkgY29uc3QKLXsKLSAgICBWTSYgdm0gPSBtX2V4ZWMtPnZtKCk7Ci0gICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotCi0gICAgU3RyaW5nIGtleUJh
c2U2NFVSTDsKLSAgICBpZiAoIWdldFN0cmluZ0Zyb21KU09OKG1fZXhlYywgbV9qc29uLmdldCgp
LCAiayIsIGtleUJhc2U2NFVSTCkpIHsKLSAgICAgICAgaWYgKCFzY29wZS5leGNlcHRpb24oKSkK
LSAgICAgICAgICAgIHRocm93VHlwZUVycm9yKG1fZXhlYywgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgi
U2VjcmV0IGtleSBkYXRhIGlzIG5vdCBwcmVzZW50IGlzIEpXSyIpKTsKLSAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgfQotCi0gICAgVmVjdG9yPHVpbnQ4X3Q+IG9jdGV0U2VxdWVuY2U7Ci0g
ICAgaWYgKCFiYXNlNjRVUkxEZWNvZGUoa2V5QmFzZTY0VVJMLCBvY3RldFNlcXVlbmNlKSkgewot
ICAgICAgICB0aHJvd1R5cGVFcnJvcihtX2V4ZWMsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIkNhbm5v
dCBkZWNvZGUgYmFzZTY0dXJsIGtleSBkYXRhIGluIEpXSyIpKTsKLSAgICAgICAgcmV0dXJuIG51
bGxwdHI7Ci0gICAgfQotCi0gICAgaWYgKCFrZXlTaXplSXNWYWxpZChvY3RldFNlcXVlbmNlLnNp
emUoKSAqIDgpKSB7Ci0gICAgICAgIHRocm93VHlwZUVycm9yKG1fZXhlYywgc2NvcGUsICJLZXkg
c2l6ZSBpcyBub3QgdmFsaWQgZm9yICIgKyBtX2p3a0FsZ29yaXRobU5hbWUpOwotICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0KLSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxDcnlw
dG9LZXlEYXRhT2N0ZXRTZXF1ZW5jZT4ob2N0ZXRTZXF1ZW5jZSk7Ci19Ci0KLXN0ZDo6dW5pcXVl
X3B0cjxDcnlwdG9LZXlEYXRhPiBKU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0s6OmtleURhdGFS
U0FDb21wb25lbnRzKCkgY29uc3QKLXsKLSAgICBWTSYgdm0gPSBtX2V4ZWMtPnZtKCk7Ci0gICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotCi0gICAgVmVjdG9yPHVpbnQ4
X3Q+IG1vZHVsdXM7Ci0gICAgVmVjdG9yPHVpbnQ4X3Q+IGV4cG9uZW50OwotICAgIFZlY3Rvcjx1
aW50OF90PiBwcml2YXRlRXhwb25lbnQ7Ci0KLSAgICBpZiAoIWdldEJpZ0ludGVnZXJWZWN0b3JG
cm9tSlNPTihtX2V4ZWMsIG1fanNvbi5nZXQoKSwgIm4iLCBtb2R1bHVzKSkgewotICAgICAgICBp
ZiAoIXNjb3BlLmV4Y2VwdGlvbigpKQotICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IobV9leGVj
LCBzY29wZSwgQVNDSUlMaXRlcmFsKCJSZXF1aXJlZCBKV0sgXCJuXCIgbWVtYmVyIGlzIG1pc3Np
bmciKSk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLQotICAgIGlmICgha2V5U2l6
ZUlzVmFsaWQobW9kdWx1cy5zaXplKCkgKiA4KSkgewotICAgICAgICB0aHJvd1R5cGVFcnJvciht
X2V4ZWMsIHNjb3BlLCAiS2V5IHNpemUgaXMgbm90IHZhbGlkIGZvciAiICsgbV9qd2tBbGdvcml0
aG1OYW1lKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCi0gICAgaWYgKCFnZXRC
aWdJbnRlZ2VyVmVjdG9yRnJvbUpTT04obV9leGVjLCBtX2pzb24uZ2V0KCksICJlIiwgZXhwb25l
bnQpKSB7Ci0gICAgICAgIGlmICghc2NvcGUuZXhjZXB0aW9uKCkpCi0gICAgICAgICAgICB0aHJv
d1R5cGVFcnJvcihtX2V4ZWMsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIlJlcXVpcmVkIEpXSyBcImVc
IiBtZW1iZXIgaXMgbWlzc2luZyIpKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQot
Ci0gICAgaWYgKCFnZXRCaWdJbnRlZ2VyVmVjdG9yRnJvbUpTT04obV9leGVjLCBtX2pzb24uZ2V0
KCksICJkIiwgbW9kdWx1cykpIHsKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
bnVsbHB0cik7Ci0gICAgICAgIHJldHVybiBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50czo6Y3Jl
YXRlUHVibGljKG1vZHVsdXMsIGV4cG9uZW50KTsKLSAgICB9Ci0KLSAgICBDcnlwdG9LZXlEYXRh
UlNBQ29tcG9uZW50czo6UHJpbWVJbmZvIGZpcnN0UHJpbWVJbmZvOwotICAgIENyeXB0b0tleURh
dGFSU0FDb21wb25lbnRzOjpQcmltZUluZm8gc2Vjb25kUHJpbWVJbmZvOwotICAgIFZlY3RvcjxD
cnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50czo6UHJpbWVJbmZvPiBvdGhlclByaW1lSW5mb3M7Ci0g
ICAgaWYgKCFnZXRCaWdJbnRlZ2VyVmVjdG9yRnJvbUpTT04obV9leGVjLCBtX2pzb24uZ2V0KCks
ICJwIiwgZmlyc3RQcmltZUluZm8ucHJpbWVGYWN0b3IpKSB7Ci0gICAgICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwotICAgICAgICByZXR1cm4gQ3J5cHRvS2V5RGF0YVJT
QUNvbXBvbmVudHM6OmNyZWF0ZVByaXZhdGUobW9kdWx1cywgZXhwb25lbnQsIHByaXZhdGVFeHBv
bmVudCk7Ci0gICAgfQotCi0gICAgaWYgKCFnZXRCaWdJbnRlZ2VyVmVjdG9yRnJvbUpTT04obV9l
eGVjLCBtX2pzb24uZ2V0KCksICJkcCIsIGZpcnN0UHJpbWVJbmZvLmZhY3RvckNSVEV4cG9uZW50
KSkgewotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKLSAgICAg
ICAgcmV0dXJuIENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzOjpjcmVhdGVQcml2YXRlKG1vZHVs
dXMsIGV4cG9uZW50LCBwcml2YXRlRXhwb25lbnQpOwotICAgIH0KLQotICAgIGlmICghZ2V0Qmln
SW50ZWdlclZlY3RvckZyb21KU09OKG1fZXhlYywgbV9qc29uLmdldCgpLCAicSIsIHNlY29uZFBy
aW1lSW5mby5wcmltZUZhY3RvcikpIHsKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgbnVsbHB0cik7Ci0gICAgICAgIHJldHVybiBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50czo6
Y3JlYXRlUHJpdmF0ZShtb2R1bHVzLCBleHBvbmVudCwgcHJpdmF0ZUV4cG9uZW50KTsKLSAgICB9
Ci0KLSAgICBpZiAoIWdldEJpZ0ludGVnZXJWZWN0b3JGcm9tSlNPTihtX2V4ZWMsIG1fanNvbi5n
ZXQoKSwgImRxIiwgc2Vjb25kUHJpbWVJbmZvLmZhY3RvckNSVEV4cG9uZW50KSkgewotICAgICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKLSAgICAgICAgcmV0dXJuIENy
eXB0b0tleURhdGFSU0FDb21wb25lbnRzOjpjcmVhdGVQcml2YXRlKG1vZHVsdXMsIGV4cG9uZW50
LCBwcml2YXRlRXhwb25lbnQpOwotICAgIH0KLQotICAgIGlmICghZ2V0QmlnSW50ZWdlclZlY3Rv
ckZyb21KU09OKG1fZXhlYywgbV9qc29uLmdldCgpLCAicWkiLCBzZWNvbmRQcmltZUluZm8uZmFj
dG9yQ1JUQ29lZmZpY2llbnQpKSB7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IG51bGxwdHIpOwotICAgICAgICByZXR1cm4gQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHM6OmNy
ZWF0ZVByaXZhdGUobW9kdWx1cywgZXhwb25lbnQsIHByaXZhdGVFeHBvbmVudCk7Ci0gICAgfQot
Ci0gICAgSlNBcnJheSogb3RoZXJQcmltZUluZm9KU0FycmF5OwotICAgIGlmICghZ2V0SlNBcnJh
eUZyb21KU09OKG1fZXhlYywgbV9qc29uLmdldCgpLCAib3RoIiwgb3RoZXJQcmltZUluZm9KU0Fy
cmF5KSkgewotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKLSAg
ICAgICAgcmV0dXJuIENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzOjpjcmVhdGVQcml2YXRlV2l0
aEFkZGl0aW9uYWxEYXRhKG1vZHVsdXMsIGV4cG9uZW50LCBwcml2YXRlRXhwb25lbnQsIGZpcnN0
UHJpbWVJbmZvLCBzZWNvbmRQcmltZUluZm8sIG90aGVyUHJpbWVJbmZvcyk7Ci0gICAgfQotCi0g
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvdGhlclByaW1lSW5mb0pTQXJyYXktPmxlbmd0aCgp
OyArK2kpIHsKLSAgICAgICAgQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHM6OlByaW1lSW5mbyBp
bmZvOwotICAgICAgICBKU1ZhbHVlIGVsZW1lbnQgPSBvdGhlclByaW1lSW5mb0pTQXJyYXktPmdl
dEluZGV4KG1fZXhlYywgaSk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51
bGxwdHIpOwotICAgICAgICBpZiAoIWVsZW1lbnQuaXNPYmplY3QoKSkgewotICAgICAgICAgICAg
dGhyb3dUeXBlRXJyb3IobV9leGVjLCBzY29wZSwgQVNDSUlMaXRlcmFsKCJKV0sgXCJvdGhcIiBh
cnJheSBtZW1iZXIgaXMgbm90IGFuIG9iamVjdCIpKTsKLSAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgICAgICB9Ci0gICAgICAgIGlmICghZ2V0QmlnSW50ZWdlclZlY3RvckZyb21KU09O
KG1fZXhlYywgYXNPYmplY3QoZWxlbWVudCksICJyIiwgaW5mby5wcmltZUZhY3RvcikpIHsKLSAg
ICAgICAgICAgIGlmICghc2NvcGUuZXhjZXB0aW9uKCkpCi0gICAgICAgICAgICAgICAgdGhyb3dU
eXBlRXJyb3IobV9leGVjLCBzY29wZSwgQVNDSUlMaXRlcmFsKCJDYW5ub3QgZ2V0IHByaW1lIGZh
Y3RvciBmb3IgYSBwcmltZSBpbiBcIm90aFwiIGRpY3Rpb25hcnkiKSk7Ci0gICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgfQotICAgICAgICBpZiAoIWdldEJpZ0ludGVnZXJWZWN0
b3JGcm9tSlNPTihtX2V4ZWMsIGFzT2JqZWN0KGVsZW1lbnQpLCAiZCIsIGluZm8uZmFjdG9yQ1JU
RXhwb25lbnQpKSB7Ci0gICAgICAgICAgICBpZiAoIXNjb3BlLmV4Y2VwdGlvbigpKQotICAgICAg
ICAgICAgICAgIHRocm93VHlwZUVycm9yKG1fZXhlYywgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiQ2Fu
bm90IGdldCBmYWN0b3IgQ1JUIGV4cG9uZW50IGZvciBhIHByaW1lIGluIFwib3RoXCIgZGljdGlv
bmFyeSIpKTsKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICB9Ci0gICAgICAg
IGlmICghZ2V0QmlnSW50ZWdlclZlY3RvckZyb21KU09OKG1fZXhlYywgYXNPYmplY3QoZWxlbWVu
dCksICJ0IiwgaW5mby5mYWN0b3JDUlRDb2VmZmljaWVudCkpIHsKLSAgICAgICAgICAgIGlmICgh
c2NvcGUuZXhjZXB0aW9uKCkpCi0gICAgICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IobV9leGVj
LCBzY29wZSwgQVNDSUlMaXRlcmFsKCJDYW5ub3QgZ2V0IGZhY3RvciBDUlQgY29lZmZpY2llbnQg
Zm9yIGEgcHJpbWUgaW4gXCJvdGhcIiBkaWN0aW9uYXJ5IikpOwotICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgICAgIH0KLSAgICAgICAgb3RoZXJQcmltZUluZm9zLmFwcGVuZChpbmZv
KTsKLSAgICB9Ci0KLSAgICByZXR1cm4gQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHM6OmNyZWF0
ZVByaXZhdGVXaXRoQWRkaXRpb25hbERhdGEobW9kdWx1cywgZXhwb25lbnQsIHByaXZhdGVFeHBv
bmVudCwgZmlyc3RQcmltZUluZm8sIHNlY29uZFByaW1lSW5mbywgb3RoZXJQcmltZUluZm9zKTsK
LX0KLQotc3RkOjp1bmlxdWVfcHRyPENyeXB0b0tleURhdGE+IEpTQ3J5cHRvS2V5U2VyaWFsaXph
dGlvbkpXSzo6a2V5RGF0YSgpIGNvbnN0Ci17Ci0gICAgVk0mIHZtID0gbV9leGVjLT52bSgpOwot
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLQotICAgIFN0cmluZyBq
d2tLZXlUeXBlOwotICAgIGlmICghZ2V0U3RyaW5nRnJvbUpTT04obV9leGVjLCBtX2pzb24uZ2V0
KCksICJrdHkiLCBqd2tLZXlUeXBlKSkgewotICAgICAgICBpZiAoIXNjb3BlLmV4Y2VwdGlvbigp
KQotICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IobV9leGVjLCBzY29wZSwgQVNDSUlMaXRlcmFs
KCJSZXF1aXJlZCBKV0sgXCJrdHlcIiBtZW1iZXIgaXMgbWlzc2luZyIpKTsKLSAgICAgICAgcmV0
dXJuIG51bGxwdHI7Ci0gICAgfQotCi0gICAgaWYgKGp3a0tleVR5cGUgPT0gIm9jdCIpCi0gICAg
ICAgIHJldHVybiBrZXlEYXRhT2N0ZXRTZXF1ZW5jZSgpOwotCi0gICAgaWYgKGp3a0tleVR5cGUg
PT0gIlJTQSIpCi0gICAgICAgIHJldHVybiBrZXlEYXRhUlNBQ29tcG9uZW50cygpOwotCi0gICAg
dGhyb3dUeXBlRXJyb3IobV9leGVjLCBzY29wZSwgIlVuc3VwcG9ydGVkIEpXSyBrZXkgdHlwZSAi
ICsgandrS2V5VHlwZSk7Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KLXN0YXRpYyB2b2lkIGFk
ZFRvSlNPTihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBqc29uLCBjb25zdCBjaGFyKiBrZXks
IGNvbnN0IFN0cmluZyYgdmFsdWUpCi17Ci0gICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKLSAgICBJ
ZGVudGlmaWVyIGlkZW50aWZpZXIgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwga2V5KTsK
LSAgICBqc29uLT5wdXREaXJlY3Qodm0sIGlkZW50aWZpZXIsIGpzU3RyaW5nKGV4ZWMsIHZhbHVl
KSk7Ci19Ci0KLXN0YXRpYyB2b2lkIGJ1aWxkSlNPTkZvck9jdGV0U2VxdWVuY2UoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGtleURhdGEsIEpTT2JqZWN0KiByZXN1bHQp
Ci17Ci0gICAgYWRkVG9KU09OKGV4ZWMsIHJlc3VsdCwgImt0eSIsICJvY3QiKTsKLSAgICBhZGRU
b0pTT04oZXhlYywgcmVzdWx0LCAiayIsIGJhc2U2NFVSTEVuY29kZShrZXlEYXRhKSk7Ci19Ci0K
LXN0YXRpYyB2b2lkIGJ1aWxkSlNPTkZvclJTQUNvbXBvbmVudHMoSlNDOjpFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzJiBkYXRhLCBKU0M6OkpTT2JqZWN0
KiByZXN1bHQpCi17Ci0gICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0KLSAgICBhZGRUb0pTT04oZXhlYywgcmVzdWx0LCAi
a3R5IiwgIlJTQSIpOwotICAgIGFkZFRvSlNPTihleGVjLCByZXN1bHQsICJuIiwgYmFzZTY0VVJM
RW5jb2RlKGRhdGEubW9kdWx1cygpKSk7Ci0gICAgYWRkVG9KU09OKGV4ZWMsIHJlc3VsdCwgImUi
LCBiYXNlNjRVUkxFbmNvZGUoZGF0YS5leHBvbmVudCgpKSk7Ci0KLSAgICBpZiAoZGF0YS50eXBl
KCkgPT0gQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHM6OlR5cGU6OlB1YmxpYykKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgYWRkVG9KU09OKGV4ZWMsIHJlc3VsdCwgImQiLCBiYXNlNjRVUkxFbmNv
ZGUoZGF0YS5wcml2YXRlRXhwb25lbnQoKSkpOwotCi0gICAgaWYgKCFkYXRhLmhhc0FkZGl0aW9u
YWxQcml2YXRlS2V5UGFyYW1ldGVycygpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBhZGRUb0pT
T04oZXhlYywgcmVzdWx0LCAicCIsIGJhc2U2NFVSTEVuY29kZShkYXRhLmZpcnN0UHJpbWVJbmZv
KCkucHJpbWVGYWN0b3IpKTsKLSAgICBhZGRUb0pTT04oZXhlYywgcmVzdWx0LCAicSIsIGJhc2U2
NFVSTEVuY29kZShkYXRhLnNlY29uZFByaW1lSW5mbygpLnByaW1lRmFjdG9yKSk7Ci0gICAgYWRk
VG9KU09OKGV4ZWMsIHJlc3VsdCwgImRwIiwgYmFzZTY0VVJMRW5jb2RlKGRhdGEuZmlyc3RQcmlt
ZUluZm8oKS5mYWN0b3JDUlRFeHBvbmVudCkpOwotICAgIGFkZFRvSlNPTihleGVjLCByZXN1bHQs
ICJkcSIsIGJhc2U2NFVSTEVuY29kZShkYXRhLnNlY29uZFByaW1lSW5mbygpLmZhY3RvckNSVEV4
cG9uZW50KSk7Ci0gICAgYWRkVG9KU09OKGV4ZWMsIHJlc3VsdCwgInFpIiwgYmFzZTY0VVJMRW5j
b2RlKGRhdGEuc2Vjb25kUHJpbWVJbmZvKCkuZmFjdG9yQ1JUQ29lZmZpY2llbnQpKTsKLQotICAg
IGlmIChkYXRhLm90aGVyUHJpbWVJbmZvcygpLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgSlNBcnJheSogb3RoID0gY29uc3RydWN0RW1wdHlBcnJheShleGVjLCAwLCBleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCksIGRhdGEub3RoZXJQcmltZUluZm9zKCkuc2l6ZSgpKTsKLSAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwotICAgIGZvciAoc2l6ZV90IGkg
PSAwLCBzaXplID0gZGF0YS5vdGhlclByaW1lSW5mb3MoKS5zaXplKCk7IGkgPCBzaXplOyArK2kp
IHsKLSAgICAgICAgSlNPYmplY3QqIGpzUHJpbWVJbmZvID0gY29uc3RydWN0RW1wdHlPYmplY3Qo
ZXhlYyk7Ci0gICAgICAgIGFkZFRvSlNPTihleGVjLCBqc1ByaW1lSW5mbywgInIiLCBiYXNlNjRV
UkxFbmNvZGUoZGF0YS5vdGhlclByaW1lSW5mb3MoKVtpXS5wcmltZUZhY3RvcikpOwotICAgICAg
ICBhZGRUb0pTT04oZXhlYywganNQcmltZUluZm8sICJkIiwgYmFzZTY0VVJMRW5jb2RlKGRhdGEu
b3RoZXJQcmltZUluZm9zKClbaV0uZmFjdG9yQ1JURXhwb25lbnQpKTsKLSAgICAgICAgYWRkVG9K
U09OKGV4ZWMsIGpzUHJpbWVJbmZvLCAidCIsIGJhc2U2NFVSTEVuY29kZShkYXRhLm90aGVyUHJp
bWVJbmZvcygpW2ldLmZhY3RvckNSVENvZWZmaWNpZW50KSk7Ci0gICAgICAgIG90aC0+cHV0RGly
ZWN0SW5kZXgoZXhlYywgaSwganNQcmltZUluZm8pOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCB2b2lkKCkpOwotICAgIH0KLSAgICByZXN1bHQtPnB1dERpcmVjdCh2bSwgSWRl
bnRpZmllcjo6ZnJvbVN0cmluZyhleGVjLCAib3RoIiksIG90aCk7Ci19Ci0KLXN0YXRpYyB2b2lk
IGFkZEJvb2xUb0pTT04oRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCoganNvbiwgY29uc3QgY2hh
cioga2V5LCBib29sIHZhbHVlKQotewotICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7Ci0gICAgSWRl
bnRpZmllciBpZGVudGlmaWVyID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIGtleSk7Ci0g
ICAganNvbi0+cHV0RGlyZWN0KHZtLCBpZGVudGlmaWVyLCBqc0Jvb2xlYW4odmFsdWUpKTsKLX0K
LQotc3RhdGljIHZvaWQgYWRkSldLQWxnb3JpdGhtVG9KU09OKEV4ZWNTdGF0ZSogZXhlYywgSlNP
YmplY3QqIGpzb24sIGNvbnN0IENyeXB0b0tleSYga2V5KQotewotICAgIFZNJiB2bSA9IGV4ZWMt
PnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotCi0gICAg
U3RyaW5nIGp3a0FsZ29yaXRobTsKLSAgICBzd2l0Y2ggKGtleS5hbGdvcml0aG1JZGVudGlmaWVy
KCkpIHsKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkhNQUM6Ci0gICAgICAg
IHN3aXRjaCAoZG93bmNhc3Q8Q3J5cHRvS2V5SE1BQz4oa2V5KS5oYXNoQWxnb3JpdGhtSWRlbnRp
ZmllcigpKSB7Ci0gICAgICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzI1
NjoKLSAgICAgICAgICAgIGlmIChkb3duY2FzdDxDcnlwdG9LZXlITUFDPihrZXkpLmtleSgpLnNp
emUoKSAqIDggPj0gMjU2KQotICAgICAgICAgICAgICAgIGp3a0FsZ29yaXRobSA9ICJIUzI1NiI7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyOjpTSEFfMzg0OgotICAgICAgICAgICAgaWYgKGRvd25jYXN0PENyeXB0b0tleUhNQUM+KGtl
eSkua2V5KCkuc2l6ZSgpICogOCA+PSAzODQpCi0gICAgICAgICAgICAgICAgandrQWxnb3JpdGht
ID0gIkhTMzg0IjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXI6OlNIQV81MTI6Ci0gICAgICAgICAgICBpZiAoZG93bmNhc3Q8Q3J5cHRv
S2V5SE1BQz4oa2V5KS5rZXkoKS5zaXplKCkgKiA4ID49IDUxMikKLSAgICAgICAgICAgICAgICBq
d2tBbGdvcml0aG0gPSAiSFM1MTIiOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGRlZmF1
bHQ6Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgICBicmVhazsKLSAgICBj
YXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19DQkM6Ci0gICAgICAgIHN3aXRjaCAo
ZG93bmNhc3Q8Q3J5cHRvS2V5QUVTPihrZXkpLmtleSgpLnNpemUoKSAqIDgpIHsKLSAgICAgICAg
Y2FzZSAxMjg6Ci0gICAgICAgICAgICBqd2tBbGdvcml0aG0gPSAiQTEyOENCQyI7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgY2FzZSAxOTI6Ci0gICAgICAgICAgICBqd2tBbGdvcml0aG0g
PSAiQTE5MkNCQyI7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAyNTY6Ci0gICAg
ICAgICAgICBqd2tBbGdvcml0aG0gPSAiQTI1NkNCQyI7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgfQotICAgICAgICBicmVhazsKLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXI6OkFFU19LVzoKLSAgICAgICAgc3dpdGNoIChkb3duY2FzdDxDcnlwdG9LZXlBRVM+KGtleSku
a2V5KCkuc2l6ZSgpICogOCkgewotICAgICAgICBjYXNlIDEyODoKLSAgICAgICAgICAgIGp3a0Fs
Z29yaXRobSA9ICJBMTI4S1ciOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgMTky
OgotICAgICAgICAgICAgandrQWxnb3JpdGhtID0gIkExOTJLVyI7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSAyNTY6Ci0gICAgICAgICAgICBqd2tBbGdvcml0aG0gPSAiQTI1NktX
IjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIGJyZWFrOwotICAgIGNh
c2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBU1NBX1BLQ1MxX3YxXzU6IHsKLSAgICAg
ICAgY29uc3QgQ3J5cHRvS2V5UlNBJiByc2FLZXkgPSBkb3duY2FzdDxDcnlwdG9LZXlSU0E+KGtl
eSk7Ci0gICAgICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaGFzaDsKLSAgICAgICAgaWYg
KCFyc2FLZXkuaXNSZXN0cmljdGVkVG9IYXNoKGhhc2gpKQotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGlmIChyc2FLZXkua2V5U2l6ZUluQml0cygpIDwgMjA0OCkKLSAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICBzd2l0Y2ggKGhhc2gpIHsKLSAgICAgICAgY2FzZSBDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyOjpTSEFfMjU2OgotICAgICAgICAgICAgandrQWxnb3JpdGhtID0gIlJTMjU2
IjsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXI6OlNIQV8zODQ6Ci0gICAgICAgICAgICBqd2tBbGdvcml0aG0gPSAiUlMzODQiOwotICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6
U0hBXzUxMjoKLSAgICAgICAgICAgIGp3a0FsZ29yaXRobSA9ICJSUzUxMiI7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9
Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXI6OlJTQUVTX1BLQ1MxX3YxXzU6IHsKLSAgICAgICAgY29uc3QgQ3J5cHRvS2V5UlNBJiByc2FL
ZXkgPSBkb3duY2FzdDxDcnlwdG9LZXlSU0E+KGtleSk7Ci0gICAgICAgIGlmIChyc2FLZXkua2V5
U2l6ZUluQml0cygpIDwgMjA0OCkKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBqd2tBbGdv
cml0aG0gPSAiUlNBMV81IjsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGNhc2UgQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBX09BRVA6IHsKLSAgICAgICAgY29uc3QgQ3J5cHRvS2V5
UlNBJiByc2FLZXkgPSBkb3duY2FzdDxDcnlwdG9LZXlSU0E+KGtleSk7Ci0gICAgICAgIENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXIgaGFzaDsKLSAgICAgICAgLy8gV2ViQ3J5cHRvIFJTQS1PQUVQ
IGtleXMgYXJlIG5vdCB0aWVkIHRvIGFueSBwYXJ0aWN1bGFyIGhhc2gsIHVubGVzcyBwcmV2aW91
c2x5IGltcG9ydGVkIGZyb20gSldLLCB3aGljaCBvbmx5IHN1cHBvcnRzIFNIQS0xLgotICAgICAg
ICBpZiAocnNhS2V5LmlzUmVzdHJpY3RlZFRvSGFzaChoYXNoKSAmJiBoYXNoICE9IENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXI6OlNIQV8xKQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGlm
IChyc2FLZXkua2V5U2l6ZUluQml0cygpIDwgMjA0OCkKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICBqd2tBbGdvcml0aG0gPSAiUlNBLU9BRVAiOwotICAgICAgICBicmVhazsKLSAgICB9Ci0g
ICAgZGVmYXVsdDoKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgaWYgKGp3a0FsZ29yaXRo
bS5pc051bGwoKSkgewotICAgICAgICAvLyBUaGUgc3BlYyBkb2Vzbid0IGN1cnJlbnRseSB0ZWxs
IHdoZXRoZXIgZXhwb3J0IHNob3VsZCBmYWlsLCBvciBqdXN0IHNraXAgImFsZyIgKHdoaWNoIGlz
IGFuIG9wdGlvbmFsIGtleSBpbiBKV0spLgotICAgICAgICB0aHJvd1R5cGVFcnJvcihleGVjLCBz
Y29wZSwgQVNDSUlMaXRlcmFsKCJLZXkgYWxnb3JpdGhtIGFuZCBzaXplIGRvIG5vdCBtYXAgdG8g
YW55IEpXSyBhbGdvcml0aG0gaWRlbnRpZmllciIpKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LQotICAgIGFkZFRvSlNPTihleGVjLCBqc29uLCAiYWxnIiwgandrQWxnb3JpdGhtKTsKLX0KLQot
c3RhdGljIHZvaWQgYWRkVXNhZ2VzVG9KU09OKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGpz
b24sIENyeXB0b0tleVVzYWdlQml0bWFwIHVzYWdlcykKLXsKLSAgICBWTSYgdm0gPSBleGVjLT52
bSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBKU0Fy
cmF5KiBrZXlPcHMgPSBjb25zdHJ1Y3RFbXB0eUFycmF5KGV4ZWMsIDAsIGV4ZWMtPmxleGljYWxH
bG9iYWxPYmplY3QoKSwgMCk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgp
KTsKLQotICAgIHVuc2lnbmVkIGluZGV4ID0gMDsKLSAgICBpZiAodXNhZ2VzICYgQ3J5cHRvS2V5
VXNhZ2VTaWduKSB7Ci0gICAgICAgIGtleU9wcy0+cHV0RGlyZWN0SW5kZXgoZXhlYywgaW5kZXgr
KywganNOb250cml2aWFsU3RyaW5nKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgic2lnbiIpKSk7Ci0gICAg
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7Ci0gICAgfQotICAgIGlmICh1
c2FnZXMgJiBDcnlwdG9LZXlVc2FnZVZlcmlmeSkgewotICAgICAgICBrZXlPcHMtPnB1dERpcmVj
dEluZGV4KGV4ZWMsIGluZGV4KyssIGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBBU0NJSUxpdGVy
YWwoInZlcmlmeSIpKSk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQo
KSk7Ci0gICAgfQotICAgIGlmICh1c2FnZXMgJiBDcnlwdG9LZXlVc2FnZUVuY3J5cHQpIHsKLSAg
ICAgICAga2V5T3BzLT5wdXREaXJlY3RJbmRleChleGVjLCBpbmRleCsrLCBqc05vbnRyaXZpYWxT
dHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJlbmNyeXB0IikpKTsKLSAgICAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKLSAgICB9Ci0gICAgaWYgKHVzYWdlcyAmIENyeXB0
b0tleVVzYWdlRGVjcnlwdCkgewotICAgICAgICBrZXlPcHMtPnB1dERpcmVjdEluZGV4KGV4ZWMs
IGluZGV4KyssIGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoImRlY3J5cHQi
KSkpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwotICAgIH0K
LSAgICBpZiAodXNhZ2VzICYgQ3J5cHRvS2V5VXNhZ2VXcmFwS2V5KSB7Ci0gICAgICAgIGtleU9w
cy0+cHV0RGlyZWN0SW5kZXgoZXhlYywgaW5kZXgrKywganNOb250cml2aWFsU3RyaW5nKGV4ZWMs
IEFTQ0lJTGl0ZXJhbCgid3JhcEtleSIpKSk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIHZvaWQoKSk7Ci0gICAgfQotICAgIGlmICh1c2FnZXMgJiBDcnlwdG9LZXlVc2FnZVVu
d3JhcEtleSkgewotICAgICAgICBrZXlPcHMtPnB1dERpcmVjdEluZGV4KGV4ZWMsIGluZGV4Kyss
IGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBBU0NJSUxpdGVyYWwoInVud3JhcEtleSIpKSk7Ci0g
ICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7Ci0gICAgfQotICAgIGlm
ICh1c2FnZXMgJiBDcnlwdG9LZXlVc2FnZURlcml2ZUtleSkgewotICAgICAgICBrZXlPcHMtPnB1
dERpcmVjdEluZGV4KGV4ZWMsIGluZGV4KyssIGpzTm9udHJpdmlhbFN0cmluZyhleGVjLCBBU0NJ
SUxpdGVyYWwoImRlcml2ZUtleSIpKSk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIHZvaWQoKSk7Ci0gICAgfQotICAgIGlmICh1c2FnZXMgJiBDcnlwdG9LZXlVc2FnZURlcml2
ZUJpdHMpIHsKLSAgICAgICAga2V5T3BzLT5wdXREaXJlY3RJbmRleChleGVjLCBpbmRleCsrLCBq
c05vbnRyaXZpYWxTdHJpbmcoZXhlYywgQVNDSUlMaXRlcmFsKCJkZXJpdmVCaXRzIikpKTsKLSAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKLSAgICB9Ci0KLSAgICBq
c29uLT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywgImtleV9vcHMi
KSwga2V5T3BzKTsKLX0KLQotU3RyaW5nIEpTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSzo6c2Vy
aWFsaXplKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQ3J5cHRvS2V5JiBrZXkpCi17Ci0gICAgVk0m
IHZtID0gZXhlYy0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7Ci0KLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvS2V5RGF0YT4ga2V5RGF0YSA9IGtleS5l
eHBvcnREYXRhKCk7Ci0gICAgaWYgKCFrZXlEYXRhKSB7Ci0gICAgICAgIC8vIFRoaXMgZ2VuZXJh
bGx5IHNob3VsZG4ndCBoYXBwZW4gYXMgbG9uZyBhcyBhbGwga2V5IHR5cGVzIGltcGxlbWVudCBl
eHBvcnREYXRhKCksIGJ1dCBhcyB1bmRlcmx5aW5nIGxpYnJhcmllcyByZXR1cm4gZXJyb3JzLCB0
aGVyZSBtYXkgYmUgc29tZSByYXJlIGZhaWx1cmUgY29uZGl0aW9ucy4KLSAgICAgICAgdGhyb3dU
eXBlRXJyb3IoZXhlYywgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiQ291bGRuJ3QgZXhwb3J0IGtleSBt
YXRlcmlhbCIpKTsKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOwotICAgIH0KLQotICAgIEpTT2Jq
ZWN0KiByZXN1bHQgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdChleGVjKTsKLQotICAgIGFkZEpXS0Fs
Z29yaXRobVRvSlNPTihleGVjLCByZXN1bHQsIGtleSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgU3RyaW5nKCkpOwotCi0gICAgYWRkQm9vbFRvSlNPTihleGVjLCByZXN1bHQsICJl
eHQiLCBrZXkuZXh0cmFjdGFibGUoKSk7Ci0KLSAgICBhZGRVc2FnZXNUb0pTT04oZXhlYywgcmVz
dWx0LCBrZXkudXNhZ2VzQml0bWFwKCkpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IFN0cmluZygpKTsKLQotICAgIGlmIChpczxDcnlwdG9LZXlEYXRhT2N0ZXRTZXF1ZW5jZT4oKmtl
eURhdGEpKQotICAgICAgICBidWlsZEpTT05Gb3JPY3RldFNlcXVlbmNlKGV4ZWMsIGRvd25jYXN0
PENyeXB0b0tleURhdGFPY3RldFNlcXVlbmNlPigqa2V5RGF0YSkub2N0ZXRTZXF1ZW5jZSgpLCBy
ZXN1bHQpOwotICAgIGVsc2UgaWYgKGlzPENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzPigqa2V5
RGF0YSkpCi0gICAgICAgIGJ1aWxkSlNPTkZvclJTQUNvbXBvbmVudHMoZXhlYywgZG93bmNhc3Q8
Q3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHM+KCprZXlEYXRhKSwgcmVzdWx0KTsKLSAgICBlbHNl
IHsKLSAgICAgICAgdGhyb3dUeXBlRXJyb3IoZXhlYywgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiS2V5
IGRvZXNuJ3Qgc3VwcG9ydCBleHBvcnRLZXkiKSk7Ci0gICAgICAgIHJldHVybiBTdHJpbmcoKTsK
LSAgICB9Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgU3RyaW5nKCkpOwotCi0gICAg
cmV0dXJuIEpTT05TdHJpbmdpZnkoZXhlYywgcmVzdWx0LCAwKTsKLX0KLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCgpQcm9wZXJ0eSBj
aGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0tleVNlcmlhbGl6
YXRpb25KV0suY3BwCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCww
ICMjCi1uYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9LZXlTZXJpYWxpemF0
aW9uSldLLmgJKHJldmlzaW9uIDIyMDkzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSy5oCShub25leGlzdGVudCkKQEAgLTEsNzMgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKFNVQlRMRV9DUllQ
VE8pCi0KLSNpbmNsdWRlICJDcnlwdG9LZXlTZXJpYWxpemF0aW9uLmgiCi0jaW5jbHVkZSA8aGVh
cC9TdHJvbmcuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNl
IEpTQyB7Ci1jbGFzcyBFeGVjU3RhdGU7Ci1jbGFzcyBKU09iamVjdDsKLX0KLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi1jbGFzcyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZDsK
LWNsYXNzIENyeXB0b0tleTsKLWNsYXNzIENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzOwotCi1j
bGFzcyBKU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0sgZmluYWwgOiBwdWJsaWMgQ3J5cHRvS2V5
U2VyaWFsaXphdGlvbiB7Ci1XVEZfTUFLRV9OT05DT1BZQUJMRShKU0NyeXB0b0tleVNlcmlhbGl6
YXRpb25KV0spOwotcHVibGljOgotICAgIEpTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSyhKU0M6
OkV4ZWNTdGF0ZSosIGNvbnN0IFN0cmluZyYpOwotICAgIHZpcnR1YWwgfkpTQ3J5cHRvS2V5U2Vy
aWFsaXphdGlvbkpXSygpOwotCi0gICAgc3RhdGljIFN0cmluZyBzZXJpYWxpemUoSlNDOjpFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IENyeXB0b0tleSYpOwotCi1wcml2YXRlOgotICAgIHN0ZDo6b3B0
aW9uYWw8Q3J5cHRvQWxnb3JpdGhtUGFpcj4gcmVjb25jaWxlQWxnb3JpdGhtKENyeXB0b0FsZ29y
aXRobSosIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkKikgY29uc3Qgb3ZlcnJp
ZGU7Ci0KLSAgICB2b2lkIHJlY29uY2lsZVVzYWdlcyhDcnlwdG9LZXlVc2FnZUJpdG1hcCYpIGNv
bnN0IG92ZXJyaWRlOwotICAgIHZvaWQgcmVjb25jaWxlRXh0cmFjdGFibGUoYm9vbCYpIGNvbnN0
IG92ZXJyaWRlOwotCi0gICAgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0tleURhdGE+IGtleURhdGEo
KSBjb25zdCBvdmVycmlkZTsKLQotICAgIGJvb2wga2V5U2l6ZUlzVmFsaWQoc2l6ZV90IHNpemVJ
bkJpdHMpIGNvbnN0OwotICAgIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9LZXlEYXRhPiBrZXlEYXRh
T2N0ZXRTZXF1ZW5jZSgpIGNvbnN0OwotICAgIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9LZXlEYXRh
PiBrZXlEYXRhUlNBQ29tcG9uZW50cygpIGNvbnN0OwotCi0gICAgSlNDOjpFeGVjU3RhdGUqIG1f
ZXhlYzsKLSAgICBKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0PiBtX2pzb247Ci0KLSAgICBtdXRh
YmxlIFN0cmluZyBtX2p3a0FsZ29yaXRobU5hbWU7IC8vIFN0b3JlZCB3aGVuIHJlY29uY2lsZUFs
Z29yaXRobSBpcyBjYWxsZWQsIGFuZCB1c2VkIGxhdGVyLgotfTsKLQotfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCgpQcm9wZXJ0eSBjaGFu
Z2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0tleVNlcmlhbGl6YXRp
b25KV0suaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwot
bmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvT3BlcmF0aW9uRGF0YS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9PcGVyYXRpb25EYXRhLmNwcAkocmV2
aXNpb24gMjIwOTM1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9PcGVy
YXRpb25EYXRhLmNwcAkobm9uZXhpc3RlbnQpCkBAIC0xLDUzICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTMsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSlNDcnlwdG9PcGVyYXRpb25E
YXRhLmgiCi0KLSNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKLQotI2luY2x1ZGUgIkpTRE9NQ29u
dmVydEJ1ZmZlclNvdXJjZS5oIgotI2luY2x1ZGUgPGhlYXAvSGVhcElubGluZXMuaD4KLQotdXNp
bmcgbmFtZXNwYWNlIEpTQzsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1DcnlwdG9PcGVyYXRp
b25EYXRhIGNyeXB0b09wZXJhdGlvbkRhdGFGcm9tSlNWYWx1ZShFeGVjU3RhdGUmIHN0YXRlLCBU
aHJvd1Njb3BlJiBzY29wZSwgSlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBWTSYgdm0gPSBzdGF0ZS52
bSgpOwotICAgIGlmIChhdXRvKiBidWZmZXIgPSB0b1Vuc2hhcmVkQXJyYXlCdWZmZXIodm0sIHZh
bHVlKSkKLSAgICAgICAgcmV0dXJuIHsgc3RhdGljX2Nhc3Q8dWludDhfdCo+KGJ1ZmZlci0+ZGF0
YSgpKSwgYnVmZmVyLT5ieXRlTGVuZ3RoKCkgfTsKLQotICAgIGlmIChhdXRvIGJ1ZmZlclZpZXcg
PSB0b1Vuc2hhcmVkQXJyYXlCdWZmZXJWaWV3KHZtLCB2YWx1ZSkpCi0gICAgICAgIHJldHVybiB7
IHN0YXRpY19jYXN0PHVpbnQ4X3QqPihidWZmZXJWaWV3LT5iYXNlQWRkcmVzcygpKSwgYnVmZmVy
Vmlldy0+Ynl0ZUxlbmd0aCgpIH07Ci0KLSAgICB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIHNjb3Bl
LCBBU0NJSUxpdGVyYWwoIk9ubHkgQXJyYXlCdWZmZXIgYW5kIEFycmF5QnVmZmVyVmlldyBvYmpl
Y3RzIGNhbiBiZSBwYXNzZWQgYXMgQ3J5cHRvT3BlcmF0aW9uRGF0YSIpKTsKLSAgICByZXR1cm4g
eyB9OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoU1VC
VExFX0NSWVBUTykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvT3Bl
cmF0aW9uRGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Q3J5cHRvT3BlcmF0aW9uRGF0YS5oCShyZXZpc2lvbiAyMjA5MzUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0NyeXB0b09wZXJhdGlvbkRhdGEuaAkobm9uZXhpc3RlbnQpCkBAIC0x
LDQ0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShTVUJU
TEVfQ1JZUFRPKQotCi1uYW1lc3BhY2UgSlNDIHsKLWNsYXNzIEV4ZWNTdGF0ZTsKLWNsYXNzIEpT
VmFsdWU7Ci1jbGFzcyBUaHJvd1Njb3BlOwotfQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXVz
aW5nIENyeXB0b09wZXJhdGlvbkRhdGEgPSBzdGQ6OnBhaXI8Y29uc3QgdWludDhfdCosIHNpemVf
dD47Ci0KLUNyeXB0b09wZXJhdGlvbkRhdGEgY3J5cHRvT3BlcmF0aW9uRGF0YUZyb21KU1ZhbHVl
KEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpUaHJvd1Njb3BlJiwgSlNDOjpKU1ZhbHVlKTsKLQotfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdFN1YnRsZUNyeXB0b0N1c3Rv
bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRT
dWJ0bGVDcnlwdG9DdXN0b20uY3BwCShyZXZpc2lvbiAyMjA5MzUpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1dlYktpdFN1YnRsZUNyeXB0b0N1c3RvbS5jcHAJKG5vbmV4aXN0ZW50
KQpAQCAtMSw2OTEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMywgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
LSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJKU1dlYktpdFN1YnRsZUNyeXB0by5oIgotCi0jaWYgRU5BQkxFKFNVQlRM
RV9DUllQVE8pCi0KLSNpbmNsdWRlICJCdWZmZXJTb3VyY2UuaCIKLSNpbmNsdWRlICJDcnlwdG9B
bGdvcml0aG0uaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRl
ZC5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmgiCi0jaW5jbHVkZSAiQ3J5
cHRvS2V5RGF0YS5oIgotI2luY2x1ZGUgIkNyeXB0b0tleUZvcm1hdC5oIgotI2luY2x1ZGUgIkNy
eXB0b0tleVNlcmlhbGl6YXRpb25SYXcuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1
ZGUgIkpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5oIgotI2luY2x1ZGUgIkpTQ3J5cHRvS2V5
LmgiCi0jaW5jbHVkZSAiSlNDcnlwdG9LZXlQYWlyLmgiCi0jaW5jbHVkZSAiSlNDcnlwdG9LZXlT
ZXJpYWxpemF0aW9uSldLLmgiCi0jaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKLSNp
bmNsdWRlICJTY3JpcHRTdGF0ZS5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvRXJyb3IuaD4KLQotdXNp
bmcgbmFtZXNwYWNlIEpTQzsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1zdGF0aWMgUmVmUHRy
PENyeXB0b0FsZ29yaXRobT4gY3JlYXRlQWxnb3JpdGhtRnJvbUpTVmFsdWUoRXhlY1N0YXRlJiBz
dGF0ZSwgVGhyb3dTY29wZSYgc2NvcGUsIEpTVmFsdWUgdmFsdWUpCi17Ci0gICAgYXV0byBhbGdv
cml0aG1JZGVudGlmaWVyID0gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpwYXJzZUFsZ29y
aXRobUlkZW50aWZpZXIoc3RhdGUsIHNjb3BlLCB2YWx1ZSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgeyB9KTsKLQotICAgIGF1dG8gcmVzdWx0ID0gQ3J5cHRvQWxnb3JpdGhtUmVn
aXN0cnk6OnNpbmdsZXRvbigpLmNyZWF0ZShhbGdvcml0aG1JZGVudGlmaWVyKTsKLSAgICBpZiAo
IXJlc3VsdCkKLSAgICAgICAgdGhyb3dOb3RTdXBwb3J0ZWRFcnJvcihzdGF0ZSwgc2NvcGUpOwot
Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotc3RhdGljIENyeXB0b0tleUZvcm1hdCBjcnlwdG9L
ZXlGb3JtYXRGcm9tSlNWYWx1ZShFeGVjU3RhdGUmIHN0YXRlLCBUaHJvd1Njb3BlJiBzY29wZSwg
SlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBhdXRvIGtleUZvcm1hdFN0cmluZyA9IHZhbHVlLnRvV1RG
U3RyaW5nKCZzdGF0ZSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKLQot
ICAgIGlmIChrZXlGb3JtYXRTdHJpbmcgPT0gInJhdyIpCi0gICAgICAgIHJldHVybiBDcnlwdG9L
ZXlGb3JtYXQ6OlJhdzsKLSAgICBpZiAoa2V5Rm9ybWF0U3RyaW5nID09ICJwa2NzOCIpCi0gICAg
ICAgIHJldHVybiBDcnlwdG9LZXlGb3JtYXQ6OlBrY3M4OwotICAgIGlmIChrZXlGb3JtYXRTdHJp
bmcgPT0gInNwa2kiKQotICAgICAgICByZXR1cm4gQ3J5cHRvS2V5Rm9ybWF0OjpTcGtpOwotICAg
IGlmIChrZXlGb3JtYXRTdHJpbmcgPT0gImp3ayIpCi0gICAgICAgIHJldHVybiBDcnlwdG9LZXlG
b3JtYXQ6Okp3azsKLQotICAgIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUsIEFTQ0lJTGl0
ZXJhbCgiVW5rbm93biBrZXkgZm9ybWF0IikpOwotICAgIHJldHVybiB7IH07Ci19Ci0KLXN0YXRp
YyBDcnlwdG9LZXlVc2FnZUJpdG1hcCBjcnlwdG9LZXlVc2FnZXNGcm9tSlNWYWx1ZShFeGVjU3Rh
dGUmIHN0YXRlLCBUaHJvd1Njb3BlJiBzY29wZSwgSlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBpZiAo
IWlzSlNBcnJheSh2YWx1ZSkpIHsKLSAgICAgICAgdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBzY29w
ZSk7Ci0gICAgICAgIHJldHVybiB7IH07Ci0gICAgfQotCi0gICAgQ3J5cHRvS2V5VXNhZ2VCaXRt
YXAgcmVzdWx0ID0gMDsKLSAgICBKU0FycmF5KiBhcnJheSA9IGFzQXJyYXkodmFsdWUpOwotICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBhcnJheS0+bGVuZ3RoKCk7ICsraSkgewotICAgICAg
ICBhdXRvIHVzYWdlU3RyaW5nID0gYXJyYXktPmdldEluZGV4KCZzdGF0ZSwgaSkudG9XVEZTdHJp
bmcoJnN0YXRlKTsKLSAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKLSAg
ICAgICAgaWYgKHVzYWdlU3RyaW5nID09ICJlbmNyeXB0IikKLSAgICAgICAgICAgIHJlc3VsdCB8
PSBDcnlwdG9LZXlVc2FnZUVuY3J5cHQ7Ci0gICAgICAgIGVsc2UgaWYgKHVzYWdlU3RyaW5nID09
ICJkZWNyeXB0IikKLSAgICAgICAgICAgIHJlc3VsdCB8PSBDcnlwdG9LZXlVc2FnZURlY3J5cHQ7
Ci0gICAgICAgIGVsc2UgaWYgKHVzYWdlU3RyaW5nID09ICJzaWduIikKLSAgICAgICAgICAgIHJl
c3VsdCB8PSBDcnlwdG9LZXlVc2FnZVNpZ247Ci0gICAgICAgIGVsc2UgaWYgKHVzYWdlU3RyaW5n
ID09ICJ2ZXJpZnkiKQotICAgICAgICAgICAgcmVzdWx0IHw9IENyeXB0b0tleVVzYWdlVmVyaWZ5
OwotICAgICAgICBlbHNlIGlmICh1c2FnZVN0cmluZyA9PSAiZGVyaXZlS2V5IikKLSAgICAgICAg
ICAgIHJlc3VsdCB8PSBDcnlwdG9LZXlVc2FnZURlcml2ZUtleTsKLSAgICAgICAgZWxzZSBpZiAo
dXNhZ2VTdHJpbmcgPT0gImRlcml2ZUJpdHMiKQotICAgICAgICAgICAgcmVzdWx0IHw9IENyeXB0
b0tleVVzYWdlRGVyaXZlQml0czsKLSAgICAgICAgZWxzZSBpZiAodXNhZ2VTdHJpbmcgPT0gIndy
YXBLZXkiKQotICAgICAgICAgICAgcmVzdWx0IHw9IENyeXB0b0tleVVzYWdlV3JhcEtleTsKLSAg
ICAgICAgZWxzZSBpZiAodXNhZ2VTdHJpbmcgPT0gInVud3JhcEtleSIpCi0gICAgICAgICAgICBy
ZXN1bHQgfD0gQ3J5cHRvS2V5VXNhZ2VVbndyYXBLZXk7Ci0gICAgfQotICAgIHJldHVybiByZXN1
bHQ7Ci19Ci0KLUpTVmFsdWUgSlNXZWJLaXRTdWJ0bGVDcnlwdG86OmVuY3J5cHQoRXhlY1N0YXRl
JiBzdGF0ZSkKLXsKLSAgICBWTSYgdm0gPSBzdGF0ZS52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLQotICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkg
PCAzKQotICAgICAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24oJnN0YXRlLCBzY29wZSwgY3JlYXRl
Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7Ci0KLSAgICBhdXRvIGFsZ29yaXRobSA9
IGNyZWF0ZUFsZ29yaXRobUZyb21KU1ZhbHVlKHN0YXRlLCBzY29wZSwgc3RhdGUudW5jaGVja2Vk
QXJndW1lbnQoMCkpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0KLSAg
ICBhdXRvIHBhcmFtZXRlcnMgPSBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBh
cmFtZXRlcnNGb3JFbmNyeXB0KHN0YXRlLCBzY29wZSwgYWxnb3JpdGhtLT5pZGVudGlmaWVyKCks
IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB7IH0pOwotCi0gICAgUmVmUHRyPENyeXB0b0tleT4ga2V5ID0gSlNDcnlwdG9LZXk6OnRv
V3JhcHBlZCh2bSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkpOwotICAgIGlmICgha2V5KQot
ICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBzY29wZSk7Ci0KLSAgICBpZiAo
IWtleS0+YWxsb3dzKENyeXB0b0tleVVzYWdlRW5jcnlwdCkpIHsKLSAgICAgICAgd3JhcHBlZCgp
LmRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdl
TGV2ZWw6OkVycm9yLCBBU0NJSUxpdGVyYWwoIktleSB1c2FnZXMgZG8gbm90IGluY2x1ZGUgJ2Vu
Y3J5cHQnIikpOwotICAgICAgICB0aHJvd05vdFN1cHBvcnRlZEVycm9yKHN0YXRlLCBzY29wZSk7
Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0KLQotICAgIEJ1ZmZlclNvdXJj
ZSBkYXRhID0gY29udmVydDxJRExVbmlvbjxJRExBcnJheUJ1ZmZlclZpZXcsIElETEFycmF5QnVm
ZmVyPj4oc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIpKTsKLSAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotCi0gICAgUmVmUHRyPERlZmVycmVkUHJvbWlzZT4gd3Jh
cHBlciA9IGNyZWF0ZURlZmVycmVkUHJvbWlzZShzdGF0ZSwgZG9tV2luZG93KCkpOwotICAgIGF1
dG8gcHJvbWlzZSA9IHdyYXBwZXItPnByb21pc2UoKTsKLSAgICBhdXRvIHN1Y2Nlc3NDYWxsYmFj
ayA9IFt3cmFwcGVyXShjb25zdCBWZWN0b3I8dWludDhfdD4mIHJlc3VsdCkgbXV0YWJsZSB7Ci0g
ICAgICAgIGZ1bGZpbGxQcm9taXNlV2l0aEFycmF5QnVmZmVyKHdyYXBwZXIucmVsZWFzZU5vbk51
bGwoKSwgcmVzdWx0LmRhdGEoKSwgcmVzdWx0LnNpemUoKSk7Ci0gICAgfTsKLSAgICBhdXRvIGZh
aWx1cmVDYWxsYmFjayA9IFt3cmFwcGVyXSgpIG11dGFibGUgewotICAgICAgICB3cmFwcGVyLT5y
ZWplY3QoKTsgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHJlamVjdCB3aXRoIGFuIEV4Y2VwdGlvbi4K
LSAgICB9OwotCi0gICAgYXV0byByZXN1bHQgPSBhbGdvcml0aG0tPmVuY3J5cHQoKnBhcmFtZXRl
cnMsICprZXksIHsgZGF0YS5kYXRhKCksIGRhdGEubGVuZ3RoKCkgfSwgV1RGTW92ZShzdWNjZXNz
Q2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjaykpOwotICAgIGlmIChyZXN1bHQuaGFz
RXhjZXB0aW9uKCkpIHsKLSAgICAgICAgcHJvcGFnYXRlRXhjZXB0aW9uKHN0YXRlLCBzY29wZSwg
cmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7Ci0gICAgICAgIHJldHVybiB7IH07Ci0gICAgfQot
Ci0gICAgcmV0dXJuIHByb21pc2U7Ci19Ci0KLUpTVmFsdWUgSlNXZWJLaXRTdWJ0bGVDcnlwdG86
OmRlY3J5cHQoRXhlY1N0YXRlJiBzdGF0ZSkKLXsKLSAgICBWTSYgdm0gPSBzdGF0ZS52bSgpOwot
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLQotICAgIGlmIChzdGF0
ZS5hcmd1bWVudENvdW50KCkgPCAzKQotICAgICAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24oJnN0
YXRlLCBzY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7Ci0KLSAg
ICBhdXRvIGFsZ29yaXRobSA9IGNyZWF0ZUFsZ29yaXRobUZyb21KU1ZhbHVlKHN0YXRlLCBzY29w
ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIHsgfSk7Ci0KLSAgICBhdXRvIHBhcmFtZXRlcnMgPSBKU0NyeXB0b0FsZ29yaXRobURp
Y3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JEZWNyeXB0KHN0YXRlLCBzY29wZSwgYWxnb3Jp
dGhtLT5pZGVudGlmaWVyKCksIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKLSAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotCi0gICAgUmVmUHRyPENyeXB0b0tleT4ga2V5
ID0gSlNDcnlwdG9LZXk6OnRvV3JhcHBlZCh2bSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkp
OwotICAgIGlmICgha2V5KQotICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBz
Y29wZSk7Ci0KLSAgICBpZiAoIWtleS0+YWxsb3dzKENyeXB0b0tleVVzYWdlRGVjcnlwdCkpIHsK
LSAgICAgICAgd3JhcHBlZCgpLmRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VT
b3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBBU0NJSUxpdGVyYWwoIktleSB1c2FnZXMg
ZG8gbm90IGluY2x1ZGUgJ2RlY3J5cHQnIikpOwotICAgICAgICB0aHJvd05vdFN1cHBvcnRlZEVy
cm9yKHN0YXRlLCBzY29wZSk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIH0K
LQotICAgIEJ1ZmZlclNvdXJjZSBkYXRhID0gY29udmVydDxJRExVbmlvbjxJRExBcnJheUJ1ZmZl
clZpZXcsIElETEFycmF5QnVmZmVyPj4oc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIp
KTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotCi0gICAgUmVmUHRyPERl
ZmVycmVkUHJvbWlzZT4gd3JhcHBlciA9IGNyZWF0ZURlZmVycmVkUHJvbWlzZShzdGF0ZSwgZG9t
V2luZG93KCkpOwotICAgIGF1dG8gcHJvbWlzZSA9IHdyYXBwZXItPnByb21pc2UoKTsKLSAgICBh
dXRvIHN1Y2Nlc3NDYWxsYmFjayA9IFt3cmFwcGVyXShjb25zdCBWZWN0b3I8dWludDhfdD4mIHJl
c3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIGZ1bGZpbGxQcm9taXNlV2l0aEFycmF5QnVmZmVyKHdy
YXBwZXIucmVsZWFzZU5vbk51bGwoKSwgcmVzdWx0LmRhdGEoKSwgcmVzdWx0LnNpemUoKSk7Ci0g
ICAgfTsKLSAgICBhdXRvIGZhaWx1cmVDYWxsYmFjayA9IFt3cmFwcGVyXSgpIG11dGFibGUgewot
ICAgICAgICB3cmFwcGVyLT5yZWplY3QoKTsgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHJlamVjdCB3
aXRoIGFuIEV4Y2VwdGlvbi4KLSAgICB9OwotCi0gICAgYXV0byByZXN1bHQgPSBhbGdvcml0aG0t
PmRlY3J5cHQoKnBhcmFtZXRlcnMsICprZXksIHsgZGF0YS5kYXRhKCksIGRhdGEubGVuZ3RoKCkg
fSwgV1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjaykpOwot
ICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKLSAgICAgICAgcHJvcGFnYXRlRXhjZXB0
aW9uKHN0YXRlLCBzY29wZSwgcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7Ci0gICAgICAgIHJl
dHVybiB7IH07Ci0gICAgfQotCi0gICAgcmV0dXJuIHByb21pc2U7Ci19Ci0KLUpTVmFsdWUgSlNX
ZWJLaXRTdWJ0bGVDcnlwdG86OnNpZ24oRXhlY1N0YXRlJiBzdGF0ZSkKLXsKLSAgICBWTSYgdm0g
PSBzdGF0ZS52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
LQotICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgPCAzKQotICAgICAgICByZXR1cm4gdGhy
b3dFeGNlcHRpb24oJnN0YXRlLCBzY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3Io
JnN0YXRlKSk7Ci0KLSAgICBhdXRvIGFsZ29yaXRobSA9IGNyZWF0ZUFsZ29yaXRobUZyb21KU1Zh
bHVlKHN0YXRlLCBzY29wZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOwotICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0KLSAgICBhdXRvIHBhcmFtZXRlcnMgPSBKU0Ny
eXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JTaWduKHN0YXRlLCBz
Y29wZSwgYWxnb3JpdGhtLT5pZGVudGlmaWVyKCksIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDAp
KTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotCi0gICAgUmVmUHRyPENy
eXB0b0tleT4ga2V5ID0gSlNDcnlwdG9LZXk6OnRvV3JhcHBlZCh2bSwgc3RhdGUudW5jaGVja2Vk
QXJndW1lbnQoMSkpOwotICAgIGlmICgha2V5KQotICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJy
b3IoJnN0YXRlLCBzY29wZSk7Ci0KLSAgICBpZiAoIWtleS0+YWxsb3dzKENyeXB0b0tleVVzYWdl
U2lnbikpIHsKLSAgICAgICAgd3JhcHBlZCgpLmRvY3VtZW50KCktPmFkZENvbnNvbGVNZXNzYWdl
KE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBBU0NJSUxpdGVyYWwoIktl
eSB1c2FnZXMgZG8gbm90IGluY2x1ZGUgJ3NpZ24nIikpOwotICAgICAgICB0aHJvd05vdFN1cHBv
cnRlZEVycm9yKHN0YXRlLCBzY29wZSk7Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwot
ICAgIH0KLQotICAgIEJ1ZmZlclNvdXJjZSBkYXRhID0gY29udmVydDxJRExVbmlvbjxJRExBcnJh
eUJ1ZmZlclZpZXcsIElETEFycmF5QnVmZmVyPj4oc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3Vt
ZW50KDIpKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotCi0gICAgUmVm
UHRyPERlZmVycmVkUHJvbWlzZT4gd3JhcHBlciA9IGNyZWF0ZURlZmVycmVkUHJvbWlzZShzdGF0
ZSwgZG9tV2luZG93KCkpOwotICAgIGF1dG8gcHJvbWlzZSA9IHdyYXBwZXItPnByb21pc2UoKTsK
LSAgICBhdXRvIHN1Y2Nlc3NDYWxsYmFjayA9IFt3cmFwcGVyXShjb25zdCBWZWN0b3I8dWludDhf
dD4mIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIGZ1bGZpbGxQcm9taXNlV2l0aEFycmF5QnVm
ZmVyKHdyYXBwZXIucmVsZWFzZU5vbk51bGwoKSwgcmVzdWx0LmRhdGEoKSwgcmVzdWx0LnNpemUo
KSk7Ci0gICAgfTsKLSAgICBhdXRvIGZhaWx1cmVDYWxsYmFjayA9IFt3cmFwcGVyXSgpIG11dGFi
bGUgewotICAgICAgICB3cmFwcGVyLT5yZWplY3QoKTsgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHJl
amVjdCB3aXRoIGFuIEV4Y2VwdGlvbi4KLSAgICB9OwotCi0gICAgYXV0byByZXN1bHQgPSBhbGdv
cml0aG0tPnNpZ24oKnBhcmFtZXRlcnMsICprZXksIHsgZGF0YS5kYXRhKCksIGRhdGEubGVuZ3Ro
KCkgfSwgV1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjaykp
OwotICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKLSAgICAgICAgcHJvcGFnYXRlRXhj
ZXB0aW9uKHN0YXRlLCBzY29wZSwgcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7Ci0gICAgICAg
IHJldHVybiB7IH07Ci0gICAgfQotCi0gICAgcmV0dXJuIHByb21pc2U7Ci19Ci0KLUpTVmFsdWUg
SlNXZWJLaXRTdWJ0bGVDcnlwdG86OnZlcmlmeShFeGVjU3RhdGUmIHN0YXRlKQotewotICAgIFZN
JiB2bSA9IHN0YXRlLnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwotCi0gICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA8IDQpCi0gICAgICAgIHJldHVy
biB0aHJvd0V4Y2VwdGlvbigmc3RhdGUsIHNjb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNF
cnJvcigmc3RhdGUpKTsKLQotICAgIGF1dG8gYWxnb3JpdGhtID0gY3JlYXRlQWxnb3JpdGhtRnJv
bUpTVmFsdWUoc3RhdGUsIHNjb3BlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7Ci0gICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKLQotICAgIGF1dG8gcGFyYW1ldGVycyA9
IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvclZlcmlmeShz
dGF0ZSwgc2NvcGUsIGFsZ29yaXRobS0+aWRlbnRpZmllcigpLCBzdGF0ZS51bmNoZWNrZWRBcmd1
bWVudCgwKSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKLQotICAgIFJl
ZlB0cjxDcnlwdG9LZXk+IGtleSA9IEpTQ3J5cHRvS2V5Ojp0b1dyYXBwZWQodm0sIHN0YXRlLnVu
Y2hlY2tlZEFyZ3VtZW50KDEpKTsKLSAgICBpZiAoIWtleSkKLSAgICAgICAgcmV0dXJuIHRocm93
VHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUpOwotCi0gICAgaWYgKCFrZXktPmFsbG93cyhDcnlwdG9L
ZXlVc2FnZVZlcmlmeSkpIHsKLSAgICAgICAgd3JhcHBlZCgpLmRvY3VtZW50KCktPmFkZENvbnNv
bGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBBU0NJSUxp
dGVyYWwoIktleSB1c2FnZXMgZG8gbm90IGluY2x1ZGUgJ3ZlcmlmeSciKSk7Ci0gICAgICAgIHRo
cm93Tm90U3VwcG9ydGVkRXJyb3Ioc3RhdGUsIHNjb3BlKTsKLSAgICAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgQnVmZmVyU291cmNlIHNpZ25hdHVyZSA9IGNvbnZlcnQ8
SURMVW5pb248SURMQXJyYXlCdWZmZXJWaWV3LCBJRExBcnJheUJ1ZmZlcj4+KHN0YXRlLCBzdGF0
ZS51bmNoZWNrZWRBcmd1bWVudCgyKSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
eyB9KTsKLQotICAgIEJ1ZmZlclNvdXJjZSBkYXRhID0gY29udmVydDxJRExVbmlvbjxJRExBcnJh
eUJ1ZmZlclZpZXcsIElETEFycmF5QnVmZmVyPj4oc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3Vt
ZW50KDMpKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotCi0gICAgUmVm
UHRyPERlZmVycmVkUHJvbWlzZT4gd3JhcHBlciA9IGNyZWF0ZURlZmVycmVkUHJvbWlzZShzdGF0
ZSwgZG9tV2luZG93KCkpOwotICAgIGF1dG8gcHJvbWlzZSA9IHdyYXBwZXItPnByb21pc2UoKTsK
LSAgICBhdXRvIHN1Y2Nlc3NDYWxsYmFjayA9IFt3cmFwcGVyXShib29sIHJlc3VsdCkgbXV0YWJs
ZSB7Ci0gICAgICAgIHdyYXBwZXItPnJlc29sdmU8SURMQm9vbGVhbj4ocmVzdWx0KTsKLSAgICB9
OwotICAgIGF1dG8gZmFpbHVyZUNhbGxiYWNrID0gW3dyYXBwZXJdKCkgbXV0YWJsZSB7Ci0gICAg
ICAgIHdyYXBwZXItPnJlamVjdCgpOyAvLyBGSVhNRTogVGhpcyBzaG91bGQgcmVqZWN0IHdpdGgg
YW4gRXhjZXB0aW9uLgotICAgIH07Ci0KLSAgICBhdXRvIHJlc3VsdCA9IGFsZ29yaXRobS0+dmVy
aWZ5KCpwYXJhbWV0ZXJzLCAqa2V5LCB7IHNpZ25hdHVyZS5kYXRhKCksIHNpZ25hdHVyZS5sZW5n
dGgoKSB9LCB7IGRhdGEuZGF0YSgpLCBkYXRhLmxlbmd0aCgpIH0sIFdURk1vdmUoc3VjY2Vzc0Nh
bGxiYWNrKSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJhY2spKTsKLSAgICBpZiAocmVzdWx0Lmhhc0V4
Y2VwdGlvbigpKSB7Ci0gICAgICAgIHByb3BhZ2F0ZUV4Y2VwdGlvbihzdGF0ZSwgc2NvcGUsIHJl
c3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwotICAgICAgICByZXR1cm4geyB9OwotICAgIH0KLQot
ICAgIHJldHVybiBwcm9taXNlOwotfQotCi1KU1ZhbHVlIEpTV2ViS2l0U3VidGxlQ3J5cHRvOjpk
aWdlc3QoRXhlY1N0YXRlJiBzdGF0ZSkKLXsKLSAgICBWTSYgdm0gPSBzdGF0ZS52bSgpOwotICAg
IGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLQotICAgIGlmIChzdGF0ZS5h
cmd1bWVudENvdW50KCkgPCAyKQotICAgICAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24oJnN0YXRl
LCBzY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7Ci0KLSAgICBh
dXRvIGFsZ29yaXRobSA9IGNyZWF0ZUFsZ29yaXRobUZyb21KU1ZhbHVlKHN0YXRlLCBzY29wZSwg
c3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIHsgfSk7Ci0KLSAgICBhdXRvIHBhcmFtZXRlcnMgPSBKU0NyeXB0b0FsZ29yaXRobURpY3Rp
b25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JEaWdlc3Qoc3RhdGUsIHNjb3BlLCBhbGdvcml0aG0t
PmlkZW50aWZpZXIoKSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOwotICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0KLSAgICBCdWZmZXJTb3VyY2UgZGF0YSA9IGNvbnZl
cnQ8SURMVW5pb248SURMQXJyYXlCdWZmZXJWaWV3LCBJRExBcnJheUJ1ZmZlcj4+KHN0YXRlLCBz
dGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgeyB9KTsKLQotICAgIFJlZlB0cjxEZWZlcnJlZFByb21pc2U+IHdyYXBwZXIgPSBjcmVhdGVE
ZWZlcnJlZFByb21pc2Uoc3RhdGUsIGRvbVdpbmRvdygpKTsKLSAgICBhdXRvIHByb21pc2UgPSB3
cmFwcGVyLT5wcm9taXNlKCk7Ci0gICAgYXV0byBzdWNjZXNzQ2FsbGJhY2sgPSBbd3JhcHBlcl0o
Y29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiByZXN1bHQpIG11dGFibGUgewotICAgICAgICBmdWxmaWxs
UHJvbWlzZVdpdGhBcnJheUJ1ZmZlcih3cmFwcGVyLnJlbGVhc2VOb25OdWxsKCksIHJlc3VsdC5k
YXRhKCksIHJlc3VsdC5zaXplKCkpOwotICAgIH07Ci0gICAgYXV0byBmYWlsdXJlQ2FsbGJhY2sg
PSBbd3JhcHBlcl0oKSBtdXRhYmxlIHsKLSAgICAgICAgd3JhcHBlci0+cmVqZWN0KCk7IC8vIEZJ
WE1FOiBUaGlzIHNob3VsZCByZWplY3Qgd2l0aCBhbiBFeGNlcHRpb24uCi0gICAgfTsKLQotICAg
IGF1dG8gcmVzdWx0ID0gYWxnb3JpdGhtLT5kaWdlc3QoKnBhcmFtZXRlcnMsIHsgZGF0YS5kYXRh
KCksIGRhdGEubGVuZ3RoKCkgfSwgV1RGTW92ZShzdWNjZXNzQ2FsbGJhY2spLCBXVEZNb3ZlKGZh
aWx1cmVDYWxsYmFjaykpOwotICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKLSAgICAg
ICAgcHJvcGFnYXRlRXhjZXB0aW9uKHN0YXRlLCBzY29wZSwgcmVzdWx0LnJlbGVhc2VFeGNlcHRp
b24oKSk7Ci0gICAgICAgIHJldHVybiB7IH07Ci0gICAgfQotCi0gICAgcmV0dXJuIHByb21pc2U7
Ci19Ci0KLUpTVmFsdWUgSlNXZWJLaXRTdWJ0bGVDcnlwdG86OmdlbmVyYXRlS2V5KEV4ZWNTdGF0
ZSYgc3RhdGUpCi17Ci0gICAgVk0mIHZtID0gc3RhdGUudm0oKTsKLSAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0KLSAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgp
IDwgMSkKLSAgICAgICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKCZzdGF0ZSwgc2NvcGUsIGNyZWF0
ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCZzdGF0ZSkpOwotCi0gICAgYXV0byBhbGdvcml0aG0g
PSBjcmVhdGVBbGdvcml0aG1Gcm9tSlNWYWx1ZShzdGF0ZSwgc2NvcGUsIHN0YXRlLnVuY2hlY2tl
ZEFyZ3VtZW50KDApKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotCi0g
ICAgYXV0byBwYXJhbWV0ZXJzID0gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQ
YXJhbWV0ZXJzRm9yR2VuZXJhdGVLZXkoc3RhdGUsIHNjb3BlLCBhbGdvcml0aG0tPmlkZW50aWZp
ZXIoKSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIHsgfSk7Ci0KLSAgICBib29sIGV4dHJhY3RhYmxlID0gc3RhdGUuYXJndW1lbnQo
MSkudG9Cb29sZWFuKCZzdGF0ZSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9
KTsKLQotICAgIENyeXB0b0tleVVzYWdlQml0bWFwIGtleVVzYWdlcyA9IDA7Ci0gICAgaWYgKHN0
YXRlLmFyZ3VtZW50Q291bnQoKSA+PSAzKSB7Ci0gICAgICAgIGtleVVzYWdlcyA9IGNyeXB0b0tl
eVVzYWdlc0Zyb21KU1ZhbHVlKHN0YXRlLCBzY29wZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQo
MikpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotICAgIH0KLQot
ICAgIFJlZlB0cjxEZWZlcnJlZFByb21pc2U+IHdyYXBwZXIgPSBjcmVhdGVEZWZlcnJlZFByb21p
c2Uoc3RhdGUsIGRvbVdpbmRvdygpKTsKLSAgICBhdXRvIHByb21pc2UgPSB3cmFwcGVyLT5wcm9t
aXNlKCk7Ci0gICAgYXV0byBzdWNjZXNzQ2FsbGJhY2sgPSBbd3JhcHBlcl0oS2V5T3JLZXlQYWly
JiYga2V5T3JLZXlQYWlyKSBtdXRhYmxlIHsKLSAgICAgICAgV1RGOjpzd2l0Y2hPbihrZXlPcktl
eVBhaXIsCi0gICAgICAgICAgICBbJndyYXBwZXJdIChSZWZQdHI8Q3J5cHRvS2V5PiYga2V5KSB7
Ci0gICAgICAgICAgICAgICAgd3JhcHBlci0+cmVzb2x2ZTxJRExJbnRlcmZhY2U8Q3J5cHRvS2V5
Pj4oKmtleSk7Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgWyZ3cmFwcGVyXSAoQ3J5cHRv
S2V5UGFpciYga2V5UGFpcikgewotICAgICAgICAgICAgICAgIHdyYXBwZXItPnJlc29sdmU8SURM
RGljdGlvbmFyeTxDcnlwdG9LZXlQYWlyPj4oa2V5UGFpcik7Ci0gICAgICAgICAgICB9Ci0gICAg
ICAgICk7Ci0gICAgfTsKLSAgICBhdXRvIGZhaWx1cmVDYWxsYmFjayA9IFt3cmFwcGVyXSgpIG11
dGFibGUgewotICAgICAgICB3cmFwcGVyLT5yZWplY3QoKTsgLy8gRklYTUU6IFRoaXMgc2hvdWxk
IHJlamVjdCB3aXRoIGFuIEV4Y2VwdGlvbi4KLSAgICB9OwotCi0gICAgYXV0byByZXN1bHQgPSBh
bGdvcml0aG0tPmdlbmVyYXRlS2V5KCpwYXJhbWV0ZXJzLCBleHRyYWN0YWJsZSwga2V5VXNhZ2Vz
LCBXVEZNb3ZlKHN1Y2Nlc3NDYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgKnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRGcm9tRXhlY1N0YXRlKCZzdGF0ZSkpOwotICAgIGlmIChyZXN1
bHQuaGFzRXhjZXB0aW9uKCkpIHsKLSAgICAgICAgcHJvcGFnYXRlRXhjZXB0aW9uKHN0YXRlLCBz
Y29wZSwgcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7Ci0gICAgICAgIHJldHVybiB7IH07Ci0g
ICAgfQotCi0gICAgcmV0dXJuIHByb21pc2U7Ci19Ci0KLXN0YXRpYyB2b2lkIGltcG9ydEtleShF
eGVjU3RhdGUmIHN0YXRlLCBDcnlwdG9LZXlGb3JtYXQga2V5Rm9ybWF0LCBDcnlwdG9PcGVyYXRp
b25EYXRhIGRhdGEsIFJlZlB0cjxDcnlwdG9BbGdvcml0aG0+IGFsZ29yaXRobSwgUmVmUHRyPENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkPiBwYXJhbWV0ZXJzLCBib29sIGV4dHJh
Y3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCBrZXlVc2FnZXMsIENyeXB0b0FsZ29yaXRobTo6
S2V5Q2FsbGJhY2sgY2FsbGJhY2ssIENyeXB0b0FsZ29yaXRobTo6Vm9pZENhbGxiYWNrIGZhaWx1
cmVDYWxsYmFjaykKLXsKLSAgICBWTSYgdm0gPSBzdGF0ZS52bSgpOwotICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLQotICAgIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9L
ZXlTZXJpYWxpemF0aW9uPiBrZXlTZXJpYWxpemF0aW9uOwotICAgIHN3aXRjaCAoa2V5Rm9ybWF0
KSB7Ci0gICAgY2FzZSBDcnlwdG9LZXlGb3JtYXQ6OlJhdzoKLSAgICAgICAga2V5U2VyaWFsaXph
dGlvbiA9IENyeXB0b0tleVNlcmlhbGl6YXRpb25SYXc6OmNyZWF0ZShkYXRhKTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBDcnlwdG9LZXlGb3JtYXQ6Okp3azogewotICAgICAgICBTdHJpbmcg
andrU3RyaW5nID0gU3RyaW5nOjpmcm9tVVRGOChkYXRhLmZpcnN0LCBkYXRhLnNlY29uZCk7Ci0g
ICAgICAgIGlmIChqd2tTdHJpbmcuaXNOdWxsKCkpIHsKLSAgICAgICAgICAgIHRocm93VHlwZUVy
cm9yKCZzdGF0ZSwgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiSldLIEpTT04gc2VyaWFsaXphdGlvbiBp
cyBub3QgdmFsaWQgVVRGLTgiKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAg
ICAgICAga2V5U2VyaWFsaXphdGlvbiA9IHN0ZDo6bWFrZV91bmlxdWU8SlNDcnlwdG9LZXlTZXJp
YWxpemF0aW9uSldLPigmc3RhdGUsIGp3a1N0cmluZyk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIHZvaWQoKSk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBkZWZhdWx0
OgotICAgICAgICB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIHNjb3BlLCBBU0NJSUxpdGVyYWwoIlVu
c3VwcG9ydGVkIGtleSBmb3JtYXQgZm9yIGltcG9ydCIpKTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLQotICAgIEFTU0VSVChrZXlTZXJpYWxpemF0aW9uKTsKLQotICAgIHN0ZDo6b3B0aW9uYWw8
Q3J5cHRvQWxnb3JpdGhtUGFpcj4gcmVjb25jaWxlZFJlc3VsdCA9IGtleVNlcmlhbGl6YXRpb24t
PnJlY29uY2lsZUFsZ29yaXRobShhbGdvcml0aG0uZ2V0KCksIHBhcmFtZXRlcnMuZ2V0KCkpOwot
ICAgIGlmICghcmVjb25jaWxlZFJlc3VsdCkgewotICAgICAgICBpZiAoIXNjb3BlLmV4Y2VwdGlv
bigpKQotICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBzY29wZSwgQVNDSUlMaXRl
cmFsKCJBbGdvcml0aG0gc3BlY2lmaWVkIGluIGtleSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIG9u
ZSBwYXNzZWQgdG8gaW1wb3J0S2V5IGFzIGFyZ3VtZW50IikpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7Ci0KLSAgICBhbGdv
cml0aG0gPSByZWNvbmNpbGVkUmVzdWx0LT5hbGdvcml0aG07Ci0gICAgcGFyYW1ldGVycyA9IHJl
Y29uY2lsZWRSZXN1bHQtPnBhcmFtZXRlcnM7Ci0gICAgaWYgKCFhbGdvcml0aG0pIHsKLSAgICAg
ICAgdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBzY29wZSwgQVNDSUlMaXRlcmFsKCJOZWl0aGVyIGtl
eSBub3IgZnVuY3Rpb24gYXJndW1lbnQgaGFzIGNyeXB0byBhbGdvcml0aG0gc3BlY2lmaWVkIikp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIEFTU0VSVChwYXJhbWV0ZXJzKTsKLQotICAg
IGtleVNlcmlhbGl6YXRpb24tPnJlY29uY2lsZUV4dHJhY3RhYmxlKGV4dHJhY3RhYmxlKTsKLSAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwotCi0gICAga2V5U2VyaWFsaXph
dGlvbi0+cmVjb25jaWxlVXNhZ2VzKGtleVVzYWdlcyk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgdm9pZCgpKTsKLQotICAgIGF1dG8ga2V5RGF0YSA9IGtleVNlcmlhbGl6YXRpb24t
PmtleURhdGEoKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwotCi0g
ICAgcHJvcGFnYXRlRXhjZXB0aW9uKHN0YXRlLCBzY29wZSwgYWxnb3JpdGhtLT5pbXBvcnRLZXko
KnBhcmFtZXRlcnMsICprZXlEYXRhLCBleHRyYWN0YWJsZSwga2V5VXNhZ2VzLCBXVEZNb3ZlKGNh
bGxiYWNrKSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJhY2spKSk7Ci19Ci0KLUpTVmFsdWUgSlNXZWJL
aXRTdWJ0bGVDcnlwdG86OmltcG9ydEtleShFeGVjU3RhdGUmIHN0YXRlKQotewotICAgIFZNJiB2
bSA9IHN0YXRlLnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwotCi0gICAgaWYgKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA8IDMpCi0gICAgICAgIHJldHVybiB0
aHJvd0V4Y2VwdGlvbigmc3RhdGUsIHNjb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJv
cigmc3RhdGUpKTsKLQotICAgIGF1dG8ga2V5Rm9ybWF0ID0gY3J5cHRvS2V5Rm9ybWF0RnJvbUpT
VmFsdWUoc3RhdGUsIHNjb3BlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7Ci0gICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKLQotICAgIEJ1ZmZlclNvdXJjZSBkYXRhID0g
Y29udmVydDxJRExVbmlvbjxJRExBcnJheUJ1ZmZlclZpZXcsIElETEFycmF5QnVmZmVyPj4oc3Rh
dGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCB7IH0pOwotCi0gICAgUmVmUHRyPENyeXB0b0FsZ29yaXRobT4gYWxnb3JpdGhtOwot
ICAgIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gcGFyYW1ldGVy
czsKLSAgICBpZiAoIXN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIpLmlzTnVsbCgpKSB7Ci0gICAg
ICAgIGFsZ29yaXRobSA9IGNyZWF0ZUFsZ29yaXRobUZyb21KU1ZhbHVlKHN0YXRlLCBzY29wZSwg
c3RhdGUudW5jaGVja2VkQXJndW1lbnQoMikpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCB7IH0pOwotCi0gICAgICAgIHBhcmFtZXRlcnMgPSBKU0NyeXB0b0FsZ29yaXRobURp
Y3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JJbXBvcnRLZXkoc3RhdGUsIHNjb3BlLCBhbGdv
cml0aG0tPmlkZW50aWZpZXIoKSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMikpOwotICAgICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotICAgIH0KLQotICAgIGJvb2wgZXh0
cmFjdGFibGUgPSBzdGF0ZS5hcmd1bWVudCgzKS50b0Jvb2xlYW4oJnN0YXRlKTsKLSAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwotCi0gICAgQ3J5cHRvS2V5VXNhZ2VC
aXRtYXAga2V5VXNhZ2VzID0gMDsKLSAgICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpID49IDUp
IHsKLSAgICAgICAga2V5VXNhZ2VzID0gY3J5cHRvS2V5VXNhZ2VzRnJvbUpTVmFsdWUoc3RhdGUs
IHNjb3BlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCg0KSk7Ci0gICAgICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIHsgfSk7Ci0gICAgfQotCi0gICAgUmVmUHRyPERlZmVycmVkUHJvbWlz
ZT4gd3JhcHBlciA9IGNyZWF0ZURlZmVycmVkUHJvbWlzZShzdGF0ZSwgZG9tV2luZG93KCkpOwot
ICAgIGF1dG8gcHJvbWlzZSA9IHdyYXBwZXItPnByb21pc2UoKTsKLSAgICBhdXRvIHN1Y2Nlc3ND
YWxsYmFjayA9IFt3cmFwcGVyXShDcnlwdG9LZXkmIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAg
IHdyYXBwZXItPnJlc29sdmU8SURMSW50ZXJmYWNlPENyeXB0b0tleT4+KHJlc3VsdCk7Ci0gICAg
fTsKLSAgICBhdXRvIGZhaWx1cmVDYWxsYmFjayA9IFt3cmFwcGVyXSgpIG11dGFibGUgewotICAg
ICAgICB3cmFwcGVyLT5yZWplY3QoKTsgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHJlamVjdCB3aXRo
IGFuIEV4Y2VwdGlvbi4KLSAgICB9OwotCi0gICAgV2ViQ29yZTo6aW1wb3J0S2V5KHN0YXRlLCBr
ZXlGb3JtYXQsIHsgZGF0YS5kYXRhKCksIGRhdGEubGVuZ3RoKCkgfSwgV1RGTW92ZShhbGdvcml0
aG0pLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBleHRyYWN0YWJsZSwga2V5VXNhZ2VzLCBXVEZNb3Zl
KHN1Y2Nlc3NDYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSk7Ci0gICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKLQotICAgIHJldHVybiBwcm9taXNlOwot
fQotCi1zdGF0aWMgdm9pZCBleHBvcnRLZXkoRXhlY1N0YXRlJiBzdGF0ZSwgQ3J5cHRvS2V5Rm9y
bWF0IGtleUZvcm1hdCwgY29uc3QgQ3J5cHRvS2V5JiBrZXksIENyeXB0b0FsZ29yaXRobTo6VmVj
dG9yQ2FsbGJhY2sgY2FsbGJhY2ssIENyeXB0b0FsZ29yaXRobTo6Vm9pZENhbGxiYWNrIGZhaWx1
cmVDYWxsYmFjaykKLXsKLSAgICBWTSYgdm0gPSBzdGF0ZS52bSgpOwotICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLQotICAgIGlmICgha2V5LmV4dHJhY3RhYmxlKCkp
IHsKLSAgICAgICAgdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBzY29wZSwgQVNDSUlMaXRlcmFsKCJL
ZXkgaXMgbm90IGV4dHJhY3RhYmxlIikpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAg
c3dpdGNoIChrZXlGb3JtYXQpIHsKLSAgICBjYXNlIENyeXB0b0tleUZvcm1hdDo6UmF3OiB7Ci0g
ICAgICAgIFZlY3Rvcjx1aW50OF90PiByZXN1bHQ7Ci0gICAgICAgIGlmIChDcnlwdG9LZXlTZXJp
YWxpemF0aW9uUmF3OjpzZXJpYWxpemUoa2V5LCByZXN1bHQpKQotICAgICAgICAgICAgY2FsbGJh
Y2socmVzdWx0KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgZmFpbHVyZUNhbGxiYWNrKCk7
Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBjYXNlIENyeXB0b0tleUZvcm1hdDo6SndrOiB7
Ci0gICAgICAgIFN0cmluZyByZXN1bHQgPSBKU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0s6OnNl
cmlhbGl6ZSgmc3RhdGUsIGtleSk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IHZvaWQoKSk7Ci0gICAgICAgIENTdHJpbmcgdXRmOFN0cmluZyA9IHJlc3VsdC51dGY4KFN0cmlj
dENvbnZlcnNpb24pOwotICAgICAgICBWZWN0b3I8dWludDhfdD4gcmVzdWx0QnVmZmVyOwotICAg
ICAgICByZXN1bHRCdWZmZXIuYXBwZW5kKHV0ZjhTdHJpbmcuZGF0YSgpLCB1dGY4U3RyaW5nLmxl
bmd0aCgpKTsKLSAgICAgICAgY2FsbGJhY2socmVzdWx0QnVmZmVyKTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgfQotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgc2Nv
cGUsIEFTQ0lJTGl0ZXJhbCgiVW5zdXBwb3J0ZWQga2V5IGZvcm1hdCBmb3IgZXhwb3J0IikpOwot
ICAgICAgICBicmVhazsKLSAgICB9Ci19Ci0KLUpTVmFsdWUgSlNXZWJLaXRTdWJ0bGVDcnlwdG86
OmV4cG9ydEtleShFeGVjU3RhdGUmIHN0YXRlKQotewotICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7
Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotCi0gICAgaWYgKHN0
YXRlLmFyZ3VtZW50Q291bnQoKSA8IDIpCi0gICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbigm
c3RhdGUsIHNjb3BlLCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKLQot
ICAgIGF1dG8ga2V5Rm9ybWF0ID0gY3J5cHRvS2V5Rm9ybWF0RnJvbUpTVmFsdWUoc3RhdGUsIHNj
b3BlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgeyB9KTsKLQotICAgIFJlZlB0cjxDcnlwdG9LZXk+IGtleSA9IEpTQ3J5cHRvS2V5
Ojp0b1dyYXBwZWQodm0sIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKLSAgICBpZiAoIWtl
eSkKLSAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCZzdGF0ZSwgc2NvcGUpOwotCi0gICAg
UmVmUHRyPERlZmVycmVkUHJvbWlzZT4gd3JhcHBlciA9IGNyZWF0ZURlZmVycmVkUHJvbWlzZShz
dGF0ZSwgZG9tV2luZG93KCkpOwotICAgIGF1dG8gcHJvbWlzZSA9IHdyYXBwZXItPnByb21pc2Uo
KTsKLSAgICBhdXRvIHN1Y2Nlc3NDYWxsYmFjayA9IFt3cmFwcGVyXShjb25zdCBWZWN0b3I8dWlu
dDhfdD4mIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIGZ1bGZpbGxQcm9taXNlV2l0aEFycmF5
QnVmZmVyKHdyYXBwZXIucmVsZWFzZU5vbk51bGwoKSwgcmVzdWx0LmRhdGEoKSwgcmVzdWx0LnNp
emUoKSk7Ci0gICAgfTsKLSAgICBhdXRvIGZhaWx1cmVDYWxsYmFjayA9IFt3cmFwcGVyXSgpIG11
dGFibGUgewotICAgICAgICB3cmFwcGVyLT5yZWplY3QoKTsgLy8gRklYTUU6IFRoaXMgc2hvdWxk
IHJlamVjdCB3aXRoIGFuIEV4Y2VwdGlvbi4KLSAgICB9OwotCi0gICAgV2ViQ29yZTo6ZXhwb3J0
S2V5KHN0YXRlLCBrZXlGb3JtYXQsICprZXksIFdURk1vdmUoc3VjY2Vzc0NhbGxiYWNrKSwgV1RG
TW92ZShmYWlsdXJlQ2FsbGJhY2spKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBK
U1ZhbHVlKCkpOwotCi0gICAgcmV0dXJuIHByb21pc2U7Ci19Ci0KLUpTVmFsdWUgSlNXZWJLaXRT
dWJ0bGVDcnlwdG86OndyYXBLZXkoRXhlY1N0YXRlJiBzdGF0ZSkKLXsKLSAgICBWTSYgdm0gPSBz
dGF0ZS52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLQot
ICAgIGlmIChzdGF0ZS5hcmd1bWVudENvdW50KCkgPCA0KQotICAgICAgICByZXR1cm4gdGhyb3dF
eGNlcHRpb24oJnN0YXRlLCBzY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0
YXRlKSk7Ci0KLSAgICBhdXRvIGtleUZvcm1hdCA9IGNyeXB0b0tleUZvcm1hdEZyb21KU1ZhbHVl
KHN0YXRlLCBzY29wZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCkpOwotICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0KLSAgICBSZWZQdHI8Q3J5cHRvS2V5PiBrZXkgPSBK
U0NyeXB0b0tleTo6dG9XcmFwcGVkKHZtLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSk7Ci0g
ICAgaWYgKCFrZXkpCi0gICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigmc3RhdGUsIHNjb3Bl
KTsKLQotICAgIFJlZlB0cjxDcnlwdG9LZXk+IHdyYXBwaW5nS2V5ID0gSlNDcnlwdG9LZXk6OnRv
V3JhcHBlZCh2bSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMikpOwotICAgIGlmICgha2V5KQot
ICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoJnN0YXRlLCBzY29wZSk7Ci0KLSAgICBpZiAo
IXdyYXBwaW5nS2V5LT5hbGxvd3MoQ3J5cHRvS2V5VXNhZ2VXcmFwS2V5KSkgewotICAgICAgICB3
cmFwcGVkKCkuZG9jdW1lbnQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMs
IE1lc3NhZ2VMZXZlbDo6RXJyb3IsIEFTQ0lJTGl0ZXJhbCgiS2V5IHVzYWdlcyBkbyBub3QgaW5j
bHVkZSAnd3JhcEtleSciKSk7Ci0gICAgICAgIHRocm93Tm90U3VwcG9ydGVkRXJyb3Ioc3RhdGUs
IHNjb3BlKTsKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgfQotCi0gICAgYXV0
byBhbGdvcml0aG0gPSBjcmVhdGVBbGdvcml0aG1Gcm9tSlNWYWx1ZShzdGF0ZSwgc2NvcGUsIHN0
YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDMpKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCB7IH0pOwotCi0gICAgYXV0byBwYXJhbWV0ZXJzID0gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9u
YXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yRW5jcnlwdChzdGF0ZSwgc2NvcGUsIGFsZ29yaXRobS0+
aWRlbnRpZmllcigpLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgzKSk7Ci0gICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgeyB9KTsKLQotICAgIFJlZlB0cjxEZWZlcnJlZFByb21pc2U+IHdy
YXBwZXIgPSBjcmVhdGVEZWZlcnJlZFByb21pc2Uoc3RhdGUsIGRvbVdpbmRvdygpKTsKLSAgICBh
dXRvIHByb21pc2UgPSB3cmFwcGVyLT5wcm9taXNlKCk7Ci0KLSAgICBhdXRvIGV4cG9ydFN1Y2Nl
c3NDYWxsYmFjayA9IFthbGdvcml0aG0sIHBhcmFtZXRlcnMsIHdyYXBwaW5nS2V5LCB3cmFwcGVy
XShjb25zdCBWZWN0b3I8dWludDhfdD4mIGV4cG9ydGVkS2V5RGF0YSkgbXV0YWJsZSB7Ci0gICAg
ICAgIGF1dG8gZW5jcnlwdFN1Y2Nlc3NDYWxsYmFjayA9IFt3cmFwcGVyXShjb25zdCBWZWN0b3I8
dWludDhfdD4mIGVuY3J5cHRlZERhdGEpIG11dGFibGUgewotICAgICAgICAgICAgZnVsZmlsbFBy
b21pc2VXaXRoQXJyYXlCdWZmZXIod3JhcHBlci5yZWxlYXNlTm9uTnVsbCgpLCBlbmNyeXB0ZWRE
YXRhLmRhdGEoKSwgZW5jcnlwdGVkRGF0YS5zaXplKCkpOwotICAgICAgICB9OwotICAgICAgICBh
dXRvIGVuY3J5cHRGYWlsdXJlQ2FsbGJhY2sgPSBbd3JhcHBlcl0oKSBtdXRhYmxlIHsKLSAgICAg
ICAgd3JhcHBlci0+cmVqZWN0KCk7IC8vIEZJWE1FOiBUaGlzIHNob3VsZCByZWplY3Qgd2l0aCBh
biBFeGNlcHRpb24uCi0gICAgICAgIH07Ci0gICAgICAgIGF1dG8gcmVzdWx0ID0gYWxnb3JpdGht
LT5lbmNyeXB0Rm9yV3JhcEtleSgqcGFyYW1ldGVycywgKndyYXBwaW5nS2V5LCBzdGQ6Om1ha2Vf
cGFpcihleHBvcnRlZEtleURhdGEuZGF0YSgpLCBleHBvcnRlZEtleURhdGEuc2l6ZSgpKSwgV1RG
TW92ZShlbmNyeXB0U3VjY2Vzc0NhbGxiYWNrKSwgV1RGTW92ZShlbmNyeXB0RmFpbHVyZUNhbGxi
YWNrKSk7Ci0gICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKLSAgICAgICAgICAg
IC8vIEZJWE1FOiBSZXBvcnQgZmFpbHVyZSBkZXRhaWxzIHRvIGNvbnNvbGUsIGFuZCBwb3NzaWJs
eSB0byBjYWxsaW5nIHNjcmlwdCBvbmNlIHRoZXJlIGlzIGEgc3RhbmRhcmRpemVkIHdheSB0byBw
YXNzIGVycm9ycyB0byBXZWJDcnlwdG8gcHJvbWlzZSByZWplY3QgZnVuY3Rpb25zLgotICAgICAg
ICAgICAgd3JhcHBlci0+cmVqZWN0KCk7IC8vIEZJWE1FOiBUaGlzIHNob3VsZCByZWplY3Qgd2l0
aCBhbiBFeGNlcHRpb24uCi0gICAgICAgIH0KLSAgICB9OwotCi0gICAgYXV0byBleHBvcnRGYWls
dXJlQ2FsbGJhY2sgPSBbd3JhcHBlcl0oKSBtdXRhYmxlIHsKLSAgICAgICAgd3JhcHBlci0+cmVq
ZWN0KCk7IC8vIEZJWE1FOiBUaGlzIHNob3VsZCByZWplY3Qgd2l0aCBhbiBFeGNlcHRpb24uCi0g
ICAgfTsKLQotICAgIFdlYkNvcmU6OmV4cG9ydEtleShzdGF0ZSwga2V5Rm9ybWF0LCAqa2V5LCBX
VEZNb3ZlKGV4cG9ydFN1Y2Nlc3NDYWxsYmFjayksIFdURk1vdmUoZXhwb3J0RmFpbHVyZUNhbGxi
YWNrKSk7Ci0KLSAgICByZXR1cm4gcHJvbWlzZTsKLX0KLQotSlNWYWx1ZSBKU1dlYktpdFN1YnRs
ZUNyeXB0bzo6dW53cmFwS2V5KEV4ZWNTdGF0ZSYgc3RhdGUpCi17Ci0gICAgVk0mIHZtID0gc3Rh
dGUudm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0KLSAg
ICBpZiAoc3RhdGUuYXJndW1lbnRDb3VudCgpIDwgNSkKLSAgICAgICAgcmV0dXJuIHRocm93RXhj
ZXB0aW9uKCZzdGF0ZSwgc2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCZzdGF0
ZSkpOwotCi0gICAgYXV0byBrZXlGb3JtYXQgPSBjcnlwdG9LZXlGb3JtYXRGcm9tSlNWYWx1ZShz
dGF0ZSwgc2NvcGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKLSAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotCi0gICAgQnVmZmVyU291cmNlIHdyYXBwZWRLZXlEYXRh
ID0gY29udmVydDxJRExVbmlvbjxJRExBcnJheUJ1ZmZlclZpZXcsIElETEFycmF5QnVmZmVyPj4o
c3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCB7IH0pOwotCi0gICAgUmVmUHRyPENyeXB0b0tleT4gdW53cmFwcGluZ0tleSA9
IEpTQ3J5cHRvS2V5Ojp0b1dyYXBwZWQodm0sIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIpKTsK
LSAgICBpZiAoIXVud3JhcHBpbmdLZXkpCi0gICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigm
c3RhdGUsIHNjb3BlKTsKLQotICAgIGlmICghdW53cmFwcGluZ0tleS0+YWxsb3dzKENyeXB0b0tl
eVVzYWdlVW53cmFwS2V5KSkgewotICAgICAgICB3cmFwcGVkKCkuZG9jdW1lbnQoKS0+YWRkQ29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMsIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIEFTQ0lJ
TGl0ZXJhbCgiS2V5IHVzYWdlcyBkbyBub3QgaW5jbHVkZSAndW53cmFwS2V5JyIpKTsKLSAgICAg
ICAgdGhyb3dOb3RTdXBwb3J0ZWRFcnJvcihzdGF0ZSwgc2NvcGUpOwotICAgICAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKLSAgICB9Ci0KLSAgICBhdXRvIHVud3JhcEFsZ29yaXRobSA9IGNyZWF0
ZUFsZ29yaXRobUZyb21KU1ZhbHVlKHN0YXRlLCBzY29wZSwgc3RhdGUudW5jaGVja2VkQXJndW1l
bnQoMykpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0KLSAgICBhdXRv
IHVud3JhcEFsZ29yaXRobVBhcmFtZXRlcnMgPSBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6
OmNyZWF0ZVBhcmFtZXRlcnNGb3JEZWNyeXB0KHN0YXRlLCBzY29wZSwgdW53cmFwQWxnb3JpdGht
LT5pZGVudGlmaWVyKCksIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDMpKTsKLSAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotCi0gICAgUmVmUHRyPENyeXB0b0FsZ29yaXRobT4g
dW53cmFwcGVkS2V5QWxnb3JpdGhtOwotICAgIFJlZlB0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0
ZXJzRGVwcmVjYXRlZD4gdW53cmFwcGVkS2V5QWxnb3JpdGhtUGFyYW1ldGVyczsKLSAgICBpZiAo
IXN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDQpLmlzTnVsbCgpKSB7Ci0gICAgICAgIHVud3JhcHBl
ZEtleUFsZ29yaXRobSA9IGNyZWF0ZUFsZ29yaXRobUZyb21KU1ZhbHVlKHN0YXRlLCBzY29wZSwg
c3RhdGUudW5jaGVja2VkQXJndW1lbnQoNCkpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCB7IH0pOwotCi0gICAgICAgIHVud3JhcHBlZEtleUFsZ29yaXRobVBhcmFtZXRlcnMg
PSBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JJbXBvcnRL
ZXkoc3RhdGUsIHNjb3BlLCB1bndyYXBwZWRLZXlBbGdvcml0aG0tPmlkZW50aWZpZXIoKSwgc3Rh
dGUudW5jaGVja2VkQXJndW1lbnQoNCkpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB7IH0pOwotICAgIH0KLQotICAgIGJvb2wgZXh0cmFjdGFibGUgPSBzdGF0ZS5hcmd1bWVu
dCg1KS50b0Jvb2xlYW4oJnN0YXRlKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7
IH0pOwotCi0gICAgQ3J5cHRvS2V5VXNhZ2VCaXRtYXAga2V5VXNhZ2VzID0gMDsKLSAgICBpZiAo
c3RhdGUuYXJndW1lbnRDb3VudCgpID49IDcpIHsKLSAgICAgICAga2V5VXNhZ2VzID0gY3J5cHRv
S2V5VXNhZ2VzRnJvbUpTVmFsdWUoc3RhdGUsIHNjb3BlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVu
dCg2KSk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0gICAgfQot
Ci0gICAgUmVmUHRyPERlZmVycmVkUHJvbWlzZT4gd3JhcHBlciA9IGNyZWF0ZURlZmVycmVkUHJv
bWlzZShzdGF0ZSwgZG9tV2luZG93KCkpOwotICAgIGF1dG8gcHJvbWlzZSA9IHdyYXBwZXItPnBy
b21pc2UoKTsKLSAgICBTdHJvbmc8SlNET01HbG9iYWxPYmplY3Q+IGRvbUdsb2JhbE9iamVjdChz
dGF0ZS52bSgpLCBnbG9iYWxPYmplY3QoKSk7Ci0KLSAgICBhdXRvIGRlY3J5cHRTdWNjZXNzQ2Fs
bGJhY2sgPSBbZG9tR2xvYmFsT2JqZWN0LCBrZXlGb3JtYXQsIHVud3JhcHBlZEtleUFsZ29yaXRo
bSwgdW53cmFwcGVkS2V5QWxnb3JpdGhtUGFyYW1ldGVycywgZXh0cmFjdGFibGUsIGtleVVzYWdl
cywgd3JhcHBlcl0oY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiByZXN1bHQpIG11dGFibGUgewotICAg
ICAgICBhdXRvIGltcG9ydFN1Y2Nlc3NDYWxsYmFjayA9IFt3cmFwcGVyXShDcnlwdG9LZXkmIGtl
eSkgbXV0YWJsZSB7Ci0gICAgICAgICAgICB3cmFwcGVyLT5yZXNvbHZlPElETEludGVyZmFjZTxD
cnlwdG9LZXk+PihrZXkpOwotICAgICAgICB9OwotICAgICAgICBhdXRvIGltcG9ydEZhaWx1cmVD
YWxsYmFjayA9IFt3cmFwcGVyXSgpIG11dGFibGUgewotICAgICAgICAgICAgd3JhcHBlci0+cmVq
ZWN0KCk7IC8vIEZJWE1FOiBUaGlzIHNob3VsZCByZWplY3Qgd2l0aCBhbiBFeGNlcHRpb24uCi0g
ICAgICAgIH07Ci0KLSAgICAgICAgVk0mIHZtID0gZG9tR2xvYmFsT2JqZWN0LT52bSgpOwotICAg
ICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7Ci0KLSAgICAgICAgRXhl
Y1N0YXRlJiBzdGF0ZSA9ICpkb21HbG9iYWxPYmplY3QtPmdsb2JhbEV4ZWMoKTsKLSAgICAgICAg
V2ViQ29yZTo6aW1wb3J0S2V5KHN0YXRlLCBrZXlGb3JtYXQsIHN0ZDo6bWFrZV9wYWlyKHJlc3Vs
dC5kYXRhKCksIHJlc3VsdC5zaXplKCkpLCB1bndyYXBwZWRLZXlBbGdvcml0aG0sIHVud3JhcHBl
ZEtleUFsZ29yaXRobVBhcmFtZXRlcnMsIGV4dHJhY3RhYmxlLCBrZXlVc2FnZXMsIFdURk1vdmUo
aW1wb3J0U3VjY2Vzc0NhbGxiYWNrKSwgV1RGTW92ZShpbXBvcnRGYWlsdXJlQ2FsbGJhY2spKTsK
LSAgICAgICAgaWYgKFVOTElLRUxZKHNjb3BlLmV4Y2VwdGlvbigpKSkgewotICAgICAgICAgICAg
Ly8gRklYTUU6IFJlcG9ydCBleGNlcHRpb24gZGV0YWlscyB0byBjb25zb2xlLCBhbmQgcG9zc2li
bHkgdG8gY2FsbGluZyBzY3JpcHQgb25jZSB0aGVyZSBpcyBhIHN0YW5kYXJkaXplZCB3YXkgdG8g
cGFzcyBlcnJvcnMgdG8gV2ViQ3J5cHRvIHByb21pc2UgcmVqZWN0IGZ1bmN0aW9ucy4KLSAgICAg
ICAgICAgIHNjb3BlLmNsZWFyRXhjZXB0aW9uKCk7Ci0gICAgICAgICAgICB3cmFwcGVyLT5yZWpl
Y3QoKTsgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHJlamVjdCB3aXRoIGFuIEV4Y2VwdGlvbi4KLSAg
ICAgICAgfQotICAgIH07Ci0KLSAgICBhdXRvIGRlY3J5cHRGYWlsdXJlQ2FsbGJhY2sgPSBbd3Jh
cHBlcl0oKSBtdXRhYmxlIHsKLSAgICAgICAgd3JhcHBlci0+cmVqZWN0KCk7IC8vIEZJWE1FOiBU
aGlzIHNob3VsZCByZWplY3Qgd2l0aCBhbiBFeGNlcHRpb24uCi0gICAgfTsKLQotICAgIGF1dG8g
cmVzdWx0ID0gdW53cmFwQWxnb3JpdGhtLT5kZWNyeXB0Rm9yVW53cmFwS2V5KCp1bndyYXBBbGdv
cml0aG1QYXJhbWV0ZXJzLCAqdW53cmFwcGluZ0tleSwgeyB3cmFwcGVkS2V5RGF0YS5kYXRhKCks
IHdyYXBwZWRLZXlEYXRhLmxlbmd0aCgpIH0sIFdURk1vdmUoZGVjcnlwdFN1Y2Nlc3NDYWxsYmFj
ayksIFdURk1vdmUoZGVjcnlwdEZhaWx1cmVDYWxsYmFjaykpOwotICAgIGlmIChyZXN1bHQuaGFz
RXhjZXB0aW9uKCkpIHsKLSAgICAgICAgcHJvcGFnYXRlRXhjZXB0aW9uKHN0YXRlLCBzY29wZSwg
cmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7Ci0gICAgICAgIHJldHVybiB7IH07Ci0gICAgfQot
Ci0gICAgcmV0dXJuIHByb21pc2U7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2Vu
ZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtLmNwcAkocmV2
aXNpb24gMjIwOTM1KQorKysgU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRobS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTkwLDYxICs5MCw2IEBAIEV4Y2VwdGlvbk9yPHNpemVfdD4g
Q3J5cHRvQWxnb3JpdGhtOjpnZXQKICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVk
RXJyb3IgfTsKIH0KIAotRXhjZXB0aW9uT3I8dm9pZD4gQ3J5cHRvQWxnb3JpdGhtOjplbmNyeXB0
KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRv
S2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRD
YWxsYmFjayYmKQotewotICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9
OwotfQotCi1FeGNlcHRpb25Pcjx2b2lkPiBDcnlwdG9BbGdvcml0aG06OmRlY3J5cHQoY29uc3Qg
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmLCBj
b25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNr
JiYpCi17Ci0gICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07Ci19Ci0K
LUV4Y2VwdGlvbk9yPHZvaWQ+IENyeXB0b0FsZ29yaXRobTo6c2lnbihjb25zdCBDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0
b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJikKLXsKLSAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKLX0KLQotRXhjZXB0aW9u
T3I8dm9pZD4gQ3J5cHRvQWxnb3JpdGhtOjp2ZXJpZnkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRp
b25EYXRhJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIEJvb2xDYWxsYmFjayYmLCBWb2lk
Q2FsbGJhY2smJikKLXsKLSAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3Ig
fTsKLX0KLQotRXhjZXB0aW9uT3I8dm9pZD4gQ3J5cHRvQWxnb3JpdGhtOjpkaWdlc3QoY29uc3Qg
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9PcGVyYXRp
b25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYpCi17Ci0gICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07Ci19Ci0KLUV4Y2VwdGlvbk9yPHZvaWQ+
IENyeXB0b0FsZ29yaXRobTo6Z2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVyc0RlcHJlY2F0ZWQmLCBib29sLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCwgS2V5T3JLZXlQYWly
Q2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKQotewot
ICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OwotfQotCi1FeGNlcHRp
b25Pcjx2b2lkPiBDcnlwdG9BbGdvcml0aG06OmRlcml2ZUtleShjb25zdCBDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleSYsIENyeXB0b0FsZ29yaXRo
bSosIGJvb2wsIENyeXB0b0tleVVzYWdlQml0bWFwLCBLZXlDYWxsYmFjayYmLCBWb2lkQ2FsbGJh
Y2smJikKLXsKLSAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKLX0K
LQotRXhjZXB0aW9uT3I8dm9pZD4gQ3J5cHRvQWxnb3JpdGhtOjpkZXJpdmVCaXRzKGNvbnN0IENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5Jiwgc2l6
ZV90LCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJikKLXsKLSAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKLX0KLQotRXhjZXB0aW9uT3I8dm9pZD4gQ3J5
cHRvQWxnb3JpdGhtOjppbXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0Rl
cHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXlEYXRhJiwgYm9vbCwgQ3J5cHRvS2V5VXNhZ2VCaXRt
YXAsIEtleUNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmKQotewotICAgIHJldHVybiBFeGNlcHRp
b24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OwotfQotCi1FeGNlcHRpb25Pcjx2b2lkPiBDcnlwdG9B
bGdvcml0aG06OmVuY3J5cHRGb3JXcmFwS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5
cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENh
bGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrKQotewotICAgIHJldHVybiBlbmNyeXB0KHBhcmFtZXRl
cnMsIGtleSwgZGF0YSwgV1RGTW92ZShjYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNr
KSk7Ci19Ci0KLUV4Y2VwdGlvbk9yPHZvaWQ+IENyeXB0b0FsZ29yaXRobTo6ZGVjcnlwdEZvclVu
d3JhcEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYgcGFyYW1l
dGVycywgY29uc3QgQ3J5cHRvS2V5JiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRh
dGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxs
YmFjaykKLXsKLSAgICByZXR1cm4gZGVjcnlwdChwYXJhbWV0ZXJzLCBrZXksIGRhdGEsIFdURk1v
dmUoY2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjaykpOwotfQotCiB9CiAKICNlbmRp
ZgpJbmRleDogU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRobS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG0uaAkocmV2aXNpb24g
MjIwOTM1KQorKysgU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRobS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MiwxNCArNDIsMTAgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyczsKLWNsYXNzIENyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnNEZXByZWNhdGVkOwogY2xhc3MgQ3J5cHRvS2V5OwogY2xhc3MgQ3J5cHRvS2V5RGF0YTsK
IGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiAKLS8vIERhdGEgaXMgbXV0YWJsZSwgc28g
YXN5bmMgb3BlcmF0aW9ucyBzaG91bGQgY29weSBpdCBmaXJzdC4KLXVzaW5nIENyeXB0b09wZXJh
dGlvbkRhdGEgPSBzdGQ6OnBhaXI8Y29uc3QgdWludDhfdCosIHNpemVfdD47Ci0KIHVzaW5nIEtl
eURhdGEgPSBWYXJpYW50PFZlY3Rvcjx1aW50OF90PiwgSnNvbldlYktleT47CiB1c2luZyBLZXlP
cktleVBhaXIgPSBWYXJpYW50PFJlZlB0cjxDcnlwdG9LZXk+LCBDcnlwdG9LZXlQYWlyPjsKIApA
QCAtODEsMjEgKzc3LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCB3cmFwS2V5KFJlZjxD
cnlwdG9LZXk+JiYsIFZlY3Rvcjx1aW50OF90PiYmLCBWZWN0b3JDYWxsYmFjayYmLCBFeGNlcHRp
b25DYWxsYmFjayYmKTsKICAgICB2aXJ0dWFsIHZvaWQgdW53cmFwS2V5KFJlZjxDcnlwdG9LZXk+
JiYsIFZlY3Rvcjx1aW50OF90PiYmLCBWZWN0b3JDYWxsYmFjayYmLCBFeGNlcHRpb25DYWxsYmFj
ayYmKTsKICAgICB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHNpemVfdD4gZ2V0S2V5TGVuZ3RoKGNvbnN0
IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmKTsKLQotICAgIC8vIFRoZSBmb2xsb3dpbmcgd2ls
bCBiZSBkZXByZWNhdGVkLgotICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4gZW5jcnlwdChj
b25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tl
eSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2Fs
bGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spOwotICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4g
ZGVjcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0
IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYm
LCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spOwotICAgIHZpcnR1YWwgRXhjZXB0aW9u
T3I8dm9pZD4gc2lnbihjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYs
IGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxs
YmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spOwotICAgIHZpcnR1YWwgRXhj
ZXB0aW9uT3I8dm9pZD4gdmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXBy
ZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgc2ln
bmF0dXJlLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgQm9vbENhbGxiYWNrJiYsIFZvaWRD
YWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjayk7Ci0gICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lk
PiBkaWdlc3QoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25z
dCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYg
ZmFpbHVyZUNhbGxiYWNrKTsKLSAgICB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IGdlbmVyYXRl
S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgYm9vbCBleHRy
YWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2VCaXRtYXAsIEtleU9yS2V5UGFpckNhbGxiYWNrJiYsIFZv
aWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwot
ICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4gZGVyaXZlS2V5KGNvbnN0IENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiBiYXNlS2V5LCBDcnlw
dG9BbGdvcml0aG0qIGRlcml2ZWRLZXlUeXBlLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlV
c2FnZUJpdG1hcCwgS2V5Q2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNr
KTsKLSAgICB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IGRlcml2ZUJpdHMoY29uc3QgQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmIGJhc2VLZXks
IHNpemVfdCBsZW5ndGgsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVD
YWxsYmFjayk7Ci0gICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBpbXBvcnRLZXkoY29uc3Qg
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXlEYXRh
JiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2VCaXRtYXAsIEtleUNhbGxiYWNrJiYs
IFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjayk7Ci0KLSAgICAvLyBUaGVzZSBhcmUgb25s
eSBkaWZmZXJlbnQgZnJvbSBlbmNyeXB0L2RlY3J5cHQgYmVjYXVzZSBzb21lIGFsZ29yaXRobXMg
bWF5IG5vdCBleHBvc2UgZW5jcnlwdC9kZWNyeXB0LgotICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8
dm9pZD4gZW5jcnlwdEZvcldyYXBLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0Rl
cHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwg
VmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrKTsKLSAgICB2
aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IGRlY3J5cHRGb3JVbndyYXBLZXkoY29uc3QgQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBD
cnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFp
bHVyZUNhbGxiYWNrKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG1QYXJhbWV0
ZXJzRGVwcmVjYXRlZC5oCShyZXZpc2lvbiAyMjA5MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlw
dG8vQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQuaAkobm9uZXhpc3RlbnQpCkBA
IC0xLDYwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShT
VUJUTEVfQ1JZUFRPKQotCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3
dGYvVHlwZUNhc3RzLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQgOiBwdWJsaWMgUmVmQ291bnRlZDxDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZD4gewotcHVibGljOgotICAgIHZpcnR1YWwgfkNyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkKCkgeyB9Ci0KLSAgICBlbnVtIGNsYXNzIENs
YXNzIHsKLSAgICAgICAgTm9uZSwKLSAgICAgICAgQWVzQ2JjUGFyYW1zLAotICAgICAgICBBZXNL
ZXlHZW5QYXJhbXMsCi0gICAgICAgIEhtYWNLZXlQYXJhbXMsCi0gICAgICAgIEhtYWNQYXJhbXMs
Ci0gICAgICAgIFJzYUtleUdlblBhcmFtcywKLSAgICAgICAgUnNhS2V5UGFyYW1zV2l0aEhhc2gs
Ci0gICAgICAgIFJzYU9hZXBQYXJhbXMsCi0gICAgICAgIFJzYVNzYVBhcmFtcwotICAgIH07Ci0g
ICAgdmlydHVhbCBDbGFzcyBwYXJhbWV0ZXJzQ2xhc3MoKSBjb25zdCB7IHJldHVybiBDbGFzczo6
Tm9uZTsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZGVmaW5lIFNQRUNJQUxJ
WkVfVFlQRV9UUkFJVFNfQ1JZUFRPX0FMR09SSVRITV9QQVJBTUVURVJTX0RFUFJFQ0FURUQoVG9D
bGFzc05hbWUpIFwKLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQkVHSU4oV2ViQ29yZTo6Q3J5cHRv
QWxnb3JpdGhtIyNUb0NsYXNzTmFtZSMjRGVwcmVjYXRlZCkgXAotICAgIHN0YXRpYyBib29sIGlz
VHlwZShjb25zdCBXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYg
cGFyYW1ldGVycykgeyByZXR1cm4gcGFyYW1ldGVycy5wYXJhbWV0ZXJzQ2xhc3MoKSA9PSBXZWJD
b3JlOjpDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZDo6Q2xhc3M6OlRvQ2xhc3NO
YW1lOyB9IFwKLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKLQotI2VuZGlmIC8vIEVOQUJM
RShTVUJUTEVfQ1JZUFRPKQpJbmRleDogU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0tleVNl
cmlhbGl6YXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRv
S2V5U2VyaWFsaXphdGlvbi5oCShyZXZpc2lvbiAyMjA5MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9j
cnlwdG8vQ3J5cHRvS2V5U2VyaWFsaXphdGlvbi5oCShub25leGlzdGVudCkKQEAgLTEsNjUgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiQ3J5cHRvS2V5VXNh
Z2UuaCIKLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvT3B0aW9u
YWwuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0KLSNpZiBFTkFCTEUoU1VCVExFX0NSWVBU
TykKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBDcnlwdG9BbGdvcml0aG07Ci1jbGFz
cyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZDsKLWNsYXNzIENyeXB0b0tleURh
dGE7Ci0KLXR5cGVkZWYgc3RkOjpwYWlyPGNvbnN0IHVpbnQ4X3QqLCBzaXplX3Q+IENyeXB0b09w
ZXJhdGlvbkRhdGE7Ci0KLXN0cnVjdCBDcnlwdG9BbGdvcml0aG1QYWlyIHsKLSAgICBSZWZQdHI8
Q3J5cHRvQWxnb3JpdGhtPiBhbGdvcml0aG07Ci0gICAgUmVmUHRyPENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnNEZXByZWNhdGVkPiBwYXJhbWV0ZXJzOwotfTsKLQotY2xhc3MgQ3J5cHRvS2V5U2Vy
aWFsaXphdGlvbiB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ3J5cHRvS2V5U2VyaWFsaXph
dGlvbik7Ci1wdWJsaWM6Ci0gICAgQ3J5cHRvS2V5U2VyaWFsaXphdGlvbigpIHsgfQotICAgIHZp
cnR1YWwgfkNyeXB0b0tleVNlcmlhbGl6YXRpb24oKSB7IH0KLQotICAgIC8vIFJldHVybnMgZmFs
c2UgaWYgc3VnZ2VzdGVkIGFsZ29yaXRobSB3YXMgbm90IGNvbXBhdGlibGUgd2l0aCBvbmUgc3Rv
cmVkIGluIHRoZSBzZXJpYWxpemF0aW9uLgotICAgIHZpcnR1YWwgc3RkOjpvcHRpb25hbDxDcnlw
dG9BbGdvcml0aG1QYWlyPiByZWNvbmNpbGVBbGdvcml0aG0oQ3J5cHRvQWxnb3JpdGhtKiwgQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQqKSBjb25zdCA9IDA7Ci0KLSAgICB2aXJ0
dWFsIHZvaWQgcmVjb25jaWxlVXNhZ2VzKENyeXB0b0tleVVzYWdlQml0bWFwJikgY29uc3QgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCByZWNvbmNpbGVFeHRyYWN0YWJsZShib29sJikgY29uc3QgPSAw
OwotCi0gICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvS2V5RGF0YT4ga2V5RGF0YSgp
IGNvbnN0ID0gMDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVO
QUJMRShTVUJUTEVfQ1JZUFRPKQoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUv
Y3J5cHRvL0NyeXB0b0tleVNlcmlhbGl6YXRpb24uaApfX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjpl
b2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJv
cGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9XZWJLaXRTdWJ0bGVDcnlwdG8uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9XZWJLaXRTdWJ0bGVDcnlwdG8u
Y3BwCShyZXZpc2lvbiAyMjA5MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vV2ViS2l0U3Vi
dGxlQ3J5cHRvLmNwcAkobm9uZXhpc3RlbnQpCkBAIC0xLDQ3ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViS2l0U3VidGxlQ3J5cHRvLmgiCi0K
LSNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKLQotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotV2ViS2l0U3VidGxlQ3J5cHRvOjpXZWJLaXRTdWJ0bGVDcnlw
dG8oRG9jdW1lbnQmIGRvY3VtZW50KQotICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIo
JmRvY3VtZW50KQotewotfQotCi1Eb2N1bWVudCogV2ViS2l0U3VidGxlQ3J5cHRvOjpkb2N1bWVu
dCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50PihzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkpOwotfQotCi19Ci0KLSNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvY3J5
cHRvL1dlYktpdFN1YnRsZUNyeXB0by5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Ny
eXB0by9XZWJLaXRTdWJ0bGVDcnlwdG8uaAkocmV2aXNpb24gMjIwOTM1KQorKysgU291cmNlL1dl
YkNvcmUvY3J5cHRvL1dlYktpdFN1YnRsZUNyeXB0by5oCShub25leGlzdGVudCkKQEAgLTEsNTAg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiQ29udGV4dERl
c3RydWN0aW9uT2JzZXJ2ZXIuaCIgCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNs
dWRlIDx3dGYvUmVmLmg+Ci0KLSNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi1jbGFzcyBEb2N1bWVudDsKLQotY2xhc3MgV2ViS2l0U3VidGxlQ3J5cHRv
IDogcHVibGljIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLCBwdWJsaWMgUmVmQ291bnRlZDxX
ZWJLaXRTdWJ0bGVDcnlwdG8+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYktpdFN1YnRs
ZUNyeXB0bz4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkgeyByZXR1cm4gYWRvcHRSZWYoKm5l
dyBXZWJLaXRTdWJ0bGVDcnlwdG8oZG9jdW1lbnQpKTsgfQotCi0gICAgRG9jdW1lbnQqIGRvY3Vt
ZW50KCkgY29uc3Q7Ci0KLXByaXZhdGU6Ci0gICAgV2ViS2l0U3VidGxlQ3J5cHRvKERvY3VtZW50
Jik7Ci19OwotCi19Ci0KLSNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvY3J5cHRvL1dlYktp
dFN1YnRsZUNyeXB0by5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3J5cHRvL1dl
YktpdFN1YnRsZUNyeXB0by5pZGwJKHJldmlzaW9uIDIyMDkzNSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2NyeXB0by9XZWJLaXRTdWJ0bGVDcnlwdG8uaWRsCShub25leGlzdGVudCkKQEAgLTEsNDEgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLVsKLSAgICBDb25kaXRpb25hbD1TVUJUTEVfQ1JZUFRPLAotICAg
IEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbERvY3VtZW50LAotICAgIE5vSW50ZXJmYWNlT2JqZWN0
LAotXSBpbnRlcmZhY2UgV2ViS2l0U3VidGxlQ3J5cHRvIHsKLSAgICBbQ3VzdG9tLCBSZXR1cm5z
T3duUHJvbWlzZV0gUHJvbWlzZTxBcnJheUJ1ZmZlcj4gZW5jcnlwdChBbGdvcml0aG1JZGVudGlm
aWVyIGFsZ29yaXRobSwgS2V5IGtleSwgc2VxdWVuY2U8QnVmZmVyU291cmNlPiBkYXRhKTsKLSAg
ICBbQ3VzdG9tLCBSZXR1cm5zT3duUHJvbWlzZV0gUHJvbWlzZTxBcnJheUJ1ZmZlcj4gZGVjcnlw
dChBbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgS2V5IGtleSwgc2VxdWVuY2U8QnVmZmVy
U291cmNlPiBkYXRhKTsKLSAgICBbQ3VzdG9tLCBSZXR1cm5zT3duUHJvbWlzZV0gUHJvbWlzZTxB
cnJheUJ1ZmZlcj4gc2lnbihBbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgS2V5IGtleSwg
c2VxdWVuY2U8QnVmZmVyU291cmNlPiBkYXRhKTsKLSAgICBbQ3VzdG9tLCBSZXR1cm5zT3duUHJv
bWlzZV0gUHJvbWlzZTxib29sZWFuPiB2ZXJpZnkoQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0
aG0sIEtleSBrZXksIEJ1ZmZlclNvdXJjZSBzaWduYXR1cmUsIHNlcXVlbmNlPEJ1ZmZlclNvdXJj
ZT4gZGF0YSk7Ci0gICAgW0N1c3RvbSwgUmV0dXJuc093blByb21pc2VdIFByb21pc2U8QXJyYXlC
dWZmZXI+IGRpZ2VzdChBbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgc2VxdWVuY2U8QnVm
ZmVyU291cmNlPiBkYXRhKTsKLSAgICBbQ3VzdG9tLCBSZXR1cm5zT3duUHJvbWlzZV0gUHJvbWlz
ZTwoQ3J5cHRvS2V5IG9yIENyeXB0b0tleVBhaXIpPiBnZW5lcmF0ZUtleShBbGdvcml0aG1JZGVu
dGlmaWVyIGFsZ29yaXRobSwgb3B0aW9uYWwgYm9vbGVhbiBleHRyYWN0YWJsZSwgb3B0aW9uYWwg
c2VxdWVuY2U8S2V5VXNhZ2U+IGtleVVzYWdlcyk7Ci0gICAgW0N1c3RvbSwgUmV0dXJuc093blBy
b21pc2VdIFByb21pc2U8Q3J5cHRvS2V5PiBpbXBvcnRLZXkoS2V5Rm9ybWF0IGZvcm1hdCwgQnVm
ZmVyU291cmNlIGtleURhdGEsIEFsZ29yaXRobUlkZW50aWZpZXI/IGFsZ29yaXRobSwgb3B0aW9u
YWwgYm9vbGVhbiBleHRyYWN0YWJsZSwgb3B0aW9uYWwgc2VxdWVuY2U8S2V5VXNhZ2U+IGtleVVz
YWdlcyk7Ci0gICAgW0N1c3RvbSwgUmV0dXJuc093blByb21pc2VdIFByb21pc2U8QXJyYXlCdWZm
ZXI+IGV4cG9ydEtleShLZXlGb3JtYXQgZm9ybWF0LCBLZXkga2V5KTsKLSAgICBbQ3VzdG9tLCBS
ZXR1cm5zT3duUHJvbWlzZV0gUHJvbWlzZTxBcnJheUJ1ZmZlcj4gd3JhcEtleShLZXlGb3JtYXQg
Zm9ybWF0LCBLZXkga2V5LCBLZXkgd3JhcHBpbmdLZXksIEFsZ29yaXRobUlkZW50aWZpZXIgd3Jh
cEFsZ29yaXRobSk7Ci0gICAgW0N1c3RvbSwgUmV0dXJuc093blByb21pc2VdIFByb21pc2U8Q3J5
cHRvS2V5PiB1bndyYXBLZXkoS2V5Rm9ybWF0IGZvcm1hdCwgQnVmZmVyU291cmNlIHdyYXBwZWRL
ZXksIEtleSB1bndyYXBwaW5nS2V5LCBBbGdvcml0aG1JZGVudGlmaWVyIHVud3JhcEFsZ29yaXRo
bSwgQWxnb3JpdGhtSWRlbnRpZmllcj8gdW53cmFwcGVkS2V5QWxnb3JpdGhtLCBvcHRpb25hbCBi
b29sZWFuIGV4dHJhY3RhYmxlLCBvcHRpb25hbCBzZXF1ZW5jZTxLZXlVc2FnZT4ga2V5VXNhZ2Vz
KTsKLX07CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1BRVNfQ0JDLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmNwcAkocmV2aXNpb24gMjIwOTM1KQorKysg
U291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDggKzI5LDYgQEAKICNpZiBFTkFCTEUoU1VCVExFX0NS
WVBUTykKIAogI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUFlc0NiY0NmYlBhcmFtcy5oIgotI2lu
Y2x1ZGUgIkNyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0ZWQuaCIKLSNpbmNsdWRl
ICJDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXNEZXByZWNhdGVkLmgiCiAjaW5jbHVkZSAi
Q3J5cHRvQWxnb3JpdGhtQWVzS2V5UGFyYW1zLmgiCiAjaW5jbHVkZSAiQ3J5cHRvS2V5QUVTLmgi
CiAjaW5jbHVkZSAiQ3J5cHRvS2V5RGF0YU9jdGV0U2VxdWVuY2UuaCIKQEAgLTU3LDE0ICs1NSw2
IEBAIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgQ3J5cHRvQWxnb3JpdGgKICAgICByZXR1cm4g
c19pZGVudGlmaWVyOwogfQogCi1ib29sIENyeXB0b0FsZ29yaXRobUFFU19DQkM6OmtleUFsZ29y
aXRobU1hdGNoZXMoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zRGVwcmVjYXRlZCYs
IGNvbnN0IENyeXB0b0tleSYga2V5KSBjb25zdAotewotICAgIGlmIChrZXkuYWxnb3JpdGhtSWRl
bnRpZmllcigpICE9IHNfaWRlbnRpZmllcikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIEFT
U0VSVChpczxDcnlwdG9LZXlBRVM+KGtleSkpOwotICAgIHJldHVybiB0cnVlOwotfQotCiB2b2lk
IENyeXB0b0FsZ29yaXRobUFFU19DQkM6OmVuY3J5cHQoc3RkOjp1bmlxdWVfcHRyPENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnM+JiYgcGFyYW1ldGVycywgUmVmPENyeXB0b0tleT4mJiBrZXksIFZl
Y3Rvcjx1aW50OF90PiYmIHBsYWluVGV4dCwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgRXhj
ZXB0aW9uQ2FsbGJhY2smJiBleGNlcHRpb25DYWxsYmFjaywgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCwgV29ya1F1ZXVlJiB3b3JrUXVldWUpCiB7CiAgICAgQVNTRVJUKHBhcmFtZXRl
cnMpOwpAQCAtMTkwLDQ1ICsxODAsNiBAQCBFeGNlcHRpb25PcjxzaXplX3Q+IENyeXB0b0FsZ29y
aXRobUFFU19DCiAgICAgcmV0dXJuIENyeXB0b0tleUFFUzo6Z2V0S2V5TGVuZ3RoKHBhcmFtZXRl
cnMpOwogfQogCi1FeGNlcHRpb25Pcjx2b2lkPiBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjplbmNy
eXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiBwYXJhbWV0ZXJz
LCBjb25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwg
VmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNr
KQotewotICAgIGF1dG8mIGFlc0NCQ1BhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0
aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkPihwYXJhbWV0ZXJzKTsKLSAgICBpZiAoIWtleUFsZ29y
aXRobU1hdGNoZXMoYWVzQ0JDUGFyYW1ldGVycywga2V5KSkKLSAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07Ci0gICAgcmV0dXJuIHBsYXRmb3JtRW5jcnlwdChh
ZXNDQkNQYXJhbWV0ZXJzLCBkb3duY2FzdDxDcnlwdG9LZXlBRVM+KGtleSksIGRhdGEsIFdURk1v
dmUoY2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjaykpOwotfQotCi1FeGNlcHRpb25P
cjx2b2lkPiBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpkZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtl
eSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxs
YmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrKQotewotICAgIGF1dG8mIGFlc0NC
Q1BhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXNEZXByZWNh
dGVkPihwYXJhbWV0ZXJzKTsKLSAgICBpZiAoIWtleUFsZ29yaXRobU1hdGNoZXMoYWVzQ0JDUGFy
YW1ldGVycywga2V5KSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVy
cm9yIH07Ci0gICAgcmV0dXJuIHBsYXRmb3JtRGVjcnlwdChhZXNDQkNQYXJhbWV0ZXJzLCBkb3du
Y2FzdDxDcnlwdG9LZXlBRVM+KGtleSksIGRhdGEsIFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3Zl
KGZhaWx1cmVDYWxsYmFjaykpOwotfQotCi1FeGNlcHRpb25Pcjx2b2lkPiBDcnlwdG9BbGdvcml0
aG1BRVNfQ0JDOjpnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVw
cmVjYXRlZCYgcGFyYW1ldGVycywgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2VCaXRt
YXAgdXNhZ2VzLCBLZXlPcktleVBhaXJDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2sm
JiBmYWlsdXJlQ2FsbGJhY2ssIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKQotewotICAgIGF1dG8m
IGFlc1BhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXNE
ZXByZWNhdGVkPihwYXJhbWV0ZXJzKTsKLQotICAgIGF1dG8gcmVzdWx0ID0gQ3J5cHRvS2V5QUVT
OjpnZW5lcmF0ZShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0JDLCBhZXNQYXJhbWV0
ZXJzLmxlbmd0aCwgZXh0cmFjdGFibGUsIHVzYWdlcyk7Ci0gICAgaWYgKCFyZXN1bHQpIHsKLSAg
ICAgICAgZmFpbHVyZUNhbGxiYWNrKCk7Ci0gICAgICAgIHJldHVybiB7IH07Ci0gICAgfQotCi0g
ICAgY2FsbGJhY2soV1RGTW92ZShyZXN1bHQpKTsKLSAgICByZXR1cm4geyB9OwotfQotCi1FeGNl
cHRpb25Pcjx2b2lkPiBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjppbXBvcnRLZXkoY29uc3QgQ3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXlEYXRhJiBr
ZXlEYXRhLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCB1c2FnZSwgS2V5
Q2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYpCi17Ci0gICAgaWYgKCFpczxDcnlw
dG9LZXlEYXRhT2N0ZXRTZXF1ZW5jZT4oa2V5RGF0YSkpCi0gICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OwotICAgIGF1dG8mIGtleURhdGFPY3RldFNlcXVlbmNl
ID0gZG93bmNhc3Q8Q3J5cHRvS2V5RGF0YU9jdGV0U2VxdWVuY2U+KGtleURhdGEpOwotICAgIGNh
bGxiYWNrKENyeXB0b0tleUFFUzo6Y3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFF
U19DQkMsIGtleURhdGFPY3RldFNlcXVlbmNlLm9jdGV0U2VxdWVuY2UoKSwgZXh0cmFjdGFibGUs
IHVzYWdlKSk7Ci0gICAgcmV0dXJuIHsgfTsKLX0KLQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFNV
QlRMRV9DUllQVE8pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1BRVNfQ0JDLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3J5cHRv
L2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5oCShyZXZpc2lvbiAyMjA5MzUpCisr
KyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JD
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1jbGFzcyBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkOwogY2xhc3Mg
Q3J5cHRvS2V5QUVTOwogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDIGZpbmFsIDogcHVi
bGljIENyeXB0b0FsZ29yaXRobSB7CkBAIC01MSwxNiArNTAsOCBAQCBwcml2YXRlOgogICAgIHZv
aWQgZXhwb3J0S2V5KENyeXB0b0tleUZvcm1hdCwgUmVmPENyeXB0b0tleT4mJiwgS2V5RGF0YUNh
bGxiYWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYpIGZpbmFsOwogICAgIEV4Y2VwdGlvbk9yPHNp
emVfdD4gZ2V0S2V5TGVuZ3RoKGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmKSBmaW5h
bDsKIAotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVy
YXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxi
YWNrKSBmaW5hbDsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBkZWNyeXB0KGNvbnN0IENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5
cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1
cmVDYWxsYmFjaykgZmluYWw7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gZ2VuZXJhdGVLZXkoY29u
c3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBib29sIGV4dHJhY3RhYmxl
LCBDcnlwdG9LZXlVc2FnZUJpdG1hcCwgS2V5T3JLZXlQYWlyQ2FsbGJhY2smJiwgVm9pZENhbGxi
YWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgZmluYWw7Ci0g
ICAgRXhjZXB0aW9uT3I8dm9pZD4gaW1wb3J0S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5RGF0YSYsIGJvb2wgZXh0cmFjdGFibGUs
IENyeXB0b0tleVVzYWdlQml0bWFwLCBLZXlDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWls
dXJlQ2FsbGJhY2spIGZpbmFsOwotCi0gICAgYm9vbCBrZXlBbGdvcml0aG1NYXRjaGVzKGNvbnN0
IENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0ZWQmIGFsZ29yaXRobVBhcmFtZXRl
cnMsIGNvbnN0IENyeXB0b0tleSYpIGNvbnN0OwogICAgIHZvaWQgcGxhdGZvcm1FbmNyeXB0KHN0
ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiYmLCBSZWY8Q3J5cHRvS2V5
PiYmLCBWZWN0b3I8dWludDhfdD4mJiwgVmVjdG9yQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ2FsbGJh
Y2smJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFdvcmtRdWV1ZSYpOwogICAgIHZvaWQgcGxh
dGZvcm1EZWNyeXB0KHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiYm
LCBSZWY8Q3J5cHRvS2V5PiYmLCBWZWN0b3I8dWludDhfdD4mJiwgVmVjdG9yQ2FsbGJhY2smJiwg
RXhjZXB0aW9uQ2FsbGJhY2smJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFdvcmtRdWV1ZSYp
OwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHBsYXRmb3JtRW5jcnlwdChjb25zdCBDcnlwdG9BbGdv
cml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5QUVTJiwgY29uc3Qg
Q3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZh
aWx1cmVDYWxsYmFjayk7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gcGxhdGZvcm1EZWNyeXB0KGNv
bnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9L
ZXlBRVMmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9p
ZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bUFFU19LVy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmNwcAkocmV2aXNpb24gMjIwOTM1KQorKysgU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjgsNyArMjgsNiBAQAogCiAjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8p
CiAKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXNEZXByZWNhdGVkLmgi
CiAjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtQWVzS2V5UGFyYW1zLmgiCiAjaW5jbHVkZSAiQ3J5
cHRvS2V5QUVTLmgiCiAjaW5jbHVkZSAiQ3J5cHRvS2V5RGF0YU9jdGV0U2VxdWVuY2UuaCIKQEAg
LTE3Nyw0MCArMTc2LDYgQEAgRXhjZXB0aW9uT3I8c2l6ZV90PiBDcnlwdG9BbGdvcml0aG1BRVNf
SwogICAgIHJldHVybiBDcnlwdG9LZXlBRVM6OmdldEtleUxlbmd0aChwYXJhbWV0ZXJzKTsKIH0K
IAotRXhjZXB0aW9uT3I8dm9pZD4gQ3J5cHRvQWxnb3JpdGhtQUVTX0tXOjplbmNyeXB0Rm9yV3Jh
cEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENy
eXB0b0tleSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxs
YmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spCi17Ci0gICAg
aWYgKCFrZXlBbGdvcml0aG1NYXRjaGVzKGtleSkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBOb3RTdXBwb3J0ZWRFcnJvciB9OwotICAgIHJldHVybiBwbGF0Zm9ybUVuY3J5cHQoZG93bmNh
c3Q8Q3J5cHRvS2V5QUVTPihrZXkpLCBkYXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShm
YWlsdXJlQ2FsbGJhY2spKTsKLX0KLQotRXhjZXB0aW9uT3I8dm9pZD4gQ3J5cHRvQWxnb3JpdGht
QUVTX0tXOjpkZWNyeXB0Rm9yVW53cmFwS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlv
bkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZh
aWx1cmVDYWxsYmFjaykKLXsKLSAgICBpZiAoIWtleUFsZ29yaXRobU1hdGNoZXMoa2V5KSkKLSAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07Ci0gICAgcmV0dXJu
IHBsYXRmb3JtRGVjcnlwdChkb3duY2FzdDxDcnlwdG9LZXlBRVM+KGtleSksIGRhdGEsIFdURk1v
dmUoY2FsbGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjaykpOwotfQotCi1FeGNlcHRpb25P
cjx2b2lkPiBDcnlwdG9BbGdvcml0aG1BRVNfS1c6OmdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBib29sIGV4dHJhY3RhYmxl
LCBDcnlwdG9LZXlVc2FnZUJpdG1hcCB1c2FnZXMsIEtleU9yS2V5UGFpckNhbGxiYWNrJiYgY2Fs
bGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaywgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYpCi17Ci0gICAgYXV0byByZXN1bHQgPSBDcnlwdG9LZXlBRVM6OmdlbmVyYXRlKENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19LVywgZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtQWVz
S2V5R2VuUGFyYW1zRGVwcmVjYXRlZD4ocGFyYW1ldGVycykubGVuZ3RoLCBleHRyYWN0YWJsZSwg
dXNhZ2VzKTsKLSAgICBpZiAoIXJlc3VsdCkgewotICAgICAgICBmYWlsdXJlQ2FsbGJhY2soKTsK
LSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICB9Ci0KLSAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3Vs
dCkpOwotICAgIHJldHVybiB7IH07Ci19Ci0KLUV4Y2VwdGlvbk9yPHZvaWQ+IENyeXB0b0FsZ29y
aXRobUFFU19LVzo6aW1wb3J0S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXBy
ZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5RGF0YSYga2V5RGF0YSwgYm9vbCBleHRyYWN0YWJsZSwg
Q3J5cHRvS2V5VXNhZ2VCaXRtYXAgdXNhZ2UsIEtleUNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRD
YWxsYmFjayYmKQotewotICAgIGlmICghaXM8Q3J5cHRvS2V5RGF0YU9jdGV0U2VxdWVuY2U+KGtl
eURhdGEpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsK
LSAgICBjYWxsYmFjayhDcnlwdG9LZXlBRVM6OmNyZWF0ZShDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyOjpBRVNfS1csIGRvd25jYXN0PENyeXB0b0tleURhdGFPY3RldFNlcXVlbmNlPihrZXlEYXRh
KS5vY3RldFNlcXVlbmNlKCksIGV4dHJhY3RhYmxlLCB1c2FnZSkpOwotICAgIHJldHVybiB7IH07
Ci19Ci0KIH0KIAogI2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQpJbmRleDogU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
QUVTX0tXLmgJKHJldmlzaW9uIDIyMDkzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19LVy5oCSh3b3JraW5nIGNvcHkpCkBAIC01MCwxNiAr
NTAsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgdW53cmFwS2V5KFJlZjxDcnlwdG9LZXk+JiYsIFZl
Y3Rvcjx1aW50OF90PiYmLCBWZWN0b3JDYWxsYmFjayYmLCBFeGNlcHRpb25DYWxsYmFjayYmKSBm
aW5hbDsKICAgICBFeGNlcHRpb25PcjxzaXplX3Q+IGdldEtleUxlbmd0aChjb25zdCBDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzJikgZmluYWw7CiAKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBlbmNy
eXB0Rm9yV3JhcEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYs
IGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxs
YmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spIGZpbmFsOwotICAgIEV4Y2Vw
dGlvbk9yPHZvaWQ+IGRlY3J5cHRGb3JVbndyYXBLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRp
b25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNr
KSBmaW5hbDsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tl
eVVzYWdlQml0bWFwLCBLZXlPcktleVBhaXJDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWls
dXJlQ2FsbGJhY2ssIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKSBmaW5hbDsKLSAgICBFeGNlcHRp
b25Pcjx2b2lkPiBpbXBvcnRLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJl
Y2F0ZWQmLCBjb25zdCBDcnlwdG9LZXlEYXRhJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5
VXNhZ2VCaXRtYXAsIEtleUNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFj
aykgZmluYWw7Ci0KICAgICBib29sIGtleUFsZ29yaXRobU1hdGNoZXMoY29uc3QgQ3J5cHRvS2V5
JikgY29uc3Q7CiAgICAgdm9pZCBwbGF0Zm9ybVdyYXBLZXkoUmVmPENyeXB0b0tleT4mJiwgVmVj
dG9yPHVpbnQ4X3Q+JiYsIFZlY3RvckNhbGxiYWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYpOwog
ICAgIHZvaWQgcGxhdGZvcm1VbndyYXBLZXkoUmVmPENyeXB0b0tleT4mJiwgVmVjdG9yPHVpbnQ4
X3Q+JiYsIFZlY3RvckNhbGxiYWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYpOwotICAgIEV4Y2Vw
dGlvbk9yPHZvaWQ+IHBsYXRmb3JtRW5jcnlwdChjb25zdCBDcnlwdG9LZXlBRVMmLCBjb25zdCBD
cnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFp
bHVyZUNhbGxiYWNrKTsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBwbGF0Zm9ybURlY3J5cHQoY29u
c3QgQ3J5cHRvS2V5QUVTJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxi
YWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjayk7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1ITUFDLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1ITUFDLmNwcAkocmV2aXNpb24gMjIwOTM1KQorKysg
U291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSE1BQy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI5LDggKzI5LDYgQEAKICNpZiBFTkFCTEUoU1VCVExFX0NSWVBU
TykKIAogI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXMuaCIKLSNpbmNsdWRl
ICJDcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zRGVwcmVjYXRlZC5oIgotI2luY2x1ZGUgIkNy
eXB0b0FsZ29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVkLmgiCiAjaW5jbHVkZSAiQ3J5cHRvS2V5
RGF0YU9jdGV0U2VxdWVuY2UuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlITUFDLmgiCiAjaW5jbHVk
ZSA8d3RmL1ZhcmlhbnQuaD4KQEAgLTU4LDE3ICs1Niw2IEBAIENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXIgQ3J5cHRvQWxnb3JpdGgKICAgICByZXR1cm4gc19pZGVudGlmaWVyOwogfQogCi1ib29s
IENyeXB0b0FsZ29yaXRobUhNQUM6OmtleUFsZ29yaXRobU1hdGNoZXMoY29uc3QgQ3J5cHRvQWxn
b3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleSYg
a2V5KSBjb25zdAotewotICAgIGlmIChrZXkuYWxnb3JpdGhtSWRlbnRpZmllcigpICE9IHNfaWRl
bnRpZmllcikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKGRvd25jYXN0PENyeXB0
b0tleUhNQUM+KGtleSkuaGFzaEFsZ29yaXRobUlkZW50aWZpZXIoKSAhPSBwYXJhbWV0ZXJzLmhh
c2gpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiB0cnVlOwotfQotCiB2b2lk
IENyeXB0b0FsZ29yaXRobUhNQUM6OnNpZ24oc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnM+JiYsIFJlZjxDcnlwdG9LZXk+JiYga2V5LCBWZWN0b3I8dWludDhfdD4mJiBk
YXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBFeGNlcHRpb25DYWxsYmFjayYmIGV4Y2Vw
dGlvbkNhbGxiYWNrLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBXb3JrUXVldWUm
IHdvcmtRdWV1ZSkKIHsKICAgICBwbGF0Zm9ybVNpZ24oV1RGTW92ZShrZXkpLCBXVEZNb3ZlKGRh
dGEpLCBXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShleGNlcHRpb25DYWxsYmFjayksIGNvbnRl
eHQsIHdvcmtRdWV1ZSk7CkBAIC0yMDEsNDIgKzE4OCw2IEBAIEV4Y2VwdGlvbk9yPHNpemVfdD4g
Q3J5cHRvQWxnb3JpdGhtSE1BQzoKICAgICByZXR1cm4gQ3J5cHRvS2V5SE1BQzo6Z2V0S2V5TGVu
Z3RoKHBhcmFtZXRlcnMpOwogfQogCi1FeGNlcHRpb25Pcjx2b2lkPiBDcnlwdG9BbGdvcml0aG1I
TUFDOjpzaWduKGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiBwYXJh
bWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYg
ZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNh
bGxiYWNrKQotewotICAgIGF1dG8mIGhtYWNQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxn
b3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQ+KHBhcmFtZXRlcnMpOwotICAgIGlmICgha2V5QWxn
b3JpdGhtTWF0Y2hlcyhobWFjUGFyYW1ldGVycywga2V5KSkKLSAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07Ci0gICAgcmV0dXJuIHBsYXRmb3JtU2lnbihobWFj
UGFyYW1ldGVycywgZG93bmNhc3Q8Q3J5cHRvS2V5SE1BQz4oa2V5KSwgZGF0YSwgV1RGTW92ZShj
YWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSk7Ci19Ci0KLUV4Y2VwdGlvbk9yPHZv
aWQ+IENyeXB0b0FsZ29yaXRobUhNQUM6OnZlcmlmeShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzRGVwcmVjYXRlZCYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JiBrZXksIGNvbnN0
IENyeXB0b09wZXJhdGlvbkRhdGEmIGV4cGVjdGVkU2lnbmF0dXJlLCBjb25zdCBDcnlwdG9PcGVy
YXRpb25EYXRhJiBkYXRhLCBCb29sQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYg
ZmFpbHVyZUNhbGxiYWNrKQotewotICAgIGF1dG8mIGhtYWNQYXJhbWV0ZXJzID0gZG93bmNhc3Q8
Q3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQ+KHBhcmFtZXRlcnMpOwotICAgIGlm
ICgha2V5QWxnb3JpdGhtTWF0Y2hlcyhobWFjUGFyYW1ldGVycywga2V5KSkKLSAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07Ci0gICAgcmV0dXJuIHBsYXRmb3Jt
VmVyaWZ5KGhtYWNQYXJhbWV0ZXJzLCBkb3duY2FzdDxDcnlwdG9LZXlITUFDPihrZXkpLCBleHBl
Y3RlZFNpZ25hdHVyZSwgZGF0YSwgV1RGTW92ZShjYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNh
bGxiYWNrKSk7Ci19Ci0KLUV4Y2VwdGlvbk9yPHZvaWQ+IENyeXB0b0FsZ29yaXRobUhNQUM6Omdl
bmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiBwYXJh
bWV0ZXJzLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCB1c2FnZXMsIEtl
eU9yS2V5UGFpckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxs
YmFjaywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpCi17Ci0gICAgYXV0byYgaG1hY1BhcmFtZXRl
cnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zRGVwcmVjYXRlZD4ocGFy
YW1ldGVycyk7Ci0gICAgYXV0byByZXN1bHQgPSBDcnlwdG9LZXlITUFDOjpnZW5lcmF0ZShobWFj
UGFyYW1ldGVycy5oYXNMZW5ndGggPyBobWFjUGFyYW1ldGVycy5sZW5ndGggOiAwLCBobWFjUGFy
YW1ldGVycy5oYXNoLCBleHRyYWN0YWJsZSwgdXNhZ2VzKTsKLSAgICBpZiAoIXJlc3VsdCkgewot
ICAgICAgICBmYWlsdXJlQ2FsbGJhY2soKTsKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICB9Ci0g
ICAgY2FsbGJhY2soV1RGTW92ZShyZXN1bHQpKTsKLSAgICByZXR1cm4geyB9OwotfQotCi1FeGNl
cHRpb25Pcjx2b2lkPiBDcnlwdG9BbGdvcml0aG1ITUFDOjppbXBvcnRLZXkoY29uc3QgQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tl
eURhdGEmIGtleURhdGEsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlQml0bWFwIHVz
YWdlLCBLZXlDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJikKLXsKLSAgICBpZiAo
IWlzPENyeXB0b0tleURhdGFPY3RldFNlcXVlbmNlPihrZXlEYXRhKSkKLSAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07Ci0gICAgY2FsbGJhY2soQ3J5cHRvS2V5
SE1BQzo6Y3JlYXRlKGRvd25jYXN0PENyeXB0b0tleURhdGFPY3RldFNlcXVlbmNlPihrZXlEYXRh
KS5vY3RldFNlcXVlbmNlKCksIGRvd25jYXN0PENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNEZXBy
ZWNhdGVkPihwYXJhbWV0ZXJzKS5oYXNoLCBleHRyYWN0YWJsZSwgdXNhZ2UpKTsKLSAgICByZXR1
cm4geyB9OwotfQotCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1ITUFDLmgJKHJldmlzaW9uIDIyMDkzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyAr
MzEsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENyeXB0b0FsZ29yaXRobUht
YWNQYXJhbXNEZXByZWNhdGVkOwogY2xhc3MgQ3J5cHRvS2V5SE1BQzsKIAogY2xhc3MgQ3J5cHRv
QWxnb3JpdGhtSE1BQyBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewpAQCAtNTEsMTcg
KzUwLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGV4cG9ydEtleShDcnlwdG9LZXlGb3JtYXQsIFJl
ZjxDcnlwdG9LZXk+JiYsIEtleURhdGFDYWxsYmFjayYmLCBFeGNlcHRpb25DYWxsYmFjayYmKSBm
aW5hbDsKICAgICBFeGNlcHRpb25PcjxzaXplX3Q+IGdldEtleUxlbmd0aChjb25zdCBDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzJikgZmluYWw7CiAKLSAgICAvLyBUaGUgZm9sbG93aW5nIHdpbGwg
YmUgZGVwcmVjYXRlZC4KLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBzaWduKGNvbnN0IENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5
cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1
cmVDYWxsYmFjaykgZmluYWw7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gdmVyaWZ5KGNvbnN0IENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29u
c3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgc2lnbmF0dXJlLCBjb25zdCBDcnlwdG9PcGVyYXRpb25E
YXRhJiwgQm9vbENhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaykgZmlu
YWw7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gZ2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2Fn
ZUJpdG1hcCwgS2V5T3JLZXlQYWlyQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNh
bGxiYWNrLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgZmluYWw7Ci0gICAgRXhjZXB0aW9uT3I8
dm9pZD4gaW1wb3J0S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVk
JiwgY29uc3QgQ3J5cHRvS2V5RGF0YSYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdl
Qml0bWFwLCBLZXlDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spIGZp
bmFsOwotCi0gICAgYm9vbCBrZXlBbGdvcml0aG1NYXRjaGVzKGNvbnN0IENyeXB0b0FsZ29yaXRo
bUhtYWNQYXJhbXNEZXByZWNhdGVkJiBhbGdvcml0aG1QYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9L
ZXkmKSBjb25zdDsKICAgICB2b2lkIHBsYXRmb3JtU2lnbihSZWY8Q3J5cHRvS2V5PiYmLCBWZWN0
b3I8dWludDhfdD4mJiwgVmVjdG9yQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ2FsbGJhY2smJiwgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYsIFdvcmtRdWV1ZSYpOwogICAgIHZvaWQgcGxhdGZvcm1WZXJp
ZnkoUmVmPENyeXB0b0tleT4mJiwgVmVjdG9yPHVpbnQ4X3Q+JiYgc2lnbmF0dXJlLCBWZWN0b3I8
dWludDhfdD4mJiwgQm9vbENhbGxiYWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYsIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmLCBXb3JrUXVldWUmKTsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBwbGF0
Zm9ybVNpZ24oY29uc3QgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQmLCBjb25z
dCBDcnlwdG9LZXlITUFDJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxi
YWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjayk7Ci0gICAgRXhjZXB0aW9uT3I8
dm9pZD4gcGxhdGZvcm1WZXJpZnkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJl
Y2F0ZWQmLCBjb25zdCBDcnlwdG9LZXlITUFDJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYg
c2lnbmF0dXJlLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgQm9vbENhbGxiYWNrJiYsIFZv
aWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjayk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1SU0FFU19QS0NTMV92MV81LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81LmNwcAkocmV2aXNp
b24gMjIwOTM1KQorKysgU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDggKzI5LDYg
QEAKICNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKIAogI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRo
bVJzYUtleUdlblBhcmFtcy5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJzYUtleUdlblBh
cmFtc0RlcHJlY2F0ZWQuaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNX
aXRoSGFzaERlcHJlY2F0ZWQuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50
cy5oIgogI2luY2x1ZGUgIkNyeXB0b0tleVBhaXIuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlSU0Eu
aCIKQEAgLTE5MSw0MyArMTg5LDYgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92
MV81OjpleAogICAgIGNhbGxiYWNrKGZvcm1hdCwgV1RGTW92ZShyZXN1bHQpKTsKIH0KIAotRXhj
ZXB0aW9uT3I8dm9pZD4gQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNTo6ZW5jcnlwdChj
b25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tl
eSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYm
IGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spCi17Ci0gICAgaWYgKCFr
ZXlBbGdvcml0aG1NYXRjaGVzKGtleSkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RT
dXBwb3J0ZWRFcnJvciB9OwotICAgIHJldHVybiBwbGF0Zm9ybUVuY3J5cHQoZG93bmNhc3Q8Q3J5
cHRvS2V5UlNBPihrZXkpLCBkYXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShmYWlsdXJl
Q2FsbGJhY2spKTsKLX0KLQotRXhjZXB0aW9uT3I8dm9pZD4gQ3J5cHRvQWxnb3JpdGhtUlNBRVNf
UEtDUzFfdjFfNTo6ZGVjcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVj
YXRlZCYsIGNvbnN0IENyeXB0b0tleSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBk
YXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2Fs
bGJhY2spCi17Ci0gICAgaWYgKCFrZXlBbGdvcml0aG1NYXRjaGVzKGtleSkpCi0gICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OwotICAgIHJldHVybiBwbGF0Zm9y
bURlY3J5cHQoZG93bmNhc3Q8Q3J5cHRvS2V5UlNBPihrZXkpLCBkYXRhLCBXVEZNb3ZlKGNhbGxi
YWNrKSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJhY2spKTsKLX0KLQotRXhjZXB0aW9uT3I8dm9pZD4g
Q3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNTo6Z2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGJvb2wgZXh0cmFjdGFi
bGUsIENyeXB0b0tleVVzYWdlQml0bWFwIHVzYWdlcywgS2V5T3JLZXlQYWlyQ2FsbGJhY2smJiBj
YWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0KQotewotICAgIGF1dG8mIHJzYVBhcmFtZXRlcnMgPSBkb3duY2FzdDxD
cnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXNEZXByZWNhdGVkPihwYXJhbWV0ZXJzKTsKLSAg
ICBhdXRvIGtleVBhaXJDYWxsYmFjayA9IFtjYXB0dXJlZENhbGxiYWNrID0gV1RGTW92ZShjYWxs
YmFjayldKENyeXB0b0tleVBhaXImJiBwYWlyKSB7Ci0gICAgICAgIGNhcHR1cmVkQ2FsbGJhY2so
V1RGTW92ZShwYWlyKSk7Ci0gICAgfTsKLSAgICBDcnlwdG9LZXlSU0E6OmdlbmVyYXRlUGFpcihD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FFU19QS0NTMV92MV81LCByc2FQYXJhbWV0ZXJz
Lmhhc2gsIHJzYVBhcmFtZXRlcnMuaGFzSGFzaCwgcnNhUGFyYW1ldGVycy5tb2R1bHVzTGVuZ3Ro
LCByc2FQYXJhbWV0ZXJzLnB1YmxpY0V4cG9uZW50LCBleHRyYWN0YWJsZSwgdXNhZ2VzLCBXVEZN
b3ZlKGtleVBhaXJDYWxsYmFjayksIFdURk1vdmUoZmFpbHVyZUNhbGxiYWNrKSwgJmNvbnRleHQp
OwotICAgIHJldHVybiB7IH07Ci19Ci0KLUV4Y2VwdGlvbk9yPHZvaWQ+IENyeXB0b0FsZ29yaXRo
bVJTQUVTX1BLQ1MxX3YxXzU6OmltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0
ZXJzRGVwcmVjYXRlZCYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5RGF0YSYga2V5RGF0YSwg
Ym9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2VCaXRtYXAgdXNhZ2UsIEtleUNhbGxiYWNr
JiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaykKLXsKLSAgICBhdXRv
JiByc2FQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0
aEhhc2hEZXByZWNhdGVkPihwYXJhbWV0ZXJzKTsKLSAgICBhdXRvJiByc2FDb21wb25lbnRzID0g
ZG93bmNhc3Q8Q3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHM+KGtleURhdGEpOwotICAgIGF1dG8g
cmVzdWx0ID0gQ3J5cHRvS2V5UlNBOjpjcmVhdGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6
UlNBRVNfUEtDUzFfdjFfNSwgcnNhUGFyYW1ldGVycy5oYXNoLCByc2FQYXJhbWV0ZXJzLmhhc0hh
c2gsIHJzYUNvbXBvbmVudHMsIGV4dHJhY3RhYmxlLCB1c2FnZSk7Ci0gICAgaWYgKCFyZXN1bHQp
IHsKLSAgICAgICAgZmFpbHVyZUNhbGxiYWNrKCk7Ci0gICAgICAgIHJldHVybiB7IH07Ci0gICAg
fQotICAgIGNhbGxiYWNrKCpyZXN1bHQpOwotICAgIHJldHVybiB7IH07Ci19Ci0KIH0KIAogI2Vu
ZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQpJbmRleDogU291cmNlL1dlYkNvcmUvY3J5cHRv
L2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQUVT
X1BLQ1MxX3YxXzUuaAkocmV2aXNpb24gMjIwOTM1KQorKysgU291cmNlL1dlYkNvcmUvY3J5cHRv
L2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5oCSh3b3JraW5nIGNv
cHkpCkBAIC01MCwxNiArNTAsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgaW1wb3J0S2V5KENyeXB0
b0tleUZvcm1hdCwgS2V5RGF0YSYmLCBjb25zdCBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVycz4mJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2VCaXRtYXAs
IEtleUNhbGxiYWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgZXhw
b3J0S2V5KENyeXB0b0tleUZvcm1hdCwgUmVmPENyeXB0b0tleT4mJiwgS2V5RGF0YUNhbGxiYWNr
JiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYpIGZpbmFsOwogCi0gICAgRXhjZXB0aW9uT3I8dm9pZD4g
ZW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0
IENyeXB0b0tleSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYm
LCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spIGZpbmFsOwotICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IGRlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQm
LCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2Fs
bGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrKSBmaW5hbDsKLSAgICBFeGNl
cHRpb25Pcjx2b2lkPiBnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
RGVwcmVjYXRlZCYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlQml0bWFwLCBLZXlP
cktleVBhaXJDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2ssIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmKSBmaW5hbDsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBpbXBvcnRL
ZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlw
dG9LZXlEYXRhJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2VCaXRtYXAsIEtleUNh
bGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaykgZmluYWw7Ci0KICAgICBi
b29sIGtleUFsZ29yaXRobU1hdGNoZXMoY29uc3QgQ3J5cHRvS2V5JikgY29uc3Q7CiAgICAgdm9p
ZCBwbGF0Zm9ybUVuY3J5cHQoUmVmPENyeXB0b0tleT4mJiwgVmVjdG9yPHVpbnQ4X3Q+JiYsIFZl
Y3RvckNhbGxiYWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmLCBXb3JrUXVldWUmKTsKICAgICB2b2lkIHBsYXRmb3JtRGVjcnlwdChSZWY8Q3J5cHRvS2V5
PiYmLCBWZWN0b3I8dWludDhfdD4mJiwgVmVjdG9yQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ2FsbGJh
Y2smJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFdvcmtRdWV1ZSYpOwotICAgIEV4Y2VwdGlv
bk9yPHZvaWQ+IHBsYXRmb3JtRW5jcnlwdChjb25zdCBDcnlwdG9LZXlSU0EmLCBjb25zdCBDcnlw
dG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVy
ZUNhbGxiYWNrKTsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBwbGF0Zm9ybURlY3J5cHQoY29uc3Qg
Q3J5cHRvS2V5UlNBJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNr
JiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjayk7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuY3Bw
CShyZXZpc2lvbiAyMjA5MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMw
LDkgKzMwLDYgQEAKIAogI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJzYUhhc2hlZEltcG9ydFBh
cmFtcy5oIgogI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJzYUhhc2hlZEtleUdlblBhcmFtcy5o
IgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtc0RlcHJlY2F0ZWQuaCIK
LSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERlcHJlY2F0ZWQu
aCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNEZXByZWNhdGVkLmgiCiAj
aW5jbHVkZSAiQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMuaCIKICNpbmNsdWRlICJDcnlwdG9L
ZXlQYWlyLmgiCiAjaW5jbHVkZSAiQ3J5cHRvS2V5UlNBLmgiCkBAIC01NiwxOCArNTMsNiBAQCBD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIENyeXB0b0FsZ29yaXRoCiAgICAgcmV0dXJuIHNfaWRl
bnRpZmllcjsKIH0KIAotYm9vbCBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6a2V5
QWxnb3JpdGhtTWF0Y2hlcyhjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNEZXByZWNh
dGVkJiBhbGdvcml0aG1QYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtleSkgY29uc3QKLXsK
LSAgICBpZiAoa2V5LmFsZ29yaXRobUlkZW50aWZpZXIoKSAhPSBzX2lkZW50aWZpZXIpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLQotICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIga2V5SGFz
aDsKLSAgICBpZiAoZG93bmNhc3Q8Q3J5cHRvS2V5UlNBPihrZXkpLmlzUmVzdHJpY3RlZFRvSGFz
aChrZXlIYXNoKSAmJiBrZXlIYXNoICE9IGFsZ29yaXRobVBhcmFtZXRlcnMuaGFzaCkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIHZvaWQgQ3J5cHRvQWxn
b3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OnNpZ24oc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnM+JiYsIFJlZjxDcnlwdG9LZXk+JiYga2V5LCBWZWN0b3I8dWludDhfdD4m
JiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBFeGNlcHRpb25DYWxsYmFjayYmIGV4
Y2VwdGlvbkNhbGxiYWNrLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBXb3JrUXVl
dWUmIHdvcmtRdWV1ZSkKIHsKICAgICBpZiAoa2V5LT50eXBlKCkgIT0gQ3J5cHRvS2V5VHlwZTo6
UHJpdmF0ZSkgewpAQCAtMjQ0LDQ1ICsyMjksNiBAQCB2b2lkIENyeXB0b0FsZ29yaXRobVJTQVNT
QV9QS0NTMV92MV81OjplCiAgICAgY2FsbGJhY2soZm9ybWF0LCBXVEZNb3ZlKHJlc3VsdCkpOwog
fQogCi1FeGNlcHRpb25Pcjx2b2lkPiBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6
c2lnbihjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYgcGFyYW1ldGVy
cywgY29uc3QgQ3J5cHRvS2V5JiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEs
IFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFj
aykKLXsKLSAgICBhdXRvJiByc2FTU0FQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3Jp
dGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZD4ocGFyYW1ldGVycyk7Ci0gICAgaWYgKCFrZXlBbGdv
cml0aG1NYXRjaGVzKHJzYVNTQVBhcmFtZXRlcnMsIGtleSkpCi0gICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OwotICAgIHJldHVybiBwbGF0Zm9ybVNpZ24ocnNh
U1NBUGFyYW1ldGVycywgZG93bmNhc3Q8Q3J5cHRvS2V5UlNBPihrZXkpLCBkYXRhLCBXVEZNb3Zl
KGNhbGxiYWNrKSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJhY2spKTsKLX0KLQotRXhjZXB0aW9uT3I8
dm9pZD4gQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OnZlcmlmeShjb25zdCBDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRv
S2V5JiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIHNpZ25hdHVyZSwgY29uc3QgQ3J5
cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgQm9vbENhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxs
YmFjayYmIGZhaWx1cmVDYWxsYmFjaykKLXsKLSAgICBhdXRvJiByc2FTU0FQYXJhbWV0ZXJzID0g
ZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZD4ocGFyYW1ldGVy
cyk7Ci0gICAgaWYgKCFrZXlBbGdvcml0aG1NYXRjaGVzKHJzYVNTQVBhcmFtZXRlcnMsIGtleSkp
Ci0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OwotICAgIHJl
dHVybiBwbGF0Zm9ybVZlcmlmeShyc2FTU0FQYXJhbWV0ZXJzLCAgZG93bmNhc3Q8Q3J5cHRvS2V5
UlNBPihrZXkpLCBzaWduYXR1cmUsIGRhdGEsIFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGZh
aWx1cmVDYWxsYmFjaykpOwotfQotCi1FeGNlcHRpb25Pcjx2b2lkPiBDcnlwdG9BbGdvcml0aG1S
U0FTU0FfUEtDUzFfdjFfNTo6Z2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVyc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVz
YWdlQml0bWFwIHVzYWdlcywgS2V5T3JLZXlQYWlyQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENh
bGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
KQotewotICAgIGF1dG8mIHJzYVBhcmFtZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1S
c2FLZXlHZW5QYXJhbXNEZXByZWNhdGVkPihwYXJhbWV0ZXJzKTsKLSAgICBhdXRvIGtleVBhaXJD
YWxsYmFjayA9IFtjYXB0dXJlZENhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKENyeXB0b0tl
eVBhaXImJiBwYWlyKSB7Ci0gICAgICAgIGNhcHR1cmVkQ2FsbGJhY2soV1RGTW92ZShwYWlyKSk7
Ci0gICAgfTsKLSAgICBDcnlwdG9LZXlSU0E6OmdlbmVyYXRlUGFpcihDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyOjpSU0FTU0FfUEtDUzFfdjFfNSwgcnNhUGFyYW1ldGVycy5oYXNoLCByc2FQYXJh
bWV0ZXJzLmhhc0hhc2gsIHJzYVBhcmFtZXRlcnMubW9kdWx1c0xlbmd0aCwgcnNhUGFyYW1ldGVy
cy5wdWJsaWNFeHBvbmVudCwgZXh0cmFjdGFibGUsIHVzYWdlcywgV1RGTW92ZShrZXlQYWlyQ2Fs
bGJhY2spLCBXVEZNb3ZlKGZhaWx1cmVDYWxsYmFjayksICZjb250ZXh0KTsKLSAgICByZXR1cm4g
eyB9OwotfQotCi1FeGNlcHRpb25Pcjx2b2lkPiBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFf
djFfNTo6aW1wb3J0S2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVk
JiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlEYXRhJiBrZXlEYXRhLCBib29sIGV4dHJhY3Rh
YmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCB1c2FnZSwgS2V5Q2FsbGJhY2smJiBjYWxsYmFjaywg
Vm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrKQotewotICAgIGF1dG8mIHJzYUtleVBhcmFt
ZXRlcnMgPSBkb3duY2FzdDxDcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERlcHJl
Y2F0ZWQ+KHBhcmFtZXRlcnMpOwotICAgIGF1dG8mIHJzYUNvbXBvbmVudHMgPSBkb3duY2FzdDxD
cnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cz4oa2V5RGF0YSk7Ci0gICAgYXV0byByZXN1bHQgPSBD
cnlwdG9LZXlSU0E6OmNyZWF0ZShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FTU0FfUEtD
UzFfdjFfNSwgcnNhS2V5UGFyYW1ldGVycy5oYXNoLCByc2FLZXlQYXJhbWV0ZXJzLmhhc0hhc2gs
IHJzYUNvbXBvbmVudHMsIGV4dHJhY3RhYmxlLCB1c2FnZSk7Ci0gICAgaWYgKCFyZXN1bHQpIHsK
LSAgICAgICAgZmFpbHVyZUNhbGxiYWNrKCk7Ci0gICAgICAgIHJldHVybiB7IH07Ci0gICAgfQot
ICAgIGNhbGxiYWNrKCpyZXN1bHQpOwotICAgIHJldHVybiB7IH07Ci19Ci0KIH0KIAogI2VuZGlm
IC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQpJbmRleDogU291cmNlL1dlYkNvcmUvY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FTU0Ff
UEtDUzFfdjFfNS5oCShyZXZpc2lvbiAyMjA5MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zMSw3ICszMSw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQ3J5
cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZDsKIGNsYXNzIENyeXB0b0tleVJTQTsK
IAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUgZmluYWwgOiBwdWJsaWMg
Q3J5cHRvQWxnb3JpdGhtIHsKQEAgLTUwLDE2ICs0OSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBp
bXBvcnRLZXkoQ3J5cHRvS2V5Rm9ybWF0LCBLZXlEYXRhJiYsIGNvbnN0IHN0ZDo6dW5pcXVlX3B0
cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiYmLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9L
ZXlVc2FnZUJpdG1hcCwgS2V5Q2FsbGJhY2smJiwgRXhjZXB0aW9uQ2FsbGJhY2smJikgZmluYWw7
CiAgICAgdm9pZCBleHBvcnRLZXkoQ3J5cHRvS2V5Rm9ybWF0LCBSZWY8Q3J5cHRvS2V5PiYmLCBL
ZXlEYXRhQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ2FsbGJhY2smJikgZmluYWw7CiAKLSAgICBFeGNl
cHRpb25Pcjx2b2lkPiBzaWduKGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNh
dGVkJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3Rv
ckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaykgZmluYWw7Ci0gICAg
RXhjZXB0aW9uT3I8dm9pZD4gdmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNE
ZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYg
c2lnbmF0dXJlLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgQm9vbENhbGxiYWNrJiYsIFZv
aWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaykgZmluYWw7Ci0gICAgRXhjZXB0aW9uT3I8dm9p
ZD4gZ2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQm
LCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCwgS2V5T3JLZXlQYWlyQ2Fs
bGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0JikgZmluYWw7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gaW1wb3J0S2V5KGNvbnN0IENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5RGF0YSYs
IGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlQml0bWFwLCBLZXlDYWxsYmFjayYmLCBW
b2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spIGZpbmFsOwotCi0gICAgYm9vbCBrZXlBbGdv
cml0aG1NYXRjaGVzKGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc0RlcHJlY2F0ZWQm
IGFsZ29yaXRobVBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleSYpIGNvbnN0OwogICAgIHZvaWQg
cGxhdGZvcm1TaWduKFJlZjxDcnlwdG9LZXk+JiYsIFZlY3Rvcjx1aW50OF90PiYmLCBWZWN0b3JD
YWxsYmFjayYmLCBFeGNlcHRpb25DYWxsYmFjayYmLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwg
V29ya1F1ZXVlJik7CiAgICAgdm9pZCBwbGF0Zm9ybVZlcmlmeShSZWY8Q3J5cHRvS2V5PiYmLCBW
ZWN0b3I8dWludDhfdD4mJiBzaWduYXR1cmUsIFZlY3Rvcjx1aW50OF90PiYmLCBCb29sQ2FsbGJh
Y2smJiwgRXhjZXB0aW9uQ2FsbGJhY2smJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFdvcmtR
dWV1ZSYpOwotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHBsYXRmb3JtU2lnbihjb25zdCBDcnlwdG9B
bGdvcml0aG1Sc2FTc2FQYXJhbXNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5UlNBJiwgY29u
c3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYm
IGZhaWx1cmVDYWxsYmFjayk7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gcGxhdGZvcm1WZXJpZnko
Y29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0
b0tleVJTQSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIHNpZ25hdHVyZSwgY29uc3QgQ3J5
cHRvT3BlcmF0aW9uRGF0YSYsIEJvb2xDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJl
Q2FsbGJhY2spOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dl
YkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVAuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bVJTQV9PQUVQLmNwcAkocmV2aXNpb24gMjIwOTM1KQorKysgU291cmNlL1dlYkNvcmUvY3J5cHRv
L2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVAuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMCw5ICszMCw2IEBACiAKICNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FIYXNoZWRJbXBv
cnRQYXJhbXMuaCIKICNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FIYXNoZWRLZXlHZW5QYXJh
bXMuaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXNEZXByZWNhdGVk
LmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hEZXByZWNh
dGVkLmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQu
aCIKICNpbmNsdWRlICJDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cy5oIgogI2luY2x1ZGUgIkNy
eXB0b0tleVBhaXIuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlSU0EuaCIKQEAgLTU2LDE4ICs1Myw2
IEBAIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgQ3J5cHRvQWxnb3JpdGgKICAgICByZXR1cm4g
c19pZGVudGlmaWVyOwogfQogCi1ib29sIENyeXB0b0FsZ29yaXRobVJTQV9PQUVQOjprZXlBbGdv
cml0aG1NYXRjaGVzKGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVk
JiBhbGdvcml0aG1QYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtleSkgY29uc3QKLXsKLSAg
ICBpZiAoa2V5LmFsZ29yaXRobUlkZW50aWZpZXIoKSAhPSBzX2lkZW50aWZpZXIpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLQotICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIga2V5SGFzaDsK
LSAgICBpZiAoZG93bmNhc3Q8Q3J5cHRvS2V5UlNBPihrZXkpLmlzUmVzdHJpY3RlZFRvSGFzaChr
ZXlIYXNoKSAmJiBrZXlIYXNoICE9IGFsZ29yaXRobVBhcmFtZXRlcnMuaGFzaCkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIHZvaWQgQ3J5cHRvQWxnb3Jp
dGhtUlNBX09BRVA6OmVuY3J5cHQoc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnM+JiYgcGFyYW1ldGVycywgUmVmPENyeXB0b0tleT4mJiBrZXksIFZlY3Rvcjx1aW50OF90
PiYmIHBsYWluVGV4dCwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgRXhjZXB0aW9uQ2FsbGJh
Y2smJiBleGNlcHRpb25DYWxsYmFjaywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwg
V29ya1F1ZXVlJiB3b3JrUXVldWUpCiB7CiAgICAgQVNTRVJUKHBhcmFtZXRlcnMpOwpAQCAtMjYw
LDQ1ICsyNDUsNiBAQCB2b2lkIENyeXB0b0FsZ29yaXRobVJTQV9PQUVQOjpleHBvcnRLZXkoCiAg
ICAgY2FsbGJhY2soZm9ybWF0LCBXVEZNb3ZlKHJlc3VsdCkpOwogfQogCi1FeGNlcHRpb25Pcjx2
b2lkPiBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6ZW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5JiBrZXks
IGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJh
Y2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaykKLXsKLSAgICBhdXRvJiByc2FPQUVQ
UGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNh
dGVkPihwYXJhbWV0ZXJzKTsKLSAgICBpZiAoIWtleUFsZ29yaXRobU1hdGNoZXMocnNhT0FFUFBh
cmFtZXRlcnMsIGtleSkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRF
cnJvciB9OwotICAgIHJldHVybiBwbGF0Zm9ybUVuY3J5cHQocnNhT0FFUFBhcmFtZXRlcnMsIGRv
d25jYXN0PENyeXB0b0tleVJTQT4oa2V5KSwgZGF0YSwgV1RGTW92ZShjYWxsYmFjayksIFdURk1v
dmUoZmFpbHVyZUNhbGxiYWNrKSk7Ci19Ci0KLUV4Y2VwdGlvbk9yPHZvaWQ+IENyeXB0b0FsZ29y
aXRobVJTQV9PQUVQOjpkZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXBy
ZWNhdGVkJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgQ3J5cHRvT3Bl
cmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNr
JiYgZmFpbHVyZUNhbGxiYWNrKQotewotICAgIGF1dG8mIHJzYU9BRVBQYXJhbWV0ZXJzID0gZG93
bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQ+KHBhcmFtZXRlcnMp
OwotICAgIGlmICgha2V5QWxnb3JpdGhtTWF0Y2hlcyhyc2FPQUVQUGFyYW1ldGVycywga2V5KSkK
LSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07Ci0gICAgcmV0
dXJuIHBsYXRmb3JtRGVjcnlwdChyc2FPQUVQUGFyYW1ldGVycywgZG93bmNhc3Q8Q3J5cHRvS2V5
UlNBPihrZXkpLCBkYXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJh
Y2spKTsKLX0KLQotRXhjZXB0aW9uT3I8dm9pZD4gQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVA6Omdl
bmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiBwYXJh
bWV0ZXJzLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCB1c2FnZXMsIEtl
eU9yS2V5UGFpckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxs
YmFjaywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKLXsKLSAgICBhdXRvJiByc2FQ
YXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zRGVwcmVj
YXRlZD4ocGFyYW1ldGVycyk7Ci0gICAgYXV0byBrZXlQYWlyQ2FsbGJhY2sgPSBbY2FwdHVyZWRD
YWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShDcnlwdG9LZXlQYWlyJiYgcGFpcikgewotICAg
ICAgICBjYXB0dXJlZENhbGxiYWNrKFdURk1vdmUocGFpcikpOwotICAgIH07Ci0gICAgQ3J5cHRv
S2V5UlNBOjpnZW5lcmF0ZVBhaXIoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBX09BRVAs
IHJzYVBhcmFtZXRlcnMuaGFzaCwgcnNhUGFyYW1ldGVycy5oYXNIYXNoLCByc2FQYXJhbWV0ZXJz
Lm1vZHVsdXNMZW5ndGgsIHJzYVBhcmFtZXRlcnMucHVibGljRXhwb25lbnQsIGV4dHJhY3RhYmxl
LCB1c2FnZXMsIFdURk1vdmUoa2V5UGFpckNhbGxiYWNrKSwgV1RGTW92ZShmYWlsdXJlQ2FsbGJh
Y2spLCAmY29udGV4dCk7Ci0gICAgcmV0dXJuIHsgfTsKLX0KLQotRXhjZXB0aW9uT3I8dm9pZD4g
Q3J5cHRvQWxnb3JpdGhtUlNBX09BRVA6OmltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1Q
YXJhbWV0ZXJzRGVwcmVjYXRlZCYgcGFyYW1ldGVycywgY29uc3QgQ3J5cHRvS2V5RGF0YSYga2V5
RGF0YSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2VCaXRtYXAgdXNhZ2UsIEtleUNh
bGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaykKLXsKLSAg
ICBhdXRvJiByc2FLZXlQYXJhbWV0ZXJzID0gZG93bmNhc3Q8Q3J5cHRvQWxnb3JpdGhtUnNhS2V5
UGFyYW1zV2l0aEhhc2hEZXByZWNhdGVkPihwYXJhbWV0ZXJzKTsKLSAgICBhdXRvJiByc2FDb21w
b25lbnRzID0gZG93bmNhc3Q8Q3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHM+KGtleURhdGEpOwot
ICAgIGF1dG8gcmVzdWx0ID0gQ3J5cHRvS2V5UlNBOjpjcmVhdGUoQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllcjo6UlNBX09BRVAsIHJzYUtleVBhcmFtZXRlcnMuaGFzaCwgcnNhS2V5UGFyYW1ldGVy
cy5oYXNIYXNoLCByc2FDb21wb25lbnRzLCBleHRyYWN0YWJsZSwgdXNhZ2UpOwotICAgIGlmICgh
cmVzdWx0KSB7Ci0gICAgICAgIGZhaWx1cmVDYWxsYmFjaygpOwotICAgICAgICByZXR1cm4geyB9
OwotICAgIH0KLSAgICBjYWxsYmFjaygqcmVzdWx0KTsKLSAgICByZXR1cm4geyB9OwotfQotCiB9
CiAKICNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBX09B
RVAuaAkocmV2aXNpb24gMjIwOTM1KQorKysgU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVAuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEs
NiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENyeXB0b0FsZ29yaXRobVJzYU9h
ZXBQYXJhbXNEZXByZWNhdGVkOwogY2xhc3MgQ3J5cHRvS2V5UlNBOwogCiBjbGFzcyBDcnlwdG9B
bGdvcml0aG1SU0FfT0FFUCBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewpAQCAtNTAs
MTYgKzQ5LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGltcG9ydEtleShDcnlwdG9LZXlGb3JtYXQs
IEtleURhdGEmJiwgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnM+JiYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlQml0bWFwLCBLZXlDYWxsYmFj
ayYmLCBFeGNlcHRpb25DYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGV4cG9ydEtleShDcnlw
dG9LZXlGb3JtYXQsIFJlZjxDcnlwdG9LZXk+JiYsIEtleURhdGFDYWxsYmFjayYmLCBFeGNlcHRp
b25DYWxsYmFjayYmKSBmaW5hbDsKIAotICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGVuY3J5cHQoY29u
c3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9LZXkm
LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxi
YWNrJiYgZmFpbHVyZUNhbGxiYWNrKSBmaW5hbDsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBkZWNy
eXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5
cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZv
aWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaykgZmluYWw7Ci0gICAgRXhjZXB0aW9uT3I8dm9p
ZD4gZ2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQm
LCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCwgS2V5T3JLZXlQYWlyQ2Fs
bGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrLCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0JikgZmluYWw7Ci0gICAgRXhjZXB0aW9uT3I8dm9pZD4gaW1wb3J0S2V5KGNvbnN0IENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5RGF0YSYs
IGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlQml0bWFwLCBLZXlDYWxsYmFjayYmLCBW
b2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spIGZpbmFsOwotCi0gICAgYm9vbCBrZXlBbGdv
cml0aG1NYXRjaGVzKGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVk
JiBhbGdvcml0aG1QYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmKSBjb25zdDsKICAgICB2b2lk
IHBsYXRmb3JtRW5jcnlwdChzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
cz4mJiwgUmVmPENyeXB0b0tleT4mJiwgVmVjdG9yPHVpbnQ4X3Q+JiYsIFZlY3RvckNhbGxiYWNr
JiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBXb3JrUXVl
dWUmKTsKICAgICB2b2lkIHBsYXRmb3JtRGVjcnlwdChzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVycz4mJiwgUmVmPENyeXB0b0tleT4mJiwgVmVjdG9yPHVpbnQ4X3Q+JiYs
IFZlY3RvckNhbGxiYWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYsIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCBXb3JrUXVldWUmKTsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBwbGF0Zm9ybUVuY3J5
cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQmLCBjb25zdCBD
cnlwdG9LZXlSU0EmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2sm
JiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrKTsKLSAgICBFeGNlcHRpb25Pcjx2b2lk
PiBwbGF0Zm9ybURlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJl
Y2F0ZWQmLCBjb25zdCBDcnlwdG9LZXlSU0EmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwg
VmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrKTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTEuY3BwCShyZXZpc2lvbiAy
MjA5MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1TSEExLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjIsMTggKzYyLDYgQEAgdm9pZCBDcnlwdG9B
bGdvcml0aG1TSEExOjpkaWdlc3QoVmVjdG9yPAogICAgIH0pOwogfQogCi1FeGNlcHRpb25Pcjx2
b2lkPiBDcnlwdG9BbGdvcml0aG1TSEExOjpkaWdlc3QoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0
b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spCi17
Ci0gICAgYXV0byBkaWdlc3QgPSBQQUw6OkNyeXB0b0RpZ2VzdDo6Y3JlYXRlKFBBTDo6Q3J5cHRv
RGlnZXN0OjpBbGdvcml0aG06OlNIQV8xKTsKLSAgICBpZiAoIWRpZ2VzdCkgewotICAgICAgICBm
YWlsdXJlQ2FsbGJhY2soKTsKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICB9Ci0gICAgZGlnZXN0
LT5hZGRCeXRlcyhkYXRhLmZpcnN0LCBkYXRhLnNlY29uZCk7Ci0gICAgY2FsbGJhY2soZGlnZXN0
LT5jb21wdXRlSGFzaCgpKTsKLSAgICByZXR1cm4geyB9OwotfQotCiB9CiAKICNlbmRpZiAvLyBF
TkFCTEUoU1VCVExFX0NSWVBUTykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobVNIQTEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9j
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmgJKHJldmlzaW9uIDIyMDkzNSkK
KysrIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTEu
aAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNiBAQCBwcml2YXRlOgogICAgIENyeXB0b0Fs
Z29yaXRobVNIQTEoKSA9IGRlZmF1bHQ7CiAgICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBp
ZGVudGlmaWVyKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBkaWdlc3QoVmVjdG9yPHVpbnQ4X3Q+
JiYsIFZlY3RvckNhbGxiYWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYsIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmLCBXb3JrUXVldWUmKSBmaW5hbDsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBkaWdl
c3QoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlw
dG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVy
ZUNhbGxiYWNrKSBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTIyNC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtU0hBMjI0LmNwcAkocmV2aXNpb24gMjIwOTM1KQorKysgU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNjIsMTggKzYyLDYgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1TSEEyMjQ6OmRpZ2VzdChWZWN0
bwogICAgIH0pOwogfQogCi1FeGNlcHRpb25Pcjx2b2lkPiBDcnlwdG9BbGdvcml0aG1TSEEyMjQ6
OmRpZ2VzdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0
IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZv
aWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaykKLXsKLSAgICBhdXRvIGRpZ2VzdCA9IFBBTDo6
Q3J5cHRvRGlnZXN0OjpjcmVhdGUoUEFMOjpDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzIy
NCk7Ci0gICAgaWYgKCFkaWdlc3QpIHsKLSAgICAgICAgZmFpbHVyZUNhbGxiYWNrKCk7Ci0gICAg
ICAgIHJldHVybiB7IH07Ci0gICAgfQotICAgIGRpZ2VzdC0+YWRkQnl0ZXMoZGF0YS5maXJzdCwg
ZGF0YS5zZWNvbmQpOwotICAgIGNhbGxiYWNrKGRpZ2VzdC0+Y29tcHV0ZUhhc2goKSk7Ci0gICAg
cmV0dXJuIHsgfTsKLX0KLQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEy
MjQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1TSEEyMjQuaAkocmV2aXNpb24gMjIwOTM1KQorKysgU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTQxLDcgKzQxLDYgQEAgcHJpdmF0ZToKICAgICBDcnlwdG9BbGdvcml0aG1TSEEyMjQoKSA9
IGRlZmF1bHQ7CiAgICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29u
c3QgZmluYWw7CiAgICAgdm9pZCBkaWdlc3QoVmVjdG9yPHVpbnQ4X3Q+JiYsIFZlY3RvckNhbGxi
YWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBXb3Jr
UXVldWUmKSBmaW5hbDsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBkaWdlc3QoY29uc3QgQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRh
JiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrKSBmaW5h
bDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Ny
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTI1Ni5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjU2LmNw
cAkocmV2aXNpb24gMjIwOTM1KQorKysgU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMv
Q3J5cHRvQWxnb3JpdGhtU0hBMjU2LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjIsMTggKzYyLDYg
QEAgdm9pZCBDcnlwdG9BbGdvcml0aG1TSEEyNTY6OmRpZ2VzdChWZWN0bwogICAgIH0pOwogfQog
Ci1FeGNlcHRpb25Pcjx2b2lkPiBDcnlwdG9BbGdvcml0aG1TSEEyNTY6OmRpZ2VzdChjb25zdCBD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b09wZXJhdGlv
bkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZh
aWx1cmVDYWxsYmFjaykKLXsKLSAgICBhdXRvIGRpZ2VzdCA9IFBBTDo6Q3J5cHRvRGlnZXN0Ojpj
cmVhdGUoUEFMOjpDcnlwdG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzI1Nik7Ci0gICAgaWYgKCFk
aWdlc3QpIHsKLSAgICAgICAgZmFpbHVyZUNhbGxiYWNrKCk7Ci0gICAgICAgIHJldHVybiB7IH07
Ci0gICAgfQotICAgIGRpZ2VzdC0+YWRkQnl0ZXMoZGF0YS5maXJzdCwgZGF0YS5zZWNvbmQpOwot
ICAgIGNhbGxiYWNrKGRpZ2VzdC0+Y29tcHV0ZUhhc2goKSk7Ci0gICAgcmV0dXJuIHsgfTsKLX0K
LQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyNTYuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEy
NTYuaAkocmV2aXNpb24gMjIwOTM1KQorKysgU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjU2LmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDYg
QEAgcHJpdmF0ZToKICAgICBDcnlwdG9BbGdvcml0aG1TSEEyNTYoKSA9IGRlZmF1bHQ7CiAgICAg
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgZmluYWw7CiAgICAg
dm9pZCBkaWdlc3QoVmVjdG9yPHVpbnQ4X3Q+JiYsIFZlY3RvckNhbGxiYWNrJiYsIEV4Y2VwdGlv
bkNhbGxiYWNrJiYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBXb3JrUXVldWUmKSBmaW5hbDsK
LSAgICBFeGNlcHRpb25Pcjx2b2lkPiBkaWdlc3QoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJh
Y2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrKSBmaW5hbDsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobVNIQTM4NC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0LmNwcAkocmV2aXNpb24gMjIw
OTM1KQorKysgU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
U0hBMzg0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjIsMTggKzYyLDYgQEAgdm9pZCBDcnlwdG9B
bGdvcml0aG1TSEEzODQ6OmRpZ2VzdChWZWN0bwogICAgIH0pOwogfQogCi1FeGNlcHRpb25Pcjx2
b2lkPiBDcnlwdG9BbGdvcml0aG1TSEEzODQ6OmRpZ2VzdChjb25zdCBDcnlwdG9BbGdvcml0aG1Q
YXJhbWV0ZXJzRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZl
Y3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaykK
LXsKLSAgICBhdXRvIGRpZ2VzdCA9IFBBTDo6Q3J5cHRvRGlnZXN0OjpjcmVhdGUoUEFMOjpDcnlw
dG9EaWdlc3Q6OkFsZ29yaXRobTo6U0hBXzM4NCk7Ci0gICAgaWYgKCFkaWdlc3QpIHsKLSAgICAg
ICAgZmFpbHVyZUNhbGxiYWNrKCk7Ci0gICAgICAgIHJldHVybiB7IH07Ci0gICAgfQotICAgIGRp
Z2VzdC0+YWRkQnl0ZXMoZGF0YS5maXJzdCwgZGF0YS5zZWNvbmQpOwotICAgIGNhbGxiYWNrKGRp
Z2VzdC0+Y29tcHV0ZUhhc2goKSk7Ci0gICAgcmV0dXJuIHsgfTsKLX0KLQogfQogCiAjZW5kaWYg
Ly8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEzODQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEzODQuaAkocmV2aXNpb24g
MjIwOTM1KQorKysgU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtU0hBMzg0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDYgQEAgcHJpdmF0ZToKICAg
ICBDcnlwdG9BbGdvcml0aG1TSEEzODQoKSA9IGRlZmF1bHQ7CiAgICAgQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBkaWdlc3QoVmVj
dG9yPHVpbnQ4X3Q+JiYsIFZlY3RvckNhbGxiYWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYsIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBXb3JrUXVldWUmKSBmaW5hbDsKLSAgICBFeGNlcHRpb25P
cjx2b2lkPiBkaWdlc3QoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQm
LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxi
YWNrJiYgZmFpbHVyZUNhbGxiYWNrKSBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bVNIQTUxMi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmNwcAkocmV2aXNpb24gMjIwOTM1KQorKysgU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNjIsMTggKzYyLDYgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1TSEE1MTI6
OmRpZ2VzdChWZWN0bwogICAgIH0pOwogfQogCi1FeGNlcHRpb25Pcjx2b2lkPiBDcnlwdG9BbGdv
cml0aG1TSEE1MTI6OmRpZ2VzdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVj
YXRlZCYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYg
Y2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaykKLXsKLSAgICBhdXRvIGRp
Z2VzdCA9IFBBTDo6Q3J5cHRvRGlnZXN0OjpjcmVhdGUoUEFMOjpDcnlwdG9EaWdlc3Q6OkFsZ29y
aXRobTo6U0hBXzUxMik7Ci0gICAgaWYgKCFkaWdlc3QpIHsKLSAgICAgICAgZmFpbHVyZUNhbGxi
YWNrKCk7Ci0gICAgICAgIHJldHVybiB7IH07Ci0gICAgfQotICAgIGRpZ2VzdC0+YWRkQnl0ZXMo
ZGF0YS5maXJzdCwgZGF0YS5zZWNvbmQpOwotICAgIGNhbGxiYWNrKGRpZ2VzdC0+Y29tcHV0ZUhh
c2goKSk7Ci0gICAgcmV0dXJuIHsgfTsKLX0KLQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFNVQlRM
RV9DUllQVE8pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1TSEE1MTIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEE1MTIuaAkocmV2aXNpb24gMjIwOTM1KQorKysgU291
cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDYgQEAgcHJpdmF0ZToKICAgICBDcnlwdG9BbGdvcml0
aG1TSEE1MTIoKSA9IGRlZmF1bHQ7CiAgICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBpZGVu
dGlmaWVyKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBkaWdlc3QoVmVjdG9yPHVpbnQ4X3Q+JiYs
IFZlY3RvckNhbGxiYWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYsIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCBXb3JrUXVldWUmKSBmaW5hbDsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBkaWdlc3Qo
Y29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQmLCBjb25zdCBDcnlwdG9P
cGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNh
bGxiYWNrKSBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2NyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQ0dDcnlwdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0
aG1BRVNfQ0JDR0NyeXB0LmNwcAkocmV2aXNpb24gMjIwOTM1KQorKysgU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDR0NyeXB0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjIzLDE4ICsyMjMsNiBAQCB2b2lkIENyeXB0b0FsZ29yaXRobUFFU19DQkM6OnBs
YXRmb3JtRGVjCiAgICAgICAgIH0pOwogfQogCi1FeGNlcHRpb25Pcjx2b2lkPiBDcnlwdG9BbGdv
cml0aG1BRVNfQ0JDOjpwbGF0Zm9ybUVuY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2Jj
UGFyYW1zRGVwcmVjYXRlZCYsIGNvbnN0IENyeXB0b0tleUFFUyYsIGNvbnN0IENyeXB0b09wZXJh
dGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJikKLXsKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9
OwotfQotCi1FeGNlcHRpb25Pcjx2b2lkPiBDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpwbGF0Zm9y
bURlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtQWVzQ2JjUGFyYW1zRGVwcmVjYXRlZCYsIGNv
bnN0IENyeXB0b0tleUFFUyYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxs
YmFjayYmLCBWb2lkQ2FsbGJhY2smJikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJl
dHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OwotfQotCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2NyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXR0NyeXB0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ2NyeXB0L0NyeXB0b0FsZ29yaXRo
bUFFU19LV0dDcnlwdC5jcHAJKHJldmlzaW9uIDIyMDkzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2Ny
eXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXR0NyeXB0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzAsNyArMzAsNiBAQAogI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQogCiAjaW5jbHVk
ZSAiQ3J5cHRvS2V5QUVTLmgiCi0jaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRl
IDxwYWwvY3J5cHRvL2djcnlwdC9IYW5kbGUuaD4KICNpbmNsdWRlIDxwYWwvY3J5cHRvL2djcnlw
dC9VdGlsaXRpZXMuaD4KIApAQCAtMTQwLDE4ICsxMzksNiBAQCB2b2lkIENyeXB0b0FsZ29yaXRo
bUFFU19LVzo6cGxhdGZvcm1VbndyCiAgICAgY2FsbGJhY2soKm91dHB1dCk7CiB9CiAKLUV4Y2Vw
dGlvbk9yPHZvaWQ+IENyeXB0b0FsZ29yaXRobUFFU19LVzo6cGxhdGZvcm1FbmNyeXB0KGNvbnN0
IENyeXB0b0tleUFFUyYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0b3JDYWxsYmFj
ayYmLCBWb2lkQ2FsbGJhY2smJikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVy
biBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OwotfQotCi1FeGNlcHRpb25Pcjx2b2lk
PiBDcnlwdG9BbGdvcml0aG1BRVNfS1c6OnBsYXRmb3JtRGVjcnlwdChjb25zdCBDcnlwdG9LZXlB
RVMmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVjdG9yQ2FsbGJhY2smJiwgVm9pZENh
bGxiYWNrJiYpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gRXhjZXB0aW9u
IHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
ZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlw
dG8vZ2NyeXB0L0NyeXB0b0FsZ29yaXRobUhNQUNHQ3J5cHQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2NyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtSE1BQ0dDcnlwdC5jcHAJ
KHJldmlzaW9uIDIyMDkzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9nY3J5cHQvQ3J5cHRv
QWxnb3JpdGhtSE1BQ0dDcnlwdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDYgQEAK
IAogI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQogCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGht
SG1hY1BhcmFtc0RlcHJlY2F0ZWQuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlITUFDLmgiCiAjaW5j
bHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgPHBhbC9jcnlwdG8vZ2Ny
eXB0L0hhbmRsZS5oPgpAQCAtODQsMTEgKzgzLDYgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8VmVj
dG9yPHVpbnQ4X3Q+PiBjYQogICAgIHJldHVybiBXVEZNb3ZlKHNpZ25hdHVyZSk7CiB9CiAKLXN0
YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4gY2FsY3VsYXRlU2lnbmF0dXJlKGlu
dCBhbGdvcml0aG0sIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYga2V5LCBjb25zdCBDcnlwdG9PcGVy
YXRpb25EYXRhJiBkYXRhKQotewotICAgIHJldHVybiBjYWxjdWxhdGVTaWduYXR1cmUoYWxnb3Jp
dGhtLCBrZXksIGRhdGEuZmlyc3QsIGRhdGEuc2Vjb25kKTsKLX0KLQogdm9pZCBDcnlwdG9BbGdv
cml0aG1ITUFDOjpwbGF0Zm9ybVNpZ24oUmVmPENyeXB0b0tleT4mJiBrZXksIFZlY3Rvcjx1aW50
OF90PiYmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIEV4Y2VwdGlvbkNhbGxiYWNr
JiYgZXhjZXB0aW9uQ2FsbGJhY2ssIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFdv
cmtRdWV1ZSYgd29ya1F1ZXVlKQogewogICAgIGNvbnRleHQucmVmKCk7CkBAIC0xNDEsMzkgKzEz
NSw2IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtSE1BQzo6cGxhdGZvcm1WZXJpZnkKICAgICB9KTsK
IH0KIAotRXhjZXB0aW9uT3I8dm9pZD4gQ3J5cHRvQWxnb3JpdGhtSE1BQzo6cGxhdGZvcm1TaWdu
KGNvbnN0IENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBj
b25zdCBDcnlwdG9LZXlITUFDJiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEs
IFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFj
aykKLXsKLSAgICBpbnQgYWxnb3JpdGhtID0gZ2V0R0NyeXB0RGlnZXN0QWxnb3JpdGhtKHBhcmFt
ZXRlcnMuaGFzaCk7Ci0gICAgaWYgKGFsZ29yaXRobSA9PSBHQ1JZX01BQ19OT05FKQotICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKLQotICAgIGF1dG8gc2ln
bmF0dXJlID0gY2FsY3VsYXRlU2lnbmF0dXJlKGFsZ29yaXRobSwga2V5LmtleSgpLCBkYXRhKTsK
LSAgICBpZiAoc2lnbmF0dXJlKQotICAgICAgICBjYWxsYmFjaygqc2lnbmF0dXJlKTsKLSAgICBl
bHNlCi0gICAgICAgIGZhaWx1cmVDYWxsYmFjaygpOwotICAgIHJldHVybiB7IH07Ci19Ci0KLUV4
Y2VwdGlvbk9yPHZvaWQ+IENyeXB0b0FsZ29yaXRobUhNQUM6OnBsYXRmb3JtVmVyaWZ5KGNvbnN0
IENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBjb25zdCBD
cnlwdG9LZXlITUFDJiBrZXksIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGV4cGVjdGVkU2ln
bmF0dXJlLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBCb29sQ2FsbGJhY2smJiBj
YWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrKQotewotICAgIGludCBhbGdv
cml0aG0gPSBnZXRHQ3J5cHREaWdlc3RBbGdvcml0aG0ocGFyYW1ldGVycy5oYXNoKTsKLSAgICBp
ZiAoYWxnb3JpdGhtID09IEdDUllfTUFDX05PTkUpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBOb3RTdXBwb3J0ZWRFcnJvciB9OwotCi0gICAgYXV0byBzaWduYXR1cmUgPSBjYWxjdWxhdGVT
aWduYXR1cmUoYWxnb3JpdGhtLCBrZXkua2V5KCksIGRhdGEpOwotICAgIGlmICghc2lnbmF0dXJl
KSB7Ci0gICAgICAgIGZhaWx1cmVDYWxsYmFjaygpOwotICAgICAgICByZXR1cm4geyB9OwotICAg
IH0KLQotICAgIC8vIFVzaW5nIGEgY29uc3RhbnQgdGltZSBjb21wYXJpc29uIHRvIHByZXZlbnQg
dGltaW5nIGF0dGFja3MuCi0gICAgYm9vbCByZXN1bHQgPSBzaWduYXR1cmUudmFsdWUoKS5zaXpl
KCkgPT0gZXhwZWN0ZWRTaWduYXR1cmUuc2Vjb25kICYmICFjb25zdGFudFRpbWVNZW1jbXAoc2ln
bmF0dXJlLnZhbHVlKCkuZGF0YSgpLCBleHBlY3RlZFNpZ25hdHVyZS5maXJzdCwgc2lnbmF0dXJl
LnZhbHVlKCkuc2l6ZSgpKTsKLQotICAgIGNhbGxiYWNrKHJlc3VsdCk7Ci0gICAgcmV0dXJuIHsg
fTsKLX0KLQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vZ2NyeXB0L0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzVH
Q3J5cHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9nY3J5cHQvQ3J5
cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNUdDcnlwdC5jcHAJKHJldmlzaW9uIDIyMDkzNSkK
KysrIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtD
UzFfdjFfNUdDcnlwdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDYgQEAKIAogI2lu
Y2x1ZGUgIkNyeXB0b0tleVJTQS5oIgogI2luY2x1ZGUgIkdDcnlwdFV0aWxpdGllcy5oIgotI2lu
Y2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xNDksMTggKzE0OCw2IEBAIHZvaWQgQ3J5
cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNTo6cGwKICAgICAgICAgfSk7CiB9CiAKLUV4Y2Vw
dGlvbk9yPHZvaWQ+IENyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzU6OnBsYXRmb3JtRW5j
cnlwdChjb25zdCBDcnlwdG9LZXlSU0EmLCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiwgVmVj
dG9yQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNrJiYpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsK
LSAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKLX0KLQotRXhjZXB0
aW9uT3I8dm9pZD4gQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNTo6cGxhdGZvcm1EZWNy
eXB0KGNvbnN0IENyeXB0b0tleVJTQSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0
b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwot
ICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OwotfQotCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1Mx
X3YxXzVHQ3J5cHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9nY3J5
cHQvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzVHQ3J5cHQuY3BwCShyZXZpc2lvbiAy
MjA5MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ2NyeXB0L0NyeXB0b0FsZ29yaXRobVJT
QVNTQV9QS0NTMV92MV81R0NyeXB0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNiBA
QAogCiAjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCiAKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0
aG1Sc2FTc2FQYXJhbXNEZXByZWNhdGVkLmgiCiAjaW5jbHVkZSAiQ3J5cHRvS2V5UlNBLmgiCiAj
aW5jbHVkZSAiR0NyeXB0VXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIK
QEAgLTE5MCwxOCArMTg5LDYgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFf
NTo6cAogICAgICAgICB9KTsKIH0KIAotRXhjZXB0aW9uT3I8dm9pZD4gQ3J5cHRvQWxnb3JpdGht
UlNBU1NBX1BLQ1MxX3YxXzU6OnBsYXRmb3JtU2lnbihjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FT
c2FQYXJhbXNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5UlNBJiwgY29uc3QgQ3J5cHRvT3Bl
cmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRDYWxsYmFjayYmKQotewotICAgIG5v
dEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9y
IH07Ci19Ci0KLUV4Y2VwdGlvbk9yPHZvaWQ+IENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92
MV81OjpwbGF0Zm9ybVZlcmlmeShjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNEZXBy
ZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5UlNBJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYs
IGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBCb29sQ2FsbGJhY2smJiwgVm9pZENhbGxiYWNr
JiYpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90
U3VwcG9ydGVkRXJyb3IgfTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYg
Ly8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vZ2Ny
eXB0L0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQR0NyeXB0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vZ2NyeXB0L0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQR0NyeXB0LmNw
cAkocmV2aXNpb24gMjIwOTM1KQorKysgU291cmNlL1dlYkNvcmUvY3J5cHRvL2djcnlwdC9Dcnlw
dG9BbGdvcml0aG1SU0FfT0FFUEdDcnlwdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2NywxOCAr
MTY3LDYgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6cGxhdGZvcm1EZQogICAgICAg
ICB9KTsKIH0KIAotRXhjZXB0aW9uT3I8dm9pZD4gQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVA6OnBs
YXRmb3JtRW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVjYXRl
ZCYsIGNvbnN0IENyeXB0b0tleVJTQSYsIGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmLCBWZWN0
b3JDYWxsYmFjayYmLCBWb2lkQ2FsbGJhY2smJikKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwot
ICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OwotfQotCi1FeGNlcHRp
b25Pcjx2b2lkPiBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6cGxhdGZvcm1EZWNyeXB0KGNvbnN0
IENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVkJiwgY29uc3QgQ3J5cHRvS2V5
UlNBJiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYsIFZlY3RvckNhbGxiYWNrJiYsIFZvaWRD
YWxsYmFjayYmKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIEV4Y2VwdGlv
biB7IE5vdFN1cHBvcnRlZEVycm9yIH07Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQpJbmRleDogU291cmNlL1dlYkNvcmUvY3J5
cHRvL2tleXMvQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdy5jcHAJKHJl
dmlzaW9uIDIyMDkzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVNl
cmlhbGl6YXRpb25SYXcuY3BwCShub25leGlzdGVudCkKQEAgLTEsODMgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJDcnlwdG9LZXlTZXJpYWxpemF0
aW9uUmF3LmgiCi0KLSNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKLQotI2luY2x1ZGUgIkNyeXB0
b0FsZ29yaXRobS5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNh
dGVkLmgiCi0jaW5jbHVkZSAiQ3J5cHRvS2V5LmgiCi0jaW5jbHVkZSAiQ3J5cHRvS2V5RGF0YU9j
dGV0U2VxdWVuY2UuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1DcnlwdG9LZXlTZXJpYWxp
emF0aW9uUmF3OjpDcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3KGNvbnN0IENyeXB0b09wZXJhdGlv
bkRhdGEmIGRhdGEpCi17Ci0gICAgbV9kYXRhLmFwcGVuZChkYXRhLmZpcnN0LCBkYXRhLnNlY29u
ZCk7Ci19Ci0KLUNyeXB0b0tleVNlcmlhbGl6YXRpb25SYXc6On5DcnlwdG9LZXlTZXJpYWxpemF0
aW9uUmF3KCkKLXsKLX0KLQotc3RkOjpvcHRpb25hbDxDcnlwdG9BbGdvcml0aG1QYWlyPiBDcnlw
dG9LZXlTZXJpYWxpemF0aW9uUmF3OjpyZWNvbmNpbGVBbGdvcml0aG0oQ3J5cHRvQWxnb3JpdGht
KiBhbGdvcml0aG0sIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkKiBwYXJhbWV0
ZXJzKSBjb25zdAotewotICAgIHJldHVybiBDcnlwdG9BbGdvcml0aG1QYWlyIHsgYWxnb3JpdGht
LCBwYXJhbWV0ZXJzIH07Ci19Ci0KLXZvaWQgQ3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdzo6cmVj
b25jaWxlVXNhZ2VzKENyeXB0b0tleVVzYWdlQml0bWFwJikgY29uc3QKLXsKLX0KLQotdm9pZCBD
cnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3OjpyZWNvbmNpbGVFeHRyYWN0YWJsZShib29sJikgY29u
c3QKLXsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPENyeXB0b0tleURhdGE+IENyeXB0b0tleVNlcmlh
bGl6YXRpb25SYXc6OmtleURhdGEoKSBjb25zdAotewotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5p
cXVlPENyeXB0b0tleURhdGFPY3RldFNlcXVlbmNlPihtX2RhdGEpOwotfQotCi1ib29sIENyeXB0
b0tleVNlcmlhbGl6YXRpb25SYXc6OnNlcmlhbGl6ZShjb25zdCBDcnlwdG9LZXkmIGtleSwgVmVj
dG9yPHVpbnQ4X3Q+JiByZXN1bHQpCi17Ci0gICAgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0tleURh
dGE+IGtleURhdGEgPSBrZXkuZXhwb3J0RGF0YSgpOwotICAgIGlmICgha2V5RGF0YSkgewotICAg
ICAgICAvLyBUaGlzIGdlbmVyYWxseSBzaG91bGRuJ3QgaGFwcGVuIGFzIGxvbmcgYXMgYWxsIGtl
eSB0eXBlcyBpbXBsZW1lbnQgZXhwb3J0RGF0YSgpLCBidXQgYXMgdW5kZXJseWluZyBsaWJyYXJp
ZXMgcmV0dXJuIGVycm9ycywgdGhlcmUgbWF5IGJlIHNvbWUgcmFyZSBmYWlsdXJlIGNvbmRpdGlv
bnMuCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBpZiAoIWlzPENyeXB0b0tl
eURhdGFPY3RldFNlcXVlbmNlPigqa2V5RGF0YSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQot
ICAgIHJlc3VsdC5hcHBlbmRWZWN0b3IoZG93bmNhc3Q8Q3J5cHRvS2V5RGF0YU9jdGV0U2VxdWVu
Y2U+KCprZXlEYXRhKS5vY3RldFNlcXVlbmNlKCkpOwotICAgIHJldHVybiB0cnVlOwotfQotCi0K
LX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRP
KQoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRv
S2V5U2VyaWFsaXphdGlvblJhdy5jcHAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxl
CiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5U2Vy
aWFsaXphdGlvblJhdy5oCShyZXZpc2lvbiAyMjA5MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlw
dG8va2V5cy9DcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3LmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw2
NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoK
LSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
LSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJDcnlwdG9L
ZXlTZXJpYWxpemF0aW9uLmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgotCi0jaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCi0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQ3J5cHRvS2V5OwotCi1jbGFzcyBDcnlwdG9LZXlTZXJp
YWxpemF0aW9uUmF3IGZpbmFsIDogcHVibGljIENyeXB0b0tleVNlcmlhbGl6YXRpb24gewotICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKENyeXB0b0tleVNlcmlhbGl6YXRpb25SYXcpOwotcHVibGlj
OgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvS2V5U2VyaWFsaXphdGlvblJhdz4g
Y3JlYXRlKGNvbnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEpCi0gICAgewotICAgICAgICBy
ZXR1cm4gc3RkOjp1bmlxdWVfcHRyPENyeXB0b0tleVNlcmlhbGl6YXRpb25SYXc+KG5ldyBDcnlw
dG9LZXlTZXJpYWxpemF0aW9uUmF3KGRhdGEpKTsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIH5Dcnlw
dG9LZXlTZXJpYWxpemF0aW9uUmF3KCk7Ci0KLSAgICBzdGF0aWMgYm9vbCBzZXJpYWxpemUoY29u
c3QgQ3J5cHRvS2V5JiwgVmVjdG9yPHVpbnQ4X3Q+Jik7Ci0KLXByaXZhdGU6Ci0gICAgQ3J5cHRv
S2V5U2VyaWFsaXphdGlvblJhdyhjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJik7Ci0KLSAgICBz
dGQ6Om9wdGlvbmFsPENyeXB0b0FsZ29yaXRobVBhaXI+IHJlY29uY2lsZUFsZ29yaXRobShDcnlw
dG9BbGdvcml0aG0qLCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCopIGNvbnN0
IG92ZXJyaWRlOwotCi0gICAgdm9pZCByZWNvbmNpbGVVc2FnZXMoQ3J5cHRvS2V5VXNhZ2VCaXRt
YXAmKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIHJlY29uY2lsZUV4dHJhY3RhYmxlKGJvb2wm
KSBjb25zdCBvdmVycmlkZTsKLQotICAgIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9LZXlEYXRhPiBr
ZXlEYXRhKCkgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICBWZWN0b3I8dWludDhfdD4gbV9kYXRhOwot
fTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9D
UllQVE8pCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9D
cnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3LmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0
eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUFFU19DQkNN
YWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxn
b3JpdGhtQUVTX0NCQ01hYy5jcHAJKHJldmlzaW9uIDIyMDkzNSkKKysrIFNvdXJjZS9XZWJDb3Jl
L2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQ01hYy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI5LDcgKzI5LDYgQEAKICNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKIAogI2luY2x1ZGUg
IkNyeXB0b0FsZ29yaXRobUFlc0NiY0NmYlBhcmFtcy5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29y
aXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0ZWQuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlBRVMuaCIK
ICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSA8Q29tbW9uQ3J5
cHRvL0NvbW1vbkNyeXB0by5oPgpAQCAtMTE0LDMwICsxMTMsNiBAQCB2b2lkIENyeXB0b0FsZ29y
aXRobUFFU19DQkM6OnBsYXRmb3JtRGVjCiAgICAgfSk7CiB9CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+
IENyeXB0b0FsZ29yaXRobUFFU19DQkM6OnBsYXRmb3JtRW5jcnlwdChjb25zdCBDcnlwdG9BbGdv
cml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlB
RVMmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2sm
JiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrKQotewotICAgIEFTU0VS
VChzaXplb2YocGFyYW1ldGVycy5pdikgPT0ga0NDQmxvY2tTaXplQUVTMTI4KTsKLSAgICBhdXRv
IHJlc3VsdCA9IHRyYW5zZm9ybUFFU19DQkMoa0NDRW5jcnlwdCwgcGFyYW1ldGVycy5pdi5kYXRh
KCksIGtleS5rZXkoKSwgZGF0YS5maXJzdCwgZGF0YS5zZWNvbmQpOwotICAgIGlmIChyZXN1bHQu
aGFzRXhjZXB0aW9uKCkpIHsKLSAgICAgICAgZmFpbHVyZUNhbGxiYWNrKCk7Ci0gICAgICAgIHJl
dHVybiB7IH07Ci0gICAgfQotICAgIGNhbGxiYWNrKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUo
KSk7Ci0gICAgcmV0dXJuIHsgfTsKLX0KLQotRXhjZXB0aW9uT3I8dm9pZD4gQ3J5cHRvQWxnb3Jp
dGhtQUVTX0NCQzo6cGxhdGZvcm1EZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY1Bh
cmFtc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleUFFUyYga2V5LCBjb25z
dCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBW
b2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spCi17Ci0gICAgQVNTRVJUKHNpemVvZihwYXJh
bWV0ZXJzLml2KSA9PSBrQ0NCbG9ja1NpemVBRVMxMjgpOwotICAgIGF1dG8gcmVzdWx0ID0gdHJh
bnNmb3JtQUVTX0NCQyhrQ0NEZWNyeXB0LCBwYXJhbWV0ZXJzLml2LmRhdGEoKSwga2V5LmtleSgp
LCBkYXRhLmZpcnN0LCBkYXRhLnNlY29uZCk7Ci0gICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24o
KSkgewotICAgICAgICBmYWlsdXJlQ2FsbGJhY2soKTsKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAg
ICB9Ci0gICAgY2FsbGJhY2socmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKLSAgICByZXR1
cm4geyB9OwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUo
U1VCVExFX0NSWVBUTykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxn
b3JpdGhtQUVTX0tXTWFjLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8v
bWFjL0NyeXB0b0FsZ29yaXRobUFFU19LV01hYy5jcHAJKHJldmlzaW9uIDIyMDkzNSkKKysrIFNv
dXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXTWFjLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtODUsMzQgKzg1LDYgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1BRVNfS1c6
OnBsYXRmb3JtVW53cgogICAgIGNhbGxiYWNrKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7
CiB9CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IENyeXB0b0FsZ29yaXRobUFFU19LVzo6cGxhdGZvcm1F
bmNyeXB0KGNvbnN0IENyeXB0b0tleUFFUyYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRh
JiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJl
Q2FsbGJhY2spCi17Ci0gICAgaWYgKGRhdGEuc2Vjb25kICUgOCkgewotICAgICAgICAvLyBSRkMg
MzM5NCB1c2VzIDY0LWJpdCBibG9ja3MgYXMgaW5wdXQuCi0gICAgICAgIC8vIDxyZGFyOi8vcHJv
YmxlbS8xNTk0OTk5Mj4gQ29tbW9uQ3J5cHRvIGRvZXNuJ3QgZGV0ZWN0IGluY29ycmVjdCBkYXRh
IGxlbmd0aCwgc2lsZW50bHkgcHJvZHVjaW5nIGEgYmFkIGN5cGhlcnRleHQuCi0gICAgICAgIGZh
aWx1cmVDYWxsYmFjaygpOwotICAgICAgICByZXR1cm4geyB9OwotICAgIH0KLQotICAgIGF1dG8g
cmVzdWx0ID0gd3JhcEtleUFFU19LVyhrZXkua2V5KCksIGRhdGEuZmlyc3QsIGRhdGEuc2Vjb25k
KTsKLSAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7Ci0gICAgICAgIGZhaWx1cmVDYWxs
YmFjaygpOwotICAgICAgICByZXR1cm4geyB9OwotICAgIH0KLSAgICBjYWxsYmFjayhyZXN1bHQu
cmVsZWFzZVJldHVyblZhbHVlKCkpOwotICAgIHJldHVybiB7IH07Ci19Ci0KLUV4Y2VwdGlvbk9y
PHZvaWQ+IENyeXB0b0FsZ29yaXRobUFFU19LVzo6cGxhdGZvcm1EZWNyeXB0KGNvbnN0IENyeXB0
b0tleUFFUyYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxs
YmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWlsdXJlQ2FsbGJhY2spCi17Ci0gICAg
YXV0byByZXN1bHQgPSB1bndyYXBLZXlBRVNfS1coa2V5LmtleSgpLCBkYXRhLmZpcnN0LCBkYXRh
LnNlY29uZCk7Ci0gICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAgICAgICBmYWls
dXJlQ2FsbGJhY2soKTsKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICB9Ci0gICAgY2FsbGJhY2so
cmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKLSAgICByZXR1cm4geyB9O30KLQogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUhNQUNNYWMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtSE1B
Q01hYy5jcHAJKHJldmlzaW9uIDIyMDkzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMv
Q3J5cHRvQWxnb3JpdGhtSE1BQ01hYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDcgKzI4LDYg
QEAKIAogI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQogCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3Jp
dGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlITUFDLmgiCiAj
aW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgPENvbW1vbkNyeXB0
by9Db21tb25ITUFDLmg+CkBAIC0xMzQsMzEgKzEzMyw2IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGht
SE1BQzo6cGxhdGZvcm1WZXJpZnkKICAgICB9KTsKIH0KIAotRXhjZXB0aW9uT3I8dm9pZD4gQ3J5
cHRvQWxnb3JpdGhtSE1BQzo6cGxhdGZvcm1TaWduKGNvbnN0IENyeXB0b0FsZ29yaXRobUhtYWNQ
YXJhbXNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlITUFDJiBrZXksIGNv
bnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ss
IFZvaWRDYWxsYmFjayYmKQotewotICAgIGF1dG8gYWxnb3JpdGhtID0gY29tbW9uQ3J5cHRvSE1B
Q0FsZ29yaXRobShwYXJhbWV0ZXJzLmhhc2gpOwotICAgIGlmICghYWxnb3JpdGhtKQotICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKLSAgICBjYWxsYmFjayhj
YWxjdWxhdGVTaWduYXR1cmUoKmFsZ29yaXRobSwga2V5LmtleSgpLCBkYXRhLmZpcnN0LCBkYXRh
LnNlY29uZCkpOwotICAgIHJldHVybiB7IH07Ci19Ci0KLUV4Y2VwdGlvbk9yPHZvaWQ+IENyeXB0
b0FsZ29yaXRobUhNQUM6OnBsYXRmb3JtVmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobUhtYWNQ
YXJhbXNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlITUFDJiBrZXksIGNv
bnN0IENyeXB0b09wZXJhdGlvbkRhdGEmIGV4cGVjdGVkU2lnbmF0dXJlLCBjb25zdCBDcnlwdG9P
cGVyYXRpb25EYXRhJiBkYXRhLCBCb29sQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNr
JiYpCi17Ci0gICAgYXV0byBhbGdvcml0aG0gPSBjb21tb25DcnlwdG9ITUFDQWxnb3JpdGhtKHBh
cmFtZXRlcnMuaGFzaCk7Ci0gICAgaWYgKCFhbGdvcml0aG0pCi0gICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OwotCi0gICAgYXV0byBzaWduYXR1cmUgPSBjYWxj
dWxhdGVTaWduYXR1cmUoKmFsZ29yaXRobSwga2V5LmtleSgpLCBkYXRhLmZpcnN0LCBkYXRhLnNl
Y29uZCk7Ci0KLSAgICAvLyBVc2luZyBhIGNvbnN0YW50IHRpbWUgY29tcGFyaXNvbiB0byBwcmV2
ZW50IHRpbWluZyBhdHRhY2tzLgotICAgIGJvb2wgcmVzdWx0ID0gc2lnbmF0dXJlLnNpemUoKSA9
PSBleHBlY3RlZFNpZ25hdHVyZS5zZWNvbmQgJiYgIWNvbnN0YW50VGltZU1lbWNtcChzaWduYXR1
cmUuZGF0YSgpLCBleHBlY3RlZFNpZ25hdHVyZS5maXJzdCwgc2lnbmF0dXJlLnNpemUoKSk7Ci0K
LSAgICBjYWxsYmFjayhyZXN1bHQpOwotCi0gICAgcmV0dXJuIHsgfTsKLX0KLQogfQogCiAjZW5k
aWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8v
bWFjL0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzVNYWMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFf
NU1hYy5jcHAJKHJldmlzaW9uIDIyMDkzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMv
Q3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNU1hYy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEwMywyOCArMTAzLDYgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81Ojpw
bAogICAgIH0pOwogfQogCi1FeGNlcHRpb25Pcjx2b2lkPiBDcnlwdG9BbGdvcml0aG1SU0FFU19Q
S0NTMV92MV81OjpwbGF0Zm9ybUVuY3J5cHQoY29uc3QgQ3J5cHRvS2V5UlNBJiBrZXksIGNvbnN0
IENyeXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZv
aWRDYWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaykKLXsKLSAgICBhdXRvIHJlc3VsdCA9IGVuY3J5
cHRSU0FFU19QS0NTMV92MV81KGtleS5wbGF0Zm9ybUtleSgpLCBrZXkua2V5U2l6ZUluQml0cygp
LCBkYXRhLmZpcnN0LCBkYXRhLnNlY29uZCk7Ci0gICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24o
KSkgewotICAgICAgICBmYWlsdXJlQ2FsbGJhY2soKTsKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAg
ICB9Ci0gICAgY2FsbGJhY2socmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKLSAgICByZXR1
cm4geyB9OwotfQotCi1FeGNlcHRpb25Pcjx2b2lkPiBDcnlwdG9BbGdvcml0aG1SU0FFU19QS0NT
MV92MV81OjpwbGF0Zm9ybURlY3J5cHQoY29uc3QgQ3J5cHRvS2V5UlNBJiBrZXksIGNvbnN0IENy
eXB0b09wZXJhdGlvbkRhdGEmIGRhdGEsIFZlY3RvckNhbGxiYWNrJiYgY2FsbGJhY2ssIFZvaWRD
YWxsYmFjayYmIGZhaWx1cmVDYWxsYmFjaykKLXsKLSAgICBhdXRvIHJlc3VsdCA9IGRlY3J5cHRS
U0FFU19QS0NTMV92MV81KGtleS5wbGF0Zm9ybUtleSgpLCBrZXkua2V5U2l6ZUluQml0cygpLCBk
YXRhLmZpcnN0LCBkYXRhLnNlY29uZCk7Ci0gICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkg
ewotICAgICAgICBmYWlsdXJlQ2FsbGJhY2soKTsKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICB9
Ci0gICAgY2FsbGJhY2socmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKLSAgICByZXR1cm4g
eyB9OwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU1VC
VExFX0NSWVBUTykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3Jp
dGhtUlNBU1NBX1BLQ1MxX3YxXzVNYWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzVNYWMuY3BwCShyZXZp
c2lvbiAyMjA5MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRo
bVJTQVNTQV9QS0NTMV92MV81TWFjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksNiBA
QAogI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQogCiAjaW5jbHVkZSAiQ29tbW9uQ3J5cHRvVXRp
bGl0aWVzLmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRl
ZC5oIgogI2luY2x1ZGUgIkNyeXB0b0RpZ2VzdEFsZ29yaXRobS5oIgogI2luY2x1ZGUgIkNyeXB0
b0tleVJTQS5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKQEAgLTEzMywy
OCArMTMyLDYgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6cAogICAg
IH0pOwogfQogCi1FeGNlcHRpb25Pcjx2b2lkPiBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFf
djFfNTo6cGxhdGZvcm1TaWduKGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc0RlcHJl
Y2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleVJTQSYga2V5LCBjb25zdCBDcnlwdG9P
cGVyYXRpb25EYXRhJiBkYXRhLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJh
Y2smJiBmYWlsdXJlQ2FsbGJhY2spCi17Ci0gICAgYXV0byByZXN1bHQgPSBzaWduUlNBU1NBX1BL
Q1MxX3YxXzUocGFyYW1ldGVycy5oYXNoLCBrZXkucGxhdGZvcm1LZXkoKSwga2V5LmtleVNpemVJ
bkJpdHMoKSwgZGF0YS5maXJzdCwgZGF0YS5zZWNvbmQpOwotICAgIGlmIChyZXN1bHQuaGFzRXhj
ZXB0aW9uKCkpIHsKLSAgICAgICAgZmFpbHVyZUNhbGxiYWNrKCk7Ci0gICAgICAgIHJldHVybiB7
IH07Ci0gICAgfQotICAgIGNhbGxiYWNrKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7Ci0g
ICAgcmV0dXJuIHsgfTsKLX0KLQotRXhjZXB0aW9uT3I8dm9pZD4gQ3J5cHRvQWxnb3JpdGhtUlNB
U1NBX1BLQ1MxX3YxXzU6OnBsYXRmb3JtVmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYVNz
YVBhcmFtc0RlcHJlY2F0ZWQmIHBhcmFtZXRlcnMsIGNvbnN0IENyeXB0b0tleVJTQSYga2V5LCBj
b25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBzaWduYXR1cmUsIGNvbnN0IENyeXB0b09wZXJhdGlv
bkRhdGEmIGRhdGEsIEJvb2xDYWxsYmFjayYmIGNhbGxiYWNrLCBWb2lkQ2FsbGJhY2smJiBmYWls
dXJlQ2FsbGJhY2spCi17Ci0gICAgYXV0byByZXN1bHQgPSB2ZXJpZnlSU0FTU0FfUEtDUzFfdjFf
NShwYXJhbWV0ZXJzLmhhc2gsIGtleS5wbGF0Zm9ybUtleSgpLCBzaWduYXR1cmUuZmlyc3QsIHNp
Z25hdHVyZS5zZWNvbmQsIGRhdGEuZmlyc3QsIGRhdGEuc2Vjb25kKTsKLSAgICBpZiAocmVzdWx0
Lmhhc0V4Y2VwdGlvbigpKSB7Ci0gICAgICAgIGZhaWx1cmVDYWxsYmFjaygpOwotICAgICAgICBy
ZXR1cm4geyB9OwotICAgIH0KLSAgICBjYWxsYmFjayhyZXN1bHQucmVsZWFzZVJldHVyblZhbHVl
KCkpOwotICAgIHJldHVybiB7IH07Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQpJbmRleDogU291cmNlL1dlYkNvcmUvY3J5cHRv
L21hYy9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUE1hYy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUE1hYy5jcHAJKHJldmlz
aW9uIDIyMDkzNSkKKysrIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGht
UlNBX09BRVBNYWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbmNs
dWRlICJDb21tb25DcnlwdG9VdGlsaXRpZXMuaCIKICNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1S
c2FPYWVwUGFyYW1zLmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0Rl
cHJlY2F0ZWQuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlSU0EuaCIKICNpbmNsdWRlICJTY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgiCiAKQEAgLTExNSwzMCArMTE0LDYgQEAgdm9pZCBDcnlwdG9BbGdv
cml0aG1SU0FfT0FFUDo6cGxhdGZvcm1EZQogICAgIH0pOwogfQogCi1FeGNlcHRpb25Pcjx2b2lk
PiBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6cGxhdGZvcm1FbmNyeXB0KGNvbnN0IENyeXB0b0Fs
Z29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVkJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9L
ZXlSU0EmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9uRGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJh
Y2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFpbHVyZUNhbGxiYWNrKQotewotICAgIEFT
U0VSVChwYXJhbWV0ZXJzLmhhc0xhYmVsIHx8IHBhcmFtZXRlcnMubGFiZWwuaXNFbXB0eSgpKTsK
LSAgICBhdXRvIHJlc3VsdCA9IGVuY3J5cHRSU0FfT0FFUChwYXJhbWV0ZXJzLmhhc2gsIHBhcmFt
ZXRlcnMubGFiZWwsIGtleS5wbGF0Zm9ybUtleSgpLCBrZXkua2V5U2l6ZUluQml0cygpLCBkYXRh
LmZpcnN0LCBkYXRhLnNlY29uZCk7Ci0gICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewot
ICAgICAgICBmYWlsdXJlQ2FsbGJhY2soKTsKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICB9Ci0g
ICAgY2FsbGJhY2socmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKLSAgICByZXR1cm4geyB9
OwotfQotCi1FeGNlcHRpb25Pcjx2b2lkPiBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUDo6cGxhdGZv
cm1EZWNyeXB0KGNvbnN0IENyeXB0b0FsZ29yaXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVkJiBw
YXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlSU0EmIGtleSwgY29uc3QgQ3J5cHRvT3BlcmF0aW9u
RGF0YSYgZGF0YSwgVmVjdG9yQ2FsbGJhY2smJiBjYWxsYmFjaywgVm9pZENhbGxiYWNrJiYgZmFp
bHVyZUNhbGxiYWNrKQotewotICAgIEFTU0VSVChwYXJhbWV0ZXJzLmhhc0xhYmVsIHx8IHBhcmFt
ZXRlcnMubGFiZWwuaXNFbXB0eSgpKTsKLSAgICBhdXRvIHJlc3VsdCA9IGRlY3J5cHRSU0FfT0FF
UChwYXJhbWV0ZXJzLmhhc2gsIHBhcmFtZXRlcnMubGFiZWwsIGtleS5wbGF0Zm9ybUtleSgpLCBr
ZXkua2V5U2l6ZUluQml0cygpLCBkYXRhLmZpcnN0LCBkYXRhLnNlY29uZCk7Ci0gICAgaWYgKHJl
c3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAgICAgICBmYWlsdXJlQ2FsbGJhY2soKTsKLSAgICAg
ICAgcmV0dXJuIHsgfTsKLSAgICB9Ci0gICAgY2FsbGJhY2socmVzdWx0LnJlbGVhc2VSZXR1cm5W
YWx1ZSgpKTsKLSAgICByZXR1cm4geyB9OwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Ny
eXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0RlcHJlY2F0ZWQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdv
cml0aG1BZXNDYmNQYXJhbXNEZXByZWNhdGVkLmgJKHJldmlzaW9uIDIyMDkzNSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUFlc0NiY1BhcmFtc0Rl
cHJlY2F0ZWQuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDQ3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
cHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNh
dGVkLmgiCi0jaW5jbHVkZSA8YXJyYXk+Ci0KLSNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXNE
ZXByZWNhdGVkIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNh
dGVkIHsKLXB1YmxpYzoKLSAgICAvLyBUaGUgaW5pdGlhbGl6YXRpb24gdmVjdG9yLiBNVVNUIGJl
IDE2IGJ5dGVzLgotICAgIHN0ZDo6YXJyYXk8dWludDhfdCwgMTY+IGl2OwotCi0gICAgQ2xhc3Mg
cGFyYW1ldGVyc0NsYXNzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ2xhc3M6OkFlc0NiY1Bh
cmFtczsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi1TUEVDSUFMSVpFX1RZUEVf
VFJBSVRTX0NSWVBUT19BTEdPUklUSE1fUEFSQU1FVEVSU19ERVBSRUNBVEVEKEFlc0NiY1BhcmFt
cykKLQotI2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQpJbmRleDogU291cmNlL1dlYkNv
cmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zRGVwcmVj
YXRlZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0Ny
eXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFtc0RlcHJlY2F0ZWQuaAkocmV2aXNpb24gMjIwOTM1
KQorKysgU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtQWVz
S2V5R2VuUGFyYW1zRGVwcmVjYXRlZC5oCShub25leGlzdGVudCkKQEAgLTEsNDYgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVyc0RlcHJlY2F0ZWQuaCIKLQotI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENyeXB0b0FsZ29yaXRobUFlc0tleUdlblBhcmFtc0Rl
cHJlY2F0ZWQgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0
ZWQgewotcHVibGljOgotICAgIC8vIFRoZSBsZW5ndGgsIGluIGJpdHMsIG9mIHRoZSBrZXkuCi0g
ICAgdW5zaWduZWQgbGVuZ3RoOwotCi0gICAgQ2xhc3MgcGFyYW1ldGVyc0NsYXNzKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gQ2xhc3M6OkFlc0tleUdlblBhcmFtczsgfQotfTsKLQotfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQotCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NSWVBUT19BTEdPUklU
SE1fUEFSQU1FVEVSU19ERVBSRUNBVEVEKEFlc0tleUdlblBhcmFtcykKLQotI2VuZGlmIC8vIEVO
QUJMRShTVUJUTEVfQ1JZUFRPKQpJbmRleDogU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRl
cnMvQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtc0RlcHJlY2F0ZWQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1IbWFjS2V5
UGFyYW1zRGVwcmVjYXRlZC5oCShyZXZpc2lvbiAyMjA5MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9j
cnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1IbWFjS2V5UGFyYW1zRGVwcmVjYXRlZC5o
CShub25leGlzdGVudCkKQEAgLTEsNTIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25j
ZQotCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllci5oIgotI2luY2x1ZGUgIkNy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkLmgiCi0KLSNpZiBFTkFCTEUoU1VCVExF
X0NSWVBUTykKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBDcnlwdG9BbGdvcml0aG1I
bWFjS2V5UGFyYW1zRGVwcmVjYXRlZCBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzRGVwcmVjYXRlZCB7Ci1wdWJsaWM6Ci0gICAgLy8gVGhlIGlubmVyIGhhc2ggZnVuY3Rp
b24gdG8gdXNlLgotICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaGFzaDsKLQotICAgIC8v
IFRoZSBsZW5ndGggKGluIGJ5dGVzKSBvZiB0aGUga2V5IHRvIGdlbmVyYXRlLiBJZiB1bnNwZWNp
ZmllZCwgdGhlIHJlY29tbWVuZGVkIGxlbmd0aCB3aWxsIGJlIHVzZWQsCi0gICAgLy8gd2hpY2gg
aXMgdGhlIHNpemUgb2YgdGhlIGFzc29jaWF0ZWQgaGFzaCBmdW5jdGlvbidzIGJsb2NrIHNpemUu
Ci0gICAgYm9vbCBoYXNMZW5ndGggeyBmYWxzZSB9OwotICAgIHVuc2lnbmVkIGxlbmd0aDsKLQot
ICAgIENsYXNzIHBhcmFtZXRlcnNDbGFzcygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENsYXNz
OjpIbWFjS2V5UGFyYW1zOyB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLVNQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfQ1JZUFRPX0FMR09SSVRITV9QQVJBTUVURVJTX0RFUFJFQ0FURUQo
SG1hY0tleVBhcmFtcykKLQotI2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQpJbmRleDog
U291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFt
c0RlcHJlY2F0ZWQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1l
dGVycy9DcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZC5oCShyZXZpc2lvbiAyMjA5
MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1I
bWFjUGFyYW1zRGVwcmVjYXRlZC5oCShub25leGlzdGVudCkKQEAgLTEsNDcgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
Zmllci5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkLmgi
Ci0KLSNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1j
bGFzcyBDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zRGVwcmVjYXRlZCBmaW5hbCA6IHB1YmxpYyBD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCB7Ci1wdWJsaWM6Ci0gICAgLy8gVGhl
IGlubmVyIGhhc2ggZnVuY3Rpb24gdG8gdXNlLgotICAgIENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXIgaGFzaDsKLQotICAgIENsYXNzIHBhcmFtZXRlcnNDbGFzcygpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIENsYXNzOjpIbWFjUGFyYW1zOyB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
Ci0KLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ1JZUFRPX0FMR09SSVRITV9QQVJBTUVURVJTX0RF
UFJFQ0FURUQoSG1hY1BhcmFtcykKLQotI2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQpJ
bmRleDogU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNh
S2V5R2VuUGFyYW1zRGVwcmVjYXRlZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Ny
eXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtc0RlcHJlY2F0ZWQu
aAkocmV2aXNpb24gMjIwOTM1KQorKysgU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMv
Q3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zRGVwcmVjYXRlZC5oCShub25leGlzdGVudCkK
QEAgLTEsNTIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAi
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQuaCIKLSNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+Ci0KLSNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1jbGFzcyBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXNEZXByZWNhdGVkIGZpbmFs
IDogcHVibGljIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkIHsKLXB1YmxpYzoK
LSAgICAvLyBUaGUgbGVuZ3RoLCBpbiBiaXRzLCBvZiB0aGUgUlNBIG1vZHVsdXMuCi0gICAgdW5z
aWduZWQgbW9kdWx1c0xlbmd0aDsKLSAgICAvLyBUaGUgUlNBIHB1YmxpYyBleHBvbmVudCwgZW5j
b2RlZCBhcyBCaWdJbnRlZ2VyLgotICAgIFZlY3Rvcjx1aW50OF90PiBwdWJsaWNFeHBvbmVudDsK
LSAgICAvLyBUaGUgaGFzaCBhbGdvcml0aCBpZGVudGlmaWVyCi0gICAgYm9vbCBoYXNIYXNoIHsg
ZmFsc2UgfTsKLSAgICBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGhhc2g7Ci0KLSAgICBDbGFz
cyBwYXJhbWV0ZXJzQ2xhc3MoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDbGFzczo6UnNhS2V5
R2VuUGFyYW1zOyB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLVNQRUNJQUxJWkVf
VFlQRV9UUkFJVFNfQ1JZUFRPX0FMR09SSVRITV9QQVJBTUVURVJTX0RFUFJFQ0FURUQoUnNhS2V5
R2VuUGFyYW1zKQotCi0jZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCgpQcm9wZXJ0eSBj
aGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0
aG1Sc2FLZXlHZW5QYXJhbXNEZXByZWNhdGVkLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9s
LXN0eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3Bl
cnR5CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0
aG1Sc2FLZXlQYXJhbXNXaXRoSGFzaERlcHJlY2F0ZWQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FLZXlQYXJhbXNXaXRo
SGFzaERlcHJlY2F0ZWQuaAkocmV2aXNpb24gMjIwOTM1KQorKysgU291cmNlL1dlYkNvcmUvY3J5
cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hEZXByZWNh
dGVkLmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw1NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdt
YSBvbmNlCi0KLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLmgiCi0jaW5jbHVk
ZSAiQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQuaCIKLQotI2lmIEVOQUJMRShT
VUJUTEVfQ1JZUFRPKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLS8vIFRoaXMgcGFyYW1ldGVy
cyBjbGFzcyBpcyBjdXJyZW50bHkgbm90IHNwZWNpZmllZCBpbiBXZWJDcnlwdG8uCi0vLyBJdCBp
cyBuZWNlc3NhcnkgdG8gc3VwcG9ydCBpbXBvcnQgZnJvbSBKV0ssIHdoaWNoIHRyZWF0cyBoYXNo
IGZ1bmN0aW9uIGFzIHBhcnQgb2YgYWxnb3JpdGhtCi0vLyBpZGVudGlmaWVyLCBzbyB3ZSBuZWVk
IHRvIHJlbWVtYmVyIGl0IHRvIGNvbXBhcmUgd2l0aCBvbmUgcGFzc2VkIHRvIHNpZ24gb3IgdmVy
aWZ5IGZ1bmN0aW9ucy4KLWNsYXNzIENyeXB0b0FsZ29yaXRobVJzYUtleVBhcmFtc1dpdGhIYXNo
RGVwcmVjYXRlZCBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVj
YXRlZCB7Ci1wdWJsaWM6Ci0gICAgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5UGFyYW1zV2l0aEhhc2hE
ZXByZWNhdGVkKCkKLSAgICAgICAgOiBoYXNIYXNoKGZhbHNlKQotICAgIHsKLSAgICB9Ci0KLSAg
ICAvLyBUaGUgaGFzaCBhbGdvcml0aG0gdG8gdXNlLgotICAgIGJvb2wgaGFzSGFzaDsKLSAgICBD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGhhc2g7Ci0KLSAgICBDbGFzcyBwYXJhbWV0ZXJzQ2xh
c3MoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDbGFzczo6UnNhS2V5UGFyYW1zV2l0aEhhc2g7
IH0KLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotU1BFQ0lBTElaRV9UWVBFX1RSQUlU
U19DUllQVE9fQUxHT1JJVEhNX1BBUkFNRVRFUlNfREVQUkVDQVRFRChSc2FLZXlQYXJhbXNXaXRo
SGFzaCkKLQotI2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQpJbmRleDogU291cmNlL1dl
YkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJl
Y2F0ZWQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9D
cnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVjYXRlZC5oCShyZXZpc2lvbiAyMjA5MzUp
CisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FP
YWVwUGFyYW1zRGVwcmVjYXRlZC5oCShub25leGlzdGVudCkKQEAgLTEsNTIgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
Zmllci5oIgotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnNEZXByZWNhdGVkLmgi
Ci0KLSNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1j
bGFzcyBDcnlwdG9BbGdvcml0aG1Sc2FPYWVwUGFyYW1zRGVwcmVjYXRlZCBmaW5hbCA6IHB1Ymxp
YyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzRGVwcmVjYXRlZCB7Ci1wdWJsaWM6Ci0gICAgLy8g
VGhlIGhhc2ggZnVuY3Rpb24gdG8gYXBwbHkgdG8gdGhlIG1lc3NhZ2UuCi0gICAgQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllciBoYXNoOwotCi0gICAgLy8gVGhlIG9wdGlvbmFsIGxhYmVsL2FwcGxp
Y2F0aW9uIGRhdGEgdG8gYXNzb2NpYXRlIHdpdGggdGhlIG1lc3NhZ2UuCi0gICAgLy8gRklYTUU6
IElzIHRoZXJlIGEgZGlmZmVyZW5jZSBiZXR3ZWVuIGEgbWlzc2luZyBsYWJlbCBhbmQgYW4gZW1w
dHkgb25lPyBQZXJoYXBzIHdlIGRvbid0IG5lZWQgdGhlIGhhc0xhYmVsIG1lbWJlci4KLSAgICBi
b29sIGhhc0xhYmVsIHsgZmFsc2UgfTsKLSAgICBWZWN0b3I8dWludDhfdD4gbGFiZWw7Ci0KLSAg
ICBDbGFzcyBwYXJhbWV0ZXJzQ2xhc3MoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDbGFzczo6
UnNhT2FlcFBhcmFtczsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi1TUEVDSUFM
SVpFX1RZUEVfVFJBSVRTX0NSWVBUT19BTEdPUklUSE1fUEFSQU1FVEVSU19ERVBSRUNBVEVEKFJz
YU9hZXBQYXJhbXMpCi0KLSNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykKClByb3BlcnR5
IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29y
aXRobVJzYU9hZXBQYXJhbXNEZXByZWNhdGVkLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9s
LXN0eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3Bl
cnR5CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0
aG1Sc2FTc2FQYXJhbXNEZXByZWNhdGVkLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
Y3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZC5o
CShyZXZpc2lvbiAyMjA5MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9D
cnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXNEZXByZWNhdGVkLmgJKG5vbmV4aXN0ZW50KQpAQCAt
MSw0NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyLmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVyc0RlcHJlY2F0ZWQuaCIKLQotI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc0RlcHJlY2F0
ZWQgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVyc0RlcHJlY2F0ZWQgewot
cHVibGljOgotICAgIC8vIFRoZSBoYXNoIGFsZ29yaXRobSB0byB1c2UuCi0gICAgQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllciBoYXNoOwotCi0gICAgQ2xhc3MgcGFyYW1ldGVyc0NsYXNzKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ2xhc3M6OlJzYVNzYVBhcmFtczsgfQotfTsKLQotfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQotCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NSWVBUT19BTEdPUklU
SE1fUEFSQU1FVEVSU19ERVBSRUNBVEVEKFJzYVNzYVBhcmFtcykKLQotI2VuZGlmIC8vIEVOQUJM
RShTVUJUTEVfQ1JZUFRPKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ3J5cHRvLmNwcAkocmV2aXNpb24gMjIw
OTM1KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMSwxNSArMzEsMTUgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDcnlwdG8u
aCIKIAotI2lmIE9TKERBUldJTikKLSNpbmNsdWRlICJDb21tb25DcnlwdG9VdGlsaXRpZXMuaCIK
LSNlbmRpZgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiU3VidGxlQ3J5cHRvLmgi
Ci0jaW5jbHVkZSAiV2ViS2l0U3VidGxlQ3J5cHRvLmgiCiAjaW5jbHVkZSA8cnVudGltZS9BcnJh
eUJ1ZmZlclZpZXcuaD4KICNpbmNsdWRlIDx3dGYvQ3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1i
ZXIuaD4KIAorI2lmIE9TKERBUldJTikKKyNpbmNsdWRlICJDb21tb25DcnlwdG9VdGlsaXRpZXMu
aCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIENyeXB0bzo6Q3J5cHRvKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCkBAIC03NiwxOSArNzYsNiBAQCBTdWJ0bGVDcnlw
dG8mIENyeXB0bzo6c3VidGxlKCkKICAgICByZXR1cm4gbV9zdWJ0bGU7CiB9CiAKLUV4Y2VwdGlv
bk9yPFdlYktpdFN1YnRsZUNyeXB0byY+IENyeXB0bzo6d2Via2l0U3VidGxlKCkKLXsKLSAgICBp
ZiAoIWlzTWFpblRocmVhZCgpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9y
dGVkRXJyb3IgfTsKLQotICAgIGlmICghbV93ZWJraXRTdWJ0bGUpIHsKLSAgICAgICAgbV93ZWJr
aXRTdWJ0bGUgPSBXZWJLaXRTdWJ0bGVDcnlwdG86OmNyZWF0ZSgqZG93bmNhc3Q8RG9jdW1lbnQ+
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkpOwotICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok90aGVyLCBNZXNzYWdlTGV2
ZWw6Oldhcm5pbmcsIEFTQ0lJTGl0ZXJhbCgiV2ViS2l0U3VidGxlQ3J5cHRvIGlzIGRlcHJlY2F0
ZWQuIFBsZWFzZSB1c2UgU3VidGxlQ3J5cHRvIGluc3RlYWQuIikpOwotICAgIH0KLQotICAgIHJl
dHVybiAqbV93ZWJraXRTdWJ0bGU7Ci19Ci0KICNlbmRpZgogCiB9CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0NyeXB0by5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ3J5
cHRvLmgJKHJldmlzaW9uIDIyMDkzNSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ3J5cHRvLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDYgQEAgY2xhc3MgQXJyYXlCdWZmZXJWaWV3Owog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTdWJ0bGVDcnlwdG87Ci1jbGFzcyBXZWJLaXRT
dWJ0bGVDcnlwdG87CiAKIGNsYXNzIENyeXB0byA6IHB1YmxpYyBDb250ZXh0RGVzdHJ1Y3Rpb25P
YnNlcnZlciwgcHVibGljIFJlZkNvdW50ZWQ8Q3J5cHRvPiB7CiBwdWJsaWM6CkBAIC01MCw5ICs0
OSw2IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQogICAgIFN1YnRsZUNy
eXB0byYgc3VidGxlKCk7Ci0KLSAgICAvLyBXaWxsIGJlIGRlcHJlY2F0ZWQuCi0gICAgRXhjZXB0
aW9uT3I8V2ViS2l0U3VidGxlQ3J5cHRvJj4gd2Via2l0U3VidGxlKCk7CiAjZW5kaWYKIAogcHJp
dmF0ZToKQEAgLTYwLDkgKzU2LDYgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShTVUJUTEVfQ1JZ
UFRPKQogICAgIFJlZjxTdWJ0bGVDcnlwdG8+IG1fc3VidGxlOwotCi0gICAgLy8gV2lsbCBiZSBk
ZXByZWNhdGVkLgotICAgIFJlZlB0cjxXZWJLaXRTdWJ0bGVDcnlwdG8+IG1fd2Via2l0U3VidGxl
OwogI2VuZGlmCiB9OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5pZGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9DcnlwdG8uaWRsCShyZXZpc2lvbiAyMjA5
MzUpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0NyeXB0by5pZGwJKHdvcmtpbmcgY29weSkKQEAg
LTMzLDcgKzMzLDQgQEAKIF0gaW50ZXJmYWNlIENyeXB0byB7CiAgICAgW0NvbmRpdGlvbmFsPVNV
QlRMRV9DUllQVE9dIHJlYWRvbmx5IGF0dHJpYnV0ZSBTdWJ0bGVDcnlwdG8gc3VidGxlOwogICAg
IFtNYXlUaHJvd0V4Y2VwdGlvbl0gQXJyYXlCdWZmZXJWaWV3IGdldFJhbmRvbVZhbHVlcyhbUmV0
dXJuVmFsdWVdIEFycmF5QnVmZmVyVmlldyBhcnJheSk7Ci0KLSAgICAvLyBXaWxsIGJlIGRlcHJl
Y2F0ZWQuCi0gICAgW0NvbmRpdGlvbmFsPVNVQlRMRV9DUllQVE8sIEdldHRlck1heVRocm93RXhj
ZXB0aW9uXSByZWFkb25seSBhdHRyaWJ1dGUgV2ViS2l0U3VidGxlQ3J5cHRvIHdlYmtpdFN1YnRs
ZTsKIH07CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjA5MzUpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNDkgQEAKKzIwMTctMDgtMTggIFNhbSBXZWlu
aWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgdGhlIGRlcHJlY2F0ZWQgV2Vi
S2l0U3VidGxlQ3J5cHRvIGludGVyZmFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTY0OTM4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yOTg5NDU2
Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGNy
eXB0by93ZWJraXRTdWJ0bGU6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRs
ZS9hZXMtY2JjLTE5Mi1lbmNyeXB0LWRlY3J5cHQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy0xOTItZW5jcnlwdC1kZWNyeXB0Lmh0
bWw6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLTI1Ni1l
bmNyeXB0LWRlY3J5cHQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93
ZWJraXRTdWJ0bGUvYWVzLWNiYy0yNTYtZW5jcnlwdC1kZWNyeXB0Lmh0bWw6IFJlbW92ZWQuCisg
ICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWVuY3J5cHQtZGVjcnlwdC1leHBl
Y3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2Jj
LWVuY3J5cHQtZGVjcnlwdC13aXRoLXBhZGRpbmctZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy1lbmNyeXB0LWRlY3J5cHQtd2l0aC1w
YWRkaW5nLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMt
Y2JjLWVuY3J5cHQtZGVjcnlwdC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJr
aXRTdWJ0bGUvYWVzLWNiYy1nZW5lcmF0ZS1rZXktZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy1nZW5lcmF0ZS1rZXkuaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtaW1wb3J0LWp3ay1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMt
Y2JjLWltcG9ydC1qd2suaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3Vi
dGxlL2Flcy1jYmMtaW52YWxpZC1sZW5ndGgtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy1pbnZhbGlkLWxlbmd0aC5odG1sOiBSZW1v
dmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy11bndyYXAtZmFpbHVy
ZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9h
ZXMtY2JjLXVud3JhcC1mYWlsdXJlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dl
YmtpdFN1YnRsZS9hZXMtY2JjLXVud3JhcC1yc2EtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy11bndyYXAtcnNhLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLXdyYXAtcnNhLWV4cGVj
dGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMt
d3JhcC1yc2Etbm9uLWV4dHJhY3RhYmxlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtd3JhcC1yc2Etbm9uLWV4dHJhY3RhYmxlLmh0
bWw6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLXdyYXAt
cnNhLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2Jj
LXdyb25nLWtleS1jbGFzcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRv
L3dlYmtpdFN1YnRsZS9hZXMtY2JjLXdyb25nLWtleS1jbGFzcy5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWV4cG9ydC1rZXktZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWV4cG9ydC1rZXkuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1rdy1rZXktbWFu
aXB1bGF0aW9uLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0
U3VidGxlL2Flcy1rdy1rZXktbWFuaXB1bGF0aW9uLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
Y3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMta3ctd3JhcC11bndyYXAtYWVzLWV4cGVjdGVkLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1rdy13cmFwLXVud3Jh
cC1hZXMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2Flcy1w
b3N0TWVzc2FnZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtp
dFN1YnRsZS9hZXMtcG9zdE1lc3NhZ2UuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8v
d2Via2l0U3VidGxlL2FyZ3VtZW50LWNvbnZlcnNpb24tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgor
ICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYXJndW1lbnQtY29udmVyc2lvbi5odG1sOiBS
ZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvYXJyYXktYnVmZmVyLXZpZXct
b2Zmc2V0LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3Vi
dGxlL2FycmF5LWJ1ZmZlci12aWV3LW9mZnNldC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGNy
eXB0by93ZWJraXRTdWJ0bGUvZGlzYWxsb3dlZC1pbi13b3JrZXItZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvZGlzYWxsb3dlZC1pbi13b3JrZXIu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2djLTItZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvZ2MtMi5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvZ2MtMy1leHBlY3RlZC50
eHQ6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9nYy0zLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9nYy1leHBlY3RlZC50eHQ6IFJl
bW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9nYy5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1jaGVjay1hbGdvcml0aG0tZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1jaGVj
ay1hbGdvcml0aG0uaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxl
L2htYWMtZXhwb3J0LWtleS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRv
L3dlYmtpdFN1YnRsZS9obWFjLWV4cG9ydC1rZXkuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBj
cnlwdG8vd2Via2l0U3VidGxlL2htYWMtZ2VuZXJhdGUta2V5LWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2htYWMtZ2VuZXJhdGUta2V5Lmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLWltcG9ydC1qd2st
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvaG1h
Yy1pbXBvcnQtandrLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRs
ZS9obWFjLXBvc3RNZXNzYWdlLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlw
dG8vd2Via2l0U3VidGxlL2htYWMtcG9zdE1lc3NhZ2UuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBjcnlwdG8vd2Via2l0U3VidGxlL2htYWMtc2lnbi12ZXJpZnktZW1wdHkta2V5LWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2htYWMtc2lnbi12
ZXJpZnktZW1wdHkta2V5Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1
YnRsZS9obWFjLXNpZ24tdmVyaWZ5LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBj
cnlwdG8vd2Via2l0U3VidGxlL2htYWMtc2lnbi12ZXJpZnkuaHRtbDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2ltcG9ydC1leHBvcnQtcmF3LWtleS1sZWFrLWV4cGVj
dGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2ltcG9ydC1l
eHBvcnQtcmF3LWtleS1sZWFrLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtp
dFN1YnRsZS9pbXBvcnQtandrLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlw
dG8vd2Via2l0U3VidGxlL2ltcG9ydC1qd2suaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlw
dG8vd2Via2l0U3VidGxlL2p3ay1leHBvcnQtdXNlLXZhbHVlcy1leHBlY3RlZC50eHQ6IFJlbW92
ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9qd2stZXhwb3J0LXVzZS12YWx1ZXMu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL2p3ay1pbXBvcnQt
dXNlLXZhbHVlcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtp
dFN1YnRsZS9qd2staW1wb3J0LXVzZS12YWx1ZXMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBj
cnlwdG8vd2Via2l0U3VidGxlL3Jlc291cmNlczogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8v
d2Via2l0U3VidGxlL3Jlc291cmNlcy9kaXNhbGxvd2VkLWluLXdvcmtlci5qczogUmVtb3ZlZC4K
KyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL3Jlc291cmNlcy9yc2EtaW5kZXhlZGRiLW5v
bi1leHBvcnRhYmxlLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUv
cmVzb3VyY2VzL3JzYS1pbmRleGVkZGIuanM6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dl
YmtpdFN1YnRsZS9yc2EtZXhwb3J0LWdlbmVyYXRlZC1rZXlzLWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL3JzYS1leHBvcnQtZ2VuZXJhdGVkLWtl
eXMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL3JzYS1leHBv
cnQta2V5LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3Vi
dGxlL3JzYS1leHBvcnQta2V5Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtp
dFN1YnRsZS9yc2EtZXhwb3J0LXByaXZhdGUta2V5LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL3JzYS1leHBvcnQtcHJpdmF0ZS1rZXkuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL3JzYS1pbmRleGVkZGItZXhw
ZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWlu
ZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
Y3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLXByaXZhdGUt
ZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvcnNh
LWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAg
ICogY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLXBy
aXZhdGUtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0
bGUvcnNhLWluZGV4ZWRkYi1wcml2YXRlLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRv
L3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogY3J5
cHRvL3dlYmtpdFN1YnRsZS9yc2Etb2FlcC1nZW5lcmF0ZS1ub24tZXh0cmFjdGFibGUta2V5LWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL3JzYS1v
YWVwLWdlbmVyYXRlLW5vbi1leHRyYWN0YWJsZS1rZXkuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiBjcnlwdG8vd2Via2l0U3VidGxlL3JzYS1vYWVwLWtleS1tYW5pcHVsYXRpb24tZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAta2V5
LW1hbmlwdWxhdGlvbi5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0
bGUvcnNhLW9hZXAtcGxhaW50ZXh0LWxlbmd0aC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Etb2FlcC1wbGFpbnRleHQtbGVuZ3RoLmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Etb2FlcC13cmFwLXVu
d3JhcC1hZXMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRT
dWJ0bGUvcnNhLW9hZXAtd3JhcC11bndyYXAtYWVzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
Y3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtcG9zdE1lc3NhZ2UtZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvcnNhLXBvc3RNZXNzYWdlLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Flcy1wa2NzMS12MV81LWRl
Y3J5cHQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0
bGUvcnNhZXMtcGtjczEtdjFfNS1kZWNyeXB0Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogY3J5
cHRvL3dlYmtpdFN1YnRsZS9yc2Flcy1wa2NzMS12MV81LXdyYXAtdW53cmFwLWFlcy1leHBlY3Rl
ZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Flcy1wa2Nz
MS12MV81LXdyYXAtdW53cmFwLWFlcy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93
ZWJraXRTdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtZ2VuZXJhdGUta2V5LWV4cGVjdGVkLnR4dDog
UmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81
LWdlbmVyYXRlLWtleS13aXRoLWxlYWRpbmctemVyb2VzLWluLWV4cG9uZW50LWV4cGVjdGVkLnR4
dDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12
MV81LWdlbmVyYXRlLWtleS13aXRoLWxlYWRpbmctemVyb2VzLWluLWV4cG9uZW50Lmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1n
ZW5lcmF0ZS1rZXkuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxl
L3JzYXNzYS1wa2NzMS12MV81LWltcG9ydC1qd2stZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAg
ICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtaW1wb3J0LWp3ay1z
bWFsbC1rZXktZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRT
dWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtaW1wb3J0LWp3ay1zbWFsbC1rZXkuaHRtbDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWltcG9y
dC1qd2suaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL3JzYXNz
YS1wa2NzMS12MV81LXNpZ24tdmVyaWZ5LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBjcnlwdG8vd2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LXNpZ24tdmVyaWZ5Lmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtMS1leHBlY3RlZC50
eHQ6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtMS5odG1sOiBS
ZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTIyNC1leHBlY3RlZC50
eHQ6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtMjI0Lmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtMjU2LWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL3NoYS0yNTYuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL3NoYS0zODQtZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTM4NC5o
dG1sOiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTUxMi1leHBl
Y3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtNTEy
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3dlYmtpdFN1YnRsZS91bmltcGxlbWVu
dGVkLXVud3JhcC1jcmFzaC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRv
L3dlYmtpdFN1YnRsZS91bmltcGxlbWVudGVkLXVud3JhcC1jcmFzaC5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0bGUvdW53cmFwS2V5LWNoZWNrLXVzYWdlLWV4cGVj
dGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vd2Via2l0U3VidGxlL3Vud3JhcEtl
eS1jaGVjay11c2FnZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by93ZWJraXRTdWJ0
bGUvd3JhcEtleS1jaGVjay11c2FnZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
Y3J5cHRvL3dlYmtpdFN1YnRsZS93cmFwS2V5LWNoZWNrLXVzYWdlLmh0bWw6IFJlbW92ZWQuCisK
KyAgICAgICAgICAgIFJlbW92ZSB3ZWJraXRTdWJ0bGVDcnlwdG8gdGVzdHMuCisKKyAgICAgICAg
KiBmYXN0L2RvbS9XaW5kb3cvcHJvcGVydHktYWNjZXNzLW9uLWNhY2hlZC13aW5kb3ctYWZ0ZXIt
ZnJhbWUtcmVtb3ZlZC1leHBlY3RlZC50eHQ6CisKKyAgICAgICAgICAgIFJlbW92ZSB3ZWJraXRT
dWJ0bGVDcnlwdG8gZGVwcmVjYXRpb24gd2FybmluZyB0aGF0IG5vIGxvbmdlciBoYXBwZW5zLgor
CisgICAgICAgICogcGxhdGZvcm0vaW9zLXdrMS9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAq
IHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9U
ZXN0RXhwZWN0YXRpb25zOgorCisgICAgICAgICAgICBSZW1vdmUgd2Via2l0U3VidGxlIHRlc3Rz
IGZyb20gZXhwZWN0YXRpb25zIGZpbGVzLgorCiAyMDE3LTA4LTE4ICBKaWV3ZW4gVGFuICA8amll
d2VuX3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkNyeXB0b11bTWFjXSBSZXBsYWNlIEND
RUNDcnlwdG9yR2V0S2V5Q29tcG9uZW50cyB3aXRoIENDRUNDcnlwdG9yRXhwb3J0S2V5IGZvciBl
eHBvcnRpbmcgRUNDIEpXS3MKSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUv
YWVzLWNiYy0xOTItZW5jcnlwdC1kZWNyeXB0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtMTkyLWVuY3J5cHQtZGVjcnlw
dC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIyMDkzNSkKKysrIExheW91dFRlc3RzL2NyeXB0by93
ZWJraXRTdWJ0bGUvYWVzLWNiYy0xOTItZW5jcnlwdC1kZWNyeXB0LWV4cGVjdGVkLnR4dAkobm9u
ZXhpc3RlbnQpCkBAIC0xLDIwICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyMjogV2Vi
S2l0U3VidGxlQ3J5cHRvIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgU3VidGxlQ3J5cHRvIGlu
c3RlYWQuCi1UZXN0IEFFUy1DQkMgZW5jcnlwdCBhbmQgZGVjcnlwdCBmdW5jdGlvbnMgd2l0aCBh
IDI1NiBiaXQga2V5LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotSW1wb3J0aW5n
IGEgcmF3IEFFUyBrZXkgZnJvbSBzdHJpbmcgbGl0ZXJhbC4uLgotUEFTUyBrZXkudHlwZSBpcyAn
c2VjcmV0JwotUEFTUyBrZXkuZXh0cmFjdGFibGUgaXMgdHJ1ZQotUEFTUyBrZXkuYWxnb3JpdGht
Lm5hbWUgaXMgJ0FFUy1DQkMnCi1QQVNTIGtleS5hbGdvcml0aG0ubGVuZ3RoIGlzIDE5MgotUEFT
UyBrZXkudXNhZ2VzIGlzIFsnZGVjcnlwdCcsICdlbmNyeXB0J10KLVVzaW5nIHRoZSBrZXkgdG8g
ZW5jcnlwdCBwbGFpbnRleHQuLi4KLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJh
eShlbmNyeXB0aW9uUmVzdWx0KSkgaXMgJzRmMDIxZGIyNDNiYzYzM2Q3MTc4MTgzYTlmYTA3MWU4
YjRkOWFkYTlhZDdkZWRmNGU1ZTczODc2M2Y2OTE0NWE1NzFiMjQyMDEyZmI3YWUwN2ZhOWJhYWMz
ZGYxMDJlMDA4YjBlMjc5ODg1OTg4ODFkOTIwYTllNjRmNTYxNWNkNjEyY2NkNzkyMjRiMzUwOTM1
ZDQ1ZGQ2YTk4ZjgxNzYnCi1EZWNyeXB0aW5nIGl0IGJhY2suLi4KLVBBU1MgbmV3IFVpbnQ4QXJy
YXkoZGVjcnlwdGlvblJlc3VsdCkgaXMgcGxhaW50ZXh0Ci1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dl
YmtpdFN1YnRsZS9hZXMtY2JjLTE5Mi1lbmNyeXB0LWRlY3J5cHQuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtMTkyLWVuY3J5cHQtZGVj
cnlwdC5odG1sCShyZXZpc2lvbiAyMjA5MzUpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL2Flcy1jYmMtMTkyLWVuY3J5cHQtZGVjcnlwdC5odG1sCShub25leGlzdGVudCkKQEAg
LTEsNDggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxw
IGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3Jp
cHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBBRVMtQ0JDIGVuY3J5cHQgYW5kIGRlY3J5cHQgZnVuY3Rp
b25zIHdpdGggYSAyNTYgYml0IGtleS4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZh
ciBrZXlEYXRhID0gaGV4U3RyaW5nVG9VaW50OEFycmF5KCI4ZTczYjBmN2RhMGU2NDUyYzgxMGYz
MmI4MDkwNzllNTYyZjhlYWQyNTIyYzZiN2IiKTsKLXZhciBpdiA9IGhleFN0cmluZ1RvVWludDhB
cnJheSgiMDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBlMGYiKTsKLXZhciBwbGFpbnRleHQg
PSBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjZiYzFiZWUyMmU0MDlmOTZlOTNkN2UxMTczOTMxNzJh
YWUyZDhhNTcxZTAzYWM5YzllYjc2ZmFjNDVhZjhlNTEzMGM4MWM0NmEzNWNlNDExZTVmYmMxMTkx
YTBhNTJlZmY2OWYyNDQ1ZGY0ZjliMTdhZDJiNDE3YmU2NmMzNzEwIik7Ci12YXIgZXh0cmFjdGFi
bGUgPSB0cnVlOwotCi1kZWJ1ZygiSW1wb3J0aW5nIGEgcmF3IEFFUyBrZXkgZnJvbSBzdHJpbmcg
bGl0ZXJhbC4uLiIpOwotY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIGtleURh
dGEsICJhZXMtY2JjIiwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0Il0pLnRoZW4o
ZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAga2V5ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJrZXku
dHlwZSIsICInc2VjcmV0JyIpOwotICAgIHNob3VsZEJlKCJrZXkuZXh0cmFjdGFibGUiLCAidHJ1
ZSIpOwotICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0FFUy1DQkMnIik7Ci0g
ICAgc2hvdWxkQmUoImtleS5hbGdvcml0aG0ubGVuZ3RoIiwgIjE5MiIpOwotICAgIHNob3VsZEJl
KCJrZXkudXNhZ2VzIiwgIlsnZGVjcnlwdCcsICdlbmNyeXB0J10iKTsKLQotICAgIGRlYnVnKCJV
c2luZyB0aGUga2V5IHRvIGVuY3J5cHQgcGxhaW50ZXh0Li4uIik7Ci0gICAgcmV0dXJuIGNyeXB0
by53ZWJraXRTdWJ0bGUuZW5jcnlwdCh7bmFtZTogImFlcy1jYmMiLCBpdjogaXZ9LCBrZXksIHBs
YWludGV4dCk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGVuY3J5cHRpb25SZXN1
bHQgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJy
YXkoZW5jcnlwdGlvblJlc3VsdCkpIiwgIic0ZjAyMWRiMjQzYmM2MzNkNzE3ODE4M2E5ZmEwNzFl
OGI0ZDlhZGE5YWQ3ZGVkZjRlNWU3Mzg3NjNmNjkxNDVhNTcxYjI0MjAxMmZiN2FlMDdmYTliYWFj
M2RmMTAyZTAwOGIwZTI3OTg4NTk4ODgxZDkyMGE5ZTY0ZjU2MTVjZDYxMmNjZDc5MjI0YjM1MDkz
NWQ0NWRkNmE5OGY4MTc2JyIpOwotCi0gICAgZGVidWcoIkRlY3J5cHRpbmcgaXQgYmFjay4uLiIp
OwotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLmRlY3J5cHQoe25hbWU6ICJhZXMtY2Jj
IiwgaXY6IGl2fSwga2V5LCByZXN1bHQpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAg
ICBkZWNyeXB0aW9uUmVzdWx0ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJuZXcgVWludDhBcnJh
eShkZWNyeXB0aW9uUmVzdWx0KSIsICJwbGFpbnRleHQiKTsKLQotICAgIGZpbmlzaEpTVGVzdCgp
OwotfSk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
Y3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLTI1Ni1lbmNyeXB0LWRlY3J5cHQtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNi
Yy0yNTYtZW5jcnlwdC1kZWNyeXB0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjIwOTM1KQorKysg
TGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLTI1Ni1lbmNyeXB0LWRlY3J5
cHQtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKQEAgLTEsMjAgKzAsMCBAQAotQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDIyOiBXZWJLaXRTdWJ0bGVDcnlwdG8gaXMgZGVwcmVjYXRlZC4gUGxlYXNl
IHVzZSBTdWJ0bGVDcnlwdG8gaW5zdGVhZC4KLVRlc3QgQUVTLUNCQyBlbmNyeXB0IGFuZCBkZWNy
eXB0IGZ1bmN0aW9ucyB3aXRoIGEgMjU2IGJpdCBrZXkuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KLQotCi1JbXBvcnRpbmcgYSByYXcgQUVTIGtleSBmcm9tIHN0cmluZyBsaXRlcmFsLi4u
Ci1QQVNTIGtleS50eXBlIGlzICdzZWNyZXQnCi1QQVNTIGtleS5leHRyYWN0YWJsZSBpcyB0cnVl
Ci1QQVNTIGtleS5hbGdvcml0aG0ubmFtZSBpcyAnQUVTLUNCQycKLVBBU1Mga2V5LmFsZ29yaXRo
bS5sZW5ndGggaXMgMjU2Ci1QQVNTIGtleS51c2FnZXMgaXMgWydkZWNyeXB0JywgJ2VuY3J5cHQn
XQotVXNpbmcgdGhlIGtleSB0byBlbmNyeXB0IHBsYWludGV4dC4uLgotUEFTUyBieXRlc1RvSGV4
U3RyaW5nKG5ldyBVaW50OEFycmF5KGVuY3J5cHRpb25SZXN1bHQpKSBpcyAnZjU4YzRjMDRkNmU1
ZjFiYTc3OWVhYmZiNWY3YmZiZDY5Y2ZjNGU5NjdlZGI4MDhkNjc5Zjc3N2JjNjcwMmM3ZDM5ZjIz
MzY5YTlkOWJhY2ZhNTMwZTI2MzA0MjMxNDYxYjJlYjA1ZTJjMzliZTlmY2RhNmMxOTA3OGM2YTlk
MWIzZjQ2MTc5NmQ2YjBkNmIyZTBjMmE3MmI0ZDgwZTY0NCcKLURlY3J5cHRpbmcgaXQgYmFjay4u
LgotUEFTUyBuZXcgVWludDhBcnJheShkZWNyeXB0aW9uUmVzdWx0KSBpcyBwbGFpbnRleHQKLVBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBM
YXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtMjU2LWVuY3J5cHQtZGVjcnlw
dC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVz
LWNiYy0yNTYtZW5jcnlwdC1kZWNyeXB0Lmh0bWwJKHJldmlzaW9uIDIyMDkzNSkKKysrIExheW91
dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy0yNTYtZW5jcnlwdC1kZWNyeXB0Lmh0
bWwJKG5vbmV4aXN0ZW50KQpAQCAtMSw0OCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1s
PgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4K
LTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IEFFUy1DQkMgZW5jcnlw
dCBhbmQgZGVjcnlwdCBmdW5jdGlvbnMgd2l0aCBhIDI1NiBiaXQga2V5LiIpOwotCi1qc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKLQotdmFyIGtleURhdGEgPSBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjYw
M2RlYjEwMTVjYTcxYmUyYjczYWVmMDg1N2Q3NzgxMWYzNTJjMDczYjYxMDhkNzJkOTgxMGEzMDkx
NGRmZjQiKTsKLXZhciBpdiA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiMDAwMTAyMDMwNDA1MDYw
NzA4MDkwYTBiMGMwZDBlMGYiKTsKLXZhciBwbGFpbnRleHQgPSBoZXhTdHJpbmdUb1VpbnQ4QXJy
YXkoIjZiYzFiZWUyMmU0MDlmOTZlOTNkN2UxMTczOTMxNzJhYWUyZDhhNTcxZTAzYWM5YzllYjc2
ZmFjNDVhZjhlNTEzMGM4MWM0NmEzNWNlNDExZTVmYmMxMTkxYTBhNTJlZmY2OWYyNDQ1ZGY0Zjli
MTdhZDJiNDE3YmU2NmMzNzEwIik7Ci12YXIgZXh0cmFjdGFibGUgPSB0cnVlOwotCi1kZWJ1Zygi
SW1wb3J0aW5nIGEgcmF3IEFFUyBrZXkgZnJvbSBzdHJpbmcgbGl0ZXJhbC4uLiIpOwotY3J5cHRv
LndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIGtleURhdGEsICJhZXMtY2JjIiwgZXh0cmFj
dGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0g
ICAga2V5ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJrZXkudHlwZSIsICInc2VjcmV0JyIpOwot
ICAgIHNob3VsZEJlKCJrZXkuZXh0cmFjdGFibGUiLCAidHJ1ZSIpOwotICAgIHNob3VsZEJlKCJr
ZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0FFUy1DQkMnIik7Ci0gICAgc2hvdWxkQmUoImtleS5hbGdv
cml0aG0ubGVuZ3RoIiwgIjI1NiIpOwotICAgIHNob3VsZEJlKCJrZXkudXNhZ2VzIiwgIlsnZGVj
cnlwdCcsICdlbmNyeXB0J10iKTsKLQotICAgIGRlYnVnKCJVc2luZyB0aGUga2V5IHRvIGVuY3J5
cHQgcGxhaW50ZXh0Li4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUuZW5jcnlw
dCh7bmFtZTogImFlcy1jYmMiLCBpdjogaXZ9LCBrZXksIHBsYWludGV4dCk7Ci19KS50aGVuKGZ1
bmN0aW9uKHJlc3VsdCkgewotICAgIGVuY3J5cHRpb25SZXN1bHQgPSByZXN1bHQ7Ci0gICAgc2hv
dWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZW5jcnlwdGlvblJlc3VsdCkp
IiwgIidmNThjNGMwNGQ2ZTVmMWJhNzc5ZWFiZmI1ZjdiZmJkNjljZmM0ZTk2N2VkYjgwOGQ2Nzlm
Nzc3YmM2NzAyYzdkMzlmMjMzNjlhOWQ5YmFjZmE1MzBlMjYzMDQyMzE0NjFiMmViMDVlMmMzOWJl
OWZjZGE2YzE5MDc4YzZhOWQxYjNmNDYxNzk2ZDZiMGQ2YjJlMGMyYTcyYjRkODBlNjQ0JyIpOwot
Ci0gICAgZGVidWcoIkRlY3J5cHRpbmcgaXQgYmFjay4uLiIpOwotICAgIHJldHVybiBjcnlwdG8u
d2Via2l0U3VidGxlLmRlY3J5cHQoe25hbWU6ICJhZXMtY2JjIiwgaXY6IGl2fSwga2V5LCByZXN1
bHQpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBkZWNyeXB0aW9uUmVzdWx0ID0g
cmVzdWx0OwotICAgIHNob3VsZEJlKCJuZXcgVWludDhBcnJheShkZWNyeXB0aW9uUmVzdWx0KSIs
ICJwbGFpbnRleHQiKTsKLQotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLQot
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgot
PC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9h
ZXMtY2JjLWVuY3J5cHQtZGVjcnlwdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWVuY3J5cHQtZGVjcnlwdC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDIyMDkzNSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0
bGUvYWVzLWNiYy1lbmNyeXB0LWRlY3J5cHQtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKQEAg
LTEsMjUgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIyOiBXZWJLaXRTdWJ0bGVDcnlw
dG8gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBTdWJ0bGVDcnlwdG8gaW5zdGVhZC4KLVRlc3Qg
QUVTLUNCQyBlbmNyeXB0IGFuZCBkZWNyeXB0IGZ1bmN0aW9ucy4KLQotT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgotCi0KLUltcG9ydGluZyBhIHJhdyBBRVMga2V5IGZyb20gc3RyaW5nIGxpdGVy
YWwuLi4KLVBBU1Mga2V5LnR5cGUgaXMgJ3NlY3JldCcKLVBBU1Mga2V5LmV4dHJhY3RhYmxlIGlz
IHRydWUKLVBBU1Mga2V5LmFsZ29yaXRobS5uYW1lIGlzICdBRVMtQ0JDJwotUEFTUyBrZXkuYWxn
b3JpdGhtLmxlbmd0aCBpcyAxMjgKLVBBU1Mga2V5LnVzYWdlcyBpcyBbJ2RlY3J5cHQnLCAnZW5j
cnlwdCddCi1Vc2luZyB0aGUga2V5IHRvIGVuY3J5cHQgcGxhaW50ZXh0Li4uCi1QQVNTIGJ5dGVz
VG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZW5jcnlwdGlvblJlc3VsdCkpIGlzICc3NjQ5YWJh
YzgxMTliMjQ2Y2VlOThlOWIxMmU5MTk3ZDUwODZjYjliNTA3MjE5ZWU5NWRiMTEzYTkxNzY3OGIy
NzNiZWQ2YjhlM2MxNzQzYjcxMTZlNjllMjIyMjk1MTYzZmYxY2FhMTY4MWZhYzA5MTIwZWNhMzA3
NTg2ZTFhNzhjYjgyODA3MjMwZTEzMjFkM2ZhZTAwZDE4Y2MyMDEyJwotRGVjcnlwdGluZyBpdCBi
YWNrLi4uCi1QQVNTIG5ldyBVaW50OEFycmF5KGRlY3J5cHRpb25SZXN1bHQpIGlzIHBsYWludGV4
dAotVGVzdGluZyBpbml0aWFsaXphdGlvbiB2ZWN0b3IgYmluZGluZ3MuLi4KLVBBU1MgY3J5cHRv
LndlYmtpdFN1YnRsZS5lbmNyeXB0KHtuYW1lOiAnQUVTLUNCQycsIGl2OiBudWxsfSwga2V5LCBw
bGFpbnRleHQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE9ubHkgQXJyYXlCdWZmZXIgYW5k
IEFycmF5QnVmZmVyVmlldyBvYmplY3RzIGNhbiBiZSBwYXNzZWQgYXMgQ3J5cHRvT3BlcmF0aW9u
RGF0YS4KLVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5lbmNyeXB0KHtuYW1lOiAnQUVTLUNCQyd9
LCBrZXksIHBsYWludGV4dCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogT25seSBBcnJheUJ1
ZmZlciBhbmQgQXJyYXlCdWZmZXJWaWV3IG9iamVjdHMgY2FuIGJlIHBhc3NlZCBhcyBDcnlwdG9P
cGVyYXRpb25EYXRhLgotUEFTUyBjcnlwdG8ud2Via2l0U3VidGxlLmVuY3J5cHQoe25hbWU6ICdB
RVMtQ0JDJywgaXY6IDN9LCBrZXksIHBsYWludGV4dCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogT25seSBBcnJheUJ1ZmZlciBhbmQgQXJyYXlCdWZmZXJWaWV3IG9iamVjdHMgY2FuIGJlIHBh
c3NlZCBhcyBDcnlwdG9PcGVyYXRpb25EYXRhLgotUEFTUyBjcnlwdG8ud2Via2l0U3VidGxlLmVu
Y3J5cHQoe25hbWU6ICdBRVMtQ0JDJywgaXY6IG5ldyBVaW50OEFycmF5KFswXSl9LCBrZXksIHBs
YWludGV4dCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBBRVMtQ0JDIGluaXRpYWxpemF0aW9uIGRh
dGEgbXVzdCBiZSAxNiBieXRlcy4KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQot
VEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Fl
cy1jYmMtZW5jcnlwdC1kZWNyeXB0LXdpdGgtcGFkZGluZy1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWVuY3J5cHQtZGVj
cnlwdC13aXRoLXBhZGRpbmctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMjA5MzUpCisrKyBMYXlv
dXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtZW5jcnlwdC1kZWNyeXB0LXdpdGgt
cGFkZGluZy1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSwyMCArMCwwIEBACi1DT05T
T0xFIE1FU1NBR0U6IGxpbmUgMjI6IFdlYktpdFN1YnRsZUNyeXB0byBpcyBkZXByZWNhdGVkLiBQ
bGVhc2UgdXNlIFN1YnRsZUNyeXB0byBpbnN0ZWFkLgotVGVzdCBBRVMtQ0JDIGVuY3J5cHQgYW5k
IGRlY3J5cHQgZnVuY3Rpb25zIG9uIGEgcGxhaW50ZXh0IHRoYXQgaXMgbm90IGEgbXVsdGlwbGUg
b2YgYmxvY2sgc2l6ZSBpbiBsZW5ndGguCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQot
Ci1JbXBvcnRpbmcgYSByYXcgQUVTIGtleSBmcm9tIHN0cmluZyBsaXRlcmFsLi4uCi1QQVNTIGtl
eS50eXBlIGlzICdzZWNyZXQnCi1QQVNTIGtleS5leHRyYWN0YWJsZSBpcyB0cnVlCi1QQVNTIGtl
eS5hbGdvcml0aG0ubmFtZSBpcyAnQUVTLUNCQycKLVBBU1Mga2V5LmFsZ29yaXRobS5sZW5ndGgg
aXMgMTI4Ci1QQVNTIGtleS51c2FnZXMgaXMgWydkZWNyeXB0JywgJ2VuY3J5cHQnXQotVXNpbmcg
dGhlIGtleSB0byBlbmNyeXB0IHBsYWludGV4dC4uLgotUEFTUyBieXRlc1RvSGV4U3RyaW5nKG5l
dyBVaW50OEFycmF5KGN5cGhlcnRleHQpKSBpcyAnNjMwMTk5YzVmMjAyY2M3MTY3YmI4NGM2Yzcy
YjM0OWQnCi1EZWNyeXB0aW5nIGl0IGJhY2suLi4KLVBBU1MgbmV3IFVpbnQ4QXJyYXkoZGVjcnlw
dGlvblJlc3VsdCkgaXMgcGxhaW50ZXh0Ci1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
Ci0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRs
ZS9hZXMtY2JjLWVuY3J5cHQtZGVjcnlwdC13aXRoLXBhZGRpbmcuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtZW5jcnlwdC1kZWNyeXB0
LXdpdGgtcGFkZGluZy5odG1sCShyZXZpc2lvbiAyMjA5MzUpCisrKyBMYXlvdXRUZXN0cy9jcnlw
dG8vd2Via2l0U3VidGxlL2Flcy1jYmMtZW5jcnlwdC1kZWNyeXB0LXdpdGgtcGFkZGluZy5odG1s
CShub25leGlzdGVudCkKQEAgLTEsNDcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29s
ZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBBRVMtQ0JDIGVuY3J5cHQg
YW5kIGRlY3J5cHQgZnVuY3Rpb25zIG9uIGEgcGxhaW50ZXh0IHRoYXQgaXMgbm90IGEgbXVsdGlw
bGUgb2YgYmxvY2sgc2l6ZSBpbiBsZW5ndGguIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwot
Ci12YXIga2V5RGF0YSA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiMmI3ZTE1MTYyOGFlZDJhNmFi
ZjcxNTg4MDljZjRmM2MiKTsKLXZhciBpdiA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiMDAwMTAy
MDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBlMGYiKTsKLXZhciBwbGFpbnRleHQgPSBhc2NpaVRvVWlu
dDhBcnJheSgidGVzdCIpOwotdmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKLQotZGVidWcoIkltcG9y
dGluZyBhIHJhdyBBRVMga2V5IGZyb20gc3RyaW5nIGxpdGVyYWwuLi4iKTsKLWNyeXB0by53ZWJr
aXRTdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBrZXlEYXRhLCAiYWVzLWNiYyIsIGV4dHJhY3RhYmxl
LCBbImVuY3J5cHQiLCAiZGVjcnlwdCJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGtl
eSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgia2V5LnR5cGUiLCAiJ3NlY3JldCciKTsKLSAgICBz
aG91bGRCZSgia2V5LmV4dHJhY3RhYmxlIiwgInRydWUiKTsKLSAgICBzaG91bGRCZSgia2V5LmFs
Z29yaXRobS5uYW1lIiwgIidBRVMtQ0JDJyIpOwotICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGht
Lmxlbmd0aCIsICIxMjgiKTsKLSAgICBzaG91bGRCZSgia2V5LnVzYWdlcyIsICJbJ2RlY3J5cHQn
LCAnZW5jcnlwdCddIik7Ci0KLSAgICBkZWJ1ZygiVXNpbmcgdGhlIGtleSB0byBlbmNyeXB0IHBs
YWludGV4dC4uLiIpOwotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLmVuY3J5cHQoe25h
bWU6ICJhZXMtY2JjIiwgaXY6IGl2fSwga2V5LCBwbGFpbnRleHQpOwotfSkudGhlbihmdW5jdGlv
bihyZXN1bHQpIHsKLSAgICBjeXBoZXJ0ZXh0ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJieXRl
c1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGN5cGhlcnRleHQpKSIsICInNjMwMTk5YzVmMjAy
Y2M3MTY3YmI4NGM2YzcyYjM0OWQnIik7Ci0KLSAgICBkZWJ1ZygiRGVjcnlwdGluZyBpdCBiYWNr
Li4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUuZGVjcnlwdCh7bmFtZTogImFl
cy1jYmMiLCBpdjogaXZ9LCBrZXksIHJlc3VsdCk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkg
ewotICAgIGRlY3J5cHRpb25SZXN1bHQgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoIm5ldyBVaW50
OEFycmF5KGRlY3J5cHRpb25SZXN1bHQpIiwgInBsYWludGV4dCIpOwotICAgIGZpbmlzaEpTVGVz
dCgpOwotfSk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWVuY3J5cHQtZGVjcnlwdC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy1lbmNyeXB0
LWRlY3J5cHQuaHRtbAkocmV2aXNpb24gMjIwOTM1KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dl
YmtpdFN1YnRsZS9hZXMtY2JjLWVuY3J5cHQtZGVjcnlwdC5odG1sCShub25leGlzdGVudCkKQEAg
LTEsNTQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxw
IGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3Jp
cHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBBRVMtQ0JDIGVuY3J5cHQgYW5kIGRlY3J5cHQgZnVuY3Rp
b25zLiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIGtleURhdGEgPSBoZXhTdHJp
bmdUb1VpbnQ4QXJyYXkoIjJiN2UxNTE2MjhhZWQyYTZhYmY3MTU4ODA5Y2Y0ZjNjIik7Ci12YXIg
aXYgPSBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAwMDEwMjAzMDQwNTA2MDcwODA5MGEwYjBjMGQw
ZTBmIik7Ci12YXIgcGxhaW50ZXh0ID0gaGV4U3RyaW5nVG9VaW50OEFycmF5KCI2YmMxYmVlMjJl
NDA5Zjk2ZTkzZDdlMTE3MzkzMTcyYWFlMmQ4YTU3MWUwM2FjOWM5ZWI3NmZhYzQ1YWY4ZTUxMzBj
ODFjNDZhMzVjZTQxMWU1ZmJjMTE5MWEwYTUyZWZmNjlmMjQ0NWRmNGY5YjE3YWQyYjQxN2JlNjZj
MzcxMCIpOwotdmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKLQotZGVidWcoIkltcG9ydGluZyBhIHJh
dyBBRVMga2V5IGZyb20gc3RyaW5nIGxpdGVyYWwuLi4iKTsKLWNyeXB0by53ZWJraXRTdWJ0bGUu
aW1wb3J0S2V5KCJyYXciLCBrZXlEYXRhLCAiYWVzLWNiYyIsIGV4dHJhY3RhYmxlLCBbImVuY3J5
cHQiLCAiZGVjcnlwdCJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGtleSA9IHJlc3Vs
dDsKLSAgICBzaG91bGRCZSgia2V5LnR5cGUiLCAiJ3NlY3JldCciKTsKLSAgICBzaG91bGRCZSgi
a2V5LmV4dHJhY3RhYmxlIiwgInRydWUiKTsKLSAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5u
YW1lIiwgIidBRVMtQ0JDJyIpOwotICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLmxlbmd0aCIs
ICIxMjgiKTsKLSAgICBzaG91bGRCZSgia2V5LnVzYWdlcyIsICJbJ2RlY3J5cHQnLCAnZW5jcnlw
dCddIik7Ci0KLSAgICBkZWJ1ZygiVXNpbmcgdGhlIGtleSB0byBlbmNyeXB0IHBsYWludGV4dC4u
LiIpOwotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLmVuY3J5cHQoe25hbWU6ICJhZXMt
Y2JjIiwgaXY6IGl2fSwga2V5LCBwbGFpbnRleHQpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQp
IHsKLSAgICBlbmNyeXB0aW9uUmVzdWx0ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJieXRlc1Rv
SGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGVuY3J5cHRpb25SZXN1bHQpKSIsICInNzY0OWFiYWM4
MTE5YjI0NmNlZTk4ZTliMTJlOTE5N2Q1MDg2Y2I5YjUwNzIxOWVlOTVkYjExM2E5MTc2NzhiMjcz
YmVkNmI4ZTNjMTc0M2I3MTE2ZTY5ZTIyMjI5NTE2M2ZmMWNhYTE2ODFmYWMwOTEyMGVjYTMwNzU4
NmUxYTc4Y2I4MjgwNzIzMGUxMzIxZDNmYWUwMGQxOGNjMjAxMiciKTsKLQotICAgIGRlYnVnKCJE
ZWNyeXB0aW5nIGl0IGJhY2suLi4iKTsKLSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS5k
ZWNyeXB0KHtuYW1lOiAiYWVzLWNiYyIsIGl2OiBpdn0sIGtleSwgcmVzdWx0KTsKLX0pLnRoZW4o
ZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgZGVjcnlwdGlvblJlc3VsdCA9IHJlc3VsdDsKLSAgICBz
aG91bGRCZSgibmV3IFVpbnQ4QXJyYXkoZGVjcnlwdGlvblJlc3VsdCkiLCAicGxhaW50ZXh0Iik7
Ci0KLSAgICBkZWJ1ZygiVGVzdGluZyBpbml0aWFsaXphdGlvbiB2ZWN0b3IgYmluZGluZ3MuLi4i
KTsKLSAgICBzaG91bGRUaHJvdygiY3J5cHRvLndlYmtpdFN1YnRsZS5lbmNyeXB0KHtuYW1lOiAn
QUVTLUNCQycsIGl2OiBudWxsfSwga2V5LCBwbGFpbnRleHQpIik7Ci0gICAgc2hvdWxkVGhyb3co
ImNyeXB0by53ZWJraXRTdWJ0bGUuZW5jcnlwdCh7bmFtZTogJ0FFUy1DQkMnfSwga2V5LCBwbGFp
bnRleHQpIik7Ci0gICAgc2hvdWxkVGhyb3coImNyeXB0by53ZWJraXRTdWJ0bGUuZW5jcnlwdCh7
bmFtZTogJ0FFUy1DQkMnLCBpdjogM30sIGtleSwgcGxhaW50ZXh0KSIpOwotICAgIHNob3VsZFRo
cm93KCJjcnlwdG8ud2Via2l0U3VidGxlLmVuY3J5cHQoe25hbWU6ICdBRVMtQ0JDJywgaXY6IG5l
dyBVaW50OEFycmF5KFswXSl9LCBrZXksIHBsYWludGV4dCkiKTsKLQotICAgIGZpbmlzaEpTVGVz
dCgpOwotfSk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWdlbmVyYXRlLWtleS1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWdl
bmVyYXRlLWtleS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIyMDkzNSkKKysrIExheW91dFRlc3Rz
L2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy1nZW5lcmF0ZS1rZXktZXhwZWN0ZWQudHh0CShu
b25leGlzdGVudCkKQEAgLTEsMjAgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDYxNjog
V2ViS2l0U3VidGxlQ3J5cHRvIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgU3VidGxlQ3J5cHRv
IGluc3RlYWQuCi1UZXN0IGdlbmVyYXRpbmcgYW4gQUVTIGtleSB1c2luZyBBRVMtQ0JDIGFsZ29y
aXRobS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgY3J5cHRvLndlYmtp
dFN1YnRsZS5nZW5lcmF0ZUtleSgiYWVzLWNiYyIsIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAi
ZGVjcnlwdCJdKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBj
cnlwdG8ud2Via2l0U3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiYWVzLWNiYyJ9LCBleHRyYWN0
YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiXSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
VmFsdWUgTmFOIGlzIG91dHNpZGUgdGhlIHJhbmdlIFswLCA2NTUzNV0uCi1QQVNTIGNyeXB0by53
ZWJraXRTdWJ0bGUuZ2VuZXJhdGVLZXkoe25hbWU6ICJhZXMtY2JjIiwgbGVuZ3RoOiB1bmRlZmlu
ZWR9LCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiXSkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogVmFsdWUgTmFOIGlzIG91dHNpZGUgdGhlIHJhbmdlIFswLCA2NTUzNV0uCi1Q
QVNTIGNyeXB0by53ZWJraXRTdWJ0bGUuZ2VuZXJhdGVLZXkoe25hbWU6ICJhZXMtY2JjIiwgbGVu
Z3RoOiB7fX0sIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCJdKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBWYWx1ZSBOYU4gaXMgb3V0c2lkZSB0aGUgcmFuZ2UgWzAsIDY1NTM1
XS4KLUdlbmVyYXRpbmcgYSBrZXkuLi4KLVBBU1Mga2V5LnR5cGUgaXMgJ3NlY3JldCcKLVBBU1Mg
a2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKLVBBU1Mga2V5LmFsZ29yaXRobS5uYW1lIGlzICdBRVMt
Q0JDJwotUEFTUyBrZXkuYWxnb3JpdGhtLmxlbmd0aCBpcyAxMjgKLVBBU1Mga2V5LnVzYWdlcyBp
cyBbJ2RlY3J5cHQnLCAnZW5jcnlwdCddCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
Ci0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRs
ZS9hZXMtY2JjLWdlbmVyYXRlLWtleS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Ny
eXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy1nZW5lcmF0ZS1rZXkuaHRtbAkocmV2aXNpb24gMjIw
OTM1KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWdlbmVyYXRl
LWtleS5odG1sCShub25leGlzdGVudCkKQEAgLTEsMzkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBnZW5lcmF0
aW5nIGFuIEFFUyBrZXkgdXNpbmcgQUVTLUNCQyBhbGdvcml0aG0uIik7Ci0KLWpzVGVzdElzQXN5
bmMgPSB0cnVlOwotCi12YXIgZXh0cmFjdGFibGUgPSB0cnVlOwotCi1zaG91bGRUaHJvdygnY3J5
cHRvLndlYmtpdFN1YnRsZS5nZW5lcmF0ZUtleSgiYWVzLWNiYyIsIGV4dHJhY3RhYmxlLCBbImVu
Y3J5cHQiLCAiZGVjcnlwdCJdKScpOwotc2hvdWxkVGhyb3coJ2NyeXB0by53ZWJraXRTdWJ0bGUu
Z2VuZXJhdGVLZXkoe25hbWU6ICJhZXMtY2JjIn0sIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAi
ZGVjcnlwdCJdKScpOwotc2hvdWxkVGhyb3coJ2NyeXB0by53ZWJraXRTdWJ0bGUuZ2VuZXJhdGVL
ZXkoe25hbWU6ICJhZXMtY2JjIiwgbGVuZ3RoOiB1bmRlZmluZWR9LCBleHRyYWN0YWJsZSwgWyJl
bmNyeXB0IiwgImRlY3J5cHQiXSknKTsKLXNob3VsZFRocm93KCdjcnlwdG8ud2Via2l0U3VidGxl
LmdlbmVyYXRlS2V5KHtuYW1lOiAiYWVzLWNiYyIsIGxlbmd0aDoge319LCBleHRyYWN0YWJsZSwg
WyJlbmNyeXB0IiwgImRlY3J5cHQiXSknKTsKLQotZGVidWcoIkdlbmVyYXRpbmcgYSBrZXkuLi4i
KTsKLWNyeXB0by53ZWJraXRTdWJ0bGUuZ2VuZXJhdGVLZXkoe25hbWU6ICJhZXMtY2JjIiwgbGVu
Z3RoOiAxMjh9LCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiXSkudGhlbihmdW5j
dGlvbihyZXN1bHQpIHsKLSAgICBrZXkgPSByZXN1bHQ7Ci0KLSAgICBzaG91bGRCZSgia2V5LnR5
cGUiLCAiJ3NlY3JldCciKTsKLSAgICBzaG91bGRCZSgia2V5LmV4dHJhY3RhYmxlIiwgInRydWUi
KTsKLSAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5uYW1lIiwgIidBRVMtQ0JDJyIpOwotICAg
IHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLmxlbmd0aCIsICIxMjgiKTsKLSAgICBzaG91bGRCZSgi
a2V5LnVzYWdlcyIsICJbJ2RlY3J5cHQnLCAnZW5jcnlwdCddIik7Ci0KLSAgICBmaW5pc2hKU1Rl
c3QoKTsKLX0pOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy1pbXBvcnQtandrLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtaW1w
b3J0LWp3ay1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIyMDkzNSkKKysrIExheW91dFRlc3RzL2Ny
eXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy1pbXBvcnQtandrLWV4cGVjdGVkLnR4dAkobm9uZXhp
c3RlbnQpCkBAIC0xLDIwICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzMjogV2ViS2l0
U3VidGxlQ3J5cHRvIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgU3VidGxlQ3J5cHRvIGluc3Rl
YWQuCi1UZXN0IGltcG9ydGluZyBhIEpXSyBrZXkgZm9yIEFFUy1DQkMuCi0KLU9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KLQotCi1JbXBvcnRpbmcgYSBrZXkuLi4KLQotUEFTUyBrZXkudHlwZSBp
cyAnc2VjcmV0JwotUEFTUyBrZXkuZXh0cmFjdGFibGUgaXMgZmFsc2UKLVBBU1Mga2V5LmFsZ29y
aXRobS5uYW1lIGlzICdBRVMtQ0JDJwotUEFTUyBrZXkuYWxnb3JpdGhtLmxlbmd0aCBpcyAxOTIK
LVBBU1Mga2V5LnVzYWdlcyBpcyBbImVuY3J5cHQiXQotCi1Vc2luZyB0aGUga2V5IHRvIGVuY3J5
cHQgcGxhaW50ZXh0Li4uCi1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZW5j
cnlwdGlvblJlc3VsdCkpIGlzICc0ZjAyMWRiMjQzYmM2MzNkNzE3ODE4M2E5ZmEwNzFlOGI0ZDlh
ZGE5YWQ3ZGVkZjRlNWU3Mzg3NjNmNjkxNDVhNTcxYjI0MjAxMmZiN2FlMDdmYTliYWFjM2RmMTAy
ZTAwOGIwZTI3OTg4NTk4ODgxZDkyMGE5ZTY0ZjU2MTVjZDYxMmNjZDc5MjI0YjM1MDkzNWQ0NWRk
NmE5OGY4MTc2JwotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBM
RVRFCi0KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0
bGUvYWVzLWNiYy1pbXBvcnQtandrLWV4cGVjdGVkLnR4dApfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2
bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
cHJvcGVydHkKRGVsZXRlZDogc3ZuOm1pbWUtdHlwZQojIyAtMSArMCwwICMjCi10ZXh0L3BsYWlu
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IExheW91dFRlc3RzL2NyeXB0
by93ZWJraXRTdWJ0bGUvYWVzLWNiYy1pbXBvcnQtandrLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWltcG9ydC1qd2suaHRtbAkocmV2
aXNpb24gMjIwOTM1KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2Jj
LWltcG9ydC1qd2suaHRtbAkobm9uZXhpc3RlbnQpCkBAIC0xLDUyICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9jb21tb24u
anMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4K
LTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3Qg
aW1wb3J0aW5nIGEgSldLIGtleSBmb3IgQUVTLUNCQy4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRy
dWU7Ci0KLXZhciBleHRyYWN0YWJsZSA9IHRydWU7Ci0KLXZhciBpdiA9IGhleFN0cmluZ1RvVWlu
dDhBcnJheSgiMDAwMTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBlMGYiKTsKLXZhciBwbGFpbnRl
eHQgPSBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjZiYzFiZWUyMmU0MDlmOTZlOTNkN2UxMTczOTMx
NzJhYWUyZDhhNTcxZTAzYWM5YzllYjc2ZmFjNDVhZjhlNTEzMGM4MWM0NmEzNWNlNDExZTVmYmMx
MTkxYTBhNTJlZmY2OWYyNDQ1ZGY0ZjliMTdhZDJiNDE3YmU2NmMzNzEwIik7Ci0KLXZhciBqd2tL
ZXkgPSB7Ci0gICAgImt0eSI6ICJvY3QiLAotICAgICJhbGciOiAiQTE5MkNCQyIsCi0gICAgInVz
ZSI6ICJlbmMiLAotICAgICJleHQiOiB0cnVlLAotICAgICJrIjogImpuT3c5OW9PWkZMSUVQTXJn
SkI1NVdMNDZ0SlNMR3Q3IgotfTsKLQotdmFyIGp3a0tleUFzQXJyYXlCdWZmZXIgPSBhc2NpaVRv
VWludDhBcnJheShKU09OLnN0cmluZ2lmeShqd2tLZXkpKTsKLQotZGVidWcoIkltcG9ydGluZyBh
IGtleS4uLlxuIik7Ci1jcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgiandrIiwgandrS2V5
QXNBcnJheUJ1ZmZlciwgbnVsbCwgZmFsc2UsIFsiZW5jcnlwdCJdKS50aGVuKGZ1bmN0aW9uKHJl
c3VsdCkgewotICAgIGtleSA9IHJlc3VsdDsKLQotICAgIHNob3VsZEJlKCJrZXkudHlwZSIsICIn
c2VjcmV0JyIpOwotICAgIHNob3VsZEJlKCJrZXkuZXh0cmFjdGFibGUiLCAiZmFsc2UiKTsKLSAg
ICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5uYW1lIiwgIidBRVMtQ0JDJyIpOwotICAgIHNob3Vs
ZEJlKCJrZXkuYWxnb3JpdGhtLmxlbmd0aCIsICIxOTIiKTsKLSAgICBzaG91bGRCZSgia2V5LnVz
YWdlcyIsICdbImVuY3J5cHQiXScpOwotCi0gICAgZGVidWcoIlxuVXNpbmcgdGhlIGtleSB0byBl
bmNyeXB0IHBsYWludGV4dC4uLiIpOwotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLmVu
Y3J5cHQoe25hbWU6ICJhZXMtY2JjIiwgaXY6IGl2fSwga2V5LCBwbGFpbnRleHQpOwotfSkudGhl
bihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBlbmNyeXB0aW9uUmVzdWx0ID0gcmVzdWx0OwotICAg
IHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGVuY3J5cHRpb25SZXN1
bHQpKSIsICInNGYwMjFkYjI0M2JjNjMzZDcxNzgxODNhOWZhMDcxZThiNGQ5YWRhOWFkN2RlZGY0
ZTVlNzM4NzYzZjY5MTQ1YTU3MWIyNDIwMTJmYjdhZTA3ZmE5YmFhYzNkZjEwMmUwMDhiMGUyNzk4
ODU5ODg4MWQ5MjBhOWU2NGY1NjE1Y2Q2MTJjY2Q3OTIyNGIzNTA5MzVkNDVkZDZhOThmODE3Nici
KTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRt
bD4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUv
YWVzLWNiYy1pbXBvcnQtandrLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46bWltZS10eXBl
CiMjIC0xICswLDAgIyMKLXRleHQvaHRtbApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5
CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtaW52YWxpZC1s
ZW5ndGgtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJr
aXRTdWJ0bGUvYWVzLWNiYy1pbnZhbGlkLWxlbmd0aC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIy
MDkzNSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy1pbnZhbGlk
LWxlbmd0aC1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSwxOCArMCwwIEBACi1DT05T
T0xFIE1FU1NBR0U6IGxpbmUgMjI6IFdlYktpdFN1YnRsZUNyeXB0byBpcyBkZXByZWNhdGVkLiBQ
bGVhc2UgdXNlIFN1YnRsZUNyeXB0byBpbnN0ZWFkLgotVGVzdCBhbiB1bnN1cHBvcnRlZCBBRVMg
a2V5IGxlbmd0aC4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLUltcG9ydGluZyBh
IHJhdyBBRVMga2V5IGZyb20gc3RyaW5nIGxpdGVyYWwuLi4KLVBBU1Mga2V5LnR5cGUgaXMgJ3Nl
Y3JldCcKLVBBU1Mga2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKLVBBU1Mga2V5LmFsZ29yaXRobS5u
YW1lIGlzICdBRVMtQ0JDJwotUEFTUyBrZXkuYWxnb3JpdGhtLmxlbmd0aCBpcyAxNzYKLVBBU1Mg
a2V5LnVzYWdlcyBpcyBbJ2RlY3J5cHQnLCAnZW5jcnlwdCddCi1Vc2luZyB0aGUga2V5IHRvIGVu
Y3J5cHQgcGxhaW50ZXh0Li4uCi1GYWlsZWQsIGFzIGV4cGVjdGVkLiBOb3RlIHRoYXQgdGhlIHNw
ZWMgZG9lc24ndCBhcHBlYXIgdG8gY2xlYXJseSBkZWZpbmUgd2hpY2ggc3RlcCBzaG91bGQgZmFp
bC4KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCklu
ZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtaW52YWxpZC1sZW5n
dGguaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Fl
cy1jYmMtaW52YWxpZC1sZW5ndGguaHRtbAkocmV2aXNpb24gMjIwOTM1KQorKysgTGF5b3V0VGVz
dHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLWludmFsaWQtbGVuZ3RoLmh0bWwJKG5vbmV4
aXN0ZW50KQpAQCAtMSw0MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4K
LTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IGFuIHVuc3VwcG9ydGVkIEFFUyBrZXkg
bGVuZ3RoLiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIGtleURhdGEgPSBoZXhT
dHJpbmdUb1VpbnQ4QXJyYXkoIjhlNzNiMGY3ZGEwZTY0NTJjODEwZjMyYjgwOTA3OWU1NjJmOGVh
ZDI1MjJjIik7Ci12YXIgaXYgPSBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAwMDEwMjAzMDQwNTA2
MDcwODA5MGEwYjBjMGQwZTBmIik7Ci12YXIgcGxhaW50ZXh0ID0gaGV4U3RyaW5nVG9VaW50OEFy
cmF5KCI2YmMxYmVlMjJlNDA5Zjk2ZTkzZDdlMTE3MzkzMTcyYWFlMmQ4YTU3MWUwM2FjOWM5ZWI3
NmZhYzQ1YWY4ZTUxMzBjODFjNDZhMzVjZTQxMWU1ZmJjMTE5MWEwYTUyZWZmNjlmMjQ0NWRmNGY5
YjE3YWQyYjQxN2JlNjZjMzcxMCIpOwotdmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKLQotZGVidWco
IkltcG9ydGluZyBhIHJhdyBBRVMga2V5IGZyb20gc3RyaW5nIGxpdGVyYWwuLi4iKTsKLWNyeXB0
by53ZWJraXRTdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBrZXlEYXRhLCAiYWVzLWNiYyIsIGV4dHJh
Y3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewot
ICAgIGtleSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgia2V5LnR5cGUiLCAiJ3NlY3JldCciKTsK
LSAgICBzaG91bGRCZSgia2V5LmV4dHJhY3RhYmxlIiwgInRydWUiKTsKLSAgICBzaG91bGRCZSgi
a2V5LmFsZ29yaXRobS5uYW1lIiwgIidBRVMtQ0JDJyIpOwotICAgIHNob3VsZEJlKCJrZXkuYWxn
b3JpdGhtLmxlbmd0aCIsICIxNzYiKTsKLSAgICBzaG91bGRCZSgia2V5LnVzYWdlcyIsICJbJ2Rl
Y3J5cHQnLCAnZW5jcnlwdCddIik7Ci0KLSAgICBkZWJ1ZygiVXNpbmcgdGhlIGtleSB0byBlbmNy
eXB0IHBsYWludGV4dC4uLiIpOwotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLmVuY3J5
cHQoe25hbWU6ICJhZXMtY2JjIiwgaXY6IGl2fSwga2V5LCBbcGxhaW50ZXh0XSk7Ci19KS50aGVu
KHVuZGVmaW5lZCwgZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgZGVidWcoIkZhaWxlZCwgYXMgZXhw
ZWN0ZWQuIE5vdGUgdGhhdCB0aGUgc3BlYyBkb2Vzbid0IGFwcGVhciB0byBjbGVhcmx5IGRlZmlu
ZSB3aGljaCBzdGVwIHNob3VsZCBmYWlsLiIpOwotCi0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsK
LTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8v
d2Via2l0U3VidGxlL2Flcy1jYmMtdW53cmFwLWZhaWx1cmUtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy11bndyYXAtZmFp
bHVyZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIyMDkzNSkKKysrIExheW91dFRlc3RzL2NyeXB0
by93ZWJraXRTdWJ0bGUvYWVzLWNiYy11bndyYXAtZmFpbHVyZS1leHBlY3RlZC50eHQJKG5vbmV4
aXN0ZW50KQpAQCAtMSwxNCArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMjM6IFdlYktp
dFN1YnRsZUNyeXB0byBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIFN1YnRsZUNyeXB0byBpbnN0
ZWFkLgotVGVzdCB1bndyYXBwaW5nIGFuIFJTQSBrZXkgd2l0aCBBRVMtQ0JDLgotCi1PbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCi0KLQotSW1wb3J0aW5nIGFuIHVud3JhcHBpbmcga2V5Li4uCi1Q
QVNTIHVud3JhcHBpbmdLZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ0FFUy1DQkMnCi1VbndyYXBwaW5n
IGEga2V5Li4uCi1QQVNTIFByb21pc2UgcmVqZWN0ZWQKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRU
ZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtdW53cmFwLWZhaWx1cmUtZXhwZWN0ZWQu
dHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRp
dmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpEZWxldGVkOiBzdm46bWltZS10eXBl
CiMjIC0xICswLDAgIyMKLXRleHQvcGxhaW4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0
eQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLXVud3JhcC1m
YWlsdXJlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRs
ZS9hZXMtY2JjLXVud3JhcC1mYWlsdXJlLmh0bWwJKHJldmlzaW9uIDIyMDkzNSkKKysrIExheW91
dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy11bndyYXAtZmFpbHVyZS5odG1sCShu
b25leGlzdGVudCkKQEAgLTEsMzggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hl
YWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCB1bndyYXBwaW5nIGFuIFJTQSBr
ZXkgd2l0aCBBRVMtQ0JDLiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIGV4dHJh
Y3RhYmxlID0gdHJ1ZTsKLXZhciBub25FeHRyYWN0YWJsZSA9IGZhbHNlOwotCi12YXIgdW53cmFw
cGluZ0tleU9jdGV0cyA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiMmEwMGUwZTc3NmU5NGU0ZGM4
OWJmOTQ3Y2ViZGViZTEiKTsKLXZhciB3cmFwcGVkS2V5ID0gaGV4U3RyaW5nVG9VaW50OEFycmF5
KCJiNDkwZGVkYjNhYmMzZmQ1NDVlMTQ2NTM4ZTZjYzNjYSIpOyAvLyBBbiBlbXB0eSBlbmNyeXB0
ZWQgSlNPTi4KLQotZGVidWcoIkltcG9ydGluZyBhbiB1bndyYXBwaW5nIGtleS4uLiIpOwotY3J5
cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIHVud3JhcHBpbmdLZXlPY3RldHMsICJB
RVMtQ0JDIiwgbm9uRXh0cmFjdGFibGUsIFsidW53cmFwS2V5Il0pLnRoZW4oZnVuY3Rpb24ocmVz
dWx0KSB7Ci0gICAgdW53cmFwcGluZ0tleSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgidW53cmFw
cGluZ0tleS5hbGdvcml0aG0ubmFtZSIsICInQUVTLUNCQyciKTsKLSAgICB2YXIgdW53cmFwQWxn
b3JpdGhtID0ge25hbWU6ICJBRVMtQ0JDIiwgaXY6IGhleFN0cmluZ1RvVWludDhBcnJheSgiMDAw
MTAyMDMwNDA1MDYwNzA4MDkwYTBiMGMwZDBlMGYiKX07Ci0gICAgZGVidWcoIlVud3JhcHBpbmcg
YSBrZXkuLi4iKTsKLSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS51bndyYXBLZXkoImp3
ayIsIHdyYXBwZWRLZXksIHVud3JhcHBpbmdLZXksIHVud3JhcEFsZ29yaXRobSwgbnVsbCwgZXh0
cmFjdGFibGUsIFsic2lnbiIsICJ2ZXJpZnkiLCAiZW5jcnlwdCIsICJkZWNyeXB0IiwgIndyYXAi
LCAidW53cmFwIl0pOwotfSkudGhlbih1bmRlZmluZWQsIGZ1bmN0aW9uKHJlc3VsdCkgewotICAg
IHRlc3RQYXNzZWQoIlByb21pc2UgcmVqZWN0ZWQiKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0p
OwotCi08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjog
TGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLXVud3JhcC1mYWlsdXJlLmh0
bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpEZWxldGVkOiBzdm46bWltZS10eXBlCiMjIC0xICswLDAgIyMKLXRleHQv
aHRtbApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBMYXlvdXRUZXN0cy9j
cnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtdW53cmFwLXJzYS1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLXVud3JhcC1y
c2EtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMjA5MzUpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8v
d2Via2l0U3VidGxlL2Flcy1jYmMtdW53cmFwLXJzYS1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50
KQpAQCAtMSwyMSArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMzI6IFdlYktpdFN1YnRs
ZUNyeXB0byBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIFN1YnRsZUNyeXB0byBpbnN0ZWFkLgot
VGVzdCB1bndyYXBwaW5nIGFuIFJTQSBrZXkgd2l0aCBBRVMtQ0JDLgotCi1PbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCi0KLQotSW1wb3J0aW5nIGFuIHVud3JhcHBpbmcga2V5Li4uCi1QQVNTIHVu
d3JhcHBpbmdLZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ0FFUy1DQkMnCi1VbndyYXBwaW5nIGEga2V5
Li4uCi1QQVNTIHVud3JhcHBlZEtleS50b1N0cmluZygpIGlzICdbb2JqZWN0IENyeXB0b0tleV0n
Ci1QQVNTIHVud3JhcHBlZEtleS50eXBlIGlzICdwdWJsaWMnCi1QQVNTIHVud3JhcHBlZEtleS51
c2FnZXMgaXMgWydzaWduJywndmVyaWZ5J10KLVBBU1MgdW53cmFwcGVkS2V5LmFsZ29yaXRobS5u
YW1lIGlzICdSU0FTU0EtUEtDUzEtdjFfNScKLVBBU1MgdW53cmFwcGVkS2V5LmFsZ29yaXRobS5t
b2R1bHVzTGVuZ3RoIGlzIDIwNDgKLVBBU1MgQmFzZTY0VVJMLnN0cmluZ2lmeSh1bndyYXBwZWRL
ZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSBpcyBwdWJsaWNLZXlKU09OLmUKLVBBU1MgdW53
cmFwcGVkS2V5LmFsZ29yaXRobS5oYXNoLm5hbWUgaXMgJ1NIQS0yNTYnCi1QQVNTIHVud3JhcHBl
ZEtleS5leHRyYWN0YWJsZSBpcyBmYWxzZQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQotCi1URVNUIENPTVBMRVRFCi0KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2Ny
eXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy11bndyYXAtcnNhLWV4cGVjdGVkLnR4dApfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZlClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKRGVsZXRlZDogc3ZuOm1pbWUtdHlwZQojIyAtMSArMCww
ICMjCi10ZXh0L3BsYWluClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IExh
eW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy11bndyYXAtcnNhLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLXVud3Jh
cC1yc2EuaHRtbAkocmV2aXNpb24gMjIwOTM1KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtp
dFN1YnRsZS9hZXMtY2JjLXVud3JhcC1yc2EuaHRtbAkobm9uZXhpc3RlbnQpCkBAIC0xLDU2ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVz
Y3JpcHRpb24oIlRlc3QgdW53cmFwcGluZyBhbiBSU0Ega2V5IHdpdGggQUVTLUNCQy4iKTsKLQot
anNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBleHRyYWN0YWJsZSA9IHRydWU7Ci12YXIgbm9u
RXh0cmFjdGFibGUgPSBmYWxzZTsKLQotdmFyIHB1YmxpY0tleUpTT04gPSB7Ci0gICAga3R5OiAi
UlNBIiwKLSAgICBhbGc6ICJSUzI1NiIsCi0gICAgbjogInJjQ1VDdjdPYzFIVmFtMURJaEN6cWtu
VGhXYXdPcDhRTGs4Wml5MnAxMEJ5alFGQ2Fqb0ZpeXVBV2wtUjFXWFphZjR4aXRMUnJhY1Q5YWdw
ekl6Yy1NYkxTSElHZ1dRR08yMWxHaUlteTVmdFotRDhiSEFxUnoyeTE1cHpENGM0Q0VvdTdYU1NM
RG9SblIwUUc1TXNEaEQ2czJnVjltd0hrcnRrQ3h0TVdkQmktNzdhczh3R21sTlJsZGNPU2daRExL
OFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0T09FSWIweFVTZlBTejNMUFNDbnlZejY4YURqbUtWZU5ILWln
ODU3T1NjeVdiR3lFeTNCaXc2NHF1bjNqdVVsTldzSjN6bmdrT2R0ZVlXeXR4NVFyNFhLTnM2Ui1N
eXlxNzJLVXAwMm1KRFppaXlpZ2x4TUxfaTMtX0NlZWNDdyIsCi0gICAgZTogIkFRQUIiLAotICAg
IGV4dDogZmFsc2UsCi0gICAgdXNlOiAic2lnIgotfTsKLQotdmFyIHVud3JhcHBpbmdLZXlPY3Rl
dHMgPSBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjJhMDBlMGU3NzZlOTRlNGRjODliZjk0N2NlYmRl
YmUxIik7Ci12YXIgd3JhcHBlZEtleSA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiMzUxMWY2MDI4
ZGIwNGVhOTdlN2NmYWQzYzRjYzYwODM3YmNlZmYyNWNiNmM4ODI5MmZiY2I0NTQ3NTcwYWZkYzMy
ZTQwMDNmZTRkNjVmMWU3ZGY2MGRjMWZkYjNkZjM2YzNmNThhYjIyOGUzM2FhMzEwMDU4NTJkNDZk
MGMyYWQxMzE4NDM1YTA3MWJiYjViYmIwNTY1MGVhNjNkNTUxNjk4YjBjMDQwZGQ5NWVkMGQzNzli
NWUyZWNjYjU0NWFlNTYyMGFjYjgwNTExNzRjZDJhZDY0NzMyOGFkOTlkY2Q0NjJmZWM0MDc0ODcy
NGViMWU2OGYyMDlmNzc5ZmFhMmMzNWI0ZDRkMWI2NjA0YTc0ZTYyYTE4NDYyNDllYTYxOTI5NTRh
NWFmMTBjNzFlYmZlYTc5OTQ4MTQyNDQxZWQzMDdlOWY1MmU3OTdhNTFhODAwN2E2Zjg3YjU3YzUx
ZjllN2VlZjU0YjdlNGExZjgxOGJhNmFjMjVlZTU5MzVjMjNiMzI1M2Q2ZDlkMjIyMjYyYzc5Y2Nk
YjcxNDdkOWMwNzUyN2MyMmZlN2E0YWI5MWFmMjA0NzllZGY1OTMwYjNjMDUzYzBhMGIyNzA5MmNm
YjUzMjAzNjMzZDAxZGNmNmUzMzNiNWJlN2MxOTMzYzMyMWM5NTNmOTYyYjkzNGViZWZkOWRmOGNj
YTZjMGEyNWZjZDVmYjk2MTA1NDM1YzQyZDk5MDI0MDZmODJiYzhkYWE4ZWMxMmZhODVkOWFmYTY1
YWRiZmUzZjYwODI4ZWY2NGFkYWY0M2FkOGUzYjBhZjEwNGNiZmFmZDk5NDMyMzczMmJiYTA4Zjg0
ZDVjYWMxZDE1N2IyNzYyMzNkZmZlY2FmZTQ3OTQyYjgzYzg1ZWFkNmQ1ODg2YzZiYWRmNTM0ZDRh
MzJkM2Y1NDVlODAzMmRkNWU0MTlkN2JmZjNhY2RlMmMzN2E5NmZjMzRmZGE4NzQ3ZDg5NTAwYmY5
ZjdlZjQ1ODczYzZiM2IyNzQxYWFmNzRmZjk2YTJmOTUwMDI4ZjM4ZWI2MmYxYmU5MzZmZTBhOTk0
ZWJmYTkyODAyMWMwYzk2MTcyZDg0NTg0ZSIpOwotCi1kZWJ1ZygiSW1wb3J0aW5nIGFuIHVud3Jh
cHBpbmcga2V5Li4uIik7Ci1jcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgicmF3IiwgdW53
cmFwcGluZ0tleU9jdGV0cywgIkFFUy1DQkMiLCBub25FeHRyYWN0YWJsZSwgWyJ1bndyYXBLZXki
XSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICB1bndyYXBwaW5nS2V5ID0gcmVzdWx0Owot
ICAgIHNob3VsZEJlKCJ1bndyYXBwaW5nS2V5LmFsZ29yaXRobS5uYW1lIiwgIidBRVMtQ0JDJyIp
OwotICAgIHZhciB1bndyYXBBbGdvcml0aG0gPSB7bmFtZTogIkFFUy1DQkMiLCBpdjogaGV4U3Ry
aW5nVG9VaW50OEFycmF5KCIwMDAxMDIwMzA0MDUwNjA3MDgwOTBhMGIwYzBkMGUwZiIpfTsKLSAg
ICBkZWJ1ZygiVW53cmFwcGluZyBhIGtleS4uLiIpOwotICAgIHJldHVybiBjcnlwdG8ud2Via2l0
U3VidGxlLnVud3JhcEtleSgiandrIiwgd3JhcHBlZEtleSwgdW53cmFwcGluZ0tleSwgdW53cmFw
QWxnb3JpdGhtLCBudWxsLCBleHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSIsICJlbmNyeXB0
IiwgImRlY3J5cHQiLCAid3JhcCIsICJ1bndyYXAiXSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3Vs
dCkgewotICAgIHVud3JhcHBlZEtleSA9IHJlc3VsdDsKLQotICAgIHNob3VsZEJlKCJ1bndyYXBw
ZWRLZXkudG9TdHJpbmcoKSIsICInW29iamVjdCBDcnlwdG9LZXldJyIpOwotICAgIHNob3VsZEJl
KCJ1bndyYXBwZWRLZXkudHlwZSIsICIncHVibGljJyIpOwotICAgIHNob3VsZEJlKCJ1bndyYXBw
ZWRLZXkudXNhZ2VzIiwgIlsnc2lnbicsJ3ZlcmlmeSddIik7Ci0gICAgc2hvdWxkQmUoInVud3Jh
cHBlZEtleS5hbGdvcml0aG0ubmFtZSIsICInUlNBU1NBLVBLQ1MxLXYxXzUnIik7Ci0gICAgc2hv
dWxkQmUoInVud3JhcHBlZEtleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCIsICIyMDQ4Iik7Ci0g
ICAgc2hvdWxkQmUoIkJhc2U2NFVSTC5zdHJpbmdpZnkodW53cmFwcGVkS2V5LmFsZ29yaXRobS5w
dWJsaWNFeHBvbmVudCkiLCAicHVibGljS2V5SlNPTi5lIik7Ci0gICAgc2hvdWxkQmUoInVud3Jh
cHBlZEtleS5hbGdvcml0aG0uaGFzaC5uYW1lIiwgIidTSEEtMjU2JyIpOwotICAgIHNob3VsZEJl
KCJ1bndyYXBwZWRLZXkuZXh0cmFjdGFibGUiLCAiZmFsc2UiKTsKLSAgICBmaW5pc2hKU1Rlc3Qo
KTsKLX0pOwotCi08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgoKUHJvcGVydHkgY2hhbmdl
cyBvbjogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLXVud3JhcC1yc2Eu
aHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjptaW1lLXR5cGUKIyMgLTEgKzAsMCAjIwotdGV4
dC9odG1sClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IExheW91dFRlc3Rz
L2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy13cmFwLXJzYS1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLXdyYXAtcnNh
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjIwOTM1KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dl
YmtpdFN1YnRsZS9hZXMtY2JjLXdyYXAtcnNhLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCkBA
IC0xLDE1ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAzMjogV2ViS2l0U3VidGxlQ3J5
cHRvIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgU3VidGxlQ3J5cHRvIGluc3RlYWQuCi1UZXN0
IHdyYXBwaW5nIGFuIFJTQSBrZXkgd2l0aCBBRVMtQ0JDLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCi0KLQotSW1wb3J0aW5nIGEga2V5IHRvIHdyYXAuLi4KLVBBU1Mga2V5LmFsZ29yaXRo
bS5uYW1lIGlzICdSU0FTU0EtUEtDUzEtdjFfNScKLUltcG9ydGluZyBhIGtleSBlbmNyeXB0aW9u
IGtleS4uLgotUEFTUyB3cmFwcGluZ0tleS5hbGdvcml0aG0ubmFtZSBpcyAnQUVTLUNCQycKLVBB
U1Mgd3JhcHBlZEtleS50b1N0cmluZygpIGlzICdbb2JqZWN0IEFycmF5QnVmZmVyXScKLVBBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCgpQcm9wZXJ0eSBj
aGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1jYmMtd3JhcC1y
c2EtZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSAr
MCwwICMjCi1uYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpEZWxldGVkOiBz
dm46bWltZS10eXBlCiMjIC0xICswLDAgIyMKLXRleHQvcGxhaW4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBwcm9wZXJ0eQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMt
Y2JjLXdyYXAtcnNhLW5vbi1leHRyYWN0YWJsZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLXdyYXAtcnNhLW5vbi1leHRy
YWN0YWJsZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIyMDkzNSkKKysrIExheW91dFRlc3RzL2Ny
eXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy13cmFwLXJzYS1ub24tZXh0cmFjdGFibGUtZXhwZWN0
ZWQudHh0CShub25leGlzdGVudCkKQEAgLTEsMTYgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBs
aW5lIDMyOiBXZWJLaXRTdWJ0bGVDcnlwdG8gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBTdWJ0
bGVDcnlwdG8gaW5zdGVhZC4KLVRlc3Qgd3JhcHBpbmcgYW4gUlNBIGtleSB3aXRoIEFFUy1DQkMu
Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1JbXBvcnRpbmcgYSBrZXkgdG8gd3Jh
cC4uLgotUEFTUyBrZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ1JTQVNTQS1QS0NTMS12MV81JwotSW1w
b3J0aW5nIGEga2V5IGVuY3J5cHRpb24ga2V5Li4uCi1QQVNTIHdyYXBwaW5nS2V5LmFsZ29yaXRo
bS5uYW1lIGlzICdBRVMtQ0JDJwotd3JhcHBpbmcgdGhlIGtleS4uLgotUEFTUyBSZWplY3RlZAot
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KClByb3Bl
cnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy13
cmFwLXJzYS1ub24tZXh0cmFjdGFibGUtZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDog
c3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBwcm9wZXJ0eQpEZWxldGVkOiBzdm46bWltZS10eXBlCiMjIC0xICswLDAgIyMKLXRleHQvcGxh
aW4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogTGF5b3V0VGVzdHMvY3J5
cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLXdyYXAtcnNhLW5vbi1leHRyYWN0YWJsZS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy13cmFw
LXJzYS1ub24tZXh0cmFjdGFibGUuaHRtbAkocmV2aXNpb24gMjIwOTM1KQorKysgTGF5b3V0VGVz
dHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLXdyYXAtcnNhLW5vbi1leHRyYWN0YWJsZS5o
dG1sCShub25leGlzdGVudCkKQEAgLTEsNTIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCB3cmFwcGluZyBhbiBS
U0Ega2V5IHdpdGggQUVTLUNCQy4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBl
eHRyYWN0YWJsZSA9IHRydWU7Ci12YXIgbm9uRXh0cmFjdGFibGUgPSBmYWxzZTsKLQotdmFyIHB1
YmxpY0tleUpTT04gPSB7Ci0gICAga3R5OiAiUlNBIiwKLSAgICBhbGc6ICJSUzI1NiIsCi0gICAg
bjogInJjQ1VDdjdPYzFIVmFtMURJaEN6cWtuVGhXYXdPcDhRTGs4Wml5MnAxMEJ5alFGQ2Fqb0Zp
eXVBV2wtUjFXWFphZjR4aXRMUnJhY1Q5YWdwekl6Yy1NYkxTSElHZ1dRR08yMWxHaUlteTVmdFot
RDhiSEFxUnoyeTE1cHpENGM0Q0VvdTdYU1NMRG9SblIwUUc1TXNEaEQ2czJnVjltd0hrcnRrQ3h0
TVdkQmktNzdhczh3R21sTlJsZGNPU2daRExLOFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0T09FSWIweFVT
ZlBTejNMUFNDbnlZejY4YURqbUtWZU5ILWlnODU3T1NjeVdiR3lFeTNCaXc2NHF1bjNqdVVsTldz
SjN6bmdrT2R0ZVlXeXR4NVFyNFhLTnM2Ui1NeXlxNzJLVXAwMm1KRFppaXlpZ2x4TUxfaTMtX0Nl
ZWNDdyIsCi0gICAgZTogIkFRQUIiLAotICAgIGV4dDogZmFsc2UsCi0gICAgdXNlOiAic2lnIgot
fTsKLQotdmFyIGp3a0tleUFzQXJyYXlCdWZmZXIgPSBhc2NpaVRvVWludDhBcnJheShKU09OLnN0
cmluZ2lmeShwdWJsaWNLZXlKU09OKSk7Ci12YXIgd3JhcHBpbmdLZXlPY3RldHMgPSBoZXhTdHJp
bmdUb1VpbnQ4QXJyYXkoIjJhMDBlMGU3NzZlOTRlNGRjODliZjk0N2NlYmRlYmUxIik7Ci0KLWRl
YnVnKCJJbXBvcnRpbmcgYSBrZXkgdG8gd3JhcC4uLiIpOwotY3J5cHRvLndlYmtpdFN1YnRsZS5p
bXBvcnRLZXkoImp3ayIsIGp3a0tleUFzQXJyYXlCdWZmZXIsIG51bGwsIGV4dHJhY3RhYmxlLCBb
InNpZ24iLCAidmVyaWZ5Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAga2V5ID0gcmVz
dWx0OwotICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ1JTQVNTQS1QS0NTMS12
MV81JyIpOwotICAgIGRlYnVnKCJJbXBvcnRpbmcgYSBrZXkgZW5jcnlwdGlvbiBrZXkuLi4iKTsK
LSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIHdyYXBwaW5n
S2V5T2N0ZXRzLCAiQUVTLUNCQyIsIG5vbkV4dHJhY3RhYmxlLCBbIndyYXBLZXkiXSk7Ci19KS50
aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHdyYXBwaW5nS2V5ID0gcmVzdWx0OwotICAgIHNo
b3VsZEJlKCJ3cmFwcGluZ0tleS5hbGdvcml0aG0ubmFtZSIsICInQUVTLUNCQyciKTsKLSAgICB2
YXIgd3JhcEFsZ29yaXRobSA9IHtuYW1lOiAiQUVTLUNCQyIsIGl2OiBoZXhTdHJpbmdUb1VpbnQ4
QXJyYXkoIjAwMDEwMjAzMDQwNTA2MDcwODA5MGEwYjBjMGQwZTBmIil9OwotICAgIGRlYnVnKCJ3
cmFwcGluZyB0aGUga2V5Li4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUud3Jh
cEtleSgiandrIiwga2V5LCB3cmFwcGluZ0tleSwgd3JhcEFsZ29yaXRobSk7Ci19KS50aGVuKHVu
ZGVmaW5lZCwgZnVuY3Rpb24oKSB7Ci0gICAgdGVzdFBhc3NlZCgiUmVqZWN0ZWQiKTsKLSAgICBm
aW5pc2hKU1Rlc3QoKTsKLX0pOwotCi08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgoKUHJv
cGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2Jj
LXdyYXAtcnNhLW5vbi1leHRyYWN0YWJsZS5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOm1p
bWUtdHlwZQojIyAtMSArMCwwICMjCi10ZXh0L2h0bWwKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBw
cm9wZXJ0eQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLXdy
YXAtcnNhLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRs
ZS9hZXMtY2JjLXdyYXAtcnNhLmh0bWwJKHJldmlzaW9uIDIyMDkzNSkKKysrIExheW91dFRlc3Rz
L2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy13cmFwLXJzYS5odG1sCShub25leGlzdGVudCkK
QEAgLTEsNTIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4K
LTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxz
Y3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCB3cmFwcGluZyBhbiBSU0Ega2V5IHdpdGggQUVTLUNC
Qy4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBleHRyYWN0YWJsZSA9IHRydWU7
Ci12YXIgbm9uRXh0cmFjdGFibGUgPSBmYWxzZTsKLQotdmFyIHB1YmxpY0tleUpTT04gPSB7Ci0g
ICAga3R5OiAiUlNBIiwKLSAgICBhbGc6ICJSUzI1NiIsCi0gICAgbjogInJjQ1VDdjdPYzFIVmFt
MURJaEN6cWtuVGhXYXdPcDhRTGs4Wml5MnAxMEJ5alFGQ2Fqb0ZpeXVBV2wtUjFXWFphZjR4aXRM
UnJhY1Q5YWdwekl6Yy1NYkxTSElHZ1dRR08yMWxHaUlteTVmdFotRDhiSEFxUnoyeTE1cHpENGM0
Q0VvdTdYU1NMRG9SblIwUUc1TXNEaEQ2czJnVjltd0hrcnRrQ3h0TVdkQmktNzdhczh3R21sTlJs
ZGNPU2daRExLOFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0T09FSWIweFVTZlBTejNMUFNDbnlZejY4YURq
bUtWZU5ILWlnODU3T1NjeVdiR3lFeTNCaXc2NHF1bjNqdVVsTldzSjN6bmdrT2R0ZVlXeXR4NVFy
NFhLTnM2Ui1NeXlxNzJLVXAwMm1KRFppaXlpZ2x4TUxfaTMtX0NlZWNDdyIsCi0gICAgZTogIkFR
QUIiLAotICAgIGV4dDogdHJ1ZSwKLSAgICB1c2U6ICJzaWciCi19OwotCi12YXIgandrS2V5QXNB
cnJheUJ1ZmZlciA9IGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5KHB1YmxpY0tleUpT
T04pKTsKLXZhciB3cmFwcGluZ0tleU9jdGV0cyA9IGhleFN0cmluZ1RvVWludDhBcnJheSgiMmEw
MGUwZTc3NmU5NGU0ZGM4OWJmOTQ3Y2ViZGViZTEiKTsKLQotZGVidWcoIkltcG9ydGluZyBhIGtl
eSB0byB3cmFwLi4uIik7Ci1jcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgiandrIiwgandr
S2V5QXNBcnJheUJ1ZmZlciwgbnVsbCwgZXh0cmFjdGFibGUsIFsic2lnbiIsICJ2ZXJpZnkiXSku
dGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBrZXkgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUo
ImtleS5hbGdvcml0aG0ubmFtZSIsICInUlNBU1NBLVBLQ1MxLXYxXzUnIik7Ci0gICAgZGVidWco
IkltcG9ydGluZyBhIGtleSBlbmNyeXB0aW9uIGtleS4uLiIpOwotICAgIHJldHVybiBjcnlwdG8u
d2Via2l0U3VidGxlLmltcG9ydEtleSgicmF3Iiwgd3JhcHBpbmdLZXlPY3RldHMsICJBRVMtQ0JD
Iiwgbm9uRXh0cmFjdGFibGUsIFsid3JhcEtleSJdKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0
KSB7Ci0gICAgd3JhcHBpbmdLZXkgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoIndyYXBwaW5nS2V5
LmFsZ29yaXRobS5uYW1lIiwgIidBRVMtQ0JDJyIpOwotICAgIHZhciB3cmFwQWxnb3JpdGhtID0g
e25hbWU6ICJBRVMtQ0JDIiwgaXY6IGhleFN0cmluZ1RvVWludDhBcnJheSgiMDAwMTAyMDMwNDA1
MDYwNzA4MDkwYTBiMGMwZDBlMGYiKX07Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUu
d3JhcEtleSgiandrIiwga2V5LCB3cmFwcGluZ0tleSwgd3JhcEFsZ29yaXRobSk7Ci19KS50aGVu
KGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHdyYXBwZWRLZXkgPSByZXN1bHQ7Ci0gICAgc2hvdWxk
QmUoIndyYXBwZWRLZXkudG9TdHJpbmcoKSIsICInW29iamVjdCBBcnJheUJ1ZmZlcl0nIik7Ci0g
ICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLQotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4K
ClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVz
LWNiYy13cmFwLXJzYS5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOm1pbWUtdHlwZQojIyAt
MSArMCwwICMjCi10ZXh0L2h0bWwKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRl
eDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLXdyb25nLWtleS1jbGFz
cy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1
YnRsZS9hZXMtY2JjLXdyb25nLWtleS1jbGFzcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIyMDkz
NSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWNiYy13cm9uZy1rZXkt
Y2xhc3MtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKQEAgLTEsMTMgKzAsMCBAQAotQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDIyOiBXZWJLaXRTdWJ0bGVDcnlwdG8gaXMgZGVwcmVjYXRlZC4gUGxl
YXNlIHVzZSBTdWJ0bGVDcnlwdG8gaW5zdGVhZC4KLVRlc3QgY2FsbGluZyBBRVMtQ0JDIGVuY3J5
cHQgd2l0aCBhIEhNQUMga2V5LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotSW1w
b3J0aW5nIGEgcmF3IEhNQUMga2V5IGZyb20gc3RyaW5nIGxpdGVyYWwuLi4KLVVzaW5nIHRoZSBr
ZXkgdG8gZW5jcnlwdCBwbGFpbnRleHQuLi4KLVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5lbmNy
eXB0KHtuYW1lOiAiYWVzLWNiYyIsIGl2OiBpdn0sIGtleSwgcGxhaW50ZXh0KSB0aHJldyBleGNl
cHRpb24gTm90U3VwcG9ydGVkRXJyb3I6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4u
Ci1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRl
eDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLXdyb25nLWtleS1jbGFz
cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVz
LWNiYy13cm9uZy1rZXktY2xhc3MuaHRtbAkocmV2aXNpb24gMjIwOTM1KQorKysgTGF5b3V0VGVz
dHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtY2JjLXdyb25nLWtleS1jbGFzcy5odG1sCShub25l
eGlzdGVudCkKQEAgLTEsMzMgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFk
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+
Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBjYWxsaW5nIEFFUy1DQkMgZW5jcnlw
dCB3aXRoIGEgSE1BQyBrZXkuIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi12YXIgaXYg
PSBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAwMDEwMjAzMDQwNTA2MDcwODA5MGEwYjBjMGQwZTBm
Iik7Ci12YXIgcGxhaW50ZXh0ID0gaGV4U3RyaW5nVG9VaW50OEFycmF5KCI2YmMxYmVlMjJlNDA5
Zjk2ZTkzZDdlMTE3MzkzMTcyYWFlMmQ4YTU3MWUwM2FjOWM5ZWI3NmZhYzQ1YWY4ZTUxMzBjODFj
NDZhMzVjZTQxMWU1ZmJjMTE5MWEwYTUyZWZmNjlmMjQ0NWRmNGY5YjE3YWQyYjQxN2JlNjZjMzcx
MCIpOwotdmFyIGhtYWNLZXkgPSBhc2NpaVRvVWludDhBcnJheSgnYScpOwotdmFyIGV4dHJhY3Rh
YmxlID0gdHJ1ZTsKLQotZGVidWcoIkltcG9ydGluZyBhIHJhdyBITUFDIGtleSBmcm9tIHN0cmlu
ZyBsaXRlcmFsLi4uIik7Ci1jcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgicmF3IiwgaG1h
Y0tleSwge25hbWU6ICdobWFjJywgaGFzaDoge25hbWU6ICdzaGEtMSd9fSwgZXh0cmFjdGFibGUs
IFsic2lnbiIsICJ2ZXJpZnkiLCAiZW5jcnlwdCIsICJkZWNyeXB0Il0pLnRoZW4oZnVuY3Rpb24o
cmVzdWx0KSB7Ci0gICAga2V5ID0gcmVzdWx0OwotICAgIGRlYnVnKCJVc2luZyB0aGUga2V5IHRv
IGVuY3J5cHQgcGxhaW50ZXh0Li4uIik7Ci0gICAgc2hvdWxkVGhyb3coJ2NyeXB0by53ZWJraXRT
dWJ0bGUuZW5jcnlwdCh7bmFtZTogImFlcy1jYmMiLCBpdjogaXZ9LCBrZXksIHBsYWludGV4dCkn
KQotCi0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1leHBvcnQta2V5
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3Vi
dGxlL2Flcy1leHBvcnQta2V5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjIwOTM1KQorKysgTGF5
b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtZXhwb3J0LWtleS1leHBlY3RlZC50eHQJ
KG5vbmV4aXN0ZW50KQpAQCAtMSwzOSArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNjE2
OiBXZWJLaXRTdWJ0bGVDcnlwdG8gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBTdWJ0bGVDcnlw
dG8gaW5zdGVhZC4KLVRlc3QgZXhwb3J0aW5nIGFuIEFFUyBrZXkuCi0KLU9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KLQotCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUuZXhwb3J0S2V5KCJyYXci
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KLVBBU1Mg
Y3J5cHRvLndlYmtpdFN1YnRsZS5leHBvcnRLZXkoInJhdyIsIG51bGwpIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IFR5cGUgZXJyb3IuCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUuZXhwb3J0
S2V5KCJyYXciLCB1bmRlZmluZWQpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJy
b3IuCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUuZXhwb3J0S2V5KCJyYXciLCB7fSkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgY3J5cHRvLndlYmtpdFN1YnRs
ZS5leHBvcnRLZXkoInJhdyIsIDEpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFR5cGUgZXJy
b3IuCi0KLUltcG9ydGluZyBhIEpXSyBrZXkuLi4KLVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5l
eHBvcnRLZXkobnVsbCwga2V5KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBVbmtub3duIGtl
eSBmb3JtYXQuCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUuZXhwb3J0S2V5KHVuZGVmaW5lZCwg
a2V5KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBVbmtub3duIGtleSBmb3JtYXQuCi1QQVNT
IGNyeXB0by53ZWJraXRTdWJ0bGUuZXhwb3J0S2V5KHt9LCBrZXkpIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IFVua25vd24ga2V5IGZvcm1hdC4KLVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5l
eHBvcnRLZXkoIiIsIGtleSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVW5rbm93biBrZXkg
Zm9ybWF0LgotUEFTUyBjcnlwdG8ud2Via2l0U3VidGxlLmV4cG9ydEtleSgiZm9vYmFyIiwga2V5
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBVbmtub3duIGtleSBmb3JtYXQuCi0KLUV4cG9y
dGluZyB0aGUga2V5IGFzIHJhdyBkYXRhLi4uCi1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcobmV3IFVp
bnQ4QXJyYXkoZXhwb3J0ZWREYXRhKSkgaXMgJzhlNzNiMGY3ZGEwZTY0NTJjODEwZjMyYjgwOTA3
OWU1NjJmOGVhZDI1MjJjNmI3YicKLUV4cG9ydGluZyB0aGUga2V5IGFzIEpXSy4uLgotUEFTUyBl
eHBvcnRlZEpXSy5rdHkgaXMgJ29jdCcKLVBBU1MgZXhwb3J0ZWRKV0suayBpcyAnam5Pdzk5b09a
RkxJRVBNcmdKQjU1V0w0NnRKU0xHdDcnCi1QQVNTIGV4cG9ydGVkSldLLmFsZyBpcyAnQTE5MkNC
QycKLVBBU1MgZXhwb3J0ZWRKV0suZXh0IGlzIHRydWUKLVBBU1MgZXhwb3J0ZWRKV0sudXNlIGlz
IHVuZGVmaW5lZAotUEFTUyBleHBvcnRlZEpXSy5rZXlfb3BzIGlzIFsnZW5jcnlwdCcsICdkZWNy
eXB0JywgJ3dyYXBLZXknLCAndW53cmFwS2V5J10KLQotSW1wb3J0aW5nIGEga2V5IHRoYXQncyBu
b3QgZXh0cmFjdGFibGUuLi4KLQotVHJ5aW5nIHRvIGV4cG9ydCBhcyByYXcuLi4KLVBBU1MgUmVq
ZWN0ZWQsIGFzIGV4cGVjdGVkCi1UcnlpbmcgdG8gZXhwb3J0IGFzIGp3ay4uLgotUEFTUyBSZWpl
Y3RlZCwgYXMgZXhwZWN0ZWQKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVT
VCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1l
eHBvcnQta2V5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1
YnRsZS9hZXMtZXhwb3J0LWtleS5odG1sCShyZXZpc2lvbiAyMjA5MzUpCisrKyBMYXlvdXRUZXN0
cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1leHBvcnQta2V5Lmh0bWwJKG5vbmV4aXN0ZW50KQpA
QCAtMSw4NiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi9yZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5Pgot
PHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNj
cmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IGV4cG9ydGluZyBhbiBBRVMga2V5LiIpOwotCi1qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKLXZhciBub25FeHRy
YWN0YWJsZSA9IGZhbHNlOwotCi12YXIgandrS2V5ID0gewotICAgIGt0eTogIm9jdCIsCi0gICAg
azogImpuT3c5OW9PWkZMSUVQTXJnSkI1NVdMNDZ0SlNMR3Q3IgotfTsKLQotdmFyIGp3a0tleUFz
QXJyYXlCdWZmZXIgPSBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShqd2tLZXkpKTsK
LQotc2hvdWxkVGhyb3coJ2NyeXB0by53ZWJraXRTdWJ0bGUuZXhwb3J0S2V5KCJyYXciKScpOwot
c2hvdWxkVGhyb3coJ2NyeXB0by53ZWJraXRTdWJ0bGUuZXhwb3J0S2V5KCJyYXciLCBudWxsKScp
Owotc2hvdWxkVGhyb3coJ2NyeXB0by53ZWJraXRTdWJ0bGUuZXhwb3J0S2V5KCJyYXciLCB1bmRl
ZmluZWQpJyk7Ci1zaG91bGRUaHJvdygnY3J5cHRvLndlYmtpdFN1YnRsZS5leHBvcnRLZXkoInJh
dyIsIHt9KScpOwotc2hvdWxkVGhyb3coJ2NyeXB0by53ZWJraXRTdWJ0bGUuZXhwb3J0S2V5KCJy
YXciLCAxKScpOwotCi1kZWJ1ZygiXG5JbXBvcnRpbmcgYSBKV0sga2V5Li4uIik7Ci1jcnlwdG8u
d2Via2l0U3VidGxlLmltcG9ydEtleSgiandrIiwgandrS2V5QXNBcnJheUJ1ZmZlciwgIkFFUy1D
QkMiLCBleHRyYWN0YWJsZSwgWydlbmNyeXB0JywgJ2RlY3J5cHQnLCAnd3JhcEtleScsICd1bndy
YXBLZXknXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBrZXkgPSByZXN1bHQ7Ci0KLSAg
ICBzaG91bGRUaHJvdygnY3J5cHRvLndlYmtpdFN1YnRsZS5leHBvcnRLZXkobnVsbCwga2V5KScp
OwotICAgIHNob3VsZFRocm93KCdjcnlwdG8ud2Via2l0U3VidGxlLmV4cG9ydEtleSh1bmRlZmlu
ZWQsIGtleSknKTsKLSAgICBzaG91bGRUaHJvdygnY3J5cHRvLndlYmtpdFN1YnRsZS5leHBvcnRL
ZXkoe30sIGtleSknKTsKLSAgICBzaG91bGRUaHJvdygnY3J5cHRvLndlYmtpdFN1YnRsZS5leHBv
cnRLZXkoIiIsIGtleSknKTsKLSAgICBzaG91bGRUaHJvdygnY3J5cHRvLndlYmtpdFN1YnRsZS5l
eHBvcnRLZXkoImZvb2JhciIsIGtleSknKTsKLQotICAgIGRlYnVnKCJcbkV4cG9ydGluZyB0aGUg
a2V5IGFzIHJhdyBkYXRhLi4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUuZXhw
b3J0S2V5KCJyYXciLCBrZXkpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBleHBv
cnRlZERhdGEgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVp
bnQ4QXJyYXkoZXhwb3J0ZWREYXRhKSkiLCAiJzhlNzNiMGY3ZGEwZTY0NTJjODEwZjMyYjgwOTA3
OWU1NjJmOGVhZDI1MjJjNmI3YiciKTsKLQotICAgIGRlYnVnKCJFeHBvcnRpbmcgdGhlIGtleSBh
cyBKV0suLi4iKTsKLSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS5leHBvcnRLZXkoImp3
ayIsIGtleSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGV4cG9ydGVkSldLID0g
SlNPTi5wYXJzZShieXRlc1RvQVNDSUlTdHJpbmcocmVzdWx0KSk7Ci0gICAgc2hvdWxkQmUoImV4
cG9ydGVkSldLLmt0eSIsICInb2N0JyIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5rIiwg
Iidqbk93OTlvT1pGTElFUE1yZ0pCNTVXTDQ2dEpTTEd0NyciKTsKLSAgICBzaG91bGRCZSgiZXhw
b3J0ZWRKV0suYWxnIiwgIidBMTkyQ0JDJyIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5l
eHQiLCAidHJ1ZSIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy51c2UiLCAidW5kZWZpbmVk
Iik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmtleV9vcHMiLCAiWydlbmNyeXB0JywgJ2Rl
Y3J5cHQnLCAnd3JhcEtleScsICd1bndyYXBLZXknXSIpOwotCi0gICAgZGVidWcoIlxuSW1wb3J0
aW5nIGEga2V5IHRoYXQncyBub3QgZXh0cmFjdGFibGUuLi4iKTsKLSAgICByZXR1cm4gY3J5cHRv
LndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGp3a0tleUFzQXJyYXlCdWZmZXIsICJBRVMt
Q0JDIiwgbm9uRXh0cmFjdGFibGUsIFsnZW5jcnlwdCcsICdkZWNyeXB0JywgJ3dyYXBLZXknLCAn
dW53cmFwS2V5J10pCi19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGtleSA9IHJlc3Vs
dDsKLQotICAgIGRlYnVnKCJcblRyeWluZyB0byBleHBvcnQgYXMgcmF3Li4uIik7Ci0gICAgcmV0
dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUuZXhwb3J0S2V5KCJyYXciLCBrZXkpOwotfSkudGhlbihm
dW5jdGlvbihyZXN1bHQpIHsKLSAgICB0ZXN0RmFpbGVkKCJQcm9taXNlIHdhc24ndCByZWplY3Rl
ZCIpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSwgZnVuY3Rpb24oKSB7Ci0gICAgdGVzdFBhc3Nl
ZCgiUmVqZWN0ZWQsIGFzIGV4cGVjdGVkIik7Ci0KLSAgICBkZWJ1ZygiVHJ5aW5nIHRvIGV4cG9y
dCBhcyBqd2suLi4iKTsKLSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS5leHBvcnRLZXko
Imp3ayIsIGtleSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHRlc3RGYWlsZWQo
IlByb21pc2Ugd2Fzbid0IHJlamVjdGVkIik7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19LCBmdW5j
dGlvbigpIHsKLSAgICB0ZXN0UGFzc2VkKCJSZWplY3RlZCwgYXMgZXhwZWN0ZWQiKTsKLQotICAg
IGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgoKUHJv
cGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtZXhw
b3J0LWtleS5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOm1pbWUtdHlwZQojIyAtMSArMCww
ICMjCi10ZXh0L2h0bWwKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogTGF5
b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMta3cta2V5LW1hbmlwdWxhdGlvbi1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9h
ZXMta3cta2V5LW1hbmlwdWxhdGlvbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIyMDkzNSkKKysr
IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWt3LWtleS1tYW5pcHVsYXRpb24t
ZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKQEAgLTEsMjYgKzAsMCBAQAotQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDE5OiBXZWJLaXRTdWJ0bGVDcnlwdG8gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVz
ZSBTdWJ0bGVDcnlwdG8gaW5zdGVhZC4KLVRlc3QgZ2VuZXJhdGluZywgaW1wb3J0aW5nIGFuZCBl
eHBvcnRpbmcga2V5cyBmb3IgQUVTLUtXLiBUZXN0IHRoYXQgdGhleSBjYW4ndCBiZSB1c2VkIHdp
dGggYW5vdGhlciBhbGdvcml0aG0uCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1H
ZW5lcmF0aW5nIGEga2V5Li4uCi1QQVNTIGtleS50b1N0cmluZygpIGlzICdbb2JqZWN0IENyeXB0
b0tleV0nCi1QQVNTIGtleS50eXBlIGlzICdzZWNyZXQnCi1QQVNTIGtleS5hbGdvcml0aG0ubmFt
ZSBpcyAnQUVTLUtXJwotUEFTUyBrZXkuYWxnb3JpdGhtLmxlbmd0aCBpcyAyNTYKLQotVGVzdGlu
ZyB0aGF0IHRoZSBrZXkgY2FuJ3QgYmUgdXNlZCB3aXRoIEFFUy1DQkMuLi4KLVBBU1MgY3J5cHRv
LndlYmtpdFN1YnRsZS5lbmNyeXB0KHtuYW1lOiAiYWVzLWNiYyIsIGl2OiBpdn0sIGtleSwgaGV4
U3RyaW5nVG9VaW50OEFycmF5KCIwMCIpKSB0aHJldyBleGNlcHRpb24gTm90U3VwcG9ydGVkRXJy
b3I6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4uCi0KLUV4cG9ydGluZyB0aGUga2V5
IHRvIHJhdy4uLgotUEFTUyBleHBvcnRlZEtleS50b1N0cmluZygpIGlzICdbb2JqZWN0IEFycmF5
QnVmZmVyXScKLUltcG9ydGluZyBpdCBiYWNrLi4uCi1QQVNTIGltcG9ydGVkS2V5LnRvU3RyaW5n
KCkgaXMgJ1tvYmplY3QgQ3J5cHRvS2V5XScKLVBBU1MgaW1wb3J0ZWRLZXkudHlwZSBpcyAnc2Vj
cmV0JwotUEFTUyBpbXBvcnRlZEtleS5hbGdvcml0aG0ubmFtZSBpcyAnQUVTLUtXJwotUEFTUyBp
bXBvcnRlZEtleS5hbGdvcml0aG0ubGVuZ3RoIGlzIDI1NgotUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91
dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWt3LWtleS1tYW5pcHVsYXRpb24tZXhwZWN0
ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1u
YXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpEZWxldGVkOiBzdm46bWltZS10
eXBlCiMjIC0xICswLDAgIyMKLXRleHQvcGxhaW4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9w
ZXJ0eQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMta3cta2V5LW1h
bmlwdWxhdGlvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRT
dWJ0bGUvYWVzLWt3LWtleS1tYW5pcHVsYXRpb24uaHRtbAkocmV2aXNpb24gMjIwOTM1KQorKysg
TGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMta3cta2V5LW1hbmlwdWxhdGlvbi5o
dG1sCShub25leGlzdGVudCkKQEAgLTEsNTEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBnZW5lcmF0aW5nLCBp
bXBvcnRpbmcgYW5kIGV4cG9ydGluZyBrZXlzIGZvciBBRVMtS1cuIFRlc3QgdGhhdCB0aGV5IGNh
bid0IGJlIHVzZWQgd2l0aCBhbm90aGVyIGFsZ29yaXRobS4iKTsKLQotanNUZXN0SXNBc3luYyA9
IHRydWU7Ci0KLXZhciBleHRyYWN0YWJsZSA9IHRydWU7Ci0KLWRlYnVnKCJHZW5lcmF0aW5nIGEg
a2V5Li4uIik7Ci1jcnlwdG8ud2Via2l0U3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiYWVzLWt3
IiwgbGVuZ3RoOiAyNTZ9LCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiLCAid3Jh
cEtleSIsICJ1bndyYXBLZXkiXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBrZXkgPSBy
ZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImtleS50b1N0cmluZygpIiwgIidbb2JqZWN0IENyeXB0b0tl
eV0nIik7Ci0gICAgc2hvdWxkQmUoImtleS50eXBlIiwgIidzZWNyZXQnIik7Ci0gICAgc2hvdWxk
QmUoImtleS5hbGdvcml0aG0ubmFtZSIsICInQUVTLUtXJyIpOwotICAgIHNob3VsZEJlKCJrZXku
YWxnb3JpdGhtLmxlbmd0aCIsICIyNTYiKTsKLQotICAgIGRlYnVnKCJcblRlc3RpbmcgdGhhdCB0
aGUga2V5IGNhbid0IGJlIHVzZWQgd2l0aCBBRVMtQ0JDLi4uIik7Ci0gICAgaXYgPSBoZXhTdHJp
bmdUb1VpbnQ4QXJyYXkoIjAwMDEwMjAzMDQwNTA2MDcwODA5MGEwYjBjMGQwZTBmIik7Ci0gICAg
c2hvdWxkVGhyb3coJ2NyeXB0by53ZWJraXRTdWJ0bGUuZW5jcnlwdCh7bmFtZTogImFlcy1jYmMi
LCBpdjogaXZ9LCBrZXksIGhleFN0cmluZ1RvVWludDhBcnJheSgiMDAiKSknKTsKLQotICAgIGRl
YnVnKCJcbkV4cG9ydGluZyB0aGUga2V5IHRvIHJhdy4uLiIpOwotICAgIHJldHVybiBjcnlwdG8u
d2Via2l0U3VidGxlLmV4cG9ydEtleSgncmF3Jywga2V5KTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVz
dWx0KSB7Ci0gICAgZXhwb3J0ZWRLZXkgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVk
S2V5LnRvU3RyaW5nKCkiLCAiJ1tvYmplY3QgQXJyYXlCdWZmZXJdJyIpOwotICAgIGRlYnVnKCJJ
bXBvcnRpbmcgaXQgYmFjay4uLiIpOwotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLmlt
cG9ydEtleSgncmF3JywgZXhwb3J0ZWRLZXksICJhZXMta3ciLCBleHRyYWN0YWJsZSwgWyJlbmNy
eXB0IiwgImRlY3J5cHQiLCAid3JhcEtleSIsICJ1bndyYXBLZXkiXSk7Ci19KS50aGVuKGZ1bmN0
aW9uKHJlc3VsdCkgewotICAgIGltcG9ydGVkS2V5ID0gcmVzdWx0OwotCi0gICAgc2hvdWxkQmUo
ImltcG9ydGVkS2V5LnRvU3RyaW5nKCkiLCAiJ1tvYmplY3QgQ3J5cHRvS2V5XSciKTsKLSAgICBz
aG91bGRCZSgiaW1wb3J0ZWRLZXkudHlwZSIsICInc2VjcmV0JyIpOwotICAgIHNob3VsZEJlKCJp
bXBvcnRlZEtleS5hbGdvcml0aG0ubmFtZSIsICInQUVTLUtXJyIpOwotICAgIHNob3VsZEJlKCJp
bXBvcnRlZEtleS5hbGdvcml0aG0ubGVuZ3RoIiwgIjI1NiIpOwotCi0gICAgZmluaXNoSlNUZXN0
KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2Vz
IG9uOiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1rdy1rZXktbWFuaXB1bGF0
aW9uLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46bWltZS10eXBlCiMjIC0xICswLDAgIyMK
LXRleHQvaHRtbApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBMYXlvdXRU
ZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1rdy13cmFwLXVud3JhcC1hZXMtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWt3
LXdyYXAtdW53cmFwLWFlcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIyMDkzNSkKKysrIExheW91
dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWt3LXdyYXAtdW53cmFwLWFlcy1leHBlY3Rl
ZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSwyMyArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxp
bmUgMjE6IFdlYktpdFN1YnRsZUNyeXB0byBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIFN1YnRs
ZUNyeXB0byBpbnN0ZWFkLgotVGVzdCB3cmFwcGluZyBhbmQgdW53cmFwcGluZyBrZXlzIHdpdGgg
QUVTLUtXLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotSW1wb3J0aW5nIGtleSBl
bmNyeXB0aW9uIGtleS4uLgotSW1wb3J0aW5nIGEga2V5IHRvIGJlIHdyYXBwZWQuLi4KLVdyYXBw
aW5nIGl0Li4uCi1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcod3JhcHBlZEtleSkgaXMgJzFmYTY4YjBh
ODExMmI0NDdhZWYzNGJkOGZiNWE3YjgyOWQzZTg2MjM3MWQyY2ZlNScKLVVud3JhcHBpbmcgaXQu
Li4KLVBBU1MgdW53cmFwcGVkS2V5LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgQ3J5cHRvS2V5XScK
LVBBU1MgdW53cmFwcGVkS2V5LnR5cGUgaXMgJ3NlY3JldCcKLVBBU1MgdW53cmFwcGVkS2V5LmV4
dHJhY3RhYmxlIGlzIHRydWUKLVBBU1MgdW53cmFwcGVkS2V5LmFsZ29yaXRobS5uYW1lIGlzICdB
RVMtQ0JDJwotUEFTUyB1bndyYXBwZWRLZXkuYWxnb3JpdGhtLmxlbmd0aCBpcyAxMjgKLVBBU1Mg
dW53cmFwcGVkS2V5LnVzYWdlcyBpcyBbJ2RlY3J5cHQnLCAnZW5jcnlwdCcsICd1bndyYXBLZXkn
LCAnd3JhcEtleSddCi1FeHBvcnRpbmcgaXQuLi4KLVBBU1MgYnl0ZXNUb0hleFN0cmluZyh1bndy
YXBwZWRLZXlEYXRhKSBpcyBieXRlc1RvSGV4U3RyaW5nKGtleURhdGEpCi1QQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQoKUHJvcGVydHkgY2hhbmdlcyBv
bjogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMta3ctd3JhcC11bndyYXAtYWVz
LWV4cGVjdGVkLnR4dApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAs
MCAjIwotbmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKRGVsZXRlZDogc3Zu
Om1pbWUtdHlwZQojIyAtMSArMCwwICMjCi10ZXh0L3BsYWluClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgcHJvcGVydHkKSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYWVzLWt3
LXdyYXAtdW53cmFwLWFlcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93
ZWJraXRTdWJ0bGUvYWVzLWt3LXdyYXAtdW53cmFwLWFlcy5odG1sCShyZXZpc2lvbiAyMjA5MzUp
CisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1rdy13cmFwLXVud3JhcC1h
ZXMuaHRtbAkobm9uZXhpc3RlbnQpCkBAIC0xLDU4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgot
PGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9jb21tb24uanMiPjwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3Qgd3JhcHBpbmcg
YW5kIHVud3JhcHBpbmcga2V5cyB3aXRoIEFFUy1LVy4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRy
dWU7Ci0KLXZhciBrZWtEYXRhID0gaGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMDAxMDIwMzA0MDUw
NjA3MDgwOTBBMEIwQzBEMEUwRiIpOwotdmFyIGtleURhdGEgPSBoZXhTdHJpbmdUb1VpbnQ4QXJy
YXkoIjAwMTEyMjMzNDQ1NTY2Nzc4ODk5QUFCQkNDRERFRUZGIik7Ci12YXIgZXh0cmFjdGFibGUg
PSB0cnVlOwotCi1kZWJ1ZygiSW1wb3J0aW5nIGtleSBlbmNyeXB0aW9uIGtleS4uLiIpOwotY3J5
cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIGtla0RhdGEsICJhZXMta3ciLCBleHRy
YWN0YWJsZSwgWyJ3cmFwS2V5IiwgInVud3JhcEtleSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkg
ewotICAgIGtlayA9IHJlc3VsdDsKLQotICAgIGRlYnVnKCJJbXBvcnRpbmcgYSBrZXkgdG8gYmUg
d3JhcHBlZC4uLiIpOwotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgi
cmF3Iiwga2V5RGF0YSwgImFlcy1jYmMiLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5
cHQiLCAid3JhcEtleSIsICJ1bndyYXBLZXkiXSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkg
ewotICAgIGtleSA9IHJlc3VsdDsKLQotICAgIGRlYnVnKCJXcmFwcGluZyBpdC4uLiIpOwotICAg
IHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLndyYXBLZXkoInJhdyIsIGtleSwga2VrLCAiYWVz
LWt3Iik7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHdyYXBwZWRLZXkgPSByZXN1
bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcod3JhcHBlZEtleSkiLCAiJzFmYTY4
YjBhODExMmI0NDdhZWYzNGJkOGZiNWE3YjgyOWQzZTg2MjM3MWQyY2ZlNSciKTsgLy8gUmVzdWx0
IGZyb20gUkZDIDMzOTQuCi0KLSAgICBkZWJ1ZygiVW53cmFwcGluZyBpdC4uLiIpOwotICAgIHJl
dHVybiBjcnlwdG8ud2Via2l0U3VidGxlLnVud3JhcEtleSgicmF3Iiwgd3JhcHBlZEtleSwga2Vr
LCAiYWVzLWt3IiwgImFlcy1jYmMiLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQi
LCAid3JhcEtleSIsICJ1bndyYXBLZXkiXSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewot
ICAgIHVud3JhcHBlZEtleSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgidW53cmFwcGVkS2V5LnRv
U3RyaW5nKCkiLCAiJ1tvYmplY3QgQ3J5cHRvS2V5XSciKTsKLSAgICBzaG91bGRCZSgidW53cmFw
cGVkS2V5LnR5cGUiLCAiJ3NlY3JldCciKTsKLSAgICBzaG91bGRCZSgidW53cmFwcGVkS2V5LmV4
dHJhY3RhYmxlIiwgInRydWUiKTsKLSAgICBzaG91bGRCZSgidW53cmFwcGVkS2V5LmFsZ29yaXRo
bS5uYW1lIiwgIidBRVMtQ0JDJyIpOwotICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXkuYWxnb3Jp
dGhtLmxlbmd0aCIsICIxMjgiKTsKLSAgICBzaG91bGRCZSgidW53cmFwcGVkS2V5LnVzYWdlcyIs
ICJbJ2RlY3J5cHQnLCAnZW5jcnlwdCcsICd1bndyYXBLZXknLCAnd3JhcEtleSddIik7Ci0KLSAg
ICBkZWJ1ZygiRXhwb3J0aW5nIGl0Li4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0
bGUuZXhwb3J0S2V5KCJyYXciLCB1bndyYXBwZWRLZXkpOwotfSkudGhlbihmdW5jdGlvbihyZXN1
bHQpIHsKLSAgICB1bndyYXBwZWRLZXlEYXRhID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJieXRl
c1RvSGV4U3RyaW5nKHVud3JhcHBlZEtleURhdGEpIiwgImJ5dGVzVG9IZXhTdHJpbmcoa2V5RGF0
YSkiKTsKLQotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5Pgot
PC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1
YnRsZS9hZXMta3ctd3JhcC11bndyYXAtYWVzLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46
bWltZS10eXBlCiMjIC0xICswLDAgIyMKLXRleHQvaHRtbApcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IHByb3BlcnR5CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1wb3N0
TWVzc2FnZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dl
YmtpdFN1YnRsZS9hZXMtcG9zdE1lc3NhZ2UtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMjA5MzUp
CisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1wb3N0TWVzc2FnZS1leHBl
Y3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSwxNSArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6
IGxpbmUgMjY6IFdlYktpdFN1YnRsZUNyeXB0byBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIFN1
YnRsZUNyeXB0byBpbnN0ZWFkLgotVGVzdCBzZW5kaW5nIGNyeXB0byBrZXlzIHZpYSBwb3N0TWVz
c2FnZS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mga2V5LnR5cGUgaXMg
J3NlY3JldCcKLVBBU1Mga2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKLVBBU1Mga2V5LmFsZ29yaXRo
bS5uYW1lIGlzICdBRVMtQ0JDJwotUEFTUyBrZXkuYWxnb3JpdGhtLmxlbmd0aCBpcyAxMjgKLVBB
U1Mga2V5LnVzYWdlcyBpcyBbImRlY3J5cHQiLCAiZW5jcnlwdCJdCi1QQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQoKUHJvcGVydHkgY2hhbmdlcyBvbjog
TGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtcG9zdE1lc3NhZ2UtZXhwZWN0ZWQu
dHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRp
dmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpEZWxldGVkOiBzdm46bWltZS10eXBl
CiMjIC0xICswLDAgIyMKLXRleHQvcGxhaW4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0
eQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtcG9zdE1lc3NhZ2Uu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Flcy1w
b3N0TWVzc2FnZS5odG1sCShyZXZpc2lvbiAyMjA5MzUpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8v
d2Via2l0U3VidGxlL2Flcy1wb3N0TWVzc2FnZS5odG1sCShub25leGlzdGVudCkKQEAgLTEsMzIg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08
L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci0KLWRlc2NyaXB0aW9uKCJUZXN0IHNlbmRpbmcgY3J5
cHRvIGtleXMgdmlhIHBvc3RNZXNzYWdlLiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQot
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbihldnQpIHsKLSAgICBr
ZXkgPSBldnQuZGF0YTsKLSAgICBzaG91bGRCZSgia2V5LnR5cGUiLCAiJ3NlY3JldCciKTsKLSAg
ICBzaG91bGRCZSgia2V5LmV4dHJhY3RhYmxlIiwgInRydWUiKTsKLSAgICBzaG91bGRCZSgia2V5
LmFsZ29yaXRobS5uYW1lIiwgIidBRVMtQ0JDJyIpOwotICAgIHNob3VsZEJlKCJrZXkuYWxnb3Jp
dGhtLmxlbmd0aCIsICIxMjgiKTsKLSAgICBzaG91bGRCZSgia2V5LnVzYWdlcyIsICdbImRlY3J5
cHQiLCAiZW5jcnlwdCJdJyk7Ci0KLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0sIGZhbHNlKTsKLQot
Y3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIGFzY2lpVG9VaW50OEFycmF5KCIx
NiBieXRlcyBvZiBrZXkhIiksIHtuYW1lOiAiYWVzLWNiYyIsIGxlbmd0aDogMTI4fSwgdHJ1ZSwg
WyJlbmNyeXB0IiwgImRlY3J5cHQiXSkudGhlbihmdW5jdGlvbihrZXkpIHsKLSAgICBwb3N0TWVz
c2FnZShrZXksICIqIik7Ci19KTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgoKUHJvcGVy
dHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hZXMtcG9zdE1l
c3NhZ2UuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjptaW1lLXR5cGUKIyMgLTEgKzAsMCAj
IwotdGV4dC9odG1sClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IExheW91
dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvYXJndW1lbnQtY29udmVyc2lvbi1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hcmd1bWVu
dC1jb252ZXJzaW9uLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjIwOTM1KQorKysgTGF5b3V0VGVz
dHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hcmd1bWVudC1jb252ZXJzaW9uLWV4cGVjdGVkLnR4dAko
bm9uZXhpc3RlbnQpCkBAIC0xLDM5ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBX
ZWJLaXRTdWJ0bGVDcnlwdG8gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBTdWJ0bGVDcnlwdG8g
aW5zdGVhZC4KLVRlc3QgY3J5cHRvLndlYmtpdFN1YnRsZSBhcmd1bWVudCBjb252ZXJzaW9uCi0K
LU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi0KLVBhc3NpbmcgYWxnb3JpdGhtIG5hbWUg
YXMgYSBzdHJpbmcgb2JqZWN0Li4uCi1QQVNTIC4uLnN1Y2NlZWRlZAotCi1QYXNzaW5nIGFsZ29y
aXRobSBuYW1lIGFzIGEgc3RyaW5nIG9iamVjdCBpbiBhIGRpY3Rpb25hcnkuLi4KLVBBU1MgLi4u
c3VjY2VlZGVkCi0KLVBhc3NpbmcgYWxnb3JpdGhtIG5hbWUgYXMgYW4gb2JqZWN0IHdpdGggdG9T
dHJpbmcKLVBBU1MgLi4uc3VjY2VlZGVkCi0KLVBhc3NpbmcgaW52YWxpZCBkYXRhIHRvIGRpZ2Vz
dCgpCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0KHtuYW1lOiAnc2hhLTEnfSkgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCi1QQVNTIGNyeXB0
by53ZWJraXRTdWJ0bGUuZGlnZXN0KHtuYW1lOiAnc2hhLTEnfSwgbnVsbCkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5kaWdl
c3Qoe25hbWU6ICdzaGEtMSd9LCAxMCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBl
cnJvci4KLVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtMSd9LCBb
MTBdKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUeXBlIGVycm9yLgotUEFTUyBjcnlwdG8u
d2Via2l0U3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0xJ30sIFtuZXcgVWludDhBcnJheShbMF0p
XSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KLQotUGFzc2luZyBpbnZh
bGlkIGFsZ29yaXRobUlkZW50aWZpZXJzIHRvIGRpZ2VzdCgpCi1QQVNTIGNyeXB0by53ZWJraXRT
dWJ0bGUuZGlnZXN0KHsgdG9TdHJpbmc6ZnVuY3Rpb24oKSB7IHJldHVybiAnc2hhLTEnIH0gfSwg
ZGF0YSkgdGhyZXcgZXhjZXB0aW9uIE5vdFN1cHBvcnRlZEVycm9yOiBUaGUgb3BlcmF0aW9uIGlz
IG5vdCBzdXBwb3J0ZWQuLgotUEFTUyBjcnlwdG8ud2Via2l0U3VidGxlLmRpZ2VzdCh7bmFtZTog
Jyd9LCBkYXRhKSB0aHJldyBleGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3I6IFRoZSBvcGVyYXRp
b24gaXMgbm90IHN1cHBvcnRlZC4uCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0KHtu
YW1lOiBudWxsfSwgZGF0YSkgdGhyZXcgZXhjZXB0aW9uIE5vdFN1cHBvcnRlZEVycm9yOiBUaGUg
b3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuLgotUEFTUyBjcnlwdG8ud2Via2l0U3VidGxlLmRp
Z2VzdCh7bmFtZTogdW5kZWZpbmVkfSwgZGF0YSkgdGhyZXcgZXhjZXB0aW9uIE5vdFN1cHBvcnRl
ZEVycm9yOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuLgotUEFTUyBjcnlwdG8ud2Vi
a2l0U3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYSd9LCBkYXRhKSB0aHJldyBleGNlcHRpb24gTm90
U3VwcG9ydGVkRXJyb3I6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4uCi1QQVNTIGNy
eXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0KHtuYW1lOiAxfSwgZGF0YSkgdGhyZXcgZXhjZXB0aW9u
IE5vdFN1cHBvcnRlZEVycm9yOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuLgotUEFT
UyBjcnlwdG8ud2Via2l0U3VidGxlLmRpZ2VzdCgnJywgZGF0YSkgdGhyZXcgZXhjZXB0aW9uIE5v
dFN1cHBvcnRlZEVycm9yOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuLgotUEFTUyBj
cnlwdG8ud2Via2l0U3VidGxlLmRpZ2VzdChudWxsLCBkYXRhKSB0aHJldyBleGNlcHRpb24gTm90
U3VwcG9ydGVkRXJyb3I6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4uCi1QQVNTIGNy
eXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0KHVuZGVmaW5lZCwgZGF0YSkgdGhyZXcgZXhjZXB0aW9u
IE5vdFN1cHBvcnRlZEVycm9yOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuLgotUEFT
UyBjcnlwdG8ud2Via2l0U3VidGxlLmRpZ2VzdCgxLCBkYXRhKSB0aHJldyBleGNlcHRpb24gTm90
U3VwcG9ydGVkRXJyb3I6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4uCi1QQVNTIGNy
eXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0KHt9LCBkYXRhKSB0aHJldyBleGNlcHRpb24gTm90U3Vw
cG9ydGVkRXJyb3I6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4uCi1QQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVz
dHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hcmd1bWVudC1jb252ZXJzaW9uLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hcmd1bWVudC1jb252ZXJzaW9u
Lmh0bWwJKHJldmlzaW9uIDIyMDkzNSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0
bGUvYXJndW1lbnQtY29udmVyc2lvbi5odG1sCShub25leGlzdGVudCkKQEAgLTEsNTYgKzAsMCBA
QAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlw
dGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlw
dGlvbigiVGVzdCBjcnlwdG8ud2Via2l0U3VidGxlIGFyZ3VtZW50IGNvbnZlcnNpb24iKTsKLQot
anNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLVByb21pc2UucmVzb2x2ZShudWxsKS50aGVuKGZ1bmN0
aW9uKCkgewotICAgIGRlYnVnKCJcblBhc3NpbmcgYWxnb3JpdGhtIG5hbWUgYXMgYSBzdHJpbmcg
b2JqZWN0Li4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0KG5ldyBT
dHJpbmcoJ3NoYS0xJyksIG5ldyBVaW50OEFycmF5KFtdKSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJl
c3VsdCkgewotICAgIHRlc3RQYXNzZWQoIi4uLnN1Y2NlZWRlZCIpOwotICAgIGRlYnVnKCJcblBh
c3NpbmcgYWxnb3JpdGhtIG5hbWUgYXMgYSBzdHJpbmcgb2JqZWN0IGluIGEgZGljdGlvbmFyeS4u
LiIpOwotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLmRpZ2VzdCh7bmFtZTogbmV3IFN0
cmluZygnc2hhLTEnKX0sIG5ldyBVaW50OEFycmF5KFtdKSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJl
c3VsdCkgewotICAgIHRlc3RQYXNzZWQoIi4uLnN1Y2NlZWRlZCIpOwotICAgIGRlYnVnKCJcblBh
c3NpbmcgYWxnb3JpdGhtIG5hbWUgYXMgYW4gb2JqZWN0IHdpdGggdG9TdHJpbmciKTsKLSAgICBy
ZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS5kaWdlc3Qoe25hbWU6IHsgdG9TdHJpbmc6ZnVuY3Rp
b24oKSB7IHJldHVybiAnc2hhLTEnIH0gfSB9LCBuZXcgVWludDhBcnJheShbXSkpOwotfSkudGhl
bihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICB0ZXN0UGFzc2VkKCIuLi5zdWNjZWVkZWQiKTsKLQot
ICAgIGRlYnVnKCJcblBhc3NpbmcgaW52YWxpZCBkYXRhIHRvIGRpZ2VzdCgpIik7Ci0gICAgc2hv
dWxkVGhyb3coImNyeXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0KHtuYW1lOiAnc2hhLTEnfSkiKTsK
LSAgICBzaG91bGRUaHJvdygiY3J5cHRvLndlYmtpdFN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEt
MSd9LCBudWxsKSIpOwotICAgIHNob3VsZFRocm93KCJjcnlwdG8ud2Via2l0U3VidGxlLmRpZ2Vz
dCh7bmFtZTogJ3NoYS0xJ30sIDEwKSIpOwotICAgIHNob3VsZFRocm93KCJjcnlwdG8ud2Via2l0
U3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0xJ30sIFsxMF0pIik7Ci0gICAgc2hvdWxkVGhyb3co
ImNyeXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0KHtuYW1lOiAnc2hhLTEnfSwgW25ldyBVaW50OEFy
cmF5KFswXSldKSIpOwotCi0gICAgZGVidWcoIlxuUGFzc2luZyBpbnZhbGlkIGFsZ29yaXRobUlk
ZW50aWZpZXJzIHRvIGRpZ2VzdCgpIik7Ci0gICAgZGF0YSA9IG5ldyBVaW50OEFycmF5KFswXSk7
Ci0gICAgc2hvdWxkVGhyb3coImNyeXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0KHsgdG9TdHJpbmc6
ZnVuY3Rpb24oKSB7IHJldHVybiAnc2hhLTEnIH0gfSwgZGF0YSkiKTsgLy8gQWxnb3JpdGhtIG5v
cm1hbGl6YXRpb24gZG9lc24ndCBhdHRlbXB0IHRvIGNhbGwgdG9TdHJpbmcuCi0gICAgc2hvdWxk
VGhyb3coImNyeXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0KHtuYW1lOiAnJ30sIGRhdGEpIik7Ci0g
ICAgc2hvdWxkVGhyb3coImNyeXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0KHtuYW1lOiBudWxsfSwg
ZGF0YSkiKTsKLSAgICBzaG91bGRUaHJvdygiY3J5cHRvLndlYmtpdFN1YnRsZS5kaWdlc3Qoe25h
bWU6IHVuZGVmaW5lZH0sIGRhdGEpIik7Ci0gICAgc2hvdWxkVGhyb3coImNyeXB0by53ZWJraXRT
dWJ0bGUuZGlnZXN0KHtuYW1lOiAnc2hhJ30sIGRhdGEpIik7Ci0gICAgc2hvdWxkVGhyb3coImNy
eXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0KHtuYW1lOiAxfSwgZGF0YSkiKTsKLSAgICBzaG91bGRU
aHJvdygiY3J5cHRvLndlYmtpdFN1YnRsZS5kaWdlc3QoJycsIGRhdGEpIik7Ci0gICAgc2hvdWxk
VGhyb3coImNyeXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0KG51bGwsIGRhdGEpIik7Ci0gICAgc2hv
dWxkVGhyb3coImNyeXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0KHVuZGVmaW5lZCwgZGF0YSkiKTsK
LSAgICBzaG91bGRUaHJvdygiY3J5cHRvLndlYmtpdFN1YnRsZS5kaWdlc3QoMSwgZGF0YSkiKTsK
LSAgICBzaG91bGRUaHJvdygiY3J5cHRvLndlYmtpdFN1YnRsZS5kaWdlc3Qoe30sIGRhdGEpIik7
Ci19KS50aGVuKGZpbmlzaEpTVGVzdCk7Ci0KLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2FycmF5LWJ1ZmZlci12aWV3
LW9mZnNldC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dl
YmtpdFN1YnRsZS9hcnJheS1idWZmZXItdmlldy1vZmZzZXQtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAyMjA5MzUpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2FycmF5LWJ1ZmZl
ci12aWV3LW9mZnNldC1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSwxMSArMCwwIEBA
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogV2ViS2l0U3VidGxlQ3J5cHRvIGlzIGRlcHJlY2F0
ZWQuIFBsZWFzZSB1c2UgU3VidGxlQ3J5cHRvIGluc3RlYWQuCi1UZXN0IHRoYXQgYW4gQXJyYXlC
dWZmZXJWaWV3IHdpdGggb2Zmc2V0IGlzIHByb2Nlc3NlZCBjb3JyZWN0bHkuCi0KLU9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJy
YXkoZGlnZXN0KSkgaXMgJzJjN2U3YzM4NGY3ODI5Njk0MjgyYjFlM2E2MjE2ZGVmODA4MmQwNTUn
Ci1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRl
eDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9hcnJheS1idWZmZXItdmlldy1vZmZz
ZXQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2Fy
cmF5LWJ1ZmZlci12aWV3LW9mZnNldC5odG1sCShyZXZpc2lvbiAyMjA5MzUpCisrKyBMYXlvdXRU
ZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2FycmF5LWJ1ZmZlci12aWV3LW9mZnNldC5odG1sCShu
b25leGlzdGVudCkKQEAgLTEsMzAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hl
YWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCB0aGF0IGFuIEFycmF5QnVmZmVy
VmlldyB3aXRoIG9mZnNldCBpcyBwcm9jZXNzZWQgY29ycmVjdGx5LiIpOwotCi1qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKLQotUHJvbWlzZS5yZXNvbHZlKG51bGwpLnRoZW4oZnVuY3Rpb24oKSB7Ci0g
ICAgdmFyIG9yaWdpbmFsRGF0YSA9IG5ldyBVaW50OEFycmF5KFsweGYsIDB4ZiwgMHhmLCAwLCAx
LCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMCwgMHhmLCAweGYsIDB4Zl0pOwotICAgIHZhciBz
bGljZWREYXRhID0gbmV3IFVpbnQ4QXJyYXkob3JpZ2luYWxEYXRhLmJ1ZmZlciwgMywgMTEpOwot
ICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0xJ30sIHNs
aWNlZERhdGEpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBkaWdlc3QgPSByZXN1
bHQ7Ci0gICAgLy8gRXhwZWN0ZWQgcmVzdWx0IGZvciBbMCwgMSwgMiwgMywgNCwgNSwgNiwgNywg
OCwgOSwgMTBdLgotICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5
KGRpZ2VzdCkpIiwgIicyYzdlN2MzODRmNzgyOTY5NDI4MmIxZTNhNjIxNmRlZjgwODJkMDU1JyIp
OwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9kaXNhbGxvd2VkLWluLXdv
cmtlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtp
dFN1YnRsZS9kaXNhbGxvd2VkLWluLXdvcmtlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIyMDkz
NSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvZGlzYWxsb3dlZC1pbi13b3Jr
ZXItZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKQEAgLTEsMTEgKzAsMCBAQAotW1dvcmtlcl0g
VGVzdHMgdGhhdCBjcnlwdG8ud2Via2l0U3VidGxlIHdpbGwgdGhyb3cgaW4gd29ya2Vycy4KLQot
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVN0YXJ0aW5nIHdvcmtlcjogcmVzb3VyY2Vz
L2Rpc2FsbG93ZWQtaW4td29ya2VyLmpzCi1QQVNTIFtXb3JrZXJdIGNyeXB0by53ZWJraXRTdWJ0
bGUgdGhyZXcgZXhjZXB0aW9uIE5vdFN1cHBvcnRlZEVycm9yOiBUaGUgb3BlcmF0aW9uIGlzIG5v
dCBzdXBwb3J0ZWQuLgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENP
TVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvZGlzYWxsb3dl
ZC1pbi13b3JrZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL2Rpc2FsbG93ZWQtaW4td29ya2VyLmh0bWwJKHJldmlzaW9uIDIyMDkzNSkKKysrIExh
eW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvZGlzYWxsb3dlZC1pbi13b3JrZXIuaHRtbAko
bm9uZXhpc3RlbnQpCkBAIC0xLDEyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08
aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotICAgIDxzY3JpcHQ+Ci0gICAgICAgIHdvcmtlciA9
IHN0YXJ0V29ya2VyKCdyZXNvdXJjZXMvZGlzYWxsb3dlZC1pbi13b3JrZXIuanMnKTsKLSAgICA8
L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8v
d2Via2l0U3VidGxlL2djLTItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2NyeXB0by93ZWJraXRTdWJ0bGUvZ2MtMi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIyMDkzNSkK
KysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvZ2MtMi1leHBlY3RlZC50eHQJKG5v
bmV4aXN0ZW50KQpAQCAtMSwxMyArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTk6IFdl
YktpdFN1YnRsZUNyeXB0byBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIFN1YnRsZUNyeXB0byBp
bnN0ZWFkLgotVGVzdCB0aGF0IHdpbmRvdy5jcnlwdG8ud2Via2l0U3VidGxlIHdyYXBwZXIgcHJl
c2VydmVzIGN1c3RvbSBwcm9wZXJ0aWVzLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0K
LQotUEFTUyBbb2JqZWN0IENyeXB0b10gaXMgZGVmaW5lZC4KLVBBU1MgW29iamVjdCBXZWJLaXRT
dWJ0bGVDcnlwdG9dIGlzIGRlZmluZWQuCi1QQVNTIGFub3RoZXJXaW5kb3dDcnlwdG8ud2Via2l0
U3VidGxlLmZvbyBpcyAiYmFyIgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1U
RVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvZ2Mt
Mi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvZ2Mt
Mi5odG1sCShyZXZpc2lvbiAyMjA5MzUpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3Vi
dGxlL2djLTIuaHRtbAkobm9uZXhpc3RlbnQpCkBAIC0xLDQ2ICswLDAgQEAKLTwhRE9DVFlQRSBo
dG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHk+Ci08c2NyaXB0PgotCi1kZXNjcmlwdGlvbigiVGVzdCB0aGF0IHdpbmRvdy5jcnlwdG8ud2Vi
a2l0U3VidGxlIHdyYXBwZXIgcHJlc2VydmVzIGN1c3RvbSBwcm9wZXJ0aWVzLiIpOwotanNUZXN0
SXNBc3luYyA9IHRydWU7Ci0KLXZhciBhbm90aGVyV2luZG93Q3J5cHRvOwotCi1mdW5jdGlvbiBz
dGFydFRlc3QoKQotewotICAgIGFub3RoZXJXaW5kb3dDcnlwdG8gPSBmcmFtZXNbMF0uY3J5cHRv
OwotICAgIHNob3VsZEJlRGVmaW5lZChhbm90aGVyV2luZG93Q3J5cHRvKTsKLSAgICBzaG91bGRC
ZURlZmluZWQoYW5vdGhlcldpbmRvd0NyeXB0by53ZWJraXRTdWJ0bGUpOwotCi0gICAgYW5vdGhl
cldpbmRvd0NyeXB0by53ZWJraXRTdWJ0bGUuZm9vID0gImJhciI7Ci0gICAgZG9jdW1lbnQuYm9k
eS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaWZyYW1lIilbMF0p
OwotICAgIGdjKCk7Ci0gICAgc2V0VGltZW91dChjb250aW51ZVRlc3QsIDEwKTsKLX0KLQotZnVu
Y3Rpb24gY29udGludWVUZXN0KCkKLXsKLSAgICBnYygpOwotICAgIHNldFRpbWVvdXQoZmluaXNo
VGVzdCwgMTApOwotfQotCi1mdW5jdGlvbiBmaW5pc2hUZXN0KCkKLXsKLSAgICBnYygpOwotICAg
IHNob3VsZEJlKCdhbm90aGVyV2luZG93Q3J5cHRvLndlYmtpdFN1YnRsZS5mb28nLCAnImJhciIn
KTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0KLQotd2luZG93Lm9ubG9hZCA9IHN0YXJ0VGVzdDsK
LQotPC9zY3JpcHQ+Ci08aWZyYW1lIHNyYz0iYWJvdXQ6YmxhbmsiPjwvaWZyYW1lPgotPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5
PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9nYy0zLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxl
L2djLTMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMjA5MzUpCisrKyBMYXlvdXRUZXN0cy9jcnlw
dG8vd2Via2l0U3VidGxlL2djLTMtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKQEAgLTEsMTEg
KzAsMCBAQAotVGVzdCB0aGF0IHdpbmRvdy5jcnlwdG8gd3JhcHBlciBwcm90ZWN0cyBhbGwgZGVw
ZW5kZW5jaWVzLCBzbyBpdCBjYW4gYWx3YXlzIGJlIHVzZWQgdG8gY3JlYXRlIGNyeXB0by53ZWJr
aXRTdWJ0bGUuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIFtvYmplY3Qg
Q3J5cHRvXSBpcyBkZWZpbmVkLgotUEFTUyBbb2JqZWN0IFdlYktpdFN1YnRsZUNyeXB0b10gaXMg
ZGVmaW5lZC4KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVU
RQotCkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2djLTMuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2djLTMuaHRtbAkocmV2
aXNpb24gMjIwOTM1KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9nYy0zLmh0
bWwJKG5vbmV4aXN0ZW50KQpAQCAtMSw0MyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1s
PgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlw
dD4KLQotZGVzY3JpcHRpb24oIlRlc3QgdGhhdCB3aW5kb3cuY3J5cHRvIHdyYXBwZXIgcHJvdGVj
dHMgYWxsIGRlcGVuZGVuY2llcywgc28gaXQgY2FuIGFsd2F5cyBiZSB1c2VkIHRvIGNyZWF0ZSBj
cnlwdG8ud2Via2l0U3VidGxlLiIpOwotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBhbm90
aGVyV2luZG93Q3J5cHRvOwotCi1mdW5jdGlvbiBzdGFydFRlc3QoKQotewotICAgIGFub3RoZXJX
aW5kb3dDcnlwdG8gPSBmcmFtZXNbMF0uY3J5cHRvOwotICAgIHNob3VsZEJlRGVmaW5lZChhbm90
aGVyV2luZG93Q3J5cHRvKTsKLSAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50
LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpZnJhbWUiKVswXSk7Ci0gICAgZ2MoKTsKLSAgICBzZXRU
aW1lb3V0KGNvbnRpbnVlVGVzdCwgMTApOwotfQotCi1mdW5jdGlvbiBjb250aW51ZVRlc3QoKQot
ewotICAgIGdjKCk7Ci0gICAgc2V0VGltZW91dChmaW5pc2hUZXN0LCAxMCk7Ci19Ci0KLWZ1bmN0
aW9uIGZpbmlzaFRlc3QoKQotewotICAgIGdjKCk7Ci0gICAgc2hvdWxkQmVEZWZpbmVkKGFub3Ro
ZXJXaW5kb3dDcnlwdG8ud2Via2l0U3VidGxlKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0KLQot
d2luZG93Lm9ubG9hZCA9IHN0YXJ0VGVzdDsKLQotPC9zY3JpcHQ+Ci08aWZyYW1lIHNyYz0iYWJv
dXQ6YmxhbmsiPjwvaWZyYW1lPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
Y3J5cHRvL3dlYmtpdFN1YnRsZS9nYy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9nYy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIyMDkz
NSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvZ2MtZXhwZWN0ZWQudHh0CShu
b25leGlzdGVudCkKQEAgLTEsMTEgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE1OiBX
ZWJLaXRTdWJ0bGVDcnlwdG8gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBTdWJ0bGVDcnlwdG8g
aW5zdGVhZC4KLVRlc3QgdGhhdCB3aW5kb3cuY3J5cHRvLndlYmtpdFN1YnRsZSB3cmFwcGVyIHBy
ZXNlcnZlcyBjdXN0b20gcHJvcGVydGllcy4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgot
Ci0KLVBBU1Mgd2luZG93LmNyeXB0by53ZWJraXRTdWJ0bGUuZm9vIGlzICJiYXIiCi1QQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0
VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9nYy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvZ2MuaHRtbAkocmV2aXNpb24gMjIwOTM1KQorKysgTGF5
b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9nYy5odG1sCShub25leGlzdGVudCkKQEAgLTEs
MzggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci0KLWRlc2NyaXB0aW9uKCJUZXN0
IHRoYXQgd2luZG93LmNyeXB0by53ZWJraXRTdWJ0bGUgd3JhcHBlciBwcmVzZXJ2ZXMgY3VzdG9t
IHByb3BlcnRpZXMuIik7Ci1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotZnVuY3Rpb24gc3RhcnRU
ZXN0KCkKLXsKLSAgICB3aW5kb3cuY3J5cHRvLndlYmtpdFN1YnRsZS5mb28gPSAiYmFyIjsKLSAg
ICBnYygpOwotICAgIHNldFRpbWVvdXQoY29udGludWVUZXN0LCAxMCk7Ci19Ci0KLWZ1bmN0aW9u
IGNvbnRpbnVlVGVzdCgpCi17Ci0gICAgZ2MoKTsKLSAgICBzZXRUaW1lb3V0KGZpbmlzaFRlc3Qs
IDEwKTsKLX0KLQotZnVuY3Rpb24gZmluaXNoVGVzdCgpCi17Ci0gICAgZ2MoKTsKLSAgICBzaG91
bGRCZSgnd2luZG93LmNyeXB0by53ZWJraXRTdWJ0bGUuZm9vJywgJyJiYXIiJyk7Ci0gICAgZmlu
aXNoSlNUZXN0KCk7Ci19Ci0KLXdpbmRvdy5vbmxvYWQgPSBzdGFydFRlc3Q7Ci0KLTwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRs
ZS9obWFjLWNoZWNrLWFsZ29yaXRobS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLWNoZWNrLWFsZ29yaXRobS1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDIyMDkzNSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUv
aG1hYy1jaGVjay1hbGdvcml0aG0tZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKQEAgLTEsMTYg
KzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDIwOiBXZWJLaXRTdWJ0bGVDcnlwdG8gaXMg
ZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBTdWJ0bGVDcnlwdG8gaW5zdGVhZC4KLVRlc3QgdGhhdCBI
TUFDIG9wZXJhdGlvbnMgb25seSB3b3JrIHdoZW4gaGFzaCBmdW5jdGlvbnMgbWF0Y2ggYmV0d2Vl
biBpbnZvY2F0aW9uIGFuZCBrZXkuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1J
bXBvcnRpbmcgYSByYXcgSE1BQyBTSEEtMSBrZXkgZnJvbSBzdHJpbmcgbGl0ZXJhbC4uLgotRG9u
ZQotUEFTUyBjcnlwdG8ud2Via2l0U3VidGxlLnNpZ24oe25hbWU6ICdobWFjJywgaGFzaDoge25h
bWU6ICdzaGEtMSd9fSwga2V5LCBhc2NpaVRvVWludDhBcnJheSgnZm9vJykpIGRpZCBub3QgdGhy
b3cgZXhjZXB0aW9uLgotUEFTUyBjcnlwdG8ud2Via2l0U3VidGxlLnNpZ24oe25hbWU6ICdobWFj
JywgaGFzaDoge25hbWU6ICdzaGEtMjU2J319LCBrZXksIGFzY2lpVG9VaW50OEFycmF5KCdmb28n
KSkgdGhyZXcgZXhjZXB0aW9uIE5vdFN1cHBvcnRlZEVycm9yOiBUaGUgb3BlcmF0aW9uIGlzIG5v
dCBzdXBwb3J0ZWQuLgotUEFTUyBjcnlwdG8ud2Via2l0U3VidGxlLnZlcmlmeSh7bmFtZTogJ2ht
YWMnLCBoYXNoOiB7bmFtZTogJ3NoYS0xJ319LCBrZXksIGFzY2lpVG9VaW50OEFycmF5KCdmYWtl
IHNpZ25hdHVyZScpLCBhc2NpaVRvVWludDhBcnJheSgnZm9vJykpIGRpZCBub3QgdGhyb3cgZXhj
ZXB0aW9uLgotUEFTUyBjcnlwdG8ud2Via2l0U3VidGxlLnZlcmlmeSh7bmFtZTogJ2htYWMnLCBo
YXNoOiB7bmFtZTogJ3NoYS0yNTYnfX0sIGtleSwgYXNjaWlUb1VpbnQ4QXJyYXkoJ2Zha2Ugc2ln
bmF0dXJlJyksIGFzY2lpVG9VaW50OEFycmF5KCdmb28nKSkgdGhyZXcgZXhjZXB0aW9uIE5vdFN1
cHBvcnRlZEVycm9yOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuLgotUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRl
c3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1jaGVjay1hbGdvcml0aG0uaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2htYWMtY2hlY2stYWxnb3Jp
dGhtLmh0bWwJKHJldmlzaW9uIDIyMDkzNSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRT
dWJ0bGUvaG1hYy1jaGVjay1hbGdvcml0aG0uaHRtbAkobm9uZXhpc3RlbnQpCkBAIC0xLDM2ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVz
Y3JpcHRpb24oIlRlc3QgdGhhdCBITUFDIG9wZXJhdGlvbnMgb25seSB3b3JrIHdoZW4gaGFzaCBm
dW5jdGlvbnMgbWF0Y2ggYmV0d2VlbiBpbnZvY2F0aW9uIGFuZCBrZXkuIik7Ci0KLWpzVGVzdElz
QXN5bmMgPSB0cnVlOwotCi12YXIgaG1hY0tleSA9IGFzY2lpVG9VaW50OEFycmF5KCdhJyk7Ci12
YXIgZXh0cmFjdGFibGUgPSB0cnVlOwotCi1kZWJ1ZygiSW1wb3J0aW5nIGEgcmF3IEhNQUMgU0hB
LTEga2V5IGZyb20gc3RyaW5nIGxpdGVyYWwuLi4iKTsKLWNyeXB0by53ZWJraXRTdWJ0bGUuaW1w
b3J0S2V5KCJyYXciLCBobWFjS2V5LCB7bmFtZTogJ2htYWMnLCBoYXNoOiB7bmFtZTogJ3NoYS0x
J319LCBleHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSJdKS50aGVuKGZ1bmN0aW9uKHJlc3Vs
dCkgewotICAgIGRlYnVnKCJEb25lIik7Ci0gICAga2V5ID0gcmVzdWx0OwotCi0gICAgc2hvdWxk
Tm90VGhyb3coImNyeXB0by53ZWJraXRTdWJ0bGUuc2lnbih7bmFtZTogJ2htYWMnLCBoYXNoOiB7
bmFtZTogJ3NoYS0xJ319LCBrZXksIGFzY2lpVG9VaW50OEFycmF5KCdmb28nKSkiKTsKLSAgICBz
aG91bGRUaHJvdygiY3J5cHRvLndlYmtpdFN1YnRsZS5zaWduKHtuYW1lOiAnaG1hYycsIGhhc2g6
IHtuYW1lOiAnc2hhLTI1Nid9fSwga2V5LCBhc2NpaVRvVWludDhBcnJheSgnZm9vJykpIik7Ci0K
LSAgICBzaG91bGROb3RUaHJvdygiY3J5cHRvLndlYmtpdFN1YnRsZS52ZXJpZnkoe25hbWU6ICdo
bWFjJywgaGFzaDoge25hbWU6ICdzaGEtMSd9fSwga2V5LCBhc2NpaVRvVWludDhBcnJheSgnZmFr
ZSBzaWduYXR1cmUnKSwgYXNjaWlUb1VpbnQ4QXJyYXkoJ2ZvbycpKSIpOwotICAgIHNob3VsZFRo
cm93KCJjcnlwdG8ud2Via2l0U3VidGxlLnZlcmlmeSh7bmFtZTogJ2htYWMnLCBoYXNoOiB7bmFt
ZTogJ3NoYS0yNTYnfX0sIGtleSwgYXNjaWlUb1VpbnQ4QXJyYXkoJ2Zha2Ugc2lnbmF0dXJlJyks
IGFzY2lpVG9VaW50OEFycmF5KCdmb28nKSkiKTsKLQotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7
Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRv
L3dlYmtpdFN1YnRsZS9obWFjLWV4cG9ydC1rZXktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1leHBvcnQta2V5LWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMjIwOTM1KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRs
ZS9obWFjLWV4cG9ydC1rZXktZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKQEAgLTEsMzIgKzAs
MCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI3OiBXZWJLaXRTdWJ0bGVDcnlwdG8gaXMgZGVw
cmVjYXRlZC4gUGxlYXNlIHVzZSBTdWJ0bGVDcnlwdG8gaW5zdGVhZC4KLVRlc3QgZXhwb3J0aW5n
IGFuIEFFUyBrZXkuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1JbXBvcnRpbmcg
YSBKV0sga2V5Li4uCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUuZXhwb3J0S2V5KG51bGwsIGtl
eSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVW5rbm93biBrZXkgZm9ybWF0LgotUEFTUyBj
cnlwdG8ud2Via2l0U3VidGxlLmV4cG9ydEtleSh1bmRlZmluZWQsIGtleSkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogVW5rbm93biBrZXkgZm9ybWF0LgotUEFTUyBjcnlwdG8ud2Via2l0U3Vi
dGxlLmV4cG9ydEtleSh7fSwga2V5KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBVbmtub3du
IGtleSBmb3JtYXQuCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUuZXhwb3J0S2V5KCIiLCBrZXkp
IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFVua25vd24ga2V5IGZvcm1hdC4KLVBBU1MgY3J5
cHRvLndlYmtpdFN1YnRsZS5leHBvcnRLZXkoImZvb2JhciIsIGtleSkgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogVW5rbm93biBrZXkgZm9ybWF0LgotRXhwb3J0aW5nIHRoZSBrZXkgYXMgcmF3
IGRhdGEuLi4KLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShleHBvcnRlZERh
dGEpKSBpcyAnNmExOGU0OWZlZmY3ZjNiN2UwOWVjODliN2Y2ZGVhYjJmNmExOGU0OWZlZmY3ZjNi
N2UwOWVjODliN2Y2ZGVhYicKLUV4cG9ydGluZyB0aGUga2V5IGFzIEpXSy4uLgotUEFTUyBleHBv
cnRlZEpXSy5rdHkgaXMgJ29jdCcKLVBBU1MgZXhwb3J0ZWRKV0suayBpcyAnYWhqa24tXzM4N2Zn
bnNpYmYyM3FzdmFoamtuLV8zODdmZ25zaWJmMjNxcycKLVBBU1MgZXhwb3J0ZWRKV0suYWxnIGlz
ICdIUzI1NicKLVBBU1MgZXhwb3J0ZWRKV0suZXh0IGlzIHRydWUKLVBBU1MgZXhwb3J0ZWRKV0su
dXNlIGlzIHVuZGVmaW5lZAotUEFTUyBleHBvcnRlZEpXSy5rZXlfb3BzIGlzIFsnc2lnbicsICd2
ZXJpZnknXQotCi1JbXBvcnRpbmcgYSBrZXkgdGhhdCdzIG5vdCBleHRyYWN0YWJsZS4uLgotCi1U
cnlpbmcgdG8gZXhwb3J0IGFzIHJhdy4uLgotUEFTUyBSZWplY3RlZCwgYXMgZXhwZWN0ZWQKLVRy
eWluZyB0byBleHBvcnQgYXMgandrLi4uCi1QQVNTIFJlamVjdGVkLCBhcyBleHBlY3RlZAotUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KClByb3BlcnR5
IGNoYW5nZXMgb246IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1leHBvcnQt
a2V5LWV4cGVjdGVkLnR4dApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEg
KzAsMCAjIwotbmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKRGVsZXRlZDog
c3ZuOm1pbWUtdHlwZQojIyAtMSArMCwwICMjCi10ZXh0L3BsYWluClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgcHJvcGVydHkKSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaG1h
Yy1leHBvcnQta2V5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtp
dFN1YnRsZS9obWFjLWV4cG9ydC1rZXkuaHRtbAkocmV2aXNpb24gMjIwOTM1KQorKysgTGF5b3V0
VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLWV4cG9ydC1rZXkuaHRtbAkobm9uZXhpc3Rl
bnQpCkBAIC0xLDgwICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgot
Ci08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3QgZXhwb3J0aW5nIGFuIEFFUyBrZXkuIik7Ci0K
LWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi12YXIgZXh0cmFjdGFibGUgPSB0cnVlOwotdmFyIG5v
bkV4dHJhY3RhYmxlID0gZmFsc2U7Ci0KLXZhciBqd2tLZXkgPSB7Ci0gICAgImt0eSI6ICJvY3Qi
LAotICAgICJrIjogImFoamtuLV8zODdmZ25zaWJmMjNxc3ZhaGprbi1fMzg3Zmduc2liZjIzcXMi
Ci19OwotCi12YXIgandrS2V5QXNBcnJheUJ1ZmZlciA9IGFzY2lpVG9VaW50OEFycmF5KEpTT04u
c3RyaW5naWZ5KGp3a0tleSkpOwotCi1kZWJ1ZygiSW1wb3J0aW5nIGEgSldLIGtleS4uLiIpOwot
Y3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGp3a0tleUFzQXJyYXlCdWZmZXIs
IHsgbmFtZTogIkhNQUMiLCBoYXNoOiAiU0hBLTI1NiIgfSwgZXh0cmFjdGFibGUsIFsic2lnbiIs
ICJ2ZXJpZnkiXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBrZXkgPSByZXN1bHQ7Ci0K
LSAgICBzaG91bGRUaHJvdygnY3J5cHRvLndlYmtpdFN1YnRsZS5leHBvcnRLZXkobnVsbCwga2V5
KScpOwotICAgIHNob3VsZFRocm93KCdjcnlwdG8ud2Via2l0U3VidGxlLmV4cG9ydEtleSh1bmRl
ZmluZWQsIGtleSknKTsKLSAgICBzaG91bGRUaHJvdygnY3J5cHRvLndlYmtpdFN1YnRsZS5leHBv
cnRLZXkoe30sIGtleSknKTsKLSAgICBzaG91bGRUaHJvdygnY3J5cHRvLndlYmtpdFN1YnRsZS5l
eHBvcnRLZXkoIiIsIGtleSknKTsKLSAgICBzaG91bGRUaHJvdygnY3J5cHRvLndlYmtpdFN1YnRs
ZS5leHBvcnRLZXkoImZvb2JhciIsIGtleSknKTsKLQotICAgIGRlYnVnKCJFeHBvcnRpbmcgdGhl
IGtleSBhcyByYXcgZGF0YS4uLiIpOwotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLmV4
cG9ydEtleSgicmF3Iiwga2V5KTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgZXhw
b3J0ZWREYXRhID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKG5ldyBV
aW50OEFycmF5KGV4cG9ydGVkRGF0YSkpIiwgIic2YTE4ZTQ5ZmVmZjdmM2I3ZTA5ZWM4OWI3ZjZk
ZWFiMmY2YTE4ZTQ5ZmVmZjdmM2I3ZTA5ZWM4OWI3ZjZkZWFiJyIpOwotCi0gICAgZGVidWcoIkV4
cG9ydGluZyB0aGUga2V5IGFzIEpXSy4uLiIpOwotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3Vi
dGxlLmV4cG9ydEtleSgiandrIiwga2V5KTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0g
ICAgZXhwb3J0ZWRKV0sgPSBKU09OLnBhcnNlKGJ5dGVzVG9BU0NJSVN0cmluZyhyZXN1bHQpKTsK
LSAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0sua3R5IiwgIidvY3QnIik7Ci0gICAgc2hvdWxkQmUo
ImV4cG9ydGVkSldLLmsiLCAiJ2FoamtuLV8zODdmZ25zaWJmMjNxc3ZhaGprbi1fMzg3Zmduc2li
ZjIzcXMnIik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmFsZyIsICInSFMyNTYnIik7Ci0g
ICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmV4dCIsICJ0cnVlIik7Ci0gICAgc2hvdWxkQmUoImV4
cG9ydGVkSldLLnVzZSIsICJ1bmRlZmluZWQiKTsKLSAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0su
a2V5X29wcyIsICJbJ3NpZ24nLCAndmVyaWZ5J10iKTsKLQotICAgIGRlYnVnKCJcbkltcG9ydGlu
ZyBhIGtleSB0aGF0J3Mgbm90IGV4dHJhY3RhYmxlLi4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by53
ZWJraXRTdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBqd2tLZXlBc0FycmF5QnVmZmVyLCB7IG5hbWU6
ICJITUFDIiwgaGFzaDogIlNIQS0yNTYiIH0sIG5vbkV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVy
aWZ5Il0pOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBrZXkgPSByZXN1bHQ7Ci0K
LSAgICBkZWJ1ZygiXG5UcnlpbmcgdG8gZXhwb3J0IGFzIHJhdy4uLiIpOwotICAgIHJldHVybiBj
cnlwdG8ud2Via2l0U3VidGxlLmV4cG9ydEtleSgicmF3Iiwga2V5KTsKLX0pLnRoZW4oZnVuY3Rp
b24ocmVzdWx0KSB7Ci0gICAgdGVzdEZhaWxlZCgiUHJvbWlzZSB3YXNuJ3QgcmVqZWN0ZWQiKTsK
LSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0sIGZ1bmN0aW9uKCkgewotICAgIHRlc3RQYXNzZWQoIlJl
amVjdGVkLCBhcyBleHBlY3RlZCIpOwotCi0gICAgZGVidWcoIlRyeWluZyB0byBleHBvcnQgYXMg
andrLi4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUuZXhwb3J0S2V5KCJqd2si
LCBrZXkpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICB0ZXN0RmFpbGVkKCJQcm9t
aXNlIHdhc24ndCByZWplY3RlZCIpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSwgZnVuY3Rpb24o
KSB7Ci0gICAgdGVzdFBhc3NlZCgiUmVqZWN0ZWQsIGFzIGV4cGVjdGVkIik7Ci0KLSAgICBmaW5p
c2hKU1Rlc3QoKTsKLX0pOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KClByb3BlcnR5
IGNoYW5nZXMgb246IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1leHBvcnQt
a2V5Lmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46bWltZS10eXBlCiMjIC0xICswLDAgIyMK
LXRleHQvaHRtbApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBMYXlvdXRU
ZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2htYWMtZ2VuZXJhdGUta2V5LWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2htYWMtZ2VuZXJh
dGUta2V5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjIwOTM1KQorKysgTGF5b3V0VGVzdHMvY3J5
cHRvL3dlYmtpdFN1YnRsZS9obWFjLWdlbmVyYXRlLWtleS1leHBlY3RlZC50eHQJKG5vbmV4aXN0
ZW50KQpAQCAtMSwzMCArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNjE2OiBXZWJLaXRT
dWJ0bGVDcnlwdG8gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBTdWJ0bGVDcnlwdG8gaW5zdGVh
ZC4KLVRlc3QgZ2VuZXJhdGluZyBhIEhNQUMga2V5LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCi0KLQotUEFTUyBjcnlwdG8ud2Via2l0U3VidGxlLmdlbmVyYXRlS2V5KCJobWFjIiwgZXh0
cmFjdGFibGUsIFsic2lnbiIsICJ2ZXJpZnkiXSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
VHlwZSBlcnJvci4KLVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTog
ImhtYWMifSwgZXh0cmFjdGFibGUsIFsic2lnbiIsICJ2ZXJpZnkiXSkgdGhyZXcgZXhjZXB0aW9u
IE5vdFN1cHBvcnRlZEVycm9yOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuLgotUEFT
UyBjcnlwdG8ud2Via2l0U3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiaG1hYyIsIGxlbmd0aDog
dW5kZWZpbmVkfSwgZXh0cmFjdGFibGUsIFsic2lnbiIsICJ2ZXJpZnkiXSkgdGhyZXcgZXhjZXB0
aW9uIE5vdFN1cHBvcnRlZEVycm9yOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuLgot
UEFTUyBjcnlwdG8ud2Via2l0U3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiaG1hYyIsIGxlbmd0
aDoge319LCBleHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSJdKSB0aHJldyBleGNlcHRpb24g
Tm90U3VwcG9ydGVkRXJyb3I6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4uCi0KLUdl
bmVyYXRpbmcgYSBrZXkgd2l0aCBkZWZhdWx0IGxlbmd0aC4uLgotUEFTUyBrZXkudHlwZSBpcyAn
c2VjcmV0JwotUEFTUyBrZXkuZXh0cmFjdGFibGUgaXMgdHJ1ZQotUEFTUyBrZXkuYWxnb3JpdGht
Lm5hbWUgaXMgJ0hNQUMnCi1QQVNTIGtleS5hbGdvcml0aG0ubGVuZ3RoIGlzIDUxMgotUEFTUyBr
ZXkuYWxnb3JpdGhtLmhhc2gubmFtZSBpcyAnU0hBLTEnCi1QQVNTIGtleS51c2FnZXMgaXMgWyJz
aWduIiwgInZlcmlmeSJdCi0KLUdlbmVyYXRpbmcgYSBrZXkgd2l0aCBjdXN0b20gbGVuZ3RoLi4u
Ci1QQVNTIGtleS50eXBlIGlzICdzZWNyZXQnCi1QQVNTIGtleS5leHRyYWN0YWJsZSBpcyB0cnVl
Ci1QQVNTIGtleS5hbGdvcml0aG0ubmFtZSBpcyAnSE1BQycKLVBBU1Mga2V5LmFsZ29yaXRobS5s
ZW5ndGggaXMgOAotUEFTUyBrZXkuYWxnb3JpdGhtLmhhc2gubmFtZSBpcyAnU0hBLTEnCi1QQVNT
IGtleS51c2FnZXMgaXMgWyJzaWduIl0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
LQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxl
L2htYWMtZ2VuZXJhdGUta2V5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRv
L3dlYmtpdFN1YnRsZS9obWFjLWdlbmVyYXRlLWtleS5odG1sCShyZXZpc2lvbiAyMjA5MzUpCisr
KyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2htYWMtZ2VuZXJhdGUta2V5Lmh0bWwJ
KG5vbmV4aXN0ZW50KQpAQCAtMSw1MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwv
aGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IGdlbmVyYXRpbmcgYSBITUFD
IGtleS4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBleHRyYWN0YWJsZSA9IHRy
dWU7Ci0KLXNob3VsZFRocm93KCdjcnlwdG8ud2Via2l0U3VidGxlLmdlbmVyYXRlS2V5KCJobWFj
IiwgZXh0cmFjdGFibGUsIFsic2lnbiIsICJ2ZXJpZnkiXSknKTsKLXNob3VsZFRocm93KCdjcnlw
dG8ud2Via2l0U3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiaG1hYyJ9LCBleHRyYWN0YWJsZSwg
WyJzaWduIiwgInZlcmlmeSJdKScpOwotc2hvdWxkVGhyb3coJ2NyeXB0by53ZWJraXRTdWJ0bGUu
Z2VuZXJhdGVLZXkoe25hbWU6ICJobWFjIiwgbGVuZ3RoOiB1bmRlZmluZWR9LCBleHRyYWN0YWJs
ZSwgWyJzaWduIiwgInZlcmlmeSJdKScpOwotc2hvdWxkVGhyb3coJ2NyeXB0by53ZWJraXRTdWJ0
bGUuZ2VuZXJhdGVLZXkoe25hbWU6ICJobWFjIiwgbGVuZ3RoOiB7fX0sIGV4dHJhY3RhYmxlLCBb
InNpZ24iLCAidmVyaWZ5Il0pJyk7Ci0KLWRlYnVnKCJcbkdlbmVyYXRpbmcgYSBrZXkgd2l0aCBk
ZWZhdWx0IGxlbmd0aC4uLiIpOwotY3J5cHRvLndlYmtpdFN1YnRsZS5nZW5lcmF0ZUtleSh7bmFt
ZTogImhtYWMiLCBoYXNoOiAic2hhLTEifSwgZXh0cmFjdGFibGUsIFsic2lnbiIsICJ2ZXJpZnki
XSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBrZXkgPSByZXN1bHQ7Ci0KLSAgICBzaG91
bGRCZSgia2V5LnR5cGUiLCAiJ3NlY3JldCciKTsKLSAgICBzaG91bGRCZSgia2V5LmV4dHJhY3Rh
YmxlIiwgInRydWUiKTsKLSAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5uYW1lIiwgIidITUFD
JyIpOwotICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLmxlbmd0aCIsICI1MTIiKTsKLSAgICBz
aG91bGRCZSgia2V5LmFsZ29yaXRobS5oYXNoLm5hbWUiLCAiJ1NIQS0xJyIpOwotICAgIHNob3Vs
ZEJlKCJrZXkudXNhZ2VzIiwgJ1sic2lnbiIsICJ2ZXJpZnkiXScpOwotCi0gICAgZGVidWcoIlxu
R2VuZXJhdGluZyBhIGtleSB3aXRoIGN1c3RvbSBsZW5ndGguLi4iKTsKLSAgICByZXR1cm4gY3J5
cHRvLndlYmtpdFN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogImhtYWMiLCBoYXNoOiAic2hhLTEi
LCBsZW5ndGg6IDh9LCBleHRyYWN0YWJsZSwgWyJzaWduIl0pOwotfSkudGhlbihmdW5jdGlvbihy
ZXN1bHQpIHsKLSAgICBrZXkgPSByZXN1bHQ7Ci0KLSAgICBzaG91bGRCZSgia2V5LnR5cGUiLCAi
J3NlY3JldCciKTsKLSAgICBzaG91bGRCZSgia2V5LmV4dHJhY3RhYmxlIiwgInRydWUiKTsKLSAg
ICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5uYW1lIiwgIidITUFDJyIpOwotICAgIHNob3VsZEJl
KCJrZXkuYWxnb3JpdGhtLmxlbmd0aCIsICI4Iik7Ci0gICAgc2hvdWxkQmUoImtleS5hbGdvcml0
aG0uaGFzaC5uYW1lIiwgIidTSEEtMSciKTsKLSAgICBzaG91bGRCZSgia2V5LnVzYWdlcyIsICdb
InNpZ24iXScpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLQotPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5
PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLWlt
cG9ydC1qd2stZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93
ZWJraXRTdWJ0bGUvaG1hYy1pbXBvcnQtandrLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjIwOTM1
KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLWltcG9ydC1qd2stZXhw
ZWN0ZWQudHh0CShub25leGlzdGVudCkKQEAgLTEsMjMgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDI5OiBXZWJLaXRTdWJ0bGVDcnlwdG8gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBT
dWJ0bGVDcnlwdG8gaW5zdGVhZC4KLVRlc3QgaW1wb3J0aW5nIGEgSldLIGtleSBmb3IgSE1BQy4K
LQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLUltcG9ydGluZyBhIGtleS4uLgotCi1Q
QVNTIGtleS50eXBlIGlzICdzZWNyZXQnCi1QQVNTIGtleS5leHRyYWN0YWJsZSBpcyBmYWxzZQot
UEFTUyBrZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ0hNQUMnCi1QQVNTIGtleS5hbGdvcml0aG0ubGVu
Z3RoIGlzIDI1NgotUEFTUyBrZXkudXNhZ2VzIGlzIFsic2lnbiIsICJ2ZXJpZnkiXQotCi1Vc2lu
ZyB0aGUga2V5IHRvIHNpZ24gbWVzc2FnZSAnZm9vJy4uLgotUEFTUyBieXRlc1RvSGV4U3RyaW5n
KG5ldyBVaW50OEFycmF5KHNpZ25hdHVyZSkpIGlzICdlMDM3MzZmZTA5ODg5MmIyYTJkYTc3ODEy
NDMxZjdjMDE0ZDMyZTJmZDY5ZjNiY2ZmODgzYWM5MjNhOGZhMmRhJwotCi1WZXJpZnlpbmcgdGhl
IHNpZ25hdHVyZS4uLgotUEFTUyB2ZXJpZmljYXRpb25SZXN1bHQgaXMgdHJ1ZQotUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KClByb3BlcnR5IGNoYW5n
ZXMgb246IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1pbXBvcnQtandrLWV4
cGVjdGVkLnR4dApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAj
IwotbmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKRGVsZXRlZDogc3ZuOm1p
bWUtdHlwZQojIyAtMSArMCwwICMjCi10ZXh0L3BsYWluClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
cHJvcGVydHkKSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1pbXBv
cnQtandrLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRs
ZS9obWFjLWltcG9ydC1qd2suaHRtbAkocmV2aXNpb24gMjIwOTM1KQorKysgTGF5b3V0VGVzdHMv
Y3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLWltcG9ydC1qd2suaHRtbAkobm9uZXhpc3RlbnQpCkBA
IC0xLDU1ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08
cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2Ny
aXB0PgotZGVzY3JpcHRpb24oIlRlc3QgaW1wb3J0aW5nIGEgSldLIGtleSBmb3IgSE1BQy4iKTsK
LQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBleHRyYWN0YWJsZSA9IHRydWU7Ci0KLXZh
ciBobWFjS2V5ID0gewotICAgICJrdHkiOiAib2N0IiwKLSAgICAiYWxnIjogIkhTMjU2IiwKLSAg
ICAidXNlIjogInNpZyIsCi0gICAgImV4dCI6IGZhbHNlLAotICAgICJrIjogImFoamtuLV8zODdm
Z25zaWJmMjNxc3ZhaGprbi1fMzg3Zmduc2liZjIzcXMiCi19OwotCi12YXIgaG1hY0tleUFzQXJy
YXlCdWZmZXIgPSBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShobWFjS2V5KSk7Ci0K
LWRlYnVnKCJJbXBvcnRpbmcgYSBrZXkuLi5cbiIpOwotY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBv
cnRLZXkoImp3ayIsIGhtYWNLZXlBc0FycmF5QnVmZmVyLCBudWxsLCBleHRyYWN0YWJsZSwgWyJz
aWduIiwgInZlcmlmeSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGtleSA9IHJlc3Vs
dDsKLQotICAgIHNob3VsZEJlKCJrZXkudHlwZSIsICInc2VjcmV0JyIpOwotICAgIHNob3VsZEJl
KCJrZXkuZXh0cmFjdGFibGUiLCAiZmFsc2UiKTsKLSAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRo
bS5uYW1lIiwgIidITUFDJyIpOwotICAgIHNob3VsZEJlKCJrZXkuYWxnb3JpdGhtLmxlbmd0aCIs
ICIyNTYiKTsKLSAgICBzaG91bGRCZSgia2V5LnVzYWdlcyIsICdbInNpZ24iLCAidmVyaWZ5Il0n
KTsKLQotICAgIGRlYnVnKCJcblVzaW5nIHRoZSBrZXkgdG8gc2lnbiBtZXNzYWdlICdmb28nLi4u
Iik7Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUuc2lnbihrZXkuYWxnb3JpdGhtLCBr
ZXksIGFzY2lpVG9VaW50OEFycmF5KCdmb28nKSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkg
ewotICAgIHNpZ25hdHVyZSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmlu
ZyhuZXcgVWludDhBcnJheShzaWduYXR1cmUpKSIsICInZTAzNzM2ZmUwOTg4OTJiMmEyZGE3Nzgx
MjQzMWY3YzAxNGQzMmUyZmQ2OWYzYmNmZjg4M2FjOTIzYThmYTJkYSciKTsKLQotICAgIGRlYnVn
KCJcblZlcmlmeWluZyB0aGUgc2lnbmF0dXJlLi4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJr
aXRTdWJ0bGUudmVyaWZ5KGtleS5hbGdvcml0aG0sIGtleSwgcmVzdWx0LCBhc2NpaVRvVWludDhB
cnJheSgnZm9vJykpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICB2ZXJpZmljYXRp
b25SZXN1bHQgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoInZlcmlmaWNhdGlvblJlc3VsdCIsICJ0
cnVlIik7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08
L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3Vi
dGxlL2htYWMtaW1wb3J0LWp3ay5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOm1pbWUtdHlw
ZQojIyAtMSArMCwwICMjCi10ZXh0L2h0bWwKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0
eQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLXBvc3RNZXNzYWdl
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3Vi
dGxlL2htYWMtcG9zdE1lc3NhZ2UtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMjA5MzUpCisrKyBM
YXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2htYWMtcG9zdE1lc3NhZ2UtZXhwZWN0ZWQu
dHh0CShub25leGlzdGVudCkKQEAgLTEsMTUgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDI2OiBXZWJLaXRTdWJ0bGVDcnlwdG8gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBTdWJ0bGVD
cnlwdG8gaW5zdGVhZC4KLVRlc3Qgc2VuZGluZyBjcnlwdG8ga2V5cyB2aWEgcG9zdE1lc3NhZ2Uu
Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIGtleS50eXBlIGlzICdzZWNy
ZXQnCi1QQVNTIGtleS5leHRyYWN0YWJsZSBpcyB0cnVlCi1QQVNTIGtleS5hbGdvcml0aG0ubmFt
ZSBpcyAnSE1BQycKLVBBU1Mga2V5LmFsZ29yaXRobS5sZW5ndGggaXMgMTI4Ci1QQVNTIGtleS51
c2FnZXMgaXMgWyJzaWduIiwgInZlcmlmeSJdCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCi0KLVRFU1QgQ09NUExFVEUKLQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMv
Y3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLXBvc3RNZXNzYWdlLWV4cGVjdGVkLnR4dApfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZlClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKRGVsZXRlZDogc3ZuOm1pbWUtdHlwZQojIyAtMSArMCww
ICMjCi10ZXh0L3BsYWluClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IExh
eW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1wb3N0TWVzc2FnZS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1wb3N0TWVzc2Fn
ZS5odG1sCShyZXZpc2lvbiAyMjA5MzUpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3Vi
dGxlL2htYWMtcG9zdE1lc3NhZ2UuaHRtbAkobm9uZXhpc3RlbnQpCkBAIC0xLDMyICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgot
PGJvZHk+Ci08c2NyaXB0PgotCi1kZXNjcmlwdGlvbigiVGVzdCBzZW5kaW5nIGNyeXB0byBrZXlz
IHZpYSBwb3N0TWVzc2FnZS4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXdpbmRvdy5h
ZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24oZXZ0KSB7Ci0gICAga2V5ID0gZXZ0
LmRhdGE7Ci0gICAgc2hvdWxkQmUoImtleS50eXBlIiwgIidzZWNyZXQnIik7Ci0gICAgc2hvdWxk
QmUoImtleS5leHRyYWN0YWJsZSIsICJ0cnVlIik7Ci0gICAgc2hvdWxkQmUoImtleS5hbGdvcml0
aG0ubmFtZSIsICInSE1BQyciKTsKLSAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5sZW5ndGgi
LCAiMTI4Iik7Ci0gICAgc2hvdWxkQmUoImtleS51c2FnZXMiLCAnWyJzaWduIiwgInZlcmlmeSJd
Jyk7Ci0KLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0sIGZhbHNlKTsKLQotY3J5cHRvLndlYmtpdFN1
YnRsZS5pbXBvcnRLZXkoInJhdyIsIGFzY2lpVG9VaW50OEFycmF5KCIxNiBieXRlcyBvZiBrZXkh
IiksIHtuYW1lOiAnaG1hYycsIGhhc2g6IHtuYW1lOiAnc2hhLTEnfX0sIHRydWUsIFsnc2lnbics
ICd2ZXJpZnknXSkudGhlbihmdW5jdGlvbihrZXkpIHsKLSAgICBwb3N0TWVzc2FnZShrZXksICIq
Iik7Ci19KTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBv
bjogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLXBvc3RNZXNzYWdlLmh0bWwK
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpEZWxldGVkOiBzdm46bWltZS10eXBlCiMjIC0xICswLDAgIyMKLXRleHQvaHRt
bApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlw
dG8vd2Via2l0U3VidGxlL2htYWMtc2lnbi12ZXJpZnktZW1wdHkta2V5LWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2htYWMtc2lnbi12
ZXJpZnktZW1wdHkta2V5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjIwOTM1KQorKysgTGF5b3V0
VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLXNpZ24tdmVyaWZ5LWVtcHR5LWtleS1leHBl
Y3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSwyMSArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6
IGxpbmUgMjA6IFdlYktpdFN1YnRsZUNyeXB0byBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIFN1
YnRsZUNyeXB0byBpbnN0ZWFkLgotVGVzdCBITUFDIHNpZ24gYW5kIHZlcmlmeSBmdW5jdGlvbnMg
d2l0aCBhbiBlbXB0eSBrZXkuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1JbXBv
cnRpbmcgYSByYXcgSE1BQyBrZXkgZnJvbSBzdHJpbmcgbGl0ZXJhbC4uLgotUEFTUyBrZXkudHlw
ZSBpcyAnc2VjcmV0JwotUEFTUyBrZXkuZXh0cmFjdGFibGUgaXMgdHJ1ZQotUEFTUyBrZXkuYWxn
b3JpdGhtLm5hbWUgaXMgJ0hNQUMnCi1QQVNTIGtleS5hbGdvcml0aG0ubGVuZ3RoIGlzIDAKLVBB
U1Mga2V5LmFsZ29yaXRobS5oYXNoLm5hbWUgaXMgJ1NIQS0xJwotUEFTUyBrZXkudXNhZ2VzIGlz
IFsnc2lnbicsICd2ZXJpZnknXQotVXNpbmcgdGhlIGtleSB0byBzaWduICdmb28nLi4uCi1QQVNT
IGJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoc2lnbmF0dXJlKSkgaXMgJ2EzY2M3NzBm
YzAzM2UyY2I0MTlkNDJiNjRlMDA4MWEzYmQzYmUzMGUnCi1WZXJpZnlpbmcgdGhlIHNpZ25hdHVy
ZS4uLgotUEFTUyB2ZXJpZmljYXRpb25SZXN1bHQgaXMgdHJ1ZQotUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KClByb3BlcnR5IGNoYW5nZXMgb246IExh
eW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1zaWduLXZlcmlmeS1lbXB0eS1rZXkt
ZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCww
ICMjCi1uYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpEZWxldGVkOiBzdm46
bWltZS10eXBlCiMjIC0xICswLDAgIyMKLXRleHQvcGxhaW4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBwcm9wZXJ0eQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLXNp
Z24tdmVyaWZ5LWVtcHR5LWtleS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0
by93ZWJraXRTdWJ0bGUvaG1hYy1zaWduLXZlcmlmeS1lbXB0eS1rZXkuaHRtbAkocmV2aXNpb24g
MjIwOTM1KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLXNpZ24tdmVy
aWZ5LWVtcHR5LWtleS5odG1sCShub25leGlzdGVudCkKQEAgLTEsNDYgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1v
bi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVz
dCBITUFDIHNpZ24gYW5kIHZlcmlmeSBmdW5jdGlvbnMgd2l0aCBhbiBlbXB0eSBrZXkuIik7Ci0K
LWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi12YXIgaG1hY0tleSA9IGFzY2lpVG9VaW50OEFycmF5
KCcnKTsKLXZhciBleHRyYWN0YWJsZSA9IHRydWU7Ci0KLWRlYnVnKCJJbXBvcnRpbmcgYSByYXcg
SE1BQyBrZXkgZnJvbSBzdHJpbmcgbGl0ZXJhbC4uLiIpOwotY3J5cHRvLndlYmtpdFN1YnRsZS5p
bXBvcnRLZXkoInJhdyIsIGhtYWNLZXksIHtuYW1lOiAnaG1hYycsIGhhc2g6IHtuYW1lOiAnc2hh
LTEnfX0sIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pLnRoZW4oZnVuY3Rpb24ocmVz
dWx0KSB7Ci0gICAga2V5ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJrZXkudHlwZSIsICInc2Vj
cmV0JyIpOwotICAgIHNob3VsZEJlKCJrZXkuZXh0cmFjdGFibGUiLCAidHJ1ZSIpOwotICAgIHNo
b3VsZEJlKCJrZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0hNQUMnIik7Ci0gICAgc2hvdWxkQmUoImtl
eS5hbGdvcml0aG0ubGVuZ3RoIiwgIjAiKTsgLy8gU2VlIDxodHRwczovL3d3dy53My5vcmcvQnVn
cy9QdWJsaWMvc2hvd19idWcuY2dpP2lkPTIzMDk4Pi4KLSAgICBzaG91bGRCZSgia2V5LmFsZ29y
aXRobS5oYXNoLm5hbWUiLCAiJ1NIQS0xJyIpOwotICAgIHNob3VsZEJlKCJrZXkudXNhZ2VzIiwg
Ilsnc2lnbicsICd2ZXJpZnknXSIpOwotCi0gICAgZGVidWcoIlVzaW5nIHRoZSBrZXkgdG8gc2ln
biAnZm9vJy4uLiIpOwotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLnNpZ24oa2V5LmFs
Z29yaXRobSwga2V5LCBhc2NpaVRvVWludDhBcnJheSgnZm9vJykpOwotfSkudGhlbihmdW5jdGlv
bihyZXN1bHQpIHsKLSAgICBzaWduYXR1cmUgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVz
VG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoc2lnbmF0dXJlKSkiLCAiJ2EzY2M3NzBmYzAzM2Uy
Y2I0MTlkNDJiNjRlMDA4MWEzYmQzYmUzMGUnIik7Ci0KLSAgICBkZWJ1ZygiVmVyaWZ5aW5nIHRo
ZSBzaWduYXR1cmUuLi4iKTsKLSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS52ZXJpZnko
a2V5LmFsZ29yaXRobSwga2V5LCByZXN1bHQsIGFzY2lpVG9VaW50OEFycmF5KCdmb28nKSk7Ci19
KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHZlcmlmaWNhdGlvblJlc3VsdCA9IHJlc3Vs
dDsKLSAgICBzaG91bGRCZSgidmVyaWZpY2F0aW9uUmVzdWx0IiwgInRydWUiKTsKLSAgICBmaW5p
c2hKU1Rlc3QoKTsKLX0pOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KClByb3BlcnR5
IGNoYW5nZXMgb246IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1zaWduLXZl
cmlmeS1lbXB0eS1rZXkuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjptaW1lLXR5cGUKIyMg
LTEgKzAsMCAjIwotdGV4dC9odG1sClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5k
ZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1zaWduLXZlcmlmeS1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9o
bWFjLXNpZ24tdmVyaWZ5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjIwOTM1KQorKysgTGF5b3V0
VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLXNpZ24tdmVyaWZ5LWV4cGVjdGVkLnR4dAko
bm9uZXhpc3RlbnQpCkBAIC0xLDIxICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyMDog
V2ViS2l0U3VidGxlQ3J5cHRvIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgU3VidGxlQ3J5cHRv
IGluc3RlYWQuCi1UZXN0IEhNQUMgc2lnbiBhbmQgdmVyaWZ5IGZ1bmN0aW9ucy4KLQotT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLUltcG9ydGluZyBhIHJhdyBITUFDIGtleSBmcm9tIHN0
cmluZyBsaXRlcmFsLi4uCi1QQVNTIGtleS50eXBlIGlzICdzZWNyZXQnCi1QQVNTIGtleS5leHRy
YWN0YWJsZSBpcyB0cnVlCi1QQVNTIGtleS5hbGdvcml0aG0ubmFtZSBpcyAnSE1BQycKLVBBU1Mg
a2V5LmFsZ29yaXRobS5sZW5ndGggaXMgOAotUEFTUyBrZXkuYWxnb3JpdGhtLmhhc2gubmFtZSBp
cyAnU0hBLTEnCi1QQVNTIGtleS51c2FnZXMgaXMgWydzaWduJywgJ3ZlcmlmeSddCi1Vc2luZyB0
aGUga2V5IHRvIHNpZ24gJ2ZvbycuLi4KLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhB
cnJheShzaWduYXR1cmUpKSBpcyAnYmViYmMwMmU0NmIwZjgxMTgzZjQwYzI1ZGNlMjNlNTA0NWQ2
NTUxOScKLVZlcmlmeWluZyB0aGUgc2lnbmF0dXJlLi4uCi1QQVNTIHZlcmlmaWNhdGlvblJlc3Vs
dCBpcyB0cnVlCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExF
VEUKLQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9obWFjLXNpZ24tdmVy
aWZ5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9o
bWFjLXNpZ24tdmVyaWZ5Lmh0bWwJKHJldmlzaW9uIDIyMDkzNSkKKysrIExheW91dFRlc3RzL2Ny
eXB0by93ZWJraXRTdWJ0bGUvaG1hYy1zaWduLXZlcmlmeS5odG1sCShub25leGlzdGVudCkKQEAg
LTEsNDYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxw
IGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3Jp
cHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBITUFDIHNpZ24gYW5kIHZlcmlmeSBmdW5jdGlvbnMuIik7
Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi12YXIgaG1hY0tleSA9IGFzY2lpVG9VaW50OEFy
cmF5KCdhJyk7Ci12YXIgZXh0cmFjdGFibGUgPSB0cnVlOwotCi1kZWJ1ZygiSW1wb3J0aW5nIGEg
cmF3IEhNQUMga2V5IGZyb20gc3RyaW5nIGxpdGVyYWwuLi4iKTsKLWNyeXB0by53ZWJraXRTdWJ0
bGUuaW1wb3J0S2V5KCJyYXciLCBobWFjS2V5LCB7bmFtZTogJ2htYWMnLCBoYXNoOiB7bmFtZTog
J3NoYS0xJ319LCBleHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSJdKS50aGVuKGZ1bmN0aW9u
KHJlc3VsdCkgewotICAgIGtleSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgia2V5LnR5cGUiLCAi
J3NlY3JldCciKTsKLSAgICBzaG91bGRCZSgia2V5LmV4dHJhY3RhYmxlIiwgInRydWUiKTsKLSAg
ICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5uYW1lIiwgIidITUFDJyIpOwotICAgIHNob3VsZEJl
KCJrZXkuYWxnb3JpdGhtLmxlbmd0aCIsICI4Iik7IC8vIFNlZSA8aHR0cHM6Ly93d3cudzMub3Jn
L0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD0yMzA5OD4uCi0gICAgc2hvdWxkQmUoImtleS5h
bGdvcml0aG0uaGFzaC5uYW1lIiwgIidTSEEtMSciKTsKLSAgICBzaG91bGRCZSgia2V5LnVzYWdl
cyIsICJbJ3NpZ24nLCAndmVyaWZ5J10iKTsKLQotICAgIGRlYnVnKCJVc2luZyB0aGUga2V5IHRv
IHNpZ24gJ2ZvbycuLi4iKTsKLSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS5zaWduKGtl
eS5hbGdvcml0aG0sIGtleSwgYXNjaWlUb1VpbnQ4QXJyYXkoJ2ZvbycpKTsKLX0pLnRoZW4oZnVu
Y3Rpb24ocmVzdWx0KSB7Ci0gICAgc2lnbmF0dXJlID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJi
eXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KHNpZ25hdHVyZSkpIiwgIidiZWJiYzAyZTQ2
YjBmODExODNmNDBjMjVkY2UyM2U1MDQ1ZDY1NTE5JyIpOwotCi0gICAgZGVidWcoIlZlcmlmeWlu
ZyB0aGUgc2lnbmF0dXJlLi4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUudmVy
aWZ5KGtleS5hbGdvcml0aG0sIGtleSwgcmVzdWx0LCBhc2NpaVRvVWludDhBcnJheSgnZm9vJykp
OwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICB2ZXJpZmljYXRpb25SZXN1bHQgPSBy
ZXN1bHQ7Ci0gICAgc2hvdWxkQmUoInZlcmlmaWNhdGlvblJlc3VsdCIsICJ0cnVlIik7Ci0gICAg
ZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2ltcG9ydC1leHBvcnQtcmF3LWtleS1s
ZWFrLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL2ltcG9ydC1leHBvcnQtcmF3LWtleS1sZWFrLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MjIwOTM1KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9pbXBvcnQtZXhwb3J0
LXJhdy1rZXktbGVhay1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSw4ICswLDAgQEAK
LUNPTlNPTEUgTUVTU0FHRTogbGluZSA0NDogV2ViS2l0U3VidGxlQ3J5cHRvIGlzIGRlcHJlY2F0
ZWQuIFBsZWFzZSB1c2UgU3VidGxlQ3J5cHRvIGluc3RlYWQuCi1TZW5kaW5nIFdvcmtlciBNZXNz
YWdlCi1Xb3JrZXIgVGVybWluYXRlZAotUEFTUyBleHBvcnRlZEtleS5ieXRlTGVuZ3RoIGlzIDAK
LVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4
OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2ltcG9ydC1leHBvcnQtcmF3LWtleS1s
ZWFrLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9p
bXBvcnQtZXhwb3J0LXJhdy1rZXktbGVhay5odG1sCShyZXZpc2lvbiAyMjA5MzUpCisrKyBMYXlv
dXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2ltcG9ydC1leHBvcnQtcmF3LWtleS1sZWFrLmh0
bWwJKG5vbmV4aXN0ZW50KQpAQCAtMSw0NSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1s
PgotPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgIGpz
VGVzdElzQXN5bmMgPSB0cnVlOwotCi0gICAgdmFyIGtleVNpemUgPSAweDEwMDsKLSAgICB2YXIg
YmxvYiA9IG5ldyBCbG9iKFsiIl0sIHt0eXBlIDogJ2FwcGxpY2F0aW9uL2phdmFzY3JpcHQnfSk7
Ci0gICAgdmFyIHdvcmtlciA9IG5ldyBXb3JrZXIoVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKSk7
Ci0KLSAgICBmdW5jdGlvbiBydW4oKQotICAgIHsKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQotICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0KLSAgICAgICAgZnVu
Y3Rpb24gYXJyYXlCdWZmZXJOZXV0ZXIoYWIpCi0gICAgICAgIHsKLSAgICAgICAgICAgIC8qIE5l
dXRlciB0aGUgQXJyYXlCdWZmZXIgKi8KLSAgICAgICAgICAgIGRlYnVnKCJTZW5kaW5nIFdvcmtl
ciBNZXNzYWdlIik7Ci0gICAgICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoYWIsIFthYl0pOwot
ICAgICAgICAgICAgd29ya2VyLnRlcm1pbmF0ZSgpOwotICAgICAgICAgICAgZGVidWcoIldvcmtl
ciBUZXJtaW5hdGVkIik7Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIgYSA9IG5ldyBBcnJheUJ1
ZmZlcihrZXlTaXplKTsKLSAgICAgICAgdmFyIGIgPSB7IH07Ci0gICAgICAgIGIuX19kZWZpbmVH
ZXR0ZXJfXygnbmFtZScsIGZ1bmN0aW9uKCl7Ci0gICAgICAgICAgICBhcnJheUJ1ZmZlck5ldXRl
cihhKTsKLSAgICAgICAgICAgIHJldHVybiAiQUVTLUNCQyI7Ci0gICAgICAgIH0pOwotICAgICAg
ICB2YXIgcmVzdWx0ID0gd2luZG93LmNyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0S2V5KCJyYXci
LCBhLCBiLCB0cnVlKTsKLSAgICAgICAgcmVzdWx0LnRoZW4oZnVuY3Rpb24oa2V5KSB7Ci0gICAg
ICAgICAgICB3aW5kb3cuY3J5cHRvLndlYmtpdFN1YnRsZS5leHBvcnRLZXkoInJhdyIsIGtleSku
dGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICAgICAgICAgICAgICBleHBvcnRlZEtleSA9IHJl
c3VsdDsKLSAgICAgICAgICAgICAgICBzaG91bGRCZVplcm8oImV4cG9ydGVkS2V5LmJ5dGVMZW5n
dGgiKTsKLSAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgICAgIH0pOwot
ICAgICAgICB9KTsKLSAgICB9Ci0gICAgPC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25s
b2FkPSJydW4oKSI+PC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dl
YmtpdFN1YnRsZS9pbXBvcnQtandrLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2ltcG9ydC1qd2stZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAyMjA5MzUpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2ltcG9ydC1qd2st
ZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKQEAgLTEsMzEgKzAsMCBAQAotQ09OU09MRSBNRVNT
QUdFOiBsaW5lIDYxNjogV2ViS2l0U3VidGxlQ3J5cHRvIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1
c2UgU3VidGxlQ3J5cHRvIGluc3RlYWQuCi1UZXN0IGVycm9yIGhhbmRsaW5nIGZvciBKV0sgaW1w
b3J0LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBjcnlwdG8ud2Via2l0
U3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoJycpLCBudWxsKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBJbnZhbGlkIEpXSyBzZXJpYWxpemF0aW9uLgotUEFTUyBj
cnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoJ3sn
KSwgbnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogSW52YWxpZCBKV0sgc2VyaWFsaXph
dGlvbi4KLVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9V
aW50OEFycmF5KCdudWxsJyksIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEludmFs
aWQgSldLIHNlcmlhbGl6YXRpb24uCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0S2V5
KCJqd2siLCBhc2NpaVRvVWludDhBcnJheSgndW5kZWZpbmVkJyksIG51bGwpIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IEludmFsaWQgSldLIHNlcmlhbGl6YXRpb24uCi1QQVNTIGNyeXB0by53
ZWJraXRTdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheSgne30nKSwgbnVs
bCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTmVpdGhlciBrZXkgbm9yIGZ1bmN0aW9uIGFy
Z3VtZW50IGhhcyBjcnlwdG8gYWxnb3JpdGhtIHNwZWNpZmllZC4KLVBBU1MgY3J5cHRvLndlYmtp
dFN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KCd7fScpLCAiYWVzLWNi
YyIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFJlcXVpcmVkIEpXSyAia3R5IiBtZW1iZXIg
aXMgbWlzc2luZy4KLVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFz
Y2lpVG9VaW50OEFycmF5KCd7ICJrdHkiOiAiZm9vYmFyIiwgImFsZyI6ICJIUzI1NiIsICJ1c2Ui
OiAic2lnIiwgImsiOiAiYWhqa24yMzM4N2ZnbnNpYmYyM3FzdmFoamtuMzczODdmZ25zaWJmMjNx
cyIgfScpLCBudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBVbnN1cHBvcnRlZCBKV0sg
a2V5IHR5cGUgZm9vYmFyLgotUEFTUyBjcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgiandr
IiwgYXNjaWlUb1VpbnQ4QXJyYXkoJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjogImZvb2JhciIsICJ1
c2UiOiAic2lnIiwgImsiOiAiYWhqa24yMzM4N2ZnbnNpYmYyM3FzdmFoamtuMzczODdmZ25zaWJm
MjNxcyIgfScpLCBudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBVbnN1cHBvcnRlZCBK
V0sgYWxnb3JpdGhtIGZvb2Jhci4KLVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXko
Imp3ayIsIGFzY2lpVG9VaW50OEFycmF5KCd7ICJrdHkiOiAib2N0IiwgImFsZyI6ICJIUzI1NiIs
ICJ1c2UiOiAic2lnIiwgImV4dCI6IGZhbHNlLCAiayI6ICJhaGprbjIzMzg3Zmduc2liZjIzcXN2
YWhqa24zNzM4N2ZnbnNpYmYyM3FzIiB9JyksICJhZXMtY2JjIikgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogQWxnb3JpdGhtIHNwZWNpZmllZCBpbiBrZXkgaXMgbm90IGNvbXBhdGlibGUgd2l0
aCBvbmUgcGFzc2VkIHRvIGltcG9ydEtleSBhcyBhcmd1bWVudC4KLVBBU1MgY3J5cHRvLndlYmtp
dFN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KCd7ICJrdHkiOiAib2N0
IiwgImFsZyI6ICJIUzI1NiIsICJ1c2UiOiAic2lnIiwgImV4dCI6IGZhbHNlLCAiayI6ICJhaGpr
bjIzMzg3Zmduc2liZjIzcXN2YWhqa24zNzM4N2ZnbnNpYmYyM3FzIiB9JyksIHsgbmFtZTogImht
YWMiLCBoYXNoOiAic2hhLTEiIH0pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEFsZ29yaXRo
bSBzcGVjaWZpZWQgaW4ga2V5IGlzIG5vdCBjb21wYXRpYmxlIHdpdGggb25lIHBhc3NlZCB0byBp
bXBvcnRLZXkgYXMgYXJndW1lbnQuCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0S2V5
KCJqd2siLCBhc2NpaVRvVWludDhBcnJheSgneyAia3R5IjogIm9jdCIsICJhbGciOiAiSFMyNTYi
IH0nKSwgbnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogU2VjcmV0IGtleSBkYXRhIGlz
IG5vdCBwcmVzZW50IGlzIEpXSy4KLVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXko
Imp3ayIsIGFzY2lpVG9VaW50OEFycmF5KCd7ICJrdHkiOiAib2N0IiwgImFsZyI6ICJBMTI4Q0JD
IiB9JyksIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFNlY3JldCBrZXkgZGF0YSBp
cyBub3QgcHJlc2VudCBpcyBKV0suCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0S2V5
KCJqd2siLCBhc2NpaVRvVWludDhBcnJheSgneyAia3R5IjogIm9jdCIsICJhbGciOiAiSFMyNTYi
LCAidXNlIjogInNpZyIsICJleHQiOiBmYWxzZSwgImsiOiAiMTIzNCIgfScpLCBudWxsKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBLZXkgc2l6ZSBpcyBub3QgdmFsaWQgZm9yIEhTMjU2Lgot
UEFTUyBjcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJy
YXkoJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjogIkExMjhDQkMiLCAidXNlIjogInNpZyIsICJleHQi
OiBmYWxzZSwgImsiOiAiMTIzNCIgfScpLCBudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBLZXkgc2l6ZSBpcyBub3QgdmFsaWQgZm9yIEExMjhDQkMuCi1QQVNTIGNyeXB0by53ZWJraXRT
dWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheSgneyAia3R5IjogIm9jdCIs
ICJhbGciOiAiQTEyOENCQyIsICJ1c2UiOiAic2lnIiwgImV4dCI6IGZhbHNlLCAiayI6ICJhaGpr
bjIzMzg3Zmduc2liZjIzcXN2YWhqa24zNzM4N2ZnbnNpYmYyM3FzIiB9JyksIG51bGwpIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEtleSBzaXplIGlzIG5vdCB2YWxpZCBmb3IgQTEyOENCQy4K
LVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFy
cmF5KCd7ICJrdHkiOiAib2N0IiwgImFsZyI6ICJIUzI1NiIsICJ1c2UiOiAic2lnIiwgImV4dCI6
IGZhbHNlLCAiayI6ICJhaGprbjIzMzg3Zituc2liZjIzcXN2YWhqa24zNzM4N2ZnbnNpYmYyM3Fz
IiB9JyksIG51bGwpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IENhbm5vdCBkZWNvZGUgYmFz
ZTY0dXJsIGtleSBkYXRhIGluIEpXSy4KLVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRL
ZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KCd7ICJrdHkiOiAxLCAiYWxnIjogIkhTMjU2Iiwg
InVzZSI6ICJzaWciLCAiZXh0IjogZmFsc2UsICJrIjogImFoamtuMjMzODdmZ25zaWJmMjNxc3Zh
aGprbjM3Mzg3Zmduc2liZjIzcXMiIH0nKSwgbnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogRXhwZWN0ZWQgYSBzdHJpbmcgdmFsdWUgZm9yICJrdHkiIEpTT04ga2V5LgotUEFTUyBjcnlw
dG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoJ3sgImt0
eSI6ICJvY3QiLCAiYWxnIjogMSwgInVzZSI6ICJzaWciLCAiZXh0IjogZmFsc2UsICJrIjogImFo
amtuMjMzODdmZ25zaWJmMjNxc3ZhaGprbjM3Mzg3Zmduc2liZjIzcXMiIH0nKSwgbnVsbCkgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogRXhwZWN0ZWQgYSBzdHJpbmcgdmFsdWUgZm9yICJhbGci
IEpTT04ga2V5LgotUEFTUyBjcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgiandrIiwgYXNj
aWlUb1VpbnQ4QXJyYXkoJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjogIkhTMjU2IiwgInVzZSI6IDEs
ICJleHQiOiBmYWxzZSwgImsiOiAiYWhqa24yMzM4N2ZnbnNpYmYyM3FzdmFoamtuMzczODdmZ25z
aWJmMjNxcyIgfScpLCBudWxsKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBFeHBlY3RlZCBh
IHN0cmluZyB2YWx1ZSBmb3IgInVzZSIgSlNPTiBrZXkuCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0
bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheSgneyAia3R5IjogIm9jdCIsICJh
bGciOiAiSFMyNTYiLCAidXNlIjogInNpZyIsICJleHQiOiAiZmFsc2UiLCAiayI6ICJhaGprbjIz
Mzg3Zmduc2liZjIzcXN2YWhqa24zNzM4N2ZnbnNpYmYyM3FzIiB9JyksIG51bGwpIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IEV4cGVjdGVkIGEgYm9vbGVhbiB2YWx1ZSBmb3IgImV4dCIgSlNP
TiBrZXkuCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRv
VWludDhBcnJheSgneyAia3R5IjogIm9jdCIsICJhbGciOiAiSFMyNTYiLCAidXNlIjogInNpZyIs
ICJleHQiOiBmYWxzZSwgImsiOiAxIH0nKSwgbnVsbCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogRXhwZWN0ZWQgYSBzdHJpbmcgdmFsdWUgZm9yICJrIiBKU09OIGtleS4KLVBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0
cy9jcnlwdG8vd2Via2l0U3VidGxlL2ltcG9ydC1qd2suaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2ltcG9ydC1qd2suaHRtbAkocmV2aXNpb24gMjIw
OTM1KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9pbXBvcnQtandrLmh0bWwJ
KG5vbmV4aXN0ZW50KQpAQCAtMSw1MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwv
aGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IGVycm9yIGhhbmRsaW5nIGZv
ciBKV0sgaW1wb3J0LiIpOwotCi1zaG91bGRUaHJvdygnY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBv
cnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KFwnXCcpLCBudWxsKScpCi1zaG91bGRUaHJv
dygnY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5
KFwne1wnKSwgbnVsbCknKQotc2hvdWxkVGhyb3coJ2NyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0
S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShcJ251bGxcJyksIG51bGwpJykKLXNob3VsZFRo
cm93KCdjcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJy
YXkoXCd1bmRlZmluZWRcJyksIG51bGwpJykKLXNob3VsZFRocm93KCdjcnlwdG8ud2Via2l0U3Vi
dGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoXCd7fVwnKSwgbnVsbCknKQot
c2hvdWxkVGhyb3coJ2NyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRv
VWludDhBcnJheShcJ3t9XCcpLCAiYWVzLWNiYyIpJykKLQotLy8gVW5rbm93bi9pbnZhbGlkIEpX
SyB2YWx1ZXMuCi1zaG91bGRUaHJvdygnY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoImp3
ayIsIGFzY2lpVG9VaW50OEFycmF5KFwneyAia3R5IjogImZvb2JhciIsICJhbGciOiAiSFMyNTYi
LCAidXNlIjogInNpZyIsICJrIjogImFoamtuMjMzODdmZ25zaWJmMjNxc3ZhaGprbjM3Mzg3Zmdu
c2liZjIzcXMiIH1cJyksIG51bGwpJykKLXNob3VsZFRocm93KCdjcnlwdG8ud2Via2l0U3VidGxl
LmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoXCd7ICJrdHkiOiAib2N0IiwgImFs
ZyI6ICJmb29iYXIiLCAidXNlIjogInNpZyIsICJrIjogImFoamtuMjMzODdmZ25zaWJmMjNxc3Zh
aGprbjM3Mzg3Zmduc2liZjIzcXMiIH1cJyksIG51bGwpJykKLQotLy8gQWxnb3JpdGhtIG1pc21h
dGNoLgotc2hvdWxkVGhyb3coJ2NyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBh
c2NpaVRvVWludDhBcnJheShcJ3sgImt0eSI6ICJvY3QiLCAiYWxnIjogIkhTMjU2IiwgInVzZSI6
ICJzaWciLCAiZXh0IjogZmFsc2UsICJrIjogImFoamtuMjMzODdmZ25zaWJmMjNxc3ZhaGprbjM3
Mzg3Zmduc2liZjIzcXMiIH1cJyksICJhZXMtY2JjIiknKQotc2hvdWxkVGhyb3coJ2NyeXB0by53
ZWJraXRTdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShcJ3sgImt0eSI6
ICJvY3QiLCAiYWxnIjogIkhTMjU2IiwgInVzZSI6ICJzaWciLCAiZXh0IjogZmFsc2UsICJrIjog
ImFoamtuMjMzODdmZ25zaWJmMjNxc3ZhaGprbjM3Mzg3Zmduc2liZjIzcXMiIH1cJyksIHsgbmFt
ZTogImhtYWMiLCBoYXNoOiAic2hhLTEiIH0pJykKLQotLy8gTm8ga2V5IGRhdGEuCi1zaG91bGRU
aHJvdygnY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFy
cmF5KFwneyAia3R5IjogIm9jdCIsICJhbGciOiAiSFMyNTYiIH1cJyksIG51bGwpJykKLXNob3Vs
ZFRocm93KCdjcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4
QXJyYXkoXCd7ICJrdHkiOiAib2N0IiwgImFsZyI6ICJBMTI4Q0JDIiB9XCcpLCBudWxsKScpCi0K
LS8vIEtleSBkYXRhIGxlbmd0aCBpcyBpbmNvcnJlY3QsIG5vdCBhbGxvd2VkIGluIEpXSy4KLXNo
b3VsZFRocm93KCdjcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1Vp
bnQ4QXJyYXkoXCd7ICJrdHkiOiAib2N0IiwgImFsZyI6ICJIUzI1NiIsICJ1c2UiOiAic2lnIiwg
ImV4dCI6IGZhbHNlLCAiayI6ICIxMjM0IiB9XCcpLCBudWxsKScpCi1zaG91bGRUaHJvdygnY3J5
cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KFwneyAi
a3R5IjogIm9jdCIsICJhbGciOiAiQTEyOENCQyIsICJ1c2UiOiAic2lnIiwgImV4dCI6IGZhbHNl
LCAiayI6ICIxMjM0IiB9XCcpLCBudWxsKScpCi1zaG91bGRUaHJvdygnY3J5cHRvLndlYmtpdFN1
YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KFwneyAia3R5IjogIm9jdCIs
ICJhbGciOiAiQTEyOENCQyIsICJ1c2UiOiAic2lnIiwgImV4dCI6IGZhbHNlLCAiayI6ICJhaGpr
bjIzMzg3Zmduc2liZjIzcXN2YWhqa24zNzM4N2ZnbnNpYmYyM3FzIiB9XCcpLCBudWxsKScpCi0K
LS8vIEtleSBkYXRhIGlzIG5vdCB2YWxpZCBiYXNlNjR1cmwuCi1zaG91bGRUaHJvdygnY3J5cHRv
LndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KFwneyAia3R5
IjogIm9jdCIsICJhbGciOiAiSFMyNTYiLCAidXNlIjogInNpZyIsICJleHQiOiBmYWxzZSwgImsi
OiAiYWhqa24yMzM4N2YrbnNpYmYyM3FzdmFoamtuMzczODdmZ25zaWJmMjNxcyIgfVwnKSwgbnVs
bCknKQotCi0vLyBJbmNvcnJlY3QgZGF0YSB0eXBlcy4KLXNob3VsZFRocm93KCdjcnlwdG8ud2Vi
a2l0U3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoXCd7ICJrdHkiOiAx
LCAiYWxnIjogIkhTMjU2IiwgInVzZSI6ICJzaWciLCAiZXh0IjogZmFsc2UsICJrIjogImFoamtu
MjMzODdmZ25zaWJmMjNxc3ZhaGprbjM3Mzg3Zmduc2liZjIzcXMiIH1cJyksIG51bGwpJykKLXNo
b3VsZFRocm93KCdjcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1Vp
bnQ4QXJyYXkoXCd7ICJrdHkiOiAib2N0IiwgImFsZyI6IDEsICJ1c2UiOiAic2lnIiwgImV4dCI6
IGZhbHNlLCAiayI6ICJhaGprbjIzMzg3Zmduc2liZjIzcXN2YWhqa24zNzM4N2ZnbnNpYmYyM3Fz
IiB9XCcpLCBudWxsKScpCi1zaG91bGRUaHJvdygnY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRL
ZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KFwneyAia3R5IjogIm9jdCIsICJhbGciOiAiSFMy
NTYiLCAidXNlIjogMSwgImV4dCI6IGZhbHNlLCAiayI6ICJhaGprbjIzMzg3Zmduc2liZjIzcXN2
YWhqa24zNzM4N2ZnbnNpYmYyM3FzIiB9XCcpLCBudWxsKScpCi1zaG91bGRUaHJvdygnY3J5cHRv
LndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KFwneyAia3R5
IjogIm9jdCIsICJhbGciOiAiSFMyNTYiLCAidXNlIjogInNpZyIsICJleHQiOiAiZmFsc2UiLCAi
ayI6ICJhaGprbjIzMzg3Zmduc2liZjIzcXN2YWhqa24zNzM4N2ZnbnNpYmYyM3FzIiB9XCcpLCBu
dWxsKScpCi1zaG91bGRUaHJvdygnY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoImp3ayIs
IGFzY2lpVG9VaW50OEFycmF5KFwneyAia3R5IjogIm9jdCIsICJhbGciOiAiSFMyNTYiLCAidXNl
IjogInNpZyIsICJleHQiOiBmYWxzZSwgImsiOiAxIH1cJyksIG51bGwpJykKLTwvc2NyaXB0Pgot
Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxl
L2p3ay1leHBvcnQtdXNlLXZhbHVlcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9qd2stZXhwb3J0LXVzZS12YWx1ZXMtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAyMjA5MzUpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxl
L2p3ay1leHBvcnQtdXNlLXZhbHVlcy1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSw1
NCArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDg6IFdlYktpdFN1YnRsZUNyeXB0byBp
cyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIFN1YnRsZUNyeXB0byBpbnN0ZWFkLgotVGVzdCBleHBv
cnRpbmcga2V5cyB3aXRoIHZhcmlvdXMgdXNhZ2VzIHRvIEpXSy4KLQotT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgotCi0KLWVuY3J5cHQ6Ci1QQVNTIGp3ay51c2UgaXMgdW5kZWZpbmVkCi1QQVNT
IGp3ay5rZXlfb3BzIGlzIFsiZW5jcnlwdCJdCi0KLWRlY3J5cHQ6Ci1QQVNTIGp3ay51c2UgaXMg
dW5kZWZpbmVkCi1QQVNTIGp3ay5rZXlfb3BzIGlzIFsiZGVjcnlwdCJdCi0KLWVuY3J5cHQsZGVj
cnlwdDoKLVBBU1MgandrLnVzZSBpcyB1bmRlZmluZWQKLVBBU1MgandrLmtleV9vcHMgaXMgWyJl
bmNyeXB0IiwiZGVjcnlwdCJdCi0KLXdyYXBLZXk6Ci1QQVNTIGp3ay51c2UgaXMgdW5kZWZpbmVk
Ci1QQVNTIGp3ay5rZXlfb3BzIGlzIFsid3JhcEtleSJdCi0KLXVud3JhcEtleToKLVBBU1Mgandr
LnVzZSBpcyB1bmRlZmluZWQKLVBBU1MgandrLmtleV9vcHMgaXMgWyJ1bndyYXBLZXkiXQotCi13
cmFwS2V5LHVud3JhcEtleToKLVBBU1MgandrLnVzZSBpcyB1bmRlZmluZWQKLVBBU1MgandrLmtl
eV9vcHMgaXMgWyJ3cmFwS2V5IiwidW53cmFwS2V5Il0KLQotZW5jcnlwdCxkZWNyeXB0LHdyYXBL
ZXk6Ci1QQVNTIGp3ay51c2UgaXMgdW5kZWZpbmVkCi1QQVNTIGp3ay5rZXlfb3BzIGlzIFsiZW5j
cnlwdCIsImRlY3J5cHQiLCJ3cmFwS2V5Il0KLQotZW5jcnlwdCxkZWNyeXB0LHdyYXBLZXksdW53
cmFwS2V5OgotUEFTUyBqd2sudXNlIGlzIHVuZGVmaW5lZAotUEFTUyBqd2sua2V5X29wcyBpcyBb
ImVuY3J5cHQiLCJkZWNyeXB0Iiwid3JhcEtleSIsInVud3JhcEtleSJdCi0KLXNpZ246Ci1QQVNT
IGp3ay51c2UgaXMgdW5kZWZpbmVkCi1QQVNTIGp3ay5rZXlfb3BzIGlzIFsic2lnbiJdCi0KLXZl
cmlmeToKLVBBU1MgandrLnVzZSBpcyB1bmRlZmluZWQKLVBBU1MgandrLmtleV9vcHMgaXMgWyJ2
ZXJpZnkiXQotCi1zaWduLHZlcmlmeToKLVBBU1MgandrLnVzZSBpcyB1bmRlZmluZWQKLVBBU1Mg
andrLmtleV9vcHMgaXMgWyJzaWduIiwidmVyaWZ5Il0KLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91
dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvandrLWV4cG9ydC11c2UtdmFsdWVzLWV4cGVjdGVk
LnR4dApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0
aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKRGVsZXRlZDogc3ZuOm1pbWUtdHlw
ZQojIyAtMSArMCwwICMjCi10ZXh0L3BsYWluClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVy
dHkKSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvandrLWV4cG9ydC11c2Ut
dmFsdWVzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRs
ZS9qd2stZXhwb3J0LXVzZS12YWx1ZXMuaHRtbAkocmV2aXNpb24gMjIwOTM1KQorKysgTGF5b3V0
VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9qd2stZXhwb3J0LXVzZS12YWx1ZXMuaHRtbAkobm9u
ZXhpc3RlbnQpCkBAIC0xLDY0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3QgZXhwb3J0aW5nIGtleXMgd2l0aCB2
YXJpb3VzIHVzYWdlcyB0byBKV0suIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi12YXIg
ZXh0cmFjdGFibGUgPSB0cnVlOwotCi12YXIgYWVzS2V5QXNBcnJheUJ1ZmZlciA9IEJhc2U2NFVS
TC5wYXJzZSgiam5Pdzk5b09aRkxJRVBNcmdKQjU1V0w0NnRKU0xHdDciKTsKLXZhciBobWFjS2V5
QXNBcnJheUJ1ZmZlciA9IEJhc2U2NFVSTC5wYXJzZSgiYWhqa24tXzM4N2ZnbnNpYmYyM3FzdmFo
amtuLV8zODdmZ25zaWJmMjNxcyIpOwotCi1mdW5jdGlvbiB0ZXN0V2l0aEFFU0NCQyh1c2FnZXMs
IGV4cGVjdGVkS2V5T3BzKQotewotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLmltcG9y
dEtleSgicmF3IiwgYWVzS2V5QXNBcnJheUJ1ZmZlciwgIkFFUy1DQkMiLCBleHRyYWN0YWJsZSwg
dXNhZ2VzKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgICAgICByZXR1cm4gY3J5cHRvLndl
YmtpdFN1YnRsZS5leHBvcnRLZXkoImp3ayIsIHJlc3VsdCk7Ci0gICAgfSkudGhlbihmdW5jdGlv
bihyZXN1bHQpIHsKLSAgICAgICAgandrID0gSlNPTi5wYXJzZShieXRlc1RvQVNDSUlTdHJpbmco
cmVzdWx0KSk7Ci0gICAgICAgIGRlYnVnKHVzYWdlcyArICI6Iik7Ci0gICAgICAgIHNob3VsZEJl
KCJqd2sudXNlIiwgInVuZGVmaW5lZCIpOwotICAgICAgICBzaG91bGRCZSgiandrLmtleV9vcHMi
LCBKU09OLnN0cmluZ2lmeShleHBlY3RlZEtleU9wcykpOwotICAgICAgICBkZWJ1ZygiIik7Ci0g
ICAgfSk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RXaXRoSE1BQyh1c2FnZXMsIGV4cGVjdGVkS2V5T3Bz
KQotewotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgicmF3IiwgaG1h
Y0tleUFzQXJyYXlCdWZmZXIsIHtuYW1lOiAnaG1hYycsIGhhc2g6IHtuYW1lOiAnc2hhLTI1Nid9
fSwgZXh0cmFjdGFibGUsIHVzYWdlcykudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICAgICAg
cmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUuZXhwb3J0S2V5KCJqd2siLCByZXN1bHQpOwotICAg
IH0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgICAgIGp3ayA9IEpTT04ucGFyc2UoYnl0
ZXNUb0FTQ0lJU3RyaW5nKHJlc3VsdCkpOwotICAgICAgICBkZWJ1Zyh1c2FnZXMgKyAiOiIpOwot
ICAgICAgICBzaG91bGRCZSgiandrLnVzZSIsICJ1bmRlZmluZWQiKTsKLSAgICAgICAgc2hvdWxk
QmUoImp3ay5rZXlfb3BzIiwgSlNPTi5zdHJpbmdpZnkoZXhwZWN0ZWRLZXlPcHMpKTsKLSAgICAg
ICAgZGVidWcoIiIpOwotICAgIH0pOwotfQotCi1Qcm9taXNlLmFsbChbCi0gICAgdGVzdFdpdGhB
RVNDQkMoWyJlbmNyeXB0Il0sIFsiZW5jcnlwdCJdKSwKLSAgICB0ZXN0V2l0aEFFU0NCQyhbImRl
Y3J5cHQiXSwgWyJkZWNyeXB0Il0pLAotICAgIHRlc3RXaXRoQUVTQ0JDKFsiZW5jcnlwdCIsICJk
ZWNyeXB0Il0sIFsiZW5jcnlwdCIsICJkZWNyeXB0Il0pLAotICAgIHRlc3RXaXRoQUVTQ0JDKFsi
d3JhcEtleSJdLCBbIndyYXBLZXkiXSksCi0gICAgdGVzdFdpdGhBRVNDQkMoWyJ1bndyYXBLZXki
XSwgWyJ1bndyYXBLZXkiXSksCi0gICAgdGVzdFdpdGhBRVNDQkMoWyJ3cmFwS2V5IiwgInVud3Jh
cEtleSJdLCBbIndyYXBLZXkiLCAidW53cmFwS2V5Il0pLAotICAgIHRlc3RXaXRoQUVTQ0JDKFsi
ZW5jcnlwdCIsICJkZWNyeXB0IiwgIndyYXBLZXkiXSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiLCAi
d3JhcEtleSJdKSwKLSAgICB0ZXN0V2l0aEFFU0NCQyhbImVuY3J5cHQiLCAiZGVjcnlwdCIsICJ3
cmFwS2V5IiwgInVud3JhcEtleSJdLCBbImVuY3J5cHQiLCAiZGVjcnlwdCIsICJ3cmFwS2V5Iiwg
InVud3JhcEtleSJdKSwKLSAgICB0ZXN0V2l0aEhNQUMoWyJzaWduIl0sIFsic2lnbiJdKSwKLSAg
ICB0ZXN0V2l0aEhNQUMoWyJ2ZXJpZnkiXSwgWyJ2ZXJpZnkiXSksCi0gICAgdGVzdFdpdGhITUFD
KFsic2lnbiIsICJ2ZXJpZnkiXSwgWyJzaWduIiwgInZlcmlmeSJdKSwKLV0pLnRoZW4oZnVuY3Rp
b24oKSB7IGZpbmlzaEpTVGVzdCgpOyB9ICk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9q
d2stZXhwb3J0LXVzZS12YWx1ZXMuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjptaW1lLXR5
cGUKIyMgLTEgKzAsMCAjIwotdGV4dC9odG1sClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVy
dHkKSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvandrLWltcG9ydC11c2Ut
dmFsdWVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Vi
a2l0U3VidGxlL2p3ay1pbXBvcnQtdXNlLXZhbHVlcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIy
MDkzNSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvandrLWltcG9ydC11c2Ut
dmFsdWVzLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCkBAIC0xLDU0ICswLDAgQEAKLUNPTlNP
TEUgTUVTU0FHRTogbGluZSAxOiBXZWJLaXRTdWJ0bGVDcnlwdG8gaXMgZGVwcmVjYXRlZC4gUGxl
YXNlIHVzZSBTdWJ0bGVDcnlwdG8gaW5zdGVhZC4KLVRlc3QgaW1wb3J0aW5nIGtleXMgd2l0aCB2
YXJpb3VzIHVzZXMgZnJvbSBKV0suCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1Q
QVNTIHRlc3RXaXRoQUVTQ0JDKFsiZW5jcnlwdCJdLCB7a2V5X29wczogWyJlbmNyeXB0IiwgImVu
Y3J5cHQiXX0pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEpXSyBrZXlfb3BzIGNvbnRhaW5z
IGEgZHVwbGljYXRlIG9wZXJhdGlvbi4KLQoteyJrZXlfb3BzIjpbImVuY3J5cHQiXX06Ci1QQVNT
IGtleS51c2FnZXMgaXMgWyJlbmNyeXB0Il0KLQoteyJrZXlfb3BzIjpbImRlY3J5cHQiXX06Ci1Q
QVNTIGtleS51c2FnZXMgaXMgWyJkZWNyeXB0Il0KLQoteyJrZXlfb3BzIjpbImVuY3J5cHQiLCJk
ZWNyeXB0Il19OgotUEFTUyBrZXkudXNhZ2VzIGlzIFsiZGVjcnlwdCIsImVuY3J5cHQiXQotCi17
ImtleV9vcHMiOlsid3JhcEtleSJdfToKLVBBU1Mga2V5LnVzYWdlcyBpcyBbIndyYXBLZXkiXQot
Ci17ImtleV9vcHMiOlsidW53cmFwS2V5Il19OgotUEFTUyBrZXkudXNhZ2VzIGlzIFsidW53cmFw
S2V5Il0KLQoteyJrZXlfb3BzIjpbIndyYXBLZXkiLCJ1bndyYXBLZXkiXX06Ci1QQVNTIGtleS51
c2FnZXMgaXMgWyJ1bndyYXBLZXkiLCJ3cmFwS2V5Il0KLQoteyJrZXlfb3BzIjpbImVuY3J5cHQi
LCJkZWNyeXB0Iiwid3JhcEtleSJdfToKLVBBU1Mga2V5LnVzYWdlcyBpcyBbImRlY3J5cHQiLCJl
bmNyeXB0Iiwid3JhcEtleSJdCi0KLXsidXNlIjoiZW5jIn06Ci1QQVNTIGtleS51c2FnZXMgaXMg
WyJkZWNyeXB0IiwiZW5jcnlwdCIsInVud3JhcEtleSIsIndyYXBLZXkiXQotCi17ImtleV9vcHMi
Olsic2lnbiJdfToKLVBBU1Mga2V5LnVzYWdlcyBpcyBbInNpZ24iXQotCi17ImtleV9vcHMiOlsi
dmVyaWZ5Il19OgotUEFTUyBrZXkudXNhZ2VzIGlzIFsidmVyaWZ5Il0KLQoteyJ1c2UiOiJzaWci
fToKLVBBU1Mga2V5LnVzYWdlcyBpcyBbInNpZ24iLCJ2ZXJpZnkiXQotCi17ImtleV9vcHMiOlsi
J2VuY3J5cHQnIl19OgotUEFTUyBrZXkudXNhZ2VzIGlzIFtdCi0KLXsia2V5X29wcyI6WyJlbmNy
eXB0ICJdfToKLVBBU1Mga2V5LnVzYWdlcyBpcyBbXQotCi17ImtleV9vcHMiOlsiRW5jcnlwdCJd
fToKLVBBU1Mga2V5LnVzYWdlcyBpcyBbXQotCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCi0KLVRFU1QgQ09NUExFVEUKLQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMv
Y3J5cHRvL3dlYmtpdFN1YnRsZS9qd2staW1wb3J0LXVzZS12YWx1ZXMtZXhwZWN0ZWQudHh0Cl9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRpdmUKXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpEZWxldGVkOiBzdm46bWltZS10eXBlCiMjIC0x
ICswLDAgIyMKLXRleHQvcGxhaW4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRl
eDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9qd2staW1wb3J0LXVzZS12YWx1ZXMu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL2p3ay1p
bXBvcnQtdXNlLXZhbHVlcy5odG1sCShyZXZpc2lvbiAyMjA5MzUpCisrKyBMYXlvdXRUZXN0cy9j
cnlwdG8vd2Via2l0U3VidGxlL2p3ay1pbXBvcnQtdXNlLXZhbHVlcy5odG1sCShub25leGlzdGVu
dCkKQEAgLTEsOTUgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9k
eT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0K
LTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBpbXBvcnRpbmcga2V5cyB3aXRoIHZhcmlvdXMg
dXNlcyBmcm9tIEpXSy4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBleHRyYWN0
YWJsZSA9IHRydWU7Ci0KLXZhciBhZXNLZXlBc0pTT04gPSB7Ci0gICAgImFsZyI6ICJBMTkyQ0JD
IiwKLSAgICAiZXh0IjogdHJ1ZSwKLSAgICAia3R5IjogIm9jdCIsCi0gICAgImsiOiAiam5Pdzk5
b09aRkxJRVBNcmdKQjU1V0w0NnRKU0xHdDciCi19OwotCi12YXIgaG1hY0tleUFzSlNPTiA9IHsK
LSAgICAiYWxnIjogIkhTMjU2IiwKLSAgICAiZXh0IjogdHJ1ZSwKLSAgICAia3R5IjogIm9jdCIs
Ci0gICAgImsiOiAiYWhqa24tXzM4N2ZnbnNpYmYyM3FzdmFoamtuLV8zODdmZ25zaWJmMjNxcyIK
LX07Ci0KLWZ1bmN0aW9uIHRlc3RXaXRoQUVTQ0JDKGV4cGVjdGVkVXNhZ2VzLCBqd2tVc2FnZXMp
Ci17Ci0gICAgaWYgKGp3a1VzYWdlcy5rZXlfb3BzKSB7Ci0gICAgICAgIGFlc0tleUFzSlNPTi5r
ZXlfb3BzID0gandrVXNhZ2VzLmtleV9vcHM7Ci0gICAgICAgIGRlbGV0ZSBhZXNLZXlBc0pTT04u
dXNlOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGRlbGV0ZSBhZXNLZXlBc0pTT04ua2V5X29wczsK
LSAgICAgICAgYWVzS2V5QXNKU09OLnVzZSA9IGp3a1VzYWdlcy51c2U7Ci0gICAgfQotCi0gICAg
cmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhB
cnJheShKU09OLnN0cmluZ2lmeShhZXNLZXlBc0pTT04pKSwgIkFFUy1DQkMiLCBleHRyYWN0YWJs
ZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiLCAid3JhcEtleSIsICJ1bndyYXBLZXkiXSkudGhlbihm
dW5jdGlvbihyZXN1bHQpIHsKLSAgICAgICAga2V5ID0gcmVzdWx0OwotICAgICAgICBkZWJ1ZyhK
U09OLnN0cmluZ2lmeShqd2tVc2FnZXMpICsgIjoiKTsKLSAgICAgICAgc2hvdWxkQmUoImtleS51
c2FnZXMiLCBKU09OLnN0cmluZ2lmeShleHBlY3RlZFVzYWdlcykpOwotICAgICAgICBkZWJ1Zygi
Iik7Ci0gICAgfSk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RXaXRoSE1BQyhleHBlY3RlZFVzYWdlcywg
andrVXNhZ2VzKQotewotICAgIGlmIChqd2tVc2FnZXMua2V5X29wcykgewotICAgICAgICBobWFj
S2V5QXNKU09OLmtleV9vcHMgPSBqd2tVc2FnZXMua2V5X29wczsKLSAgICAgICAgZGVsZXRlIGht
YWNLZXlBc0pTT04udXNlOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGRlbGV0ZSBobWFjS2V5QXNK
U09OLmtleV9vcHM7Ci0gICAgICAgIGhtYWNLZXlBc0pTT04udXNlID0gandrVXNhZ2VzLnVzZTsK
LSAgICB9Ci0KLSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoImp3ayIs
IGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5KGhtYWNLZXlBc0pTT04pKSwge25hbWU6
ICdobWFjJywgaGFzaDoge25hbWU6ICdzaGEtMjU2J319LCBleHRyYWN0YWJsZSwgWyJzaWduIiwg
InZlcmlmeSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgICAgICBrZXkgPSByZXN1bHQ7
Ci0gICAgICAgIGRlYnVnKEpTT04uc3RyaW5naWZ5KGp3a1VzYWdlcykgKyAiOiIpOwotICAgICAg
ICBzaG91bGRCZSgia2V5LnVzYWdlcyIsIEpTT04uc3RyaW5naWZ5KGV4cGVjdGVkVXNhZ2VzKSk7
Ci0gICAgICAgIGRlYnVnKCIiKTsKLSAgICB9KTsKLX0KLQotLy8gRHVwbGljYXRlcyBhcmUgbm90
IGFsbG93ZWQuIFdlIGN1cnJlbnRseSByYWlzZSBhbiBleGNlcHRpb24sIGFsdGhvdWdoIHdlIHNo
b3VsZCByZWplY3QgdGhlIHByb21pc2UgaW5zdGVhZC4KLXNob3VsZFRocm93KCd0ZXN0V2l0aEFF
U0NCQyhbImVuY3J5cHQiXSwge2tleV9vcHM6IFsiZW5jcnlwdCIsICJlbmNyeXB0Il19KScpOwot
ZGVidWcoIiIpOwotCi1Qcm9taXNlLmFsbChbCi0gICAgdGVzdFdpdGhBRVNDQkMoWyJlbmNyeXB0
Il0sIHtrZXlfb3BzOiBbImVuY3J5cHQiXX0pLAotICAgIHRlc3RXaXRoQUVTQ0JDKFsiZGVjcnlw
dCJdLCB7a2V5X29wczogWyJkZWNyeXB0Il19KSwKLSAgICB0ZXN0V2l0aEFFU0NCQyhbImRlY3J5
cHQiLCAiZW5jcnlwdCJdLCB7a2V5X29wczogWyJlbmNyeXB0IiwgImRlY3J5cHQiXX0pLAotICAg
IHRlc3RXaXRoQUVTQ0JDKFsid3JhcEtleSJdLCB7a2V5X29wczogWyJ3cmFwS2V5Il19KSwKLSAg
ICB0ZXN0V2l0aEFFU0NCQyhbInVud3JhcEtleSJdLCB7a2V5X29wczogWyJ1bndyYXBLZXkiXX0p
LAotICAgIHRlc3RXaXRoQUVTQ0JDKFsidW53cmFwS2V5IiwgIndyYXBLZXkiXSwge2tleV9vcHM6
IFsid3JhcEtleSIsICJ1bndyYXBLZXkiXX0pLAotICAgIHRlc3RXaXRoQUVTQ0JDKFsiZGVjcnlw
dCIsICJlbmNyeXB0IiwgIndyYXBLZXkiXSwge2tleV9vcHM6IFsiZW5jcnlwdCIsICJkZWNyeXB0
IiwgIndyYXBLZXkiXX0pLAotICAgIHRlc3RXaXRoQUVTQ0JDKFsiZGVjcnlwdCIsICJlbmNyeXB0
IiwgInVud3JhcEtleSIsICJ3cmFwS2V5Il0sIHt1c2U6ICJlbmMifSksCi0gICAgdGVzdFdpdGhI
TUFDKFsic2lnbiJdLCB7a2V5X29wczogWyJzaWduIl19KSwKLSAgICB0ZXN0V2l0aEhNQUMoWyJ2
ZXJpZnkiXSwge2tleV9vcHM6IFsidmVyaWZ5Il19KSwKLSAgICB0ZXN0V2l0aEhNQUMoWyJzaWdu
IiwgInZlcmlmeSJdLCB7dXNlOiAic2lnIn0pLAotCi0vLyBVbmtub3duIGtleV9vcHMgc3RyaW5n
cyBhcmUgaWdub3JlZC4KLSAgICB0ZXN0V2l0aEFFU0NCQyhbXSwge2tleV9vcHM6IFsiJ2VuY3J5
cHQnIl19KSwKLSAgICB0ZXN0V2l0aEFFU0NCQyhbXSwge2tleV9vcHM6IFsiZW5jcnlwdCAiXX0p
LAotICAgIHRlc3RXaXRoQUVTQ0JDKFtdLCB7a2V5X29wczogWyJFbmNyeXB0Il19KSwKLQotXSku
dGhlbihmdW5jdGlvbigpIHsgZmluaXNoSlNUZXN0KCk7IH0gKTsKLTwvc2NyaXB0PgotCi08c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2Jv
ZHk+Ci08L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Vi
a2l0U3VidGxlL2p3ay1pbXBvcnQtdXNlLXZhbHVlcy5odG1sCl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDog
c3ZuOm1pbWUtdHlwZQojIyAtMSArMCwwICMjCi10ZXh0L2h0bWwKXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBwcm9wZXJ0eQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yZXNv
dXJjZXMvZGlzYWxsb3dlZC1pbi13b3JrZXIuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Y3J5cHRvL3dlYmtpdFN1YnRsZS9yZXNvdXJjZXMvZGlzYWxsb3dlZC1pbi13b3JrZXIuanMJKHJl
dmlzaW9uIDIyMDkzNSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcmVzb3Vy
Y2VzL2Rpc2FsbG93ZWQtaW4td29ya2VyLmpzCShub25leGlzdGVudCkKQEAgLTEsNyArMCwwIEBA
Ci1pbXBvcnRTY3JpcHRzKCcuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMnKTsKLQot
ZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgY3J5cHRvLndlYmtpdFN1YnRsZSB3aWxsIHRocm93IGlu
IHdvcmtlcnMuIik7Ci0KLXNob3VsZFRocm93RXJyb3JOYW1lKCJjcnlwdG8ud2Via2l0U3VidGxl
IiwgIk5vdFN1cHBvcnRlZEVycm9yIik7Ci0KLWZpbmlzaEpTVGVzdCgpOwpJbmRleDogTGF5b3V0
VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yZXNvdXJjZXMvcnNhLWluZGV4ZWRkYi1ub24tZXhw
b3J0YWJsZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxl
L3Jlc291cmNlcy9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLmpzCShyZXZpc2lvbiAyMjA5
MzUpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3Jlc291cmNlcy9yc2EtaW5k
ZXhlZGRiLW5vbi1leHBvcnRhYmxlLmpzCShub25leGlzdGVudCkKQEAgLTEsNjEgKzAsMCBAQAot
ZGVzY3JpcHRpb24oIlRlc3Qgc3RvcmluZyBhIHByaXZhdGUgUlNBIGtleSBpbiBJbmRleGVkREIs
IGFuZCByZXRyaWV2aW5nIGl0LiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIHBy
aXZhdGVLZXlKU09OID0gewotICAgIGt0eTogIlJTQSIsCi0gICAgYWxnOiAiUlMyNTYiLAotICAg
IG46ICJyY0NVQ3Y3T2MxSFZhbTFESWhDenFrblRoV2F3T3A4UUxrOFppeTJwMTBCeWpRRkNham9G
aXl1QVdsLVIxV1haYWY0eGl0TFJyYWNUOWFncHpJemMtTWJMU0hJR2dXUUdPMjFsR2lJbXk1ZnRa
LUQ4YkhBcVJ6MnkxNXB6RDRjNENFb3U3WFNTTERvUm5SMFFHNU1zRGhENnMyZ1Y5bXdIa3J0a0N4
dE1XZEJpLTc3YXM4d0dtbE5SbGRjT1NnWkRMSzhVbkNTZ0ExT2d1Wjk4OWJGeWM4dE9PRUliMHhV
U2ZQU3ozTFBTQ255WXo2OGFEam1LVmVOSC1pZzg1N09TY3lXYkd5RXkzQml3NjRxdW4zanVVbE5X
c0ozem5na09kdGVZV3l0eDVRcjRYS05zNlItTXl5cTcyS1VwMDJtSkRaaWl5aWdseE1MX2kzLV9D
ZWVjQ3ciLAotICAgIGU6ICJBUUFCIiwKLSAgICBkOiAiZU5MUzM3YUN6N1JYU05QRF9EdExCSjZq
NVQ4Y1N4ZHpSQkNqUGFJNldjR3FKcDE2bHEzVVR3dW9ETEFxbEE5b0dZbTIzOGRzSVdwdXVjUF9s
UXRiV2UtN1NweG9JNl92bVlHZjdZVlVIdjEtREY5cWlPbVNyTW1keE1uVk96WVhZOFJhVDZ0aFBq
bl9KNWNmTFYyeElfTHdzck10bXBkU3lObGdYMHpUVWh3dHVhaGdBS01FQ2hZakgyRW5qSGRIdzZz
WTItd0FwZGNRSTdVTEUwb281UnpiUVpwbXVoY045aGlCYzBMM2hoRjBxbzUwbWJsMDJfNjVfR1E3
RHBWa1hCeE5nUkJMemxQYWJtenpHMm9BaGZlZkxnWW1TQzFvcGFDa1hFNnZSV1FOV05MNDVSWk5a
RllNM3VvSmdoT01xR2VvY00wQnBqZENoSHJQT2xGdlNRIiwKLSAgICBwOiAiNG1pVHVBaktNZUg1
dUo1S0IzOTdRVXdoYmtZRWdTYmNBMm1pZm1Ta3ZFMjAxOGdiNTVxa0JISzFlVnJ5ZjFfbTQzTE5s
YzZPX2FrNmdmemRaSVp2UzVOQ0dqUGwwcTA5cGxVcHU4cUZPU3NwQndBNjdxR0g3NmxGbFpMbl9k
NHlnbFM3d2ZMcnU0XzVZczhxTExzLURxVkx2aXdwb3NPbnl5V3F3TTVBWHAwIiwKLSAgICBxOiAi
eEhZcnpraXZ0bW56X3NHY2huV0djMHEtcERPa0tpY3B0UnB2MnBNRklJWHhuRlg1YU1lRVhJWmpW
dWpYdHdVeTFVbEZJTjJHWkpTdnk1S0o3OW11X1h5Tm5GSE16ZWRILUEzZWUzdThoMVVVclpGLXZV
dTFfZTRVX3g2N05OMWRlZHpVU0t5bk43cEZsM09rdVNoTUJXR1YtY3d6T1BkY1ZBZlZ1Wmx4VU1j
IiwKLSAgICBkcDogImZCekR6WURVQm1CUUdvcDdIbjBkdmZfVDI3VjZScXBjdFdvMDc0Q1FaY0Zi
UDJhdEZWdEtTajN2aVdUM3hpZDJWSHpjZ2lESGRmcE0zbkVWbEVPMXd3SW9uR0NTdmRqR0VPWmlp
RlZPanJaQU9WeEE4Z3VPanl5RnZxYlhrZTA2VndQSUlWdmZLZVNVMnp1aGJQX18xdHQ2Rl9meG93
NEtiMnhvbkdUMEdHayIsCi0gICAgZHE6ICJqbUUyRGlJUGRod0RnTFhBUXBJYUJxUTgxYk8zWGZW
VF9MUlVMQXd3d3dsUHVRVjE0OEgwNHpsaDlUSjZZMkdaSFlva1YxVTBlT0JwSnhma2I3ZExZdHBK
cHVpQmpSZjR5SVVFb0dsa2tJX1FsSm5GU0ZyLVlqR1JkZk5IcVdCa3hsU01aTDc3MFI5bUlBVG5k
R2tIN3o1eC1yOUt3QlpGQzRGQ0cyaGdfekUiLAotICAgIHFpOiAiWUNYX3BMd2JNQkExVGhWSDBX
Y3dtbnl0cU5jck1DRXdUbTdCeUEyZVU2bldiUXJVTHZmN205X2t6ZkxVY2pzbnBBVmxCUUc1Sk1Y
TXkwU3E0cHR3Ynl3c2E1LUc4S0FPT09SMkwzdjRoQy1FeXM5ZnRnRk1fM2kwbzQwZWVRSDRiM2hh
UGJudHJJZU1nOEl6bE91VllLZjktMlF1S0RvV2VSZGQ3TnNkeFRrIgotfTsKLQotY3J5cHRvLndl
YmtpdFN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5n
aWZ5KHByaXZhdGVLZXlKU09OKSksIG51bGwsIGZhbHNlLCBbInNpZ24iLCAidmVyaWZ5Il0pLnRo
ZW4oZnVuY3Rpb24oa2V5KSB7Ci0gICAgdmFyIG9wZW5SZXF1ZXN0ID0gaW5kZXhlZERCLm9wZW4o
ImNyeXB0b193ZWJraXRTdWJ0bGUiKTsKLSAgICBvcGVuUmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQg
PSBmdW5jdGlvbihldmVudCkgewotICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBldmVudC50YXJn
ZXQucmVzdWx0LmNyZWF0ZU9iamVjdFN0b3JlKCJyc2EtaW5kZXhlZGRiIik7Ci0gICAgfQotICAg
IG9wZW5SZXF1ZXN0Lm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgewotICAgICAgICB0ZXN0RmFp
bGVkKCJDb3VsZCBub3Qgb3BlbiBkYXRhYmFzZTogIiArIGV2ZW50LnRhcmdldC5lcnJvci5uYW1l
KTsKLSAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgfQotICAgIG9wZW5SZXF1ZXN0Lm9uc3Vj
Y2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3Vs
dDsKLSAgICAgICAgc3RvcmVLZXkoKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBzdG9yZUtleSgp
IHsKLSAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gZGIudHJhbnNhY3Rpb24oInJzYS1pbmRleGVk
ZGIiLCAicmVhZHdyaXRlIikub2JqZWN0U3RvcmUoInJzYS1pbmRleGVkZGIiKTsKLSAgICAgICAg
dmFyIHJlcSA9IG9iamVjdFN0b3JlLnB1dChrZXksICJteWtleSIpOwotICAgICAgICByZXEub25l
cnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb3VsZCBu
b3QgcHV0IGEga2V5IGludG8gZGF0YWJhc2U6ICIgKyBldmVudC50YXJnZXQuZXJyb3IubmFtZSk7
Ci0gICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgfQotICAgICAgICByZXEub25z
dWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsgcmVhZEtleSgpOyB9Ci0gICAgfQotCi0gICAgZnVu
Y3Rpb24gcmVhZEtleSgpIHsKLSAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gZGIudHJhbnNhY3Rp
b24oInJzYS1pbmRleGVkZGIiKS5vYmplY3RTdG9yZSgicnNhLWluZGV4ZWRkYiIpOwotICAgICAg
ICB2YXIgcmVxID0gb2JqZWN0U3RvcmUuZ2V0KCJteWtleSIpOwotICAgICAgICByZXEub25lcnJv
ciA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB0ZXN0RmFpbGVkKCJDb3VsZCBub3Qg
Z2V0IGEga2V5IGZyb20gZGF0YWJhc2U6ICIgKyBldmVudC50YXJnZXQuZXJyb3IubmFtZSk7Ci0g
ICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgfQotICAgICAgICByZXEub25zdWNj
ZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHdpbmRvdy5yZXRyaWV2ZWRLZXkg
PSBldmVudC50YXJnZXQucmVzdWx0OwotICAgICAgICAgICAgc2hvdWxkQmUoInJldHJpZXZlZEtl
eS50eXBlIiwgIidwcml2YXRlJyIpOwotICAgICAgICAgICAgc2hvdWxkQmUoInJldHJpZXZlZEtl
eS5leHRyYWN0YWJsZSIsICJmYWxzZSIpOwotICAgICAgICAgICAgc2hvdWxkQmUoInJldHJpZXZl
ZEtleS5hbGdvcml0aG0ubmFtZSIsICInUlNBU1NBLVBLQ1MxLXYxXzUnIik7Ci0gICAgICAgICAg
ICBzaG91bGRCZSgicmV0cmlldmVkS2V5LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3RoIiwgIjIwNDgi
KTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKHJldHJpZXZlZEtleS5h
bGdvcml0aG0ucHVibGljRXhwb25lbnQpIiwgIicwMTAwMDEnIik7Ci0gICAgICAgICAgICBzaG91
bGRCZSgicmV0cmlldmVkS2V5LnVzYWdlcyIsICdbInNpZ24iLCAidmVyaWZ5Il0nKTsKLQotICAg
ICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgIH0KLSAgICB9Ci19KTsKSW5kZXg6IExh
eW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcmVzb3VyY2VzL3JzYS1pbmRleGVkZGIuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yZXNvdXJjZXMv
cnNhLWluZGV4ZWRkYi5qcwkocmV2aXNpb24gMjIwOTM1KQorKysgTGF5b3V0VGVzdHMvY3J5cHRv
L3dlYmtpdFN1YnRsZS9yZXNvdXJjZXMvcnNhLWluZGV4ZWRkYi5qcwkobm9uZXhpc3RlbnQpCkBA
IC0xLDYxICswLDAgQEAKLWRlc2NyaXB0aW9uKCJUZXN0IHN0b3JpbmcgYSBwcml2YXRlIFJTQSBr
ZXkgaW4gSW5kZXhlZERCLCBhbmQgcmV0cmlldmluZyBpdC4iKTsKLQotanNUZXN0SXNBc3luYyA9
IHRydWU7Ci0KLXZhciBwcml2YXRlS2V5SlNPTiA9IHsKLSAgICBrdHk6ICJSU0EiLAotICAgIGFs
ZzogIlJTMjU2IiwKLSAgICBuOiAicmNDVUN2N09jMUhWYW0xREloQ3pxa25UaFdhd09wOFFMazha
aXkycDEwQnlqUUZDYWpvRml5dUFXbC1SMVdYWmFmNHhpdExScmFjVDlhZ3B6SXpjLU1iTFNISUdn
V1FHTzIxbEdpSW15NWZ0Wi1EOGJIQXFSejJ5MTVwekQ0YzRDRW91N1hTU0xEb1JuUjBRRzVNc0Ro
RDZzMmdWOW13SGtydGtDeHRNV2RCaS03N2FzOHdHbWxOUmxkY09TZ1pETEs4VW5DU2dBMU9ndVo5
ODliRnljOHRPT0VJYjB4VVNmUFN6M0xQU0NueVl6NjhhRGptS1ZlTkgtaWc4NTdPU2N5V2JHeUV5
M0JpdzY0cXVuM2p1VWxOV3NKM3puZ2tPZHRlWVd5dHg1UXI0WEtOczZSLU15eXE3MktVcDAybUpE
WmlpeWlnbHhNTF9pMy1fQ2VlY0N3IiwKLSAgICBlOiAiQVFBQiIsCi0gICAgZDogImVOTFMzN2FD
ejdSWFNOUERfRHRMQko2ajVUOGNTeGR6UkJDalBhSTZXY0dxSnAxNmxxM1VUd3VvRExBcWxBOW9H
WW0yMzhkc0lXcHV1Y1BfbFF0YldlLTdTcHhvSTZfdm1ZR2Y3WVZVSHYxLURGOXFpT21Tck1tZHhN
blZPellYWThSYVQ2dGhQam5fSjVjZkxWMnhJX0x3c3JNdG1wZFN5TmxnWDB6VFVod3R1YWhnQUtN
RUNoWWpIMkVuakhkSHc2c1kyLXdBcGRjUUk3VUxFMG9vNVJ6YlFacG11aGNOOWhpQmMwTDNoaEYw
cW81MG1ibDAyXzY1X0dRN0RwVmtYQnhOZ1JCTHpsUGFibXp6RzJvQWhmZWZMZ1ltU0Mxb3BhQ2tY
RTZ2UldRTldOTDQ1UlpOWkZZTTN1b0pnaE9NcUdlb2NNMEJwamRDaEhyUE9sRnZTUSIsCi0gICAg
cDogIjRtaVR1QWpLTWVINXVKNUtCMzk3UVV3aGJrWUVnU2JjQTJtaWZtU2t2RTIwMThnYjU1cWtC
SEsxZVZyeWYxX200M0xObGM2T19hazZnZnpkWkladlM1TkNHalBsMHEwOXBsVXB1OHFGT1NzcEJ3
QTY3cUdINzZsRmxaTG5fZDR5Z2xTN3dmTHJ1NF81WXM4cUxMcy1EcVZMdml3cG9zT255eVdxd001
QVhwMCIsCi0gICAgcTogInhIWXJ6a2l2dG1uel9zR2NobldHYzBxLXBET2tLaWNwdFJwdjJwTUZJ
SVh4bkZYNWFNZUVYSVpqVnVqWHR3VXkxVWxGSU4yR1pKU3Z5NUtKNzltdV9YeU5uRkhNemVkSC1B
M2VlM3U4aDFVVXJaRi12VXUxX2U0VV94NjdOTjFkZWR6VVNLeW5ON3BGbDNPa3VTaE1CV0dWLWN3
ek9QZGNWQWZWdVpseFVNYyIsCi0gICAgZHA6ICJmQnpEellEVUJtQlFHb3A3SG4wZHZmX1QyN1Y2
UnFwY3RXbzA3NENRWmNGYlAyYXRGVnRLU2ozdmlXVDN4aWQyVkh6Y2dpREhkZnBNM25FVmxFTzF3
d0lvbkdDU3ZkakdFT1ppaUZWT2pyWkFPVnhBOGd1T2p5eUZ2cWJYa2UwNlZ3UElJVnZmS2VTVTJ6
dWhiUF9fMXR0NkZfZnhvdzRLYjJ4b25HVDBHR2siLAotICAgIGRxOiAiam1FMkRpSVBkaHdEZ0xY
QVFwSWFCcVE4MWJPM1hmVlRfTFJVTEF3d3d3bFB1UVYxNDhIMDR6bGg5VEo2WTJHWkhZb2tWMVUw
ZU9CcEp4ZmtiN2RMWXRwSnB1aUJqUmY0eUlVRW9HbGtrSV9RbEpuRlNGci1ZakdSZGZOSHFXQmt4
bFNNWkw3NzBSOW1JQVRuZEdrSDd6NXgtcjlLd0JaRkM0RkNHMmhnX3pFIiwKLSAgICBxaTogIllD
WF9wTHdiTUJBMVRoVkgwV2N3bW55dHFOY3JNQ0V3VG03QnlBMmVVNm5XYlFyVUx2ZjdtOV9remZM
VWNqc25wQVZsQlFHNUpNWE15MFNxNHB0d2J5d3NhNS1HOEtBT09PUjJMM3Y0aEMtRXlzOWZ0Z0ZN
XzNpMG80MGVlUUg0YjNoYVBibnRySWVNZzhJemxPdVZZS2Y5LTJRdUtEb1dlUmRkN05zZHhUayIK
LX07Ci0KLWNyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhB
cnJheShKU09OLnN0cmluZ2lmeShwcml2YXRlS2V5SlNPTikpLCBudWxsLCB0cnVlLCBbInNpZ24i
LCAidmVyaWZ5Il0pLnRoZW4oZnVuY3Rpb24oa2V5KSB7Ci0gICAgdmFyIG9wZW5SZXF1ZXN0ID0g
aW5kZXhlZERCLm9wZW4oImNyeXB0b193ZWJraXRTdWJ0bGUiKTsKLSAgICBvcGVuUmVxdWVzdC5v
bnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihldmVudCkgewotICAgICAgICB2YXIgb2JqZWN0U3Rv
cmUgPSBldmVudC50YXJnZXQucmVzdWx0LmNyZWF0ZU9iamVjdFN0b3JlKCJyc2EtaW5kZXhlZGRi
Iik7Ci0gICAgfQotICAgIG9wZW5SZXF1ZXN0Lm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgewot
ICAgICAgICB0ZXN0RmFpbGVkKCJDb3VsZCBub3Qgb3BlbiBkYXRhYmFzZTogIiArIGV2ZW50LnRh
cmdldC5lcnJvci5uYW1lKTsKLSAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgfQotICAgIG9w
ZW5SZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgIGRiID0gZXZl
bnQudGFyZ2V0LnJlc3VsdDsKLSAgICAgICAgc3RvcmVLZXkoKTsKLSAgICB9Ci0KLSAgICBmdW5j
dGlvbiBzdG9yZUtleSgpIHsKLSAgICAgICAgdmFyIG9iamVjdFN0b3JlID0gZGIudHJhbnNhY3Rp
b24oInJzYS1pbmRleGVkZGIiLCAicmVhZHdyaXRlIikub2JqZWN0U3RvcmUoInJzYS1pbmRleGVk
ZGIiKTsKLSAgICAgICAgdmFyIHJlcSA9IG9iamVjdFN0b3JlLnB1dChrZXksICJteWtleSIpOwot
ICAgICAgICByZXEub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB0ZXN0
RmFpbGVkKCJDb3VsZCBub3QgcHV0IGEga2V5IGludG8gZGF0YWJhc2U6ICIgKyBldmVudC50YXJn
ZXQuZXJyb3IubmFtZSk7Ci0gICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgfQot
ICAgICAgICByZXEub25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsgcmVhZEtleSgpOyB9Ci0g
ICAgfQotCi0gICAgZnVuY3Rpb24gcmVhZEtleSgpIHsKLSAgICAgICAgdmFyIG9iamVjdFN0b3Jl
ID0gZGIudHJhbnNhY3Rpb24oInJzYS1pbmRleGVkZGIiKS5vYmplY3RTdG9yZSgicnNhLWluZGV4
ZWRkYiIpOwotICAgICAgICB2YXIgcmVxID0gb2JqZWN0U3RvcmUuZ2V0KCJteWtleSIpOwotICAg
ICAgICByZXEub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7Ci0gICAgICAgICAgICB0ZXN0RmFp
bGVkKCJDb3VsZCBub3QgZ2V0IGEga2V5IGZyb20gZGF0YWJhc2U6ICIgKyBldmVudC50YXJnZXQu
ZXJyb3IubmFtZSk7Ci0gICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgfQotICAg
ICAgICByZXEub25zdWNjZXNzID0gZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgICAgIHdpbmRv
dy5yZXRyaWV2ZWRLZXkgPSBldmVudC50YXJnZXQucmVzdWx0OwotICAgICAgICAgICAgc2hvdWxk
QmUoInJldHJpZXZlZEtleS50eXBlIiwgIidwcml2YXRlJyIpOwotICAgICAgICAgICAgc2hvdWxk
QmUoInJldHJpZXZlZEtleS5leHRyYWN0YWJsZSIsICJ0cnVlIik7Ci0gICAgICAgICAgICBzaG91
bGRCZSgicmV0cmlldmVkS2V5LmFsZ29yaXRobS5uYW1lIiwgIidSU0FTU0EtUEtDUzEtdjFfNSci
KTsKLSAgICAgICAgICAgIHNob3VsZEJlKCJyZXRyaWV2ZWRLZXkuYWxnb3JpdGhtLm1vZHVsdXNM
ZW5ndGgiLCAiMjA0OCIpOwotICAgICAgICAgICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmco
cmV0cmlldmVkS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkiLCAiJzAxMDAwMSciKTsKLSAg
ICAgICAgICAgIHNob3VsZEJlKCJyZXRyaWV2ZWRLZXkudXNhZ2VzIiwgJ1sic2lnbiIsICJ2ZXJp
ZnkiXScpOwotCi0gICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgfQotICAgIH0K
LX0pOwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRs
ZS9yZXNvdXJjZXMvcnNhLWluZGV4ZWRkYi5qcwpfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjptaW1l
LXR5cGUKIyMgLTEgKzAsMCAjIwotdGV4dC9odG1sClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJv
cGVydHkKSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWV4cG9ydC1n
ZW5lcmF0ZWQta2V5cy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5
cHRvL3dlYmtpdFN1YnRsZS9yc2EtZXhwb3J0LWdlbmVyYXRlZC1rZXlzLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMjIwOTM1KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Et
ZXhwb3J0LWdlbmVyYXRlZC1rZXlzLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCkBAIC0xLDMz
ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAyNjogV2ViS2l0U3VidGxlQ3J5cHRvIGlz
IGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgU3VidGxlQ3J5cHRvIGluc3RlYWQuCi1UZXN0IGV4cG9y
dGluZyBhIGdlbmVyYXRlZCBSU0Ega2V5cGFpciB3aXRoIGhhc2guCi0KLU9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KLQotCi0KLUdlbmVyYXRpbmcgUlNBLVBLQ1MxLXYxLjUga2V5UGFpci4uLgot
UEFTUyBjcnlwdG8ud2Via2l0U3VidGxlLmV4cG9ydEtleShudWxsLCBrZXkpIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IFVua25vd24ga2V5IGZvcm1hdC4KLVBBU1MgY3J5cHRvLndlYmtpdFN1
YnRsZS5leHBvcnRLZXkodW5kZWZpbmVkLCBrZXkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IFVua25vd24ga2V5IGZvcm1hdC4KLVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5leHBvcnRLZXko
e30sIGtleSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVW5rbm93biBrZXkgZm9ybWF0Lgot
UEFTUyBjcnlwdG8ud2Via2l0U3VidGxlLmV4cG9ydEtleSgiIiwga2V5KSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBVbmtub3duIGtleSBmb3JtYXQuCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0
bGUuZXhwb3J0S2V5KCJmb29iYXIiLCBrZXkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFVu
a25vd24ga2V5IGZvcm1hdC4KLVBBU1Mga2V5LnB1YmxpY0tleS5hbGdvcml0aG0uaGFzaC5uYW1l
IGlzIGRlZmluZWQuCi1QQVNTIGtleS5wcml2YXRlS2V5LmFsZ29yaXRobS5oYXNoLm5hbWUgaXMg
ZGVmaW5lZC4KLQotRXhwb3J0aW5nIHB1YmxpYyBrZXkgYXMgSldLLi4uCi1QQVNTIGV4cG9ydGVk
SldLLmt0eSBpcyAnUlNBJwotUEFTUyBleHBvcnRlZEpXSy5hbGcgaXMgJ1JTMjU2JwotUEFTUyBl
eHBvcnRlZEpXSy5leHQgaXMgdHJ1ZQotUEFTUyBleHBvcnRlZEpXSy51c2UgaXMgdW5kZWZpbmVk
Ci1QQVNTIGV4cG9ydGVkSldLLmtleV9vcHMgaXMgWydzaWduJywgJ3ZlcmlmeSddCi0KLUV4cG9y
dGluZyBwcml2YXRlIGtleSBhcyBKV0suLi4KLVBBU1MgZXhwb3J0ZWRKV0sua3R5IGlzICdSU0En
Ci1QQVNTIGV4cG9ydGVkSldLLmFsZyBpcyAnUlMyNTYnCi1QQVNTIGV4cG9ydGVkSldLLmV4dCBp
cyB0cnVlCi1QQVNTIGV4cG9ydGVkSldLLnVzZSBpcyB1bmRlZmluZWQKLVBBU1MgZXhwb3J0ZWRK
V0sua2V5X29wcyBpcyBbJ3NpZ24nLCAndmVyaWZ5J10KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Vi
a2l0U3VidGxlL3JzYS1leHBvcnQtZ2VuZXJhdGVkLWtleXMuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1leHBvcnQtZ2VuZXJhdGVkLWtleXMu
aHRtbAkocmV2aXNpb24gMjIwOTM1KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRs
ZS9yc2EtZXhwb3J0LWdlbmVyYXRlZC1rZXlzLmh0bWwJKG5vbmV4aXN0ZW50KQpAQCAtMSw2NiAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRl
c2NyaXB0aW9uKCJUZXN0IGV4cG9ydGluZyBhIGdlbmVyYXRlZCBSU0Ega2V5cGFpciB3aXRoIGhh
c2guIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi12YXIgZXh0cmFjdGFibGUgPSB0cnVl
OwotCi12YXIgYWxnb3JpdGhtID0gewotICAgIG5hbWU6ICJSU0FTU0EtUEtDUzEtdjFfNSIsCi0g
ICAgbW9kdWx1c0xlbmd0aDogIjIwNDgiLAotICAgIHB1YmxpY0V4cG9uZW50OiBuZXcgVWludDhB
cnJheShbMSwgMCwgMV0pLCAvLyAyXjE2ICsgMSAoNjU1MzcpCi0gICAgaGFzaDogeyBuYW1lOiAi
U0hBLTI1NiIgfQotfTsKLQotZGVidWcoIlxuR2VuZXJhdGluZyBSU0EtUEtDUzEtdjEuNSBrZXlQ
YWlyLi4uIik7Ci1jcnlwdG8ud2Via2l0U3VidGxlLmdlbmVyYXRlS2V5KGFsZ29yaXRobSwgZXh0
cmFjdGFibGUsIFsnc2lnbicsICd2ZXJpZnknXSkKLS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewot
ICAgIGtleSA9IHJlc3VsdDsKLQotICAgIHNob3VsZFRocm93KCdjcnlwdG8ud2Via2l0U3VidGxl
LmV4cG9ydEtleShudWxsLCBrZXkpJyk7Ci0gICAgc2hvdWxkVGhyb3coJ2NyeXB0by53ZWJraXRT
dWJ0bGUuZXhwb3J0S2V5KHVuZGVmaW5lZCwga2V5KScpOwotICAgIHNob3VsZFRocm93KCdjcnlw
dG8ud2Via2l0U3VidGxlLmV4cG9ydEtleSh7fSwga2V5KScpOwotICAgIHNob3VsZFRocm93KCdj
cnlwdG8ud2Via2l0U3VidGxlLmV4cG9ydEtleSgiIiwga2V5KScpOwotICAgIHNob3VsZFRocm93
KCdjcnlwdG8ud2Via2l0U3VidGxlLmV4cG9ydEtleSgiZm9vYmFyIiwga2V5KScpOwotICAgIHNo
b3VsZEJlRGVmaW5lZCgna2V5LnB1YmxpY0tleS5hbGdvcml0aG0uaGFzaC5uYW1lJyk7Ci0gICAg
c2hvdWxkQmVEZWZpbmVkKCdrZXkucHJpdmF0ZUtleS5hbGdvcml0aG0uaGFzaC5uYW1lJyk7Ci0K
LSAgICBkZWJ1ZygiXG5FeHBvcnRpbmcgcHVibGljIGtleSBhcyBKV0suLi4iKTsKLSAgICByZXR1
cm4gY3J5cHRvLndlYmtpdFN1YnRsZS5leHBvcnRLZXkoImp3ayIsIGtleS5wdWJsaWNLZXkpOwot
fSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBleHBvcnRlZEpXSyA9IEpTT04ucGFyc2Uo
Ynl0ZXNUb0FTQ0lJU3RyaW5nKHJlc3VsdCkpOwotCi0gICAgc2hvdWxkQmUoImV4cG9ydGVkSldL
Lmt0eSIsICInUlNBJyIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5hbGciLCAiJ1JTMjU2
JyIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5leHQiLCAidHJ1ZSIpOwotICAgIHNob3Vs
ZEJlKCJleHBvcnRlZEpXSy51c2UiLCAidW5kZWZpbmVkIik7Ci0gICAgc2hvdWxkQmUoImV4cG9y
dGVkSldLLmtleV9vcHMiLCAiWydzaWduJywgJ3ZlcmlmeSddIik7Ci0KLSAgICBkZWJ1ZygiXG5F
eHBvcnRpbmcgcHJpdmF0ZSBrZXkgYXMgSldLLi4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJr
aXRTdWJ0bGUuZXhwb3J0S2V5KCJqd2siLCBrZXkucHJpdmF0ZUtleSk7Ci19KS50aGVuKGZ1bmN0
aW9uKHJlc3VsdCkgewotICAgIGV4cG9ydGVkSldLID0gSlNPTi5wYXJzZShieXRlc1RvQVNDSUlT
dHJpbmcocmVzdWx0KSk7Ci0KLSAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0sua3R5IiwgIidSU0En
Iik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmFsZyIsICInUlMyNTYnIik7Ci0gICAgc2hv
dWxkQmUoImV4cG9ydGVkSldLLmV4dCIsICJ0cnVlIik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVk
SldLLnVzZSIsICJ1bmRlZmluZWQiKTsKLSAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0sua2V5X29w
cyIsICJbJ3NpZ24nLCAndmVyaWZ5J10iKTsKLQotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08
L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dl
YmtpdFN1YnRsZS9yc2EtZXhwb3J0LWtleS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtZXhwb3J0LWtleS1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDIyMDkzNSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNh
LWV4cG9ydC1rZXktZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKQEAgLTEsMjYgKzAsMCBAQAot
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDI5OiBXZWJLaXRTdWJ0bGVDcnlwdG8gaXMgZGVwcmVjYXRl
ZC4gUGxlYXNlIHVzZSBTdWJ0bGVDcnlwdG8gaW5zdGVhZC4KLVRlc3QgZXhwb3J0aW5nIGFuIFJT
QSBrZXkuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi0KLUltcG9ydGluZyBhIEpX
SyBrZXkuLi4KLVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5leHBvcnRLZXkobnVsbCwga2V5KSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBVbmtub3duIGtleSBmb3JtYXQuCi1QQVNTIGNyeXB0
by53ZWJraXRTdWJ0bGUuZXhwb3J0S2V5KHVuZGVmaW5lZCwga2V5KSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBVbmtub3duIGtleSBmb3JtYXQuCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUu
ZXhwb3J0S2V5KHt9LCBrZXkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFVua25vd24ga2V5
IGZvcm1hdC4KLVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5leHBvcnRLZXkoIiIsIGtleSkgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVW5rbm93biBrZXkgZm9ybWF0LgotUEFTUyBjcnlwdG8u
d2Via2l0U3VidGxlLmV4cG9ydEtleSgiZm9vYmFyIiwga2V5KSB0aHJldyBleGNlcHRpb24gVHlw
ZUVycm9yOiBVbmtub3duIGtleSBmb3JtYXQuCi0KLUV4cG9ydGluZyB0aGUga2V5IGFzIEpXSy4u
LgotUEFTUyBleHBvcnRlZEpXSy5rdHkgaXMgJ1JTQScKLVBBU1MgZXhwb3J0ZWRKV0subiBpcyBw
dWJsaWNLZXlKU09OLm4KLVBBU1MgZXhwb3J0ZWRKV0suZSBpcyBwdWJsaWNLZXlKU09OLmUKLVBB
U1MgZXhwb3J0ZWRKV0suYWxnIGlzICdSUzI1NicKLVBBU1MgZXhwb3J0ZWRKV0suZXh0IGlzIHRy
dWUKLVBBU1MgZXhwb3J0ZWRKV0sudXNlIGlzIHVuZGVmaW5lZAotUEFTUyBleHBvcnRlZEpXSy5r
ZXlfb3BzIGlzIFsnc2lnbicsICd2ZXJpZnknXQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3Rz
L2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWV4cG9ydC1rZXktZXhwZWN0ZWQudHh0Cl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRpdmUKXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpEZWxldGVkOiBzdm46bWltZS10eXBlCiMjIC0xICswLDAg
IyMKLXRleHQvcGxhaW4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogTGF5
b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtZXhwb3J0LWtleS5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWV4cG9ydC1rZXkuaHRt
bAkocmV2aXNpb24gMjIwOTM1KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9y
c2EtZXhwb3J0LWtleS5odG1sCShub25leGlzdGVudCkKQEAgLTEsNTcgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1v
bi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVz
dCBleHBvcnRpbmcgYW4gUlNBIGtleS4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZh
ciBleHRyYWN0YWJsZSA9IHRydWU7Ci12YXIgbm9uRXh0cmFjdGFibGUgPSBmYWxzZTsKLQotdmFy
IHB1YmxpY0tleUpTT04gPSB7Ci0gICAga3R5OiAiUlNBIiwKLSAgICBhbGc6ICJSUzI1NiIsCi0g
ICAgbjogInJjQ1VDdjdPYzFIVmFtMURJaEN6cWtuVGhXYXdPcDhRTGs4Wml5MnAxMEJ5alFGQ2Fq
b0ZpeXVBV2wtUjFXWFphZjR4aXRMUnJhY1Q5YWdwekl6Yy1NYkxTSElHZ1dRR08yMWxHaUlteTVm
dFotRDhiSEFxUnoyeTE1cHpENGM0Q0VvdTdYU1NMRG9SblIwUUc1TXNEaEQ2czJnVjltd0hrcnRr
Q3h0TVdkQmktNzdhczh3R21sTlJsZGNPU2daRExLOFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0T09FSWIw
eFVTZlBTejNMUFNDbnlZejY4YURqbUtWZU5ILWlnODU3T1NjeVdiR3lFeTNCaXc2NHF1bjNqdVVs
TldzSjN6bmdrT2R0ZVlXeXR4NVFyNFhLTnM2Ui1NeXlxNzJLVXAwMm1KRFppaXlpZ2x4TUxfaTMt
X0NlZWNDdyIsCi0gICAgZTogIkFRQUIiCi19OwotCi12YXIgandrS2V5QXNBcnJheUJ1ZmZlciA9
IGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5KHB1YmxpY0tleUpTT04pKTsKLQotZGVi
dWcoIlxuSW1wb3J0aW5nIGEgSldLIGtleS4uLiIpOwotY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBv
cnRLZXkoImp3ayIsIGp3a0tleUFzQXJyYXlCdWZmZXIsICJSU0FTU0EtUEtDUzEtdjFfNSIsIGV4
dHJhY3RhYmxlLCBbJ3NpZ24nLCAndmVyaWZ5J10pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0g
ICAga2V5ID0gcmVzdWx0OwotCi0gICAgc2hvdWxkVGhyb3coJ2NyeXB0by53ZWJraXRTdWJ0bGUu
ZXhwb3J0S2V5KG51bGwsIGtleSknKTsKLSAgICBzaG91bGRUaHJvdygnY3J5cHRvLndlYmtpdFN1
YnRsZS5leHBvcnRLZXkodW5kZWZpbmVkLCBrZXkpJyk7Ci0gICAgc2hvdWxkVGhyb3coJ2NyeXB0
by53ZWJraXRTdWJ0bGUuZXhwb3J0S2V5KHt9LCBrZXkpJyk7Ci0gICAgc2hvdWxkVGhyb3coJ2Ny
eXB0by53ZWJraXRTdWJ0bGUuZXhwb3J0S2V5KCIiLCBrZXkpJyk7Ci0gICAgc2hvdWxkVGhyb3co
J2NyeXB0by53ZWJraXRTdWJ0bGUuZXhwb3J0S2V5KCJmb29iYXIiLCBrZXkpJyk7Ci0KLSAgICBk
ZWJ1ZygiXG5FeHBvcnRpbmcgdGhlIGtleSBhcyBKV0suLi4iKTsKLSAgICByZXR1cm4gY3J5cHRv
LndlYmtpdFN1YnRsZS5leHBvcnRLZXkoImp3ayIsIGtleSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJl
c3VsdCkgewotICAgIGV4cG9ydGVkSldLID0gSlNPTi5wYXJzZShieXRlc1RvQVNDSUlTdHJpbmco
cmVzdWx0KSk7Ci0KLSAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0sua3R5IiwgIidSU0EnIik7Ci0g
ICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLm4iLCAicHVibGljS2V5SlNPTi5uIik7Ci0gICAgc2hv
dWxkQmUoImV4cG9ydGVkSldLLmUiLCAicHVibGljS2V5SlNPTi5lIik7Ci0gICAgc2hvdWxkQmUo
ImV4cG9ydGVkSldLLmFsZyIsICInUlMyNTYnIik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkSldL
LmV4dCIsICJ0cnVlIik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLnVzZSIsICJ1bmRlZmlu
ZWQiKTsKLSAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0sua2V5X29wcyIsICJbJ3NpZ24nLCAndmVy
aWZ5J10iKTsKLQotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLQotPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5
PgotPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtp
dFN1YnRsZS9yc2EtZXhwb3J0LWtleS5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOm1pbWUt
dHlwZQojIyAtMSArMCwwICMjCi10ZXh0L2h0bWwKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9w
ZXJ0eQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtZXhwb3J0LXBy
aXZhdGUta2V5LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8v
d2Via2l0U3VidGxlL3JzYS1leHBvcnQtcHJpdmF0ZS1rZXktZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAyMjA5MzUpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1leHBvcnQt
cHJpdmF0ZS1rZXktZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKQEAgLTEsMjggKzAsMCBAQAot
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDM2OiBXZWJLaXRTdWJ0bGVDcnlwdG8gaXMgZGVwcmVjYXRl
ZC4gUGxlYXNlIHVzZSBTdWJ0bGVDcnlwdG8gaW5zdGVhZC4KLVRlc3QgZXhwb3J0aW5nIGEgcHJp
dmF0ZSBSU0Ega2V5LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotCi1JbXBvcnRp
bmcgYSBKV0sga2V5Li4uCi0KLUV4cG9ydGluZyB0aGUga2V5IGFzIEpXSy4uLgotUEFTUyBleHBv
cnRlZEpXSy5rdHkgaXMgJ1JTQScKLVBBU1MgZXhwb3J0ZWRKV0subiBpcyBwcml2YXRlS2V5SlNP
Ti5uCi1QQVNTIGV4cG9ydGVkSldLLmUgaXMgcHJpdmF0ZUtleUpTT04uZQotUEFTUyBleHBvcnRl
ZEpXSy5kIGlzIHByaXZhdGVLZXlKU09OLmQKLVBBU1MgZXhwb3J0ZWRKV0sucCBpcyBwcml2YXRl
S2V5SlNPTi5wCi1QQVNTIGV4cG9ydGVkSldLLnEgaXMgcHJpdmF0ZUtleUpTT04ucQotUEFTUyBl
eHBvcnRlZEpXSy5kcCBpcyBwcml2YXRlS2V5SlNPTi5kcAotUEFTUyBleHBvcnRlZEpXSy5kcSBp
cyBwcml2YXRlS2V5SlNPTi5kcQotUEFTUyBleHBvcnRlZEpXSy5xaSBpcyBwcml2YXRlS2V5SlNP
Ti5xaQotUEFTUyBleHBvcnRlZEpXSy5vdGggaXMgcHJpdmF0ZUtleUpTT04ub3RoCi1QQVNTIGV4
cG9ydGVkSldLLmFsZyBpcyBwcml2YXRlS2V5SlNPTi5hbGcKLVBBU1MgZXhwb3J0ZWRKV0suZXh0
IGlzIHRydWUKLVBBU1MgZXhwb3J0ZWRKV0sua2V5X29wcyBpcyBbJ3NpZ24nLCAndmVyaWZ5J10K
LVBBU1MgZXhwb3J0ZWRKV0sudXNlIGlzIHVuZGVmaW5lZAotUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91
dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWV4cG9ydC1wcml2YXRlLWtleS1leHBlY3Rl
ZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0xICswLDAgIyMKLW5h
dGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkRlbGV0ZWQ6IHN2bjptaW1lLXR5
cGUKIyMgLTEgKzAsMCAjIwotdGV4dC9wbGFpbgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3Bl
cnR5CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1leHBvcnQtcHJp
dmF0ZS1rZXkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3Vi
dGxlL3JzYS1leHBvcnQtcHJpdmF0ZS1rZXkuaHRtbAkocmV2aXNpb24gMjIwOTM1KQorKysgTGF5
b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtZXhwb3J0LXByaXZhdGUta2V5Lmh0bWwJ
KG5vbmV4aXN0ZW50KQpAQCAtMSw2NSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgot
PGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwv
aGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IGV4cG9ydGluZyBhIHByaXZh
dGUgUlNBIGtleS4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBleHRyYWN0YWJs
ZSA9IHRydWU7Ci12YXIgbm9uRXh0cmFjdGFibGUgPSBmYWxzZTsKLQotLy8gRXhhbXBsZSBmcm9t
IEpXSyBzcGVjaWZpY2F0aW9uLgotdmFyIHByaXZhdGVLZXlKU09OID0gewotICAgICJrdHkiOiJS
U0EiLAotICAgICJuIjoiMHZ4N2Fnb2ViR2NRU3V1UGlMSlhacHROOW5uZHJRbWJYRXBzMmFpQUZi
V2hNNzhMaFd4NGNiYmZBQXRWVDg2end1MVJLN2FQRkZ4dWhEUjFMNnRTb2NfQkpFQ1BlYldLUlhq
QlpDaUZWNG4zb2tuamhNc3RuNjR0Wl8yVy01SnNHWTRIYzVuOXlCWEFyd2w5M2xxdDdfUk41dzZD
ZjBoNFF5UTV2LTY1WUdqUVIwX0ZEVzJRdnpxWTM2OFFRTWljQXRhU3F6czhLSlpnblliOWM3ZDB6
Z2RBWkh6dTZxTVF2Ukw1aGFqcm4xbjkxQ2JPcGJJU0QwOHFOTHlyZGt0LWJGVFdoQUk0dk1RRmg2
V2VadTBmTTRsRmQyTmNSd3IzWFBrc0lOSGFRLUdfeEJuaUlxYncwTHMxakY0NC1jc0ZDdXIta0Vn
VThhd2FwSnpLbnFES2d3IiwKLSAgICAiZSI6IkFRQUIiLAotICAgICJkIjoiWDRjVHRlSllfZ240
RllQc1hCOHJkWGl4NXZ3c2cxRkxONUUzRWFHNlJKb1ZILUhMTEtEOU03ZHg1b283R1VSa25jaG5y
UndlVWtDN2hUNWZKTE0wV2JGQUtOTFdZMnZ2N0I2TnFYU3pVdnhUMF9ZU2ZxaWp3cDNSVHpsQmFD
eFdwNGRvRms1TjJvOEd5X25ITktyb0FESWtKNDZwUlVvaHNYeXdiUmVBZFlhTXdGczl0djhkX2NQ
VlkzaTA3YTN0OE1ONlROd20wZFNhd205djQ3VWlDbDNTazVaaUc3eG9qUEx1NHNiZzFVMmp4NElC
VE5Cem5iSlN6RkhLNjZqVDhiZ2t1cXNrMEdqc2tESmsxOVo0cXdqd2Jzbm40ajJXQmlpM1JMLVVz
MmxHVmtZOGZrRnptZTF6MEhiSWtmejBZNm1xbk9ZdHFjMFg0amZjS29BQzhRIiwKLSAgICAicCI6
IjgzaS03SXZNR1hvTVhDc2t2NzNUS3I4NjM3RmlPN1oyN3p2OG9qNnBiV1VReUxQUUJReHRQVm53
RDIwUi02MGVURG1EMnVqbk10NVBvcU1ybThSZm1OaFZXRHRqak1tQ01qT3BTWGljRkhqN1hPdVZJ
WVF5cVZXbFdFaDZkTjM2R1ZaWWs5M044QmM5dlk0MXh5OEI5Unp6T0dWUXpYdk5Fdm43TzBuVmJm
cyIsCi0gICAgInEiOiIzZGZPUjljdVlxLTBTLW1rRkx6Z0l0Z01FZkZ6QjJxM2hXZWhNdUcwb0N1
cW5iM3ZvYkx5dW1xalZaUU8xZElyZHdnVG5DZHBZekJjT2ZXNXIzNzBBRlhqaVdmdF9OR0Vpb3Zv
bml6aEtwbzlWVlM3OFR6Rmd4a0lkcmVjUmV6c1otMWtZZF9zMXFEYnh0a0RFZ2ZBSVRBRzlMVW5B
RHVuNHZJY2I2eWVseGsiLAotICAgICJkcCI6Ikc0c1BYa2M2WWE5eThvSlc5X0lMajR4dXBwdTBs
emlfSDdWVGtTOHhqNVNkWDNjb0Uwb2ltWXd4SWkyZW1UQXVlMFVPYTVkcGdGR3lCSjRjOHRRMlZG
NDAyWFJ1Z0tEVFA4YWtZaEZvNXRBQTc3UWVfTm10dVlaYzNDM20zSTI0RzJHdlI1c1NEeFV5QU4y
enE4TGZuOUVVbXM2clkzT2I4WWVpS2tUaUJqMCIsCi0gICAgImRxIjoiczlsQUg5ZmdnQnNvRlI4
T2FjMlJfRTJndzI4MnJUMmtHT0FodklsbEVURTFlZnJBNmh1VVV2TWZCY01wbjhscWVXNnZ6em5Z
WTVTU1FGN3BNZENfYWdJM25HOElicDFCVWIwSlVpcmFSTnFVZkxoY1FiX2Q5R0Y0RGg3ZTc0V2JS
c29iUm9udWpUWU4xeENhUDZUTzYxanZXclgtTDE4dHhYdzQ5NFFfY2drIiwKLSAgICAicWkiOiJH
eU1fcDZKclh5U2l6MXRvRmdLYldWLUpkSTNqUTR5cHU5cmJNV3gzclFKQmZtdDBGb1l6Z1VJWkVW
RkVjT3F3ZW1STjgxem9EQWFhLUJrMEtXTkdEakpIWkRkRG1GaFczQU43bEktcHV4a19tSFpHSjEx
cnh5UjhPNTVYTFNlM1NQbVJmS3daSTZ5VTI0Wnh2UUtGWUl0ZGxkVUtHek82SWE2elRLaEFWUlUi
LAotICAgICJhbGciOiJSUzI1NiIsCi0gICAgImtpZCI6IjIwMTEtMDQtMjkiCi19Ci12YXIgandr
S2V5QXNBcnJheUJ1ZmZlciA9IGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5KHByaXZh
dGVLZXlKU09OKSk7Ci0KLWRlYnVnKCJcbkltcG9ydGluZyBhIEpXSyBrZXkuLi4iKTsKLWNyeXB0
by53ZWJraXRTdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBqd2tLZXlBc0FycmF5QnVmZmVyLCAiUlNB
U1NBLVBLQ1MxLXYxXzUiLCBleHRyYWN0YWJsZSwgWydzaWduJywgJ3ZlcmlmeSddKS50aGVuKGZ1
bmN0aW9uKHJlc3VsdCkgewotICAgIGtleSA9IHJlc3VsdDsKLQotICAgIGRlYnVnKCJcbkV4cG9y
dGluZyB0aGUga2V5IGFzIEpXSy4uLiIpOwotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxl
LmV4cG9ydEtleSgiandrIiwga2V5KTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAg
ZXhwb3J0ZWRKV0sgPSBKU09OLnBhcnNlKGJ5dGVzVG9BU0NJSVN0cmluZyhyZXN1bHQpKTsKLQot
ICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5rdHkiLCAiJ1JTQSciKTsKLSAgICBzaG91bGRCZSgi
ZXhwb3J0ZWRKV0subiIsICJwcml2YXRlS2V5SlNPTi5uIik7Ci0gICAgc2hvdWxkQmUoImV4cG9y
dGVkSldLLmUiLCAicHJpdmF0ZUtleUpTT04uZSIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpX
Sy5kIiwgInByaXZhdGVLZXlKU09OLmQiKTsKLSAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0sucCIs
ICJwcml2YXRlS2V5SlNPTi5wIik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLnEiLCAicHJp
dmF0ZUtleUpTT04ucSIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5kcCIsICJwcml2YXRl
S2V5SlNPTi5kcCIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5kcSIsICJwcml2YXRlS2V5
SlNPTi5kcSIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5xaSIsICJwcml2YXRlS2V5SlNP
Ti5xaSIpOwotICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5vdGgiLCAicHJpdmF0ZUtleUpTT04u
b3RoIik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmFsZyIsICJwcml2YXRlS2V5SlNPTi5h
bGciKTsKLSAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0suZXh0IiwgInRydWUiKTsKLSAgICBzaG91
bGRCZSgiZXhwb3J0ZWRKV0sua2V5X29wcyIsICJbJ3NpZ24nLCAndmVyaWZ5J10iKTsKLSAgICBz
aG91bGRCZSgiZXhwb3J0ZWRKV0sudXNlIiwgInVuZGVmaW5lZCIpOwotCi0gICAgZmluaXNoSlNU
ZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CgpQcm9wZXJ0eSBjaGFu
Z2VzIG9uOiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1leHBvcnQtcHJpdmF0
ZS1rZXkuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjptaW1lLXR5cGUKIyMgLTEgKzAsMCAj
IwotdGV4dC9odG1sClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IExheW91
dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4ZWRkYi1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRi
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjIwOTM1KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dl
YmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCkBAIC0x
LDE2ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxODogV2ViS2l0U3VidGxlQ3J5cHRv
IGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgU3VidGxlQ3J5cHRvIGluc3RlYWQuCi1UZXN0IHN0
b3JpbmcgYSBwcml2YXRlIFJTQSBrZXkgaW4gSW5kZXhlZERCLCBhbmQgcmV0cmlldmluZyBpdC4K
LQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgcmV0cmlldmVkS2V5LnR5cGUg
aXMgJ3ByaXZhdGUnCi1QQVNTIHJldHJpZXZlZEtleS5leHRyYWN0YWJsZSBpcyB0cnVlCi1QQVNT
IHJldHJpZXZlZEtleS5hbGdvcml0aG0ubmFtZSBpcyAnUlNBU1NBLVBLQ1MxLXYxXzUnCi1QQVNT
IHJldHJpZXZlZEtleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCBpcyAyMDQ4Ci1QQVNTIGJ5dGVz
VG9IZXhTdHJpbmcocmV0cmlldmVkS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkgaXMgJzAx
MDAwMScKLVBBU1MgcmV0cmlldmVkS2V5LnVzYWdlcyBpcyBbInNpZ24iLCAidmVyaWZ5Il0KLVBB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCgpQcm9wZXJ0
eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1pbmRleGVk
ZGItZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSAr
MCwwICMjCi1uYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpEZWxldGVkOiBz
dm46bWltZS10eXBlCiMjIC0xICswLDAgIyMKLXRleHQvcGxhaW4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBwcm9wZXJ0eQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Et
aW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1pbmRleGVkZGItbm9uLWV4cG9ydGFibGUt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMjA5MzUpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Vi
a2l0U3VidGxlL3JzYS1pbmRleGVkZGItbm9uLWV4cG9ydGFibGUtZXhwZWN0ZWQudHh0CShub25l
eGlzdGVudCkKQEAgLTEsMTYgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4OiBXZWJL
aXRTdWJ0bGVDcnlwdG8gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBTdWJ0bGVDcnlwdG8gaW5z
dGVhZC4KLVRlc3Qgc3RvcmluZyBhIHByaXZhdGUgUlNBIGtleSBpbiBJbmRleGVkREIsIGFuZCBy
ZXRyaWV2aW5nIGl0LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyByZXRy
aWV2ZWRLZXkudHlwZSBpcyAncHJpdmF0ZScKLVBBU1MgcmV0cmlldmVkS2V5LmV4dHJhY3RhYmxl
IGlzIGZhbHNlCi1QQVNTIHJldHJpZXZlZEtleS5hbGdvcml0aG0ubmFtZSBpcyAnUlNBU1NBLVBL
Q1MxLXYxXzUnCi1QQVNTIHJldHJpZXZlZEtleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCBpcyAy
MDQ4Ci1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcocmV0cmlldmVkS2V5LmFsZ29yaXRobS5wdWJsaWNF
eHBvbmVudCkgaXMgJzAxMDAwMScKLVBBU1MgcmV0cmlldmVkS2V5LnVzYWdlcyBpcyBbInNpZ24i
LCAidmVyaWZ5Il0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01Q
TEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1pbmRleGVk
ZGItbm9uLWV4cG9ydGFibGUtcHJpdmF0ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxl
LXByaXZhdGUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMjA5MzUpCisrKyBMYXlvdXRUZXN0cy9j
cnlwdG8vd2Via2l0U3VidGxlL3JzYS1pbmRleGVkZGItbm9uLWV4cG9ydGFibGUtcHJpdmF0ZS1l
eHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSwxNiArMCwwIEBACi1DT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTg6IFdlYktpdFN1YnRsZUNyeXB0byBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNl
IFN1YnRsZUNyeXB0byBpbnN0ZWFkLgotVGVzdCBzdG9yaW5nIGEgcHJpdmF0ZSBSU0Ega2V5IGlu
IEluZGV4ZWREQiwgYW5kIHJldHJpZXZpbmcgaXQuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KLQotCi1QQVNTIHJldHJpZXZlZEtleS50eXBlIGlzICdwcml2YXRlJwotUEFTUyByZXRyaWV2
ZWRLZXkuZXh0cmFjdGFibGUgaXMgZmFsc2UKLVBBU1MgcmV0cmlldmVkS2V5LmFsZ29yaXRobS5u
YW1lIGlzICdSU0FTU0EtUEtDUzEtdjFfNScKLVBBU1MgcmV0cmlldmVkS2V5LmFsZ29yaXRobS5t
b2R1bHVzTGVuZ3RoIGlzIDIwNDgKLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhyZXRyaWV2ZWRLZXku
YWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSBpcyAnMDEwMDAxJwotUEFTUyByZXRyaWV2ZWRLZXku
dXNhZ2VzIGlzIFsic2lnbiIsICJ2ZXJpZnkiXQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRT
dWJ0bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS1wcml2YXRlLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1l
eHBvcnRhYmxlLXByaXZhdGUuaHRtbAkocmV2aXNpb24gMjIwOTM1KQorKysgTGF5b3V0VGVzdHMv
Y3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1leHBvcnRhYmxlLXByaXZhdGUu
aHRtbAkobm9uZXhpc3RlbnQpCkBAIC0xLDE0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0
bWw+Ci08aGVhZD4KLTxzY3JpcHQ+Ci1lbmFibGVQcml2YXRlQnJvd3NpbmcgPSB0cnVlOwotPC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwv
aGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yc2EtaW5kZXhlZGRiLW5vbi1l
eHBvcnRhYmxlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4
ZWRkYi1ub24tZXhwb3J0YWJsZS5odG1sCShyZXZpc2lvbiAyMjA5MzUpCisrKyBMYXlvdXRUZXN0
cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1pbmRleGVkZGItbm9uLWV4cG9ydGFibGUuaHRtbAko
bm9uZXhpc3RlbnQpCkBAIC0xLDExICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08
aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9o
ZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JzYS1pbmRleGVkZGItbm9uLWV4
cG9ydGFibGUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLXByaXZhdGUtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4
ZWRkYi1wcml2YXRlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjIwOTM1KQorKysgTGF5b3V0VGVz
dHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLXByaXZhdGUtZXhwZWN0ZWQudHh0
CShub25leGlzdGVudCkKQEAgLTEsMTYgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE4
OiBXZWJLaXRTdWJ0bGVDcnlwdG8gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBTdWJ0bGVDcnlw
dG8gaW5zdGVhZC4KLVRlc3Qgc3RvcmluZyBhIHByaXZhdGUgUlNBIGtleSBpbiBJbmRleGVkREIs
IGFuZCByZXRyaWV2aW5nIGl0LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFT
UyByZXRyaWV2ZWRLZXkudHlwZSBpcyAncHJpdmF0ZScKLVBBU1MgcmV0cmlldmVkS2V5LmV4dHJh
Y3RhYmxlIGlzIHRydWUKLVBBU1MgcmV0cmlldmVkS2V5LmFsZ29yaXRobS5uYW1lIGlzICdSU0FT
U0EtUEtDUzEtdjFfNScKLVBBU1MgcmV0cmlldmVkS2V5LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3Ro
IGlzIDIwNDgKLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhyZXRyaWV2ZWRLZXkuYWxnb3JpdGhtLnB1
YmxpY0V4cG9uZW50KSBpcyAnMDEwMDAxJwotUEFTUyByZXRyaWV2ZWRLZXkudXNhZ2VzIGlzIFsi
c2lnbiIsICJ2ZXJpZnkiXQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNU
IENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWlu
ZGV4ZWRkYi1wcml2YXRlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dl
YmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLXByaXZhdGUuaHRtbAkocmV2aXNpb24gMjIwOTM1KQor
KysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLXByaXZhdGUu
aHRtbAkobm9uZXhpc3RlbnQpCkBAIC0xLDE0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0
bWw+Ci08aGVhZD4KLTxzY3JpcHQ+Ci1lbmFibGVQcml2YXRlQnJvd3NpbmcgPSB0cnVlOwotPC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwv
aGVhZD4KLTxib2R5PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9yc2EtaW5kZXhlZGRiLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJr
aXRTdWJ0bGUvcnNhLWluZGV4ZWRkYi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Ny
eXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4ZWRkYi5odG1sCShyZXZpc2lvbiAyMjA5MzUpCisr
KyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1pbmRleGVkZGIuaHRtbAkobm9u
ZXhpc3RlbnQpCkBAIC0xLDExICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHk+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JzYS1pbmRleGVkZGIuanMiPjwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgotPC9ib2R5PgotPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMv
Y3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLmh0bWwKX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVk
OiBzdm46bWltZS10eXBlCiMjIC0xICswLDAgIyMKLXRleHQvaHRtbApcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIHByb3BlcnR5CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3Jz
YS1vYWVwLWdlbmVyYXRlLW5vbi1leHRyYWN0YWJsZS1rZXktZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAtZ2VuZXJhdGUt
bm9uLWV4dHJhY3RhYmxlLWtleS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIyMDkzNSkKKysrIExh
eW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAtZ2VuZXJhdGUtbm9uLWV4dHJh
Y3RhYmxlLWtleS1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSwyNCArMCwwIEBACi1D
T05TT0xFIE1FU1NBR0U6IGxpbmUgMjU6IFdlYktpdFN1YnRsZUNyeXB0byBpcyBkZXByZWNhdGVk
LiBQbGVhc2UgdXNlIFN1YnRsZUNyeXB0byBpbnN0ZWFkLgotVGVzdCB0aGF0IGV2ZW4gd2hlbiBu
b24tZXh0cmFjdGFiaWxpdHkgaXMgcmVxdWVzdGVkLCB0aGUgcHVibGljIGtleSBpcyBzdGlsbCBl
eHRyYWN0YWJsZS4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLUdlbmVyYXRpbmcg
YSBrZXkgcGFpci4uLgotUEFTUyBrZXlQYWlyLnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgT2JqZWN0
XScKLVBBU1Mga2V5UGFpci5wdWJsaWNLZXkudHlwZSBpcyAncHVibGljJwotUEFTUyBrZXlQYWly
LnB1YmxpY0tleS5leHRyYWN0YWJsZSBpcyB0cnVlCi1QQVNTIGtleVBhaXIucHVibGljS2V5LmFs
Z29yaXRobS5uYW1lIGlzICdSU0EtT0FFUCcKLVBBU1Mga2V5UGFpci5wdWJsaWNLZXkuYWxnb3Jp
dGhtLm1vZHVsdXNMZW5ndGggaXMgMjA0OAotUEFTUyBieXRlc1RvSGV4U3RyaW5nKGtleVBhaXIu
cHVibGljS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkgaXMgJzAxMDAwMScKLVBBU1Mga2V5
UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLmhhc2ggaXMgdW5kZWZpbmVkLgotUEFTUyBrZXlQYWly
LnByaXZhdGVLZXkudHlwZSBpcyAncHJpdmF0ZScKLVBBU1Mga2V5UGFpci5wcml2YXRlS2V5LmV4
dHJhY3RhYmxlIGlzIGZhbHNlCi1QQVNTIGtleVBhaXIucHJpdmF0ZUtleS5hbGdvcml0aG0ubmFt
ZSBpcyAnUlNBLU9BRVAnCi1QQVNTIGtleVBhaXIucHJpdmF0ZUtleS5hbGdvcml0aG0ubW9kdWx1
c0xlbmd0aCBpcyAyMDQ4Ci1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcoa2V5UGFpci5wcml2YXRlS2V5
LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkgaXMgJzAxMDAwMScKLVBBU1Mga2V5UGFpci5wcml2
YXRlS2V5LmFsZ29yaXRobS5oYXNoIGlzIHVuZGVmaW5lZC4KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlv
dXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1vYWVwLWdlbmVyYXRlLW5vbi1leHRyYWN0
YWJsZS1rZXktZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQoj
IyAtMSArMCwwICMjCi1uYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpEZWxl
dGVkOiBzdm46bWltZS10eXBlCiMjIC0xICswLDAgIyMKLXRleHQvcGxhaW4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRs
ZS9yc2Etb2FlcC1nZW5lcmF0ZS1ub24tZXh0cmFjdGFibGUta2V5Lmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Etb2FlcC1nZW5lcmF0ZS1ub24t
ZXh0cmFjdGFibGUta2V5Lmh0bWwJKHJldmlzaW9uIDIyMDkzNSkKKysrIExheW91dFRlc3RzL2Ny
eXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAtZ2VuZXJhdGUtbm9uLWV4dHJhY3RhYmxlLWtleS5o
dG1sCShub25leGlzdGVudCkKQEAgLTEsNDcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCB0aGF0IGV2ZW4gd2hl
biBub24tZXh0cmFjdGFiaWxpdHkgaXMgcmVxdWVzdGVkLCB0aGUgcHVibGljIGtleSBpcyBzdGls
bCBleHRyYWN0YWJsZS4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBhbGdvcml0
aG1LZXlHZW4gPSB7Ci0gICAgbmFtZTogIlJTQS1PQUVQIiwKLSAgICAvLyBSc2FLZXlHZW5QYXJh
bXMKLSAgICBtb2R1bHVzTGVuZ3RoOiAyMDQ4LAotICAgIHB1YmxpY0V4cG9uZW50OiBuZXcgVWlu
dDhBcnJheShbMHgwMSwgMHgwMCwgMHgwMV0pLCAgLy8gRXF1aXZhbGVudCB0byA2NTUzNwotfTsK
LXZhciBub25FeHRyYWN0YWJsZSA9IGZhbHNlOwotCi1kZWJ1ZygiR2VuZXJhdGluZyBhIGtleSBw
YWlyLi4uIik7Ci1jcnlwdG8ud2Via2l0U3VidGxlLmdlbmVyYXRlS2V5KGFsZ29yaXRobUtleUdl
biwgbm9uRXh0cmFjdGFibGUsIFtdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGtleVBh
aXIgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImtleVBhaXIudG9TdHJpbmcoKSIsICInW29iamVj
dCBPYmplY3RdJyIpOwotICAgIHNob3VsZEJlKCJrZXlQYWlyLnB1YmxpY0tleS50eXBlIiwgIidw
dWJsaWMnIik7Ci0gICAgc2hvdWxkQmUoImtleVBhaXIucHVibGljS2V5LmV4dHJhY3RhYmxlIiwg
InRydWUiKTsKLSAgICBzaG91bGRCZSgia2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLm5hbWUi
LCAiJ1JTQS1PQUVQJyIpOwotICAgIHNob3VsZEJlKCJrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0
aG0ubW9kdWx1c0xlbmd0aCIsICIyMDQ4Iik7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJp
bmcoa2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSIsICInMDEwMDAx
JyIpOwotICAgIHNob3VsZEJlVW5kZWZpbmVkKCJrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0u
aGFzaCIpOwotICAgIHNob3VsZEJlKCJrZXlQYWlyLnByaXZhdGVLZXkudHlwZSIsICIncHJpdmF0
ZSciKTsKLSAgICBzaG91bGRCZSgia2V5UGFpci5wcml2YXRlS2V5LmV4dHJhY3RhYmxlIiwgImZh
bHNlIik7Ci0gICAgc2hvdWxkQmUoImtleVBhaXIucHJpdmF0ZUtleS5hbGdvcml0aG0ubmFtZSIs
ICInUlNBLU9BRVAnIik7Ci0gICAgc2hvdWxkQmUoImtleVBhaXIucHJpdmF0ZUtleS5hbGdvcml0
aG0ubW9kdWx1c0xlbmd0aCIsICIyMDQ4Iik7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJp
bmcoa2V5UGFpci5wcml2YXRlS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkiLCAiJzAxMDAw
MSciKTsKLSAgICBzaG91bGRCZVVuZGVmaW5lZCgia2V5UGFpci5wcml2YXRlS2V5LmFsZ29yaXRo
bS5oYXNoIik7Ci0KLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOwotPC9zY3JpcHQ+Ci0KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9k
eT4KLTwvaHRtbD4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2NyeXB0by93ZWJr
aXRTdWJ0bGUvcnNhLW9hZXAtZ2VuZXJhdGUtbm9uLWV4dHJhY3RhYmxlLWtleS5odG1sCl9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KRGVsZXRlZDogc3ZuOm1pbWUtdHlwZQojIyAtMSArMCwwICMjCi10ZXh0L2h0bWwKXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dl
YmtpdFN1YnRsZS9yc2Etb2FlcC1rZXktbWFuaXB1bGF0aW9uLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1vYWVwLWtleS1tYW5p
cHVsYXRpb24tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMjA5MzUpCisrKyBMYXlvdXRUZXN0cy9j
cnlwdG8vd2Via2l0U3VidGxlL3JzYS1vYWVwLWtleS1tYW5pcHVsYXRpb24tZXhwZWN0ZWQudHh0
CShub25leGlzdGVudCkKQEAgLTEsNDcgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI1
OiBXZWJLaXRTdWJ0bGVDcnlwdG8gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBTdWJ0bGVDcnlw
dG8gaW5zdGVhZC4KLVRlc3QgZ2VuZXJhdGluZywgaW1wb3J0aW5nIGFuZCBleHBvcnRpbmcgUlNB
IGtleXMgZm9yIFJTQS1PQUVQLiBUZXN0IHRoYXQgdGhleSBjYW4ndCBiZSB1c2VkIHdpdGggYW5v
dGhlciBhbGdvcml0aG0uCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1HZW5lcmF0
aW5nIGEga2V5IHBhaXIuLi4KLVBBU1Mga2V5UGFpci50b1N0cmluZygpIGlzICdbb2JqZWN0IE9i
amVjdF0nCi1QQVNTIGtleVBhaXIucHVibGljS2V5LnR5cGUgaXMgJ3B1YmxpYycKLVBBU1Mga2V5
UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ1JTQS1PQUVQJwotUEFTUyBrZXlQYWly
LnB1YmxpY0tleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCBpcyAyMDQ4Ci1QQVNTIGJ5dGVzVG9I
ZXhTdHJpbmcoa2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSBpcyAn
MDEwMDAxJwotUEFTUyBrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0uaGFzaCBpcyB1bmRlZmlu
ZWQuCi1QQVNTIGtleVBhaXIucHJpdmF0ZUtleS50eXBlIGlzICdwcml2YXRlJwotUEFTUyBrZXlQ
YWlyLnByaXZhdGVLZXkuYWxnb3JpdGhtLm5hbWUgaXMgJ1JTQS1PQUVQJwotUEFTUyBrZXlQYWly
LnByaXZhdGVLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGggaXMgMjA0OAotUEFTUyBieXRlc1Rv
SGV4U3RyaW5nKGtleVBhaXIucHJpdmF0ZUtleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIGlz
ICcwMTAwMDEnCi1QQVNTIGtleVBhaXIucHJpdmF0ZUtleS5hbGdvcml0aG0uaGFzaCBpcyB1bmRl
ZmluZWQuCi0KLVRlc3RpbmcgdGhhdCB0aGUga2V5cyBjYW4ndCBiZSB1c2VkIHdpdGggZGlmZmVy
ZW50IGFsZ29yaXRobXMuLi4KLVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5lbmNyeXB0KHtuYW1l
OiAiYWVzLWNiYyIsIGl2OiBpdn0sIGtleVBhaXIucHJpdmF0ZUtleSwgaGV4U3RyaW5nVG9VaW50
OEFycmF5KCIwMCIpKSB0aHJldyBleGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3I6IFRoZSBvcGVy
YXRpb24gaXMgbm90IHN1cHBvcnRlZC4uCi1QQVNTIGNyeXB0by53ZWJraXRTdWJ0bGUuZW5jcnlw
dCh7bmFtZTogImFlcy1jYmMiLCBpdjogaXZ9LCBrZXlQYWlyLnB1YmxpY0tleSwgaGV4U3RyaW5n
VG9VaW50OEFycmF5KCIwMCIpKSB0aHJldyBleGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3I6IFRo
ZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4uCi0KLVRyeWluZyB0byBleHBvcnQga2V5cyB0
byByYXcuLi4KLVBBU1MgUHJvbWlzZSByZWplY3RlZCBmb3IgZXhwb3J0aW5nIHB1YmxpYyBrZXkK
LVBBU1MgUHJvbWlzZSByZWplY3RlZCBmb3IgZXhwb3J0aW5nIHByaXZhdGUga2V5Ci0KLUV4cG9y
dGluZyBwdWJsaWMga2V5IHRvIEpXSy4uLgotUEFTUyBqd2tQdWJsaWNLZXkuYWxnIGlzICdSU0Et
T0FFUCcKLVBBU1MgandrUHVibGljS2V5LmV4dCBpcyB0cnVlCi1QQVNTIGp3a1B1YmxpY0tleS5r
ZXlfb3BzIGlzIFsnZW5jcnlwdCcsICdkZWNyeXB0JywgJ3dyYXBLZXknLCAndW53cmFwS2V5J10K
LVBBU1MgandrUHVibGljS2V5LnVzZSBpcyB1bmRlZmluZWQKLVBBU1MgandrUHVibGljS2V5Lmt0
eSBpcyAnUlNBJwotUEFTUyBieXRlc1RvSGV4U3RyaW5nKEJhc2U2NFVSTC5wYXJzZShqd2tQdWJs
aWNLZXkuZSkpIGlzICcwMTAwMDEnCi0KLUltcG9ydGluZyBpdCBiYWNrLi4uCi1QQVNTIGV4cG9y
dGVkUHVibGljS2V5LnR5cGUgaXMgJ3B1YmxpYycKLVBBU1MgZXhwb3J0ZWRQdWJsaWNLZXkuYWxn
b3JpdGhtLm5hbWUgaXMgJ1JTQS1PQUVQJwotUEFTUyBleHBvcnRlZFB1YmxpY0tleS5hbGdvcml0
aG0ubW9kdWx1c0xlbmd0aCBpcyAyMDQ4Ci1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcoZXhwb3J0ZWRQ
dWJsaWNLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSBpcyAnMDEwMDAxJwotUEFTUyBleHBv
cnRlZFB1YmxpY0tleS5hbGdvcml0aG0uaGFzaC5uYW1lIGlzICdTSEEtMScKLVBBU1MgZXhwb3J0
ZWRQdWJsaWNLZXkuZXh0cmFjdGFibGUgaXMgdHJ1ZQotUEFTUyBleHBvcnRlZFB1YmxpY0tleS51
c2FnZXMgaXMgWydkZWNyeXB0JywnZW5jcnlwdCcsJ3Vud3JhcEtleScsJ3dyYXBLZXknXQotUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KClByb3BlcnR5
IGNoYW5nZXMgb246IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAta2V5
LW1hbmlwdWxhdGlvbi1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0
eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5
CkRlbGV0ZWQ6IHN2bjptaW1lLXR5cGUKIyMgLTEgKzAsMCAjIwotdGV4dC9wbGFpbgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL3JzYS1vYWVwLWtleS1tYW5pcHVsYXRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1vYWVwLWtleS1tYW5pcHVsYXRpb24uaHRt
bAkocmV2aXNpb24gMjIwOTM1KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9y
c2Etb2FlcC1rZXktbWFuaXB1bGF0aW9uLmh0bWwJKG5vbmV4aXN0ZW50KQpAQCAtMSw4MiArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2Ny
aXB0aW9uKCJUZXN0IGdlbmVyYXRpbmcsIGltcG9ydGluZyBhbmQgZXhwb3J0aW5nIFJTQSBrZXlz
IGZvciBSU0EtT0FFUC4gVGVzdCB0aGF0IHRoZXkgY2FuJ3QgYmUgdXNlZCB3aXRoIGFub3RoZXIg
YWxnb3JpdGhtLiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIGFsZ29yaXRobUtl
eUdlbiA9IHsKLSAgICBuYW1lOiAiUlNBLU9BRVAiLAotICAgIC8vIFJzYUtleUdlblBhcmFtcwot
ICAgIG1vZHVsdXNMZW5ndGg6IDIwNDgsCi0gICAgcHVibGljRXhwb25lbnQ6IG5ldyBVaW50OEFy
cmF5KFsweDAxLCAweDAwLCAweDAxXSksICAvLyBFcXVpdmFsZW50IHRvIDY1NTM3Ci19OwotdmFy
IGV4dHJhY3RhYmxlID0gdHJ1ZTsKLQotZGVidWcoIkdlbmVyYXRpbmcgYSBrZXkgcGFpci4uLiIp
OwotY3J5cHRvLndlYmtpdFN1YnRsZS5nZW5lcmF0ZUtleShhbGdvcml0aG1LZXlHZW4sIGV4dHJh
Y3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCIsICJ3cmFwS2V5IiwgInVud3JhcEtleSJdKS50
aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGtleVBhaXIgPSByZXN1bHQ7Ci0gICAgc2hvdWxk
QmUoImtleVBhaXIudG9TdHJpbmcoKSIsICInW29iamVjdCBPYmplY3RdJyIpOwotICAgIHNob3Vs
ZEJlKCJrZXlQYWlyLnB1YmxpY0tleS50eXBlIiwgIidwdWJsaWMnIik7Ci0gICAgc2hvdWxkQmUo
ImtleVBhaXIucHVibGljS2V5LmFsZ29yaXRobS5uYW1lIiwgIidSU0EtT0FFUCciKTsKLSAgICBz
aG91bGRCZSgia2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGgiLCAiMjA0
OCIpOwotICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKGtleVBhaXIucHVibGljS2V5LmFs
Z29yaXRobS5wdWJsaWNFeHBvbmVudCkiLCAiJzAxMDAwMSciKTsKLSAgICBzaG91bGRCZVVuZGVm
aW5lZCgia2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLmhhc2giKTsKLSAgICBzaG91bGRCZSgi
a2V5UGFpci5wcml2YXRlS2V5LnR5cGUiLCAiJ3ByaXZhdGUnIik7Ci0gICAgc2hvdWxkQmUoImtl
eVBhaXIucHJpdmF0ZUtleS5hbGdvcml0aG0ubmFtZSIsICInUlNBLU9BRVAnIik7Ci0gICAgc2hv
dWxkQmUoImtleVBhaXIucHJpdmF0ZUtleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCIsICIyMDQ4
Iik7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcoa2V5UGFpci5wcml2YXRlS2V5LmFs
Z29yaXRobS5wdWJsaWNFeHBvbmVudCkiLCAiJzAxMDAwMSciKTsKLSAgICBzaG91bGRCZVVuZGVm
aW5lZCgia2V5UGFpci5wcml2YXRlS2V5LmFsZ29yaXRobS5oYXNoIik7Ci0KLSAgICBkZWJ1Zygi
XG5UZXN0aW5nIHRoYXQgdGhlIGtleXMgY2FuJ3QgYmUgdXNlZCB3aXRoIGRpZmZlcmVudCBhbGdv
cml0aG1zLi4uIik7Ci0gICAgaXYgPSBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAwMDEwMjAzMDQw
NTA2MDcwODA5MGEwYjBjMGQwZTBmIik7Ci0gICAgc2hvdWxkVGhyb3coJ2NyeXB0by53ZWJraXRT
dWJ0bGUuZW5jcnlwdCh7bmFtZTogImFlcy1jYmMiLCBpdjogaXZ9LCBrZXlQYWlyLnByaXZhdGVL
ZXksIGhleFN0cmluZ1RvVWludDhBcnJheSgiMDAiKSknKTsKLSAgICBzaG91bGRUaHJvdygnY3J5
cHRvLndlYmtpdFN1YnRsZS5lbmNyeXB0KHtuYW1lOiAiYWVzLWNiYyIsIGl2OiBpdn0sIGtleVBh
aXIucHVibGljS2V5LCBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAwIikpJyk7Ci0KLSAgICBkZWJ1
ZygiXG5UcnlpbmcgdG8gZXhwb3J0IGtleXMgdG8gcmF3Li4uIik7Ci0gICAgcmV0dXJuIGNyeXB0
by53ZWJraXRTdWJ0bGUuZXhwb3J0S2V5KCdyYXcnLCBrZXlQYWlyLnB1YmxpY0tleSk7Ci19KS50
aGVuKHVuZGVmaW5lZCwgZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgdGVzdFBhc3NlZCgiUHJvbWlz
ZSByZWplY3RlZCBmb3IgZXhwb3J0aW5nIHB1YmxpYyBrZXkiKTsKLSAgICByZXR1cm4gY3J5cHRv
LndlYmtpdFN1YnRsZS5leHBvcnRLZXkoJ3JhdycsIGtleVBhaXIucHJpdmF0ZUtleSk7Ci19KS50
aGVuKHVuZGVmaW5lZCwgZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgdGVzdFBhc3NlZCgiUHJvbWlz
ZSByZWplY3RlZCBmb3IgZXhwb3J0aW5nIHByaXZhdGUga2V5Iik7Ci0KLSAgICBkZWJ1ZygiXG5F
eHBvcnRpbmcgcHVibGljIGtleSB0byBKV0suLi4iKTsKLSAgICByZXR1cm4gY3J5cHRvLndlYmtp
dFN1YnRsZS5leHBvcnRLZXkoImp3ayIsIGtleVBhaXIucHVibGljS2V5KTsKLX0pLnRoZW4oZnVu
Y3Rpb24ocmVzdWx0KSB7Ci0gICAgandrUHVibGljS2V5QXJyYXkgPSByZXN1bHQ7Ci0gICAgandr
UHVibGljS2V5ID0gSlNPTi5wYXJzZShieXRlc1RvQVNDSUlTdHJpbmcoandrUHVibGljS2V5QXJy
YXkpKTsKLSAgICBzaG91bGRCZSgiandrUHVibGljS2V5LmFsZyIsICInUlNBLU9BRVAnIik7Ci0g
ICAgc2hvdWxkQmUoImp3a1B1YmxpY0tleS5leHQiLCAidHJ1ZSIpOwotICAgIHNob3VsZEJlKCJq
d2tQdWJsaWNLZXkua2V5X29wcyIsICJbJ2VuY3J5cHQnLCAnZGVjcnlwdCcsICd3cmFwS2V5Jywg
J3Vud3JhcEtleSddIik7Ci0gICAgc2hvdWxkQmUoImp3a1B1YmxpY0tleS51c2UiLCAidW5kZWZp
bmVkIik7Ci0gICAgc2hvdWxkQmUoImp3a1B1YmxpY0tleS5rdHkiLCAiJ1JTQSciKTsKLSAgICBz
aG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhCYXNlNjRVUkwucGFyc2UoandrUHVibGljS2V5LmUp
KSIsICInMDEwMDAxJyIpOwotCi0gICAgZGVidWcoIlxuSW1wb3J0aW5nIGl0IGJhY2suLi4iKTsK
LSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGp3a1B1Ymxp
Y0tleUFycmF5LCBudWxsLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiLCAid3Jh
cEtleSIsICJ1bndyYXBLZXkiXSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGV4
cG9ydGVkUHVibGljS2V5ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJleHBvcnRlZFB1YmxpY0tl
eS50eXBlIiwgIidwdWJsaWMnIik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkUHVibGljS2V5LmFs
Z29yaXRobS5uYW1lIiwgIidSU0EtT0FFUCciKTsKLSAgICBzaG91bGRCZSgiZXhwb3J0ZWRQdWJs
aWNLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGgiLCAiMjA0OCIpOwotICAgIHNob3VsZEJlKCJi
eXRlc1RvSGV4U3RyaW5nKGV4cG9ydGVkUHVibGljS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVu
dCkiLCAiJzAxMDAwMSciKTsKLSAgICBzaG91bGRCZSgiZXhwb3J0ZWRQdWJsaWNLZXkuYWxnb3Jp
dGhtLmhhc2gubmFtZSIsICInU0hBLTEnIik7Ci0gICAgc2hvdWxkQmUoImV4cG9ydGVkUHVibGlj
S2V5LmV4dHJhY3RhYmxlIiwgInRydWUiKTsKLSAgICBzaG91bGRCZSgiZXhwb3J0ZWRQdWJsaWNL
ZXkudXNhZ2VzIiwgIlsnZGVjcnlwdCcsJ2VuY3J5cHQnLCd1bndyYXBLZXknLCd3cmFwS2V5J10i
KTsKLQotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9o
dG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRs
ZS9yc2Etb2FlcC1rZXktbWFuaXB1bGF0aW9uLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46
bWltZS10eXBlCiMjIC0xICswLDAgIyMKLXRleHQvaHRtbApcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IHByb3BlcnR5CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1vYWVw
LXBsYWludGV4dC1sZW5ndGgtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAtcGxhaW50ZXh0LWxlbmd0aC1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDIyMDkzNSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUv
cnNhLW9hZXAtcGxhaW50ZXh0LWxlbmd0aC1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAt
MSwxNSArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDA6IFdlYktpdFN1YnRsZUNyeXB0
byBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIFN1YnRsZUNyeXB0byBpbnN0ZWFkLgotVGVzdCB3
aGF0IGhhcHBlbnMgd2hlbiB0cnlpbmcgdG8gZW5jcnlwdCBhIHRvbyBsYXJnZSBwbGFpbiB0ZXh0
IHdpdGggUlNBLU9BRVAuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1JbXBvcnRp
bmcgUlNBIGtleXMuLi4KLUVuY3J5cHRpbmcgYSAyMTQgYnl0ZSBidWZmZXIgd2l0aCBSU0EtT0FF
UCBTSEEtMSwgMjA0OCBiaXQga2V5Li4uCi1QQVNTIFN1Y2NlZWRlZAotRW5jcnlwdGluZyBhIDIx
NSBieXRlIGJ1ZmZlci4uLgotUEFTUyBSZWplY3RlZAotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRl
c3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLW9hZXAtcGxhaW50ZXh0LWxlbmd0aC1leHBlY3Rl
ZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0xICswLDAgIyMKLW5h
dGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkRlbGV0ZWQ6IHN2bjptaW1lLXR5
cGUKIyMgLTEgKzAsMCAjIwotdGV4dC9wbGFpbgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3Bl
cnR5CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1vYWVwLXBsYWlu
dGV4dC1sZW5ndGguaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL3JzYS1vYWVwLXBsYWludGV4dC1sZW5ndGguaHRtbAkocmV2aXNpb24gMjIwOTM1KQor
KysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Etb2FlcC1wbGFpbnRleHQtbGVu
Z3RoLmh0bWwJKG5vbmV4aXN0ZW50KQpAQCAtMSw2MyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvY29tbW9uLmpzIj48L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IHdoYXQgaGFw
cGVucyB3aGVuIHRyeWluZyB0byBlbmNyeXB0IGEgdG9vIGxhcmdlIHBsYWluIHRleHQgd2l0aCBS
U0EtT0FFUC4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBwdWJsaWNLZXlKU09O
ID0gewotICAgIGt0eTogIlJTQSIsCi0gICAgYWxnOiAiUlNBLU9BRVAiLAotICAgIG46ICJyY0NV
Q3Y3T2MxSFZhbTFESWhDenFrblRoV2F3T3A4UUxrOFppeTJwMTBCeWpRRkNham9GaXl1QVdsLVIx
V1haYWY0eGl0TFJyYWNUOWFncHpJemMtTWJMU0hJR2dXUUdPMjFsR2lJbXk1ZnRaLUQ4YkhBcVJ6
MnkxNXB6RDRjNENFb3U3WFNTTERvUm5SMFFHNU1zRGhENnMyZ1Y5bXdIa3J0a0N4dE1XZEJpLTc3
YXM4d0dtbE5SbGRjT1NnWkRMSzhVbkNTZ0ExT2d1Wjk4OWJGeWM4dE9PRUliMHhVU2ZQU3ozTFBT
Q255WXo2OGFEam1LVmVOSC1pZzg1N09TY3lXYkd5RXkzQml3NjRxdW4zanVVbE5Xc0ozem5na09k
dGVZV3l0eDVRcjRYS05zNlItTXl5cTcyS1VwMDJtSkRaaWl5aWdseE1MX2kzLV9DZWVjQ3ciLAot
ICAgIGU6ICJBUUFCIgotfTsKLQotdmFyIHByaXZhdGVLZXlKU09OID0gewotICAgIGt0eTogIlJT
QSIsCi0gICAgYWxnOiAiUlNBLU9BRVAiLAotICAgIG46ICJyY0NVQ3Y3T2MxSFZhbTFESWhDenFr
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
V2VSZGQ3TnNkeFRrIgotfTsKLXZhciBlbmNyeXB0QWxnb3JpdGhtID0ge25hbWU6ICJSU0EtT0FF
UCIsIGhhc2g6ICJzaGEtMSJ9OwotdmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKLXZhciBub25FeHRy
YWN0YWJsZSA9IGZhbHNlOwotCi1kZWJ1ZygiSW1wb3J0aW5nIFJTQSBrZXlzLi4uIik7Ci1jcnlw
dG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoSlNPTi5z
dHJpbmdpZnkocHVibGljS2V5SlNPTikpLCBudWxsLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0Iiwg
ImRlY3J5cHQiXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBwdWJsaWNLZXkgPSByZXN1
bHQ7Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2Np
aVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShwcml2YXRlS2V5SlNPTikpLCBudWxsLCBleHRy
YWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiXSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3Vs
dCkgewotICAgIHByaXZhdGVLZXkgPSByZXN1bHQ7Ci0KLSAgICBkZWJ1ZygiRW5jcnlwdGluZyBh
IDIxNCBieXRlIGJ1ZmZlciB3aXRoIFJTQS1PQUVQIFNIQS0xLCAyMDQ4IGJpdCBrZXkuLi4iKTsK
LSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS5lbmNyeXB0KHtuYW1lOiAiUlNBLU9BRVAi
LCBoYXNoOiAiU0hBLTEifSwgcHVibGljS2V5LCBuZXcgVWludDhBcnJheSgyMTQpKTsKLX0pLnRo
ZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgdGVzdFBhc3NlZCgiU3VjY2VlZGVkIik7Ci0gICAg
ZGVidWcoIkVuY3J5cHRpbmcgYSAyMTUgYnl0ZSBidWZmZXIuLi4iKTsKLSAgICByZXR1cm4gY3J5
cHRvLndlYmtpdFN1YnRsZS5lbmNyeXB0KHtuYW1lOiAiUlNBLU9BRVAiLCBoYXNoOiAiU0hBLTEi
fSwgcHVibGljS2V5LCBuZXcgVWludDhBcnJheSgyMTUpKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVz
dWx0KSB7Ci0gICAgdGVzdEZhaWxlZCgiU3VjY2VlZGVkIik7Ci0gICAgZmluaXNoSlNUZXN0KCk7
Ci19LCBmdW5jdGlvbihyZXN1bHQpIHsKLSAgICB0ZXN0UGFzc2VkKCJSZWplY3RlZCIpOwotICAg
IGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgoKUHJv
cGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Etb2Fl
cC1wbGFpbnRleHQtbGVuZ3RoLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46bWltZS10eXBl
CiMjIC0xICswLDAgIyMKLXRleHQvaHRtbApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5
CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1vYWVwLXdyYXAtdW53
cmFwLWFlcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dl
YmtpdFN1YnRsZS9yc2Etb2FlcC13cmFwLXVud3JhcC1hZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAyMjA5MzUpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1vYWVwLXdy
YXAtdW53cmFwLWFlcy1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSwzNSArMCwwIEBA
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDA6IFdlYktpdFN1YnRsZUNyeXB0byBpcyBkZXByZWNh
dGVkLiBQbGVhc2UgdXNlIFN1YnRsZUNyeXB0byBpbnN0ZWFkLgotVGVzdCB3cmFwcGluZyBhbmQg
dW53cmFwcGluZyBBRVMga2V5cyB3aXRoIFJTQS1PQUVQLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCi0KLQotSW1wb3J0aW5nIFJTQSBrZXlzLi4uCi1JbXBvcnRpbmcgYW4gQUVTIGtleS4u
LgotV3JhcHBpbmcgaXQuLi4KLVBBU1Mgd3JhcHBlZEtleS50b1N0cmluZygpIGlzICdbb2JqZWN0
IEFycmF5QnVmZmVyXScKLVVud3JhcHBpbmcgaXQuLi4KLVBBU1MgdW53cmFwcGVkS2V5LnRvU3Ry
aW5nKCkgaXMgJ1tvYmplY3QgQ3J5cHRvS2V5XScKLVBBU1MgdW53cmFwcGVkS2V5LnR5cGUgaXMg
J3NlY3JldCcKLVBBU1MgdW53cmFwcGVkS2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKLVBBU1MgdW53
cmFwcGVkS2V5LmFsZ29yaXRobS5uYW1lIGlzICdBRVMtQ0JDJwotUEFTUyB1bndyYXBwZWRLZXku
YWxnb3JpdGhtLmxlbmd0aCBpcyAyNTYKLVBBU1MgdW53cmFwcGVkS2V5LnVzYWdlcyBpcyBbJ2Rl
Y3J5cHQnLCAnZW5jcnlwdCddCi1FeHBvcnRpbmcgaXQuLi4KLVBBU1MgYnl0ZXNUb0hleFN0cmlu
Zyh1bndyYXBwZWRLZXlEYXRhKSBpcyBieXRlc1RvSGV4U3RyaW5nKGFlc0tleURhdGEpCi0KLVdy
YXBwaW5nIHRoZSBzYW1lIGtleSBhcyBKV0suLi4KLVBBU1Mgd3JhcHBlZEtleS50b1N0cmluZygp
IGlzICdbb2JqZWN0IEFycmF5QnVmZmVyXScKLVVud3JhcHBpbmcgaXQuLi4KLVBBU1MgdW53cmFw
cGVkS2V5LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgQ3J5cHRvS2V5XScKLVBBU1MgdW53cmFwcGVk
S2V5LnR5cGUgaXMgJ3NlY3JldCcKLVBBU1MgdW53cmFwcGVkS2V5LmV4dHJhY3RhYmxlIGlzIHRy
dWUKLVBBU1MgdW53cmFwcGVkS2V5LmFsZ29yaXRobS5uYW1lIGlzICdBRVMtQ0JDJwotUEFTUyB1
bndyYXBwZWRLZXkuYWxnb3JpdGhtLmxlbmd0aCBpcyAyNTYKLVBBU1MgdW53cmFwcGVkS2V5LnVz
YWdlcyBpcyBbJ2RlY3J5cHQnLCAnZW5jcnlwdCddCi1FeHBvcnRpbmcgaXQuLi4KLVBBU1MgYnl0
ZXNUb0hleFN0cmluZyh1bndyYXBwZWRLZXlEYXRhKSBpcyBieXRlc1RvSGV4U3RyaW5nKGFlc0tl
eURhdGEpCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUK
LQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9y
c2Etb2FlcC13cmFwLXVud3JhcC1hZXMtZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDog
c3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBwcm9wZXJ0eQpEZWxldGVkOiBzdm46bWltZS10eXBlCiMjIC0xICswLDAgIyMKLXRleHQvcGxh
aW4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogTGF5b3V0VGVzdHMvY3J5
cHRvL3dlYmtpdFN1YnRsZS9yc2Etb2FlcC13cmFwLXVud3JhcC1hZXMuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1vYWVwLXdyYXAtdW53cmFw
LWFlcy5odG1sCShyZXZpc2lvbiAyMjA5MzUpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL3JzYS1vYWVwLXdyYXAtdW53cmFwLWFlcy5odG1sCShub25leGlzdGVudCkKQEAgLTEs
MTAzICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0
PgotZGVzY3JpcHRpb24oIlRlc3Qgd3JhcHBpbmcgYW5kIHVud3JhcHBpbmcgQUVTIGtleXMgd2l0
aCBSU0EtT0FFUC4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBwdWJsaWNLZXlK
U09OID0gewotICAgIGt0eTogIlJTQSIsCi0gICAgYWxnOiAiUlNBLU9BRVAiLAotICAgIG46ICJy
Y0NVQ3Y3T2MxSFZhbTFESWhDenFrblRoV2F3T3A4UUxrOFppeTJwMTBCeWpRRkNham9GaXl1QVds
LVIxV1haYWY0eGl0TFJyYWNUOWFncHpJemMtTWJMU0hJR2dXUUdPMjFsR2lJbXk1ZnRaLUQ4YkhB
cVJ6MnkxNXB6RDRjNENFb3U3WFNTTERvUm5SMFFHNU1zRGhENnMyZ1Y5bXdIa3J0a0N4dE1XZEJp
LTc3YXM4d0dtbE5SbGRjT1NnWkRMSzhVbkNTZ0ExT2d1Wjk4OWJGeWM4dE9PRUliMHhVU2ZQU3oz
TFBTQ255WXo2OGFEam1LVmVOSC1pZzg1N09TY3lXYkd5RXkzQml3NjRxdW4zanVVbE5Xc0ozem5n
a09kdGVZV3l0eDVRcjRYS05zNlItTXl5cTcyS1VwMDJtSkRaaWl5aWdseE1MX2kzLV9DZWVjQ3ci
LAotICAgIGU6ICJBUUFCIgotfTsKLQotdmFyIHByaXZhdGVLZXlKU09OID0gewotICAgIGt0eTog
IlJTQSIsCi0gICAgYWxnOiAiUlNBLU9BRVAiLAotICAgIG46ICJyY0NVQ3Y3T2MxSFZhbTFESWhD
enFrblRoV2F3T3A4UUxrOFppeTJwMTBCeWpRRkNham9GaXl1QVdsLVIxV1haYWY0eGl0TFJyYWNU
OWFncHpJemMtTWJMU0hJR2dXUUdPMjFsR2lJbXk1ZnRaLUQ4YkhBcVJ6MnkxNXB6RDRjNENFb3U3
WFNTTERvUm5SMFFHNU1zRGhENnMyZ1Y5bXdIa3J0a0N4dE1XZEJpLTc3YXM4d0dtbE5SbGRjT1Nn
WkRMSzhVbkNTZ0ExT2d1Wjk4OWJGeWM4dE9PRUliMHhVU2ZQU3ozTFBTQ255WXo2OGFEam1LVmVO
SC1pZzg1N09TY3lXYkd5RXkzQml3NjRxdW4zanVVbE5Xc0ozem5na09kdGVZV3l0eDVRcjRYS05z
NlItTXl5cTcyS1VwMDJtSkRaaWl5aWdseE1MX2kzLV9DZWVjQ3ciLAotICAgIGU6ICJBUUFCIiwK
LSAgICBkOiAiZU5MUzM3YUN6N1JYU05QRF9EdExCSjZqNVQ4Y1N4ZHpSQkNqUGFJNldjR3FKcDE2
bHEzVVR3dW9ETEFxbEE5b0dZbTIzOGRzSVdwdXVjUF9sUXRiV2UtN1NweG9JNl92bVlHZjdZVlVI
djEtREY5cWlPbVNyTW1keE1uVk96WVhZOFJhVDZ0aFBqbl9KNWNmTFYyeElfTHdzck10bXBkU3lO
bGdYMHpUVWh3dHVhaGdBS01FQ2hZakgyRW5qSGRIdzZzWTItd0FwZGNRSTdVTEUwb281UnpiUVpw
bXVoY045aGlCYzBMM2hoRjBxbzUwbWJsMDJfNjVfR1E3RHBWa1hCeE5nUkJMemxQYWJtenpHMm9B
aGZlZkxnWW1TQzFvcGFDa1hFNnZSV1FOV05MNDVSWk5aRllNM3VvSmdoT01xR2VvY00wQnBqZENo
SHJQT2xGdlNRIiwKLSAgICBwOiAiNG1pVHVBaktNZUg1dUo1S0IzOTdRVXdoYmtZRWdTYmNBMm1p
Zm1Ta3ZFMjAxOGdiNTVxa0JISzFlVnJ5ZjFfbTQzTE5sYzZPX2FrNmdmemRaSVp2UzVOQ0dqUGww
cTA5cGxVcHU4cUZPU3NwQndBNjdxR0g3NmxGbFpMbl9kNHlnbFM3d2ZMcnU0XzVZczhxTExzLURx
Vkx2aXdwb3NPbnl5V3F3TTVBWHAwIiwKLSAgICBxOiAieEhZcnpraXZ0bW56X3NHY2huV0djMHEt
cERPa0tpY3B0UnB2MnBNRklJWHhuRlg1YU1lRVhJWmpWdWpYdHdVeTFVbEZJTjJHWkpTdnk1S0o3
OW11X1h5Tm5GSE16ZWRILUEzZWUzdThoMVVVclpGLXZVdTFfZTRVX3g2N05OMWRlZHpVU0t5bk43
cEZsM09rdVNoTUJXR1YtY3d6T1BkY1ZBZlZ1Wmx4VU1jIiwKLSAgICBkcDogImZCekR6WURVQm1C
UUdvcDdIbjBkdmZfVDI3VjZScXBjdFdvMDc0Q1FaY0ZiUDJhdEZWdEtTajN2aVdUM3hpZDJWSHpj
Z2lESGRmcE0zbkVWbEVPMXd3SW9uR0NTdmRqR0VPWmlpRlZPanJaQU9WeEE4Z3VPanl5RnZxYlhr
ZTA2VndQSUlWdmZLZVNVMnp1aGJQX18xdHQ2Rl9meG93NEtiMnhvbkdUMEdHayIsCi0gICAgZHE6
ICJqbUUyRGlJUGRod0RnTFhBUXBJYUJxUTgxYk8zWGZWVF9MUlVMQXd3d3dsUHVRVjE0OEgwNHps
aDlUSjZZMkdaSFlva1YxVTBlT0JwSnhma2I3ZExZdHBKcHVpQmpSZjR5SVVFb0dsa2tJX1FsSm5G
U0ZyLVlqR1JkZk5IcVdCa3hsU01aTDc3MFI5bUlBVG5kR2tIN3o1eC1yOUt3QlpGQzRGQ0cyaGdf
ekUiLAotICAgIHFpOiAiWUNYX3BMd2JNQkExVGhWSDBXY3dtbnl0cU5jck1DRXdUbTdCeUEyZVU2
bldiUXJVTHZmN205X2t6ZkxVY2pzbnBBVmxCUUc1Sk1YTXkwU3E0cHR3Ynl3c2E1LUc4S0FPT09S
MkwzdjRoQy1FeXM5ZnRnRk1fM2kwbzQwZWVRSDRiM2hhUGJudHJJZU1nOEl6bE91VllLZjktMlF1
S0RvV2VSZGQ3TnNkeFRrIgotfTsKLXZhciB3cmFwQWxnb3JpdGhtID0ge25hbWU6ICJSU0EtT0FF
UCIsIGhhc2g6ICJzaGEtMSJ9OwotdmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKLXZhciBub25FeHRy
YWN0YWJsZSA9IGZhbHNlOwotCi1kZWJ1ZygiSW1wb3J0aW5nIFJTQSBrZXlzLi4uIik7Ci1jcnlw
dG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoSlNPTi5z
dHJpbmdpZnkocHVibGljS2V5SlNPTikpLCBudWxsLCBleHRyYWN0YWJsZSwgWyJ3cmFwS2V5Iiwg
InVud3JhcEtleSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHB1YmxpY0tleSA9IHJl
c3VsdDsKLSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFz
Y2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5KHByaXZhdGVLZXlKU09OKSksIG51bGwsIGV4
dHJhY3RhYmxlLCBbIndyYXBLZXkiLCAidW53cmFwS2V5Il0pOwotfSkudGhlbihmdW5jdGlvbihy
ZXN1bHQpIHsKLSAgICBwcml2YXRlS2V5ID0gcmVzdWx0OwotCi0gICAgZGVidWcoIkltcG9ydGlu
ZyBhbiBBRVMga2V5Li4uIik7Ci0gICAgYWVzS2V5RGF0YSA9IGhleFN0cmluZ1RvVWludDhBcnJh
eSgiNjAzZGViMTAxNWNhNzFiZTJiNzNhZWYwODU3ZDc3ODExZjM1MmMwNzNiNjEwOGQ3MmQ5ODEw
YTMwOTE0ZGZmNCIpOwotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgi
cmF3IiwgYWVzS2V5RGF0YSwgImFlcy1jYmMiLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRl
Y3J5cHQiLCAid3JhcEtleSIsICJ1bndyYXBLZXkiXSkKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0
KSB7Ci0gICAgYWVzS2V5ID0gcmVzdWx0OwotICAgIGRlYnVnKCJXcmFwcGluZyBpdC4uLiIpOwot
Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUud3JhcEtleSgicmF3IiwgYWVzS2V5LCBw
dWJsaWNLZXksIHdyYXBBbGdvcml0aG0pOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAg
ICB3cmFwcGVkS2V5ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJ3cmFwcGVkS2V5LnRvU3RyaW5n
KCkiLCAiJ1tvYmplY3QgQXJyYXlCdWZmZXJdJyIpOwotCi0gICAgZGVidWcoIlVud3JhcHBpbmcg
aXQuLi4iKTsKLSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS51bndyYXBLZXkoInJhdyIs
IHdyYXBwZWRLZXksIHByaXZhdGVLZXksIHdyYXBBbGdvcml0aG0sICJhZXMtY2JjIiwgZXh0cmFj
dGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0Il0pOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQp
IHsKLSAgICB1bndyYXBwZWRLZXkgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoInVud3JhcHBlZEtl
eS50b1N0cmluZygpIiwgIidbb2JqZWN0IENyeXB0b0tleV0nIik7Ci0gICAgc2hvdWxkQmUoInVu
d3JhcHBlZEtleS50eXBlIiwgIidzZWNyZXQnIik7Ci0gICAgc2hvdWxkQmUoInVud3JhcHBlZEtl
eS5leHRyYWN0YWJsZSIsICJ0cnVlIik7Ci0gICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS5hbGdv
cml0aG0ubmFtZSIsICInQUVTLUNCQyciKTsKLSAgICBzaG91bGRCZSgidW53cmFwcGVkS2V5LmFs
Z29yaXRobS5sZW5ndGgiLCAiMjU2Iik7Ci0gICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS51c2Fn
ZXMiLCAiWydkZWNyeXB0JywgJ2VuY3J5cHQnXSIpOwotCi0gICAgZGVidWcoIkV4cG9ydGluZyBp
dC4uLiIpOwotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLmV4cG9ydEtleSgicmF3Iiwg
dW53cmFwcGVkS2V5KTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgdW53cmFwcGVk
S2V5RGF0YSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyh1bndyYXBw
ZWRLZXlEYXRhKSIsICJieXRlc1RvSGV4U3RyaW5nKGFlc0tleURhdGEpIik7Ci0KLSAgICBkZWJ1
ZygiXG5XcmFwcGluZyB0aGUgc2FtZSBrZXkgYXMgSldLLi4uIik7Ci0gICAgcmV0dXJuIGNyeXB0
by53ZWJraXRTdWJ0bGUud3JhcEtleSgiandrIiwgYWVzS2V5LCBwdWJsaWNLZXksIHdyYXBBbGdv
cml0aG0pOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICB3cmFwcGVkS2V5ID0gcmVz
dWx0OwotICAgIHNob3VsZEJlKCJ3cmFwcGVkS2V5LnRvU3RyaW5nKCkiLCAiJ1tvYmplY3QgQXJy
YXlCdWZmZXJdJyIpOwotCi0gICAgZGVidWcoIlVud3JhcHBpbmcgaXQuLi4iKTsKLSAgICByZXR1
cm4gY3J5cHRvLndlYmtpdFN1YnRsZS51bndyYXBLZXkoImp3ayIsIHdyYXBwZWRLZXksIHByaXZh
dGVLZXksIHdyYXBBbGdvcml0aG0sICJhZXMtY2JjIiwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIs
ICJkZWNyeXB0Il0pOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICB1bndyYXBwZWRL
ZXkgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS50b1N0cmluZygpIiwgIidb
b2JqZWN0IENyeXB0b0tleV0nIik7Ci0gICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS50eXBlIiwg
IidzZWNyZXQnIik7Ci0gICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS5leHRyYWN0YWJsZSIsICJ0
cnVlIik7Ci0gICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS5hbGdvcml0aG0ubmFtZSIsICInQUVT
LUNCQyciKTsKLSAgICBzaG91bGRCZSgidW53cmFwcGVkS2V5LmFsZ29yaXRobS5sZW5ndGgiLCAi
MjU2Iik7Ci0gICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS51c2FnZXMiLCAiWydkZWNyeXB0Jywg
J2VuY3J5cHQnXSIpOwotCi0gICAgZGVidWcoIkV4cG9ydGluZyBpdC4uLiIpOwotICAgIHJldHVy
biBjcnlwdG8ud2Via2l0U3VidGxlLmV4cG9ydEtleSgicmF3IiwgdW53cmFwcGVkS2V5KTsKLX0p
LnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgdW53cmFwcGVkS2V5RGF0YSA9IHJlc3VsdDsK
LSAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyh1bndyYXBwZWRLZXlEYXRhKSIsICJieXRl
c1RvSGV4U3RyaW5nKGFlc0tleURhdGEpIik7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwv
c2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRU
ZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1vYWVwLXdyYXAtdW53cmFwLWFlcy5odG1sCl9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18KRGVsZXRlZDogc3ZuOm1pbWUtdHlwZQojIyAtMSArMCwwICMjCi10ZXh0L2h0bWwK
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRv
L3dlYmtpdFN1YnRsZS9yc2EtcG9zdE1lc3NhZ2UtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLXBvc3RNZXNzYWdlLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMjIwOTM1KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRs
ZS9yc2EtcG9zdE1lc3NhZ2UtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKQEAgLTEsMzMgKzAs
MCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDYwOiBXZWJLaXRTdWJ0bGVDcnlwdG8gaXMgZGVw
cmVjYXRlZC4gUGxlYXNlIHVzZSBTdWJ0bGVDcnlwdG8gaW5zdGVhZC4KLVRlc3Qgc2VuZGluZyBj
cnlwdG8ga2V5cyB2aWEgcG9zdE1lc3NhZ2UuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
LQotCi1LZXkgcmVjZWl2ZWQgaW4gYSBtZXNzYWdlOgotUEFTUyBrZXkudHlwZSBpcyAncHJpdmF0
ZScKLVBBU1Mga2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKLVBBU1Mga2V5LmFsZ29yaXRobS5uYW1l
IGlzICdSU0FTU0EtUEtDUzEtdjFfNScKLVBBU1Mga2V5LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3Ro
IGlzIDIwNDgKLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhrZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9u
ZW50KSBpcyAnMDEwMDAxJwotUEFTUyBrZXkudXNhZ2VzIGlzIFsic2lnbiIsICJ2ZXJpZnkiXQot
Ci1FeHBvcnRlZCBiYWNrIHRvIEpXSzoKLVBBU1MgZXhwb3J0ZWRKV0sua3R5IGlzICdSU0EnCi1Q
QVNTIGV4cG9ydGVkSldLLmFsZyBpcyAnUlMyNTYnCi1QQVNTIGV4cG9ydGVkSldLLmV4dCBpcyB0
cnVlCi1QQVNTIGV4cG9ydGVkSldLLmtleV9vcHMgaXMgWydzaWduJywndmVyaWZ5J10KLVBBU1Mg
ZXhwb3J0ZWRKV0sudXNlIGlzIHVuZGVmaW5lZAotUEFTUyBleHBvcnRlZEpXSy5uIGlzIHByaXZh
dGVLZXlKU09OLm4KLVBBU1MgZXhwb3J0ZWRKV0suZSBpcyBwcml2YXRlS2V5SlNPTi5lCi1QQVNT
IGV4cG9ydGVkSldLLmQgaXMgcHJpdmF0ZUtleUpTT04uZAotUEFTUyBleHBvcnRlZEpXSy5wIGlz
IHByaXZhdGVLZXlKU09OLnAKLVBBU1MgZXhwb3J0ZWRKV0sucSBpcyBwcml2YXRlS2V5SlNPTi5x
Ci1QQVNTIGV4cG9ydGVkSldLLmRwIGlzIHByaXZhdGVLZXlKU09OLmRwCi1QQVNTIGV4cG9ydGVk
SldLLmRxIGlzIHByaXZhdGVLZXlKU09OLmRxCi1QQVNTIGV4cG9ydGVkSldLLnFpIGlzIHByaXZh
dGVLZXlKU09OLnFpCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBD
T01QTEVURQotCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL3JzYS1wb3N0TWVzc2FnZS1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBz
dm46ZW9sLXN0eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IHByb3BlcnR5CkRlbGV0ZWQ6IHN2bjptaW1lLXR5cGUKIyMgLTEgKzAsMCAjIwotdGV4dC9wbGFp
bgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlw
dG8vd2Via2l0U3VidGxlL3JzYS1wb3N0TWVzc2FnZS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLXBvc3RNZXNzYWdlLmh0bWwJKHJldmlzaW9u
IDIyMDkzNSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhLXBvc3RNZXNz
YWdlLmh0bWwJKG5vbmV4aXN0ZW50KQpAQCAtMSw2NiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNjcmlwdD4K
LQotZGVzY3JpcHRpb24oIlRlc3Qgc2VuZGluZyBjcnlwdG8ga2V5cyB2aWEgcG9zdE1lc3NhZ2Uu
Iik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi12YXIgcHJpdmF0ZUtleUpTT04gPSB7Ci0g
ICAga3R5OiAiUlNBIiwKLSAgICBhbGc6ICJSUzI1NiIsCi0gICAgbjogInJjQ1VDdjdPYzFIVmFt
MURJaEN6cWtuVGhXYXdPcDhRTGs4Wml5MnAxMEJ5alFGQ2Fqb0ZpeXVBV2wtUjFXWFphZjR4aXRM
UnJhY1Q5YWdwekl6Yy1NYkxTSElHZ1dRR08yMWxHaUlteTVmdFotRDhiSEFxUnoyeTE1cHpENGM0
Q0VvdTdYU1NMRG9SblIwUUc1TXNEaEQ2czJnVjltd0hrcnRrQ3h0TVdkQmktNzdhczh3R21sTlJs
ZGNPU2daRExLOFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0T09FSWIweFVTZlBTejNMUFNDbnlZejY4YURq
bUtWZU5ILWlnODU3T1NjeVdiR3lFeTNCaXc2NHF1bjNqdVVsTldzSjN6bmdrT2R0ZVlXeXR4NVFy
NFhLTnM2Ui1NeXlxNzJLVXAwMm1KRFppaXlpZ2x4TUxfaTMtX0NlZWNDdyIsCi0gICAgZTogIkFR
QUIiLAotICAgIGQ6ICJlTkxTMzdhQ3o3UlhTTlBEX0R0TEJKNmo1VDhjU3hkelJCQ2pQYUk2V2NH
cUpwMTZscTNVVHd1b0RMQXFsQTlvR1ltMjM4ZHNJV3B1dWNQX2xRdGJXZS03U3B4b0k2X3ZtWUdm
N1lWVUh2MS1ERjlxaU9tU3JNbWR4TW5WT3pZWFk4UmFUNnRoUGpuX0o1Y2ZMVjJ4SV9Md3NyTXRt
cGRTeU5sZ1gwelRVaHd0dWFoZ0FLTUVDaFlqSDJFbmpIZEh3NnNZMi13QXBkY1FJN1VMRTBvbzVS
emJRWnBtdWhjTjloaUJjMEwzaGhGMHFvNTBtYmwwMl82NV9HUTdEcFZrWEJ4TmdSQkx6bFBhYm16
ekcyb0FoZmVmTGdZbVNDMW9wYUNrWEU2dlJXUU5XTkw0NVJaTlpGWU0zdW9KZ2hPTXFHZW9jTTBC
cGpkQ2hIclBPbEZ2U1EiLAotICAgIHA6ICI0bWlUdUFqS01lSDV1SjVLQjM5N1FVd2hia1lFZ1Ni
Y0EybWlmbVNrdkUyMDE4Z2I1NXFrQkhLMWVWcnlmMV9tNDNMTmxjNk9fYWs2Z2Z6ZFpJWnZTNU5D
R2pQbDBxMDlwbFVwdThxRk9Tc3BCd0E2N3FHSDc2bEZsWkxuX2Q0eWdsUzd3ZkxydTRfNVlzOHFM
THMtRHFWTHZpd3Bvc09ueXlXcXdNNUFYcDAiLAotICAgIHE6ICJ4SFlyemtpdnRtbnpfc0djaG5X
R2MwcS1wRE9rS2ljcHRScHYycE1GSUlYeG5GWDVhTWVFWElaalZ1alh0d1V5MVVsRklOMkdaSlN2
eTVLSjc5bXVfWHlObkZITXplZEgtQTNlZTN1OGgxVVVyWkYtdlV1MV9lNFVfeDY3Tk4xZGVkelVT
S3luTjdwRmwzT2t1U2hNQldHVi1jd3pPUGRjVkFmVnVabHhVTWMiLAotICAgIGRwOiAiZkJ6RHpZ
RFVCbUJRR29wN0huMGR2Zl9UMjdWNlJxcGN0V28wNzRDUVpjRmJQMmF0RlZ0S1NqM3ZpV1QzeGlk
MlZIemNnaURIZGZwTTNuRVZsRU8xd3dJb25HQ1N2ZGpHRU9aaWlGVk9qclpBT1Z4QThndU9qeXlG
dnFiWGtlMDZWd1BJSVZ2ZktlU1UyenVoYlBfXzF0dDZGX2Z4b3c0S2IyeG9uR1QwR0drIiwKLSAg
ICBkcTogImptRTJEaUlQZGh3RGdMWEFRcElhQnFRODFiTzNYZlZUX0xSVUxBd3d3d2xQdVFWMTQ4
SDA0emxoOVRKNlkyR1pIWW9rVjFVMGVPQnBKeGZrYjdkTFl0cEpwdWlCalJmNHlJVUVvR2xra0lf
UWxKbkZTRnItWWpHUmRmTkhxV0JreGxTTVpMNzcwUjltSUFUbmRHa0g3ejV4LXI5S3dCWkZDNEZD
RzJoZ196RSIsCi0gICAgcWk6ICJZQ1hfcEx3Yk1CQTFUaFZIMFdjd21ueXRxTmNyTUNFd1RtN0J5
QTJlVTZuV2JRclVMdmY3bTlfa3pmTFVjanNucEFWbEJRRzVKTVhNeTBTcTRwdHdieXdzYTUtRzhL
QU9PT1IyTDN2NGhDLUV5czlmdGdGTV8zaTBvNDBlZVFINGIzaGFQYm50ckllTWc4SXpsT3VWWUtm
OS0yUXVLRG9XZVJkZDdOc2R4VGsiCi19OwotCi13aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVz
c2FnZSIsIGZ1bmN0aW9uKGV2dCkgewotICAgIGRlYnVnKCJLZXkgcmVjZWl2ZWQgaW4gYSBtZXNz
YWdlOiIpOwotICAgIGtleSA9IGV2dC5kYXRhOwotICAgIHNob3VsZEJlKCJrZXkudHlwZSIsICIn
cHJpdmF0ZSciKTsKLSAgICBzaG91bGRCZSgia2V5LmV4dHJhY3RhYmxlIiwgInRydWUiKTsKLSAg
ICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5uYW1lIiwgIidSU0FTU0EtUEtDUzEtdjFfNSciKTsK
LSAgICBzaG91bGRCZSgia2V5LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3RoIiwgIjIwNDgiKTsKLSAg
ICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhrZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50
KSIsICInMDEwMDAxJyIpOwotICAgIHNob3VsZEJlKCJrZXkudXNhZ2VzIiwgJ1sic2lnbiIsICJ2
ZXJpZnkiXScpOwotCi0gICAgY3J5cHRvLndlYmtpdFN1YnRsZS5leHBvcnRLZXkoImp3ayIsIGtl
eSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICAgICAgZXhwb3J0ZWRKV0sgPSBKU09OLnBh
cnNlKGJ5dGVzVG9BU0NJSVN0cmluZyhyZXN1bHQpKTsKLSAgICAgICAgZGVidWcoIlxuRXhwb3J0
ZWQgYmFjayB0byBKV0s6Iik7Ci0gICAgICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5rdHkiLCAi
J1JTQSciKTsKLSAgICAgICAgc2hvdWxkQmUoImV4cG9ydGVkSldLLmFsZyIsICInUlMyNTYnIik7
Ci0gICAgICAgIHNob3VsZEJlKCJleHBvcnRlZEpXSy5leHQiLCAidHJ1ZSIpOwotICAgICAgICBz
aG91bGRCZSgiZXhwb3J0ZWRKV0sua2V5X29wcyIsICJbJ3NpZ24nLCd2ZXJpZnknXSIpOwotICAg
ICAgICBzaG91bGRCZSgiZXhwb3J0ZWRKV0sudXNlIiwgInVuZGVmaW5lZCIpOwotICAgICAgICBz
aG91bGRCZSgiZXhwb3J0ZWRKV0subiIsICJwcml2YXRlS2V5SlNPTi5uIik7Ci0gICAgICAgIHNo
b3VsZEJlKCJleHBvcnRlZEpXSy5lIiwgInByaXZhdGVLZXlKU09OLmUiKTsKLSAgICAgICAgc2hv
dWxkQmUoImV4cG9ydGVkSldLLmQiLCAicHJpdmF0ZUtleUpTT04uZCIpOwotICAgICAgICBzaG91
bGRCZSgiZXhwb3J0ZWRKV0sucCIsICJwcml2YXRlS2V5SlNPTi5wIik7Ci0gICAgICAgIHNob3Vs
ZEJlKCJleHBvcnRlZEpXSy5xIiwgInByaXZhdGVLZXlKU09OLnEiKTsKLSAgICAgICAgc2hvdWxk
QmUoImV4cG9ydGVkSldLLmRwIiwgInByaXZhdGVLZXlKU09OLmRwIik7Ci0gICAgICAgIHNob3Vs
ZEJlKCJleHBvcnRlZEpXSy5kcSIsICJwcml2YXRlS2V5SlNPTi5kcSIpOwotICAgICAgICBzaG91
bGRCZSgiZXhwb3J0ZWRKV0sucWkiLCAicHJpdmF0ZUtleUpTT04ucWkiKTsKLSAgICAgICAgZGVi
dWcoIiIpOwotCi0gICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgIH0pOwotfSwgZmFsc2UpOwot
Ci1jcnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXko
SlNPTi5zdHJpbmdpZnkocHJpdmF0ZUtleUpTT04pKSwgbnVsbCwgdHJ1ZSwgWyJzaWduIiwgInZl
cmlmeSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHBvc3RNZXNzYWdlKHJlc3VsdCwg
IioiKTsKLX0pOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2Vz
IG9uOiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYS1wb3N0TWVzc2FnZS5odG1s
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KRGVsZXRlZDogc3ZuOm1pbWUtdHlwZQojIyAtMSArMCwwICMjCi10ZXh0L2h0
bWwKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogTGF5b3V0VGVzdHMvY3J5
cHRvL3dlYmtpdFN1YnRsZS9yc2Flcy1wa2NzMS12MV81LWRlY3J5cHQtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhZXMtcGtjczEt
djFfNS1kZWNyeXB0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjIwOTM1KQorKysgTGF5b3V0VGVz
dHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Flcy1wa2NzMS12MV81LWRlY3J5cHQtZXhwZWN0ZWQu
dHh0CShub25leGlzdGVudCkKQEAgLTEsMTMgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDMzOiBXZWJLaXRTdWJ0bGVDcnlwdG8gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBTdWJ0bGVD
cnlwdG8gaW5zdGVhZC4KLVRlc3QgZGVjcnlwdGluZyBhIGtub3duIG1lc3NhZ2Ugd2l0aCBSU0FF
Uy1QS0NTMS12MV81LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotSW1wb3J0aW5n
IGFuIFJTQSBrZXkuLi4KLURlY3J5cHRpbmcuLi4KLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhuZXcg
VWludDhBcnJheShtZXNzYWdlKSkgaXMgJzJhYWNlYzg2ZjQyM2RkOTI1ZWMxNTg4MjJhNzQ4Y2Jl
NmMzMWEwJwotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRF
Ci0KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUv
cnNhZXMtcGtjczEtdjFfNS1kZWNyeXB0LWV4cGVjdGVkLnR4dApfX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6
IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgcHJvcGVydHkKRGVsZXRlZDogc3ZuOm1pbWUtdHlwZQojIyAtMSArMCwwICMjCi10ZXh0L3Bs
YWluClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IExheW91dFRlc3RzL2Ny
eXB0by93ZWJraXRTdWJ0bGUvcnNhZXMtcGtjczEtdjFfNS1kZWNyeXB0Lmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Flcy1wa2NzMS12MV81LWRl
Y3J5cHQuaHRtbAkocmV2aXNpb24gMjIwOTM1KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtp
dFN1YnRsZS9yc2Flcy1wa2NzMS12MV81LWRlY3J5cHQuaHRtbAkobm9uZXhpc3RlbnQpCkBAIC0x
LDQ5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0
PgotZGVzY3JpcHRpb24oIlRlc3QgZGVjcnlwdGluZyBhIGtub3duIG1lc3NhZ2Ugd2l0aCBSU0FF
Uy1QS0NTMS12MV81LiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIHByaXZhdGVL
ZXlKU09OID0gewotICAgIGt0eTogIlJTQSIsCi0gICAgYWxnOiAiUlNBMV81IiwKLSAgICBuOiBC
YXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiZGNmYTEwZmZhNzQ2NjVh
ZWVmODcwOTc0ZWE5OWIyY2U1NDU0N2M2N2Y0MmFhYTZkZDAxYTJlZDMxZmQyYzI0MmFmNWQ5NjBi
MWY4OTZlZmJhMzU0M2Q2NTU0YjdiMTI2ODdhNWM2ODg1NjhmMzJlMDI2YzUzMmQyNTk5M2I5N2E3
YzI4NDJlYzJiOGUxMjM1ZWVlMjQxNGQyNTgwNmM2ZmJhZTQzODk1NGViYTlkMjc1NWRmZmVlYjFi
NDc3MDA5NTc4MTVhOGEyMzNmOTdiMWEyYzcxNGIzZTJiZTJlNDJkOGJlMzBiMTk2MTU4MmVhOTk0
ODkxMGUwYzc5N2M1MGZjNGJiNDU1ZjBmYzQ1ZTVlMzRlNjM5NmFjNWIyZDQ2MjM5MzY1YzdmM2Rh
YWYwOTA5NDAwZDYxY2Y5ZTBjYTgwODNlYWYzMzVhNmZjZWI2ODYzYzFjYzBjZjVhMTcxYWZmMzVk
OTdlY2I2MGVmMjUxYzdlYzJjOGE1ODgzNjFkYzQxMjY2YTRiN2VkMzhiMDI2Y2UwZDUzNzg2NDQ5
ZGJiMTFhMDZlYTMzY2NmMWVjYTU3NTIwMWVkMWFhNDczZWQxMTg3ZWMxZDhhNzQ0ZWEzNDViZWQ3
ZWEwMGVlNGU4MWJiYTQ2NDg2MDFkZDUzN2RjOTEwMTVkMzFmMGMyYzEiKSksCi0gICAgZTogQmFz
ZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjAxMDAwMSIpKSwKLSAgICBk
OiBCYXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiMjE5NTA4NTFjZGYy
NTMyMDMxOGIzMDVhZmEwZjM3MWYwN2FlNWE0NGIzMTRlYmQ3MjlmNWRjYjE1ZGE3ZmEzOTQ3YWNk
ZDkxNWRhZWQ1NzRiZDE2ZGY4OGJmODVmNjEwNjBiMzg3MTcyZmFlNmUwMTI2MmIzODY0YzJkM2My
MmY5NGUwNGE4MTU5NDIyYjRlZDI3OWM0OGE0YzlkNzY3ZDQ5NjYwNzFhNWJiZjVkMDQzZTE2ZmY0
NmVjMWJhMDcxNmYwMGJiYzk3YmZmNWQ1NjkzZTIxNGU5OWM5NzIxZjEyYjNlYzYyODJhZTJhNDg1
NzIxYjk2ZGRjZjc0MDNmYTAzN2QwYzU3YWI0NjNjNDQ4ZGU1Y2MxMjI2NWFkZDg4NmQzMTFlYThk
OGE1OTAzZmE1NmM1ZjFjOWNmMmViMTFjYjY1N2ExYTdkM2U0MTM1MmRjM2U2ODY4OThjNGNlNDMw
NWU4YjYzOGUxYjA4YTJhODZjYzllYjk4NjZmMzQ5OWFjNzdiNjEzNmI4MWNiMjc2ZDYxNGNmZWI3
YjZlZDNmM2JjNzc1ZTQ2YzAwMDY2ZWJlZWUyY2ZmNzE2NmI1NzUyMDU5ODk0N2ZmNjIxMDMyMGIy
ODhmYjRmMmMzZjhmZTk3YjI3OTQxNGViZjcyMDMwMDBhMTlmYzA0MjQ4NzUiKSksCi0gICAgcDog
QmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoImYxMjNiZmU1M2RlOTdh
NTY5ZDkxYWRjZjU1NmZhNjI1YWQzMGYzZmQzZDgxMWY5ZTkxZTZhZjQ0YjZlNzgwY2IwZjMyNzgy
OWZiMjExOTBhZTI4MDY2NDZkNzI4Y2Q5YjY1MzExMzJiMWViZmVmMTI3Mjk5MzA2MGYxY2U3MGIx
MjQzOTMwOTFlZTg1OTNiNzI3MzY3ZWRiYmEwMDllYzViZTE3YzRhY2VlMTIwYzg0MTI2N2Q0NzYz
MWExNmMzNmE2ZDFjOTk5NzNjMWIwYjVhODM1YmYzOWZlYWZlOGY2NDIxZmQ5YzJhOTBiYzI3OTc2
NjU5ZTY3YmM4MzEyNGQiKSksCi0gICAgcTogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdU
b1VpbnQ4QXJyYXkoImVhOTgzOWI3ZTM3ZWE4OWJiZGEyN2U0YzkzNDcxY2I0ZmQ5MjE4OWEwYTk2
YmNiNGQ3NTY5M2YxOGE1YzJmNzQyYWY5ZTM2ZmRlNjc5ZmJkOWVhZTM0NWZhMjY5NTI3YjY5NjUw
MjFjNGJkZjU0ZDY4NWJmMDg5NjBjYzk3NmY2OGRjYTIxY2ViZjQ0ZjI2OGE1OWRhYjhkMWEyNWU1
MTlmNTE0N2UxZjQ1ZmUyODdkNzRjZjcyNWJlYzEzMjZkMzQyMTJjNTZjZjRmZmZhMjAyZjU3YjY4
ZWU4Y2NhOTQzZjNjMTM4YzRjZGUzM2JkZjJjOTQ0MGRmNjUzMjI0NDUiKSksCi0gICAgZHA6IEJh
c2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCJjYTBjOWI2MGI4ZTRhNjA2
Njc1NmM2NWQyMDg4NDE5ZGY2MjUzYjdiNjg4YTg1ZjRmNmU5NjRkODVkYWQ1MmE0NTI2Mjg2N2Yx
ZTk2MTgwNjlmY2NkODY1ZTkyODllNDZlMzllMjAyMjk0NGM1YzQ0ODdkMzQ1Y2YyNTJkNDYwZDk3
N2Q3N2VkZmVmZWRiY2JhZTQ2YTIzYWY3ZmE0NzBmMDc3ZGEwZTUwOTQyMDQ0Y2IxYTM2MDQ5N2Nj
Mjc2MGFjMGYyYWQ0YTJmY2QwZTg0ZDdhMWQ5NGRmZGQyNjU4ZmQ5Y2UxODQ3NWMxZmE3NWVlMGNl
YmFkMGNmMGFjMDRkIikpLAotICAgIGRxOiBCYXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1Rv
VWludDhBcnJheSgiNTI4MTcxMjMzYzRlNGE2YzYzYjg2NzY0ZjUxMzM4ODQ2YWZkZGJjYjI5NTgz
NDRjMDFjNDAwNGExZGQ4MjgxNDVhMWQwMmExNTA3ZGVmNGY1ODI0N2E2NGZjMTBjMGEyODhjMWFl
ODk1NzIxZDc4YjhmMDQ0ZGI3YzAwZDg2ZGE1NWE5YjY1NDI5MmVjZDc2ODI3MGJlNjllNGJkNTky
MmQ0ZWZmZDFmNzA5NTVmOTYyN2UzZTE5Yjc0OWU5M2I0MGVmM2RkMWQ2MWQ5MzkxNWUyYjA5ZDkz
MGI0YjE3NjhiZmFjYzAxMzZmMzliMGNmZGZiNGQwNTAwMTFlMmU2NSIpKSwKLSAgICBxaTogQmFz
ZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoImRmMmViMjMyMmNjMmRhYWJm
NGQxNDY1NTA4ZjQxNTIxY2RhN2NlZmYyM2ViZTYxZDAwZDQ0MWVlNzI4ZGRhNWQxNmM3YmY5MjBj
ZDk1ZjM0YmViNGZlMzJlZTgxN2VmMzM2MmUwYmNkMWQxMjQ1ZjdiMDc3OTNlYWExOTBkYzVhMzdm
ZGFmNGM2OGUyY2ExMzk3MmQ3ZjUxNDhiNzk2YjZmYjZkN2FkZGEwN2JkMmNkMTNiZTk4Y2ViZWQx
ZWRjNmNhNDEyZTM5NTM1MGM1OWExZDg0MmJjNGFhMmYzYzBiMjQzZmRlN2RmZDk1MzU2ZjI0Mzky
NTFhMTE3MmM0NWUiKSkKLX07Ci0KLXZhciBleHRyYWN0YWJsZSA9IHRydWU7Ci12YXIgbm9uRXh0
cmFjdGFibGUgPSBmYWxzZTsKLQotZGVidWcoIkltcG9ydGluZyBhbiBSU0Ega2V5Li4uIik7Ci1j
cnlwdG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoSlNP
Ti5zdHJpbmdpZnkocHJpdmF0ZUtleUpTT04pKSwgbnVsbCwgZXh0cmFjdGFibGUsIFsiZGVjcnlw
dCJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHByaXZhdGVLZXkgPSByZXN1bHQ7Ci0K
LSAgICBkZWJ1ZygiRGVjcnlwdGluZy4uLiIpOwotICAgIGVuY3J5cHRlZE1lc3NhZ2UgPSBoZXhT
dHJpbmdUb1VpbnQ4QXJyYXkoIjYwNDJlNzQ1NTg5YWYwM2FmODc1MjBmOTNjNDVkOGMzNTk4NWFk
YTExNjFhMzdkODIyZTlmOTQ2MGZjNzVmY2YwMTc5ZDg0OTFiOGY1ZDFlNGRlOGNlYjMxZTA3YzQ4
NjVjNWEzZWZkYmJiNjlhODgwM2I4OWVlNjVhNDMwYTU4MDljNzA3NTY5MTUwYjU4MGJiNjg2YTk0
YzU1NDFjNDZhZGNkODI3OTYwY2UyNDRmZjY4ODM4N2QxNjE2ZTg1YjRkMTc4MGM2NDgzNjA2Y2Y5
MjRiNTRmMDgwY2Y0MTU0ZTY2ODI5YmY2ZTUzMjQ4MTA0OGVjNDFmYWRjMDdkNzU1YmIzNGJiMjgx
NDUyMTljYjMwZDQ3ZDBkNjE4NzA5MTgwZTkwMzAzZmY5ZWYwOTAxOGJlZDNkYTc1NzYxZGE3OTQ4
MTFmOTZiYzllOGQ3YzRiYTFiNTk0NmJkYTBiZDMxM2ZhZWM0Yzk5M2VkMjc0OGVlZDhjY2U0YmRi
NTIwYmE3ZGIxNjVmOWZlNTZhYTg0NTRkNmZmMzM4NzRmZWVlYmYyOWRlMmRmNWI3ZjAwYWExZDlm
YjA3M2ZjNDA2N2I1OGRjNTA2MjRlMTI3ZjcxMWRkZTJjYzJjZmRhYjQ5MTljY2YyOGM4MzY2MGRm
YzIyN2IwZjUwMGVjMWY5MDRmIik7Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUuZGVj
cnlwdCgiUlNBRVMtUEtDUzEtdjFfNSIsIHByaXZhdGVLZXksIGVuY3J5cHRlZE1lc3NhZ2UpOwot
fSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBtZXNzYWdlID0gcmVzdWx0OwotICAgIHNo
b3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KG1lc3NhZ2UpKSIsICInMmFh
Y2VjODZmNDIzZGQ5MjVlYzE1ODgyMmE3NDhjYmU2YzMxYTAnIik7Ci0KLSAgICBmaW5pc2hKU1Rl
c3QoKTsKLX0pOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KClByb3BlcnR5IGNoYW5n
ZXMgb246IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhZXMtcGtjczEtdjFfNS1k
ZWNyeXB0Lmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46bWltZS10eXBlCiMjIC0xICswLDAg
IyMKLXRleHQvaHRtbApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBMYXlv
dXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtd3JhcC11bndyYXAt
YWVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL3JzYWVzLXBrY3MxLXYxXzUtd3JhcC11bndyYXAtYWVzLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMjIwOTM1KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Flcy1w
a2NzMS12MV81LXdyYXAtdW53cmFwLWFlcy1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAt
MSwzNSArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDA6IFdlYktpdFN1YnRsZUNyeXB0
byBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIFN1YnRsZUNyeXB0byBpbnN0ZWFkLgotVGVzdCB3
cmFwcGluZyBhbmQgdW53cmFwcGluZyBhbiBBRVMga2V5IHdpdGggUlNBRVMtUEtDUzEtdjFfNS4K
LQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLUltcG9ydGluZyBSU0Ega2V5cy4uLgot
SW1wb3J0aW5nIGFuIEFFUyBrZXkuLi4KLVdyYXBwaW5nIGl0Li4uCi1QQVNTIHdyYXBwZWRLZXku
dG9TdHJpbmcoKSBpcyAnW29iamVjdCBBcnJheUJ1ZmZlcl0nCi1VbndyYXBwaW5nIGl0Li4uCi1Q
QVNTIHVud3JhcHBlZEtleS50b1N0cmluZygpIGlzICdbb2JqZWN0IENyeXB0b0tleV0nCi1QQVNT
IHVud3JhcHBlZEtleS50eXBlIGlzICdzZWNyZXQnCi1QQVNTIHVud3JhcHBlZEtleS5leHRyYWN0
YWJsZSBpcyB0cnVlCi1QQVNTIHVud3JhcHBlZEtleS5hbGdvcml0aG0ubmFtZSBpcyAnQUVTLUNC
QycKLVBBU1MgdW53cmFwcGVkS2V5LmFsZ29yaXRobS5sZW5ndGggaXMgMjU2Ci1QQVNTIHVud3Jh
cHBlZEtleS51c2FnZXMgaXMgWydkZWNyeXB0JywgJ2VuY3J5cHQnXQotRXhwb3J0aW5nIGl0Li4u
Ci1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcodW53cmFwcGVkS2V5RGF0YSkgaXMgYnl0ZXNUb0hleFN0
cmluZyhhZXNLZXlEYXRhKQotCi1XcmFwcGluZyB0aGUgc2FtZSBrZXkgYXMgSldLLi4uCi1QQVNT
IHdyYXBwZWRLZXkudG9TdHJpbmcoKSBpcyAnW29iamVjdCBBcnJheUJ1ZmZlcl0nCi1VbndyYXBw
aW5nIGl0Li4uCi1QQVNTIHVud3JhcHBlZEtleS50b1N0cmluZygpIGlzICdbb2JqZWN0IENyeXB0
b0tleV0nCi1QQVNTIHVud3JhcHBlZEtleS50eXBlIGlzICdzZWNyZXQnCi1QQVNTIHVud3JhcHBl
ZEtleS5leHRyYWN0YWJsZSBpcyB0cnVlCi1QQVNTIHVud3JhcHBlZEtleS5hbGdvcml0aG0ubmFt
ZSBpcyAnQUVTLUNCQycKLVBBU1MgdW53cmFwcGVkS2V5LmFsZ29yaXRobS5sZW5ndGggaXMgMjU2
Ci1QQVNTIHVud3JhcHBlZEtleS51c2FnZXMgaXMgWydkZWNyeXB0JywgJ2VuY3J5cHQnXQotRXhw
b3J0aW5nIGl0Li4uCi1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcodW53cmFwcGVkS2V5RGF0YSkgaXMg
Ynl0ZXNUb0hleFN0cmluZyhhZXNLZXlEYXRhKQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3Rz
L2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhZXMtcGtjczEtdjFfNS13cmFwLXVud3JhcC1hZXMtZXhw
ZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMj
Ci1uYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpEZWxldGVkOiBzdm46bWlt
ZS10eXBlCiMjIC0xICswLDAgIyMKLXRleHQvcGxhaW4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBw
cm9wZXJ0eQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Flcy1wa2Nz
MS12MV81LXdyYXAtdW53cmFwLWFlcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Ny
eXB0by93ZWJraXRTdWJ0bGUvcnNhZXMtcGtjczEtdjFfNS13cmFwLXVud3JhcC1hZXMuaHRtbAko
cmV2aXNpb24gMjIwOTM1KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fl
cy1wa2NzMS12MV81LXdyYXAtdW53cmFwLWFlcy5odG1sCShub25leGlzdGVudCkKQEAgLTEsMTAz
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0i
ZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0Pgot
ZGVzY3JpcHRpb24oIlRlc3Qgd3JhcHBpbmcgYW5kIHVud3JhcHBpbmcgYW4gQUVTIGtleSB3aXRo
IFJTQUVTLVBLQ1MxLXYxXzUuIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi12YXIgcHVi
bGljS2V5SlNPTiA9IHsKLSAgICBrdHk6ICJSU0EiLAotICAgIGFsZzogIlJTQTFfNSIsCi0gICAg
bjogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoImRjZmExMGZmYTc0
NjY1YWVlZjg3MDk3NGVhOTliMmNlNTQ1NDdjNjdmNDJhYWE2ZGQwMWEyZWQzMWZkMmMyNDJhZjVk
OTYwYjFmODk2ZWZiYTM1NDNkNjU1NGI3YjEyNjg3YTVjNjg4NTY4ZjMyZTAyNmM1MzJkMjU5OTNi
OTdhN2MyODQyZWMyYjhlMTIzNWVlZTI0MTRkMjU4MDZjNmZiYWU0Mzg5NTRlYmE5ZDI3NTVkZmZl
ZWIxYjQ3NzAwOTU3ODE1YThhMjMzZjk3YjFhMmM3MTRiM2UyYmUyZTQyZDhiZTMwYjE5NjE1ODJl
YTk5NDg5MTBlMGM3OTdjNTBmYzRiYjQ1NWYwZmM0NWU1ZTM0ZTYzOTZhYzViMmQ0NjIzOTM2NWM3
ZjNkYWFmMDkwOTQwMGQ2MWNmOWUwY2E4MDgzZWFmMzM1YTZmY2ViNjg2M2MxY2MwY2Y1YTE3MWFm
ZjM1ZDk3ZWNiNjBlZjI1MWM3ZWMyYzhhNTg4MzYxZGM0MTI2NmE0YjdlZDM4YjAyNmNlMGQ1Mzc4
NjQ0OWRiYjExYTA2ZWEzM2NjZjFlY2E1NzUyMDFlZDFhYTQ3M2VkMTE4N2VjMWQ4YTc0NGVhMzQ1
YmVkN2VhMDBlZTRlODFiYmE0NjQ4NjAxZGQ1MzdkYzkxMDE1ZDMxZjBjMmMxIikpLAotICAgIGU6
IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMTAwMDEiKSkKLX07
Ci0KLXZhciBwcml2YXRlS2V5SlNPTiA9IHsKLSAgICBrdHk6ICJSU0EiLAotICAgIGFsZzogIlJT
QTFfNSIsCi0gICAgbjogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXko
ImRjZmExMGZmYTc0NjY1YWVlZjg3MDk3NGVhOTliMmNlNTQ1NDdjNjdmNDJhYWE2ZGQwMWEyZWQz
MWZkMmMyNDJhZjVkOTYwYjFmODk2ZWZiYTM1NDNkNjU1NGI3YjEyNjg3YTVjNjg4NTY4ZjMyZTAy
NmM1MzJkMjU5OTNiOTdhN2MyODQyZWMyYjhlMTIzNWVlZTI0MTRkMjU4MDZjNmZiYWU0Mzg5NTRl
YmE5ZDI3NTVkZmZlZWIxYjQ3NzAwOTU3ODE1YThhMjMzZjk3YjFhMmM3MTRiM2UyYmUyZTQyZDhi
ZTMwYjE5NjE1ODJlYTk5NDg5MTBlMGM3OTdjNTBmYzRiYjQ1NWYwZmM0NWU1ZTM0ZTYzOTZhYzVi
MmQ0NjIzOTM2NWM3ZjNkYWFmMDkwOTQwMGQ2MWNmOWUwY2E4MDgzZWFmMzM1YTZmY2ViNjg2M2Mx
Y2MwY2Y1YTE3MWFmZjM1ZDk3ZWNiNjBlZjI1MWM3ZWMyYzhhNTg4MzYxZGM0MTI2NmE0YjdlZDM4
YjAyNmNlMGQ1Mzc4NjQ0OWRiYjExYTA2ZWEzM2NjZjFlY2E1NzUyMDFlZDFhYTQ3M2VkMTE4N2Vj
MWQ4YTc0NGVhMzQ1YmVkN2VhMDBlZTRlODFiYmE0NjQ4NjAxZGQ1MzdkYzkxMDE1ZDMxZjBjMmMx
IikpLAotICAgIGU6IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCIw
MTAwMDEiKSksCi0gICAgZDogQmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJy
YXkoIjIxOTUwODUxY2RmMjUzMjAzMThiMzA1YWZhMGYzNzFmMDdhZTVhNDRiMzE0ZWJkNzI5ZjVk
Y2IxNWRhN2ZhMzk0N2FjZGQ5MTVkYWVkNTc0YmQxNmRmODhiZjg1ZjYxMDYwYjM4NzE3MmZhZTZl
MDEyNjJiMzg2NGMyZDNjMjJmOTRlMDRhODE1OTQyMmI0ZWQyNzljNDhhNGM5ZDc2N2Q0OTY2MDcx
YTViYmY1ZDA0M2UxNmZmNDZlYzFiYTA3MTZmMDBiYmM5N2JmZjVkNTY5M2UyMTRlOTljOTcyMWYx
MmIzZWM2MjgyYWUyYTQ4NTcyMWI5NmRkY2Y3NDAzZmEwMzdkMGM1N2FiNDYzYzQ0OGRlNWNjMTIy
NjVhZGQ4ODZkMzExZWE4ZDhhNTkwM2ZhNTZjNWYxYzljZjJlYjExY2I2NTdhMWE3ZDNlNDEzNTJk
YzNlNjg2ODk4YzRjZTQzMDVlOGI2MzhlMWIwOGEyYTg2Y2M5ZWI5ODY2ZjM0OTlhYzc3YjYxMzZi
ODFjYjI3NmQ2MTRjZmViN2I2ZWQzZjNiYzc3NWU0NmMwMDA2NmViZWVlMmNmZjcxNjZiNTc1MjA1
OTg5NDdmZjYyMTAzMjBiMjg4ZmI0ZjJjM2Y4ZmU5N2IyNzk0MTRlYmY3MjAzMDAwYTE5ZmMwNDI0
ODc1IikpLAotICAgIHA6IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5
KCJmMTIzYmZlNTNkZTk3YTU2OWQ5MWFkY2Y1NTZmYTYyNWFkMzBmM2ZkM2Q4MTFmOWU5MWU2YWY0
NGI2ZTc4MGNiMGYzMjc4MjlmYjIxMTkwYWUyODA2NjQ2ZDcyOGNkOWI2NTMxMTMyYjFlYmZlZjEy
NzI5OTMwNjBmMWNlNzBiMTI0MzkzMDkxZWU4NTkzYjcyNzM2N2VkYmJhMDA5ZWM1YmUxN2M0YWNl
ZTEyMGM4NDEyNjdkNDc2MzFhMTZjMzZhNmQxYzk5OTczYzFiMGI1YTgzNWJmMzlmZWFmZThmNjQy
MWZkOWMyYTkwYmMyNzk3NjY1OWU2N2JjODMxMjRkIikpLAotICAgIHE6IEJhc2U2NFVSTC5zdHJp
bmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCJlYTk4MzliN2UzN2VhODliYmRhMjdlNGM5MzQ3
MWNiNGZkOTIxODlhMGE5NmJjYjRkNzU2OTNmMThhNWMyZjc0MmFmOWUzNmZkZTY3OWZiZDllYWUz
NDVmYTI2OTUyN2I2OTY1MDIxYzRiZGY1NGQ2ODViZjA4OTYwY2M5NzZmNjhkY2EyMWNlYmY0NGYy
NjhhNTlkYWI4ZDFhMjVlNTE5ZjUxNDdlMWY0NWZlMjg3ZDc0Y2Y3MjViZWMxMzI2ZDM0MjEyYzU2
Y2Y0ZmZmYTIwMmY1N2I2OGVlOGNjYTk0M2YzYzEzOGM0Y2RlMzNiZGYyYzk0NDBkZjY1MzIyNDQ1
IikpLAotICAgIGRwOiBCYXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgi
Y2EwYzliNjBiOGU0YTYwNjY3NTZjNjVkMjA4ODQxOWRmNjI1M2I3YjY4OGE4NWY0ZjZlOTY0ZDg1
ZGFkNTJhNDUyNjI4NjdmMWU5NjE4MDY5ZmNjZDg2NWU5Mjg5ZTQ2ZTM5ZTIwMjI5NDRjNWM0NDg3
ZDM0NWNmMjUyZDQ2MGQ5NzdkNzdlZGZlZmVkYmNiYWU0NmEyM2FmN2ZhNDcwZjA3N2RhMGU1MDk0
MjA0NGNiMWEzNjA0OTdjYzI3NjBhYzBmMmFkNGEyZmNkMGU4NGQ3YTFkOTRkZmRkMjY1OGZkOWNl
MTg0NzVjMWZhNzVlZTBjZWJhZDBjZjBhYzA0ZCIpKSwKLSAgICBkcTogQmFzZTY0VVJMLnN0cmlu
Z2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjUyODE3MTIzM2M0ZTRhNmM2M2I4Njc2NGY1MTMz
ODg0NmFmZGRiY2IyOTU4MzQ0YzAxYzQwMDRhMWRkODI4MTQ1YTFkMDJhMTUwN2RlZjRmNTgyNDdh
NjRmYzEwYzBhMjg4YzFhZTg5NTcyMWQ3OGI4ZjA0NGRiN2MwMGQ4NmRhNTVhOWI2NTQyOTJlY2Q3
NjgyNzBiZTY5ZTRiZDU5MjJkNGVmZmQxZjcwOTU1Zjk2MjdlM2UxOWI3NDllOTNiNDBlZjNkZDFk
NjFkOTM5MTVlMmIwOWQ5MzBiNGIxNzY4YmZhY2MwMTM2ZjM5YjBjZmRmYjRkMDUwMDExZTJlNjUi
KSksCi0gICAgcWk6IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCJk
ZjJlYjIzMjJjYzJkYWFiZjRkMTQ2NTUwOGY0MTUyMWNkYTdjZWZmMjNlYmU2MWQwMGQ0NDFlZTcy
OGRkYTVkMTZjN2JmOTIwY2Q5NWYzNGJlYjRmZTMyZWU4MTdlZjMzNjJlMGJjZDFkMTI0NWY3YjA3
NzkzZWFhMTkwZGM1YTM3ZmRhZjRjNjhlMmNhMTM5NzJkN2Y1MTQ4Yjc5NmI2ZmI2ZDdhZGRhMDdi
ZDJjZDEzYmU5OGNlYmVkMWVkYzZjYTQxMmUzOTUzNTBjNTlhMWQ4NDJiYzRhYTJmM2MwYjI0M2Zk
ZTdkZmQ5NTM1NmYyNDM5MjUxYTExNzJjNDVlIikpCi19OwotdmFyIHdyYXBBbGdvcml0aG0gPSB7
bmFtZTogIlJTQUVTLVBLQ1MxLXYxXzUifTsKLXZhciBleHRyYWN0YWJsZSA9IHRydWU7Ci12YXIg
bm9uRXh0cmFjdGFibGUgPSBmYWxzZTsKLQotZGVidWcoIkltcG9ydGluZyBSU0Ega2V5cy4uLiIp
OwotY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5
KEpTT04uc3RyaW5naWZ5KHB1YmxpY0tleUpTT04pKSwgbnVsbCwgZXh0cmFjdGFibGUsIFsid3Jh
cEtleSIsICJ1bndyYXBLZXkiXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBwdWJsaWNL
ZXkgPSByZXN1bHQ7Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0S2V5KCJq
d2siLCBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShwcml2YXRlS2V5SlNPTikpLCBu
dWxsLCBleHRyYWN0YWJsZSwgWyJ3cmFwS2V5IiwgInVud3JhcEtleSJdKTsKLX0pLnRoZW4oZnVu
Y3Rpb24ocmVzdWx0KSB7Ci0gICAgcHJpdmF0ZUtleSA9IHJlc3VsdDsKLQotICAgIGRlYnVnKCJJ
bXBvcnRpbmcgYW4gQUVTIGtleS4uLiIpOwotICAgIGFlc0tleURhdGEgPSBoZXhTdHJpbmdUb1Vp
bnQ4QXJyYXkoIjYwM2RlYjEwMTVjYTcxYmUyYjczYWVmMDg1N2Q3NzgxMWYzNTJjMDczYjYxMDhk
NzJkOTgxMGEzMDkxNGRmZjQiKTsKLSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBv
cnRLZXkoInJhdyIsIGFlc0tleURhdGEsICJhZXMtY2JjIiwgZXh0cmFjdGFibGUsIFsiZW5jcnlw
dCIsICJkZWNyeXB0IiwgIndyYXBLZXkiLCAidW53cmFwS2V5Il0pCi19KS50aGVuKGZ1bmN0aW9u
KHJlc3VsdCkgewotICAgIGFlc0tleSA9IHJlc3VsdDsKLSAgICBkZWJ1ZygiV3JhcHBpbmcgaXQu
Li4iKTsKLQotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLndyYXBLZXkoInJhdyIsIGFl
c0tleSwgcHVibGljS2V5LCB3cmFwQWxnb3JpdGhtKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0
KSB7Ci0gICAgd3JhcHBlZEtleSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgid3JhcHBlZEtleS50
b1N0cmluZygpIiwgIidbb2JqZWN0IEFycmF5QnVmZmVyXSciKTsKLQotICAgIGRlYnVnKCJVbndy
YXBwaW5nIGl0Li4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUudW53cmFwS2V5
KCJyYXciLCB3cmFwcGVkS2V5LCBwcml2YXRlS2V5LCB3cmFwQWxnb3JpdGhtLCAiYWVzLWNiYyIs
IGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCJdKTsKLX0pLnRoZW4oZnVuY3Rpb24o
cmVzdWx0KSB7Ci0gICAgdW53cmFwcGVkS2V5ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJ1bndy
YXBwZWRLZXkudG9TdHJpbmcoKSIsICInW29iamVjdCBDcnlwdG9LZXldJyIpOwotICAgIHNob3Vs
ZEJlKCJ1bndyYXBwZWRLZXkudHlwZSIsICInc2VjcmV0JyIpOwotICAgIHNob3VsZEJlKCJ1bndy
YXBwZWRLZXkuZXh0cmFjdGFibGUiLCAidHJ1ZSIpOwotICAgIHNob3VsZEJlKCJ1bndyYXBwZWRL
ZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ0FFUy1DQkMnIik7Ci0gICAgc2hvdWxkQmUoInVud3JhcHBl
ZEtleS5hbGdvcml0aG0ubGVuZ3RoIiwgIjI1NiIpOwotICAgIHNob3VsZEJlKCJ1bndyYXBwZWRL
ZXkudXNhZ2VzIiwgIlsnZGVjcnlwdCcsICdlbmNyeXB0J10iKTsKLQotICAgIGRlYnVnKCJFeHBv
cnRpbmcgaXQuLi4iKTsKLSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS5leHBvcnRLZXko
InJhdyIsIHVud3JhcHBlZEtleSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHVu
d3JhcHBlZEtleURhdGEgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmco
dW53cmFwcGVkS2V5RGF0YSkiLCAiYnl0ZXNUb0hleFN0cmluZyhhZXNLZXlEYXRhKSIpOwotCi0g
ICAgZGVidWcoIlxuV3JhcHBpbmcgdGhlIHNhbWUga2V5IGFzIEpXSy4uLiIpOwotICAgIHJldHVy
biBjcnlwdG8ud2Via2l0U3VidGxlLndyYXBLZXkoImp3ayIsIGFlc0tleSwgcHVibGljS2V5LCB3
cmFwQWxnb3JpdGhtKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgd3JhcHBlZEtl
eSA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgid3JhcHBlZEtleS50b1N0cmluZygpIiwgIidbb2Jq
ZWN0IEFycmF5QnVmZmVyXSciKTsKLQotICAgIGRlYnVnKCJVbndyYXBwaW5nIGl0Li4uIik7Ci0g
ICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUudW53cmFwS2V5KCJqd2siLCB3cmFwcGVkS2V5
LCBwcml2YXRlS2V5LCB3cmFwQWxnb3JpdGhtLCAiYWVzLWNiYyIsIGV4dHJhY3RhYmxlLCBbImVu
Y3J5cHQiLCAiZGVjcnlwdCJdKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgdW53
cmFwcGVkS2V5ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXkudG9TdHJpbmco
KSIsICInW29iamVjdCBDcnlwdG9LZXldJyIpOwotICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXku
dHlwZSIsICInc2VjcmV0JyIpOwotICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXkuZXh0cmFjdGFi
bGUiLCAidHJ1ZSIpOwotICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXkuYWxnb3JpdGhtLm5hbWUi
LCAiJ0FFUy1DQkMnIik7Ci0gICAgc2hvdWxkQmUoInVud3JhcHBlZEtleS5hbGdvcml0aG0ubGVu
Z3RoIiwgIjI1NiIpOwotICAgIHNob3VsZEJlKCJ1bndyYXBwZWRLZXkudXNhZ2VzIiwgIlsnZGVj
cnlwdCcsICdlbmNyeXB0J10iKTsKLQotICAgIGRlYnVnKCJFeHBvcnRpbmcgaXQuLi4iKTsKLSAg
ICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS5leHBvcnRLZXkoInJhdyIsIHVud3JhcHBlZEtl
eSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHVud3JhcHBlZEtleURhdGEgPSBy
ZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcodW53cmFwcGVkS2V5RGF0YSki
LCAiYnl0ZXNUb0hleFN0cmluZyhhZXNLZXlEYXRhKSIpOwotICAgIGZpbmlzaEpTVGVzdCgpOwot
fSk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjog
TGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Flcy1wa2NzMS12MV81LXdyYXAtdW53
cmFwLWFlcy5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOm1pbWUtdHlwZQojIyAtMSArMCww
ICMjCi10ZXh0L2h0bWwKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogTGF5
b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1nZW5lcmF0ZS1r
ZXktZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRT
dWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtZ2VuZXJhdGUta2V5LWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMjIwOTM1KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtj
czEtdjFfNS1nZW5lcmF0ZS1rZXktZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKQEAgLTEsMjUg
KzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI1OiBXZWJLaXRTdWJ0bGVDcnlwdG8gaXMg
ZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBTdWJ0bGVDcnlwdG8gaW5zdGVhZC4KLVRlc3QgZ2VuZXJh
dGluZyBhbiBSU0Ega2V5IHBhaXIgZm9yIFJTQVNTQS1QS0NTMS12MV81LgotCi1PbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCi0KLQotR2VuZXJhdGluZyBhIGtleSBwYWlyLi4uCi1QQVNTIGtleVBh
aXIudG9TdHJpbmcoKSBpcyAnW29iamVjdCBPYmplY3RdJwotUEFTUyBrZXlQYWlyLnB1YmxpY0tl
eS50eXBlIGlzICdwdWJsaWMnCi1QQVNTIGtleVBhaXIucHVibGljS2V5LmFsZ29yaXRobS5uYW1l
IGlzICdSU0FTU0EtUEtDUzEtdjFfNScKLVBBU1Mga2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGht
Lm1vZHVsdXNMZW5ndGggaXMgMjA0OAotUEFTUyBieXRlc1RvSGV4U3RyaW5nKGtleVBhaXIucHVi
bGljS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkgaXMgJzAxMDAwMScKLVBBU1Mga2V5UGFp
ci5wdWJsaWNLZXkuYWxnb3JpdGhtLmhhc2ggaXMgdW5kZWZpbmVkLgotUEFTUyBrZXlQYWlyLnBy
aXZhdGVLZXkudHlwZSBpcyAncHJpdmF0ZScKLVBBU1Mga2V5UGFpci5wcml2YXRlS2V5LmFsZ29y
aXRobS5uYW1lIGlzICdSU0FTU0EtUEtDUzEtdjFfNScKLVBBU1Mga2V5UGFpci5wcml2YXRlS2V5
LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3RoIGlzIDIwNDgKLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhr
ZXlQYWlyLnByaXZhdGVLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSBpcyAnMDEwMDAxJwot
UEFTUyBrZXlQYWlyLnByaXZhdGVLZXkuYWxnb3JpdGhtLmhhc2ggaXMgdW5kZWZpbmVkLgotCi1U
ZXN0aW5nIHRoYXQgY3VzdG9tIGF0dHJpYnV0ZXMgb24ga2V5cyBzdXJ2aXZlIGdhcmJhZ2UgY29s
bGVjdGlvbi4uLgotUEFTUyBrZXlQYWlyLnB1YmxpY0tleS5mb28gaXMgJ2JhcicKLVBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRU
ZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWdlbmVyYXRlLWtleS13
aXRoLWxlYWRpbmctemVyb2VzLWluLWV4cG9uZW50LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWdlbmVy
YXRlLWtleS13aXRoLWxlYWRpbmctemVyb2VzLWluLWV4cG9uZW50LWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMjIwOTM1KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2Et
cGtjczEtdjFfNS1nZW5lcmF0ZS1rZXktd2l0aC1sZWFkaW5nLXplcm9lcy1pbi1leHBvbmVudC1l
eHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSwxNyArMCwwIEBACi1DT05TT0xFIE1FU1NB
R0U6IGxpbmUgMjU6IFdlYktpdFN1YnRsZUNyeXB0byBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNl
IFN1YnRsZUNyeXB0byBpbnN0ZWFkLgotVGVzdCBnZW5lcmF0aW5nIGFuIFJTQSBrZXkgcGFpciBm
b3IgUlNBU1NBLVBLQ1MxLXYxXzUgd2hlbiBleHBvbmVudCBoYXMgbGVhZGluZyB6ZXJvZXMuCi0K
LU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1HZW5lcmF0aW5nIGEga2V5IHBhaXIuLi4K
LVBBU1Mga2V5UGFpci50b1N0cmluZygpIGlzICdbb2JqZWN0IE9iamVjdF0nCi1QQVNTIGtleVBh
aXIucHVibGljS2V5LnR5cGUgaXMgJ3B1YmxpYycKLVBBU1Mga2V5UGFpci5wdWJsaWNLZXkuYWxn
b3JpdGhtLm5hbWUgaXMgJ1JTQVNTQS1QS0NTMS12MV81JwotUEFTUyBrZXlQYWlyLnB1YmxpY0tl
eS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCBpcyAyMDQ4Ci1QQVNTIGJ5dGVzVG9IZXhTdHJpbmco
a2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSBpcyAnMDEwMDAxJwot
UEFTUyBieXRlc1RvSGV4U3RyaW5nKGtleVBhaXIucHJpdmF0ZUtleS5hbGdvcml0aG0ucHVibGlj
RXhwb25lbnQpIGlzICcwMTAwMDEnCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0K
LVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9y
c2Fzc2EtcGtjczEtdjFfNS1nZW5lcmF0ZS1rZXktd2l0aC1sZWFkaW5nLXplcm9lcy1pbi1leHBv
bmVudC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUv
cnNhc3NhLXBrY3MxLXYxXzUtZ2VuZXJhdGUta2V5LXdpdGgtbGVhZGluZy16ZXJvZXMtaW4tZXhw
b25lbnQuaHRtbAkocmV2aXNpb24gMjIwOTM1KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtp
dFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1nZW5lcmF0ZS1rZXktd2l0aC1sZWFkaW5nLXplcm9l
cy1pbi1leHBvbmVudC5odG1sCShub25leGlzdGVudCkKQEAgLTEsNDAgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1v
bi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVz
dCBnZW5lcmF0aW5nIGFuIFJTQSBrZXkgcGFpciBmb3IgUlNBU1NBLVBLQ1MxLXYxXzUgd2hlbiBl
eHBvbmVudCBoYXMgbGVhZGluZyB6ZXJvZXMuIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwot
Ci12YXIgYWxnb3JpdGhtS2V5R2VuID0gewotICAgIG5hbWU6ICJSU0FTU0EtUEtDUzEtdjFfNSIs
Ci0gICAgLy8gUnNhS2V5R2VuUGFyYW1zCi0gICAgbW9kdWx1c0xlbmd0aDogMjA0OCwKLSAgICBw
dWJsaWNFeHBvbmVudDogbmV3IFVpbnQ4QXJyYXkoWzB4MDAsIDB4MDAsIDB4MDAsIDB4MDAsIDB4
MDAsIDB4MDEsIDB4MDAsIDB4MDFdKSwgIC8vIEVxdWl2YWxlbnQgdG8gNjU1MzcKLX07Ci12YXIg
ZXh0cmFjdGFibGUgPSB0cnVlOwotCi1kZWJ1ZygiR2VuZXJhdGluZyBhIGtleSBwYWlyLi4uIik7
Ci1jcnlwdG8ud2Via2l0U3VidGxlLmdlbmVyYXRlS2V5KGFsZ29yaXRobUtleUdlbiwgZXh0cmFj
dGFibGUsIFsic2lnbiIsICJ2ZXJpZnkiXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBr
ZXlQYWlyID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJrZXlQYWlyLnRvU3RyaW5nKCkiLCAiJ1tv
YmplY3QgT2JqZWN0XSciKTsKLSAgICBzaG91bGRCZSgia2V5UGFpci5wdWJsaWNLZXkudHlwZSIs
ICIncHVibGljJyIpOwotICAgIHNob3VsZEJlKCJrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0u
bmFtZSIsICInUlNBU1NBLVBLQ1MxLXYxXzUnIik7Ci0gICAgc2hvdWxkQmUoImtleVBhaXIucHVi
bGljS2V5LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3RoIiwgIjIwNDgiKTsKLSAgICBzaG91bGRCZSgi
Ynl0ZXNUb0hleFN0cmluZyhrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0ucHVibGljRXhwb25l
bnQpIiwgIicwMTAwMDEnIik7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcoa2V5UGFp
ci5wcml2YXRlS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkiLCAiJzAxMDAwMSciKTsKLQot
ICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1n
ZW5lcmF0ZS1rZXkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWdlbmVyYXRlLWtleS5odG1sCShyZXZpc2lvbiAyMjA5
MzUpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81
LWdlbmVyYXRlLWtleS5odG1sCShub25leGlzdGVudCkKQEAgLTEsNTQgKzAsMCBAQAotPCFET0NU
WVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1v
bi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVz
dCBnZW5lcmF0aW5nIGFuIFJTQSBrZXkgcGFpciBmb3IgUlNBU1NBLVBLQ1MxLXYxXzUuIik7Ci0K
LWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi12YXIgYWxnb3JpdGhtS2V5R2VuID0gewotICAgIG5h
bWU6ICJSU0FTU0EtUEtDUzEtdjFfNSIsCi0gICAgLy8gUnNhS2V5R2VuUGFyYW1zCi0gICAgbW9k
dWx1c0xlbmd0aDogMjA0OCwKLSAgICBwdWJsaWNFeHBvbmVudDogbmV3IFVpbnQ4QXJyYXkoWzB4
MDEsIDB4MDAsIDB4MDFdKSwgIC8vIEVxdWl2YWxlbnQgdG8gNjU1MzcKLX07Ci12YXIgZXh0cmFj
dGFibGUgPSB0cnVlOwotCi1kZWJ1ZygiR2VuZXJhdGluZyBhIGtleSBwYWlyLi4uIik7Ci1jcnlw
dG8ud2Via2l0U3VidGxlLmdlbmVyYXRlS2V5KGFsZ29yaXRobUtleUdlbiwgZXh0cmFjdGFibGUs
IFsic2lnbiIsICJ2ZXJpZnkiXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBrZXlQYWly
ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJrZXlQYWlyLnRvU3RyaW5nKCkiLCAiJ1tvYmplY3Qg
T2JqZWN0XSciKTsKLSAgICBzaG91bGRCZSgia2V5UGFpci5wdWJsaWNLZXkudHlwZSIsICIncHVi
bGljJyIpOwotICAgIHNob3VsZEJlKCJrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0ubmFtZSIs
ICInUlNBU1NBLVBLQ1MxLXYxXzUnIik7Ci0gICAgc2hvdWxkQmUoImtleVBhaXIucHVibGljS2V5
LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3RoIiwgIjIwNDgiKTsKLSAgICBzaG91bGRCZSgiYnl0ZXNU
b0hleFN0cmluZyhrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIiwg
IicwMTAwMDEnIik7Ci0gICAgc2hvdWxkQmVVbmRlZmluZWQoImtleVBhaXIucHVibGljS2V5LmFs
Z29yaXRobS5oYXNoIik7Ci0gICAgc2hvdWxkQmUoImtleVBhaXIucHJpdmF0ZUtleS50eXBlIiwg
Iidwcml2YXRlJyIpOwotICAgIHNob3VsZEJlKCJrZXlQYWlyLnByaXZhdGVLZXkuYWxnb3JpdGht
Lm5hbWUiLCAiJ1JTQVNTQS1QS0NTMS12MV81JyIpOwotICAgIHNob3VsZEJlKCJrZXlQYWlyLnBy
aXZhdGVLZXkuYWxnb3JpdGhtLm1vZHVsdXNMZW5ndGgiLCAiMjA0OCIpOwotICAgIHNob3VsZEJl
KCJieXRlc1RvSGV4U3RyaW5nKGtleVBhaXIucHJpdmF0ZUtleS5hbGdvcml0aG0ucHVibGljRXhw
b25lbnQpIiwgIicwMTAwMDEnIik7Ci0gICAgc2hvdWxkQmVVbmRlZmluZWQoImtleVBhaXIucHJp
dmF0ZUtleS5hbGdvcml0aG0uaGFzaCIpOwotCi0gICAgZGVidWcoIlxuVGVzdGluZyB0aGF0IGN1
c3RvbSBhdHRyaWJ1dGVzIG9uIGtleXMgc3Vydml2ZSBnYXJiYWdlIGNvbGxlY3Rpb24uLi4iKTsK
LSAgICBrZXlQYWlyLnB1YmxpY0tleS5mb28gPSAiYmFyIjsKLSAgICBnYygpOwotICAgIHNldFRp
bWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgIGdjKCk7Ci0gICAgICAgIHNldFRpbWVvdXQoZnVu
Y3Rpb24oKSB7Ci0gICAgICAgICAgICBzaG91bGRCZSgia2V5UGFpci5wdWJsaWNLZXkuZm9vIiwg
IidiYXInIik7Ci0gICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgfSwgMCk7Ci0g
ICAgfSwgMCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWltcG9ydC1qd2st
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0
bGUvcnNhc3NhLXBrY3MxLXYxXzUtaW1wb3J0LWp3ay1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIy
MDkzNSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhc3NhLXBrY3MxLXYx
XzUtaW1wb3J0LWp3ay1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSwyNyArMCwwIEBA
Ci1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMzk6IFdlYktpdFN1YnRsZUNyeXB0byBpcyBkZXByZWNh
dGVkLiBQbGVhc2UgdXNlIFN1YnRsZUNyeXB0byBpbnN0ZWFkLgotVGVzdCBpbXBvcnRpbmcgYW4g
UlNBIGtleSBmb3IgUlNBU1NBLVBLQ1MxLXYxXzUuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KLQotCi1JbXBvcnRpbmcgYSBwdWJsaWMga2V5Li4uCi1QQVNTIHB1YmxpY0tleS50b1N0cmlu
ZygpIGlzICdbb2JqZWN0IENyeXB0b0tleV0nCi1QQVNTIHB1YmxpY0tleS50eXBlIGlzICdwdWJs
aWMnCi1QQVNTIHB1YmxpY0tleS51c2FnZXMgaXMgWydzaWduJywndmVyaWZ5J10KLVBBU1MgcHVi
bGljS2V5LmFsZ29yaXRobS5uYW1lIGlzICdSU0FTU0EtUEtDUzEtdjFfNScKLVBBU1MgcHVibGlj
S2V5LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3RoIGlzIDIwNDgKLVBBU1MgYnl0ZXNUb0hleFN0cmlu
ZyhwdWJsaWNLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSBpcyAnMDEwMDAxJwotUEFTUyBw
dWJsaWNLZXkuYWxnb3JpdGhtLmhhc2gubmFtZSBpcyAnU0hBLTI1NicKLQotSW1wb3J0aW5nIGEg
cHJpdmF0ZSBrZXkuLi4KLVBBU1MgcHJpdmF0ZUtleS50b1N0cmluZygpIGlzICdbb2JqZWN0IENy
eXB0b0tleV0nCi1QQVNTIHByaXZhdGVLZXkudHlwZSBpcyAncHJpdmF0ZScKLVBBU1MgcHJpdmF0
ZUtleS51c2FnZXMgaXMgWydzaWduJywndmVyaWZ5J10KLVBBU1MgcHJpdmF0ZUtleS5hbGdvcml0
aG0ubmFtZSBpcyAnUlNBU1NBLVBLQ1MxLXYxXzUnCi1QQVNTIHByaXZhdGVLZXkuYWxnb3JpdGht
Lm1vZHVsdXNMZW5ndGggaXMgMjA0OAotUEFTUyBieXRlc1RvSGV4U3RyaW5nKHByaXZhdGVLZXku
YWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSBpcyAnMDEwMDAxJwotUEFTUyBwcml2YXRlS2V5LmFs
Z29yaXRobS5oYXNoLm5hbWUgaXMgJ1NIQS0yNTYnCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtp
dFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1pbXBvcnQtandrLXNtYWxsLWtleS1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2Et
cGtjczEtdjFfNS1pbXBvcnQtandrLXNtYWxsLWtleS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIy
MDkzNSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhc3NhLXBrY3MxLXYx
XzUtaW1wb3J0LWp3ay1zbWFsbC1rZXktZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKQEAgLTEs
MTIgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDYxNjogV2ViS2l0U3VidGxlQ3J5cHRv
IGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgU3VidGxlQ3J5cHRvIGluc3RlYWQuCi1BIGtleSBv
ZiBzaXplIDIwNDggYml0cyBvciBsYXJnZXIgTVVTVCBiZSB1c2VkIHdpdGggUlMyNTYsIFJTMzg0
LCBSUzUxMiBKV0sgYWxnb3JpdGhtcy4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0K
LVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFy
cmF5KEpTT04uc3RyaW5naWZ5KHB1YmxpY0tleUpTT04pKSwgbnVsbCwgZXh0cmFjdGFibGUsIFsi
c2lnbiIsICJ2ZXJpZnkiXSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogS2V5IHNpemUgaXMg
bm90IHZhbGlkIGZvciBSUzI1Ni4KLVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXko
Imp3ayIsIGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5KHByaXZhdGVLZXlKU09OKSks
IG51bGwsIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0pIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IEtleSBzaXplIGlzIG5vdCB2YWxpZCBmb3IgUlM1MTIuCi1QQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMv
Y3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1pbXBvcnQtandrLXNtYWxsLWtl
eS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNh
c3NhLXBrY3MxLXYxXzUtaW1wb3J0LWp3ay1zbWFsbC1rZXkuaHRtbAkocmV2aXNpb24gMjIwOTM1
KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1p
bXBvcnQtandrLXNtYWxsLWtleS5odG1sCShub25leGlzdGVudCkKQEAgLTEsNDQgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2Vz
L2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlv
biI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlv
bigiQSBrZXkgb2Ygc2l6ZSAyMDQ4IGJpdHMgb3IgbGFyZ2VyIE1VU1QgYmUgdXNlZCB3aXRoIFJT
MjU2LCBSUzM4NCwgUlM1MTIgSldLIGFsZ29yaXRobXMuIik7Ci0KLXZhciBleHRyYWN0YWJsZSA9
IHRydWU7Ci0KLS8vIG9wZW5zc2wgZ2VucnNhIDEwMjQgPjEwMjQucGVtCi0vLyBvcGVuc3NsIGFz
bjFwYXJzZSAtaW4gMTAyNC5wZW0KLXZhciBwdWJsaWNLZXlKU09OID0gewotICAgIGt0eTogIlJT
QSIsCi0gICAgYWxnOiAiUlMyNTYiLAotICAgIG46IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3Ry
aW5nVG9VaW50OEFycmF5KCJCN0YxMDNGODQxMkNDRDI2RjVENTRGQzMxNTdDRDhDRTFGMTM0RjRF
QUJGMEEwNDIzNTBCREQ3RjAwRkVBMkI3N0VFRjE5OTE1QjEwQUEyNDE3QkIyQ0I0RUMxRDU3Qjk2
NjFBMjAwNzI0NjlCOURGOUM2RTg5Q0IzNUNDQzg1NDNDQzQwNzcwRENDMzBEMEJCRkYxQkY5REEx
RTI1NDlGNDA0NzZFREFEQjkzMTI5ODVEQUU4Qzc1MjdDMUMxMkFBRkVERjQ1ODQ5ODk5NjhDREND
OUVGRUIxOTc0MzhDNTM0RDFCRkFBQzMwQjFENDFGNzVFQURCODZDQzU4MUI5IikpLAotICAgIGU6
IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCIwMTAwMDEiKSkKLX07
Ci0KLXZhciBwcml2YXRlS2V5SlNPTiA9IHsKLSAgICBrdHk6ICJSU0EiLAotICAgIGFsZzogIlJT
NTEyIiwKLSAgICBuOiBCYXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgi
QjdGMTAzRjg0MTJDQ0QyNkY1RDU0RkMzMTU3Q0Q4Q0UxRjEzNEY0RUFCRjBBMDQyMzUwQkREN0Yw
MEZFQTJCNzdFRUYxOTkxNUIxMEFBMjQxN0JCMkNCNEVDMUQ1N0I5NjYxQTIwMDcyNDY5QjlERjlD
NkU4OUNCMzVDQ0M4NTQzQ0M0MDc3MERDQzMwRDBCQkZGMUJGOURBMUUyNTQ5RjQwNDc2RURBREI5
MzEyOTg1REFFOEM3NTI3QzFDMTJBQUZFREY0NTg0OTg5OTY4Q0RDQzlFRkVCMTk3NDM4QzUzNEQx
QkZBQUMzMEIxRDQxRjc1RUFEQjg2Q0M1ODFCOSIpKSwKLSAgICBlOiBCYXNlNjRVUkwuc3RyaW5n
aWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiMDEwMDAxIikpLAotICAgIGQ6IEJhc2U2NFVSTC5z
dHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCI1QkE2RjRGMjZCMEYzNkJEQjVGQTZFQkVF
NkUzMDk2ODUzMjU5Q0ZCQjc0MkIzQTdBOUE0REFEREUwOTIwMDYzRUMxNDk5MjlDQjM1NTc4MTlB
NkQ4MjRFMzdFNDNCMDRCRjMyM0Y0OTJGQzQ5QTgwMjgwMzEwMTdCODFCRUNBOEVDMkE4NUFCQ0Yx
OTM1MDFEODBEQzI1MURCODg2M0I4NjczRDhCNjc3MkRCMkQyQUUwOENEMTgyOUMzRjU0MjE0MTQ2
MUNBQ0U0RThBMUYxMTJBRDEzRkY0QTRERDg2NUE4OUFFQTk0RTk4NEQ0ODdFNTc5OEVGMDc2NDNC
OUNEIikpLAotICAgIHA6IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5
KCJFMDZCRkU1NzIyQTY4RTVENTk3REQ4REI5Mzc0ODNDQkEzNTJBQjgxNzIwOTI3NUFEQUQxMDM3
NzJCN0E4RUY0RUE5NDYzMTFBMkI1MTgwNTk1OTgxOENFQjM2MkYyNTdENjk5OEI0NzVGRUE5RTM0
RjJBMzAyMDVCNUY1QTdGRiIpKSwKLSAgICBxOiBCYXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0cmlu
Z1RvVWludDhBcnJheSgiRDFEMkRCREIxRjREQ0JGRThEMTZDREQyQ0Y4M0M3QjVGQURGQzc4OTFG
MjJGQzUyN0JGMjA4RjgxQjkyRjI1NDM1NjlDM0FEMjIyMjRCODJENDA3REVCNjVGNjUxRDA5RDI1
NThGRUU4QkM2RTVEQTUxRjZGMTMyMDZDQzE2NDciKSksCi0gICAgZHA6IEJhc2U2NFVSTC5zdHJp
bmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCI3M0VDQjRGM0QzQUQ0RjZBQkVGODc3RDU2Qzg0
Q0EzMzlEODhFRDk4QUYwQzM1NkQwNDBDRTU4QTYwNDYyREE0MkJBQzNDQzQ3NjU0QUYzNEVCNDIy
NkM2NTZGOTZDOEY5RDA1QjE2MTRDMTU4ODY1Nzc1NDY2OEUwNkEwRkY4NyIpKSwKLSAgICBkcTog
QmFzZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjVCOUM1QUNEQjMzRjNF
NUZFN0FFMUIzMzdERDMyNUIxMzhENUQ3QzJGMENCNEZBQjlCREUzMzM4NTBBMUJBMTgzNjMxRjU3
Mzc0NDFEMTAyNTAxRDE3OEEzQ0UwNjJFQjU0RTA3MkI1NEU2NjBCMTk2NTRDMTI0NzJCNUM5NDI1
IikpLAotICAgIHFpOiBCYXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgi
RDZBOTIwQjI0MTE3ODkyM0M1OUJDQkQxQTgxNTc2NDYxOTIyNUE5MEYyQzA5MEE5RkJENTk0QTYx
NTYxNTQyRDBERjE3OTU5MDQxM0MyNkM4QTcyRkM2RTE0RUM2M0EzNzcxNjk5NzA2NzFCM0ExRUI1
RTRGNERGMUE0Q0E3MjUiKSkKLX07Ci0KLXNob3VsZFRocm93KCdjcnlwdG8ud2Via2l0U3VidGxl
LmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoSlNPTi5zdHJpbmdpZnkocHVibGlj
S2V5SlNPTikpLCBudWxsLCBleHRyYWN0YWJsZSwgWyJzaWduIiwgInZlcmlmeSJdKScpOwotc2hv
dWxkVGhyb3coJ2NyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRvVWlu
dDhBcnJheShKU09OLnN0cmluZ2lmeShwcml2YXRlS2V5SlNPTikpLCBudWxsLCBleHRyYWN0YWJs
ZSwgWyJzaWduIiwgInZlcmlmeSJdKScpOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4K
ClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNh
c3NhLXBrY3MxLXYxXzUtaW1wb3J0LWp3ay1zbWFsbC1rZXkuaHRtbApfX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0
ZWQ6IHN2bjptaW1lLXR5cGUKIyMgLTEgKzAsMCAjIwotdGV4dC9odG1sClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUv
cnNhc3NhLXBrY3MxLXYxXzUtaW1wb3J0LWp3ay5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtaW1wb3J0LWp3ay5odG1s
CShyZXZpc2lvbiAyMjA5MzUpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3Jz
YXNzYS1wa2NzMS12MV81LWltcG9ydC1qd2suaHRtbAkobm9uZXhpc3RlbnQpCkBAIC0xLDY1ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVz
Y3JpcHRpb24oIlRlc3QgaW1wb3J0aW5nIGFuIFJTQSBrZXkgZm9yIFJTQVNTQS1QS0NTMS12MV81
LiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsK
LQotdmFyIHB1YmxpY0tleUpTT04gPSB7Ci0gICAga3R5OiAiUlNBIiwKLSAgICBhbGc6ICJSUzI1
NiIsCi0gICAgbjogInJjQ1VDdjdPYzFIVmFtMURJaEN6cWtuVGhXYXdPcDhRTGs4Wml5MnAxMEJ5
alFGQ2Fqb0ZpeXVBV2wtUjFXWFphZjR4aXRMUnJhY1Q5YWdwekl6Yy1NYkxTSElHZ1dRR08yMWxH
aUlteTVmdFotRDhiSEFxUnoyeTE1cHpENGM0Q0VvdTdYU1NMRG9SblIwUUc1TXNEaEQ2czJnVjlt
d0hrcnRrQ3h0TVdkQmktNzdhczh3R21sTlJsZGNPU2daRExLOFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0
T09FSWIweFVTZlBTejNMUFNDbnlZejY4YURqbUtWZU5ILWlnODU3T1NjeVdiR3lFeTNCaXc2NHF1
bjNqdVVsTldzSjN6bmdrT2R0ZVlXeXR4NVFyNFhLTnM2Ui1NeXlxNzJLVXAwMm1KRFppaXlpZ2x4
TUxfaTMtX0NlZWNDdyIsCi0gICAgZTogIkFRQUIiCi19OwotCi12YXIgcHJpdmF0ZUtleUpTT04g
PSB7Ci0gICAga3R5OiAiUlNBIiwKLSAgICBhbGc6ICJSUzI1NiIsCi0gICAgbjogInJjQ1VDdjdP
YzFIVmFtMURJaEN6cWtuVGhXYXdPcDhRTGs4Wml5MnAxMEJ5alFGQ2Fqb0ZpeXVBV2wtUjFXWFph
ZjR4aXRMUnJhY1Q5YWdwekl6Yy1NYkxTSElHZ1dRR08yMWxHaUlteTVmdFotRDhiSEFxUnoyeTE1
cHpENGM0Q0VvdTdYU1NMRG9SblIwUUc1TXNEaEQ2czJnVjltd0hrcnRrQ3h0TVdkQmktNzdhczh3
R21sTlJsZGNPU2daRExLOFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0T09FSWIweFVTZlBTejNMUFNDbnlZ
ejY4YURqbUtWZU5ILWlnODU3T1NjeVdiR3lFeTNCaXc2NHF1bjNqdVVsTldzSjN6bmdrT2R0ZVlX
eXR4NVFyNFhLTnM2Ui1NeXlxNzJLVXAwMm1KRFppaXlpZ2x4TUxfaTMtX0NlZWNDdyIsCi0gICAg
ZTogIkFRQUIiLAotICAgIGQ6ICJlTkxTMzdhQ3o3UlhTTlBEX0R0TEJKNmo1VDhjU3hkelJCQ2pQ
YUk2V2NHcUpwMTZscTNVVHd1b0RMQXFsQTlvR1ltMjM4ZHNJV3B1dWNQX2xRdGJXZS03U3B4b0k2
X3ZtWUdmN1lWVUh2MS1ERjlxaU9tU3JNbWR4TW5WT3pZWFk4UmFUNnRoUGpuX0o1Y2ZMVjJ4SV9M
d3NyTXRtcGRTeU5sZ1gwelRVaHd0dWFoZ0FLTUVDaFlqSDJFbmpIZEh3NnNZMi13QXBkY1FJN1VM
RTBvbzVSemJRWnBtdWhjTjloaUJjMEwzaGhGMHFvNTBtYmwwMl82NV9HUTdEcFZrWEJ4TmdSQkx6
bFBhYm16ekcyb0FoZmVmTGdZbVNDMW9wYUNrWEU2dlJXUU5XTkw0NVJaTlpGWU0zdW9KZ2hPTXFH
ZW9jTTBCcGpkQ2hIclBPbEZ2U1EiLAotICAgIHA6ICI0bWlUdUFqS01lSDV1SjVLQjM5N1FVd2hi
a1lFZ1NiY0EybWlmbVNrdkUyMDE4Z2I1NXFrQkhLMWVWcnlmMV9tNDNMTmxjNk9fYWs2Z2Z6ZFpJ
WnZTNU5DR2pQbDBxMDlwbFVwdThxRk9Tc3BCd0E2N3FHSDc2bEZsWkxuX2Q0eWdsUzd3ZkxydTRf
NVlzOHFMTHMtRHFWTHZpd3Bvc09ueXlXcXdNNUFYcDAiLAotICAgIHE6ICJ4SFlyemtpdnRtbnpf
c0djaG5XR2MwcS1wRE9rS2ljcHRScHYycE1GSUlYeG5GWDVhTWVFWElaalZ1alh0d1V5MVVsRklO
MkdaSlN2eTVLSjc5bXVfWHlObkZITXplZEgtQTNlZTN1OGgxVVVyWkYtdlV1MV9lNFVfeDY3Tk4x
ZGVkelVTS3luTjdwRmwzT2t1U2hNQldHVi1jd3pPUGRjVkFmVnVabHhVTWMiLAotICAgIGRwOiAi
ZkJ6RHpZRFVCbUJRR29wN0huMGR2Zl9UMjdWNlJxcGN0V28wNzRDUVpjRmJQMmF0RlZ0S1NqM3Zp
V1QzeGlkMlZIemNnaURIZGZwTTNuRVZsRU8xd3dJb25HQ1N2ZGpHRU9aaWlGVk9qclpBT1Z4QThn
dU9qeXlGdnFiWGtlMDZWd1BJSVZ2ZktlU1UyenVoYlBfXzF0dDZGX2Z4b3c0S2IyeG9uR1QwR0dr
IiwKLSAgICBkcTogImptRTJEaUlQZGh3RGdMWEFRcElhQnFRODFiTzNYZlZUX0xSVUxBd3d3d2xQ
dVFWMTQ4SDA0emxoOVRKNlkyR1pIWW9rVjFVMGVPQnBKeGZrYjdkTFl0cEpwdWlCalJmNHlJVUVv
R2xra0lfUWxKbkZTRnItWWpHUmRmTkhxV0JreGxTTVpMNzcwUjltSUFUbmRHa0g3ejV4LXI5S3dC
WkZDNEZDRzJoZ196RSIsCi0gICAgcWk6ICJZQ1hfcEx3Yk1CQTFUaFZIMFdjd21ueXRxTmNyTUNF
d1RtN0J5QTJlVTZuV2JRclVMdmY3bTlfa3pmTFVjanNucEFWbEJRRzVKTVhNeTBTcTRwdHdieXdz
YTUtRzhLQU9PT1IyTDN2NGhDLUV5czlmdGdGTV8zaTBvNDBlZVFINGIzaGFQYm50ckllTWc4SXps
T3VWWUtmOS0yUXVLRG9XZVJkZDdOc2R4VGsiCi19OwotCi1kZWJ1ZygiSW1wb3J0aW5nIGEgcHVi
bGljIGtleS4uLiIpOwotY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lp
VG9VaW50OEFycmF5KEpTT04uc3RyaW5naWZ5KHB1YmxpY0tleUpTT04pKSwgbnVsbCwgZXh0cmFj
dGFibGUsIFsic2lnbiIsICJ2ZXJpZnkiXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBw
dWJsaWNLZXkgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoInB1YmxpY0tleS50b1N0cmluZygpIiwg
Iidbb2JqZWN0IENyeXB0b0tleV0nIik7Ci0gICAgc2hvdWxkQmUoInB1YmxpY0tleS50eXBlIiwg
IidwdWJsaWMnIik7Ci0gICAgc2hvdWxkQmUoInB1YmxpY0tleS51c2FnZXMiLCAiWydzaWduJywn
dmVyaWZ5J10iKTsKLSAgICBzaG91bGRCZSgicHVibGljS2V5LmFsZ29yaXRobS5uYW1lIiwgIidS
U0FTU0EtUEtDUzEtdjFfNSciKTsKLSAgICBzaG91bGRCZSgicHVibGljS2V5LmFsZ29yaXRobS5t
b2R1bHVzTGVuZ3RoIiwgIjIwNDgiKTsKLSAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhw
dWJsaWNLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9uZW50KSIsICInMDEwMDAxJyIpOwotICAgIHNo
b3VsZEJlKCJwdWJsaWNLZXkuYWxnb3JpdGhtLmhhc2gubmFtZSIsICInU0hBLTI1NiciKTsKLSAg
ICBkZWJ1ZygiXG5JbXBvcnRpbmcgYSBwcml2YXRlIGtleS4uLiIpOwotICAgIHJldHVybiBjcnlw
dG8ud2Via2l0U3VidGxlLmltcG9ydEtleSgiandrIiwgYXNjaWlUb1VpbnQ4QXJyYXkoSlNPTi5z
dHJpbmdpZnkocHJpdmF0ZUtleUpTT04pKSwgbnVsbCwgZXh0cmFjdGFibGUsIFsic2lnbiIsICJ2
ZXJpZnkiXSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHByaXZhdGVLZXkgPSBy
ZXN1bHQ7Ci0gICAgc2hvdWxkQmUoInByaXZhdGVLZXkudG9TdHJpbmcoKSIsICInW29iamVjdCBD
cnlwdG9LZXldJyIpOwotICAgIHNob3VsZEJlKCJwcml2YXRlS2V5LnR5cGUiLCAiJ3ByaXZhdGUn
Iik7Ci0gICAgc2hvdWxkQmUoInByaXZhdGVLZXkudXNhZ2VzIiwgIlsnc2lnbicsJ3ZlcmlmeSdd
Iik7Ci0gICAgc2hvdWxkQmUoInByaXZhdGVLZXkuYWxnb3JpdGhtLm5hbWUiLCAiJ1JTQVNTQS1Q
S0NTMS12MV81JyIpOwotICAgIHNob3VsZEJlKCJwcml2YXRlS2V5LmFsZ29yaXRobS5tb2R1bHVz
TGVuZ3RoIiwgIjIwNDgiKTsKLSAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhwcml2YXRl
S2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkiLCAiJzAxMDAwMSciKTsKLSAgICBzaG91bGRC
ZSgicHJpdmF0ZUtleS5hbGdvcml0aG0uaGFzaC5uYW1lIiwgIidTSEEtMjU2JyIpOwotICAgIGZp
bmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1zaWduLXZl
cmlmeS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtp
dFN1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1zaWduLXZlcmlmeS1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDIyMDkzNSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvcnNhc3NhLXBr
Y3MxLXYxXzUtc2lnbi12ZXJpZnktZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKQEAgLTEsMjIg
KzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQxOiBXZWJLaXRTdWJ0bGVDcnlwdG8gaXMg
ZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBTdWJ0bGVDcnlwdG8gaW5zdGVhZC4KLVRlc3QgaW1wb3J0
aW5nIGFuIFJTQSBrZXkgZm9yIFJTQVNTQS1QS0NTMS12MV81LgotCi1PbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCi0KLQotSW1wb3J0aW5nIGEgcHVibGljIGtleS4uLgotCi1JbXBvcnRpbmcgYSBw
cml2YXRlIGtleS4uLgotCi1TaWduaW5nIHNvbWUgdGV4dC4uLgotUEFTUyBieXRlc1RvSGV4U3Ry
aW5nKG5ldyBVaW50OEFycmF5KHNpZ25hdHVyZSkpIGlzICcwZmQ5YThhZWY0Y2MxODc2YzBiNzYy
NTQ1MzM2YzZkMWZiMzE1YWUxNmFlNGI1ZTRiZjM0ZDM4NGQ4NTg1ZWE3YTAxZTc2ZWEwOWVlN2Y3
ZWU4ZDFjMTIyZTdkZDE1YjdjOTRhNTczYjJhYTA3MjAzZThkMTNiYzZmZDE2MTU2Y2Q4ZTVmMGMx
NWExNWRjY2I2MmQxNTIxMjdmY2EwOTg4MmZiNTNiYzNlNjBhYjU4NmQxNWI5NWNmNDExZTNhYWI0
YTFjMjMxYTdlOTFhYWIwOWVlM2Q0YjEzZDExZTk3NTA1ZGRmZjc3NjgzNDcwZGE1MTBlZTc2ZThi
ZDUzMGM1NmE4NWY5MDE2MjZhNWE3MTBmNzE2ZjExM2RmZTljZjZjNDczZWUxNmZhMjQ4YWVhMzQ4
MGExMDMzYWJlMzBmNGMxMjQzMjg5YTY2MWU2NGQ3ODE4YjU1Njk4MjgwNjg4MDk3MTM1OTY4YzZk
NGIwMjk0OTZkODVjYWIyYTY3ZTQ2OTY3Mzc3ODFmNzBlNDM5MmM3ZGY3MWJiZDZjOTI0NjU5NDdm
MDI5YTFkZTQ4MTYwYWNlZDExYjU3MjFiMWNkMjUwMzlmZTJjMTZjMmIzOGRlNzNkZjNiOWE4M2Uz
ZWE3NTVmZDBjZmU1MWNhMDZiNjFmYWRmNmQ4NDY3N2Y5NScKLQotVmVyaWZ5aW5nIHRoZSBzaWdu
YXR1cmUuLi4KLVBBU1MgdmVyaWZpY2F0aW9uUmVzdWx0IGlzIHRydWUKLQotVmVyaWZ5aW5nIGEg
YmFkIHNpZ25hdHVyZS4uLgotUEFTUyB2ZXJpZmljYXRpb25SZXN1bHQgaXMgZmFsc2UKLVBBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlv
dXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LXNpZ24tdmVyaWZ5
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2Fz
c2EtcGtjczEtdjFfNS1zaWduLXZlcmlmeS5odG1sCShyZXZpc2lvbiAyMjA5MzUpCisrKyBMYXlv
dXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3JzYXNzYS1wa2NzMS12MV81LXNpZ24tdmVyaWZ5
Lmh0bWwJKG5vbmV4aXN0ZW50KQpAQCAtMSw2OSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxo
dG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvY29tbW9uLmpzIj48L3Njcmlw
dD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0IGltcG9ydGluZyBh
biBSU0Ega2V5IGZvciBSU0FTU0EtUEtDUzEtdjFfNS4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRy
dWU7Ci0KLXZhciBleHRyYWN0YWJsZSA9IHRydWU7Ci0KLXZhciBwdWJsaWNLZXlKU09OID0gewot
ICAgIGt0eTogIlJTQSIsCi0gICAgYWxnOiAiUlMyNTYiLAotICAgIG46IEJhc2U2NFVSTC5zdHJp
bmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCJBREMwOTQwQUZFQ0U3MzUxRDU2QTZENDMyMjEw
QjNBQTQ5RDM4NTY2QjAzQTlGMTAyRTRGMTk4QjJEQTlENzQwNzI4RDAxNDI2QTNBMDU4QjJCODA1
QTVGOTFENTY1RDk2OUZFMzE4QUQyRDFBREE3MTNGNUE4MjlDQzhDRENGOEM2Q0I0ODcyMDY4MTY0
MDYzQjZENjUxQTIyMjZDQjk3RUQ2N0UwRkM2QzcwMkE0NzNEQjJENzlBNzMwRjg3MzgwODRBMkVF
RDc0OTIyQzNBMTE5RDFEMTAxQjkzMkMwRTEwRkFCMzY4MTVGNjZDMDc5MkJCNjQwQjFCNEM1OUQw
NjJGQkJFREFCM0NDMDY5QTUzNTE5NUQ3MEU0QTA2NDMyQ0FGMTQ5QzI0QTAwMzUzQTBCOTlGN0NG
NUIxNzI3M0NCNEUzODQyMUJEMzE1MTI3Q0Y0QjNEQ0IzRDIwQTdDOThDRkFGMUEwRTM5OEE1NUUz
NDdGQTI4M0NFN0IzOTI3MzI1OUIxQjIxMzJEQzE4QjBFQjhBQUU5Rjc4RUU1MjUzNTZCMDlERjM5
RTA5MEU3NkQ3OTg1QjJCNzFFNTBBRjg1Q0EzNkNFOTFGOENDQjJBQkJEOEE1MjlEMzY5ODkwRDk4
QTJDQTI4MjVDNEMyRkY4QjdGQkYwOUU3OUMwQiIpKSwKLSAgICBlOiBCYXNlNjRVUkwuc3RyaW5n
aWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiMDEwMDAxIikpLAotfTsKLQotdmFyIHByaXZhdGVL
ZXlKU09OID0gewotICAgIGt0eTogIlJTQSIsCi0gICAgYWxnOiAiUlMyNTYiLAotICAgIG46IEJh
c2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCJBREMwOTQwQUZFQ0U3MzUx
RDU2QTZENDMyMjEwQjNBQTQ5RDM4NTY2QjAzQTlGMTAyRTRGMTk4QjJEQTlENzQwNzI4RDAxNDI2
QTNBMDU4QjJCODA1QTVGOTFENTY1RDk2OUZFMzE4QUQyRDFBREE3MTNGNUE4MjlDQzhDRENGOEM2
Q0I0ODcyMDY4MTY0MDYzQjZENjUxQTIyMjZDQjk3RUQ2N0UwRkM2QzcwMkE0NzNEQjJENzlBNzMw
Rjg3MzgwODRBMkVFRDc0OTIyQzNBMTE5RDFEMTAxQjkzMkMwRTEwRkFCMzY4MTVGNjZDMDc5MkJC
NjQwQjFCNEM1OUQwNjJGQkJFREFCM0NDMDY5QTUzNTE5NUQ3MEU0QTA2NDMyQ0FGMTQ5QzI0QTAw
MzUzQTBCOTlGN0NGNUIxNzI3M0NCNEUzODQyMUJEMzE1MTI3Q0Y0QjNEQ0IzRDIwQTdDOThDRkFG
MUEwRTM5OEE1NUUzNDdGQTI4M0NFN0IzOTI3MzI1OUIxQjIxMzJEQzE4QjBFQjhBQUU5Rjc4RUU1
MjUzNTZCMDlERjM5RTA5MEU3NkQ3OTg1QjJCNzFFNTBBRjg1Q0EzNkNFOTFGOENDQjJBQkJEOEE1
MjlEMzY5ODkwRDk4QTJDQTI4MjVDNEMyRkY4QjdGQkYwOUU3OUMwQiIpKSwKLSAgICBlOiBCYXNl
NjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiMDEwMDAxIikpLAotICAgIGQ6
IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9VaW50OEFycmF5KCI3OEQyRDJERkI2ODJD
RkI0NTc0OEQzQzNGQzNCNEIwNDlFQTNFNTNGMUM0QjE3NzM0NDEwQTMzREEyM0E1OUMxQUEyNjlE
N0E5NkFERDQ0RjBCQTgwQ0IwMkE5NDBGNjgxOTg5QjZERkM3NkMyMTZBNkVCOUMzRkY5NTBCNUI1
OUVGQkI0QTlDNjgyM0FGRUY5OTgxOUZFRDg1NTQxRUZEN0UwQzVGNkE4OEU5OTJBQ0M5OURDNEM5
RDUzQjM2MTc2M0M0NUE0RkFCNjEzRTM5RkYyNzk3MUYyRDVEQjEyM0YyRjBCMkIzMkQ5QTk3NTJD
OEQ5NjA1RjRDRDM1MjFDMkRCOUE4NjAwMEEzMDQwQTE2MjMxRjYxMjc4Qzc3NDdDM0FCMThEQkVD
MDBBNUQ3MTAyM0I1MEIxMzRBMjhFNTFDREI0MTlBNjZCQTE3MERGNjE4ODE3MzQyRjc4NjExNzRB
QThFNzQ5OUI5NzREQkZFQjlGQzY0M0IwRTk1NjQ1QzFDNEQ4MTEwNEJDRTUzREE2RTZDRjMxQjZB
MDA4NUY3OUYyRTA2MjY0ODJENjhBNUEwQTQ1QzRFQUY0NTY0MEQ1OEQyRjhFNTE2NEQ2NDU2MENE
RUVBMDk4MjEzOENBODY3QTg3MENEMDFBNjM3NDI4NDdBQ0YzQTUxNkY0OSIpKSwKLSAgICBwOiBC
YXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiRTI2ODkzQjgwOENBMzFF
MUY5Qjg5RTRBMDc3RjdCNDE0QzIxNkU0NjA0ODEyNkRDMDM2OUEyN0U2NEE0QkM0REI0RDdDODFC
RTc5QUE0MDQ3MkI1Nzk1QUYyN0Y1RkU2RTM3MkNEOTVDRThFRkRBOTNBODFGQ0RENjQ4NjZGNEI5
MzQyMUEzM0U1RDJBRDNEQTY1NTI5QkJDQTg1MzkyQjI5MDcwMDNBRUVBMTg3RUZBOTQ1OTU5MkU3
RkRERTMyODI1NEJCQzFGMkVCQkI4RkY5NjJDRjJBMkNCQjNFMEVBNTRCQkUyQzI5QTJDM0E3Q0Iy
NUFBQzBDRTQwNUU5RCIpKSwKLSAgICBxOiBCYXNlNjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1Rv
VWludDhBcnJheSgiQzQ3NjJCQ0U0OEFGQjY2OUYzRkVDMTlDODY3NTg2NzM0QUJFQTQzM0E0MkEy
NzI5QjUxQTZGREE5MzA1MjA4NUYxOUM1NUY5NjhDNzg0NUM4NjYzNTZFOEQ3QjcwNTMyRDU0OTQ1
MjBERDg2NjQ5NEFGQ0I5Mjg5RUZEOUFFRkQ3QzhEOUM1MUNDQ0RFNzQ3RjgwRERFN0I3QkJDODc1
NTE0QUQ5MTdFQkQ0QkI1RkRFRTE0RkYxRUJCMzRERDVENzlEQ0Q0NDhBQ0E3MzdCQTQ1OTc3M0E0
QjkyODRDMDU2MTk1RjlDQzMzMzhGNzVDNTQwN0Q1Qjk5OTcxNTBDNyIpKSwKLSAgICBkcDogQmFz
ZTY0VVJMLnN0cmluZ2lmeShoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjdDMUNDM0NEODBENDA2NjA1
MDFBOEE3QjFFN0QxREJERkZEM0RCQjU3QTQ2QUE1Q0I1NkEzNEVGODA5MDY1QzE1QjNGNjZBRDE1
NUI0QTRBM0RFRjg5NjRGN0M2Mjc3NjU0N0NEQzgyMjBDNzc1RkE0Q0RFNzExNTk0NDNCNUMzMDIy
ODlDNjA5MkJERDhDNjEwRTY2Mjg4NTU0RThFQjY0MDM5NUM0MEYyMEI4RThGMkM4NUJFQTZENzkx
RUQzQTU3MDNDODIxNUJERjI5RTQ5NERCM0JBMTZDRkZGRkQ2REI3QTE3RjdGMUEzMEUwQTZGNkM2
ODlDNjRGNDE4NjkiKSksCi0gICAgZHE6IEJhc2U2NFVSTC5zdHJpbmdpZnkoaGV4U3RyaW5nVG9V
aW50OEFycmF5KCI4RTYxMzYwRTIyMEY3NjFDMDM4MEI1QzA0MjkyMUEwNkE0M0NENUIzQjc1REY1
NTNGQ0I0NTQyQzBDMzBDMzA5NEZCOTA1NzVFM0MxRjRFMzM5NjFGNTMyN0E2MzYxOTkxRDhBMjQ1
NzU1MzQ3OEUwNjkyNzE3RTQ2RkI3NEI2MkRBNDlBNkU4ODE4RDE3RjhDODg1MDRBMDY5NjQ5MDhG
RDA5NDk5QzU0ODVBRkU2MjMxOTE3NUYzNDdBOTYwNjRDNjU0OEM2NEJFRkJEMTFGNjYyMDA0RTc3
NDY5MDdFRjNFNzFGQUJGNEFDMDE2NDUwQjgxNDIxQjY4NjBGRjMxIikpLAotICAgIHFpOiBCYXNl
NjRVUkwuc3RyaW5naWZ5KGhleFN0cmluZ1RvVWludDhBcnJheSgiNjAyNUZGQTRCQzFCMzAxMDM1
NEUxNTQ3RDE2NzMwOUE3Q0FEQThENzJCMzAyMTMwNEU2RUMxQzgwRDlFNTNBOUQ2NkQwQUQ0MkVG
N0ZCOUJERkU0Q0RGMkQ0NzIzQjI3QTQwNTY1MDUwMUI5MjRDNUNDQ0I0NEFBRTI5QjcwNkYyQzJD
NkI5Rjg2RjBBMDBFMzhFNDc2MkY3QkY4ODQyRjg0Q0FDRjVGQjYwMTRDRkY3OEI0QTM4RDFFNzkw
MUY4NkY3ODVBM0RCOUVEQUM4NzhDODNDMjMzOTRFQjk1NjBBN0ZERkI2NDJFMjgzQTE2NzkxNzVE
RUNEQjFEQzUzOSIpKQotfTsKLQotdmFyIGRhdGEgPSBhc2NpaVRvVWludDhBcnJheSgiSGVsbG8s
IHdvcmxkISIpOwotCi1kZWJ1ZygiSW1wb3J0aW5nIGEgcHVibGljIGtleS4uLiIpOwotY3J5cHRv
LndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3Ry
aW5naWZ5KHB1YmxpY0tleUpTT04pKSwgbnVsbCwgZXh0cmFjdGFibGUsIFsic2lnbiIsICJ2ZXJp
ZnkiXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBwdWJsaWNLZXkgPSByZXN1bHQ7Ci0g
ICAgZGVidWcoIlxuSW1wb3J0aW5nIGEgcHJpdmF0ZSBrZXkuLi4iKTsKLSAgICByZXR1cm4gY3J5
cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KEpTT04u
c3RyaW5naWZ5KHByaXZhdGVLZXlKU09OKSksIG51bGwsIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAi
dmVyaWZ5Il0pOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAgICBwcml2YXRlS2V5ID0g
cmVzdWx0OwotICAgIGRlYnVnKCJcblNpZ25pbmcgc29tZSB0ZXh0Li4uIik7Ci0gICAgcmV0dXJu
IGNyeXB0by53ZWJraXRTdWJ0bGUuc2lnbih7IG5hbWU6ICJSU0FTU0EtUEtDUzEtdjFfNSIsIGhh
c2g6ICJTSEEtMjU2IiB9LCBwcml2YXRlS2V5LCBkYXRhKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVz
dWx0KSB7Ci0gICAgc2lnbmF0dXJlID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJieXRlc1RvSGV4
U3RyaW5nKG5ldyBVaW50OEFycmF5KHNpZ25hdHVyZSkpIiwgIicwZmQ5YThhZWY0Y2MxODc2YzBi
NzYyNTQ1MzM2YzZkMWZiMzE1YWUxNmFlNGI1ZTRiZjM0ZDM4NGQ4NTg1ZWE3YTAxZTc2ZWEwOWVl
N2Y3ZWU4ZDFjMTIyZTdkZDE1YjdjOTRhNTczYjJhYTA3MjAzZThkMTNiYzZmZDE2MTU2Y2Q4ZTVm
MGMxNWExNWRjY2I2MmQxNTIxMjdmY2EwOTg4MmZiNTNiYzNlNjBhYjU4NmQxNWI5NWNmNDExZTNh
YWI0YTFjMjMxYTdlOTFhYWIwOWVlM2Q0YjEzZDExZTk3NTA1ZGRmZjc3NjgzNDcwZGE1MTBlZTc2
ZThiZDUzMGM1NmE4NWY5MDE2MjZhNWE3MTBmNzE2ZjExM2RmZTljZjZjNDczZWUxNmZhMjQ4YWVh
MzQ4MGExMDMzYWJlMzBmNGMxMjQzMjg5YTY2MWU2NGQ3ODE4YjU1Njk4MjgwNjg4MDk3MTM1OTY4
YzZkNGIwMjk0OTZkODVjYWIyYTY3ZTQ2OTY3Mzc3ODFmNzBlNDM5MmM3ZGY3MWJiZDZjOTI0NjU5
NDdmMDI5YTFkZTQ4MTYwYWNlZDExYjU3MjFiMWNkMjUwMzlmZTJjMTZjMmIzOGRlNzNkZjNiOWE4
M2UzZWE3NTVmZDBjZmU1MWNhMDZiNjFmYWRmNmQ4NDY3N2Y5NSciKTsKLQotICAgIGRlYnVnKCJc
blZlcmlmeWluZyB0aGUgc2lnbmF0dXJlLi4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRT
dWJ0bGUudmVyaWZ5KHsgbmFtZTogIlJTQVNTQS1QS0NTMS12MV81IiwgaGFzaDogIlNIQS0yNTYi
IH0sIHB1YmxpY0tleSwgc2lnbmF0dXJlLCBkYXRhKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0
KSB7Ci0gICAgdmVyaWZpY2F0aW9uUmVzdWx0ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJ2ZXJp
ZmljYXRpb25SZXN1bHQiLCAidHJ1ZSIpOwotICAgIGRlYnVnKCJcblZlcmlmeWluZyBhIGJhZCBz
aWduYXR1cmUuLi4iKTsKLSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS52ZXJpZnkoeyBu
YW1lOiAiUlNBU1NBLVBLQ1MxLXYxXzUiLCBoYXNoOiAiU0hBLTI1NiIgfSwgcHVibGljS2V5LCBu
ZXcgVWludDhBcnJheSgyNTYpLCBkYXRhKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0g
ICAgdmVyaWZpY2F0aW9uUmVzdWx0ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJ2ZXJpZmljYXRp
b25SZXN1bHQiLCAiZmFsc2UiKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOwotPC9zY3JpcHQ+
Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0
bGUvc2hhLTEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93
ZWJraXRTdWJ0bGUvc2hhLTEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMjA5MzUpCisrKyBMYXlv
dXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3NoYS0xLWV4cGVjdGVkLnR4dAkobm9uZXhpc3Rl
bnQpCkBAIC0xLDE3ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBXZWJLaXRTdWJ0
bGVDcnlwdG8gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBTdWJ0bGVDcnlwdG8gaW5zdGVhZC4K
LVRlc3QgY3J5cHRvLndlYmtpdFN1YnRsZS5kaWdlc3QuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KLQotCi1TSEExIG9mIFtdCi1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJy
YXkoZGlnZXN0KSkgaXMgJ2RhMzlhM2VlNWU2YjRiMGQzMjU1YmZlZjk1NjAxODkwYWZkODA3MDkn
Ci1TSEExIG9mIFsweDBdCi1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGln
ZXN0KSkgaXMgJzViYTkzYzlkYjBjZmY5M2Y1MmI1MjFkNzQyMGU0M2Y2ZWRhMjc4NGYnCi1TSEEx
IG9mIFswLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMF0KLVBBU1MgYnl0ZXNUb0hleFN0
cmluZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSBpcyAnMmM3ZTdjMzg0Zjc4Mjk2OTQyODJiMWUz
YTYyMTZkZWY4MDgyZDA1NScKLVBBU1MgY3J5cHRvLndlYmtpdFN1YnRsZS5nZW5lcmF0ZUtleSgn
c2hhLTEnKSB0aHJldyBleGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3I6IFRoZSBvcGVyYXRpb24g
aXMgbm90IHN1cHBvcnRlZC4uCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRF
U1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEt
MS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvc2hh
LTEuaHRtbAkocmV2aXNpb24gMjIwOTM1KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1
YnRsZS9zaGEtMS5odG1sCShub25leGlzdGVudCkKQEAgLTEsNDQgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5q
cyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgot
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBj
cnlwdG8ud2Via2l0U3VidGxlLmRpZ2VzdC4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0K
LVByb21pc2UucmVzb2x2ZShudWxsKS50aGVuKGZ1bmN0aW9uKCkgewotICAgIGRlYnVnKCJTSEEx
IG9mIFtdIik7Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0KCdzaGEtMScs
IG5ldyBVaW50OEFycmF5KFtdKSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGRp
Z2VzdCA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhB
cnJheShkaWdlc3QpKSIsICInZGEzOWEzZWU1ZTZiNGIwZDMyNTViZmVmOTU2MDE4OTBhZmQ4MDcw
OSciKTsKLQotICAgIGRlYnVnKCJTSEExIG9mIFsweDBdIikKLSAgICByZXR1cm4gY3J5cHRvLndl
YmtpdFN1YnRsZS5kaWdlc3Qoe25hbWU6ICdzaGEtMSd9LCBuZXcgVWludDhBcnJheShbMF0pKTsK
LX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgZGlnZXN0ID0gcmVzdWx0OwotICAgIHNo
b3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkpIiwgIic1YmE5
M2M5ZGIwY2ZmOTNmNTJiNTIxZDc0MjBlNDNmNmVkYTI3ODRmJyIpOwotCi0gICAgZGVidWcoIlNI
QTEgb2YgWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwXSIpOwotICAgIHZhciBkYXRh
ID0gbmV3IFVpbnQ4QXJyYXkoWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwXSk7Ci0g
ICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0KHtuYW1lOiAnc2hhLTEnfSwgZGF0
YSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGRpZ2VzdCA9IHJlc3VsdDsKLSAg
ICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSIsICIn
MmM3ZTdjMzg0Zjc4Mjk2OTQyODJiMWUzYTYyMTZkZWY4MDgyZDA1NSciKTsKLQotICAgIC8vIEFs
bCBTSEEtMSBjYW4gZG8gaXMgZGlnZXN0LgotICAgIHNob3VsZFRocm93KCJjcnlwdG8ud2Via2l0
U3VidGxlLmdlbmVyYXRlS2V5KCdzaGEtMScpIik7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsK
LTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8v
d2Via2l0U3VidGxlL3NoYS0yMjQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTIyNC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIy
MDkzNSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTIyNC1leHBlY3Rl
ZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSwxNiArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxp
bmUgMTogV2ViS2l0U3VidGxlQ3J5cHRvIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgU3VidGxl
Q3J5cHRvIGluc3RlYWQuCi1UZXN0IGNyeXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0LgotCi1PbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotU0hBMjI0IG9mIFtdCi1QQVNTIGJ5dGVzVG9IZXhT
dHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkgaXMgJ2QxNGEwMjhjMmEzYTJiYzk0NzYxMDJi
YjI4ODIzNGM0MTVhMmIwMWY4MjhlYTYyYWM1YjNlNDJmJwotU0hBMjI0IG9mIFsweDBdCi1QQVNT
IGJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkgaXMgJ2ZmZjkyOTJiNDIw
MTYxN2JkYzRkMzA1M2ZjZTAyNzM0MTY2YTY4M2Q3ZDg1OGE3ZjVmNTliMDczJwotU0hBMjI0IG9m
IFswLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMF0KLVBBU1MgYnl0ZXNUb0hleFN0cmlu
ZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSBpcyAnNzY3ZDBjZGMxMTA3OWJhOGRjYTI3NmRmNWM0
Yjg1NTA3ZGU2N2RjZTQ3ZWRhNGNkOTE5NmQzMTInCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtp
dFN1YnRsZS9zaGEtMjI0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dl
YmtpdFN1YnRsZS9zaGEtMjI0Lmh0bWwJKHJldmlzaW9uIDIyMDkzNSkKKysrIExheW91dFRlc3Rz
L2NyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTIyNC5odG1sCShub25leGlzdGVudCkKQEAgLTEsNDEg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJk
ZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1k
ZXNjcmlwdGlvbigiVGVzdCBjcnlwdG8ud2Via2l0U3VidGxlLmRpZ2VzdC4iKTsKLQotanNUZXN0
SXNBc3luYyA9IHRydWU7Ci0KLVByb21pc2UucmVzb2x2ZShudWxsKS50aGVuKGZ1bmN0aW9uKCkg
ewotICAgIGRlYnVnKCJTSEEyMjQgb2YgW10iKTsKLSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1
YnRsZS5kaWdlc3QoJ3NoYS0yMjQnLCBuZXcgVWludDhBcnJheShbXSkpOwotfSkudGhlbihmdW5j
dGlvbihyZXN1bHQpIHsKLSAgICBkaWdlc3QgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVz
VG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkiLCAiJ2QxNGEwMjhjMmEzYTJiYzk0
NzYxMDJiYjI4ODIzNGM0MTVhMmIwMWY4MjhlYTYyYWM1YjNlNDJmJyIpOwotCi0gICAgZGVidWco
IlNIQTIyNCBvZiBbMHgwXSIpCi0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0
KHtuYW1lOiAnc2hhLTIyNCd9LCBuZXcgVWludDhBcnJheShbMF0pKTsKLX0pLnRoZW4oZnVuY3Rp
b24ocmVzdWx0KSB7Ci0gICAgZGlnZXN0ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJieXRlc1Rv
SGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkpIiwgIidmZmY5MjkyYjQyMDE2MTdiZGM0
ZDMwNTNmY2UwMjczNDE2NmE2ODNkN2Q4NThhN2Y1ZjU5YjA3MyciKTsKLQotICAgIGRlYnVnKCJT
SEEyMjQgb2YgWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwXSIpOwotICAgIHZhciBk
YXRhID0gbmV3IFVpbnQ4QXJyYXkoWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwXSk7
Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0KHtuYW1lOiAnc2hhLTIyNCd9
LCBkYXRhKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgZGlnZXN0ID0gcmVzdWx0
OwotICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkp
IiwgIic3NjdkMGNkYzExMDc5YmE4ZGNhMjc2ZGY1YzRiODU1MDdkZTY3ZGNlNDdlZGE0Y2Q5MTk2
ZDMxMiciKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4K
LTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTI1Ni1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRs
ZS9zaGEtMjU2LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjIwOTM1KQorKysgTGF5b3V0VGVzdHMv
Y3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtMjU2LWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCkBA
IC0xLDE2ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBXZWJLaXRTdWJ0bGVDcnlw
dG8gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBTdWJ0bGVDcnlwdG8gaW5zdGVhZC4KLVRlc3Qg
Y3J5cHRvLndlYmtpdFN1YnRsZS5kaWdlc3QuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
LQotCi1TSEEyNTYgb2YgW10KLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShk
aWdlc3QpKSBpcyAnZTNiMGM0NDI5OGZjMWMxNDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5
MzRjYTQ5NTk5MWI3ODUyYjg1NScKLVNIQTI1NiBvZiBbMHgwXQotUEFTUyBieXRlc1RvSGV4U3Ry
aW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkpIGlzICc2ZTM0MGI5Y2ZmYjM3YTk4OWNhNTQ0ZTZi
Yjc4MGEyYzc4OTAxZDNmYjMzNzM4NzY4NTExYTMwNjE3YWZhMDFkJwotU0hBMjU2IG9mIFswLCAx
LCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAxMF0KLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhuZXcg
VWludDhBcnJheShkaWdlc3QpKSBpcyAnNzhhNjI3MzEwM2QxN2MzOWEwYjYxMjZlMjI2Y2VjNzBl
MzMzMzdmNGJjNmEzODA2NzQwMWI1NGEzM2U3OGVhZCcKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Vi
a2l0U3VidGxlL3NoYS0yNTYuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8v
d2Via2l0U3VidGxlL3NoYS0yNTYuaHRtbAkocmV2aXNpb24gMjIwOTM1KQorKysgTGF5b3V0VGVz
dHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtMjU2Lmh0bWwJKG5vbmV4aXN0ZW50KQpAQCAtMSw0
MSArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9
ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4K
LWRlc2NyaXB0aW9uKCJUZXN0IGNyeXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0LiIpOwotCi1qc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKLQotUHJvbWlzZS5yZXNvbHZlKG51bGwpLnRoZW4oZnVuY3Rpb24o
KSB7Ci0gICAgZGVidWcoIlNIQTI1NiBvZiBbXSIpOwotICAgIHJldHVybiBjcnlwdG8ud2Via2l0
U3VidGxlLmRpZ2VzdCgnc2hhLTI1NicsIG5ldyBVaW50OEFycmF5KFtdKSk7Ci19KS50aGVuKGZ1
bmN0aW9uKHJlc3VsdCkgewotICAgIGRpZ2VzdCA9IHJlc3VsdDsKLSAgICBzaG91bGRCZSgiYnl0
ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSIsICInZTNiMGM0NDI5OGZjMWMx
NDlhZmJmNGM4OTk2ZmI5MjQyN2FlNDFlNDY0OWI5MzRjYTQ5NTk5MWI3ODUyYjg1NSciKTsKLQot
ICAgIGRlYnVnKCJTSEEyNTYgb2YgWzB4MF0iKQotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3Vi
dGxlLmRpZ2VzdCh7bmFtZTogJ3NoYS0yNTYnfSwgbmV3IFVpbnQ4QXJyYXkoWzBdKSk7Ci19KS50
aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGRpZ2VzdCA9IHJlc3VsdDsKLSAgICBzaG91bGRC
ZSgiYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSIsICInNmUzNDBiOWNm
ZmIzN2E5ODljYTU0NGU2YmI3ODBhMmM3ODkwMWQzZmIzMzczODc2ODUxMWEzMDYxN2FmYTAxZCci
KTsKLQotICAgIGRlYnVnKCJTSEEyNTYgb2YgWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDks
IDEwXSIpOwotICAgIHZhciBkYXRhID0gbmV3IFVpbnQ4QXJyYXkoWzAsIDEsIDIsIDMsIDQsIDUs
IDYsIDcsIDgsIDksIDEwXSk7Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0
KHtuYW1lOiAnc2hhLTI1Nid9LCBkYXRhKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0g
ICAgZGlnZXN0ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKG5ldyBV
aW50OEFycmF5KGRpZ2VzdCkpIiwgIic3OGE2MjczMTAzZDE3YzM5YTBiNjEyNmUyMjZjZWM3MGUz
MzMzN2Y0YmM2YTM4MDY3NDAxYjU0YTMzZTc4ZWFkJyIpOwotICAgIGZpbmlzaEpTVGVzdCgpOwot
fSk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvY3J5
cHRvL3dlYmtpdFN1YnRsZS9zaGEtMzg0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3NoYS0zODQtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAyMjA5MzUpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3NoYS0zODQtZXhw
ZWN0ZWQudHh0CShub25leGlzdGVudCkKQEAgLTEsMTYgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDE6IFdlYktpdFN1YnRsZUNyeXB0byBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIFN1
YnRsZUNyeXB0byBpbnN0ZWFkLgotVGVzdCBjcnlwdG8ud2Via2l0U3VidGxlLmRpZ2VzdC4KLQot
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVNIQTM4NCBvZiBbXQotUEFTUyBieXRlc1Rv
SGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkpIGlzICczOGIwNjBhNzUxYWM5NjM4NGNk
OTMyN2ViMWIxZTM2YTIxZmRiNzExMTRiZTA3NDM0YzBjYzdiZjYzZjZlMWRhMjc0ZWRlYmZlNzZm
NjVmYmQ1MWFkMmYxNDg5OGI5NWInCi1TSEEzODQgb2YgWzB4MF0KLVBBU1MgYnl0ZXNUb0hleFN0
cmluZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSBpcyAnYmVjMDIxYjRmMzY4ZTMwNjkxMzRlMDEy
YzJiNDMwNzA4M2QzYTliZGQyMDZlMjRlNWYwZDg2ZTEzZDY2MzY2NTU5MzNlYzJiNDEzNDY1OTY2
ODE3YTljMjA4YTExNzE3JwotU0hBMzg0IG9mIFswLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5
LCAxMF0KLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSBpcyAn
ODliZmNmNTY5YWU0YWY3MTg1MTBkYTc4YzY3NDE0MTA5ZjU3MzliYjVjNDBkNTFjOWM4YzUwZTJi
MmNlZTg2ZjJmODBjOGI5ZDY4ZjdjMDEyMDFhMDcxNDU3MmZlNjAyJwotUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Ny
eXB0by93ZWJraXRTdWJ0bGUvc2hhLTM4NC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2NyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTM4NC5odG1sCShyZXZpc2lvbiAyMjA5MzUpCisrKyBM
YXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3NoYS0zODQuaHRtbAkobm9uZXhpc3RlbnQp
CkBAIC0xLDQxICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+
Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08
c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3QgY3J5cHRvLndlYmtpdFN1YnRsZS5kaWdlc3QuIik7
Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1Qcm9taXNlLnJlc29sdmUobnVsbCkudGhlbihm
dW5jdGlvbigpIHsKLSAgICBkZWJ1ZygiU0hBMzg0IG9mIFtdIik7Ci0gICAgcmV0dXJuIGNyeXB0
by53ZWJraXRTdWJ0bGUuZGlnZXN0KCdzaGEtMzg0JywgbmV3IFVpbnQ4QXJyYXkoW10pKTsKLX0p
LnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgZGlnZXN0ID0gcmVzdWx0OwotICAgIHNob3Vs
ZEJlKCJieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkpIiwgIiczOGIwNjBh
NzUxYWM5NjM4NGNkOTMyN2ViMWIxZTM2YTIxZmRiNzExMTRiZTA3NDM0YzBjYzdiZjYzZjZlMWRh
Mjc0ZWRlYmZlNzZmNjVmYmQ1MWFkMmYxNDg5OGI5NWInIik7Ci0KLSAgICBkZWJ1ZygiU0hBMzg0
IG9mIFsweDBdIikKLSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS5kaWdlc3Qoe25hbWU6
ICdzaGEtMzg0J30sIG5ldyBVaW50OEFycmF5KFswXSkpOwotfSkudGhlbihmdW5jdGlvbihyZXN1
bHQpIHsKLSAgICBkaWdlc3QgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJp
bmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkiLCAiJ2JlYzAyMWI0ZjM2OGUzMDY5MTM0ZTAxMmMy
YjQzMDcwODNkM2E5YmRkMjA2ZTI0ZTVmMGQ4NmUxM2Q2NjM2NjU1OTMzZWMyYjQxMzQ2NTk2Njgx
N2E5YzIwOGExMTcxNyciKTsKLQotICAgIGRlYnVnKCJTSEEzODQgb2YgWzAsIDEsIDIsIDMsIDQs
IDUsIDYsIDcsIDgsIDksIDEwXSIpOwotICAgIHZhciBkYXRhID0gbmV3IFVpbnQ4QXJyYXkoWzAs
IDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwXSk7Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJr
aXRTdWJ0bGUuZGlnZXN0KHtuYW1lOiAnc2hhLTM4NCd9LCBkYXRhKTsKLX0pLnRoZW4oZnVuY3Rp
b24ocmVzdWx0KSB7Ci0gICAgZGlnZXN0ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJieXRlc1Rv
SGV4U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkpIiwgIic4OWJmY2Y1NjlhZTRhZjcxODUx
MGRhNzhjNjc0MTQxMDlmNTczOWJiNWM0MGQ1MWM5YzhjNTBlMmIyY2VlODZmMmY4MGM4YjlkNjhm
N2MwMTIwMWEwNzE0NTcyZmU2MDInIik7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2Ny
aXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0
U3VidGxlL3NoYS01MTItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Ny
eXB0by93ZWJraXRTdWJ0bGUvc2hhLTUxMi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIyMDkzNSkK
KysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTUxMi1leHBlY3RlZC50eHQJ
KG5vbmV4aXN0ZW50KQpAQCAtMSwxNiArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTog
V2ViS2l0U3VidGxlQ3J5cHRvIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgU3VidGxlQ3J5cHRv
IGluc3RlYWQuCi1UZXN0IGNyeXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0LgotCi1PbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCi0KLQotU0hBNTEyIG9mIFtdCi1QQVNTIGJ5dGVzVG9IZXhTdHJpbmco
bmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkgaXMgJ2NmODNlMTM1N2VlZmI4YmRmMTU0Mjg1MGQ2NmQ4
MDA3ZDYyMGU0MDUwYjU3MTVkYzgzZjRhOTIxZDM2Y2U5Y2U0N2QwZDEzYzVkODVmMmIwZmY4MzE4
ZDI4NzdlZWMyZjYzYjkzMWJkNDc0MTdhODFhNTM4MzI3YWY5MjdkYTNlJwotU0hBNTEyIG9mIFsw
eDBdCi1QQVNTIGJ5dGVzVG9IZXhTdHJpbmcobmV3IFVpbnQ4QXJyYXkoZGlnZXN0KSkgaXMgJ2I4
MjQ0ZDAyODk4MWQ2OTNhZjdiNDU2YWY4ZWZhNGNhZDYzZDI4MmUxOWZmMTQ5NDJjMjQ2ZTUwZDkz
NTFkMjI3MDRhODAyYTcxYzM1ODBiNjM3MGRlNGNlYjI5M2MzMjRhODQyMzM0MjU1N2Q0ZTVjMzg0
MzhmMGUzNjkxMGVlJwotU0hBNTEyIG9mIFswLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5LCAx
MF0KLVBBU1MgYnl0ZXNUb0hleFN0cmluZyhuZXcgVWludDhBcnJheShkaWdlc3QpKSBpcyAnOGZm
YWVlMGNjY2MxNjI4NTFmYWYwNTFhZTM4NjY3ZWVmZDQyM2MwMTY0YzUwMDU1ZjhhZGUwMGFmYzM3
MDVlM2NkZWI5OTAwMDA0YjBlNDI2Y2E2NmFiNjNhYTNiOTliMDc1MjczZjQ0ZmQzN2MyMmEzNTU1
YzZmZDFmMzdjY2InCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09N
UExFVEUKLQpJbmRleDogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtNTEyLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtNTEy
Lmh0bWwJKHJldmlzaW9uIDIyMDkzNSkKKysrIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0
bGUvc2hhLTUxMi5odG1sCShub25leGlzdGVudCkKQEAgLTEsNDEgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5q
cyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgot
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBj
cnlwdG8ud2Via2l0U3VidGxlLmRpZ2VzdC4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0K
LVByb21pc2UucmVzb2x2ZShudWxsKS50aGVuKGZ1bmN0aW9uKCkgewotICAgIGRlYnVnKCJTSEE1
MTIgb2YgW10iKTsKLSAgICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS5kaWdlc3QoJ3NoYS01
MTInLCBuZXcgVWludDhBcnJheShbXSkpOwotfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAg
ICBkaWdlc3QgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcobmV3IFVp
bnQ4QXJyYXkoZGlnZXN0KSkiLCAiJ2NmODNlMTM1N2VlZmI4YmRmMTU0Mjg1MGQ2NmQ4MDA3ZDYy
MGU0MDUwYjU3MTVkYzgzZjRhOTIxZDM2Y2U5Y2U0N2QwZDEzYzVkODVmMmIwZmY4MzE4ZDI4Nzdl
ZWMyZjYzYjkzMWJkNDc0MTdhODFhNTM4MzI3YWY5MjdkYTNlJyIpOwotCi0gICAgZGVidWcoIlNI
QTUxMiBvZiBbMHgwXSIpCi0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0KHtu
YW1lOiAnc2hhLTUxMid9LCBuZXcgVWludDhBcnJheShbMF0pKTsKLX0pLnRoZW4oZnVuY3Rpb24o
cmVzdWx0KSB7Ci0gICAgZGlnZXN0ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJieXRlc1RvSGV4
U3RyaW5nKG5ldyBVaW50OEFycmF5KGRpZ2VzdCkpIiwgIidiODI0NGQwMjg5ODFkNjkzYWY3YjQ1
NmFmOGVmYTRjYWQ2M2QyODJlMTlmZjE0OTQyYzI0NmU1MGQ5MzUxZDIyNzA0YTgwMmE3MWMzNTgw
YjYzNzBkZTRjZWIyOTNjMzI0YTg0MjMzNDI1NTdkNGU1YzM4NDM4ZjBlMzY5MTBlZSciKTsKLQot
ICAgIGRlYnVnKCJTSEE1MTIgb2YgWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwXSIp
OwotICAgIHZhciBkYXRhID0gbmV3IFVpbnQ4QXJyYXkoWzAsIDEsIDIsIDMsIDQsIDUsIDYsIDcs
IDgsIDksIDEwXSk7Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUuZGlnZXN0KHtuYW1l
OiAnc2hhLTUxMid9LCBkYXRhKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgZGln
ZXN0ID0gcmVzdWx0OwotICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKG5ldyBVaW50OEFy
cmF5KGRpZ2VzdCkpIiwgIic4ZmZhZWUwY2NjYzE2Mjg1MWZhZjA1MWFlMzg2NjdlZWZkNDIzYzAx
NjRjNTAwNTVmOGFkZTAwYWZjMzcwNWUzY2RlYjk5MDAwMDRiMGU0MjZjYTY2YWI2M2FhM2I5OWIw
NzUyNzNmNDRmZDM3YzIyYTM1NTVjNmZkMWYzN2NjYiciKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsK
LX0pOwotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Ny
eXB0by93ZWJraXRTdWJ0bGUvdW5pbXBsZW1lbnRlZC11bndyYXAtY3Jhc2gtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvdW5pbXBsZW1l
bnRlZC11bndyYXAtY3Jhc2gtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMjA5MzUpCisrKyBMYXlv
dXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3VuaW1wbGVtZW50ZWQtdW53cmFwLWNyYXNoLWV4
cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCkBAIC0xLDEwICswLDAgQEAKLUNPTlNPTEUgTUVTU0FH
RTogbGluZSAxNzogV2ViS2l0U3VidGxlQ3J5cHRvIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2Ug
U3VidGxlQ3J5cHRvIGluc3RlYWQuCi1NYWtlIHN1cmUgdGhhdCB1bndyYXAgZG9lcyBub3QgY2F1
c2UgYSBjcmFzaC4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0
cy9jcnlwdG8vd2Via2l0U3VidGxlL3VuaW1wbGVtZW50ZWQtdW53cmFwLWNyYXNoLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS91bmltcGxlbWVudGVk
LXVud3JhcC1jcmFzaC5odG1sCShyZXZpc2lvbiAyMjA5MzUpCisrKyBMYXlvdXRUZXN0cy9jcnlw
dG8vd2Via2l0U3VidGxlL3VuaW1wbGVtZW50ZWQtdW53cmFwLWNyYXNoLmh0bWwJKG5vbmV4aXN0
ZW50KQpAQCAtMSwyNiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJv
ZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgot
Ci08c2NyaXB0PgotZGVzY3JpcHRpb24oIk1ha2Ugc3VyZSB0aGF0IHVud3JhcCBkb2VzIG5vdCBj
YXVzZSBhIGNyYXNoLiIpOwotCi1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotY3J5cHRvLndlYmtp
dFN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogIkFFUy1LVyIsIGxlbmd0aDogMjU2fSwgZmFsc2Us
IFsid3JhcEtleSJdKS50aGVuKGZ1bmN0aW9uKHdyYXBwaW5nS2V5KSB7Ci0gICAgcmV0dXJuIGNy
eXB0by53ZWJraXRTdWJ0bGUuZ2VuZXJhdGVLZXkoe25hbWU6ICJITUFDIiwgaGFzaDoge25hbWU6
ICJTSEEtMjU2In19LCB0cnVlLCBbInNpZ24iLCAidmVyaWZ5Il0pLnRoZW4oZnVuY3Rpb24oYWVz
S2V5KSB7Ci0gICAgICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxlLndyYXBLZXkoInJhdyIs
IGFlc0tleSwgd3JhcHBpbmdLZXksIHtuYW1lOiAiQUVTLUtXIn0pOwotICAgIH0pOwotfSkudGhl
bihmaW5pc2hKU1Rlc3QsIGZpbmlzaEpTVGVzdCk7IC8vIE9LIGlmIHRoZSBicm93c2VyIGRvZXMg
bm90IGNyYXNoLgotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvdW53cmFwS2V5LWNoZWNrLXVzYWdlLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3Vud3JhcEtl
eS1jaGVjay11c2FnZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIyMDkzNSkKKysrIExheW91dFRl
c3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvdW53cmFwS2V5LWNoZWNrLXVzYWdlLWV4cGVjdGVkLnR4
dAkobm9uZXhpc3RlbnQpCkBAIC0xLDE2ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0
MDogV2ViS2l0U3VidGxlQ3J5cHRvIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgU3VidGxlQ3J5
cHRvIGluc3RlYWQuCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogS2V5IHVzYWdlcyBkbyBub3Qg
aW5jbHVkZSAndW53cmFwS2V5JwotVmVyaWZ5IHRoYXQgdXNhZ2UgaXMgcmVzcGVjdGVkIGluIHVu
d3JhcEtleSBvcGVyYXRpb24uCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1JbXBv
cnRpbmcgUlNBIGtleXMuLi4KLUltcG9ydGluZyBhbiBBRVMga2V5Li4uCi1XcmFwcGluZyBpdC4u
LgotVW53cmFwcGluZyBpdC4uLgotUEFTUyBjcnlwdG8ud2Via2l0U3VidGxlLnVud3JhcEtleSgi
cmF3Iiwgd3JhcHBlZEtleSwgcHJpdmF0ZUtleSwgd3JhcEFsZ29yaXRobSwgImFlcy1jYmMiLCBl
eHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiXSkgdGhyZXcgZXhjZXB0aW9uIE5vdFN1
cHBvcnRlZEVycm9yOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuLgotUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KClByb3BlcnR5IGNoYW5n
ZXMgb246IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvdW53cmFwS2V5LWNoZWNrLXVz
YWdlLWV4cGVjdGVkLnR4dApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEg
KzAsMCAjIwotbmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKRGVsZXRlZDog
c3ZuOm1pbWUtdHlwZQojIyAtMSArMCwwICMjCi10ZXh0L3BsYWluClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgcHJvcGVydHkKSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvdW53
cmFwS2V5LWNoZWNrLXVzYWdlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5cHRv
L3dlYmtpdFN1YnRsZS91bndyYXBLZXktY2hlY2stdXNhZ2UuaHRtbAkocmV2aXNpb24gMjIwOTM1
KQorKysgTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS91bndyYXBLZXktY2hlY2stdXNh
Z2UuaHRtbAkobm9uZXhpc3RlbnQpCkBAIC0xLDY3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgot
PGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9jb21tb24uanMiPjwvc2Ny
aXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IHVz
YWdlIGlzIHJlc3BlY3RlZCBpbiB1bndyYXBLZXkgb3BlcmF0aW9uLiIpOwotCi1qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKLQotdmFyIHB1YmxpY0tleUpTT04gPSB7Ci0gICAga3R5OiAiUlNBIiwKLSAg
ICBhbGc6ICJSU0EtT0FFUCIsCi0gICAgbjogInJjQ1VDdjdPYzFIVmFtMURJaEN6cWtuVGhXYXdP
cDhRTGs4Wml5MnAxMEJ5alFGQ2Fqb0ZpeXVBV2wtUjFXWFphZjR4aXRMUnJhY1Q5YWdwekl6Yy1N
YkxTSElHZ1dRR08yMWxHaUlteTVmdFotRDhiSEFxUnoyeTE1cHpENGM0Q0VvdTdYU1NMRG9SblIw
UUc1TXNEaEQ2czJnVjltd0hrcnRrQ3h0TVdkQmktNzdhczh3R21sTlJsZGNPU2daRExLOFVuQ1Nn
QTFPZ3VaOTg5YkZ5Yzh0T09FSWIweFVTZlBTejNMUFNDbnlZejY4YURqbUtWZU5ILWlnODU3T1Nj
eVdiR3lFeTNCaXc2NHF1bjNqdVVsTldzSjN6bmdrT2R0ZVlXeXR4NVFyNFhLTnM2Ui1NeXlxNzJL
VXAwMm1KRFppaXlpZ2x4TUxfaTMtX0NlZWNDdyIsCi0gICAgZTogIkFRQUIiCi19OwotCi12YXIg
cHJpdmF0ZUtleUpTT04gPSB7Ci0gICAga3R5OiAiUlNBIiwKLSAgICBhbGc6ICJSU0EtT0FFUCIs
Ci0gICAgbjogInJjQ1VDdjdPYzFIVmFtMURJaEN6cWtuVGhXYXdPcDhRTGs4Wml5MnAxMEJ5alFG
Q2Fqb0ZpeXVBV2wtUjFXWFphZjR4aXRMUnJhY1Q5YWdwekl6Yy1NYkxTSElHZ1dRR08yMWxHaUlt
eTVmdFotRDhiSEFxUnoyeTE1cHpENGM0Q0VvdTdYU1NMRG9SblIwUUc1TXNEaEQ2czJnVjltd0hr
cnRrQ3h0TVdkQmktNzdhczh3R21sTlJsZGNPU2daRExLOFVuQ1NnQTFPZ3VaOTg5YkZ5Yzh0T09F
SWIweFVTZlBTejNMUFNDbnlZejY4YURqbUtWZU5ILWlnODU3T1NjeVdiR3lFeTNCaXc2NHF1bjNq
dVVsTldzSjN6bmdrT2R0ZVlXeXR4NVFyNFhLTnM2Ui1NeXlxNzJLVXAwMm1KRFppaXlpZ2x4TUxf
aTMtX0NlZWNDdyIsCi0gICAgZTogIkFRQUIiLAotICAgIGQ6ICJlTkxTMzdhQ3o3UlhTTlBEX0R0
TEJKNmo1VDhjU3hkelJCQ2pQYUk2V2NHcUpwMTZscTNVVHd1b0RMQXFsQTlvR1ltMjM4ZHNJV3B1
dWNQX2xRdGJXZS03U3B4b0k2X3ZtWUdmN1lWVUh2MS1ERjlxaU9tU3JNbWR4TW5WT3pZWFk4UmFU
NnRoUGpuX0o1Y2ZMVjJ4SV9Md3NyTXRtcGRTeU5sZ1gwelRVaHd0dWFoZ0FLTUVDaFlqSDJFbmpI
ZEh3NnNZMi13QXBkY1FJN1VMRTBvbzVSemJRWnBtdWhjTjloaUJjMEwzaGhGMHFvNTBtYmwwMl82
NV9HUTdEcFZrWEJ4TmdSQkx6bFBhYm16ekcyb0FoZmVmTGdZbVNDMW9wYUNrWEU2dlJXUU5XTkw0
NVJaTlpGWU0zdW9KZ2hPTXFHZW9jTTBCcGpkQ2hIclBPbEZ2U1EiLAotICAgIHA6ICI0bWlUdUFq
S01lSDV1SjVLQjM5N1FVd2hia1lFZ1NiY0EybWlmbVNrdkUyMDE4Z2I1NXFrQkhLMWVWcnlmMV9t
NDNMTmxjNk9fYWs2Z2Z6ZFpJWnZTNU5DR2pQbDBxMDlwbFVwdThxRk9Tc3BCd0E2N3FHSDc2bEZs
WkxuX2Q0eWdsUzd3ZkxydTRfNVlzOHFMTHMtRHFWTHZpd3Bvc09ueXlXcXdNNUFYcDAiLAotICAg
IHE6ICJ4SFlyemtpdnRtbnpfc0djaG5XR2MwcS1wRE9rS2ljcHRScHYycE1GSUlYeG5GWDVhTWVF
WElaalZ1alh0d1V5MVVsRklOMkdaSlN2eTVLSjc5bXVfWHlObkZITXplZEgtQTNlZTN1OGgxVVVy
WkYtdlV1MV9lNFVfeDY3Tk4xZGVkelVTS3luTjdwRmwzT2t1U2hNQldHVi1jd3pPUGRjVkFmVnVa
bHhVTWMiLAotICAgIGRwOiAiZkJ6RHpZRFVCbUJRR29wN0huMGR2Zl9UMjdWNlJxcGN0V28wNzRD
UVpjRmJQMmF0RlZ0S1NqM3ZpV1QzeGlkMlZIemNnaURIZGZwTTNuRVZsRU8xd3dJb25HQ1N2ZGpH
RU9aaWlGVk9qclpBT1Z4QThndU9qeXlGdnFiWGtlMDZWd1BJSVZ2ZktlU1UyenVoYlBfXzF0dDZG
X2Z4b3c0S2IyeG9uR1QwR0drIiwKLSAgICBkcTogImptRTJEaUlQZGh3RGdMWEFRcElhQnFRODFi
TzNYZlZUX0xSVUxBd3d3d2xQdVFWMTQ4SDA0emxoOVRKNlkyR1pIWW9rVjFVMGVPQnBKeGZrYjdk
TFl0cEpwdWlCalJmNHlJVUVvR2xra0lfUWxKbkZTRnItWWpHUmRmTkhxV0JreGxTTVpMNzcwUjlt
SUFUbmRHa0g3ejV4LXI5S3dCWkZDNEZDRzJoZ196RSIsCi0gICAgcWk6ICJZQ1hfcEx3Yk1CQTFU
aFZIMFdjd21ueXRxTmNyTUNFd1RtN0J5QTJlVTZuV2JRclVMdmY3bTlfa3pmTFVjanNucEFWbEJR
RzVKTVhNeTBTcTRwdHdieXdzYTUtRzhLQU9PT1IyTDN2NGhDLUV5czlmdGdGTV8zaTBvNDBlZVFI
NGIzaGFQYm50ckllTWc4SXpsT3VWWUtmOS0yUXVLRG9XZVJkZDdOc2R4VGsiCi19OwotdmFyIHdy
YXBBbGdvcml0aG0gPSB7bmFtZTogIlJTQS1PQUVQIiwgaGFzaDogInNoYS0xIn07Ci12YXIgZXh0
cmFjdGFibGUgPSB0cnVlOwotdmFyIG5vbkV4dHJhY3RhYmxlID0gZmFsc2U7Ci0KLWRlYnVnKCJJ
bXBvcnRpbmcgUlNBIGtleXMuLi4iKTsKLWNyeXB0by53ZWJraXRTdWJ0bGUuaW1wb3J0S2V5KCJq
d2siLCBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShwdWJsaWNLZXlKU09OKSksIG51
bGwsIGV4dHJhY3RhYmxlLCBbIndyYXBLZXkiXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKLSAg
ICBwdWJsaWNLZXkgPSByZXN1bHQ7Ci0gICAgcmV0dXJuIGNyeXB0by53ZWJraXRTdWJ0bGUuaW1w
b3J0S2V5KCJqd2siLCBhc2NpaVRvVWludDhBcnJheShKU09OLnN0cmluZ2lmeShwcml2YXRlS2V5
SlNPTikpLCBudWxsLCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0IiwgImRlY3J5cHQiLCAid3JhcEtl
eSJdKTsKLX0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgcHJpdmF0ZUtleSA9IHJlc3Vs
dDsKLQotICAgIGRlYnVnKCJJbXBvcnRpbmcgYW4gQUVTIGtleS4uLiIpOwotICAgIGFlc0tleURh
dGEgPSBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjYwM2RlYjEwMTVjYTcxYmUyYjczYWVmMDg1N2Q3
NzgxMWYzNTJjMDczYjYxMDhkNzJkOTgxMGEzMDkxNGRmZjQiKTsKLSAgICByZXR1cm4gY3J5cHRv
LndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIGFlc0tleURhdGEsICJhZXMtY2JjIiwgZXh0
cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0IiwgIndyYXBLZXkiLCAidW53cmFwS2V5Il0p
Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGFlc0tleSA9IHJlc3VsdDsKLQotICAg
IGRlYnVnKCJXcmFwcGluZyBpdC4uLiIpOwotICAgIHJldHVybiBjcnlwdG8ud2Via2l0U3VidGxl
LndyYXBLZXkoInJhdyIsIGFlc0tleSwgcHVibGljS2V5LCB3cmFwQWxnb3JpdGhtKTsKLX0pLnRo
ZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAgd3JhcHBlZEtleSA9IHJlc3VsdDsKLQotICAgIGRl
YnVnKCJVbndyYXBwaW5nIGl0Li4uIik7Ci0gICAgLy8gcHJpdmF0ZUtleSBsYWNrcyB1bndyYXBL
ZXkgdXNhZ2UuCi0gICAgc2hvdWxkVGhyb3coJ2NyeXB0by53ZWJraXRTdWJ0bGUudW53cmFwS2V5
KCJyYXciLCB3cmFwcGVkS2V5LCBwcml2YXRlS2V5LCB3cmFwQWxnb3JpdGhtLCAiYWVzLWNiYyIs
IGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAiZGVjcnlwdCJdKScpOwotCi0gICAgZmluaXNoSlNU
ZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CgpQcm9wZXJ0eSBjaGFu
Z2VzIG9uOiBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3Vud3JhcEtleS1jaGVjay11
c2FnZS5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOm1pbWUtdHlwZQojIyAtMSArMCwwICMj
Ci10ZXh0L2h0bWwKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogTGF5b3V0
VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS93cmFwS2V5LWNoZWNrLXVzYWdlLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9jcnlwdG8vd2Via2l0U3VidGxlL3dyYXBLZXkt
Y2hlY2stdXNhZ2UtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMjA5MzUpCisrKyBMYXlvdXRUZXN0
cy9jcnlwdG8vd2Via2l0U3VidGxlL3dyYXBLZXktY2hlY2stdXNhZ2UtZXhwZWN0ZWQudHh0CShu
b25leGlzdGVudCkKQEAgLTEsMTUgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDI4OiBX
ZWJLaXRTdWJ0bGVDcnlwdG8gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBTdWJ0bGVDcnlwdG8g
aW5zdGVhZC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBLZXkgdXNhZ2VzIGRvIG5vdCBpbmNs
dWRlICd3cmFwS2V5JwotVmVyaWZ5IHRoYXQgdXNhZ2UgaXMgcmVzcGVjdGVkIGluIHdyYXBLZXkg
b3BlcmF0aW9uLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotSW1wb3J0aW5nIGFu
IFJTQSBrZXkuLi4KLUltcG9ydGluZyBhbiBBRVMga2V5Li4uCi1XcmFwcGluZyBpdC4uLgotUEFT
UyBjcnlwdG8ud2Via2l0U3VidGxlLndyYXBLZXkoInJhdyIsIGFlc0tleSwgcHVibGljS2V5LCB3
cmFwQWxnb3JpdGhtKSB0aHJldyBleGNlcHRpb24gTm90U3VwcG9ydGVkRXJyb3I6IFRoZSBvcGVy
YXRpb24gaXMgbm90IHN1cHBvcnRlZC4uCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
Ci0KLVRFU1QgQ09NUExFVEUKLQoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvY3J5
cHRvL3dlYmtpdFN1YnRsZS93cmFwS2V5LWNoZWNrLXVzYWdlLWV4cGVjdGVkLnR4dApfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZlClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKRGVsZXRlZDogc3ZuOm1pbWUtdHlwZQojIyAtMSArMCww
ICMjCi10ZXh0L3BsYWluClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IExh
eW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvd3JhcEtleS1jaGVjay11c2FnZS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2NyeXB0by93ZWJraXRTdWJ0bGUvd3JhcEtleS1jaGVj
ay11c2FnZS5odG1sCShyZXZpc2lvbiAyMjA5MzUpCisrKyBMYXlvdXRUZXN0cy9jcnlwdG8vd2Vi
a2l0U3VidGxlL3dyYXBLZXktY2hlY2stdXNhZ2UuaHRtbAkobm9uZXhpc3RlbnQpCkBAIC0xLDQ2
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0i
ZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0Pgot
ZGVzY3JpcHRpb24oIlZlcmlmeSB0aGF0IHVzYWdlIGlzIHJlc3BlY3RlZCBpbiB3cmFwS2V5IG9w
ZXJhdGlvbi4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLXZhciBwdWJsaWNLZXlKU09O
ID0gewotICAgIGt0eTogIlJTQSIsCi0gICAgYWxnOiAiUlNBLU9BRVAiLAotICAgIG46ICJyY0NV
Q3Y3T2MxSFZhbTFESWhDenFrblRoV2F3T3A4UUxrOFppeTJwMTBCeWpRRkNham9GaXl1QVdsLVIx
V1haYWY0eGl0TFJyYWNUOWFncHpJemMtTWJMU0hJR2dXUUdPMjFsR2lJbXk1ZnRaLUQ4YkhBcVJ6
MnkxNXB6RDRjNENFb3U3WFNTTERvUm5SMFFHNU1zRGhENnMyZ1Y5bXdIa3J0a0N4dE1XZEJpLTc3
YXM4d0dtbE5SbGRjT1NnWkRMSzhVbkNTZ0ExT2d1Wjk4OWJGeWM4dE9PRUliMHhVU2ZQU3ozTFBT
Q255WXo2OGFEam1LVmVOSC1pZzg1N09TY3lXYkd5RXkzQml3NjRxdW4zanVVbE5Xc0ozem5na09k
dGVZV3l0eDVRcjRYS05zNlItTXl5cTcyS1VwMDJtSkRaaWl5aWdseE1MX2kzLV9DZWVjQ3ciLAot
ICAgIGU6ICJBUUFCIgotfTsKLQotdmFyIHdyYXBBbGdvcml0aG0gPSB7bmFtZTogIlJTQS1PQUVQ
IiwgaGFzaDogInNoYS0xIn07Ci12YXIgZXh0cmFjdGFibGUgPSB0cnVlOwotdmFyIG5vbkV4dHJh
Y3RhYmxlID0gZmFsc2U7Ci0KLWRlYnVnKCJJbXBvcnRpbmcgYW4gUlNBIGtleS4uLiIpOwotY3J5
cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KEpTT04u
c3RyaW5naWZ5KHB1YmxpY0tleUpTT04pKSwgbnVsbCwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIs
ICJkZWNyeXB0IiwgInVud3JhcEtleSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIHB1
YmxpY0tleSA9IHJlc3VsdDsKLQotICAgIGRlYnVnKCJJbXBvcnRpbmcgYW4gQUVTIGtleS4uLiIp
OwotICAgIGFlc0tleURhdGEgPSBoZXhTdHJpbmdUb1VpbnQ4QXJyYXkoIjYwM2RlYjEwMTVjYTcx
YmUyYjczYWVmMDg1N2Q3NzgxMWYzNTJjMDczYjYxMDhkNzJkOTgxMGEzMDkxNGRmZjQiKTsKLSAg
ICByZXR1cm4gY3J5cHRvLndlYmtpdFN1YnRsZS5pbXBvcnRLZXkoInJhdyIsIGFlc0tleURhdGEs
ICJhZXMtY2JjIiwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJkZWNyeXB0IiwgIndyYXBLZXki
LCAidW53cmFwS2V5Il0pCi19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewotICAgIGFlc0tleSA9
IHJlc3VsdDsKLQotICAgIGRlYnVnKCJXcmFwcGluZyBpdC4uLiIpOwotICAgIC8vIHB1YmxpY0tl
eSBsYWNrcyB3cmFwS2V5IHVzYWdlLgotICAgIHNob3VsZFRocm93KCdjcnlwdG8ud2Via2l0U3Vi
dGxlLndyYXBLZXkoInJhdyIsIGFlc0tleSwgcHVibGljS2V5LCB3cmFwQWxnb3JpdGhtKScpOwot
ICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgoK
UHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvY3J5cHRvL3dlYmtpdFN1YnRsZS93cmFw
S2V5LWNoZWNrLXVzYWdlLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46bWltZS10eXBlCiMj
IC0xICswLDAgIyMKLXRleHQvaHRtbApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcHJvcGVydHktYWNjZXNzLW9uLWNhY2hl
ZC13aW5kb3ctYWZ0ZXItZnJhbWUtcmVtb3ZlZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Byb3BlcnR5LWFjY2Vzcy1vbi1jYWNoZWQtd2lu
ZG93LWFmdGVyLWZyYW1lLXJlbW92ZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMjA5MzUpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcHJvcGVydHktYWNjZXNzLW9uLWNhY2hlZC13
aW5kb3ctYWZ0ZXItZnJhbWUtcmVtb3ZlZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTEsMiArMSBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDEwNjogV2ViS2l0U3VidGxlQ3J5cHRv
IGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgU3VidGxlQ3J5cHRvIGluc3RlYWQuCiBQYXNzLiBX
ZWJLaXQgZGlkbid0IGNyYXNoLgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RF
eHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RF
eHBlY3RhdGlvbnMJKHJldmlzaW9uIDIyMDkzNSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC03OTAsMjAgKzc5MCw2IEBAIGNy
eXB0by93b3JrZXJzL3N1YnRsZS9yc2EtcHNzLWltcG9ydC1rZXkKICMgbGliZ2NyeXB0LWJhc2Vk
IGltcGxlbWVudGF0aW9uIHN1cHBvcnRzIGVjREggYWxnb3JpdGhtIGlkZW50aWZpZXIgZm9yIEVD
REggU1BLSSBpbXBvcnRzLgogY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1zcGtpLWtleS1lY2Ro
LWlkZW50aWZpZXIuaHRtbCBbIFBhc3MgXQogCi0jIFRoZXNlIGFyZSBsZWdhY3kgQVBJcyB0aGF0
IHdlIGRvbid0IHN1cHBvcnQsIGFwYXJ0IGZyb20gYSBmZXcgZGlnZXN0IGFsZ29yaXRobXMuCi13
ZWJraXQub3JnL2IvMTMzMTIyIGNyeXB0by93ZWJraXRTdWJ0bGUgWyBTa2lwIF0KLXdlYmtpdC5v
cmcvYi8xMzMzMTkgY3J5cHRvL3dlYmtpdFN1YnRsZS9zaGEtMS5odG1sIFsgUGFzcyBdCi13ZWJr
aXQub3JnL2IvMTMzMzE5IGNyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTIyNC5odG1sIFsgUGFzcyBd
Ci13ZWJraXQub3JnL2IvMTMzMzE5IGNyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTI1Ni5odG1sIFsg
UGFzcyBdCi13ZWJraXQub3JnL2IvMTMzMzE5IGNyeXB0by93ZWJraXRTdWJ0bGUvc2hhLTM4NC5o
dG1sIFsgUGFzcyBdCi13ZWJraXQub3JnL2IvMTMzMzE5IGNyeXB0by93ZWJraXRTdWJ0bGUvc2hh
LTUxMi5odG1sIFsgUGFzcyBdCi13ZWJraXQub3JnL2IvMTMzMzIwIGNyeXB0by93ZWJraXRTdWJ0
bGUvaG1hYy1jaGVjay1hbGdvcml0aG0uaHRtbCBbIFBhc3MgXQotd2Via2l0Lm9yZy9iLzEzMzMy
MCBjcnlwdG8vd2Via2l0U3VidGxlL2htYWMtZXhwb3J0LWtleS5odG1sIFsgUGFzcyBdCi13ZWJr
aXQub3JnL2IvMTMzMzIwIGNyeXB0by93ZWJraXRTdWJ0bGUvaG1hYy1nZW5lcmF0ZS1rZXkuaHRt
bCBbIFBhc3MgXQotd2Via2l0Lm9yZy9iLzEzMzMyMCBjcnlwdG8vd2Via2l0U3VidGxlL2htYWMt
aW1wb3J0LWp3ay5odG1sIFsgUGFzcyBdCi13ZWJraXQub3JnL2IvMTMzMzIwIGNyeXB0by93ZWJr
aXRTdWJ0bGUvaG1hYy1zaWduLXZlcmlmeS1lbXB0eS1rZXkuaHRtbCBbIFBhc3MgXQotd2Via2l0
Lm9yZy9iLzEzMzMyMCBjcnlwdG8vd2Via2l0U3VidGxlL2htYWMtc2lnbi12ZXJpZnkuaHRtbCBb
IFBhc3MgXQotCiAjIFRoZXNlIGFyZSB0aGUgaW1wb3J0ZWQgd2ViLXBsYXRmb3JtLXRlc3RzIGNv
dmVyaW5nIGNyeXB0byBzZWN0aW9ucyB3ZSBoYXZlbid0IGltcGxlbWVudGVkIHlldC4KIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJLyBbIFNsb3cgXQogCkluZGV4
OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMS9UZXN0RXhwZWN0YXRpb25zCShyZXZp
c2lvbiAyMjA5MzUpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2sxL1Rlc3RFeHBlY3Rh
dGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTEwMDUsMTAgKzEwMDUsNiBAQCBhbmltYXRpb25zL3Ry
aWdnZXItY29udGFpbmVyLXNjcm9sbC1lbXB0CiBzdG9yYWdlL2luZGV4ZWRkYgogaW1wb3J0ZWQv
dzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL0luZGV4ZWREQgotY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRiLW5vbi1l
eHBvcnRhYmxlLXByaXZhdGUuaHRtbAotY3J5cHRvL3dlYmtpdFN1YnRsZS9yc2EtaW5kZXhlZGRi
LW5vbi1leHBvcnRhYmxlLmh0bWwKLWNyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4ZWRkYi1w
cml2YXRlLmh0bWwKLWNyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4ZWRkYi5odG1sCiBmYXN0
L2hpc3RvcnkvcGFnZS1jYWNoZS1pbmRleGVkLWNsb3NlZC1kYi5odG1sCiBmYXN0L2hpc3Rvcnkv
cGFnZS1jYWNoZS1pbmRleGVkLW9wZW5lZC1kYi5odG1sCiBjcnlwdG8vc3VidGxlL3JzYS1pbmRl
eGVkZGItbm9uLWV4cG9ydGFibGUtcHJpdmF0ZS5odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMjIwOTM1KQorKysgTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTI1Nywx
MCArMjU3LDYgQEAgaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4taW5kZXhlZAogaHR0
cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td29ya2VyLWluZGV4ZWRkYi1hbGxvd2VkLmh0
bWwgWyBTa2lwIF0KIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci1pbmRl
eGVkZGIuaHRtbCBbIFNraXAgXQogaHR0cC90ZXN0cy9zZWN1cml0eS9uby1pbmRleGVkZGItZnJv
bS1zYW5kYm94Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by93ZWJraXRTdWJ0bGUvcnNhLWluZGV4ZWRk
Yi1ub24tZXhwb3J0YWJsZS1wcml2YXRlLmh0bWwgWyBTa2lwIF0KLWNyeXB0by93ZWJraXRTdWJ0
bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vd2Vi
a2l0U3VidGxlL3JzYS1pbmRleGVkZGItcHJpdmF0ZS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vd2Vi
a2l0U3VidGxlL3JzYS1pbmRleGVkZGIuaHRtbCBbIFNraXAgXQogZmFzdC9oaXN0b3J5L3BhZ2Ut
Y2FjaGUtaW5kZXhlZC1jbG9zZWQtZGIuaHRtbCBbIFNraXAgXQogZmFzdC9oaXN0b3J5L3BhZ2Ut
Y2FjaGUtaW5kZXhlZC1vcGVuZWQtZGIuaHRtbCBbIFNraXAgXQogCkBAIC01ODIsNyArNTc4LDYg
QEAgd2Via2l0Lm9yZy9iLzk4Njk2IHBsdWdpbnMvc25hcHNob3R0aW5nIAogd2Via2l0Lm9yZy9i
LzExNjU1OSBzdG9yYWdlL3dlYnNxbC8gWyBTa2lwIF0KIAogIyBUT0RPIGNyeXB0by5zdWJ0bGUg
aXMgbm90IHlldCBlbmFibGVkCi1jcnlwdG8vd2Via2l0U3VidGxlLyBbIFNraXAgXQogY3J5cHRv
L3N1YnRsZS8gWyBTa2lwIF0KIGNyeXB0by93b3JrZXJzL3N1YnRsZS8gWyBTa2lwIF0KIApJbmRl
eDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vd3BlL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDIy
MDkzNSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zCSh3b3Jr
aW5nIGNvcHkpCkBAIC02NjEsOSArNjYxLDYgQEAgQnVnKFdQRSkgY3NzMy96b29tLWNvb3Jkcy54
aHRtbCBbIEZhaWx1cgogd2Via2l0Lm9yZy9iLzEzMzE1MSBqcy9jYWNoZWQtd2luZG93LXByb3Bl
cnRpZXMuaHRtbCBbIFNsb3cgXQogd2Via2l0Lm9yZy9iLzE1OTc1NCB3b3JrZXJzL2JvbWIuaHRt
bCBbIFNsb3cgXQogCi0jIFdlIHdvbid0IGJlIHN1cHBvcnRpbmcgdGhlIGRlcHJlY2F0ZWQgaW50
ZXJmYWNlcy4KLWNyeXB0by93ZWJraXRTdWJ0bGUgWyBTa2lwIF0KLQogIyBUaGVzZSBhcmUgZmFp
bHVyZXMgdGhhdCB3aWxsIGJlIGVuYWJsZWQgb25jZSB0aGUgcmVsZXZhbnQgcGFydHMgb2YgaW1w
bGVtZW50YXRpb24gbGFuZC4KIHdlYmtpdC5vcmcvYi8xMzMxMjIgY3J5cHRvL3N1YnRsZS9hZXMt
Y2ZiLWdlbmVyYXRlLWV4cG9ydC1rZXktandrLWxlbmd0aC0xMjguaHRtbCBbIFNraXAgXQogd2Vi
a2l0Lm9yZy9iLzEzMzEyMiBjcnlwdG8vc3VidGxlL2Flcy1jZmItZ2VuZXJhdGUtZXhwb3J0LWtl
eS1qd2stbGVuZ3RoLTE5Mi5odG1sIFsgU2tpcCBdCg==
</data>
<flag name="review"
          id="338922"
          type_id="1"
          status="+"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>