<?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>227403</bug_id>
          
          <creation_ts>2021-06-25 08:08:36 -0700</creation_ts>
          <short_desc>[GStreamer][EME] Fix resources release when a MediaKeySession is closed</short_desc>
          <delta_ts>2021-06-28 23:13:16 -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>New Bugs</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Xabier Rodríguez Calvar">calvaris</reporter>
          <assigned_to name="Xabier Rodríguez Calvar">calvaris</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>jer.noble</cc>
    
    <cc>menard</cc>
    
    <cc>philipj</cc>
    
    <cc>philn</cc>
    
    <cc>pnormand</cc>
    
    <cc>sergio</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1772686</commentid>
    <comment_count>0</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2021-06-25 08:08:36 -0700</bug_when>
    <thetext>[GStreamer][EME] Fix resources release when a MediaKeySession is closed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772692</commentid>
    <comment_count>1</comment_count>
      <attachid>432273</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2021-06-25 08:32:30 -0700</bug_when>
    <thetext>Created attachment 432273
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772700</commentid>
    <comment_count>2</comment_count>
      <attachid>432273</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-06-25 08:51:43 -0700</bug_when>
    <thetext>Comment on attachment 432273
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/eme/CDMThunder.cpp:589
&gt; -    if (!m_session || m_sessionID.isEmpty() || opencdm_session_update(m_session.get(), response-&gt;data(), response-&gt;size()))
&gt; +    if (!m_session || m_sessionID.isEmpty() || opencdm_session_update(m_session-&gt;get(), response-&gt;dataAsUInt8Ptr(), response-&gt;size()))

dataAsUInt8Ptr does not exist anymore. Please revert this part.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772703</commentid>
    <comment_count>3</comment_count>
      <attachid>432277</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2021-06-25 09:09:52 -0700</bug_when>
    <thetext>Created attachment 432277
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772985</commentid>
    <comment_count>4</comment_count>
      <attachid>432277</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-06-28 01:32:11 -0700</bug_when>
    <thetext>Comment on attachment 432277
Patch

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

&gt; Source/WebCore/ChangeLog:21
&gt; +        are only needed in the CDMProxy class, which is there they are

s/there/where?

&gt; Source/WebCore/ChangeLog:28
&gt; +        shared among different sessions. We were managing session
&gt; +        references in other stores and they were messing up with the
&gt; +        session in the CDMProxy class, that prevented sessions from
&gt; +        staying when there are other MediaKeySessions referencing the same
&gt; +        key IDs and from being removed then a session was closed and there
&gt; +        was only that reference in the CDMProxy (because they could be
&gt; +        held by the other stores, where references are unnecessary.

This sentence is 7 lines long :) I had some trouble to parse it too.

&gt; Source/WebCore/platform/encryptedmedia/CDMProxy.cpp:186
&gt; +void KeyStore::removeAllKeys()

clear() maybe?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773075</commentid>
    <comment_count>5</comment_count>
      <attachid>432396</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2021-06-28 08:19:53 -0700</bug_when>
    <thetext>Created attachment 432396
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773330</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-28 23:12:01 -0700</bug_when>
    <thetext>Committed r279363 (239229@main): &lt;https://commits.webkit.org/239229@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 432396.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1773331</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-28 23:13:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/79899771&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432273</attachid>
            <date>2021-06-25 08:32:30 -0700</date>
            <delta_ts>2021-06-25 09:15:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227403-20210625173229.patch</filename>
            <type>text/plain</type>
            <size>18161</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTFjMjZmZDc0OTFhMmEz
