<?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>169319</bug_id>
          
          <creation_ts>2017-03-07 16:58:31 -0800</creation_ts>
          <short_desc>[WebCrypto] Implement ECDH DeriveBits operation</short_desc>
          <delta_ts>2017-03-08 21:00:51 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>166746</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jiewen Tan">jiewen_tan</reporter>
          <assigned_to name="Jiewen Tan">jiewen_tan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1284633</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-03-07 16:58:31 -0800</bug_when>
    <thetext>Implement ECDH DeriveKey/DeriveBits operations according to the spec: https://www.w3.org/TR/WebCryptoAPI/#ecdh-operations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1284635</commentid>
    <comment_count>1</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-03-07 16:59:00 -0800</bug_when>
    <thetext>&lt;rdar://problem/23789585&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285009</commentid>
    <comment_count>2</comment_count>
      <attachid>303839</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-03-08 14:08:59 -0800</bug_when>
    <thetext>Created attachment 303839
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285011</commentid>
    <comment_count>3</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-03-08 14:10:28 -0800</bug_when>
    <thetext>This bug only implements ECDH DeriveBits for now. The DeriveKey operation will be tracked on another bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285019</commentid>
    <comment_count>4</comment_count>
      <attachid>303842</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-03-08 14:24:12 -0800</bug_when>
    <thetext>Created attachment 303842
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285031</commentid>
    <comment_count>5</comment_count>
      <attachid>303842</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-03-08 14:38:17 -0800</bug_when>
    <thetext>Comment on attachment 303842
Patch

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

Looks good. Does this not cause any W3C test cases to start passing? Maybe you need the DeriveKey part, too.

&gt; Source/WebCore/bindings/js/JSSubtleCryptoCustom.cpp:-63
&gt; -    DeriveKey,

Should we leave this in as a &quot;NotSupportedError&quot; case until your second patch?

&gt; Source/WebCore/bindings/js/JSSubtleCryptoCustom.cpp:-162
&gt; -        case Operations::DeriveKey:

Ditto here? Just handle &quot;NotSupported&quot; for now, rather than remove it completely?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285038</commentid>
    <comment_count>6</comment_count>
      <attachid>303842</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-03-08 14:45:09 -0800</bug_when>
    <thetext>Comment on attachment 303842
Patch

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

Thanks Brent for r+ my patch.
Sadly, all the w3c test cases use SPKI/PKCS as the de facto formats for importing EC keys. Therefore, the test won&apos;t run on WebKit until we support SPKI/PKCS.
Good news though Firefox doesn&apos;t support SPKI/PKCS as well. So the tests don&apos;t run on Firefox too.

&gt;&gt; Source/WebCore/bindings/js/JSSubtleCryptoCustom.cpp:-63
&gt;&gt; -    DeriveKey,
&gt; 
&gt; Should we leave this in as a &quot;NotSupportedError&quot; case until your second patch?

Sure.

&gt;&gt; Source/WebCore/bindings/js/JSSubtleCryptoCustom.cpp:-162
&gt;&gt; -        case Operations::DeriveKey:
&gt; 
&gt; Ditto here? Just handle &quot;NotSupported&quot; for now, rather than remove it completely?

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285047</commentid>
    <comment_count>7</comment_count>
      <attachid>303850</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-03-08 15:03:58 -0800</bug_when>
    <thetext>Created attachment 303850
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285051</commentid>
    <comment_count>8</comment_count>
      <attachid>303850</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-03-08 15:09:03 -0800</bug_when>
    <thetext>Comment on attachment 303850
Patch

r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285160</commentid>
    <comment_count>9</comment_count>
      <attachid>303850</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-08 18:17:12 -0800</bug_when>
    <thetext>Comment on attachment 303850
Patch

Rejecting attachment 303850 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 303850, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
ilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 213615 = 4ca78b286ae45bc70b983c531c3b927abd5f921f
r213616 = f89f40e92bc59b44ebaf3e209362eaf1c89dfbf2
r213617 = 196c89ab01ab2d2311a910cb5fb43773dff9e9f2
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.
Total errors found: 0 in 1 files

Full output: http://webkit-queues.webkit.org/results/3273373</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285200</commentid>
    <comment_count>10</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-03-08 20:04:42 -0800</bug_when>
    <thetext>Committed r213624: &lt;http://trac.webkit.org/changeset/213624&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285208</commentid>
    <comment_count>11</comment_count>
      <attachid>303850</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-03-08 20:45:11 -0800</bug_when>
    <thetext>Comment on attachment 303850
Patch

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

&gt; Source/WebCore/crypto/keys/CryptoKeyEC.h:88
&gt; +    PlatformECKey platformKey() { return m_platformKey; }

const?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1285212</commentid>
    <comment_count>12</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2017-03-08 21:00:51 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; Comment on attachment 303850 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=303850&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/crypto/keys/CryptoKeyEC.h:88
&gt; &gt; +    PlatformECKey platformKey() { return m_platformKey; }
&gt; 
&gt; const?

PlatformECKey is a opaque C structure from CommonCrypto. Therefore, const will make it impossible to pass to CommonCrypto APIs.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>303839</attachid>
            <date>2017-03-08 14:08:59 -0800</date>
            <delta_ts>2017-03-08 14:09:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169319-20170308140748.patch</filename>
            <type>text/plain</type>
            <size>64302</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzNTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjcyYWY1M2YxMzIxOTk2
MGE3YjIwNjEwZjFkOTY1ZDE3YmI2MTU0Ny4uOTAxODIxMzVkZTQyMDBkYjM3MjI3ZDI4ZTBjMjQy
NGYwZjFiZGNlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE3LTAzLTA4ICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkNyeXB0b10gSW1w
bGVtZW50IEVDREggRGVyaXZlQml0cyBvcGVyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2OTMxOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
MjM3ODk1ODU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIERlcml2ZUJpdHMgb3BlcmF0aW9uIG9mIEVDREggYWNj
b3JkaW5nIHRvIHRoZSBzcGVjOgorICAgICAgICBodHRwczovL3d3dy53My5vcmcvVFIvV2ViQ3J5
cHRvQVBJLyNlY2RoLW9wZXJhdGlvbnMuCisKKyAgICAgICAgVGVzdHM6IGNyeXB0by9zdWJ0bGUv
ZGVyaXZlLWJpdHMtbWFsZm9ybWVkLXBhcmFtZXRlcnMuaHRtbAorICAgICAgICAgICAgICAgY3J5
cHRvL3N1YnRsZS9lY2RoLWRlcml2ZS1iaXRzLW1hbGZvcm1lZC1wYXJhbWV0cnMuaHRtbAorICAg
ICAgICAgICAgICAgY3J5cHRvL3N1YnRsZS9lY2RoLWdlbmVyYXRlLWtleS1kZXJpdmUtYml0cy5o
dG1sCisgICAgICAgICAgICAgICBjcnlwdG8vc3VidGxlL2VjZGgtaW1wb3J0LWtleS1kZXJpdmUt
Yml0cy1jdXN0b20tbGVuZ3RoLmh0bWwKKyAgICAgICAgICAgICAgIGNyeXB0by9zdWJ0bGUvZWNk
aC1pbXBvcnQta2V5LWRlcml2ZS1iaXRzLW51bGwtbGVuZ3RoLmh0bWwKKworICAgICAgICAqIENN
YWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICog
UGxhdGZvcm1HVEsuY21ha2U6CisgICAgICAgICogUGxhdGZvcm1NYWMuY21ha2U6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdz
L2pzL0pTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om5vcm1hbGl6
ZUNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViQ29yZTo6anNTdWJ0bGVD
cnlwdG9GdW5jdGlvbkdlbmVyYXRlS2V5UHJvbWlzZSk6CisgICAgICAgIChXZWJDb3JlOjpqc1N1
YnRsZUNyeXB0b0Z1bmN0aW9uRGVyaXZlS2V5UHJvbWlzZSk6CisgICAgICAgIChXZWJDb3JlOjpq
c1N1YnRsZUNyeXB0b0Z1bmN0aW9uRGVyaXZlQml0c1Byb21pc2UpOgorICAgICAgICAoV2ViQ29y
ZTo6SlNTdWJ0bGVDcnlwdG86OmdlbmVyYXRlS2V5KToKKyAgICAgICAgUmVvcmRlciBhIGJpdCBv
ZiB0aGUgZnVuY3Rpb25zLgorICAgICAgICAqIGNyeXB0by9Db21tb25DcnlwdG9VdGlsaXRpZXMu
aDoKKyAgICAgICAgKiBjcnlwdG8vQ3J5cHRvQWxnb3JpdGhtLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNyeXB0b0FsZ29yaXRobTo6ZGVyaXZlQml0cyk6CisgICAgICAgICogY3J5cHRvL0NyeXB0
b0FsZ29yaXRobS5oOgorICAgICAgICAqIGNyeXB0by9DcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
Lmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNESC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1FQ0RIOjpkZXJpdmVCaXRzKToKKyAg
ICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RILmg6CisgICAgICAg
ICogY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaDoKKyAgICAgICAgKiBjcnlwdG8vbWFjL0NyeXB0
b0FsZ29yaXRobUVDREhNYWMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0Fs
Z29yaXRobUVDREg6OnBsYXRmb3JtRGVyaXZlQml0cyk6CisgICAgICAgICogY3J5cHRvL3BhcmFt
ZXRlcnMvQ3J5cHRvQWxnb3JpdGhtRWNkaEtleURlcml2ZVBhcmFtcy5oOiBBZGRlZC4KKyAgICAg
ICAgKiBjcnlwdG8vcGFyYW1ldGVycy9FY2RoS2V5RGVyaXZlUGFyYW1zLmlkbDogQWRkZWQuCisK
IDIwMTctMDMtMDcgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgUGFyc2luZyAtd2Via2l0LWh5cGhlbmF0ZS1jaGFyYWN0ZXIgdXNlcyBjb25mdXNpbmds
eSBuYW1lZCBjb25zdW1lTG9jYWxlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZDZiMjg2ZDBl
MzVlMzA2MWJkMzQzMTlhMTBkMTExNDg1OGE3ZTViYi4uZjVkMGQwZDA0ZjdiNDJmNDYzMzA2ZmY3
Njc4MDNlMzJiM2E5N2I1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTM0Myw2ICszNDMsNyBA
QCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIGNyeXB0by9wYXJhbWV0ZXJzL0Fl
c0djbVBhcmFtcy5pZGwKICAgICBjcnlwdG8vcGFyYW1ldGVycy9BZXNLZXlHZW5QYXJhbXMuaWRs
CiAgICAgY3J5cHRvL3BhcmFtZXRlcnMvRWNLZXlQYXJhbXMuaWRsCisgICAgY3J5cHRvL3BhcmFt
ZXRlcnMvRWNkaEtleURlcml2ZVBhcmFtcy5pZGwKICAgICBjcnlwdG8vcGFyYW1ldGVycy9IbWFj
S2V5UGFyYW1zLmlkbAogICAgIGNyeXB0by9wYXJhbWV0ZXJzL1JzYUhhc2hlZEltcG9ydFBhcmFt
cy5pZGwKICAgICBjcnlwdG8vcGFyYW1ldGVycy9Sc2FIYXNoZWRLZXlHZW5QYXJhbXMuaWRsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBjMjRlNmYzMzlkN2Q0NDJhNWM4YzY5MDlm
ZWQyMmM2YjhiMmU1N2MyLi4wODM4YWYzY2YwYjFhYTE2YThiYjA4OTc0Y2M4ZGU4OTY0MGI0Njc2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTI3NSw2ICsyNzUsNyBAQCBKU19C
SU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9jcnlwdG8vcGFyYW1ldGVycy9BZXNHY21Q
YXJhbXMuaWRsIFwKICAgICAkKFdlYkNvcmUpL2NyeXB0by9wYXJhbWV0ZXJzL0Flc0tleUdlblBh
cmFtcy5pZGwgXAogICAgICQoV2ViQ29yZSkvY3J5cHRvL3BhcmFtZXRlcnMvRWNLZXlQYXJhbXMu
aWRsIFwKKyAgICAkKFdlYkNvcmUpL2NyeXB0by9wYXJhbWV0ZXJzL0VjZGhLZXlEZXJpdmVQYXJh
bXMuaWRsIFwKICAgICAkKFdlYkNvcmUpL2NyeXB0by9wYXJhbWV0ZXJzL0htYWNLZXlQYXJhbXMu
aWRsIFwKICAgICAkKFdlYkNvcmUpL2NyeXB0by9wYXJhbWV0ZXJzL1JzYUhhc2hlZEltcG9ydFBh
cmFtcy5pZGwgXAogICAgICQoV2ViQ29yZSkvY3J5cHRvL3BhcmFtZXRlcnMvUnNhSGFzaGVkS2V5
R2VuUGFyYW1zLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5j
bWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCmluZGV4IDNjZDBkYjliZWYy
NGUzNjIxYjA4MTdmNWI0NjFjMjRmNDQyODdmYzcuLjJmOWU5MTE2MWU5NmMyYzQ3ODVkMDc3NDNj
ZDliYzE2MDIwODljYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNt
YWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC00MDMsNiArNDAz
LDcgQEAgaWYgKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKQogICAgICAgICBjcnlwdG8vZ251dGxzL0Ny
eXB0b0FsZ29yaXRobUFFU19DRkJHbnVUTFMuY3BwCiAgICAgICAgIGNyeXB0by9nbnV0bHMvQ3J5
cHRvQWxnb3JpdGhtQUVTX0dDTUdudVRMUy5jcHAKICAgICAgICAgY3J5cHRvL2dudXRscy9Dcnlw
dG9BbGdvcml0aG1BRVNfS1dHbnVUTFMuY3BwCisgICAgICAgIGNyeXB0by9nbnV0bHMvQ3J5cHRv
QWxnb3JpdGhtRUNESEdudVRMUy5jcHAKICAgICAgICAgY3J5cHRvL2dudXRscy9DcnlwdG9BbGdv
cml0aG1SU0FFU19QS0NTMV92MV81R251VExTLmNwcAogICAgICAgICBjcnlwdG8vZ251dGxzL0Ny
eXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81R251VExTLmNwcAogICAgICAgICBjcnlwdG8v
Z251dGxzL0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQR251VExTLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1h
Yy5jbWFrZQppbmRleCA4MDU4MjgwZTgyNDExM2RkOGVkNDAzOTU3NGE3NDUxZTc5MjdlZmE5Li44
OTRjOWJkNTZlYjlhN2FkMjFhYWI4MmVmZTkwNDlhODM5MDkyMjQ5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9y
bU1hYy5jbWFrZQpAQCAtMjA2LDYgKzIwNiw3IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNF
UwogICAgIGNyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NGQk1hYy5jcHAKICAgICBjcnlw
dG8vbWFjL0NyeXB0b0FsZ29yaXRobUFFU19HQ01NYWMuY3BwCiAgICAgY3J5cHRvL21hYy9Dcnlw
dG9BbGdvcml0aG1BRVNfS1dNYWMuY3BwCisgICAgY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1F
Q0RITWFjLmNwcAogICAgIGNyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtSE1BQ01hYy5jcHAKICAg
ICBjcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzVNYWMuY3BwCiAgICAg
Y3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNU1hYy5jcHAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAw
NjkxMGMwZWNjNDFjZDJjNzFjMzE4NzQ2MjQ3ZWQwNmNmODI4MDA4Li45YzdlYmQ2MDY4MjBjODU1
ZTVhM2U1NTU1Y2E4NjBmOGQzOGJmYzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzczLDYgKzIzNzMsMTAgQEAKIAkJNTc1
MEE5ODIxRTZBMTUwODAwNzA1QzRBIC8qIEpTRWNLZXlQYXJhbXMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NTBBOTgwMUU2QTE1MDgwMDcwNUM0QSAv
KiBKU0VjS2V5UGFyYW1zLmggKi87IH07CiAJCTU3NTBBOTg2MUU2QTIxNjgwMDcwNUM0QSAvKiBD
cnlwdG9BbGdvcml0aG1FQ0RILmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDU3NTBBOTg0MUU2QTIxNjgwMDcwNUM0QSAvKiBDcnlwdG9BbGdvcml0aG1F
Q0RILmNwcCAqLzsgfTsKIAkJNTc1MEE5ODcxRTZBMjE2ODAwNzA1QzRBIC8qIENyeXB0b0FsZ29y
aXRobUVDREguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDU3NTBBOTg1MUU2QTIxNjgwMDcwNUM0QSAvKiBDcnlwdG9BbGdvcml0aG1FQ0RILmggKi87IH07
CisJCTU3NjgxNDJBMUU2Rjk5QzEwMEU3Nzc1NCAvKiBDcnlwdG9BbGdvcml0aG1FY2RoS2V5RGVy
aXZlUGFyYW1zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1NzY4MTQyOTFFNkY5OUMxMDBFNzc3NTQgLyogQ3J5cHRvQWxnb3JpdGhtRWNkaEtleURlcml2
ZVBhcmFtcy5oICovOyB9OworCQk1NzY4MTQzNTFFNkZFM0U4MDBFNzc3NTQgLyogQ3J5cHRvQWxn
b3JpdGhtRUNESE1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1NzY4MTQzNDFFNkZFM0U4MDBFNzc3NTQgLyogQ3J5cHRvQWxnb3JpdGhtRUNESE1h
Yy5jcHAgKi87IH07CisJCTU3NjgxNDQwMUU3MDlGQTEwMEU3Nzc1NCAvKiBKU0VjZGhLZXlEZXJp
dmVQYXJhbXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTc2ODE0M0QxRTcwOUMzNjAwRTc3NzU0IC8qIEpTRWNkaEtleURlcml2ZVBhcmFtcy5jcHAg
Ki87IH07CisJCTU3NjgxNDQxMUU3MDlGQTQwMEU3Nzc1NCAvKiBKU0VjZGhLZXlEZXJpdmVQYXJh
bXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3Njgx
NDNFMUU3MDlDMzYwMEU3Nzc1NCAvKiBKU0VjZGhLZXlEZXJpdmVQYXJhbXMuaCAqLzsgfTsKIAkJ
NTc2OEU0MzQxREI3NTI0NTAwRDBBNEY3IC8qIEpTUnNhSGFzaGVkS2V5R2VuUGFyYW1zLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzY4RTQzMzFEQjc1
MjQ1MDBEMEE0RjcgLyogSlNSc2FIYXNoZWRLZXlHZW5QYXJhbXMuaCAqLzsgfTsKIAkJNTc2OEU0
MzYxREI3NTI3NDAwRDBBNEY3IC8qIEpTUnNhSGFzaGVkS2V5R2VuUGFyYW1zLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NjhFNDM1MURCNzUyNzMw
MEQwQTRGNyAvKiBKU1JzYUhhc2hlZEtleUdlblBhcmFtcy5jcHAgKi87IH07CiAJCTU3NzQ4MzEy
MURBREM1NUQwMDcxNkVGOSAvKiBDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NzQ4MzExMURBREM1
NUQwMDcxNkVGOSAvKiBDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXMuaCAqLzsgfTsKQEAg
LTk3OTUsNiArOTc5OSwxMSBAQAogCQk1NzUwQTk4MDFFNkExNTA4MDA3MDVDNEEgLyogSlNFY0tl
eVBhcmFtcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0VjS2V5UGFyYW1z
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NTBBOTg0MUU2QTIxNjgwMDcwNUM0
QSAvKiBDcnlwdG9BbGdvcml0aG1FQ0RILmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobUVDREguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1NzUwQTk4NTFFNkEyMTY4MDA3MDVDNEEgLyogQ3J5cHRvQWxnb3JpdGhtRUNESC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1FQ0RILmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3NjgxNDI4MUU2Rjk4QUQwMEU3Nzc1NCAv
KiBFY2RoS2V5RGVyaXZlUGFyYW1zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBFY2RoS2V5RGVyaXZlUGFyYW1zLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTc2ODE0MjkxRTZGOTlDMTAwRTc3NzU0IC8q
IENyeXB0b0FsZ29yaXRobUVjZGhLZXlEZXJpdmVQYXJhbXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtRWNkaEtleURlcml2ZVBhcmFtcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzY4MTQzNDFFNkZFM0U4MDBFNzc3NTQgLyogQ3J5
cHRvQWxnb3JpdGhtRUNESE1hYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBDcnlwdG9BbGdvcml0aG1FQ0RITWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNTc2ODE0M0QxRTcwOUMzNjAwRTc3NzU0IC8qIEpTRWNkaEtleURlcml2ZVBhcmFtcy5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0VjZGhLZXlEZXJpdmVQ
YXJhbXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzY4MTQzRTFFNzA5QzM2
MDBFNzc3NTQgLyogSlNFY2RoS2V5RGVyaXZlUGFyYW1zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEpTRWNkaEtleURlcml2ZVBhcmFtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1NzY4RTQzMzFEQjc1MjQ1MDBEMEE0RjcgLyogSlNSc2FIYXNoZWRLZXlHZW5Q
YXJhbXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNSc2FIYXNoZWRLZXlH
ZW5QYXJhbXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc2OEU0MzUxREI3NTI3
MzAwRDBBNEY3IC8qIEpTUnNhSGFzaGVkS2V5R2VuUGFyYW1zLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUnNhSGFzaGVkS2V5R2VuUGFyYW1zLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc3NDgzMTAxREFEQzQ5OTAwNzE2RUY5IC8qIEFlc0tl
eUdlblBhcmFtcy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gQWVzS2V5R2VuUGFyYW1zLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIzNTgwLDYgKzIzNTg5LDcgQEAKIAkJCQk1NzA0NDA1NzFFNTM4NTE2
MDAzNTY2MDEgLyogQ3J5cHRvQWxnb3JpdGhtQUVTX0NGQk1hYy5jcHAgKi8sCiAJCQkJNTdCNUY4
MEQxRTVEMkYyRDAwRjM0RjkwIC8qIENyeXB0b0FsZ29yaXRobUFFU19HQ01NYWMuY3BwICovLAog
CQkJCUUxRkUxMzdDMTg0RDI3MDIwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1BRVNfS1dNYWMu
Y3BwICovLAorCQkJCTU3NjgxNDM0MUU2RkUzRTgwMEU3Nzc1NCAvKiBDcnlwdG9BbGdvcml0aG1F
Q0RITWFjLmNwcCAqLywKIAkJCQlFMTI1RjgzNzE4MjJGMUVCMDBEODRDRDkgLyogQ3J5cHRvQWxn
b3JpdGhtSE1BQ01hYy5jcHAgKi8sCiAJCQkJRTFCQjg0QUMxODIyQ0E3NDAwNTI1MDQzIC8qIENy
eXB0b0FsZ29yaXRobVJlZ2lzdHJ5TWFjLmNwcCAqLywKIAkJCQlFMUZFMTM2RTE4M0ZFQ0YwMDA4
OTJGMTMgLyogQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVBNYWMuY3BwICovLApAQCAtMjM2NjEsNiAr
MjM2NzEsNyBAQAogCQkJCTU3NzQ4MzExMURBREM1NUQwMDcxNkVGOSAvKiBDcnlwdG9BbGdvcml0
aG1BZXNLZXlHZW5QYXJhbXMuaCAqLywKIAkJCQlFMTlBQzNGNjE4MjRFNUQxMDAzNDk0MjYgLyog
Q3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zRGVwcmVjYXRlZC5oICovLAogCQkJCTU3NTBB
OTdEMUU2QTEzRUYwMDcwNUM0QSAvKiBDcnlwdG9BbGdvcml0aG1FY0tleVBhcmFtcy5oICovLAor
CQkJCTU3NjgxNDI5MUU2Rjk5QzEwMEU3Nzc1NCAvKiBDcnlwdG9BbGdvcml0aG1FY2RoS2V5RGVy
aXZlUGFyYW1zLmggKi8sCiAJCQkJNTc3NDgzMTgxREI0NDkxRjAwNzE2RUY5IC8qIENyeXB0b0Fs
Z29yaXRobUhtYWNLZXlQYXJhbXMuaCAqLywKIAkJCQlFMTlEQTI5QjE4MTg5QUREMDAwODhCQzgg
LyogQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtc0RlcHJlY2F0ZWQuaCAqLywKIAkJCQlFMUM2
NTcxRTE4MTZFNTAzMDAyNTZDREQgLyogQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0
ZWQuaCAqLywKQEAgLTIzNjczLDYgKzIzNjg0LDcgQEAKIAkJCQlFMUZFMTM3NjE4NEQxRTMzMDA4
OTJGMTMgLyogQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0RlcHJlY2F0ZWQuaCAqLywKIAkJ
CQlFMUJEMzMxQjE4MkQ4RUU5MDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1z
RGVwcmVjYXRlZC5oICovLAogCQkJCTU3NTBBOTdDMUU2QTEyQjQwMDcwNUM0QSAvKiBFY0tleVBh
cmFtcy5pZGwgKi8sCisJCQkJNTc2ODE0MjgxRTZGOThBRDAwRTc3NzU0IC8qIEVjZGhLZXlEZXJp
dmVQYXJhbXMuaWRsICovLAogCQkJCTU3NzQ4MzE3MURCMUZFODkwMDcxNkVGOSAvKiBIbWFjS2V5
UGFyYW1zLmlkbCAqLywKIAkJCQk1N0UyMzM2QzFEQ0Q0MzcwMDBGMjhEMDEgLyogUnNhSGFzaGVk
SW1wb3J0UGFyYW1zLmlkbCAqLywKIAkJCQk1N0Y4MjczOTFEQjcyQzIyMDA5RDJCRjQgLyogUnNh
SGFzaGVkS2V5R2VuUGFyYW1zLmlkbCAqLywKQEAgLTIzODQ5LDYgKzIzODYxLDggQEAKIAkJCQk1
N0QwMDE4QzFERDU0MTMyMDBFRDE5RDkgLyogSlNDcnlwdG9LZXlVc2FnZS5oICovLAogCQkJCTU3
NTBBOTdGMUU2QTE1MDgwMDcwNUM0QSAvKiBKU0VjS2V5UGFyYW1zLmNwcCAqLywKIAkJCQk1NzUw
QTk4MDFFNkExNTA4MDA3MDVDNEEgLyogSlNFY0tleVBhcmFtcy5oICovLAorCQkJCTU3NjgxNDNE
MUU3MDlDMzYwMEU3Nzc1NCAvKiBKU0VjZGhLZXlEZXJpdmVQYXJhbXMuY3BwICovLAorCQkJCTU3
NjgxNDNFMUU3MDlDMzYwMEU3Nzc1NCAvKiBKU0VjZGhLZXlEZXJpdmVQYXJhbXMuaCAqLywKIAkJ
CQk1N0UyMzM2ODFEQ0FCMjQzMDBGMjhEMDEgLyogSlNIbWFjS2V5UGFyYW1zLmNwcCAqLywKIAkJ
CQk1N0UyMzM2NjFEQ0FCMjFDMDBGMjhEMDEgLyogSlNIbWFjS2V5UGFyYW1zLmggKi8sCiAJCQkJ
NTdFMjMzNUUxREM3RDY3QjAwRjI4RDAxIC8qIEpTSnNvbldlYktleS5jcHAgKi8sCkBAIC0yNjcy
Miw2ICsyNjczNiw3IEBACiAJCQkJMUFFOTZBOTExRDFBMERERDAwQjg2NzY4IC8qIEpTQXBwbGVQ
YXlTaGlwcGluZ0NvbnRhY3RTZWxlY3RlZEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzY1
NzlGNDFFMDA4NTY2MDBFM0EyN0EgLyogSlNBcHBsZVBheVNoaXBwaW5nTWV0aG9kLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQUU5NkE5MzFEMUEwREREMDBCODY3NjggLyogSlNBcHBsZVBheVNoaXBw
aW5nTWV0aG9kU2VsZWN0ZWRFdmVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTc2ODE0NDExRTcw
OUZBNDAwRTc3NzU0IC8qIEpTRWNkaEtleURlcml2ZVBhcmFtcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNjVERjMxREIwOUQxQzEyMzAwMEJFMzI1IC8qIEpTQXR0ci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRkRBMTVFOUUxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9CdWZmZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUZERjdFOUM0MTNBQzIxREIwMEE1MUVBQyAvKiBKU0F1ZGlvQnVmZmVyQ2FsbGJh
Y2suaCBpbiBIZWFkZXJzICovLApAQCAtMjg0NDksNiArMjg0NjQsNyBAQAogCQkJCUE4RUE4MDBB
MEExOTUxNkUwMEE4RUY1RiAvKiBTdHlsZVNoZWV0TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkM1RUI1RTUwRTgxQkY2RDAwQjI1OTY1IC8qIFN0eWxlU3Vycm91bmREYXRhLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzVFQjgxMDBFODFGMkNFMDBCMjU5NjUgLyogU3R5bGVUcmFuc2Zvcm1EYXRh
LmggaW4gSGVhZGVycyAqLywKKwkJCQk1NzY4MTQyQTFFNkY5OUMxMDBFNzc3NTQgLyogQ3J5cHRv
QWxnb3JpdGhtRWNkaEtleURlcml2ZVBhcmFtcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTRERUFB
MTgxN0E5M0RDMzAwMEUwNDMwIC8qIFN0eWxlVHJlZVJlc29sdmVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlFNDJFNzZEQzFDN0FGNzc2MDBFMzYxNEQgLyogU3R5bGVVcGRhdGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUU0ODEzN0I5MURCM0I1MjYwMDVDNTlCRiAvKiBTdHlsZVZhbGlkaXR5LmggaW4g
SGVhZGVycyAqLywKQEAgLTMwMzg1LDYgKzMwNDAxLDcgQEAKIAkJCQlBODcxREIyNjBBMTUwQkQ2
MDBCMTJBNjggLyogSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRDY2ODE3RkExNjZGRTZENzAwRkEwN0I0IC8qIEhUTUxUZW1wbGF0ZUVsZW1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTgxMzY5RDcwOTczNzRGNjAwRDc0NDYzIC8qIEhUTUxUZXh0QXJl
YUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTc2ODE0NDAxRTcwOUZBMTAwRTc3NzU0
IC8qIEpTRWNkaEtleURlcml2ZVBhcmFtcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5QkM2QzIx
QzEzQ0NDOTdCMDA4RTAzMzcgLyogSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJODMwNTE5OTUxQkIwRjExMDAwRjM3NzJFIC8qIEhUTUxUaW1lRWxlbWVu
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODcxREMyOTBBMTUyMDU3MDBCMTJBNjggLyogSFRN
TFRpdGxlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMwNTg2LDYgKzMwNjAzLDcgQEAK
IAkJCQk3NkZCOUZGODE5QTczRTNBMDA0MjA1NjIgLyogSlNBdXRvY29tcGxldGVFcnJvckV2ZW50
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMTI0RUZGMEMyNjQ0N0EwMDlFMjM0OSAvKiBKU0Jh
clByb3AuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5NDYzNDYxMDdBOTM0QjAwODU3MTkzIC8q
IEpTQmVmb3JlTG9hZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTU3NjgxNDM1MUU2RkUz
RTgwMEU3Nzc1NCAvKiBDcnlwdG9BbGdvcml0aG1FQ0RITWFjLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTcwRjU0NkU4QjhCNUQ3REM1NEVFMTQ0RSAvKiBKU0JlZm9yZVVubG9hZEV2ZW50LmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUZERjA5REM4MTM5OUI2MjIwMDY4OEU1QiAvKiBKU0JpcXVhZEZp
bHRlck5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkUyRDk5Q0QxMEUyQkJEQTAwNDk2MzM3
IC8qIEpTQmxvYi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcAppbmRleCA0NmZmMzUxZWQ0OTM5Yzg0
NWIxY2Y4NWYwZDU2MmJhYzMxYWZkN2Y0Li4yNmEwY2ZkM2UyNDFmZTVkM2JiNDZhNTA3NWE2MzY2
MGViMDk3MWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1N1YnRs
ZUNyeXB0b0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTdWJ0
bGVDcnlwdG9DdXN0b20uY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiSlNET01Qcm9t
aXNlLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyLmgiCiAjaW5jbHVkZSAiSlNFY0tleVBhcmFt
cy5oIgorI2luY2x1ZGUgIkpTRWNkaEtleURlcml2ZVBhcmFtcy5oIgogI2luY2x1ZGUgIkpTSG1h
Y0tleVBhcmFtcy5oIgogI2luY2x1ZGUgIkpTSnNvbldlYktleS5oIgogI2luY2x1ZGUgIkpTUnNh
SGFzaGVkSW1wb3J0UGFyYW1zLmgiCkBAIC02MCw3ICs2MSw2IEBAIGVudW0gY2xhc3MgT3BlcmF0
aW9ucyB7CiAgICAgU2lnbiwKICAgICBWZXJpZnksCiAgICAgRGlnZXN0LAotICAgIERlcml2ZUtl
eSwKICAgICBEZXJpdmVCaXRzLAogICAgIEdlbmVyYXRlS2V5LAogICAgIEltcG9ydEtleSwKQEAg
LTE1OSwxMCArMTU5LDI2IEBAIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVycz4gbm9ybWFsaXplQ3J5cHRvQWxnb3JpdGhtUGFyYW1lCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgY2FzZSBPcGVyYXRpb25zOjpEZXJpdmVLZXk6CiAgICAgICAgIGNhc2UgT3BlcmF0aW9u
czo6RGVyaXZlQml0czoKLSAgICAgICAgICAgIHRocm93Tm90U3VwcG9ydGVkRXJyb3Ioc3RhdGUs
IHNjb3BlKTsKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICAgICAgc3dpdGNo
ICgqaWRlbnRpZmllcikgeworICAgICAgICAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyOjpFQ0RIOiB7CisgICAgICAgICAgICAgICAgLy8gUmVtb3ZlIHRoaXMgaGFjayBvbmNlIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjkzMzMgaXMgZml4ZWQuCisg
ICAgICAgICAgICAgICAgSlNWYWx1ZSBuYW1lVmFsdWUgPSB2YWx1ZS5nZXRPYmplY3QoKS0+Z2V0
KCZzdGF0ZSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmc3RhdGUsICJuYW1lIikpOworICAgICAg
ICAgICAgICAgIEpTVmFsdWUgcHVibGljVmFsdWUgPSB2YWx1ZS5nZXRPYmplY3QoKS0+Z2V0KCZz
dGF0ZSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmc3RhdGUsICJwdWJsaWMiKSk7CisgICAgICAg
ICAgICAgICAgSlNPYmplY3QqIG5ld1ZhbHVlID0gY29uc3RydWN0RW1wdHlPYmplY3QoJnN0YXRl
KTsKKyAgICAgICAgICAgICAgICBuZXdWYWx1ZS0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKCZ2bSwgIm5hbWUiKSwgbmFtZVZhbHVlKTsKKyAgICAgICAgICAgICAgICBuZXdW
YWx1ZS0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgInB1YmxpY0tl
eSIpLCBwdWJsaWNWYWx1ZSk7CisKKyAgICAgICAgICAgICAgICBhdXRvIHBhcmFtcyA9IGNvbnZl
cnREaWN0aW9uYXJ5PENyeXB0b0FsZ29yaXRobUVjZGhLZXlEZXJpdmVQYXJhbXM+KHN0YXRlLCBu
ZXdWYWx1ZSk7CisgICAgICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgbnVs
bHB0cik7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gc3RkOjptYWtlX3VuaXF1ZTxDcnlwdG9B
bGdvcml0aG1FY2RoS2V5RGVyaXZlUGFyYW1zPihwYXJhbXMpOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAg
ICB0aHJvd05vdFN1cHBvcnRlZEVycm9yKHN0YXRlLCBzY29wZSk7CisgICAgICAgICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgY2FzZSBPcGVyYXRpb25zOjpHZW5lcmF0ZUtleToKICAgICAgICAgICAgIHN3aXRjaCAoKmlk
ZW50aWZpZXIpIHsKICAgICAgICAgICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6
UlNBRVNfUEtDUzFfdjFfNTogewpAQCAtNjYwLDI5ICs2NzYsNjUgQEAgc3RhdGljIHZvaWQganNT
dWJ0bGVDcnlwdG9GdW5jdGlvbkRpZ2VzdFByb21pc2UoRXhlY1N0YXRlJiBzdGF0ZSwgUmVmPERl
ZmVycmVkUHIKICAgICBhbGdvcml0aG0tPmRpZ2VzdChXVEZNb3ZlKGRhdGEpLCBXVEZNb3ZlKGNh
bGxiYWNrKSwgV1RGTW92ZShleGNlcHRpb25DYWxsYmFjayksICpzY3JpcHRFeGVjdXRpb25Db250
ZXh0RnJvbUV4ZWNTdGF0ZSgmc3RhdGUpLCBzdWJ0bGUtPndyYXBwZWQoKS53b3JrUXVldWUoKSk7
CiB9CiAKLXN0YXRpYyB2b2lkIGpzU3VidGxlQ3J5cHRvRnVuY3Rpb25EZXJpdmVLZXlQcm9taXNl
KEV4ZWNTdGF0ZSYgc3RhdGUsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKK3N0YXRp
YyB2b2lkIGpzU3VidGxlQ3J5cHRvRnVuY3Rpb25HZW5lcmF0ZUtleVByb21pc2UoRXhlY1N0YXRl
JiBzdGF0ZSwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewogICAgIFZNJiB2bSA9
IHN0YXRlLnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwog
Ci0gICAgaWYgKFVOTElLRUxZKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA8IDUpKSB7CisgICAgaWYg
KFVOTElLRUxZKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA8IDMpKSB7CiAgICAgICAgIHByb21pc2Ut
PnJlamVjdDxJRExBbnk+KGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCZzdGF0ZSkpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byBwYXJhbXMgPSBub3JtYWxpemVDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzKHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgwKSwg
T3BlcmF0aW9uczo6RGVyaXZlS2V5KTsKKyAgICBhdXRvIHBhcmFtcyA9IG5vcm1hbGl6ZUNyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnMoc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApLCBP
cGVyYXRpb25zOjpHZW5lcmF0ZUtleSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
dm9pZCgpKTsKIAotICAgIC8vIFdlIHNob3VsZCBhbHdheXMgcmV0dXJuIGEgTk9UX1NVUFBPUlRF
RF9FUlIgc2luY2Ugd2UgY3VycmVudGx5IGRvbid0IHN1cHBvcnQgYW55IGFsZ29yaXRobXMgdGhh
dCBoYXMgZGVyaXZlS2V5IG9wZXJhdGlvbi4KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICBhdXRvIGV4dHJhY3RhYmxlID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMSkudG9Cb29sZWFu
KCZzdGF0ZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKKworICAg
IGF1dG8ga2V5VXNhZ2VzID0gY3J5cHRvS2V5VXNhZ2VCaXRtYXBGcm9tSlNWYWx1ZShzdGF0ZSwg
c3RhdGUudW5jaGVja2VkQXJndW1lbnQoMikpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIHZvaWQoKSk7CisKKyAgICBhdXRvIGFsZ29yaXRobSA9IENyeXB0b0FsZ29yaXRobVJlZ2lz
dHJ5OjpzaW5nbGV0b24oKS5jcmVhdGUocGFyYW1zLT5pZGVudGlmaWVyKTsKKyAgICBpZiAoVU5M
SUtFTFkoIWFsZ29yaXRobSkpIHsKKyAgICAgICAgdGhyb3dOb3RTdXBwb3J0ZWRFcnJvcihzdGF0
ZSwgc2NvcGUpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgYXV0byBjYWxsYmFjayA9
IFtjYXB0dXJlZFByb21pc2UgPSBwcm9taXNlLmNvcHlSZWYoKV0oS2V5T3JLZXlQYWlyJiYga2V5
T3JLZXlQYWlyKSBtdXRhYmxlIHsKKyAgICAgICAgV1RGOjpzd2l0Y2hPbihrZXlPcktleVBhaXIs
CisgICAgICAgICAgICBbJmNhcHR1cmVkUHJvbWlzZV0gKFJlZlB0cjxDcnlwdG9LZXk+JiBrZXkp
IHsKKyAgICAgICAgICAgICAgICBpZiAoKGtleS0+dHlwZSgpID09IENyeXB0b0tleVR5cGU6OlBy
aXZhdGUgfHwga2V5LT50eXBlKCkgPT0gQ3J5cHRvS2V5VHlwZTo6U2VjcmV0KSAmJiAha2V5LT51
c2FnZXNCaXRtYXAoKSkgeworICAgICAgICAgICAgICAgICAgICByZWplY3RXaXRoRXhjZXB0aW9u
KFdURk1vdmUoY2FwdHVyZWRQcm9taXNlKSwgU1lOVEFYX0VSUik7CisgICAgICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY2FwdHVyZWRQ
cm9taXNlLT5yZXNvbHZlPElETEludGVyZmFjZTxDcnlwdG9LZXk+Pigqa2V5KTsKKyAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICBbJmNhcHR1cmVkUHJvbWlzZV0gKENyeXB0b0tleVBhaXImIGtl
eVBhaXIpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWtleVBhaXIucHJpdmF0ZUtleS0+dXNhZ2Vz
Qml0bWFwKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVqZWN0V2l0aEV4Y2VwdGlvbihXVEZN
b3ZlKGNhcHR1cmVkUHJvbWlzZSksIFNZTlRBWF9FUlIpOworICAgICAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGNhcHR1cmVkUHJvbWlz
ZS0+cmVzb2x2ZTxJRExEaWN0aW9uYXJ5PENyeXB0b0tleVBhaXI+PihrZXlQYWlyKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgKTsKKyAgICB9OworICAgIGF1dG8gZXhjZXB0aW9uQ2FsbGJhY2sg
PSBbY2FwdHVyZWRQcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oRXhjZXB0aW9uQ29kZSBlYykg
bXV0YWJsZSB7CisgICAgICAgIHJlamVjdFdpdGhFeGNlcHRpb24oV1RGTW92ZShjYXB0dXJlZFBy
b21pc2UpLCBlYyk7CisgICAgfTsKKworICAgIC8vIFRoZSAyNiBKYW51YXJ5IDIwMTcgdmVyc2lv
biBvZiB0aGUgc3BlY2lmaWNhdGlvbiBzdWdnZXN0cyB3ZSBzaG91bGQgcGVyZm9ybSB0aGUgZm9s
bG93aW5nIHRhc2sgYXN5bmNocm9ub3VzbHkKKyAgICAvLyByZWdhcmRsZXNzIHdoYXQga2luZCBv
ZiBrZXlzIGl0IHByb2R1Y2VzOiBodHRwczovL3d3dy53My5vcmcvVFIvV2ViQ3J5cHRvQVBJLyNT
dWJ0bGVDcnlwdG8tbWV0aG9kLWdlbmVyYXRlS2V5CisgICAgLy8gVGhhdCdzIHNpbXBseSBub3Qg
ZWZmaWNpZW50IGZvciBBRVMsIEhNQUMgYW5kIEVDIGtleXMuIFRoZXJlZm9yZSwgd2UgcGVyZm9y
bSBpdCBhcyBhbiBhc3luYyB0YXNrIG9ubHkgZm9yIFJTQSBrZXlzLgorICAgIGFsZ29yaXRobS0+
Z2VuZXJhdGVLZXkoKnBhcmFtcywgZXh0cmFjdGFibGUsIGtleVVzYWdlcywgV1RGTW92ZShjYWxs
YmFjayksIFdURk1vdmUoZXhjZXB0aW9uQ2FsbGJhY2spLCAqc2NyaXB0RXhlY3V0aW9uQ29udGV4
dEZyb21FeGVjU3RhdGUoJnN0YXRlKSk7CiB9CiAKLXN0YXRpYyB2b2lkIGpzU3VidGxlQ3J5cHRv
RnVuY3Rpb25EZXJpdmVCaXRzUHJvbWlzZShFeGVjU3RhdGUmIHN0YXRlLCBSZWY8RGVmZXJyZWRQ
cm9taXNlPiYmIHByb21pc2UpCitzdGF0aWMgdm9pZCBqc1N1YnRsZUNyeXB0b0Z1bmN0aW9uRGVy
aXZlS2V5UHJvbWlzZShFeGVjU3RhdGUmIHN0YXRlLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHBy
b21pc2UpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUudm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICBpZiAoVU5MSUtFTFkoc3RhdGUuYXJndW1lbnRD
b3VudCgpIDwgMykpIHsKKyAgICBpZiAoVU5MSUtFTFkoc3RhdGUuYXJndW1lbnRDb3VudCgpIDwg
NSkpIHsKICAgICAgICAgcHJvbWlzZS0+cmVqZWN0PElETEFueT4oY3JlYXRlTm90RW5vdWdoQXJn
dW1lbnRzRXJyb3IoJnN0YXRlKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC02OTAsMTEg
Kzc0MiwxMSBAQCBzdGF0aWMgdm9pZCBqc1N1YnRsZUNyeXB0b0Z1bmN0aW9uRGVyaXZlQml0c1By
b21pc2UoRXhlY1N0YXRlJiBzdGF0ZSwgUmVmPERlZmVycgogICAgIGF1dG8gcGFyYW1zID0gbm9y
bWFsaXplQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyhzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJn
dW1lbnQoMCksIE9wZXJhdGlvbnM6OkRlcml2ZUJpdHMpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIHZvaWQoKSk7CiAKLSAgICAvLyBXZSBzaG91bGQgYWx3YXlzIHJldHVybiBhIE5P
VF9TVVBQT1JURURfRVJSIHNpbmNlIHdlIGN1cnJlbnRseSBkb24ndCBzdXBwb3J0IGFueSBhbGdv
cml0aG1zIHRoYXQgaGFzIGRlcml2ZUJpdHMgb3BlcmF0aW9uLgorICAgIC8vIFdlIHNob3VsZCBh
bHdheXMgcmV0dXJuIGEgTk9UX1NVUFBPUlRFRF9FUlIgc2luY2Ugd2UgY3VycmVudGx5IGRvbid0
IHN1cHBvcnQgYW55IGFsZ29yaXRobXMgdGhhdCBoYXMgZGVyaXZlS2V5IG9wZXJhdGlvbi4KICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotc3RhdGljIHZvaWQganNTdWJ0bGVDcnlwdG9G
dW5jdGlvbkdlbmVyYXRlS2V5UHJvbWlzZShFeGVjU3RhdGUmIHN0YXRlLCBSZWY8RGVmZXJyZWRQ
cm9taXNlPiYmIHByb21pc2UpCitzdGF0aWMgdm9pZCBqc1N1YnRsZUNyeXB0b0Z1bmN0aW9uRGVy
aXZlQml0c1Byb21pc2UoRXhlY1N0YXRlJiBzdGF0ZSwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBw
cm9taXNlKQogewogICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNzA0LDQ3ICs3NTYsNDIgQEAgc3RhdGljIHZvaWQg
anNTdWJ0bGVDcnlwdG9GdW5jdGlvbkdlbmVyYXRlS2V5UHJvbWlzZShFeGVjU3RhdGUmIHN0YXRl
LCBSZWY8RGVmZXIKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gcGFyYW1zID0g
bm9ybWFsaXplQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyhzdGF0ZSwgc3RhdGUudW5jaGVja2Vk
QXJndW1lbnQoMCksIE9wZXJhdGlvbnM6OkdlbmVyYXRlS2V5KTsKKyAgICBhdXRvIHBhcmFtcyA9
IG5vcm1hbGl6ZUNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMoc3RhdGUsIHN0YXRlLnVuY2hlY2tl
ZEFyZ3VtZW50KDApLCBPcGVyYXRpb25zOjpEZXJpdmVCaXRzKTsKICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCB2b2lkKCkpOwogCi0gICAgYXV0byBleHRyYWN0YWJsZSA9IHN0YXRlLnVu
Y2hlY2tlZEFyZ3VtZW50KDEpLnRvQm9vbGVhbigmc3RhdGUpOworICAgIGF1dG8gYmFzZUtleSA9
IHRvQ3J5cHRvS2V5KHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKSk7CiAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKIAotICAgIGF1dG8ga2V5VXNhZ2VzID0g
Y3J5cHRvS2V5VXNhZ2VCaXRtYXBGcm9tSlNWYWx1ZShzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJn
dW1lbnQoMikpOworICAgIGF1dG8gbGVuZ3RoID0gY29udmVydDxJRExVbnNpZ25lZExvbmc+KHN0
YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgyKSwgSW50ZWdlckNvbnZlcnNpb25Db25maWd1
cmF0aW9uOjpOb3JtYWwpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7
CiAKKyAgICBpZiAocGFyYW1zLT5pZGVudGlmaWVyICE9IGJhc2VLZXktPmFsZ29yaXRobUlkZW50
aWZpZXIoKSkgeworICAgICAgICBwcm9taXNlLT5yZWplY3QoSU5WQUxJRF9BQ0NFU1NfRVJSLCBB
U0NJSUxpdGVyYWwoIkNyeXB0b0tleSBkb2Vzbid0IG1hdGNoIEFsZ29yaXRobUlkZW50aWZpZXIi
KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIWJhc2VLZXktPmFsbG93cyhD
cnlwdG9LZXlVc2FnZURlcml2ZUJpdHMpKSB7CisgICAgICAgIHByb21pc2UtPnJlamVjdChJTlZB
TElEX0FDQ0VTU19FUlIsIEFTQ0lJTGl0ZXJhbCgiQ3J5cHRvS2V5IGRvZXNuJ3Qgc3VwcG9ydCBi
aXRzIGRlcml2YXRpb24iKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBhdXRvIGFs
Z29yaXRobSA9IENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5OjpzaW5nbGV0b24oKS5jcmVhdGUocGFy
YW1zLT5pZGVudGlmaWVyKTsKICAgICBpZiAoVU5MSUtFTFkoIWFsZ29yaXRobSkpIHsKICAgICAg
ICAgdGhyb3dOb3RTdXBwb3J0ZWRFcnJvcihzdGF0ZSwgc2NvcGUpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgYXV0byBjYWxsYmFjayA9IFtjYXB0dXJlZFByb21pc2UgPSBwcm9taXNl
LmNvcHlSZWYoKV0oS2V5T3JLZXlQYWlyJiYga2V5T3JLZXlQYWlyKSBtdXRhYmxlIHsKLSAgICAg
ICAgV1RGOjpzd2l0Y2hPbihrZXlPcktleVBhaXIsCi0gICAgICAgICAgICBbJmNhcHR1cmVkUHJv
bWlzZV0gKFJlZlB0cjxDcnlwdG9LZXk+JiBrZXkpIHsKLSAgICAgICAgICAgICAgICBpZiAoKGtl
eS0+dHlwZSgpID09IENyeXB0b0tleVR5cGU6OlByaXZhdGUgfHwga2V5LT50eXBlKCkgPT0gQ3J5
cHRvS2V5VHlwZTo6U2VjcmV0KSAmJiAha2V5LT51c2FnZXNCaXRtYXAoKSkgewotICAgICAgICAg
ICAgICAgICAgICByZWplY3RXaXRoRXhjZXB0aW9uKFdURk1vdmUoY2FwdHVyZWRQcm9taXNlKSwg
U1lOVEFYX0VSUik7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgY2FwdHVyZWRQcm9taXNlLT5yZXNvbHZlPElETEludGVyZmFj
ZTxDcnlwdG9LZXk+Pigqa2V5KTsKLSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICBbJmNhcHR1
cmVkUHJvbWlzZV0gKENyeXB0b0tleVBhaXImIGtleVBhaXIpIHsKLSAgICAgICAgICAgICAgICBp
ZiAoIWtleVBhaXIucHJpdmF0ZUtleS0+dXNhZ2VzQml0bWFwKCkpIHsKLSAgICAgICAgICAgICAg
ICAgICAgcmVqZWN0V2l0aEV4Y2VwdGlvbihXVEZNb3ZlKGNhcHR1cmVkUHJvbWlzZSksIFNZTlRB
WF9FUlIpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIGNhcHR1cmVkUHJvbWlzZS0+cmVzb2x2ZTxJRExEaWN0aW9uYXJ5PENy
eXB0b0tleVBhaXI+PihrZXlQYWlyKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgKTsKKyAgICBh
dXRvIGNhbGxiYWNrID0gW2NhcHR1cmVkUHJvbWlzZSA9IHByb21pc2UuY29weVJlZigpXShjb25z
dCBWZWN0b3I8dWludDhfdD4mIGRlcml2ZWRLZXkpIG11dGFibGUgeworICAgICAgICBmdWxmaWxs
UHJvbWlzZVdpdGhBcnJheUJ1ZmZlcihXVEZNb3ZlKGNhcHR1cmVkUHJvbWlzZSksIGRlcml2ZWRL
ZXkuZGF0YSgpLCBkZXJpdmVkS2V5LnNpemUoKSk7CisgICAgICAgIHJldHVybjsKICAgICB9Owog
ICAgIGF1dG8gZXhjZXB0aW9uQ2FsbGJhY2sgPSBbY2FwdHVyZWRQcm9taXNlID0gV1RGTW92ZShw
cm9taXNlKV0oRXhjZXB0aW9uQ29kZSBlYykgbXV0YWJsZSB7CiAgICAgICAgIHJlamVjdFdpdGhF
eGNlcHRpb24oV1RGTW92ZShjYXB0dXJlZFByb21pc2UpLCBlYyk7CiAgICAgfTsKIAotICAgIC8v
IFRoZSAyNiBKYW51YXJ5IDIwMTcgdmVyc2lvbiBvZiB0aGUgc3BlY2lmaWNhdGlvbiBzdWdnZXN0
cyB3ZSBzaG91bGQgcGVyZm9ybSB0aGUgZm9sbG93aW5nIHRhc2sgYXN5bmNocm9ub3VzbHkKLSAg
ICAvLyByZWdhcmRsZXNzIHdoYXQga2luZCBvZiBrZXlzIGl0IHByb2R1Y2VzOiBodHRwczovL3d3
dy53My5vcmcvVFIvV2ViQ3J5cHRvQVBJLyNTdWJ0bGVDcnlwdG8tbWV0aG9kLWdlbmVyYXRlS2V5
Ci0gICAgLy8gVGhhdCdzIHNpbXBseSBub3QgZWZmaWNpZW50IGZvciBBRVMsIEhNQUMgYW5kIEVD
IGtleXMuIFRoZXJlZm9yZSwgd2UgcGVyZm9ybSBpdCBhcyBhbiBhc3luYyB0YXNrIG9ubHkgZm9y
IFJTQSBrZXlzLgotICAgIGFsZ29yaXRobS0+Z2VuZXJhdGVLZXkoKnBhcmFtcywgZXh0cmFjdGFi
bGUsIGtleVVzYWdlcywgV1RGTW92ZShjYWxsYmFjayksIFdURk1vdmUoZXhjZXB0aW9uQ2FsbGJh
Y2spLCAqc2NyaXB0RXhlY3V0aW9uQ29udGV4dEZyb21FeGVjU3RhdGUoJnN0YXRlKSk7CisgICAg
YXV0byBzdWJ0bGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1N1YnRsZUNyeXB0byo+KHZtLCBzdGF0
ZS50aGlzVmFsdWUoKSk7CisgICAgQVNTRVJUKHN1YnRsZSk7CisgICAgYWxnb3JpdGhtLT5kZXJp
dmVCaXRzKFdURk1vdmUocGFyYW1zKSwgYmFzZUtleS5yZWxlYXNlTm9uTnVsbCgpLCBsZW5ndGgs
IFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGV4Y2VwdGlvbkNhbGxiYWNrKSwgKnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRGcm9tRXhlY1N0YXRlKCZzdGF0ZSksIHN1YnRsZS0+d3JhcHBlZCgpLndv
cmtRdWV1ZSgpKTsKIH0KIAogc3RhdGljIHZvaWQganNTdWJ0bGVDcnlwdG9GdW5jdGlvbkltcG9y
dEtleVByb21pc2UoRXhlY1N0YXRlJiBzdGF0ZSwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9t
aXNlKQpAQCAtMTA5OCw2ICsxMTQ1LDEyIEBAIEpTVmFsdWUgSlNTdWJ0bGVDcnlwdG86OmRpZ2Vz
dChFeGVjU3RhdGUmIHN0YXRlKQogICAgIHJldHVybiBjYWxsUHJvbWlzZUZ1bmN0aW9uPGpzU3Vi
dGxlQ3J5cHRvRnVuY3Rpb25EaWdlc3RQcm9taXNlLCBQcm9taXNlRXhlY3V0aW9uU2NvcGU6Oldp
bmRvd09yV29ya2VyPihzdGF0ZSk7CiB9CiAKKworSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6Z2Vu
ZXJhdGVLZXkoRXhlY1N0YXRlJiBzdGF0ZSkKK3sKKyAgICByZXR1cm4gY2FsbFByb21pc2VGdW5j
dGlvbjxqc1N1YnRsZUNyeXB0b0Z1bmN0aW9uR2VuZXJhdGVLZXlQcm9taXNlLCBQcm9taXNlRXhl
Y3V0aW9uU2NvcGU6OldpbmRvd09yV29ya2VyPihzdGF0ZSk7Cit9CisKIEpTVmFsdWUgSlNTdWJ0
bGVDcnlwdG86OmRlcml2ZUtleShFeGVjU3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBjYWxs
UHJvbWlzZUZ1bmN0aW9uPGpzU3VidGxlQ3J5cHRvRnVuY3Rpb25EZXJpdmVLZXlQcm9taXNlLCBQ
cm9taXNlRXhlY3V0aW9uU2NvcGU6OldpbmRvd09yV29ya2VyPihzdGF0ZSk7CkBAIC0xMTA4LDEx
ICsxMTYxLDYgQEAgSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6ZGVyaXZlQml0cyhFeGVjU3RhdGUm
IHN0YXRlKQogICAgIHJldHVybiBjYWxsUHJvbWlzZUZ1bmN0aW9uPGpzU3VidGxlQ3J5cHRvRnVu
Y3Rpb25EZXJpdmVCaXRzUHJvbWlzZSwgUHJvbWlzZUV4ZWN1dGlvblNjb3BlOjpXaW5kb3dPcldv
cmtlcj4oc3RhdGUpOwogfQogCi1KU1ZhbHVlIEpTU3VidGxlQ3J5cHRvOjpnZW5lcmF0ZUtleShF
eGVjU3RhdGUmIHN0YXRlKQotewotICAgIHJldHVybiBjYWxsUHJvbWlzZUZ1bmN0aW9uPGpzU3Vi
dGxlQ3J5cHRvRnVuY3Rpb25HZW5lcmF0ZUtleVByb21pc2UsIFByb21pc2VFeGVjdXRpb25TY29w
ZTo6V2luZG93T3JXb3JrZXI+KHN0YXRlKTsKLX0KLQogSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6
aW1wb3J0S2V5KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7CiAgICAgcmV0dXJuIGNhbGxQcm9taXNlRnVu
Y3Rpb248anNTdWJ0bGVDcnlwdG9GdW5jdGlvbkltcG9ydEtleVByb21pc2UsIFByb21pc2VFeGVj
dXRpb25TY29wZTo6V2luZG93T3JXb3JrZXI+KHN0YXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9Db21tb25DcnlwdG9VdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9Db21tb25DcnlwdG9VdGlsaXRpZXMuaAppbmRleCA2NGNkNTkyYWYxMTFjNDIyNjgzNDE3
Mzc4MWJmNzRiNzkzNTA3NDU4Li5mNTRlY2MxY2JjYjE2NjIwMGFiZjkzZTZlNGQ0Y2I1YWU5ZjE3
Nzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ29tbW9uQ3J5cHRvVXRpbGl0
aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NvbW1vbkNyeXB0b1V0aWxpdGllcy5o
CkBAIC0xMDcsNyArMTA3LDcgQEAgZXh0ZXJuICJDIiBDQ0NyeXB0b3JTdGF0dXMgQ0NFQ0NyeXB0
b3JFeHBvcnRLZXkoQ0NFQ0tleUV4dGVybmFsRm9ybWF0IGZvcm1hdCwgdm8KIGV4dGVybiAiQyIg
aW50IENDRUNHZXRLZXlTaXplKENDRUNDcnlwdG9yUmVmIGtleSk7CiBleHRlcm4gIkMiIENDQ3J5
cHRvclN0YXR1cyBDQ0VDQ3J5cHRvckNyZWF0ZUZyb21EYXRhKHNpemVfdCBrZXlTaXplLCB1aW50
OF90ICpxWCwgc2l6ZV90IHFYTGVuZ3RoLCB1aW50OF90ICpxWSwgc2l6ZV90IHFZTGVuZ3RoLCBD
Q0VDQ3J5cHRvclJlZiAqcmVmKTsKIGV4dGVybiAiQyIgQ0NDcnlwdG9yU3RhdHVzIENDRUNDcnlw
dG9yR2V0S2V5Q29tcG9uZW50cyhDQ0VDQ3J5cHRvclJlZiBlY0tleSwgc2l6ZV90ICprZXlTaXpl
LCB1aW50OF90ICpxWCwgc2l6ZV90ICpxWExlbmd0aCwgdWludDhfdCAqcVksIHNpemVfdCAqcVlM
ZW5ndGgsIHVpbnQ4X3QgKmQsIHNpemVfdCAqZExlbmd0aCk7Ci0KK2V4dGVybiAiQyIgQ0NDcnlw
dG9yU3RhdHVzIENDRUNDcnlwdG9yQ29tcHV0ZVNoYXJlZFNlY3JldChDQ0VDQ3J5cHRvclJlZiBw
cml2YXRlS2V5LCBDQ0VDQ3J5cHRvclJlZiBwdWJsaWNLZXksIHZvaWQgKm91dCwgc2l6ZV90ICpv
dXRMZW4pOwogCiAjaWYgIVVTRShBUFBMRV9JTlRFUk5BTF9TREspCiBleHRlcm4gIkMiIENDQ3J5
cHRvclN0YXR1cyBDQ0NyeXB0b3JHQ00oQ0NPcGVyYXRpb24gb3AsIENDQWxnb3JpdGhtIGFsZywg
Y29uc3Qgdm9pZCoga2V5LCBzaXplX3Qga2V5TGVuZ3RoLCBjb25zdCB2b2lkKiBpdiwgc2l6ZV90
IGl2TGVuLCBjb25zdCB2b2lkKiBhRGF0YSwgc2l6ZV90IGFEYXRhTGVuLCBjb25zdCB2b2lkKiBk
YXRhSW4sIHNpemVfdCBkYXRhSW5MZW5ndGgsIHZvaWQqIGRhdGFPdXQsIHZvaWQqIHRhZywgc2l6
ZV90KiB0YWdMZW5ndGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0
b0FsZ29yaXRobS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtLmNw
cAppbmRleCBmY2NhNjgzYzE1YjI5N2U3OTc4MmE4YmJjODAyM2I1MzY5ZDRhYzFmLi5lZmY1ZWM3
OTI5MTUxMWUwOGQ3OWU3YjY2YTY5ZDgyNjUwN2JjY2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vQ3J5cHRvQWxnb3JpdGhtLmNwcApAQCAtNjIsNiArNjIsMTEgQEAgdm9pZCBDcnlwdG9BbGdv
cml0aG06OmdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBib29s
LCBDcnlwdG8KICAgICBleGNlcHRpb25DYWxsYmFjayhOT1RfU1VQUE9SVEVEX0VSUik7CiB9CiAK
K3ZvaWQgQ3J5cHRvQWxnb3JpdGhtOjpkZXJpdmVCaXRzKHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzPiYmLCBSZWY8Q3J5cHRvS2V5PiYmLCB1bnNpZ25lZCBsb25nLCBW
ZWN0b3JDYWxsYmFjayYmLCBFeGNlcHRpb25DYWxsYmFjayYmIGV4Y2VwdGlvbkNhbGxiYWNrLCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiwgV29ya1F1ZXVlJikKK3sKKyAgICBleGNlcHRpb25DYWxs
YmFjayhOT1RfU1VQUE9SVEVEX0VSUik7Cit9CisKIHZvaWQgQ3J5cHRvQWxnb3JpdGhtOjppbXBv
cnRLZXkoU3VidGxlQ3J5cHRvOjpLZXlGb3JtYXQsIEtleURhdGEmJiwgY29uc3Qgc3RkOjp1bmlx
dWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+JiYsIGJvb2wsIENyeXB0b0tleVVzYWdl
Qml0bWFwLCBLZXlDYWxsYmFjayYmLCBFeGNlcHRpb25DYWxsYmFjayYmIGV4Y2VwdGlvbkNhbGxi
YWNrKQogewogICAgIGV4Y2VwdGlvbkNhbGxiYWNrKE5PVF9TVVBQT1JURURfRVJSKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG0uaCBiL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG0uaAppbmRleCBjMzBhZTMyNGQ5ZTcwZGZhOTlk
ZDc2MzU1MzAxNTU0OTJkNjI5ZTQ0Li42NDY3YmNhMDVmYjE2ZThhYzhmMzE4NWJjYTk0NTc3MTRl
OGUxNzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGht
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRobS5oCkBAIC03Miw2
ICs3Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgdmVyaWZ5KFJlZjxDcnlwdG9LZXk+
JiYsIFZlY3Rvcjx1aW50OF90PiYmIHNpZ25hdHVyZSwgVmVjdG9yPHVpbnQ4X3Q+JiYsIEJvb2xD
YWxsYmFjayYmLCBFeGNlcHRpb25DYWxsYmFjayYmLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwg
V29ya1F1ZXVlJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZ2VzdChWZWN0b3I8dWludDhfdD4mJiwg
VmVjdG9yQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ2FsbGJhY2smJiwgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYsIFdvcmtRdWV1ZSYpOwogICAgIHZpcnR1YWwgdm9pZCBnZW5lcmF0ZUtleShjb25zdCBD
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNh
Z2VCaXRtYXAsIEtleU9yS2V5UGFpckNhbGxiYWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYsIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGVyaXZlQml0cyhzdGQ6
OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4mJiwgUmVmPENyeXB0b0tleT4m
JiwgdW5zaWduZWQgbG9uZyBsZW5ndGgsIFZlY3RvckNhbGxiYWNrJiYsIEV4Y2VwdGlvbkNhbGxi
YWNrJiYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBXb3JrUXVldWUmKTsKICAgICAvLyBGSVhN
RTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2OTI2MgogICAgIHZp
cnR1YWwgdm9pZCBpbXBvcnRLZXkoU3VidGxlQ3J5cHRvOjpLZXlGb3JtYXQsIEtleURhdGEmJiwg
Y29uc3Qgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+JiYsIGJvb2wg
ZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlQml0bWFwLCBLZXlDYWxsYmFjayYmLCBFeGNlcHRp
b25DYWxsYmFjayYmKTsKICAgICB2aXJ0dWFsIHZvaWQgZXhwb3J0S2V5KFN1YnRsZUNyeXB0bzo6
S2V5Rm9ybWF0LCBSZWY8Q3J5cHRvS2V5PiYmLCBLZXlEYXRhQ2FsbGJhY2smJiwgRXhjZXB0aW9u
Q2FsbGJhY2smJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnMuaAppbmRleCA2YWE2MzNiMjllZGQ4OGJiOGNlYmI3OTYyMmE1YjAwNzQ4N2Zm
Mjg0Li4wMWFiOTY1MjFmNzcyMzc2M2RhZGZkYzIyMzYwNGZjMWRjMDFiOTliIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzLmgKQEAgLTQx
LDYgKzQxLDcgQEAgcHVibGljOgogICAgICAgICBBZXNHY21QYXJhbXMsCiAgICAgICAgIEFlc0tl
eUdlblBhcmFtcywKICAgICAgICAgRWNLZXlQYXJhbXMsCisgICAgICAgIEVjZGhLZXlEZXJpdmVQ
YXJhbXMsCiAgICAgICAgIEhtYWNLZXlQYXJhbXMsCiAgICAgICAgIFJzYUhhc2hlZEtleUdlblBh
cmFtcywKICAgICAgICAgUnNhSGFzaGVkSW1wb3J0UGFyYW1zLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNESC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RILmNwcAppbmRl
eCBmZDZjMTA1YTZkYmRkZjBiZWRlMjYxMTBjYmI5YjUwZTNiZTVmMGJhLi44NGRjMDMwODBkOTQy
ODUxMTE0ZTlkZWFjYzllZjNiMTZkY2Q3YWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RILmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RILmNwcApAQCAtMjksNiAr
MjksNyBAQAogI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQogCiAjaW5jbHVkZSAiQ3J5cHRvQWxn
b3JpdGhtRWNLZXlQYXJhbXMuaCIKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1FY2RoS2V5RGVy
aXZlUGFyYW1zLmgiCiAjaW5jbHVkZSAiQ3J5cHRvS2V5RUMuaCIKICNpbmNsdWRlICJFeGNlcHRp
b25Db2RlLmgiCiAKQEAgLTY1LDYgKzY2LDU2IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtRUNESDo6
Z2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW1ldGVyCiAg
ICAgY2FsbGJhY2soV1RGTW92ZShwYWlyKSk7CiB9CiAKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtRUNE
SDo6ZGVyaXZlQml0cyhzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4m
JiBwYXJhbWV0ZXJzLCBSZWY8Q3J5cHRvS2V5PiYmIGJhc2VLZXksIHVuc2lnbmVkIGxvbmcgbGVu
Z3RoLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBFeGNlcHRpb25DYWxsYmFjayYmIGV4Y2Vw
dGlvbkNhbGxiYWNrLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBXb3JrUXVldWUm
IHdvcmtRdWV1ZSkKK3sKKyAgICAvLyBXZSBvbmx5IGFjY2VwdCBsZW5ndGggdGhhdCBpcyBhIG11
bHRpcGxlIG9mIDguCisgICAgaWYgKCEobGVuZ3RoICUgOCkpIHsKKyAgICAgICAgZXhjZXB0aW9u
Q2FsbGJhY2soT3BlcmF0aW9uRXJyb3IpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
QVNTRVJUKHBhcmFtZXRlcnMpOworICAgIGF1dG8mIGVjUGFyYW1ldGVycyA9IGRvd25jYXN0PENy
eXB0b0FsZ29yaXRobUVjZGhLZXlEZXJpdmVQYXJhbXM+KCpwYXJhbWV0ZXJzKTsKKworICAgIGlm
IChiYXNlS2V5LT50eXBlKCkgIT0gQ3J5cHRvS2V5OjpUeXBlOjpQcml2YXRlKSB7CisgICAgICAg
IGV4Y2VwdGlvbkNhbGxiYWNrKElOVkFMSURfQUNDRVNTX0VSUik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisgICAgQVNTRVJUKGVjUGFyYW1ldGVycy5wdWJsaWNLZXkpOworICAgIGlmIChlY1Bh
cmFtZXRlcnMucHVibGljS2V5LT50eXBlKCkgIT0gQ3J5cHRvS2V5OjpUeXBlOjpQdWJsaWMpIHsK
KyAgICAgICAgZXhjZXB0aW9uQ2FsbGJhY2soSU5WQUxJRF9BQ0NFU1NfRVJSKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBpZiAoYmFzZUtleS0+YWxnb3JpdGhtSWRlbnRpZmllcigpICE9
IGVjUGFyYW1ldGVycy5wdWJsaWNLZXktPmFsZ29yaXRobUlkZW50aWZpZXIoKSkgeworICAgICAg
ICBleGNlcHRpb25DYWxsYmFjayhJTlZBTElEX0FDQ0VTU19FUlIpOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgIGF1dG8mIGVjQmFzZUtleSA9IGRvd25jYXN0PENyeXB0b0tleUVDPihiYXNl
S2V5LmdldCgpKTsKKyAgICBhdXRvJiBlY1B1YmxpY0tleSA9IGRvd25jYXN0PENyeXB0b0tleUVD
PigqKGVjUGFyYW1ldGVycy5wdWJsaWNLZXkuZ2V0KCkpKTsKKyAgICBpZiAoZWNCYXNlS2V5Lm5h
bWVkQ3VydmUoKSAhPSBlY1B1YmxpY0tleS5uYW1lZEN1cnZlKCkpIHsKKyAgICAgICAgZXhjZXB0
aW9uQ2FsbGJhY2soSU5WQUxJRF9BQ0NFU1NfRVJSKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIGF1dG8gdW5pZmllZENhbGxiYWNrID0gW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFj
ayksIGV4Y2VwdGlvbkNhbGxiYWNrID0gV1RGTW92ZShleGNlcHRpb25DYWxsYmFjayldKHN0ZDo6
b3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+PiYmIGRlcml2ZWRLZXksIHVuc2lnbmVkIGxvbmcgbGVu
Z3RoKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFkZXJpdmVkS2V5KSB7CisgICAgICAgICAgICBl
eGNlcHRpb25DYWxsYmFjayhPcGVyYXRpb25FcnJvcik7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyAgICAgICAgaWYgKCFsZW5ndGgpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKFdU
Rk1vdmUoKmRlcml2ZWRLZXkpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAg
ICAgICBpZiAobGVuZ3RoIC8gOCA+ICgqZGVyaXZlZEtleSkuc2l6ZSgpKSB7CisgICAgICAgICAg
ICBleGNlcHRpb25DYWxsYmFjayhPcGVyYXRpb25FcnJvcik7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKyAgICAgICAgKCpkZXJpdmVkS2V5KS5zaHJpbmsobGVuZ3RoIC8gOCk7Cisg
ICAgICAgIGNhbGxiYWNrKFdURk1vdmUoKmRlcml2ZWRLZXkpKTsKKyAgICB9OworICAgIHBsYXRm
b3JtRGVyaXZlQml0cyhXVEZNb3ZlKGJhc2VLZXkpLCBlY1BhcmFtZXRlcnMucHVibGljS2V5LnJl
bGVhc2VOb25OdWxsKCksIGxlbmd0aCwgV1RGTW92ZSh1bmlmaWVkQ2FsbGJhY2spLCBjb250ZXh0
LCB3b3JrUXVldWUpOworfQorCiB2b2lkIENyeXB0b0FsZ29yaXRobUVDREg6OmltcG9ydEtleShT
dWJ0bGVDcnlwdG86OktleUZvcm1hdCBmb3JtYXQsIEtleURhdGEmJiBkYXRhLCBjb25zdCBzdGQ6
OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4mJiBwYXJhbWV0ZXJzLCBib29s
IGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCB1c2FnZXMsIEtleUNhbGxiYWNrJiYg
Y2FsbGJhY2ssIEV4Y2VwdGlvbkNhbGxiYWNrJiYgZXhjZXB0aW9uQ2FsbGJhY2spCiB7CiAgICAg
QVNTRVJUKHBhcmFtZXRlcnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNESC5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNESC5oCmluZGV4IDUxYjQ2MmVjYmU5YTg0ZDZmOWUy
YmRiOWUyNDQyNjk1ZmMzNjNkMjUuLmEzOTVhM2YxYTUxYTVjMDZmMTgzMGY1NGJmODEwNTI2NmM2
Yjc4ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobUVDREguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1FQ0RILmgKQEAgLTQyLDggKzQyLDEyIEBAIHByaXZhdGU6CiAgICAgQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgZmluYWw7CiAKICAgICB2
b2lkIGdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBib29sIGV4
dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCwgS2V5T3JLZXlQYWlyQ2FsbGJhY2smJiwg
RXhjZXB0aW9uQ2FsbGJhY2smJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpIGZpbmFsOworICAg
IHZvaWQgZGVyaXZlQml0cyhzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
cz4mJiwgUmVmPENyeXB0b0tleT4mJiwgdW5zaWduZWQgbG9uZyBsZW5ndGgsIFZlY3RvckNhbGxi
YWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBXb3Jr
UXVldWUmKSBmaW5hbDsKICAgICB2b2lkIGltcG9ydEtleShTdWJ0bGVDcnlwdG86OktleUZvcm1h
dCwgS2V5RGF0YSYmLCBjb25zdCBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVycz4mJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2VCaXRtYXAsIEtleUNhbGxi
YWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgZXhwb3J0S2V5KFN1
YnRsZUNyeXB0bzo6S2V5Rm9ybWF0LCBSZWY8Q3J5cHRvS2V5PiYmLCBLZXlEYXRhQ2FsbGJhY2sm
JiwgRXhjZXB0aW9uQ2FsbGJhY2smJikgZmluYWw7CisKKyAgICB1c2luZyBDYWxsYmFjayA9IEZ1
bmN0aW9uPHZvaWQoc3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhfdD4+JiYsIHVuc2lnbmVkIGxv
bmcpPjsKKyAgICB2b2lkIHBsYXRmb3JtRGVyaXZlQml0cyhSZWY8Q3J5cHRvS2V5PiYmIGJhc2VL
ZXksIFJlZjxDcnlwdG9LZXk+JiYgcHVibGljS2V5LCB1bnNpZ25lZCBsb25nIGxlbmd0aCwgQ2Fs
bGJhY2smJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFdvcmtRdWV1ZSYpOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tl
eXMvQ3J5cHRvS2V5RUMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUVD
LmgKaW5kZXggNTAzOWI0ZTk2MzQ1MjQwNjE5NWM4MzNlMTE1ZTU5MjllMjM3NjYzMC4uOTRhNmQ5
NGYxZDc3YjQ1N2NlOWM2MmE2NTI3MjMwOWI3ZDY0NjE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8va2V5cy9DcnlwdG9LZXlFQy5oCkBAIC04NCw2ICs4NCw4IEBAIHB1YmxpYzoKICAgICBKc29u
V2ViS2V5IGV4cG9ydEp3aygpIGNvbnN0OwogCiAgICAgc2l6ZV90IGtleVNpemVJbkJpdHMoKSBj
b25zdDsKKyAgICBOYW1lZEN1cnZlIG5hbWVkQ3VydmUoKSBjb25zdCB7IHJldHVybiBtX2N1cnZl
OyB9CisgICAgUGxhdGZvcm1FQ0tleSBwbGF0Zm9ybUtleSgpIHsgcmV0dXJuIG1fcGxhdGZvcm1L
ZXk7IH0KIAogcHJpdmF0ZToKICAgICBDcnlwdG9LZXlFQyhDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyLCBOYW1lZEN1cnZlLCBDcnlwdG9LZXlUeXBlLCBQbGF0Zm9ybUVDS2V5LCBib29sIGV4dHJh
Y3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUVDREhNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1FQ0RITWFjLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMzhjNTBl
ODJjY2I5ZTEyNDI4Mzg1Mjc5MzFmNWI0ZDE3ZmQ1ZmQ1Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1FQ0RITWFjLmNwcApAQCAtMCww
ICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNy
eXB0b0FsZ29yaXRobUVDREguaCIKKworI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQorCisjaW5j
bHVkZSAiQ29tbW9uQ3J5cHRvVXRpbGl0aWVzLmgiCisjaW5jbHVkZSAiQ3J5cHRvS2V5RUMuaCIK
KyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKwordm9pZCBDcnlwdG9BbGdvcml0aG1FQ0RIOjpwbGF0Zm9ybURlcml2ZUJpdHMoUmVmPENy
eXB0b0tleT4mJiBiYXNlS2V5LCBSZWY8Q3J5cHRvS2V5PiYmIHB1YmxpY0tleSwgdW5zaWduZWQg
bG9uZyBsZW5ndGgsIENhbGxiYWNrJiYgY2FsbGJhY2ssIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIFdvcmtRdWV1ZSYgd29ya1F1ZXVlKQoreworICAgIGNvbnRleHQucmVmKCk7Cisg
ICAgd29ya1F1ZXVlLmRpc3BhdGNoKFtiYXNlS2V5ID0gV1RGTW92ZShiYXNlS2V5KSwgcHVibGlj
S2V5ID0gV1RGTW92ZShwdWJsaWNLZXkpLCBsZW5ndGgsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxs
YmFjayksICZjb250ZXh0XSgpIG11dGFibGUgeworICAgICAgICBhdXRvJiBlY0Jhc2VLZXkgPSBk
b3duY2FzdDxDcnlwdG9LZXlFQz4oYmFzZUtleS5nZXQoKSk7CisgICAgICAgIGF1dG8mIGVjUHVi
bGljS2V5ID0gZG93bmNhc3Q8Q3J5cHRvS2V5RUM+KHB1YmxpY0tleS5nZXQoKSk7CisKKyAgICAg
ICAgc3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhfdD4+IHJlc3VsdCA9IHN0ZDo6bnVsbG9wdDsK
KyAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGRlcml2ZWRLZXkoZWNCYXNlS2V5LmtleVNpemVJbkJp
dHMoKSAvIDgpOyAvLyBQZXIgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzYwOTAjc2Vj
dGlvbi00LgorICAgICAgICBzaXplX3Qgc2l6ZSA9IGRlcml2ZWRLZXkuc2l6ZSgpOworICAgICAg
ICBpZiAoIUNDRUNDcnlwdG9yQ29tcHV0ZVNoYXJlZFNlY3JldChlY0Jhc2VLZXkucGxhdGZvcm1L
ZXkoKSwgZWNQdWJsaWNLZXkucGxhdGZvcm1LZXkoKSwgZGVyaXZlZEtleS5kYXRhKCksICZzaXpl
KSkKKyAgICAgICAgICAgIHJlc3VsdCA9IFdURk1vdmUoZGVyaXZlZEtleSk7CisKKyAgICAgICAg
Y29udGV4dC5wb3N0VGFzayhbcmVzdWx0ID0gV1RGTW92ZShyZXN1bHQpLCBsZW5ndGgsIGNhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayldKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQp
IG11dGFibGUgeworICAgICAgICAgICAgY2FsbGJhY2soV1RGTW92ZShyZXN1bHQpLCBsZW5ndGgp
OworICAgICAgICAgICAgY29udGV4dC5kZXJlZigpOworICAgICAgICB9KTsKKyAgICB9KTsKK30K
KworfQorCisjZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1FY2RoS2V5RGVyaXZl
UGFyYW1zLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0
aG1FY2RoS2V5RGVyaXZlUGFyYW1zLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTcwMDk0N2RhMmNjMzNkZGE2OThm
NDhjNDAxMmZkYzE4MWRhNmJmMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUVjZGhLZXlEZXJpdmVQYXJhbXMuaApAQCAt
MCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJDcnlw
dG9BbGdvcml0aG1QYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKwor
I2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IENyeXB0b0tleTsKKworY2xhc3MgQ3J5cHRvQWxnb3JpdGhtRWNkaEtleURlcml2ZVBhcmFtcyBm
aW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzIHsKK3B1YmxpYzoKKyAgICBS
ZWZQdHI8Q3J5cHRvS2V5PiBwdWJsaWNLZXk7CisKKyAgICBDbGFzcyBwYXJhbWV0ZXJzQ2xhc3Mo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBDbGFzczo6RWNkaEtleURlcml2ZVBhcmFtczsgfQorfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0NSWVBU
T19BTEdPUklUSE1fUEFSQU1FVEVSUyhFY2RoS2V5RGVyaXZlUGFyYW1zKQorCisjZW5kaWYgLy8g
RU5BQkxFKFNVQlRMRV9DUllQVE8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
cGFyYW1ldGVycy9FY2RoS2V5RGVyaXZlUGFyYW1zLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9wYXJhbWV0ZXJzL0VjZGhLZXlEZXJpdmVQYXJhbXMuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI5ZWRiNzIz
ZjNiNzNjZDI0OTEyMGY4ZTNkYjRlMjk2NzIxOWM1ZWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9FY2RoS2V5RGVyaXZlUGFyYW1zLmlkbApAQCAt
MCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlvbmFsPVNVQlRMRV9DUllQ
VE8sCisgICAgSW1wbGVtZW50ZWRBcz1DcnlwdG9BbGdvcml0aG1FY2RoS2V5RGVyaXZlUGFyYW1z
LAorXSBkaWN0aW9uYXJ5IEVjZGhLZXlEZXJpdmVQYXJhbXMgOiBDcnlwdG9BbGdvcml0aG1QYXJh
bWV0ZXJzIHsKKyAgICAvLyBXZSBzaG91bGQgcmVuYW1lIHRoaXMgdG8gcHVibGljIG9uY2UgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2OTMzMyBpcyBmaXhlZC4KKyAg
ICAvLyBUaGUgcGVlcidzIEVDIHB1YmxpYyBrZXkuCisgICAgcmVxdWlyZWQgQ3J5cHRvS2V5IHB1
YmxpY0tleTsKK307CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggZmQ5MGY3MDgxMjIwYmFmYWYzMTI5ZjkwZThhM2NkNTBkYzRi
NjA5Ny4uYzZjNmIxMDUyYzA5Zjk1ZGRkYjgwM2MxMDgxMDlmY2E0ZmFjOTM0YyAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI2IEBACisyMDE3LTAzLTA4ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5j
b20+CisKKyAgICAgICAgW1dlYkNyeXB0b10gSW1wbGVtZW50IEVDREggRGVyaXZlQml0cyBvcGVy
YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2
OTMxOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjM3ODk1ODU+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorICAg
ICAgICBSZWZpbmUgc29tZSBjb21tZW50cy4KKyAgICAgICAgKiBjcnlwdG8vc3VidGxlL2Rlcml2
ZS1iaXRzLW1hbGZvcm1lZC1wYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZGVyaXZlQml0cy1tYWxmb3JtZWQtcGFyYW1ldGVycy1l
eHBlY3RlZC50eHQuCisgICAgICAgICogY3J5cHRvL3N1YnRsZS9kZXJpdmUtYml0cy1tYWxmb3Jt
ZWQtcGFyYW1ldGVycy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjcnlwdG8vc3VidGxlL2Rlcml2
ZUJpdHMtbWFsZm9ybWVkLXBhcmFtZXRlcnMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlw
dG8vc3VidGxlL2Rlcml2ZUtleS1tYWxmb3JtZWQtcGFyYW1ldGVycy1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogY3J5cHRvL3N1YnRsZS9lY2RoLWRlcml2ZS1iaXRzLW1hbGZvcm1lZC1wYXJhbWV0
cnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjcnlwdG8vc3VidGxlL2VjZGgtZGVy
aXZlLWJpdHMtbWFsZm9ybWVkLXBhcmFtZXRycy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjcnlw
dG8vc3VidGxlL2VjZGgtZ2VuZXJhdGUta2V5LWRlcml2ZS1iaXRzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogY3J5cHRvL3N1YnRsZS9lY2RoLWdlbmVyYXRlLWtleS1kZXJpdmUtYml0
cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjcnlwdG8vc3VidGxlL2VjZGgtaW1wb3J0LWtleS1k
ZXJpdmUtYml0cy1jdXN0b20tbGVuZ3RoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
Y3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1rZXktZGVyaXZlLWJpdHMtY3VzdG9tLWxlbmd0aC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBjcnlwdG8vc3VidGxlL2VjZGgtaW1wb3J0LWtleS1kZXJp
dmUtYml0cy1udWxsLWxlbmd0aC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNyeXB0
by9zdWJ0bGUvZWNkaC1pbXBvcnQta2V5LWRlcml2ZS1iaXRzLW51bGwtbGVuZ3RoLmh0bWw6IEFk
ZGVkLgorCiAyMDE3LTAzLTA3ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgW1dlYkNyeXB0b10gSW1wbGVtZW50IEVDREggSW1wb3J0S2V5L0V4cG9ydEtleSBv
cGVyYXRpb25zCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5
b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA2OGJmMTM2ZmEzNDljNjk2MWIxYWFmMTJm
YzQyOGU1MDMxNDdkYzYwLi5iODRiMzUxMjZhN2NiY2MxZTY1MmE5MzA3NzFiYmIyNjdmOTFhNjNm
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTk1OCw3ICs5NTgsNyBAQCB3ZWJraXQub3JnL2IvMTU5
MzcwIFsgRGVidWcgXSBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1kZXN0cm95LWRvY3VtZW50Lmh0
bWwgWyBTawogIyBUaGlzIHRlc3QgaXMganVzdCB3YXkgdG9vIHNsb3cuCiB3b3JrZXJzL2JvbWIt
d2l0aC12OC5odG1sIFsgU2tpcCBdCiAKLSMgV2ViQ3J5cHRvQVBJIHRlc3RzIHRoYXQgdGFrZSB0
b28gbG9uZyB0byBjb21wbGV0ZSwgbmVlZCB0byBzY2FsZSBkb3duLiB3ZWJraXQub3JnL2IvMTU5
NjM4CisjIFdlYkNyeXB0b0FQSSB0ZXN0cyB0aGF0IHRha2UgdG9vIGxvbmcgdG8gY29tcGxldGUK
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2Rlcml2ZV9iaXRz
X2tleXMvaGtkZi53b3JrZXIuaHRtbCBbIFNraXAgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9XZWJDcnlwdG9BUEkvZGVyaXZlX2JpdHNfa2V5cy9wYmtkZjIud29ya2VyLmh0bWwg
WyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2dl
bmVyYXRlS2V5L3N1Y2Nlc3Nlc19SU0EtT0FFUC53b3JrZXIuaHRtbCBbIFNraXAgXQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9kZXJpdmUtYml0cy1tYWxmb3JtZWQtcGFy
YW1ldGVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Rlcml2ZS1i
aXRzLW1hbGZvcm1lZC1wYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZDIyY2Zm
NDcxMjE1ZTI0NjBlNTczZWRmOTM2NGNkODM2ODE0MGIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9kZXJpdmUtYml0cy1tYWxmb3JtZWQtcGFyYW1ldGVycy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCBkZXJpdmVCaXRzIG9wZXJhdGlvbiB3
aXRoIG1hbGZvcm1lZCBwYXJhbWV0ZXJzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKwor
CitQQVNTIGNyeXB0by5zdWJ0bGUuZGVyaXZlQml0cygpIHJlamVjdGVkIHByb21pc2UgIHdpdGgg
VHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgY3J5cHRvLnN1YnRsZS5kZXJp
dmVCaXRzKDEpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFy
Z3VtZW50cy4KK1BBU1MgY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKDEsIDIpIHJlamVjdGVkIHBy
b21pc2UgIHdpdGggVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgY3J5cHRv
LnN1YnRsZS5kZXJpdmVCaXRzKHsgbmFtZToiRUNESCIsIHB1YmxpYzp3cm9uZ0tleSB9LCB3cm9u
Z0tleSwgMTI4KSByZWplY3RlZCBwcm9taXNlICB3aXRoIEludmFsaWRBY2Nlc3NFcnJvciAoRE9N
IEV4Y2VwdGlvbiAxNSk6IENyeXB0b0tleSBkb2Vzbid0IG1hdGNoIEFsZ29yaXRobUlkZW50aWZp
ZXIuCitQQVNTIGNyeXB0by5zdWJ0bGUuZGVyaXZlQml0cyh7IG5hbWU6IkVDREgiLCBwdWJsaWM6
d3JvbmdLZXkgfSwgd3JvbmdLZXksIDEyOCkgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBJbnZhbGlk
QWNjZXNzRXJyb3IgKERPTSBFeGNlcHRpb24gMTUpOiBDcnlwdG9LZXkgZG9lc24ndCBzdXBwb3J0
IGJpdHMgZGVyaXZhdGlvbi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Rlcml2
ZS1iaXRzLW1hbGZvcm1lZC1wYXJhbWV0ZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3Vi
dGxlL2Rlcml2ZS1iaXRzLW1hbGZvcm1lZC1wYXJhbWV0ZXJzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTRl
NDFlNzFlNWFiMTg2NDRjYTc4MTBmNGZlNGIzMmY1MWRjODZmYwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZGVyaXZlLWJpdHMtbWFsZm9ybWVkLXBhcmFtZXRl
cnMuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IGRlcml2ZUJpdHMgb3BlcmF0aW9uIHdp
dGggbWFsZm9ybWVkIHBhcmFtZXRlcnMiKTsKKworCitqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwor
dmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKK3ZhciBobWFjSW1wb3J0UGFyYW1zID0geworICAgIG5h
bWU6ICJobWFjIiwKKyAgICBoYXNoOiAic2hhLTEiLAorfQordmFyIHJhd0tleSA9IGFzY2lpVG9V
aW50OEFycmF5KCJqbk93OTlvT1pGTElFUE1yIik7Cit2YXIgandrS2V5ID0geworICAgIGt0eTog
IkVDIiwKKyAgICBjcnY6ICJQLTI1NiIsCisgICAgeDogIjFGU1ZXaWVUdmlrRmtHMU5PeWhrVUNh
TWJkUWh4d0g2YUN1NEV6LXNSdEEiLAorICAgIHk6ICI5am1OVExxTTRjakJoZEFuSGNOSTlZUVYz
TzhMRm1vLUVkWldrOG50QWFJIiwKKyAgICBkOiAicHB4QlNvdjNOOF9BVWNpc0F1dm1MVjR5RThl
X0xfQkxFOGJaYjlaMVhqZyIsCit9OworCisKKy8vIE5vdCBlbm91Z2ggYXJndW1lbnRzLgorc2hv
dWxkUmVqZWN0KCdjcnlwdG8uc3VidGxlLmRlcml2ZUJpdHMoKScpOworc2hvdWxkUmVqZWN0KCdj
cnlwdG8uc3VidGxlLmRlcml2ZUJpdHMoMSknKTsKK3Nob3VsZFJlamVjdCgnY3J5cHRvLnN1YnRs
ZS5kZXJpdmVCaXRzKDEsIDIpJyk7CisKK2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBy
YXdLZXksIGhtYWNJbXBvcnRQYXJhbXMsIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5Il0p
LnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgd3JvbmdLZXkgPSByZXN1bHQ7CisgICAgLy8g
V3JvbmcgYWxnb3JpdGhtIGlkZW50aWZpZXIuCisgICAgc2hvdWxkUmVqZWN0KCdjcnlwdG8uc3Vi
dGxlLmRlcml2ZUJpdHMoeyBuYW1lOiJFQ0RIIiwgcHVibGljOndyb25nS2V5IH0sIHdyb25nS2V5
LCAxMjgpJyk7CisKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGp3
a0tleSwgeyBuYW1lOiAiRUNESCIsIG5hbWVkQ3VydmU6ICJQLTI1NiIgfSwgZXh0cmFjdGFibGUs
IFsiZGVyaXZlS2V5Il0pOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICB3cm9uZ0tl
eSA9IHJlc3VsdDsKKyAgICAvLyBXcm9uZyB1c2FnZS4KKyAgICBzaG91bGRSZWplY3QoJ2NyeXB0
by5zdWJ0bGUuZGVyaXZlQml0cyh7IG5hbWU6IkVDREgiLCBwdWJsaWM6d3JvbmdLZXkgfSwgd3Jv
bmdLZXksIDEyOCknKTsKKworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7CisKKzwvc2NyaXB0Pgor
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxl
L2Rlcml2ZUJpdHMtbWFsZm9ybWVkLXBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvY3J5cHRvL3N1YnRsZS9kZXJpdmVCaXRzLW1hbGZvcm1lZC1wYXJhbWV0ZXJzLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmYxMzc4NGM0NThhZjk1YTU2ZGNj
OGE1NjE4ZTMwYTQ5NWFmYzJmNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Rlcml2ZUJpdHMtbWFsZm9ybWVk
LXBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTMgKzAsMCBAQAot
VGVzdCBkZXJpdmVCaXRzIG9wZXJhdGlvbiB3aXRoIG1hbGZvcm1lZCBwYXJhbWV0ZXJzCi0KLU9u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIGNyeXB0by5zdWJ0bGUuZGVyaXZlQml0
cygpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50
cy4KLVBBU1MgY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKDEpIHJlamVjdGVkIHByb21pc2UgIHdp
dGggVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KLVBBU1MgY3J5cHRvLnN1YnRsZS5k
ZXJpdmVCaXRzKDEsIDIpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBOb3QgZW5v
dWdoIGFyZ3VtZW50cy4KLVBBU1MgY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKCJFQ0RIIiwgMiwg
MykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBOb3RTdXBwb3J0ZWRFcnJvciAoRE9NIEV4Y2VwdGlv
biA5KTogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLi4KLVBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jcnlwdG8vc3VidGxlL2Rlcml2ZUJpdHMtbWFsZm9ybWVkLXBhcmFtZXRlcnMuaHRtbCBiL0xh
eW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZGVyaXZlQml0cy1tYWxmb3JtZWQtcGFyYW1ldGVycy5o
dG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMDE1MGQ5ZDRlOTlhYTBmZDcyMWFj
NGExZTBmODBlZTY2NWI4MTM4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZGVyaXZlQml0cy1tYWxmb3JtZWQt
cGFyYW1ldGVycy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjQgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5q
cyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgot
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBk
ZXJpdmVCaXRzIG9wZXJhdGlvbiB3aXRoIG1hbGZvcm1lZCBwYXJhbWV0ZXJzIik7Ci0KLS8vIE5v
dCBlbm91Z2ggYXJndW1lbnRzLgotc2hvdWxkUmVqZWN0KCdjcnlwdG8uc3VidGxlLmRlcml2ZUJp
dHMoKScpOwotc2hvdWxkUmVqZWN0KCdjcnlwdG8uc3VidGxlLmRlcml2ZUJpdHMoMSknKTsKLXNo
b3VsZFJlamVjdCgnY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKDEsIDIpJyk7Ci0vLyBOb3Qgc3Vw
cG9ydC4KLXNob3VsZFJlamVjdCgnY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKCJFQ0RIIiwgMiwg
MyknKTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL2Rlcml2ZUtleS1tYWxmb3JtZWQtcGFyYW1ldGVycy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Rlcml2ZUtleS1tYWxmb3JtZWQtcGFy
YW1ldGVycy1leHBlY3RlZC50eHQKaW5kZXggNThhYThmYTBiOTRiMWU1MmU5M2E4MTdhYjc0OTYz
MDY3ZWQ2ZmFmZi4uZWFhN2JhZTllYzM3ZjgyYzcyZjY3NjI5ZDVlYTUwYzE4YzUzYjMxZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9kZXJpdmVLZXktbWFsZm9ybWVkLXBh
cmFtZXRlcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZGVy
aXZlS2V5LW1hbGZvcm1lZC1wYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dApAQCAtOCw3ICs4LDcgQEAg
UEFTUyBjcnlwdG8uc3VidGxlLmRlcml2ZUtleSgxKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5
cGVFcnJvcjogTm90IGVub3VnaCBhcmcKIFBBU1MgY3J5cHRvLnN1YnRsZS5kZXJpdmVLZXkoMSwg
MikgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRz
LgogUEFTUyBjcnlwdG8uc3VidGxlLmRlcml2ZUtleSgxLCAyLCAzKSByZWplY3RlZCBwcm9taXNl
ICB3aXRoIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCiBQQVNTIGNyeXB0by5zdWJ0
bGUuZGVyaXZlS2V5KDEsIDIsIDMsIDQpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9y
OiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KLVBBU1MgY3J5cHRvLnN1YnRsZS5kZXJpdmVLZXkoIkVD
REgiLCAyLCAzLCA0LCA1KSByZWplY3RlZCBwcm9taXNlICB3aXRoIE5vdFN1cHBvcnRlZEVycm9y
IChET00gRXhjZXB0aW9uIDkpOiBUaGUgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuLgorUEFT
UyBjcnlwdG8uc3VidGxlLmRlcml2ZUtleSgiRUNESCIsIDIsIDMsIDQsIDUpIHJlamVjdGVkIHBy
b21pc2UgIHdpdGggVHlwZUVycm9yOiBNZW1iZXIgRWNkaEtleURlcml2ZVBhcmFtcy5wdWJsaWNL
ZXkgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgQ3J5cHRvS2V5LgogUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2VjZGgtZGVyaXZlLWJpdHMtbWFsZm9ybWVkLXBh
cmFtZXRycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2VjZGgtZGVy
aXZlLWJpdHMtbWFsZm9ybWVkLXBhcmFtZXRycy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWUx
MDc5NjAxMDIyMTQxMzI1ZWI5MDlhZmUyNDkyNjliMWM0ZGU5YgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZWNkaC1kZXJpdmUtYml0cy1tYWxmb3JtZWQtcGFy
YW1ldHJzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIzIEBACitUZXN0IEVDREggZGVyaXZlQml0
cyBvcGVyYXRpb24gd2l0aCBtYWxmb3JtZWQgcGFyYW1ldGVycworCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyBjcnlwdG8uc3VidGxlLmRlcml2ZUJpdHMoImVjZGgiLCBwcml2
YXRlS2V5LCBudWxsKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogTWVtYmVyIEVj
ZGhLZXlEZXJpdmVQYXJhbXMucHVibGljS2V5IGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGFuIGlu
c3RhbmNlIG9mIENyeXB0b0tleS4KK1BBU1MgY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKHtuYW1l
OiAiZWNkaCJ9LCBwcml2YXRlS2V5LCBudWxsKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVF
cnJvcjogTWVtYmVyIEVjZGhLZXlEZXJpdmVQYXJhbXMucHVibGljS2V5IGlzIHJlcXVpcmVkIGFu
ZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIENyeXB0b0tleS4KK1BBU1MgY3J5cHRvLnN1YnRsZS5k
ZXJpdmVCaXRzKHtuYW1lOiAiZWNkaCIsIHB1YmxpYzogdHJ1ZX0sIHByaXZhdGVLZXksIG51bGwp
IHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjcnlw
dG8uc3VidGxlLmRlcml2ZUJpdHMoe25hbWU6ICJlY2RoIiwgcHVibGljOiBudWxsfSwgcHJpdmF0
ZUtleSwgbnVsbCkgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUgZXJyb3Iu
CitQQVNTIGNyeXB0by5zdWJ0bGUuZGVyaXZlQml0cyh7bmFtZTogImVjZGgiLCBwdWJsaWM6IHVu
ZGVmaW5lZH0sIHByaXZhdGVLZXksIG51bGwpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVy
cm9yOiBNZW1iZXIgRWNkaEtleURlcml2ZVBhcmFtcy5wdWJsaWNLZXkgaXMgcmVxdWlyZWQgYW5k
IG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgQ3J5cHRvS2V5LgorUEFTUyBjcnlwdG8uc3VidGxlLmRl
cml2ZUJpdHMoe25hbWU6ICJlY2RoIiwgcHVibGljOiBTeW1ib2woKX0sIHByaXZhdGVLZXksIG51
bGwpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBj
cnlwdG8uc3VidGxlLmRlcml2ZUJpdHMoe25hbWU6ICJlY2RoIiwgcHVibGljOiB7IH19LCBwcml2
YXRlS2V5LCBudWxsKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJv
ci4KK1BBU1MgY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKHtuYW1lOiAiZWNkaCIsIHB1YmxpYzog
MX0sIHByaXZhdGVLZXksIG51bGwpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBU
eXBlIGVycm9yLgorUEFTUyBjcnlwdG8uc3VidGxlLmRlcml2ZUJpdHMoeyBuYW1lOiJFQ0RIIiwg
cHVibGljOnB1YmxpY0tleSB9LCBwcml2YXRlS2V5LCAxKSByZWplY3RlZCBwcm9taXNlICB3aXRo
IE9wZXJhdGlvbkVycm9yIChET00gRXhjZXB0aW9uIDM0KTogVGhlIG9wZXJhdGlvbiBmYWlsZWQg
Zm9yIGFuIG9wZXJhdGlvbi1zcGVjaWZpYyByZWFzb24uCitQQVNTIGNyeXB0by5zdWJ0bGUuZGVy
aXZlQml0cyh7IG5hbWU6IkVDREgiLCBwdWJsaWM6cHVibGljS2V5IH0sIHB1YmxpY0tleSwgbnVs
bCkgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBJbnZhbGlkQWNjZXNzRXJyb3IgKERPTSBFeGNlcHRp
b24gMTUpOiBDcnlwdG9LZXkgZG9lc24ndCBzdXBwb3J0IGJpdHMgZGVyaXZhdGlvbi4KK1BBU1Mg
Y3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKHsgbmFtZToiRUNESCIsIHB1YmxpYzpwcml2YXRlS2V5
IH0sIHByaXZhdGVLZXksIG51bGwpIHJlamVjdGVkIHByb21pc2UgIHdpdGggSW52YWxpZEFjY2Vz
c0Vycm9yIChET00gRXhjZXB0aW9uIDE1KTogVGhlIHJlcXVlc3RlZCBvcGVyYXRpb24gaXMgbm90
IHZhbGlkIGZvciB0aGUgcHJvdmlkZWQga2V5LgorUEFTUyBjcnlwdG8uc3VidGxlLmRlcml2ZUJp
dHMoeyBuYW1lOiJFQ0RIIiwgcHVibGljOmZha2VLZXkgfSwgcHJpdmF0ZUtleSwgbnVsbCkgcmVq
ZWN0ZWQgcHJvbWlzZSAgd2l0aCBJbnZhbGlkQWNjZXNzRXJyb3IgKERPTSBFeGNlcHRpb24gMTUp
OiBUaGUgcmVxdWVzdGVkIG9wZXJhdGlvbiBpcyBub3QgdmFsaWQgZm9yIHRoZSBwcm92aWRlZCBr
ZXkuCitQQVNTIGNyeXB0by5zdWJ0bGUuZGVyaXZlQml0cyh7IG5hbWU6IkVDREgiLCBwdWJsaWM6
cHVibGljS2V5UDM4NCB9LCBwcml2YXRlS2V5LCBudWxsKSByZWplY3RlZCBwcm9taXNlICB3aXRo
IEludmFsaWRBY2Nlc3NFcnJvciAoRE9NIEV4Y2VwdGlvbiAxNSk6IFRoZSByZXF1ZXN0ZWQgb3Bl
cmF0aW9uIGlzIG5vdCB2YWxpZCBmb3IgdGhlIHByb3ZpZGVkIGtleS4KK1BBU1MgY3J5cHRvLnN1
YnRsZS5kZXJpdmVCaXRzKHsgbmFtZToiRUNESCIsIHB1YmxpYzpwdWJsaWNLZXkgfSwgcHJpdmF0
ZUtleSwgMzg0KSByZWplY3RlZCBwcm9taXNlICB3aXRoIE9wZXJhdGlvbkVycm9yIChET00gRXhj
ZXB0aW9uIDM0KTogVGhlIG9wZXJhdGlvbiBmYWlsZWQgZm9yIGFuIG9wZXJhdGlvbi1zcGVjaWZp
YyByZWFzb24uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9lY2RoLWRlcml2ZS1i
aXRzLW1hbGZvcm1lZC1wYXJhbWV0cnMuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUv
ZWNkaC1kZXJpdmUtYml0cy1tYWxmb3JtZWQtcGFyYW1ldHJzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTJm
ZDY2YTZmNzdjMjdlZDc5ZTgyYTQ5MGRhZWNjMDIwZTc2ODgxOAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZWNkaC1kZXJpdmUtYml0cy1tYWxmb3JtZWQtcGFy
YW1ldHJzLmh0bWwKQEAgLTAsMCArMSw3NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdCBFQ0RIIGRlcml2ZUJpdHMgb3Bl
cmF0aW9uIHdpdGggbWFsZm9ybWVkIHBhcmFtZXRlcnMiKTsKKworanNUZXN0SXNBc3luYyA9IHRy
dWU7CisKK3ZhciBleHRyYWN0YWJsZSA9IHRydWU7Cit2YXIgandrUHJpdmF0ZUtleSA9IHsKKyAg
ICBrdHk6ICJFQyIsCisgICAgY3J2OiAiUC0yNTYiLAorICAgIHg6ICIxRlNWV2llVHZpa0ZrRzFO
T3loa1VDYU1iZFFoeHdINmFDdTRFei1zUnRBIiwKKyAgICB5OiAiOWptTlRMcU00Y2pCaGRBbkhj
Tkk5WVFWM084TEZtby1FZFpXazhudEFhSSIsCisgICAgZDogInBweEJTb3YzTjhfQVVjaXNBdXZt
TFY0eUU4ZV9MX0JMRThiWmI5WjFYamciLAorfTsKK3ZhciBqd2tQdWJsaWNLZXkgPSB7CisgICAg
a3R5OiAiRUMiLAorICAgIGNydjogIlAtMjU2IiwKKyAgICB4OiAiMUZTVldpZVR2aWtGa0cxTk95
aGtVQ2FNYmRRaHh3SDZhQ3U0RXotc1J0QSIsCisgICAgeTogIjlqbU5UTHFNNGNqQmhkQW5IY05J
OVlRVjNPOExGbW8tRWRaV2s4bnRBYUkiLAorfTsKK3ZhciBqd2tQdWJsaWNLZXlQMzg0ID0gewor
ICAgIGt0eTogIkVDIiwKKyAgICBjcnY6ICJQLTM4NCIsCisgICAgeDogIlRFc1FSQUwtbmF1NEs3
NVhOeW51UjZmZG9UR0dtNVgxWGdPclI1aVN6aUJWcWhSWU9BdGV1RjgtVTB3eE44OXMiLAorICAg
IHk6ICJyLVduOVlJWEpfcjd1Tk41czllVmVYRWxtNlpjVEd2WUtnNkd0S0pYVVh1SlVaUk1GN0VJ
Ql9INnhwT210aFY2IiwKK307Cit2YXIgcnNhU3BraUtleSA9IEJhc2U2NFVSTC5wYXJzZSgiTUlJ
QklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUF3Q2pSQ3RGd3ZTTllNWjA3
dTVTeEFSeGdsSmw3NVQ3YlVaWEZzRFZ4SGtNaHBOQzJSYU40aldFNWJ3WVVETWVEMmZWbXhocGFV
UW4vNkFiRkxoNmdIeHR3ckNmYzdySW8vU2ZEZEdkM0drUmxYSzV4WHdHdU02TXZQOW51WkhhYXJJ
eUFyUkZoMlUyVVp4RmxWc0tJMHBTSG82bjU4VzFmUFoxc3lPb1ZFWi9XWUU2Z0xoTU13ZnBlQW05
N21ybzdtZWtSZE1VTE9WL21SNVVsM0NIbTladDkzRGM4R3BuUEE4YmhMaUIwVk55R1RFTWEwNm5K
dWw0Z2oxc2p4TERvVXZaWTJFV3E3b1VVbmZMQlVZTWZpcUswa1FjVzk0d3ZCcklxMkRRVUFwTHlU
VGJhQU9ZNDZUTHdYNmM4THR1YkpyaVlLVEM1YTlCYjAvN292VFdCMHdJREFRQUIiKTsKKworY3J5
cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGp3a1ByaXZhdGVLZXksIHsgbmFtZTogIkVDREgi
LCBuYW1lZEN1cnZlOiAiUC0yNTYiIH0sIGV4dHJhY3RhYmxlLCBbImRlcml2ZUJpdHMiXSkudGhl
bihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBwcml2YXRlS2V5ID0gcmVzdWx0OworICAgIHJldHVy
biBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgandrUHVibGljS2V5LCB7IG5hbWU6ICJF
Q0RIIiwgbmFtZWRDdXJ2ZTogIlAtMjU2IiB9LCBleHRyYWN0YWJsZSwgWyBdKTsKK30pLnRoZW4o
ZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgcHVibGljS2V5ID0gcmVzdWx0OworICAgIHJldHVybiBj
cnlwdG8uc3VidGxlLmltcG9ydEtleSgic3BraSIsIHJzYVNwa2lLZXksIHtuYW1lOiAiUlNBLU9B
RVAiLCBoYXNoOiAic2hhLTEifSwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCIsICJ3cmFwS2V5Il0p
OworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBmYWtlS2V5ID0gcmVzdWx0OworICAg
IHJldHVybiBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgandrUHVibGljS2V5UDM4NCwg
eyBuYW1lOiAiRUNESCIsIG5hbWVkQ3VydmU6ICJQLTM4NCIgfSwgZXh0cmFjdGFibGUsIFsgXSk7
Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHB1YmxpY0tleVAzODQgPSByZXN1bHQ7
CisgICAgLy8gTWFsZm9ybWVkIEFsZ29yaXRobUlkZW50aWZpZXJzCisgICAgc2hvdWxkUmVqZWN0
KCdjcnlwdG8uc3VidGxlLmRlcml2ZUJpdHMoImVjZGgiLCBwcml2YXRlS2V5LCBudWxsKScpOwor
ICAgIHNob3VsZFJlamVjdCgnY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKHtuYW1lOiAiZWNkaCJ9
LCBwcml2YXRlS2V5LCBudWxsKScpOworICAgIHNob3VsZFJlamVjdCgnY3J5cHRvLnN1YnRsZS5k
ZXJpdmVCaXRzKHtuYW1lOiAiZWNkaCIsIHB1YmxpYzogdHJ1ZX0sIHByaXZhdGVLZXksIG51bGwp
Jyk7CisgICAgc2hvdWxkUmVqZWN0KCdjcnlwdG8uc3VidGxlLmRlcml2ZUJpdHMoe25hbWU6ICJl
Y2RoIiwgcHVibGljOiBudWxsfSwgcHJpdmF0ZUtleSwgbnVsbCknKTsKKyAgICBzaG91bGRSZWpl
Y3QoJ2NyeXB0by5zdWJ0bGUuZGVyaXZlQml0cyh7bmFtZTogImVjZGgiLCBwdWJsaWM6IHVuZGVm
aW5lZH0sIHByaXZhdGVLZXksIG51bGwpJyk7CisgICAgc2hvdWxkUmVqZWN0KCdjcnlwdG8uc3Vi
dGxlLmRlcml2ZUJpdHMoe25hbWU6ICJlY2RoIiwgcHVibGljOiBTeW1ib2woKX0sIHByaXZhdGVL
ZXksIG51bGwpJyk7CisgICAgc2hvdWxkUmVqZWN0KCdjcnlwdG8uc3VidGxlLmRlcml2ZUJpdHMo
e25hbWU6ICJlY2RoIiwgcHVibGljOiB7IH19LCBwcml2YXRlS2V5LCBudWxsKScpOworICAgIHNo
b3VsZFJlamVjdCgnY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKHtuYW1lOiAiZWNkaCIsIHB1Ymxp
YzogMX0sIHByaXZhdGVLZXksIG51bGwpJyk7CisgICAgLy8gV3JvbmcgbGVuZ3RoCisgICAgc2hv
dWxkUmVqZWN0KCdjcnlwdG8uc3VidGxlLmRlcml2ZUJpdHMoeyBuYW1lOiJFQ0RIIiwgcHVibGlj
OnB1YmxpY0tleSB9LCBwcml2YXRlS2V5LCAxKScpOworICAgIC8vIGJhc2Uga2V5IGlzIHB1Ymxp
YworICAgIHNob3VsZFJlamVjdCgnY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKHsgbmFtZToiRUNE
SCIsIHB1YmxpYzpwdWJsaWNLZXkgfSwgcHVibGljS2V5LCBudWxsKScpOworICAgIC8vIHB1Ymxp
YyBrZXkgaXMgcHJpdmF0ZQorICAgIHNob3VsZFJlamVjdCgnY3J5cHRvLnN1YnRsZS5kZXJpdmVC
aXRzKHsgbmFtZToiRUNESCIsIHB1YmxpYzpwcml2YXRlS2V5IH0sIHByaXZhdGVLZXksIG51bGwp
Jyk7CisgICAgLy8gZmFrZWQgcHVibGljIGtleQorICAgIHNob3VsZFJlamVjdCgnY3J5cHRvLnN1
YnRsZS5kZXJpdmVCaXRzKHsgbmFtZToiRUNESCIsIHB1YmxpYzpmYWtlS2V5IH0sIHByaXZhdGVL
ZXksIG51bGwpJyk7CisgICAgLy8gbWlzbWF0Y2hlZCBuYW1lZCBjdXJ2ZQorICAgIHNob3VsZFJl
amVjdCgnY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKHsgbmFtZToiRUNESCIsIHB1YmxpYzpwdWJs
aWNLZXlQMzg0IH0sIHByaXZhdGVLZXksIG51bGwpJyk7CisgICAgLy8gV3JvbmcgbGVuZ3RoCisg
ICAgcmV0dXJuIHNob3VsZFJlamVjdCgnY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKHsgbmFtZToi
RUNESCIsIHB1YmxpYzpwdWJsaWNLZXkgfSwgcHJpdmF0ZUtleSwgMzg0KScpOworfSkudGhlbihm
aW5pc2hKU1Rlc3QsIGZpbmlzaEpTVGVzdCk7CisKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2VjZGgtZ2VuZXJhdGUt
a2V5LWRlcml2ZS1iaXRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUv
ZWNkaC1nZW5lcmF0ZS1rZXktZGVyaXZlLWJpdHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0
ZDMzY2IzNmIwMzg5NjIxYmY4NWIwZWNhOTZmY2E3ZTE1NzNhZmUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2VjZGgtZ2VuZXJhdGUta2V5LWRlcml2ZS1iaXRz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IEVDREggZGVyaXZlQml0cyBvcGVy
YXRpb24gd2l0aCBnZW5lcmF0ZWQgYmFzZSBrZXkgYW5kIG51bGwgbGVuZ3RoCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRlcml2ZWRLZXkuYnl0ZUxlbmd0aCBpcyAzMgor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZWNkaC1nZW5lcmF0ZS1rZXktZGVyaXZl
LWJpdHMuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZWNkaC1nZW5lcmF0ZS1rZXkt
ZGVyaXZlLWJpdHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZTY0M2E2YWFjMzdjZTUyMWVhMjMxZjlmOGJj
OGY0MGQ3MWZmZTYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRs
ZS9lY2RoLWdlbmVyYXRlLWtleS1kZXJpdmUtYml0cy5odG1sCkBAIC0wLDAgKzEsNDIgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9j
b21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24o
IlRlc3QgRUNESCBkZXJpdmVCaXRzIG9wZXJhdGlvbiB3aXRoIGdlbmVyYXRlZCBiYXNlIGtleSBh
bmQgbnVsbCBsZW5ndGgiKTsKKworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3ZhciBleHRyYWN0
YWJsZSA9IHRydWU7Cit2YXIgandrUHVibGljS2V5ID0geworICAgIGt0eTogIkVDIiwKKyAgICBj
cnY6ICJQLTI1NiIsCisgICAgeDogIjFGU1ZXaWVUdmlrRmtHMU5PeWhrVUNhTWJkUWh4d0g2YUN1
NEV6LXNSdEEiLAorICAgIHk6ICI5am1OVExxTTRjakJoZEFuSGNOSTlZUVYzTzhMRm1vLUVkWldr
OG50QWFJIiwKK307CisKK2NyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoeyBuYW1lOiAiRUNESCIs
IG5hbWVkQ3VydmU6ICJQLTI1NiIgfSwgZXh0cmFjdGFibGUsIFsiZGVyaXZlQml0cyJdKS50aGVu
KGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHByaXZhdGVLZXkgPSByZXN1bHQucHJpdmF0ZUtleTsK
KyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGp3a1B1YmxpY0tleSwg
eyBuYW1lOiAiRUNESCIsIG5hbWVkQ3VydmU6ICJQLTI1NiIgfSwgZXh0cmFjdGFibGUsIFsgXSk7
Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHB1YmxpY0tleSA9IHJlc3VsdDsKKyAg
ICByZXR1cm4gY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKHsgbmFtZToiRUNESCIsIHB1YmxpYzpw
dWJsaWNLZXkgfSwgcHJpdmF0ZUtleSwgbnVsbCk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkg
eworICAgIGRlcml2ZWRLZXkgPSByZXN1bHQ7CisKKyAgICBzaG91bGRCZSgiZGVyaXZlZEtleS5i
eXRlTGVuZ3RoIiwgIjMyIik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30sIGZhaWxBbmRGaW5p
c2hKU1Rlc3QpOworCis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1rZXktZGVyaXZlLWJpdHMtY3Vz
dG9tLWxlbmd0aC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2VjZGgt
aW1wb3J0LWtleS1kZXJpdmUtYml0cy1jdXN0b20tbGVuZ3RoLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45MjRkMThlOGU5NWY5NDI2OTlhZWM3ZjU0ODU1N2U3NjZiYzBkYjA1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1rZXktZGVyaXZl
LWJpdHMtY3VzdG9tLWxlbmd0aC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdCBF
Q0RIIGRlcml2ZUJpdHMgb3BlcmF0aW9uIHdpdGggaW1wb3J0ZWQgYmFzZSBrZXkgYW5kIGN1c3Rv
bSBsZW5ndGgKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgYnl0ZXNUb0hl
eFN0cmluZyhkZXJpdmVkS2V5KSBpcyBleHBlY3RlZERlcml2ZWRLZXkKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL2VjZGgtaW1wb3J0LWtleS1kZXJpdmUtYml0cy1jdXN0b20tbGVu
Z3RoLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2VjZGgtaW1wb3J0LWtleS1kZXJp
dmUtYml0cy1jdXN0b20tbGVuZ3RoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTg2OWZmMzc0OGE4MjVjZmMw
ZjQ3YTY2MDk0MzQwMmNjZjQ2NTE4NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Ny
eXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQta2V5LWRlcml2ZS1iaXRzLWN1c3RvbS1sZW5ndGguaHRt
bApAQCAtMCwwICsxLDUwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKwor
PHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IEVDREggZGVyaXZlQml0cyBvcGVyYXRpb24gd2l0
aCBpbXBvcnRlZCBiYXNlIGtleSBhbmQgY3VzdG9tIGxlbmd0aCIpOworCitqc1Rlc3RJc0FzeW5j
ID0gdHJ1ZTsKKwordmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKK3ZhciBqd2tQcml2YXRlS2V5ID0g
eworICAgIGt0eTogIkVDIiwKKyAgICBjcnY6ICJQLTI1NiIsCisgICAgeDogIjFGU1ZXaWVUdmlr
RmtHMU5PeWhrVUNhTWJkUWh4d0g2YUN1NEV6LXNSdEEiLAorICAgIHk6ICI5am1OVExxTTRjakJo
ZEFuSGNOSTlZUVYzTzhMRm1vLUVkWldrOG50QWFJIiwKKyAgICBkOiAicHB4QlNvdjNOOF9BVWNp
c0F1dm1MVjR5RThlX0xfQkxFOGJaYjlaMVhqZyIsCit9OwordmFyIGp3a1B1YmxpY0tleSA9IHsK
KyAgICBrdHk6ICJFQyIsCisgICAgY3J2OiAiUC0yNTYiLAorICAgIHg6ICIxRlNWV2llVHZpa0Zr
RzFOT3loa1VDYU1iZFFoeHdINmFDdTRFei1zUnRBIiwKKyAgICB5OiAiOWptTlRMcU00Y2pCaGRB
bkhjTkk5WVFWM084TEZtby1FZFpXazhudEFhSSIsCit9OwordmFyIGV4cGVjdGVkRGVyaXZlZEtl
eSA9ICI0MGJmMGMwYTU2Zjc1Y2E1ODdlYTRmNjcyOWQ3YmY5YSI7CisKK2NyeXB0by5zdWJ0bGUu
aW1wb3J0S2V5KCJqd2siLCBqd2tQcml2YXRlS2V5LCB7IG5hbWU6ICJFQ0RIIiwgbmFtZWRDdXJ2
ZTogIlAtMjU2IiB9LCBleHRyYWN0YWJsZSwgWyJkZXJpdmVCaXRzIl0pLnRoZW4oZnVuY3Rpb24o
cmVzdWx0KSB7CisgICAgcHJpdmF0ZUtleSA9IHJlc3VsdDsKKyAgICByZXR1cm4gY3J5cHRvLnN1
YnRsZS5pbXBvcnRLZXkoImp3ayIsIGp3a1B1YmxpY0tleSwgeyBuYW1lOiAiRUNESCIsIG5hbWVk
Q3VydmU6ICJQLTI1NiIgfSwgZXh0cmFjdGFibGUsIFsgXSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJl
c3VsdCkgeworICAgIHB1YmxpY0tleSA9IHJlc3VsdDsKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRs
ZS5kZXJpdmVCaXRzKHsgbmFtZToiRUNESCIsIHB1YmxpYzpwdWJsaWNLZXkgfSwgcHJpdmF0ZUtl
eSwgMTI4KTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgZGVyaXZlZEtleSA9IHJl
c3VsdDsKKworICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5nKGRlcml2ZWRLZXkpIiwgImV4
cGVjdGVkRGVyaXZlZEtleSIpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9LCBmYWlsQW5kRmlu
aXNoSlNUZXN0KTsKKworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQta2V5LWRlcml2ZS1iaXRzLW51
bGwtbGVuZ3RoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZWNkaC1p
bXBvcnQta2V5LWRlcml2ZS1iaXRzLW51bGwtbGVuZ3RoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5iMjg4NmY4ZTU1ZGFiYzEzMzYxNGE2YTY2YzVlYWIyMzVjMDQ5ODhhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1rZXktZGVyaXZlLWJp
dHMtbnVsbC1sZW5ndGgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rlc3QgRUNESCBk
ZXJpdmVCaXRzIG9wZXJhdGlvbiB3aXRoIGltcG9ydGVkIGJhc2Uga2V5IGFuZCBudWxsIGxlbmd0
aAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBieXRlc1RvSGV4U3RyaW5n
KGRlcml2ZWRLZXkpIGlzIGV4cGVjdGVkRGVyaXZlZEtleQorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Ny
eXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQta2V5LWRlcml2ZS1iaXRzLW51bGwtbGVuZ3RoLmh0bWwg
Yi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2VjZGgtaW1wb3J0LWtleS1kZXJpdmUtYml0cy1u
dWxsLWxlbmd0aC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4ODk3MTYyYzgyODY4OTEzOTZmY2Y0NmJkMjgz
YWYxZWM5NTI5M2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxl
L2VjZGgtaW1wb3J0LWtleS1kZXJpdmUtYml0cy1udWxsLWxlbmd0aC5odG1sCkBAIC0wLDAgKzEs
NTAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVz
Y3JpcHRpb24oIlRlc3QgRUNESCBkZXJpdmVCaXRzIG9wZXJhdGlvbiB3aXRoIGltcG9ydGVkIGJh
c2Uga2V5IGFuZCBudWxsIGxlbmd0aCIpOworCitqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFy
IGV4dHJhY3RhYmxlID0gdHJ1ZTsKK3ZhciBqd2tQcml2YXRlS2V5ID0geworICAgIGt0eTogIkVD
IiwKKyAgICBjcnY6ICJQLTI1NiIsCisgICAgeDogIjFGU1ZXaWVUdmlrRmtHMU5PeWhrVUNhTWJk
UWh4d0g2YUN1NEV6LXNSdEEiLAorICAgIHk6ICI5am1OVExxTTRjakJoZEFuSGNOSTlZUVYzTzhM
Rm1vLUVkWldrOG50QWFJIiwKKyAgICBkOiAicHB4QlNvdjNOOF9BVWNpc0F1dm1MVjR5RThlX0xf
QkxFOGJaYjlaMVhqZyIsCit9OwordmFyIGp3a1B1YmxpY0tleSA9IHsKKyAgICBrdHk6ICJFQyIs
CisgICAgY3J2OiAiUC0yNTYiLAorICAgIHg6ICIxRlNWV2llVHZpa0ZrRzFOT3loa1VDYU1iZFFo
eHdINmFDdTRFei1zUnRBIiwKKyAgICB5OiAiOWptTlRMcU00Y2pCaGRBbkhjTkk5WVFWM084TEZt
by1FZFpXazhudEFhSSIsCit9OwordmFyIGV4cGVjdGVkRGVyaXZlZEtleSA9ICI0MGJmMGMwYTU2
Zjc1Y2E1ODdlYTRmNjcyOWQ3YmY5YTMwYzVmNGEwZDQ3ZWVhMTNmZGY5ZGE4ZjBiNTNiODVlIjsK
KworY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGp3a1ByaXZhdGVLZXksIHsgbmFtZTog
IkVDREgiLCBuYW1lZEN1cnZlOiAiUC0yNTYiIH0sIGV4dHJhY3RhYmxlLCBbImRlcml2ZUJpdHMi
XSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBwcml2YXRlS2V5ID0gcmVzdWx0OworICAg
IHJldHVybiBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgandrUHVibGljS2V5LCB7IG5h
bWU6ICJFQ0RIIiwgbmFtZWRDdXJ2ZTogIlAtMjU2IiB9LCBleHRyYWN0YWJsZSwgWyBdKTsKK30p
LnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgcHVibGljS2V5ID0gcmVzdWx0OworICAgIHJl
dHVybiBjcnlwdG8uc3VidGxlLmRlcml2ZUJpdHMoeyBuYW1lOiJFQ0RIIiwgcHVibGljOnB1Ymxp
Y0tleSB9LCBwcml2YXRlS2V5LCBudWxsKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Cisg
ICAgZGVyaXZlZEtleSA9IHJlc3VsdDsKKworICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5n
KGRlcml2ZWRLZXkpIiwgImV4cGVjdGVkRGVyaXZlZEtleSIpOworCisgICAgZmluaXNoSlNUZXN0
KCk7Cit9LCBmYWlsQW5kRmluaXNoSlNUZXN0KTsKKworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>303842</attachid>
            <date>2017-03-08 14:24:12 -0800</date>
            <delta_ts>2017-03-08 15:03:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169319-20170308142302.patch</filename>
            <type>text/plain</type>
            <size>69938</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzNTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjcyYWY1M2YxMzIxOTk2
MGE3YjIwNjEwZjFkOTY1ZDE3YmI2MTU0Ny4uYWQxYWJkZTY4MDdmZWM1MGUyOTU5MzdlMDMzMGY3
ZDc4NmYwN2UwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE3LTAzLTA4ICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkNyeXB0b10gSW1w
bGVtZW50IEVDREggRGVyaXZlQml0cyBvcGVyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2OTMxOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
MjM3ODk1ODU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIERlcml2ZUJpdHMgb3BlcmF0aW9uIG9mIEVDREggYWNj
b3JkaW5nIHRvIHRoZSBzcGVjOgorICAgICAgICBodHRwczovL3d3dy53My5vcmcvVFIvV2ViQ3J5
cHRvQVBJLyNlY2RoLW9wZXJhdGlvbnMuCisKKyAgICAgICAgVGVzdHM6IGNyeXB0by9zdWJ0bGUv
ZGVyaXZlLWJpdHMtbWFsZm9ybWVkLXBhcmFtZXRlcnMuaHRtbAorICAgICAgICAgICAgICAgY3J5
cHRvL3N1YnRsZS9lY2RoLWRlcml2ZS1iaXRzLW1hbGZvcm1lZC1wYXJhbWV0cnMuaHRtbAorICAg
ICAgICAgICAgICAgY3J5cHRvL3N1YnRsZS9lY2RoLWdlbmVyYXRlLWtleS1kZXJpdmUtYml0cy5o
dG1sCisgICAgICAgICAgICAgICBjcnlwdG8vc3VidGxlL2VjZGgtaW1wb3J0LWtleS1kZXJpdmUt
Yml0cy1jdXN0b20tbGVuZ3RoLmh0bWwKKyAgICAgICAgICAgICAgIGNyeXB0by9zdWJ0bGUvZWNk
aC1pbXBvcnQta2V5LWRlcml2ZS1iaXRzLW51bGwtbGVuZ3RoLmh0bWwKKyAgICAgICAgICAgICAg
IGNyeXB0by93b3JrZXJzL3N1YnRsZS9lY2RoLWltcG9ydC1rZXktZGVyaXZlLWJpdHMuaHRtbAor
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFr
ZToKKyAgICAgICAgKiBQbGF0Zm9ybUdUSy5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybU1hYy5j
bWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogYmluZGluZ3MvanMvSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6bm9ybWFsaXplQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJD
b3JlOjpqc1N1YnRsZUNyeXB0b0Z1bmN0aW9uR2VuZXJhdGVLZXlQcm9taXNlKToKKyAgICAgICAg
KFdlYkNvcmU6OmpzU3VidGxlQ3J5cHRvRnVuY3Rpb25EZXJpdmVLZXlQcm9taXNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OmpzU3VidGxlQ3J5cHRvRnVuY3Rpb25EZXJpdmVCaXRzUHJvbWlzZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1N1YnRsZUNyeXB0bzo6Z2VuZXJhdGVLZXkpOgorICAgICAgICBS
ZW9yZGVyIGEgYml0IG9mIHRoZSBmdW5jdGlvbnMuCisgICAgICAgICogY3J5cHRvL0NvbW1vbkNy
eXB0b1V0aWxpdGllcy5oOgorICAgICAgICAqIGNyeXB0by9DcnlwdG9BbGdvcml0aG0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtOjpkZXJpdmVCaXRzKToKKyAgICAgICAg
KiBjcnlwdG8vQ3J5cHRvQWxnb3JpdGhtLmg6CisgICAgICAgICogY3J5cHRvL0NyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1FQ0RILmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUVDREg6OmRl
cml2ZUJpdHMpOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVD
REguaDoKKyAgICAgICAgKiBjcnlwdG8vZ251dGxzL0NyeXB0b0FsZ29yaXRobUVDREhHbnVUTFMu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUVDREg6OnBsYXRm
b3JtRGVyaXZlQml0cyk6CisgICAgICAgICogY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaDoKKyAg
ICAgICAgKiBjcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUVDREhNYWMuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUVDREg6OnBsYXRmb3JtRGVyaXZlQml0cyk6
CisgICAgICAgICogY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtRWNkaEtleURlcml2
ZVBhcmFtcy5oOiBBZGRlZC4KKyAgICAgICAgKiBjcnlwdG8vcGFyYW1ldGVycy9FY2RoS2V5RGVy
aXZlUGFyYW1zLmlkbDogQWRkZWQuCisKIDIwMTctMDMtMDcgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUGFyc2luZyAtd2Via2l0LWh5cGhlbmF0ZS1j
aGFyYWN0ZXIgdXNlcyBjb25mdXNpbmdseSBuYW1lZCBjb25zdW1lTG9jYWxlKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQKaW5kZXggZDZiMjg2ZDBlMzVlMzA2MWJkMzQzMTlhMTBkMTExNDg1OGE3ZTViYi4u
ZjVkMGQwZDA0ZjdiNDJmNDYzMzA2ZmY3Njc4MDNlMzJiM2E5N2I1NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTM0Myw2ICszNDMsNyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwog
ICAgIGNyeXB0by9wYXJhbWV0ZXJzL0Flc0djbVBhcmFtcy5pZGwKICAgICBjcnlwdG8vcGFyYW1l
dGVycy9BZXNLZXlHZW5QYXJhbXMuaWRsCiAgICAgY3J5cHRvL3BhcmFtZXRlcnMvRWNLZXlQYXJh
bXMuaWRsCisgICAgY3J5cHRvL3BhcmFtZXRlcnMvRWNkaEtleURlcml2ZVBhcmFtcy5pZGwKICAg
ICBjcnlwdG8vcGFyYW1ldGVycy9IbWFjS2V5UGFyYW1zLmlkbAogICAgIGNyeXB0by9wYXJhbWV0
ZXJzL1JzYUhhc2hlZEltcG9ydFBhcmFtcy5pZGwKICAgICBjcnlwdG8vcGFyYW1ldGVycy9Sc2FI
YXNoZWRLZXlHZW5QYXJhbXMuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBj
MjRlNmYzMzlkN2Q0NDJhNWM4YzY5MDlmZWQyMmM2YjhiMmU1N2MyLi4wODM4YWYzY2YwYjFhYTE2
YThiYjA4OTc0Y2M4ZGU4OTY0MGI0Njc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
QEAgLTI3NSw2ICsyNzUsNyBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9j
cnlwdG8vcGFyYW1ldGVycy9BZXNHY21QYXJhbXMuaWRsIFwKICAgICAkKFdlYkNvcmUpL2NyeXB0
by9wYXJhbWV0ZXJzL0Flc0tleUdlblBhcmFtcy5pZGwgXAogICAgICQoV2ViQ29yZSkvY3J5cHRv
L3BhcmFtZXRlcnMvRWNLZXlQYXJhbXMuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2NyeXB0by9wYXJh
bWV0ZXJzL0VjZGhLZXlEZXJpdmVQYXJhbXMuaWRsIFwKICAgICAkKFdlYkNvcmUpL2NyeXB0by9w
YXJhbWV0ZXJzL0htYWNLZXlQYXJhbXMuaWRsIFwKICAgICAkKFdlYkNvcmUpL2NyeXB0by9wYXJh
bWV0ZXJzL1JzYUhhc2hlZEltcG9ydFBhcmFtcy5pZGwgXAogICAgICQoV2ViQ29yZSkvY3J5cHRv
L3BhcmFtZXRlcnMvUnNhSGFzaGVkS2V5R2VuUGFyYW1zLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RL
LmNtYWtlCmluZGV4IDNjZDBkYjliZWYyNGUzNjIxYjA4MTdmNWI0NjFjMjRmNDQyODdmYzcuLjJm
OWU5MTE2MWU5NmMyYzQ3ODVkMDc3NDNjZDliYzE2MDIwODljYzcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3Jt
R1RLLmNtYWtlCkBAIC00MDMsNiArNDAzLDcgQEAgaWYgKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKQog
ICAgICAgICBjcnlwdG8vZ251dGxzL0NyeXB0b0FsZ29yaXRobUFFU19DRkJHbnVUTFMuY3BwCiAg
ICAgICAgIGNyeXB0by9nbnV0bHMvQ3J5cHRvQWxnb3JpdGhtQUVTX0dDTUdudVRMUy5jcHAKICAg
ICAgICAgY3J5cHRvL2dudXRscy9DcnlwdG9BbGdvcml0aG1BRVNfS1dHbnVUTFMuY3BwCisgICAg
ICAgIGNyeXB0by9nbnV0bHMvQ3J5cHRvQWxnb3JpdGhtRUNESEdudVRMUy5jcHAKICAgICAgICAg
Y3J5cHRvL2dudXRscy9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81R251VExTLmNwcAog
ICAgICAgICBjcnlwdG8vZ251dGxzL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81R251
VExTLmNwcAogICAgICAgICBjcnlwdG8vZ251dGxzL0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQR251
VExTLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UgYi9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQppbmRleCA4MDU4MjgwZTgyNDExM2RkOGVk
NDAzOTU3NGE3NDUxZTc5MjdlZmE5Li44OTRjOWJkNTZlYjlhN2FkMjFhYWI4MmVmZTkwNDlhODM5
MDkyMjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQpAQCAtMjA2LDYgKzIwNiw3IEBAIGxp
c3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgIGNyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGht
QUVTX0NGQk1hYy5jcHAKICAgICBjcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUFFU19HQ01NYWMu
Y3BwCiAgICAgY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1BRVNfS1dNYWMuY3BwCisgICAgY3J5
cHRvL21hYy9DcnlwdG9BbGdvcml0aG1FQ0RITWFjLmNwcAogICAgIGNyeXB0by9tYWMvQ3J5cHRv
QWxnb3JpdGhtSE1BQ01hYy5jcHAKICAgICBjcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobVJTQUVT
X1BLQ1MxX3YxXzVNYWMuY3BwCiAgICAgY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1SU0FTU0Ff
UEtDUzFfdjFfNU1hYy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCAwNjkxMGMwZWNjNDFjZDJjNzFjMzE4NzQ2MjQ3ZWQwNmNm
ODI4MDA4Li45YzdlYmQ2MDY4MjBjODU1ZTVhM2U1NTU1Y2E4NjBmOGQzOGJmYzBmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0y
MzczLDYgKzIzNzMsMTAgQEAKIAkJNTc1MEE5ODIxRTZBMTUwODAwNzA1QzRBIC8qIEpTRWNLZXlQ
YXJhbXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3
NTBBOTgwMUU2QTE1MDgwMDcwNUM0QSAvKiBKU0VjS2V5UGFyYW1zLmggKi87IH07CiAJCTU3NTBB
OTg2MUU2QTIxNjgwMDcwNUM0QSAvKiBDcnlwdG9BbGdvcml0aG1FQ0RILmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NTBBOTg0MUU2QTIxNjgwMDcw
NUM0QSAvKiBDcnlwdG9BbGdvcml0aG1FQ0RILmNwcCAqLzsgfTsKIAkJNTc1MEE5ODcxRTZBMjE2
ODAwNzA1QzRBIC8qIENyeXB0b0FsZ29yaXRobUVDREguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NTBBOTg1MUU2QTIxNjgwMDcwNUM0QSAvKiBDcnlw
dG9BbGdvcml0aG1FQ0RILmggKi87IH07CisJCTU3NjgxNDJBMUU2Rjk5QzEwMEU3Nzc1NCAvKiBD
cnlwdG9BbGdvcml0aG1FY2RoS2V5RGVyaXZlUGFyYW1zLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzY4MTQyOTFFNkY5OUMxMDBFNzc3NTQgLyogQ3J5
cHRvQWxnb3JpdGhtRWNkaEtleURlcml2ZVBhcmFtcy5oICovOyB9OworCQk1NzY4MTQzNTFFNkZF
M0U4MDBFNzc3NTQgLyogQ3J5cHRvQWxnb3JpdGhtRUNESE1hYy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzY4MTQzNDFFNkZFM0U4MDBFNzc3NTQg
LyogQ3J5cHRvQWxnb3JpdGhtRUNESE1hYy5jcHAgKi87IH07CisJCTU3NjgxNDQwMUU3MDlGQTEw
MEU3Nzc1NCAvKiBKU0VjZGhLZXlEZXJpdmVQYXJhbXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc2ODE0M0QxRTcwOUMzNjAwRTc3NzU0IC8qIEpT
RWNkaEtleURlcml2ZVBhcmFtcy5jcHAgKi87IH07CisJCTU3NjgxNDQxMUU3MDlGQTQwMEU3Nzc1
NCAvKiBKU0VjZGhLZXlEZXJpdmVQYXJhbXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU3NjgxNDNFMUU3MDlDMzYwMEU3Nzc1NCAvKiBKU0VjZGhLZXlE
ZXJpdmVQYXJhbXMuaCAqLzsgfTsKIAkJNTc2OEU0MzQxREI3NTI0NTAwRDBBNEY3IC8qIEpTUnNh
SGFzaGVkS2V5R2VuUGFyYW1zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NzY4RTQzMzFEQjc1MjQ1MDBEMEE0RjcgLyogSlNSc2FIYXNoZWRLZXlHZW5Q
YXJhbXMuaCAqLzsgfTsKIAkJNTc2OEU0MzYxREI3NTI3NDAwRDBBNEY3IC8qIEpTUnNhSGFzaGVk
S2V5R2VuUGFyYW1zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU3NjhFNDM1MURCNzUyNzMwMEQwQTRGNyAvKiBKU1JzYUhhc2hlZEtleUdlblBhcmFt
cy5jcHAgKi87IH07CiAJCTU3NzQ4MzEyMURBREM1NUQwMDcxNkVGOSAvKiBDcnlwdG9BbGdvcml0
aG1BZXNLZXlHZW5QYXJhbXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDU3NzQ4MzExMURBREM1NUQwMDcxNkVGOSAvKiBDcnlwdG9BbGdvcml0aG1BZXNL
ZXlHZW5QYXJhbXMuaCAqLzsgfTsKQEAgLTk3OTUsNiArOTc5OSwxMSBAQAogCQk1NzUwQTk4MDFF
NkExNTA4MDA3MDVDNEEgLyogSlNFY0tleVBhcmFtcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU0VjS2V5UGFyYW1zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTU3NTBBOTg0MUU2QTIxNjgwMDcwNUM0QSAvKiBDcnlwdG9BbGdvcml0aG1FQ0RILmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobUVDREguY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzUwQTk4NTFFNkEyMTY4MDA3MDVDNEEg
LyogQ3J5cHRvQWxnb3JpdGhtRUNESC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDcnlwdG9BbGdvcml0aG1FQ0RILmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3
NjgxNDI4MUU2Rjk4QUQwMEU3Nzc1NCAvKiBFY2RoS2V5RGVyaXZlUGFyYW1zLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBF
Y2RoS2V5RGVyaXZlUGFyYW1zLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTc2
ODE0MjkxRTZGOTlDMTAwRTc3NzU0IC8qIENyeXB0b0FsZ29yaXRobUVjZGhLZXlEZXJpdmVQYXJh
bXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtRWNk
aEtleURlcml2ZVBhcmFtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzY4MTQz
NDFFNkZFM0U4MDBFNzc3NTQgLyogQ3J5cHRvQWxnb3JpdGhtRUNESE1hYy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1FQ0RITWFjLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTc2ODE0M0QxRTcwOUMzNjAwRTc3NzU0IC8q
IEpTRWNkaEtleURlcml2ZVBhcmFtcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU0VjZGhLZXlEZXJpdmVQYXJhbXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1NzY4MTQzRTFFNzA5QzM2MDBFNzc3NTQgLyogSlNFY2RoS2V5RGVyaXZlUGFyYW1z
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRWNkaEtleURlcml2ZVBhcmFt
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzY4RTQzMzFEQjc1MjQ1MDBEMEE0
RjcgLyogSlNSc2FIYXNoZWRLZXlHZW5QYXJhbXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNSc2FIYXNoZWRLZXlHZW5QYXJhbXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTc2OEU0MzUxREI3NTI3MzAwRDBBNEY3IC8qIEpTUnNhSGFzaGVkS2V5R2VuUGFy
YW1zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUnNhSGFzaGVk
S2V5R2VuUGFyYW1zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc3NDgzMTAx
REFEQzQ5OTAwNzE2RUY5IC8qIEFlc0tleUdlblBhcmFtcy5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQWVzS2V5R2VuUGFy
YW1zLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzNTgwLDYgKzIzNTg5LDcg
QEAKIAkJCQk1NzA0NDA1NzFFNTM4NTE2MDAzNTY2MDEgLyogQ3J5cHRvQWxnb3JpdGhtQUVTX0NG
Qk1hYy5jcHAgKi8sCiAJCQkJNTdCNUY4MEQxRTVEMkYyRDAwRjM0RjkwIC8qIENyeXB0b0FsZ29y
aXRobUFFU19HQ01NYWMuY3BwICovLAogCQkJCUUxRkUxMzdDMTg0RDI3MDIwMDg5MkYxMyAvKiBD
cnlwdG9BbGdvcml0aG1BRVNfS1dNYWMuY3BwICovLAorCQkJCTU3NjgxNDM0MUU2RkUzRTgwMEU3
Nzc1NCAvKiBDcnlwdG9BbGdvcml0aG1FQ0RITWFjLmNwcCAqLywKIAkJCQlFMTI1RjgzNzE4MjJG
MUVCMDBEODRDRDkgLyogQ3J5cHRvQWxnb3JpdGhtSE1BQ01hYy5jcHAgKi8sCiAJCQkJRTFCQjg0
QUMxODIyQ0E3NDAwNTI1MDQzIC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5TWFjLmNwcCAqLywK
IAkJCQlFMUZFMTM2RTE4M0ZFQ0YwMDA4OTJGMTMgLyogQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVBN
YWMuY3BwICovLApAQCAtMjM2NjEsNiArMjM2NzEsNyBAQAogCQkJCTU3NzQ4MzExMURBREM1NUQw
MDcxNkVGOSAvKiBDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXMuaCAqLywKIAkJCQlFMTlB
QzNGNjE4MjRFNUQxMDAzNDk0MjYgLyogQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zRGVw
cmVjYXRlZC5oICovLAogCQkJCTU3NTBBOTdEMUU2QTEzRUYwMDcwNUM0QSAvKiBDcnlwdG9BbGdv
cml0aG1FY0tleVBhcmFtcy5oICovLAorCQkJCTU3NjgxNDI5MUU2Rjk5QzEwMEU3Nzc1NCAvKiBD
cnlwdG9BbGdvcml0aG1FY2RoS2V5RGVyaXZlUGFyYW1zLmggKi8sCiAJCQkJNTc3NDgzMTgxREI0
NDkxRjAwNzE2RUY5IC8qIENyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXMuaCAqLywKIAkJCQlF
MTlEQTI5QjE4MTg5QUREMDAwODhCQzggLyogQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtc0Rl
cHJlY2F0ZWQuaCAqLywKIAkJCQlFMUM2NTcxRTE4MTZFNTAzMDAyNTZDREQgLyogQ3J5cHRvQWxn
b3JpdGhtSG1hY1BhcmFtc0RlcHJlY2F0ZWQuaCAqLywKQEAgLTIzNjczLDYgKzIzNjg0LDcgQEAK
IAkJCQlFMUZFMTM3NjE4NEQxRTMzMDA4OTJGMTMgLyogQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBh
cmFtc0RlcHJlY2F0ZWQuaCAqLywKIAkJCQlFMUJEMzMxQjE4MkQ4RUU5MDBDMDVEOUYgLyogQ3J5
cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZC5oICovLAogCQkJCTU3NTBBOTdDMUU2
QTEyQjQwMDcwNUM0QSAvKiBFY0tleVBhcmFtcy5pZGwgKi8sCisJCQkJNTc2ODE0MjgxRTZGOThB
RDAwRTc3NzU0IC8qIEVjZGhLZXlEZXJpdmVQYXJhbXMuaWRsICovLAogCQkJCTU3NzQ4MzE3MURC
MUZFODkwMDcxNkVGOSAvKiBIbWFjS2V5UGFyYW1zLmlkbCAqLywKIAkJCQk1N0UyMzM2QzFEQ0Q0
MzcwMDBGMjhEMDEgLyogUnNhSGFzaGVkSW1wb3J0UGFyYW1zLmlkbCAqLywKIAkJCQk1N0Y4Mjcz
OTFEQjcyQzIyMDA5RDJCRjQgLyogUnNhSGFzaGVkS2V5R2VuUGFyYW1zLmlkbCAqLywKQEAgLTIz
ODQ5LDYgKzIzODYxLDggQEAKIAkJCQk1N0QwMDE4QzFERDU0MTMyMDBFRDE5RDkgLyogSlNDcnlw
dG9LZXlVc2FnZS5oICovLAogCQkJCTU3NTBBOTdGMUU2QTE1MDgwMDcwNUM0QSAvKiBKU0VjS2V5
UGFyYW1zLmNwcCAqLywKIAkJCQk1NzUwQTk4MDFFNkExNTA4MDA3MDVDNEEgLyogSlNFY0tleVBh
cmFtcy5oICovLAorCQkJCTU3NjgxNDNEMUU3MDlDMzYwMEU3Nzc1NCAvKiBKU0VjZGhLZXlEZXJp
dmVQYXJhbXMuY3BwICovLAorCQkJCTU3NjgxNDNFMUU3MDlDMzYwMEU3Nzc1NCAvKiBKU0VjZGhL
ZXlEZXJpdmVQYXJhbXMuaCAqLywKIAkJCQk1N0UyMzM2ODFEQ0FCMjQzMDBGMjhEMDEgLyogSlNI
bWFjS2V5UGFyYW1zLmNwcCAqLywKIAkJCQk1N0UyMzM2NjFEQ0FCMjFDMDBGMjhEMDEgLyogSlNI
bWFjS2V5UGFyYW1zLmggKi8sCiAJCQkJNTdFMjMzNUUxREM3RDY3QjAwRjI4RDAxIC8qIEpTSnNv
bldlYktleS5jcHAgKi8sCkBAIC0yNjcyMiw2ICsyNjczNiw3IEBACiAJCQkJMUFFOTZBOTExRDFB
MERERDAwQjg2NzY4IC8qIEpTQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RTZWxlY3RlZEV2ZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk3QzY1NzlGNDFFMDA4NTY2MDBFM0EyN0EgLyogSlNBcHBsZVBh
eVNoaXBwaW5nTWV0aG9kLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUU5NkE5MzFEMUEwREREMDBC
ODY3NjggLyogSlNBcHBsZVBheVNoaXBwaW5nTWV0aG9kU2VsZWN0ZWRFdmVudC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNTc2ODE0NDExRTcwOUZBNDAwRTc3NzU0IC8qIEpTRWNkaEtleURlcml2ZVBh
cmFtcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVERjMxREIwOUQxQzEyMzAwMEJFMzI1IC8qIEpT
QXR0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFOUUxMkIwM0VFMTAwM0E1ODNBIC8qIEpT
QXVkaW9CdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZERjdFOUM0MTNBQzIxREIwMEE1MUVB
QyAvKiBKU0F1ZGlvQnVmZmVyQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLApAQCAtMjg0NDksNiAr
Mjg0NjQsNyBAQAogCQkJCUE4RUE4MDBBMEExOTUxNkUwMEE4RUY1RiAvKiBTdHlsZVNoZWV0TGlz
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1RUI1RTUwRTgxQkY2RDAwQjI1OTY1IC8qIFN0eWxl
U3Vycm91bmREYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVFQjgxMDBFODFGMkNFMDBCMjU5
NjUgLyogU3R5bGVUcmFuc2Zvcm1EYXRhLmggaW4gSGVhZGVycyAqLywKKwkJCQk1NzY4MTQyQTFF
NkY5OUMxMDBFNzc3NTQgLyogQ3J5cHRvQWxnb3JpdGhtRWNkaEtleURlcml2ZVBhcmFtcy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRTRERUFBMTgxN0E5M0RDMzAwMEUwNDMwIC8qIFN0eWxlVHJlZVJl
c29sdmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDJFNzZEQzFDN0FGNzc2MDBFMzYxNEQgLyog
U3R5bGVVcGRhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0ODEzN0I5MURCM0I1MjYwMDVDNTlC
RiAvKiBTdHlsZVZhbGlkaXR5LmggaW4gSGVhZGVycyAqLywKQEAgLTMwMzg1LDYgKzMwNDAxLDcg
QEAKIAkJCQlBODcxREIyNjBBMTUwQkQ2MDBCMTJBNjggLyogSFRNTFRhYmxlU2VjdGlvbkVsZW1l
bnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRDY2ODE3RkExNjZGRTZENzAwRkEwN0I0IC8qIEhU
TUxUZW1wbGF0ZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgxMzY5RDcwOTczNzRG
NjAwRDc0NDYzIC8qIEhUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NTc2ODE0NDAxRTcwOUZBMTAwRTc3NzU0IC8qIEpTRWNkaEtleURlcml2ZVBhcmFtcy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk5QkM2QzIxQzEzQ0NDOTdCMDA4RTAzMzcgLyogSFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODMwNTE5OTUxQkIwRjExMDAw
RjM3NzJFIC8qIEhUTUxUaW1lRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODcxREMy
OTBBMTUyMDU3MDBCMTJBNjggLyogSFRNTFRpdGxlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywK
QEAgLTMwNTg2LDYgKzMwNjAzLDcgQEAKIAkJCQk3NkZCOUZGODE5QTczRTNBMDA0MjA1NjIgLyog
SlNBdXRvY29tcGxldGVFcnJvckV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMTI0RUZG
MEMyNjQ0N0EwMDlFMjM0OSAvKiBKU0JhclByb3AuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5
NDYzNDYxMDdBOTM0QjAwODU3MTkzIC8qIEpTQmVmb3JlTG9hZEV2ZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCTU3NjgxNDM1MUU2RkUzRTgwMEU3Nzc1NCAvKiBDcnlwdG9BbGdvcml0aG1FQ0RI
TWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTcwRjU0NkU4QjhCNUQ3REM1NEVFMTQ0RSAvKiBK
U0JlZm9yZVVubG9hZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZERjA5REM4MTM5OUI2
MjIwMDY4OEU1QiAvKiBKU0JpcXVhZEZpbHRlck5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MkUyRDk5Q0QxMEUyQkJEQTAwNDk2MzM3IC8qIEpTQmxvYi5jcHAgaW4gU291cmNlcyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3VidGxlQ3J5cHRvQ3VzdG9t
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3VidGxlQ3J5cHRvQ3VzdG9tLmNw
cAppbmRleCA0NmZmMzUxZWQ0OTM5Yzg0NWIxY2Y4NWYwZDU2MmJhYzMxYWZkN2Y0Li4yNmEwY2Zk
M2UyNDFmZTVkM2JiNDZhNTA3NWE2MzY2MGViMDk3MWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwCkBAIC0zOSw2ICszOSw3
IEBACiAjaW5jbHVkZSAiSlNET01Qcm9taXNlLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyLmgi
CiAjaW5jbHVkZSAiSlNFY0tleVBhcmFtcy5oIgorI2luY2x1ZGUgIkpTRWNkaEtleURlcml2ZVBh
cmFtcy5oIgogI2luY2x1ZGUgIkpTSG1hY0tleVBhcmFtcy5oIgogI2luY2x1ZGUgIkpTSnNvbldl
YktleS5oIgogI2luY2x1ZGUgIkpTUnNhSGFzaGVkSW1wb3J0UGFyYW1zLmgiCkBAIC02MCw3ICs2
MSw2IEBAIGVudW0gY2xhc3MgT3BlcmF0aW9ucyB7CiAgICAgU2lnbiwKICAgICBWZXJpZnksCiAg
ICAgRGlnZXN0LAotICAgIERlcml2ZUtleSwKICAgICBEZXJpdmVCaXRzLAogICAgIEdlbmVyYXRl
S2V5LAogICAgIEltcG9ydEtleSwKQEAgLTE1OSwxMCArMTU5LDI2IEBAIHN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gbm9ybWFsaXplQ3J5cHRvQWxnb3Jp
dGhtUGFyYW1lCiAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgICAgICB9
CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBPcGVyYXRpb25zOjpEZXJpdmVLZXk6
CiAgICAgICAgIGNhc2UgT3BlcmF0aW9uczo6RGVyaXZlQml0czoKLSAgICAgICAgICAgIHRocm93
Tm90U3VwcG9ydGVkRXJyb3Ioc3RhdGUsIHNjb3BlKTsKLSAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgICAgICAgICAgc3dpdGNoICgqaWRlbnRpZmllcikgeworICAgICAgICAgICAgY2Fz
ZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpFQ0RIOiB7CisgICAgICAgICAgICAgICAgLy8g
UmVtb3ZlIHRoaXMgaGFjayBvbmNlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjkzMzMgaXMgZml4ZWQuCisgICAgICAgICAgICAgICAgSlNWYWx1ZSBuYW1lVmFsdWUg
PSB2YWx1ZS5nZXRPYmplY3QoKS0+Z2V0KCZzdGF0ZSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygm
c3RhdGUsICJuYW1lIikpOworICAgICAgICAgICAgICAgIEpTVmFsdWUgcHVibGljVmFsdWUgPSB2
YWx1ZS5nZXRPYmplY3QoKS0+Z2V0KCZzdGF0ZSwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmc3Rh
dGUsICJwdWJsaWMiKSk7CisgICAgICAgICAgICAgICAgSlNPYmplY3QqIG5ld1ZhbHVlID0gY29u
c3RydWN0RW1wdHlPYmplY3QoJnN0YXRlKTsKKyAgICAgICAgICAgICAgICBuZXdWYWx1ZS0+cHV0
RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgIm5hbWUiKSwgbmFtZVZhbHVl
KTsKKyAgICAgICAgICAgICAgICBuZXdWYWx1ZS0+cHV0RGlyZWN0KHZtLCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKCZ2bSwgInB1YmxpY0tleSIpLCBwdWJsaWNWYWx1ZSk7CisKKyAgICAgICAgICAg
ICAgICBhdXRvIHBhcmFtcyA9IGNvbnZlcnREaWN0aW9uYXJ5PENyeXB0b0FsZ29yaXRobUVjZGhL
ZXlEZXJpdmVQYXJhbXM+KHN0YXRlLCBuZXdWYWx1ZSk7CisgICAgICAgICAgICAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgbnVsbHB0cik7CisgICAgICAgICAgICAgICAgcmVzdWx0ID0g
c3RkOjptYWtlX3VuaXF1ZTxDcnlwdG9BbGdvcml0aG1FY2RoS2V5RGVyaXZlUGFyYW1zPihwYXJh
bXMpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgICAgICB0aHJvd05vdFN1cHBvcnRlZEVycm9yKHN0YXRlLCBz
Y29wZSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBPcGVyYXRpb25zOjpHZW5lcmF0ZUtleToK
ICAgICAgICAgICAgIHN3aXRjaCAoKmlkZW50aWZpZXIpIHsKICAgICAgICAgICAgIGNhc2UgQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBRVNfUEtDUzFfdjFfNTogewpAQCAtNjYwLDI5ICs2
NzYsNjUgQEAgc3RhdGljIHZvaWQganNTdWJ0bGVDcnlwdG9GdW5jdGlvbkRpZ2VzdFByb21pc2Uo
RXhlY1N0YXRlJiBzdGF0ZSwgUmVmPERlZmVycmVkUHIKICAgICBhbGdvcml0aG0tPmRpZ2VzdChX
VEZNb3ZlKGRhdGEpLCBXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShleGNlcHRpb25DYWxsYmFj
ayksICpzY3JpcHRFeGVjdXRpb25Db250ZXh0RnJvbUV4ZWNTdGF0ZSgmc3RhdGUpLCBzdWJ0bGUt
PndyYXBwZWQoKS53b3JrUXVldWUoKSk7CiB9CiAKLXN0YXRpYyB2b2lkIGpzU3VidGxlQ3J5cHRv
RnVuY3Rpb25EZXJpdmVLZXlQcm9taXNlKEV4ZWNTdGF0ZSYgc3RhdGUsIFJlZjxEZWZlcnJlZFBy
b21pc2U+JiYgcHJvbWlzZSkKK3N0YXRpYyB2b2lkIGpzU3VidGxlQ3J5cHRvRnVuY3Rpb25HZW5l
cmF0ZUtleVByb21pc2UoRXhlY1N0YXRlJiBzdGF0ZSwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBw
cm9taXNlKQogewogICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgaWYgKFVOTElLRUxZKHN0YXRlLmFyZ3VtZW50
Q291bnQoKSA8IDUpKSB7CisgICAgaWYgKFVOTElLRUxZKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA8
IDMpKSB7CiAgICAgICAgIHByb21pc2UtPnJlamVjdDxJRExBbnk+KGNyZWF0ZU5vdEVub3VnaEFy
Z3VtZW50c0Vycm9yKCZzdGF0ZSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0
byBwYXJhbXMgPSBub3JtYWxpemVDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzKHN0YXRlLCBzdGF0
ZS51bmNoZWNrZWRBcmd1bWVudCgwKSwgT3BlcmF0aW9uczo6RGVyaXZlS2V5KTsKKyAgICBhdXRv
IHBhcmFtcyA9IG5vcm1hbGl6ZUNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMoc3RhdGUsIHN0YXRl
LnVuY2hlY2tlZEFyZ3VtZW50KDApLCBPcGVyYXRpb25zOjpHZW5lcmF0ZUtleSk7CiAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKIAotICAgIC8vIFdlIHNob3VsZCBhbHdh
eXMgcmV0dXJuIGEgTk9UX1NVUFBPUlRFRF9FUlIgc2luY2Ugd2UgY3VycmVudGx5IGRvbid0IHN1
cHBvcnQgYW55IGFsZ29yaXRobXMgdGhhdCBoYXMgZGVyaXZlS2V5IG9wZXJhdGlvbi4KLSAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBhdXRvIGV4dHJhY3RhYmxlID0gc3RhdGUudW5jaGVj
a2VkQXJndW1lbnQoMSkudG9Cb29sZWFuKCZzdGF0ZSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgdm9pZCgpKTsKKworICAgIGF1dG8ga2V5VXNhZ2VzID0gY3J5cHRvS2V5VXNhZ2VC
aXRtYXBGcm9tSlNWYWx1ZShzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMikpOworICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CisKKyAgICBhdXRvIGFsZ29yaXRo
bSA9IENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5OjpzaW5nbGV0b24oKS5jcmVhdGUocGFyYW1zLT5p
ZGVudGlmaWVyKTsKKyAgICBpZiAoVU5MSUtFTFkoIWFsZ29yaXRobSkpIHsKKyAgICAgICAgdGhy
b3dOb3RTdXBwb3J0ZWRFcnJvcihzdGF0ZSwgc2NvcGUpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgYXV0byBjYWxsYmFjayA9IFtjYXB0dXJlZFByb21pc2UgPSBwcm9taXNlLmNvcHlS
ZWYoKV0oS2V5T3JLZXlQYWlyJiYga2V5T3JLZXlQYWlyKSBtdXRhYmxlIHsKKyAgICAgICAgV1RG
Ojpzd2l0Y2hPbihrZXlPcktleVBhaXIsCisgICAgICAgICAgICBbJmNhcHR1cmVkUHJvbWlzZV0g
KFJlZlB0cjxDcnlwdG9LZXk+JiBrZXkpIHsKKyAgICAgICAgICAgICAgICBpZiAoKGtleS0+dHlw
ZSgpID09IENyeXB0b0tleVR5cGU6OlByaXZhdGUgfHwga2V5LT50eXBlKCkgPT0gQ3J5cHRvS2V5
VHlwZTo6U2VjcmV0KSAmJiAha2V5LT51c2FnZXNCaXRtYXAoKSkgeworICAgICAgICAgICAgICAg
ICAgICByZWplY3RXaXRoRXhjZXB0aW9uKFdURk1vdmUoY2FwdHVyZWRQcm9taXNlKSwgU1lOVEFY
X0VSUik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgY2FwdHVyZWRQcm9taXNlLT5yZXNvbHZlPElETEludGVyZmFjZTxDcnlw
dG9LZXk+Pigqa2V5KTsKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICBbJmNhcHR1cmVkUHJv
bWlzZV0gKENyeXB0b0tleVBhaXImIGtleVBhaXIpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWtl
eVBhaXIucHJpdmF0ZUtleS0+dXNhZ2VzQml0bWFwKCkpIHsKKyAgICAgICAgICAgICAgICAgICAg
cmVqZWN0V2l0aEV4Y2VwdGlvbihXVEZNb3ZlKGNhcHR1cmVkUHJvbWlzZSksIFNZTlRBWF9FUlIp
OworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgIGNhcHR1cmVkUHJvbWlzZS0+cmVzb2x2ZTxJRExEaWN0aW9uYXJ5PENyeXB0b0tl
eVBhaXI+PihrZXlQYWlyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgKTsKKyAgICB9OworICAg
IGF1dG8gZXhjZXB0aW9uQ2FsbGJhY2sgPSBbY2FwdHVyZWRQcm9taXNlID0gV1RGTW92ZShwcm9t
aXNlKV0oRXhjZXB0aW9uQ29kZSBlYykgbXV0YWJsZSB7CisgICAgICAgIHJlamVjdFdpdGhFeGNl
cHRpb24oV1RGTW92ZShjYXB0dXJlZFByb21pc2UpLCBlYyk7CisgICAgfTsKKworICAgIC8vIFRo
ZSAyNiBKYW51YXJ5IDIwMTcgdmVyc2lvbiBvZiB0aGUgc3BlY2lmaWNhdGlvbiBzdWdnZXN0cyB3
ZSBzaG91bGQgcGVyZm9ybSB0aGUgZm9sbG93aW5nIHRhc2sgYXN5bmNocm9ub3VzbHkKKyAgICAv
LyByZWdhcmRsZXNzIHdoYXQga2luZCBvZiBrZXlzIGl0IHByb2R1Y2VzOiBodHRwczovL3d3dy53
My5vcmcvVFIvV2ViQ3J5cHRvQVBJLyNTdWJ0bGVDcnlwdG8tbWV0aG9kLWdlbmVyYXRlS2V5Cisg
ICAgLy8gVGhhdCdzIHNpbXBseSBub3QgZWZmaWNpZW50IGZvciBBRVMsIEhNQUMgYW5kIEVDIGtl
eXMuIFRoZXJlZm9yZSwgd2UgcGVyZm9ybSBpdCBhcyBhbiBhc3luYyB0YXNrIG9ubHkgZm9yIFJT
QSBrZXlzLgorICAgIGFsZ29yaXRobS0+Z2VuZXJhdGVLZXkoKnBhcmFtcywgZXh0cmFjdGFibGUs
IGtleVVzYWdlcywgV1RGTW92ZShjYWxsYmFjayksIFdURk1vdmUoZXhjZXB0aW9uQ2FsbGJhY2sp
LCAqc2NyaXB0RXhlY3V0aW9uQ29udGV4dEZyb21FeGVjU3RhdGUoJnN0YXRlKSk7CiB9CiAKLXN0
YXRpYyB2b2lkIGpzU3VidGxlQ3J5cHRvRnVuY3Rpb25EZXJpdmVCaXRzUHJvbWlzZShFeGVjU3Rh
dGUmIHN0YXRlLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCitzdGF0aWMgdm9pZCBq
c1N1YnRsZUNyeXB0b0Z1bmN0aW9uRGVyaXZlS2V5UHJvbWlzZShFeGVjU3RhdGUmIHN0YXRlLCBS
ZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUudm0o
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICBpZiAo
VU5MSUtFTFkoc3RhdGUuYXJndW1lbnRDb3VudCgpIDwgMykpIHsKKyAgICBpZiAoVU5MSUtFTFko
c3RhdGUuYXJndW1lbnRDb3VudCgpIDwgNSkpIHsKICAgICAgICAgcHJvbWlzZS0+cmVqZWN0PElE
TEFueT4oY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CkBAIC02OTAsMTEgKzc0MiwxMSBAQCBzdGF0aWMgdm9pZCBqc1N1YnRsZUNy
eXB0b0Z1bmN0aW9uRGVyaXZlQml0c1Byb21pc2UoRXhlY1N0YXRlJiBzdGF0ZSwgUmVmPERlZmVy
cgogICAgIGF1dG8gcGFyYW1zID0gbm9ybWFsaXplQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyhz
dGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCksIE9wZXJhdGlvbnM6OkRlcml2ZUJpdHMp
OwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CiAKLSAgICAvLyBXZSBz
aG91bGQgYWx3YXlzIHJldHVybiBhIE5PVF9TVVBQT1JURURfRVJSIHNpbmNlIHdlIGN1cnJlbnRs
eSBkb24ndCBzdXBwb3J0IGFueSBhbGdvcml0aG1zIHRoYXQgaGFzIGRlcml2ZUJpdHMgb3BlcmF0
aW9uLgorICAgIC8vIFdlIHNob3VsZCBhbHdheXMgcmV0dXJuIGEgTk9UX1NVUFBPUlRFRF9FUlIg
c2luY2Ugd2UgY3VycmVudGx5IGRvbid0IHN1cHBvcnQgYW55IGFsZ29yaXRobXMgdGhhdCBoYXMg
ZGVyaXZlS2V5IG9wZXJhdGlvbi4KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotc3Rh
dGljIHZvaWQganNTdWJ0bGVDcnlwdG9GdW5jdGlvbkdlbmVyYXRlS2V5UHJvbWlzZShFeGVjU3Rh
dGUmIHN0YXRlLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCitzdGF0aWMgdm9pZCBq
c1N1YnRsZUNyeXB0b0Z1bmN0aW9uRGVyaXZlQml0c1Byb21pc2UoRXhlY1N0YXRlJiBzdGF0ZSwg
UmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewogICAgIFZNJiB2bSA9IHN0YXRlLnZt
KCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtNzA0LDQ3
ICs3NTYsNDIgQEAgc3RhdGljIHZvaWQganNTdWJ0bGVDcnlwdG9GdW5jdGlvbkdlbmVyYXRlS2V5
UHJvbWlzZShFeGVjU3RhdGUmIHN0YXRlLCBSZWY8RGVmZXIKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIGF1dG8gcGFyYW1zID0gbm9ybWFsaXplQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
cyhzdGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMCksIE9wZXJhdGlvbnM6OkdlbmVyYXRl
S2V5KTsKKyAgICBhdXRvIHBhcmFtcyA9IG5vcm1hbGl6ZUNyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnMoc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApLCBPcGVyYXRpb25zOjpEZXJpdmVC
aXRzKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwogCi0gICAgYXV0
byBleHRyYWN0YWJsZSA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvQm9vbGVhbigmc3Rh
dGUpOworICAgIGF1dG8gYmFzZUtleSA9IHRvQ3J5cHRvS2V5KHN0YXRlLCBzdGF0ZS51bmNoZWNr
ZWRBcmd1bWVudCgxKSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsK
IAotICAgIGF1dG8ga2V5VXNhZ2VzID0gY3J5cHRvS2V5VXNhZ2VCaXRtYXBGcm9tSlNWYWx1ZShz
dGF0ZSwgc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMikpOworICAgIGF1dG8gbGVuZ3RoID0gY29u
dmVydDxJRExVbnNpZ25lZExvbmc+KHN0YXRlLCBzdGF0ZS51bmNoZWNrZWRBcmd1bWVudCgyKSwg
SW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uOjpOb3JtYWwpOwogICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CiAKKyAgICBpZiAocGFyYW1zLT5pZGVudGlmaWVyICE9
IGJhc2VLZXktPmFsZ29yaXRobUlkZW50aWZpZXIoKSkgeworICAgICAgICBwcm9taXNlLT5yZWpl
Y3QoSU5WQUxJRF9BQ0NFU1NfRVJSLCBBU0NJSUxpdGVyYWwoIkNyeXB0b0tleSBkb2Vzbid0IG1h
dGNoIEFsZ29yaXRobUlkZW50aWZpZXIiKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBpZiAoIWJhc2VLZXktPmFsbG93cyhDcnlwdG9LZXlVc2FnZURlcml2ZUJpdHMpKSB7CisgICAg
ICAgIHByb21pc2UtPnJlamVjdChJTlZBTElEX0FDQ0VTU19FUlIsIEFTQ0lJTGl0ZXJhbCgiQ3J5
cHRvS2V5IGRvZXNuJ3Qgc3VwcG9ydCBiaXRzIGRlcml2YXRpb24iKSk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKICAgICBhdXRvIGFsZ29yaXRobSA9IENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5
OjpzaW5nbGV0b24oKS5jcmVhdGUocGFyYW1zLT5pZGVudGlmaWVyKTsKICAgICBpZiAoVU5MSUtF
TFkoIWFsZ29yaXRobSkpIHsKICAgICAgICAgdGhyb3dOb3RTdXBwb3J0ZWRFcnJvcihzdGF0ZSwg
c2NvcGUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byBjYWxsYmFjayA9IFtj
YXB0dXJlZFByb21pc2UgPSBwcm9taXNlLmNvcHlSZWYoKV0oS2V5T3JLZXlQYWlyJiYga2V5T3JL
ZXlQYWlyKSBtdXRhYmxlIHsKLSAgICAgICAgV1RGOjpzd2l0Y2hPbihrZXlPcktleVBhaXIsCi0g
ICAgICAgICAgICBbJmNhcHR1cmVkUHJvbWlzZV0gKFJlZlB0cjxDcnlwdG9LZXk+JiBrZXkpIHsK
LSAgICAgICAgICAgICAgICBpZiAoKGtleS0+dHlwZSgpID09IENyeXB0b0tleVR5cGU6OlByaXZh
dGUgfHwga2V5LT50eXBlKCkgPT0gQ3J5cHRvS2V5VHlwZTo6U2VjcmV0KSAmJiAha2V5LT51c2Fn
ZXNCaXRtYXAoKSkgewotICAgICAgICAgICAgICAgICAgICByZWplY3RXaXRoRXhjZXB0aW9uKFdU
Rk1vdmUoY2FwdHVyZWRQcm9taXNlKSwgU1lOVEFYX0VSUik7Ci0gICAgICAgICAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgY2FwdHVyZWRQcm9t
aXNlLT5yZXNvbHZlPElETEludGVyZmFjZTxDcnlwdG9LZXk+Pigqa2V5KTsKLSAgICAgICAgICAg
IH0sCi0gICAgICAgICAgICBbJmNhcHR1cmVkUHJvbWlzZV0gKENyeXB0b0tleVBhaXImIGtleVBh
aXIpIHsKLSAgICAgICAgICAgICAgICBpZiAoIWtleVBhaXIucHJpdmF0ZUtleS0+dXNhZ2VzQml0
bWFwKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgcmVqZWN0V2l0aEV4Y2VwdGlvbihXVEZNb3Zl
KGNhcHR1cmVkUHJvbWlzZSksIFNZTlRBWF9FUlIpOwotICAgICAgICAgICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGNhcHR1cmVkUHJvbWlzZS0+
cmVzb2x2ZTxJRExEaWN0aW9uYXJ5PENyeXB0b0tleVBhaXI+PihrZXlQYWlyKTsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgKTsKKyAgICBhdXRvIGNhbGxiYWNrID0gW2NhcHR1cmVkUHJvbWlzZSA9
IHByb21pc2UuY29weVJlZigpXShjb25zdCBWZWN0b3I8dWludDhfdD4mIGRlcml2ZWRLZXkpIG11
dGFibGUgeworICAgICAgICBmdWxmaWxsUHJvbWlzZVdpdGhBcnJheUJ1ZmZlcihXVEZNb3ZlKGNh
cHR1cmVkUHJvbWlzZSksIGRlcml2ZWRLZXkuZGF0YSgpLCBkZXJpdmVkS2V5LnNpemUoKSk7Cisg
ICAgICAgIHJldHVybjsKICAgICB9OwogICAgIGF1dG8gZXhjZXB0aW9uQ2FsbGJhY2sgPSBbY2Fw
dHVyZWRQcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oRXhjZXB0aW9uQ29kZSBlYykgbXV0YWJs
ZSB7CiAgICAgICAgIHJlamVjdFdpdGhFeGNlcHRpb24oV1RGTW92ZShjYXB0dXJlZFByb21pc2Up
LCBlYyk7CiAgICAgfTsKIAotICAgIC8vIFRoZSAyNiBKYW51YXJ5IDIwMTcgdmVyc2lvbiBvZiB0
aGUgc3BlY2lmaWNhdGlvbiBzdWdnZXN0cyB3ZSBzaG91bGQgcGVyZm9ybSB0aGUgZm9sbG93aW5n
IHRhc2sgYXN5bmNocm9ub3VzbHkKLSAgICAvLyByZWdhcmRsZXNzIHdoYXQga2luZCBvZiBrZXlz
IGl0IHByb2R1Y2VzOiBodHRwczovL3d3dy53My5vcmcvVFIvV2ViQ3J5cHRvQVBJLyNTdWJ0bGVD
cnlwdG8tbWV0aG9kLWdlbmVyYXRlS2V5Ci0gICAgLy8gVGhhdCdzIHNpbXBseSBub3QgZWZmaWNp
ZW50IGZvciBBRVMsIEhNQUMgYW5kIEVDIGtleXMuIFRoZXJlZm9yZSwgd2UgcGVyZm9ybSBpdCBh
cyBhbiBhc3luYyB0YXNrIG9ubHkgZm9yIFJTQSBrZXlzLgotICAgIGFsZ29yaXRobS0+Z2VuZXJh
dGVLZXkoKnBhcmFtcywgZXh0cmFjdGFibGUsIGtleVVzYWdlcywgV1RGTW92ZShjYWxsYmFjayks
IFdURk1vdmUoZXhjZXB0aW9uQ2FsbGJhY2spLCAqc2NyaXB0RXhlY3V0aW9uQ29udGV4dEZyb21F
eGVjU3RhdGUoJnN0YXRlKSk7CisgICAgYXV0byBzdWJ0bGUgPSBqc0R5bmFtaWNEb3duY2FzdDxK
U1N1YnRsZUNyeXB0byo+KHZtLCBzdGF0ZS50aGlzVmFsdWUoKSk7CisgICAgQVNTRVJUKHN1YnRs
ZSk7CisgICAgYWxnb3JpdGhtLT5kZXJpdmVCaXRzKFdURk1vdmUocGFyYW1zKSwgYmFzZUtleS5y
ZWxlYXNlTm9uTnVsbCgpLCBsZW5ndGgsIFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGV4Y2Vw
dGlvbkNhbGxiYWNrKSwgKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHRGcm9tRXhlY1N0YXRlKCZzdGF0
ZSksIHN1YnRsZS0+d3JhcHBlZCgpLndvcmtRdWV1ZSgpKTsKIH0KIAogc3RhdGljIHZvaWQganNT
dWJ0bGVDcnlwdG9GdW5jdGlvbkltcG9ydEtleVByb21pc2UoRXhlY1N0YXRlJiBzdGF0ZSwgUmVm
PERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQpAQCAtMTA5OCw2ICsxMTQ1LDEyIEBAIEpTVmFs
dWUgSlNTdWJ0bGVDcnlwdG86OmRpZ2VzdChFeGVjU3RhdGUmIHN0YXRlKQogICAgIHJldHVybiBj
YWxsUHJvbWlzZUZ1bmN0aW9uPGpzU3VidGxlQ3J5cHRvRnVuY3Rpb25EaWdlc3RQcm9taXNlLCBQ
cm9taXNlRXhlY3V0aW9uU2NvcGU6OldpbmRvd09yV29ya2VyPihzdGF0ZSk7CiB9CiAKKworSlNW
YWx1ZSBKU1N1YnRsZUNyeXB0bzo6Z2VuZXJhdGVLZXkoRXhlY1N0YXRlJiBzdGF0ZSkKK3sKKyAg
ICByZXR1cm4gY2FsbFByb21pc2VGdW5jdGlvbjxqc1N1YnRsZUNyeXB0b0Z1bmN0aW9uR2VuZXJh
dGVLZXlQcm9taXNlLCBQcm9taXNlRXhlY3V0aW9uU2NvcGU6OldpbmRvd09yV29ya2VyPihzdGF0
ZSk7Cit9CisKIEpTVmFsdWUgSlNTdWJ0bGVDcnlwdG86OmRlcml2ZUtleShFeGVjU3RhdGUmIHN0
YXRlKQogewogICAgIHJldHVybiBjYWxsUHJvbWlzZUZ1bmN0aW9uPGpzU3VidGxlQ3J5cHRvRnVu
Y3Rpb25EZXJpdmVLZXlQcm9taXNlLCBQcm9taXNlRXhlY3V0aW9uU2NvcGU6OldpbmRvd09yV29y
a2VyPihzdGF0ZSk7CkBAIC0xMTA4LDExICsxMTYxLDYgQEAgSlNWYWx1ZSBKU1N1YnRsZUNyeXB0
bzo6ZGVyaXZlQml0cyhFeGVjU3RhdGUmIHN0YXRlKQogICAgIHJldHVybiBjYWxsUHJvbWlzZUZ1
bmN0aW9uPGpzU3VidGxlQ3J5cHRvRnVuY3Rpb25EZXJpdmVCaXRzUHJvbWlzZSwgUHJvbWlzZUV4
ZWN1dGlvblNjb3BlOjpXaW5kb3dPcldvcmtlcj4oc3RhdGUpOwogfQogCi1KU1ZhbHVlIEpTU3Vi
dGxlQ3J5cHRvOjpnZW5lcmF0ZUtleShFeGVjU3RhdGUmIHN0YXRlKQotewotICAgIHJldHVybiBj
YWxsUHJvbWlzZUZ1bmN0aW9uPGpzU3VidGxlQ3J5cHRvRnVuY3Rpb25HZW5lcmF0ZUtleVByb21p
c2UsIFByb21pc2VFeGVjdXRpb25TY29wZTo6V2luZG93T3JXb3JrZXI+KHN0YXRlKTsKLX0KLQog
SlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6aW1wb3J0S2V5KEV4ZWNTdGF0ZSYgc3RhdGUpCiB7CiAg
ICAgcmV0dXJuIGNhbGxQcm9taXNlRnVuY3Rpb248anNTdWJ0bGVDcnlwdG9GdW5jdGlvbkltcG9y
dEtleVByb21pc2UsIFByb21pc2VFeGVjdXRpb25TY29wZTo6V2luZG93T3JXb3JrZXI+KHN0YXRl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9Db21tb25DcnlwdG9VdGlsaXRp
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9Db21tb25DcnlwdG9VdGlsaXRpZXMuaAppbmRl
eCA2NGNkNTkyYWYxMTFjNDIyNjgzNDE3Mzc4MWJmNzRiNzkzNTA3NDU4Li5mNTRlY2MxY2JjYjE2
NjIwMGFiZjkzZTZlNGQ0Y2I1YWU5ZjE3Nzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vQ29tbW9uQ3J5cHRvVXRpbGl0aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRv
L0NvbW1vbkNyeXB0b1V0aWxpdGllcy5oCkBAIC0xMDcsNyArMTA3LDcgQEAgZXh0ZXJuICJDIiBD
Q0NyeXB0b3JTdGF0dXMgQ0NFQ0NyeXB0b3JFeHBvcnRLZXkoQ0NFQ0tleUV4dGVybmFsRm9ybWF0
IGZvcm1hdCwgdm8KIGV4dGVybiAiQyIgaW50IENDRUNHZXRLZXlTaXplKENDRUNDcnlwdG9yUmVm
IGtleSk7CiBleHRlcm4gIkMiIENDQ3J5cHRvclN0YXR1cyBDQ0VDQ3J5cHRvckNyZWF0ZUZyb21E
YXRhKHNpemVfdCBrZXlTaXplLCB1aW50OF90ICpxWCwgc2l6ZV90IHFYTGVuZ3RoLCB1aW50OF90
ICpxWSwgc2l6ZV90IHFZTGVuZ3RoLCBDQ0VDQ3J5cHRvclJlZiAqcmVmKTsKIGV4dGVybiAiQyIg
Q0NDcnlwdG9yU3RhdHVzIENDRUNDcnlwdG9yR2V0S2V5Q29tcG9uZW50cyhDQ0VDQ3J5cHRvclJl
ZiBlY0tleSwgc2l6ZV90ICprZXlTaXplLCB1aW50OF90ICpxWCwgc2l6ZV90ICpxWExlbmd0aCwg
dWludDhfdCAqcVksIHNpemVfdCAqcVlMZW5ndGgsIHVpbnQ4X3QgKmQsIHNpemVfdCAqZExlbmd0
aCk7Ci0KK2V4dGVybiAiQyIgQ0NDcnlwdG9yU3RhdHVzIENDRUNDcnlwdG9yQ29tcHV0ZVNoYXJl
ZFNlY3JldChDQ0VDQ3J5cHRvclJlZiBwcml2YXRlS2V5LCBDQ0VDQ3J5cHRvclJlZiBwdWJsaWNL
ZXksIHZvaWQgKm91dCwgc2l6ZV90ICpvdXRMZW4pOwogCiAjaWYgIVVTRShBUFBMRV9JTlRFUk5B
TF9TREspCiBleHRlcm4gIkMiIENDQ3J5cHRvclN0YXR1cyBDQ0NyeXB0b3JHQ00oQ0NPcGVyYXRp
b24gb3AsIENDQWxnb3JpdGhtIGFsZywgY29uc3Qgdm9pZCoga2V5LCBzaXplX3Qga2V5TGVuZ3Ro
LCBjb25zdCB2b2lkKiBpdiwgc2l6ZV90IGl2TGVuLCBjb25zdCB2b2lkKiBhRGF0YSwgc2l6ZV90
IGFEYXRhTGVuLCBjb25zdCB2b2lkKiBkYXRhSW4sIHNpemVfdCBkYXRhSW5MZW5ndGgsIHZvaWQq
IGRhdGFPdXQsIHZvaWQqIHRhZywgc2l6ZV90KiB0YWdMZW5ndGgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRobS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vQ3J5cHRvQWxnb3JpdGhtLmNwcAppbmRleCBmY2NhNjgzYzE1YjI5N2U3OTc4MmE4YmJj
ODAyM2I1MzY5ZDRhYzFmLi5lZmY1ZWM3OTI5MTUxMWUwOGQ3OWU3YjY2YTY5ZDgyNjUwN2JjY2U4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtLmNwcApAQCAtNjIsNiAr
NjIsMTEgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG06OmdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0Fs
Z29yaXRobVBhcmFtZXRlcnMmLCBib29sLCBDcnlwdG8KICAgICBleGNlcHRpb25DYWxsYmFjayhO
T1RfU1VQUE9SVEVEX0VSUik7CiB9CiAKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtOjpkZXJpdmVCaXRz
KHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiYmLCBSZWY8Q3J5cHRv
S2V5PiYmLCB1bnNpZ25lZCBsb25nLCBWZWN0b3JDYWxsYmFjayYmLCBFeGNlcHRpb25DYWxsYmFj
ayYmIGV4Y2VwdGlvbkNhbGxiYWNrLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgV29ya1F1ZXVl
JikKK3sKKyAgICBleGNlcHRpb25DYWxsYmFjayhOT1RfU1VQUE9SVEVEX0VSUik7Cit9CisKIHZv
aWQgQ3J5cHRvQWxnb3JpdGhtOjppbXBvcnRLZXkoU3VidGxlQ3J5cHRvOjpLZXlGb3JtYXQsIEtl
eURhdGEmJiwgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+
JiYsIGJvb2wsIENyeXB0b0tleVVzYWdlQml0bWFwLCBLZXlDYWxsYmFjayYmLCBFeGNlcHRpb25D
YWxsYmFjayYmIGV4Y2VwdGlvbkNhbGxiYWNrKQogewogICAgIGV4Y2VwdGlvbkNhbGxiYWNrKE5P
VF9TVVBQT1JURURfRVJSKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9Dcnlw
dG9BbGdvcml0aG0uaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0aG0uaApp
bmRleCBjMzBhZTMyNGQ5ZTcwZGZhOTlkZDc2MzU1MzAxNTU0OTJkNjI5ZTQ0Li42NDY3YmNhMDVm
YjE2ZThhYzhmMzE4NWJjYTk0NTc3MTRlOGUxNzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL0Ny
eXB0b0FsZ29yaXRobS5oCkBAIC03Miw2ICs3Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgdmVyaWZ5KFJlZjxDcnlwdG9LZXk+JiYsIFZlY3Rvcjx1aW50OF90PiYmIHNpZ25hdHVyZSwg
VmVjdG9yPHVpbnQ4X3Q+JiYsIEJvb2xDYWxsYmFjayYmLCBFeGNlcHRpb25DYWxsYmFjayYmLCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiwgV29ya1F1ZXVlJik7CiAgICAgdmlydHVhbCB2b2lkIGRp
Z2VzdChWZWN0b3I8dWludDhfdD4mJiwgVmVjdG9yQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ2FsbGJh
Y2smJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFdvcmtRdWV1ZSYpOwogICAgIHZpcnR1YWwg
dm9pZCBnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgYm9vbCBl
eHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2VCaXRtYXAsIEtleU9yS2V5UGFpckNhbGxiYWNrJiYs
IEV4Y2VwdGlvbkNhbGxiYWNrJiYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGVyaXZlQml0cyhzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1l
dGVycz4mJiwgUmVmPENyeXB0b0tleT4mJiwgdW5zaWduZWQgbG9uZyBsZW5ndGgsIFZlY3RvckNh
bGxiYWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBX
b3JrUXVldWUmKTsKICAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE2OTI2MgogICAgIHZpcnR1YWwgdm9pZCBpbXBvcnRLZXkoU3VidGxlQ3J5cHRv
OjpLZXlGb3JtYXQsIEtleURhdGEmJiwgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnM+JiYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlQml0bWFw
LCBLZXlDYWxsYmFjayYmLCBFeGNlcHRpb25DYWxsYmFjayYmKTsKICAgICB2aXJ0dWFsIHZvaWQg
ZXhwb3J0S2V5KFN1YnRsZUNyeXB0bzo6S2V5Rm9ybWF0LCBSZWY8Q3J5cHRvS2V5PiYmLCBLZXlE
YXRhQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ2FsbGJhY2smJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMuaAppbmRleCA2YWE2MzNiMjllZGQ4
OGJiOGNlYmI3OTYyMmE1YjAwNzQ4N2ZmMjg0Li4wMWFiOTY1MjFmNzcyMzc2M2RhZGZkYzIyMzYw
NGZjMWRjMDFiOTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzLmgKQEAgLTQxLDYgKzQxLDcgQEAgcHVibGljOgogICAgICAgICBBZXNH
Y21QYXJhbXMsCiAgICAgICAgIEFlc0tleUdlblBhcmFtcywKICAgICAgICAgRWNLZXlQYXJhbXMs
CisgICAgICAgIEVjZGhLZXlEZXJpdmVQYXJhbXMsCiAgICAgICAgIEhtYWNLZXlQYXJhbXMsCiAg
ICAgICAgIFJzYUhhc2hlZEtleUdlblBhcmFtcywKICAgICAgICAgUnNhSGFzaGVkSW1wb3J0UGFy
YW1zLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtRUNESC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1FQ0RILmNwcAppbmRleCBmZDZjMTA1YTZkYmRkZjBiZWRlMjYxMTBjYmI5YjUw
ZTNiZTVmMGJhLi45ZGU0MWI4MDMxNjg0NGViY2MzMTcyYTg5NmUwNDMzZmYxYzAxZWQyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1F
Q0RILmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1FQ0RILmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRP
KQogCiAjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtRWNLZXlQYXJhbXMuaCIKKyNpbmNsdWRlICJD
cnlwdG9BbGdvcml0aG1FY2RoS2V5RGVyaXZlUGFyYW1zLmgiCiAjaW5jbHVkZSAiQ3J5cHRvS2V5
RUMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAKQEAgLTY1LDYgKzY2LDU2IEBAIHZv
aWQgQ3J5cHRvQWxnb3JpdGhtRUNESDo6Z2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVycyYgcGFyYW1ldGVyCiAgICAgY2FsbGJhY2soV1RGTW92ZShwYWlyKSk7CiB9CiAK
K3ZvaWQgQ3J5cHRvQWxnb3JpdGhtRUNESDo6ZGVyaXZlQml0cyhzdGQ6OnVuaXF1ZV9wdHI8Q3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4mJiBwYXJhbWV0ZXJzLCBSZWY8Q3J5cHRvS2V5PiYmIGJh
c2VLZXksIHVuc2lnbmVkIGxvbmcgbGVuZ3RoLCBWZWN0b3JDYWxsYmFjayYmIGNhbGxiYWNrLCBF
eGNlcHRpb25DYWxsYmFjayYmIGV4Y2VwdGlvbkNhbGxiYWNrLCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0LCBXb3JrUXVldWUmIHdvcmtRdWV1ZSkKK3sKKyAgICAvLyBXZSBvbmx5IGFj
Y2VwdCBsZW5ndGggdGhhdCBpcyBhIG11bHRpcGxlIG9mIDguCisgICAgaWYgKGxlbmd0aCAlIDgp
IHsKKyAgICAgICAgZXhjZXB0aW9uQ2FsbGJhY2soT3BlcmF0aW9uRXJyb3IpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgQVNTRVJUKHBhcmFtZXRlcnMpOworICAgIGF1dG8mIGVjUGFy
YW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobUVjZGhLZXlEZXJpdmVQYXJhbXM+KCpw
YXJhbWV0ZXJzKTsKKworICAgIGlmIChiYXNlS2V5LT50eXBlKCkgIT0gQ3J5cHRvS2V5OjpUeXBl
OjpQcml2YXRlKSB7CisgICAgICAgIGV4Y2VwdGlvbkNhbGxiYWNrKElOVkFMSURfQUNDRVNTX0VS
Uik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgQVNTRVJUKGVjUGFyYW1ldGVycy5wdWJs
aWNLZXkpOworICAgIGlmIChlY1BhcmFtZXRlcnMucHVibGljS2V5LT50eXBlKCkgIT0gQ3J5cHRv
S2V5OjpUeXBlOjpQdWJsaWMpIHsKKyAgICAgICAgZXhjZXB0aW9uQ2FsbGJhY2soSU5WQUxJRF9B
Q0NFU1NfRVJSKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoYmFzZUtleS0+YWxn
b3JpdGhtSWRlbnRpZmllcigpICE9IGVjUGFyYW1ldGVycy5wdWJsaWNLZXktPmFsZ29yaXRobUlk
ZW50aWZpZXIoKSkgeworICAgICAgICBleGNlcHRpb25DYWxsYmFjayhJTlZBTElEX0FDQ0VTU19F
UlIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGF1dG8mIGVjQmFzZUtleSA9IGRvd25j
YXN0PENyeXB0b0tleUVDPihiYXNlS2V5LmdldCgpKTsKKyAgICBhdXRvJiBlY1B1YmxpY0tleSA9
IGRvd25jYXN0PENyeXB0b0tleUVDPigqKGVjUGFyYW1ldGVycy5wdWJsaWNLZXkuZ2V0KCkpKTsK
KyAgICBpZiAoZWNCYXNlS2V5Lm5hbWVkQ3VydmUoKSAhPSBlY1B1YmxpY0tleS5uYW1lZEN1cnZl
KCkpIHsKKyAgICAgICAgZXhjZXB0aW9uQ2FsbGJhY2soSU5WQUxJRF9BQ0NFU1NfRVJSKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gdW5pZmllZENhbGxiYWNrID0gW2NhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayksIGV4Y2VwdGlvbkNhbGxiYWNrID0gV1RGTW92ZShleGNl
cHRpb25DYWxsYmFjayldKHN0ZDo6b3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+PiYmIGRlcml2ZWRL
ZXksIHVuc2lnbmVkIGxvbmcgbGVuZ3RoKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFkZXJpdmVk
S2V5KSB7CisgICAgICAgICAgICBleGNlcHRpb25DYWxsYmFjayhPcGVyYXRpb25FcnJvcik7Cisg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFsZW5ndGgpIHsKKyAg
ICAgICAgICAgIGNhbGxiYWNrKFdURk1vdmUoKmRlcml2ZWRLZXkpKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAobGVuZ3RoIC8gOCA+ICgqZGVyaXZlZEtleSku
c2l6ZSgpKSB7CisgICAgICAgICAgICBleGNlcHRpb25DYWxsYmFjayhPcGVyYXRpb25FcnJvcik7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgKCpkZXJpdmVkS2V5KS5z
aHJpbmsobGVuZ3RoIC8gOCk7CisgICAgICAgIGNhbGxiYWNrKFdURk1vdmUoKmRlcml2ZWRLZXkp
KTsKKyAgICB9OworICAgIHBsYXRmb3JtRGVyaXZlQml0cyhXVEZNb3ZlKGJhc2VLZXkpLCBlY1Bh
cmFtZXRlcnMucHVibGljS2V5LnJlbGVhc2VOb25OdWxsKCksIGxlbmd0aCwgV1RGTW92ZSh1bmlm
aWVkQ2FsbGJhY2spLCBjb250ZXh0LCB3b3JrUXVldWUpOworfQorCiB2b2lkIENyeXB0b0FsZ29y
aXRobUVDREg6OmltcG9ydEtleShTdWJ0bGVDcnlwdG86OktleUZvcm1hdCBmb3JtYXQsIEtleURh
dGEmJiBkYXRhLCBjb25zdCBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVy
cz4mJiBwYXJhbWV0ZXJzLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCB1
c2FnZXMsIEtleUNhbGxiYWNrJiYgY2FsbGJhY2ssIEV4Y2VwdGlvbkNhbGxiYWNrJiYgZXhjZXB0
aW9uQ2FsbGJhY2spCiB7CiAgICAgQVNTRVJUKHBhcmFtZXRlcnMpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNESC5oIGIvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNESC5oCmluZGV4
IDUxYjQ2MmVjYmU5YTg0ZDZmOWUyYmRiOWUyNDQyNjk1ZmMzNjNkMjUuLmEzOTVhM2YxYTUxYTVj
MDZmMTgzMGY1NGJmODEwNTI2NmM2Yjc4ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDREguaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RILmgKQEAgLTQyLDggKzQyLDEy
IEBAIHByaXZhdGU6CiAgICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBpZGVudGlmaWVyKCkg
Y29uc3QgZmluYWw7CiAKICAgICB2b2lkIGdlbmVyYXRlS2V5KGNvbnN0IENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnMmLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCwgS2V5
T3JLZXlQYWlyQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ2FsbGJhY2smJiwgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYpIGZpbmFsOworICAgIHZvaWQgZGVyaXZlQml0cyhzdGQ6OnVuaXF1ZV9wdHI8Q3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4mJiwgUmVmPENyeXB0b0tleT4mJiwgdW5zaWduZWQgbG9u
ZyBsZW5ndGgsIFZlY3RvckNhbGxiYWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYsIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmLCBXb3JrUXVldWUmKSBmaW5hbDsKICAgICB2b2lkIGltcG9ydEtleShT
dWJ0bGVDcnlwdG86OktleUZvcm1hdCwgS2V5RGF0YSYmLCBjb25zdCBzdGQ6OnVuaXF1ZV9wdHI8
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4mJiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5
VXNhZ2VCaXRtYXAsIEtleUNhbGxiYWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYpIGZpbmFsOwog
ICAgIHZvaWQgZXhwb3J0S2V5KFN1YnRsZUNyeXB0bzo6S2V5Rm9ybWF0LCBSZWY8Q3J5cHRvS2V5
PiYmLCBLZXlEYXRhQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ2FsbGJhY2smJikgZmluYWw7CisKKyAg
ICB1c2luZyBDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoc3RkOjpvcHRpb25hbDxWZWN0b3I8dWlu
dDhfdD4+JiYsIHVuc2lnbmVkIGxvbmcpPjsKKyAgICB2b2lkIHBsYXRmb3JtRGVyaXZlQml0cyhS
ZWY8Q3J5cHRvS2V5PiYmIGJhc2VLZXksIFJlZjxDcnlwdG9LZXk+JiYgcHVibGljS2V5LCB1bnNp
Z25lZCBsb25nIGxlbmd0aCwgQ2FsbGJhY2smJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFdv
cmtRdWV1ZSYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2dudXRscy9DcnlwdG9BbGdvcml0aG1FQ0RIR251VExTLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9nbnV0bHMvQ3J5cHRvQWxnb3JpdGhtRUNESEdudVRMUy5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYTdjYzYwNDY2NDBiZTgxZmU4MjQyOTU5YTM4ZWQ1ODNiNTMwYWE3OAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9nbnV0bHMvQ3J5cHRvQWxn
b3JpdGhtRUNESEdudVRMUy5jcHAKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1FQ0RILmgiCisKKyNpZiBF
TkFCTEUoU1VCVExFX0NSWVBUTykKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBDcnlwdG9BbGdvcml0aG1FQ0RIOjpwbGF0Zm9ybURl
cml2ZUJpdHMoUmVmPENyeXB0b0tleT4mJiwgUmVmPENyeXB0b0tleT4mJiwgdW5zaWduZWQgbG9u
ZywgQ2FsbGJhY2smJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFdvcmtRdWV1ZSYpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8va2V5cy9DcnlwdG9LZXlFQy5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5
cHRvS2V5RUMuaAppbmRleCA1MDM5YjRlOTYzNDUyNDA2MTk1YzgzM2UxMTVlNTkyOWUyMzc2NjMw
Li45NGE2ZDk0ZjFkNzdiNDU3Y2U5YzYyYTY1MjcyMzA5YjdkNjQ2MTlkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUVDLmgKQEAgLTg0LDYgKzg0LDggQEAgcHVibGljOgog
ICAgIEpzb25XZWJLZXkgZXhwb3J0SndrKCkgY29uc3Q7CiAKICAgICBzaXplX3Qga2V5U2l6ZUlu
Qml0cygpIGNvbnN0OworICAgIE5hbWVkQ3VydmUgbmFtZWRDdXJ2ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fY3VydmU7IH0KKyAgICBQbGF0Zm9ybUVDS2V5IHBsYXRmb3JtS2V5KCkgeyByZXR1cm4gbV9w
bGF0Zm9ybUtleTsgfQogCiBwcml2YXRlOgogICAgIENyeXB0b0tleUVDKENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXIsIE5hbWVkQ3VydmUsIENyeXB0b0tleVR5cGUsIFBsYXRmb3JtRUNLZXksIGJv
b2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlQml0bWFwKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtRUNESE1hYy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUVDREhNYWMuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmIzOGM1MGU4MmNjYjllMTI0MjgzODUyNzkzMWY1YjRkMTdmZDVmZDUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUVDREhNYWMuY3Bw
CkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiQ3J5cHRvQWxnb3JpdGhtRUNESC5oIgorCisjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8p
CisKKyNpbmNsdWRlICJDb21tb25DcnlwdG9VdGlsaXRpZXMuaCIKKyNpbmNsdWRlICJDcnlwdG9L
ZXlFQy5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCit2b2lkIENyeXB0b0FsZ29yaXRobUVDREg6OnBsYXRmb3JtRGVyaXZlQml0
cyhSZWY8Q3J5cHRvS2V5PiYmIGJhc2VLZXksIFJlZjxDcnlwdG9LZXk+JiYgcHVibGljS2V5LCB1
bnNpZ25lZCBsb25nIGxlbmd0aCwgQ2FsbGJhY2smJiBjYWxsYmFjaywgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwgV29ya1F1ZXVlJiB3b3JrUXVldWUpCit7CisgICAgY29udGV4dC5y
ZWYoKTsKKyAgICB3b3JrUXVldWUuZGlzcGF0Y2goW2Jhc2VLZXkgPSBXVEZNb3ZlKGJhc2VLZXkp
LCBwdWJsaWNLZXkgPSBXVEZNb3ZlKHB1YmxpY0tleSksIGxlbmd0aCwgY2FsbGJhY2sgPSBXVEZN
b3ZlKGNhbGxiYWNrKSwgJmNvbnRleHRdKCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8mIGVjQmFz
ZUtleSA9IGRvd25jYXN0PENyeXB0b0tleUVDPihiYXNlS2V5LmdldCgpKTsKKyAgICAgICAgYXV0
byYgZWNQdWJsaWNLZXkgPSBkb3duY2FzdDxDcnlwdG9LZXlFQz4ocHVibGljS2V5LmdldCgpKTsK
KworICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4gcmVzdWx0ID0gc3RkOjpu
dWxsb3B0OworICAgICAgICBWZWN0b3I8dWludDhfdD4gZGVyaXZlZEtleShlY0Jhc2VLZXkua2V5
U2l6ZUluQml0cygpIC8gOCk7IC8vIFBlciBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZj
NjA5MCNzZWN0aW9uLTQuCisgICAgICAgIHNpemVfdCBzaXplID0gZGVyaXZlZEtleS5zaXplKCk7
CisgICAgICAgIGlmICghQ0NFQ0NyeXB0b3JDb21wdXRlU2hhcmVkU2VjcmV0KGVjQmFzZUtleS5w
bGF0Zm9ybUtleSgpLCBlY1B1YmxpY0tleS5wbGF0Zm9ybUtleSgpLCBkZXJpdmVkS2V5LmRhdGEo
KSwgJnNpemUpKQorICAgICAgICAgICAgcmVzdWx0ID0gV1RGTW92ZShkZXJpdmVkS2V5KTsKKwor
ICAgICAgICBjb250ZXh0LnBvc3RUYXNrKFtyZXN1bHQgPSBXVEZNb3ZlKHJlc3VsdCksIGxlbmd0
aCwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCkgbXV0YWJsZSB7CisgICAgICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdCks
IGxlbmd0aCk7CisgICAgICAgICAgICBjb250ZXh0LmRlcmVmKCk7CisgICAgICAgIH0pOworICAg
IH0pOworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUVjZGhL
ZXlEZXJpdmVQYXJhbXMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0
b0FsZ29yaXRobUVjZGhLZXlEZXJpdmVQYXJhbXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzAwOTQ3ZGEyY2Mz
M2RkYTY5OGY0OGM0MDEyZmRjMTgxZGE2YmYyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtRWNkaEtleURlcml2ZVBhcmFt
cy5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgIkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgorCisjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgQ3J5cHRvS2V5OworCitjbGFzcyBDcnlwdG9BbGdvcml0aG1FY2RoS2V5RGVyaXZl
UGFyYW1zIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMgeworcHVibGlj
OgorICAgIFJlZlB0cjxDcnlwdG9LZXk+IHB1YmxpY0tleTsKKworICAgIENsYXNzIHBhcmFtZXRl
cnNDbGFzcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIENsYXNzOjpFY2RoS2V5RGVyaXZlUGFyYW1z
OyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJ
VFNfQ1JZUFRPX0FMR09SSVRITV9QQVJBTUVURVJTKEVjZGhLZXlEZXJpdmVQYXJhbXMpCisKKyNl
bmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9wYXJhbWV0ZXJzL0VjZGhLZXlEZXJpdmVQYXJhbXMuaWRsIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL3BhcmFtZXRlcnMvRWNkaEtleURlcml2ZVBhcmFtcy5pZGwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YjllZGI3MjNmM2I3M2NkMjQ5MTIwZjhlM2RiNGUyOTY3MjE5YzVlZQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0VjZGhLZXlEZXJpdmVQYXJhbXMu
aWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9U1VC
VExFX0NSWVBUTywKKyAgICBJbXBsZW1lbnRlZEFzPUNyeXB0b0FsZ29yaXRobUVjZGhLZXlEZXJp
dmVQYXJhbXMsCitdIGRpY3Rpb25hcnkgRWNkaEtleURlcml2ZVBhcmFtcyA6IENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnMgeworICAgIC8vIFdlIHNob3VsZCByZW5hbWUgdGhpcyB0byBwdWJsaWMg
b25jZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY5MzMzIGlzIGZp
eGVkLgorICAgIC8vIFRoZSBwZWVyJ3MgRUMgcHVibGljIGtleS4KKyAgICByZXF1aXJlZCBDcnlw
dG9LZXkgcHVibGljS2V5OworfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmZDkwZjcwODEyMjBiYWZhZjMxMjlmOTBlOGEz
Y2Q1MGRjNGI2MDk3Li5hMmYyOTViNTQ0MDFiYTA0YThkZTc0NzQ0MDY4MWU0ZDFlMzA1M2M4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTctMDMtMDggIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFu
QGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQ3J5cHRvXSBJbXBsZW1lbnQgRUNESCBEZXJpdmVC
aXRzIG9wZXJhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTY5MzE5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMzc4OTU4NT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlv
bnM6CisgICAgICAgIFJlZmluZSBzb21lIGNvbW1lbnRzLgorICAgICAgICAqIGNyeXB0by9zdWJ0
bGUvZGVyaXZlLWJpdHMtbWFsZm9ybWVkLXBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0OiBSZW5hbWVk
IGZyb20gTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9kZXJpdmVCaXRzLW1hbGZvcm1lZC1wYXJh
bWV0ZXJzLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBjcnlwdG8vc3VidGxlL2Rlcml2ZS1iaXRz
LW1hbGZvcm1lZC1wYXJhbWV0ZXJzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNyeXB0by9zdWJ0
bGUvZGVyaXZlQml0cy1tYWxmb3JtZWQtcGFyYW1ldGVycy5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIGNyeXB0by9zdWJ0bGUvZGVyaXZlS2V5LW1hbGZvcm1lZC1wYXJhbWV0ZXJzLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBjcnlwdG8vc3VidGxlL2VjZGgtZGVyaXZlLWJpdHMtbWFsZm9ybWVk
LXBhcmFtZXRycy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNyeXB0by9zdWJ0bGUv
ZWNkaC1kZXJpdmUtYml0cy1tYWxmb3JtZWQtcGFyYW1ldHJzLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGNyeXB0by9zdWJ0bGUvZWNkaC1nZW5lcmF0ZS1rZXktZGVyaXZlLWJpdHMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBjcnlwdG8vc3VidGxlL2VjZGgtZ2VuZXJhdGUta2V5LWRl
cml2ZS1iaXRzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNyeXB0by9zdWJ0bGUvZWNkaC1pbXBv
cnQta2V5LWRlcml2ZS1iaXRzLWN1c3RvbS1sZW5ndGgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBjcnlwdG8vc3VidGxlL2VjZGgtaW1wb3J0LWtleS1kZXJpdmUtYml0cy1jdXN0b20t
bGVuZ3RoLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQt
a2V5LWRlcml2ZS1iaXRzLW51bGwtbGVuZ3RoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1rZXktZGVyaXZlLWJpdHMtbnVsbC1sZW5ndGgu
aHRtbDogQWRkZWQuCisgICAgICAgICogY3J5cHRvL3dvcmtlcnMvc3VidGxlL2VjZGgtaW1wb3J0
LWtleS1kZXJpdmUtYml0cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNyeXB0by93
b3JrZXJzL3N1YnRsZS9lY2RoLWltcG9ydC1rZXktZGVyaXZlLWJpdHMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogY3J5cHRvL3dvcmtlcnMvc3VidGxlL3Jlc291cmNlcy9lY2RoLWltcG9ydC1rZXkt
ZGVyaXZlLWJpdHMuanM6IEFkZGVkLgorCiAyMDE3LTAzLTA3ICBKaWV3ZW4gVGFuICA8amlld2Vu
X3RhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkNyeXB0b10gSW1wbGVtZW50IEVDREggSW1w
b3J0S2V5L0V4cG9ydEtleSBvcGVyYXRpb25zCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0
RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA2OGJmMTM2
ZmEzNDljNjk2MWIxYWFmMTJmYzQyOGU1MDMxNDdkYzYwLi5iODRiMzUxMjZhN2NiY2MxZTY1MmE5
MzA3NzFiYmIyNjdmOTFhNjNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTk1OCw3ICs5NTgsNyBA
QCB3ZWJraXQub3JnL2IvMTU5MzcwIFsgRGVidWcgXSBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1k
ZXN0cm95LWRvY3VtZW50Lmh0bWwgWyBTawogIyBUaGlzIHRlc3QgaXMganVzdCB3YXkgdG9vIHNs
b3cuCiB3b3JrZXJzL2JvbWItd2l0aC12OC5odG1sIFsgU2tpcCBdCiAKLSMgV2ViQ3J5cHRvQVBJ
IHRlc3RzIHRoYXQgdGFrZSB0b28gbG9uZyB0byBjb21wbGV0ZSwgbmVlZCB0byBzY2FsZSBkb3du
LiB3ZWJraXQub3JnL2IvMTU5NjM4CisjIFdlYkNyeXB0b0FQSSB0ZXN0cyB0aGF0IHRha2UgdG9v
IGxvbmcgdG8gY29tcGxldGUKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5
cHRvQVBJL2Rlcml2ZV9iaXRzX2tleXMvaGtkZi53b3JrZXIuaHRtbCBbIFNraXAgXQogaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZGVyaXZlX2JpdHNfa2V5cy9w
YmtkZjIud29ya2VyLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L3N1Y2Nlc3Nlc19SU0EtT0FFUC53b3JrZXIuaHRt
bCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9kZXJpdmUt
Yml0cy1tYWxmb3JtZWQtcGFyYW1ldGVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlw
dG8vc3VidGxlL2Rlcml2ZS1iaXRzLW1hbGZvcm1lZC1wYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zZDIyY2ZmNDcxMjE1ZTI0NjBlNTczZWRmOTM2NGNkODM2ODE0MGIzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9kZXJpdmUtYml0cy1tYWxm
b3JtZWQtcGFyYW1ldGVycy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorVGVzdCBkZXJp
dmVCaXRzIG9wZXJhdGlvbiB3aXRoIG1hbGZvcm1lZCBwYXJhbWV0ZXJzCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitQQVNTIGNyeXB0by5zdWJ0bGUuZGVyaXZlQml0cygpIHJlamVj
dGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mg
Y3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKDEpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVy
cm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRz
KDEsIDIpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3Vt
ZW50cy4KK1BBU1MgY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKHsgbmFtZToiRUNESCIsIHB1Ymxp
Yzp3cm9uZ0tleSB9LCB3cm9uZ0tleSwgMTI4KSByZWplY3RlZCBwcm9taXNlICB3aXRoIEludmFs
aWRBY2Nlc3NFcnJvciAoRE9NIEV4Y2VwdGlvbiAxNSk6IENyeXB0b0tleSBkb2Vzbid0IG1hdGNo
IEFsZ29yaXRobUlkZW50aWZpZXIuCitQQVNTIGNyeXB0by5zdWJ0bGUuZGVyaXZlQml0cyh7IG5h
bWU6IkVDREgiLCBwdWJsaWM6d3JvbmdLZXkgfSwgd3JvbmdLZXksIDEyOCkgcmVqZWN0ZWQgcHJv
bWlzZSAgd2l0aCBJbnZhbGlkQWNjZXNzRXJyb3IgKERPTSBFeGNlcHRpb24gMTUpOiBDcnlwdG9L
ZXkgZG9lc24ndCBzdXBwb3J0IGJpdHMgZGVyaXZhdGlvbi4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9j
cnlwdG8vc3VidGxlL2Rlcml2ZS1iaXRzLW1hbGZvcm1lZC1wYXJhbWV0ZXJzLmh0bWwgYi9MYXlv
dXRUZXN0cy9jcnlwdG8vc3VidGxlL2Rlcml2ZS1iaXRzLW1hbGZvcm1lZC1wYXJhbWV0ZXJzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNTRlNDFlNzFlNWFiMTg2NDRjYTc4MTBmNGZlNGIzMmY1MWRjODZmYwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZGVyaXZlLWJpdHMt
bWFsZm9ybWVkLXBhcmFtZXRlcnMuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvY29tbW9uLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IGRlcml2
ZUJpdHMgb3BlcmF0aW9uIHdpdGggbWFsZm9ybWVkIHBhcmFtZXRlcnMiKTsKKworCitqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKwordmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKK3ZhciBobWFjSW1wb3J0
UGFyYW1zID0geworICAgIG5hbWU6ICJobWFjIiwKKyAgICBoYXNoOiAic2hhLTEiLAorfQordmFy
IHJhd0tleSA9IGFzY2lpVG9VaW50OEFycmF5KCJqbk93OTlvT1pGTElFUE1yIik7Cit2YXIgandr
S2V5ID0geworICAgIGt0eTogIkVDIiwKKyAgICBjcnY6ICJQLTI1NiIsCisgICAgeDogIjFGU1ZX
aWVUdmlrRmtHMU5PeWhrVUNhTWJkUWh4d0g2YUN1NEV6LXNSdEEiLAorICAgIHk6ICI5am1OVExx
TTRjakJoZEFuSGNOSTlZUVYzTzhMRm1vLUVkWldrOG50QWFJIiwKKyAgICBkOiAicHB4QlNvdjNO
OF9BVWNpc0F1dm1MVjR5RThlX0xfQkxFOGJaYjlaMVhqZyIsCit9OworCisKKy8vIE5vdCBlbm91
Z2ggYXJndW1lbnRzLgorc2hvdWxkUmVqZWN0KCdjcnlwdG8uc3VidGxlLmRlcml2ZUJpdHMoKScp
Oworc2hvdWxkUmVqZWN0KCdjcnlwdG8uc3VidGxlLmRlcml2ZUJpdHMoMSknKTsKK3Nob3VsZFJl
amVjdCgnY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKDEsIDIpJyk7CisKK2NyeXB0by5zdWJ0bGUu
aW1wb3J0S2V5KCJyYXciLCByYXdLZXksIGhtYWNJbXBvcnRQYXJhbXMsIGV4dHJhY3RhYmxlLCBb
InNpZ24iLCAidmVyaWZ5Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgd3JvbmdLZXkg
PSByZXN1bHQ7CisgICAgLy8gV3JvbmcgYWxnb3JpdGhtIGlkZW50aWZpZXIuCisgICAgc2hvdWxk
UmVqZWN0KCdjcnlwdG8uc3VidGxlLmRlcml2ZUJpdHMoeyBuYW1lOiJFQ0RIIiwgcHVibGljOndy
b25nS2V5IH0sIHdyb25nS2V5LCAxMjgpJyk7CisKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5p
bXBvcnRLZXkoImp3ayIsIGp3a0tleSwgeyBuYW1lOiAiRUNESCIsIG5hbWVkQ3VydmU6ICJQLTI1
NiIgfSwgZXh0cmFjdGFibGUsIFsiZGVyaXZlS2V5Il0pOworfSkudGhlbihmdW5jdGlvbihyZXN1
bHQpIHsKKyAgICB3cm9uZ0tleSA9IHJlc3VsdDsKKyAgICAvLyBXcm9uZyB1c2FnZS4KKyAgICBz
aG91bGRSZWplY3QoJ2NyeXB0by5zdWJ0bGUuZGVyaXZlQml0cyh7IG5hbWU6IkVDREgiLCBwdWJs
aWM6d3JvbmdLZXkgfSwgd3JvbmdLZXksIDEyOCknKTsKKworICAgIGZpbmlzaEpTVGVzdCgpOwor
fSk7CisKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL2Rlcml2ZUJpdHMtbWFsZm9ybWVkLXBhcmFtZXRlcnMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9kZXJpdmVCaXRzLW1hbGZvcm1lZC1w
YXJhbWV0ZXJzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNmYx
Mzc4NGM0NThhZjk1YTU2ZGNjOGE1NjE4ZTMwYTQ5NWFmYzJmNy4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Rl
cml2ZUJpdHMtbWFsZm9ybWVkLXBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMTMgKzAsMCBAQAotVGVzdCBkZXJpdmVCaXRzIG9wZXJhdGlvbiB3aXRoIG1hbGZvcm1l
ZCBwYXJhbWV0ZXJzCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIGNyeXB0
by5zdWJ0bGUuZGVyaXZlQml0cygpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBO
b3QgZW5vdWdoIGFyZ3VtZW50cy4KLVBBU1MgY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKDEpIHJl
amVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KLVBB
U1MgY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKDEsIDIpIHJlamVjdGVkIHByb21pc2UgIHdpdGgg
VHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KLVBBU1MgY3J5cHRvLnN1YnRsZS5kZXJp
dmVCaXRzKCJFQ0RIIiwgMiwgMykgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBOb3RTdXBwb3J0ZWRF
cnJvciAoRE9NIEV4Y2VwdGlvbiA5KTogVGhlIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkLi4K
LVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Rlcml2ZUJpdHMtbWFsZm9ybWVkLXBh
cmFtZXRlcnMuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZGVyaXZlQml0cy1tYWxm
b3JtZWQtcGFyYW1ldGVycy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMDE1
MGQ5ZDRlOTlhYTBmZDcyMWFjNGExZTBmODBlZTY2NWI4MTM4Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZGVy
aXZlQml0cy1tYWxmb3JtZWQtcGFyYW1ldGVycy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjQg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJk
ZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci1k
ZXNjcmlwdGlvbigiVGVzdCBkZXJpdmVCaXRzIG9wZXJhdGlvbiB3aXRoIG1hbGZvcm1lZCBwYXJh
bWV0ZXJzIik7Ci0KLS8vIE5vdCBlbm91Z2ggYXJndW1lbnRzLgotc2hvdWxkUmVqZWN0KCdjcnlw
dG8uc3VidGxlLmRlcml2ZUJpdHMoKScpOwotc2hvdWxkUmVqZWN0KCdjcnlwdG8uc3VidGxlLmRl
cml2ZUJpdHMoMSknKTsKLXNob3VsZFJlamVjdCgnY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKDEs
IDIpJyk7Ci0vLyBOb3Qgc3VwcG9ydC4KLXNob3VsZFJlamVjdCgnY3J5cHRvLnN1YnRsZS5kZXJp
dmVCaXRzKCJFQ0RIIiwgMiwgMyknKTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Rlcml2ZUtleS1tYWxmb3JtZWQt
cGFyYW1ldGVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Rlcml2
ZUtleS1tYWxmb3JtZWQtcGFyYW1ldGVycy1leHBlY3RlZC50eHQKaW5kZXggNThhYThmYTBiOTRi
MWU1MmU5M2E4MTdhYjc0OTYzMDY3ZWQ2ZmFmZi4uZWFhN2JhZTllYzM3ZjgyYzcyZjY3NjI5ZDVl
YTUwYzE4YzUzYjMxZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9kZXJp
dmVLZXktbWFsZm9ybWVkLXBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2NyeXB0by9zdWJ0bGUvZGVyaXZlS2V5LW1hbGZvcm1lZC1wYXJhbWV0ZXJzLWV4cGVjdGVkLnR4
dApAQCAtOCw3ICs4LDcgQEAgUEFTUyBjcnlwdG8uc3VidGxlLmRlcml2ZUtleSgxKSByZWplY3Rl
ZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmcKIFBBU1MgY3J5cHRvLnN1
YnRsZS5kZXJpdmVLZXkoMSwgMikgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IE5v
dCBlbm91Z2ggYXJndW1lbnRzLgogUEFTUyBjcnlwdG8uc3VidGxlLmRlcml2ZUtleSgxLCAyLCAz
KSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMu
CiBQQVNTIGNyeXB0by5zdWJ0bGUuZGVyaXZlS2V5KDEsIDIsIDMsIDQpIHJlamVjdGVkIHByb21p
c2UgIHdpdGggVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KLVBBU1MgY3J5cHRvLnN1
YnRsZS5kZXJpdmVLZXkoIkVDREgiLCAyLCAzLCA0LCA1KSByZWplY3RlZCBwcm9taXNlICB3aXRo
IE5vdFN1cHBvcnRlZEVycm9yIChET00gRXhjZXB0aW9uIDkpOiBUaGUgb3BlcmF0aW9uIGlzIG5v
dCBzdXBwb3J0ZWQuLgorUEFTUyBjcnlwdG8uc3VidGxlLmRlcml2ZUtleSgiRUNESCIsIDIsIDMs
IDQsIDUpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBNZW1iZXIgRWNkaEtleURl
cml2ZVBhcmFtcy5wdWJsaWNLZXkgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgYW4gaW5zdGFuY2Ug
b2YgQ3J5cHRvS2V5LgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENP
TVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2VjZGgtZGVyaXZl
LWJpdHMtbWFsZm9ybWVkLXBhcmFtZXRycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlw
dG8vc3VidGxlL2VjZGgtZGVyaXZlLWJpdHMtbWFsZm9ybWVkLXBhcmFtZXRycy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOWUxMDc5NjAxMDIyMTQxMzI1ZWI5MDlhZmUyNDkyNjliMWM0ZGU5Ygot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZWNkaC1kZXJpdmUt
Yml0cy1tYWxmb3JtZWQtcGFyYW1ldHJzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIzIEBACitU
ZXN0IEVDREggZGVyaXZlQml0cyBvcGVyYXRpb24gd2l0aCBtYWxmb3JtZWQgcGFyYW1ldGVycwor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBjcnlwdG8uc3VidGxlLmRlcml2
ZUJpdHMoImVjZGgiLCBwcml2YXRlS2V5LCBudWxsKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5
cGVFcnJvcjogTWVtYmVyIEVjZGhLZXlEZXJpdmVQYXJhbXMucHVibGljS2V5IGlzIHJlcXVpcmVk
IGFuZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIENyeXB0b0tleS4KK1BBU1MgY3J5cHRvLnN1YnRs
ZS5kZXJpdmVCaXRzKHtuYW1lOiAiZWNkaCJ9LCBwcml2YXRlS2V5LCBudWxsKSByZWplY3RlZCBw
cm9taXNlICB3aXRoIFR5cGVFcnJvcjogTWVtYmVyIEVjZGhLZXlEZXJpdmVQYXJhbXMucHVibGlj
S2V5IGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIENyeXB0b0tleS4KK1BB
U1MgY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKHtuYW1lOiAiZWNkaCIsIHB1YmxpYzogdHJ1ZX0s
IHByaXZhdGVLZXksIG51bGwpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBUeXBl
IGVycm9yLgorUEFTUyBjcnlwdG8uc3VidGxlLmRlcml2ZUJpdHMoe25hbWU6ICJlY2RoIiwgcHVi
bGljOiBudWxsfSwgcHJpdmF0ZUtleSwgbnVsbCkgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBl
RXJyb3I6IFR5cGUgZXJyb3IuCitQQVNTIGNyeXB0by5zdWJ0bGUuZGVyaXZlQml0cyh7bmFtZTog
ImVjZGgiLCBwdWJsaWM6IHVuZGVmaW5lZH0sIHByaXZhdGVLZXksIG51bGwpIHJlamVjdGVkIHBy
b21pc2UgIHdpdGggVHlwZUVycm9yOiBNZW1iZXIgRWNkaEtleURlcml2ZVBhcmFtcy5wdWJsaWNL
ZXkgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgQ3J5cHRvS2V5LgorUEFT
UyBjcnlwdG8uc3VidGxlLmRlcml2ZUJpdHMoe25hbWU6ICJlY2RoIiwgcHVibGljOiBTeW1ib2wo
KX0sIHByaXZhdGVLZXksIG51bGwpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBU
eXBlIGVycm9yLgorUEFTUyBjcnlwdG8uc3VidGxlLmRlcml2ZUJpdHMoe25hbWU6ICJlY2RoIiwg
cHVibGljOiB7IH19LCBwcml2YXRlS2V5LCBudWxsKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5
cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1MgY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKHtuYW1l
OiAiZWNkaCIsIHB1YmxpYzogMX0sIHByaXZhdGVLZXksIG51bGwpIHJlamVjdGVkIHByb21pc2Ug
IHdpdGggVHlwZUVycm9yOiBUeXBlIGVycm9yLgorUEFTUyBjcnlwdG8uc3VidGxlLmRlcml2ZUJp
dHMoeyBuYW1lOiJFQ0RIIiwgcHVibGljOnB1YmxpY0tleSB9LCBwcml2YXRlS2V5LCAxKSByZWpl
Y3RlZCBwcm9taXNlICB3aXRoIE9wZXJhdGlvbkVycm9yIChET00gRXhjZXB0aW9uIDM0KTogVGhl
IG9wZXJhdGlvbiBmYWlsZWQgZm9yIGFuIG9wZXJhdGlvbi1zcGVjaWZpYyByZWFzb24uCitQQVNT
IGNyeXB0by5zdWJ0bGUuZGVyaXZlQml0cyh7IG5hbWU6IkVDREgiLCBwdWJsaWM6cHVibGljS2V5
IH0sIHB1YmxpY0tleSwgbnVsbCkgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBJbnZhbGlkQWNjZXNz
RXJyb3IgKERPTSBFeGNlcHRpb24gMTUpOiBDcnlwdG9LZXkgZG9lc24ndCBzdXBwb3J0IGJpdHMg
ZGVyaXZhdGlvbi4KK1BBU1MgY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKHsgbmFtZToiRUNESCIs
IHB1YmxpYzpwcml2YXRlS2V5IH0sIHByaXZhdGVLZXksIG51bGwpIHJlamVjdGVkIHByb21pc2Ug
IHdpdGggSW52YWxpZEFjY2Vzc0Vycm9yIChET00gRXhjZXB0aW9uIDE1KTogVGhlIHJlcXVlc3Rl
ZCBvcGVyYXRpb24gaXMgbm90IHZhbGlkIGZvciB0aGUgcHJvdmlkZWQga2V5LgorUEFTUyBjcnlw
dG8uc3VidGxlLmRlcml2ZUJpdHMoeyBuYW1lOiJFQ0RIIiwgcHVibGljOmZha2VLZXkgfSwgcHJp
dmF0ZUtleSwgbnVsbCkgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBJbnZhbGlkQWNjZXNzRXJyb3Ig
KERPTSBFeGNlcHRpb24gMTUpOiBUaGUgcmVxdWVzdGVkIG9wZXJhdGlvbiBpcyBub3QgdmFsaWQg
Zm9yIHRoZSBwcm92aWRlZCBrZXkuCitQQVNTIGNyeXB0by5zdWJ0bGUuZGVyaXZlQml0cyh7IG5h
bWU6IkVDREgiLCBwdWJsaWM6cHVibGljS2V5UDM4NCB9LCBwcml2YXRlS2V5LCBudWxsKSByZWpl
Y3RlZCBwcm9taXNlICB3aXRoIEludmFsaWRBY2Nlc3NFcnJvciAoRE9NIEV4Y2VwdGlvbiAxNSk6
IFRoZSByZXF1ZXN0ZWQgb3BlcmF0aW9uIGlzIG5vdCB2YWxpZCBmb3IgdGhlIHByb3ZpZGVkIGtl
eS4KK1BBU1MgY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKHsgbmFtZToiRUNESCIsIHB1YmxpYzpw
dWJsaWNLZXkgfSwgcHJpdmF0ZUtleSwgMzg0KSByZWplY3RlZCBwcm9taXNlICB3aXRoIE9wZXJh
dGlvbkVycm9yIChET00gRXhjZXB0aW9uIDM0KTogVGhlIG9wZXJhdGlvbiBmYWlsZWQgZm9yIGFu
IG9wZXJhdGlvbi1zcGVjaWZpYyByZWFzb24uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1
YnRsZS9lY2RoLWRlcml2ZS1iaXRzLW1hbGZvcm1lZC1wYXJhbWV0cnMuaHRtbCBiL0xheW91dFRl
c3RzL2NyeXB0by9zdWJ0bGUvZWNkaC1kZXJpdmUtYml0cy1tYWxmb3JtZWQtcGFyYW1ldHJzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYTJmZDY2YTZmNzdjMjdlZDc5ZTgyYTQ5MGRhZWNjMDIwZTc2ODgxOAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZWNkaC1kZXJpdmUt
Yml0cy1tYWxmb3JtZWQtcGFyYW1ldHJzLmh0bWwKQEAgLTAsMCArMSw3NiBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgor
PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdCBF
Q0RIIGRlcml2ZUJpdHMgb3BlcmF0aW9uIHdpdGggbWFsZm9ybWVkIHBhcmFtZXRlcnMiKTsKKwor
anNUZXN0SXNBc3luYyA9IHRydWU7CisKK3ZhciBleHRyYWN0YWJsZSA9IHRydWU7Cit2YXIgandr
UHJpdmF0ZUtleSA9IHsKKyAgICBrdHk6ICJFQyIsCisgICAgY3J2OiAiUC0yNTYiLAorICAgIHg6
ICIxRlNWV2llVHZpa0ZrRzFOT3loa1VDYU1iZFFoeHdINmFDdTRFei1zUnRBIiwKKyAgICB5OiAi
OWptTlRMcU00Y2pCaGRBbkhjTkk5WVFWM084TEZtby1FZFpXazhudEFhSSIsCisgICAgZDogInBw
eEJTb3YzTjhfQVVjaXNBdXZtTFY0eUU4ZV9MX0JMRThiWmI5WjFYamciLAorfTsKK3ZhciBqd2tQ
dWJsaWNLZXkgPSB7CisgICAga3R5OiAiRUMiLAorICAgIGNydjogIlAtMjU2IiwKKyAgICB4OiAi
MUZTVldpZVR2aWtGa0cxTk95aGtVQ2FNYmRRaHh3SDZhQ3U0RXotc1J0QSIsCisgICAgeTogIjlq
bU5UTHFNNGNqQmhkQW5IY05JOVlRVjNPOExGbW8tRWRaV2s4bnRBYUkiLAorfTsKK3ZhciBqd2tQ
dWJsaWNLZXlQMzg0ID0geworICAgIGt0eTogIkVDIiwKKyAgICBjcnY6ICJQLTM4NCIsCisgICAg
eDogIlRFc1FSQUwtbmF1NEs3NVhOeW51UjZmZG9UR0dtNVgxWGdPclI1aVN6aUJWcWhSWU9BdGV1
RjgtVTB3eE44OXMiLAorICAgIHk6ICJyLVduOVlJWEpfcjd1Tk41czllVmVYRWxtNlpjVEd2WUtn
Nkd0S0pYVVh1SlVaUk1GN0VJQl9INnhwT210aFY2IiwKK307Cit2YXIgcnNhU3BraUtleSA9IEJh
c2U2NFVSTC5wYXJzZSgiTUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FR
RUF3Q2pSQ3RGd3ZTTllNWjA3dTVTeEFSeGdsSmw3NVQ3YlVaWEZzRFZ4SGtNaHBOQzJSYU40aldF
NWJ3WVVETWVEMmZWbXhocGFVUW4vNkFiRkxoNmdIeHR3ckNmYzdySW8vU2ZEZEdkM0drUmxYSzV4
WHdHdU02TXZQOW51WkhhYXJJeUFyUkZoMlUyVVp4RmxWc0tJMHBTSG82bjU4VzFmUFoxc3lPb1ZF
Wi9XWUU2Z0xoTU13ZnBlQW05N21ybzdtZWtSZE1VTE9WL21SNVVsM0NIbTladDkzRGM4R3BuUEE4
YmhMaUIwVk55R1RFTWEwNm5KdWw0Z2oxc2p4TERvVXZaWTJFV3E3b1VVbmZMQlVZTWZpcUswa1Fj
Vzk0d3ZCcklxMkRRVUFwTHlUVGJhQU9ZNDZUTHdYNmM4THR1YkpyaVlLVEM1YTlCYjAvN292VFdC
MHdJREFRQUIiKTsKKworY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGp3a1ByaXZhdGVL
ZXksIHsgbmFtZTogIkVDREgiLCBuYW1lZEN1cnZlOiAiUC0yNTYiIH0sIGV4dHJhY3RhYmxlLCBb
ImRlcml2ZUJpdHMiXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBwcml2YXRlS2V5ID0g
cmVzdWx0OworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgandrUHVi
bGljS2V5LCB7IG5hbWU6ICJFQ0RIIiwgbmFtZWRDdXJ2ZTogIlAtMjU2IiB9LCBleHRyYWN0YWJs
ZSwgWyBdKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgcHVibGljS2V5ID0gcmVz
dWx0OworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgic3BraSIsIHJzYVNwa2lL
ZXksIHtuYW1lOiAiUlNBLU9BRVAiLCBoYXNoOiAic2hhLTEifSwgZXh0cmFjdGFibGUsIFsiZW5j
cnlwdCIsICJ3cmFwS2V5Il0pOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBmYWtl
S2V5ID0gcmVzdWx0OworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwg
andrUHVibGljS2V5UDM4NCwgeyBuYW1lOiAiRUNESCIsIG5hbWVkQ3VydmU6ICJQLTM4NCIgfSwg
ZXh0cmFjdGFibGUsIFsgXSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHB1Ymxp
Y0tleVAzODQgPSByZXN1bHQ7CisgICAgLy8gTWFsZm9ybWVkIEFsZ29yaXRobUlkZW50aWZpZXJz
CisgICAgc2hvdWxkUmVqZWN0KCdjcnlwdG8uc3VidGxlLmRlcml2ZUJpdHMoImVjZGgiLCBwcml2
YXRlS2V5LCBudWxsKScpOworICAgIHNob3VsZFJlamVjdCgnY3J5cHRvLnN1YnRsZS5kZXJpdmVC
aXRzKHtuYW1lOiAiZWNkaCJ9LCBwcml2YXRlS2V5LCBudWxsKScpOworICAgIHNob3VsZFJlamVj
dCgnY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKHtuYW1lOiAiZWNkaCIsIHB1YmxpYzogdHJ1ZX0s
IHByaXZhdGVLZXksIG51bGwpJyk7CisgICAgc2hvdWxkUmVqZWN0KCdjcnlwdG8uc3VidGxlLmRl
cml2ZUJpdHMoe25hbWU6ICJlY2RoIiwgcHVibGljOiBudWxsfSwgcHJpdmF0ZUtleSwgbnVsbCkn
KTsKKyAgICBzaG91bGRSZWplY3QoJ2NyeXB0by5zdWJ0bGUuZGVyaXZlQml0cyh7bmFtZTogImVj
ZGgiLCBwdWJsaWM6IHVuZGVmaW5lZH0sIHByaXZhdGVLZXksIG51bGwpJyk7CisgICAgc2hvdWxk
UmVqZWN0KCdjcnlwdG8uc3VidGxlLmRlcml2ZUJpdHMoe25hbWU6ICJlY2RoIiwgcHVibGljOiBT
eW1ib2woKX0sIHByaXZhdGVLZXksIG51bGwpJyk7CisgICAgc2hvdWxkUmVqZWN0KCdjcnlwdG8u
c3VidGxlLmRlcml2ZUJpdHMoe25hbWU6ICJlY2RoIiwgcHVibGljOiB7IH19LCBwcml2YXRlS2V5
LCBudWxsKScpOworICAgIHNob3VsZFJlamVjdCgnY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKHtu
YW1lOiAiZWNkaCIsIHB1YmxpYzogMX0sIHByaXZhdGVLZXksIG51bGwpJyk7CisgICAgLy8gV3Jv
bmcgbGVuZ3RoCisgICAgc2hvdWxkUmVqZWN0KCdjcnlwdG8uc3VidGxlLmRlcml2ZUJpdHMoeyBu
YW1lOiJFQ0RIIiwgcHVibGljOnB1YmxpY0tleSB9LCBwcml2YXRlS2V5LCAxKScpOworICAgIC8v
IGJhc2Uga2V5IGlzIHB1YmxpYworICAgIHNob3VsZFJlamVjdCgnY3J5cHRvLnN1YnRsZS5kZXJp
dmVCaXRzKHsgbmFtZToiRUNESCIsIHB1YmxpYzpwdWJsaWNLZXkgfSwgcHVibGljS2V5LCBudWxs
KScpOworICAgIC8vIHB1YmxpYyBrZXkgaXMgcHJpdmF0ZQorICAgIHNob3VsZFJlamVjdCgnY3J5
cHRvLnN1YnRsZS5kZXJpdmVCaXRzKHsgbmFtZToiRUNESCIsIHB1YmxpYzpwcml2YXRlS2V5IH0s
IHByaXZhdGVLZXksIG51bGwpJyk7CisgICAgLy8gZmFrZWQgcHVibGljIGtleQorICAgIHNob3Vs
ZFJlamVjdCgnY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKHsgbmFtZToiRUNESCIsIHB1YmxpYzpm
YWtlS2V5IH0sIHByaXZhdGVLZXksIG51bGwpJyk7CisgICAgLy8gbWlzbWF0Y2hlZCBuYW1lZCBj
dXJ2ZQorICAgIHNob3VsZFJlamVjdCgnY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKHsgbmFtZToi
RUNESCIsIHB1YmxpYzpwdWJsaWNLZXlQMzg0IH0sIHByaXZhdGVLZXksIG51bGwpJyk7CisgICAg
Ly8gV3JvbmcgbGVuZ3RoCisgICAgcmV0dXJuIHNob3VsZFJlamVjdCgnY3J5cHRvLnN1YnRsZS5k
ZXJpdmVCaXRzKHsgbmFtZToiRUNESCIsIHB1YmxpYzpwdWJsaWNLZXkgfSwgcHJpdmF0ZUtleSwg
Mzg0KScpOworfSkudGhlbihmaW5pc2hKU1Rlc3QsIGZpbmlzaEpTVGVzdCk7CisKKzwvc2NyaXB0
PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3Vi
dGxlL2VjZGgtZ2VuZXJhdGUta2V5LWRlcml2ZS1iaXRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2NyeXB0by9zdWJ0bGUvZWNkaC1nZW5lcmF0ZS1rZXktZGVyaXZlLWJpdHMtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmE0ZDMzY2IzNmIwMzg5NjIxYmY4NWIwZWNhOTZmY2E3ZTE1NzNhZmUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2VjZGgtZ2VuZXJh
dGUta2V5LWRlcml2ZS1iaXRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IEVD
REggZGVyaXZlQml0cyBvcGVyYXRpb24gd2l0aCBnZW5lcmF0ZWQgYmFzZSBrZXkgYW5kIG51bGwg
bGVuZ3RoCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRlcml2ZWRLZXku
Ynl0ZUxlbmd0aCBpcyAzMgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZWNkaC1n
ZW5lcmF0ZS1rZXktZGVyaXZlLWJpdHMuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUv
ZWNkaC1nZW5lcmF0ZS1rZXktZGVyaXZlLWJpdHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZTY0M2E2YWFj
MzdjZTUyMWVhMjMxZjlmOGJjOGY0MGQ3MWZmZTYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvY3J5cHRvL3N1YnRsZS9lY2RoLWdlbmVyYXRlLWtleS1kZXJpdmUtYml0cy5odG1sCkBA
IC0wLDAgKzEsNDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2Ny
aXB0PgorZGVzY3JpcHRpb24oIlRlc3QgRUNESCBkZXJpdmVCaXRzIG9wZXJhdGlvbiB3aXRoIGdl
bmVyYXRlZCBiYXNlIGtleSBhbmQgbnVsbCBsZW5ndGgiKTsKKworanNUZXN0SXNBc3luYyA9IHRy
dWU7CisKK3ZhciBleHRyYWN0YWJsZSA9IHRydWU7Cit2YXIgandrUHVibGljS2V5ID0geworICAg
IGt0eTogIkVDIiwKKyAgICBjcnY6ICJQLTI1NiIsCisgICAgeDogIjFGU1ZXaWVUdmlrRmtHMU5P
eWhrVUNhTWJkUWh4d0g2YUN1NEV6LXNSdEEiLAorICAgIHk6ICI5am1OVExxTTRjakJoZEFuSGNO
STlZUVYzTzhMRm1vLUVkWldrOG50QWFJIiwKK307CisKK2NyeXB0by5zdWJ0bGUuZ2VuZXJhdGVL
ZXkoeyBuYW1lOiAiRUNESCIsIG5hbWVkQ3VydmU6ICJQLTI1NiIgfSwgZXh0cmFjdGFibGUsIFsi
ZGVyaXZlQml0cyJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHByaXZhdGVLZXkgPSBy
ZXN1bHQucHJpdmF0ZUtleTsKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3
ayIsIGp3a1B1YmxpY0tleSwgeyBuYW1lOiAiRUNESCIsIG5hbWVkQ3VydmU6ICJQLTI1NiIgfSwg
ZXh0cmFjdGFibGUsIFsgXSk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHB1Ymxp
Y0tleSA9IHJlc3VsdDsKKyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKHsgbmFt
ZToiRUNESCIsIHB1YmxpYzpwdWJsaWNLZXkgfSwgcHJpdmF0ZUtleSwgbnVsbCk7Cit9KS50aGVu
KGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGRlcml2ZWRLZXkgPSByZXN1bHQ7CisKKyAgICBzaG91
bGRCZSgiZGVyaXZlZEtleS5ieXRlTGVuZ3RoIiwgIjMyIik7CisKKyAgICBmaW5pc2hKU1Rlc3Qo
KTsKK30sIGZhaWxBbmRGaW5pc2hKU1Rlc3QpOworCis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1r
ZXktZGVyaXZlLWJpdHMtY3VzdG9tLWxlbmd0aC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9j
cnlwdG8vc3VidGxlL2VjZGgtaW1wb3J0LWtleS1kZXJpdmUtYml0cy1jdXN0b20tbGVuZ3RoLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MjRkMThlOGU5NWY5NDI2OTlhZWM3ZjU0ODU1N2U3NjZi
YzBkYjA1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9lY2Ro
LWltcG9ydC1rZXktZGVyaXZlLWJpdHMtY3VzdG9tLWxlbmd0aC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMCBAQAorVGVzdCBFQ0RIIGRlcml2ZUJpdHMgb3BlcmF0aW9uIHdpdGggaW1wb3J0ZWQg
YmFzZSBrZXkgYW5kIGN1c3RvbSBsZW5ndGgKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgYnl0ZXNUb0hleFN0cmluZyhkZXJpdmVkS2V5KSBpcyBleHBlY3RlZERlcml2ZWRL
ZXkKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2VjZGgtaW1wb3J0LWtleS1kZXJp
dmUtYml0cy1jdXN0b20tbGVuZ3RoLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Vj
ZGgtaW1wb3J0LWtleS1kZXJpdmUtYml0cy1jdXN0b20tbGVuZ3RoLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTg2OWZmMzc0OGE4MjVjZmMwZjQ3YTY2MDk0MzQwMmNjZjQ2NTE4NwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQta2V5LWRlcml2ZS1iaXRz
LWN1c3RvbS1sZW5ndGguaHRtbApAQCAtMCwwICsxLDUwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvY29tbW9uLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IEVDREggZGVyaXZl
Qml0cyBvcGVyYXRpb24gd2l0aCBpbXBvcnRlZCBiYXNlIGtleSBhbmQgY3VzdG9tIGxlbmd0aCIp
OworCitqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKK3Zh
ciBqd2tQcml2YXRlS2V5ID0geworICAgIGt0eTogIkVDIiwKKyAgICBjcnY6ICJQLTI1NiIsCisg
ICAgeDogIjFGU1ZXaWVUdmlrRmtHMU5PeWhrVUNhTWJkUWh4d0g2YUN1NEV6LXNSdEEiLAorICAg
IHk6ICI5am1OVExxTTRjakJoZEFuSGNOSTlZUVYzTzhMRm1vLUVkWldrOG50QWFJIiwKKyAgICBk
OiAicHB4QlNvdjNOOF9BVWNpc0F1dm1MVjR5RThlX0xfQkxFOGJaYjlaMVhqZyIsCit9OwordmFy
IGp3a1B1YmxpY0tleSA9IHsKKyAgICBrdHk6ICJFQyIsCisgICAgY3J2OiAiUC0yNTYiLAorICAg
IHg6ICIxRlNWV2llVHZpa0ZrRzFOT3loa1VDYU1iZFFoeHdINmFDdTRFei1zUnRBIiwKKyAgICB5
OiAiOWptTlRMcU00Y2pCaGRBbkhjTkk5WVFWM084TEZtby1FZFpXazhudEFhSSIsCit9OwordmFy
IGV4cGVjdGVkRGVyaXZlZEtleSA9ICI0MGJmMGMwYTU2Zjc1Y2E1ODdlYTRmNjcyOWQ3YmY5YSI7
CisKK2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBqd2tQcml2YXRlS2V5LCB7IG5hbWU6
ICJFQ0RIIiwgbmFtZWRDdXJ2ZTogIlAtMjU2IiB9LCBleHRyYWN0YWJsZSwgWyJkZXJpdmVCaXRz
Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgcHJpdmF0ZUtleSA9IHJlc3VsdDsKKyAg
ICByZXR1cm4gY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGp3a1B1YmxpY0tleSwgeyBu
YW1lOiAiRUNESCIsIG5hbWVkQ3VydmU6ICJQLTI1NiIgfSwgZXh0cmFjdGFibGUsIFsgXSk7Cit9
KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHB1YmxpY0tleSA9IHJlc3VsdDsKKyAgICBy
ZXR1cm4gY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKHsgbmFtZToiRUNESCIsIHB1YmxpYzpwdWJs
aWNLZXkgfSwgcHJpdmF0ZUtleSwgMTI4KTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Cisg
ICAgZGVyaXZlZEtleSA9IHJlc3VsdDsKKworICAgIHNob3VsZEJlKCJieXRlc1RvSGV4U3RyaW5n
KGRlcml2ZWRLZXkpIiwgImV4cGVjdGVkRGVyaXZlZEtleSIpOworCisgICAgZmluaXNoSlNUZXN0
KCk7Cit9LCBmYWlsQW5kRmluaXNoSlNUZXN0KTsKKworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3Jj
PSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQt
a2V5LWRlcml2ZS1iaXRzLW51bGwtbGVuZ3RoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Ny
eXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQta2V5LWRlcml2ZS1iaXRzLW51bGwtbGVuZ3RoLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iMjg4NmY4ZTU1ZGFiYzEzMzYxNGE2YTY2YzVlYWIyMzVjMDQ5
ODhhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9lY2RoLWlt
cG9ydC1rZXktZGVyaXZlLWJpdHMtbnVsbC1sZW5ndGgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTAgQEAKK1Rlc3QgRUNESCBkZXJpdmVCaXRzIG9wZXJhdGlvbiB3aXRoIGltcG9ydGVkIGJhc2Ug
a2V5IGFuZCBudWxsIGxlbmd0aAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBieXRlc1RvSGV4U3RyaW5nKGRlcml2ZWRLZXkpIGlzIGV4cGVjdGVkRGVyaXZlZEtleQorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQta2V5LWRlcml2ZS1iaXRz
LW51bGwtbGVuZ3RoLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2VjZGgtaW1wb3J0
LWtleS1kZXJpdmUtYml0cy1udWxsLWxlbmd0aC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4ODk3MTYyYzgy
ODY4OTEzOTZmY2Y0NmJkMjgzYWYxZWM5NTI5M2EKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9jcnlwdG8vc3VidGxlL2VjZGgtaW1wb3J0LWtleS1kZXJpdmUtYml0cy1udWxsLWxlbmd0
aC5odG1sCkBAIC0wLDAgKzEsNTAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgRUNESCBkZXJpdmVCaXRzIG9wZXJhdGlv
biB3aXRoIGltcG9ydGVkIGJhc2Uga2V5IGFuZCBudWxsIGxlbmd0aCIpOworCitqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKwordmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKK3ZhciBqd2tQcml2YXRlS2V5
ID0geworICAgIGt0eTogIkVDIiwKKyAgICBjcnY6ICJQLTI1NiIsCisgICAgeDogIjFGU1ZXaWVU
dmlrRmtHMU5PeWhrVUNhTWJkUWh4d0g2YUN1NEV6LXNSdEEiLAorICAgIHk6ICI5am1OVExxTTRj
akJoZEFuSGNOSTlZUVYzTzhMRm1vLUVkWldrOG50QWFJIiwKKyAgICBkOiAicHB4QlNvdjNOOF9B
VWNpc0F1dm1MVjR5RThlX0xfQkxFOGJaYjlaMVhqZyIsCit9OwordmFyIGp3a1B1YmxpY0tleSA9
IHsKKyAgICBrdHk6ICJFQyIsCisgICAgY3J2OiAiUC0yNTYiLAorICAgIHg6ICIxRlNWV2llVHZp
a0ZrRzFOT3loa1VDYU1iZFFoeHdINmFDdTRFei1zUnRBIiwKKyAgICB5OiAiOWptTlRMcU00Y2pC
aGRBbkhjTkk5WVFWM084TEZtby1FZFpXazhudEFhSSIsCit9OwordmFyIGV4cGVjdGVkRGVyaXZl
ZEtleSA9ICI0MGJmMGMwYTU2Zjc1Y2E1ODdlYTRmNjcyOWQ3YmY5YTMwYzVmNGEwZDQ3ZWVhMTNm
ZGY5ZGE4ZjBiNTNiODVlIjsKKworY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGp3a1By
aXZhdGVLZXksIHsgbmFtZTogIkVDREgiLCBuYW1lZEN1cnZlOiAiUC0yNTYiIH0sIGV4dHJhY3Rh
YmxlLCBbImRlcml2ZUJpdHMiXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBwcml2YXRl
S2V5ID0gcmVzdWx0OworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwg
andrUHVibGljS2V5LCB7IG5hbWU6ICJFQ0RIIiwgbmFtZWRDdXJ2ZTogIlAtMjU2IiB9LCBleHRy
YWN0YWJsZSwgWyBdKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgcHVibGljS2V5
ID0gcmVzdWx0OworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmRlcml2ZUJpdHMoeyBuYW1lOiJF
Q0RIIiwgcHVibGljOnB1YmxpY0tleSB9LCBwcml2YXRlS2V5LCBudWxsKTsKK30pLnRoZW4oZnVu
Y3Rpb24ocmVzdWx0KSB7CisgICAgZGVyaXZlZEtleSA9IHJlc3VsdDsKKworICAgIHNob3VsZEJl
KCJieXRlc1RvSGV4U3RyaW5nKGRlcml2ZWRLZXkpIiwgImV4cGVjdGVkRGVyaXZlZEtleSIpOwor
CisgICAgZmluaXNoSlNUZXN0KCk7Cit9LCBmYWlsQW5kRmluaXNoSlNUZXN0KTsKKworPC9zY3Jp
cHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93
b3JrZXJzL3N1YnRsZS9lY2RoLWltcG9ydC1rZXktZGVyaXZlLWJpdHMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvY3J5cHRvL3dvcmtlcnMvc3VidGxlL2VjZGgtaW1wb3J0LWtleS1kZXJpdmUt
Yml0cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODI0ZDM3YmUyMjYzODg2N2ZkYjRlNmZhOGE1
MmVhNGQyNWM2MzY1YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by93b3Jr
ZXJzL3N1YnRsZS9lY2RoLWltcG9ydC1rZXktZGVyaXZlLWJpdHMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTEgQEAKK1tXb3JrZXJdIFRlc3QgRUNESCBkZXJpdmVCaXRzIG9wZXJhdGlvbiB3aXRo
IGltcG9ydGVkIGJhc2Uga2V5IGluIHdvcmtlcnMKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1N0YXJ0aW5nIHdvcmtlcjogcmVzb3VyY2VzL2VjZGgtaW1wb3J0LWtleS1kZXJpdmUt
Yml0cy5qcworUEFTUyBbV29ya2VyXSBieXRlc1RvSGV4U3RyaW5nKGRlcml2ZWRLZXkpIGlzIGV4
cGVjdGVkRGVyaXZlZEtleQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by93b3JrZXJzL3N1YnRs
ZS9lY2RoLWltcG9ydC1rZXktZGVyaXZlLWJpdHMuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by93
b3JrZXJzL3N1YnRsZS9lY2RoLWltcG9ydC1rZXktZGVyaXZlLWJpdHMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4wMzdmYTE1OTZhMDk2YmIwODI4ODY0MzQzNmJhNzdmNGNmNDQ1OTRhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dvcmtlcnMvc3VidGxlL2VjZGgtaW1wb3J0LWtleS1k
ZXJpdmUtYml0cy5odG1sCkBAIC0wLDAgKzEsMTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxzY3JpcHQ+CisgICAgICAgIHdv
cmtlciA9IHN0YXJ0V29ya2VyKCdyZXNvdXJjZXMvZWNkaC1pbXBvcnQta2V5LWRlcml2ZS1iaXRz
LmpzJyk7CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3dvcmtlcnMvc3VidGxlL3Jlc291cmNlcy9lY2RoLWltcG9y
dC1rZXktZGVyaXZlLWJpdHMuanMgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd29ya2Vycy9zdWJ0bGUv
cmVzb3VyY2VzL2VjZGgtaW1wb3J0LWtleS1kZXJpdmUtYml0cy5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNzI2
OTdhZDkxZDlkNDI4YmRjOTAxNmZiODEzYTgzMDllYWU1ZTE1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvY3J5cHRvL3dvcmtlcnMvc3VidGxlL3Jlc291cmNlcy9lY2RoLWltcG9ydC1r
ZXktZGVyaXZlLWJpdHMuanMKQEAgLTAsMCArMSwzNiBAQAoraW1wb3J0U2NyaXB0cygnLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzJyk7CitpbXBvcnRTY3JpcHRzKCIuLi8uLi8u
Li9yZXNvdXJjZXMvY29tbW9uLmpzIik7CisKK2Rlc2NyaXB0aW9uKCJUZXN0IEVDREggZGVyaXZl
Qml0cyBvcGVyYXRpb24gd2l0aCBpbXBvcnRlZCBiYXNlIGtleSBpbiB3b3JrZXJzIik7CisKK2pz
VGVzdElzQXN5bmMgPSB0cnVlOworCit2YXIgZXh0cmFjdGFibGUgPSB0cnVlOwordmFyIGp3a1By
aXZhdGVLZXkgPSB7CisgICAga3R5OiAiRUMiLAorICAgIGNydjogIlAtMjU2IiwKKyAgICB4OiAi
MUZTVldpZVR2aWtGa0cxTk95aGtVQ2FNYmRRaHh3SDZhQ3U0RXotc1J0QSIsCisgICAgeTogIjlq
bU5UTHFNNGNqQmhkQW5IY05JOVlRVjNPOExGbW8tRWRaV2s4bnRBYUkiLAorICAgIGQ6ICJwcHhC
U292M044X0FVY2lzQXV2bUxWNHlFOGVfTF9CTEU4YlpiOVoxWGpnIiwKK307Cit2YXIgandrUHVi
bGljS2V5ID0geworICAgIGt0eTogIkVDIiwKKyAgICBjcnY6ICJQLTI1NiIsCisgICAgeDogIjFG
U1ZXaWVUdmlrRmtHMU5PeWhrVUNhTWJkUWh4d0g2YUN1NEV6LXNSdEEiLAorICAgIHk6ICI5am1O
VExxTTRjakJoZEFuSGNOSTlZUVYzTzhMRm1vLUVkWldrOG50QWFJIiwKK307Cit2YXIgZXhwZWN0
ZWREZXJpdmVkS2V5ID0gIjQwYmYwYzBhNTZmNzVjYTU4N2VhNGY2NzI5ZDdiZjlhMzBjNWY0YTBk
NDdlZWExM2ZkZjlkYThmMGI1M2I4NWUiOworCitjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandr
IiwgandrUHJpdmF0ZUtleSwgeyBuYW1lOiAiRUNESCIsIG5hbWVkQ3VydmU6ICJQLTI1NiIgfSwg
ZXh0cmFjdGFibGUsIFsiZGVyaXZlQml0cyJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAg
IHByaXZhdGVLZXkgPSByZXN1bHQ7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5
KCJqd2siLCBqd2tQdWJsaWNLZXksIHsgbmFtZTogIkVDREgiLCBuYW1lZEN1cnZlOiAiUC0yNTYi
IH0sIGV4dHJhY3RhYmxlLCBbIF0pOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBw
dWJsaWNLZXkgPSByZXN1bHQ7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZGVyaXZlQml0cyh7
IG5hbWU6IkVDREgiLCBwdWJsaWM6cHVibGljS2V5IH0sIHByaXZhdGVLZXksIG51bGwpOworfSku
dGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBkZXJpdmVkS2V5ID0gcmVzdWx0OworCisgICAg
c2hvdWxkQmUoImJ5dGVzVG9IZXhTdHJpbmcoZGVyaXZlZEtleSkiLCAiZXhwZWN0ZWREZXJpdmVk
S2V5Iik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30sIGZhaWxBbmRGaW5pc2hKU1Rlc3QpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>303850</attachid>
            <date>2017-03-08 15:03:58 -0800</date>
            <delta_ts>2017-03-08 18:17:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169319-20170308150247.patch</filename>
            <type>text/plain</type>
            <size>65136</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzNTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjcyYWY1M2YxMzIxOTk2
MGE3YjIwNjEwZjFkOTY1ZDE3YmI2MTU0Ny4uMmU4NTA0MGFkZmE4M2FjMGMxYjJmMDVkNzhlOTc3
MWIxZWRjNTJiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE3LTAzLTA4ICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkNyeXB0b10gSW1w
bGVtZW50IEVDREggRGVyaXZlQml0cyBvcGVyYXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2OTMxOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
MjM3ODk1ODU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJlbnQgRnVsZ2hhbS4KKworICAgICAg
ICBUaGlzIHBhdGNoIGltcGxlbWVudHMgRGVyaXZlQml0cyBvcGVyYXRpb24gb2YgRUNESCBhY2Nv
cmRpbmcgdG8gdGhlIHNwZWM6CisgICAgICAgIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9XZWJDcnlw
dG9BUEkvI2VjZGgtb3BlcmF0aW9ucy4KKworICAgICAgICBUZXN0czogY3J5cHRvL3N1YnRsZS9k
ZXJpdmUtYml0cy1tYWxmb3JtZWQtcGFyYW1ldGVycy5odG1sCisgICAgICAgICAgICAgICBjcnlw
dG8vc3VidGxlL2VjZGgtZGVyaXZlLWJpdHMtbWFsZm9ybWVkLXBhcmFtZXRycy5odG1sCisgICAg
ICAgICAgICAgICBjcnlwdG8vc3VidGxlL2VjZGgtZ2VuZXJhdGUta2V5LWRlcml2ZS1iaXRzLmh0
bWwKKyAgICAgICAgICAgICAgIGNyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQta2V5LWRlcml2ZS1i
aXRzLWN1c3RvbS1sZW5ndGguaHRtbAorICAgICAgICAgICAgICAgY3J5cHRvL3N1YnRsZS9lY2Ro
LWltcG9ydC1rZXktZGVyaXZlLWJpdHMtbnVsbC1sZW5ndGguaHRtbAorICAgICAgICAgICAgICAg
Y3J5cHRvL3dvcmtlcnMvc3VidGxlL2VjZGgtaW1wb3J0LWtleS1kZXJpdmUtYml0cy5odG1sCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtl
OgorICAgICAgICAqIFBsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAqIFBsYXRmb3JtTWFjLmNt
YWtlOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBiaW5kaW5ncy9qcy9KU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpub3JtYWxpemVDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYkNv
cmU6OmpzU3VidGxlQ3J5cHRvRnVuY3Rpb25EZXJpdmVLZXlQcm9taXNlKToKKyAgICAgICAgKFdl
YkNvcmU6OmpzU3VidGxlQ3J5cHRvRnVuY3Rpb25EZXJpdmVCaXRzUHJvbWlzZSk6CisgICAgICAg
IChXZWJDb3JlOjpKU1N1YnRsZUNyeXB0bzo6Z2VuZXJhdGVLZXkpOgorICAgICAgICBSZW9yZGVy
IGEgYml0IG9mIHRoZSBmdW5jdGlvbnMuCisgICAgICAgICogY3J5cHRvL0NvbW1vbkNyeXB0b1V0
aWxpdGllcy5oOgorICAgICAgICAqIGNyeXB0by9DcnlwdG9BbGdvcml0aG0uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtOjpkZXJpdmVCaXRzKToKKyAgICAgICAgKiBjcnlw
dG8vQ3J5cHRvQWxnb3JpdGhtLmg6CisgICAgICAgICogY3J5cHRvL0NyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnMuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1F
Q0RILmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUVDREg6OmRlcml2ZUJp
dHMpOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDREguaDoK
KyAgICAgICAgKiBjcnlwdG8vZ251dGxzL0NyeXB0b0FsZ29yaXRobUVDREhHbnVUTFMuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUVDREg6OnBsYXRmb3JtRGVy
aXZlQml0cyk6CisgICAgICAgICogY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaDoKKyAgICAgICAg
KiBjcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUVDREhNYWMuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkNyeXB0b0FsZ29yaXRobUVDREg6OnBsYXRmb3JtRGVyaXZlQml0cyk6CisgICAg
ICAgICogY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtRWNkaEtleURlcml2ZVBhcmFt
cy5oOiBBZGRlZC4KKyAgICAgICAgKiBjcnlwdG8vcGFyYW1ldGVycy9FY2RoS2V5RGVyaXZlUGFy
YW1zLmlkbDogQWRkZWQuCisKIDIwMTctMDMtMDcgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNl
ckBhcHBsZS5jb20+CiAKICAgICAgICAgUGFyc2luZyAtd2Via2l0LWh5cGhlbmF0ZS1jaGFyYWN0
ZXIgdXNlcyBjb25mdXNpbmdseSBuYW1lZCBjb25zdW1lTG9jYWxlKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKaW5kZXggZDZiMjg2ZDBlMzVlMzA2MWJkMzQzMTlhMTBkMTExNDg1OGE3ZTViYi4uZjVkMGQw
ZDA0ZjdiNDJmNDYzMzA2ZmY3Njc4MDNlMzJiM2E5N2I1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
QEAgLTM0Myw2ICszNDMsNyBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9GSUxFUwogICAgIGNy
eXB0by9wYXJhbWV0ZXJzL0Flc0djbVBhcmFtcy5pZGwKICAgICBjcnlwdG8vcGFyYW1ldGVycy9B
ZXNLZXlHZW5QYXJhbXMuaWRsCiAgICAgY3J5cHRvL3BhcmFtZXRlcnMvRWNLZXlQYXJhbXMuaWRs
CisgICAgY3J5cHRvL3BhcmFtZXRlcnMvRWNkaEtleURlcml2ZVBhcmFtcy5pZGwKICAgICBjcnlw
dG8vcGFyYW1ldGVycy9IbWFjS2V5UGFyYW1zLmlkbAogICAgIGNyeXB0by9wYXJhbWV0ZXJzL1Jz
YUhhc2hlZEltcG9ydFBhcmFtcy5pZGwKICAgICBjcnlwdG8vcGFyYW1ldGVycy9Sc2FIYXNoZWRL
ZXlHZW5QYXJhbXMuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBjMjRlNmYz
MzlkN2Q0NDJhNWM4YzY5MDlmZWQyMmM2YjhiMmU1N2MyLi4wODM4YWYzY2YwYjFhYTE2YThiYjA4
OTc0Y2M4ZGU4OTY0MGI0Njc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTI3
NSw2ICsyNzUsNyBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9jcnlwdG8v
cGFyYW1ldGVycy9BZXNHY21QYXJhbXMuaWRsIFwKICAgICAkKFdlYkNvcmUpL2NyeXB0by9wYXJh
bWV0ZXJzL0Flc0tleUdlblBhcmFtcy5pZGwgXAogICAgICQoV2ViQ29yZSkvY3J5cHRvL3BhcmFt
ZXRlcnMvRWNLZXlQYXJhbXMuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2NyeXB0by9wYXJhbWV0ZXJz
L0VjZGhLZXlEZXJpdmVQYXJhbXMuaWRsIFwKICAgICAkKFdlYkNvcmUpL2NyeXB0by9wYXJhbWV0
ZXJzL0htYWNLZXlQYXJhbXMuaWRsIFwKICAgICAkKFdlYkNvcmUpL2NyeXB0by9wYXJhbWV0ZXJz
L1JzYUhhc2hlZEltcG9ydFBhcmFtcy5pZGwgXAogICAgICQoV2ViQ29yZSkvY3J5cHRvL3BhcmFt
ZXRlcnMvUnNhSGFzaGVkS2V5R2VuUGFyYW1zLmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9QbGF0Zm9ybUdUSy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNtYWtl
CmluZGV4IDNjZDBkYjliZWYyNGUzNjIxYjA4MTdmNWI0NjFjMjRmNDQyODdmYzcuLjJmOWU5MTE2
MWU5NmMyYzQ3ODVkMDc3NDNjZDliYzE2MDIwODljYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1BsYXRmb3JtR1RLLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtR1RLLmNt
YWtlCkBAIC00MDMsNiArNDAzLDcgQEAgaWYgKEVOQUJMRV9TVUJUTEVfQ1JZUFRPKQogICAgICAg
ICBjcnlwdG8vZ251dGxzL0NyeXB0b0FsZ29yaXRobUFFU19DRkJHbnVUTFMuY3BwCiAgICAgICAg
IGNyeXB0by9nbnV0bHMvQ3J5cHRvQWxnb3JpdGhtQUVTX0dDTUdudVRMUy5jcHAKICAgICAgICAg
Y3J5cHRvL2dudXRscy9DcnlwdG9BbGdvcml0aG1BRVNfS1dHbnVUTFMuY3BwCisgICAgICAgIGNy
eXB0by9nbnV0bHMvQ3J5cHRvQWxnb3JpdGhtRUNESEdudVRMUy5jcHAKICAgICAgICAgY3J5cHRv
L2dudXRscy9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81R251VExTLmNwcAogICAgICAg
ICBjcnlwdG8vZ251dGxzL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81R251VExTLmNw
cAogICAgICAgICBjcnlwdG8vZ251dGxzL0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQR251VExTLmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UgYi9Tb3VyY2Uv
V2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQppbmRleCA4MDU4MjgwZTgyNDExM2RkOGVkNDAzOTU3
NGE3NDUxZTc5MjdlZmE5Li44OTRjOWJkNTZlYjlhN2FkMjFhYWI4MmVmZTkwNDlhODM5MDkyMjQ5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZQpAQCAtMjA2LDYgKzIwNiw3IEBAIGxpc3QoQVBQ
RU5EIFdlYkNvcmVfU09VUkNFUwogICAgIGNyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NG
Qk1hYy5jcHAKICAgICBjcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUFFU19HQ01NYWMuY3BwCiAg
ICAgY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1BRVNfS1dNYWMuY3BwCisgICAgY3J5cHRvL21h
Yy9DcnlwdG9BbGdvcml0aG1FQ0RITWFjLmNwcAogICAgIGNyeXB0by9tYWMvQ3J5cHRvQWxnb3Jp
dGhtSE1BQ01hYy5jcHAKICAgICBjcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1Mx
X3YxXzVNYWMuY3BwCiAgICAgY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFf
djFfNU1hYy5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCAwNjkxMGMwZWNjNDFjZDJjNzFjMzE4NzQ2MjQ3ZWQwNmNmODI4MDA4
Li45YzdlYmQ2MDY4MjBjODU1ZTVhM2U1NTU1Y2E4NjBmOGQzOGJmYzBmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzczLDYg
KzIzNzMsMTAgQEAKIAkJNTc1MEE5ODIxRTZBMTUwODAwNzA1QzRBIC8qIEpTRWNLZXlQYXJhbXMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NTBBOTgw
MUU2QTE1MDgwMDcwNUM0QSAvKiBKU0VjS2V5UGFyYW1zLmggKi87IH07CiAJCTU3NTBBOTg2MUU2
QTIxNjgwMDcwNUM0QSAvKiBDcnlwdG9BbGdvcml0aG1FQ0RILmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3NTBBOTg0MUU2QTIxNjgwMDcwNUM0QSAv
KiBDcnlwdG9BbGdvcml0aG1FQ0RILmNwcCAqLzsgfTsKIAkJNTc1MEE5ODcxRTZBMjE2ODAwNzA1
QzRBIC8qIENyeXB0b0FsZ29yaXRobUVDREguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDU3NTBBOTg1MUU2QTIxNjgwMDcwNUM0QSAvKiBDcnlwdG9BbGdv
cml0aG1FQ0RILmggKi87IH07CisJCTU3NjgxNDJBMUU2Rjk5QzEwMEU3Nzc1NCAvKiBDcnlwdG9B
bGdvcml0aG1FY2RoS2V5RGVyaXZlUGFyYW1zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1NzY4MTQyOTFFNkY5OUMxMDBFNzc3NTQgLyogQ3J5cHRvQWxn
b3JpdGhtRWNkaEtleURlcml2ZVBhcmFtcy5oICovOyB9OworCQk1NzY4MTQzNTFFNkZFM0U4MDBF
Nzc3NTQgLyogQ3J5cHRvQWxnb3JpdGhtRUNESE1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzY4MTQzNDFFNkZFM0U4MDBFNzc3NTQgLyogQ3J5
cHRvQWxnb3JpdGhtRUNESE1hYy5jcHAgKi87IH07CisJCTU3NjgxNDQwMUU3MDlGQTEwMEU3Nzc1
NCAvKiBKU0VjZGhLZXlEZXJpdmVQYXJhbXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTc2ODE0M0QxRTcwOUMzNjAwRTc3NzU0IC8qIEpTRWNkaEtl
eURlcml2ZVBhcmFtcy5jcHAgKi87IH07CisJCTU3NjgxNDQxMUU3MDlGQTQwMEU3Nzc1NCAvKiBK
U0VjZGhLZXlEZXJpdmVQYXJhbXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDU3NjgxNDNFMUU3MDlDMzYwMEU3Nzc1NCAvKiBKU0VjZGhLZXlEZXJpdmVQ
YXJhbXMuaCAqLzsgfTsKIAkJNTc2OEU0MzQxREI3NTI0NTAwRDBBNEY3IC8qIEpTUnNhSGFzaGVk
S2V5R2VuUGFyYW1zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1NzY4RTQzMzFEQjc1MjQ1MDBEMEE0RjcgLyogSlNSc2FIYXNoZWRLZXlHZW5QYXJhbXMu
aCAqLzsgfTsKIAkJNTc2OEU0MzYxREI3NTI3NDAwRDBBNEY3IC8qIEpTUnNhSGFzaGVkS2V5R2Vu
UGFyYW1zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDU3NjhFNDM1MURCNzUyNzMwMEQwQTRGNyAvKiBKU1JzYUhhc2hlZEtleUdlblBhcmFtcy5jcHAg
Ki87IH07CiAJCTU3NzQ4MzEyMURBREM1NUQwMDcxNkVGOSAvKiBDcnlwdG9BbGdvcml0aG1BZXNL
ZXlHZW5QYXJhbXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDU3NzQ4MzExMURBREM1NUQwMDcxNkVGOSAvKiBDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5Q
YXJhbXMuaCAqLzsgfTsKQEAgLTk3OTUsNiArOTc5OSwxMSBAQAogCQk1NzUwQTk4MDFFNkExNTA4
MDA3MDVDNEEgLyogSlNFY0tleVBhcmFtcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU0VjS2V5UGFyYW1zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU3NTBB
OTg0MUU2QTIxNjgwMDcwNUM0QSAvKiBDcnlwdG9BbGdvcml0aG1FQ0RILmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobUVDREguY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzUwQTk4NTFFNkEyMTY4MDA3MDVDNEEgLyogQ3J5
cHRvQWxnb3JpdGhtRUNESC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlw
dG9BbGdvcml0aG1FQ0RILmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTU3NjgxNDI4
MUU2Rjk4QUQwMEU3Nzc1NCAvKiBFY2RoS2V5RGVyaXZlUGFyYW1zLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBFY2RoS2V5
RGVyaXZlUGFyYW1zLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTc2ODE0Mjkx
RTZGOTlDMTAwRTc3NzU0IC8qIENyeXB0b0FsZ29yaXRobUVjZGhLZXlEZXJpdmVQYXJhbXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtRWNkaEtleURl
cml2ZVBhcmFtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NzY4MTQzNDFFNkZF
M0U4MDBFNzc3NTQgLyogQ3J5cHRvQWxnb3JpdGhtRUNESE1hYy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1FQ0RITWFjLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTc2ODE0M0QxRTcwOUMzNjAwRTc3NzU0IC8qIEpTRWNk
aEtleURlcml2ZVBhcmFtcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU0VjZGhLZXlEZXJpdmVQYXJhbXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk1NzY4MTQzRTFFNzA5QzM2MDBFNzc3NTQgLyogSlNFY2RoS2V5RGVyaXZlUGFyYW1zLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTRWNkaEtleURlcml2ZVBhcmFtcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzY4RTQzMzFEQjc1MjQ1MDBEMEE0RjcgLyog
SlNSc2FIYXNoZWRLZXlHZW5QYXJhbXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gSlNSc2FIYXNoZWRLZXlHZW5QYXJhbXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTc2OEU0MzUxREI3NTI3MzAwRDBBNEY3IC8qIEpTUnNhSGFzaGVkS2V5R2VuUGFyYW1zLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUnNhSGFzaGVkS2V5R2Vu
UGFyYW1zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTc3NDgzMTAxREFEQzQ5
OTAwNzE2RUY5IC8qIEFlc0tleUdlblBhcmFtcy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQWVzS2V5R2VuUGFyYW1zLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzNTgwLDYgKzIzNTg5LDcgQEAKIAkJ
CQk1NzA0NDA1NzFFNTM4NTE2MDAzNTY2MDEgLyogQ3J5cHRvQWxnb3JpdGhtQUVTX0NGQk1hYy5j
cHAgKi8sCiAJCQkJNTdCNUY4MEQxRTVEMkYyRDAwRjM0RjkwIC8qIENyeXB0b0FsZ29yaXRobUFF
U19HQ01NYWMuY3BwICovLAogCQkJCUUxRkUxMzdDMTg0RDI3MDIwMDg5MkYxMyAvKiBDcnlwdG9B
bGdvcml0aG1BRVNfS1dNYWMuY3BwICovLAorCQkJCTU3NjgxNDM0MUU2RkUzRTgwMEU3Nzc1NCAv
KiBDcnlwdG9BbGdvcml0aG1FQ0RITWFjLmNwcCAqLywKIAkJCQlFMTI1RjgzNzE4MjJGMUVCMDBE
ODRDRDkgLyogQ3J5cHRvQWxnb3JpdGhtSE1BQ01hYy5jcHAgKi8sCiAJCQkJRTFCQjg0QUMxODIy
Q0E3NDAwNTI1MDQzIC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5TWFjLmNwcCAqLywKIAkJCQlF
MUZFMTM2RTE4M0ZFQ0YwMDA4OTJGMTMgLyogQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVBNYWMuY3Bw
ICovLApAQCAtMjM2NjEsNiArMjM2NzEsNyBAQAogCQkJCTU3NzQ4MzExMURBREM1NUQwMDcxNkVG
OSAvKiBDcnlwdG9BbGdvcml0aG1BZXNLZXlHZW5QYXJhbXMuaCAqLywKIAkJCQlFMTlBQzNGNjE4
MjRFNUQxMDAzNDk0MjYgLyogQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zRGVwcmVjYXRl
ZC5oICovLAogCQkJCTU3NTBBOTdEMUU2QTEzRUYwMDcwNUM0QSAvKiBDcnlwdG9BbGdvcml0aG1F
Y0tleVBhcmFtcy5oICovLAorCQkJCTU3NjgxNDI5MUU2Rjk5QzEwMEU3Nzc1NCAvKiBDcnlwdG9B
bGdvcml0aG1FY2RoS2V5RGVyaXZlUGFyYW1zLmggKi8sCiAJCQkJNTc3NDgzMTgxREI0NDkxRjAw
NzE2RUY5IC8qIENyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXMuaCAqLywKIAkJCQlFMTlEQTI5
QjE4MTg5QUREMDAwODhCQzggLyogQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtc0RlcHJlY2F0
ZWQuaCAqLywKIAkJCQlFMUM2NTcxRTE4MTZFNTAzMDAyNTZDREQgLyogQ3J5cHRvQWxnb3JpdGht
SG1hY1BhcmFtc0RlcHJlY2F0ZWQuaCAqLywKQEAgLTIzNjczLDYgKzIzNjg0LDcgQEAKIAkJCQlF
MUZFMTM3NjE4NEQxRTMzMDA4OTJGMTMgLyogQ3J5cHRvQWxnb3JpdGhtUnNhT2FlcFBhcmFtc0Rl
cHJlY2F0ZWQuaCAqLywKIAkJCQlFMUJEMzMxQjE4MkQ4RUU5MDBDMDVEOUYgLyogQ3J5cHRvQWxn
b3JpdGhtUnNhU3NhUGFyYW1zRGVwcmVjYXRlZC5oICovLAogCQkJCTU3NTBBOTdDMUU2QTEyQjQw
MDcwNUM0QSAvKiBFY0tleVBhcmFtcy5pZGwgKi8sCisJCQkJNTc2ODE0MjgxRTZGOThBRDAwRTc3
NzU0IC8qIEVjZGhLZXlEZXJpdmVQYXJhbXMuaWRsICovLAogCQkJCTU3NzQ4MzE3MURCMUZFODkw
MDcxNkVGOSAvKiBIbWFjS2V5UGFyYW1zLmlkbCAqLywKIAkJCQk1N0UyMzM2QzFEQ0Q0MzcwMDBG
MjhEMDEgLyogUnNhSGFzaGVkSW1wb3J0UGFyYW1zLmlkbCAqLywKIAkJCQk1N0Y4MjczOTFEQjcy
QzIyMDA5RDJCRjQgLyogUnNhSGFzaGVkS2V5R2VuUGFyYW1zLmlkbCAqLywKQEAgLTIzODQ5LDYg
KzIzODYxLDggQEAKIAkJCQk1N0QwMDE4QzFERDU0MTMyMDBFRDE5RDkgLyogSlNDcnlwdG9LZXlV
c2FnZS5oICovLAogCQkJCTU3NTBBOTdGMUU2QTE1MDgwMDcwNUM0QSAvKiBKU0VjS2V5UGFyYW1z
LmNwcCAqLywKIAkJCQk1NzUwQTk4MDFFNkExNTA4MDA3MDVDNEEgLyogSlNFY0tleVBhcmFtcy5o
ICovLAorCQkJCTU3NjgxNDNEMUU3MDlDMzYwMEU3Nzc1NCAvKiBKU0VjZGhLZXlEZXJpdmVQYXJh
bXMuY3BwICovLAorCQkJCTU3NjgxNDNFMUU3MDlDMzYwMEU3Nzc1NCAvKiBKU0VjZGhLZXlEZXJp
dmVQYXJhbXMuaCAqLywKIAkJCQk1N0UyMzM2ODFEQ0FCMjQzMDBGMjhEMDEgLyogSlNIbWFjS2V5
UGFyYW1zLmNwcCAqLywKIAkJCQk1N0UyMzM2NjFEQ0FCMjFDMDBGMjhEMDEgLyogSlNIbWFjS2V5
UGFyYW1zLmggKi8sCiAJCQkJNTdFMjMzNUUxREM3RDY3QjAwRjI4RDAxIC8qIEpTSnNvbldlYktl
eS5jcHAgKi8sCkBAIC0yNjcyMiw2ICsyNjczNiw3IEBACiAJCQkJMUFFOTZBOTExRDFBMERERDAw
Qjg2NzY4IC8qIEpTQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RTZWxlY3RlZEV2ZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk3QzY1NzlGNDFFMDA4NTY2MDBFM0EyN0EgLyogSlNBcHBsZVBheVNoaXBw
aW5nTWV0aG9kLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUU5NkE5MzFEMUEwREREMDBCODY3Njgg
LyogSlNBcHBsZVBheVNoaXBwaW5nTWV0aG9kU2VsZWN0ZWRFdmVudC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNTc2ODE0NDExRTcwOUZBNDAwRTc3NzU0IC8qIEpTRWNkaEtleURlcml2ZVBhcmFtcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNjVERjMxREIwOUQxQzEyMzAwMEJFMzI1IC8qIEpTQXR0ci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRkRBMTVFOUUxMkIwM0VFMTAwM0E1ODNBIC8qIEpTQXVkaW9C
dWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZERjdFOUM0MTNBQzIxREIwMEE1MUVBQyAvKiBK
U0F1ZGlvQnVmZmVyQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLApAQCAtMjg0NDksNiArMjg0NjQs
NyBAQAogCQkJCUE4RUE4MDBBMEExOTUxNkUwMEE4RUY1RiAvKiBTdHlsZVNoZWV0TGlzdC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQkM1RUI1RTUwRTgxQkY2RDAwQjI1OTY1IC8qIFN0eWxlU3Vycm91
bmREYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVFQjgxMDBFODFGMkNFMDBCMjU5NjUgLyog
U3R5bGVUcmFuc2Zvcm1EYXRhLmggaW4gSGVhZGVycyAqLywKKwkJCQk1NzY4MTQyQTFFNkY5OUMx
MDBFNzc3NTQgLyogQ3J5cHRvQWxnb3JpdGhtRWNkaEtleURlcml2ZVBhcmFtcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRTRERUFBMTgxN0E5M0RDMzAwMEUwNDMwIC8qIFN0eWxlVHJlZVJlc29sdmVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDJFNzZEQzFDN0FGNzc2MDBFMzYxNEQgLyogU3R5bGVV
cGRhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0ODEzN0I5MURCM0I1MjYwMDVDNTlCRiAvKiBT
dHlsZVZhbGlkaXR5LmggaW4gSGVhZGVycyAqLywKQEAgLTMwMzg1LDYgKzMwNDAxLDcgQEAKIAkJ
CQlBODcxREIyNjBBMTUwQkQ2MDBCMTJBNjggLyogSFRNTFRhYmxlU2VjdGlvbkVsZW1lbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRDY2ODE3RkExNjZGRTZENzAwRkEwN0I0IC8qIEhUTUxUZW1w
bGF0ZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgxMzY5RDcwOTczNzRGNjAwRDc0
NDYzIC8qIEhUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTc2ODE0
NDAxRTcwOUZBMTAwRTc3NzU0IC8qIEpTRWNkaEtleURlcml2ZVBhcmFtcy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk5QkM2QzIxQzEzQ0NDOTdCMDA4RTAzMzcgLyogSFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODMwNTE5OTUxQkIwRjExMDAwRjM3NzJF
IC8qIEhUTUxUaW1lRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODcxREMyOTBBMTUy
MDU3MDBCMTJBNjggLyogSFRNTFRpdGxlRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMw
NTg2LDYgKzMwNjAzLDcgQEAKIAkJCQk3NkZCOUZGODE5QTczRTNBMDA0MjA1NjIgLyogSlNBdXRv
Y29tcGxldGVFcnJvckV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMTI0RUZGMEMyNjQ0
N0EwMDlFMjM0OSAvKiBKU0JhclByb3AuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5NDYzNDYx
MDdBOTM0QjAwODU3MTkzIC8qIEpTQmVmb3JlTG9hZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTU3NjgxNDM1MUU2RkUzRTgwMEU3Nzc1NCAvKiBDcnlwdG9BbGdvcml0aG1FQ0RITWFjLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTcwRjU0NkU4QjhCNUQ3REM1NEVFMTQ0RSAvKiBKU0JlZm9y
ZVVubG9hZEV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZERjA5REM4MTM5OUI2MjIwMDY4
OEU1QiAvKiBKU0JpcXVhZEZpbHRlck5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkUyRDk5
Q0QxMEUyQkJEQTAwNDk2MzM3IC8qIEpTQmxvYi5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU3VidGxlQ3J5cHRvQ3VzdG9tLmNwcAppbmRl
eCA0NmZmMzUxZWQ0OTM5Yzg0NWIxY2Y4NWYwZDU2MmJhYzMxYWZkN2Y0Li44YWM5NzI4NDZhNTgw
OGJiZjJhYzA5ZWQxYjU3OWJhNTFjMGRhMDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1N1YnRsZUNyeXB0b0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNTdWJ0bGVDcnlwdG9DdXN0b20uY3BwCkBAIC0zOSw2ICszOSw3IEBACiAj
aW5jbHVkZSAiSlNET01Qcm9taXNlLmgiCiAjaW5jbHVkZSAiSlNET01XcmFwcGVyLmgiCiAjaW5j
bHVkZSAiSlNFY0tleVBhcmFtcy5oIgorI2luY2x1ZGUgIkpTRWNkaEtleURlcml2ZVBhcmFtcy5o
IgogI2luY2x1ZGUgIkpTSG1hY0tleVBhcmFtcy5oIgogI2luY2x1ZGUgIkpTSnNvbldlYktleS5o
IgogI2luY2x1ZGUgIkpTUnNhSGFzaGVkSW1wb3J0UGFyYW1zLmgiCkBAIC0xNjAsOSArMTYxLDI4
IEBAIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gbm9y
bWFsaXplQ3J5cHRvQWxnb3JpdGhtUGFyYW1lCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBPcGVyYXRpb25zOjpEZXJpdmVLZXk6Ci0gICAgICAgIGNhc2Ug
T3BlcmF0aW9uczo6RGVyaXZlQml0czoKICAgICAgICAgICAgIHRocm93Tm90U3VwcG9ydGVkRXJy
b3Ioc3RhdGUsIHNjb3BlKTsKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICBj
YXNlIE9wZXJhdGlvbnM6OkRlcml2ZUJpdHM6CisgICAgICAgICAgICBzd2l0Y2ggKCppZGVudGlm
aWVyKSB7CisgICAgICAgICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkVDREg6
IHsKKyAgICAgICAgICAgICAgICAvLyBSZW1vdmUgdGhpcyBoYWNrIG9uY2UgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2OTMzMyBpcyBmaXhlZC4KKyAgICAgICAgICAg
ICAgICBKU1ZhbHVlIG5hbWVWYWx1ZSA9IHZhbHVlLmdldE9iamVjdCgpLT5nZXQoJnN0YXRlLCBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZzdGF0ZSwgIm5hbWUiKSk7CisgICAgICAgICAgICAgICAg
SlNWYWx1ZSBwdWJsaWNWYWx1ZSA9IHZhbHVlLmdldE9iamVjdCgpLT5nZXQoJnN0YXRlLCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKCZzdGF0ZSwgInB1YmxpYyIpKTsKKyAgICAgICAgICAgICAgICBK
U09iamVjdCogbmV3VmFsdWUgPSBjb25zdHJ1Y3RFbXB0eU9iamVjdCgmc3RhdGUpOworICAgICAg
ICAgICAgICAgIG5ld1ZhbHVlLT5wdXREaXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmco
JnZtLCAibmFtZSIpLCBuYW1lVmFsdWUpOworICAgICAgICAgICAgICAgIG5ld1ZhbHVlLT5wdXRE
aXJlY3Qodm0sIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAicHVibGljS2V5IiksIHB1Ymxp
Y1ZhbHVlKTsKKworICAgICAgICAgICAgICAgIGF1dG8gcGFyYW1zID0gY29udmVydERpY3Rpb25h
cnk8Q3J5cHRvQWxnb3JpdGhtRWNkaEtleURlcml2ZVBhcmFtcz4oc3RhdGUsIG5ld1ZhbHVlKTsK
KyAgICAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBudWxscHRyKTsKKyAg
ICAgICAgICAgICAgICByZXN1bHQgPSBzdGQ6Om1ha2VfdW5pcXVlPENyeXB0b0FsZ29yaXRobUVj
ZGhLZXlEZXJpdmVQYXJhbXM+KHBhcmFtcyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIHRocm93Tm90
U3VwcG9ydGVkRXJyb3Ioc3RhdGUsIHNjb3BlKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIE9w
ZXJhdGlvbnM6OkdlbmVyYXRlS2V5OgogICAgICAgICAgICAgc3dpdGNoICgqaWRlbnRpZmllcikg
ewogICAgICAgICAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FFU19QS0NT
MV92MV81OiB7CkBAIC02NjAsNDAgKzY4MCw2IEBAIHN0YXRpYyB2b2lkIGpzU3VidGxlQ3J5cHRv
RnVuY3Rpb25EaWdlc3RQcm9taXNlKEV4ZWNTdGF0ZSYgc3RhdGUsIFJlZjxEZWZlcnJlZFByCiAg
ICAgYWxnb3JpdGhtLT5kaWdlc3QoV1RGTW92ZShkYXRhKSwgV1RGTW92ZShjYWxsYmFjayksIFdU
Rk1vdmUoZXhjZXB0aW9uQ2FsbGJhY2spLCAqc2NyaXB0RXhlY3V0aW9uQ29udGV4dEZyb21FeGVj
U3RhdGUoJnN0YXRlKSwgc3VidGxlLT53cmFwcGVkKCkud29ya1F1ZXVlKCkpOwogfQogCi1zdGF0
aWMgdm9pZCBqc1N1YnRsZUNyeXB0b0Z1bmN0aW9uRGVyaXZlS2V5UHJvbWlzZShFeGVjU3RhdGUm
IHN0YXRlLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCi17Ci0gICAgVk0mIHZtID0g
c3RhdGUudm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0K
LSAgICBpZiAoVU5MSUtFTFkoc3RhdGUuYXJndW1lbnRDb3VudCgpIDwgNSkpIHsKLSAgICAgICAg
cHJvbWlzZS0+cmVqZWN0PElETEFueT4oY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0
YXRlKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBhdXRvIHBhcmFtcyA9IG5vcm1h
bGl6ZUNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMoc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3Vt
ZW50KDApLCBPcGVyYXRpb25zOjpEZXJpdmVLZXkpOwotICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
c2NvcGUsIHZvaWQoKSk7Ci0KLSAgICAvLyBXZSBzaG91bGQgYWx3YXlzIHJldHVybiBhIE5PVF9T
VVBQT1JURURfRVJSIHNpbmNlIHdlIGN1cnJlbnRseSBkb24ndCBzdXBwb3J0IGFueSBhbGdvcml0
aG1zIHRoYXQgaGFzIGRlcml2ZUtleSBvcGVyYXRpb24uCi0gICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci19Ci0KLXN0YXRpYyB2b2lkIGpzU3VidGxlQ3J5cHRvRnVuY3Rpb25EZXJpdmVCaXRzUHJv
bWlzZShFeGVjU3RhdGUmIHN0YXRlLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCi17
Ci0gICAgVk0mIHZtID0gc3RhdGUudm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7Ci0KLSAgICBpZiAoVU5MSUtFTFkoc3RhdGUuYXJndW1lbnRDb3VudCgpIDwg
MykpIHsKLSAgICAgICAgcHJvbWlzZS0+cmVqZWN0PElETEFueT4oY3JlYXRlTm90RW5vdWdoQXJn
dW1lbnRzRXJyb3IoJnN0YXRlKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBhdXRv
IHBhcmFtcyA9IG5vcm1hbGl6ZUNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMoc3RhdGUsIHN0YXRl
LnVuY2hlY2tlZEFyZ3VtZW50KDApLCBPcGVyYXRpb25zOjpEZXJpdmVCaXRzKTsKLSAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwotCi0gICAgLy8gV2Ugc2hvdWxkIGFsd2F5
cyByZXR1cm4gYSBOT1RfU1VQUE9SVEVEX0VSUiBzaW5jZSB3ZSBjdXJyZW50bHkgZG9uJ3Qgc3Vw
cG9ydCBhbnkgYWxnb3JpdGhtcyB0aGF0IGhhcyBkZXJpdmVCaXRzIG9wZXJhdGlvbi4KLSAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQogc3RhdGljIHZvaWQganNTdWJ0bGVDcnlwdG9GdW5j
dGlvbkdlbmVyYXRlS2V5UHJvbWlzZShFeGVjU3RhdGUmIHN0YXRlLCBSZWY8RGVmZXJyZWRQcm9t
aXNlPiYmIHByb21pc2UpCiB7CiAgICAgVk0mIHZtID0gc3RhdGUudm0oKTsKQEAgLTc0Nyw2ICs3
MzMsNzEgQEAgc3RhdGljIHZvaWQganNTdWJ0bGVDcnlwdG9GdW5jdGlvbkdlbmVyYXRlS2V5UHJv
bWlzZShFeGVjU3RhdGUmIHN0YXRlLCBSZWY8RGVmZXIKICAgICBhbGdvcml0aG0tPmdlbmVyYXRl
S2V5KCpwYXJhbXMsIGV4dHJhY3RhYmxlLCBrZXlVc2FnZXMsIFdURk1vdmUoY2FsbGJhY2spLCBX
VEZNb3ZlKGV4Y2VwdGlvbkNhbGxiYWNrKSwgKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHRGcm9tRXhl
Y1N0YXRlKCZzdGF0ZSkpOwogfQogCitzdGF0aWMgdm9pZCBqc1N1YnRsZUNyeXB0b0Z1bmN0aW9u
RGVyaXZlS2V5UHJvbWlzZShFeGVjU3RhdGUmIHN0YXRlLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYm
IHByb21pc2UpCit7CisgICAgVk0mIHZtID0gc3RhdGUudm0oKTsKKyAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBpZiAoVU5MSUtFTFkoc3RhdGUuYXJndW1l
bnRDb3VudCgpIDwgNSkpIHsKKyAgICAgICAgcHJvbWlzZS0+cmVqZWN0PElETEFueT4oY3JlYXRl
Tm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBhdXRvIHBhcmFtcyA9IG5vcm1hbGl6ZUNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMo
c3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApLCBPcGVyYXRpb25zOjpEZXJpdmVLZXkp
OworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CisKKyAgICAvLyBXZSBz
aG91bGQgYWx3YXlzIHJldHVybiBhIE5PVF9TVVBQT1JURURfRVJSIHNpbmNlIHdlIGN1cnJlbnRs
eSBkb24ndCBzdXBwb3J0IGFueSBhbGdvcml0aG1zIHRoYXQgaGFzIGRlcml2ZUtleSBvcGVyYXRp
b24uCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3N0YXRpYyB2b2lkIGpzU3VidGxl
Q3J5cHRvRnVuY3Rpb25EZXJpdmVCaXRzUHJvbWlzZShFeGVjU3RhdGUmIHN0YXRlLCBSZWY8RGVm
ZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCit7CisgICAgVk0mIHZtID0gc3RhdGUudm0oKTsKKyAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBpZiAoVU5MSUtF
TFkoc3RhdGUuYXJndW1lbnRDb3VudCgpIDwgMykpIHsKKyAgICAgICAgcHJvbWlzZS0+cmVqZWN0
PElETEFueT4oY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHBhcmFtcyA9IG5vcm1hbGl6ZUNyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnMoc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApLCBPcGVyYXRp
b25zOjpEZXJpdmVCaXRzKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkp
OworCisgICAgYXV0byBiYXNlS2V5ID0gdG9DcnlwdG9LZXkoc3RhdGUsIHN0YXRlLnVuY2hlY2tl
ZEFyZ3VtZW50KDEpKTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB2b2lkKCkpOwor
CisgICAgYXV0byBsZW5ndGggPSBjb252ZXJ0PElETFVuc2lnbmVkTG9uZz4oc3RhdGUsIHN0YXRl
LnVuY2hlY2tlZEFyZ3VtZW50KDIpLCBJbnRlZ2VyQ29udmVyc2lvbkNvbmZpZ3VyYXRpb246Ok5v
cm1hbCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKKworICAgIGlm
IChwYXJhbXMtPmlkZW50aWZpZXIgIT0gYmFzZUtleS0+YWxnb3JpdGhtSWRlbnRpZmllcigpKSB7
CisgICAgICAgIHByb21pc2UtPnJlamVjdChJTlZBTElEX0FDQ0VTU19FUlIsIEFTQ0lJTGl0ZXJh
bCgiQ3J5cHRvS2V5IGRvZXNuJ3QgbWF0Y2ggQWxnb3JpdGhtSWRlbnRpZmllciIpKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghYmFzZUtleS0+YWxsb3dzKENyeXB0b0tleVVz
YWdlRGVyaXZlQml0cykpIHsKKyAgICAgICAgcHJvbWlzZS0+cmVqZWN0KElOVkFMSURfQUNDRVNT
X0VSUiwgQVNDSUlMaXRlcmFsKCJDcnlwdG9LZXkgZG9lc24ndCBzdXBwb3J0IGJpdHMgZGVyaXZh
dGlvbiIpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gYWxnb3JpdGhtID0g
Q3J5cHRvQWxnb3JpdGhtUmVnaXN0cnk6OnNpbmdsZXRvbigpLmNyZWF0ZShwYXJhbXMtPmlkZW50
aWZpZXIpOworICAgIGlmIChVTkxJS0VMWSghYWxnb3JpdGhtKSkgeworICAgICAgICB0aHJvd05v
dFN1cHBvcnRlZEVycm9yKHN0YXRlLCBzY29wZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBhdXRvIGNhbGxiYWNrID0gW2NhcHR1cmVkUHJvbWlzZSA9IHByb21pc2UuY29weVJlZigp
XShjb25zdCBWZWN0b3I8dWludDhfdD4mIGRlcml2ZWRLZXkpIG11dGFibGUgeworICAgICAgICBm
dWxmaWxsUHJvbWlzZVdpdGhBcnJheUJ1ZmZlcihXVEZNb3ZlKGNhcHR1cmVkUHJvbWlzZSksIGRl
cml2ZWRLZXkuZGF0YSgpLCBkZXJpdmVkS2V5LnNpemUoKSk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9OworICAgIGF1dG8gZXhjZXB0aW9uQ2FsbGJhY2sgPSBbY2FwdHVyZWRQcm9taXNlID0gV1RG
TW92ZShwcm9taXNlKV0oRXhjZXB0aW9uQ29kZSBlYykgbXV0YWJsZSB7CisgICAgICAgIHJlamVj
dFdpdGhFeGNlcHRpb24oV1RGTW92ZShjYXB0dXJlZFByb21pc2UpLCBlYyk7CisgICAgfTsKKwor
ICAgIGF1dG8gc3VidGxlID0ganNEeW5hbWljRG93bmNhc3Q8SlNTdWJ0bGVDcnlwdG8qPih2bSwg
c3RhdGUudGhpc1ZhbHVlKCkpOworICAgIEFTU0VSVChzdWJ0bGUpOworICAgIGFsZ29yaXRobS0+
ZGVyaXZlQml0cyhXVEZNb3ZlKHBhcmFtcyksIGJhc2VLZXkucmVsZWFzZU5vbk51bGwoKSwgbGVu
Z3RoLCBXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShleGNlcHRpb25DYWxsYmFjayksICpzY3Jp
cHRFeGVjdXRpb25Db250ZXh0RnJvbUV4ZWNTdGF0ZSgmc3RhdGUpLCBzdWJ0bGUtPndyYXBwZWQo
KS53b3JrUXVldWUoKSk7Cit9CisKIHN0YXRpYyB2b2lkIGpzU3VidGxlQ3J5cHRvRnVuY3Rpb25J
bXBvcnRLZXlQcm9taXNlKEV4ZWNTdGF0ZSYgc3RhdGUsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYg
cHJvbWlzZSkKIHsKICAgICBWTSYgdm0gPSBzdGF0ZS52bSgpOwpAQCAtMTA5OCw2ICsxMTQ5LDEy
IEBAIEpTVmFsdWUgSlNTdWJ0bGVDcnlwdG86OmRpZ2VzdChFeGVjU3RhdGUmIHN0YXRlKQogICAg
IHJldHVybiBjYWxsUHJvbWlzZUZ1bmN0aW9uPGpzU3VidGxlQ3J5cHRvRnVuY3Rpb25EaWdlc3RQ
cm9taXNlLCBQcm9taXNlRXhlY3V0aW9uU2NvcGU6OldpbmRvd09yV29ya2VyPihzdGF0ZSk7CiB9
CiAKKworSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6Z2VuZXJhdGVLZXkoRXhlY1N0YXRlJiBzdGF0
ZSkKK3sKKyAgICByZXR1cm4gY2FsbFByb21pc2VGdW5jdGlvbjxqc1N1YnRsZUNyeXB0b0Z1bmN0
aW9uR2VuZXJhdGVLZXlQcm9taXNlLCBQcm9taXNlRXhlY3V0aW9uU2NvcGU6OldpbmRvd09yV29y
a2VyPihzdGF0ZSk7Cit9CisKIEpTVmFsdWUgSlNTdWJ0bGVDcnlwdG86OmRlcml2ZUtleShFeGVj
U3RhdGUmIHN0YXRlKQogewogICAgIHJldHVybiBjYWxsUHJvbWlzZUZ1bmN0aW9uPGpzU3VidGxl
Q3J5cHRvRnVuY3Rpb25EZXJpdmVLZXlQcm9taXNlLCBQcm9taXNlRXhlY3V0aW9uU2NvcGU6Oldp
bmRvd09yV29ya2VyPihzdGF0ZSk7CkBAIC0xMTA4LDExICsxMTY1LDYgQEAgSlNWYWx1ZSBKU1N1
YnRsZUNyeXB0bzo6ZGVyaXZlQml0cyhFeGVjU3RhdGUmIHN0YXRlKQogICAgIHJldHVybiBjYWxs
UHJvbWlzZUZ1bmN0aW9uPGpzU3VidGxlQ3J5cHRvRnVuY3Rpb25EZXJpdmVCaXRzUHJvbWlzZSwg
UHJvbWlzZUV4ZWN1dGlvblNjb3BlOjpXaW5kb3dPcldvcmtlcj4oc3RhdGUpOwogfQogCi1KU1Zh
bHVlIEpTU3VidGxlQ3J5cHRvOjpnZW5lcmF0ZUtleShFeGVjU3RhdGUmIHN0YXRlKQotewotICAg
IHJldHVybiBjYWxsUHJvbWlzZUZ1bmN0aW9uPGpzU3VidGxlQ3J5cHRvRnVuY3Rpb25HZW5lcmF0
ZUtleVByb21pc2UsIFByb21pc2VFeGVjdXRpb25TY29wZTo6V2luZG93T3JXb3JrZXI+KHN0YXRl
KTsKLX0KLQogSlNWYWx1ZSBKU1N1YnRsZUNyeXB0bzo6aW1wb3J0S2V5KEV4ZWNTdGF0ZSYgc3Rh
dGUpCiB7CiAgICAgcmV0dXJuIGNhbGxQcm9taXNlRnVuY3Rpb248anNTdWJ0bGVDcnlwdG9GdW5j
dGlvbkltcG9ydEtleVByb21pc2UsIFByb21pc2VFeGVjdXRpb25TY29wZTo6V2luZG93T3JXb3Jr
ZXI+KHN0YXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9Db21tb25Dcnlw
dG9VdGlsaXRpZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9Db21tb25DcnlwdG9VdGlsaXRp
ZXMuaAppbmRleCA2NGNkNTkyYWYxMTFjNDIyNjgzNDE3Mzc4MWJmNzRiNzkzNTA3NDU4Li5mNTRl
Y2MxY2JjYjE2NjIwMGFiZjkzZTZlNGQ0Y2I1YWU5ZjE3Nzg1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vQ29tbW9uQ3J5cHRvVXRpbGl0aWVzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL0NvbW1vbkNyeXB0b1V0aWxpdGllcy5oCkBAIC0xMDcsNyArMTA3LDcgQEAgZXh0
ZXJuICJDIiBDQ0NyeXB0b3JTdGF0dXMgQ0NFQ0NyeXB0b3JFeHBvcnRLZXkoQ0NFQ0tleUV4dGVy
bmFsRm9ybWF0IGZvcm1hdCwgdm8KIGV4dGVybiAiQyIgaW50IENDRUNHZXRLZXlTaXplKENDRUND
cnlwdG9yUmVmIGtleSk7CiBleHRlcm4gIkMiIENDQ3J5cHRvclN0YXR1cyBDQ0VDQ3J5cHRvckNy
ZWF0ZUZyb21EYXRhKHNpemVfdCBrZXlTaXplLCB1aW50OF90ICpxWCwgc2l6ZV90IHFYTGVuZ3Ro
LCB1aW50OF90ICpxWSwgc2l6ZV90IHFZTGVuZ3RoLCBDQ0VDQ3J5cHRvclJlZiAqcmVmKTsKIGV4
dGVybiAiQyIgQ0NDcnlwdG9yU3RhdHVzIENDRUNDcnlwdG9yR2V0S2V5Q29tcG9uZW50cyhDQ0VD
Q3J5cHRvclJlZiBlY0tleSwgc2l6ZV90ICprZXlTaXplLCB1aW50OF90ICpxWCwgc2l6ZV90ICpx
WExlbmd0aCwgdWludDhfdCAqcVksIHNpemVfdCAqcVlMZW5ndGgsIHVpbnQ4X3QgKmQsIHNpemVf
dCAqZExlbmd0aCk7Ci0KK2V4dGVybiAiQyIgQ0NDcnlwdG9yU3RhdHVzIENDRUNDcnlwdG9yQ29t
cHV0ZVNoYXJlZFNlY3JldChDQ0VDQ3J5cHRvclJlZiBwcml2YXRlS2V5LCBDQ0VDQ3J5cHRvclJl
ZiBwdWJsaWNLZXksIHZvaWQgKm91dCwgc2l6ZV90ICpvdXRMZW4pOwogCiAjaWYgIVVTRShBUFBM
RV9JTlRFUk5BTF9TREspCiBleHRlcm4gIkMiIENDQ3J5cHRvclN0YXR1cyBDQ0NyeXB0b3JHQ00o
Q0NPcGVyYXRpb24gb3AsIENDQWxnb3JpdGhtIGFsZywgY29uc3Qgdm9pZCoga2V5LCBzaXplX3Qg
a2V5TGVuZ3RoLCBjb25zdCB2b2lkKiBpdiwgc2l6ZV90IGl2TGVuLCBjb25zdCB2b2lkKiBhRGF0
YSwgc2l6ZV90IGFEYXRhTGVuLCBjb25zdCB2b2lkKiBkYXRhSW4sIHNpemVfdCBkYXRhSW5MZW5n
dGgsIHZvaWQqIGRhdGFPdXQsIHZvaWQqIHRhZywgc2l6ZV90KiB0YWdMZW5ndGgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRobS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtLmNwcAppbmRleCBmY2NhNjgzYzE1YjI5N2U3
OTc4MmE4YmJjODAyM2I1MzY5ZDRhYzFmLi5lZmY1ZWM3OTI5MTUxMWUwOGQ3OWU3YjY2YTY5ZDgy
NjUwN2JjY2U4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3Jp
dGhtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtLmNwcApA
QCAtNjIsNiArNjIsMTEgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG06OmdlbmVyYXRlS2V5KGNvbnN0
IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBib29sLCBDcnlwdG8KICAgICBleGNlcHRpb25D
YWxsYmFjayhOT1RfU1VQUE9SVEVEX0VSUik7CiB9CiAKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtOjpk
ZXJpdmVCaXRzKHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiYmLCBS
ZWY8Q3J5cHRvS2V5PiYmLCB1bnNpZ25lZCBsb25nLCBWZWN0b3JDYWxsYmFjayYmLCBFeGNlcHRp
b25DYWxsYmFjayYmIGV4Y2VwdGlvbkNhbGxiYWNrLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwg
V29ya1F1ZXVlJikKK3sKKyAgICBleGNlcHRpb25DYWxsYmFjayhOT1RfU1VQUE9SVEVEX0VSUik7
Cit9CisKIHZvaWQgQ3J5cHRvQWxnb3JpdGhtOjppbXBvcnRLZXkoU3VidGxlQ3J5cHRvOjpLZXlG
b3JtYXQsIEtleURhdGEmJiwgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBh
cmFtZXRlcnM+JiYsIGJvb2wsIENyeXB0b0tleVVzYWdlQml0bWFwLCBLZXlDYWxsYmFjayYmLCBF
eGNlcHRpb25DYWxsYmFjayYmIGV4Y2VwdGlvbkNhbGxiYWNrKQogewogICAgIGV4Y2VwdGlvbkNh
bGxiYWNrKE5PVF9TVVBQT1JURURfRVJSKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9DcnlwdG9BbGdvcml0aG0uaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdv
cml0aG0uaAppbmRleCBjMzBhZTMyNGQ5ZTcwZGZhOTlkZDc2MzU1MzAxNTU0OTJkNjI5ZTQ0Li42
NDY3YmNhMDVmYjE2ZThhYzhmMzE4NWJjYTk0NTc3MTRlOGUxNzJkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL0NyeXB0b0FsZ29yaXRobS5oCkBAIC03Miw2ICs3Miw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgdmVyaWZ5KFJlZjxDcnlwdG9LZXk+JiYsIFZlY3Rvcjx1aW50OF90PiYmIHNp
Z25hdHVyZSwgVmVjdG9yPHVpbnQ4X3Q+JiYsIEJvb2xDYWxsYmFjayYmLCBFeGNlcHRpb25DYWxs
YmFjayYmLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgV29ya1F1ZXVlJik7CiAgICAgdmlydHVh
bCB2b2lkIGRpZ2VzdChWZWN0b3I8dWludDhfdD4mJiwgVmVjdG9yQ2FsbGJhY2smJiwgRXhjZXB0
aW9uQ2FsbGJhY2smJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFdvcmtRdWV1ZSYpOwogICAg
IHZpcnR1YWwgdm9pZCBnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
JiwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2VCaXRtYXAsIEtleU9yS2V5UGFpckNh
bGxiYWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGVyaXZlQml0cyhzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVycz4mJiwgUmVmPENyeXB0b0tleT4mJiwgdW5zaWduZWQgbG9uZyBsZW5ndGgs
IFZlY3RvckNhbGxiYWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYsIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCBXb3JrUXVldWUmKTsKICAgICAvLyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2OTI2MgogICAgIHZpcnR1YWwgdm9pZCBpbXBvcnRLZXkoU3Vi
dGxlQ3J5cHRvOjpLZXlGb3JtYXQsIEtleURhdGEmJiwgY29uc3Qgc3RkOjp1bmlxdWVfcHRyPENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+JiYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVz
YWdlQml0bWFwLCBLZXlDYWxsYmFjayYmLCBFeGNlcHRpb25DYWxsYmFjayYmKTsKICAgICB2aXJ0
dWFsIHZvaWQgZXhwb3J0S2V5KFN1YnRsZUNyeXB0bzo6S2V5Rm9ybWF0LCBSZWY8Q3J5cHRvS2V5
PiYmLCBLZXlEYXRhQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ2FsbGJhY2smJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5oIGIvU291
cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMuaAppbmRleCA2YWE2
MzNiMjllZGQ4OGJiOGNlYmI3OTYyMmE1YjAwNzQ4N2ZmMjg0Li4wMWFiOTY1MjFmNzcyMzc2M2Rh
ZGZkYzIyMzYwNGZjMWRjMDFiOTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9D
cnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzLmgKQEAgLTQxLDYgKzQxLDcgQEAgcHVibGljOgogICAg
ICAgICBBZXNHY21QYXJhbXMsCiAgICAgICAgIEFlc0tleUdlblBhcmFtcywKICAgICAgICAgRWNL
ZXlQYXJhbXMsCisgICAgICAgIEVjZGhLZXlEZXJpdmVQYXJhbXMsCiAgICAgICAgIEhtYWNLZXlQ
YXJhbXMsCiAgICAgICAgIFJzYUhhc2hlZEtleUdlblBhcmFtcywKICAgICAgICAgUnNhSGFzaGVk
SW1wb3J0UGFyYW1zLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtRUNESC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RILmNwcAppbmRleCBmZDZjMTA1YTZkYmRkZjBiZWRlMjYx
MTBjYmI5YjUwZTNiZTVmMGJhLi45ZGU0MWI4MDMxNjg0NGViY2MzMTcyYTg5NmUwNDMzZmYxYzAx
ZWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1FQ0RILmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1FQ0RILmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShTVUJU
TEVfQ1JZUFRPKQogCiAjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtRWNLZXlQYXJhbXMuaCIKKyNp
bmNsdWRlICJDcnlwdG9BbGdvcml0aG1FY2RoS2V5RGVyaXZlUGFyYW1zLmgiCiAjaW5jbHVkZSAi
Q3J5cHRvS2V5RUMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAKQEAgLTY1LDYgKzY2
LDU2IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtRUNESDo6Z2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW1ldGVyCiAgICAgY2FsbGJhY2soV1RGTW92ZShwYWly
KSk7CiB9CiAKK3ZvaWQgQ3J5cHRvQWxnb3JpdGhtRUNESDo6ZGVyaXZlQml0cyhzdGQ6OnVuaXF1
ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4mJiBwYXJhbWV0ZXJzLCBSZWY8Q3J5cHRv
S2V5PiYmIGJhc2VLZXksIHVuc2lnbmVkIGxvbmcgbGVuZ3RoLCBWZWN0b3JDYWxsYmFjayYmIGNh
bGxiYWNrLCBFeGNlcHRpb25DYWxsYmFjayYmIGV4Y2VwdGlvbkNhbGxiYWNrLCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0LCBXb3JrUXVldWUmIHdvcmtRdWV1ZSkKK3sKKyAgICAvLyBX
ZSBvbmx5IGFjY2VwdCBsZW5ndGggdGhhdCBpcyBhIG11bHRpcGxlIG9mIDguCisgICAgaWYgKGxl
bmd0aCAlIDgpIHsKKyAgICAgICAgZXhjZXB0aW9uQ2FsbGJhY2soT3BlcmF0aW9uRXJyb3IpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQVNTRVJUKHBhcmFtZXRlcnMpOworICAgIGF1
dG8mIGVjUGFyYW1ldGVycyA9IGRvd25jYXN0PENyeXB0b0FsZ29yaXRobUVjZGhLZXlEZXJpdmVQ
YXJhbXM+KCpwYXJhbWV0ZXJzKTsKKworICAgIGlmIChiYXNlS2V5LT50eXBlKCkgIT0gQ3J5cHRv
S2V5OjpUeXBlOjpQcml2YXRlKSB7CisgICAgICAgIGV4Y2VwdGlvbkNhbGxiYWNrKElOVkFMSURf
QUNDRVNTX0VSUik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgQVNTRVJUKGVjUGFyYW1l
dGVycy5wdWJsaWNLZXkpOworICAgIGlmIChlY1BhcmFtZXRlcnMucHVibGljS2V5LT50eXBlKCkg
IT0gQ3J5cHRvS2V5OjpUeXBlOjpQdWJsaWMpIHsKKyAgICAgICAgZXhjZXB0aW9uQ2FsbGJhY2so
SU5WQUxJRF9BQ0NFU1NfRVJSKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoYmFz
ZUtleS0+YWxnb3JpdGhtSWRlbnRpZmllcigpICE9IGVjUGFyYW1ldGVycy5wdWJsaWNLZXktPmFs
Z29yaXRobUlkZW50aWZpZXIoKSkgeworICAgICAgICBleGNlcHRpb25DYWxsYmFjayhJTlZBTElE
X0FDQ0VTU19FUlIpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGF1dG8mIGVjQmFzZUtl
eSA9IGRvd25jYXN0PENyeXB0b0tleUVDPihiYXNlS2V5LmdldCgpKTsKKyAgICBhdXRvJiBlY1B1
YmxpY0tleSA9IGRvd25jYXN0PENyeXB0b0tleUVDPigqKGVjUGFyYW1ldGVycy5wdWJsaWNLZXku
Z2V0KCkpKTsKKyAgICBpZiAoZWNCYXNlS2V5Lm5hbWVkQ3VydmUoKSAhPSBlY1B1YmxpY0tleS5u
YW1lZEN1cnZlKCkpIHsKKyAgICAgICAgZXhjZXB0aW9uQ2FsbGJhY2soSU5WQUxJRF9BQ0NFU1Nf
RVJSKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGF1dG8gdW5pZmllZENhbGxiYWNr
ID0gW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIGV4Y2VwdGlvbkNhbGxiYWNrID0gV1RG
TW92ZShleGNlcHRpb25DYWxsYmFjayldKHN0ZDo6b3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+PiYm
IGRlcml2ZWRLZXksIHVuc2lnbmVkIGxvbmcgbGVuZ3RoKSBtdXRhYmxlIHsKKyAgICAgICAgaWYg
KCFkZXJpdmVkS2V5KSB7CisgICAgICAgICAgICBleGNlcHRpb25DYWxsYmFjayhPcGVyYXRpb25F
cnJvcik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYgKCFsZW5n
dGgpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKFdURk1vdmUoKmRlcml2ZWRLZXkpKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAobGVuZ3RoIC8gOCA+ICgqZGVy
aXZlZEtleSkuc2l6ZSgpKSB7CisgICAgICAgICAgICBleGNlcHRpb25DYWxsYmFjayhPcGVyYXRp
b25FcnJvcik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgKCpkZXJp
dmVkS2V5KS5zaHJpbmsobGVuZ3RoIC8gOCk7CisgICAgICAgIGNhbGxiYWNrKFdURk1vdmUoKmRl
cml2ZWRLZXkpKTsKKyAgICB9OworICAgIHBsYXRmb3JtRGVyaXZlQml0cyhXVEZNb3ZlKGJhc2VL
ZXkpLCBlY1BhcmFtZXRlcnMucHVibGljS2V5LnJlbGVhc2VOb25OdWxsKCksIGxlbmd0aCwgV1RG
TW92ZSh1bmlmaWVkQ2FsbGJhY2spLCBjb250ZXh0LCB3b3JrUXVldWUpOworfQorCiB2b2lkIENy
eXB0b0FsZ29yaXRobUVDREg6OmltcG9ydEtleShTdWJ0bGVDcnlwdG86OktleUZvcm1hdCBmb3Jt
YXQsIEtleURhdGEmJiBkYXRhLCBjb25zdCBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGht
UGFyYW1ldGVycz4mJiBwYXJhbWV0ZXJzLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2Fn
ZUJpdG1hcCB1c2FnZXMsIEtleUNhbGxiYWNrJiYgY2FsbGJhY2ssIEV4Y2VwdGlvbkNhbGxiYWNr
JiYgZXhjZXB0aW9uQ2FsbGJhY2spCiB7CiAgICAgQVNTRVJUKHBhcmFtZXRlcnMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNE
SC5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNE
SC5oCmluZGV4IDUxYjQ2MmVjYmU5YTg0ZDZmOWUyYmRiOWUyNDQyNjk1ZmMzNjNkMjUuLmEzOTVh
M2YxYTUxYTVjMDZmMTgzMGY1NGJmODEwNTI2NmM2Yjc4ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDREguaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RILmgKQEAgLTQy
LDggKzQyLDEyIEBAIHByaXZhdGU6CiAgICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBpZGVu
dGlmaWVyKCkgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIGdlbmVyYXRlS2V5KGNvbnN0IENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJp
dG1hcCwgS2V5T3JLZXlQYWlyQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ2FsbGJhY2smJiwgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYpIGZpbmFsOworICAgIHZvaWQgZGVyaXZlQml0cyhzdGQ6OnVuaXF1
ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4mJiwgUmVmPENyeXB0b0tleT4mJiwgdW5z
aWduZWQgbG9uZyBsZW5ndGgsIFZlY3RvckNhbGxiYWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYs
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBXb3JrUXVldWUmKSBmaW5hbDsKICAgICB2b2lkIGlt
cG9ydEtleShTdWJ0bGVDcnlwdG86OktleUZvcm1hdCwgS2V5RGF0YSYmLCBjb25zdCBzdGQ6OnVu
aXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4mJiwgYm9vbCBleHRyYWN0YWJsZSwg
Q3J5cHRvS2V5VXNhZ2VCaXRtYXAsIEtleUNhbGxiYWNrJiYsIEV4Y2VwdGlvbkNhbGxiYWNrJiYp
IGZpbmFsOwogICAgIHZvaWQgZXhwb3J0S2V5KFN1YnRsZUNyeXB0bzo6S2V5Rm9ybWF0LCBSZWY8
Q3J5cHRvS2V5PiYmLCBLZXlEYXRhQ2FsbGJhY2smJiwgRXhjZXB0aW9uQ2FsbGJhY2smJikgZmlu
YWw7CisKKyAgICB1c2luZyBDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoc3RkOjpvcHRpb25hbDxW
ZWN0b3I8dWludDhfdD4+JiYsIHVuc2lnbmVkIGxvbmcpPjsKKyAgICB2b2lkIHBsYXRmb3JtRGVy
aXZlQml0cyhSZWY8Q3J5cHRvS2V5PiYmIGJhc2VLZXksIFJlZjxDcnlwdG9LZXk+JiYgcHVibGlj
S2V5LCB1bnNpZ25lZCBsb25nIGxlbmd0aCwgQ2FsbGJhY2smJiwgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYsIFdvcmtRdWV1ZSYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2dudXRscy9DcnlwdG9BbGdvcml0aG1FQ0RIR251
VExTLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9nbnV0bHMvQ3J5cHRvQWxnb3JpdGhtRUNE
SEdudVRMUy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTdjYzYwNDY2NDBiZTgxZmU4MjQyOTU5YTM4ZWQ1ODNi
NTMwYWE3OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9nbnV0bHMv
Q3J5cHRvQWxnb3JpdGhtRUNESEdudVRMUy5jcHAKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1FQ0RILmgi
CisKKyNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVk
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBDcnlwdG9BbGdvcml0aG1FQ0RIOjpw
bGF0Zm9ybURlcml2ZUJpdHMoUmVmPENyeXB0b0tleT4mJiwgUmVmPENyeXB0b0tleT4mJiwgdW5z
aWduZWQgbG9uZywgQ2FsbGJhY2smJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFdvcmtRdWV1
ZSYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRv
L2tleXMvQ3J5cHRvS2V5RUMuaAppbmRleCA1MDM5YjRlOTYzNDUyNDA2MTk1YzgzM2UxMTVlNTky
OWUyMzc2NjMwLi45NGE2ZDk0ZjFkNzdiNDU3Y2U5YzYyYTY1MjcyMzA5YjdkNjQ2MTlkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUVDLmgKQEAgLTg0LDYgKzg0LDggQEAg
cHVibGljOgogICAgIEpzb25XZWJLZXkgZXhwb3J0SndrKCkgY29uc3Q7CiAKICAgICBzaXplX3Qg
a2V5U2l6ZUluQml0cygpIGNvbnN0OworICAgIE5hbWVkQ3VydmUgbmFtZWRDdXJ2ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fY3VydmU7IH0KKyAgICBQbGF0Zm9ybUVDS2V5IHBsYXRmb3JtS2V5KCkgeyBy
ZXR1cm4gbV9wbGF0Zm9ybUtleTsgfQogCiBwcml2YXRlOgogICAgIENyeXB0b0tleUVDKENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXIsIE5hbWVkQ3VydmUsIENyeXB0b0tleVR5cGUsIFBsYXRmb3Jt
RUNLZXksIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlQml0bWFwKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtRUNESE1hYy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUVDREhNYWMuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmIzOGM1MGU4MmNjYjllMTI0MjgzODUyNzkzMWY1YjRkMTdmZDVmZDUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUVD
REhNYWMuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtRUNESC5oIgorCisjaWYgRU5BQkxFKFNVQlRM
RV9DUllQVE8pCisKKyNpbmNsdWRlICJDb21tb25DcnlwdG9VdGlsaXRpZXMuaCIKKyNpbmNsdWRl
ICJDcnlwdG9LZXlFQy5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIENyeXB0b0FsZ29yaXRobUVDREg6OnBsYXRmb3Jt
RGVyaXZlQml0cyhSZWY8Q3J5cHRvS2V5PiYmIGJhc2VLZXksIFJlZjxDcnlwdG9LZXk+JiYgcHVi
bGljS2V5LCB1bnNpZ25lZCBsb25nIGxlbmd0aCwgQ2FsbGJhY2smJiBjYWxsYmFjaywgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgV29ya1F1ZXVlJiB3b3JrUXVldWUpCit7CisgICAg
Y29udGV4dC5yZWYoKTsKKyAgICB3b3JrUXVldWUuZGlzcGF0Y2goW2Jhc2VLZXkgPSBXVEZNb3Zl
KGJhc2VLZXkpLCBwdWJsaWNLZXkgPSBXVEZNb3ZlKHB1YmxpY0tleSksIGxlbmd0aCwgY2FsbGJh
Y2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgJmNvbnRleHRdKCkgbXV0YWJsZSB7CisgICAgICAgIGF1
dG8mIGVjQmFzZUtleSA9IGRvd25jYXN0PENyeXB0b0tleUVDPihiYXNlS2V5LmdldCgpKTsKKyAg
ICAgICAgYXV0byYgZWNQdWJsaWNLZXkgPSBkb3duY2FzdDxDcnlwdG9LZXlFQz4ocHVibGljS2V5
LmdldCgpKTsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4gcmVzdWx0
ID0gc3RkOjpudWxsb3B0OworICAgICAgICBWZWN0b3I8dWludDhfdD4gZGVyaXZlZEtleShlY0Jh
c2VLZXkua2V5U2l6ZUluQml0cygpIC8gOCk7IC8vIFBlciBodHRwczovL3Rvb2xzLmlldGYub3Jn
L2h0bWwvcmZjNjA5MCNzZWN0aW9uLTQuCisgICAgICAgIHNpemVfdCBzaXplID0gZGVyaXZlZEtl
eS5zaXplKCk7CisgICAgICAgIGlmICghQ0NFQ0NyeXB0b3JDb21wdXRlU2hhcmVkU2VjcmV0KGVj
QmFzZUtleS5wbGF0Zm9ybUtleSgpLCBlY1B1YmxpY0tleS5wbGF0Zm9ybUtleSgpLCBkZXJpdmVk
S2V5LmRhdGEoKSwgJnNpemUpKQorICAgICAgICAgICAgcmVzdWx0ID0gV1RGTW92ZShkZXJpdmVk
S2V5KTsKKworICAgICAgICBjb250ZXh0LnBvc3RUYXNrKFtyZXN1bHQgPSBXVEZNb3ZlKHJlc3Vs
dCksIGxlbmd0aCwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCkgbXV0YWJsZSB7CisgICAgICAgICAgICBjYWxsYmFjayhXVEZNb3Zl
KHJlc3VsdCksIGxlbmd0aCk7CisgICAgICAgICAgICBjb250ZXh0LmRlcmVmKCk7CisgICAgICAg
IH0pOworICAgIH0pOworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29y
aXRobUVjZGhLZXlEZXJpdmVQYXJhbXMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0
ZXJzL0NyeXB0b0FsZ29yaXRobUVjZGhLZXlEZXJpdmVQYXJhbXMuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzAw
OTQ3ZGEyY2MzM2RkYTY5OGY0OGM0MDEyZmRjMTgxZGE2YmYyCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtRWNkaEtleURl
cml2ZVBhcmFtcy5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgorCisjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgQ3J5cHRvS2V5OworCitjbGFzcyBDcnlwdG9BbGdvcml0aG1FY2Ro
S2V5RGVyaXZlUGFyYW1zIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMg
eworcHVibGljOgorICAgIFJlZlB0cjxDcnlwdG9LZXk+IHB1YmxpY0tleTsKKworICAgIENsYXNz
IHBhcmFtZXRlcnNDbGFzcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIENsYXNzOjpFY2RoS2V5RGVy
aXZlUGFyYW1zOyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJWkVf
VFlQRV9UUkFJVFNfQ1JZUFRPX0FMR09SSVRITV9QQVJBTUVURVJTKEVjZGhLZXlEZXJpdmVQYXJh
bXMpCisKKyNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0VjZGhLZXlEZXJpdmVQYXJhbXMuaWRsIGIvU291
cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvRWNkaEtleURlcml2ZVBhcmFtcy5pZGwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjllZGI3MjNmM2I3M2NkMjQ5MTIwZjhlM2RiNGUyOTY3MjE5YzVlZQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0VjZGhLZXlEZXJp
dmVQYXJhbXMuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0
aW9uYWw9U1VCVExFX0NSWVBUTywKKyAgICBJbXBsZW1lbnRlZEFzPUNyeXB0b0FsZ29yaXRobUVj
ZGhLZXlEZXJpdmVQYXJhbXMsCitdIGRpY3Rpb25hcnkgRWNkaEtleURlcml2ZVBhcmFtcyA6IENy
eXB0b0FsZ29yaXRobVBhcmFtZXRlcnMgeworICAgIC8vIFdlIHNob3VsZCByZW5hbWUgdGhpcyB0
byBwdWJsaWMgb25jZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY5
MzMzIGlzIGZpeGVkLgorICAgIC8vIFRoZSBwZWVyJ3MgRUMgcHVibGljIGtleS4KKyAgICByZXF1
aXJlZCBDcnlwdG9LZXkgcHVibGljS2V5OworfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmZDkwZjcwODEyMjBiYWZhZjMx
MjlmOTBlOGEzY2Q1MGRjNGI2MDk3Li40YmViYmI5MzE3Y2NhMWE0NzcwZjU1ODM3ZDRiYzlmZGVm
Zjg4ODZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTctMDMtMDggIEppZXdlbiBUYW4gIDxq
aWV3ZW5fdGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQ3J5cHRvXSBJbXBsZW1lbnQgRUNE
SCBEZXJpdmVCaXRzIG9wZXJhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTY5MzE5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMzc4OTU4NT4K
KworICAgICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgICogVGVzdEV4
cGVjdGF0aW9uczoKKyAgICAgICAgUmVmaW5lIHNvbWUgY29tbWVudHMuCisgICAgICAgICogY3J5
cHRvL3N1YnRsZS9kZXJpdmUtYml0cy1tYWxmb3JtZWQtcGFyYW1ldGVycy1leHBlY3RlZC50eHQ6
IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Rlcml2ZUJpdHMtbWFsZm9y
bWVkLXBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGNyeXB0by9zdWJ0bGUvZGVy
aXZlLWJpdHMtbWFsZm9ybWVkLXBhcmFtZXRlcnMuaHRtbDogQWRkZWQuCisgICAgICAgICogY3J5
cHRvL3N1YnRsZS9kZXJpdmVCaXRzLW1hbGZvcm1lZC1wYXJhbWV0ZXJzLmh0bWw6IFJlbW92ZWQu
CisgICAgICAgICogY3J5cHRvL3N1YnRsZS9lY2RoLWRlcml2ZS1iaXRzLW1hbGZvcm1lZC1wYXJh
bWV0cnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjcnlwdG8vc3VidGxlL2VjZGgt
ZGVyaXZlLWJpdHMtbWFsZm9ybWVkLXBhcmFtZXRycy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBj
cnlwdG8vc3VidGxlL2VjZGgtZ2VuZXJhdGUta2V5LWRlcml2ZS1iaXRzLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogY3J5cHRvL3N1YnRsZS9lY2RoLWdlbmVyYXRlLWtleS1kZXJpdmUt
Yml0cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjcnlwdG8vc3VidGxlL2VjZGgtaW1wb3J0LWtl
eS1kZXJpdmUtYml0cy1jdXN0b20tbGVuZ3RoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1rZXktZGVyaXZlLWJpdHMtY3VzdG9tLWxlbmd0
aC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjcnlwdG8vc3VidGxlL2VjZGgtaW1wb3J0LWtleS1k
ZXJpdmUtYml0cy1udWxsLWxlbmd0aC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNy
eXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQta2V5LWRlcml2ZS1iaXRzLW51bGwtbGVuZ3RoLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGNyeXB0by93b3JrZXJzL3N1YnRsZS9lY2RoLWltcG9ydC1rZXkt
ZGVyaXZlLWJpdHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjcnlwdG8vd29ya2Vy
cy9zdWJ0bGUvZWNkaC1pbXBvcnQta2V5LWRlcml2ZS1iaXRzLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGNyeXB0by93b3JrZXJzL3N1YnRsZS9yZXNvdXJjZXMvZWNkaC1pbXBvcnQta2V5LWRlcml2
ZS1iaXRzLmpzOiBBZGRlZC4KKwogMjAxNy0wMy0wNyAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJDcnlwdG9dIEltcGxlbWVudCBFQ0RIIEltcG9ydEtl
eS9FeHBvcnRLZXkgb3BlcmF0aW9ucwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNjhiZjEzNmZhMzQ5
YzY5NjFiMWFhZjEyZmM0MjhlNTAzMTQ3ZGM2MC4uYjg0YjM1MTI2YTdjYmNjMWU2NTJhOTMwNzcx
YmJiMjY3ZjkxYTYzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC05NTgsNyArOTU4LDcgQEAgd2Vi
a2l0Lm9yZy9iLzE1OTM3MCBbIERlYnVnIF0gZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtZGVzdHJv
eS1kb2N1bWVudC5odG1sIFsgU2sKICMgVGhpcyB0ZXN0IGlzIGp1c3Qgd2F5IHRvbyBzbG93Lgog
d29ya2Vycy9ib21iLXdpdGgtdjguaHRtbCBbIFNraXAgXQogCi0jIFdlYkNyeXB0b0FQSSB0ZXN0
cyB0aGF0IHRha2UgdG9vIGxvbmcgdG8gY29tcGxldGUsIG5lZWQgdG8gc2NhbGUgZG93bi4gd2Vi
a2l0Lm9yZy9iLzE1OTYzOAorIyBXZWJDcnlwdG9BUEkgdGVzdHMgdGhhdCB0YWtlIHRvbyBsb25n
IHRvIGNvbXBsZXRlCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQ
SS9kZXJpdmVfYml0c19rZXlzL2hrZGYud29ya2VyLmh0bWwgWyBTa2lwIF0KIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2Rlcml2ZV9iaXRzX2tleXMvcGJrZGYy
Lndvcmtlci5odG1sIFsgU2tpcCBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dl
YkNyeXB0b0FQSS9nZW5lcmF0ZUtleS9zdWNjZXNzZXNfUlNBLU9BRVAud29ya2VyLmh0bWwgWyBT
a2lwIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZGVyaXZlLWJpdHMt
bWFsZm9ybWVkLXBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1
YnRsZS9kZXJpdmUtYml0cy1tYWxmb3JtZWQtcGFyYW1ldGVycy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uM2QyMmNmZjQ3MTIxNWUyNDYwZTU3M2VkZjkzNjRjZDgzNjgxNDBiMwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZGVyaXZlLWJpdHMtbWFsZm9ybWVk
LXBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKK1Rlc3QgZGVyaXZlQml0
cyBvcGVyYXRpb24gd2l0aCBtYWxmb3JtZWQgcGFyYW1ldGVycworCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyBjcnlwdG8uc3VidGxlLmRlcml2ZUJpdHMoKSByZWplY3RlZCBw
cm9taXNlICB3aXRoIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIGNyeXB0
by5zdWJ0bGUuZGVyaXZlQml0cygxKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjog
Tm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIGNyeXB0by5zdWJ0bGUuZGVyaXZlQml0cygxLCAy
KSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMu
CitQQVNTIGNyeXB0by5zdWJ0bGUuZGVyaXZlQml0cyh7IG5hbWU6IkVDREgiLCBwdWJsaWM6d3Jv
bmdLZXkgfSwgd3JvbmdLZXksIDEyOCkgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBJbnZhbGlkQWNj
ZXNzRXJyb3IgKERPTSBFeGNlcHRpb24gMTUpOiBDcnlwdG9LZXkgZG9lc24ndCBtYXRjaCBBbGdv
cml0aG1JZGVudGlmaWVyLgorUEFTUyBjcnlwdG8uc3VidGxlLmRlcml2ZUJpdHMoeyBuYW1lOiJF
Q0RIIiwgcHVibGljOndyb25nS2V5IH0sIHdyb25nS2V5LCAxMjgpIHJlamVjdGVkIHByb21pc2Ug
IHdpdGggSW52YWxpZEFjY2Vzc0Vycm9yIChET00gRXhjZXB0aW9uIDE1KTogQ3J5cHRvS2V5IGRv
ZXNuJ3Qgc3VwcG9ydCBiaXRzIGRlcml2YXRpb24uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRv
L3N1YnRsZS9kZXJpdmUtYml0cy1tYWxmb3JtZWQtcGFyYW1ldGVycy5odG1sIGIvTGF5b3V0VGVz
dHMvY3J5cHRvL3N1YnRsZS9kZXJpdmUtYml0cy1tYWxmb3JtZWQtcGFyYW1ldGVycy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjU0ZTQxZTcxZTVhYjE4NjQ0Y2E3ODEwZjRmZTRiMzJmNTFkYzg2ZmMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Rlcml2ZS1iaXRzLW1hbGZv
cm1lZC1wYXJhbWV0ZXJzLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdCBkZXJpdmVCaXRz
IG9wZXJhdGlvbiB3aXRoIG1hbGZvcm1lZCBwYXJhbWV0ZXJzIik7CisKKworanNUZXN0SXNBc3lu
YyA9IHRydWU7CisKK3ZhciBleHRyYWN0YWJsZSA9IHRydWU7Cit2YXIgaG1hY0ltcG9ydFBhcmFt
cyA9IHsKKyAgICBuYW1lOiAiaG1hYyIsCisgICAgaGFzaDogInNoYS0xIiwKK30KK3ZhciByYXdL
ZXkgPSBhc2NpaVRvVWludDhBcnJheSgiam5Pdzk5b09aRkxJRVBNciIpOwordmFyIGp3a0tleSA9
IHsKKyAgICBrdHk6ICJFQyIsCisgICAgY3J2OiAiUC0yNTYiLAorICAgIHg6ICIxRlNWV2llVHZp
a0ZrRzFOT3loa1VDYU1iZFFoeHdINmFDdTRFei1zUnRBIiwKKyAgICB5OiAiOWptTlRMcU00Y2pC
aGRBbkhjTkk5WVFWM084TEZtby1FZFpXazhudEFhSSIsCisgICAgZDogInBweEJTb3YzTjhfQVVj
aXNBdXZtTFY0eUU4ZV9MX0JMRThiWmI5WjFYamciLAorfTsKKworCisvLyBOb3QgZW5vdWdoIGFy
Z3VtZW50cy4KK3Nob3VsZFJlamVjdCgnY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKCknKTsKK3No
b3VsZFJlamVjdCgnY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKDEpJyk7CitzaG91bGRSZWplY3Qo
J2NyeXB0by5zdWJ0bGUuZGVyaXZlQml0cygxLCAyKScpOworCitjcnlwdG8uc3VidGxlLmltcG9y
dEtleSgicmF3IiwgcmF3S2V5LCBobWFjSW1wb3J0UGFyYW1zLCBleHRyYWN0YWJsZSwgWyJzaWdu
IiwgInZlcmlmeSJdKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHdyb25nS2V5ID0gcmVz
dWx0OworICAgIC8vIFdyb25nIGFsZ29yaXRobSBpZGVudGlmaWVyLgorICAgIHNob3VsZFJlamVj
dCgnY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKHsgbmFtZToiRUNESCIsIHB1YmxpYzp3cm9uZ0tl
eSB9LCB3cm9uZ0tleSwgMTI4KScpOworCisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0
S2V5KCJqd2siLCBqd2tLZXksIHsgbmFtZTogIkVDREgiLCBuYW1lZEN1cnZlOiAiUC0yNTYiIH0s
IGV4dHJhY3RhYmxlLCBbImRlcml2ZUtleSJdKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7
CisgICAgd3JvbmdLZXkgPSByZXN1bHQ7CisgICAgLy8gV3JvbmcgdXNhZ2UuCisgICAgc2hvdWxk
UmVqZWN0KCdjcnlwdG8uc3VidGxlLmRlcml2ZUJpdHMoeyBuYW1lOiJFQ0RIIiwgcHVibGljOndy
b25nS2V5IH0sIHdyb25nS2V5LCAxMjgpJyk7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30pOwor
Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3Qu
anMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Y3J5cHRvL3N1YnRsZS9kZXJpdmVCaXRzLW1hbGZvcm1lZC1wYXJhbWV0ZXJzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZGVyaXZlQml0cy1tYWxmb3JtZWQtcGFyYW1l
dGVycy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZmMTM3ODRj
NDU4YWY5NWE1NmRjYzhhNTYxOGUzMGE0OTVhZmMyZjcuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9kZXJpdmVC
aXRzLW1hbGZvcm1lZC1wYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0x
LDEzICswLDAgQEAKLVRlc3QgZGVyaXZlQml0cyBvcGVyYXRpb24gd2l0aCBtYWxmb3JtZWQgcGFy
YW1ldGVycwotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBjcnlwdG8uc3Vi
dGxlLmRlcml2ZUJpdHMoKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogTm90IGVu
b3VnaCBhcmd1bWVudHMuCi1QQVNTIGNyeXB0by5zdWJ0bGUuZGVyaXZlQml0cygxKSByZWplY3Rl
ZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCi1QQVNTIGNy
eXB0by5zdWJ0bGUuZGVyaXZlQml0cygxLCAyKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVF
cnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCi1QQVNTIGNyeXB0by5zdWJ0bGUuZGVyaXZlQml0
cygiRUNESCIsIDIsIDMpIHJlamVjdGVkIHByb21pc2UgIHdpdGggTm90U3VwcG9ydGVkRXJyb3Ig
KERPTSBFeGNlcHRpb24gOSk6IFRoZSBvcGVyYXRpb24gaXMgbm90IHN1cHBvcnRlZC4uCi1QQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9kZXJpdmVCaXRzLW1hbGZvcm1lZC1wYXJhbWV0
ZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Rlcml2ZUJpdHMtbWFsZm9ybWVk
LXBhcmFtZXRlcnMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTAxNTBkOWQ0
ZTk5YWEwZmQ3MjFhYzRhMWUwZjgwZWU2NjViODEzOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Rlcml2ZUJp
dHMtbWFsZm9ybWVkLXBhcmFtZXRlcnMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAg
QEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotZGVzY3Jp
cHRpb24oIlRlc3QgZGVyaXZlQml0cyBvcGVyYXRpb24gd2l0aCBtYWxmb3JtZWQgcGFyYW1ldGVy
cyIpOwotCi0vLyBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KLXNob3VsZFJlamVjdCgnY3J5cHRvLnN1
YnRsZS5kZXJpdmVCaXRzKCknKTsKLXNob3VsZFJlamVjdCgnY3J5cHRvLnN1YnRsZS5kZXJpdmVC
aXRzKDEpJyk7Ci1zaG91bGRSZWplY3QoJ2NyeXB0by5zdWJ0bGUuZGVyaXZlQml0cygxLCAyKScp
OwotLy8gTm90IHN1cHBvcnQuCi1zaG91bGRSZWplY3QoJ2NyeXB0by5zdWJ0bGUuZGVyaXZlQml0
cygiRUNESCIsIDIsIDMpJyk7Ci08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9lY2RoLWRlcml2ZS1iaXRzLW1hbGZvcm1l
ZC1wYXJhbWV0cnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9lY2Ro
LWRlcml2ZS1iaXRzLW1hbGZvcm1lZC1wYXJhbWV0cnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjllMTA3OTYwMTAyMjE0MTMyNWViOTA5YWZlMjQ5MjY5YjFjNGRlOWIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2VjZGgtZGVyaXZlLWJpdHMtbWFsZm9ybWVk
LXBhcmFtZXRycy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMyBAQAorVGVzdCBFQ0RIIGRlcml2
ZUJpdHMgb3BlcmF0aW9uIHdpdGggbWFsZm9ybWVkIHBhcmFtZXRlcnMKKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKCJlY2RoIiwg
cHJpdmF0ZUtleSwgbnVsbCkgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IE1lbWJl
ciBFY2RoS2V5RGVyaXZlUGFyYW1zLnB1YmxpY0tleSBpcyByZXF1aXJlZCBhbmQgbXVzdCBiZSBh
biBpbnN0YW5jZSBvZiBDcnlwdG9LZXkuCitQQVNTIGNyeXB0by5zdWJ0bGUuZGVyaXZlQml0cyh7
bmFtZTogImVjZGgifSwgcHJpdmF0ZUtleSwgbnVsbCkgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBU
eXBlRXJyb3I6IE1lbWJlciBFY2RoS2V5RGVyaXZlUGFyYW1zLnB1YmxpY0tleSBpcyByZXF1aXJl
ZCBhbmQgbXVzdCBiZSBhbiBpbnN0YW5jZSBvZiBDcnlwdG9LZXkuCitQQVNTIGNyeXB0by5zdWJ0
bGUuZGVyaXZlQml0cyh7bmFtZTogImVjZGgiLCBwdWJsaWM6IHRydWV9LCBwcml2YXRlS2V5LCBu
dWxsKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BBU1Mg
Y3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKHtuYW1lOiAiZWNkaCIsIHB1YmxpYzogbnVsbH0sIHBy
aXZhdGVLZXksIG51bGwpIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBUeXBlIGVy
cm9yLgorUEFTUyBjcnlwdG8uc3VidGxlLmRlcml2ZUJpdHMoe25hbWU6ICJlY2RoIiwgcHVibGlj
OiB1bmRlZmluZWR9LCBwcml2YXRlS2V5LCBudWxsKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5
cGVFcnJvcjogTWVtYmVyIEVjZGhLZXlEZXJpdmVQYXJhbXMucHVibGljS2V5IGlzIHJlcXVpcmVk
IGFuZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIENyeXB0b0tleS4KK1BBU1MgY3J5cHRvLnN1YnRs
ZS5kZXJpdmVCaXRzKHtuYW1lOiAiZWNkaCIsIHB1YmxpYzogU3ltYm9sKCl9LCBwcml2YXRlS2V5
LCBudWxsKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJvcjogVHlwZSBlcnJvci4KK1BB
U1MgY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKHtuYW1lOiAiZWNkaCIsIHB1YmxpYzogeyB9fSwg
cHJpdmF0ZUtleSwgbnVsbCkgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IFR5cGUg
ZXJyb3IuCitQQVNTIGNyeXB0by5zdWJ0bGUuZGVyaXZlQml0cyh7bmFtZTogImVjZGgiLCBwdWJs
aWM6IDF9LCBwcml2YXRlS2V5LCBudWxsKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFR5cGVFcnJv
cjogVHlwZSBlcnJvci4KK1BBU1MgY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKHsgbmFtZToiRUNE
SCIsIHB1YmxpYzpwdWJsaWNLZXkgfSwgcHJpdmF0ZUtleSwgMSkgcmVqZWN0ZWQgcHJvbWlzZSAg
d2l0aCBPcGVyYXRpb25FcnJvciAoRE9NIEV4Y2VwdGlvbiAzNCk6IFRoZSBvcGVyYXRpb24gZmFp
bGVkIGZvciBhbiBvcGVyYXRpb24tc3BlY2lmaWMgcmVhc29uLgorUEFTUyBjcnlwdG8uc3VidGxl
LmRlcml2ZUJpdHMoeyBuYW1lOiJFQ0RIIiwgcHVibGljOnB1YmxpY0tleSB9LCBwdWJsaWNLZXks
IG51bGwpIHJlamVjdGVkIHByb21pc2UgIHdpdGggSW52YWxpZEFjY2Vzc0Vycm9yIChET00gRXhj
ZXB0aW9uIDE1KTogQ3J5cHRvS2V5IGRvZXNuJ3Qgc3VwcG9ydCBiaXRzIGRlcml2YXRpb24uCitQ
QVNTIGNyeXB0by5zdWJ0bGUuZGVyaXZlQml0cyh7IG5hbWU6IkVDREgiLCBwdWJsaWM6cHJpdmF0
ZUtleSB9LCBwcml2YXRlS2V5LCBudWxsKSByZWplY3RlZCBwcm9taXNlICB3aXRoIEludmFsaWRB
Y2Nlc3NFcnJvciAoRE9NIEV4Y2VwdGlvbiAxNSk6IFRoZSByZXF1ZXN0ZWQgb3BlcmF0aW9uIGlz
IG5vdCB2YWxpZCBmb3IgdGhlIHByb3ZpZGVkIGtleS4KK1BBU1MgY3J5cHRvLnN1YnRsZS5kZXJp
dmVCaXRzKHsgbmFtZToiRUNESCIsIHB1YmxpYzpmYWtlS2V5IH0sIHByaXZhdGVLZXksIG51bGwp
IHJlamVjdGVkIHByb21pc2UgIHdpdGggSW52YWxpZEFjY2Vzc0Vycm9yIChET00gRXhjZXB0aW9u
IDE1KTogVGhlIHJlcXVlc3RlZCBvcGVyYXRpb24gaXMgbm90IHZhbGlkIGZvciB0aGUgcHJvdmlk
ZWQga2V5LgorUEFTUyBjcnlwdG8uc3VidGxlLmRlcml2ZUJpdHMoeyBuYW1lOiJFQ0RIIiwgcHVi
bGljOnB1YmxpY0tleVAzODQgfSwgcHJpdmF0ZUtleSwgbnVsbCkgcmVqZWN0ZWQgcHJvbWlzZSAg
d2l0aCBJbnZhbGlkQWNjZXNzRXJyb3IgKERPTSBFeGNlcHRpb24gMTUpOiBUaGUgcmVxdWVzdGVk
IG9wZXJhdGlvbiBpcyBub3QgdmFsaWQgZm9yIHRoZSBwcm92aWRlZCBrZXkuCitQQVNTIGNyeXB0
by5zdWJ0bGUuZGVyaXZlQml0cyh7IG5hbWU6IkVDREgiLCBwdWJsaWM6cHVibGljS2V5IH0sIHBy
aXZhdGVLZXksIDM4NCkgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBPcGVyYXRpb25FcnJvciAoRE9N
IEV4Y2VwdGlvbiAzNCk6IFRoZSBvcGVyYXRpb24gZmFpbGVkIGZvciBhbiBvcGVyYXRpb24tc3Bl
Y2lmaWMgcmVhc29uLgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZWNkaC1kZXJp
dmUtYml0cy1tYWxmb3JtZWQtcGFyYW1ldHJzLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3Vi
dGxlL2VjZGgtZGVyaXZlLWJpdHMtbWFsZm9ybWVkLXBhcmFtZXRycy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmEyZmQ2NmE2Zjc3YzI3ZWQ3OWU4MmE0OTBkYWVjYzAyMGU3Njg4MTgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2VjZGgtZGVyaXZlLWJpdHMtbWFsZm9ybWVk
LXBhcmFtZXRycy5odG1sCkBAIC0wLDAgKzEsNzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3QgRUNESCBkZXJpdmVCaXRz
IG9wZXJhdGlvbiB3aXRoIG1hbGZvcm1lZCBwYXJhbWV0ZXJzIik7CisKK2pzVGVzdElzQXN5bmMg
PSB0cnVlOworCit2YXIgZXh0cmFjdGFibGUgPSB0cnVlOwordmFyIGp3a1ByaXZhdGVLZXkgPSB7
CisgICAga3R5OiAiRUMiLAorICAgIGNydjogIlAtMjU2IiwKKyAgICB4OiAiMUZTVldpZVR2aWtG
a0cxTk95aGtVQ2FNYmRRaHh3SDZhQ3U0RXotc1J0QSIsCisgICAgeTogIjlqbU5UTHFNNGNqQmhk
QW5IY05JOVlRVjNPOExGbW8tRWRaV2s4bnRBYUkiLAorICAgIGQ6ICJwcHhCU292M044X0FVY2lz
QXV2bUxWNHlFOGVfTF9CTEU4YlpiOVoxWGpnIiwKK307Cit2YXIgandrUHVibGljS2V5ID0gewor
ICAgIGt0eTogIkVDIiwKKyAgICBjcnY6ICJQLTI1NiIsCisgICAgeDogIjFGU1ZXaWVUdmlrRmtH
MU5PeWhrVUNhTWJkUWh4d0g2YUN1NEV6LXNSdEEiLAorICAgIHk6ICI5am1OVExxTTRjakJoZEFu
SGNOSTlZUVYzTzhMRm1vLUVkWldrOG50QWFJIiwKK307Cit2YXIgandrUHVibGljS2V5UDM4NCA9
IHsKKyAgICBrdHk6ICJFQyIsCisgICAgY3J2OiAiUC0zODQiLAorICAgIHg6ICJURXNRUkFMLW5h
dTRLNzVYTnludVI2ZmRvVEdHbTVYMVhnT3JSNWlTemlCVnFoUllPQXRldUY4LVUwd3hOODlzIiwK
KyAgICB5OiAici1XbjlZSVhKX3I3dU5ONXM5ZVZlWEVsbTZaY1RHdllLZzZHdEtKWFVYdUpVWlJN
RjdFSUJfSDZ4cE9tdGhWNiIsCit9OwordmFyIHJzYVNwa2lLZXkgPSBCYXNlNjRVUkwucGFyc2Uo
Ik1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBd0NqUkN0Rnd2U05Z
TVowN3U1U3hBUnhnbEpsNzVUN2JVWlhGc0RWeEhrTWhwTkMyUmFONGpXRTVid1lVRE1lRDJmVm14
aHBhVVFuLzZBYkZMaDZnSHh0d3JDZmM3cklvL1NmRGRHZDNHa1JsWEs1eFh3R3VNNk12UDludVpI
YWFySXlBclJGaDJVMlVaeEZsVnNLSTBwU0hvNm41OFcxZlBaMXN5T29WRVovV1lFNmdMaE1Nd2Zw
ZUFtOTdtcm83bWVrUmRNVUxPVi9tUjVVbDNDSG05WnQ5M0RjOEdwblBBOGJoTGlCMFZOeUdURU1h
MDZuSnVsNGdqMXNqeExEb1V2WlkyRVdxN29VVW5mTEJVWU1maXFLMGtRY1c5NHd2QnJJcTJEUVVB
cEx5VFRiYUFPWTQ2VEx3WDZjOEx0dWJKcmlZS1RDNWE5QmIwLzdvdlRXQjB3SURBUUFCIik7CisK
K2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBqd2tQcml2YXRlS2V5LCB7IG5hbWU6ICJF
Q0RIIiwgbmFtZWRDdXJ2ZTogIlAtMjU2IiB9LCBleHRyYWN0YWJsZSwgWyJkZXJpdmVCaXRzIl0p
LnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgcHJpdmF0ZUtleSA9IHJlc3VsdDsKKyAgICBy
ZXR1cm4gY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGp3a1B1YmxpY0tleSwgeyBuYW1l
OiAiRUNESCIsIG5hbWVkQ3VydmU6ICJQLTI1NiIgfSwgZXh0cmFjdGFibGUsIFsgXSk7Cit9KS50
aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHB1YmxpY0tleSA9IHJlc3VsdDsKKyAgICByZXR1
cm4gY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoInNwa2kiLCByc2FTcGtpS2V5LCB7bmFtZTogIlJT
QS1PQUVQIiwgaGFzaDogInNoYS0xIn0sIGV4dHJhY3RhYmxlLCBbImVuY3J5cHQiLCAid3JhcEtl
eSJdKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgZmFrZUtleSA9IHJlc3VsdDsK
KyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGp3a1B1YmxpY0tleVAz
ODQsIHsgbmFtZTogIkVDREgiLCBuYW1lZEN1cnZlOiAiUC0zODQiIH0sIGV4dHJhY3RhYmxlLCBb
IF0pOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBwdWJsaWNLZXlQMzg0ID0gcmVz
dWx0OworICAgIC8vIE1hbGZvcm1lZCBBbGdvcml0aG1JZGVudGlmaWVycworICAgIHNob3VsZFJl
amVjdCgnY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKCJlY2RoIiwgcHJpdmF0ZUtleSwgbnVsbCkn
KTsKKyAgICBzaG91bGRSZWplY3QoJ2NyeXB0by5zdWJ0bGUuZGVyaXZlQml0cyh7bmFtZTogImVj
ZGgifSwgcHJpdmF0ZUtleSwgbnVsbCknKTsKKyAgICBzaG91bGRSZWplY3QoJ2NyeXB0by5zdWJ0
bGUuZGVyaXZlQml0cyh7bmFtZTogImVjZGgiLCBwdWJsaWM6IHRydWV9LCBwcml2YXRlS2V5LCBu
dWxsKScpOworICAgIHNob3VsZFJlamVjdCgnY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKHtuYW1l
OiAiZWNkaCIsIHB1YmxpYzogbnVsbH0sIHByaXZhdGVLZXksIG51bGwpJyk7CisgICAgc2hvdWxk
UmVqZWN0KCdjcnlwdG8uc3VidGxlLmRlcml2ZUJpdHMoe25hbWU6ICJlY2RoIiwgcHVibGljOiB1
bmRlZmluZWR9LCBwcml2YXRlS2V5LCBudWxsKScpOworICAgIHNob3VsZFJlamVjdCgnY3J5cHRv
LnN1YnRsZS5kZXJpdmVCaXRzKHtuYW1lOiAiZWNkaCIsIHB1YmxpYzogU3ltYm9sKCl9LCBwcml2
YXRlS2V5LCBudWxsKScpOworICAgIHNob3VsZFJlamVjdCgnY3J5cHRvLnN1YnRsZS5kZXJpdmVC
aXRzKHtuYW1lOiAiZWNkaCIsIHB1YmxpYzogeyB9fSwgcHJpdmF0ZUtleSwgbnVsbCknKTsKKyAg
ICBzaG91bGRSZWplY3QoJ2NyeXB0by5zdWJ0bGUuZGVyaXZlQml0cyh7bmFtZTogImVjZGgiLCBw
dWJsaWM6IDF9LCBwcml2YXRlS2V5LCBudWxsKScpOworICAgIC8vIFdyb25nIGxlbmd0aAorICAg
IHNob3VsZFJlamVjdCgnY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKHsgbmFtZToiRUNESCIsIHB1
YmxpYzpwdWJsaWNLZXkgfSwgcHJpdmF0ZUtleSwgMSknKTsKKyAgICAvLyBiYXNlIGtleSBpcyBw
dWJsaWMKKyAgICBzaG91bGRSZWplY3QoJ2NyeXB0by5zdWJ0bGUuZGVyaXZlQml0cyh7IG5hbWU6
IkVDREgiLCBwdWJsaWM6cHVibGljS2V5IH0sIHB1YmxpY0tleSwgbnVsbCknKTsKKyAgICAvLyBw
dWJsaWMga2V5IGlzIHByaXZhdGUKKyAgICBzaG91bGRSZWplY3QoJ2NyeXB0by5zdWJ0bGUuZGVy
aXZlQml0cyh7IG5hbWU6IkVDREgiLCBwdWJsaWM6cHJpdmF0ZUtleSB9LCBwcml2YXRlS2V5LCBu
dWxsKScpOworICAgIC8vIGZha2VkIHB1YmxpYyBrZXkKKyAgICBzaG91bGRSZWplY3QoJ2NyeXB0
by5zdWJ0bGUuZGVyaXZlQml0cyh7IG5hbWU6IkVDREgiLCBwdWJsaWM6ZmFrZUtleSB9LCBwcml2
YXRlS2V5LCBudWxsKScpOworICAgIC8vIG1pc21hdGNoZWQgbmFtZWQgY3VydmUKKyAgICBzaG91
bGRSZWplY3QoJ2NyeXB0by5zdWJ0bGUuZGVyaXZlQml0cyh7IG5hbWU6IkVDREgiLCBwdWJsaWM6
cHVibGljS2V5UDM4NCB9LCBwcml2YXRlS2V5LCBudWxsKScpOworICAgIC8vIFdyb25nIGxlbmd0
aAorICAgIHJldHVybiBzaG91bGRSZWplY3QoJ2NyeXB0by5zdWJ0bGUuZGVyaXZlQml0cyh7IG5h
bWU6IkVDREgiLCBwdWJsaWM6cHVibGljS2V5IH0sIHByaXZhdGVLZXksIDM4NCknKTsKK30pLnRo
ZW4oZmluaXNoSlNUZXN0LCBmaW5pc2hKU1Rlc3QpOworCis8L3NjcmlwdD4KKworPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9lY2RoLWdlbmVy
YXRlLWtleS1kZXJpdmUtYml0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3Vi
dGxlL2VjZGgtZ2VuZXJhdGUta2V5LWRlcml2ZS1iaXRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hNGQzM2NiMzZiMDM4OTYyMWJmODViMGVjYTk2ZmNhN2UxNTczYWZlCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9lY2RoLWdlbmVyYXRlLWtleS1kZXJpdmUt
Yml0cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorVGVzdCBFQ0RIIGRlcml2ZUJpdHMg
b3BlcmF0aW9uIHdpdGggZ2VuZXJhdGVkIGJhc2Uga2V5IGFuZCBudWxsIGxlbmd0aAorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBkZXJpdmVkS2V5LmJ5dGVMZW5ndGggaXMg
MzIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2VjZGgtZ2VuZXJhdGUta2V5LWRl
cml2ZS1iaXRzLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2VjZGgtZ2VuZXJhdGUt
a2V5LWRlcml2ZS1iaXRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWU2NDNhNmFhYzM3Y2U1MjFlYTIzMWY5
ZjhiYzhmNDBkNzFmZmU2MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by9z
dWJ0bGUvZWNkaC1nZW5lcmF0ZS1rZXktZGVyaXZlLWJpdHMuaHRtbApAQCAtMCwwICsxLDQyIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0
aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0
aW9uKCJUZXN0IEVDREggZGVyaXZlQml0cyBvcGVyYXRpb24gd2l0aCBnZW5lcmF0ZWQgYmFzZSBr
ZXkgYW5kIG51bGwgbGVuZ3RoIik7CisKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCit2YXIgZXh0
cmFjdGFibGUgPSB0cnVlOwordmFyIGp3a1B1YmxpY0tleSA9IHsKKyAgICBrdHk6ICJFQyIsCisg
ICAgY3J2OiAiUC0yNTYiLAorICAgIHg6ICIxRlNWV2llVHZpa0ZrRzFOT3loa1VDYU1iZFFoeHdI
NmFDdTRFei1zUnRBIiwKKyAgICB5OiAiOWptTlRMcU00Y2pCaGRBbkhjTkk5WVFWM084TEZtby1F
ZFpXazhudEFhSSIsCit9OworCitjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHsgbmFtZTogIkVD
REgiLCBuYW1lZEN1cnZlOiAiUC0yNTYiIH0sIGV4dHJhY3RhYmxlLCBbImRlcml2ZUJpdHMiXSku
dGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBwcml2YXRlS2V5ID0gcmVzdWx0LnByaXZhdGVL
ZXk7CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBqd2tQdWJsaWNL
ZXksIHsgbmFtZTogIkVDREgiLCBuYW1lZEN1cnZlOiAiUC0yNTYiIH0sIGV4dHJhY3RhYmxlLCBb
IF0pOworfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBwdWJsaWNLZXkgPSByZXN1bHQ7
CisgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuZGVyaXZlQml0cyh7IG5hbWU6IkVDREgiLCBwdWJs
aWM6cHVibGljS2V5IH0sIHByaXZhdGVLZXksIG51bGwpOworfSkudGhlbihmdW5jdGlvbihyZXN1
bHQpIHsKKyAgICBkZXJpdmVkS2V5ID0gcmVzdWx0OworCisgICAgc2hvdWxkQmUoImRlcml2ZWRL
ZXkuYnl0ZUxlbmd0aCIsICIzMiIpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9LCBmYWlsQW5k
RmluaXNoSlNUZXN0KTsKKworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQta2V5LWRlcml2ZS1iaXRz
LWN1c3RvbS1sZW5ndGgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9l
Y2RoLWltcG9ydC1rZXktZGVyaXZlLWJpdHMtY3VzdG9tLWxlbmd0aC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOTI0ZDE4ZThlOTVmOTQyNjk5YWVjN2Y1NDg1NTdlNzY2YmMwZGIwNQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQta2V5LWRl
cml2ZS1iaXRzLWN1c3RvbS1sZW5ndGgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1Rl
c3QgRUNESCBkZXJpdmVCaXRzIG9wZXJhdGlvbiB3aXRoIGltcG9ydGVkIGJhc2Uga2V5IGFuZCBj
dXN0b20gbGVuZ3RoCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGJ5dGVz
VG9IZXhTdHJpbmcoZGVyaXZlZEtleSkgaXMgZXhwZWN0ZWREZXJpdmVkS2V5CitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1rZXktZGVyaXZlLWJpdHMtY3VzdG9t
LWxlbmd0aC5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1rZXkt
ZGVyaXZlLWJpdHMtY3VzdG9tLWxlbmd0aC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4NjlmZjM3NDhhODI1
Y2ZjMGY0N2E2NjA5NDM0MDJjY2Y0NjUxODcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9jcnlwdG8vc3VidGxlL2VjZGgtaW1wb3J0LWtleS1kZXJpdmUtYml0cy1jdXN0b20tbGVuZ3Ro
Lmh0bWwKQEAgLTAsMCArMSw1MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdCBFQ0RIIGRlcml2ZUJpdHMgb3BlcmF0aW9u
IHdpdGggaW1wb3J0ZWQgYmFzZSBrZXkgYW5kIGN1c3RvbSBsZW5ndGgiKTsKKworanNUZXN0SXNB
c3luYyA9IHRydWU7CisKK3ZhciBleHRyYWN0YWJsZSA9IHRydWU7Cit2YXIgandrUHJpdmF0ZUtl
eSA9IHsKKyAgICBrdHk6ICJFQyIsCisgICAgY3J2OiAiUC0yNTYiLAorICAgIHg6ICIxRlNWV2ll
VHZpa0ZrRzFOT3loa1VDYU1iZFFoeHdINmFDdTRFei1zUnRBIiwKKyAgICB5OiAiOWptTlRMcU00
Y2pCaGRBbkhjTkk5WVFWM084TEZtby1FZFpXazhudEFhSSIsCisgICAgZDogInBweEJTb3YzTjhf
QVVjaXNBdXZtTFY0eUU4ZV9MX0JMRThiWmI5WjFYamciLAorfTsKK3ZhciBqd2tQdWJsaWNLZXkg
PSB7CisgICAga3R5OiAiRUMiLAorICAgIGNydjogIlAtMjU2IiwKKyAgICB4OiAiMUZTVldpZVR2
aWtGa0cxTk95aGtVQ2FNYmRRaHh3SDZhQ3U0RXotc1J0QSIsCisgICAgeTogIjlqbU5UTHFNNGNq
QmhkQW5IY05JOVlRVjNPOExGbW8tRWRaV2s4bnRBYUkiLAorfTsKK3ZhciBleHBlY3RlZERlcml2
ZWRLZXkgPSAiNDBiZjBjMGE1NmY3NWNhNTg3ZWE0ZjY3MjlkN2JmOWEiOworCitjcnlwdG8uc3Vi
dGxlLmltcG9ydEtleSgiandrIiwgandrUHJpdmF0ZUtleSwgeyBuYW1lOiAiRUNESCIsIG5hbWVk
Q3VydmU6ICJQLTI1NiIgfSwgZXh0cmFjdGFibGUsIFsiZGVyaXZlQml0cyJdKS50aGVuKGZ1bmN0
aW9uKHJlc3VsdCkgeworICAgIHByaXZhdGVLZXkgPSByZXN1bHQ7CisgICAgcmV0dXJuIGNyeXB0
by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBqd2tQdWJsaWNLZXksIHsgbmFtZTogIkVDREgiLCBu
YW1lZEN1cnZlOiAiUC0yNTYiIH0sIGV4dHJhY3RhYmxlLCBbIF0pOworfSkudGhlbihmdW5jdGlv
bihyZXN1bHQpIHsKKyAgICBwdWJsaWNLZXkgPSByZXN1bHQ7CisgICAgcmV0dXJuIGNyeXB0by5z
dWJ0bGUuZGVyaXZlQml0cyh7IG5hbWU6IkVDREgiLCBwdWJsaWM6cHVibGljS2V5IH0sIHByaXZh
dGVLZXksIDEyOCk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIGRlcml2ZWRLZXkg
PSByZXN1bHQ7CisKKyAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhkZXJpdmVkS2V5KSIs
ICJleHBlY3RlZERlcml2ZWRLZXkiKTsKKworICAgIGZpbmlzaEpTVGVzdCgpOworfSwgZmFpbEFu
ZEZpbmlzaEpTVGVzdCk7CisKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2VjZGgtaW1wb3J0LWtleS1kZXJpdmUtYml0
cy1udWxsLWxlbmd0aC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2Vj
ZGgtaW1wb3J0LWtleS1kZXJpdmUtYml0cy1udWxsLWxlbmd0aC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYjI4ODZmOGU1NWRhYmMxMzM2MTRhNmE2NmM1ZWFiMjM1YzA0OTg4YQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQta2V5LWRlcml2
ZS1iaXRzLW51bGwtbGVuZ3RoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IEVD
REggZGVyaXZlQml0cyBvcGVyYXRpb24gd2l0aCBpbXBvcnRlZCBiYXNlIGtleSBhbmQgbnVsbCBs
ZW5ndGgKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgYnl0ZXNUb0hleFN0
cmluZyhkZXJpdmVkS2V5KSBpcyBleHBlY3RlZERlcml2ZWRLZXkKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jcnlwdG8vc3VidGxlL2VjZGgtaW1wb3J0LWtleS1kZXJpdmUtYml0cy1udWxsLWxlbmd0aC5o
dG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1rZXktZGVyaXZlLWJp
dHMtbnVsbC1sZW5ndGguaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODg5NzE2MmM4Mjg2ODkxMzk2ZmNmNDZi
ZDI4M2FmMWVjOTUyOTNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1
YnRsZS9lY2RoLWltcG9ydC1rZXktZGVyaXZlLWJpdHMtbnVsbC1sZW5ndGguaHRtbApAQCAtMCww
ICsxLDUwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9
ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4K
K2Rlc2NyaXB0aW9uKCJUZXN0IEVDREggZGVyaXZlQml0cyBvcGVyYXRpb24gd2l0aCBpbXBvcnRl
ZCBiYXNlIGtleSBhbmQgbnVsbCBsZW5ndGgiKTsKKworanNUZXN0SXNBc3luYyA9IHRydWU7CisK
K3ZhciBleHRyYWN0YWJsZSA9IHRydWU7Cit2YXIgandrUHJpdmF0ZUtleSA9IHsKKyAgICBrdHk6
ICJFQyIsCisgICAgY3J2OiAiUC0yNTYiLAorICAgIHg6ICIxRlNWV2llVHZpa0ZrRzFOT3loa1VD
YU1iZFFoeHdINmFDdTRFei1zUnRBIiwKKyAgICB5OiAiOWptTlRMcU00Y2pCaGRBbkhjTkk5WVFW
M084TEZtby1FZFpXazhudEFhSSIsCisgICAgZDogInBweEJTb3YzTjhfQVVjaXNBdXZtTFY0eUU4
ZV9MX0JMRThiWmI5WjFYamciLAorfTsKK3ZhciBqd2tQdWJsaWNLZXkgPSB7CisgICAga3R5OiAi
RUMiLAorICAgIGNydjogIlAtMjU2IiwKKyAgICB4OiAiMUZTVldpZVR2aWtGa0cxTk95aGtVQ2FN
YmRRaHh3SDZhQ3U0RXotc1J0QSIsCisgICAgeTogIjlqbU5UTHFNNGNqQmhkQW5IY05JOVlRVjNP
OExGbW8tRWRaV2s4bnRBYUkiLAorfTsKK3ZhciBleHBlY3RlZERlcml2ZWRLZXkgPSAiNDBiZjBj
MGE1NmY3NWNhNTg3ZWE0ZjY3MjlkN2JmOWEzMGM1ZjRhMGQ0N2VlYTEzZmRmOWRhOGYwYjUzYjg1
ZSI7CisKK2NyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBqd2tQcml2YXRlS2V5LCB7IG5h
bWU6ICJFQ0RIIiwgbmFtZWRDdXJ2ZTogIlAtMjU2IiB9LCBleHRyYWN0YWJsZSwgWyJkZXJpdmVC
aXRzIl0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgcHJpdmF0ZUtleSA9IHJlc3VsdDsK
KyAgICByZXR1cm4gY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGp3a1B1YmxpY0tleSwg
eyBuYW1lOiAiRUNESCIsIG5hbWVkQ3VydmU6ICJQLTI1NiIgfSwgZXh0cmFjdGFibGUsIFsgXSk7
Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgeworICAgIHB1YmxpY0tleSA9IHJlc3VsdDsKKyAg
ICByZXR1cm4gY3J5cHRvLnN1YnRsZS5kZXJpdmVCaXRzKHsgbmFtZToiRUNESCIsIHB1YmxpYzpw
dWJsaWNLZXkgfSwgcHJpdmF0ZUtleSwgbnVsbCk7Cit9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkg
eworICAgIGRlcml2ZWRLZXkgPSByZXN1bHQ7CisKKyAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0
cmluZyhkZXJpdmVkS2V5KSIsICJleHBlY3RlZERlcml2ZWRLZXkiKTsKKworICAgIGZpbmlzaEpT
VGVzdCgpOworfSwgZmFpbEFuZEZpbmlzaEpTVGVzdCk7CisKKzwvc2NyaXB0PgorCis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd29ya2Vycy9zdWJ0bGUv
ZWNkaC1pbXBvcnQta2V5LWRlcml2ZS1iaXRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Ny
eXB0by93b3JrZXJzL3N1YnRsZS9lY2RoLWltcG9ydC1rZXktZGVyaXZlLWJpdHMtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjgyNGQzN2JlMjI2Mzg4NjdmZGI0ZTZmYThhNTJlYTRkMjVjNjM2NWEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd29ya2Vycy9zdWJ0bGUvZWNk
aC1pbXBvcnQta2V5LWRlcml2ZS1iaXRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitb
V29ya2VyXSBUZXN0IEVDREggZGVyaXZlQml0cyBvcGVyYXRpb24gd2l0aCBpbXBvcnRlZCBiYXNl
IGtleSBpbiB3b3JrZXJzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitTdGFydGlu
ZyB3b3JrZXI6IHJlc291cmNlcy9lY2RoLWltcG9ydC1rZXktZGVyaXZlLWJpdHMuanMKK1BBU1Mg
W1dvcmtlcl0gYnl0ZXNUb0hleFN0cmluZyhkZXJpdmVkS2V5KSBpcyBleHBlY3RlZERlcml2ZWRL
ZXkKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vd29ya2Vycy9zdWJ0bGUvZWNkaC1pbXBvcnQt
a2V5LWRlcml2ZS1iaXRzLmh0bWwgYi9MYXlvdXRUZXN0cy9jcnlwdG8vd29ya2Vycy9zdWJ0bGUv
ZWNkaC1pbXBvcnQta2V5LWRlcml2ZS1iaXRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDM3ZmExNTk2YTA5
NmJiMDgyODg2NDM0MzZiYTc3ZjRjZjQ0NTk0YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NyeXB0by93b3JrZXJzL3N1YnRsZS9lY2RoLWltcG9ydC1rZXktZGVyaXZlLWJpdHMuaHRt
bApAQCAtMCwwICsxLDEyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAg
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8c2NyaXB0PgorICAgICAgICB3b3JrZXIgPSBzdGFydFdv
cmtlcigncmVzb3VyY2VzL2VjZGgtaW1wb3J0LWtleS1kZXJpdmUtYml0cy5qcycpOworICAgIDwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NyeXB0by93b3JrZXJzL3N1YnRsZS9yZXNvdXJjZXMvZWNkaC1pbXBvcnQta2V5LWRlcml2ZS1i
aXRzLmpzIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3dvcmtlcnMvc3VidGxlL3Jlc291cmNlcy9lY2Ro
LWltcG9ydC1rZXktZGVyaXZlLWJpdHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDcyNjk3YWQ5MWQ5ZDQyOGJk
YzkwMTZmYjgxM2E4MzA5ZWFlNWUxNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Ny
eXB0by93b3JrZXJzL3N1YnRsZS9yZXNvdXJjZXMvZWNkaC1pbXBvcnQta2V5LWRlcml2ZS1iaXRz
LmpzCkBAIC0wLDAgKzEsMzYgQEAKK2ltcG9ydFNjcmlwdHMoJy4uLy4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcycpOworaW1wb3J0U2NyaXB0cygiLi4vLi4vLi4vcmVzb3VyY2VzL2Nv
bW1vbi5qcyIpOworCitkZXNjcmlwdGlvbigiVGVzdCBFQ0RIIGRlcml2ZUJpdHMgb3BlcmF0aW9u
IHdpdGggaW1wb3J0ZWQgYmFzZSBrZXkgaW4gd29ya2VycyIpOworCitqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKwordmFyIGV4dHJhY3RhYmxlID0gdHJ1ZTsKK3ZhciBqd2tQcml2YXRlS2V5ID0gewor
ICAgIGt0eTogIkVDIiwKKyAgICBjcnY6ICJQLTI1NiIsCisgICAgeDogIjFGU1ZXaWVUdmlrRmtH
MU5PeWhrVUNhTWJkUWh4d0g2YUN1NEV6LXNSdEEiLAorICAgIHk6ICI5am1OVExxTTRjakJoZEFu
SGNOSTlZUVYzTzhMRm1vLUVkWldrOG50QWFJIiwKKyAgICBkOiAicHB4QlNvdjNOOF9BVWNpc0F1
dm1MVjR5RThlX0xfQkxFOGJaYjlaMVhqZyIsCit9OwordmFyIGp3a1B1YmxpY0tleSA9IHsKKyAg
ICBrdHk6ICJFQyIsCisgICAgY3J2OiAiUC0yNTYiLAorICAgIHg6ICIxRlNWV2llVHZpa0ZrRzFO
T3loa1VDYU1iZFFoeHdINmFDdTRFei1zUnRBIiwKKyAgICB5OiAiOWptTlRMcU00Y2pCaGRBbkhj
Tkk5WVFWM084TEZtby1FZFpXazhudEFhSSIsCit9OwordmFyIGV4cGVjdGVkRGVyaXZlZEtleSA9
ICI0MGJmMGMwYTU2Zjc1Y2E1ODdlYTRmNjcyOWQ3YmY5YTMwYzVmNGEwZDQ3ZWVhMTNmZGY5ZGE4
ZjBiNTNiODVlIjsKKworY3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGp3a1ByaXZhdGVL
ZXksIHsgbmFtZTogIkVDREgiLCBuYW1lZEN1cnZlOiAiUC0yNTYiIH0sIGV4dHJhY3RhYmxlLCBb
ImRlcml2ZUJpdHMiXSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKKyAgICBwcml2YXRlS2V5ID0g
cmVzdWx0OworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmltcG9ydEtleSgiandrIiwgandrUHVi
bGljS2V5LCB7IG5hbWU6ICJFQ0RIIiwgbmFtZWRDdXJ2ZTogIlAtMjU2IiB9LCBleHRyYWN0YWJs
ZSwgWyBdKTsKK30pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgcHVibGljS2V5ID0gcmVz
dWx0OworICAgIHJldHVybiBjcnlwdG8uc3VidGxlLmRlcml2ZUJpdHMoeyBuYW1lOiJFQ0RIIiwg
cHVibGljOnB1YmxpY0tleSB9LCBwcml2YXRlS2V5LCBudWxsKTsKK30pLnRoZW4oZnVuY3Rpb24o
cmVzdWx0KSB7CisgICAgZGVyaXZlZEtleSA9IHJlc3VsdDsKKworICAgIHNob3VsZEJlKCJieXRl
c1RvSGV4U3RyaW5nKGRlcml2ZWRLZXkpIiwgImV4cGVjdGVkRGVyaXZlZEtleSIpOworCisgICAg
ZmluaXNoSlNUZXN0KCk7Cit9LCBmYWlsQW5kRmluaXNoSlNUZXN0KTsK
</data>
<flag name="review"
          id="325448"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
    <flag name="commit-queue"
          id="325478"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>