<?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>227655</bug_id>
          
          <creation_ts>2021-07-03 00:53:58 -0700</creation_ts>
          <short_desc>[OpenSSL] Implement CryptoAlgorithmEC*</short_desc>
          <delta_ts>2021-07-07 15:53:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</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>206439</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yoshiaki Jitsukawa">yoshiaki.jitsukawa</reporter>
          <assigned_to name="Yoshiaki Jitsukawa">yoshiaki.jitsukawa</assigned_to>
          <cc>don.olmstead</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>stephan.szabo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1774656</commentid>
    <comment_count>0</comment_count>
    <who name="Yoshiaki Jitsukawa">yoshiaki.jitsukawa</who>
    <bug_when>2021-07-03 00:53:58 -0700</bug_when>
    <thetext>Implement elliptic curve things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774926</commentid>
    <comment_count>1</comment_count>
      <attachid>432919</attachid>
    <who name="Yoshiaki Jitsukawa">yoshiaki.jitsukawa</who>
    <bug_when>2021-07-06 05:49:16 -0700</bug_when>
    <thetext>Created attachment 432919
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774945</commentid>
    <comment_count>2</comment_count>
      <attachid>432919</attachid>
    <who name="Stephan Szabo">stephan.szabo</who>
    <bug_when>2021-07-06 08:10:03 -0700</bug_when>
    <thetext>Comment on attachment 432919
Patch

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

&gt; Source/WebCore/crypto/openssl/CryptoKeyECOpenSSL.cpp:272
&gt; +        return false;

This seems like it should be a return nullptr;

Appears to cause a failure for me on playstation complaining about no viable conversion from returned value of type &apos;bool&apos; to function return type &apos;RefPtr&lt;WebCore::CryptoKeyEC&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775148</commentid>
    <comment_count>3</comment_count>
      <attachid>432990</attachid>
    <who name="Yoshiaki Jitsukawa">yoshiaki.jitsukawa</who>
    <bug_when>2021-07-06 17:19:27 -0700</bug_when>
    <thetext>Created attachment 432990
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775150</commentid>
    <comment_count>4</comment_count>
    <who name="Yoshiaki Jitsukawa">yoshiaki.jitsukawa</who>
    <bug_when>2021-07-06 17:22:39 -0700</bug_when>
    <thetext>&gt; This seems like it should be a return nullptr;

Thanks, I fixed it with the new patch along with warning fixes of ptrdiff vs size_t comparison in CryptoKeyEC::platformImportSpki/Pkcs8().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775505</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-07 15:52:43 -0700</bug_when>
    <thetext>Committed r279682 (239487@main): &lt;https://commits.webkit.org/239487@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 432990.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775506</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-07-07 15:53:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/80293316&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432919</attachid>
            <date>2021-07-06 05:49:16 -0700</date>
            <delta_ts>2021-07-06 17:19:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227655-20210706214914.patch</filename>
            <type>text/plain</type>
            <size>59910</size>
            <attacher name="Yoshiaki Jitsukawa">yoshiaki.jitsukawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTVhMTFiOTkwZjRjMmU0
YzYxMDc1ZWQwMzgyZTBjMjc2MWIxNTFlNi4uNGYwMTNiOWExOTI5YTdmZTE2NTQzMmFiNWFkYzk0
MmNkZWZkY2MwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDIxLTA3LTA1ICBZb3No
aWFraSBKaXRzdWthd2EgIDx5b3NoaWFraS5qaXRzdWthd2FAc29ueS5jb20+CisKKyAgICAgICAg
W09wZW5TU0xdIEltcGxlbWVudCBDcnlwdG9BbGdvcml0aG1FQyoKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzY1NQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBlbGxpcHRpYyBjdXJ2ZSBz
dXBwb3J0IGluIFdlYkNyeXB0by4gVGhpcyBwYXRjaCBlbmFibGVzIEVDREgKKyAgICAgICAgYW5k
IEVDRFNBIGFsZ29yaXRobXMgYXMgd2VsbCBhcyBFQyBrZXkgaW1wb3J0LCBleHBvcnQsIGFuZCBn
ZW5lcmF0aW9uLgorCisgICAgICAgIE5vdGUgdGhhdCBsb3cgbGV2ZWwgQVNOMSBBUEkgaXMgdXNl
ZCBpbiBDcnlwdG9LZXlFQy5jcHAgdG8gaW1wb3J0CisgICAgICAgIHB1YmxpYyBFQyBrZXlzIGlu
IHRoZSBTUEtJIGZvcm1hdCBiZWNhdXNlIGN1cnJlbnRseSBPcGVuU1NMIGRvZXNuJ3QKKyAgICAg
ICAgaGF2ZSB0aGUgT2JqZWN0IElEIG9mIHRoZSBlY0RIIGFsZ29yaXRobSBhbmQgaXQgZmFpbHMg
dG8gbG9hZCBlY0RICisgICAgICAgIGtleXMgd2l0aCBkMmlQVUJLRVkoKS4KKworICAgICAgICAq
IGNyeXB0by9rZXlzL0NyeXB0b0tleUVDLmg6CisgICAgICAgICogY3J5cHRvL29wZW5zc2wvQ3J5
cHRvQWxnb3JpdGhtRUNESE9wZW5TU0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxn
b3JpdGhtRUNESDo6cGxhdGZvcm1EZXJpdmVCaXRzKToKKyAgICAgICAgKiBjcnlwdG8vb3BlbnNz
bC9DcnlwdG9BbGdvcml0aG1FQ0RTQU9wZW5TU0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5
cHRvQWxnb3JpdGhtRUNEU0E6OnBsYXRmb3JtU2lnbik6CisgICAgICAgIChXZWJDb3JlOjpDcnlw
dG9BbGdvcml0aG1FQ0RTQTo6cGxhdGZvcm1WZXJpZnkpOgorICAgICAgICAqIGNyeXB0by9vcGVu
c3NsL0NyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5T3BlblNTTC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDcnlwdG9BbGdvcml0aG1SZWdpc3RyeTo6cGxhdGZvcm1SZWdpc3RlckFsZ29yaXRobXMpOgor
ICAgICAgICAqIGNyeXB0by9vcGVuc3NsL0NyeXB0b0tleUVDT3BlblNTTC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpjdXJ2ZUlkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3VydmVTaXpl
KToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUVDS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OnZl
cmlmeUN1cnZlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleUVDOjprZXlTaXplSW5CaXRz
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleUVDOjpwbGF0Zm9ybVN1cHBvcnRl
ZEN1cnZlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleUVDOjpwbGF0Zm9ybUdlbmVyYXRl
UGFpcik6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9LZXlFQzo6cGxhdGZvcm1JbXBvcnRSYXcp
OgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvS2V5RUM6OnBsYXRmb3JtSW1wb3J0SldLUHVibGlj
KToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleUVDOjpwbGF0Zm9ybUltcG9ydEpXS1ByaXZh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6ZWNQdWJsaWNLZXlJZGVudGlmaWVyKToKKyAgICAgICAg
KFdlYkNvcmU6OmVjREhJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OnN1cHBvcnRlZEFs
Z29yaXRobUlkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvS2V5RUM6OnBsYXRm
b3JtSW1wb3J0U3BraSk6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9LZXlFQzo6cGxhdGZvcm1J
bXBvcnRQa2NzOCk6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9LZXlFQzo6cGxhdGZvcm1FeHBv
cnRSYXcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvS2V5RUM6OnBsYXRmb3JtQWRk
RmllbGRFbGVtZW50cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9LZXlFQzo6cGxh
dGZvcm1FeHBvcnRTcGtpIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleUVDOjpw
bGF0Zm9ybUV4cG9ydFBrY3M4IGNvbnN0KToKKyAgICAgICAgKiBjcnlwdG8vb3BlbnNzbC9Dcnlw
dG9LZXlSU0FPcGVuU1NMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleVJTQTo6aW1w
b3J0U3BraSk6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9LZXlSU0E6OmltcG9ydFBrY3M4KToK
KyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleVJTQTo6ZXhwb3J0U3BraSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpDcnlwdG9LZXlSU0E6OmV4cG9ydFBrY3M4IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkNyeXB0b0tleVJTQTo6YWxnb3JpdGhtIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNyeXB0b0tleVJTQTo6ZXhwb3J0RGF0YSBjb25zdCk6CisgICAgICAgICogY3J5cHRvL29w
ZW5zc2wvT3BlblNTTENyeXB0b1VuaXF1ZVB0ci5oOgorICAgICAgICAoV2ViQ29yZTo6T3BlblNT
TENyeXB0b1B0ckRlbGV0ZXI8RUNfS0VZPjo6b3BlcmF0b3IoKSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpPcGVuU1NMQ3J5cHRvUHRyRGVsZXRlcjxFQ19QT0lOVD46Om9wZXJhdG9yKCkgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6T3BlblNTTENyeXB0b1B0ckRlbGV0ZXI8RUNEU0FfU0lH
Pjo6b3BlcmF0b3IoKSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpPcGVuU1NMQ3J5cHRvUHRy
RGVsZXRlcjxBU04xX1NFUVVFTkNFX0FOWT46Om9wZXJhdG9yKCkgY29uc3QpOgorICAgICAgICAq
IGNyeXB0by9vcGVuc3NsL09wZW5TU0xVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Y29udmVydFRvQnl0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQnl0ZXNFeHBhbmQp
OgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQmlnTnVtYmVyKToKKyAgICAgICAgKiBjcnlw
dG8vb3BlbnNzbC9PcGVuU1NMVXRpbGl0aWVzLmg6CisKIDIwMjEtMDctMDQgIEFsZXhleSBTaHZh
eWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIFtXZWJJRExdIFNpbXBsaWZ5
IGdlbmVyYXRpb24gb2YgcnVudGltZSBjb25kaXRpb25hbGx5IHJlYWQtd3JpdGUgYXR0cmlidXRl
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaCBi
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUVDLmgKaW5kZXggYjk2MDYwNTlj
OGE2NTYxMWI2ZWI0NGM5ZDgxOTNkZWUxZjBmZjQ0My4uOGQ2ZTAwODIxMjkxZTQ4YzFlYmJkYjA0
OTdlMGM1YmUyZmYzMzAyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMv
Q3J5cHRvS2V5RUMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlF
Qy5oCkBAIC01MSw4ICs1MSw5IEBAIHR5cGVkZWYgc3RkOjp1bmlxdWVfcHRyPHR5cGVuYW1lIHN0
ZDo6cmVtb3ZlX3BvaW50ZXI8Z2NyeV9zZXhwX3Q+Ojp0eXBlLCBQQUw6OkdDCiAjZW5kaWYKIAog
I2lmIFVTRShPUEVOU1NMKQotdHlwZWRlZiB2b2lkKiBQbGF0Zm9ybUVDS2V5OwotdHlwZWRlZiBz
dGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1FQ0tleT4gUGxhdGZvcm1FQ0tleUNvbnRhaW5lcjsKKyNp
bmNsdWRlICJjcnlwdG8vb3BlbnNzbC9PcGVuU1NMQ3J5cHRvVW5pcXVlUHRyLmgiCit0eXBlZGVm
IEVWUF9QS0VZKiBQbGF0Zm9ybUVDS2V5OwordHlwZWRlZiBXZWJDb3JlOjpFdnBQS2V5UHRyIFBs
YXRmb3JtRUNLZXlDb250YWluZXI7CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL29wZW5zc2wvQ3J5cHRvQWxnb3JpdGhtRUNE
SE9wZW5TU0wuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL29wZW5zc2wvQ3J5cHRvQWxnb3Jp
dGhtRUNESE9wZW5TU0wuY3BwCmluZGV4IGNmOTc4MzUyMzI4NTc4YzU2NThhNTNiMmFkZTc3NjVh
MTM3NGIxZTguLmZkZDA3YTllNGZjNTgyMjNlY2U1MDU1YWQyZTU2OWQwNjQxZTRhY2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9vcGVuc3NsL0NyeXB0b0FsZ29yaXRobUVDREhP
cGVuU1NMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vb3BlbnNzbC9DcnlwdG9BbGdv
cml0aG1FQ0RIT3BlblNTTC5jcHAKQEAgLTI5LDE0ICsyOSwzNSBAQAogI2lmIEVOQUJMRShXRUJf
Q1JZUFRPKQogCiAjaW5jbHVkZSAiQ3J5cHRvS2V5RUMuaCIKLSNpbmNsdWRlICJOb3RJbXBsZW1l
bnRlZC5oIgorI2luY2x1ZGUgIk9wZW5TU0xVdGlsaXRpZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1zdGQ6Om9wdGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4gQ3J5cHRvQWxnb3JpdGhtRUNE
SDo6cGxhdGZvcm1EZXJpdmVCaXRzKGNvbnN0IENyeXB0b0tleUVDJiwgY29uc3QgQ3J5cHRvS2V5
RUMmKQorc3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhfdD4+IENyeXB0b0FsZ29yaXRobUVDREg6
OnBsYXRmb3JtRGVyaXZlQml0cyhjb25zdCBDcnlwdG9LZXlFQyYgYmFzZUtleSwgY29uc3QgQ3J5
cHRvS2V5RUMmIHB1YmxpY0tleSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVy
biB7IH07CisgICAgYXV0byBjdHggPSBFdnBQS2V5Q3R4UHRyKEVWUF9QS0VZX0NUWF9uZXcoYmFz
ZUtleS5wbGF0Zm9ybUtleSgpLCBudWxscHRyKSk7CisgICAgaWYgKCFjdHgpCisgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBpZiAoRVZQX1BLRVlfZGVyaXZlX2luaXQoY3R4Lmdl
dCgpKSA8PSAwKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgaWYgKEVWUF9Q
S0VZX2Rlcml2ZV9zZXRfcGVlcihjdHguZ2V0KCksIHB1YmxpY0tleS5wbGF0Zm9ybUtleSgpKSA8
PSAwKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgLy8gQ2FsbCB3aXRoIGEg
bnVsbHB0ciB0byBnZXQgdGhlIHJlcXVpcmVkIGJ1ZmZlciBzaXplLgorICAgIHNpemVfdCBrZXlM
ZW47CisgICAgaWYgKEVWUF9QS0VZX2Rlcml2ZShjdHguZ2V0KCksIG51bGxwdHIsICZrZXlMZW4p
IDw9IDApCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBWZWN0b3I8dWludDhf
dD4ga2V5KGtleUxlbik7CisgICAgaWYgKEVWUF9QS0VZX2Rlcml2ZShjdHguZ2V0KCksIGtleS5k
YXRhKCksICZrZXlMZW4pIDw9IDApCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAvLyBTaHJpbmsgdGhlIGJ1ZmZlciBzaW5jZSB0aGUgbmV3IGtleUxlbiBtYXkgZGlmZmVyIGZy
b20gdGhlIGJ1ZmZlciBzaXplLgorICAgIGtleS5zaHJpbmsoa2V5TGVuKTsKKworICAgIHJldHVy
biBrZXk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9vcGVuc3NsL0NyeXB0b0FsZ29yaXRobUVDRFNBT3BlblNTTC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vb3BlbnNzbC9DcnlwdG9BbGdvcml0aG1FQ0RTQU9wZW5TU0wu
Y3BwCmluZGV4IDIwMGMwZmZlZWRhMzMwYzcwY2EwMTk2MmI5ZTgyMGI0OGY4OWQyOTUuLmQyZTU3
Nzg5ZjYxODM4Y2E3OWM2NTQ5NTFmNTYzNThmZmVlMWQ5YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9vcGVuc3NsL0NyeXB0b0FsZ29yaXRobUVDRFNBT3BlblNTTC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL29wZW5zc2wvQ3J5cHRvQWxnb3JpdGhtRUNEU0FPcGVu
U1NMLmNwcApAQCAtMzAsMjAgKzMwLDY5IEBACiAKICNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1F
Y2RzYVBhcmFtcy5oIgogI2luY2x1ZGUgIkNyeXB0b0tleUVDLmgiCi0jaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKKyNpbmNsdWRlICJPcGVuU1NMVXRpbGl0aWVzLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBDcnlwdG9BbGdvcml0aG1F
Q0RTQTo6cGxhdGZvcm1TaWduKGNvbnN0IENyeXB0b0FsZ29yaXRobUVjZHNhUGFyYW1zJiwgY29u
c3QgQ3J5cHRvS2V5RUMmLCBjb25zdCBWZWN0b3I8dWludDhfdD4mKQorRXhjZXB0aW9uT3I8VmVj
dG9yPHVpbnQ4X3Q+PiBDcnlwdG9BbGdvcml0aG1FQ0RTQTo6cGxhdGZvcm1TaWduKGNvbnN0IENy
eXB0b0FsZ29yaXRobUVjZHNhUGFyYW1zJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlFQyYg
a2V5LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGRhdGEpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQo
KTsKLSAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKKyAgICBzaXpl
X3Qga2V5U2l6ZUluQnl0ZXMgPSAoa2V5LmtleVNpemVJbkJpdHMoKSArIDcpIC8gODsKKworICAg
IGNvbnN0IEVWUF9NRCogbWQgPSBkaWdlc3RBbGdvcml0aG0ocGFyYW1ldGVycy5oYXNoSWRlbnRp
Zmllcik7CisgICAgaWYgKCFtZCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBv
cnRlZEVycm9yIH07CisKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4gZGlnZXN0
ID0gY2FsY3VsYXRlRGlnZXN0KG1kLCBkYXRhKTsKKyAgICBpZiAoIWRpZ2VzdCkKKyAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVycm9yIH07CisKKyAgICBFQ19LRVkqIGVjS2V5
ID0gRVZQX1BLRVlfZ2V0MF9FQ19LRVkoa2V5LnBsYXRmb3JtS2V5KCkpOworICAgIGlmICghZWNL
ZXkpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciB9OworCisgICAg
Ly8gV2UgdXNlIEVDRFNBX2RvX3NpZ24gcmF0aGVyIHRoYW4gRVZQIEFQSSBiZWNhdXNlIHRoZSBs
YXR0ZXIgaGFuZGxlcyBFQ0RTQSBzaWduYXR1cmUgaW4gREVSIGZvcm1hdAorICAgIC8vIHdoaWxl
IHRoaXMgZnVuY3Rpb24gaXMgc3VwcG9zZWQgdG8gcmV0dXJuIHNpbXBseSBjb25jYXRpbmF0ZWQg
InIiIGFuZCAicyIuCisgICAgYXV0byBzaWcgPSBFQ0RTQVNpZ1B0cihFQ0RTQV9kb19zaWduKGRp
Z2VzdC0+ZGF0YSgpLCBkaWdlc3QtPnNpemUoKSwgZWNLZXkpKTsKKyAgICBpZiAoIXNpZykKKyAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVycm9yIH07CisKKyAgICBjb25zdCBC
SUdOVU0qIHI7CisgICAgY29uc3QgQklHTlVNKiBzOworICAgIEVDRFNBX1NJR19nZXQwKHNpZy5n
ZXQoKSwgJnIsICZzKTsKKworICAgIC8vIENvbmNhdGVuYXRlIHIgYW5kIHMsIGV4cGFuZGluZyBy
IGFuZCBzIHRvIGtleVNpemVJbkJ5dGVzLgorICAgIFZlY3Rvcjx1aW50OF90PiBzaWduYXR1cmUg
PSBjb252ZXJ0VG9CeXRlc0V4cGFuZChyLCBrZXlTaXplSW5CeXRlcyk7CisgICAgc2lnbmF0dXJl
LmFwcGVuZFZlY3Rvcihjb252ZXJ0VG9CeXRlc0V4cGFuZChzLCBrZXlTaXplSW5CeXRlcykpOwor
CisgICAgcmV0dXJuIHNpZ25hdHVyZTsKIH0KIAotRXhjZXB0aW9uT3I8Ym9vbD4gQ3J5cHRvQWxn
b3JpdGhtRUNEU0E6OnBsYXRmb3JtVmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobUVjZHNhUGFy
YW1zJiwgY29uc3QgQ3J5cHRvS2V5RUMmLCBjb25zdCBWZWN0b3I8dWludDhfdD4mLCBjb25zdCBW
ZWN0b3I8dWludDhfdD4mKQorRXhjZXB0aW9uT3I8Ym9vbD4gQ3J5cHRvQWxnb3JpdGhtRUNEU0E6
OnBsYXRmb3JtVmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobUVjZHNhUGFyYW1zJiBwYXJhbWV0
ZXJzLCBjb25zdCBDcnlwdG9LZXlFQyYga2V5LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIHNpZ25h
dHVyZSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBkYXRhKQogewotICAgIG5vdEltcGxlbWVudGVk
KCk7Ci0gICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07CisgICAgc2l6
ZV90IGtleVNpemVJbkJ5dGVzID0gKGtleS5rZXlTaXplSW5CaXRzKCkgKyA3KSAvIDg7CisKKyAg
ICAvLyBCYWlsIGlmIHRoZSBzaWduYXR1cmUgc2l6ZSBpc24ndCBkb3VibGUgdGhlIGtleSBzaXpl
IChpLmUuIGNvbmNhdGVuYXRlZCByIGFuZCBzIGNvbXBvbmVudHMpLgorICAgIGlmIChzaWduYXR1
cmUuc2l6ZSgpICE9IGtleVNpemVJbkJ5dGVzICogMikKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIAorICAgIGF1dG8gc2lnID0gRUNEU0FTaWdQdHIoRUNEU0FfU0lHX25ldygpKTsKKyAgICBz
aWctPnIgPSBCTl9iaW4yYm4oc2lnbmF0dXJlLmRhdGEoKSwga2V5U2l6ZUluQnl0ZXMsIHNpZy0+
cik7CisgICAgc2lnLT5zID0gQk5fYmluMmJuKHNpZ25hdHVyZS5kYXRhKCkgKyBrZXlTaXplSW5C
eXRlcywga2V5U2l6ZUluQnl0ZXMsIHNpZy0+cyk7CisKKyAgICBjb25zdCBFVlBfTUQqIG1kID0g
ZGlnZXN0QWxnb3JpdGhtKHBhcmFtZXRlcnMuaGFzaElkZW50aWZpZXIpOworICAgIGlmICghbWQp
CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OworCisgICAg
c3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhfdD4+IGRpZ2VzdCA9IGNhbGN1bGF0ZURpZ2VzdCht
ZCwgZGF0YSk7CisgICAgaWYgKCFkaWdlc3QpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBP
cGVyYXRpb25FcnJvciB9OworCisgICAgRUNfS0VZKiBlY0tleSA9IEVWUF9QS0VZX2dldDBfRUNf
S0VZKGtleS5wbGF0Zm9ybUtleSgpKTsKKyAgICBpZiAoIWVjS2V5KQorICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IgfTsKKworICAgIGludCByZXQgPSBFQ0RTQV9kb192
ZXJpZnkoZGlnZXN0LT5kYXRhKCksIGRpZ2VzdC0+c2l6ZSgpLCBzaWcuZ2V0KCksIGVjS2V5KTsK
KyAgICByZXR1cm4gcmV0ID09IDE7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9vcGVuc3NsL0NyeXB0b0FsZ29yaXRobVJlZ2lz
dHJ5T3BlblNTTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vb3BlbnNzbC9DcnlwdG9BbGdv
cml0aG1SZWdpc3RyeU9wZW5TU0wuY3BwCmluZGV4IDk1MWYxYTI5MjhhMmZmOTJiMjEyMTA3NTY2
NTM1ZDlhNjdkMTU0ZDQuLjQzM2Q4NGVlN2RlNTJjZWM5ZjIwYjFjNWNjYjFiYzg2ZDkxZGQ3YmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9vcGVuc3NsL0NyeXB0b0FsZ29yaXRo
bVJlZ2lzdHJ5T3BlblNTTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL29wZW5zc2wv
Q3J5cHRvQWxnb3JpdGhtUmVnaXN0cnlPcGVuU1NMLmNwcApAQCAtMzMsNiArMzMsOCBAQAogI2lu
Y2x1ZGUgIkNyeXB0b0FsZ29yaXRobUFFU19DVFIuaCIKICNpbmNsdWRlICJDcnlwdG9BbGdvcml0
aG1BRVNfR0NNLmgiCiAjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmgiCisjaW5jbHVk
ZSAiQ3J5cHRvQWxnb3JpdGhtRUNESC5oIgorI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUVDRFNB
LmgiCiAjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSE1BQy5oIgogI2luY2x1ZGUgIkNyeXB0b0Fs
Z29yaXRobVJTQUVTX1BLQ1MxX3YxXzUuaCIKICNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1SU0FT
U0FfUEtDUzFfdjFfNS5oIgpAQCAtNTMsNiArNTUsOCBAQCB2b2lkIENyeXB0b0FsZ29yaXRobVJl
Z2lzdHJ5OjpwbGF0Zm9ybVJlZ2lzdGVyQWxnb3JpdGhtcygpCiAgICAgcmVnaXN0ZXJBbGdvcml0
aG08Q3J5cHRvQWxnb3JpdGhtQUVTX0NUUj4oKTsKICAgICByZWdpc3RlckFsZ29yaXRobTxDcnlw
dG9BbGdvcml0aG1BRVNfR0NNPigpOwogICAgIHJlZ2lzdGVyQWxnb3JpdGhtPENyeXB0b0FsZ29y
aXRobUFFU19LVz4oKTsKKyAgICByZWdpc3RlckFsZ29yaXRobTxDcnlwdG9BbGdvcml0aG1FQ0RI
PigpOworICAgIHJlZ2lzdGVyQWxnb3JpdGhtPENyeXB0b0FsZ29yaXRobUVDRFNBPigpOwogICAg
IHJlZ2lzdGVyQWxnb3JpdGhtPENyeXB0b0FsZ29yaXRobUhNQUM+KCk7CiAgICAgcmVnaXN0ZXJB
bGdvcml0aG08Q3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNT4oKTsKICAgICByZWdpc3Rl
ckFsZ29yaXRobTxDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNT4oKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9vcGVuc3NsL0NyeXB0b0tleUVDT3BlblNTTC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vb3BlbnNzbC9DcnlwdG9LZXlFQ09wZW5TU0wuY3BwCmlu
ZGV4IGYzMTFlZDNiNmZkY2M3ODQ4OWRkZjhhM2YwMmI5M2RiNTE0YzcwNjUuLjlmNjkwMjk5ZjUz
NjVlNGFkM2EzMWMwNWUxZTkxMDgyMzg0MmI5NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9vcGVuc3NsL0NyeXB0b0tleUVDT3BlblNTTC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL29wZW5zc2wvQ3J5cHRvS2V5RUNPcGVuU1NMLmNwcApAQCAtMjgsOTQgKzI4LDQz
NSBAQAogCiAjaWYgRU5BQkxFKFdFQl9DUllQVE8pCiAKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRl
ZC5oIgorI2luY2x1ZGUgIkpzb25XZWJLZXkuaCIKKyNpbmNsdWRlICJPcGVuU1NMVXRpbGl0aWVz
LmgiCisjaW5jbHVkZSA8d3RmL3RleHQvQmFzZTY0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotc2l6ZV90IENyeXB0b0tleUVDOjprZXlTaXplSW5CaXRzKCkgY29uc3QKK3N0YXRpYyBpbnQg
Y3VydmVJZGVudGlmaWVyKENyeXB0b0tleUVDOjpOYW1lZEN1cnZlIGN1cnZlKQoreworICAgIHN3
aXRjaCAoY3VydmUpIHsKKyAgICBjYXNlIENyeXB0b0tleUVDOjpOYW1lZEN1cnZlOjpQMjU2Ogor
ICAgICAgICByZXR1cm4gTklEX1g5XzYyX3ByaW1lMjU2djE7CisgICAgY2FzZSBDcnlwdG9LZXlF
Qzo6TmFtZWRDdXJ2ZTo6UDM4NDoKKyAgICAgICAgcmV0dXJuIE5JRF9zZWNwMzg0cjE7CisgICAg
Y2FzZSBDcnlwdG9LZXlFQzo6TmFtZWRDdXJ2ZTo6UDUyMToKKyAgICAgICAgcmV0dXJuIE5JRF9z
ZWNwNTIxcjE7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJu
IE5JRF91bmRlZjsKK30KKworc3RhdGljIHNpemVfdCBjdXJ2ZVNpemUoQ3J5cHRvS2V5RUM6Ok5h
bWVkQ3VydmUgY3VydmUpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBzd2l0Y2ggKGN1
cnZlKSB7CisgICAgY2FzZSBDcnlwdG9LZXlFQzo6TmFtZWRDdXJ2ZTo6UDI1NjoKKyAgICAgICAg
cmV0dXJuIDI1NjsKKyAgICBjYXNlIENyeXB0b0tleUVDOjpOYW1lZEN1cnZlOjpQMzg0OgorICAg
ICAgICByZXR1cm4gMzg0OworICAgIGNhc2UgQ3J5cHRvS2V5RUM6Ok5hbWVkQ3VydmU6OlA1MjE6
CisgICAgICAgIHJldHVybiA1MjE7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgcmV0dXJuIDA7CiB9CiAKLWJvb2wgQ3J5cHRvS2V5RUM6OnBsYXRmb3JtU3VwcG9ydGVk
Q3VydmUoTmFtZWRDdXJ2ZSkKK3N0YXRpYyBFQ0tleVB0ciBjcmVhdGVFQ0tleShDcnlwdG9LZXlF
Qzo6TmFtZWRDdXJ2ZSBjdXJ2ZSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVy
biBmYWxzZTsKKyAgICBhdXRvIGtleSA9IEVDS2V5UHRyKEVDX0tFWV9uZXdfYnlfY3VydmVfbmFt
ZShjdXJ2ZUlkZW50aWZpZXIoY3VydmUpKSk7CisgICAgaWYgKGtleSkgeworICAgICAgICAvLyBP
UEVOU1NMX0VDX05BTUVEX0NVUlZFIG5lZWRzIHRvIGJlIHNldCB0byBleHBvcnQgdGhlIGtleSB3
aXRoIHRoZSBjdXJ2ZSBuYW1lLCBub3Qgd2l0aCB0aGUgY3VydmUgcGFyYW1ldGVycy4KKyAgICAg
ICAgRUNfS0VZX3NldF9hc24xX2ZsYWcoa2V5LmdldCgpLCBPUEVOU1NMX0VDX05BTUVEX0NVUlZF
KTsKKyAgICB9CisgICAgcmV0dXJuIGtleTsKK30KKworLy8gVGhpcyBmdW5jdGlvbiB2ZXJpZmll
cyB0aGF0IHRoZSBncm91cCByZXByZXNlbnRzIHRoZSBuYW1lZCBjdXJ2ZS4KK3N0YXRpYyBib29s
IHZlcmlmeUN1cnZlKGNvbnN0IEVDX0dST1VQKiBncm91cCwgQ3J5cHRvS2V5RUM6Ok5hbWVkQ3Vy
dmUgY3VydmUpCit7CisgICAgaWYgKCFncm91cCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgYXV0byBrZXkgPSBjcmVhdGVFQ0tleShjdXJ2ZSk7CisgICAgaWYgKCFrZXkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiAhRUNfR1JPVVBfY21wKGdyb3VwLCBFQ19LRVlf
Z2V0MF9ncm91cChrZXkuZ2V0KCkpLCBudWxscHRyKTsKK30KKworc2l6ZV90IENyeXB0b0tleUVD
OjprZXlTaXplSW5CaXRzKCkgY29uc3QKK3sKKyAgICAvLyBFVlBfUEtFWV9zaXplKCkgcmV0dXJu
cyB0aGUgc2l6ZSBvZiBERVItZW5jb2RlZCBrZXkgYW5kIGNhbm5vdCBiZSB1c2VkIGZvciB0aGlz
IGZ1bmN0aW9uJ3MgcHVycG9zZS4KKyAgICAvLyBJbnN0ZWFkIHdlIHJlc29sdmUgdGhlIGtleSBz
aXplIGJ5IENyeXB0b0tleUVDOjpOYW1lZEN1cnZlLgorICAgIHNpemVfdCBzaXplID0gY3VydmVT
aXplKG1fY3VydmUpOworICAgIHJldHVybiBzaXplOworfQorCitib29sIENyeXB0b0tleUVDOjpw
bGF0Zm9ybVN1cHBvcnRlZEN1cnZlKE5hbWVkQ3VydmUgY3VydmUpCit7CisgICAgcmV0dXJuIGN1
cnZlID09IE5hbWVkQ3VydmU6OlAyNTYgfHwgY3VydmUgPT0gTmFtZWRDdXJ2ZTo6UDM4NCB8fCBj
dXJ2ZSA9PSBOYW1lZEN1cnZlOjpQNTIxOworfQorCitzdGQ6Om9wdGlvbmFsPENyeXB0b0tleVBh
aXI+IENyeXB0b0tleUVDOjpwbGF0Zm9ybUdlbmVyYXRlUGFpcihDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyIGlkZW50aWZpZXIsIE5hbWVkQ3VydmUgY3VydmUsIGJvb2wgZXh0cmFjdGFibGUsIENy
eXB0b0tleVVzYWdlQml0bWFwIHVzYWdlcykKK3sKKyAgICAvLyBUbyBnZW5lcmF0ZSBhIGtleSBw
YWlyLCB3ZSBnZW5lcmF0ZSBhIHByaXZhdGUga2V5IGFuZCBleHRyYWN0IHRoZSBwdWJsaWMga2V5
IGZyb20gdGhlIHByaXZhdGUga2V5LgorICAgIGF1dG8gcHJpdmF0ZUVDS2V5ID0gY3JlYXRlRUNL
ZXkoY3VydmUpOworICAgIGlmICghcHJpdmF0ZUVDS2V5KQorICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgaWYgKEVDX0tFWV9nZW5lcmF0ZV9rZXkocHJpdmF0ZUVDS2V5LmdldCgp
KSA8PSAwKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgYXV0byBwb2ludCA9
IEVDUG9pbnRQdHIoRUNfUE9JTlRfZHVwKEVDX0tFWV9nZXQwX3B1YmxpY19rZXkocHJpdmF0ZUVD
S2V5LmdldCgpKSwgRUNfS0VZX2dldDBfZ3JvdXAocHJpdmF0ZUVDS2V5LmdldCgpKSkpOworICAg
IGlmICghcG9pbnQpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBhdXRvIHB1
YmxpY0VDS2V5ID0gY3JlYXRlRUNLZXkoY3VydmUpOworICAgIGlmICghcHVibGljRUNLZXkpCisg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBpZiAoRUNfS0VZX3NldF9wdWJsaWNf
a2V5KHB1YmxpY0VDS2V5LmdldCgpLCBwb2ludC5nZXQoKSkgPD0gMCkKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgIGF1dG8gcHJpdmF0ZVBLZXkgPSBFdnBQS2V5UHRyKEVWUF9Q
S0VZX25ldygpKTsKKyAgICBpZiAoRVZQX1BLRVlfc2V0MV9FQ19LRVkocHJpdmF0ZVBLZXkuZ2V0
KCksIHByaXZhdGVFQ0tleS5nZXQoKSkgPD0gMCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgIGF1dG8gcHVibGljUEtleSA9IEV2cFBLZXlQdHIoRVZQX1BLRVlfbmV3KCkpOwor
ICAgIGlmIChFVlBfUEtFWV9zZXQxX0VDX0tFWShwdWJsaWNQS2V5LmdldCgpLCBwdWJsaWNFQ0tl
eS5nZXQoKSkgPD0gMCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGF1dG8g
cHVibGljS2V5ID0gQ3J5cHRvS2V5RUM6OmNyZWF0ZShpZGVudGlmaWVyLCBjdXJ2ZSwgQ3J5cHRv
S2V5VHlwZTo6UHVibGljLCBXVEZNb3ZlKHB1YmxpY1BLZXkpLCB0cnVlLCB1c2FnZXMpOworICAg
IGF1dG8gcHJpdmF0ZUtleSA9IENyeXB0b0tleUVDOjpjcmVhdGUoaWRlbnRpZmllciwgY3VydmUs
IENyeXB0b0tleVR5cGU6OlByaXZhdGUsIFdURk1vdmUocHJpdmF0ZVBLZXkpLCBleHRyYWN0YWJs
ZSwgdXNhZ2VzKTsKKyAgICByZXR1cm4gQ3J5cHRvS2V5UGFpciB7IFdURk1vdmUocHVibGljS2V5
KSwgV1RGTW92ZShwcml2YXRlS2V5KSB9OwogfQogCi1zdGQ6Om9wdGlvbmFsPENyeXB0b0tleVBh
aXI+IENyeXB0b0tleUVDOjpwbGF0Zm9ybUdlbmVyYXRlUGFpcihDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyLCBOYW1lZEN1cnZlLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1h
cCkKK1JlZlB0cjxDcnlwdG9LZXlFQz4gQ3J5cHRvS2V5RUM6OnBsYXRmb3JtSW1wb3J0UmF3KENy
eXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmllciwgTmFtZWRDdXJ2ZSBjdXJ2ZSwgVmVj
dG9yPHVpbnQ4X3Q+JiYga2V5RGF0YSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2VC
aXRtYXAgdXNhZ2VzKQogewotICAgIFVOVVNFRF9QQVJBTShleHRyYWN0YWJsZSk7Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4geyB9OworICAgIGF1dG8ga2V5ID0gY3JlYXRlRUNL
ZXkoY3VydmUpOworICAgIGlmICgha2V5KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAg
IGF1dG8gZ3JvdXAgPSBFQ19LRVlfZ2V0MF9ncm91cChrZXkuZ2V0KCkpOworICAgIGF1dG8gcG9p
bnQgPSBFQ1BvaW50UHRyKEVDX1BPSU5UX25ldyhncm91cCkpOworICAgIC8vIExvYWQgYW4gRUMg
cG9pbnQgZnJvbSB0aGUga2V5RGF0YS4gVGhpcyBwb2ludCBpcyB1c2VkIGFzIGEgcHVibGljIGtl
eS4KKyAgICBpZiAoRUNfUE9JTlRfb2N0MnBvaW50KGdyb3VwLCBwb2ludC5nZXQoKSwga2V5RGF0
YS5kYXRhKCksIGtleURhdGEuc2l6ZSgpLCBudWxscHRyKSA8PSAwKQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKworICAgIGlmIChFQ19LRVlfc2V0X3B1YmxpY19rZXkoa2V5LmdldCgpLCBwb2lu
dC5nZXQoKSkgPD0gMCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoRUNfS0VZ
X2NoZWNrX2tleShrZXkuZ2V0KCkpIDw9IDApCisgICAgICAgIHJldHVybiBudWxscHRyOworCisg
ICAgYXV0byBwa2V5ID0gRXZwUEtleVB0cihFVlBfUEtFWV9uZXcoKSk7CisgICAgaWYgKEVWUF9Q
S0VZX3NldDFfRUNfS0VZKHBrZXkuZ2V0KCksIGtleS5nZXQoKSkgPD0gMCkKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4gY3JlYXRlKGlkZW50aWZpZXIsIGN1cnZlLCBDcnlw
dG9LZXlUeXBlOjpQdWJsaWMsIFdURk1vdmUocGtleSksIGV4dHJhY3RhYmxlLCB1c2FnZXMpOwog
fQogCi1SZWZQdHI8Q3J5cHRvS2V5RUM+IENyeXB0b0tleUVDOjpwbGF0Zm9ybUltcG9ydFJhdyhD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLCBOYW1lZEN1cnZlLCBWZWN0b3I8dWludDhfdD4mJiBr
ZXlEYXRhLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCkKK1JlZlB0cjxD
cnlwdG9LZXlFQz4gQ3J5cHRvS2V5RUM6OnBsYXRmb3JtSW1wb3J0SldLUHVibGljKENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmllciwgTmFtZWRDdXJ2ZSBjdXJ2ZSwgVmVjdG9yPHVp
bnQ4X3Q+JiYgeCwgVmVjdG9yPHVpbnQ4X3Q+JiYgeSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRv
S2V5VXNhZ2VCaXRtYXAgdXNhZ2VzKQogewotICAgIFVOVVNFRF9QQVJBTShrZXlEYXRhKTsKLSAg
ICBVTlVTRURfUEFSQU0oZXh0cmFjdGFibGUpOwotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAg
cmV0dXJuIG51bGxwdHI7CisgICAgYXV0byBrZXkgPSBjcmVhdGVFQ0tleShjdXJ2ZSk7CisgICAg
aWYgKCFrZXkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgYXV0byBncm91cCA9IEVD
X0tFWV9nZXQwX2dyb3VwKGtleS5nZXQoKSk7CisgICAgYXV0byBwb2ludCA9IEVDUG9pbnRQdHIo
RUNfUE9JTlRfbmV3KGdyb3VwKSk7CisKKyAgICAvLyBDdXJyZW50bHkgd2Ugb25seSBzdXBwb3J0
IGVsbGlwdGljIGN1cnZlcyBvdmVyIEdGKHApLiAgIAorICAgIGlmIChFQ19QT0lOVF9zZXRfYWZm
aW5lX2Nvb3JkaW5hdGVzX0dGcChncm91cCwgcG9pbnQuZ2V0KCksIEJJR05VTVB0cihjb252ZXJ0
VG9CaWdOdW1iZXIobnVsbHB0ciwgeCkpLmdldCgpLCBCSUdOVU1QdHIoY29udmVydFRvQmlnTnVt
YmVyKG51bGxwdHIsIHkpKS5nZXQoKSwgbnVsbHB0cikgPD0gMCkKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisKKyAgICBpZiAoRUNfS0VZX3NldF9wdWJsaWNfa2V5KGtleS5nZXQoKSwgcG9pbnQu
Z2V0KCkpIDw9IDApCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKEVDX0tFWV9j
aGVja19rZXkoa2V5LmdldCgpKSA8PSAwKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAg
IGF1dG8gcGtleSA9IEV2cFBLZXlQdHIoRVZQX1BLRVlfbmV3KCkpOworICAgIGlmIChFVlBfUEtF
WV9zZXQxX0VDX0tFWShwa2V5LmdldCgpLCBrZXkuZ2V0KCkpIDw9IDApCisgICAgICAgIHJldHVy
biBudWxscHRyOworCisgICAgcmV0dXJuIGNyZWF0ZShpZGVudGlmaWVyLCBjdXJ2ZSwgQ3J5cHRv
S2V5VHlwZTo6UHVibGljLCBXVEZNb3ZlKHBrZXkpLCBleHRyYWN0YWJsZSwgdXNhZ2VzKTsKIH0K
IAotUmVmUHRyPENyeXB0b0tleUVDPiBDcnlwdG9LZXlFQzo6cGxhdGZvcm1JbXBvcnRKV0tQdWJs
aWMoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgTmFtZWRDdXJ2ZSwgVmVjdG9yPHVpbnQ4X3Q+
JiYgeCwgVmVjdG9yPHVpbnQ4X3Q+JiYgeSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNh
Z2VCaXRtYXApCitSZWZQdHI8Q3J5cHRvS2V5RUM+IENyeXB0b0tleUVDOjpwbGF0Zm9ybUltcG9y
dEpXS1ByaXZhdGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBpZGVudGlmaWVyLCBOYW1lZEN1
cnZlIGN1cnZlLCBWZWN0b3I8dWludDhfdD4mJiB4LCBWZWN0b3I8dWludDhfdD4mJiB5LCBWZWN0
b3I8dWludDhfdD4mJiBkLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCB1
c2FnZXMpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKHgpOwotICAgIFVOVVNFRF9QQVJBTSh5KTsKLSAg
ICBVTlVTRURfUEFSQU0oZXh0cmFjdGFibGUpOwotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAg
cmV0dXJuIG51bGxwdHI7CisgICAgYXV0byBrZXkgPSBjcmVhdGVFQ0tleShjdXJ2ZSk7CisgICAg
aWYgKCFrZXkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgYXV0byBncm91cCA9IEVD
X0tFWV9nZXQwX2dyb3VwKGtleS5nZXQoKSk7CisgICAgYXV0byBwb2ludCA9IEVDUG9pbnRQdHIo
RUNfUE9JTlRfbmV3KGdyb3VwKSk7CisKKyAgICAvLyBDdXJyZW50bHkgd2Ugb25seSBzdXBwb3J0
IGVsbGlwdGljIGN1cnZlcyBvdmVyIEdGKHApLiAgIAorICAgIGlmIChFQ19QT0lOVF9zZXRfYWZm
aW5lX2Nvb3JkaW5hdGVzX0dGcChncm91cCwgcG9pbnQuZ2V0KCksIEJJR05VTVB0cihjb252ZXJ0
VG9CaWdOdW1iZXIobnVsbHB0ciwgeCkpLmdldCgpLCBCSUdOVU1QdHIoY29udmVydFRvQmlnTnVt
YmVyKG51bGxwdHIsIHkpKS5nZXQoKSwgbnVsbHB0cikgPD0gMCkKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisKKyAgICBpZiAoRUNfS0VZX3NldF9wdWJsaWNfa2V5KGtleS5nZXQoKSwgcG9pbnQu
Z2V0KCkpIDw9IDApCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKEVDX0tFWV9z
ZXRfcHJpdmF0ZV9rZXkoa2V5LmdldCgpLCBCSUdOVU1QdHIoY29udmVydFRvQmlnTnVtYmVyKG51
bGxwdHIsIGQpKS5nZXQoKSkgPD0gMCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBp
ZiAoRUNfS0VZX2NoZWNrX2tleShrZXkuZ2V0KCkpIDw9IDApCisgICAgICAgIHJldHVybiBudWxs
cHRyOworCisgICAgYXV0byBwa2V5ID0gRXZwUEtleVB0cihFVlBfUEtFWV9uZXcoKSk7CisgICAg
aWYgKEVWUF9QS0VZX3NldDFfRUNfS0VZKHBrZXkuZ2V0KCksIGtleS5nZXQoKSkgPD0gMCkKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4gY3JlYXRlKGlkZW50aWZpZXIsIGN1
cnZlLCBDcnlwdG9LZXlUeXBlOjpQcml2YXRlLCBXVEZNb3ZlKHBrZXkpLCBleHRyYWN0YWJsZSwg
dXNhZ2VzKTsKIH0KIAotUmVmUHRyPENyeXB0b0tleUVDPiBDcnlwdG9LZXlFQzo6cGxhdGZvcm1J
bXBvcnRKV0tQcml2YXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIsIE5hbWVkQ3VydmUsIFZl
Y3Rvcjx1aW50OF90PiYmIHgsIFZlY3Rvcjx1aW50OF90PiYmIHksIFZlY3Rvcjx1aW50OF90PiYm
IGQsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlQml0bWFwKQorc3RhdGljIGNvbnN0
IEFTTjFfT0JKRUNUKiBlY1B1YmxpY0tleUlkZW50aWZpZXIoKQogewotICAgIFVOVVNFRF9QQVJB
TSh4KTsKLSAgICBVTlVTRURfUEFSQU0oeSk7Ci0gICAgVU5VU0VEX1BBUkFNKGQpOwotICAgIFVO
VVNFRF9QQVJBTShleHRyYWN0YWJsZSk7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICBzdGF0aWMgQVNOMV9PQkpFQ1QqIG9pZCA9IE9CSl90eHQyb2JqKCIx
LjIuODQwLjEwMDQ1LjIuMSIsIDEpOworICAgIHJldHVybiBvaWQ7CiB9CiAKLVJlZlB0cjxDcnlw
dG9LZXlFQz4gQ3J5cHRvS2V5RUM6OnBsYXRmb3JtSW1wb3J0U3BraShDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyLCBOYW1lZEN1cnZlLCBWZWN0b3I8dWludDhfdD4mJiBrZXlEYXRhLCBib29sIGV4
dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCkKK3N0YXRpYyBjb25zdCBBU04xX09CSkVD
VCogZWNESElkZW50aWZpZXIoKQogewotICAgIFVOVVNFRF9QQVJBTShrZXlEYXRhKTsKLSAgICBV
TlVTRURfUEFSQU0oZXh0cmFjdGFibGUpOwotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0
dXJuIG51bGxwdHI7CisgICAgc3RhdGljIEFTTjFfT0JKRUNUKiBvaWQgPSBPQkpfdHh0Mm9iaigi
MS4zLjEzMi4xLjEyIiwgMSk7CisgICAgcmV0dXJuIG9pZDsKIH0KIAotUmVmUHRyPENyeXB0b0tl
eUVDPiBDcnlwdG9LZXlFQzo6cGxhdGZvcm1JbXBvcnRQa2NzOChDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyLCBOYW1lZEN1cnZlLCBWZWN0b3I8dWludDhfdD4mJiBrZXlEYXRhLCBib29sIGV4dHJh
Y3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCkKK3N0YXRpYyBib29sIHN1cHBvcnRlZEFsZ29y
aXRobUlkZW50aWZpZXIoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25z
dCBBU04xX09CSkVDVCogb2lkKQogewotICAgIFVOVVNFRF9QQVJBTShrZXlEYXRhKTsKLSAgICBV
TlVTRURfUEFSQU0oZXh0cmFjdGFibGUpOwotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0
dXJuIG51bGxwdHI7CisgICAgc3dpdGNoIChpZGVudGlmaWVyKSB7CisgICAgY2FzZSBDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyOjpFQ0RTQToKKyAgICAgICAgLy8gRUNEU0Egb25seSBzdXBwb3J0
cyBpZC1lY1B1YmxpY0tleSBhbGdvcml0aG1zIGZvciBpbXBvcnRlZCBrZXlzLgorICAgICAgICBp
ZiAoIU9CSl9jbXAob2lkLCBlY1B1YmxpY0tleUlkZW50aWZpZXIoKSkpCisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllcjo6RUNESDoKKyAgICAgICAgLy8gRUNESCBzdXBwb3J0cyBib3RoIGlkLWVj
UHVibGljS2V5IGFuZCBpZC1lY0RIIGFsZ29yaXRobXMgZm9yIGltcG9ydGVkIGtleXMuCisgICAg
ICAgIGlmICghT0JKX2NtcChvaWQsIGVjUHVibGljS2V5SWRlbnRpZmllcigpKSkKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAoIU9CSl9jbXAob2lkLCBlY0RISWRlbnRpZmll
cigpKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9Cit9CisKK1JlZlB0cjxDcnlwdG9LZXlFQz4gQ3J5cHRvS2V5RUM6OnBs
YXRmb3JtSW1wb3J0U3BraShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIsIE5h
bWVkQ3VydmUgY3VydmUsIFZlY3Rvcjx1aW50OF90PiYmIGtleURhdGEsIGJvb2wgZXh0cmFjdGFi
bGUsIENyeXB0b0tleVVzYWdlQml0bWFwIHVzYWdlcykKK3sKKyAgICAvLyBJbiB0aGlzIGZ1bmN0
aW9uIHdlIGV4dHJhY3QgdGhlIHN1YmplY3RQdWJsaWNLZXkgYWZ0ZXIgdmVyaWZ5aW5nIHRoYXQg
dGhlIGFsZ29yaXRobSBpbiB0aGUgU1BLSSBkYXRhCisgICAgLy8gbWF0Y2ggdGhlIGdpdmVuIGlk
ZW50aWZpZXIgYW5kIGN1cnZlLiBUaGVuIGNvbnN0cnVjdCBhbiBFQyBrZXkgd2l0aCB0aGUgbmFt
ZWQgY3VydmUgYW5kIHNldCB0aGUgcHVibGljIGtleS4KKworICAgIC8vIFN1YmplY3RQdWJsaWNL
ZXlJbmZvICA6Oj0gIFNFUVVFTkNFICB7CisgICAgLy8gICBhbGdvcml0aG0gICAgICAgICBBbGdv
cml0aG1JZGVudGlmaWVyLAorICAgIC8vICAgc3ViamVjdFB1YmxpY0tleSAgQklUIFNUUklORwor
ICAgIC8vIH0KKworICAgIGNvbnN0IHVpbnQ4X3QqIHB0ciA9IGtleURhdGEuZGF0YSgpOworICAg
IGF1dG8gc3ViamVjdFB1YmxpY0tleUluZm8gPSBBU04xU2VxdWVuY2VQdHIoZDJpX0FTTjFfU0VR
VUVOQ0VfQU5ZKG51bGxwdHIsICZwdHIsIGtleURhdGEuc2l6ZSgpKSk7CisgICAgaWYgKCFzdWJq
ZWN0UHVibGljS2V5SW5mbykKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKHB0ciAt
IGtleURhdGEuZGF0YSgpICE9IGtleURhdGEuc2l6ZSgpKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKworICAgIGlmIChza19BU04xX1RZUEVfbnVtKHN1YmplY3RQdWJsaWNLZXlJbmZvLmdldCgp
KSAhPSAyKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIEFTTjFfVFlQRSogdmFsdWUg
PSBza19BU04xX1RZUEVfdmFsdWUoc3ViamVjdFB1YmxpY0tleUluZm8uZ2V0KCksIDApOworICAg
IGlmICh2YWx1ZS0+dHlwZSAhPSBWX0FTTjFfU0VRVUVOQ0UpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIC8vIEFsZ29yaXRobUlkZW50aWZpZXIgIDo6PSAgU0VRVUVOQ0UgIHsKKyAgICAv
LyAgICAgYWxnb3JpdGhtICAgT0JKRUNUIElERU5USUZJRVIsCisgICAgLy8gICAgIHBhcmFtZXRl
cnMgIEFOWSBERUZJTkVEIEJZIGFsZ29yaXRobSBPUFRJT05BTAorICAgIC8vIH0KKworICAgIHB0
ciA9IHZhbHVlLT52YWx1ZS5zZXF1ZW5jZS0+ZGF0YTsKKyAgICBhdXRvIGFsZ29yaXRobSA9IEFT
TjFTZXF1ZW5jZVB0cihkMmlfQVNOMV9TRVFVRU5DRV9BTlkobnVsbHB0ciwgJnB0ciwgdmFsdWUt
PnZhbHVlLnNlcXVlbmNlLT5sZW5ndGgpKTsKKyAgICBpZiAoIWFsZ29yaXRobSkKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoc2tfQVNOMV9UWVBFX251bShhbGdvcml0aG0uZ2V0
KCkpICE9IDIpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgdmFsdWUgPSBza19BU04x
X1RZUEVfdmFsdWUoYWxnb3JpdGhtLmdldCgpLCAwKTsKKyAgICBpZiAodmFsdWUtPnR5cGUgIT0g
Vl9BU04xX09CSkVDVCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgCisgICAgaWYgKCFz
dXBwb3J0ZWRBbGdvcml0aG1JZGVudGlmaWVyKGlkZW50aWZpZXIsIHZhbHVlLT52YWx1ZS5vYmpl
Y3QpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIC8vIEVDUGFyYW1ldGVycyA6Oj0g
Q0hPSUNFIHsKKyAgICAvLyAgbmFtZWRDdXJ2ZSAgICAgICAgIE9CSkVDVCBJREVOVElGSUVSCisg
ICAgLy8gIC0tIGltcGxpY2l0Q3VydmUgICBudWxsCisgICAgLy8gIC0tIHNwZWNpZmllZEN1cnZl
ICBTcGVjaWZpZWRFQ0RvbWFpbgorICAgIC8vIH0KKyAgICAvLworICAgIC8vIE9ubHkgIm5hbWVk
Q3VydmUiIGlzIHN1cHBvcnRlZC4gCisgICAgdmFsdWUgPSBza19BU04xX1RZUEVfdmFsdWUoYWxn
b3JpdGhtLmdldCgpLCAxKTsKKyAgICBpZiAodmFsdWUtPnR5cGUgIT0gVl9BU04xX09CSkVDVCkK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpbnQgY3VydmVOSUQgPSBPQkpfb2JqMm5p
ZCh2YWx1ZS0+dmFsdWUub2JqZWN0KTsKKyAgICBpZiAoY3VydmVOSUQgIT0gY3VydmVJZGVudGlm
aWVyKGN1cnZlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgCisgICAgLy8gc3ViamVj
dFB1YmxpY0tleSBtdXN0IGJlIGEgQklUIFNUUklORy4KKyAgICB2YWx1ZSA9IHNrX0FTTjFfVFlQ
RV92YWx1ZShzdWJqZWN0UHVibGljS2V5SW5mby5nZXQoKSwgMSk7CisgICAgaWYgKHZhbHVlLT50
eXBlICE9IFZfQVNOMV9CSVRfU1RSSU5HKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAg
IEFTTjFfQklUX1NUUklORyogYml0U3RyaW5nID0gdmFsdWUtPnZhbHVlLmJpdF9zdHJpbmc7CisK
KyAgICAvLyBUaGUgU1BLSSBkYXRhIGhhcyBiZWVuIHZlcmlmaWVkIGF0IHRoaXMgcG9pbnQuIFdl
IHByZXBhcmUgcGxhdGZvcm0gZGF0YSBuZXh0LgorICAgIGF1dG8ga2V5ID0gY3JlYXRlRUNLZXko
Y3VydmUpOworICAgIGlmICgha2V5KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGF1
dG8gZ3JvdXAgPSBFQ19LRVlfZ2V0MF9ncm91cChrZXkuZ2V0KCkpOworICAgIGlmICghZ3JvdXAp
CisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgYXV0byBwb2ludCA9IEVDUG9pbnRQdHIo
RUNfUE9JTlRfbmV3KGdyb3VwKSk7CisgICAgaWYgKCFwb2ludCkKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisKKyAgICBpZiAoRUNfUE9JTlRfb2N0MnBvaW50KGdyb3VwLCBwb2ludC5nZXQoKSwg
Yml0U3RyaW5nLT5kYXRhLCBiaXRTdHJpbmctPmxlbmd0aCwgMCkgPD0gMCkKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisKKyAgICBpZiAoRUNfS0VZX3NldF9wdWJsaWNfa2V5KGtleS5nZXQoKSwg
cG9pbnQuZ2V0KCkpIDw9IDApCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKEVD
X0tFWV9jaGVja19rZXkoa2V5LmdldCgpKSA8PSAwKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KworICAgIEVDX0tFWV9zZXRfYXNuMV9mbGFnKGtleS5nZXQoKSwgT1BFTlNTTF9FQ19OQU1FRF9D
VVJWRSk7CisKKyAgICBhdXRvIHBrZXkgPSBFdnBQS2V5UHRyKEVWUF9QS0VZX25ldygpKTsKKyAg
ICBpZiAoRVZQX1BLRVlfc2V0MV9FQ19LRVkocGtleS5nZXQoKSwga2V5LmdldCgpKSA8PSAwKQor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ3J5cHRv
S2V5RUMoaWRlbnRpZmllciwgY3VydmUsIENyeXB0b0tleVR5cGU6OlB1YmxpYywgV1RGTW92ZShw
a2V5KSwgZXh0cmFjdGFibGUsIHVzYWdlcykpOworfQorCitSZWZQdHI8Q3J5cHRvS2V5RUM+IENy
eXB0b0tleUVDOjpwbGF0Zm9ybUltcG9ydFBrY3M4KENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIg
aWRlbnRpZmllciwgTmFtZWRDdXJ2ZSBjdXJ2ZSwgVmVjdG9yPHVpbnQ4X3Q+JiYga2V5RGF0YSwg
Ym9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2VCaXRtYXAgdXNhZ2VzKQoreworICAgIC8v
IFdlIG5lZWQgYSBsb2NhbCBwb2ludGVyIHZhcmlhYmxlIHRvIHBhc3MgdG8gZDJpIChERVIgdG8g
aW50ZXJuYWwpIGZ1bmN0aW9ucygpLgorICAgIGNvbnN0IHVpbnQ4X3QqIHB0ciA9IGtleURhdGEu
ZGF0YSgpOworCisgICAgLy8gV2UgdXNlIGQyaV9QS0NTOF9QUklWX0tFWV9JTkZPKCkgdG8gaW1w
b3J0IGEgcHJpdmF0ZSBrZXkuCisgICAgYXV0byBwOGluZiA9IFBLQ1M4UHJpdktleUluZm9QdHIo
ZDJpX1BLQ1M4X1BSSVZfS0VZX0lORk8obnVsbHB0ciwgJnB0ciwga2V5RGF0YS5zaXplKCkpKTsK
KyAgICBpZiAoIXA4aW5mKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBpZiAocHRyIC0g
a2V5RGF0YS5kYXRhKCkgIT0ga2V5RGF0YS5zaXplKCkpCisgICAgICAgIHJldHVybiBudWxscHRy
OworCisgICAgYXV0byBwa2V5ID0gRXZwUEtleVB0cihFVlBfUEtDUzgyUEtFWShwOGluZi5nZXQo
KSkpOworICAgIGlmICghcGtleSB8fCBFVlBfUEtFWV90eXBlKHBrZXktPnR5cGUpICE9IEVWUF9Q
S0VZX0VDKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGF1dG8gZWNLZXkgPSBFVlBf
UEtFWV9nZXQwX0VDX0tFWShwa2V5LmdldCgpKTsKKyAgICBpZiAoIWVjS2V5KQorICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKworICAgIGlmIChFQ19LRVlfY2hlY2tfa2V5KGVjS2V5KSA8PSAwKQor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmICghdmVyaWZ5Q3VydmUoRUNfS0VZX2dl
dDBfZ3JvdXAoZWNLZXkpLCBjdXJ2ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAg
RUNfS0VZX3NldF9hc24xX2ZsYWcoZWNLZXksIE9QRU5TU0xfRUNfTkFNRURfQ1VSVkUpOworCisg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDcnlwdG9LZXlFQyhpZGVudGlmaWVyLCBjdXJ2ZSwgQ3J5
cHRvS2V5VHlwZTo6UHJpdmF0ZSwgV1RGTW92ZShwa2V5KSwgZXh0cmFjdGFibGUsIHVzYWdlcykp
OwogfQogCiBWZWN0b3I8dWludDhfdD4gQ3J5cHRvS2V5RUM6OnBsYXRmb3JtRXhwb3J0UmF3KCkg
Y29uc3QKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiB7IH07CisgICAgRUNf
S0VZKiBrZXkgPSBFVlBfUEtFWV9nZXQwX0VDX0tFWShwbGF0Zm9ybUtleSgpKTsKKyAgICBpZiAo
IWtleSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAKKyAgICBjb25zdCBFQ19QT0lOVCogcG9p
bnQgPSBFQ19LRVlfZ2V0MF9wdWJsaWNfa2V5KGtleSk7CisgICAgY29uc3QgRUNfR1JPVVAqIGdy
b3VwID0gRUNfS0VZX2dldDBfZ3JvdXAoa2V5KTsKKyAgICBzaXplX3Qga2V5RGF0YVNpemUgPSBF
Q19QT0lOVF9wb2ludDJvY3QoZ3JvdXAsIHBvaW50LCBQT0lOVF9DT05WRVJTSU9OX1VOQ09NUFJF
U1NFRCwgbnVsbHB0ciwgMCwgbnVsbHB0cik7CisgICAgaWYgKCFrZXlEYXRhU2l6ZSkKKyAgICAg
ICAgcmV0dXJuIHsgfTsKKworICAgIFZlY3Rvcjx1aW50OF90PiBrZXlEYXRhKGtleURhdGFTaXpl
KTsKKyAgICBpZiAoRUNfUE9JTlRfcG9pbnQyb2N0KGdyb3VwLCBwb2ludCwgUE9JTlRfQ09OVkVS
U0lPTl9VTkNPTVBSRVNTRUQsIGtleURhdGEuZGF0YSgpLCBrZXlEYXRhLnNpemUoKSwgbnVsbHB0
cikgIT0ga2V5RGF0YVNpemUpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICByZXR1cm4ga2V5
RGF0YTsKIH0KIAotYm9vbCBDcnlwdG9LZXlFQzo6cGxhdGZvcm1BZGRGaWVsZEVsZW1lbnRzKEpz
b25XZWJLZXkmKSBjb25zdAorYm9vbCBDcnlwdG9LZXlFQzo6cGxhdGZvcm1BZGRGaWVsZEVsZW1l
bnRzKEpzb25XZWJLZXkmIGp3aykgY29uc3QKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAg
IHJldHVybiBmYWxzZTsKKyAgICBzaXplX3Qga2V5U2l6ZUluQnl0ZXMgPSAoa2V5U2l6ZUluQml0
cygpICsgNykgLyA4OworCisgICAgRUNfS0VZKiBrZXkgPSBFVlBfUEtFWV9nZXQwX0VDX0tFWShw
bGF0Zm9ybUtleSgpKTsKKyAgICBpZiAoIWtleSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgY29uc3QgRUNfUE9JTlQqIHB1YmxpY0tleSA9IEVDX0tFWV9nZXQwX3B1YmxpY19rZXkoa2V5
KTsKKyAgICBpZiAocHVibGljS2V5KSB7CisgICAgICAgIGF1dG8gY3R4ID0gQk5DdHhQdHIoQk5f
Q1RYX25ldygpKTsKKyAgICAgICAgYXV0byB4ID0gQklHTlVNUHRyKEJOX25ldygpKTsKKyAgICAg
ICAgYXV0byB5ID0gQklHTlVNUHRyKEJOX25ldygpKTsKKyAgICAgICAgaWYgKDEgPT0gRUNfUE9J
TlRfZ2V0X2FmZmluZV9jb29yZGluYXRlc19HRnAoRUNfS0VZX2dldDBfZ3JvdXAoa2V5KSwgcHVi
bGljS2V5LCB4LmdldCgpLCB5LmdldCgpLCBjdHguZ2V0KCkpKSB7CisgICAgICAgICAgICBqd2su
eCA9IGJhc2U2NFVSTEVuY29kZVRvU3RyaW5nKGNvbnZlcnRUb0J5dGVzRXhwYW5kKHguZ2V0KCks
IGtleVNpemVJbkJ5dGVzKSk7CisgICAgICAgICAgICBqd2sueSA9IGJhc2U2NFVSTEVuY29kZVRv
U3RyaW5nKGNvbnZlcnRUb0J5dGVzRXhwYW5kKHkuZ2V0KCksIGtleVNpemVJbkJ5dGVzKSk7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAodHlwZSgpID09IFR5cGU6OlByaXZhdGUpIHsKKyAg
ICAgICAgY29uc3QgQklHTlVNKiBwcml2YXRlS2V5ID0gRUNfS0VZX2dldDBfcHJpdmF0ZV9rZXko
a2V5KTsKKyAgICAgICAgaWYgKHByaXZhdGVLZXkpCisgICAgICAgICAgICBqd2suZCA9IGJhc2U2
NFVSTEVuY29kZVRvU3RyaW5nKGNvbnZlcnRUb0J5dGVzKHByaXZhdGVLZXkpKTsKKyAgICB9Cisg
ICAgcmV0dXJuIHRydWU7CiB9CiAKIFZlY3Rvcjx1aW50OF90PiBDcnlwdG9LZXlFQzo6cGxhdGZv
cm1FeHBvcnRTcGtpKCkgY29uc3QKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVy
biB7IH07CisgICAgaWYgKHR5cGUoKSAhPSBDcnlwdG9LZXlUeXBlOjpQdWJsaWMpCisgICAgICAg
IHJldHVybiB7IH07CisKKyAgICBpbnQgbGVuID0gaTJkX1BVQktFWShwbGF0Zm9ybUtleSgpLCBu
dWxscHRyKTsKKyAgICBpZiAobGVuIDwgMCkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIFZl
Y3Rvcjx1aW50OF90PiBrZXlEYXRhKGxlbik7CisgICAgYXV0byBwdHIgPSBrZXlEYXRhLmRhdGEo
KTsKKyAgICBpZiAoaTJkX1BVQktFWShwbGF0Zm9ybUtleSgpLCAmcHRyKSA8IDApCisgICAgICAg
IHJldHVybiB7IH07CisKKyAgICByZXR1cm4ga2V5RGF0YTsKIH0KIAogVmVjdG9yPHVpbnQ4X3Q+
IENyeXB0b0tleUVDOjpwbGF0Zm9ybUV4cG9ydFBrY3M4KCkgY29uc3QKIHsKLSAgICBub3RJbXBs
ZW1lbnRlZCgpOwotICAgIHJldHVybiB7IH07CisgICAgaWYgKHR5cGUoKSAhPSBDcnlwdG9LZXlU
eXBlOjpQcml2YXRlKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgYXV0byBwOGluZiA9IFBL
Q1M4UHJpdktleUluZm9QdHIoRVZQX1BLRVkyUEtDUzgocGxhdGZvcm1LZXkoKSkpOworICAgIGlm
ICghcDhpbmYpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpbnQgbGVuID0gaTJkX1BLQ1M4
X1BSSVZfS0VZX0lORk8ocDhpbmYuZ2V0KCksIG51bGxwdHIpOworICAgIGlmIChsZW4gPCAwKQor
ICAgICAgICByZXR1cm4geyB9OworCisgICAgVmVjdG9yPHVpbnQ4X3Q+IGtleURhdGEobGVuKTsK
KyAgICBhdXRvIHB0ciA9IGtleURhdGEuZGF0YSgpOworICAgIGlmIChpMmRfUEtDUzhfUFJJVl9L
RVlfSU5GTyhwOGluZi5nZXQoKSwgJnB0cikgPCAwKQorICAgICAgICByZXR1cm4geyB9OworCisg
ICAgcmV0dXJuIGtleURhdGE7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9vcGVuc3NsL0NyeXB0b0tleVJTQU9wZW5TU0wuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL29wZW5zc2wvQ3J5cHRvS2V5UlNBT3BlblNTTC5jcHAK
aW5kZXggZDMyOTlmZjUzMmIyZTI0OTg2NThmZDc1YzMxY2FlZDhlMWMzMzljYi4uMWQ5NjVjNjg5
Y2E4M2U4MjkzMmQ4YTkyYWE4YTM1ODkwNjA5ZTUwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3J5cHRvL29wZW5zc2wvQ3J5cHRvS2V5UlNBT3BlblNTTC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL29wZW5zc2wvQ3J5cHRvS2V5UlNBT3BlblNTTC5jcHAKQEAgLTMxLDYgKzMx
LDcgQEAKICNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oIgogI2luY2x1ZGUgIkNy
eXB0b0tleVBhaXIuaCIKICNpbmNsdWRlICJDcnlwdG9LZXlSU0FDb21wb25lbnRzLmgiCisjaW5j
bHVkZSAiT3BlblNTTFV0aWxpdGllcy5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1R5cGVk
QXJyYXlJbmxpbmVzLmg+CiAjaW5jbHVkZSA8b3BlbnNzbC9YNTA5Lmg+CiAjaW5jbHVkZSA8b3Bl
bnNzbC9ldnAuaD4KQEAgLTQ0LDE4ICs0NSw2IEBAIHN0YXRpYyBzaXplX3QgZ2V0UlNBTW9kdWx1
c0xlbmd0aChSU0EqIHJzYSkKICAgICByZXR1cm4gQk5fbnVtX2J5dGVzKHJzYS0+bikgKiA4Owog
fQogCi1zdGF0aWMgVmVjdG9yPHVpbnQ4X3Q+IGNvbnZlcnRUb0J5dGVzKEJJR05VTSogYmlnbnVt
KQotewotICAgIFZlY3Rvcjx1aW50OF90PiBieXRlcyhCTl9udW1fYnl0ZXMoYmlnbnVtKSk7Ci0g
ICAgQk5fYm4yYmluKGJpZ251bSwgYnl0ZXMuZGF0YSgpKTsKLSAgICByZXR1cm4gYnl0ZXM7Ci19
Ci0KLXN0YXRpYyBCSUdOVU0qIGNvbnZlcnRUb0JpZ051bWJlcihCSUdOVU0qIGJpZ251bSwgY29u
c3QgVmVjdG9yPHVpbnQ4X3Q+JiBieXRlcykKLXsKLSAgICByZXR1cm4gQk5fYmluMmJuKGJ5dGVz
LmRhdGEoKSwgYnl0ZXMuc2l6ZSgpLCBiaWdudW0pOwotfQotCiBSZWZQdHI8Q3J5cHRvS2V5UlNB
PiBDcnlwdG9LZXlSU0E6OmNyZWF0ZShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGlkZW50aWZp
ZXIsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaGFzaCwgYm9vbCBoYXNIYXNoLCBjb25zdCBD
cnlwdG9LZXlSU0FDb21wb25lbnRzJiBrZXlEYXRhLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9L
ZXlVc2FnZUJpdG1hcCB1c2FnZXMpCiB7CiAgICAgQ3J5cHRvS2V5VHlwZSBrZXlUeXBlOwpAQCAt
MjE2LDcgKzIwNSw3IEBAIFJlZlB0cjxDcnlwdG9LZXlSU0E+IENyeXB0b0tleVJTQTo6aW1wb3J0
U3BraShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGlkZW50aWZpCiAKICAgICAvLyBXZSB1c2Ug
ZDJpX1BVQktFWSgpIHRvIGltcG9ydCBhIHB1YmxpYyBrZXkuCiAgICAgYXV0byBwa2V5ID0gRXZw
UEtleVB0cihkMmlfUFVCS0VZKG51bGxwdHIsICZwdHIsIGtleURhdGEuc2l6ZSgpKSk7Ci0gICAg
aWYgKCFwa2V5KQorICAgIGlmICghcGtleSB8fCBFVlBfUEtFWV90eXBlKHBrZXktPnR5cGUpICE9
IEVWUF9QS0VZX1JTQSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IENyeXB0b0tleVJTQShpZGVudGlmaWVyLCBoYXNoLnZhbHVlX29yKENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXI6OlNIQV8xKSwgISFoYXNoLCBDcnlwdG9LZXlUeXBlOjpQdWJsaWMs
IFdURk1vdmUocGtleSksIGV4dHJhY3RhYmxlLCB1c2FnZXMpKTsKQEAgLTIzMyw3ICsyMjIsNyBA
QCBSZWZQdHI8Q3J5cHRvS2V5UlNBPiBDcnlwdG9LZXlSU0E6OmltcG9ydFBrY3M4KENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXIgaWRlbnRpZgogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAg
IGF1dG8gcGtleSA9IEV2cFBLZXlQdHIoRVZQX1BLQ1M4MlBLRVkocDhpbmYuZ2V0KCkpKTsKLSAg
ICBpZiAoIXBrZXkpCisgICAgaWYgKCFwa2V5IHx8IEVWUF9QS0VZX3R5cGUocGtleS0+dHlwZSkg
IT0gRVZQX1BLRVlfUlNBKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgQ3J5cHRvS2V5UlNBKGlkZW50aWZpZXIsIGhhc2gudmFsdWVfb3IoQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzEpLCAhIWhhc2gsIENyeXB0b0tleVR5cGU6OlByaXZh
dGUsIFdURk1vdmUocGtleSksIGV4dHJhY3RhYmxlLCB1c2FnZXMpKTsKQEAgLTI0NCwxMyArMjMz
LDEzIEBAIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gQ3J5cHRvS2V5UlNBOjpleHBvcnRT
cGtpKCkgY29uc3QKICAgICBpZiAodHlwZSgpICE9IENyeXB0b0tleVR5cGU6OlB1YmxpYykKICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OwogCi0gICAgaW50
IGxlbiA9IGkyZF9QVUJLRVkobV9wbGF0Zm9ybUtleS5nZXQoKSwgbnVsbHB0cik7CisgICAgaW50
IGxlbiA9IGkyZF9QVUJLRVkocGxhdGZvcm1LZXkoKSwgbnVsbHB0cik7CiAgICAgaWYgKGxlbiA8
IDApCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciB9OwogCiAgICAg
VmVjdG9yPHVpbnQ4X3Q+IGtleURhdGEobGVuKTsKICAgICBhdXRvIHB0ciA9IGtleURhdGEuZGF0
YSgpOwotICAgIGlmIChpMmRfUFVCS0VZKG1fcGxhdGZvcm1LZXkuZ2V0KCksICZwdHIpIDwgMCkK
KyAgICBpZiAoaTJkX1BVQktFWShwbGF0Zm9ybUtleSgpLCAmcHRyKSA8IDApCiAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciB9OwogCiAgICAgcmV0dXJuIGtleURhdGE7
CkBAIC0yNjEsNyArMjUwLDcgQEAgRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBDcnlwdG9L
ZXlSU0E6OmV4cG9ydFBrY3M4KCkgY29uc3QKICAgICBpZiAodHlwZSgpICE9IENyeXB0b0tleVR5
cGU6OlByaXZhdGUpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJy
b3IgfTsKIAotICAgIGF1dG8gcDhpbmYgPSBQS0NTOFByaXZLZXlJbmZvUHRyKEVWUF9QS0VZMlBL
Q1M4KG1fcGxhdGZvcm1LZXkuZ2V0KCkpKTsKKyAgICBhdXRvIHA4aW5mID0gUEtDUzhQcml2S2V5
SW5mb1B0cihFVlBfUEtFWTJQS0NTOChwbGF0Zm9ybUtleSgpKSk7CiAgICAgaWYgKCFwOGluZikK
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVycm9yIH07CiAKQEAgLTI3OSw5
ICsyNjgsOSBAQCBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhfdD4+IENyeXB0b0tleVJTQTo6ZXhw
b3J0UGtjczgoKSBjb25zdAogCiBhdXRvIENyeXB0b0tleVJTQTo6YWxnb3JpdGhtKCkgY29uc3Qg
LT4gS2V5QWxnb3JpdGhtCiB7Ci0gICAgUlNBKiByc2EgPSBFVlBfUEtFWV9nZXQwX1JTQShtX3Bs
YXRmb3JtS2V5LmdldCgpKTsKKyAgICBSU0EqIHJzYSA9IEVWUF9QS0VZX2dldDBfUlNBKHBsYXRm
b3JtS2V5KCkpOwogCi0gICAgYXV0byBtb2R1bHVzTGVuZ3RoID0gZ2V0UlNBTW9kdWx1c0xlbmd0
aChyc2EpOworICAgIGF1dG8gbW9kdWx1c0xlbmd0aCA9IHJzYSA/IEJOX251bV9ieXRlcyhyc2Et
Pm4pICogOCA6IDA7CiAgICAgYXV0byBwdWJsaWNFeHBvbmVudCA9IHJzYSA/IGNvbnZlcnRUb0J5
dGVzKHJzYS0+ZSkgOiBWZWN0b3I8dWludDhfdD4geyB9OwogCiAgICAgaWYgKG1fcmVzdHJpY3Rl
ZFRvU3BlY2lmaWNIYXNoKSB7CkBAIC0zMDIsNyArMjkxLDcgQEAgYXV0byBDcnlwdG9LZXlSU0E6
OmFsZ29yaXRobSgpIGNvbnN0IC0+IEtleUFsZ29yaXRobQogCiBzdGQ6OnVuaXF1ZV9wdHI8Q3J5
cHRvS2V5UlNBQ29tcG9uZW50cz4gQ3J5cHRvS2V5UlNBOjpleHBvcnREYXRhKCkgY29uc3QKIHsK
LSAgICBSU0EqIHJzYSA9IEVWUF9QS0VZX2dldDBfUlNBKG1fcGxhdGZvcm1LZXkuZ2V0KCkpOwor
ICAgIFJTQSogcnNhID0gRVZQX1BLRVlfZ2V0MF9SU0EocGxhdGZvcm1LZXkoKSk7CiAgICAgaWYg
KCFyc2EpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vb3BlbnNzbC9PcGVuU1NMQ3J5cHRvVW5pcXVlUHRyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vb3BlbnNzbC9PcGVuU1NMQ3J5cHRvVW5pcXVlUHRyLmgKaW5kZXggYjBlZTQx
MTQ4ZjdmYmQ1N2RiNWIxZWI2Njg5ZDgyZDM5Y2U0M2ZmZC4uMTc4YTgzMGNkODhiMmM4NDU0MGI0
MTIwYWMwNGYyMzEyZjYzZTk5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL29w
ZW5zc2wvT3BlblNTTENyeXB0b1VuaXF1ZVB0ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9vcGVuc3NsL09wZW5TU0xDcnlwdG9VbmlxdWVQdHIuaApAQCAtODksNiArODksMjcgQEAgc3Ry
dWN0IE9wZW5TU0xDcnlwdG9QdHJEZWxldGVyPFJTQT4gewogCiB1c2luZyBSU0FQdHIgPSBPcGVu
U1NMQ3J5cHRvUHRyPFJTQT47CiAKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgT3BlblNTTENyeXB0b1B0
ckRlbGV0ZXI8RUNfS0VZPiB7CisgICAgdm9pZCBvcGVyYXRvcigpKEVDX0tFWSogcHRyKSBjb25z
dAorICAgIHsKKyAgICAgICAgRUNfS0VZX2ZyZWUocHRyKTsKKyAgICB9Cit9OworCit1c2luZyBF
Q0tleVB0ciA9IE9wZW5TU0xDcnlwdG9QdHI8RUNfS0VZPjsKKwordGVtcGxhdGUgPD4KK3N0cnVj
dCBPcGVuU1NMQ3J5cHRvUHRyRGVsZXRlcjxFQ19QT0lOVD4geworICAgIHZvaWQgb3BlcmF0b3Io
KShFQ19QT0lOVCogcHRyKSBjb25zdAorICAgIHsKKyAgICAgICAgRUNfUE9JTlRfY2xlYXJfZnJl
ZShwdHIpOworICAgIH0KK307CisKK3VzaW5nIEVDUG9pbnRQdHIgPSBPcGVuU1NMQ3J5cHRvUHRy
PEVDX1BPSU5UPjsKKworCiB0ZW1wbGF0ZSA8Pgogc3RydWN0IE9wZW5TU0xDcnlwdG9QdHJEZWxl
dGVyPFBLQ1M4X1BSSVZfS0VZX0lORk8+IHsKICAgICB2b2lkIG9wZXJhdG9yKCkoUEtDUzhfUFJJ
Vl9LRVlfSU5GTyogcHRyKSBjb25zdApAQCAtMTE5LDUgKzE0MCwyNCBAQCBzdHJ1Y3QgT3BlblNT
TENyeXB0b1B0ckRlbGV0ZXI8Qk5fQ1RYPiB7CiAKIHVzaW5nIEJOQ3R4UHRyID0gT3BlblNTTENy
eXB0b1B0cjxCTl9DVFg+OwogCit0ZW1wbGF0ZSA8Pgorc3RydWN0IE9wZW5TU0xDcnlwdG9QdHJE
ZWxldGVyPEVDRFNBX1NJRz4geworICAgIHZvaWQgb3BlcmF0b3IoKShFQ0RTQV9TSUcqIHB0cikg
Y29uc3QKKyAgICB7CisgICAgICAgIEVDRFNBX1NJR19mcmVlKHB0cik7CisgICAgfQorfTsKKwor
dXNpbmcgRUNEU0FTaWdQdHIgPSBPcGVuU1NMQ3J5cHRvUHRyPEVDRFNBX1NJRz47CisKK3RlbXBs
YXRlIDw+CitzdHJ1Y3QgT3BlblNTTENyeXB0b1B0ckRlbGV0ZXI8QVNOMV9TRVFVRU5DRV9BTlk+
IHsKKyAgICB2b2lkIG9wZXJhdG9yKCkoQVNOMV9TRVFVRU5DRV9BTlkqIHB0cikgY29uc3QKKyAg
ICB7CisgICAgICAgIHNrX0FTTjFfVFlQRV9wb3BfZnJlZShwdHIsIEFTTjFfVFlQRV9mcmVlKTsK
KyAgICB9Cit9OworCit1c2luZyBBU04xU2VxdWVuY2VQdHIgPSBPcGVuU1NMQ3J5cHRvUHRyPEFT
TjFfU0VRVUVOQ0VfQU5ZPjsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3J5cHRvL29wZW5zc2wvT3BlblNTTFV0aWxpdGllcy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vb3BlbnNzbC9PcGVuU1NMVXRpbGl0aWVzLmNwcAppbmRleCA3NGI0
NmQ2NzAwMTJjZjBlMWJlM2NlNDE5NWQ4ODM3YjU5YjQ5NzE0Li41MDQwYmE2MWI2MzliNmExZmEy
ODEyNzQ4ODQxMTU5ZTQ3MTE2YTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
b3BlbnNzbC9PcGVuU1NMVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
b3BlbnNzbC9PcGVuU1NMVXRpbGl0aWVzLmNwcApAQCAtNzMsNiArNzMsMzggQEAgc3RkOjpvcHRp
b25hbDxWZWN0b3I8dWludDhfdD4+IGNhbGN1bGF0ZURpZ2VzdChjb25zdCBFVlBfTUQqIGFsZ29y
aXRobSwgY29uc3QgVmUKICAgICByZXR1cm4gZGlnZXN0OwogfQogCitWZWN0b3I8dWludDhfdD4g
Y29udmVydFRvQnl0ZXMoY29uc3QgQklHTlVNKiBiaWdudW0pCit7CisgICAgVmVjdG9yPHVpbnQ4
X3Q+IGJ5dGVzKEJOX251bV9ieXRlcyhiaWdudW0pKTsKKyAgICBCTl9ibjJiaW4oYmlnbnVtLCBi
eXRlcy5kYXRhKCkpOworICAgIHJldHVybiBieXRlczsKK30KKworVmVjdG9yPHVpbnQ4X3Q+IGNv
bnZlcnRUb0J5dGVzRXhwYW5kKGNvbnN0IEJJR05VTSogYmlnbnVtLCBzaXplX3QgbWluaW11bUJ1
ZmZlclNpemUpCit7CisgICAgaW50IGxlbmd0aCA9IEJOX251bV9ieXRlcyhiaWdudW0pOworICAg
IGlmIChsZW5ndGggPCAwKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgc2l6ZV90IGJ1ZmZl
clNpemUgPSBzdGQ6Om1heDxzaXplX3Q+KGxlbmd0aCwgbWluaW11bUJ1ZmZlclNpemUpOworCisg
ICAgVmVjdG9yPHVpbnQ4X3Q+IGJ5dGVzKGJ1ZmZlclNpemUpOworCisgICAgc2l6ZV90IHBhZGRp
bmdMZW5ndGggPSBidWZmZXJTaXplIC0gbGVuZ3RoOworICAgIGlmIChwYWRkaW5nTGVuZ3RoID4g
MCkgeworICAgICAgICB1aW50OF90IHBhZGRpbmcgPSBCTl9pc19uZWdhdGl2ZShiaWdudW0pID8g
MHhGRiA6IDB4MDA7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcGFkZGluZ0xlbmd0
aDsgaSsrKQorICAgICAgICAgICAgYnl0ZXNbaV0gPSBwYWRkaW5nOworICAgIH0KKyAgICBCTl9i
bjJiaW4oYmlnbnVtLCBieXRlcy5kYXRhKCkgKyBwYWRkaW5nTGVuZ3RoKTsKKyAgICByZXR1cm4g
Ynl0ZXM7Cit9CisKK0JJR05VTSogY29udmVydFRvQmlnTnVtYmVyKEJJR05VTSogYmlnbnVtLCBj
b25zdCBWZWN0b3I8dWludDhfdD4mIGJ5dGVzKQoreworICAgIHJldHVybiBCTl9iaW4yYm4oYnl0
ZXMuZGF0YSgpLCBieXRlcy5zaXplKCksIGJpZ251bSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vb3BlbnNzbC9PcGVu
U1NMVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vb3BlbnNzbC9PcGVuU1NMVXRp
bGl0aWVzLmgKaW5kZXggYjhmM2JmMmVlMDY4ZDc0ZTY1MDExYTkwM2IxM2NkZmI3NThiZmNjOC4u
OWE3YmFhNjdhMTJkZmQ3MTY4NTMwNzY3YTZiYjhkMGFlOWQ5MDljMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3J5cHRvL29wZW5zc2wvT3BlblNTTFV0aWxpdGllcy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9vcGVuc3NsL09wZW5TU0xVdGlsaXRpZXMuaApAQCAtMzgsNiArMzgs
MTQgQEAgY29uc3QgRVZQX01EKiBkaWdlc3RBbGdvcml0aG0oQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
ZmllciBoYXNoRnVuY3Rpb24pOwogCiBzdGQ6Om9wdGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4gY2Fs
Y3VsYXRlRGlnZXN0KGNvbnN0IEVWUF9NRCogYWxnb3JpdGhtLCBjb25zdCBWZWN0b3I8dWludDhf
dD4mIG1lc3NhZ2UpOwogCitWZWN0b3I8dWludDhfdD4gY29udmVydFRvQnl0ZXMoY29uc3QgQklH
TlVNKik7CisKK1ZlY3Rvcjx1aW50OF90PiBjb252ZXJ0VG9CeXRlc0V4cGFuZChjb25zdCBCSUdO
VU0qLCBzaXplX3QgYnVmZmVyU2l6ZSk7CisKKy8vIElmIGEgbnVsbCBwb2ludGVyIGlzIGdpdmVu
IGFzIHRoZSBmaXJzdCBhcmd1bWVudCwgdGhpcyBmdW5jdGlvbiBpbnRlcm5hbGx5IGFsbG9jYXRl
cyBhIG5ldyBCSUdOVU0KKy8vIGFuZCByZXR1cm5zIGl0cyBwb2ludGVyLiBPdGhlcndpc2UgdGhp
cyBmdW5jdGlvbiB1c2VzIHRoZSBnaXZlbiBCSUdOVU0gYW5kIGRvZXNuJ3QgYWxsb2NhdGUgYSBu
ZXcgb25lLgorQklHTlVNKiBjb252ZXJ0VG9CaWdOdW1iZXIoQklHTlVNKiwgY29uc3QgVmVjdG9y
PHVpbnQ4X3Q+JiBieXRlcyk7CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8v
IEVOQUJMRShXRUJfQ1JZUFRPKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQwMzY3OWYzNzgxZGFmM2RjOWQ3ZjkwNmIyMzc4
MzlkMjNlMjFkMDEuLjA0OWYzYzE4NWY0ZWM2NWY5ZTE4MzYwMzI3NDExMWM3MmVlODdhMzEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyNiBAQAorMjAyMS0wNy0wNSAgWW9zaGlha2kgSml0c3VrYXdhICA8eW9z
aGlha2kuaml0c3VrYXdhQHNvbnkuY29tPgorCisgICAgICAgIFtPcGVuU1NMXSBJbXBsZW1lbnQg
Q3J5cHRvQWxnb3JpdGhtRUMqCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjc2NTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBVcGRhdGUgdGVzdCBleHBlY3RhdGlvbnMgb2Ygd2luY2Fpcm8gdG8gZW5hYmxl
IGVjKiB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlv
bnM6CisKKyAgICAgICAgQWRkIGV4cGVjdGVkIHJlc3VsdHMgdGhhdHMgc3VwcG9ydCB0aGUgUC01
MjEgZWxsaXB0aWMgY3VydmUuIEdlbmVyaWMgdGVzdAorICAgICAgICByZXN1bHRzIGV4cGVjdCB0
aGF0IFAtNTIxIGlzIHVuc3VwcG9ydGVkLgorCisgICAgICAgICogcGxhdGZvcm0vd2luY2Fpcm8v
Y3J5cHRvL3N1YnRsZS9lYy1nZW5lcmF0ZS1rZXktbWFsZm9ybWVkLXBhcmFtZXRlcnMtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW5jYWlyby9jcnlwdG8vc3VidGxl
L2VjZGgtZGVyaXZlLWJpdHMtbGVuZ3RoLWxpbWl0cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL3dpbmNhaXJvL2NyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQtc3BraS1r
ZXktZWNkaC1pZGVudGlmaWVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKKyAgICAgICAgVXNlIHNo
b3VsZFJlamVjdFdpdGhFcnJvck5hbWUgYWZ0ZXIgcjI2MDU3OS4KKworICAgICAgICAqIGNyeXB0
by9zdWJ0bGUvZWNkaC1pbXBvcnQtcGtjczgta2V5LXA1MjEtdmFsaWRhdGUtZWNwcml2YXRla2V5
LXBhcmFtZXRlcnMtcHVibGlja2V5Lmh0bWw6CisgICAgICAgICogY3J5cHRvL3N1YnRsZS9lY2Rz
YS1pbXBvcnQtcGtjczgta2V5LXA1MjEtdmFsaWRhdGUtZWNwcml2YXRla2V5LXBhcmFtZXRlcnMt
cHVibGlja2V5Lmh0bWw6CisKIDIwMjEtMDctMDQgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNv
bT4KIAogICAgICAgICBSZXN5bmMgd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2Fz
cGVjdC1yYXRpbyBmcm9tIHVwc3RyZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8v
c3VidGxlL2VjZGgtaW1wb3J0LXBrY3M4LWtleS1wNTIxLXZhbGlkYXRlLWVjcHJpdmF0ZWtleS1w
YXJhbWV0ZXJzLXB1YmxpY2tleS5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9lY2Ro
LWltcG9ydC1wa2NzOC1rZXktcDUyMS12YWxpZGF0ZS1lY3ByaXZhdGVrZXktcGFyYW1ldGVycy1w
dWJsaWNrZXkuaHRtbAppbmRleCBhNjdjMDJmNzQ4YzQxYzA4YmIyZGMxYjZmOTgxYzMyYmRmNmU0
NjI2Li5iZWM0YjM4ZmQwZDRhNDNmNTI2NzFlMDY4N2EzMWQ5ODkyZmIwMzQ5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2VjZGgtaW1wb3J0LXBrY3M4LWtleS1wNTIxLXZh
bGlkYXRlLWVjcHJpdmF0ZWtleS1wYXJhbWV0ZXJzLXB1YmxpY2tleS5odG1sCisrKyBiL0xheW91
dFRlc3RzL2NyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQtcGtjczgta2V5LXA1MjEtdmFsaWRhdGUt
ZWNwcml2YXRla2V5LXBhcmFtZXRlcnMtcHVibGlja2V5Lmh0bWwKQEAgLTQyLDE2ICs0MiwxNiBA
QCBQcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewogICAgIHRlc3RQYXNz
ZWQoIlN1Y2Nlc3NmdWxseSBpbXBvcnRlZCBhIFAtNTIxIGtleS4iKTsKIAogICAgIGRlYnVnKCJF
Q0RIOiBpbXBvcnRpbmcgUC01MjEga2V5IHdob3NlIGN1cnZlIGlkZW50aWZpZXJzIGluIEVDUGFy
YW1ldGVycyBzdHJ1Y3R1cmVzIGluIFBLQ1MjOCBkb24ndCBtYXRjaCAuLi4iKTsKLSAgICByZXR1
cm4gc2hvdWxkUmVqZWN0KCdpbXBvcnRLZXkocGtjczhQNTIxS2V5TWlzbWF0Y2hlZEN1cnZlSWRl
bnRpZmllcnMpJyk7CisgICAgcmV0dXJuIHNob3VsZFJlamVjdFdpdGhFcnJvck5hbWUoJ2ltcG9y
dEtleShwa2NzOFA1MjFLZXlNaXNtYXRjaGVkQ3VydmVJZGVudGlmaWVycyknLCAnRGF0YUVycm9y
Jyk7CiB9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewogICAgIGRlYnVnKCJFQ0RIOiBpbXBvcnRp
bmcgUC01MjEga2V5IHRoYXQgaGFzIGEgcHVibGljIGtleSBpbiBQS0NTIzggb2YgaW52YWxpZCBs
ZW5ndGggLi4uIik7Ci0gICAgcmV0dXJuIHNob3VsZFJlamVjdCgnaW1wb3J0S2V5KHBrY3M4UDUy
MUtleUludmFsaWRQdWJsaWNLZXlMZW5ndGgpJyk7CisgICAgcmV0dXJuIHNob3VsZFJlamVjdFdp
dGhFcnJvck5hbWUoJ2ltcG9ydEtleShwa2NzOFA1MjFLZXlJbnZhbGlkUHVibGljS2V5TGVuZ3Ro
KScsICdEYXRhRXJyb3InKTsKIH0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CiAgICAgZGVidWco
IkVDREg6IGltcG9ydGluZyBQLTUyMSBrZXkgdGhhdCBoYXMgYSBwdWJsaWMga2V5IGluIFBLQ1Mj
OCBvZiBpbnZhbGlkIEVDIHBvaW50IGZvcm1hdCAuLi4iKTsKLSAgICByZXR1cm4gc2hvdWxkUmVq
ZWN0KCdpbXBvcnRLZXkocGtjczhQNTIxS2V5SW52YWxpZFB1YmxpY0tleUVDUG9pbnRGb3JtYXQp
Jyk7CisgICAgcmV0dXJuIHNob3VsZFJlamVjdFdpdGhFcnJvck5hbWUoJ2ltcG9ydEtleShwa2Nz
OFA1MjFLZXlJbnZhbGlkUHVibGljS2V5RUNQb2ludEZvcm1hdCknLCAnRGF0YUVycm9yJyk7CiB9
KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewogICAgIGRlYnVnKCJFQ0RIOiBpbXBvcnRpbmcgUC01
MjEga2V5IHRoYXQgaGFzIGFuIGludmFsaWQgcHVibGljIGtleSBpbiBQS0NTIzggLi4uIik7Ci0g
ICAgcmV0dXJuIHNob3VsZFJlamVjdCgnaW1wb3J0S2V5KHBrY3M4UDUyMUtleUludmFsaWRQdWJs
aWNLZXkpJyk7CisgICAgcmV0dXJuIHNob3VsZFJlamVjdFdpdGhFcnJvck5hbWUoJ2ltcG9ydEtl
eShwa2NzOFA1MjFLZXlJbnZhbGlkUHVibGljS2V5KScsICdEYXRhRXJyb3InKTsKIH0pLnRoZW4o
ZnVuY3Rpb24ocmVzdWx0KSB7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9KTs7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2VjZHNhLWltcG9ydC1wa2NzOC1rZXktcDUyMS12
YWxpZGF0ZS1lY3ByaXZhdGVrZXktcGFyYW1ldGVycy1wdWJsaWNrZXkuaHRtbCBiL0xheW91dFRl
c3RzL2NyeXB0by9zdWJ0bGUvZWNkc2EtaW1wb3J0LXBrY3M4LWtleS1wNTIxLXZhbGlkYXRlLWVj
cHJpdmF0ZWtleS1wYXJhbWV0ZXJzLXB1YmxpY2tleS5odG1sCmluZGV4IDRkNjExYzhhYWNkNzdm
YTQ5MzdkYzFhYTliNmI3ODk3MDFjZmE4ZDkuLjA2ZTFlYzkzYThhNjdmZTVhNTljMGRjMTFmMzQ2
ZmMzNWQ3NDVhYjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZWNkc2Et
aW1wb3J0LXBrY3M4LWtleS1wNTIxLXZhbGlkYXRlLWVjcHJpdmF0ZWtleS1wYXJhbWV0ZXJzLXB1
YmxpY2tleS5odG1sCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZWNkc2EtaW1wb3J0
LXBrY3M4LWtleS1wNTIxLXZhbGlkYXRlLWVjcHJpdmF0ZWtleS1wYXJhbWV0ZXJzLXB1YmxpY2tl
eS5odG1sCkBAIC00MiwxNiArNDIsMTYgQEAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlv
bihyZXN1bHQpIHsKICAgICB0ZXN0UGFzc2VkKCJTdWNjZXNzZnVsbHkgaW1wb3J0ZWQgYSBQLTUy
MSBrZXkuIik7CiAKICAgICBkZWJ1ZygiRUNEU0E6IGltcG9ydGluZyBQLTUyMSBrZXkgd2hvc2Ug
Y3VydmUgaWRlbnRpZmllcnMgaW4gRUNQYXJhbWV0ZXJzIHN0cnVjdHVyZXMgaW4gUEtDUyM4IGRv
bid0IG1hdGNoIC4uLiIpOwotICAgIHJldHVybiBzaG91bGRSZWplY3QoJ2ltcG9ydEtleShwa2Nz
OFA1MjFLZXlNaXNtYXRjaGVkQ3VydmVJZGVudGlmaWVycyknKTsKKyAgICByZXR1cm4gc2hvdWxk
UmVqZWN0V2l0aEVycm9yTmFtZSgnaW1wb3J0S2V5KHBrY3M4UDUyMUtleU1pc21hdGNoZWRDdXJ2
ZUlkZW50aWZpZXJzKScsICdEYXRhRXJyb3InKTsKIH0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7
CiAgICAgZGVidWcoIkVDRFNBOiBpbXBvcnRpbmcgUC01MjEga2V5IHRoYXQgaGFzIGEgcHVibGlj
IGtleSBpbiBQS0NTIzggb2YgaW52YWxpZCBsZW5ndGggLi4uIik7Ci0gICAgcmV0dXJuIHNob3Vs
ZFJlamVjdCgnaW1wb3J0S2V5KHBrY3M4UDUyMUtleUludmFsaWRQdWJsaWNLZXlMZW5ndGgpJyk7
CisgICAgcmV0dXJuIHNob3VsZFJlamVjdFdpdGhFcnJvck5hbWUoJ2ltcG9ydEtleShwa2NzOFA1
MjFLZXlJbnZhbGlkUHVibGljS2V5TGVuZ3RoKScsICdEYXRhRXJyb3InKTsKIH0pLnRoZW4oZnVu
Y3Rpb24ocmVzdWx0KSB7CiAgICAgZGVidWcoIkVDRFNBOiBpbXBvcnRpbmcgUC01MjEga2V5IHRo
YXQgaGFzIGEgcHVibGljIGtleSBpbiBQS0NTIzggb2YgaW52YWxpZCBFQyBwb2ludCBmb3JtYXQg
Li4uIik7Ci0gICAgcmV0dXJuIHNob3VsZFJlamVjdCgnaW1wb3J0S2V5KHBrY3M4UDUyMUtleUlu
dmFsaWRQdWJsaWNLZXlFQ1BvaW50Rm9ybWF0KScpOworICAgIHJldHVybiBzaG91bGRSZWplY3RX
aXRoRXJyb3JOYW1lKCdpbXBvcnRLZXkocGtjczhQNTIxS2V5SW52YWxpZFB1YmxpY0tleUVDUG9p
bnRGb3JtYXQpJywgJ0RhdGFFcnJvcicpOwogfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKICAg
ICBkZWJ1ZygiRUNEU0E6IGltcG9ydGluZyBQLTUyMSBrZXkgdGhhdCBoYXMgYW4gaW52YWxpZCBw
dWJsaWMga2V5IGluIFBLQ1MjOCAuLi4iKTsKLSAgICByZXR1cm4gc2hvdWxkUmVqZWN0KCdpbXBv
cnRLZXkocGtjczhQNTIxS2V5SW52YWxpZFB1YmxpY0tleSknKTsKKyAgICByZXR1cm4gc2hvdWxk
UmVqZWN0V2l0aEVycm9yTmFtZSgnaW1wb3J0S2V5KHBrY3M4UDUyMUtleUludmFsaWRQdWJsaWNL
ZXkpJywgJ0RhdGFFcnJvcicpOwogfSkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKICAgICBmaW5p
c2hKU1Rlc3QoKTsKIH0pOzsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNh
aXJvL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IDkwOWQ1YzU0M2QzMjU2ODIwMjAwOGU2NjY1ODE4ZmRmMzIxNTgy
MWIuLjlmOTBlYWRmZjk0NjgwNDIyMjM1NGM0ODM1ZWI1YjUxN2E3ZGI2YTggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwpAQCAtNzE1LDEyMSAr
NzE1LDMwIEBAIHdlYmtpdC5vcmcvYi8yMjE0NDUgZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvc3lz
dGVtLWxhbmd1YWdlL2pwLWNpcmNsZWQuaHRtbCBbIFNrCiAjIGNyeXB0bwogIy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLwogCi0jIENyeXB0cyBvdGhlciB0aGFuIEFFUyBhbmQgUlNB
IGFyZSBub3Qgc3VwcG9ydGVkLgotY3J5cHRvL3N1YnRsZS9hZXMtZ2NtLWltcG9ydC1rZXktdW53
cmFwLWVjLXJhdy1rZXkuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9kZXJpdmUtYml0cy1t
YWxmb3JtZWQtcGFyYW1ldGVycy5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2Rlcml2ZS1r
ZXktbWFsZm9ybWVkLXBhcmFtZXRlcnMuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2Ro
LWRlcml2ZS1iaXRzLWxlbmd0aC1saW1pdHMuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9l
Y2RoLWRlcml2ZS1iaXRzLW1hbGZvcm1lZC1wYXJhbWV0cnMuaHRtbCBbIFNraXAgXQotY3J5cHRv
L3N1YnRsZS9lY2RoLWdlbmVyYXRlLWV4cG9ydC1qd2sta2V5LXAyNTYuaHRtbCBbIFNraXAgXQot
Y3J5cHRvL3N1YnRsZS9lY2RoLWdlbmVyYXRlLWV4cG9ydC1qd2sta2V5LXAzODQuaHRtbCBbIFNr
aXAgXQotY3J5cHRvL3N1YnRsZS9lY2RoLWdlbmVyYXRlLWV4cG9ydC1qd2sta2V5LXA1MjEuaHRt
bCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RoLWdlbmVyYXRlLWV4cG9ydC1rZXktcGtjczgt
cDI1Ni5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZGgtZ2VuZXJhdGUtZXhwb3J0LWtl
eS1wa2NzOC1wMzg0Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkaC1nZW5lcmF0ZS1l
eHBvcnQta2V5LXBrY3M4LXA1MjEuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RoLWdl
bmVyYXRlLWV4cG9ydC1rZXktcmF3LXAyNTYuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9l
Y2RoLWdlbmVyYXRlLWV4cG9ydC1rZXktcmF3LXAzODQuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1
YnRsZS9lY2RoLWdlbmVyYXRlLWV4cG9ydC1rZXktcmF3LXA1MjEuaHRtbCBbIFNraXAgXQotY3J5
cHRvL3N1YnRsZS9lY2RoLWdlbmVyYXRlLWV4cG9ydC1rZXktc3BraS1wMjU2Lmh0bWwgWyBTa2lw
IF0KLWNyeXB0by9zdWJ0bGUvZWNkaC1nZW5lcmF0ZS1leHBvcnQta2V5LXNwa2ktcDM4NC5odG1s
IFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZGgtZ2VuZXJhdGUtZXhwb3J0LWtleS1zcGtpLXA1
MjEuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RoLWdlbmVyYXRlLWtleS1kZXJpdmUt
Yml0cy5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZGgtZ2VuZXJhdGUta2V5LWV4dHJh
Y3RhYmxlLmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkaC1nZW5lcmF0ZS1rZXktcDI1
Ni5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZGgtZ2VuZXJhdGUta2V5LXAzODQuaHRt
bCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RoLWdlbmVyYXRlLWtleS1wNTIxLmh0bWwgWyBT
a2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkaC1nZW5lcmF0ZS1rZXktc2luZ2xlLXVzYWdlLmh0bWwg
WyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQtandrLWtleS1taW5pbXVtLmh0bWwg
WyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQtandrLXByaXZhdGUta2V5LXAyNTYu
aHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1qd2stcHJpdmF0ZS1rZXkt
cDM4NC5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZGgtaW1wb3J0LWp3ay1wcml2YXRl
LWtleS1wNTIxLmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQtandrLXB1
YmxpYy1rZXktcDI1Ni5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZGgtaW1wb3J0LWp3
ay1wdWJsaWMta2V5LXAzODQuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9y
dC1qd2stcHVibGljLWtleS1wNTIxLmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkaC1p
bXBvcnQta2V5LWRlcml2ZS1hZXMta2V5Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNk
aC1pbXBvcnQta2V5LWRlcml2ZS1iaXRzLWN1c3RvbS1sZW5ndGguaHRtbCBbIFNraXAgXQotY3J5
cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1rZXktZGVyaXZlLWJpdHMtbnVsbC1sZW5ndGguaHRtbCBb
IFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1rZXktZGVyaXZlLWhrZGYta2V5Lmh0
bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQta2V5LWRlcml2ZS1obWFjLWtl
eS1jdXN0b20tbGVuZ3RoLmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQt
a2V5LWRlcml2ZS1wYmtkZjIta2V5Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkaC1p
bXBvcnQtcGtjczgta2V5LXAyNTYuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RoLWlt
cG9ydC1wa2NzOC1rZXktcDI1Ni12YWxpZGF0ZS1lY3ByaXZhdGVrZXktcGFyYW1ldGVycy1wdWJs
aWNrZXkuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1wa2NzOC1rZXkt
cDM4NC5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZGgtaW1wb3J0LXBrY3M4LWtleS1w
Mzg0LXZhbGlkYXRlLWVjcHJpdmF0ZWtleS1wYXJhbWV0ZXJzLXB1YmxpY2tleS5odG1sIFsgU2tp
cCBdCi1jcnlwdG8vc3VidGxlL2VjZGgtaW1wb3J0LXBrY3M4LWtleS1wNTIxLmh0bWwgWyBTa2lw
IF0KLWNyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQtcGtjczgta2V5LXA1MjEtdmFsaWRhdGUtZWNw
cml2YXRla2V5LXBhcmFtZXRlcnMtcHVibGlja2V5Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0
bGUvZWNkaC1pbXBvcnQtcmF3LWtleS1wMjU2Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUv
ZWNkaC1pbXBvcnQtcmF3LWtleS1wMzg0Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNk
aC1pbXBvcnQtcmF3LWtleS1wNTIxLmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkaC1p
bXBvcnQtc3BraS1rZXktZWNkaC1pZGVudGlmaWVyLmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0
bGUvZWNkaC1pbXBvcnQtc3BraS1rZXktcDI1Ni5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxl
L2VjZGgtaW1wb3J0LXNwa2kta2V5LXAzODQuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9l
Y2RoLWltcG9ydC1zcGtpLWtleS1wNTIxLmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNk
c2EtZ2VuZXJhdGUtZXhwb3J0LWltcG9ydC1qd2stc2lnbi12ZXJpZnkuaHRtbCBbIFNraXAgXQot
Y3J5cHRvL3N1YnRsZS9lY2RzYS1nZW5lcmF0ZS1leHBvcnQtandrLWtleS5odG1sIFsgU2tpcCBd
Ci1jcnlwdG8vc3VidGxlL2VjZHNhLWdlbmVyYXRlLWV4cG9ydC1rZXktcGtjczguaHRtbCBbIFNr
aXAgXQotY3J5cHRvL3N1YnRsZS9lY2RzYS1nZW5lcmF0ZS1leHBvcnQta2V5LXJhdy5odG1sIFsg
U2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZHNhLWdlbmVyYXRlLWV4cG9ydC1rZXktc3BraS5odG1s
IFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZHNhLWdlbmVyYXRlLWtleS5odG1sIFsgU2tpcCBd
Ci1jcnlwdG8vc3VidGxlL2VjZHNhLWdlbmVyYXRlLWtleS1zaWduLXZlcmlmeS1wMjU2Lmh0bWwg
WyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkc2EtZ2VuZXJhdGUta2V5LXNpZ24tdmVyaWZ5LXAz
ODQuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RzYS1nZW5lcmF0ZS1rZXktc2lnbi12
ZXJpZnktcDUyMS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZHNhLWltcG9ydC1qd2st
cHJpdmF0ZS1rZXkuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RzYS1pbXBvcnQtandr
LXB1YmxpYy1rZXkuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RzYS1pbXBvcnQtandr
LXB1YmxpYy1rZXktYWxnLTI1Ni5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZHNhLWlt
cG9ydC1qd2stcHVibGljLWtleS1hbGctMzg0Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUv
ZWNkc2EtaW1wb3J0LWp3ay1wdWJsaWMta2V5LWFsZy01MjEuaHRtbCBbIFNraXAgXQotY3J5cHRv
L3N1YnRsZS9lY2RzYS1pbXBvcnQta2V5LXNpZ24tcDI1Ni5odG1sIFsgU2tpcCBdCi1jcnlwdG8v
c3VidGxlL2VjZHNhLWltcG9ydC1rZXktc2lnbi1wMzg0Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9z
dWJ0bGUvZWNkc2EtaW1wb3J0LWtleS1zaWduLXA1MjEuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1
YnRsZS9lY2RzYS1pbXBvcnQta2V5LXZlcmlmeS1wMjU2Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9z
dWJ0bGUvZWNkc2EtaW1wb3J0LWtleS12ZXJpZnktcDM4NC5odG1sIFsgU2tpcCBdCi1jcnlwdG8v
c3VidGxlL2VjZHNhLWltcG9ydC1rZXktdmVyaWZ5LXA1MjEuaHRtbCBbIFNraXAgXQotY3J5cHRv
L3N1YnRsZS9lY2RzYS1pbXBvcnQtcGtjczgta2V5Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0
bGUvZWNkc2EtaW1wb3J0LXBrY3M4LWtleS1wMjU2LXZhbGlkYXRlLWVjcHJpdmF0ZWtleS1wYXJh
bWV0ZXJzLXB1YmxpY2tleS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZHNhLWltcG9y
dC1wa2NzOC1rZXktcDM4NC12YWxpZGF0ZS1lY3ByaXZhdGVrZXktcGFyYW1ldGVycy1wdWJsaWNr
ZXkuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RzYS1pbXBvcnQtcGtjczgta2V5LXA1
MjEtdmFsaWRhdGUtZWNwcml2YXRla2V5LXBhcmFtZXRlcnMtcHVibGlja2V5Lmh0bWwgWyBTa2lw
IF0KLWNyeXB0by9zdWJ0bGUvZWNkc2EtaW1wb3J0LXJhdy1rZXkuaHRtbCBbIFNraXAgXQotY3J5
cHRvL3N1YnRsZS9lY2RzYS1pbXBvcnQtc3BraS1rZXkuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1
YnRsZS9lY2RzYS12ZXJpZnktbWFsZm9ybWVkLXBhcmFtZXRlcnMuaHRtbCBbIFNraXAgXQotY3J5
cHRvL3N1YnRsZS9lYy1leHBvcnQta2V5LW1hbGZvcm1lZC1wYXJhbWV0ZXJzLmh0bWwgWyBTa2lw
IF0KLWNyeXB0by9zdWJ0bGUvZWMtZ2VuZXJhdGUta2V5LW1hbGZvcm1lZC1wYXJhbWV0ZXJzLmh0
bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWMtaW1wb3J0LWp3ay1rZXktZXhwb3J0LWp3ay1r
ZXktcHJpdmF0ZS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjLWltcG9ydC1qd2sta2V5
LWV4cG9ydC1qd2sta2V5LXB1YmxpYy5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjLWlt
cG9ydC1qd2sta2V5LWV4cG9ydC1wa2NzOC1rZXkuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRs
ZS9lYy1pbXBvcnQtandrLWtleS1leHBvcnQtcmF3LWtleS5odG1sIFsgU2tpcCBdCi1jcnlwdG8v
c3VidGxlL2VjLWltcG9ydC1qd2sta2V5LWV4cG9ydC1zcGtpLWtleS5odG1sIFsgU2tpcCBdCi1j
cnlwdG8vc3VidGxlL2VjLWltcG9ydC1rZXktbWFsZm9ybWVkLXBhcmFtZXRlcnMuaHRtbCBbIFNr
aXAgXQotY3J5cHRvL3N1YnRsZS9lYy1pbXBvcnQtcGtjczgta2V5LWV4cG9ydC1qd2sta2V5Lmh0
bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWMtaW1wb3J0LXBrY3M4LWtleS1leHBvcnQtcGtj
czgta2V5LXAyNTYuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lYy1pbXBvcnQtcGtjczgt
a2V5LWV4cG9ydC1wa2NzOC1rZXktcDM4NC5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2Vj
LWltcG9ydC1wa2NzOC1rZXktZXhwb3J0LXBrY3M4LWtleS1wNTIxLmh0bWwgWyBTa2lwIF0KLWNy
eXB0by9zdWJ0bGUvZWMtaW1wb3J0LXJhdy1rZXktZXhwb3J0LWp3ay1rZXkuaHRtbCBbIFNraXAg
XQotY3J5cHRvL3N1YnRsZS9lYy1pbXBvcnQtcmF3LWtleS1leHBvcnQtcmF3LWtleS5odG1sIFsg
U2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjLWltcG9ydC1yYXcta2V5LWV4cG9ydC1zcGtpLWtleS5o
dG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjLWltcG9ydC1zcGtpLWtleS1leHBvcnQtandr
LWtleS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjLWltcG9ydC1zcGtpLWtleS1leHBv
cnQtcmF3LWtleS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjLWltcG9ydC1zcGtpLWtl
eS1leHBvcnQtc3BraS1rZXktcDI1Ni5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjLWlt
cG9ydC1zcGtpLWtleS1leHBvcnQtc3BraS1rZXktcDM4NC5odG1sIFsgU2tpcCBdCi1jcnlwdG8v
c3VidGxlL2VjLWltcG9ydC1zcGtpLWtleS1leHBvcnQtc3BraS1rZXktcDUyMS5odG1sIFsgU2tp
cCBdCi1jcnlwdG8vc3VidGxlL2djLmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZ2MtMi5o
dG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2djLTMuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1
YnRsZS9oa2RmLWRlcml2ZS1iaXRzLWxlbmd0aC1saW1pdHMuaHRtbCBbIFNraXAgXQotY3J5cHRv
L3N1YnRsZS9oa2RmLWRlcml2ZS1iaXRzLW1hbGZvcm1lZC1wYXJhbWV0cnMuaHRtbCBbIFNraXAg
XQotY3J5cHRvL3N1YnRsZS9oa2RmLWltcG9ydC1rZXkuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1
YnRsZS9oa2RmLWltcG9ydC1rZXktZGVyaXZlLWJpdHMuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1
YnRsZS9oa2RmLWltcG9ydC1rZXktZGVyaXZlLWhtYWMta2V5Lmh0bWwgWyBTa2lwIF0KLWNyeXB0
by9zdWJ0bGUvaGtkZi1pbXBvcnQta2V5LW1hbGZvcm1lZC1wYXJhbWV0ZXJzLmh0bWwgWyBTa2lw
IF0KLWNyeXB0by9zdWJ0bGUvcGJrZGYyLWRlcml2ZS1iaXRzLW1hbGZvcm1lZC1wYXJhbWV0cnMu
aHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9wYmtkZjItaW1wb3J0LWtleS5odG1sIFsgU2tp
cCBdCi1jcnlwdG8vc3VidGxlL3Bia2RmMi1pbXBvcnQta2V5LWRlcml2ZS1iaXRzLmh0bWwgWyBT
a2lwIF0KLWNyeXB0by9zdWJ0bGUvcGJrZGYyLWltcG9ydC1rZXktZGVyaXZlLWhtYWMta2V5Lmh0
bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvcGJrZGYyLWltcG9ydC1rZXktbWFsZm9ybWVkLXBh
cmFtZXRlcnMuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLmh0bWwg
WyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvcnNhLWluZGV4ZWRkYi1ub24tZXhwb3J0YWJsZS5odG1s
IFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL3JzYS1pbmRleGVkZGItbm9uLWV4cG9ydGFibGUtcHJp
dmF0ZS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL3JzYS1pbmRleGVkZGItcHJpdmF0ZS5o
dG1sIFsgU2tpcCBdCisjIEZsYWt5IHRlc3RzLiBFbmNvZGVkIGxlbmd0aCBvZiBnZW5lcmF0ZWQg
a2V5cyBjYW4gYmUgc2hvcnRlciB0aGFuIHRlc3QgZXhwZWN0YXRpb25zLgorY3J5cHRvL3N1YnRs
ZS9lY2RoLWdlbmVyYXRlLWV4cG9ydC1rZXktcGtjczgtcDI1Ni5odG1sIFsgRmFpbHVyZSBQYXNz
IF0KK2NyeXB0by9zdWJ0bGUvZWNkaC1nZW5lcmF0ZS1leHBvcnQta2V5LXBrY3M4LXAzODQuaHRt
bCBbIEZhaWx1cmUgUGFzcyBdCitjcnlwdG8vc3VidGxlL2VjZGgtZ2VuZXJhdGUtZXhwb3J0LWtl
eS1wa2NzOC1wNTIxLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQorY3J5cHRvL3N1YnRsZS9lY2RoLWdl
bmVyYXRlLWV4cG9ydC1rZXktc3BraS1wMjU2Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQorY3J5cHRv
L3N1YnRsZS9lY2RoLWdlbmVyYXRlLWV4cG9ydC1rZXktc3BraS1wMzg0Lmh0bWwgWyBGYWlsdXJl
IFBhc3MgXQorY3J5cHRvL3N1YnRsZS9lY2RoLWdlbmVyYXRlLWV4cG9ydC1rZXktc3BraS1wNTIx
Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQorY3J5cHRvL3N1YnRsZS9lY2RoLWdlbmVyYXRlLWV4cG9y
dC1qd2sta2V5LXAyNTYuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCitjcnlwdG8vc3VidGxlL2VjZGgt
Z2VuZXJhdGUtZXhwb3J0LWp3ay1rZXktcDM4NC5odG1sIFsgRmFpbHVyZSBQYXNzIF0KK2NyeXB0
by9zdWJ0bGUvZWNkaC1nZW5lcmF0ZS1leHBvcnQtandrLWtleS1wNTIxLmh0bWwgWyBGYWlsdXJl
IFBhc3MgXQorY3J5cHRvL3N1YnRsZS9lY2RoLWdlbmVyYXRlLWV4cG9ydC1rZXktcmF3LXAyNTYu
aHRtbCBbIEZhaWx1cmUgUGFzcyBdCitjcnlwdG8vc3VidGxlL2VjZGgtZ2VuZXJhdGUtZXhwb3J0
LWtleS1yYXctcDM4NC5odG1sIFsgRmFpbHVyZSBQYXNzIF0KK2NyeXB0by9zdWJ0bGUvZWNkaC1n
ZW5lcmF0ZS1leHBvcnQta2V5LXJhdy1wNTIxLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQorCisjIFRl
c3RzIGV4cGxpY2l0bHkgZW5hYmxlZC4KK2NyeXB0by9zdWJ0bGUvZGVyaXZlLWJpdHMtbWFsZm9y
bWVkLXBhcmFtZXRlcnMuaHRtbCBbIFBhc3MgXQorY3J5cHRvL3N1YnRsZS9kZXJpdmUta2V5LW1h
bGZvcm1lZC1wYXJhbWV0ZXJzLmh0bWwgWyBQYXNzIF0KK2NyeXB0by9zdWJ0bGUvZWNkaC1pbXBv
cnQtcGtjczgta2V5LXAyNTYtdmFsaWRhdGUtZWNwcml2YXRla2V5LXBhcmFtZXRlcnMtcHVibGlj
a2V5Lmh0bWwgWyBQYXNzIF0KK2NyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQtcGtjczgta2V5LXAz
ODQtdmFsaWRhdGUtZWNwcml2YXRla2V5LXBhcmFtZXRlcnMtcHVibGlja2V5Lmh0bWwgWyBQYXNz
IF0KK2NyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQtcGtjczgta2V5LXA1MjEtdmFsaWRhdGUtZWNw
cml2YXRla2V5LXBhcmFtZXRlcnMtcHVibGlja2V5Lmh0bWwgWyBQYXNzIF0KK2NyeXB0by9zdWJ0
bGUvZWNkaC1pbXBvcnQtc3BraS1rZXktZWNkaC1pZGVudGlmaWVyLmh0bWwgWyBQYXNzIF0KK2Ny
eXB0by9zdWJ0bGUvZWNkc2EtaW1wb3J0LXBrY3M4LWtleS1wMjU2LXZhbGlkYXRlLWVjcHJpdmF0
ZWtleS1wYXJhbWV0ZXJzLXB1YmxpY2tleS5odG1sIFsgUGFzcyBdCitjcnlwdG8vc3VidGxlL2Vj
ZHNhLWltcG9ydC1wa2NzOC1rZXktcDM4NC12YWxpZGF0ZS1lY3ByaXZhdGVrZXktcGFyYW1ldGVy
cy1wdWJsaWNrZXkuaHRtbCBbIFBhc3MgXQorY3J5cHRvL3N1YnRsZS9lY2RzYS1pbXBvcnQtcGtj
czgta2V5LXA1MjEtdmFsaWRhdGUtZWNwcml2YXRla2V5LXBhcmFtZXRlcnMtcHVibGlja2V5Lmh0
bWwgWyBQYXNzIF0KIGNyeXB0by9zdWJ0bGUvcnNhLXBzcy1nZW5lcmF0ZS1leHBvcnQta2V5LWp3
ay1zaGExLmh0bWwgWyBQYXNzIF0KIGNyeXB0by9zdWJ0bGUvcnNhLXBzcy1nZW5lcmF0ZS1leHBv
cnQta2V5LWp3ay1zaGEyMjQuaHRtbCBbIFBhc3MgXQogY3J5cHRvL3N1YnRsZS9yc2EtcHNzLWdl
bmVyYXRlLWV4cG9ydC1rZXktandrLXNoYTI1Ni5odG1sIFsgUGFzcyBdCkBAIC04NDYsMTMgKzc1
NSwyOSBAQCBjcnlwdG8vc3VidGxlL3JzYS1wc3MtaW1wb3J0LWp3ay1wdWJsaWMta2V5LXNoYTI1
Ni5odG1sIFsgUGFzcyBdCiBjcnlwdG8vc3VidGxlL3JzYS1wc3MtaW1wb3J0LWp3ay1wdWJsaWMt
a2V5LXNoYTM4NC5odG1sIFsgUGFzcyBdCiBjcnlwdG8vc3VidGxlL3JzYS1wc3MtaW1wb3J0LWp3
ay1wdWJsaWMta2V5LXNoYTUxMi5odG1sIFsgUGFzcyBdCiBjcnlwdG8vc3VidGxlL3JzYS1wc3Mt
aW1wb3J0LWtleS1zaWduLmh0bWwgWyBQYXNzIF0KLSMgTGFyZ2Ugc2FsdCBzaG91bGQgYmUgc3Vw
cG9ydGVkLgotY3J5cHRvL3N1YnRsZS9yc2EtcHNzLWltcG9ydC1rZXktc2lnbi1sYXJnZS1zYWx0
Lmh0bWwgWyBGYWlsdXJlIF0KIGNyeXB0by9zdWJ0bGUvcnNhLXBzcy1pbXBvcnQta2V5LXZlcmlm
eS5odG1sIFsgUGFzcyBdCiBjcnlwdG8vc3VidGxlL3JzYS1wc3MtaW1wb3J0LXBrY3M4LWtleS5o
dG1sIFsgUGFzcyBdCiBjcnlwdG8vc3VidGxlL3JzYS1wc3MtaW1wb3J0LXNwa2kta2V5Lmh0bWwg
WyBQYXNzIF0KIGNyeXB0by9zdWJ0bGUvcnNhLXBzcy1pbXBvcnQtc3BraS1rZXktZW1wdHktdXNh
Z2VzLmh0bWwgWyBQYXNzIF0KIAorIyBIS0RGIGFuZCBQQktERjIgYXJlIG5vdCB5ZXQgc3VwcG9y
dGVkLgorY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1rZXktZGVyaXZlLWhrZGYta2V5Lmh0bWwg
WyBTa2lwIF0KK2NyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQta2V5LWRlcml2ZS1wYmtkZjIta2V5
Lmh0bWwgWyBTa2lwIF0KK2NyeXB0by9zdWJ0bGUvaGtkZi1kZXJpdmUtYml0cy1sZW5ndGgtbGlt
aXRzLmh0bWwgWyBTa2lwIF0KK2NyeXB0by9zdWJ0bGUvaGtkZi1kZXJpdmUtYml0cy1tYWxmb3Jt
ZWQtcGFyYW1ldHJzLmh0bWwgWyBTa2lwIF0KK2NyeXB0by9zdWJ0bGUvaGtkZi1pbXBvcnQta2V5
Lmh0bWwgWyBTa2lwIF0KK2NyeXB0by9zdWJ0bGUvaGtkZi1pbXBvcnQta2V5LWRlcml2ZS1iaXRz
Lmh0bWwgWyBTa2lwIF0KK2NyeXB0by9zdWJ0bGUvaGtkZi1pbXBvcnQta2V5LWRlcml2ZS1obWFj
LWtleS5odG1sIFsgU2tpcCBdCitjcnlwdG8vc3VidGxlL2hrZGYtaW1wb3J0LWtleS1tYWxmb3Jt
ZWQtcGFyYW1ldGVycy5odG1sIFsgU2tpcCBdCitjcnlwdG8vc3VidGxlL3Bia2RmMi1kZXJpdmUt
Yml0cy1tYWxmb3JtZWQtcGFyYW1ldHJzLmh0bWwgWyBTa2lwIF0KK2NyeXB0by9zdWJ0bGUvcGJr
ZGYyLWltcG9ydC1rZXkuaHRtbCBbIFNraXAgXQorY3J5cHRvL3N1YnRsZS9wYmtkZjItaW1wb3J0
LWtleS1kZXJpdmUtYml0cy5odG1sIFsgU2tpcCBdCitjcnlwdG8vc3VidGxlL3Bia2RmMi1pbXBv
cnQta2V5LWRlcml2ZS1obWFjLWtleS5odG1sIFsgU2tpcCBdCitjcnlwdG8vc3VidGxlL3Bia2Rm
Mi1pbXBvcnQta2V5LW1hbGZvcm1lZC1wYXJhbWV0ZXJzLmh0bWwgWyBTa2lwIF0KKworIyBMYXJn
ZSBzYWx0IHNob3VsZCBiZSBzdXBwb3J0ZWQuCitjcnlwdG8vc3VidGxlL3JzYS1wc3MtaW1wb3J0
LWtleS1zaWduLWxhcmdlLXNhbHQuaHRtbCBbIEZhaWx1cmUgXQorCiAjIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjE1NjkKIGNyeXB0by9jcnlwdG8tcmFuZG9tLXZh
bHVlcy1vb20uaHRtbCBbIFNraXAgXQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW5jYWlyby9jcnlwdG8vc3VidGxlL2VjLWdlbmVyYXRlLWtleS1tYWxmb3JtZWQtcGFyYW1l
dGVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9jcnlwdG8v
c3VidGxlL2VjLWdlbmVyYXRlLWtleS1tYWxmb3JtZWQtcGFyYW1ldGVycy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYmU0NjVlNzZjMGJmNzc4ZTViZjNmMzI1NjllOTIzZDRkYmNhZmMzNAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL2NyeXB0by9zdWJ0
bGUvZWMtZ2VuZXJhdGUta2V5LW1hbGZvcm1lZC1wYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMwIEBACitUZXN0IGdlbmVyYXRpbmcgYW4gRUMga2V5IHBhaXIgd2l0aCBtYWxmb3Jt
ZWQtcGFyYW10ZXJzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBjcnlw
dG8uc3VidGxlLmdlbmVyYXRlS2V5KCJlY2RoIiwgZXh0cmFjdGFibGUsIFsiZGVyaXZlS2V5Iiwg
ImRlcml2ZUJpdHMiXSkgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IE1lbWJlciBF
Y0tleVBhcmFtcy5uYW1lZEN1cnZlIGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGFuIGluc3RhbmNl
IG9mIERPTVN0cmluZy4KK1BBU1MgY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogImVj
ZGgifSwgZXh0cmFjdGFibGUsIFsiZGVyaXZlS2V5IiwgImRlcml2ZUJpdHMiXSkgcmVqZWN0ZWQg
cHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IE1lbWJlciBFY0tleVBhcmFtcy5uYW1lZEN1cnZlIGlz
IHJlcXVpcmVkIGFuZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIERPTVN0cmluZy4KK1BBU1MgY3J5
cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogImVjZGgiLCBuYW1lZEN1cnZlOiB0cnVlfSwg
ZXh0cmFjdGFibGUsIFsiZGVyaXZlS2V5IiwgImRlcml2ZUJpdHMiXSkgcmVqZWN0ZWQgcHJvbWlz
ZSAgd2l0aCBOb3RTdXBwb3J0ZWRFcnJvcjogVGhlIGFsZ29yaXRobSBpcyBub3Qgc3VwcG9ydGVk
LgorUEFTUyBjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiZWNkaCIsIG5hbWVkQ3Vy
dmU6IG51bGx9LCBleHRyYWN0YWJsZSwgWyJkZXJpdmVLZXkiLCAiZGVyaXZlQml0cyJdKSByZWpl
Y3RlZCBwcm9taXNlICB3aXRoIE5vdFN1cHBvcnRlZEVycm9yOiBUaGUgYWxnb3JpdGhtIGlzIG5v
dCBzdXBwb3J0ZWQuCitQQVNTIGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoe25hbWU6ICJlY2Ro
IiwgbmFtZWRDdXJ2ZTogdW5kZWZpbmVkfSwgZXh0cmFjdGFibGUsIFsiZGVyaXZlS2V5IiwgImRl
cml2ZUJpdHMiXSkgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IE1lbWJlciBFY0tl
eVBhcmFtcy5uYW1lZEN1cnZlIGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9m
IERPTVN0cmluZy4KK1BBU1MgY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogImVjZGgi
LCBuYW1lZEN1cnZlOiBTeW1ib2woKX0sIGV4dHJhY3RhYmxlLCBbImRlcml2ZUtleSIsICJkZXJp
dmVCaXRzIl0pIHJlamVjdGVkIHByb21pc2UgIHdpdGggVHlwZUVycm9yOiBDYW5ub3QgY29udmVy
dCBhIHN5bWJvbCB0byBhIHN0cmluZy4KK1BBU1MgY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7
bmFtZTogImVjZGgiLCBuYW1lZEN1cnZlOiB7IH19LCBleHRyYWN0YWJsZSwgWyJkZXJpdmVLZXki
LCAiZGVyaXZlQml0cyJdKSByZWplY3RlZCBwcm9taXNlICB3aXRoIE5vdFN1cHBvcnRlZEVycm9y
OiBUaGUgYWxnb3JpdGhtIGlzIG5vdCBzdXBwb3J0ZWQuCitQQVNTIGNyeXB0by5zdWJ0bGUuZ2Vu
ZXJhdGVLZXkoe25hbWU6ICJlY2RoIiwgbmFtZWRDdXJ2ZTogMX0sIGV4dHJhY3RhYmxlLCBbImRl
cml2ZUtleSIsICJkZXJpdmVCaXRzIl0pIHJlamVjdGVkIHByb21pc2UgIHdpdGggTm90U3VwcG9y
dGVkRXJyb3I6IFRoZSBhbGdvcml0aG0gaXMgbm90IHN1cHBvcnRlZC4KK1BBU1MgY3J5cHRvLnN1
YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogImVjZGgiLCBuYW1lZEN1cnZlOiAiUC0yNTYifSwgZXh0
cmFjdGFibGUsIFsiZW5jcnlwdCJdKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFN5bnRheEVycm9y
OiBBIHJlcXVpcmVkIHBhcmFtZXRlciB3YXMgbWlzc2luZyBvciBvdXQtb2YtcmFuZ2UuCitQQVNT
IGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoe25hbWU6ICJlY2RoIiwgbmFtZWRDdXJ2ZTogIlAt
MjU2In0sIGV4dHJhY3RhYmxlLCBbImRlY3J5cHQiXSkgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBT
eW50YXhFcnJvcjogQSByZXF1aXJlZCBwYXJhbWV0ZXIgd2FzIG1pc3Npbmcgb3Igb3V0LW9mLXJh
bmdlLgorUEFTUyBjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiZWNkaCIsIG5hbWVk
Q3VydmU6ICJQLTI1NiJ9LCBleHRyYWN0YWJsZSwgWyJzaWduIl0pIHJlamVjdGVkIHByb21pc2Ug
IHdpdGggU3ludGF4RXJyb3I6IEEgcmVxdWlyZWQgcGFyYW1ldGVyIHdhcyBtaXNzaW5nIG9yIG91
dC1vZi1yYW5nZS4KK1BBU1MgY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogImVjZGgi
LCBuYW1lZEN1cnZlOiAiUC0yNTYifSwgZXh0cmFjdGFibGUsIFsidmVyaWZ5Il0pIHJlamVjdGVk
IHByb21pc2UgIHdpdGggU3ludGF4RXJyb3I6IEEgcmVxdWlyZWQgcGFyYW1ldGVyIHdhcyBtaXNz
aW5nIG9yIG91dC1vZi1yYW5nZS4KK1BBU1MgY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7bmFt
ZTogImVjZGgiLCBuYW1lZEN1cnZlOiAiUC0yNTYifSwgZXh0cmFjdGFibGUsIFsid3JhcEtleSJd
KSByZWplY3RlZCBwcm9taXNlICB3aXRoIFN5bnRheEVycm9yOiBBIHJlcXVpcmVkIHBhcmFtZXRl
ciB3YXMgbWlzc2luZyBvciBvdXQtb2YtcmFuZ2UuCitQQVNTIGNyeXB0by5zdWJ0bGUuZ2VuZXJh
dGVLZXkoe25hbWU6ICJlY2RoIiwgbmFtZWRDdXJ2ZTogIlAtMjU2In0sIGV4dHJhY3RhYmxlLCBb
InVud3JhcEtleSJdKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFN5bnRheEVycm9yOiBBIHJlcXVp
cmVkIHBhcmFtZXRlciB3YXMgbWlzc2luZyBvciBvdXQtb2YtcmFuZ2UuCitQQVNTIGNyeXB0by5z
dWJ0bGUuZ2VuZXJhdGVLZXkoe25hbWU6ICJlY2RzYSIsIG5hbWVkQ3VydmU6ICJQLTI1NiJ9LCBl
eHRyYWN0YWJsZSwgWyJlbmNyeXB0Il0pIHJlamVjdGVkIHByb21pc2UgIHdpdGggU3ludGF4RXJy
b3I6IEEgcmVxdWlyZWQgcGFyYW1ldGVyIHdhcyBtaXNzaW5nIG9yIG91dC1vZi1yYW5nZS4KK1BB
U1MgY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogImVjZHNhIiwgbmFtZWRDdXJ2ZTog
IlAtMjU2In0sIGV4dHJhY3RhYmxlLCBbImRlY3J5cHQiXSkgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0
aCBTeW50YXhFcnJvcjogQSByZXF1aXJlZCBwYXJhbWV0ZXIgd2FzIG1pc3Npbmcgb3Igb3V0LW9m
LXJhbmdlLgorUEFTUyBjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiZWNkc2EiLCBu
YW1lZEN1cnZlOiAiUC0yNTYifSwgZXh0cmFjdGFibGUsIFsiZGVyaXZlS2V5Il0pIHJlamVjdGVk
IHByb21pc2UgIHdpdGggU3ludGF4RXJyb3I6IEEgcmVxdWlyZWQgcGFyYW1ldGVyIHdhcyBtaXNz
aW5nIG9yIG91dC1vZi1yYW5nZS4KK1BBU1MgY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7bmFt
ZTogImVjZHNhIiwgbmFtZWRDdXJ2ZTogIlAtMjU2In0sIGV4dHJhY3RhYmxlLCBbImRlcml2ZUJp
dHMiXSkgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBTeW50YXhFcnJvcjogQSByZXF1aXJlZCBwYXJh
bWV0ZXIgd2FzIG1pc3Npbmcgb3Igb3V0LW9mLXJhbmdlLgorUEFTUyBjcnlwdG8uc3VidGxlLmdl
bmVyYXRlS2V5KHtuYW1lOiAiZWNkc2EiLCBuYW1lZEN1cnZlOiAiUC0yNTYifSwgZXh0cmFjdGFi
bGUsIFsid3JhcEtleSJdKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFN5bnRheEVycm9yOiBBIHJl
cXVpcmVkIHBhcmFtZXRlciB3YXMgbWlzc2luZyBvciBvdXQtb2YtcmFuZ2UuCitQQVNTIGNyeXB0
by5zdWJ0bGUuZ2VuZXJhdGVLZXkoe25hbWU6ICJlY2RzYSIsIG5hbWVkQ3VydmU6ICJQLTI1NiJ9
LCBleHRyYWN0YWJsZSwgWyJ1bndyYXBLZXkiXSkgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBTeW50
YXhFcnJvcjogQSByZXF1aXJlZCBwYXJhbWV0ZXIgd2FzIG1pc3Npbmcgb3Igb3V0LW9mLXJhbmdl
LgorRkFJTCBjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiZWNkaCIsIG5hbWVkQ3Vy
dmU6ICJQLTUyMSJ9LCBleHRyYWN0YWJsZSwgWyJkZXJpdmVLZXkiXSkgc2hvdWxkIHJlamVjdCBw
cm9taXNlLiBSZXNvbHZlZCB3aXRoIFtvYmplY3QgT2JqZWN0XS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW5jYWlyby9jcnlwdG8vc3VidGxlL2VjZGgtZGVyaXZlLWJpdHMtbGVuZ3Ro
LWxpbWl0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9jcnlw
dG8vc3VidGxlL2VjZGgtZGVyaXZlLWJpdHMtbGVuZ3RoLWxpbWl0cy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjcyMDliMGMwNDhlMDdlNmM2MDVmMTljOGY2NWE4ZjU2NWUxMzM5NQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL2NyeXB0by9zdWJ0bGUv
ZWNkaC1kZXJpdmUtYml0cy1sZW5ndGgtbGltaXRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI0
IEBACitUZXN0IEVDREggZGVyaXZlQml0cyBvcGVyYXRpb24gZm9yIGNvcm5lci1jYXNlIGxlbmd0
aCB2YWx1ZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGRlcml2ZUJp
dHMoLi4uLCAwKSBzdWNjZXNzZnVsbHkgZGVyaXZlZCAyNTYgYml0cyBmb3IgYSBQLTI1NiBjdXJ2
ZQorUEFTUyBkZXJpdmVCaXRzKC4uLiwgOCkgc3VjY2Vzc2Z1bGx5IGRlcml2ZWQgOCBiaXRzIGZv
ciBhIFAtMjU2IGN1cnZlCitQQVNTIGRlcml2ZUJpdHMoLi4uLCAyNTYpIHN1Y2Nlc3NmdWxseSBk
ZXJpdmVkIDI1NiBiaXRzIGZvciBhIFAtMjU2IGN1cnZlCitQQVNTIEJpdCBkZXJpdmF0aW9ucyBm
b3IgRUMgUC0yNTYgd2l0aCBtaW5pbXVtIGFuZCBtYXhpbXVtIGxlbmd0aHMgc3VjY2VlZGVkCitQ
QVNTIGRlcml2ZUJpdHMoUDI1NiwgMjU2ICsgOCkgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBPcGVy
YXRpb25FcnJvcjogVGhlIG9wZXJhdGlvbiBmYWlsZWQgZm9yIGFuIG9wZXJhdGlvbi1zcGVjaWZp
YyByZWFzb24uCitQQVNTIGRlcml2ZUJpdHMoLi4uLCAwKSBzdWNjZXNzZnVsbHkgZGVyaXZlZCAz
ODQgYml0cyBmb3IgYSBQLTM4NCBjdXJ2ZQorUEFTUyBkZXJpdmVCaXRzKC4uLiwgOCkgc3VjY2Vz
c2Z1bGx5IGRlcml2ZWQgOCBiaXRzIGZvciBhIFAtMzg0IGN1cnZlCitQQVNTIGRlcml2ZUJpdHMo
Li4uLCAzODQpIHN1Y2Nlc3NmdWxseSBkZXJpdmVkIDM4NCBiaXRzIGZvciBhIFAtMzg0IGN1cnZl
CitQQVNTIEJpdCBkZXJpdmF0aW9ucyBmb3IgRUMgUC0zODQgd2l0aCBtaW5pbXVtIGFuZCBtYXhp
bXVtIGxlbmd0aHMgc3VjY2VlZGVkCitQQVNTIGRlcml2ZUJpdHMoUDM4NCwgMzg0ICsgOCkgcmVq
ZWN0ZWQgcHJvbWlzZSAgd2l0aCBPcGVyYXRpb25FcnJvcjogVGhlIG9wZXJhdGlvbiBmYWlsZWQg
Zm9yIGFuIG9wZXJhdGlvbi1zcGVjaWZpYyByZWFzb24uCitQQVNTIGRlcml2ZUJpdHMoLi4uLCAw
KSBzdWNjZXNzZnVsbHkgZGVyaXZlZCA1MjggYml0cyBmb3IgYSBQLTUyMSBjdXJ2ZQorUEFTUyBk
ZXJpdmVCaXRzKC4uLiwgOCkgc3VjY2Vzc2Z1bGx5IGRlcml2ZWQgOCBiaXRzIGZvciBhIFAtNTIx
IGN1cnZlCitQQVNTIGRlcml2ZUJpdHMoLi4uLCA1MjgpIHN1Y2Nlc3NmdWxseSBkZXJpdmVkIDUy
OCBiaXRzIGZvciBhIFAtNTIxIGN1cnZlCitQQVNTIEJpdCBkZXJpdmF0aW9ucyBmb3IgRUMgUC01
MjEgd2l0aCBtaW5pbXVtIGFuZCBtYXhpbXVtIGxlbmd0aHMgc3VjY2VlZGVkCitQQVNTIGRlcml2
ZUJpdHMoUDUyMSwgNTI4ICsgOCkgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBPcGVyYXRpb25FcnJv
cjogVGhlIG9wZXJhdGlvbiBmYWlsZWQgZm9yIGFuIG9wZXJhdGlvbi1zcGVjaWZpYyByZWFzb24u
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vY3J5cHRvL3N1YnRsZS9lY2Ro
LWltcG9ydC1zcGtpLWtleS1lY2RoLWlkZW50aWZpZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luY2Fpcm8vY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1zcGtpLWtleS1l
Y2RoLWlkZW50aWZpZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNkYmZkYjc2NjUyMDllMzM4
NTVhMzM4YmE1ZmE1ZDZlMWMyZDkyZDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW5jYWlyby9jcnlwdG8vc3VidGxlL2VjZGgtaW1wb3J0LXNwa2kta2V5LWVjZGgt
aWRlbnRpZmllci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMCBAQAorVGVzdCBpbXBvcnRpbmcg
UC0yNTYsIFAtMzg0IGFuZCBQLTUyMSBTUEtJIEVDREgga2V5cyB0aGF0IGFyZSB1c2luZyB0aGUg
ZWNESCBhbGdvcml0aG0gaWRlbnRpZmllcgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworSW1wb3J0aW5nIGEgUC0yNTYga2V5IHRoYXQgdXNlcyB0aGUgZWNESCBhbGdvcml0aG0gaWRl
bnRpZmllciAuLi4KK1BBU1MgcHVibGljS2V5LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgQ3J5cHRv
S2V5XScKK1BBU1MgcHVibGljS2V5LnR5cGUgaXMgJ3B1YmxpYycKK1BBU1MgcHVibGljS2V5LmV4
dHJhY3RhYmxlIGlzIHRydWUKK1BBU1MgcHVibGljS2V5LmFsZ29yaXRobS5uYW1lIGlzICdFQ0RI
JworUEFTUyBwdWJsaWNLZXkuYWxnb3JpdGhtLm5hbWVkQ3VydmUgaXMgJ1AtMjU2JworUEFTUyBw
dWJsaWNLZXkudXNhZ2VzIGlzIFsgXQorSW1wb3J0aW5nIGEgUC0zODQga2V5IHRoYXQgdXNlcyB0
aGUgZWNESCBhbGdvcml0aG0gaWRlbnRpZmllciAuLi4KK1BBU1MgcHVibGljS2V5LnRvU3RyaW5n
KCkgaXMgJ1tvYmplY3QgQ3J5cHRvS2V5XScKK1BBU1MgcHVibGljS2V5LnR5cGUgaXMgJ3B1Ymxp
YycKK1BBU1MgcHVibGljS2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKK1BBU1MgcHVibGljS2V5LmFs
Z29yaXRobS5uYW1lIGlzICdFQ0RIJworUEFTUyBwdWJsaWNLZXkuYWxnb3JpdGhtLm5hbWVkQ3Vy
dmUgaXMgJ1AtMzg0JworUEFTUyBwdWJsaWNLZXkudXNhZ2VzIGlzIFsgXQorSW1wb3J0aW5nIGEg
UC01MjEga2V5IHRoYXQgdXNlcyB0aGUgZWNESCBhbGdvcml0aG0gaWRlbnRpZmllciAuLi4KK1BB
U1MgcHVibGljS2V5LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgQ3J5cHRvS2V5XScKK1BBU1MgcHVi
bGljS2V5LnR5cGUgaXMgJ3B1YmxpYycKK1BBU1MgcHVibGljS2V5LmV4dHJhY3RhYmxlIGlzIHRy
dWUKK1BBU1MgcHVibGljS2V5LmFsZ29yaXRobS5uYW1lIGlzICdFQ0RIJworUEFTUyBwdWJsaWNL
ZXkuYWxnb3JpdGhtLm5hbWVkQ3VydmUgaXMgJ1AtNTIxJworUEFTUyBwdWJsaWNLZXkudXNhZ2Vz
IGlzIFsgXQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432990</attachid>
            <date>2021-07-06 17:19:27 -0700</date>
            <delta_ts>2021-07-07 15:52:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227655-20210707091925.patch</filename>
            <type>text/plain</type>
            <size>59934</size>
            <attacher name="Yoshiaki Jitsukawa">yoshiaki.jitsukawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTVhMTFiOTkwZjRjMmU0
YzYxMDc1ZWQwMzgyZTBjMjc2MWIxNTFlNi4uNGYwMTNiOWExOTI5YTdmZTE2NTQzMmFiNWFkYzk0
MmNkZWZkY2MwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDIxLTA3LTA1ICBZb3No
aWFraSBKaXRzdWthd2EgIDx5b3NoaWFraS5qaXRzdWthd2FAc29ueS5jb20+CisKKyAgICAgICAg
W09wZW5TU0xdIEltcGxlbWVudCBDcnlwdG9BbGdvcml0aG1FQyoKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzY1NQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBlbGxpcHRpYyBjdXJ2ZSBz
dXBwb3J0IGluIFdlYkNyeXB0by4gVGhpcyBwYXRjaCBlbmFibGVzIEVDREgKKyAgICAgICAgYW5k
IEVDRFNBIGFsZ29yaXRobXMgYXMgd2VsbCBhcyBFQyBrZXkgaW1wb3J0LCBleHBvcnQsIGFuZCBn
ZW5lcmF0aW9uLgorCisgICAgICAgIE5vdGUgdGhhdCBsb3cgbGV2ZWwgQVNOMSBBUEkgaXMgdXNl
ZCBpbiBDcnlwdG9LZXlFQy5jcHAgdG8gaW1wb3J0CisgICAgICAgIHB1YmxpYyBFQyBrZXlzIGlu
IHRoZSBTUEtJIGZvcm1hdCBiZWNhdXNlIGN1cnJlbnRseSBPcGVuU1NMIGRvZXNuJ3QKKyAgICAg
ICAgaGF2ZSB0aGUgT2JqZWN0IElEIG9mIHRoZSBlY0RIIGFsZ29yaXRobSBhbmQgaXQgZmFpbHMg
dG8gbG9hZCBlY0RICisgICAgICAgIGtleXMgd2l0aCBkMmlQVUJLRVkoKS4KKworICAgICAgICAq
IGNyeXB0by9rZXlzL0NyeXB0b0tleUVDLmg6CisgICAgICAgICogY3J5cHRvL29wZW5zc2wvQ3J5
cHRvQWxnb3JpdGhtRUNESE9wZW5TU0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxn
b3JpdGhtRUNESDo6cGxhdGZvcm1EZXJpdmVCaXRzKToKKyAgICAgICAgKiBjcnlwdG8vb3BlbnNz
bC9DcnlwdG9BbGdvcml0aG1FQ0RTQU9wZW5TU0wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5
cHRvQWxnb3JpdGhtRUNEU0E6OnBsYXRmb3JtU2lnbik6CisgICAgICAgIChXZWJDb3JlOjpDcnlw
dG9BbGdvcml0aG1FQ0RTQTo6cGxhdGZvcm1WZXJpZnkpOgorICAgICAgICAqIGNyeXB0by9vcGVu
c3NsL0NyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5T3BlblNTTC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDcnlwdG9BbGdvcml0aG1SZWdpc3RyeTo6cGxhdGZvcm1SZWdpc3RlckFsZ29yaXRobXMpOgor
ICAgICAgICAqIGNyeXB0by9vcGVuc3NsL0NyeXB0b0tleUVDT3BlblNTTC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpjdXJ2ZUlkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3VydmVTaXpl
KToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUVDS2V5KToKKyAgICAgICAgKFdlYkNvcmU6OnZl
cmlmeUN1cnZlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleUVDOjprZXlTaXplSW5CaXRz
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleUVDOjpwbGF0Zm9ybVN1cHBvcnRl
ZEN1cnZlKToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleUVDOjpwbGF0Zm9ybUdlbmVyYXRl
UGFpcik6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9LZXlFQzo6cGxhdGZvcm1JbXBvcnRSYXcp
OgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvS2V5RUM6OnBsYXRmb3JtSW1wb3J0SldLUHVibGlj
KToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleUVDOjpwbGF0Zm9ybUltcG9ydEpXS1ByaXZh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6ZWNQdWJsaWNLZXlJZGVudGlmaWVyKToKKyAgICAgICAg
KFdlYkNvcmU6OmVjREhJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYkNvcmU6OnN1cHBvcnRlZEFs
Z29yaXRobUlkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvS2V5RUM6OnBsYXRm
b3JtSW1wb3J0U3BraSk6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9LZXlFQzo6cGxhdGZvcm1J
bXBvcnRQa2NzOCk6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9LZXlFQzo6cGxhdGZvcm1FeHBv
cnRSYXcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvS2V5RUM6OnBsYXRmb3JtQWRk
RmllbGRFbGVtZW50cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9LZXlFQzo6cGxh
dGZvcm1FeHBvcnRTcGtpIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleUVDOjpw
bGF0Zm9ybUV4cG9ydFBrY3M4IGNvbnN0KToKKyAgICAgICAgKiBjcnlwdG8vb3BlbnNzbC9Dcnlw
dG9LZXlSU0FPcGVuU1NMLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleVJTQTo6aW1w
b3J0U3BraSk6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9LZXlSU0E6OmltcG9ydFBrY3M4KToK
KyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleVJTQTo6ZXhwb3J0U3BraSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpDcnlwdG9LZXlSU0E6OmV4cG9ydFBrY3M4IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkNyeXB0b0tleVJTQTo6YWxnb3JpdGhtIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkNyeXB0b0tleVJTQTo6ZXhwb3J0RGF0YSBjb25zdCk6CisgICAgICAgICogY3J5cHRvL29w
ZW5zc2wvT3BlblNTTENyeXB0b1VuaXF1ZVB0ci5oOgorICAgICAgICAoV2ViQ29yZTo6T3BlblNT
TENyeXB0b1B0ckRlbGV0ZXI8RUNfS0VZPjo6b3BlcmF0b3IoKSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpPcGVuU1NMQ3J5cHRvUHRyRGVsZXRlcjxFQ19QT0lOVD46Om9wZXJhdG9yKCkgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6T3BlblNTTENyeXB0b1B0ckRlbGV0ZXI8RUNEU0FfU0lH
Pjo6b3BlcmF0b3IoKSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpPcGVuU1NMQ3J5cHRvUHRy
RGVsZXRlcjxBU04xX1NFUVVFTkNFX0FOWT46Om9wZXJhdG9yKCkgY29uc3QpOgorICAgICAgICAq
IGNyeXB0by9vcGVuc3NsL09wZW5TU0xVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Y29udmVydFRvQnl0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQnl0ZXNFeHBhbmQp
OgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvQmlnTnVtYmVyKToKKyAgICAgICAgKiBjcnlw
dG8vb3BlbnNzbC9PcGVuU1NMVXRpbGl0aWVzLmg6CisKIDIwMjEtMDctMDQgIEFsZXhleSBTaHZh
eWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAgICAgIFtXZWJJRExdIFNpbXBsaWZ5
IGdlbmVyYXRpb24gb2YgcnVudGltZSBjb25kaXRpb25hbGx5IHJlYWQtd3JpdGUgYXR0cmlidXRl
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaCBi
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUVDLmgKaW5kZXggYjk2MDYwNTlj
OGE2NTYxMWI2ZWI0NGM5ZDgxOTNkZWUxZjBmZjQ0My4uOGQ2ZTAwODIxMjkxZTQ4YzFlYmJkYjA0
OTdlMGM1YmUyZmYzMzAyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMv
Q3J5cHRvS2V5RUMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlF
Qy5oCkBAIC01MSw4ICs1MSw5IEBAIHR5cGVkZWYgc3RkOjp1bmlxdWVfcHRyPHR5cGVuYW1lIHN0
ZDo6cmVtb3ZlX3BvaW50ZXI8Z2NyeV9zZXhwX3Q+Ojp0eXBlLCBQQUw6OkdDCiAjZW5kaWYKIAog
I2lmIFVTRShPUEVOU1NMKQotdHlwZWRlZiB2b2lkKiBQbGF0Zm9ybUVDS2V5OwotdHlwZWRlZiBz
dGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1FQ0tleT4gUGxhdGZvcm1FQ0tleUNvbnRhaW5lcjsKKyNp
bmNsdWRlICJjcnlwdG8vb3BlbnNzbC9PcGVuU1NMQ3J5cHRvVW5pcXVlUHRyLmgiCit0eXBlZGVm
IEVWUF9QS0VZKiBQbGF0Zm9ybUVDS2V5OwordHlwZWRlZiBXZWJDb3JlOjpFdnBQS2V5UHRyIFBs
YXRmb3JtRUNLZXlDb250YWluZXI7CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL29wZW5zc2wvQ3J5cHRvQWxnb3JpdGhtRUNE
SE9wZW5TU0wuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL29wZW5zc2wvQ3J5cHRvQWxnb3Jp
dGhtRUNESE9wZW5TU0wuY3BwCmluZGV4IGNmOTc4MzUyMzI4NTc4YzU2NThhNTNiMmFkZTc3NjVh
MTM3NGIxZTguLmZkZDA3YTllNGZjNTgyMjNlY2U1MDU1YWQyZTU2OWQwNjQxZTRhY2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9vcGVuc3NsL0NyeXB0b0FsZ29yaXRobUVDREhP
cGVuU1NMLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vb3BlbnNzbC9DcnlwdG9BbGdv
cml0aG1FQ0RIT3BlblNTTC5jcHAKQEAgLTI5LDE0ICsyOSwzNSBAQAogI2lmIEVOQUJMRShXRUJf
Q1JZUFRPKQogCiAjaW5jbHVkZSAiQ3J5cHRvS2V5RUMuaCIKLSNpbmNsdWRlICJOb3RJbXBsZW1l
bnRlZC5oIgorI2luY2x1ZGUgIk9wZW5TU0xVdGlsaXRpZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1zdGQ6Om9wdGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4gQ3J5cHRvQWxnb3JpdGhtRUNE
SDo6cGxhdGZvcm1EZXJpdmVCaXRzKGNvbnN0IENyeXB0b0tleUVDJiwgY29uc3QgQ3J5cHRvS2V5
RUMmKQorc3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhfdD4+IENyeXB0b0FsZ29yaXRobUVDREg6
OnBsYXRmb3JtRGVyaXZlQml0cyhjb25zdCBDcnlwdG9LZXlFQyYgYmFzZUtleSwgY29uc3QgQ3J5
cHRvS2V5RUMmIHB1YmxpY0tleSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVy
biB7IH07CisgICAgYXV0byBjdHggPSBFdnBQS2V5Q3R4UHRyKEVWUF9QS0VZX0NUWF9uZXcoYmFz
ZUtleS5wbGF0Zm9ybUtleSgpLCBudWxscHRyKSk7CisgICAgaWYgKCFjdHgpCisgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBpZiAoRVZQX1BLRVlfZGVyaXZlX2luaXQoY3R4Lmdl
dCgpKSA8PSAwKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgaWYgKEVWUF9Q
S0VZX2Rlcml2ZV9zZXRfcGVlcihjdHguZ2V0KCksIHB1YmxpY0tleS5wbGF0Zm9ybUtleSgpKSA8
PSAwKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgLy8gQ2FsbCB3aXRoIGEg
bnVsbHB0ciB0byBnZXQgdGhlIHJlcXVpcmVkIGJ1ZmZlciBzaXplLgorICAgIHNpemVfdCBrZXlM
ZW47CisgICAgaWYgKEVWUF9QS0VZX2Rlcml2ZShjdHguZ2V0KCksIG51bGxwdHIsICZrZXlMZW4p
IDw9IDApCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBWZWN0b3I8dWludDhf
dD4ga2V5KGtleUxlbik7CisgICAgaWYgKEVWUF9QS0VZX2Rlcml2ZShjdHguZ2V0KCksIGtleS5k
YXRhKCksICZrZXlMZW4pIDw9IDApCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAvLyBTaHJpbmsgdGhlIGJ1ZmZlciBzaW5jZSB0aGUgbmV3IGtleUxlbiBtYXkgZGlmZmVyIGZy
b20gdGhlIGJ1ZmZlciBzaXplLgorICAgIGtleS5zaHJpbmsoa2V5TGVuKTsKKworICAgIHJldHVy
biBrZXk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9vcGVuc3NsL0NyeXB0b0FsZ29yaXRobUVDRFNBT3BlblNTTC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vb3BlbnNzbC9DcnlwdG9BbGdvcml0aG1FQ0RTQU9wZW5TU0wu
Y3BwCmluZGV4IDIwMGMwZmZlZWRhMzMwYzcwY2EwMTk2MmI5ZTgyMGI0OGY4OWQyOTUuLmQyZTU3
Nzg5ZjYxODM4Y2E3OWM2NTQ5NTFmNTYzNThmZmVlMWQ5YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9vcGVuc3NsL0NyeXB0b0FsZ29yaXRobUVDRFNBT3BlblNTTC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL29wZW5zc2wvQ3J5cHRvQWxnb3JpdGhtRUNEU0FPcGVu
U1NMLmNwcApAQCAtMzAsMjAgKzMwLDY5IEBACiAKICNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1F
Y2RzYVBhcmFtcy5oIgogI2luY2x1ZGUgIkNyeXB0b0tleUVDLmgiCi0jaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKKyNpbmNsdWRlICJPcGVuU1NMVXRpbGl0aWVzLmgiCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBDcnlwdG9BbGdvcml0aG1F
Q0RTQTo6cGxhdGZvcm1TaWduKGNvbnN0IENyeXB0b0FsZ29yaXRobUVjZHNhUGFyYW1zJiwgY29u
c3QgQ3J5cHRvS2V5RUMmLCBjb25zdCBWZWN0b3I8dWludDhfdD4mKQorRXhjZXB0aW9uT3I8VmVj
dG9yPHVpbnQ4X3Q+PiBDcnlwdG9BbGdvcml0aG1FQ0RTQTo6cGxhdGZvcm1TaWduKGNvbnN0IENy
eXB0b0FsZ29yaXRobUVjZHNhUGFyYW1zJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlFQyYg
a2V5LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGRhdGEpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQo
KTsKLSAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKKyAgICBzaXpl
X3Qga2V5U2l6ZUluQnl0ZXMgPSAoa2V5LmtleVNpemVJbkJpdHMoKSArIDcpIC8gODsKKworICAg
IGNvbnN0IEVWUF9NRCogbWQgPSBkaWdlc3RBbGdvcml0aG0ocGFyYW1ldGVycy5oYXNoSWRlbnRp
Zmllcik7CisgICAgaWYgKCFtZCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBv
cnRlZEVycm9yIH07CisKKyAgICBzdGQ6Om9wdGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4gZGlnZXN0
ID0gY2FsY3VsYXRlRGlnZXN0KG1kLCBkYXRhKTsKKyAgICBpZiAoIWRpZ2VzdCkKKyAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVycm9yIH07CisKKyAgICBFQ19LRVkqIGVjS2V5
ID0gRVZQX1BLRVlfZ2V0MF9FQ19LRVkoa2V5LnBsYXRmb3JtS2V5KCkpOworICAgIGlmICghZWNL
ZXkpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciB9OworCisgICAg
Ly8gV2UgdXNlIEVDRFNBX2RvX3NpZ24gcmF0aGVyIHRoYW4gRVZQIEFQSSBiZWNhdXNlIHRoZSBs
YXR0ZXIgaGFuZGxlcyBFQ0RTQSBzaWduYXR1cmUgaW4gREVSIGZvcm1hdAorICAgIC8vIHdoaWxl
IHRoaXMgZnVuY3Rpb24gaXMgc3VwcG9zZWQgdG8gcmV0dXJuIHNpbXBseSBjb25jYXRpbmF0ZWQg
InIiIGFuZCAicyIuCisgICAgYXV0byBzaWcgPSBFQ0RTQVNpZ1B0cihFQ0RTQV9kb19zaWduKGRp
Z2VzdC0+ZGF0YSgpLCBkaWdlc3QtPnNpemUoKSwgZWNLZXkpKTsKKyAgICBpZiAoIXNpZykKKyAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVycm9yIH07CisKKyAgICBjb25zdCBC
SUdOVU0qIHI7CisgICAgY29uc3QgQklHTlVNKiBzOworICAgIEVDRFNBX1NJR19nZXQwKHNpZy5n
ZXQoKSwgJnIsICZzKTsKKworICAgIC8vIENvbmNhdGVuYXRlIHIgYW5kIHMsIGV4cGFuZGluZyBy
IGFuZCBzIHRvIGtleVNpemVJbkJ5dGVzLgorICAgIFZlY3Rvcjx1aW50OF90PiBzaWduYXR1cmUg
PSBjb252ZXJ0VG9CeXRlc0V4cGFuZChyLCBrZXlTaXplSW5CeXRlcyk7CisgICAgc2lnbmF0dXJl
LmFwcGVuZFZlY3Rvcihjb252ZXJ0VG9CeXRlc0V4cGFuZChzLCBrZXlTaXplSW5CeXRlcykpOwor
CisgICAgcmV0dXJuIHNpZ25hdHVyZTsKIH0KIAotRXhjZXB0aW9uT3I8Ym9vbD4gQ3J5cHRvQWxn
b3JpdGhtRUNEU0E6OnBsYXRmb3JtVmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobUVjZHNhUGFy
YW1zJiwgY29uc3QgQ3J5cHRvS2V5RUMmLCBjb25zdCBWZWN0b3I8dWludDhfdD4mLCBjb25zdCBW
ZWN0b3I8dWludDhfdD4mKQorRXhjZXB0aW9uT3I8Ym9vbD4gQ3J5cHRvQWxnb3JpdGhtRUNEU0E6
OnBsYXRmb3JtVmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobUVjZHNhUGFyYW1zJiBwYXJhbWV0
ZXJzLCBjb25zdCBDcnlwdG9LZXlFQyYga2V5LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIHNpZ25h
dHVyZSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBkYXRhKQogewotICAgIG5vdEltcGxlbWVudGVk
KCk7Ci0gICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yIH07CisgICAgc2l6
ZV90IGtleVNpemVJbkJ5dGVzID0gKGtleS5rZXlTaXplSW5CaXRzKCkgKyA3KSAvIDg7CisKKyAg
ICAvLyBCYWlsIGlmIHRoZSBzaWduYXR1cmUgc2l6ZSBpc24ndCBkb3VibGUgdGhlIGtleSBzaXpl
IChpLmUuIGNvbmNhdGVuYXRlZCByIGFuZCBzIGNvbXBvbmVudHMpLgorICAgIGlmIChzaWduYXR1
cmUuc2l6ZSgpICE9IGtleVNpemVJbkJ5dGVzICogMikKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIAorICAgIGF1dG8gc2lnID0gRUNEU0FTaWdQdHIoRUNEU0FfU0lHX25ldygpKTsKKyAgICBz
aWctPnIgPSBCTl9iaW4yYm4oc2lnbmF0dXJlLmRhdGEoKSwga2V5U2l6ZUluQnl0ZXMsIHNpZy0+
cik7CisgICAgc2lnLT5zID0gQk5fYmluMmJuKHNpZ25hdHVyZS5kYXRhKCkgKyBrZXlTaXplSW5C
eXRlcywga2V5U2l6ZUluQnl0ZXMsIHNpZy0+cyk7CisKKyAgICBjb25zdCBFVlBfTUQqIG1kID0g
ZGlnZXN0QWxnb3JpdGhtKHBhcmFtZXRlcnMuaGFzaElkZW50aWZpZXIpOworICAgIGlmICghbWQp
CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciB9OworCisgICAg
c3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhfdD4+IGRpZ2VzdCA9IGNhbGN1bGF0ZURpZ2VzdCht
ZCwgZGF0YSk7CisgICAgaWYgKCFkaWdlc3QpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBP
cGVyYXRpb25FcnJvciB9OworCisgICAgRUNfS0VZKiBlY0tleSA9IEVWUF9QS0VZX2dldDBfRUNf
S0VZKGtleS5wbGF0Zm9ybUtleSgpKTsKKyAgICBpZiAoIWVjS2V5KQorICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IgfTsKKworICAgIGludCByZXQgPSBFQ0RTQV9kb192
ZXJpZnkoZGlnZXN0LT5kYXRhKCksIGRpZ2VzdC0+c2l6ZSgpLCBzaWcuZ2V0KCksIGVjS2V5KTsK
KyAgICByZXR1cm4gcmV0ID09IDE7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9vcGVuc3NsL0NyeXB0b0FsZ29yaXRobVJlZ2lz
dHJ5T3BlblNTTC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vb3BlbnNzbC9DcnlwdG9BbGdv
cml0aG1SZWdpc3RyeU9wZW5TU0wuY3BwCmluZGV4IDk1MWYxYTI5MjhhMmZmOTJiMjEyMTA3NTY2
NTM1ZDlhNjdkMTU0ZDQuLjQzM2Q4NGVlN2RlNTJjZWM5ZjIwYjFjNWNjYjFiYzg2ZDkxZGQ3YmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9vcGVuc3NsL0NyeXB0b0FsZ29yaXRo
bVJlZ2lzdHJ5T3BlblNTTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL29wZW5zc2wv
Q3J5cHRvQWxnb3JpdGhtUmVnaXN0cnlPcGVuU1NMLmNwcApAQCAtMzMsNiArMzMsOCBAQAogI2lu
Y2x1ZGUgIkNyeXB0b0FsZ29yaXRobUFFU19DVFIuaCIKICNpbmNsdWRlICJDcnlwdG9BbGdvcml0
aG1BRVNfR0NNLmgiCiAjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmgiCisjaW5jbHVk
ZSAiQ3J5cHRvQWxnb3JpdGhtRUNESC5oIgorI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUVDRFNB
LmgiCiAjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSE1BQy5oIgogI2luY2x1ZGUgIkNyeXB0b0Fs
Z29yaXRobVJTQUVTX1BLQ1MxX3YxXzUuaCIKICNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1SU0FT
U0FfUEtDUzFfdjFfNS5oIgpAQCAtNTMsNiArNTUsOCBAQCB2b2lkIENyeXB0b0FsZ29yaXRobVJl
Z2lzdHJ5OjpwbGF0Zm9ybVJlZ2lzdGVyQWxnb3JpdGhtcygpCiAgICAgcmVnaXN0ZXJBbGdvcml0
aG08Q3J5cHRvQWxnb3JpdGhtQUVTX0NUUj4oKTsKICAgICByZWdpc3RlckFsZ29yaXRobTxDcnlw
dG9BbGdvcml0aG1BRVNfR0NNPigpOwogICAgIHJlZ2lzdGVyQWxnb3JpdGhtPENyeXB0b0FsZ29y
aXRobUFFU19LVz4oKTsKKyAgICByZWdpc3RlckFsZ29yaXRobTxDcnlwdG9BbGdvcml0aG1FQ0RI
PigpOworICAgIHJlZ2lzdGVyQWxnb3JpdGhtPENyeXB0b0FsZ29yaXRobUVDRFNBPigpOwogICAg
IHJlZ2lzdGVyQWxnb3JpdGhtPENyeXB0b0FsZ29yaXRobUhNQUM+KCk7CiAgICAgcmVnaXN0ZXJB
bGdvcml0aG08Q3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNT4oKTsKICAgICByZWdpc3Rl
ckFsZ29yaXRobTxDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNT4oKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9vcGVuc3NsL0NyeXB0b0tleUVDT3BlblNTTC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vb3BlbnNzbC9DcnlwdG9LZXlFQ09wZW5TU0wuY3BwCmlu
ZGV4IGYzMTFlZDNiNmZkY2M3ODQ4OWRkZjhhM2YwMmI5M2RiNTE0YzcwNjUuLmYzYjJmOWQxZGY1
ODc5NDQ2NTNmMjM3NjljYmIwZjY0MDU3YTgxZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9vcGVuc3NsL0NyeXB0b0tleUVDT3BlblNTTC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL29wZW5zc2wvQ3J5cHRvS2V5RUNPcGVuU1NMLmNwcApAQCAtMjgsOTQgKzI4LDQz
NSBAQAogCiAjaWYgRU5BQkxFKFdFQl9DUllQVE8pCiAKLSNpbmNsdWRlICJOb3RJbXBsZW1lbnRl
ZC5oIgorI2luY2x1ZGUgIkpzb25XZWJLZXkuaCIKKyNpbmNsdWRlICJPcGVuU1NMVXRpbGl0aWVz
LmgiCisjaW5jbHVkZSA8d3RmL3RleHQvQmFzZTY0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotc2l6ZV90IENyeXB0b0tleUVDOjprZXlTaXplSW5CaXRzKCkgY29uc3QKK3N0YXRpYyBpbnQg
Y3VydmVJZGVudGlmaWVyKENyeXB0b0tleUVDOjpOYW1lZEN1cnZlIGN1cnZlKQoreworICAgIHN3
aXRjaCAoY3VydmUpIHsKKyAgICBjYXNlIENyeXB0b0tleUVDOjpOYW1lZEN1cnZlOjpQMjU2Ogor
ICAgICAgICByZXR1cm4gTklEX1g5XzYyX3ByaW1lMjU2djE7CisgICAgY2FzZSBDcnlwdG9LZXlF
Qzo6TmFtZWRDdXJ2ZTo6UDM4NDoKKyAgICAgICAgcmV0dXJuIE5JRF9zZWNwMzg0cjE7CisgICAg
Y2FzZSBDcnlwdG9LZXlFQzo6TmFtZWRDdXJ2ZTo6UDUyMToKKyAgICAgICAgcmV0dXJuIE5JRF9z
ZWNwNTIxcjE7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJu
IE5JRF91bmRlZjsKK30KKworc3RhdGljIHNpemVfdCBjdXJ2ZVNpemUoQ3J5cHRvS2V5RUM6Ok5h
bWVkQ3VydmUgY3VydmUpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBzd2l0Y2ggKGN1
cnZlKSB7CisgICAgY2FzZSBDcnlwdG9LZXlFQzo6TmFtZWRDdXJ2ZTo6UDI1NjoKKyAgICAgICAg
cmV0dXJuIDI1NjsKKyAgICBjYXNlIENyeXB0b0tleUVDOjpOYW1lZEN1cnZlOjpQMzg0OgorICAg
ICAgICByZXR1cm4gMzg0OworICAgIGNhc2UgQ3J5cHRvS2V5RUM6Ok5hbWVkQ3VydmU6OlA1MjE6
CisgICAgICAgIHJldHVybiA1MjE7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgcmV0dXJuIDA7CiB9CiAKLWJvb2wgQ3J5cHRvS2V5RUM6OnBsYXRmb3JtU3VwcG9ydGVk
Q3VydmUoTmFtZWRDdXJ2ZSkKK3N0YXRpYyBFQ0tleVB0ciBjcmVhdGVFQ0tleShDcnlwdG9LZXlF
Qzo6TmFtZWRDdXJ2ZSBjdXJ2ZSkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVy
biBmYWxzZTsKKyAgICBhdXRvIGtleSA9IEVDS2V5UHRyKEVDX0tFWV9uZXdfYnlfY3VydmVfbmFt
ZShjdXJ2ZUlkZW50aWZpZXIoY3VydmUpKSk7CisgICAgaWYgKGtleSkgeworICAgICAgICAvLyBP
UEVOU1NMX0VDX05BTUVEX0NVUlZFIG5lZWRzIHRvIGJlIHNldCB0byBleHBvcnQgdGhlIGtleSB3
aXRoIHRoZSBjdXJ2ZSBuYW1lLCBub3Qgd2l0aCB0aGUgY3VydmUgcGFyYW1ldGVycy4KKyAgICAg
ICAgRUNfS0VZX3NldF9hc24xX2ZsYWcoa2V5LmdldCgpLCBPUEVOU1NMX0VDX05BTUVEX0NVUlZF
KTsKKyAgICB9CisgICAgcmV0dXJuIGtleTsKK30KKworLy8gVGhpcyBmdW5jdGlvbiB2ZXJpZmll
cyB0aGF0IHRoZSBncm91cCByZXByZXNlbnRzIHRoZSBuYW1lZCBjdXJ2ZS4KK3N0YXRpYyBib29s
IHZlcmlmeUN1cnZlKGNvbnN0IEVDX0dST1VQKiBncm91cCwgQ3J5cHRvS2V5RUM6Ok5hbWVkQ3Vy
dmUgY3VydmUpCit7CisgICAgaWYgKCFncm91cCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgYXV0byBrZXkgPSBjcmVhdGVFQ0tleShjdXJ2ZSk7CisgICAgaWYgKCFrZXkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiAhRUNfR1JPVVBfY21wKGdyb3VwLCBFQ19LRVlf
Z2V0MF9ncm91cChrZXkuZ2V0KCkpLCBudWxscHRyKTsKK30KKworc2l6ZV90IENyeXB0b0tleUVD
OjprZXlTaXplSW5CaXRzKCkgY29uc3QKK3sKKyAgICAvLyBFVlBfUEtFWV9zaXplKCkgcmV0dXJu
cyB0aGUgc2l6ZSBvZiBERVItZW5jb2RlZCBrZXkgYW5kIGNhbm5vdCBiZSB1c2VkIGZvciB0aGlz
IGZ1bmN0aW9uJ3MgcHVycG9zZS4KKyAgICAvLyBJbnN0ZWFkIHdlIHJlc29sdmUgdGhlIGtleSBz
aXplIGJ5IENyeXB0b0tleUVDOjpOYW1lZEN1cnZlLgorICAgIHNpemVfdCBzaXplID0gY3VydmVT
aXplKG1fY3VydmUpOworICAgIHJldHVybiBzaXplOworfQorCitib29sIENyeXB0b0tleUVDOjpw
bGF0Zm9ybVN1cHBvcnRlZEN1cnZlKE5hbWVkQ3VydmUgY3VydmUpCit7CisgICAgcmV0dXJuIGN1
cnZlID09IE5hbWVkQ3VydmU6OlAyNTYgfHwgY3VydmUgPT0gTmFtZWRDdXJ2ZTo6UDM4NCB8fCBj
dXJ2ZSA9PSBOYW1lZEN1cnZlOjpQNTIxOworfQorCitzdGQ6Om9wdGlvbmFsPENyeXB0b0tleVBh
aXI+IENyeXB0b0tleUVDOjpwbGF0Zm9ybUdlbmVyYXRlUGFpcihDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyIGlkZW50aWZpZXIsIE5hbWVkQ3VydmUgY3VydmUsIGJvb2wgZXh0cmFjdGFibGUsIENy
eXB0b0tleVVzYWdlQml0bWFwIHVzYWdlcykKK3sKKyAgICAvLyBUbyBnZW5lcmF0ZSBhIGtleSBw
YWlyLCB3ZSBnZW5lcmF0ZSBhIHByaXZhdGUga2V5IGFuZCBleHRyYWN0IHRoZSBwdWJsaWMga2V5
IGZyb20gdGhlIHByaXZhdGUga2V5LgorICAgIGF1dG8gcHJpdmF0ZUVDS2V5ID0gY3JlYXRlRUNL
ZXkoY3VydmUpOworICAgIGlmICghcHJpdmF0ZUVDS2V5KQorICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgaWYgKEVDX0tFWV9nZW5lcmF0ZV9rZXkocHJpdmF0ZUVDS2V5LmdldCgp
KSA8PSAwKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgYXV0byBwb2ludCA9
IEVDUG9pbnRQdHIoRUNfUE9JTlRfZHVwKEVDX0tFWV9nZXQwX3B1YmxpY19rZXkocHJpdmF0ZUVD
S2V5LmdldCgpKSwgRUNfS0VZX2dldDBfZ3JvdXAocHJpdmF0ZUVDS2V5LmdldCgpKSkpOworICAg
IGlmICghcG9pbnQpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBhdXRvIHB1
YmxpY0VDS2V5ID0gY3JlYXRlRUNLZXkoY3VydmUpOworICAgIGlmICghcHVibGljRUNLZXkpCisg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBpZiAoRUNfS0VZX3NldF9wdWJsaWNf
a2V5KHB1YmxpY0VDS2V5LmdldCgpLCBwb2ludC5nZXQoKSkgPD0gMCkKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgIGF1dG8gcHJpdmF0ZVBLZXkgPSBFdnBQS2V5UHRyKEVWUF9Q
S0VZX25ldygpKTsKKyAgICBpZiAoRVZQX1BLRVlfc2V0MV9FQ19LRVkocHJpdmF0ZVBLZXkuZ2V0
KCksIHByaXZhdGVFQ0tleS5nZXQoKSkgPD0gMCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKKworICAgIGF1dG8gcHVibGljUEtleSA9IEV2cFBLZXlQdHIoRVZQX1BLRVlfbmV3KCkpOwor
ICAgIGlmIChFVlBfUEtFWV9zZXQxX0VDX0tFWShwdWJsaWNQS2V5LmdldCgpLCBwdWJsaWNFQ0tl
eS5nZXQoKSkgPD0gMCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGF1dG8g
cHVibGljS2V5ID0gQ3J5cHRvS2V5RUM6OmNyZWF0ZShpZGVudGlmaWVyLCBjdXJ2ZSwgQ3J5cHRv
S2V5VHlwZTo6UHVibGljLCBXVEZNb3ZlKHB1YmxpY1BLZXkpLCB0cnVlLCB1c2FnZXMpOworICAg
IGF1dG8gcHJpdmF0ZUtleSA9IENyeXB0b0tleUVDOjpjcmVhdGUoaWRlbnRpZmllciwgY3VydmUs
IENyeXB0b0tleVR5cGU6OlByaXZhdGUsIFdURk1vdmUocHJpdmF0ZVBLZXkpLCBleHRyYWN0YWJs
ZSwgdXNhZ2VzKTsKKyAgICByZXR1cm4gQ3J5cHRvS2V5UGFpciB7IFdURk1vdmUocHVibGljS2V5
KSwgV1RGTW92ZShwcml2YXRlS2V5KSB9OwogfQogCi1zdGQ6Om9wdGlvbmFsPENyeXB0b0tleVBh
aXI+IENyeXB0b0tleUVDOjpwbGF0Zm9ybUdlbmVyYXRlUGFpcihDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyLCBOYW1lZEN1cnZlLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1h
cCkKK1JlZlB0cjxDcnlwdG9LZXlFQz4gQ3J5cHRvS2V5RUM6OnBsYXRmb3JtSW1wb3J0UmF3KENy
eXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmllciwgTmFtZWRDdXJ2ZSBjdXJ2ZSwgVmVj
dG9yPHVpbnQ4X3Q+JiYga2V5RGF0YSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNhZ2VC
aXRtYXAgdXNhZ2VzKQogewotICAgIFVOVVNFRF9QQVJBTShleHRyYWN0YWJsZSk7Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4geyB9OworICAgIGF1dG8ga2V5ID0gY3JlYXRlRUNL
ZXkoY3VydmUpOworICAgIGlmICgha2V5KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAg
IGF1dG8gZ3JvdXAgPSBFQ19LRVlfZ2V0MF9ncm91cChrZXkuZ2V0KCkpOworICAgIGF1dG8gcG9p
bnQgPSBFQ1BvaW50UHRyKEVDX1BPSU5UX25ldyhncm91cCkpOworICAgIC8vIExvYWQgYW4gRUMg
cG9pbnQgZnJvbSB0aGUga2V5RGF0YS4gVGhpcyBwb2ludCBpcyB1c2VkIGFzIGEgcHVibGljIGtl
eS4KKyAgICBpZiAoRUNfUE9JTlRfb2N0MnBvaW50KGdyb3VwLCBwb2ludC5nZXQoKSwga2V5RGF0
YS5kYXRhKCksIGtleURhdGEuc2l6ZSgpLCBudWxscHRyKSA8PSAwKQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKworICAgIGlmIChFQ19LRVlfc2V0X3B1YmxpY19rZXkoa2V5LmdldCgpLCBwb2lu
dC5nZXQoKSkgPD0gMCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoRUNfS0VZ
X2NoZWNrX2tleShrZXkuZ2V0KCkpIDw9IDApCisgICAgICAgIHJldHVybiBudWxscHRyOworCisg
ICAgYXV0byBwa2V5ID0gRXZwUEtleVB0cihFVlBfUEtFWV9uZXcoKSk7CisgICAgaWYgKEVWUF9Q
S0VZX3NldDFfRUNfS0VZKHBrZXkuZ2V0KCksIGtleS5nZXQoKSkgPD0gMCkKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4gY3JlYXRlKGlkZW50aWZpZXIsIGN1cnZlLCBDcnlw
dG9LZXlUeXBlOjpQdWJsaWMsIFdURk1vdmUocGtleSksIGV4dHJhY3RhYmxlLCB1c2FnZXMpOwog
fQogCi1SZWZQdHI8Q3J5cHRvS2V5RUM+IENyeXB0b0tleUVDOjpwbGF0Zm9ybUltcG9ydFJhdyhD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLCBOYW1lZEN1cnZlLCBWZWN0b3I8dWludDhfdD4mJiBr
ZXlEYXRhLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCkKK1JlZlB0cjxD
cnlwdG9LZXlFQz4gQ3J5cHRvS2V5RUM6OnBsYXRmb3JtSW1wb3J0SldLUHVibGljKENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmllciwgTmFtZWRDdXJ2ZSBjdXJ2ZSwgVmVjdG9yPHVp
bnQ4X3Q+JiYgeCwgVmVjdG9yPHVpbnQ4X3Q+JiYgeSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRv
S2V5VXNhZ2VCaXRtYXAgdXNhZ2VzKQogewotICAgIFVOVVNFRF9QQVJBTShrZXlEYXRhKTsKLSAg
ICBVTlVTRURfUEFSQU0oZXh0cmFjdGFibGUpOwotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAg
cmV0dXJuIG51bGxwdHI7CisgICAgYXV0byBrZXkgPSBjcmVhdGVFQ0tleShjdXJ2ZSk7CisgICAg
aWYgKCFrZXkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgYXV0byBncm91cCA9IEVD
X0tFWV9nZXQwX2dyb3VwKGtleS5nZXQoKSk7CisgICAgYXV0byBwb2ludCA9IEVDUG9pbnRQdHIo
RUNfUE9JTlRfbmV3KGdyb3VwKSk7CisKKyAgICAvLyBDdXJyZW50bHkgd2Ugb25seSBzdXBwb3J0
IGVsbGlwdGljIGN1cnZlcyBvdmVyIEdGKHApLiAgIAorICAgIGlmIChFQ19QT0lOVF9zZXRfYWZm
aW5lX2Nvb3JkaW5hdGVzX0dGcChncm91cCwgcG9pbnQuZ2V0KCksIEJJR05VTVB0cihjb252ZXJ0
VG9CaWdOdW1iZXIobnVsbHB0ciwgeCkpLmdldCgpLCBCSUdOVU1QdHIoY29udmVydFRvQmlnTnVt
YmVyKG51bGxwdHIsIHkpKS5nZXQoKSwgbnVsbHB0cikgPD0gMCkKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisKKyAgICBpZiAoRUNfS0VZX3NldF9wdWJsaWNfa2V5KGtleS5nZXQoKSwgcG9pbnQu
Z2V0KCkpIDw9IDApCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKEVDX0tFWV9j
aGVja19rZXkoa2V5LmdldCgpKSA8PSAwKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAg
IGF1dG8gcGtleSA9IEV2cFBLZXlQdHIoRVZQX1BLRVlfbmV3KCkpOworICAgIGlmIChFVlBfUEtF
WV9zZXQxX0VDX0tFWShwa2V5LmdldCgpLCBrZXkuZ2V0KCkpIDw9IDApCisgICAgICAgIHJldHVy
biBudWxscHRyOworCisgICAgcmV0dXJuIGNyZWF0ZShpZGVudGlmaWVyLCBjdXJ2ZSwgQ3J5cHRv
S2V5VHlwZTo6UHVibGljLCBXVEZNb3ZlKHBrZXkpLCBleHRyYWN0YWJsZSwgdXNhZ2VzKTsKIH0K
IAotUmVmUHRyPENyeXB0b0tleUVDPiBDcnlwdG9LZXlFQzo6cGxhdGZvcm1JbXBvcnRKV0tQdWJs
aWMoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgTmFtZWRDdXJ2ZSwgVmVjdG9yPHVpbnQ4X3Q+
JiYgeCwgVmVjdG9yPHVpbnQ4X3Q+JiYgeSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5cHRvS2V5VXNh
Z2VCaXRtYXApCitSZWZQdHI8Q3J5cHRvS2V5RUM+IENyeXB0b0tleUVDOjpwbGF0Zm9ybUltcG9y
dEpXS1ByaXZhdGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBpZGVudGlmaWVyLCBOYW1lZEN1
cnZlIGN1cnZlLCBWZWN0b3I8dWludDhfdD4mJiB4LCBWZWN0b3I8dWludDhfdD4mJiB5LCBWZWN0
b3I8dWludDhfdD4mJiBkLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCB1
c2FnZXMpCiB7Ci0gICAgVU5VU0VEX1BBUkFNKHgpOwotICAgIFVOVVNFRF9QQVJBTSh5KTsKLSAg
ICBVTlVTRURfUEFSQU0oZXh0cmFjdGFibGUpOwotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAg
cmV0dXJuIG51bGxwdHI7CisgICAgYXV0byBrZXkgPSBjcmVhdGVFQ0tleShjdXJ2ZSk7CisgICAg
aWYgKCFrZXkpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgYXV0byBncm91cCA9IEVD
X0tFWV9nZXQwX2dyb3VwKGtleS5nZXQoKSk7CisgICAgYXV0byBwb2ludCA9IEVDUG9pbnRQdHIo
RUNfUE9JTlRfbmV3KGdyb3VwKSk7CisKKyAgICAvLyBDdXJyZW50bHkgd2Ugb25seSBzdXBwb3J0
IGVsbGlwdGljIGN1cnZlcyBvdmVyIEdGKHApLiAgIAorICAgIGlmIChFQ19QT0lOVF9zZXRfYWZm
aW5lX2Nvb3JkaW5hdGVzX0dGcChncm91cCwgcG9pbnQuZ2V0KCksIEJJR05VTVB0cihjb252ZXJ0
VG9CaWdOdW1iZXIobnVsbHB0ciwgeCkpLmdldCgpLCBCSUdOVU1QdHIoY29udmVydFRvQmlnTnVt
YmVyKG51bGxwdHIsIHkpKS5nZXQoKSwgbnVsbHB0cikgPD0gMCkKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisKKyAgICBpZiAoRUNfS0VZX3NldF9wdWJsaWNfa2V5KGtleS5nZXQoKSwgcG9pbnQu
Z2V0KCkpIDw9IDApCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKEVDX0tFWV9z
ZXRfcHJpdmF0ZV9rZXkoa2V5LmdldCgpLCBCSUdOVU1QdHIoY29udmVydFRvQmlnTnVtYmVyKG51
bGxwdHIsIGQpKS5nZXQoKSkgPD0gMCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBp
ZiAoRUNfS0VZX2NoZWNrX2tleShrZXkuZ2V0KCkpIDw9IDApCisgICAgICAgIHJldHVybiBudWxs
cHRyOworCisgICAgYXV0byBwa2V5ID0gRXZwUEtleVB0cihFVlBfUEtFWV9uZXcoKSk7CisgICAg
aWYgKEVWUF9QS0VZX3NldDFfRUNfS0VZKHBrZXkuZ2V0KCksIGtleS5nZXQoKSkgPD0gMCkKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4gY3JlYXRlKGlkZW50aWZpZXIsIGN1
cnZlLCBDcnlwdG9LZXlUeXBlOjpQcml2YXRlLCBXVEZNb3ZlKHBrZXkpLCBleHRyYWN0YWJsZSwg
dXNhZ2VzKTsKIH0KIAotUmVmUHRyPENyeXB0b0tleUVDPiBDcnlwdG9LZXlFQzo6cGxhdGZvcm1J
bXBvcnRKV0tQcml2YXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIsIE5hbWVkQ3VydmUsIFZl
Y3Rvcjx1aW50OF90PiYmIHgsIFZlY3Rvcjx1aW50OF90PiYmIHksIFZlY3Rvcjx1aW50OF90PiYm
IGQsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlQml0bWFwKQorc3RhdGljIGNvbnN0
IEFTTjFfT0JKRUNUKiBlY1B1YmxpY0tleUlkZW50aWZpZXIoKQogewotICAgIFVOVVNFRF9QQVJB
TSh4KTsKLSAgICBVTlVTRURfUEFSQU0oeSk7Ci0gICAgVU5VU0VEX1BBUkFNKGQpOwotICAgIFVO
VVNFRF9QQVJBTShleHRyYWN0YWJsZSk7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICBzdGF0aWMgQVNOMV9PQkpFQ1QqIG9pZCA9IE9CSl90eHQyb2JqKCIx
LjIuODQwLjEwMDQ1LjIuMSIsIDEpOworICAgIHJldHVybiBvaWQ7CiB9CiAKLVJlZlB0cjxDcnlw
dG9LZXlFQz4gQ3J5cHRvS2V5RUM6OnBsYXRmb3JtSW1wb3J0U3BraShDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyLCBOYW1lZEN1cnZlLCBWZWN0b3I8dWludDhfdD4mJiBrZXlEYXRhLCBib29sIGV4
dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCkKK3N0YXRpYyBjb25zdCBBU04xX09CSkVD
VCogZWNESElkZW50aWZpZXIoKQogewotICAgIFVOVVNFRF9QQVJBTShrZXlEYXRhKTsKLSAgICBV
TlVTRURfUEFSQU0oZXh0cmFjdGFibGUpOwotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0
dXJuIG51bGxwdHI7CisgICAgc3RhdGljIEFTTjFfT0JKRUNUKiBvaWQgPSBPQkpfdHh0Mm9iaigi
MS4zLjEzMi4xLjEyIiwgMSk7CisgICAgcmV0dXJuIG9pZDsKIH0KIAotUmVmUHRyPENyeXB0b0tl
eUVDPiBDcnlwdG9LZXlFQzo6cGxhdGZvcm1JbXBvcnRQa2NzOChDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyLCBOYW1lZEN1cnZlLCBWZWN0b3I8dWludDhfdD4mJiBrZXlEYXRhLCBib29sIGV4dHJh
Y3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCkKK3N0YXRpYyBib29sIHN1cHBvcnRlZEFsZ29y
aXRobUlkZW50aWZpZXIoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25z
dCBBU04xX09CSkVDVCogb2lkKQogewotICAgIFVOVVNFRF9QQVJBTShrZXlEYXRhKTsKLSAgICBV
TlVTRURfUEFSQU0oZXh0cmFjdGFibGUpOwotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0
dXJuIG51bGxwdHI7CisgICAgc3dpdGNoIChpZGVudGlmaWVyKSB7CisgICAgY2FzZSBDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyOjpFQ0RTQToKKyAgICAgICAgLy8gRUNEU0Egb25seSBzdXBwb3J0
cyBpZC1lY1B1YmxpY0tleSBhbGdvcml0aG1zIGZvciBpbXBvcnRlZCBrZXlzLgorICAgICAgICBp
ZiAoIU9CSl9jbXAob2lkLCBlY1B1YmxpY0tleUlkZW50aWZpZXIoKSkpCisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllcjo6RUNESDoKKyAgICAgICAgLy8gRUNESCBzdXBwb3J0cyBib3RoIGlkLWVj
UHVibGljS2V5IGFuZCBpZC1lY0RIIGFsZ29yaXRobXMgZm9yIGltcG9ydGVkIGtleXMuCisgICAg
ICAgIGlmICghT0JKX2NtcChvaWQsIGVjUHVibGljS2V5SWRlbnRpZmllcigpKSkKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAoIU9CSl9jbXAob2lkLCBlY0RISWRlbnRpZmll
cigpKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9Cit9CisKK1JlZlB0cjxDcnlwdG9LZXlFQz4gQ3J5cHRvS2V5RUM6OnBs
YXRmb3JtSW1wb3J0U3BraShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIsIE5h
bWVkQ3VydmUgY3VydmUsIFZlY3Rvcjx1aW50OF90PiYmIGtleURhdGEsIGJvb2wgZXh0cmFjdGFi
bGUsIENyeXB0b0tleVVzYWdlQml0bWFwIHVzYWdlcykKK3sKKyAgICAvLyBJbiB0aGlzIGZ1bmN0
aW9uIHdlIGV4dHJhY3QgdGhlIHN1YmplY3RQdWJsaWNLZXkgYWZ0ZXIgdmVyaWZ5aW5nIHRoYXQg
dGhlIGFsZ29yaXRobSBpbiB0aGUgU1BLSSBkYXRhCisgICAgLy8gbWF0Y2ggdGhlIGdpdmVuIGlk
ZW50aWZpZXIgYW5kIGN1cnZlLiBUaGVuIGNvbnN0cnVjdCBhbiBFQyBrZXkgd2l0aCB0aGUgbmFt
ZWQgY3VydmUgYW5kIHNldCB0aGUgcHVibGljIGtleS4KKworICAgIC8vIFN1YmplY3RQdWJsaWNL
ZXlJbmZvICA6Oj0gIFNFUVVFTkNFICB7CisgICAgLy8gICBhbGdvcml0aG0gICAgICAgICBBbGdv
cml0aG1JZGVudGlmaWVyLAorICAgIC8vICAgc3ViamVjdFB1YmxpY0tleSAgQklUIFNUUklORwor
ICAgIC8vIH0KKworICAgIGNvbnN0IHVpbnQ4X3QqIHB0ciA9IGtleURhdGEuZGF0YSgpOworICAg
IGF1dG8gc3ViamVjdFB1YmxpY0tleUluZm8gPSBBU04xU2VxdWVuY2VQdHIoZDJpX0FTTjFfU0VR
VUVOQ0VfQU5ZKG51bGxwdHIsICZwdHIsIGtleURhdGEuc2l6ZSgpKSk7CisgICAgaWYgKCFzdWJq
ZWN0UHVibGljS2V5SW5mbykKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKHB0ciAt
IGtleURhdGEuZGF0YSgpICE9IChwdHJkaWZmX3Qpa2V5RGF0YS5zaXplKCkpCisgICAgICAgIHJl
dHVybiBudWxscHRyOworCisgICAgaWYgKHNrX0FTTjFfVFlQRV9udW0oc3ViamVjdFB1YmxpY0tl
eUluZm8uZ2V0KCkpICE9IDIpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgQVNOMV9U
WVBFKiB2YWx1ZSA9IHNrX0FTTjFfVFlQRV92YWx1ZShzdWJqZWN0UHVibGljS2V5SW5mby5nZXQo
KSwgMCk7CisgICAgaWYgKHZhbHVlLT50eXBlICE9IFZfQVNOMV9TRVFVRU5DRSkKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisKKyAgICAvLyBBbGdvcml0aG1JZGVudGlmaWVyICA6Oj0gIFNFUVVF
TkNFICB7CisgICAgLy8gICAgIGFsZ29yaXRobSAgIE9CSkVDVCBJREVOVElGSUVSLAorICAgIC8v
ICAgICBwYXJhbWV0ZXJzICBBTlkgREVGSU5FRCBCWSBhbGdvcml0aG0gT1BUSU9OQUwKKyAgICAv
LyB9CisKKyAgICBwdHIgPSB2YWx1ZS0+dmFsdWUuc2VxdWVuY2UtPmRhdGE7CisgICAgYXV0byBh
bGdvcml0aG0gPSBBU04xU2VxdWVuY2VQdHIoZDJpX0FTTjFfU0VRVUVOQ0VfQU5ZKG51bGxwdHIs
ICZwdHIsIHZhbHVlLT52YWx1ZS5zZXF1ZW5jZS0+bGVuZ3RoKSk7CisgICAgaWYgKCFhbGdvcml0
aG0pCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKHNrX0FTTjFfVFlQRV9udW0o
YWxnb3JpdGhtLmdldCgpKSAhPSAyKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHZh
bHVlID0gc2tfQVNOMV9UWVBFX3ZhbHVlKGFsZ29yaXRobS5nZXQoKSwgMCk7CisgICAgaWYgKHZh
bHVlLT50eXBlICE9IFZfQVNOMV9PQkpFQ1QpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IAorICAgIGlmICghc3VwcG9ydGVkQWxnb3JpdGhtSWRlbnRpZmllcihpZGVudGlmaWVyLCB2YWx1
ZS0+dmFsdWUub2JqZWN0KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICAvLyBFQ1Bh
cmFtZXRlcnMgOjo9IENIT0lDRSB7CisgICAgLy8gIG5hbWVkQ3VydmUgICAgICAgICBPQkpFQ1Qg
SURFTlRJRklFUgorICAgIC8vICAtLSBpbXBsaWNpdEN1cnZlICAgbnVsbAorICAgIC8vICAtLSBz
cGVjaWZpZWRDdXJ2ZSAgU3BlY2lmaWVkRUNEb21haW4KKyAgICAvLyB9CisgICAgLy8KKyAgICAv
LyBPbmx5ICJuYW1lZEN1cnZlIiBpcyBzdXBwb3J0ZWQuIAorICAgIHZhbHVlID0gc2tfQVNOMV9U
WVBFX3ZhbHVlKGFsZ29yaXRobS5nZXQoKSwgMSk7CisgICAgaWYgKHZhbHVlLT50eXBlICE9IFZf
QVNOMV9PQkpFQ1QpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaW50IGN1cnZlTklE
ID0gT0JKX29iajJuaWQodmFsdWUtPnZhbHVlLm9iamVjdCk7CisgICAgaWYgKGN1cnZlTklEICE9
IGN1cnZlSWRlbnRpZmllcihjdXJ2ZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIAor
ICAgIC8vIHN1YmplY3RQdWJsaWNLZXkgbXVzdCBiZSBhIEJJVCBTVFJJTkcuCisgICAgdmFsdWUg
PSBza19BU04xX1RZUEVfdmFsdWUoc3ViamVjdFB1YmxpY0tleUluZm8uZ2V0KCksIDEpOworICAg
IGlmICh2YWx1ZS0+dHlwZSAhPSBWX0FTTjFfQklUX1NUUklORykKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisKKyAgICBBU04xX0JJVF9TVFJJTkcqIGJpdFN0cmluZyA9IHZhbHVlLT52YWx1ZS5i
aXRfc3RyaW5nOworCisgICAgLy8gVGhlIFNQS0kgZGF0YSBoYXMgYmVlbiB2ZXJpZmllZCBhdCB0
aGlzIHBvaW50LiBXZSBwcmVwYXJlIHBsYXRmb3JtIGRhdGEgbmV4dC4KKyAgICBhdXRvIGtleSA9
IGNyZWF0ZUVDS2V5KGN1cnZlKTsKKyAgICBpZiAoIWtleSkKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisKKyAgICBhdXRvIGdyb3VwID0gRUNfS0VZX2dldDBfZ3JvdXAoa2V5LmdldCgpKTsKKyAg
ICBpZiAoIWdyb3VwKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGF1dG8gcG9pbnQg
PSBFQ1BvaW50UHRyKEVDX1BPSU5UX25ldyhncm91cCkpOworICAgIGlmICghcG9pbnQpCisgICAg
ICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKEVDX1BPSU5UX29jdDJwb2ludChncm91cCwg
cG9pbnQuZ2V0KCksIGJpdFN0cmluZy0+ZGF0YSwgYml0U3RyaW5nLT5sZW5ndGgsIDApIDw9IDAp
CisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKEVDX0tFWV9zZXRfcHVibGljX2tl
eShrZXkuZ2V0KCksIHBvaW50LmdldCgpKSA8PSAwKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KworICAgIGlmIChFQ19LRVlfY2hlY2tfa2V5KGtleS5nZXQoKSkgPD0gMCkKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisKKyAgICBFQ19LRVlfc2V0X2FzbjFfZmxhZyhrZXkuZ2V0KCksIE9QRU5T
U0xfRUNfTkFNRURfQ1VSVkUpOworCisgICAgYXV0byBwa2V5ID0gRXZwUEtleVB0cihFVlBfUEtF
WV9uZXcoKSk7CisgICAgaWYgKEVWUF9QS0VZX3NldDFfRUNfS0VZKHBrZXkuZ2V0KCksIGtleS5n
ZXQoKSkgPD0gMCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IENyeXB0b0tleUVDKGlkZW50aWZpZXIsIGN1cnZlLCBDcnlwdG9LZXlUeXBlOjpQdWJs
aWMsIFdURk1vdmUocGtleSksIGV4dHJhY3RhYmxlLCB1c2FnZXMpKTsKK30KKworUmVmUHRyPENy
eXB0b0tleUVDPiBDcnlwdG9LZXlFQzo6cGxhdGZvcm1JbXBvcnRQa2NzOChDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyIGlkZW50aWZpZXIsIE5hbWVkQ3VydmUgY3VydmUsIFZlY3Rvcjx1aW50OF90
PiYmIGtleURhdGEsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlQml0bWFwIHVzYWdl
cykKK3sKKyAgICAvLyBXZSBuZWVkIGEgbG9jYWwgcG9pbnRlciB2YXJpYWJsZSB0byBwYXNzIHRv
IGQyaSAoREVSIHRvIGludGVybmFsKSBmdW5jdGlvbnMoKS4KKyAgICBjb25zdCB1aW50OF90KiBw
dHIgPSBrZXlEYXRhLmRhdGEoKTsKKworICAgIC8vIFdlIHVzZSBkMmlfUEtDUzhfUFJJVl9LRVlf
SU5GTygpIHRvIGltcG9ydCBhIHByaXZhdGUga2V5LgorICAgIGF1dG8gcDhpbmYgPSBQS0NTOFBy
aXZLZXlJbmZvUHRyKGQyaV9QS0NTOF9QUklWX0tFWV9JTkZPKG51bGxwdHIsICZwdHIsIGtleURh
dGEuc2l6ZSgpKSk7CisgICAgaWYgKCFwOGluZikKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgaWYgKHB0ciAtIGtleURhdGEuZGF0YSgpICE9IChwdHJkaWZmX3Qpa2V5RGF0YS5zaXplKCkp
CisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgYXV0byBwa2V5ID0gRXZwUEtleVB0cihF
VlBfUEtDUzgyUEtFWShwOGluZi5nZXQoKSkpOworICAgIGlmICghcGtleSB8fCBFVlBfUEtFWV90
eXBlKHBrZXktPnR5cGUpICE9IEVWUF9QS0VZX0VDKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KworICAgIGF1dG8gZWNLZXkgPSBFVlBfUEtFWV9nZXQwX0VDX0tFWShwa2V5LmdldCgpKTsKKyAg
ICBpZiAoIWVjS2V5KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmIChFQ19LRVlf
Y2hlY2tfa2V5KGVjS2V5KSA8PSAwKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlm
ICghdmVyaWZ5Q3VydmUoRUNfS0VZX2dldDBfZ3JvdXAoZWNLZXkpLCBjdXJ2ZSkpCisgICAgICAg
IHJldHVybiBudWxscHRyOworCisgICAgRUNfS0VZX3NldF9hc24xX2ZsYWcoZWNLZXksIE9QRU5T
U0xfRUNfTkFNRURfQ1VSVkUpOworCisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBDcnlwdG9LZXlF
QyhpZGVudGlmaWVyLCBjdXJ2ZSwgQ3J5cHRvS2V5VHlwZTo6UHJpdmF0ZSwgV1RGTW92ZShwa2V5
KSwgZXh0cmFjdGFibGUsIHVzYWdlcykpOwogfQogCiBWZWN0b3I8dWludDhfdD4gQ3J5cHRvS2V5
RUM6OnBsYXRmb3JtRXhwb3J0UmF3KCkgY29uc3QKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwot
ICAgIHJldHVybiB7IH07CisgICAgRUNfS0VZKiBrZXkgPSBFVlBfUEtFWV9nZXQwX0VDX0tFWShw
bGF0Zm9ybUtleSgpKTsKKyAgICBpZiAoIWtleSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAK
KyAgICBjb25zdCBFQ19QT0lOVCogcG9pbnQgPSBFQ19LRVlfZ2V0MF9wdWJsaWNfa2V5KGtleSk7
CisgICAgY29uc3QgRUNfR1JPVVAqIGdyb3VwID0gRUNfS0VZX2dldDBfZ3JvdXAoa2V5KTsKKyAg
ICBzaXplX3Qga2V5RGF0YVNpemUgPSBFQ19QT0lOVF9wb2ludDJvY3QoZ3JvdXAsIHBvaW50LCBQ
T0lOVF9DT05WRVJTSU9OX1VOQ09NUFJFU1NFRCwgbnVsbHB0ciwgMCwgbnVsbHB0cik7CisgICAg
aWYgKCFrZXlEYXRhU2l6ZSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIFZlY3Rvcjx1aW50
OF90PiBrZXlEYXRhKGtleURhdGFTaXplKTsKKyAgICBpZiAoRUNfUE9JTlRfcG9pbnQyb2N0KGdy
b3VwLCBwb2ludCwgUE9JTlRfQ09OVkVSU0lPTl9VTkNPTVBSRVNTRUQsIGtleURhdGEuZGF0YSgp
LCBrZXlEYXRhLnNpemUoKSwgbnVsbHB0cikgIT0ga2V5RGF0YVNpemUpCisgICAgICAgIHJldHVy
biB7IH07CisKKyAgICByZXR1cm4ga2V5RGF0YTsKIH0KIAotYm9vbCBDcnlwdG9LZXlFQzo6cGxh
dGZvcm1BZGRGaWVsZEVsZW1lbnRzKEpzb25XZWJLZXkmKSBjb25zdAorYm9vbCBDcnlwdG9LZXlF
Qzo6cGxhdGZvcm1BZGRGaWVsZEVsZW1lbnRzKEpzb25XZWJLZXkmIGp3aykgY29uc3QKIHsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICBzaXplX3Qga2V5U2l6
ZUluQnl0ZXMgPSAoa2V5U2l6ZUluQml0cygpICsgNykgLyA4OworCisgICAgRUNfS0VZKiBrZXkg
PSBFVlBfUEtFWV9nZXQwX0VDX0tFWShwbGF0Zm9ybUtleSgpKTsKKyAgICBpZiAoIWtleSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgY29uc3QgRUNfUE9JTlQqIHB1YmxpY0tleSA9IEVD
X0tFWV9nZXQwX3B1YmxpY19rZXkoa2V5KTsKKyAgICBpZiAocHVibGljS2V5KSB7CisgICAgICAg
IGF1dG8gY3R4ID0gQk5DdHhQdHIoQk5fQ1RYX25ldygpKTsKKyAgICAgICAgYXV0byB4ID0gQklH
TlVNUHRyKEJOX25ldygpKTsKKyAgICAgICAgYXV0byB5ID0gQklHTlVNUHRyKEJOX25ldygpKTsK
KyAgICAgICAgaWYgKDEgPT0gRUNfUE9JTlRfZ2V0X2FmZmluZV9jb29yZGluYXRlc19HRnAoRUNf
S0VZX2dldDBfZ3JvdXAoa2V5KSwgcHVibGljS2V5LCB4LmdldCgpLCB5LmdldCgpLCBjdHguZ2V0
KCkpKSB7CisgICAgICAgICAgICBqd2sueCA9IGJhc2U2NFVSTEVuY29kZVRvU3RyaW5nKGNvbnZl
cnRUb0J5dGVzRXhwYW5kKHguZ2V0KCksIGtleVNpemVJbkJ5dGVzKSk7CisgICAgICAgICAgICBq
d2sueSA9IGJhc2U2NFVSTEVuY29kZVRvU3RyaW5nKGNvbnZlcnRUb0J5dGVzRXhwYW5kKHkuZ2V0
KCksIGtleVNpemVJbkJ5dGVzKSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAodHlwZSgp
ID09IFR5cGU6OlByaXZhdGUpIHsKKyAgICAgICAgY29uc3QgQklHTlVNKiBwcml2YXRlS2V5ID0g
RUNfS0VZX2dldDBfcHJpdmF0ZV9rZXkoa2V5KTsKKyAgICAgICAgaWYgKHByaXZhdGVLZXkpCisg
ICAgICAgICAgICBqd2suZCA9IGJhc2U2NFVSTEVuY29kZVRvU3RyaW5nKGNvbnZlcnRUb0J5dGVz
KHByaXZhdGVLZXkpKTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIFZlY3Rvcjx1aW50
OF90PiBDcnlwdG9LZXlFQzo6cGxhdGZvcm1FeHBvcnRTcGtpKCkgY29uc3QKIHsKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOwotICAgIHJldHVybiB7IH07CisgICAgaWYgKHR5cGUoKSAhPSBDcnlwdG9L
ZXlUeXBlOjpQdWJsaWMpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBpbnQgbGVuID0gaTJk
X1BVQktFWShwbGF0Zm9ybUtleSgpLCBudWxscHRyKTsKKyAgICBpZiAobGVuIDwgMCkKKyAgICAg
ICAgcmV0dXJuIHsgfTsKKworICAgIFZlY3Rvcjx1aW50OF90PiBrZXlEYXRhKGxlbik7CisgICAg
YXV0byBwdHIgPSBrZXlEYXRhLmRhdGEoKTsKKyAgICBpZiAoaTJkX1BVQktFWShwbGF0Zm9ybUtl
eSgpLCAmcHRyKSA8IDApCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICByZXR1cm4ga2V5RGF0
YTsKIH0KIAogVmVjdG9yPHVpbnQ4X3Q+IENyeXB0b0tleUVDOjpwbGF0Zm9ybUV4cG9ydFBrY3M4
KCkgY29uc3QKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiB7IH07CisgICAg
aWYgKHR5cGUoKSAhPSBDcnlwdG9LZXlUeXBlOjpQcml2YXRlKQorICAgICAgICByZXR1cm4geyB9
OworCisgICAgYXV0byBwOGluZiA9IFBLQ1M4UHJpdktleUluZm9QdHIoRVZQX1BLRVkyUEtDUzgo
cGxhdGZvcm1LZXkoKSkpOworICAgIGlmICghcDhpbmYpCisgICAgICAgIHJldHVybiB7IH07CisK
KyAgICBpbnQgbGVuID0gaTJkX1BLQ1M4X1BSSVZfS0VZX0lORk8ocDhpbmYuZ2V0KCksIG51bGxw
dHIpOworICAgIGlmIChsZW4gPCAwKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgVmVjdG9y
PHVpbnQ4X3Q+IGtleURhdGEobGVuKTsKKyAgICBhdXRvIHB0ciA9IGtleURhdGEuZGF0YSgpOwor
ICAgIGlmIChpMmRfUEtDUzhfUFJJVl9LRVlfSU5GTyhwOGluZi5nZXQoKSwgJnB0cikgPCAwKQor
ICAgICAgICByZXR1cm4geyB9OworCisgICAgcmV0dXJuIGtleURhdGE7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9vcGVuc3Ns
L0NyeXB0b0tleVJTQU9wZW5TU0wuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL29wZW5zc2wv
Q3J5cHRvS2V5UlNBT3BlblNTTC5jcHAKaW5kZXggZDMyOTlmZjUzMmIyZTI0OTg2NThmZDc1YzMx
Y2FlZDhlMWMzMzljYi4uMWQ5NjVjNjg5Y2E4M2U4MjkzMmQ4YTkyYWE4YTM1ODkwNjA5ZTUwNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL29wZW5zc2wvQ3J5cHRvS2V5UlNBT3Bl
blNTTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL29wZW5zc2wvQ3J5cHRvS2V5UlNB
T3BlblNTTC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1S
ZWdpc3RyeS5oIgogI2luY2x1ZGUgIkNyeXB0b0tleVBhaXIuaCIKICNpbmNsdWRlICJDcnlwdG9L
ZXlSU0FDb21wb25lbnRzLmgiCisjaW5jbHVkZSAiT3BlblNTTFV0aWxpdGllcy5oIgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL1R5cGVkQXJyYXlJbmxpbmVzLmg+CiAjaW5jbHVkZSA8b3BlbnNz
bC9YNTA5Lmg+CiAjaW5jbHVkZSA8b3BlbnNzbC9ldnAuaD4KQEAgLTQ0LDE4ICs0NSw2IEBAIHN0
YXRpYyBzaXplX3QgZ2V0UlNBTW9kdWx1c0xlbmd0aChSU0EqIHJzYSkKICAgICByZXR1cm4gQk5f
bnVtX2J5dGVzKHJzYS0+bikgKiA4OwogfQogCi1zdGF0aWMgVmVjdG9yPHVpbnQ4X3Q+IGNvbnZl
cnRUb0J5dGVzKEJJR05VTSogYmlnbnVtKQotewotICAgIFZlY3Rvcjx1aW50OF90PiBieXRlcyhC
Tl9udW1fYnl0ZXMoYmlnbnVtKSk7Ci0gICAgQk5fYm4yYmluKGJpZ251bSwgYnl0ZXMuZGF0YSgp
KTsKLSAgICByZXR1cm4gYnl0ZXM7Ci19Ci0KLXN0YXRpYyBCSUdOVU0qIGNvbnZlcnRUb0JpZ051
bWJlcihCSUdOVU0qIGJpZ251bSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBieXRlcykKLXsKLSAg
ICByZXR1cm4gQk5fYmluMmJuKGJ5dGVzLmRhdGEoKSwgYnl0ZXMuc2l6ZSgpLCBiaWdudW0pOwot
fQotCiBSZWZQdHI8Q3J5cHRvS2V5UlNBPiBDcnlwdG9LZXlSU0E6OmNyZWF0ZShDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIsIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaGFz
aCwgYm9vbCBoYXNIYXNoLCBjb25zdCBDcnlwdG9LZXlSU0FDb21wb25lbnRzJiBrZXlEYXRhLCBi
b29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZUJpdG1hcCB1c2FnZXMpCiB7CiAgICAgQ3J5
cHRvS2V5VHlwZSBrZXlUeXBlOwpAQCAtMjE2LDcgKzIwNSw3IEBAIFJlZlB0cjxDcnlwdG9LZXlS
U0E+IENyeXB0b0tleVJTQTo6aW1wb3J0U3BraShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGlk
ZW50aWZpCiAKICAgICAvLyBXZSB1c2UgZDJpX1BVQktFWSgpIHRvIGltcG9ydCBhIHB1YmxpYyBr
ZXkuCiAgICAgYXV0byBwa2V5ID0gRXZwUEtleVB0cihkMmlfUFVCS0VZKG51bGxwdHIsICZwdHIs
IGtleURhdGEuc2l6ZSgpKSk7Ci0gICAgaWYgKCFwa2V5KQorICAgIGlmICghcGtleSB8fCBFVlBf
UEtFWV90eXBlKHBrZXktPnR5cGUpICE9IEVWUF9QS0VZX1JTQSkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENyeXB0b0tleVJTQShpZGVudGlmaWVy
LCBoYXNoLnZhbHVlX29yKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8xKSwgISFoYXNo
LCBDcnlwdG9LZXlUeXBlOjpQdWJsaWMsIFdURk1vdmUocGtleSksIGV4dHJhY3RhYmxlLCB1c2Fn
ZXMpKTsKQEAgLTIzMyw3ICsyMjIsNyBAQCBSZWZQdHI8Q3J5cHRvS2V5UlNBPiBDcnlwdG9LZXlS
U0E6OmltcG9ydFBrY3M4KENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRpZgogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGF1dG8gcGtleSA9IEV2cFBLZXlQdHIoRVZQX1BLQ1M4
MlBLRVkocDhpbmYuZ2V0KCkpKTsKLSAgICBpZiAoIXBrZXkpCisgICAgaWYgKCFwa2V5IHx8IEVW
UF9QS0VZX3R5cGUocGtleS0+dHlwZSkgIT0gRVZQX1BLRVlfUlNBKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIAogICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ3J5cHRvS2V5UlNBKGlkZW50aWZp
ZXIsIGhhc2gudmFsdWVfb3IoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzEpLCAhIWhh
c2gsIENyeXB0b0tleVR5cGU6OlByaXZhdGUsIFdURk1vdmUocGtleSksIGV4dHJhY3RhYmxlLCB1
c2FnZXMpKTsKQEAgLTI0NCwxMyArMjMzLDEzIEBAIEV4Y2VwdGlvbk9yPFZlY3Rvcjx1aW50OF90
Pj4gQ3J5cHRvS2V5UlNBOjpleHBvcnRTcGtpKCkgY29uc3QKICAgICBpZiAodHlwZSgpICE9IENy
eXB0b0tleVR5cGU6OlB1YmxpYykKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRB
Y2Nlc3NFcnJvciB9OwogCi0gICAgaW50IGxlbiA9IGkyZF9QVUJLRVkobV9wbGF0Zm9ybUtleS5n
ZXQoKSwgbnVsbHB0cik7CisgICAgaW50IGxlbiA9IGkyZF9QVUJLRVkocGxhdGZvcm1LZXkoKSwg
bnVsbHB0cik7CiAgICAgaWYgKGxlbiA8IDApCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBP
cGVyYXRpb25FcnJvciB9OwogCiAgICAgVmVjdG9yPHVpbnQ4X3Q+IGtleURhdGEobGVuKTsKICAg
ICBhdXRvIHB0ciA9IGtleURhdGEuZGF0YSgpOwotICAgIGlmIChpMmRfUFVCS0VZKG1fcGxhdGZv
cm1LZXkuZ2V0KCksICZwdHIpIDwgMCkKKyAgICBpZiAoaTJkX1BVQktFWShwbGF0Zm9ybUtleSgp
LCAmcHRyKSA8IDApCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciB9
OwogCiAgICAgcmV0dXJuIGtleURhdGE7CkBAIC0yNjEsNyArMjUwLDcgQEAgRXhjZXB0aW9uT3I8
VmVjdG9yPHVpbnQ4X3Q+PiBDcnlwdG9LZXlSU0E6OmV4cG9ydFBrY3M4KCkgY29uc3QKICAgICBp
ZiAodHlwZSgpICE9IENyeXB0b0tleVR5cGU6OlByaXZhdGUpCiAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKIAotICAgIGF1dG8gcDhpbmYgPSBQS0NTOFBy
aXZLZXlJbmZvUHRyKEVWUF9QS0VZMlBLQ1M4KG1fcGxhdGZvcm1LZXkuZ2V0KCkpKTsKKyAgICBh
dXRvIHA4aW5mID0gUEtDUzhQcml2S2V5SW5mb1B0cihFVlBfUEtFWTJQS0NTOChwbGF0Zm9ybUtl
eSgpKSk7CiAgICAgaWYgKCFwOGluZikKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE9wZXJh
dGlvbkVycm9yIH07CiAKQEAgLTI3OSw5ICsyNjgsOSBAQCBFeGNlcHRpb25PcjxWZWN0b3I8dWlu
dDhfdD4+IENyeXB0b0tleVJTQTo6ZXhwb3J0UGtjczgoKSBjb25zdAogCiBhdXRvIENyeXB0b0tl
eVJTQTo6YWxnb3JpdGhtKCkgY29uc3QgLT4gS2V5QWxnb3JpdGhtCiB7Ci0gICAgUlNBKiByc2Eg
PSBFVlBfUEtFWV9nZXQwX1JTQShtX3BsYXRmb3JtS2V5LmdldCgpKTsKKyAgICBSU0EqIHJzYSA9
IEVWUF9QS0VZX2dldDBfUlNBKHBsYXRmb3JtS2V5KCkpOwogCi0gICAgYXV0byBtb2R1bHVzTGVu
Z3RoID0gZ2V0UlNBTW9kdWx1c0xlbmd0aChyc2EpOworICAgIGF1dG8gbW9kdWx1c0xlbmd0aCA9
IHJzYSA/IEJOX251bV9ieXRlcyhyc2EtPm4pICogOCA6IDA7CiAgICAgYXV0byBwdWJsaWNFeHBv
bmVudCA9IHJzYSA/IGNvbnZlcnRUb0J5dGVzKHJzYS0+ZSkgOiBWZWN0b3I8dWludDhfdD4geyB9
OwogCiAgICAgaWYgKG1fcmVzdHJpY3RlZFRvU3BlY2lmaWNIYXNoKSB7CkBAIC0zMDIsNyArMjkx
LDcgQEAgYXV0byBDcnlwdG9LZXlSU0E6OmFsZ29yaXRobSgpIGNvbnN0IC0+IEtleUFsZ29yaXRo
bQogCiBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvS2V5UlNBQ29tcG9uZW50cz4gQ3J5cHRvS2V5UlNB
OjpleHBvcnREYXRhKCkgY29uc3QKIHsKLSAgICBSU0EqIHJzYSA9IEVWUF9QS0VZX2dldDBfUlNB
KG1fcGxhdGZvcm1LZXkuZ2V0KCkpOworICAgIFJTQSogcnNhID0gRVZQX1BLRVlfZ2V0MF9SU0Eo
cGxhdGZvcm1LZXkoKSk7CiAgICAgaWYgKCFyc2EpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vb3BlbnNzbC9PcGVuU1NMQ3J5cHRv
VW5pcXVlUHRyLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vb3BlbnNzbC9PcGVuU1NMQ3J5cHRv
VW5pcXVlUHRyLmgKaW5kZXggYjBlZTQxMTQ4ZjdmYmQ1N2RiNWIxZWI2Njg5ZDgyZDM5Y2U0M2Zm
ZC4uMTc4YTgzMGNkODhiMmM4NDU0MGI0MTIwYWMwNGYyMzEyZjYzZTk5NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3J5cHRvL29wZW5zc2wvT3BlblNTTENyeXB0b1VuaXF1ZVB0ci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9vcGVuc3NsL09wZW5TU0xDcnlwdG9VbmlxdWVQdHIu
aApAQCAtODksNiArODksMjcgQEAgc3RydWN0IE9wZW5TU0xDcnlwdG9QdHJEZWxldGVyPFJTQT4g
ewogCiB1c2luZyBSU0FQdHIgPSBPcGVuU1NMQ3J5cHRvUHRyPFJTQT47CiAKK3RlbXBsYXRlIDw+
CitzdHJ1Y3QgT3BlblNTTENyeXB0b1B0ckRlbGV0ZXI8RUNfS0VZPiB7CisgICAgdm9pZCBvcGVy
YXRvcigpKEVDX0tFWSogcHRyKSBjb25zdAorICAgIHsKKyAgICAgICAgRUNfS0VZX2ZyZWUocHRy
KTsKKyAgICB9Cit9OworCit1c2luZyBFQ0tleVB0ciA9IE9wZW5TU0xDcnlwdG9QdHI8RUNfS0VZ
PjsKKwordGVtcGxhdGUgPD4KK3N0cnVjdCBPcGVuU1NMQ3J5cHRvUHRyRGVsZXRlcjxFQ19QT0lO
VD4geworICAgIHZvaWQgb3BlcmF0b3IoKShFQ19QT0lOVCogcHRyKSBjb25zdAorICAgIHsKKyAg
ICAgICAgRUNfUE9JTlRfY2xlYXJfZnJlZShwdHIpOworICAgIH0KK307CisKK3VzaW5nIEVDUG9p
bnRQdHIgPSBPcGVuU1NMQ3J5cHRvUHRyPEVDX1BPSU5UPjsKKworCiB0ZW1wbGF0ZSA8Pgogc3Ry
dWN0IE9wZW5TU0xDcnlwdG9QdHJEZWxldGVyPFBLQ1M4X1BSSVZfS0VZX0lORk8+IHsKICAgICB2
b2lkIG9wZXJhdG9yKCkoUEtDUzhfUFJJVl9LRVlfSU5GTyogcHRyKSBjb25zdApAQCAtMTE5LDUg
KzE0MCwyNCBAQCBzdHJ1Y3QgT3BlblNTTENyeXB0b1B0ckRlbGV0ZXI8Qk5fQ1RYPiB7CiAKIHVz
aW5nIEJOQ3R4UHRyID0gT3BlblNTTENyeXB0b1B0cjxCTl9DVFg+OwogCit0ZW1wbGF0ZSA8Pgor
c3RydWN0IE9wZW5TU0xDcnlwdG9QdHJEZWxldGVyPEVDRFNBX1NJRz4geworICAgIHZvaWQgb3Bl
cmF0b3IoKShFQ0RTQV9TSUcqIHB0cikgY29uc3QKKyAgICB7CisgICAgICAgIEVDRFNBX1NJR19m
cmVlKHB0cik7CisgICAgfQorfTsKKwordXNpbmcgRUNEU0FTaWdQdHIgPSBPcGVuU1NMQ3J5cHRv
UHRyPEVDRFNBX1NJRz47CisKK3RlbXBsYXRlIDw+CitzdHJ1Y3QgT3BlblNTTENyeXB0b1B0ckRl
bGV0ZXI8QVNOMV9TRVFVRU5DRV9BTlk+IHsKKyAgICB2b2lkIG9wZXJhdG9yKCkoQVNOMV9TRVFV
RU5DRV9BTlkqIHB0cikgY29uc3QKKyAgICB7CisgICAgICAgIHNrX0FTTjFfVFlQRV9wb3BfZnJl
ZShwdHIsIEFTTjFfVFlQRV9mcmVlKTsKKyAgICB9Cit9OworCit1c2luZyBBU04xU2VxdWVuY2VQ
dHIgPSBPcGVuU1NMQ3J5cHRvUHRyPEFTTjFfU0VRVUVOQ0VfQU5ZPjsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL29wZW5zc2wvT3Bl
blNTTFV0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vb3BlbnNzbC9PcGVuU1NM
VXRpbGl0aWVzLmNwcAppbmRleCA3NGI0NmQ2NzAwMTJjZjBlMWJlM2NlNDE5NWQ4ODM3YjU5YjQ5
NzE0Li41MDQwYmE2MWI2MzliNmExZmEyODEyNzQ4ODQxMTU5ZTQ3MTE2YTNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vb3BlbnNzbC9PcGVuU1NMVXRpbGl0aWVzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vb3BlbnNzbC9PcGVuU1NMVXRpbGl0aWVzLmNwcApAQCAt
NzMsNiArNzMsMzggQEAgc3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhfdD4+IGNhbGN1bGF0ZURp
Z2VzdChjb25zdCBFVlBfTUQqIGFsZ29yaXRobSwgY29uc3QgVmUKICAgICByZXR1cm4gZGlnZXN0
OwogfQogCitWZWN0b3I8dWludDhfdD4gY29udmVydFRvQnl0ZXMoY29uc3QgQklHTlVNKiBiaWdu
dW0pCit7CisgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ5dGVzKEJOX251bV9ieXRlcyhiaWdudW0pKTsK
KyAgICBCTl9ibjJiaW4oYmlnbnVtLCBieXRlcy5kYXRhKCkpOworICAgIHJldHVybiBieXRlczsK
K30KKworVmVjdG9yPHVpbnQ4X3Q+IGNvbnZlcnRUb0J5dGVzRXhwYW5kKGNvbnN0IEJJR05VTSog
YmlnbnVtLCBzaXplX3QgbWluaW11bUJ1ZmZlclNpemUpCit7CisgICAgaW50IGxlbmd0aCA9IEJO
X251bV9ieXRlcyhiaWdudW0pOworICAgIGlmIChsZW5ndGggPCAwKQorICAgICAgICByZXR1cm4g
eyB9OworCisgICAgc2l6ZV90IGJ1ZmZlclNpemUgPSBzdGQ6Om1heDxzaXplX3Q+KGxlbmd0aCwg
bWluaW11bUJ1ZmZlclNpemUpOworCisgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ5dGVzKGJ1ZmZlclNp
emUpOworCisgICAgc2l6ZV90IHBhZGRpbmdMZW5ndGggPSBidWZmZXJTaXplIC0gbGVuZ3RoOwor
ICAgIGlmIChwYWRkaW5nTGVuZ3RoID4gMCkgeworICAgICAgICB1aW50OF90IHBhZGRpbmcgPSBC
Tl9pc19uZWdhdGl2ZShiaWdudW0pID8gMHhGRiA6IDB4MDA7CisgICAgICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgcGFkZGluZ0xlbmd0aDsgaSsrKQorICAgICAgICAgICAgYnl0ZXNbaV0gPSBw
YWRkaW5nOworICAgIH0KKyAgICBCTl9ibjJiaW4oYmlnbnVtLCBieXRlcy5kYXRhKCkgKyBwYWRk
aW5nTGVuZ3RoKTsKKyAgICByZXR1cm4gYnl0ZXM7Cit9CisKK0JJR05VTSogY29udmVydFRvQmln
TnVtYmVyKEJJR05VTSogYmlnbnVtLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGJ5dGVzKQorewor
ICAgIHJldHVybiBCTl9iaW4yYm4oYnl0ZXMuZGF0YSgpLCBieXRlcy5zaXplKCksIGJpZ251bSk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vb3BlbnNzbC9PcGVuU1NMVXRpbGl0aWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vb3BlbnNzbC9PcGVuU1NMVXRpbGl0aWVzLmgKaW5kZXggYjhmM2JmMmVlMDY4ZDc0ZTY1
MDExYTkwM2IxM2NkZmI3NThiZmNjOC4uOWE3YmFhNjdhMTJkZmQ3MTY4NTMwNzY3YTZiYjhkMGFl
OWQ5MDljMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL29wZW5zc2wvT3BlblNT
TFV0aWxpdGllcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9vcGVuc3NsL09wZW5TU0xV
dGlsaXRpZXMuaApAQCAtMzgsNiArMzgsMTQgQEAgY29uc3QgRVZQX01EKiBkaWdlc3RBbGdvcml0
aG0oQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBoYXNoRnVuY3Rpb24pOwogCiBzdGQ6Om9wdGlv
bmFsPFZlY3Rvcjx1aW50OF90Pj4gY2FsY3VsYXRlRGlnZXN0KGNvbnN0IEVWUF9NRCogYWxnb3Jp
dGhtLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIG1lc3NhZ2UpOwogCitWZWN0b3I8dWludDhfdD4g
Y29udmVydFRvQnl0ZXMoY29uc3QgQklHTlVNKik7CisKK1ZlY3Rvcjx1aW50OF90PiBjb252ZXJ0
VG9CeXRlc0V4cGFuZChjb25zdCBCSUdOVU0qLCBzaXplX3QgYnVmZmVyU2l6ZSk7CisKKy8vIElm
IGEgbnVsbCBwb2ludGVyIGlzIGdpdmVuIGFzIHRoZSBmaXJzdCBhcmd1bWVudCwgdGhpcyBmdW5j
dGlvbiBpbnRlcm5hbGx5IGFsbG9jYXRlcyBhIG5ldyBCSUdOVU0KKy8vIGFuZCByZXR1cm5zIGl0
cyBwb2ludGVyLiBPdGhlcndpc2UgdGhpcyBmdW5jdGlvbiB1c2VzIHRoZSBnaXZlbiBCSUdOVU0g
YW5kIGRvZXNuJ3QgYWxsb2NhdGUgYSBuZXcgb25lLgorQklHTlVNKiBjb252ZXJ0VG9CaWdOdW1i
ZXIoQklHTlVNKiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBieXRlcyk7CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQ1JZUFRPKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQwMzY3
OWYzNzgxZGFmM2RjOWQ3ZjkwNmIyMzc4MzlkMjNlMjFkMDEuLjA0OWYzYzE4NWY0ZWM2NWY5ZTE4
MzYwMzI3NDExMWM3MmVlODdhMzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAyMS0wNy0wNSAg
WW9zaGlha2kgSml0c3VrYXdhICA8eW9zaGlha2kuaml0c3VrYXdhQHNvbnkuY29tPgorCisgICAg
ICAgIFtPcGVuU1NMXSBJbXBsZW1lbnQgQ3J5cHRvQWxnb3JpdGhtRUMqCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc2NTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGVzdCBleHBlY3RhdGlv
bnMgb2Ygd2luY2Fpcm8gdG8gZW5hYmxlIGVjKiB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3Jt
L3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnM6CisKKyAgICAgICAgQWRkIGV4cGVjdGVkIHJlc3Vs
dHMgdGhhdHMgc3VwcG9ydCB0aGUgUC01MjEgZWxsaXB0aWMgY3VydmUuIEdlbmVyaWMgdGVzdAor
ICAgICAgICByZXN1bHRzIGV4cGVjdCB0aGF0IFAtNTIxIGlzIHVuc3VwcG9ydGVkLgorCisgICAg
ICAgICogcGxhdGZvcm0vd2luY2Fpcm8vY3J5cHRvL3N1YnRsZS9lYy1nZW5lcmF0ZS1rZXktbWFs
Zm9ybWVkLXBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS93aW5jYWlyby9jcnlwdG8vc3VidGxlL2VjZGgtZGVyaXZlLWJpdHMtbGVuZ3RoLWxpbWl0cy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3dpbmNhaXJvL2NyeXB0by9z
dWJ0bGUvZWNkaC1pbXBvcnQtc3BraS1rZXktZWNkaC1pZGVudGlmaWVyLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisKKyAgICAgICAgVXNlIHNob3VsZFJlamVjdFdpdGhFcnJvck5hbWUgYWZ0ZXIgcjI2
MDU3OS4KKworICAgICAgICAqIGNyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQtcGtjczgta2V5LXA1
MjEtdmFsaWRhdGUtZWNwcml2YXRla2V5LXBhcmFtZXRlcnMtcHVibGlja2V5Lmh0bWw6CisgICAg
ICAgICogY3J5cHRvL3N1YnRsZS9lY2RzYS1pbXBvcnQtcGtjczgta2V5LXA1MjEtdmFsaWRhdGUt
ZWNwcml2YXRla2V5LXBhcmFtZXRlcnMtcHVibGlja2V5Lmh0bWw6CisKIDIwMjEtMDctMDQgIFJv
YiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXN5bmMgd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2FzcGVjdC1yYXRpbyBmcm9tIHVwc3RyZWFtCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2VjZGgtaW1wb3J0LXBrY3M4LWtleS1wNTIx
LXZhbGlkYXRlLWVjcHJpdmF0ZWtleS1wYXJhbWV0ZXJzLXB1YmxpY2tleS5odG1sIGIvTGF5b3V0
VGVzdHMvY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1wa2NzOC1rZXktcDUyMS12YWxpZGF0ZS1l
Y3ByaXZhdGVrZXktcGFyYW1ldGVycy1wdWJsaWNrZXkuaHRtbAppbmRleCBhNjdjMDJmNzQ4YzQx
YzA4YmIyZGMxYjZmOTgxYzMyYmRmNmU0NjI2Li5iZWM0YjM4ZmQwZDRhNDNmNTI2NzFlMDY4N2Ez
MWQ5ODkyZmIwMzQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2VjZGgt
aW1wb3J0LXBrY3M4LWtleS1wNTIxLXZhbGlkYXRlLWVjcHJpdmF0ZWtleS1wYXJhbWV0ZXJzLXB1
YmxpY2tleS5odG1sCisrKyBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQt
cGtjczgta2V5LXA1MjEtdmFsaWRhdGUtZWNwcml2YXRla2V5LXBhcmFtZXRlcnMtcHVibGlja2V5
Lmh0bWwKQEAgLTQyLDE2ICs0MiwxNiBAQCBQcm9taXNlLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9u
KHJlc3VsdCkgewogICAgIHRlc3RQYXNzZWQoIlN1Y2Nlc3NmdWxseSBpbXBvcnRlZCBhIFAtNTIx
IGtleS4iKTsKIAogICAgIGRlYnVnKCJFQ0RIOiBpbXBvcnRpbmcgUC01MjEga2V5IHdob3NlIGN1
cnZlIGlkZW50aWZpZXJzIGluIEVDUGFyYW1ldGVycyBzdHJ1Y3R1cmVzIGluIFBLQ1MjOCBkb24n
dCBtYXRjaCAuLi4iKTsKLSAgICByZXR1cm4gc2hvdWxkUmVqZWN0KCdpbXBvcnRLZXkocGtjczhQ
NTIxS2V5TWlzbWF0Y2hlZEN1cnZlSWRlbnRpZmllcnMpJyk7CisgICAgcmV0dXJuIHNob3VsZFJl
amVjdFdpdGhFcnJvck5hbWUoJ2ltcG9ydEtleShwa2NzOFA1MjFLZXlNaXNtYXRjaGVkQ3VydmVJ
ZGVudGlmaWVycyknLCAnRGF0YUVycm9yJyk7CiB9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewog
ICAgIGRlYnVnKCJFQ0RIOiBpbXBvcnRpbmcgUC01MjEga2V5IHRoYXQgaGFzIGEgcHVibGljIGtl
eSBpbiBQS0NTIzggb2YgaW52YWxpZCBsZW5ndGggLi4uIik7Ci0gICAgcmV0dXJuIHNob3VsZFJl
amVjdCgnaW1wb3J0S2V5KHBrY3M4UDUyMUtleUludmFsaWRQdWJsaWNLZXlMZW5ndGgpJyk7Cisg
ICAgcmV0dXJuIHNob3VsZFJlamVjdFdpdGhFcnJvck5hbWUoJ2ltcG9ydEtleShwa2NzOFA1MjFL
ZXlJbnZhbGlkUHVibGljS2V5TGVuZ3RoKScsICdEYXRhRXJyb3InKTsKIH0pLnRoZW4oZnVuY3Rp
b24ocmVzdWx0KSB7CiAgICAgZGVidWcoIkVDREg6IGltcG9ydGluZyBQLTUyMSBrZXkgdGhhdCBo
YXMgYSBwdWJsaWMga2V5IGluIFBLQ1MjOCBvZiBpbnZhbGlkIEVDIHBvaW50IGZvcm1hdCAuLi4i
KTsKLSAgICByZXR1cm4gc2hvdWxkUmVqZWN0KCdpbXBvcnRLZXkocGtjczhQNTIxS2V5SW52YWxp
ZFB1YmxpY0tleUVDUG9pbnRGb3JtYXQpJyk7CisgICAgcmV0dXJuIHNob3VsZFJlamVjdFdpdGhF
cnJvck5hbWUoJ2ltcG9ydEtleShwa2NzOFA1MjFLZXlJbnZhbGlkUHVibGljS2V5RUNQb2ludEZv
cm1hdCknLCAnRGF0YUVycm9yJyk7CiB9KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewogICAgIGRl
YnVnKCJFQ0RIOiBpbXBvcnRpbmcgUC01MjEga2V5IHRoYXQgaGFzIGFuIGludmFsaWQgcHVibGlj
IGtleSBpbiBQS0NTIzggLi4uIik7Ci0gICAgcmV0dXJuIHNob3VsZFJlamVjdCgnaW1wb3J0S2V5
KHBrY3M4UDUyMUtleUludmFsaWRQdWJsaWNLZXkpJyk7CisgICAgcmV0dXJuIHNob3VsZFJlamVj
dFdpdGhFcnJvck5hbWUoJ2ltcG9ydEtleShwa2NzOFA1MjFLZXlJbnZhbGlkUHVibGljS2V5KScs
ICdEYXRhRXJyb3InKTsKIH0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CiAgICAgZmluaXNoSlNU
ZXN0KCk7CiB9KTs7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL2VjZHNh
LWltcG9ydC1wa2NzOC1rZXktcDUyMS12YWxpZGF0ZS1lY3ByaXZhdGVrZXktcGFyYW1ldGVycy1w
dWJsaWNrZXkuaHRtbCBiL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvZWNkc2EtaW1wb3J0LXBr
Y3M4LWtleS1wNTIxLXZhbGlkYXRlLWVjcHJpdmF0ZWtleS1wYXJhbWV0ZXJzLXB1YmxpY2tleS5o
dG1sCmluZGV4IDRkNjExYzhhYWNkNzdmYTQ5MzdkYzFhYTliNmI3ODk3MDFjZmE4ZDkuLjA2ZTFl
YzkzYThhNjdmZTVhNTljMGRjMTFmMzQ2ZmMzNWQ3NDVhYjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2NyeXB0by9zdWJ0bGUvZWNkc2EtaW1wb3J0LXBrY3M4LWtleS1wNTIxLXZhbGlkYXRlLWVj
cHJpdmF0ZWtleS1wYXJhbWV0ZXJzLXB1YmxpY2tleS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Ny
eXB0by9zdWJ0bGUvZWNkc2EtaW1wb3J0LXBrY3M4LWtleS1wNTIxLXZhbGlkYXRlLWVjcHJpdmF0
ZWtleS1wYXJhbWV0ZXJzLXB1YmxpY2tleS5odG1sCkBAIC00MiwxNiArNDIsMTYgQEAgUHJvbWlz
ZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbihyZXN1bHQpIHsKICAgICB0ZXN0UGFzc2VkKCJTdWNj
ZXNzZnVsbHkgaW1wb3J0ZWQgYSBQLTUyMSBrZXkuIik7CiAKICAgICBkZWJ1ZygiRUNEU0E6IGlt
cG9ydGluZyBQLTUyMSBrZXkgd2hvc2UgY3VydmUgaWRlbnRpZmllcnMgaW4gRUNQYXJhbWV0ZXJz
IHN0cnVjdHVyZXMgaW4gUEtDUyM4IGRvbid0IG1hdGNoIC4uLiIpOwotICAgIHJldHVybiBzaG91
bGRSZWplY3QoJ2ltcG9ydEtleShwa2NzOFA1MjFLZXlNaXNtYXRjaGVkQ3VydmVJZGVudGlmaWVy
cyknKTsKKyAgICByZXR1cm4gc2hvdWxkUmVqZWN0V2l0aEVycm9yTmFtZSgnaW1wb3J0S2V5KHBr
Y3M4UDUyMUtleU1pc21hdGNoZWRDdXJ2ZUlkZW50aWZpZXJzKScsICdEYXRhRXJyb3InKTsKIH0p
LnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CiAgICAgZGVidWcoIkVDRFNBOiBpbXBvcnRpbmcgUC01
MjEga2V5IHRoYXQgaGFzIGEgcHVibGljIGtleSBpbiBQS0NTIzggb2YgaW52YWxpZCBsZW5ndGgg
Li4uIik7Ci0gICAgcmV0dXJuIHNob3VsZFJlamVjdCgnaW1wb3J0S2V5KHBrY3M4UDUyMUtleUlu
dmFsaWRQdWJsaWNLZXlMZW5ndGgpJyk7CisgICAgcmV0dXJuIHNob3VsZFJlamVjdFdpdGhFcnJv
ck5hbWUoJ2ltcG9ydEtleShwa2NzOFA1MjFLZXlJbnZhbGlkUHVibGljS2V5TGVuZ3RoKScsICdE
YXRhRXJyb3InKTsKIH0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7CiAgICAgZGVidWcoIkVDRFNB
OiBpbXBvcnRpbmcgUC01MjEga2V5IHRoYXQgaGFzIGEgcHVibGljIGtleSBpbiBQS0NTIzggb2Yg
aW52YWxpZCBFQyBwb2ludCBmb3JtYXQgLi4uIik7Ci0gICAgcmV0dXJuIHNob3VsZFJlamVjdCgn
aW1wb3J0S2V5KHBrY3M4UDUyMUtleUludmFsaWRQdWJsaWNLZXlFQ1BvaW50Rm9ybWF0KScpOwor
ICAgIHJldHVybiBzaG91bGRSZWplY3RXaXRoRXJyb3JOYW1lKCdpbXBvcnRLZXkocGtjczhQNTIx
S2V5SW52YWxpZFB1YmxpY0tleUVDUG9pbnRGb3JtYXQpJywgJ0RhdGFFcnJvcicpOwogfSkudGhl
bihmdW5jdGlvbihyZXN1bHQpIHsKICAgICBkZWJ1ZygiRUNEU0E6IGltcG9ydGluZyBQLTUyMSBr
ZXkgdGhhdCBoYXMgYW4gaW52YWxpZCBwdWJsaWMga2V5IGluIFBLQ1MjOCAuLi4iKTsKLSAgICBy
ZXR1cm4gc2hvdWxkUmVqZWN0KCdpbXBvcnRLZXkocGtjczhQNTIxS2V5SW52YWxpZFB1YmxpY0tl
eSknKTsKKyAgICByZXR1cm4gc2hvdWxkUmVqZWN0V2l0aEVycm9yTmFtZSgnaW1wb3J0S2V5KHBr
Y3M4UDUyMUtleUludmFsaWRQdWJsaWNLZXkpJywgJ0RhdGFFcnJvcicpOwogfSkudGhlbihmdW5j
dGlvbihyZXN1bHQpIHsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0pOzsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDkwOWQ1YzU0M2QzMjU2
ODIwMjAwOGU2NjY1ODE4ZmRmMzIxNTgyMWIuLjlmOTBlYWRmZjk0NjgwNDIyMjM1NGM0ODM1ZWI1
YjUxN2E3ZGI2YTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4
cGVjdGF0aW9ucwpAQCAtNzE1LDEyMSArNzE1LDMwIEBAIHdlYmtpdC5vcmcvYi8yMjE0NDUgZmFz
dC90ZXh0L2ludGVybmF0aW9uYWwvc3lzdGVtLWxhbmd1YWdlL2pwLWNpcmNsZWQuaHRtbCBbIFNr
CiAjIGNyeXB0bwogIy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogCi0jIENyeXB0
cyBvdGhlciB0aGFuIEFFUyBhbmQgUlNBIGFyZSBub3Qgc3VwcG9ydGVkLgotY3J5cHRvL3N1YnRs
ZS9hZXMtZ2NtLWltcG9ydC1rZXktdW53cmFwLWVjLXJhdy1rZXkuaHRtbCBbIFNraXAgXQotY3J5
cHRvL3N1YnRsZS9kZXJpdmUtYml0cy1tYWxmb3JtZWQtcGFyYW1ldGVycy5odG1sIFsgU2tpcCBd
Ci1jcnlwdG8vc3VidGxlL2Rlcml2ZS1rZXktbWFsZm9ybWVkLXBhcmFtZXRlcnMuaHRtbCBbIFNr
aXAgXQotY3J5cHRvL3N1YnRsZS9lY2RoLWRlcml2ZS1iaXRzLWxlbmd0aC1saW1pdHMuaHRtbCBb
IFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RoLWRlcml2ZS1iaXRzLW1hbGZvcm1lZC1wYXJhbWV0
cnMuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RoLWdlbmVyYXRlLWV4cG9ydC1qd2st
a2V5LXAyNTYuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RoLWdlbmVyYXRlLWV4cG9y
dC1qd2sta2V5LXAzODQuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RoLWdlbmVyYXRl
LWV4cG9ydC1qd2sta2V5LXA1MjEuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RoLWdl
bmVyYXRlLWV4cG9ydC1rZXktcGtjczgtcDI1Ni5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxl
L2VjZGgtZ2VuZXJhdGUtZXhwb3J0LWtleS1wa2NzOC1wMzg0Lmh0bWwgWyBTa2lwIF0KLWNyeXB0
by9zdWJ0bGUvZWNkaC1nZW5lcmF0ZS1leHBvcnQta2V5LXBrY3M4LXA1MjEuaHRtbCBbIFNraXAg
XQotY3J5cHRvL3N1YnRsZS9lY2RoLWdlbmVyYXRlLWV4cG9ydC1rZXktcmF3LXAyNTYuaHRtbCBb
IFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RoLWdlbmVyYXRlLWV4cG9ydC1rZXktcmF3LXAzODQu
aHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RoLWdlbmVyYXRlLWV4cG9ydC1rZXktcmF3
LXA1MjEuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RoLWdlbmVyYXRlLWV4cG9ydC1r
ZXktc3BraS1wMjU2Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkaC1nZW5lcmF0ZS1l
eHBvcnQta2V5LXNwa2ktcDM4NC5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZGgtZ2Vu
ZXJhdGUtZXhwb3J0LWtleS1zcGtpLXA1MjEuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9l
Y2RoLWdlbmVyYXRlLWtleS1kZXJpdmUtYml0cy5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxl
L2VjZGgtZ2VuZXJhdGUta2V5LWV4dHJhY3RhYmxlLmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0
bGUvZWNkaC1nZW5lcmF0ZS1rZXktcDI1Ni5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2Vj
ZGgtZ2VuZXJhdGUta2V5LXAzODQuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RoLWdl
bmVyYXRlLWtleS1wNTIxLmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkaC1nZW5lcmF0
ZS1rZXktc2luZ2xlLXVzYWdlLmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkaC1pbXBv
cnQtandrLWtleS1taW5pbXVtLmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkaC1pbXBv
cnQtandrLXByaXZhdGUta2V5LXAyNTYuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2Ro
LWltcG9ydC1qd2stcHJpdmF0ZS1rZXktcDM4NC5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxl
L2VjZGgtaW1wb3J0LWp3ay1wcml2YXRlLWtleS1wNTIxLmh0bWwgWyBTa2lwIF0KLWNyeXB0by9z
dWJ0bGUvZWNkaC1pbXBvcnQtandrLXB1YmxpYy1rZXktcDI1Ni5odG1sIFsgU2tpcCBdCi1jcnlw
dG8vc3VidGxlL2VjZGgtaW1wb3J0LWp3ay1wdWJsaWMta2V5LXAzODQuaHRtbCBbIFNraXAgXQot
Y3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1qd2stcHVibGljLWtleS1wNTIxLmh0bWwgWyBTa2lw
IF0KLWNyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQta2V5LWRlcml2ZS1hZXMta2V5Lmh0bWwgWyBT
a2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQta2V5LWRlcml2ZS1iaXRzLWN1c3RvbS1s
ZW5ndGguaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1rZXktZGVyaXZl
LWJpdHMtbnVsbC1sZW5ndGguaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9y
dC1rZXktZGVyaXZlLWhrZGYta2V5Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkaC1p
bXBvcnQta2V5LWRlcml2ZS1obWFjLWtleS1jdXN0b20tbGVuZ3RoLmh0bWwgWyBTa2lwIF0KLWNy
eXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQta2V5LWRlcml2ZS1wYmtkZjIta2V5Lmh0bWwgWyBTa2lw
IF0KLWNyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQtcGtjczgta2V5LXAyNTYuaHRtbCBbIFNraXAg
XQotY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1wa2NzOC1rZXktcDI1Ni12YWxpZGF0ZS1lY3By
aXZhdGVrZXktcGFyYW1ldGVycy1wdWJsaWNrZXkuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRs
ZS9lY2RoLWltcG9ydC1wa2NzOC1rZXktcDM4NC5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxl
L2VjZGgtaW1wb3J0LXBrY3M4LWtleS1wMzg0LXZhbGlkYXRlLWVjcHJpdmF0ZWtleS1wYXJhbWV0
ZXJzLXB1YmxpY2tleS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZGgtaW1wb3J0LXBr
Y3M4LWtleS1wNTIxLmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQtcGtj
czgta2V5LXA1MjEtdmFsaWRhdGUtZWNwcml2YXRla2V5LXBhcmFtZXRlcnMtcHVibGlja2V5Lmh0
bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQtcmF3LWtleS1wMjU2Lmh0bWwg
WyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQtcmF3LWtleS1wMzg0Lmh0bWwgWyBT
a2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQtcmF3LWtleS1wNTIxLmh0bWwgWyBTa2lw
IF0KLWNyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQtc3BraS1rZXktZWNkaC1pZGVudGlmaWVyLmh0
bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQtc3BraS1rZXktcDI1Ni5odG1s
IFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZGgtaW1wb3J0LXNwa2kta2V5LXAzODQuaHRtbCBb
IFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1zcGtpLWtleS1wNTIxLmh0bWwgWyBT
a2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkc2EtZ2VuZXJhdGUtZXhwb3J0LWltcG9ydC1qd2stc2ln
bi12ZXJpZnkuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RzYS1nZW5lcmF0ZS1leHBv
cnQtandrLWtleS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZHNhLWdlbmVyYXRlLWV4
cG9ydC1rZXktcGtjczguaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RzYS1nZW5lcmF0
ZS1leHBvcnQta2V5LXJhdy5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZHNhLWdlbmVy
YXRlLWV4cG9ydC1rZXktc3BraS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZHNhLWdl
bmVyYXRlLWtleS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZHNhLWdlbmVyYXRlLWtl
eS1zaWduLXZlcmlmeS1wMjU2Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkc2EtZ2Vu
ZXJhdGUta2V5LXNpZ24tdmVyaWZ5LXAzODQuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9l
Y2RzYS1nZW5lcmF0ZS1rZXktc2lnbi12ZXJpZnktcDUyMS5odG1sIFsgU2tpcCBdCi1jcnlwdG8v
c3VidGxlL2VjZHNhLWltcG9ydC1qd2stcHJpdmF0ZS1rZXkuaHRtbCBbIFNraXAgXQotY3J5cHRv
L3N1YnRsZS9lY2RzYS1pbXBvcnQtandrLXB1YmxpYy1rZXkuaHRtbCBbIFNraXAgXQotY3J5cHRv
L3N1YnRsZS9lY2RzYS1pbXBvcnQtandrLXB1YmxpYy1rZXktYWxnLTI1Ni5odG1sIFsgU2tpcCBd
Ci1jcnlwdG8vc3VidGxlL2VjZHNhLWltcG9ydC1qd2stcHVibGljLWtleS1hbGctMzg0Lmh0bWwg
WyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkc2EtaW1wb3J0LWp3ay1wdWJsaWMta2V5LWFsZy01
MjEuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RzYS1pbXBvcnQta2V5LXNpZ24tcDI1
Ni5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZHNhLWltcG9ydC1rZXktc2lnbi1wMzg0
Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkc2EtaW1wb3J0LWtleS1zaWduLXA1MjEu
aHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RzYS1pbXBvcnQta2V5LXZlcmlmeS1wMjU2
Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkc2EtaW1wb3J0LWtleS12ZXJpZnktcDM4
NC5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjZHNhLWltcG9ydC1rZXktdmVyaWZ5LXA1
MjEuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RzYS1pbXBvcnQtcGtjczgta2V5Lmh0
bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkc2EtaW1wb3J0LXBrY3M4LWtleS1wMjU2LXZh
bGlkYXRlLWVjcHJpdmF0ZWtleS1wYXJhbWV0ZXJzLXB1YmxpY2tleS5odG1sIFsgU2tpcCBdCi1j
cnlwdG8vc3VidGxlL2VjZHNhLWltcG9ydC1wa2NzOC1rZXktcDM4NC12YWxpZGF0ZS1lY3ByaXZh
dGVrZXktcGFyYW1ldGVycy1wdWJsaWNrZXkuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9l
Y2RzYS1pbXBvcnQtcGtjczgta2V5LXA1MjEtdmFsaWRhdGUtZWNwcml2YXRla2V5LXBhcmFtZXRl
cnMtcHVibGlja2V5Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWNkc2EtaW1wb3J0LXJh
dy1rZXkuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RzYS1pbXBvcnQtc3BraS1rZXku
aHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lY2RzYS12ZXJpZnktbWFsZm9ybWVkLXBhcmFt
ZXRlcnMuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lYy1leHBvcnQta2V5LW1hbGZvcm1l
ZC1wYXJhbWV0ZXJzLmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWMtZ2VuZXJhdGUta2V5
LW1hbGZvcm1lZC1wYXJhbWV0ZXJzLmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWMtaW1w
b3J0LWp3ay1rZXktZXhwb3J0LWp3ay1rZXktcHJpdmF0ZS5odG1sIFsgU2tpcCBdCi1jcnlwdG8v
c3VidGxlL2VjLWltcG9ydC1qd2sta2V5LWV4cG9ydC1qd2sta2V5LXB1YmxpYy5odG1sIFsgU2tp
cCBdCi1jcnlwdG8vc3VidGxlL2VjLWltcG9ydC1qd2sta2V5LWV4cG9ydC1wa2NzOC1rZXkuaHRt
bCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lYy1pbXBvcnQtandrLWtleS1leHBvcnQtcmF3LWtl
eS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjLWltcG9ydC1qd2sta2V5LWV4cG9ydC1z
cGtpLWtleS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjLWltcG9ydC1rZXktbWFsZm9y
bWVkLXBhcmFtZXRlcnMuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lYy1pbXBvcnQtcGtj
czgta2V5LWV4cG9ydC1qd2sta2V5Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWMtaW1w
b3J0LXBrY3M4LWtleS1leHBvcnQtcGtjczgta2V5LXAyNTYuaHRtbCBbIFNraXAgXQotY3J5cHRv
L3N1YnRsZS9lYy1pbXBvcnQtcGtjczgta2V5LWV4cG9ydC1wa2NzOC1rZXktcDM4NC5odG1sIFsg
U2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjLWltcG9ydC1wa2NzOC1rZXktZXhwb3J0LXBrY3M4LWtl
eS1wNTIxLmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvZWMtaW1wb3J0LXJhdy1rZXktZXhw
b3J0LWp3ay1rZXkuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9lYy1pbXBvcnQtcmF3LWtl
eS1leHBvcnQtcmF3LWtleS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjLWltcG9ydC1y
YXcta2V5LWV4cG9ydC1zcGtpLWtleS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjLWlt
cG9ydC1zcGtpLWtleS1leHBvcnQtandrLWtleS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxl
L2VjLWltcG9ydC1zcGtpLWtleS1leHBvcnQtcmF3LWtleS5odG1sIFsgU2tpcCBdCi1jcnlwdG8v
c3VidGxlL2VjLWltcG9ydC1zcGtpLWtleS1leHBvcnQtc3BraS1rZXktcDI1Ni5odG1sIFsgU2tp
cCBdCi1jcnlwdG8vc3VidGxlL2VjLWltcG9ydC1zcGtpLWtleS1leHBvcnQtc3BraS1rZXktcDM4
NC5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2VjLWltcG9ydC1zcGtpLWtleS1leHBvcnQt
c3BraS1rZXktcDUyMS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2djLmh0bWwgWyBTa2lw
IF0KLWNyeXB0by9zdWJ0bGUvZ2MtMi5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL2djLTMu
aHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9oa2RmLWRlcml2ZS1iaXRzLWxlbmd0aC1saW1p
dHMuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9oa2RmLWRlcml2ZS1iaXRzLW1hbGZvcm1l
ZC1wYXJhbWV0cnMuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9oa2RmLWltcG9ydC1rZXku
aHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9oa2RmLWltcG9ydC1rZXktZGVyaXZlLWJpdHMu
aHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9oa2RmLWltcG9ydC1rZXktZGVyaXZlLWhtYWMt
a2V5Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvaGtkZi1pbXBvcnQta2V5LW1hbGZvcm1l
ZC1wYXJhbWV0ZXJzLmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvcGJrZGYyLWRlcml2ZS1i
aXRzLW1hbGZvcm1lZC1wYXJhbWV0cnMuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1YnRsZS9wYmtk
ZjItaW1wb3J0LWtleS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL3Bia2RmMi1pbXBvcnQt
a2V5LWRlcml2ZS1iaXRzLmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvcGJrZGYyLWltcG9y
dC1rZXktZGVyaXZlLWhtYWMta2V5Lmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvcGJrZGYy
LWltcG9ydC1rZXktbWFsZm9ybWVkLXBhcmFtZXRlcnMuaHRtbCBbIFNraXAgXQotY3J5cHRvL3N1
YnRsZS9yc2EtaW5kZXhlZGRiLmh0bWwgWyBTa2lwIF0KLWNyeXB0by9zdWJ0bGUvcnNhLWluZGV4
ZWRkYi1ub24tZXhwb3J0YWJsZS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxlL3JzYS1pbmRl
eGVkZGItbm9uLWV4cG9ydGFibGUtcHJpdmF0ZS5odG1sIFsgU2tpcCBdCi1jcnlwdG8vc3VidGxl
L3JzYS1pbmRleGVkZGItcHJpdmF0ZS5odG1sIFsgU2tpcCBdCisjIEZsYWt5IHRlc3RzLiBFbmNv
ZGVkIGxlbmd0aCBvZiBnZW5lcmF0ZWQga2V5cyBjYW4gYmUgc2hvcnRlciB0aGFuIHRlc3QgZXhw
ZWN0YXRpb25zLgorY3J5cHRvL3N1YnRsZS9lY2RoLWdlbmVyYXRlLWV4cG9ydC1rZXktcGtjczgt
cDI1Ni5odG1sIFsgRmFpbHVyZSBQYXNzIF0KK2NyeXB0by9zdWJ0bGUvZWNkaC1nZW5lcmF0ZS1l
eHBvcnQta2V5LXBrY3M4LXAzODQuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCitjcnlwdG8vc3VidGxl
L2VjZGgtZ2VuZXJhdGUtZXhwb3J0LWtleS1wa2NzOC1wNTIxLmh0bWwgWyBGYWlsdXJlIFBhc3Mg
XQorY3J5cHRvL3N1YnRsZS9lY2RoLWdlbmVyYXRlLWV4cG9ydC1rZXktc3BraS1wMjU2Lmh0bWwg
WyBGYWlsdXJlIFBhc3MgXQorY3J5cHRvL3N1YnRsZS9lY2RoLWdlbmVyYXRlLWV4cG9ydC1rZXkt
c3BraS1wMzg0Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQorY3J5cHRvL3N1YnRsZS9lY2RoLWdlbmVy
YXRlLWV4cG9ydC1rZXktc3BraS1wNTIxLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQorY3J5cHRvL3N1
YnRsZS9lY2RoLWdlbmVyYXRlLWV4cG9ydC1qd2sta2V5LXAyNTYuaHRtbCBbIEZhaWx1cmUgUGFz
cyBdCitjcnlwdG8vc3VidGxlL2VjZGgtZ2VuZXJhdGUtZXhwb3J0LWp3ay1rZXktcDM4NC5odG1s
IFsgRmFpbHVyZSBQYXNzIF0KK2NyeXB0by9zdWJ0bGUvZWNkaC1nZW5lcmF0ZS1leHBvcnQtandr
LWtleS1wNTIxLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQorY3J5cHRvL3N1YnRsZS9lY2RoLWdlbmVy
YXRlLWV4cG9ydC1rZXktcmF3LXAyNTYuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCitjcnlwdG8vc3Vi
dGxlL2VjZGgtZ2VuZXJhdGUtZXhwb3J0LWtleS1yYXctcDM4NC5odG1sIFsgRmFpbHVyZSBQYXNz
IF0KK2NyeXB0by9zdWJ0bGUvZWNkaC1nZW5lcmF0ZS1leHBvcnQta2V5LXJhdy1wNTIxLmh0bWwg
WyBGYWlsdXJlIFBhc3MgXQorCisjIFRlc3RzIGV4cGxpY2l0bHkgZW5hYmxlZC4KK2NyeXB0by9z
dWJ0bGUvZGVyaXZlLWJpdHMtbWFsZm9ybWVkLXBhcmFtZXRlcnMuaHRtbCBbIFBhc3MgXQorY3J5
cHRvL3N1YnRsZS9kZXJpdmUta2V5LW1hbGZvcm1lZC1wYXJhbWV0ZXJzLmh0bWwgWyBQYXNzIF0K
K2NyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQtcGtjczgta2V5LXAyNTYtdmFsaWRhdGUtZWNwcml2
YXRla2V5LXBhcmFtZXRlcnMtcHVibGlja2V5Lmh0bWwgWyBQYXNzIF0KK2NyeXB0by9zdWJ0bGUv
ZWNkaC1pbXBvcnQtcGtjczgta2V5LXAzODQtdmFsaWRhdGUtZWNwcml2YXRla2V5LXBhcmFtZXRl
cnMtcHVibGlja2V5Lmh0bWwgWyBQYXNzIF0KK2NyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQtcGtj
czgta2V5LXA1MjEtdmFsaWRhdGUtZWNwcml2YXRla2V5LXBhcmFtZXRlcnMtcHVibGlja2V5Lmh0
bWwgWyBQYXNzIF0KK2NyeXB0by9zdWJ0bGUvZWNkaC1pbXBvcnQtc3BraS1rZXktZWNkaC1pZGVu
dGlmaWVyLmh0bWwgWyBQYXNzIF0KK2NyeXB0by9zdWJ0bGUvZWNkc2EtaW1wb3J0LXBrY3M4LWtl
eS1wMjU2LXZhbGlkYXRlLWVjcHJpdmF0ZWtleS1wYXJhbWV0ZXJzLXB1YmxpY2tleS5odG1sIFsg
UGFzcyBdCitjcnlwdG8vc3VidGxlL2VjZHNhLWltcG9ydC1wa2NzOC1rZXktcDM4NC12YWxpZGF0
ZS1lY3ByaXZhdGVrZXktcGFyYW1ldGVycy1wdWJsaWNrZXkuaHRtbCBbIFBhc3MgXQorY3J5cHRv
L3N1YnRsZS9lY2RzYS1pbXBvcnQtcGtjczgta2V5LXA1MjEtdmFsaWRhdGUtZWNwcml2YXRla2V5
LXBhcmFtZXRlcnMtcHVibGlja2V5Lmh0bWwgWyBQYXNzIF0KIGNyeXB0by9zdWJ0bGUvcnNhLXBz
cy1nZW5lcmF0ZS1leHBvcnQta2V5LWp3ay1zaGExLmh0bWwgWyBQYXNzIF0KIGNyeXB0by9zdWJ0
bGUvcnNhLXBzcy1nZW5lcmF0ZS1leHBvcnQta2V5LWp3ay1zaGEyMjQuaHRtbCBbIFBhc3MgXQog
Y3J5cHRvL3N1YnRsZS9yc2EtcHNzLWdlbmVyYXRlLWV4cG9ydC1rZXktandrLXNoYTI1Ni5odG1s
IFsgUGFzcyBdCkBAIC04NDYsMTMgKzc1NSwyOSBAQCBjcnlwdG8vc3VidGxlL3JzYS1wc3MtaW1w
b3J0LWp3ay1wdWJsaWMta2V5LXNoYTI1Ni5odG1sIFsgUGFzcyBdCiBjcnlwdG8vc3VidGxlL3Jz
YS1wc3MtaW1wb3J0LWp3ay1wdWJsaWMta2V5LXNoYTM4NC5odG1sIFsgUGFzcyBdCiBjcnlwdG8v
c3VidGxlL3JzYS1wc3MtaW1wb3J0LWp3ay1wdWJsaWMta2V5LXNoYTUxMi5odG1sIFsgUGFzcyBd
CiBjcnlwdG8vc3VidGxlL3JzYS1wc3MtaW1wb3J0LWtleS1zaWduLmh0bWwgWyBQYXNzIF0KLSMg
TGFyZ2Ugc2FsdCBzaG91bGQgYmUgc3VwcG9ydGVkLgotY3J5cHRvL3N1YnRsZS9yc2EtcHNzLWlt
cG9ydC1rZXktc2lnbi1sYXJnZS1zYWx0Lmh0bWwgWyBGYWlsdXJlIF0KIGNyeXB0by9zdWJ0bGUv
cnNhLXBzcy1pbXBvcnQta2V5LXZlcmlmeS5odG1sIFsgUGFzcyBdCiBjcnlwdG8vc3VidGxlL3Jz
YS1wc3MtaW1wb3J0LXBrY3M4LWtleS5odG1sIFsgUGFzcyBdCiBjcnlwdG8vc3VidGxlL3JzYS1w
c3MtaW1wb3J0LXNwa2kta2V5Lmh0bWwgWyBQYXNzIF0KIGNyeXB0by9zdWJ0bGUvcnNhLXBzcy1p
bXBvcnQtc3BraS1rZXktZW1wdHktdXNhZ2VzLmh0bWwgWyBQYXNzIF0KIAorIyBIS0RGIGFuZCBQ
QktERjIgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkLgorY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1r
ZXktZGVyaXZlLWhrZGYta2V5Lmh0bWwgWyBTa2lwIF0KK2NyeXB0by9zdWJ0bGUvZWNkaC1pbXBv
cnQta2V5LWRlcml2ZS1wYmtkZjIta2V5Lmh0bWwgWyBTa2lwIF0KK2NyeXB0by9zdWJ0bGUvaGtk
Zi1kZXJpdmUtYml0cy1sZW5ndGgtbGltaXRzLmh0bWwgWyBTa2lwIF0KK2NyeXB0by9zdWJ0bGUv
aGtkZi1kZXJpdmUtYml0cy1tYWxmb3JtZWQtcGFyYW1ldHJzLmh0bWwgWyBTa2lwIF0KK2NyeXB0
by9zdWJ0bGUvaGtkZi1pbXBvcnQta2V5Lmh0bWwgWyBTa2lwIF0KK2NyeXB0by9zdWJ0bGUvaGtk
Zi1pbXBvcnQta2V5LWRlcml2ZS1iaXRzLmh0bWwgWyBTa2lwIF0KK2NyeXB0by9zdWJ0bGUvaGtk
Zi1pbXBvcnQta2V5LWRlcml2ZS1obWFjLWtleS5odG1sIFsgU2tpcCBdCitjcnlwdG8vc3VidGxl
L2hrZGYtaW1wb3J0LWtleS1tYWxmb3JtZWQtcGFyYW1ldGVycy5odG1sIFsgU2tpcCBdCitjcnlw
dG8vc3VidGxlL3Bia2RmMi1kZXJpdmUtYml0cy1tYWxmb3JtZWQtcGFyYW1ldHJzLmh0bWwgWyBT
a2lwIF0KK2NyeXB0by9zdWJ0bGUvcGJrZGYyLWltcG9ydC1rZXkuaHRtbCBbIFNraXAgXQorY3J5
cHRvL3N1YnRsZS9wYmtkZjItaW1wb3J0LWtleS1kZXJpdmUtYml0cy5odG1sIFsgU2tpcCBdCitj
cnlwdG8vc3VidGxlL3Bia2RmMi1pbXBvcnQta2V5LWRlcml2ZS1obWFjLWtleS5odG1sIFsgU2tp
cCBdCitjcnlwdG8vc3VidGxlL3Bia2RmMi1pbXBvcnQta2V5LW1hbGZvcm1lZC1wYXJhbWV0ZXJz
Lmh0bWwgWyBTa2lwIF0KKworIyBMYXJnZSBzYWx0IHNob3VsZCBiZSBzdXBwb3J0ZWQuCitjcnlw
dG8vc3VidGxlL3JzYS1wc3MtaW1wb3J0LWtleS1zaWduLWxhcmdlLXNhbHQuaHRtbCBbIEZhaWx1
cmUgXQorCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjE1NjkK
IGNyeXB0by9jcnlwdG8tcmFuZG9tLXZhbHVlcy1vb20uaHRtbCBbIFNraXAgXQogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9jcnlwdG8vc3VidGxlL2VjLWdlbmVy
YXRlLWtleS1tYWxmb3JtZWQtcGFyYW1ldGVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW5jYWlyby9jcnlwdG8vc3VidGxlL2VjLWdlbmVyYXRlLWtleS1tYWxmb3JtZWQt
cGFyYW1ldGVycy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmU0NjVlNzZjMGJmNzc4ZTViZjNm
MzI1NjllOTIzZDRkYmNhZmMzNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbmNhaXJvL2NyeXB0by9zdWJ0bGUvZWMtZ2VuZXJhdGUta2V5LW1hbGZvcm1lZC1wYXJh
bWV0ZXJzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMwIEBACitUZXN0IGdlbmVyYXRpbmcgYW4g
RUMga2V5IHBhaXIgd2l0aCBtYWxmb3JtZWQtcGFyYW10ZXJzLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyBjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KCJlY2RoIiwgZXh0
cmFjdGFibGUsIFsiZGVyaXZlS2V5IiwgImRlcml2ZUJpdHMiXSkgcmVqZWN0ZWQgcHJvbWlzZSAg
d2l0aCBUeXBlRXJyb3I6IE1lbWJlciBFY0tleVBhcmFtcy5uYW1lZEN1cnZlIGlzIHJlcXVpcmVk
IGFuZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIERPTVN0cmluZy4KK1BBU1MgY3J5cHRvLnN1YnRs
ZS5nZW5lcmF0ZUtleSh7bmFtZTogImVjZGgifSwgZXh0cmFjdGFibGUsIFsiZGVyaXZlS2V5Iiwg
ImRlcml2ZUJpdHMiXSkgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBUeXBlRXJyb3I6IE1lbWJlciBF
Y0tleVBhcmFtcy5uYW1lZEN1cnZlIGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGFuIGluc3RhbmNl
IG9mIERPTVN0cmluZy4KK1BBU1MgY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogImVj
ZGgiLCBuYW1lZEN1cnZlOiB0cnVlfSwgZXh0cmFjdGFibGUsIFsiZGVyaXZlS2V5IiwgImRlcml2
ZUJpdHMiXSkgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBOb3RTdXBwb3J0ZWRFcnJvcjogVGhlIGFs
Z29yaXRobSBpcyBub3Qgc3VwcG9ydGVkLgorUEFTUyBjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5
KHtuYW1lOiAiZWNkaCIsIG5hbWVkQ3VydmU6IG51bGx9LCBleHRyYWN0YWJsZSwgWyJkZXJpdmVL
ZXkiLCAiZGVyaXZlQml0cyJdKSByZWplY3RlZCBwcm9taXNlICB3aXRoIE5vdFN1cHBvcnRlZEVy
cm9yOiBUaGUgYWxnb3JpdGhtIGlzIG5vdCBzdXBwb3J0ZWQuCitQQVNTIGNyeXB0by5zdWJ0bGUu
Z2VuZXJhdGVLZXkoe25hbWU6ICJlY2RoIiwgbmFtZWRDdXJ2ZTogdW5kZWZpbmVkfSwgZXh0cmFj
dGFibGUsIFsiZGVyaXZlS2V5IiwgImRlcml2ZUJpdHMiXSkgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0
aCBUeXBlRXJyb3I6IE1lbWJlciBFY0tleVBhcmFtcy5uYW1lZEN1cnZlIGlzIHJlcXVpcmVkIGFu
ZCBtdXN0IGJlIGFuIGluc3RhbmNlIG9mIERPTVN0cmluZy4KK1BBU1MgY3J5cHRvLnN1YnRsZS5n
ZW5lcmF0ZUtleSh7bmFtZTogImVjZGgiLCBuYW1lZEN1cnZlOiBTeW1ib2woKX0sIGV4dHJhY3Rh
YmxlLCBbImRlcml2ZUtleSIsICJkZXJpdmVCaXRzIl0pIHJlamVjdGVkIHByb21pc2UgIHdpdGgg
VHlwZUVycm9yOiBDYW5ub3QgY29udmVydCBhIHN5bWJvbCB0byBhIHN0cmluZy4KK1BBU1MgY3J5
cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogImVjZGgiLCBuYW1lZEN1cnZlOiB7IH19LCBl
eHRyYWN0YWJsZSwgWyJkZXJpdmVLZXkiLCAiZGVyaXZlQml0cyJdKSByZWplY3RlZCBwcm9taXNl
ICB3aXRoIE5vdFN1cHBvcnRlZEVycm9yOiBUaGUgYWxnb3JpdGhtIGlzIG5vdCBzdXBwb3J0ZWQu
CitQQVNTIGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoe25hbWU6ICJlY2RoIiwgbmFtZWRDdXJ2
ZTogMX0sIGV4dHJhY3RhYmxlLCBbImRlcml2ZUtleSIsICJkZXJpdmVCaXRzIl0pIHJlamVjdGVk
IHByb21pc2UgIHdpdGggTm90U3VwcG9ydGVkRXJyb3I6IFRoZSBhbGdvcml0aG0gaXMgbm90IHN1
cHBvcnRlZC4KK1BBU1MgY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogImVjZGgiLCBu
YW1lZEN1cnZlOiAiUC0yNTYifSwgZXh0cmFjdGFibGUsIFsiZW5jcnlwdCJdKSByZWplY3RlZCBw
cm9taXNlICB3aXRoIFN5bnRheEVycm9yOiBBIHJlcXVpcmVkIHBhcmFtZXRlciB3YXMgbWlzc2lu
ZyBvciBvdXQtb2YtcmFuZ2UuCitQQVNTIGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoe25hbWU6
ICJlY2RoIiwgbmFtZWRDdXJ2ZTogIlAtMjU2In0sIGV4dHJhY3RhYmxlLCBbImRlY3J5cHQiXSkg
cmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBTeW50YXhFcnJvcjogQSByZXF1aXJlZCBwYXJhbWV0ZXIg
d2FzIG1pc3Npbmcgb3Igb3V0LW9mLXJhbmdlLgorUEFTUyBjcnlwdG8uc3VidGxlLmdlbmVyYXRl
S2V5KHtuYW1lOiAiZWNkaCIsIG5hbWVkQ3VydmU6ICJQLTI1NiJ9LCBleHRyYWN0YWJsZSwgWyJz
aWduIl0pIHJlamVjdGVkIHByb21pc2UgIHdpdGggU3ludGF4RXJyb3I6IEEgcmVxdWlyZWQgcGFy
YW1ldGVyIHdhcyBtaXNzaW5nIG9yIG91dC1vZi1yYW5nZS4KK1BBU1MgY3J5cHRvLnN1YnRsZS5n
ZW5lcmF0ZUtleSh7bmFtZTogImVjZGgiLCBuYW1lZEN1cnZlOiAiUC0yNTYifSwgZXh0cmFjdGFi
bGUsIFsidmVyaWZ5Il0pIHJlamVjdGVkIHByb21pc2UgIHdpdGggU3ludGF4RXJyb3I6IEEgcmVx
dWlyZWQgcGFyYW1ldGVyIHdhcyBtaXNzaW5nIG9yIG91dC1vZi1yYW5nZS4KK1BBU1MgY3J5cHRv
LnN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogImVjZGgiLCBuYW1lZEN1cnZlOiAiUC0yNTYifSwg
ZXh0cmFjdGFibGUsIFsid3JhcEtleSJdKSByZWplY3RlZCBwcm9taXNlICB3aXRoIFN5bnRheEVy
cm9yOiBBIHJlcXVpcmVkIHBhcmFtZXRlciB3YXMgbWlzc2luZyBvciBvdXQtb2YtcmFuZ2UuCitQ
QVNTIGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoe25hbWU6ICJlY2RoIiwgbmFtZWRDdXJ2ZTog
IlAtMjU2In0sIGV4dHJhY3RhYmxlLCBbInVud3JhcEtleSJdKSByZWplY3RlZCBwcm9taXNlICB3
aXRoIFN5bnRheEVycm9yOiBBIHJlcXVpcmVkIHBhcmFtZXRlciB3YXMgbWlzc2luZyBvciBvdXQt
b2YtcmFuZ2UuCitQQVNTIGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoe25hbWU6ICJlY2RzYSIs
IG5hbWVkQ3VydmU6ICJQLTI1NiJ9LCBleHRyYWN0YWJsZSwgWyJlbmNyeXB0Il0pIHJlamVjdGVk
IHByb21pc2UgIHdpdGggU3ludGF4RXJyb3I6IEEgcmVxdWlyZWQgcGFyYW1ldGVyIHdhcyBtaXNz
aW5nIG9yIG91dC1vZi1yYW5nZS4KK1BBU1MgY3J5cHRvLnN1YnRsZS5nZW5lcmF0ZUtleSh7bmFt
ZTogImVjZHNhIiwgbmFtZWRDdXJ2ZTogIlAtMjU2In0sIGV4dHJhY3RhYmxlLCBbImRlY3J5cHQi
XSkgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBTeW50YXhFcnJvcjogQSByZXF1aXJlZCBwYXJhbWV0
ZXIgd2FzIG1pc3Npbmcgb3Igb3V0LW9mLXJhbmdlLgorUEFTUyBjcnlwdG8uc3VidGxlLmdlbmVy
YXRlS2V5KHtuYW1lOiAiZWNkc2EiLCBuYW1lZEN1cnZlOiAiUC0yNTYifSwgZXh0cmFjdGFibGUs
IFsiZGVyaXZlS2V5Il0pIHJlamVjdGVkIHByb21pc2UgIHdpdGggU3ludGF4RXJyb3I6IEEgcmVx
dWlyZWQgcGFyYW1ldGVyIHdhcyBtaXNzaW5nIG9yIG91dC1vZi1yYW5nZS4KK1BBU1MgY3J5cHRv
LnN1YnRsZS5nZW5lcmF0ZUtleSh7bmFtZTogImVjZHNhIiwgbmFtZWRDdXJ2ZTogIlAtMjU2In0s
IGV4dHJhY3RhYmxlLCBbImRlcml2ZUJpdHMiXSkgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBTeW50
YXhFcnJvcjogQSByZXF1aXJlZCBwYXJhbWV0ZXIgd2FzIG1pc3Npbmcgb3Igb3V0LW9mLXJhbmdl
LgorUEFTUyBjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5KHtuYW1lOiAiZWNkc2EiLCBuYW1lZEN1
cnZlOiAiUC0yNTYifSwgZXh0cmFjdGFibGUsIFsid3JhcEtleSJdKSByZWplY3RlZCBwcm9taXNl
ICB3aXRoIFN5bnRheEVycm9yOiBBIHJlcXVpcmVkIHBhcmFtZXRlciB3YXMgbWlzc2luZyBvciBv
dXQtb2YtcmFuZ2UuCitQQVNTIGNyeXB0by5zdWJ0bGUuZ2VuZXJhdGVLZXkoe25hbWU6ICJlY2Rz
YSIsIG5hbWVkQ3VydmU6ICJQLTI1NiJ9LCBleHRyYWN0YWJsZSwgWyJ1bndyYXBLZXkiXSkgcmVq
ZWN0ZWQgcHJvbWlzZSAgd2l0aCBTeW50YXhFcnJvcjogQSByZXF1aXJlZCBwYXJhbWV0ZXIgd2Fz
IG1pc3Npbmcgb3Igb3V0LW9mLXJhbmdlLgorRkFJTCBjcnlwdG8uc3VidGxlLmdlbmVyYXRlS2V5
KHtuYW1lOiAiZWNkaCIsIG5hbWVkQ3VydmU6ICJQLTUyMSJ9LCBleHRyYWN0YWJsZSwgWyJkZXJp
dmVLZXkiXSkgc2hvdWxkIHJlamVjdCBwcm9taXNlLiBSZXNvbHZlZCB3aXRoIFtvYmplY3QgT2Jq
ZWN0XS4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9jcnlwdG8vc3VidGxl
L2VjZGgtZGVyaXZlLWJpdHMtbGVuZ3RoLWxpbWl0cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW5jYWlyby9jcnlwdG8vc3VidGxlL2VjZGgtZGVyaXZlLWJpdHMtbGVuZ3Ro
LWxpbWl0cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjcyMDliMGMwNDhlMDdlNmM2MDVmMTlj
OGY2NWE4ZjU2NWUxMzM5NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbmNhaXJvL2NyeXB0by9zdWJ0bGUvZWNkaC1kZXJpdmUtYml0cy1sZW5ndGgtbGltaXRzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDI0IEBACitUZXN0IEVDREggZGVyaXZlQml0cyBvcGVyYXRp
b24gZm9yIGNvcm5lci1jYXNlIGxlbmd0aCB2YWx1ZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIGRlcml2ZUJpdHMoLi4uLCAwKSBzdWNjZXNzZnVsbHkgZGVyaXZlZCAy
NTYgYml0cyBmb3IgYSBQLTI1NiBjdXJ2ZQorUEFTUyBkZXJpdmVCaXRzKC4uLiwgOCkgc3VjY2Vz
c2Z1bGx5IGRlcml2ZWQgOCBiaXRzIGZvciBhIFAtMjU2IGN1cnZlCitQQVNTIGRlcml2ZUJpdHMo
Li4uLCAyNTYpIHN1Y2Nlc3NmdWxseSBkZXJpdmVkIDI1NiBiaXRzIGZvciBhIFAtMjU2IGN1cnZl
CitQQVNTIEJpdCBkZXJpdmF0aW9ucyBmb3IgRUMgUC0yNTYgd2l0aCBtaW5pbXVtIGFuZCBtYXhp
bXVtIGxlbmd0aHMgc3VjY2VlZGVkCitQQVNTIGRlcml2ZUJpdHMoUDI1NiwgMjU2ICsgOCkgcmVq
ZWN0ZWQgcHJvbWlzZSAgd2l0aCBPcGVyYXRpb25FcnJvcjogVGhlIG9wZXJhdGlvbiBmYWlsZWQg
Zm9yIGFuIG9wZXJhdGlvbi1zcGVjaWZpYyByZWFzb24uCitQQVNTIGRlcml2ZUJpdHMoLi4uLCAw
KSBzdWNjZXNzZnVsbHkgZGVyaXZlZCAzODQgYml0cyBmb3IgYSBQLTM4NCBjdXJ2ZQorUEFTUyBk
ZXJpdmVCaXRzKC4uLiwgOCkgc3VjY2Vzc2Z1bGx5IGRlcml2ZWQgOCBiaXRzIGZvciBhIFAtMzg0
IGN1cnZlCitQQVNTIGRlcml2ZUJpdHMoLi4uLCAzODQpIHN1Y2Nlc3NmdWxseSBkZXJpdmVkIDM4
NCBiaXRzIGZvciBhIFAtMzg0IGN1cnZlCitQQVNTIEJpdCBkZXJpdmF0aW9ucyBmb3IgRUMgUC0z
ODQgd2l0aCBtaW5pbXVtIGFuZCBtYXhpbXVtIGxlbmd0aHMgc3VjY2VlZGVkCitQQVNTIGRlcml2
ZUJpdHMoUDM4NCwgMzg0ICsgOCkgcmVqZWN0ZWQgcHJvbWlzZSAgd2l0aCBPcGVyYXRpb25FcnJv
cjogVGhlIG9wZXJhdGlvbiBmYWlsZWQgZm9yIGFuIG9wZXJhdGlvbi1zcGVjaWZpYyByZWFzb24u
CitQQVNTIGRlcml2ZUJpdHMoLi4uLCAwKSBzdWNjZXNzZnVsbHkgZGVyaXZlZCA1MjggYml0cyBm
b3IgYSBQLTUyMSBjdXJ2ZQorUEFTUyBkZXJpdmVCaXRzKC4uLiwgOCkgc3VjY2Vzc2Z1bGx5IGRl
cml2ZWQgOCBiaXRzIGZvciBhIFAtNTIxIGN1cnZlCitQQVNTIGRlcml2ZUJpdHMoLi4uLCA1Mjgp
IHN1Y2Nlc3NmdWxseSBkZXJpdmVkIDUyOCBiaXRzIGZvciBhIFAtNTIxIGN1cnZlCitQQVNTIEJp
dCBkZXJpdmF0aW9ucyBmb3IgRUMgUC01MjEgd2l0aCBtaW5pbXVtIGFuZCBtYXhpbXVtIGxlbmd0
aHMgc3VjY2VlZGVkCitQQVNTIGRlcml2ZUJpdHMoUDUyMSwgNTI4ICsgOCkgcmVqZWN0ZWQgcHJv
bWlzZSAgd2l0aCBPcGVyYXRpb25FcnJvcjogVGhlIG9wZXJhdGlvbiBmYWlsZWQgZm9yIGFuIG9w
ZXJhdGlvbi1zcGVjaWZpYyByZWFzb24uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
Y2Fpcm8vY3J5cHRvL3N1YnRsZS9lY2RoLWltcG9ydC1zcGtpLWtleS1lY2RoLWlkZW50aWZpZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vY3J5cHRvL3N1YnRs
ZS9lY2RoLWltcG9ydC1zcGtpLWtleS1lY2RoLWlkZW50aWZpZXItZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjNkYmZkYjc2NjUyMDllMzM4NTVhMzM4YmE1ZmE1ZDZlMWMyZDkyZDQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9jcnlwdG8vc3VidGxlL2Vj
ZGgtaW1wb3J0LXNwa2kta2V5LWVjZGgtaWRlbnRpZmllci1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzMCBAQAorVGVzdCBpbXBvcnRpbmcgUC0yNTYsIFAtMzg0IGFuZCBQLTUyMSBTUEtJIEVDREgg
a2V5cyB0aGF0IGFyZSB1c2luZyB0aGUgZWNESCBhbGdvcml0aG0gaWRlbnRpZmllcgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworSW1wb3J0aW5nIGEgUC0yNTYga2V5IHRoYXQgdXNl
cyB0aGUgZWNESCBhbGdvcml0aG0gaWRlbnRpZmllciAuLi4KK1BBU1MgcHVibGljS2V5LnRvU3Ry
aW5nKCkgaXMgJ1tvYmplY3QgQ3J5cHRvS2V5XScKK1BBU1MgcHVibGljS2V5LnR5cGUgaXMgJ3B1
YmxpYycKK1BBU1MgcHVibGljS2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKK1BBU1MgcHVibGljS2V5
LmFsZ29yaXRobS5uYW1lIGlzICdFQ0RIJworUEFTUyBwdWJsaWNLZXkuYWxnb3JpdGhtLm5hbWVk
Q3VydmUgaXMgJ1AtMjU2JworUEFTUyBwdWJsaWNLZXkudXNhZ2VzIGlzIFsgXQorSW1wb3J0aW5n
IGEgUC0zODQga2V5IHRoYXQgdXNlcyB0aGUgZWNESCBhbGdvcml0aG0gaWRlbnRpZmllciAuLi4K
K1BBU1MgcHVibGljS2V5LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgQ3J5cHRvS2V5XScKK1BBU1Mg
cHVibGljS2V5LnR5cGUgaXMgJ3B1YmxpYycKK1BBU1MgcHVibGljS2V5LmV4dHJhY3RhYmxlIGlz
IHRydWUKK1BBU1MgcHVibGljS2V5LmFsZ29yaXRobS5uYW1lIGlzICdFQ0RIJworUEFTUyBwdWJs
aWNLZXkuYWxnb3JpdGhtLm5hbWVkQ3VydmUgaXMgJ1AtMzg0JworUEFTUyBwdWJsaWNLZXkudXNh
Z2VzIGlzIFsgXQorSW1wb3J0aW5nIGEgUC01MjEga2V5IHRoYXQgdXNlcyB0aGUgZWNESCBhbGdv
cml0aG0gaWRlbnRpZmllciAuLi4KK1BBU1MgcHVibGljS2V5LnRvU3RyaW5nKCkgaXMgJ1tvYmpl
Y3QgQ3J5cHRvS2V5XScKK1BBU1MgcHVibGljS2V5LnR5cGUgaXMgJ3B1YmxpYycKK1BBU1MgcHVi
bGljS2V5LmV4dHJhY3RhYmxlIGlzIHRydWUKK1BBU1MgcHVibGljS2V5LmFsZ29yaXRobS5uYW1l
IGlzICdFQ0RIJworUEFTUyBwdWJsaWNLZXkuYWxnb3JpdGhtLm5hbWVkQ3VydmUgaXMgJ1AtNTIx
JworUEFTUyBwdWJsaWNLZXkudXNhZ2VzIGlzIFsgXQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
</data>

          </attachment>
      

    </bug>

</bugzilla>