N2JhMjk1YzIzMTc5MDdjMTc3MjIzOTA3Mi4uZTdkZDVlZGZmMmJkNTQ2MDhlMzA1N2RmYzcxOTZi
N2RhZWZiZWU2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDIxLTA2LTI1ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dT
dHJlYW1lcl1bRU1FXSBGaXggcmVzb3VyY2VzIHJlbGVhc2Ugd2hlbiBhIE1lZGlhS2V5U2Vzc2lv
biBpcyBjbG9zZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyNzQwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRodW5kZXIgc2Vzc2lvbnMgc2hvdWxkIGJlIGEgQm94UHRyLCBhbHJlYWR5IHdoZW4gc3Rv
cmVkIGF0IHRoZQorICAgICAgICBDRE1JbnN0YW5jZVNlc3Npb25UaHVuZGVyLCBpdCBkb2VzIG5v
dCBtYWtlIHNlbnNlIHRvIHN0b3JlIHRoZW4gaW4KKyAgICAgICAgYSB1bmlxdWVfcHRyLiBUaGlz
IHdheSB0aGUgc2FtZSBzZXNzaW9uIGxpdmVzIGluIHRoZQorICAgICAgICBNZWRpYUtleVNlc3Np
b24gd3JhcHBlciAoQ0RNSW5zdGFuY2VTZXNzaW9uVGh1bmRlcikgYW5kIGluc2lkZSB0aGUKKyAg
ICAgICAgS2V5U3RvcmVzLgorCisgICAgICAgIFJlbW92ZWQgdGhlIENETUluc3RhbmNlUHJveHkg
a2V5IHN0b3JlLiBJdCBpcyBub3QgbmVlZGVkLgorCisgICAgICAgIFdoZW4gYSBzZXNzaW9uIGlz
IGNsb3NlZCBpbiBUaHVuZGVyLCB0aGVyZSBzaG91bGQgYmUgYSBjYXNjYWRlIHRvCisgICAgICAg
IHJlbW92ZSBpdCBmcm9tIHRoZSBvdGhlciBzeW5jZWQgc3RvcmVzLCB0aGF0J3Mgd2h5IHdlIGlu
dHJvZHVjZQorICAgICAgICB0aGUgcmVtb3ZlQWxsS2V5c0Zyb20gbG9naWMuCisKKyAgICAgICAg
UmVndWxhciBrZXkgc3RvcmVzIGRvIG5vdCBtYW5hZ2Ugc2Vzc2lvbiByZWZlcmVuY2VzIGFueW1v
cmUuIFRoZXkKKyAgICAgICAgYXJlIG9ubHkgbmVlZGVkIGluIHRoZSBDRE1Qcm94eSBjbGFzcywg
d2hpY2ggaXMgdGhlcmUgdGhleSBhcmUKKyAgICAgICAgc2hhcmVkIGFtb25nIGRpZmZlcmVudCBz
ZXNzaW9ucy4gV2Ugd2VyZSBtYW5hZ2luZyBzZXNzaW9uCisgICAgICAgIHJlZmVyZW5jZXMgaW4g
b3RoZXIgc3RvcmVzIGFuZCB0aGV5IHdlcmUgbWVzc2luZyB1cCB3aXRoIHRoZQorICAgICAgICBz
ZXNzaW9uIGluIHRoZSBDRE1Qcm94eSBjbGFzcywgdGhhdCBwcmV2ZW50ZWQgc2Vzc2lvbnMgZnJv
bQorICAgICAgICBzdGF5aW5nIHdoZW4gdGhlcmUgYXJlIG90aGVyIE1lZGlhS2V5U2Vzc2lvbnMg
cmVmZXJlbmNpbmcgdGhlIHNhbWUKKyAgICAgICAga2V5IElEcyBhbmQgZnJvbSBiZWluZyByZW1v
dmVkIHRoZW4gYSBzZXNzaW9uIHdhcyBjbG9zZWQgYW5kIHRoZXJlCisgICAgICAgIHdhcyBvbmx5
IHRoYXQgcmVmZXJlbmNlIGluIHRoZSBDRE1Qcm94eSAoYmVjYXVzZSB0aGV5IGNvdWxkIGJlCisg
ICAgICAgIGhlbGQgYnkgdGhlIG90aGVyIHN0b3Jlcywgd2hlcmUgcmVmZXJlbmNlcyBhcmUgdW5u
ZWNlc3NhcnkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpLZXlTdG9yZTo6bWVyZ2UpOiBTaW1wbGlmaWVkIHRvIGp1
c3QgYWRkIGtleXMuCisgICAgICAgIChXZWJDb3JlOjpLZXlTdG9yZTo6YWRkKTogQWRkcyByZWZl
cmVuY2VzIChpZiBuZWVkZWQpIGFuZCBtZXJnZXMKKyAgICAgICAgaWYgbmVlZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6S2V5U3RvcmU6OnJlbW92ZUFsbEtleXMpOiBSZW1vdmVzIGFsbCBrZXlzIGZy
b20gYSBzdG9yZQorICAgICAgICBieSBjb3B5aW5nIGl0c2VsZiBhbmQgY2FsbGluZyByZW1vdmVB
bGxLZXlzRnJvbSB0aGF0IGNvcHkuCisgICAgICAgIChXZWJDb3JlOjpLZXlTdG9yZTo6cmVtb3Zl
KTogVXNlcyBwcm9wZXIgcmVmZWZlbmNpbmcuCisgICAgICAgIChXZWJDb3JlOjpDRE1Qcm94eTo6
cmVtb3ZlQWxsS2V5c0Zyb20pOiBNZXRob2QgdG8gcmVtb3ZlIGFsbCBrZXlzCisgICAgICAgIHRo
YXQgYXJlIGNvbnRhaW5lZCBpbiBzb21lIG90aGVyIHN0b3JlLgorICAgICAgICAoV2ViQ29yZTo6
Q0RNSW5zdGFuY2VQcm94eTo6bWVyZ2VLZXlzRnJvbSk6IFRoZXJlIGlzIG5vIG1vcmUga2V5Cisg
ICAgICAgIHN0b3JlIGluIHRoaXMgY2xhc3MuCisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5j
ZVByb3h5OjpyZW1vdmVBbGxLZXlzRnJvbSk6IENhbGxzIHRoZSBDRE1wcm94eQorICAgICAgICB0
byByZW1vdmUgdGhlIGtleXMgZnJvbSB0aGVyZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9lbmNyeXB0
ZWRtZWRpYS9DRE1Qcm94eS5oOgorICAgICAgICAoV2ViQ29yZTo6S2V5SGFuZGxlOjptZXJnZUtl
eUludG8pOiBNZXJnZXMgb25lIGtleSBpbnRvIHNlbGYgYnkKKyAgICAgICAgY29weWluZyBzdGF0
dXMsIGRhdGEgYW5kIHN1bW1pbmcgcmVmZXJlbmNlIGNvdW50LgorICAgICAgICAoV2ViQ29yZTo6
S2V5SGFuZGxlOjpudW1TZXNzaW9uUmVmZXJlbmNlcyBjb25zdCk6IFR1cm4gaW50LgorICAgICAg
ICAoV2ViQ29yZTo6S2V5SGFuZGxlOjppc0xhc3RSZWZlcmVuY2UgY29uc3QpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OktleVN0b3JlOjphZGRTZXNzaW9uUmVmZXJlbmNlVG8gY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6S2V5U3RvcmU6OnJlbW92ZVNlc3Npb25SZWZlcmVuY2VGcm9tIGNv
bnN0KTogSGVscGVycyB0bworICAgICAgICBjaGVjayBpZiB0aGUgc3RvcmUgaXMgcmVmZXJlbmNl
IGNvdW50ZWQgb3Igbm90LiBEZWZhdWx0IGlzIGRvCisgICAgICAgIG5vdGhpbmcgYW5kIGJ1dCB0
aGUgUmVmZXJlbmNlQXdhcmVLZXlTdG9yZSByZWRlZmluZXMgdGhlbSB0byBkbworICAgICAgICBy
ZWZlcmVuY2UgY291bnRpbmcuCisgICAgICAgIChXZWJDb3JlOjpLZXlTdG9yZTo6cmVtb3ZlQWxs
S2V5cyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2Vt
ZS9DRE1UaHVuZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2Vt
ZS9DRE1UaHVuZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvblRo
dW5kZXI6OnN0YXR1cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Np
b25UaHVuZGVyOjprZXlVcGRhdGVkQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5z
dGFuY2VTZXNzaW9uVGh1bmRlcjo6cmVxdWVzdExpY2Vuc2UpOgorICAgICAgICAoV2ViQ29yZTo6
Q0RNSW5zdGFuY2VTZXNzaW9uVGh1bmRlcjo6dXBkYXRlTGljZW5zZSk6CisgICAgICAgIChXZWJD
b3JlOjpDRE1JbnN0YW5jZVNlc3Npb25UaHVuZGVyOjpyZW1vdmVTZXNzaW9uRGF0YSk6CisgICAg
ICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb25UaHVuZGVyOjpsb2FkU2Vzc2lvbik6IFVz
ZSBCb3hQdHIgaW4KKyAgICAgICAgdGhlIHNlc3Npb24uCisgICAgICAgIChXZWJDb3JlOjpDRE1J
bnN0YW5jZVNlc3Npb25UaHVuZGVyOjpjbG9zZVNlc3Npb24pOiBDbG9zZSB0aGUKKyAgICAgICAg
Y3VycmVudCBzZXNzaW9uLCByZWxlYXNlIHRoZSBCb3hQdHIsIG5vdGlmeSB0aGUgaW5zdGFuY2Ug
YW5kCisgICAgICAgIHRoZXJlZm9yZSB0aGUgcHJveHkgdG8gcmVtb3ZlIGFsbCB0aGV5IGtleSBJ
RHMgaW4gdGhpcyBzZXNzaW9uIGFuZAorICAgICAgICBlbXB0eSB0aGUgbG9jYWwga2V5IHN0b3Jl
LgorCiAyMDIxLTA2LTE4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAg
ICAgW1dlYklETF0gQXNzaWduaW5nIGEgdmFsdWUgb3V0c2lkZSB0aGUgZmxvYXQgcmFuZ2UgdG8g
YSAnZmxvYXQnIGF0dHJpYnV0ZSBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3IKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmNwcAppbmRleCBl
N2Q2N2JmNDNlMDgxODI5N2U2MzQ2Nzg2OGI2NjBhYTg4YTgyMWY4Li5mNjgzMTdmNTgzYTk0ZTVk
YzMxMjI3NDQ2MGI5YjRlN2Q5Yjg5MjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuY3BwCkBAIC0xMTcsMTggKzExNyw4IEBAIHZv
aWQgS2V5U3RvcmU6Om1lcmdlKGNvbnN0IEtleVN0b3JlJiBvdGhlcikKIHsKICAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOwogICAgIExPRyhFTUUsICJFTUUgLSBDRE1Qcm94eSAtIG1lcmdpbmcg
JXUgbmV3IGtleXMgaW50byBhIGtleSBzdG9yZSBvZiAldSBrZXlzIiwgb3RoZXIubnVtS2V5cygp
LCBudW1LZXlzKCkpOwotICAgIGZvciAoY29uc3QgYXV0byYga2V5IDogb3RoZXIpIHsKLSAgICAg
ICAgLy8gTk9URTogRG8gd2UgY2FyZSB0aGF0IHdlIHdpbGwgbm90IGFwcGVuZCBhIGtleSBpZiBp
dCBtYXRjaGVzIGEga2V5IElECi0gICAgICAgIC8vIGluIHRoZSBrZXlzdG9yZSBhbmQgaGFzIGRp
ZmZlcmVudCBkYXRhLiBTaG91bGQgd2Ugb3ZlcndyaXRlPyBXaGljaCBpcyAibmV3ZXIiPwotICAg
ICAgICAvLyBEb24ndCB0aGluayB3ZSBuZWVkIHRoaXMgZXh0cmEgY29tcGxleGl0eS4KLSAgICAg
ICAgc2l6ZV90IGtleVdpdGhNYXRjaGluZ0tleUlESW5kZXggPSBtX2tleXMuZmluZE1hdGNoaW5n
KFsmXSAoY29uc3QgUmVmUHRyPEtleUhhbmRsZT4mIHN0b3JlZEtleSkgeyByZXR1cm4gKmtleSA9
PSAqc3RvcmVkS2V5OyB9KTsKLSAgICAgICAgaWYgKGtleVdpdGhNYXRjaGluZ0tleUlESW5kZXgg
PT0gV1RGOjpub3RGb3VuZCkKLSAgICAgICAgICAgIG1fa2V5cy5hcHBlbmQoa2V5KTsKLSAgICAg
ICAgZWxzZSB7Ci0gICAgICAgICAgICBMT0coRU1FLCAiRU1FIC0gQ0RNUHJveHkgLSBrZXlzIHdp
dGggdGhlIHNhbWUgSUQhIik7Ci0gICAgICAgICAgICBBU1NFUlQoa2V5LT52YWx1ZSgpID09IG1f
a2V5c1trZXlXaXRoTWF0Y2hpbmdLZXlJREluZGV4XS0+dmFsdWUoKSk7Ci0gICAgICAgIH0KLSAg
ICB9CisgICAgZm9yIChjb25zdCBhdXRvJiBrZXkgOiBvdGhlcikKKyAgICAgICAgYWRkKGtleS5j
b3B5UmVmKCkpOwogCiAjaWYgIUxPR19ESVNBQkxFRAogICAgIExPRyhFTUUsICJFTUUgLSBDRE1Q
cm94eSAtIGtleSBzdG9yZSBub3cgaGFzICV1IGtleXMiLCBudW1LZXlzKCkpOwpAQCAtMTYyLDE0
ICsxNTIsMTUgQEAgYm9vbCBLZXlTdG9yZTo6YWRkKFJlZlB0cjxLZXlIYW5kbGU+JiYga2V5KQog
ICAgICAgICByZXR1cm4gKmtleSA9PSAqc3RvcmVkS2V5OwogICAgIH0pOwogCisgICAgYWRkU2Vz
c2lvblJlZmVyZW5jZVRvKGtleSk7CiAgICAgaWYgKGtleVdpdGhNYXRjaGluZ0tleUlESW5kZXgg
IT0gV1RGOjpub3RGb3VuZCkgewogICAgICAgICBhdXRvJiBrZXlXaXRoTWF0Y2hpbmdLZXlJRCA9
IG1fa2V5c1trZXlXaXRoTWF0Y2hpbmdLZXlJREluZGV4XTsKLSAgICAgICAgZGlkU3RvcmVDaGFu
Z2UgPSBrZXlXaXRoTWF0Y2hpbmdLZXlJRCA9PSBrZXk7CisgICAgICAgIGRpZFN0b3JlQ2hhbmdl
ID0ga2V5V2l0aE1hdGNoaW5nS2V5SUQgIT0ga2V5OwogICAgICAgICBpZiAoZGlkU3RvcmVDaGFu
Z2UpCi0gICAgICAgICAgICBrZXlXaXRoTWF0Y2hpbmdLZXlJRCA9IGtleTsKKyAgICAgICAgICAg
IGtleVdpdGhNYXRjaGluZ0tleUlELT5tZXJnZUtleUludG8oV1RGTW92ZShrZXkpKTsKICAgICB9
IGVsc2UgewogICAgICAgICBMT0coRU1FLCAiRU1FIC0gQ2xlYXJLZXkgLSBOZXcga2V5IHdpdGgg
SUQgJXMgZ2V0dGluZyBhZGRlZCB0byBrZXkgc3RvcmUiLCBrZXktPmlkQXNTdHJpbmcoKS5hc2Np
aSgpLmRhdGEoKSk7ICAgICAgCi0gICAgICAgIG1fa2V5cy5hcHBlbmQoa2V5KTsKKyAgICAgICAg
bV9rZXlzLmFwcGVuZChXVEZNb3ZlKGtleSkpOwogICAgICAgICBkaWRTdG9yZUNoYW5nZSA9IHRy
dWU7CiAgICAgfQogCkBAIC0xODMsNyArMTc0LDYgQEAgYm9vbCBLZXlTdG9yZTo6YWRkKFJlZlB0
cjxLZXlIYW5kbGU+JiYga2V5KQogICAgICAgICAgICAgfSk7CiAgICAgfQogCi0gICAga2V5LT5h
ZGRTZXNzaW9uUmVmZXJlbmNlKCk7CiAgICAgcmV0dXJuIGRpZFN0b3JlQ2hhbmdlOwogfQogCkBA
IC0xOTMsMTcgKzE4MywyMyBAQCB2b2lkIEtleVN0b3JlOjpyZW1vdmVBbGxLZXlzRnJvbShjb25z
dCBLZXlTdG9yZSYgb3RoZXIpCiAgICAgICAgIHJlbW92ZShrZXkpOwogfQogCit2b2lkIEtleVN0
b3JlOjpyZW1vdmVBbGxLZXlzKCkKK3sKKyAgICBLZXlTdG9yZSBzdG9yZSgqdGhpcyk7CisgICAg
cmVtb3ZlQWxsS2V5c0Zyb20oc3RvcmUpOworfQorCiBib29sIEtleVN0b3JlOjpyZW1vdmUoY29u
c3QgUmVmUHRyPEtleUhhbmRsZT4mIGtleSkKIHsKICAgICBib29sIHN0b3JlQ2hhbmdlZCA9IGZh
bHNlOwogCiAgICAgc2l6ZV90IGtleVdpdGhNYXRjaGluZ0tleUlESW5kZXggPSBtX2tleXMuZmlu
ZChrZXkpOwotICAgIExPRyhFTUUsICJFTUUgLSBDbGVhcktleSAtIHJlcXVlc3RlZCB0byByZW1v
dmUga2V5IHdpdGggSUQgJXMgYW5kICV1IHNlc3Npb24gcmVmZXJlbmNlcyIsIGtleS0+aWRBc1N0
cmluZygpLmFzY2lpKCkuZGF0YSgpLCBrZXktPm51bVNlc3Npb25SZWZlcmVuY2VzKCkpOworICAg
IExPRyhFTUUsICJFTUUgLSBDbGVhcktleSAtIHJlcXVlc3RlZCB0byByZW1vdmUga2V5IHdpdGgg
SUQgJXMgYW5kICVkIHNlc3Npb24gcmVmZXJlbmNlcyIsIGtleS0+aWRBc1N0cmluZygpLmFzY2lp
KCkuZGF0YSgpLCBrZXktPm51bVNlc3Npb25SZWZlcmVuY2VzKCkpOwogCiAgICAgaWYgKGtleVdp
dGhNYXRjaGluZ0tleUlESW5kZXggIT0gV1RGOjpub3RGb3VuZCkgewogICAgICAgICBhdXRvJiBr
ZXlXaXRoTWF0Y2hpbmdLZXlJRCA9IG1fa2V5c1trZXlXaXRoTWF0Y2hpbmdLZXlJREluZGV4XTsK
LSAgICAgICAga2V5V2l0aE1hdGNoaW5nS2V5SUQtPnJlbW92ZVNlc3Npb25SZWZlcmVuY2UoKTsK
LSAgICAgICAgaWYgKCFrZXlXaXRoTWF0Y2hpbmdLZXlJRC0+bnVtU2Vzc2lvblJlZmVyZW5jZXMo
KSkgeworICAgICAgICByZW1vdmVTZXNzaW9uUmVmZXJlbmNlRnJvbShrZXlXaXRoTWF0Y2hpbmdL
ZXlJRCk7CisgICAgICAgIGlmIChrZXlXaXRoTWF0Y2hpbmdLZXlJRC0+aXNMYXN0UmVmZXJlbmNl
KCkpIHsKICAgICAgICAgICAgIExPRyhFTUUsICJFTUUgLSBDbGVhcktleSAtIHJlbW92ZSBrZXkg
d2l0aCBJRCAlcyIsIGtleVdpdGhNYXRjaGluZ0tleUlELT5pZEFzU3RyaW5nKCkuYXNjaWkoKS5k
YXRhKCkpOwogICAgICAgICAgICAgbV9rZXlzLnJlbW92ZShrZXlXaXRoTWF0Y2hpbmdLZXlJRElu
ZGV4KTsKICAgICAgICAgICAgIHN0b3JlQ2hhbmdlZCA9IHRydWU7CkBAIC0yNDgsNiArMjQ0LDE0
IEBAIGNvbnN0IENETUluc3RhbmNlUHJveHkqIENETVByb3h5OjppbnN0YW5jZSgpIGNvbnN0CiAg
ICAgcmV0dXJuIG1faW5zdGFuY2U7CiB9CiAKK3ZvaWQgQ0RNUHJveHk6OnJlbW92ZUFsbEtleXNG
cm9tKGNvbnN0IEtleVN0b3JlJiBrZXlTdG9yZSkKK3sKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9r
ZXlzTG9jayB9OworICAgIG1fa2V5U3RvcmUucmVtb3ZlQWxsS2V5c0Zyb20oa2V5U3RvcmUpOwor
ICAgIExPRyhFTUUsICJFTUUgLSBDRE1Qcm94eSAtIHJlbW92aW5nIGZyb20ga2V5IHN0b3JlIGZy
b20gYSBzZXNzaW9uIGNsb3N1cmUiKTsKKyAgICBtX2tleXNDb25kaXRpb24ubm90aWZ5QWxsKCk7
Cit9CisKIHZvaWQgQ0RNUHJveHk6OnNldEluc3RhbmNlKENETUluc3RhbmNlUHJveHkqIGluc3Rh
bmNlKQogewogICAgIExvY2tlciBsb2NrZXIgeyBtX2luc3RhbmNlTG9jayB9OwpAQCAtMzc3LDcg
KzM4MSw2IEBAIHZvaWQgQ0RNSW5zdGFuY2VQcm94eTo6bWVyZ2VLZXlzRnJvbShjb25zdCBLZXlT
dG9yZSYga2V5U3RvcmUpCiB7CiAgICAgLy8gRklYTUU6IE5vdGlmeSBKUyB3aGVuIGFwcHJvcHJp
YXRlLgogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgbV9rZXlTdG9yZS5tZXJnZShr
ZXlTdG9yZSk7CiAgICAgaWYgKG1fY2RtUHJveHkpIHsKICAgICAgICAgTE9HKEVNRSwgIkVNRSAt
IENETUluc3RhbmNlUHJveHkgLSBtZXJnaW5nIGtleXMgaW50byBwcm94eSBpbnN0YW5jZSBhbmQg
bm90aWZ5aW5nIENETVByb3h5IG9mIGNoYW5nZXMiKTsKICAgICAgICAgbV9jZG1Qcm94eS0+dXBk
YXRlS2V5U3RvcmUoa2V5U3RvcmUpOwpAQCAtMzg3LDcgKzM5MCwxMCBAQCB2b2lkIENETUluc3Rh
bmNlUHJveHk6Om1lcmdlS2V5c0Zyb20oY29uc3QgS2V5U3RvcmUmIGtleVN0b3JlKQogdm9pZCBD
RE1JbnN0YW5jZVByb3h5OjpyZW1vdmVBbGxLZXlzRnJvbShjb25zdCBLZXlTdG9yZSYga2V5U3Rv
cmUpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBtX2tleVN0b3JlLnJlbW92
ZUFsbEtleXNGcm9tKGtleVN0b3JlKTsKKyAgICBpZiAobV9jZG1Qcm94eSkgeworICAgICAgICBM
T0coRU1FLCAiRU1FIC0gQ0RNSW5zdGFuY2VQcm94eSAtIHJlbW92aW5nIGtleXMgZnJvbSBwcm94
eSBpbnN0YW5jZSBhbmQgbm90aWZ5aW5nIENETVByb3h5IG9mIGNoYW5nZXMiKTsKKyAgICAgICAg
bV9jZG1Qcm94eS0+cmVtb3ZlQWxsS2V5c0Zyb20oa2V5U3RvcmUpOworICAgIH0KIH0KIAogQ0RN
SW5zdGFuY2VTZXNzaW9uUHJveHk6OkNETUluc3RhbmNlU2Vzc2lvblByb3h5KENETUluc3RhbmNl
UHJveHkmIGluc3RhbmNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5j
cnlwdGVkbWVkaWEvQ0RNUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRl
ZG1lZGlhL0NETVByb3h5LmgKaW5kZXggZTYwM2IyNTI2YzU0YzIyNjg0YTQ4ZmYzMjE4OGZkNDA3
Y2ZiOGEyYy4uNDliZGM3ZjEwNThjNzY2MzNkYzk5MzYwOWE4YTM4ZmIzODQ5NGFhYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5oCkBA
IC02OCw2ICs2OCwxMiBAQCBwdWJsaWM6CiAgICAgY29uc3QgS2V5SGFuZGxlVmFsdWVWYXJpYW50
JiB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KICAgICBLZXlIYW5kbGVWYWx1ZVZh
cmlhbnQmIHZhbHVlKCkgeyByZXR1cm4gbV92YWx1ZTsgfQogICAgIEtleVN0YXR1cyBzdGF0dXMo
KSBjb25zdCB7IHJldHVybiBtX3N0YXR1czsgfQorICAgIHZvaWQgbWVyZ2VLZXlJbnRvKFJlZlB0
cjxLZXlIYW5kbGU+JiYgb3RoZXIpCisgICAgeworICAgICAgICBtX3N0YXR1cyA9IG90aGVyLT5t
X3N0YXR1czsKKyAgICAgICAgbV92YWx1ZSA9IG90aGVyLT5tX3ZhbHVlOworICAgICAgICBtX251
bVNlc3Npb25SZWZlcmVuY2VzICs9IG90aGVyLT5tX251bVNlc3Npb25SZWZlcmVuY2VzOworICAg
IH0KICAgICBib29sIGlzU3RhdHVzQ3VycmVudGx5VmFsaWQoKQogICAgIHsKICAgICAgICAgcmV0
dXJuIG1fc3RhdHVzID09IENETUluc3RhbmNlU2Vzc2lvbjo6S2V5U3RhdHVzOjpVc2FibGUgfHwg
bV9zdGF0dXMgPT0gQ0RNSW5zdGFuY2VTZXNzaW9uOjpLZXlTdGF0dXM6Ok91dHB1dFJlc3RyaWN0
ZWQKQEAgLTk5LDggKzEwNSwxMCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZvaWQgYWRkU2Vz
c2lvblJlZmVyZW5jZSgpIHsgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsgbV9udW1TZXNzaW9uUmVm
ZXJlbmNlcysrOyB9CiAgICAgdm9pZCByZW1vdmVTZXNzaW9uUmVmZXJlbmNlKCkgeyBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOyBtX251bVNlc3Npb25SZWZlcmVuY2VzLS07IH0KLSAgICB1bnNpZ25l
ZCBudW1TZXNzaW9uUmVmZXJlbmNlcygpIGNvbnN0IHsgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsg
cmV0dXJuIG1fbnVtU2Vzc2lvblJlZmVyZW5jZXM7IH0KKyAgICBpbnQgbnVtU2Vzc2lvblJlZmVy
ZW5jZXMoKSBjb25zdCB7IEFTU0VSVChpc01haW5UaHJlYWQoKSk7IHJldHVybiBtX251bVNlc3Np
b25SZWZlcmVuY2VzOyB9CisgICAgYm9vbCBpc0xhc3RSZWZlcmVuY2UoKSBjb25zdCB7IEFTU0VS
VChpc01haW5UaHJlYWQoKSk7IHJldHVybiBtX251bVNlc3Npb25SZWZlcmVuY2VzIDw9IDE7IH0K
ICAgICBmcmllbmQgY2xhc3MgS2V5U3RvcmU7CisgICAgZnJpZW5kIGNsYXNzIFJlZmVyZW5jZUF3
YXJlS2V5U3RvcmU7CiAKICAgICBLZXlIYW5kbGUoS2V5U3RhdHVzIHN0YXR1cywgS2V5SURUeXBl
JiYga2V5SUQsIEtleUhhbmRsZVZhbHVlVmFyaWFudCYmIGtleUhhbmRsZVZhbHVlKQogICAgICAg
ICA6IG1fc3RhdHVzKHN0YXR1cyksIG1faWQoV1RGTW92ZShrZXlJRCkpLCBtX3ZhbHVlKFdURk1v
dmUoa2V5SGFuZGxlVmFsdWUpKSB7IH0KQEAgLTEwOCw3ICsxMTYsNyBAQCBwcml2YXRlOgogICAg
IEtleVN0YXR1cyBtX3N0YXR1czsKICAgICBLZXlJRFR5cGUgbV9pZDsKICAgICBLZXlIYW5kbGVW
YWx1ZVZhcmlhbnQgbV92YWx1ZTsKLSAgICB1bnNpZ25lZCBtX251bVNlc3Npb25SZWZlcmVuY2Vz
IHsgMCB9OworICAgIGludCBtX251bVNlc3Npb25SZWZlcmVuY2VzIHsgMCB9OwogfTsKIAogY2xh
c3MgS2V5U3RvcmUgewpAQCAtMTIwLDcgKzEyOCw3IEBAIHB1YmxpYzoKICAgICBib29sIGNvbnRh
aW5zS2V5SUQoY29uc3QgS2V5SURUeXBlJikgY29uc3Q7CiAgICAgdm9pZCBtZXJnZShjb25zdCBL
ZXlTdG9yZSYpOwogICAgIHZvaWQgcmVtb3ZlQWxsS2V5c0Zyb20oY29uc3QgS2V5U3RvcmUmKTsK
LSAgICB2b2lkIHJlbW92ZUFsbEtleXMoKSB7IG1fa2V5cy5jbGVhcigpOyB9CisgICAgdm9pZCBy
ZW1vdmVBbGxLZXlzKCk7CiAgICAgYm9vbCBhZGRLZXlzKFZlY3RvcjxSZWZQdHI8S2V5SGFuZGxl
Pj4mJik7CiAgICAgYm9vbCBhZGQoUmVmUHRyPEtleUhhbmRsZT4mJik7CiAgICAgYm9vbCByZW1v
dmUoY29uc3QgUmVmUHRyPEtleUhhbmRsZT4mKTsKQEAgLTEzMCw2ICsxMzgsOCBAQCBwdWJsaWM6
CiAgICAgS2V5U3RhdHVzVmVjdG9yIGFsbEtleXNBcyhDRE1JbnN0YW5jZVNlc3Npb246OktleVN0
YXR1cykgY29uc3Q7CiAgICAgS2V5U3RhdHVzVmVjdG9yIGNvbnZlcnRUb0pTS2V5U3RhdHVzVmVj
dG9yKCkgY29uc3Q7CiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gbV9rZXlzLmlz
RW1wdHkoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBhZGRTZXNzaW9uUmVmZXJlbmNlVG8oY29uc3Qg
UmVmUHRyPEtleUhhbmRsZT4mKSBjb25zdCB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlU2Vz
c2lvblJlZmVyZW5jZUZyb20oY29uc3QgUmVmUHRyPEtleUhhbmRsZT4mKSBjb25zdCB7IH07CiAK
ICAgICBhdXRvIGJlZ2luKCkgeyByZXR1cm4gbV9rZXlzLmJlZ2luKCk7IH0KICAgICBhdXRvIGJl
Z2luKCkgY29uc3QgeyByZXR1cm4gbV9rZXlzLmJlZ2luKCk7IH0KQEAgLTE0NCw2ICsxNTQsMTIg
QEAgcHJpdmF0ZToKICAgICBWZWN0b3I8UmVmUHRyPEtleUhhbmRsZT4+IG1fa2V5czsKIH07CiAK
K2NsYXNzIFJlZmVyZW5jZUF3YXJlS2V5U3RvcmUgOiBwdWJsaWMgS2V5U3RvcmUgeworcHVibGlj
OgorICAgIHZvaWQgYWRkU2Vzc2lvblJlZmVyZW5jZVRvKGNvbnN0IFJlZlB0cjxLZXlIYW5kbGU+
JiBrZXkpIGNvbnN0IGZpbmFsIHsga2V5LT5hZGRTZXNzaW9uUmVmZXJlbmNlKCk7IH0KKyAgICB2
b2lkIHJlbW92ZVNlc3Npb25SZWZlcmVuY2VGcm9tKGNvbnN0IFJlZlB0cjxLZXlIYW5kbGU+JiBr
ZXkpIGNvbnN0IGZpbmFsIHsga2V5LT5yZW1vdmVTZXNzaW9uUmVmZXJlbmNlKCk7IH0KK307CisK
IGNsYXNzIENETUluc3RhbmNlUHJveHk7CiBjbGFzcyBDRE1Qcm94eURlY3J5cHRpb25DbGllbnQ7
CiAKQEAgLTE1NSw3ICsxNzEsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5DRE1Qcm94eSgp
ID0gZGVmYXVsdDsKIAotICAgIHZvaWQgdXBkYXRlS2V5U3RvcmUoY29uc3QgS2V5U3RvcmUmIG5l
d0tleVN0b3JlKTsKKyAgICB2b2lkIHVwZGF0ZUtleVN0b3JlKGNvbnN0IEtleVN0b3JlJik7Cisg
ICAgdm9pZCByZW1vdmVBbGxLZXlzRnJvbShjb25zdCBLZXlTdG9yZSYpOwogICAgIHZvaWQgc2V0
SW5zdGFuY2UoQ0RNSW5zdGFuY2VQcm94eSopOwogICAgIHZvaWQgYWJvcnRXYWl0aW5nRm9yS2V5
KCkgY29uc3Q7CiAKQEAgLTE3OCw3ICsxOTUsNyBAQCBwcml2YXRlOgogICAgIG11dGFibGUgQ29u
ZGl0aW9uIG1fa2V5c0NvbmRpdGlvbjsKICAgICAvLyBGSVhNRTogRHVwbGljYXRlZCBrZXkgc3Rv
cmVzIGluIHRoZSBpbnN0YW5jZSBhbmQgdGhlIHByb3h5IGFyZSBwcm9iYWJseSBub3QgbmVlZGVk
LCBidXQgc2ltcGxpZmllZAogICAgIC8vIHRoZSBpbml0aWFsIGltcGxlbWVudGF0aW9uIGluIHRl
cm1zIG9mIHRocmVhZGluZyBpbnZhcmlhbnRzLgotICAgIEtleVN0b3JlIG1fa2V5U3RvcmUgV1RG
X0dVQVJERURfQllfTE9DSyhtX2tleXNMb2NrKTsKKyAgICBSZWZlcmVuY2VBd2FyZUtleVN0b3Jl
IG1fa2V5U3RvcmUgV1RGX0dVQVJERURfQllfTE9DSyhtX2tleXNMb2NrKTsKIH07CiAKIGNsYXNz
IENETVByb3h5RmFjdG9yeSB7CkBAIC0yNDgsOCArMjY1LDYgQEAgcHJpdmF0ZToKICAgICBNZWRp
YVBsYXllciogbV9wbGF5ZXIgeyBudWxscHRyIH07IC8vIEZJWE1FOiBNYWluVGhyZWFkPFQ+Pwog
CiAgICAgc3RkOjphdG9taWM8aW50PiBtX251bURlY3J5cHRvcnNXYWl0aW5nRm9yS2V5IHsgMCB9
OwotCi0gICAgS2V5U3RvcmUgbV9rZXlTdG9yZTsKIH07CiAKIGNsYXNzIENETVByb3h5RGVjcnlw
dGlvbkNsaWVudCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxDRE1Qcm94eURlY3J5cHRpb25DbGll
bnQsIFdlYWtQdHJGYWN0b3J5SW5pdGlhbGl6YXRpb246OkVhZ2VyPiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1U
aHVuZGVyLmNwcAppbmRleCAxNzEzNWExNDFjZDZmYTJjZTZhODcyYzc3MzE5ZTQzM2IzODc2MDIw
Li5hOTA1Yzk0MWI0MmNkNjlkZDZkNGFhODA5NWI0NjFjMDAwYmNmMjE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUv
Q0RNVGh1bmRlci5jcHAKQEAgLTQzMiw3ICs0MzIsNyBAQCBzdGF0aWMgY29uc3QgY2hhciogdG9T
dHJpbmcoQ0RNSW5zdGFuY2VTZXNzaW9uOjpLZXlTdGF0dXMgc3RhdHVzKQogCiBDRE1JbnN0YW5j
ZVNlc3Npb246OktleVN0YXR1cyBDRE1JbnN0YW5jZVNlc3Npb25UaHVuZGVyOjpzdGF0dXMoY29u
c3QgS2V5SURUeXBlJiBrZXlJRCkgY29uc3QKIHsKLSAgICBUaHVuZGVyS2V5U3RhdHVzIHN0YXR1
cyA9IG1fc2Vzc2lvbiAmJiAhbV9zZXNzaW9uSUQuaXNFbXB0eSgpID8gb3BlbmNkbV9zZXNzaW9u
X3N0YXR1cyhtX3Nlc3Npb24uZ2V0KCksIGtleUlELmRhdGEoKSwga2V5SUQuc2l6ZSgpKSA6IFN0
YXR1c1BlbmRpbmc7CisgICAgVGh1bmRlcktleVN0YXR1cyBzdGF0dXMgPSBtX3Nlc3Npb24gJiYg
IW1fc2Vzc2lvbklELmlzRW1wdHkoKSA/IG9wZW5jZG1fc2Vzc2lvbl9zdGF0dXMobV9zZXNzaW9u
LT5nZXQoKSwga2V5SUQuZGF0YSgpLCBrZXlJRC5zaXplKCkpIDogU3RhdHVzUGVuZGluZzsKIAog
ICAgIHN3aXRjaCAoc3RhdHVzKSB7CiAgICAgY2FzZSBVc2FibGU6CkBAIC00NjEsNyArNDYxLDcg
QEAgdm9pZCBDRE1JbnN0YW5jZVNlc3Npb25UaHVuZGVyOjprZXlVcGRhdGVkQ2FsbGJhY2soS2V5
SURUeXBlJiYga2V5SUQpCiAKICAgICBhdXRvIGtleVN0YXR1cyA9IHN0YXR1cyhrZXlJRCk7CiAg
ICAgR1NUX0RFQlVHKCJ1cGRhdGVkIHdpdGggd2l0aCBrZXkgc3RhdHVzICVzIiwgdG9TdHJpbmco
a2V5U3RhdHVzKSk7Ci0gICAgbV9kb2VzS2V5U3RvcmVOZWVkTWVyZ2luZyB8PSBtX2tleVN0b3Jl
LmFkZChLZXlIYW5kbGU6OmNyZWF0ZShrZXlTdGF0dXMsIFdURk1vdmUoa2V5SUQpLCBCb3hQdHI8
T3BlbkNETVNlc3Npb24+KCkpKTsKKyAgICBtX2RvZXNLZXlTdG9yZU5lZWRNZXJnaW5nIHw9IG1f
a2V5U3RvcmUuYWRkKEtleUhhbmRsZTo6Y3JlYXRlKGtleVN0YXR1cywgV1RGTW92ZShrZXlJRCks
IEJveFB0cjxPcGVuQ0RNU2Vzc2lvbj4obV9zZXNzaW9uKSkpOwogfQogCiB2b2lkIENETUluc3Rh
bmNlU2Vzc2lvblRodW5kZXI6OmtleXNVcGRhdGVEb25lQ2FsbGJhY2soKQpAQCAtNTE4LDggKzUx
OCw4IEBAIHZvaWQgQ0RNSW5zdGFuY2VTZXNzaW9uVGh1bmRlcjo6cmVxdWVzdExpY2Vuc2UoTGlj
ZW5zZVR5cGUgbGljZW5zZVR5cGUsIGNvbnN0IEF0CiAgICAgICAgIGNhbGxiYWNrKGluaXREYXRh
LnJlbGVhc2VOb25OdWxsKCksIHsgfSwgZmFsc2UsIEZhaWxlZCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9Ci0gICAgbV9zZXNzaW9uLnJlc2V0KHNlc3Npb24pOwotICAgIG1fc2Vzc2lvbklEID0g
U3RyaW5nOjpmcm9tVVRGOChvcGVuY2RtX3Nlc3Npb25faWQobV9zZXNzaW9uLmdldCgpKSk7Cisg
ICAgbV9zZXNzaW9uID0gYWRvcHRJbkJveFB0cihzZXNzaW9uKTsKKyAgICBtX3Nlc3Npb25JRCA9
IFN0cmluZzo6ZnJvbVVURjgob3BlbmNkbV9zZXNzaW9uX2lkKG1fc2Vzc2lvbi0+Z2V0KCkpKTsK
IAogICAgIGF1dG8gZ2VuZXJhdGVDaGFsbGVuZ2UgPSBbdGhpcywgY2FsbGJhY2sgPSBXVEZNb3Zl
KGNhbGxiYWNrKV0oKSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
QEAgLTU4Niw3ICs1ODYsNyBAQCB2b2lkIENETUluc3RhbmNlU2Vzc2lvblRodW5kZXI6OnVwZGF0
ZUxpY2Vuc2UoY29uc3QgU3RyaW5nJiBzZXNzaW9uSUQsIExpY2Vuc2VUeQogICAgICAgICAgICAg
Y2FsbGJhY2soZmFsc2UsIHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQs
IFN1Y2Nlc3NWYWx1ZTo6RmFpbGVkKTsKICAgICAgICAgfQogICAgIH0pOwotICAgIGlmICghbV9z
ZXNzaW9uIHx8IG1fc2Vzc2lvbklELmlzRW1wdHkoKSB8fCBvcGVuY2RtX3Nlc3Npb25fdXBkYXRl
KG1fc2Vzc2lvbi5nZXQoKSwgcmVzcG9uc2UtPmRhdGEoKSwgcmVzcG9uc2UtPnNpemUoKSkpCisg
ICAgaWYgKCFtX3Nlc3Npb24gfHwgbV9zZXNzaW9uSUQuaXNFbXB0eSgpIHx8IG9wZW5jZG1fc2Vz
c2lvbl91cGRhdGUobV9zZXNzaW9uLT5nZXQoKSwgcmVzcG9uc2UtPmRhdGFBc1VJbnQ4UHRyKCks
IHJlc3BvbnNlLT5zaXplKCkpKQogICAgICAgICBzZXNzaW9uRmFpbHVyZSgpOwogfQogCkBAIC02
MjMsNyArNjIzLDcgQEAgdm9pZCBDRE1JbnN0YW5jZVNlc3Npb25UaHVuZGVyOjpsb2FkU2Vzc2lv
bihMaWNlbnNlVHlwZSwgY29uc3QgU3RyaW5nJiBzZXNzaW9uSUQKICAgICAgICAgICAgIGNhbGxi
YWNrKHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQsIFN1Y2Nlc3NWYWx1
ZTo6RmFpbGVkLCBzZXNzaW9uTG9hZEZhaWx1cmVGcm9tVGh1bmRlcihyZXNwb25zZSkpOwogICAg
ICAgICB9CiAgICAgfSk7Ci0gICAgaWYgKCFtX3Nlc3Npb24gfHwgbV9zZXNzaW9uSUQuaXNFbXB0
eSgpIHx8IG9wZW5jZG1fc2Vzc2lvbl9sb2FkKG1fc2Vzc2lvbi5nZXQoKSkpCisgICAgaWYgKCFt
X3Nlc3Npb24gfHwgbV9zZXNzaW9uSUQuaXNFbXB0eSgpIHx8IG9wZW5jZG1fc2Vzc2lvbl9sb2Fk
KG1fc2Vzc2lvbi0+Z2V0KCkpKQogICAgICAgICBzZXNzaW9uRmFpbHVyZSgpOwogfQogCkBAIC02
MzEsOCArNjMxLDE1IEBAIHZvaWQgQ0RNSW5zdGFuY2VTZXNzaW9uVGh1bmRlcjo6Y2xvc2VTZXNz
aW9uKGNvbnN0IFN0cmluZyYgc2Vzc2lvbklELCBDbG9zZVNlc3NpCiB7CiAgICAgQVNTRVJUX1VO
VVNFRChzZXNzaW9uSUQsIG1fc2Vzc2lvbklEID09IHNlc3Npb25JRCk7CiAKLSAgICBpZiAobV9z
ZXNzaW9uICYmICFtX3Nlc3Npb25JRC5pc0VtcHR5KCkpCi0gICAgICAgIG9wZW5jZG1fc2Vzc2lv
bl9jbG9zZShtX3Nlc3Npb24uZ2V0KCkpOworICAgIGlmIChtX3Nlc3Npb24gJiYgIW1fc2Vzc2lv
bklELmlzRW1wdHkoKSkgeworICAgICAgICBvcGVuY2RtX3Nlc3Npb25fY2xvc2UobV9zZXNzaW9u
LT5nZXQoKSk7CisgICAgICAgIG1fc2Vzc2lvbiA9IEJveFB0cjxPcGVuQ0RNU2Vzc2lvbj4oKTsK
KyAgICAgICAgYXV0byBpbnN0YW5jZSA9IGNkbUluc3RhbmNlVGh1bmRlcigpOworICAgICAgICBp
ZiAoaW5zdGFuY2UpIHsKKyAgICAgICAgICAgIGluc3RhbmNlLT5yZW1vdmVBbGxLZXlzRnJvbSht
X2tleVN0b3JlKTsKKyAgICAgICAgICAgIG1fa2V5U3RvcmUucmVtb3ZlQWxsS2V5cygpOworICAg
ICAgICB9CisgICAgfQogCiAgICAgY2FsbGJhY2soKTsKIH0KQEAgLTY2NCw3ICs2NzEsNyBAQCB2
b2lkIENETUluc3RhbmNlU2Vzc2lvblRodW5kZXI6OnJlbW92ZVNlc3Npb25EYXRhKGNvbnN0IFN0
cmluZyYgc2Vzc2lvbklELCBMaWNlbgogICAgICAgICAgICAgY2FsbGJhY2sobV9rZXlTdG9yZS5h
bGxLZXlzQXMoTWVkaWFLZXlTdGF0dXM6OkludGVybmFsRXJyb3IpLCBzdGQ6Om51bGxvcHQsIFN1
Y2Nlc3NWYWx1ZTo6RmFpbGVkKTsKICAgICAgICAgfQogICAgIH0pOwotICAgIGlmICghbV9zZXNz
aW9uIHx8IG1fc2Vzc2lvbklELmlzRW1wdHkoKSB8fCBvcGVuY2RtX3Nlc3Npb25fcmVtb3ZlKG1f
c2Vzc2lvbi5nZXQoKSkpCisgICAgaWYgKCFtX3Nlc3Npb24gfHwgbV9zZXNzaW9uSUQuaXNFbXB0
eSgpIHx8IG9wZW5jZG1fc2Vzc2lvbl9yZW1vdmUobV9zZXNzaW9uLT5nZXQoKSkpCiAgICAgICAg
IHNlc3Npb25GYWlsdXJlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmgKaW5kZXggZGYxYjJk
OTlhNTNmODFjODUyMDA2OGI3OTk3YWM0ODJkZmFkMzA5NS4uZTIyMzA2ZjU1OWQ1NDcxODc4MmQ3
YzZmNDg2NTE5OTA3NTBlYTM0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmgKQEAgLTUwLDggKzUw
LDYgQEAgc3RydWN0IFRodW5kZXJTeXN0ZW1EZWxldGVyIHsKIAogdXNpbmcgVW5pcXVlVGh1bmRl
clN5c3RlbSA9IHN0ZDo6dW5pcXVlX3B0cjxPcGVuQ0RNU3lzdGVtLCBUaHVuZGVyU3lzdGVtRGVs
ZXRlcj47CiAKLXVzaW5nIFVuaXF1ZVRodW5kZXJTZXNzaW9uID0gc3RkOjp1bmlxdWVfcHRyPE9w
ZW5DRE1TZXNzaW9uLCBXVEY6OkJveFB0ckRlbGV0ZXI8T3BlbkNETVNlc3Npb24+PjsKLQogfSAv
LyBuYW1lc3BhY2UgVGh1bmRlcgogCiBjbGFzcyBDRE1GYWN0b3J5VGh1bmRlciBmaW5hbCA6IHB1
YmxpYyBDRE1GYWN0b3J5LCBwdWJsaWMgQ0RNUHJveHlGYWN0b3J5IHsKQEAgLTE2MSw3ICsxNTks
NyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9kb2VzS2V5U3RvcmVOZWVkTWVyZ2luZyB7IGZhbHNl
IH07CiAgICAgSW5pdERhdGEgbV9pbml0RGF0YTsKICAgICBPcGVuQ0RNU2Vzc2lvbkNhbGxiYWNr
cyBtX3RodW5kZXJTZXNzaW9uQ2FsbGJhY2tzIHsgfTsKLSAgICBUaHVuZGVyOjpVbmlxdWVUaHVu
ZGVyU2Vzc2lvbiBtX3Nlc3Npb247CisgICAgQm94UHRyPE9wZW5DRE1TZXNzaW9uPiBtX3Nlc3Np
b247CiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbV9tZXNzYWdlOwogICAgIGJvb2wgbV9uZWVk
c0luZGl2aWR1YWxpemF0aW9uIHsgZmFsc2UgfTsKICAgICBWZWN0b3I8Q2hhbGxlbmdlR2VuZXJh
dGVkQ2FsbGJhY2s+IG1fY2hhbGxlbmdlQ2FsbGJhY2tzOwo=
</data>
<flag name="commit-queue"
          id="454268"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432277</attachid>
            <date>2021-06-25 09:09:52 -0700</date>
            <delta_ts>2021-06-28 08:19:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227403-20210625180950.patch</filename>
            <type>text/plain</type>
            <size>18336</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTFjMjZmZDc0OTFhMmEz
N2JhMjk1YzIzMTc5MDdjMTc3MjIzOTA3Mi4uZTdkZDVlZGZmMmJkNTQ2MDhlMzA1N2RmYzcxOTZi
N2RhZWZiZWU2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDIxLTA2LTI1ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dT
dHJlYW1lcl1bRU1FXSBGaXggcmVzb3VyY2VzIHJlbGVhc2Ugd2hlbiBhIE1lZGlhS2V5U2Vzc2lv
biBpcyBjbG9zZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyNzQwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRodW5kZXIgc2Vzc2lvbnMgc2hvdWxkIGJlIGEgQm94UHRyLCBhbHJlYWR5IHdoZW4gc3Rv
cmVkIGF0IHRoZQorICAgICAgICBDRE1JbnN0YW5jZVNlc3Npb25UaHVuZGVyLCBpdCBkb2VzIG5v
dCBtYWtlIHNlbnNlIHRvIHN0b3JlIHRoZW4gaW4KKyAgICAgICAgYSB1bmlxdWVfcHRyLiBUaGlz
IHdheSB0aGUgc2FtZSBzZXNzaW9uIGxpdmVzIGluIHRoZQorICAgICAgICBNZWRpYUtleVNlc3Np
b24gd3JhcHBlciAoQ0RNSW5zdGFuY2VTZXNzaW9uVGh1bmRlcikgYW5kIGluc2lkZSB0aGUKKyAg
ICAgICAgS2V5U3RvcmVzLgorCisgICAgICAgIFJlbW92ZWQgdGhlIENETUluc3RhbmNlUHJveHkg
a2V5IHN0b3JlLiBJdCBpcyBub3QgbmVlZGVkLgorCisgICAgICAgIFdoZW4gYSBzZXNzaW9uIGlz
IGNsb3NlZCBpbiBUaHVuZGVyLCB0aGVyZSBzaG91bGQgYmUgYSBjYXNjYWRlIHRvCisgICAgICAg
IHJlbW92ZSBpdCBmcm9tIHRoZSBvdGhlciBzeW5jZWQgc3RvcmVzLCB0aGF0J3Mgd2h5IHdlIGlu
dHJvZHVjZQorICAgICAgICB0aGUgcmVtb3ZlQWxsS2V5c0Zyb20gbG9naWMuCisKKyAgICAgICAg
UmVndWxhciBrZXkgc3RvcmVzIGRvIG5vdCBtYW5hZ2Ugc2Vzc2lvbiByZWZlcmVuY2VzIGFueW1v
cmUuIFRoZXkKKyAgICAgICAgYXJlIG9ubHkgbmVlZGVkIGluIHRoZSBDRE1Qcm94eSBjbGFzcywg
d2hpY2ggaXMgdGhlcmUgdGhleSBhcmUKKyAgICAgICAgc2hhcmVkIGFtb25nIGRpZmZlcmVudCBz
ZXNzaW9ucy4gV2Ugd2VyZSBtYW5hZ2luZyBzZXNzaW9uCisgICAgICAgIHJlZmVyZW5jZXMgaW4g
b3RoZXIgc3RvcmVzIGFuZCB0aGV5IHdlcmUgbWVzc2luZyB1cCB3aXRoIHRoZQorICAgICAgICBz
ZXNzaW9uIGluIHRoZSBDRE1Qcm94eSBjbGFzcywgdGhhdCBwcmV2ZW50ZWQgc2Vzc2lvbnMgZnJv
bQorICAgICAgICBzdGF5aW5nIHdoZW4gdGhlcmUgYXJlIG90aGVyIE1lZGlhS2V5U2Vzc2lvbnMg
cmVmZXJlbmNpbmcgdGhlIHNhbWUKKyAgICAgICAga2V5IElEcyBhbmQgZnJvbSBiZWluZyByZW1v
dmVkIHRoZW4gYSBzZXNzaW9uIHdhcyBjbG9zZWQgYW5kIHRoZXJlCisgICAgICAgIHdhcyBvbmx5
IHRoYXQgcmVmZXJlbmNlIGluIHRoZSBDRE1Qcm94eSAoYmVjYXVzZSB0aGV5IGNvdWxkIGJlCisg
ICAgICAgIGhlbGQgYnkgdGhlIG90aGVyIHN0b3Jlcywgd2hlcmUgcmVmZXJlbmNlcyBhcmUgdW5u
ZWNlc3NhcnkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpLZXlTdG9yZTo6bWVyZ2UpOiBTaW1wbGlmaWVkIHRvIGp1
c3QgYWRkIGtleXMuCisgICAgICAgIChXZWJDb3JlOjpLZXlTdG9yZTo6YWRkKTogQWRkcyByZWZl
cmVuY2VzIChpZiBuZWVkZWQpIGFuZCBtZXJnZXMKKyAgICAgICAgaWYgbmVlZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6S2V5U3RvcmU6OnJlbW92ZUFsbEtleXMpOiBSZW1vdmVzIGFsbCBrZXlzIGZy
b20gYSBzdG9yZQorICAgICAgICBieSBjb3B5aW5nIGl0c2VsZiBhbmQgY2FsbGluZyByZW1vdmVB
bGxLZXlzRnJvbSB0aGF0IGNvcHkuCisgICAgICAgIChXZWJDb3JlOjpLZXlTdG9yZTo6cmVtb3Zl
KTogVXNlcyBwcm9wZXIgcmVmZWZlbmNpbmcuCisgICAgICAgIChXZWJDb3JlOjpDRE1Qcm94eTo6
cmVtb3ZlQWxsS2V5c0Zyb20pOiBNZXRob2QgdG8gcmVtb3ZlIGFsbCBrZXlzCisgICAgICAgIHRo
YXQgYXJlIGNvbnRhaW5lZCBpbiBzb21lIG90aGVyIHN0b3JlLgorICAgICAgICAoV2ViQ29yZTo6
Q0RNSW5zdGFuY2VQcm94eTo6bWVyZ2VLZXlzRnJvbSk6IFRoZXJlIGlzIG5vIG1vcmUga2V5Cisg
ICAgICAgIHN0b3JlIGluIHRoaXMgY2xhc3MuCisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5j
ZVByb3h5OjpyZW1vdmVBbGxLZXlzRnJvbSk6IENhbGxzIHRoZSBDRE1wcm94eQorICAgICAgICB0
byByZW1vdmUgdGhlIGtleXMgZnJvbSB0aGVyZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9lbmNyeXB0
ZWRtZWRpYS9DRE1Qcm94eS5oOgorICAgICAgICAoV2ViQ29yZTo6S2V5SGFuZGxlOjptZXJnZUtl
eUludG8pOiBNZXJnZXMgb25lIGtleSBpbnRvIHNlbGYgYnkKKyAgICAgICAgY29weWluZyBzdGF0
dXMsIGRhdGEgYW5kIHN1bW1pbmcgcmVmZXJlbmNlIGNvdW50LgorICAgICAgICAoV2ViQ29yZTo6
S2V5SGFuZGxlOjpudW1TZXNzaW9uUmVmZXJlbmNlcyBjb25zdCk6IFR1cm4gaW50LgorICAgICAg
ICAoV2ViQ29yZTo6S2V5SGFuZGxlOjppc0xhc3RSZWZlcmVuY2UgY29uc3QpOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OktleVN0b3JlOjphZGRTZXNzaW9uUmVmZXJlbmNlVG8gY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6S2V5U3RvcmU6OnJlbW92ZVNlc3Npb25SZWZlcmVuY2VGcm9tIGNv
bnN0KTogSGVscGVycyB0bworICAgICAgICBjaGVjayBpZiB0aGUgc3RvcmUgaXMgcmVmZXJlbmNl
IGNvdW50ZWQgb3Igbm90LiBEZWZhdWx0IGlzIGRvCisgICAgICAgIG5vdGhpbmcgYW5kIGJ1dCB0
aGUgUmVmZXJlbmNlQXdhcmVLZXlTdG9yZSByZWRlZmluZXMgdGhlbSB0byBkbworICAgICAgICBy
ZWZlcmVuY2UgY291bnRpbmcuCisgICAgICAgIChXZWJDb3JlOjpLZXlTdG9yZTo6cmVtb3ZlQWxs
S2V5cyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2Vt
ZS9DRE1UaHVuZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2Vt
ZS9DRE1UaHVuZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvblRo
dW5kZXI6OnN0YXR1cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Np
b25UaHVuZGVyOjprZXlVcGRhdGVkQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5z
dGFuY2VTZXNzaW9uVGh1bmRlcjo6cmVxdWVzdExpY2Vuc2UpOgorICAgICAgICAoV2ViQ29yZTo6
Q0RNSW5zdGFuY2VTZXNzaW9uVGh1bmRlcjo6dXBkYXRlTGljZW5zZSk6CisgICAgICAgIChXZWJD
b3JlOjpDRE1JbnN0YW5jZVNlc3Npb25UaHVuZGVyOjpyZW1vdmVTZXNzaW9uRGF0YSk6CisgICAg
ICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb25UaHVuZGVyOjpsb2FkU2Vzc2lvbik6IFVz
ZSBCb3hQdHIgaW4KKyAgICAgICAgdGhlIHNlc3Npb24uCisgICAgICAgIChXZWJDb3JlOjpDRE1J
bnN0YW5jZVNlc3Npb25UaHVuZGVyOjpjbG9zZVNlc3Npb24pOiBDbG9zZSB0aGUKKyAgICAgICAg
Y3VycmVudCBzZXNzaW9uLCByZWxlYXNlIHRoZSBCb3hQdHIsIG5vdGlmeSB0aGUgaW5zdGFuY2Ug
YW5kCisgICAgICAgIHRoZXJlZm9yZSB0aGUgcHJveHkgdG8gcmVtb3ZlIGFsbCB0aGV5IGtleSBJ
RHMgaW4gdGhpcyBzZXNzaW9uIGFuZAorICAgICAgICBlbXB0eSB0aGUgbG9jYWwga2V5IHN0b3Jl
LgorCiAyMDIxLTA2LTE4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAg
ICAgW1dlYklETF0gQXNzaWduaW5nIGEgdmFsdWUgb3V0c2lkZSB0aGUgZmxvYXQgcmFuZ2UgdG8g
YSAnZmxvYXQnIGF0dHJpYnV0ZSBzaG91bGQgdGhyb3cgYSBUeXBlRXJyb3IKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmNwcAppbmRleCBl
N2Q2N2JmNDNlMDgxODI5N2U2MzQ2Nzg2OGI2NjBhYTg4YTgyMWY4Li5mNjgzMTdmNTgzYTk0ZTVk
YzMxMjI3NDQ2MGI5YjRlN2Q5Yjg5MjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuY3BwCkBAIC0xMTcsMTggKzExNyw4IEBAIHZv
aWQgS2V5U3RvcmU6Om1lcmdlKGNvbnN0IEtleVN0b3JlJiBvdGhlcikKIHsKICAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOwogICAgIExPRyhFTUUsICJFTUUgLSBDRE1Qcm94eSAtIG1lcmdpbmcg
JXUgbmV3IGtleXMgaW50byBhIGtleSBzdG9yZSBvZiAldSBrZXlzIiwgb3RoZXIubnVtS2V5cygp
LCBudW1LZXlzKCkpOwotICAgIGZvciAoY29uc3QgYXV0byYga2V5IDogb3RoZXIpIHsKLSAgICAg
ICAgLy8gTk9URTogRG8gd2UgY2FyZSB0aGF0IHdlIHdpbGwgbm90IGFwcGVuZCBhIGtleSBpZiBp
dCBtYXRjaGVzIGEga2V5IElECi0gICAgICAgIC8vIGluIHRoZSBrZXlzdG9yZSBhbmQgaGFzIGRp
ZmZlcmVudCBkYXRhLiBTaG91bGQgd2Ugb3ZlcndyaXRlPyBXaGljaCBpcyAibmV3ZXIiPwotICAg
ICAgICAvLyBEb24ndCB0aGluayB3ZSBuZWVkIHRoaXMgZXh0cmEgY29tcGxleGl0eS4KLSAgICAg
ICAgc2l6ZV90IGtleVdpdGhNYXRjaGluZ0tleUlESW5kZXggPSBtX2tleXMuZmluZE1hdGNoaW5n
KFsmXSAoY29uc3QgUmVmUHRyPEtleUhhbmRsZT4mIHN0b3JlZEtleSkgeyByZXR1cm4gKmtleSA9
PSAqc3RvcmVkS2V5OyB9KTsKLSAgICAgICAgaWYgKGtleVdpdGhNYXRjaGluZ0tleUlESW5kZXgg
PT0gV1RGOjpub3RGb3VuZCkKLSAgICAgICAgICAgIG1fa2V5cy5hcHBlbmQoa2V5KTsKLSAgICAg
ICAgZWxzZSB7Ci0gICAgICAgICAgICBMT0coRU1FLCAiRU1FIC0gQ0RNUHJveHkgLSBrZXlzIHdp
dGggdGhlIHNhbWUgSUQhIik7Ci0gICAgICAgICAgICBBU1NFUlQoa2V5LT52YWx1ZSgpID09IG1f
a2V5c1trZXlXaXRoTWF0Y2hpbmdLZXlJREluZGV4XS0+dmFsdWUoKSk7Ci0gICAgICAgIH0KLSAg
ICB9CisgICAgZm9yIChjb25zdCBhdXRvJiBrZXkgOiBvdGhlcikKKyAgICAgICAgYWRkKGtleS5j
b3B5UmVmKCkpOwogCiAjaWYgIUxPR19ESVNBQkxFRAogICAgIExPRyhFTUUsICJFTUUgLSBDRE1Q
cm94eSAtIGtleSBzdG9yZSBub3cgaGFzICV1IGtleXMiLCBudW1LZXlzKCkpOwpAQCAtMTYyLDE0
ICsxNTIsMTUgQEAgYm9vbCBLZXlTdG9yZTo6YWRkKFJlZlB0cjxLZXlIYW5kbGU+JiYga2V5KQog
ICAgICAgICByZXR1cm4gKmtleSA9PSAqc3RvcmVkS2V5OwogICAgIH0pOwogCisgICAgYWRkU2Vz
c2lvblJlZmVyZW5jZVRvKGtleSk7CiAgICAgaWYgKGtleVdpdGhNYXRjaGluZ0tleUlESW5kZXgg
IT0gV1RGOjpub3RGb3VuZCkgewogICAgICAgICBhdXRvJiBrZXlXaXRoTWF0Y2hpbmdLZXlJRCA9
IG1fa2V5c1trZXlXaXRoTWF0Y2hpbmdLZXlJREluZGV4XTsKLSAgICAgICAgZGlkU3RvcmVDaGFu
Z2UgPSBrZXlXaXRoTWF0Y2hpbmdLZXlJRCA9PSBrZXk7CisgICAgICAgIGRpZFN0b3JlQ2hhbmdl
ID0ga2V5V2l0aE1hdGNoaW5nS2V5SUQgIT0ga2V5OwogICAgICAgICBpZiAoZGlkU3RvcmVDaGFu
Z2UpCi0gICAgICAgICAgICBrZXlXaXRoTWF0Y2hpbmdLZXlJRCA9IGtleTsKKyAgICAgICAgICAg
IGtleVdpdGhNYXRjaGluZ0tleUlELT5tZXJnZUtleUludG8oV1RGTW92ZShrZXkpKTsKICAgICB9
IGVsc2UgewogICAgICAgICBMT0coRU1FLCAiRU1FIC0gQ2xlYXJLZXkgLSBOZXcga2V5IHdpdGgg
SUQgJXMgZ2V0dGluZyBhZGRlZCB0byBrZXkgc3RvcmUiLCBrZXktPmlkQXNTdHJpbmcoKS5hc2Np
aSgpLmRhdGEoKSk7ICAgICAgCi0gICAgICAgIG1fa2V5cy5hcHBlbmQoa2V5KTsKKyAgICAgICAg
bV9rZXlzLmFwcGVuZChXVEZNb3ZlKGtleSkpOwogICAgICAgICBkaWRTdG9yZUNoYW5nZSA9IHRy
dWU7CiAgICAgfQogCkBAIC0xODMsNyArMTc0LDYgQEAgYm9vbCBLZXlTdG9yZTo6YWRkKFJlZlB0
cjxLZXlIYW5kbGU+JiYga2V5KQogICAgICAgICAgICAgfSk7CiAgICAgfQogCi0gICAga2V5LT5h
ZGRTZXNzaW9uUmVmZXJlbmNlKCk7CiAgICAgcmV0dXJuIGRpZFN0b3JlQ2hhbmdlOwogfQogCkBA
IC0xOTMsMTcgKzE4MywyMyBAQCB2b2lkIEtleVN0b3JlOjpyZW1vdmVBbGxLZXlzRnJvbShjb25z
dCBLZXlTdG9yZSYgb3RoZXIpCiAgICAgICAgIHJlbW92ZShrZXkpOwogfQogCit2b2lkIEtleVN0
b3JlOjpyZW1vdmVBbGxLZXlzKCkKK3sKKyAgICBLZXlTdG9yZSBzdG9yZSgqdGhpcyk7CisgICAg
cmVtb3ZlQWxsS2V5c0Zyb20oc3RvcmUpOworfQorCiBib29sIEtleVN0b3JlOjpyZW1vdmUoY29u
c3QgUmVmUHRyPEtleUhhbmRsZT4mIGtleSkKIHsKICAgICBib29sIHN0b3JlQ2hhbmdlZCA9IGZh
bHNlOwogCiAgICAgc2l6ZV90IGtleVdpdGhNYXRjaGluZ0tleUlESW5kZXggPSBtX2tleXMuZmlu
ZChrZXkpOwotICAgIExPRyhFTUUsICJFTUUgLSBDbGVhcktleSAtIHJlcXVlc3RlZCB0byByZW1v
dmUga2V5IHdpdGggSUQgJXMgYW5kICV1IHNlc3Npb24gcmVmZXJlbmNlcyIsIGtleS0+aWRBc1N0
cmluZygpLmFzY2lpKCkuZGF0YSgpLCBrZXktPm51bVNlc3Npb25SZWZlcmVuY2VzKCkpOworICAg
IExPRyhFTUUsICJFTUUgLSBDbGVhcktleSAtIHJlcXVlc3RlZCB0byByZW1vdmUga2V5IHdpdGgg
SUQgJXMgYW5kICVkIHNlc3Npb24gcmVmZXJlbmNlcyIsIGtleS0+aWRBc1N0cmluZygpLmFzY2lp
KCkuZGF0YSgpLCBrZXktPm51bVNlc3Npb25SZWZlcmVuY2VzKCkpOwogCiAgICAgaWYgKGtleVdp
dGhNYXRjaGluZ0tleUlESW5kZXggIT0gV1RGOjpub3RGb3VuZCkgewogICAgICAgICBhdXRvJiBr
ZXlXaXRoTWF0Y2hpbmdLZXlJRCA9IG1fa2V5c1trZXlXaXRoTWF0Y2hpbmdLZXlJREluZGV4XTsK
LSAgICAgICAga2V5V2l0aE1hdGNoaW5nS2V5SUQtPnJlbW92ZVNlc3Npb25SZWZlcmVuY2UoKTsK
LSAgICAgICAgaWYgKCFrZXlXaXRoTWF0Y2hpbmdLZXlJRC0+bnVtU2Vzc2lvblJlZmVyZW5jZXMo
KSkgeworICAgICAgICByZW1vdmVTZXNzaW9uUmVmZXJlbmNlRnJvbShrZXlXaXRoTWF0Y2hpbmdL
ZXlJRCk7CisgICAgICAgIGlmIChrZXlXaXRoTWF0Y2hpbmdLZXlJRC0+aXNMYXN0UmVmZXJlbmNl
KCkpIHsKICAgICAgICAgICAgIExPRyhFTUUsICJFTUUgLSBDbGVhcktleSAtIHJlbW92ZSBrZXkg
d2l0aCBJRCAlcyIsIGtleVdpdGhNYXRjaGluZ0tleUlELT5pZEFzU3RyaW5nKCkuYXNjaWkoKS5k
YXRhKCkpOwogICAgICAgICAgICAgbV9rZXlzLnJlbW92ZShrZXlXaXRoTWF0Y2hpbmdLZXlJRElu
ZGV4KTsKICAgICAgICAgICAgIHN0b3JlQ2hhbmdlZCA9IHRydWU7CkBAIC0yNDgsNiArMjQ0LDE0
IEBAIGNvbnN0IENETUluc3RhbmNlUHJveHkqIENETVByb3h5OjppbnN0YW5jZSgpIGNvbnN0CiAg
ICAgcmV0dXJuIG1faW5zdGFuY2U7CiB9CiAKK3ZvaWQgQ0RNUHJveHk6OnJlbW92ZUFsbEtleXNG
cm9tKGNvbnN0IEtleVN0b3JlJiBrZXlTdG9yZSkKK3sKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9r
ZXlzTG9jayB9OworICAgIG1fa2V5U3RvcmUucmVtb3ZlQWxsS2V5c0Zyb20oa2V5U3RvcmUpOwor
ICAgIExPRyhFTUUsICJFTUUgLSBDRE1Qcm94eSAtIHJlbW92aW5nIGZyb20ga2V5IHN0b3JlIGZy
b20gYSBzZXNzaW9uIGNsb3N1cmUiKTsKKyAgICBtX2tleXNDb25kaXRpb24ubm90aWZ5QWxsKCk7
Cit9CisKIHZvaWQgQ0RNUHJveHk6OnNldEluc3RhbmNlKENETUluc3RhbmNlUHJveHkqIGluc3Rh
bmNlKQogewogICAgIExvY2tlciBsb2NrZXIgeyBtX2luc3RhbmNlTG9jayB9OwpAQCAtMzc3LDcg
KzM4MSw2IEBAIHZvaWQgQ0RNSW5zdGFuY2VQcm94eTo6bWVyZ2VLZXlzRnJvbShjb25zdCBLZXlT
dG9yZSYga2V5U3RvcmUpCiB7CiAgICAgLy8gRklYTUU6IE5vdGlmeSBKUyB3aGVuIGFwcHJvcHJp
YXRlLgogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgbV9rZXlTdG9yZS5tZXJnZShr
ZXlTdG9yZSk7CiAgICAgaWYgKG1fY2RtUHJveHkpIHsKICAgICAgICAgTE9HKEVNRSwgIkVNRSAt
IENETUluc3RhbmNlUHJveHkgLSBtZXJnaW5nIGtleXMgaW50byBwcm94eSBpbnN0YW5jZSBhbmQg
bm90aWZ5aW5nIENETVByb3h5IG9mIGNoYW5nZXMiKTsKICAgICAgICAgbV9jZG1Qcm94eS0+dXBk
YXRlS2V5U3RvcmUoa2V5U3RvcmUpOwpAQCAtMzg3LDcgKzM5MCwxMCBAQCB2b2lkIENETUluc3Rh
bmNlUHJveHk6Om1lcmdlS2V5c0Zyb20oY29uc3QgS2V5U3RvcmUmIGtleVN0b3JlKQogdm9pZCBD
RE1JbnN0YW5jZVByb3h5OjpyZW1vdmVBbGxLZXlzRnJvbShjb25zdCBLZXlTdG9yZSYga2V5U3Rv
cmUpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBtX2tleVN0b3JlLnJlbW92
ZUFsbEtleXNGcm9tKGtleVN0b3JlKTsKKyAgICBpZiAobV9jZG1Qcm94eSkgeworICAgICAgICBM
T0coRU1FLCAiRU1FIC0gQ0RNSW5zdGFuY2VQcm94eSAtIHJlbW92aW5nIGtleXMgZnJvbSBwcm94
eSBpbnN0YW5jZSBhbmQgbm90aWZ5aW5nIENETVByb3h5IG9mIGNoYW5nZXMiKTsKKyAgICAgICAg
bV9jZG1Qcm94eS0+cmVtb3ZlQWxsS2V5c0Zyb20oa2V5U3RvcmUpOworICAgIH0KIH0KIAogQ0RN
SW5zdGFuY2VTZXNzaW9uUHJveHk6OkNETUluc3RhbmNlU2Vzc2lvblByb3h5KENETUluc3RhbmNl
UHJveHkmIGluc3RhbmNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5j
cnlwdGVkbWVkaWEvQ0RNUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRl
ZG1lZGlhL0NETVByb3h5LmgKaW5kZXggZTYwM2IyNTI2YzU0YzIyNjg0YTQ4ZmYzMjE4OGZkNDA3
Y2ZiOGEyYy4uOGFjZTljNTNlMGJhNDAyNmNhYjM5YjA4N2IyZTYwYjA4OTExZDA5ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5oCkBA
IC02OCw2ICs2OCwxMiBAQCBwdWJsaWM6CiAgICAgY29uc3QgS2V5SGFuZGxlVmFsdWVWYXJpYW50
JiB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KICAgICBLZXlIYW5kbGVWYWx1ZVZh
cmlhbnQmIHZhbHVlKCkgeyByZXR1cm4gbV92YWx1ZTsgfQogICAgIEtleVN0YXR1cyBzdGF0dXMo
KSBjb25zdCB7IHJldHVybiBtX3N0YXR1czsgfQorICAgIHZvaWQgbWVyZ2VLZXlJbnRvKFJlZlB0
cjxLZXlIYW5kbGU+JiYgb3RoZXIpCisgICAgeworICAgICAgICBtX3N0YXR1cyA9IG90aGVyLT5t
X3N0YXR1czsKKyAgICAgICAgbV92YWx1ZSA9IG90aGVyLT5tX3ZhbHVlOworICAgICAgICBtX251
bVNlc3Npb25SZWZlcmVuY2VzICs9IG90aGVyLT5tX251bVNlc3Npb25SZWZlcmVuY2VzOworICAg
IH0KICAgICBib29sIGlzU3RhdHVzQ3VycmVudGx5VmFsaWQoKQogICAgIHsKICAgICAgICAgcmV0
dXJuIG1fc3RhdHVzID09IENETUluc3RhbmNlU2Vzc2lvbjo6S2V5U3RhdHVzOjpVc2FibGUgfHwg
bV9zdGF0dXMgPT0gQ0RNSW5zdGFuY2VTZXNzaW9uOjpLZXlTdGF0dXM6Ok91dHB1dFJlc3RyaWN0
ZWQKQEAgLTk5LDggKzEwNSwxMCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZvaWQgYWRkU2Vz
c2lvblJlZmVyZW5jZSgpIHsgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsgbV9udW1TZXNzaW9uUmVm
ZXJlbmNlcysrOyB9CiAgICAgdm9pZCByZW1vdmVTZXNzaW9uUmVmZXJlbmNlKCkgeyBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOyBtX251bVNlc3Npb25SZWZlcmVuY2VzLS07IH0KLSAgICB1bnNpZ25l
ZCBudW1TZXNzaW9uUmVmZXJlbmNlcygpIGNvbnN0IHsgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsg
cmV0dXJuIG1fbnVtU2Vzc2lvblJlZmVyZW5jZXM7IH0KKyAgICBpbnQgbnVtU2Vzc2lvblJlZmVy
ZW5jZXMoKSBjb25zdCB7IEFTU0VSVChpc01haW5UaHJlYWQoKSk7IHJldHVybiBtX251bVNlc3Np
b25SZWZlcmVuY2VzOyB9CisgICAgYm9vbCBpc0xhc3RSZWZlcmVuY2UoKSBjb25zdCB7IEFTU0VS
VChpc01haW5UaHJlYWQoKSk7IHJldHVybiBtX251bVNlc3Npb25SZWZlcmVuY2VzIDw9IDE7IH0K
ICAgICBmcmllbmQgY2xhc3MgS2V5U3RvcmU7CisgICAgZnJpZW5kIGNsYXNzIFJlZmVyZW5jZUF3
YXJlS2V5U3RvcmU7CiAKICAgICBLZXlIYW5kbGUoS2V5U3RhdHVzIHN0YXR1cywgS2V5SURUeXBl
JiYga2V5SUQsIEtleUhhbmRsZVZhbHVlVmFyaWFudCYmIGtleUhhbmRsZVZhbHVlKQogICAgICAg
ICA6IG1fc3RhdHVzKHN0YXR1cyksIG1faWQoV1RGTW92ZShrZXlJRCkpLCBtX3ZhbHVlKFdURk1v
dmUoa2V5SGFuZGxlVmFsdWUpKSB7IH0KQEAgLTEwOCw3ICsxMTYsNyBAQCBwcml2YXRlOgogICAg
IEtleVN0YXR1cyBtX3N0YXR1czsKICAgICBLZXlJRFR5cGUgbV9pZDsKICAgICBLZXlIYW5kbGVW
YWx1ZVZhcmlhbnQgbV92YWx1ZTsKLSAgICB1bnNpZ25lZCBtX251bVNlc3Npb25SZWZlcmVuY2Vz
IHsgMCB9OworICAgIGludCBtX251bVNlc3Npb25SZWZlcmVuY2VzIHsgMCB9OwogfTsKIAogY2xh
c3MgS2V5U3RvcmUgewpAQCAtMTE2LDExICsxMjQsMTIgQEAgcHVibGljOgogICAgIHVzaW5nIEtl
eVN0YXR1c1ZlY3RvciA9IENETUluc3RhbmNlU2Vzc2lvbjo6S2V5U3RhdHVzVmVjdG9yOwogCiAg
ICAgS2V5U3RvcmUoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+S2V5U3RvcmUoKSA9IGRlZmF1
bHQ7CiAKICAgICBib29sIGNvbnRhaW5zS2V5SUQoY29uc3QgS2V5SURUeXBlJikgY29uc3Q7CiAg
ICAgdm9pZCBtZXJnZShjb25zdCBLZXlTdG9yZSYpOwogICAgIHZvaWQgcmVtb3ZlQWxsS2V5c0Zy
b20oY29uc3QgS2V5U3RvcmUmKTsKLSAgICB2b2lkIHJlbW92ZUFsbEtleXMoKSB7IG1fa2V5cy5j
bGVhcigpOyB9CisgICAgdm9pZCByZW1vdmVBbGxLZXlzKCk7CiAgICAgYm9vbCBhZGRLZXlzKFZl
Y3RvcjxSZWZQdHI8S2V5SGFuZGxlPj4mJik7CiAgICAgYm9vbCBhZGQoUmVmUHRyPEtleUhhbmRs
ZT4mJik7CiAgICAgYm9vbCByZW1vdmUoY29uc3QgUmVmUHRyPEtleUhhbmRsZT4mKTsKQEAgLTEz
MCw2ICsxMzksOCBAQCBwdWJsaWM6CiAgICAgS2V5U3RhdHVzVmVjdG9yIGFsbEtleXNBcyhDRE1J
bnN0YW5jZVNlc3Npb246OktleVN0YXR1cykgY29uc3Q7CiAgICAgS2V5U3RhdHVzVmVjdG9yIGNv
bnZlcnRUb0pTS2V5U3RhdHVzVmVjdG9yKCkgY29uc3Q7CiAgICAgYm9vbCBpc0VtcHR5KCkgY29u
c3QgeyByZXR1cm4gbV9rZXlzLmlzRW1wdHkoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBhZGRTZXNz
aW9uUmVmZXJlbmNlVG8oY29uc3QgUmVmUHRyPEtleUhhbmRsZT4mKSBjb25zdCB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgcmVtb3ZlU2Vzc2lvblJlZmVyZW5jZUZyb20oY29uc3QgUmVmUHRyPEtleUhh
bmRsZT4mKSBjb25zdCB7IH07CiAKICAgICBhdXRvIGJlZ2luKCkgeyByZXR1cm4gbV9rZXlzLmJl
Z2luKCk7IH0KICAgICBhdXRvIGJlZ2luKCkgY29uc3QgeyByZXR1cm4gbV9rZXlzLmJlZ2luKCk7
IH0KQEAgLTE0NCw2ICsxNTUsMTMgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8UmVmUHRyPEtleUhh
bmRsZT4+IG1fa2V5czsKIH07CiAKK2NsYXNzIFJlZmVyZW5jZUF3YXJlS2V5U3RvcmUgOiBwdWJs
aWMgS2V5U3RvcmUgeworcHVibGljOgorICAgIHZpcnR1YWwgflJlZmVyZW5jZUF3YXJlS2V5U3Rv
cmUoKSA9IGRlZmF1bHQ7CisgICAgdm9pZCBhZGRTZXNzaW9uUmVmZXJlbmNlVG8oY29uc3QgUmVm
UHRyPEtleUhhbmRsZT4mIGtleSkgY29uc3QgZmluYWwgeyBrZXktPmFkZFNlc3Npb25SZWZlcmVu
Y2UoKTsgfQorICAgIHZvaWQgcmVtb3ZlU2Vzc2lvblJlZmVyZW5jZUZyb20oY29uc3QgUmVmUHRy
PEtleUhhbmRsZT4mIGtleSkgY29uc3QgZmluYWwgeyBrZXktPnJlbW92ZVNlc3Npb25SZWZlcmVu
Y2UoKTsgfQorfTsKKwogY2xhc3MgQ0RNSW5zdGFuY2VQcm94eTsKIGNsYXNzIENETVByb3h5RGVj
cnlwdGlvbkNsaWVudDsKIApAQCAtMTU1LDcgKzE3Myw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgfkNETVByb3h5KCkgPSBkZWZhdWx0OwogCi0gICAgdm9pZCB1cGRhdGVLZXlTdG9yZShjb25z
dCBLZXlTdG9yZSYgbmV3S2V5U3RvcmUpOworICAgIHZvaWQgdXBkYXRlS2V5U3RvcmUoY29uc3Qg
S2V5U3RvcmUmKTsKKyAgICB2b2lkIHJlbW92ZUFsbEtleXNGcm9tKGNvbnN0IEtleVN0b3JlJik7
CiAgICAgdm9pZCBzZXRJbnN0YW5jZShDRE1JbnN0YW5jZVByb3h5Kik7CiAgICAgdm9pZCBhYm9y
dFdhaXRpbmdGb3JLZXkoKSBjb25zdDsKIApAQCAtMTc4LDcgKzE5Nyw3IEBAIHByaXZhdGU6CiAg
ICAgbXV0YWJsZSBDb25kaXRpb24gbV9rZXlzQ29uZGl0aW9uOwogICAgIC8vIEZJWE1FOiBEdXBs
aWNhdGVkIGtleSBzdG9yZXMgaW4gdGhlIGluc3RhbmNlIGFuZCB0aGUgcHJveHkgYXJlIHByb2Jh
Ymx5IG5vdCBuZWVkZWQsIGJ1dCBzaW1wbGlmaWVkCiAgICAgLy8gdGhlIGluaXRpYWwgaW1wbGVt
ZW50YXRpb24gaW4gdGVybXMgb2YgdGhyZWFkaW5nIGludmFyaWFudHMuCi0gICAgS2V5U3RvcmUg
bV9rZXlTdG9yZSBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fa2V5c0xvY2spOworICAgIFJlZmVyZW5j
ZUF3YXJlS2V5U3RvcmUgbV9rZXlTdG9yZSBXVEZfR1VBUkRFRF9CWV9MT0NLKG1fa2V5c0xvY2sp
OwogfTsKIAogY2xhc3MgQ0RNUHJveHlGYWN0b3J5IHsKQEAgLTI0OCw4ICsyNjcsNiBAQCBwcml2
YXRlOgogICAgIE1lZGlhUGxheWVyKiBtX3BsYXllciB7IG51bGxwdHIgfTsgLy8gRklYTUU6IE1h
aW5UaHJlYWQ8VD4/CiAKICAgICBzdGQ6OmF0b21pYzxpbnQ+IG1fbnVtRGVjcnlwdG9yc1dhaXRp
bmdGb3JLZXkgeyAwIH07Ci0KLSAgICBLZXlTdG9yZSBtX2tleVN0b3JlOwogfTsKIAogY2xhc3Mg
Q0RNUHJveHlEZWNyeXB0aW9uQ2xpZW50IDogcHVibGljIENhbk1ha2VXZWFrUHRyPENETVByb3h5
RGVjcnlwdGlvbkNsaWVudCwgV2Vha1B0ckZhY3RvcnlJbml0aWFsaXphdGlvbjo6RWFnZXI+IHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9l
bWUvQ0RNVGh1bmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvZW1lL0NETVRodW5kZXIuY3BwCmluZGV4IDE3MTM1YTE0MWNkNmZhMmNlNmE4NzJjNzcz
MTllNDMzYjM4NzYwMjAuLjM3ZDI0MTY5ZTlhNTQ4YTVmMWNkMDFjM2RjNjE1NmQ4Zjg0MzJkOTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9l
bWUvQ0RNVGh1bmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcApAQCAtNDMyLDcgKzQzMiw3IEBAIHN0YXRpYyBj
b25zdCBjaGFyKiB0b1N0cmluZyhDRE1JbnN0YW5jZVNlc3Npb246OktleVN0YXR1cyBzdGF0dXMp
CiAKIENETUluc3RhbmNlU2Vzc2lvbjo6S2V5U3RhdHVzIENETUluc3RhbmNlU2Vzc2lvblRodW5k
ZXI6OnN0YXR1cyhjb25zdCBLZXlJRFR5cGUmIGtleUlEKSBjb25zdAogewotICAgIFRodW5kZXJL
ZXlTdGF0dXMgc3RhdHVzID0gbV9zZXNzaW9uICYmICFtX3Nlc3Npb25JRC5pc0VtcHR5KCkgPyBv
cGVuY2RtX3Nlc3Npb25fc3RhdHVzKG1fc2Vzc2lvbi5nZXQoKSwga2V5SUQuZGF0YSgpLCBrZXlJ
RC5zaXplKCkpIDogU3RhdHVzUGVuZGluZzsKKyAgICBUaHVuZGVyS2V5U3RhdHVzIHN0YXR1cyA9
IG1fc2Vzc2lvbiAmJiAhbV9zZXNzaW9uSUQuaXNFbXB0eSgpID8gb3BlbmNkbV9zZXNzaW9uX3N0
YXR1cyhtX3Nlc3Npb24tPmdldCgpLCBrZXlJRC5kYXRhKCksIGtleUlELnNpemUoKSkgOiBTdGF0
dXNQZW5kaW5nOwogCiAgICAgc3dpdGNoIChzdGF0dXMpIHsKICAgICBjYXNlIFVzYWJsZToKQEAg
LTQ2MSw3ICs0NjEsNyBAQCB2b2lkIENETUluc3RhbmNlU2Vzc2lvblRodW5kZXI6OmtleVVwZGF0
ZWRDYWxsYmFjayhLZXlJRFR5cGUmJiBrZXlJRCkKIAogICAgIGF1dG8ga2V5U3RhdHVzID0gc3Rh
dHVzKGtleUlEKTsKICAgICBHU1RfREVCVUcoInVwZGF0ZWQgd2l0aCB3aXRoIGtleSBzdGF0dXMg
JXMiLCB0b1N0cmluZyhrZXlTdGF0dXMpKTsKLSAgICBtX2RvZXNLZXlTdG9yZU5lZWRNZXJnaW5n
IHw9IG1fa2V5U3RvcmUuYWRkKEtleUhhbmRsZTo6Y3JlYXRlKGtleVN0YXR1cywgV1RGTW92ZShr
ZXlJRCksIEJveFB0cjxPcGVuQ0RNU2Vzc2lvbj4oKSkpOworICAgIG1fZG9lc0tleVN0b3JlTmVl
ZE1lcmdpbmcgfD0gbV9rZXlTdG9yZS5hZGQoS2V5SGFuZGxlOjpjcmVhdGUoa2V5U3RhdHVzLCBX
VEZNb3ZlKGtleUlEKSwgQm94UHRyPE9wZW5DRE1TZXNzaW9uPihtX3Nlc3Npb24pKSk7CiB9CiAK
IHZvaWQgQ0RNSW5zdGFuY2VTZXNzaW9uVGh1bmRlcjo6a2V5c1VwZGF0ZURvbmVDYWxsYmFjaygp
CkBAIC01MTgsOCArNTE4LDggQEAgdm9pZCBDRE1JbnN0YW5jZVNlc3Npb25UaHVuZGVyOjpyZXF1
ZXN0TGljZW5zZShMaWNlbnNlVHlwZSBsaWNlbnNlVHlwZSwgY29uc3QgQXQKICAgICAgICAgY2Fs
bGJhY2soaW5pdERhdGEucmVsZWFzZU5vbk51bGwoKSwgeyB9LCBmYWxzZSwgRmFpbGVkKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBtX3Nlc3Npb24ucmVzZXQoc2Vzc2lvbik7Ci0gICAg
bV9zZXNzaW9uSUQgPSBTdHJpbmc6OmZyb21VVEY4KG9wZW5jZG1fc2Vzc2lvbl9pZChtX3Nlc3Np
b24uZ2V0KCkpKTsKKyAgICBtX3Nlc3Npb24gPSBhZG9wdEluQm94UHRyKHNlc3Npb24pOworICAg
IG1fc2Vzc2lvbklEID0gU3RyaW5nOjpmcm9tVVRGOChvcGVuY2RtX3Nlc3Npb25faWQobV9zZXNz
aW9uLT5nZXQoKSkpOwogCiAgICAgYXV0byBnZW5lcmF0ZUNoYWxsZW5nZSA9IFt0aGlzLCBjYWxs
YmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSgpIG11dGFibGUgewogICAgICAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOwpAQCAtNTg2LDcgKzU4Niw3IEBAIHZvaWQgQ0RNSW5zdGFuY2VTZXNzaW9u
VGh1bmRlcjo6dXBkYXRlTGljZW5zZShjb25zdCBTdHJpbmcmIHNlc3Npb25JRCwgTGljZW5zZVR5
CiAgICAgICAgICAgICBjYWxsYmFjayhmYWxzZSwgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQs
IHN0ZDo6bnVsbG9wdCwgU3VjY2Vzc1ZhbHVlOjpGYWlsZWQpOwogICAgICAgICB9CiAgICAgfSk7
Ci0gICAgaWYgKCFtX3Nlc3Npb24gfHwgbV9zZXNzaW9uSUQuaXNFbXB0eSgpIHx8IG9wZW5jZG1f
c2Vzc2lvbl91cGRhdGUobV9zZXNzaW9uLmdldCgpLCByZXNwb25zZS0+ZGF0YSgpLCByZXNwb25z
ZS0+c2l6ZSgpKSkKKyAgICBpZiAoIW1fc2Vzc2lvbiB8fCBtX3Nlc3Npb25JRC5pc0VtcHR5KCkg
fHwgb3BlbmNkbV9zZXNzaW9uX3VwZGF0ZShtX3Nlc3Npb24tPmdldCgpLCByZXNwb25zZS0+ZGF0
YSgpLCByZXNwb25zZS0+c2l6ZSgpKSkKICAgICAgICAgc2Vzc2lvbkZhaWx1cmUoKTsKIH0KIApA
QCAtNjIzLDcgKzYyMyw3IEBAIHZvaWQgQ0RNSW5zdGFuY2VTZXNzaW9uVGh1bmRlcjo6bG9hZFNl
c3Npb24oTGljZW5zZVR5cGUsIGNvbnN0IFN0cmluZyYgc2Vzc2lvbklECiAgICAgICAgICAgICBj
YWxsYmFjayhzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0LCBTdWNjZXNz
VmFsdWU6OkZhaWxlZCwgc2Vzc2lvbkxvYWRGYWlsdXJlRnJvbVRodW5kZXIocmVzcG9uc2UpKTsK
ICAgICAgICAgfQogICAgIH0pOwotICAgIGlmICghbV9zZXNzaW9uIHx8IG1fc2Vzc2lvbklELmlz
RW1wdHkoKSB8fCBvcGVuY2RtX3Nlc3Npb25fbG9hZChtX3Nlc3Npb24uZ2V0KCkpKQorICAgIGlm
ICghbV9zZXNzaW9uIHx8IG1fc2Vzc2lvbklELmlzRW1wdHkoKSB8fCBvcGVuY2RtX3Nlc3Npb25f
bG9hZChtX3Nlc3Npb24tPmdldCgpKSkKICAgICAgICAgc2Vzc2lvbkZhaWx1cmUoKTsKIH0KIApA
QCAtNjMxLDggKzYzMSwxNSBAQCB2b2lkIENETUluc3RhbmNlU2Vzc2lvblRodW5kZXI6OmNsb3Nl
U2Vzc2lvbihjb25zdCBTdHJpbmcmIHNlc3Npb25JRCwgQ2xvc2VTZXNzaQogewogICAgIEFTU0VS
VF9VTlVTRUQoc2Vzc2lvbklELCBtX3Nlc3Npb25JRCA9PSBzZXNzaW9uSUQpOwogCi0gICAgaWYg
KG1fc2Vzc2lvbiAmJiAhbV9zZXNzaW9uSUQuaXNFbXB0eSgpKQotICAgICAgICBvcGVuY2RtX3Nl
c3Npb25fY2xvc2UobV9zZXNzaW9uLmdldCgpKTsKKyAgICBpZiAobV9zZXNzaW9uICYmICFtX3Nl
c3Npb25JRC5pc0VtcHR5KCkpIHsKKyAgICAgICAgb3BlbmNkbV9zZXNzaW9uX2Nsb3NlKG1fc2Vz
c2lvbi0+Z2V0KCkpOworICAgICAgICBtX3Nlc3Npb24gPSBCb3hQdHI8T3BlbkNETVNlc3Npb24+
KCk7CisgICAgICAgIGF1dG8gaW5zdGFuY2UgPSBjZG1JbnN0YW5jZVRodW5kZXIoKTsKKyAgICAg
ICAgaWYgKGluc3RhbmNlKSB7CisgICAgICAgICAgICBpbnN0YW5jZS0+cmVtb3ZlQWxsS2V5c0Zy
b20obV9rZXlTdG9yZSk7CisgICAgICAgICAgICBtX2tleVN0b3JlLnJlbW92ZUFsbEtleXMoKTsK
KyAgICAgICAgfQorICAgIH0KIAogICAgIGNhbGxiYWNrKCk7CiB9CkBAIC02NjQsNyArNjcxLDcg
QEAgdm9pZCBDRE1JbnN0YW5jZVNlc3Npb25UaHVuZGVyOjpyZW1vdmVTZXNzaW9uRGF0YShjb25z
dCBTdHJpbmcmIHNlc3Npb25JRCwgTGljZW4KICAgICAgICAgICAgIGNhbGxiYWNrKG1fa2V5U3Rv
cmUuYWxsS2V5c0FzKE1lZGlhS2V5U3RhdHVzOjpJbnRlcm5hbEVycm9yKSwgc3RkOjpudWxsb3B0
LCBTdWNjZXNzVmFsdWU6OkZhaWxlZCk7CiAgICAgICAgIH0KICAgICB9KTsKLSAgICBpZiAoIW1f
c2Vzc2lvbiB8fCBtX3Nlc3Npb25JRC5pc0VtcHR5KCkgfHwgb3BlbmNkbV9zZXNzaW9uX3JlbW92
ZShtX3Nlc3Npb24uZ2V0KCkpKQorICAgIGlmICghbV9zZXNzaW9uIHx8IG1fc2Vzc2lvbklELmlz
RW1wdHkoKSB8fCBvcGVuY2RtX3Nlc3Npb25fcmVtb3ZlKG1fc2Vzc2lvbi0+Z2V0KCkpKQogICAg
ICAgICBzZXNzaW9uRmFpbHVyZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvZW1lL0NETVRodW5kZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5oCmluZGV4IGRm
MWIyZDk5YTUzZjgxYzg1MjAwNjhiNzk5N2FjNDgyZGZhZDMwOTUuLmUyMjMwNmY1NTlkNTQ3MTg3
ODJkN2M2ZjQ4NjUxOTkwNzUwZWEzNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5oCkBAIC01MCw4
ICs1MCw2IEBAIHN0cnVjdCBUaHVuZGVyU3lzdGVtRGVsZXRlciB7CiAKIHVzaW5nIFVuaXF1ZVRo
dW5kZXJTeXN0ZW0gPSBzdGQ6OnVuaXF1ZV9wdHI8T3BlbkNETVN5c3RlbSwgVGh1bmRlclN5c3Rl
bURlbGV0ZXI+OwogCi11c2luZyBVbmlxdWVUaHVuZGVyU2Vzc2lvbiA9IHN0ZDo6dW5pcXVlX3B0
cjxPcGVuQ0RNU2Vzc2lvbiwgV1RGOjpCb3hQdHJEZWxldGVyPE9wZW5DRE1TZXNzaW9uPj47Ci0K
IH0gLy8gbmFtZXNwYWNlIFRodW5kZXIKIAogY2xhc3MgQ0RNRmFjdG9yeVRodW5kZXIgZmluYWwg
OiBwdWJsaWMgQ0RNRmFjdG9yeSwgcHVibGljIENETVByb3h5RmFjdG9yeSB7CkBAIC0xNjEsNyAr
MTU5LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZG9lc0tleVN0b3JlTmVlZE1lcmdpbmcgeyBm
YWxzZSB9OwogICAgIEluaXREYXRhIG1faW5pdERhdGE7CiAgICAgT3BlbkNETVNlc3Npb25DYWxs
YmFja3MgbV90aHVuZGVyU2Vzc2lvbkNhbGxiYWNrcyB7IH07Ci0gICAgVGh1bmRlcjo6VW5pcXVl
VGh1bmRlclNlc3Npb24gbV9zZXNzaW9uOworICAgIEJveFB0cjxPcGVuQ0RNU2Vzc2lvbj4gbV9z
ZXNzaW9uOwogICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IG1fbWVzc2FnZTsKICAgICBib29sIG1f
bmVlZHNJbmRpdmlkdWFsaXphdGlvbiB7IGZhbHNlIH07CiAgICAgVmVjdG9yPENoYWxsZW5nZUdl
bmVyYXRlZENhbGxiYWNrPiBtX2NoYWxsZW5nZUNhbGxiYWNrczsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432396</attachid>
            <date>2021-06-28 08:19:53 -0700</date>
            <delta_ts>2021-06-28 23:12:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227403-20210628171952.patch</filename>
            <type>text/plain</type>
            <size>21071</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MzI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODBhMWI2M2FjYjAzMzVh
ZmYyZmYwMzRjNjc4MWRiNmE0ODUwYzJhNS4uOTliNTM0Y2Q5MDhjMDAzNDlmMDhmNjY4MzJkYzEy
MDhjODIwZmRjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisyMDIxLTA2LTI4ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dT
dHJlYW1lcl1bRU1FXSBGaXggcmVzb3VyY2VzIHJlbGVhc2Ugd2hlbiBhIE1lZGlhS2V5U2Vzc2lv
biBpcyBjbG9zZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyNzQwMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRodW5kZXIgc2Vzc2lvbnMgc2hvdWxkIGJlIGEgQm94UHRyLCBhbHJlYWR5IHdoZW4gc3Rv
cmVkIGF0IHRoZQorICAgICAgICBDRE1JbnN0YW5jZVNlc3Npb25UaHVuZGVyLCBpdCBkb2VzIG5v
dCBtYWtlIHNlbnNlIHRvIHN0b3JlIHRoZW4gaW4KKyAgICAgICAgYSB1bmlxdWVfcHRyLiBUaGlz
IHdheSB0aGUgc2FtZSBzZXNzaW9uIGxpdmVzIGluIHRoZQorICAgICAgICBNZWRpYUtleVNlc3Np
b24gd3JhcHBlciAoQ0RNSW5zdGFuY2VTZXNzaW9uVGh1bmRlcikgYW5kIGluc2lkZSB0aGUKKyAg
ICAgICAgS2V5U3RvcmVzLgorCisgICAgICAgIFJlbW92ZWQgdGhlIENETUluc3RhbmNlUHJveHkg
a2V5IHN0b3JlLiBJdCBpcyBub3QgbmVlZGVkLgorCisgICAgICAgIFdoZW4gYSBzZXNzaW9uIGlz
IGNsb3NlZCBpbiBUaHVuZGVyLCB0aGVyZSBzaG91bGQgYmUgYSBjYXNjYWRlIHRvCisgICAgICAg
IHJlbW92ZSBpdCBmcm9tIHRoZSBvdGhlciBzeW5jZWQgc3RvcmVzLCB0aGF0J3Mgd2h5IHdlIGlu
dHJvZHVjZQorICAgICAgICB0aGUgcmVtb3ZlQWxsS2V5c0Zyb20gbG9naWMuCisKKyAgICAgICAg
UmVndWxhciBrZXkgc3RvcmVzIGRvIG5vdCBtYW5hZ2Uga2V5IHNlc3Npb24gcmVmZXJlbmNlcwor
ICAgICAgICBhbnltb3JlLiBUaGV5IGFyZSBvbmx5IG5lZWRlZCBpbiB0aGUgQ0RNUHJveHkgY2xh
c3MsIHdoaWNoIGlzCisgICAgICAgIHdoZXJlIHRoZSBrZXlzIGFyZSBzaGFyZWQgYW1vbmcgZGlm
ZmVyZW50IHNlc3Npb25zLiBXZSB3ZXJlCisgICAgICAgIG1hbmFnaW5nIGtleSBzZXNzaW9uIHJl
ZmVyZW5jZXMgaW4gb3RoZXIgc3RvcmVzIGFuZCB0aGV5IHdlcmUKKyAgICAgICAgbWVzc2luZyB1
cCB3aXRoIHRoZSBrZXkgcmVmZXJlbmNlcyBpbiB0aGUgQ0RNUHJveHkgY2xhc3MuIEluCisgICAg
ICAgIHRob3NlIGNhc2VzLCBhIGtleSBrZXB0IGluIGEgbG9jYWwgc3RvcmUgY291bGQgaGF2ZSBh
IHJlZmVyZW5jZQorICAgICAgICB0aGF0IHdvdWxkIHByZXZlbnQgdGhlIENETVByb3h5IGtleSBz
dG9yZSBmcm9tIHJlbW92aW5nIGl0IHdoZW4KKyAgICAgICAgYXNrZWQgZnJvbSBpdC4gVGhlcmUg
d2VyZSBhbHNvIGNhc2VzIG9mIHJlbW92aW5nIGtleXMgZnJvbSBsb2NhbAorICAgICAgICBzdG9y
ZXMgdGhhdCB3ZXJlIGNyZWF0aW5nIG5lZ2F0aXZlIHJlZmVyZW5jZSBudW1iZXJzLCB3aGljaAor
ICAgICAgICBjcmVhdGVkIHRoZSBvcHBvc2l0ZSBlZmZlY3QsIHRoaXMgaXMsIGxlYXZpbmcgaW4g
cGxhY2Uga2V5cyBpbiB0aGUKKyAgICAgICAgQ0RNUHJveHkgc3RvcmUgdGhhdCBzaG91bGQgYmUg
cmVsZWFzZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpLZXlTdG9yZTo6bWVyZ2UpOiBTaW1wbGlmaWVkIHRvIGp1
c3QgYWRkIGtleXMuCisgICAgICAgIChXZWJDb3JlOjpLZXlTdG9yZTo6YWRkKTogQWRkcyByZWZl
cmVuY2VzIChpZiBuZWVkZWQpIGFuZCBtZXJnZXMKKyAgICAgICAgaWYgbmVlZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6S2V5U3RvcmU6OnVucmVmQWxsS2V5cyk6IFJlbmFtZWQuIFVucmVmcyBhbGwg
a2V5cyBmcm9tIGEKKyAgICAgICAgc3RvcmUgYnkgY29weWluZyBpdHNlbGYgYW5kIGNhbGxpbmcg
dW5yZWZBbGxLZXlzRnJvbSB0aGF0IGNvcHkuCisgICAgICAgIChXZWJDb3JlOjpLZXlTdG9yZTo6
dW5yZWYpOiBSZW5hbWVkLiBVc2VzIHByb3BlciByZWZlZmVuY2luZy4KKyAgICAgICAgKFdlYkNv
cmU6OkNETVByb3h5Ojp1bnJlZkFsbEtleXNGcm9tKTogTWV0aG9kIHRvIHVucmVmIGFsbCBrZXlz
CisgICAgICAgIHRoYXQgYXJlIGNvbnRhaW5lZCBpbiBzb21lIG90aGVyIHN0b3JlLgorICAgICAg
ICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VQcm94eTo6bWVyZ2VLZXlzRnJvbSk6IFRoZXJlIGlzIG5v
IG1vcmUga2V5CisgICAgICAgIHN0b3JlIGluIHRoaXMgY2xhc3MuCisgICAgICAgIChXZWJDb3Jl
OjpDRE1JbnN0YW5jZVByb3h5Ojp1bnJlZkFsbEtleXNGcm9tKTogUmVuYW1lZC4gQ2FsbHMgdGhl
CisgICAgICAgIENETXByb3h5IHRvIHVucmVmIHRoZSBrZXlzIGZyb20gdGhlcmUuCisgICAgICAg
ICogcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuaDoKKyAgICAgICAgKFdlYkNvcmU6
OktleUhhbmRsZTo6bWVyZ2VLZXlJbnRvKTogTWVyZ2VzIG9uZSBrZXkgaW50byBzZWxmIGJ5Cisg
ICAgICAgIGNvcHlpbmcgc3RhdHVzLCBkYXRhIGFuZCBzdW1taW5nIHJlZmVyZW5jZSBjb3VudC4K
KyAgICAgICAgKFdlYkNvcmU6OktleUhhbmRsZTo6bnVtU2Vzc2lvblJlZmVyZW5jZXMgY29uc3Qp
OiBUdXJuIGludC4KKyAgICAgICAgKFdlYkNvcmU6OktleUhhbmRsZTo6aGFzUmVmZXJlbmNlcyBj
b25zdCk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6S2V5U3RvcmU6OmFkZFNlc3Npb25SZWZl
cmVuY2VUbyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpLZXlTdG9yZTo6cmVtb3ZlU2Vzc2lv
blJlZmVyZW5jZUZyb20gY29uc3QpOiBIZWxwZXJzIHRvCisgICAgICAgIGNoZWNrIGlmIHRoZSBz
dG9yZSBpcyByZWZlcmVuY2UgY291bnRlZCBvciBub3QuIERlZmF1bHQgaXMgZG8KKyAgICAgICAg
bm90aGluZyBhbmQgYnV0IHRoZSBSZWZlcmVuY2VBd2FyZUtleVN0b3JlIHJlZGVmaW5lcyB0aGVt
IHRvIGRvCisgICAgICAgIHJlZmVyZW5jZSBjb3VudGluZy4KKyAgICAgICAgKFdlYkNvcmU6Oktl
eVN0b3JlOjp1bnJlZkFsbEtleXMpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2VuY3J5
cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNE
TUluc3RhbmNlU2Vzc2lvbkNsZWFyS2V5Ojp1cGRhdGVMaWNlbnNlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNETUluc3RhbmNlU2Vzc2lvbkNsZWFyS2V5OjpyZW1vdmVTZXNzaW9uRGF0YSk6IFVzZQor
ICAgICAgICByZW5hbWVkIG1ldGhvZHMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNl
U2Vzc2lvblRodW5kZXI6OnN0YXR1cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0
YW5jZVNlc3Npb25UaHVuZGVyOjprZXlVcGRhdGVkQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29y
ZTo6Q0RNSW5zdGFuY2VTZXNzaW9uVGh1bmRlcjo6cmVxdWVzdExpY2Vuc2UpOgorICAgICAgICAo
V2ViQ29yZTo6Q0RNSW5zdGFuY2VTZXNzaW9uVGh1bmRlcjo6dXBkYXRlTGljZW5zZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb25UaHVuZGVyOjpyZW1vdmVTZXNzaW9uRGF0
YSk6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb25UaHVuZGVyOjpsb2FkU2Vz
c2lvbik6IFVzZSBCb3hQdHIgaW4KKyAgICAgICAgdGhlIHNlc3Npb24uCisgICAgICAgIChXZWJD
b3JlOjpDRE1JbnN0YW5jZVNlc3Npb25UaHVuZGVyOjpjbG9zZVNlc3Npb24pOiBDbG9zZSB0aGUK
KyAgICAgICAgY3VycmVudCBzZXNzaW9uLCByZWxlYXNlIHRoZSBCb3hQdHIsIG5vdGlmeSB0aGUg
aW5zdGFuY2UgYW5kCisgICAgICAgIHRoZXJlZm9yZSB0aGUgcHJveHkgdG8gdW5yZWYgYWxsIHRo
ZXkga2V5IElEcyBpbiB0aGlzIHNlc3Npb24gYW5kCisgICAgICAgIGVtcHR5IHRoZSBsb2NhbCBr
ZXkgc3RvcmUuCisKIDIwMjEtMDYtMjcgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjc5MzIyLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuY3BwCmlu
ZGV4IGU3ZDY3YmY0M2UwODE4Mjk3ZTYzNDY3ODY4YjY2MGFhODhhODIxZjguLjU2MTYwNjljNWFm
OWE3M2NiMTQ4MGNkZGZiNzY2YWQ0MjYwYjkyMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1Qcm94eS5jcHAKQEAgLTExNywxOCArMTE3LDgg
QEAgdm9pZCBLZXlTdG9yZTo6bWVyZ2UoY29uc3QgS2V5U3RvcmUmIG90aGVyKQogewogICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgTE9HKEVNRSwgIkVNRSAtIENETVByb3h5IC0gbWVy
Z2luZyAldSBuZXcga2V5cyBpbnRvIGEga2V5IHN0b3JlIG9mICV1IGtleXMiLCBvdGhlci5udW1L
ZXlzKCksIG51bUtleXMoKSk7Ci0gICAgZm9yIChjb25zdCBhdXRvJiBrZXkgOiBvdGhlcikgewot
ICAgICAgICAvLyBOT1RFOiBEbyB3ZSBjYXJlIHRoYXQgd2Ugd2lsbCBub3QgYXBwZW5kIGEga2V5
IGlmIGl0IG1hdGNoZXMgYSBrZXkgSUQKLSAgICAgICAgLy8gaW4gdGhlIGtleXN0b3JlIGFuZCBo
YXMgZGlmZmVyZW50IGRhdGEuIFNob3VsZCB3ZSBvdmVyd3JpdGU/IFdoaWNoIGlzICJuZXdlciI/
Ci0gICAgICAgIC8vIERvbid0IHRoaW5rIHdlIG5lZWQgdGhpcyBleHRyYSBjb21wbGV4aXR5Lgot
ICAgICAgICBzaXplX3Qga2V5V2l0aE1hdGNoaW5nS2V5SURJbmRleCA9IG1fa2V5cy5maW5kTWF0
Y2hpbmcoWyZdIChjb25zdCBSZWZQdHI8S2V5SGFuZGxlPiYgc3RvcmVkS2V5KSB7IHJldHVybiAq
a2V5ID09ICpzdG9yZWRLZXk7IH0pOwotICAgICAgICBpZiAoa2V5V2l0aE1hdGNoaW5nS2V5SURJ
bmRleCA9PSBXVEY6Om5vdEZvdW5kKQotICAgICAgICAgICAgbV9rZXlzLmFwcGVuZChrZXkpOwot
ICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIExPRyhFTUUsICJFTUUgLSBDRE1Qcm94eSAtIGtl
eXMgd2l0aCB0aGUgc2FtZSBJRCEiKTsKLSAgICAgICAgICAgIEFTU0VSVChrZXktPnZhbHVlKCkg
PT0gbV9rZXlzW2tleVdpdGhNYXRjaGluZ0tleUlESW5kZXhdLT52YWx1ZSgpKTsKLSAgICAgICAg
fQotICAgIH0KKyAgICBmb3IgKGNvbnN0IGF1dG8mIGtleSA6IG90aGVyKQorICAgICAgICBhZGQo
a2V5LmNvcHlSZWYoKSk7CiAKICNpZiAhTE9HX0RJU0FCTEVECiAgICAgTE9HKEVNRSwgIkVNRSAt
IENETVByb3h5IC0ga2V5IHN0b3JlIG5vdyBoYXMgJXUga2V5cyIsIG51bUtleXMoKSk7CkBAIC0x
NjIsMTQgKzE1MiwxNSBAQCBib29sIEtleVN0b3JlOjphZGQoUmVmUHRyPEtleUhhbmRsZT4mJiBr
ZXkpCiAgICAgICAgIHJldHVybiAqa2V5ID09ICpzdG9yZWRLZXk7CiAgICAgfSk7CiAKKyAgICBh
ZGRTZXNzaW9uUmVmZXJlbmNlVG8oa2V5KTsKICAgICBpZiAoa2V5V2l0aE1hdGNoaW5nS2V5SURJ
bmRleCAhPSBXVEY6Om5vdEZvdW5kKSB7CiAgICAgICAgIGF1dG8mIGtleVdpdGhNYXRjaGluZ0tl
eUlEID0gbV9rZXlzW2tleVdpdGhNYXRjaGluZ0tleUlESW5kZXhdOwotICAgICAgICBkaWRTdG9y
ZUNoYW5nZSA9IGtleVdpdGhNYXRjaGluZ0tleUlEID09IGtleTsKKyAgICAgICAgZGlkU3RvcmVD
aGFuZ2UgPSBrZXlXaXRoTWF0Y2hpbmdLZXlJRCAhPSBrZXk7CiAgICAgICAgIGlmIChkaWRTdG9y
ZUNoYW5nZSkKLSAgICAgICAgICAgIGtleVdpdGhNYXRjaGluZ0tleUlEID0ga2V5OworICAgICAg
ICAgICAga2V5V2l0aE1hdGNoaW5nS2V5SUQtPm1lcmdlS2V5SW50byhXVEZNb3ZlKGtleSkpOwog
ICAgIH0gZWxzZSB7CiAgICAgICAgIExPRyhFTUUsICJFTUUgLSBDbGVhcktleSAtIE5ldyBrZXkg
d2l0aCBJRCAlcyBnZXR0aW5nIGFkZGVkIHRvIGtleSBzdG9yZSIsIGtleS0+aWRBc1N0cmluZygp
LmFzY2lpKCkuZGF0YSgpKTsgICAgICAKLSAgICAgICAgbV9rZXlzLmFwcGVuZChrZXkpOworICAg
ICAgICBtX2tleXMuYXBwZW5kKFdURk1vdmUoa2V5KSk7CiAgICAgICAgIGRpZFN0b3JlQ2hhbmdl
ID0gdHJ1ZTsKICAgICB9CiAKQEAgLTE4MywzMyArMTc0LDM4IEBAIGJvb2wgS2V5U3RvcmU6OmFk
ZChSZWZQdHI8S2V5SGFuZGxlPiYmIGtleSkKICAgICAgICAgICAgIH0pOwogICAgIH0KIAotICAg
IGtleS0+YWRkU2Vzc2lvblJlZmVyZW5jZSgpOwogICAgIHJldHVybiBkaWRTdG9yZUNoYW5nZTsK
IH0KIAotdm9pZCBLZXlTdG9yZTo6cmVtb3ZlQWxsS2V5c0Zyb20oY29uc3QgS2V5U3RvcmUmIG90
aGVyKQordm9pZCBLZXlTdG9yZTo6dW5yZWZBbGxLZXlzRnJvbShjb25zdCBLZXlTdG9yZSYgb3Ro
ZXIpCiB7CiAgICAgZm9yIChjb25zdCBhdXRvJiBrZXkgOiBvdGhlcikKLSAgICAgICAgcmVtb3Zl
KGtleSk7CisgICAgICAgIHVucmVmKGtleSk7CiB9CiAKLWJvb2wgS2V5U3RvcmU6OnJlbW92ZShj
b25zdCBSZWZQdHI8S2V5SGFuZGxlPiYga2V5KQordm9pZCBLZXlTdG9yZTo6dW5yZWZBbGxLZXlz
KCkKK3sKKyAgICBLZXlTdG9yZSBzdG9yZSgqdGhpcyk7CisgICAgdW5yZWZBbGxLZXlzRnJvbShz
dG9yZSk7Cit9CisKK2Jvb2wgS2V5U3RvcmU6OnVucmVmKGNvbnN0IFJlZlB0cjxLZXlIYW5kbGU+
JiBrZXkpCiB7CiAgICAgYm9vbCBzdG9yZUNoYW5nZWQgPSBmYWxzZTsKIAogICAgIHNpemVfdCBr
ZXlXaXRoTWF0Y2hpbmdLZXlJREluZGV4ID0gbV9rZXlzLmZpbmQoa2V5KTsKLSAgICBMT0coRU1F
LCAiRU1FIC0gQ2xlYXJLZXkgLSByZXF1ZXN0ZWQgdG8gcmVtb3ZlIGtleSB3aXRoIElEICVzIGFu
ZCAldSBzZXNzaW9uIHJlZmVyZW5jZXMiLCBrZXktPmlkQXNTdHJpbmcoKS5hc2NpaSgpLmRhdGEo
KSwga2V5LT5udW1TZXNzaW9uUmVmZXJlbmNlcygpKTsKKyAgICBMT0coRU1FLCAiRU1FIC0gQ2xl
YXJLZXkgLSByZXF1ZXN0ZWQgdG8gdW5yZWYga2V5IHdpdGggSUQgJXMgYW5kICVkIHNlc3Npb24g
cmVmZXJlbmNlcyIsIGtleS0+aWRBc1N0cmluZygpLmFzY2lpKCkuZGF0YSgpLCBrZXktPm51bVNl
c3Npb25SZWZlcmVuY2VzKCkpOwogCiAgICAgaWYgKGtleVdpdGhNYXRjaGluZ0tleUlESW5kZXgg
IT0gV1RGOjpub3RGb3VuZCkgewogICAgICAgICBhdXRvJiBrZXlXaXRoTWF0Y2hpbmdLZXlJRCA9
IG1fa2V5c1trZXlXaXRoTWF0Y2hpbmdLZXlJREluZGV4XTsKLSAgICAgICAga2V5V2l0aE1hdGNo
aW5nS2V5SUQtPnJlbW92ZVNlc3Npb25SZWZlcmVuY2UoKTsKLSAgICAgICAgaWYgKCFrZXlXaXRo
TWF0Y2hpbmdLZXlJRC0+bnVtU2Vzc2lvblJlZmVyZW5jZXMoKSkgewotICAgICAgICAgICAgTE9H
KEVNRSwgIkVNRSAtIENsZWFyS2V5IC0gcmVtb3ZlIGtleSB3aXRoIElEICVzIiwga2V5V2l0aE1h
dGNoaW5nS2V5SUQtPmlkQXNTdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSk7CisgICAgICAgIHJlbW92
ZVNlc3Npb25SZWZlcmVuY2VGcm9tKGtleVdpdGhNYXRjaGluZ0tleUlEKTsKKyAgICAgICAgaWYg
KCFrZXlXaXRoTWF0Y2hpbmdLZXlJRC0+aGFzUmVmZXJlbmNlcygpKSB7CisgICAgICAgICAgICBM
T0coRU1FLCAiRU1FIC0gQ2xlYXJLZXkgLSB1bnJlZiBrZXkgd2l0aCBJRCAlcyIsIGtleVdpdGhN
YXRjaGluZ0tleUlELT5pZEFzU3RyaW5nKCkuYXNjaWkoKS5kYXRhKCkpOwogICAgICAgICAgICAg
bV9rZXlzLnJlbW92ZShrZXlXaXRoTWF0Y2hpbmdLZXlJREluZGV4KTsKICAgICAgICAgICAgIHN0
b3JlQ2hhbmdlZCA9IHRydWU7CiAgICAgICAgIH0KICAgICB9IGVsc2UKLSAgICAgICAgTE9HKEVN
RSwgIkVNRSAtIENsZWFyS2V5IC0gYXR0ZW1wdCB0byByZW1vdmUga2V5IHdpdGggSUQgJXMgaWdu
b3JlZCwgZG9lcyBub3QgZXhpc3QiLCBrZXktPmlkQXNTdHJpbmcoKS5hc2NpaSgpLmRhdGEoKSk7
CisgICAgICAgIExPRyhFTUUsICJFTUUgLSBDbGVhcktleSAtIGF0dGVtcHQgdG8gdW5yZWYga2V5
IHdpdGggSUQgJXMgaWdub3JlZCwgZG9lcyBub3QgZXhpc3QiLCBrZXktPmlkQXNTdHJpbmcoKS5h
c2NpaSgpLmRhdGEoKSk7CiAKICAgICByZXR1cm4gc3RvcmVDaGFuZ2VkOwogfQpAQCAtMjQ4LDYg
KzI0NCwxNCBAQCBjb25zdCBDRE1JbnN0YW5jZVByb3h5KiBDRE1Qcm94eTo6aW5zdGFuY2UoKSBj
b25zdAogICAgIHJldHVybiBtX2luc3RhbmNlOwogfQogCit2b2lkIENETVByb3h5Ojp1bnJlZkFs
bEtleXNGcm9tKGNvbnN0IEtleVN0b3JlJiBrZXlTdG9yZSkKK3sKKyAgICBMb2NrZXIgbG9ja2Vy
IHsgbV9rZXlzTG9jayB9OworICAgIG1fa2V5U3RvcmUudW5yZWZBbGxLZXlzRnJvbShrZXlTdG9y
ZSk7CisgICAgTE9HKEVNRSwgIkVNRSAtIENETVByb3h5IC0gcmVtb3ZpbmcgZnJvbSBrZXkgc3Rv
cmUgZnJvbSBhIHNlc3Npb24gY2xvc3VyZSIpOworICAgIG1fa2V5c0NvbmRpdGlvbi5ub3RpZnlB
bGwoKTsKK30KKwogdm9pZCBDRE1Qcm94eTo6c2V0SW5zdGFuY2UoQ0RNSW5zdGFuY2VQcm94eSog
aW5zdGFuY2UpCiB7CiAgICAgTG9ja2VyIGxvY2tlciB7IG1faW5zdGFuY2VMb2NrIH07CkBAIC0z
NzcsMTcgKzM4MSwxOSBAQCB2b2lkIENETUluc3RhbmNlUHJveHk6Om1lcmdlS2V5c0Zyb20oY29u
c3QgS2V5U3RvcmUmIGtleVN0b3JlKQogewogICAgIC8vIEZJWE1FOiBOb3RpZnkgSlMgd2hlbiBh
cHByb3ByaWF0ZS4KICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIG1fa2V5U3RvcmUu
bWVyZ2Uoa2V5U3RvcmUpOwogICAgIGlmIChtX2NkbVByb3h5KSB7CiAgICAgICAgIExPRyhFTUUs
ICJFTUUgLSBDRE1JbnN0YW5jZVByb3h5IC0gbWVyZ2luZyBrZXlzIGludG8gcHJveHkgaW5zdGFu
Y2UgYW5kIG5vdGlmeWluZyBDRE1Qcm94eSBvZiBjaGFuZ2VzIik7CiAgICAgICAgIG1fY2RtUHJv
eHktPnVwZGF0ZUtleVN0b3JlKGtleVN0b3JlKTsKICAgICB9CiB9CiAKLXZvaWQgQ0RNSW5zdGFu
Y2VQcm94eTo6cmVtb3ZlQWxsS2V5c0Zyb20oY29uc3QgS2V5U3RvcmUmIGtleVN0b3JlKQordm9p
ZCBDRE1JbnN0YW5jZVByb3h5Ojp1bnJlZkFsbEtleXNGcm9tKGNvbnN0IEtleVN0b3JlJiBrZXlT
dG9yZSkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIG1fa2V5U3RvcmUucmVt
b3ZlQWxsS2V5c0Zyb20oa2V5U3RvcmUpOworICAgIGlmIChtX2NkbVByb3h5KSB7CisgICAgICAg
IExPRyhFTUUsICJFTUUgLSBDRE1JbnN0YW5jZVByb3h5IC0gcmVtb3Zpbmcga2V5cyBmcm9tIHBy
b3h5IGluc3RhbmNlIGFuZCBub3RpZnlpbmcgQ0RNUHJveHkgb2YgY2hhbmdlcyIpOworICAgICAg
ICBtX2NkbVByb3h5LT51bnJlZkFsbEtleXNGcm9tKGtleVN0b3JlKTsKKyAgICB9CiB9CiAKIENE
TUluc3RhbmNlU2Vzc2lvblByb3h5OjpDRE1JbnN0YW5jZVNlc3Npb25Qcm94eShDRE1JbnN0YW5j
ZVByb3h5JiBpbnN0YW5jZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Vu
Y3J5cHRlZG1lZGlhL0NETVByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0
ZWRtZWRpYS9DRE1Qcm94eS5oCmluZGV4IGU2MDNiMjUyNmM1NGMyMjY4NGE0OGZmMzIxODhmZDQw
N2NmYjhhMmMuLjkwNzg0YmU0MDA2ZGQwMTBlODEwN2EzYjQwMzdjMGRlYzQ2NGVkOGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETVByb3h5LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNUHJveHkuaApA
QCAtNjgsNiArNjgsMTIgQEAgcHVibGljOgogICAgIGNvbnN0IEtleUhhbmRsZVZhbHVlVmFyaWFu
dCYgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9CiAgICAgS2V5SGFuZGxlVmFsdWVW
YXJpYW50JiB2YWx1ZSgpIHsgcmV0dXJuIG1fdmFsdWU7IH0KICAgICBLZXlTdGF0dXMgc3RhdHVz
KCkgY29uc3QgeyByZXR1cm4gbV9zdGF0dXM7IH0KKyAgICB2b2lkIG1lcmdlS2V5SW50byhSZWZQ
dHI8S2V5SGFuZGxlPiYmIG90aGVyKQorICAgIHsKKyAgICAgICAgbV9zdGF0dXMgPSBvdGhlci0+
bV9zdGF0dXM7CisgICAgICAgIG1fdmFsdWUgPSBvdGhlci0+bV92YWx1ZTsKKyAgICAgICAgbV9u
dW1TZXNzaW9uUmVmZXJlbmNlcyArPSBvdGhlci0+bV9udW1TZXNzaW9uUmVmZXJlbmNlczsKKyAg
ICB9CiAgICAgYm9vbCBpc1N0YXR1c0N1cnJlbnRseVZhbGlkKCkKICAgICB7CiAgICAgICAgIHJl
dHVybiBtX3N0YXR1cyA9PSBDRE1JbnN0YW5jZVNlc3Npb246OktleVN0YXR1czo6VXNhYmxlIHx8
IG1fc3RhdHVzID09IENETUluc3RhbmNlU2Vzc2lvbjo6S2V5U3RhdHVzOjpPdXRwdXRSZXN0cmlj
dGVkCkBAIC05OSw4ICsxMDUsMTAgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2b2lkIGFkZFNl
c3Npb25SZWZlcmVuY2UoKSB7IEFTU0VSVChpc01haW5UaHJlYWQoKSk7IG1fbnVtU2Vzc2lvblJl
ZmVyZW5jZXMrKzsgfQogICAgIHZvaWQgcmVtb3ZlU2Vzc2lvblJlZmVyZW5jZSgpIHsgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsgbV9udW1TZXNzaW9uUmVmZXJlbmNlcy0tOyB9Ci0gICAgdW5zaWdu
ZWQgbnVtU2Vzc2lvblJlZmVyZW5jZXMoKSBjb25zdCB7IEFTU0VSVChpc01haW5UaHJlYWQoKSk7
IHJldHVybiBtX251bVNlc3Npb25SZWZlcmVuY2VzOyB9CisgICAgaW50IG51bVNlc3Npb25SZWZl
cmVuY2VzKCkgY29uc3QgeyBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOyByZXR1cm4gbV9udW1TZXNz
aW9uUmVmZXJlbmNlczsgfQorICAgIGJvb2wgaGFzUmVmZXJlbmNlcygpIGNvbnN0IHsgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsgcmV0dXJuIG1fbnVtU2Vzc2lvblJlZmVyZW5jZXMgPiAwOyB9CiAg
ICAgZnJpZW5kIGNsYXNzIEtleVN0b3JlOworICAgIGZyaWVuZCBjbGFzcyBSZWZlcmVuY2VBd2Fy
ZUtleVN0b3JlOwogCiAgICAgS2V5SGFuZGxlKEtleVN0YXR1cyBzdGF0dXMsIEtleUlEVHlwZSYm
IGtleUlELCBLZXlIYW5kbGVWYWx1ZVZhcmlhbnQmJiBrZXlIYW5kbGVWYWx1ZSkKICAgICAgICAg
OiBtX3N0YXR1cyhzdGF0dXMpLCBtX2lkKFdURk1vdmUoa2V5SUQpKSwgbV92YWx1ZShXVEZNb3Zl
KGtleUhhbmRsZVZhbHVlKSkgeyB9CkBAIC0xMDgsNyArMTE2LDcgQEAgcHJpdmF0ZToKICAgICBL
ZXlTdGF0dXMgbV9zdGF0dXM7CiAgICAgS2V5SURUeXBlIG1faWQ7CiAgICAgS2V5SGFuZGxlVmFs
dWVWYXJpYW50IG1fdmFsdWU7Ci0gICAgdW5zaWduZWQgbV9udW1TZXNzaW9uUmVmZXJlbmNlcyB7
IDAgfTsKKyAgICBpbnQgbV9udW1TZXNzaW9uUmVmZXJlbmNlcyB7IDAgfTsKIH07CiAKIGNsYXNz
IEtleVN0b3JlIHsKQEAgLTExNiwyMCArMTI0LDIzIEBAIHB1YmxpYzoKICAgICB1c2luZyBLZXlT
dGF0dXNWZWN0b3IgPSBDRE1JbnN0YW5jZVNlc3Npb246OktleVN0YXR1c1ZlY3RvcjsKIAogICAg
IEtleVN0b3JlKCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgfktleVN0b3JlKCkgPSBkZWZhdWx0
OwogCiAgICAgYm9vbCBjb250YWluc0tleUlEKGNvbnN0IEtleUlEVHlwZSYpIGNvbnN0OwogICAg
IHZvaWQgbWVyZ2UoY29uc3QgS2V5U3RvcmUmKTsKLSAgICB2b2lkIHJlbW92ZUFsbEtleXNGcm9t
KGNvbnN0IEtleVN0b3JlJik7Ci0gICAgdm9pZCByZW1vdmVBbGxLZXlzKCkgeyBtX2tleXMuY2xl
YXIoKTsgfQorICAgIHZvaWQgdW5yZWZBbGxLZXlzRnJvbShjb25zdCBLZXlTdG9yZSYpOworICAg
IHZvaWQgdW5yZWZBbGxLZXlzKCk7CiAgICAgYm9vbCBhZGRLZXlzKFZlY3RvcjxSZWZQdHI8S2V5
SGFuZGxlPj4mJik7CiAgICAgYm9vbCBhZGQoUmVmUHRyPEtleUhhbmRsZT4mJik7Ci0gICAgYm9v
bCByZW1vdmUoY29uc3QgUmVmUHRyPEtleUhhbmRsZT4mKTsKKyAgICBib29sIHVucmVmKGNvbnN0
IFJlZlB0cjxLZXlIYW5kbGU+Jik7CiAgICAgYm9vbCBoYXNLZXlzKCkgY29uc3QgeyByZXR1cm4g
bV9rZXlzLnNpemUoKTsgfQogICAgIHVuc2lnbmVkIG51bUtleXMoKSBjb25zdCB7IHJldHVybiBt
X2tleXMuc2l6ZSgpOyB9CiAgICAgY29uc3QgUmVmUHRyPEtleUhhbmRsZT4mIGtleUhhbmRsZShj
b25zdCBLZXlJRFR5cGUmKSBjb25zdDsKICAgICBLZXlTdGF0dXNWZWN0b3IgYWxsS2V5c0FzKENE
TUluc3RhbmNlU2Vzc2lvbjo6S2V5U3RhdHVzKSBjb25zdDsKICAgICBLZXlTdGF0dXNWZWN0b3Ig
Y29udmVydFRvSlNLZXlTdGF0dXNWZWN0b3IoKSBjb25zdDsKICAgICBib29sIGlzRW1wdHkoKSBj
b25zdCB7IHJldHVybiBtX2tleXMuaXNFbXB0eSgpOyB9CisgICAgdmlydHVhbCB2b2lkIGFkZFNl
c3Npb25SZWZlcmVuY2VUbyhjb25zdCBSZWZQdHI8S2V5SGFuZGxlPiYpIGNvbnN0IHsgfQorICAg
IHZpcnR1YWwgdm9pZCByZW1vdmVTZXNzaW9uUmVmZXJlbmNlRnJvbShjb25zdCBSZWZQdHI8S2V5
SGFuZGxlPiYpIGNvbnN0IHsgfTsKIAogICAgIGF1dG8gYmVnaW4oKSB7IHJldHVybiBtX2tleXMu
YmVnaW4oKTsgfQogICAgIGF1dG8gYmVnaW4oKSBjb25zdCB7IHJldHVybiBtX2tleXMuYmVnaW4o
KTsgfQpAQCAtMTQ0LDYgKzE1NSwxMyBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxSZWZQdHI8S2V5
SGFuZGxlPj4gbV9rZXlzOwogfTsKIAorY2xhc3MgUmVmZXJlbmNlQXdhcmVLZXlTdG9yZSA6IHB1
YmxpYyBLZXlTdG9yZSB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+UmVmZXJlbmNlQXdhcmVLZXlT
dG9yZSgpID0gZGVmYXVsdDsKKyAgICB2b2lkIGFkZFNlc3Npb25SZWZlcmVuY2VUbyhjb25zdCBS
ZWZQdHI8S2V5SGFuZGxlPiYga2V5KSBjb25zdCBmaW5hbCB7IGtleS0+YWRkU2Vzc2lvblJlZmVy
ZW5jZSgpOyB9CisgICAgdm9pZCByZW1vdmVTZXNzaW9uUmVmZXJlbmNlRnJvbShjb25zdCBSZWZQ
dHI8S2V5SGFuZGxlPiYga2V5KSBjb25zdCBmaW5hbCB7IGtleS0+cmVtb3ZlU2Vzc2lvblJlZmVy
ZW5jZSgpOyB9Cit9OworCiBjbGFzcyBDRE1JbnN0YW5jZVByb3h5OwogY2xhc3MgQ0RNUHJveHlE
ZWNyeXB0aW9uQ2xpZW50OwogCkBAIC0xNTUsNyArMTczLDggQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCB+Q0RNUHJveHkoKSA9IGRlZmF1bHQ7CiAKLSAgICB2b2lkIHVwZGF0ZUtleVN0b3JlKGNv
bnN0IEtleVN0b3JlJiBuZXdLZXlTdG9yZSk7CisgICAgdm9pZCB1cGRhdGVLZXlTdG9yZShjb25z
dCBLZXlTdG9yZSYpOworICAgIHZvaWQgdW5yZWZBbGxLZXlzRnJvbShjb25zdCBLZXlTdG9yZSYp
OwogICAgIHZvaWQgc2V0SW5zdGFuY2UoQ0RNSW5zdGFuY2VQcm94eSopOwogICAgIHZvaWQgYWJv
cnRXYWl0aW5nRm9yS2V5KCkgY29uc3Q7CiAKQEAgLTE3OCw3ICsxOTcsNyBAQCBwcml2YXRlOgog
ICAgIG11dGFibGUgQ29uZGl0aW9uIG1fa2V5c0NvbmRpdGlvbjsKICAgICAvLyBGSVhNRTogRHVw
bGljYXRlZCBrZXkgc3RvcmVzIGluIHRoZSBpbnN0YW5jZSBhbmQgdGhlIHByb3h5IGFyZSBwcm9i
YWJseSBub3QgbmVlZGVkLCBidXQgc2ltcGxpZmllZAogICAgIC8vIHRoZSBpbml0aWFsIGltcGxl
bWVudGF0aW9uIGluIHRlcm1zIG9mIHRocmVhZGluZyBpbnZhcmlhbnRzLgotICAgIEtleVN0b3Jl
IG1fa2V5U3RvcmUgV1RGX0dVQVJERURfQllfTE9DSyhtX2tleXNMb2NrKTsKKyAgICBSZWZlcmVu
Y2VBd2FyZUtleVN0b3JlIG1fa2V5U3RvcmUgV1RGX0dVQVJERURfQllfTE9DSyhtX2tleXNMb2Nr
KTsKIH07CiAKIGNsYXNzIENETVByb3h5RmFjdG9yeSB7CkBAIC0yMjksNyArMjQ4LDcgQEAgcHVi
bGljOgogCiAgICAgLy8gTWFpbi10aHJlYWQgb25seS4KICAgICB2b2lkIG1lcmdlS2V5c0Zyb20o
Y29uc3QgS2V5U3RvcmUmKTsKLSAgICB2b2lkIHJlbW92ZUFsbEtleXNGcm9tKGNvbnN0IEtleVN0
b3JlJik7CisgICAgdm9pZCB1bnJlZkFsbEtleXNGcm9tKGNvbnN0IEtleVN0b3JlJik7CiAKICAg
ICAvLyBNZWRpYSBwbGF5ZXIgcXVlcnkgbWV0aG9kcyAtIG1haW4gdGhyZWFkIG9ubHkuCiAgICAg
Y29uc3QgUmVmUHRyPENETVByb3h5PiYgcHJveHkoKSBjb25zdCB7IEFTU0VSVChpc01haW5UaHJl
YWQoKSk7IHJldHVybiBtX2NkbVByb3h5OyB9CkBAIC0yNDgsOCArMjY3LDYgQEAgcHJpdmF0ZToK
ICAgICBNZWRpYVBsYXllciogbV9wbGF5ZXIgeyBudWxscHRyIH07IC8vIEZJWE1FOiBNYWluVGhy
ZWFkPFQ+PwogCiAgICAgc3RkOjphdG9taWM8aW50PiBtX251bURlY3J5cHRvcnNXYWl0aW5nRm9y
S2V5IHsgMCB9OwotCi0gICAgS2V5U3RvcmUgbV9rZXlTdG9yZTsKIH07CiAKIGNsYXNzIENETVBy
b3h5RGVjcnlwdGlvbkNsaWVudCA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxDRE1Qcm94eURlY3J5
cHRpb25DbGllbnQsIFdlYWtQdHJGYWN0b3J5SW5pdGlhbGl6YXRpb246OkVhZ2VyPiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9D
RE1DbGVhcktleS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9j
bGVhcmtleS9DRE1DbGVhcktleS5jcHAKaW5kZXggNDVkMTRhZDkwMDM3M2EyN2JmM2IyZjMzMjM4
MjJmZThmMzQxNjI2OS4uNjhlYjJhODVkMTA1Nzg3OWZjYmMwM2EzMGZiM2YyZGZhMmFlYjZiZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJr
ZXkvQ0RNQ2xlYXJLZXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRl
ZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5LmNwcApAQCAtNTIwLDggKzUyMCw4IEBAIHZvaWQg
Q0RNSW5zdGFuY2VTZXNzaW9uQ2xlYXJLZXk6OnVwZGF0ZUxpY2Vuc2UoY29uc3QgU3RyaW5nJiBz
ZXNzaW9uSWQsIExpY2Vuc2VUCiAKICAgICBpZiAocGFyc2VMaWNlbnNlUmVsZWFzZUFja25vd2xl
ZGdlbWVudEZvcm1hdCgqcm9vdCkpIHsKICAgICAgICAgTE9HKEVNRSwgIkVNRSAtIENsZWFyS2V5
IC0gc2Vzc2lvbiAlcyByZWxlYXNlIGFja25vd2xlZGdlZCwgY2xlYXJpbmcgYWxsIGtub3duIGtl
eXMiLCBzZXNzaW9uSWQudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIHBhcmVudEluc3RhbmNlKCku
cmVtb3ZlQWxsS2V5c0Zyb20obV9rZXlTdG9yZSk7Ci0gICAgICAgIG1fa2V5U3RvcmUucmVtb3Zl
QWxsS2V5cygpOworICAgICAgICBwYXJlbnRJbnN0YW5jZSgpLnVucmVmQWxsS2V5c0Zyb20obV9r
ZXlTdG9yZSk7CisgICAgICAgIG1fa2V5U3RvcmUudW5yZWZBbGxLZXlzKCk7CiAgICAgICAgIGRp
c3BhdGNoQ2FsbGJhY2sodHJ1ZSwgc3RkOjpudWxsb3B0LCBTdWNjZXNzVmFsdWU6OlN1Y2NlZWRl
ZCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC01OTksNyArNTk5LDcgQEAgdm9pZCBDRE1J
bnN0YW5jZVNlc3Npb25DbGVhcktleTo6cmVtb3ZlU2Vzc2lvbkRhdGEoY29uc3QgU3RyaW5nJiBz
ZXNzaW9uSWQsIExpY2UKICAgICAgICAgbWVzc2FnZSA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKG1l
c3NhZ2VDU3RyaW5nLmRhdGEoKSwgbWVzc2FnZUNTdHJpbmcubGVuZ3RoKCkpOwogICAgIH0KIAot
ICAgIG1fa2V5U3RvcmUucmVtb3ZlQWxsS2V5cygpOworICAgIG1fa2V5U3RvcmUudW5yZWZBbGxL
ZXlzKCk7CiAgICAgZGlzcGF0Y2hDYWxsYmFjayhXVEZNb3ZlKGtleVN0YXR1c1ZlY3RvciksIFJl
ZjxTaGFyZWRCdWZmZXI+KCptZXNzYWdlKSwgU3VjY2Vzc1ZhbHVlOjpTdWNjZWVkZWQpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
ZW1lL0NETVRodW5kZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0
cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmNwcAppbmRleCAxNzEzNWExNDFjZDZmYTJjZTZhODcyYzc3
MzE5ZTQzM2IzODc2MDIwLi45ZTg3NTQxODQ4YWRlNjc3NDNjMTA4ZDlmMDBjMDU1ZDQxMGI3MGFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
ZW1lL0NETVRodW5kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5jcHAKQEAgLTQzMiw3ICs0MzIsNyBAQCBzdGF0aWMg
Y29uc3QgY2hhciogdG9TdHJpbmcoQ0RNSW5zdGFuY2VTZXNzaW9uOjpLZXlTdGF0dXMgc3RhdHVz
KQogCiBDRE1JbnN0YW5jZVNlc3Npb246OktleVN0YXR1cyBDRE1JbnN0YW5jZVNlc3Npb25UaHVu
ZGVyOjpzdGF0dXMoY29uc3QgS2V5SURUeXBlJiBrZXlJRCkgY29uc3QKIHsKLSAgICBUaHVuZGVy
S2V5U3RhdHVzIHN0YXR1cyA9IG1fc2Vzc2lvbiAmJiAhbV9zZXNzaW9uSUQuaXNFbXB0eSgpID8g
b3BlbmNkbV9zZXNzaW9uX3N0YXR1cyhtX3Nlc3Npb24uZ2V0KCksIGtleUlELmRhdGEoKSwga2V5
SUQuc2l6ZSgpKSA6IFN0YXR1c1BlbmRpbmc7CisgICAgVGh1bmRlcktleVN0YXR1cyBzdGF0dXMg
PSBtX3Nlc3Npb24gJiYgIW1fc2Vzc2lvbklELmlzRW1wdHkoKSA/IG9wZW5jZG1fc2Vzc2lvbl9z
dGF0dXMobV9zZXNzaW9uLT5nZXQoKSwga2V5SUQuZGF0YSgpLCBrZXlJRC5zaXplKCkpIDogU3Rh
dHVzUGVuZGluZzsKIAogICAgIHN3aXRjaCAoc3RhdHVzKSB7CiAgICAgY2FzZSBVc2FibGU6CkBA
IC00NjEsNyArNDYxLDcgQEAgdm9pZCBDRE1JbnN0YW5jZVNlc3Npb25UaHVuZGVyOjprZXlVcGRh
dGVkQ2FsbGJhY2soS2V5SURUeXBlJiYga2V5SUQpCiAKICAgICBhdXRvIGtleVN0YXR1cyA9IHN0
YXR1cyhrZXlJRCk7CiAgICAgR1NUX0RFQlVHKCJ1cGRhdGVkIHdpdGggd2l0aCBrZXkgc3RhdHVz
ICVzIiwgdG9TdHJpbmcoa2V5U3RhdHVzKSk7Ci0gICAgbV9kb2VzS2V5U3RvcmVOZWVkTWVyZ2lu
ZyB8PSBtX2tleVN0b3JlLmFkZChLZXlIYW5kbGU6OmNyZWF0ZShrZXlTdGF0dXMsIFdURk1vdmUo
a2V5SUQpLCBCb3hQdHI8T3BlbkNETVNlc3Npb24+KCkpKTsKKyAgICBtX2RvZXNLZXlTdG9yZU5l
ZWRNZXJnaW5nIHw9IG1fa2V5U3RvcmUuYWRkKEtleUhhbmRsZTo6Y3JlYXRlKGtleVN0YXR1cywg
V1RGTW92ZShrZXlJRCksIEJveFB0cjxPcGVuQ0RNU2Vzc2lvbj4obV9zZXNzaW9uKSkpOwogfQog
CiB2b2lkIENETUluc3RhbmNlU2Vzc2lvblRodW5kZXI6OmtleXNVcGRhdGVEb25lQ2FsbGJhY2so
KQpAQCAtNTE4LDggKzUxOCw4IEBAIHZvaWQgQ0RNSW5zdGFuY2VTZXNzaW9uVGh1bmRlcjo6cmVx
dWVzdExpY2Vuc2UoTGljZW5zZVR5cGUgbGljZW5zZVR5cGUsIGNvbnN0IEF0CiAgICAgICAgIGNh
bGxiYWNrKGluaXREYXRhLnJlbGVhc2VOb25OdWxsKCksIHsgfSwgZmFsc2UsIEZhaWxlZCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgbV9zZXNzaW9uLnJlc2V0KHNlc3Npb24pOwotICAg
IG1fc2Vzc2lvbklEID0gU3RyaW5nOjpmcm9tVVRGOChvcGVuY2RtX3Nlc3Npb25faWQobV9zZXNz
aW9uLmdldCgpKSk7CisgICAgbV9zZXNzaW9uID0gYWRvcHRJbkJveFB0cihzZXNzaW9uKTsKKyAg
ICBtX3Nlc3Npb25JRCA9IFN0cmluZzo6ZnJvbVVURjgob3BlbmNkbV9zZXNzaW9uX2lkKG1fc2Vz
c2lvbi0+Z2V0KCkpKTsKIAogICAgIGF1dG8gZ2VuZXJhdGVDaGFsbGVuZ2UgPSBbdGhpcywgY2Fs
bGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKQEAgLTU4Niw3ICs1ODYsNyBAQCB2b2lkIENETUluc3RhbmNlU2Vzc2lv
blRodW5kZXI6OnVwZGF0ZUxpY2Vuc2UoY29uc3QgU3RyaW5nJiBzZXNzaW9uSUQsIExpY2Vuc2VU
eQogICAgICAgICAgICAgY2FsbGJhY2soZmFsc2UsIHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0
LCBzdGQ6Om51bGxvcHQsIFN1Y2Nlc3NWYWx1ZTo6RmFpbGVkKTsKICAgICAgICAgfQogICAgIH0p
OwotICAgIGlmICghbV9zZXNzaW9uIHx8IG1fc2Vzc2lvbklELmlzRW1wdHkoKSB8fCBvcGVuY2Rt
X3Nlc3Npb25fdXBkYXRlKG1fc2Vzc2lvbi5nZXQoKSwgcmVzcG9uc2UtPmRhdGEoKSwgcmVzcG9u
c2UtPnNpemUoKSkpCisgICAgaWYgKCFtX3Nlc3Npb24gfHwgbV9zZXNzaW9uSUQuaXNFbXB0eSgp
IHx8IG9wZW5jZG1fc2Vzc2lvbl91cGRhdGUobV9zZXNzaW9uLT5nZXQoKSwgcmVzcG9uc2UtPmRh
dGEoKSwgcmVzcG9uc2UtPnNpemUoKSkpCiAgICAgICAgIHNlc3Npb25GYWlsdXJlKCk7CiB9CiAK
QEAgLTYyMyw3ICs2MjMsNyBAQCB2b2lkIENETUluc3RhbmNlU2Vzc2lvblRodW5kZXI6OmxvYWRT
ZXNzaW9uKExpY2Vuc2VUeXBlLCBjb25zdCBTdHJpbmcmIHNlc3Npb25JRAogICAgICAgICAgICAg
Y2FsbGJhY2soc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCwgU3VjY2Vz
c1ZhbHVlOjpGYWlsZWQsIHNlc3Npb25Mb2FkRmFpbHVyZUZyb21UaHVuZGVyKHJlc3BvbnNlKSk7
CiAgICAgICAgIH0KICAgICB9KTsKLSAgICBpZiAoIW1fc2Vzc2lvbiB8fCBtX3Nlc3Npb25JRC5p
c0VtcHR5KCkgfHwgb3BlbmNkbV9zZXNzaW9uX2xvYWQobV9zZXNzaW9uLmdldCgpKSkKKyAgICBp
ZiAoIW1fc2Vzc2lvbiB8fCBtX3Nlc3Npb25JRC5pc0VtcHR5KCkgfHwgb3BlbmNkbV9zZXNzaW9u
X2xvYWQobV9zZXNzaW9uLT5nZXQoKSkpCiAgICAgICAgIHNlc3Npb25GYWlsdXJlKCk7CiB9CiAK
QEAgLTYzMSw4ICs2MzEsMTUgQEAgdm9pZCBDRE1JbnN0YW5jZVNlc3Npb25UaHVuZGVyOjpjbG9z
ZVNlc3Npb24oY29uc3QgU3RyaW5nJiBzZXNzaW9uSUQsIENsb3NlU2Vzc2kKIHsKICAgICBBU1NF
UlRfVU5VU0VEKHNlc3Npb25JRCwgbV9zZXNzaW9uSUQgPT0gc2Vzc2lvbklEKTsKIAotICAgIGlm
IChtX3Nlc3Npb24gJiYgIW1fc2Vzc2lvbklELmlzRW1wdHkoKSkKLSAgICAgICAgb3BlbmNkbV9z
ZXNzaW9uX2Nsb3NlKG1fc2Vzc2lvbi5nZXQoKSk7CisgICAgaWYgKG1fc2Vzc2lvbiAmJiAhbV9z
ZXNzaW9uSUQuaXNFbXB0eSgpKSB7CisgICAgICAgIG9wZW5jZG1fc2Vzc2lvbl9jbG9zZShtX3Nl
c3Npb24tPmdldCgpKTsKKyAgICAgICAgbV9zZXNzaW9uID0gQm94UHRyPE9wZW5DRE1TZXNzaW9u
PigpOworICAgICAgICBhdXRvIGluc3RhbmNlID0gY2RtSW5zdGFuY2VUaHVuZGVyKCk7CisgICAg
ICAgIGlmIChpbnN0YW5jZSkgeworICAgICAgICAgICAgaW5zdGFuY2UtPnVucmVmQWxsS2V5c0Zy
b20obV9rZXlTdG9yZSk7CisgICAgICAgICAgICBtX2tleVN0b3JlLnVucmVmQWxsS2V5cygpOwor
ICAgICAgICB9CisgICAgfQogCiAgICAgY2FsbGJhY2soKTsKIH0KQEAgLTY2NCw3ICs2NzEsNyBA
QCB2b2lkIENETUluc3RhbmNlU2Vzc2lvblRodW5kZXI6OnJlbW92ZVNlc3Npb25EYXRhKGNvbnN0
IFN0cmluZyYgc2Vzc2lvbklELCBMaWNlbgogICAgICAgICAgICAgY2FsbGJhY2sobV9rZXlTdG9y
ZS5hbGxLZXlzQXMoTWVkaWFLZXlTdGF0dXM6OkludGVybmFsRXJyb3IpLCBzdGQ6Om51bGxvcHQs
IFN1Y2Nlc3NWYWx1ZTo6RmFpbGVkKTsKICAgICAgICAgfQogICAgIH0pOwotICAgIGlmICghbV9z
ZXNzaW9uIHx8IG1fc2Vzc2lvbklELmlzRW1wdHkoKSB8fCBvcGVuY2RtX3Nlc3Npb25fcmVtb3Zl
KG1fc2Vzc2lvbi5nZXQoKSkpCisgICAgaWYgKCFtX3Nlc3Npb24gfHwgbV9zZXNzaW9uSUQuaXNF
bXB0eSgpIHx8IG9wZW5jZG1fc2Vzc2lvbl9yZW1vdmUobV9zZXNzaW9uLT5nZXQoKSkpCiAgICAg
ICAgIHNlc3Npb25GYWlsdXJlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9lbWUvQ0RNVGh1bmRlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmgKaW5kZXggZGYx
YjJkOTlhNTNmODFjODUyMDA2OGI3OTk3YWM0ODJkZmFkMzA5NS4uZTIyMzA2ZjU1OWQ1NDcxODc4
MmQ3YzZmNDg2NTE5OTA3NTBlYTM0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL2VtZS9DRE1UaHVuZGVyLmgKQEAgLTUwLDgg
KzUwLDYgQEAgc3RydWN0IFRodW5kZXJTeXN0ZW1EZWxldGVyIHsKIAogdXNpbmcgVW5pcXVlVGh1
bmRlclN5c3RlbSA9IHN0ZDo6dW5pcXVlX3B0cjxPcGVuQ0RNU3lzdGVtLCBUaHVuZGVyU3lzdGVt
RGVsZXRlcj47CiAKLXVzaW5nIFVuaXF1ZVRodW5kZXJTZXNzaW9uID0gc3RkOjp1bmlxdWVfcHRy
PE9wZW5DRE1TZXNzaW9uLCBXVEY6OkJveFB0ckRlbGV0ZXI8T3BlbkNETVNlc3Npb24+PjsKLQog
fSAvLyBuYW1lc3BhY2UgVGh1bmRlcgogCiBjbGFzcyBDRE1GYWN0b3J5VGh1bmRlciBmaW5hbCA6
IHB1YmxpYyBDRE1GYWN0b3J5LCBwdWJsaWMgQ0RNUHJveHlGYWN0b3J5IHsKQEAgLTE2MSw3ICsx
NTksNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9kb2VzS2V5U3RvcmVOZWVkTWVyZ2luZyB7IGZh
bHNlIH07CiAgICAgSW5pdERhdGEgbV9pbml0RGF0YTsKICAgICBPcGVuQ0RNU2Vzc2lvbkNhbGxi
YWNrcyBtX3RodW5kZXJTZXNzaW9uQ2FsbGJhY2tzIHsgfTsKLSAgICBUaHVuZGVyOjpVbmlxdWVU
aHVuZGVyU2Vzc2lvbiBtX3Nlc3Npb247CisgICAgQm94UHRyPE9wZW5DRE1TZXNzaW9uPiBtX3Nl
c3Npb247CiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbV9tZXNzYWdlOwogICAgIGJvb2wgbV9u
ZWVkc0luZGl2aWR1YWxpemF0aW9uIHsgZmFsc2UgfTsKICAgICBWZWN0b3I8Q2hhbGxlbmdlR2Vu
ZXJhdGVkQ2FsbGJhY2s+IG1fY2hhbGxlbmdlQ2FsbGJhY2tzOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>