<?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>204765</bug_id>
          
          <creation_ts>2019-12-02 13:47:29 -0800</creation_ts>
          <short_desc>Adopt AVContentKeyReportGroup</short_desc>
          <delta_ts>2019-12-03 15:05:22 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1594768</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-12-02 13:47:29 -0800</bug_when>
    <thetext>Adopt AVContentKeyReportGroup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594772</commentid>
    <comment_count>1</comment_count>
      <attachid>384657</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-12-02 13:51:17 -0800</bug_when>
    <thetext>Created attachment 384657
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595029</commentid>
    <comment_count>2</comment_count>
      <attachid>384716</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-12-03 09:07:54 -0800</bug_when>
    <thetext>Created attachment 384716
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595083</commentid>
    <comment_count>3</comment_count>
      <attachid>384716</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2019-12-03 11:09:30 -0800</bug_when>
    <thetext>Comment on attachment 384716
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        AVContentKeySession to continue working for platform versions without report group support.

&quot;... existing usage of AVContentKeySession to continue working ...&quot; isn&apos;t quite right. 

Maybe &quot;... existing usage of AVContentKeySession continues to work ...&quot;?

&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:22955
&gt; +				CD53555723748E5900A613BD /* MediaToolboxSoftLink.cpp */,
&gt; +				CD53555623748E5900A613BD /* MediaToolboxSoftLink.h */,

Are these necessary?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595161</commentid>
    <comment_count>4</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-12-03 13:28:34 -0800</bug_when>
    <thetext>(In reply to Eric Carlson from comment #3)
&gt; Comment on attachment 384716 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=384716&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:11
&gt; &gt; +        AVContentKeySession to continue working for platform versions without report group support.
&gt; 
&gt; &quot;... existing usage of AVContentKeySession to continue working ...&quot; isn&apos;t
&gt; quite right. 
&gt; 
&gt; Maybe &quot;... existing usage of AVContentKeySession continues to work ...&quot;?

Sure.

&gt; &gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:22955
&gt; &gt; +				CD53555723748E5900A613BD /* MediaToolboxSoftLink.cpp */,
&gt; &gt; +				CD53555623748E5900A613BD /* MediaToolboxSoftLink.h */,
&gt; 
&gt; Are these necessary?

Only if you want to be able to open MediaToolboxSoftLink.{cpp,h} in Xcode. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595169</commentid>
    <comment_count>5</comment_count>
      <attachid>384750</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-12-03 13:37:57 -0800</bug_when>
    <thetext>Created attachment 384750
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595207</commentid>
    <comment_count>6</comment_count>
      <attachid>384750</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-03 15:04:05 -0800</bug_when>
    <thetext>Comment on attachment 384750
Patch for landing

Clearing flags on attachment: 384750

Committed r253064: &lt;https://trac.webkit.org/changeset/253064&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595208</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-03 15:04:06 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595210</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-03 15:05:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/57605017&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384657</attachid>
            <date>2019-12-02 13:51:17 -0800</date>
            <delta_ts>2019-12-03 09:07:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204765-20191202135116.patch</filename>
            <type>text/plain</type>
            <size>25622</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyOTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjhkNDYzNjQyZjI3NmIw
M2UxNmY5ZjE4M2RhMjM3MmE1YjhmZTgxNi4uZGFhYTI0MDlhZDI0ZDMwZjNhNGM5MzkwMTJjZGU1
N2Y5MThjODBjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE5LTEyLTAyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkb3B0IEFWQ29udGVudEtl
eVJlcG9ydEdyb3VwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDQ3NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZG9wdCBhIG5ldyBjbGFzcywgQVZDb250ZW50S2V5UmVwb3J0R3JvdXAsIHdoaWNoIGFs
bG93cyBtdWxpcGxlIE1lZGlhS2V5U2Vzc2lvbnMgdG8gc2hhcmUKKyAgICAgICAgYW4gQVZDb250
ZW50S2V5U2Vzc2lvbiwgd2hpbGUgYWxsb3dpbmcgaW5kZXBlbmRlbnQgZXhwaXJhdGlvbiBhbmQg
cGVyc2lzdGVudCBrZXkgdXNhZ2UKKyAgICAgICAgdG9rZW5zLiBIb3dldmVyLCB0aGlzIGhhcyB0
byBiZSBydW50aW1lIGRldGVjdGVkLCBzbyB0aGF0IGV4aXN0aW5nIHVzYWdlIG9mCisgICAgICAg
IEFWQ29udGVudEtleVNlc3Npb24gdG8gY29udGludWUgd29ya2luZyBmb3IgcGxhdGZvcm0gdmVy
c2lvbnMgd2l0aG91dCByZXBvcnQgZ3JvdXAgc3VwcG9ydC4KKworICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNl
RmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tOgorICAgICAgICAoLVtXZWJDb3JlRlBTQ29udGVu
dEtleVNlc3Npb25EZWxlZ2F0ZSBpbml0V2l0aFBhcmVudDpdKToKKyAgICAgICAgKC1bV2ViQ29y
ZUZQU0NvbnRlbnRLZXlTZXNzaW9uRGVsZWdhdGUgY29udGVudEtleVNlc3Npb246Y29udGVudFBy
b3RlY3Rpb25TZXNzaW9uSWRlbnRpZmllckRpZENoYW5nZUZvcktleUdyb3VwOl0pOgorICAgICAg
ICAoLVtXZWJDb3JlRlBTQ29udGVudEtleVNlc3Npb25EZWxlZ2F0ZSBjb250ZW50S2V5U2Vzc2lv
bjpjb250ZW50UHJvdGVjdGlvblNlc3Npb25JZGVudGlmaWVyRGlkQ2hhbmdlRm9yUmVwb3J0R3Jv
dXA6XSk6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZG
T2JqQzo6Q0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMpOgorICAgICAgICAoV2Vi
Q29yZTo6Q0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OmVuc3VyZVNlc3Npb24p
OgorICAgICAgICAoV2ViQ29yZTo6Z3JvdXBGb3JSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpkaWRQcm92aWRlUmVxdWVzdCk6
CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6
ZGlkUHJvdmlkZVJlcXVlc3RzKToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlRmFpclBs
YXlTdHJlYW1pbmdBVkZPYmpDOjpkaWRQcm92aWRlUmVuZXdpbmdSZXF1ZXN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkNETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpkaWRQcm92aWRl
UGVyc2lzdGFibGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlRmFpclBs
YXlTdHJlYW1pbmdBVkZPYmpDOjpkaWRGYWlsVG9Qcm92aWRlUmVxdWVzdCk6CisgICAgICAgIChX
ZWJDb3JlOjpDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6cmVxdWVzdERpZFN1
Y2NlZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FW
Rk9iakM6OnNob3VsZFJldHJ5UmVxdWVzdEZvclJlYXNvbik6CisgICAgICAgIChXZWJDb3JlOjpD
RE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6c2Vzc2lvbklkZW50aWZpZXJDaGFu
Z2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZP
YmpDOjpncm91cFNlc3Npb25JZGVudGlmaWVyQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpD
RE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6c2Vzc2lvbkZvckdyb3VwIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5n
QVZGT2JqQzo6Q0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDKToKKyAg
ICAgICAgKFdlYkNvcmU6OmluaXRUeXBlRm9yUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpD
RE1JbnN0YW5jZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OnJlcXVlc3RMaWNlbnNl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5n
QVZGT2JqQzo6cmVtb3ZlU2Vzc2lvbkRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFu
Y2VTZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpncm91cFNlc3Npb25JZGVudGlmaWVy
Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb25GYWlyUGxheVN0
cmVhbWluZ0FWRk9iakM6OmVuc3VyZVNlc3Npb25Pckdyb3VwKToKKyAgICAgICAgKFdlYkNvcmU6
OkNETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6ZW5zdXJlU2Vzc2lv
bik6IERlbGV0ZWQuCisKIDIwMTktMTEtMjAgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgRXhwZXJpbWVudGFsIHN1cHBvcnQgZm9yIEhEUiBtZWRpYSBxdWVyeQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9DaGFuZ2VMb2cKaW5kZXggNDgwOWM1MGFiZjY1ODc1Nzc0MjJkYjU5MGEyOGI4OGQwMjkx
Mjg0OS4uYjFmZmRkMGM5YzllZjEyNDBiYjMwNTQ4MGI5YjdkNDg1MmYxMTQxZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTktMTItMDIgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgQVZDb250ZW50S2V5UmVwb3J0R3JvdXAK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDc2NQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGFsL2Nv
Y29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg6CisgICAgICAgICogcGFsL2NvY29hL0FWRm91bmRh
dGlvblNvZnRMaW5rLm1tOgorICAgICAgICAqIHBhbC9zcGkvbWFjL0FWRm91bmRhdGlvblNQSS5o
OgorCiAyMDE5LTExLTIwICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAg
ICAgIEV4cGVyaW1lbnRhbCBzdXBwb3J0IGZvciBIRFIgbWVkaWEgcXVlcnkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaCBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaAppbmRleCA2
NTc4NGZlNjVhOTEyYmU2MjQxNzhhM2EyZTNhYjg5ZDAxYTYzNjc4Li5iYzZiYWI0NjY3YTQzMjdi
ZDY4NGZkYTg0ZTM5NWI3MDc1ZmZlNzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oCkBAIC01MCw2ICs1MCw3IEBAIFNPRlRf
TElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgQVZDYXB0dXJlRGV2aWNlSW5wdXQpCiBTT0ZUX0xJ
TktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIEFWQ2FwdHVyZU91dHB1dCkKIFNPRlRfTElOS19DTEFT
U19GT1JfSEVBREVSKFBBTCwgQVZDYXB0dXJlU2Vzc2lvbikKIFNPRlRfTElOS19DTEFTU19GT1Jf
SEVBREVSKFBBTCwgQVZDYXB0dXJlVmlkZW9EYXRhT3V0cHV0KQorU09GVF9MSU5LX0NMQVNTX0ZP
Ul9IRUFERVIoUEFMLCBBVkNvbnRlbnRLZXlSZXBvcnRHcm91cCkKIFNPRlRfTElOS19DTEFTU19G
T1JfSEVBREVSKFBBTCwgQVZDb250ZW50S2V5UmVzcG9uc2UpCiBTT0ZUX0xJTktfQ0xBU1NfRk9S
X0hFQURFUihQQUwsIEFWQ29udGVudEtleVNlc3Npb24pCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hF
QURFUihQQUwsIEFWRnJhbWVSYXRlUmFuZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbQppbmRleCBlMTQ5ZjdmYjgyM2IxNWM4
YTFjNWFmMWJiZGZmODM5ODE2MWJmN2QyLi45Njc0ZGI2YzhkZjRhMWU5MjQ5YWVlYzNmM2NmMzE2
NTZlNzlhY2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91
bmRhdGlvblNvZnRMaW5rLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZG
b3VuZGF0aW9uU29mdExpbmsubW0KQEAgLTYxLDYgKzYxLDcgQEAgU09GVF9MSU5LX0NMQVNTX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWUGxheWVyTGF5ZXIsIFBB
TF9FWFAKIFNPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3Vu
ZGF0aW9uLCBBVlVSTEFzc2V0LCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VS
Q0VfT1BUSU9OQUxfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWQXNzZXRSZWFkZXJT
YW1wbGVSZWZlcmVuY2VPdXRwdXQsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NP
VVJDRV9PUFRJT05BTF9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZBc3NldFJlc291
cmNlTG9hZGluZ1JlcXVlc3QsIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJD
RV9PUFRJT05BTF9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZDb250ZW50S2V5UmVw
b3J0R3JvdXAsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9PUFRJT05B
TF9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZDb250ZW50S2V5UmVzcG9uc2UsIFBB
TF9FWFBPUlQpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9PUFRJT05BTF9XSVRIX0VYUE9S
VChQQUwsIEFWRm91bmRhdGlvbiwgQVZDb250ZW50S2V5U2Vzc2lvbiwgUEFMX0VYUE9SVCkKIFNP
RlRfTElOS19DTEFTU19GT1JfU09VUkNFX09QVElPTkFMX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3Vu
ZGF0aW9uLCBBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIsIFBBTF9FWFBPUlQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvQVZGb3VuZGF0aW9uU1BJLmggYi9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvQVZGb3VuZGF0aW9uU1BJLmgKaW5kZXggM2Nj
OTUyYjAyMzkwN2M1NzE2OGQ4YzNkMTk5Yzg1NmFjZjY5MGJlZC4uYTVjNTkyNTRjZjA4ODE4ZTNl
M2JjMzMyMTMxYzk1NTE0MWJlMDg1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zcGkvbWFjL0FWRm91bmRhdGlvblNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3BpL21hYy9BVkZvdW5kYXRpb25TUEkuaApAQCAtMTYzLDYgKzE2MywxNiBAQCBOU19BU1NVTUVf
Tk9OTlVMTF9FTkQKIAogI2VuZGlmIC8vIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAKK0BpbnRl
cmZhY2UgQVZDb250ZW50S2V5UmVwb3J0R3JvdXAgOiBOU09iamVjdAorQHByb3BlcnR5IChyZWFk
b25seSwgbnVsbGFibGUpIE5TRGF0YSAqY29udGVudFByb3RlY3Rpb25TZXNzaW9uSWRlbnRpZmll
cjsKKy0gKHZvaWQpZXhwaXJlOworLSAodm9pZClwcm9jZXNzQ29udGVudEtleVJlcXVlc3RXaXRo
SWRlbnRpZmllcjoobnVsbGFibGUgaWQpaWRlbnRpZmllciBpbml0aWFsaXphdGlvbkRhdGE6KG51
bGxhYmxlIE5TRGF0YSAqKWluaXRpYWxpemF0aW9uRGF0YSBvcHRpb25zOihudWxsYWJsZSBOU0Rp
Y3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopb3B0aW9uczsKK0BlbmQKKworQGludGVyZmFjZSBB
VkNvbnRlbnRLZXlTZXNzaW9uIChBVkNvbnRlbnRLZXlHcm91cF9TdXBwb3J0KQorLSAobm9ubnVs
bCBBVkNvbnRlbnRLZXlSZXBvcnRHcm91cCAqKW1ha2VDb250ZW50S2V5R3JvdXA7CitAZW5kCisK
ICNpZiBQTEFURk9STShNQUMpICYmICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogTlNfQVNTVU1F
X05PTk5VTExfQkVHSU4KIEBpbnRlcmZhY2UgQVZTdHJlYW1EYXRhUGFyc2VyIChBVlN0cmVhbURh
dGFQYXJzZXJQcml2YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDZhNDc4NWJmY2ZmMDdmYTdkZGRmZDM2N2MzZTBlNzBkYmQ1
ZThmMDcuLjcxNWZiNDdkZjViYWY3YmJjM2I0MGYwMzNlMWFmMmEyZTMyYjlkNzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIy
OTUxLDYgKzIyOTUxLDggQEAKIAkJCQlBNUM5NzRDRjExNDg1RkYxMDA2NkYyQUIgLyogS2V5RXZl
bnRDb2NvYS5oICovLAogCQkJCUE1Qzk3NEQwMTE0ODVGRjEwMDY2RjJBQiAvKiBLZXlFdmVudENv
Y29hLm1tICovLAogCQkJCTFBNDgzMkIyMUE5NTNCQTYwMDhCNERGRSAvKiBMb2NhbGl6ZWRTdHJp
bmdzQ29jb2EubW0gKi8sCisJCQkJQ0Q1MzU1NTcyMzc0OEU1OTAwQTYxM0JEIC8qIE1lZGlhVG9v
bGJveFNvZnRMaW5rLmNwcCAqLywKKwkJCQlDRDUzNTU1NjIzNzQ4RTU5MDBBNjEzQkQgLyogTWVk
aWFUb29sYm94U29mdExpbmsuaCAqLywKIAkJCQlDNTNEMzkzMzFDOTc4OTJEMDA3RjNBRTkgLyog
TUlNRVR5cGVSZWdpc3RyeUNvY29hLm1tICovLAogCQkJCUExOUQ5MzQ5MUFBMTFCMUUwMEI0NkMy
NCAvKiBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5oICovLAogCQkJCUExOUQ5MzQ4MUFB
MTFCMUUwMEI0NkMyNCAvKiBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5tbSAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5
U3RyZWFtaW5nQVZGT2JqQy5oCmluZGV4IGE4NmU5N2M0NGM3ZjU5MzU1ZGVmOGY4Yzc4ZTRlNzZi
ZTk4NmNjOTQuLmQ0MTY5MjNlMDQ2NzcxZmZhNjRhNDRmNWM0ZDA2MGYzZjBmYTI2NTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxh
eVN0cmVhbWluZ0FWRk9iakMuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorT0JKQ19DTEFTUyBB
VkNvbnRlbnRLZXlSZXBvcnRHcm91cDsKIE9CSkNfQ0xBU1MgQVZDb250ZW50S2V5UmVxdWVzdDsK
IE9CSkNfQ0xBU1MgQVZDb250ZW50S2V5U2Vzc2lvbjsKIE9CSkNfQ0xBU1MgTlNEYXRhOwpAQCAt
NDYsOCArNDcsMjQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ0RNSW5zdGFuY2VTZXNz
aW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOwogc3RydWN0IENETU1lZGlhQ2FwYWJpbGl0eTsK
IAotY2xhc3MgQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMgZmluYWwgOiBwdWJs
aWMgQ0RNSW5zdGFuY2UsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxDRE1JbnN0YW5jZUZhaXJQbGF5
U3RyZWFtaW5nQVZGT2JqQz4geworY2xhc3MgQVZDb250ZW50S2V5U2Vzc2lvbkRlbGVnYXRlQ2xp
ZW50IHsKIHB1YmxpYzoKKyAgICB2aXJ0dWFsIH5BVkNvbnRlbnRLZXlTZXNzaW9uRGVsZWdhdGVD
bGllbnQoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB2b2lkIGRpZFByb3ZpZGVSZXF1ZXN0KEFW
Q29udGVudEtleVJlcXVlc3QqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFByb3ZpZGVSZXF1
ZXN0cyhWZWN0b3I8UmV0YWluUHRyPEFWQ29udGVudEtleVJlcXVlc3Q+PiYmKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIGRpZFByb3ZpZGVSZW5ld2luZ1JlcXVlc3QoQVZDb250ZW50S2V5UmVxdWVz
dCopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUHJvdmlkZVBlcnNpc3RhYmxlUmVxdWVzdChB
VkNvbnRlbnRLZXlSZXF1ZXN0KikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsVG9Qcm92
aWRlUmVxdWVzdChBVkNvbnRlbnRLZXlSZXF1ZXN0KiwgTlNFcnJvciopID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgcmVxdWVzdERpZFN1Y2NlZWQoQVZDb250ZW50S2V5UmVxdWVzdCopID0gMDsKKyAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmV0cnlSZXF1ZXN0Rm9yUmVhc29uKEFWQ29udGVudEtleVJl
cXVlc3QqLCBOU1N0cmluZyopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2Vzc2lvbklkZW50aWZp
ZXJDaGFuZ2VkKE5TRGF0YSopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ3JvdXBTZXNzaW9uSWRl
bnRpZmllckNoYW5nZWQoQVZDb250ZW50S2V5UmVwb3J0R3JvdXAqLCBOU0RhdGEqKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIG91dHB1dE9ic2N1cmVkRHVlVG9JbnN1ZmZpY2llbnRFeHRlcm5hbFBy
b3RlY3Rpb25DaGFuZ2VkKGJvb2wpID0gMDsKK307CisKK2NsYXNzIENETUluc3RhbmNlRmFpclBs
YXlTdHJlYW1pbmdBVkZPYmpDIGZpbmFsIDogcHVibGljIENETUluc3RhbmNlLCBwdWJsaWMgQVZD
b250ZW50S2V5U2Vzc2lvbkRlbGVnYXRlQ2xpZW50LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8Q0RN
SW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakM+IHsKK3B1YmxpYzoKKyAgICBDRE1JbnN0
YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQygpOwogICAgIHZpcnR1YWwgfkNETUluc3RhbmNl
RmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDKCkgPSBkZWZhdWx0OwogCiAgICAgc3RhdGljIGJvb2wg
c3VwcG9ydHNQZXJzaXN0YWJsZVN0YXRlKCk7CkBAIC03MCwyMCArODcsMzYgQEAgcHVibGljOgog
ICAgIE5TVVJMICpzdG9yYWdlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9zdG9yYWdlVVJMLmdldCgp
OyB9CiAgICAgYm9vbCBwZXJzaXN0ZW50U3RhdGVBbGxvd2VkKCkgY29uc3QgeyByZXR1cm4gbV9w
ZXJzaXN0ZW50U3RhdGVBbGxvd2VkOyB9CiAgICAgU2hhcmVkQnVmZmVyKiBzZXJ2ZXJDZXJ0aWZp
Y2F0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2VydmVyQ2VydGlmaWNhdGUuZ2V0KCk7IH0KKyAgICBB
VkNvbnRlbnRLZXlTZXNzaW9uKiBjb250ZW50S2V5U2Vzc2lvbigpIHsgcmV0dXJuIG1fc2Vzc2lv
bi5nZXQoKTsgfQogCi0gICAgdm9pZCBvdXRwdXRPYnNjdXJlZER1ZVRvSW5zdWZmaWNpZW50RXh0
ZXJuYWxQcm90ZWN0aW9uQ2hhbmdlZChib29sKTsKKyAgICAvLyBBVkNvbnRlbnRLZXlTZXNzaW9u
RGVsZWdhdGVDbGllbnQKKyAgICB2b2lkIGRpZFByb3ZpZGVSZXF1ZXN0KEFWQ29udGVudEtleVJl
cXVlc3QqKSBmaW5hbDsKKyAgICB2b2lkIGRpZFByb3ZpZGVSZXF1ZXN0cyhWZWN0b3I8UmV0YWlu
UHRyPEFWQ29udGVudEtleVJlcXVlc3Q+PiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpZFByb3ZpZGVS
ZW5ld2luZ1JlcXVlc3QoQVZDb250ZW50S2V5UmVxdWVzdCopIGZpbmFsOworICAgIHZvaWQgZGlk
UHJvdmlkZVBlcnNpc3RhYmxlUmVxdWVzdChBVkNvbnRlbnRLZXlSZXF1ZXN0KikgZmluYWw7Cisg
ICAgdm9pZCBkaWRGYWlsVG9Qcm92aWRlUmVxdWVzdChBVkNvbnRlbnRLZXlSZXF1ZXN0KiwgTlNF
cnJvciopIGZpbmFsOworICAgIHZvaWQgcmVxdWVzdERpZFN1Y2NlZWQoQVZDb250ZW50S2V5UmVx
dWVzdCopIGZpbmFsOworICAgIGJvb2wgc2hvdWxkUmV0cnlSZXF1ZXN0Rm9yUmVhc29uKEFWQ29u
dGVudEtleVJlcXVlc3QqLCBOU1N0cmluZyopIGZpbmFsOworICAgIHZvaWQgc2Vzc2lvbklkZW50
aWZpZXJDaGFuZ2VkKE5TRGF0YSopIGZpbmFsOworICAgIHZvaWQgZ3JvdXBTZXNzaW9uSWRlbnRp
ZmllckNoYW5nZWQoQVZDb250ZW50S2V5UmVwb3J0R3JvdXAqLCBOU0RhdGEqKSBmaW5hbDsKKyAg
ICB2b2lkIG91dHB1dE9ic2N1cmVkRHVlVG9JbnN1ZmZpY2llbnRFeHRlcm5hbFByb3RlY3Rpb25D
aGFuZ2VkKGJvb2wpIGZpbmFsOwogCiAgICAgdXNpbmcgS2V5cyA9IFZlY3RvcjxSZWY8U2hhcmVk
QnVmZmVyPj47CiAgICAgQ0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpD
KiBzZXNzaW9uRm9yS2V5SURzKGNvbnN0IEtleXMmKSBjb25zdDsKKyAgICBDRE1JbnN0YW5jZVNl
c3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakMqIHNlc3Npb25Gb3JHcm91cChBVkNvbnRlbnRL
ZXlSZXBvcnRHcm91cCopIGNvbnN0OwogCiBwcml2YXRlOgorICAgIHZvaWQgZW5zdXJlU2Vzc2lv
bigpOworCisgICAgUmV0YWluUHRyPEFWQ29udGVudEtleVNlc3Npb24+IG1fc2Vzc2lvbjsKKyAg
ICBSZXRhaW5QdHI8V2ViQ29yZUZQU0NvbnRlbnRLZXlTZXNzaW9uRGVsZWdhdGU+IG1fZGVsZWdh
dGU7CiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbV9zZXJ2ZXJDZXJ0aWZpY2F0ZTsKICAgICBi
b29sIG1fcGVyc2lzdGVudFN0YXRlQWxsb3dlZCB7IHRydWUgfTsKICAgICBSZXRhaW5QdHI8TlNV
Ukw+IG1fc3RvcmFnZVVSTDsKICAgICBWZWN0b3I8V2Vha1B0cjxDRE1JbnN0YW5jZVNlc3Npb25G
YWlyUGxheVN0cmVhbWluZ0FWRk9iakM+PiBtX3Nlc3Npb25zOwogfTsKIAotY2xhc3MgQ0RNSW5z
dGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDIGZpbmFsIDogcHVibGljIENETUlu
c3RhbmNlU2Vzc2lvbiwgcHVibGljIENhbk1ha2VXZWFrUHRyPENETUluc3RhbmNlU2Vzc2lvbkZh
aXJQbGF5U3RyZWFtaW5nQVZGT2JqQz4geworY2xhc3MgQ0RNSW5zdGFuY2VTZXNzaW9uRmFpclBs
YXlTdHJlYW1pbmdBVkZPYmpDIGZpbmFsIDogcHVibGljIENETUluc3RhbmNlU2Vzc2lvbiwgcHVi
bGljIEFWQ29udGVudEtleVNlc3Npb25EZWxlZ2F0ZUNsaWVudCwgcHVibGljIENhbk1ha2VXZWFr
UHRyPENETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQz4gewogcHVibGlj
OgogICAgIENETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQyhSZWY8Q0RN
SW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakM+JiYpOwogICAgIHZpcnR1YWwgfkNETUlu
c3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQygpOwpAQCAtOTgsMTkgKzEzMSwy
MiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDbGllbnQoV2Vha1B0cjxDRE1JbnN0YW5jZVNlc3Np
b25DbGllbnQ+JiYpIGZpbmFsOwogICAgIHZvaWQgY2xlYXJDbGllbnQoKSBmaW5hbDsKIAotICAg
IHZvaWQgZGlkUHJvdmlkZVJlcXVlc3QoQVZDb250ZW50S2V5UmVxdWVzdCopOwotICAgIHZvaWQg
ZGlkUHJvdmlkZVJlcXVlc3RzKFZlY3RvcjxSZXRhaW5QdHI8QVZDb250ZW50S2V5UmVxdWVzdD4+
JiYpOwotICAgIHZvaWQgZGlkUHJvdmlkZVJlbmV3aW5nUmVxdWVzdChBVkNvbnRlbnRLZXlSZXF1
ZXN0Kik7Ci0gICAgdm9pZCBkaWRQcm92aWRlUGVyc2lzdGFibGVSZXF1ZXN0KEFWQ29udGVudEtl
eVJlcXVlc3QqKTsKLSAgICB2b2lkIGRpZEZhaWxUb1Byb3ZpZGVSZXF1ZXN0KEFWQ29udGVudEtl
eVJlcXVlc3QqLCBOU0Vycm9yKik7Ci0gICAgdm9pZCByZXF1ZXN0RGlkU3VjY2VlZChBVkNvbnRl
bnRLZXlSZXF1ZXN0Kik7Ci0gICAgYm9vbCBzaG91bGRSZXRyeVJlcXVlc3RGb3JSZWFzb24oQVZD
b250ZW50S2V5UmVxdWVzdCosIE5TU3RyaW5nKik7Ci0gICAgdm9pZCBzZXNzaW9uSWRlbnRpZmll
ckNoYW5nZWQoTlNEYXRhKik7Ci0gICAgdm9pZCBvdXRwdXRPYnNjdXJlZER1ZVRvSW5zdWZmaWNp
ZW50RXh0ZXJuYWxQcm90ZWN0aW9uQ2hhbmdlZChib29sKTsKKyAgICAvLyBBVkNvbnRlbnRLZXlT
ZXNzaW9uRGVsZWdhdGVDbGllbnQKKyAgICB2b2lkIGRpZFByb3ZpZGVSZXF1ZXN0KEFWQ29udGVu
dEtleVJlcXVlc3QqKSBmaW5hbDsKKyAgICB2b2lkIGRpZFByb3ZpZGVSZXF1ZXN0cyhWZWN0b3I8
UmV0YWluUHRyPEFWQ29udGVudEtleVJlcXVlc3Q+PiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpZFBy
b3ZpZGVSZW5ld2luZ1JlcXVlc3QoQVZDb250ZW50S2V5UmVxdWVzdCopIGZpbmFsOworICAgIHZv
aWQgZGlkUHJvdmlkZVBlcnNpc3RhYmxlUmVxdWVzdChBVkNvbnRlbnRLZXlSZXF1ZXN0KikgZmlu
YWw7CisgICAgdm9pZCBkaWRGYWlsVG9Qcm92aWRlUmVxdWVzdChBVkNvbnRlbnRLZXlSZXF1ZXN0
KiwgTlNFcnJvciopIGZpbmFsOworICAgIHZvaWQgcmVxdWVzdERpZFN1Y2NlZWQoQVZDb250ZW50
S2V5UmVxdWVzdCopIGZpbmFsOworICAgIGJvb2wgc2hvdWxkUmV0cnlSZXF1ZXN0Rm9yUmVhc29u
KEFWQ29udGVudEtleVJlcXVlc3QqLCBOU1N0cmluZyopIGZpbmFsOworICAgIHZvaWQgc2Vzc2lv
bklkZW50aWZpZXJDaGFuZ2VkKE5TRGF0YSopIGZpbmFsOworICAgIHZvaWQgZ3JvdXBTZXNzaW9u
SWRlbnRpZmllckNoYW5nZWQoQVZDb250ZW50S2V5UmVwb3J0R3JvdXAqLCBOU0RhdGEqKSBmaW5h
bDsKKyAgICB2b2lkIG91dHB1dE9ic2N1cmVkRHVlVG9JbnN1ZmZpY2llbnRFeHRlcm5hbFByb3Rl
Y3Rpb25DaGFuZ2VkKGJvb2wpIGZpbmFsOwogCiAgICAgdXNpbmcgS2V5cyA9IENETUluc3RhbmNl
RmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpLZXlzOwogICAgIEtleXMga2V5SURzKCk7Ci0gICAg
QVZDb250ZW50S2V5U2Vzc2lvbiogY29udGVudEtleVNlc3Npb24oKSB7IHJldHVybiBtX3Nlc3Np
b24uZ2V0KCk7IH0KKyAgICBBVkNvbnRlbnRLZXlTZXNzaW9uKiBjb250ZW50S2V5U2Vzc2lvbigp
IHsgcmV0dXJuIG1fc2Vzc2lvbiA/IG1fc2Vzc2lvbi5nZXQoKSA6IG1faW5zdGFuY2UtPmNvbnRl
bnRLZXlTZXNzaW9uKCk7IH0KKyAgICBBVkNvbnRlbnRLZXlSZXBvcnRHcm91cCogY29udGVudEtl
eVJlcG9ydEdyb3VwKCkgeyByZXR1cm4gbV9ncm91cC5nZXQoKTsgfQogCiAgICAgc3RydWN0IFJl
cXVlc3QgewogICAgICAgICBBdG9tU3RyaW5nIGluaXRUeXBlOwpAQCAtMTE5LDcgKzE1NSw3IEBA
IHB1YmxpYzoKICAgICB9OwogCiBwcml2YXRlOgotICAgIEFWQ29udGVudEtleVNlc3Npb24qIGVu
c3VyZVNlc3Npb24oKTsKKyAgICBib29sIGVuc3VyZVNlc3Npb25Pckdyb3VwKCk7CiAgICAgYm9v
bCBpc0xpY2Vuc2VUeXBlU3VwcG9ydGVkKExpY2Vuc2VUeXBlKSBjb25zdDsKIAogICAgIEtleVN0
YXR1c1ZlY3RvciBrZXlTdGF0dXNlcygpIGNvbnN0OwpAQCAtMTI3LDYgKzE2Myw3IEBAIHByaXZh
dGU6CiAgICAgQVZDb250ZW50S2V5UmVxdWVzdCogbGFzdEtleVJlcXVlc3QoKSBjb25zdDsKIAog
ICAgIFJlZjxDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQz4gbV9pbnN0YW5jZTsK
KyAgICBSZXRhaW5QdHI8QVZDb250ZW50S2V5UmVwb3J0R3JvdXA+IG1fZ3JvdXA7CiAgICAgUmV0
YWluUHRyPEFWQ29udGVudEtleVNlc3Npb24+IG1fc2Vzc2lvbjsKICAgICBPcHRpb25hbDxSZXF1
ZXN0PiBtX2N1cnJlbnRSZXF1ZXN0OwogICAgIFJldGFpblB0cjxXZWJDb3JlRlBTQ29udGVudEtl
eVNlc3Npb25EZWxlZ2F0ZT4gbV9kZWxlZ2F0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlT
dHJlYW1pbmdBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0KaW5k
ZXggMDNjNWRkZGFhMzJhMTQ2YjdmMzkyYWVmYzFlMGUxM2FiM2ZkODBhMy4uYTcxNGVmMjQ3NDYx
ZTFlNzUzYTAyNTRlZTMwMzE3NTBlMDAxMTI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0
cmVhbWluZ0FWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0K
QEAgLTQ4LDE0ICs0OCwxNSBAQAogCiBzdGF0aWMgY29uc3QgTlNTdHJpbmcgKlBsYXliYWNrU2Vz
c2lvbklkS2V5ID0gQCJQbGF5YmFja1Nlc3Npb25JRCI7CiBzdGF0aWMgTlNTdHJpbmcgKiBjb25z
dCBJbml0aWFsaXphdGlvbkRhdGFUeXBlS2V5ID0gQCJJbml0aWFsaXphdGlvbkRhdGFUeXBlIjsK
K3N0YXRpYyBOU1N0cmluZyAqIGNvbnN0IENvbnRlbnRLZXlSZXBvcnRHcm91cEtleSA9IEAiQ29u
dGVudEtleVJlcG9ydEdyb3VwIjsKIAogQGludGVyZmFjZSBXZWJDb3JlRlBTQ29udGVudEtleVNl
c3Npb25EZWxlZ2F0ZSA6IE5TT2JqZWN0PEFWQ29udGVudEtleVNlc3Npb25EZWxlZ2F0ZT4gewot
ICAgIFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQyog
X3BhcmVudDsKKyAgICBXZWJDb3JlOjpBVkNvbnRlbnRLZXlTZXNzaW9uRGVsZWdhdGVDbGllbnQq
IF9wYXJlbnQ7CiB9CiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJDb3JlRlBTQ29udGVudEtl
eVNlc3Npb25EZWxlZ2F0ZQotLSAoaWQpaW5pdFdpdGhQYXJlbnQ6KFdlYkNvcmU6OkNETUluc3Rh
bmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQyAqKXBhcmVudAorLSAoaWQpaW5pdFdp
dGhQYXJlbnQ6KFdlYkNvcmU6OkFWQ29udGVudEtleVNlc3Npb25EZWxlZ2F0ZUNsaWVudCAqKXBh
cmVudAogewogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4g
bmlsOwpAQCAtMTQxLDExICsxNDIsNTIgQEAgLSAodm9pZCljb250ZW50S2V5U2Vzc2lvbkNvbnRl
bnRQcm90ZWN0aW9uU2Vzc2lvbklkZW50aWZpZXJEaWRDaGFuZ2U6KEFWQ29udGVudEsKICAgICBp
ZiAoX3BhcmVudCkKICAgICAgICAgX3BhcmVudC0+c2Vzc2lvbklkZW50aWZpZXJDaGFuZ2VkKHNl
c3Npb24uY29udGVudFByb3RlY3Rpb25TZXNzaW9uSWRlbnRpZmllcik7CiB9CistICh2b2lkKWNv
bnRlbnRLZXlTZXNzaW9uOihBVkNvbnRlbnRLZXlTZXNzaW9uICopc2Vzc2lvbiBjb250ZW50UHJv
dGVjdGlvblNlc3Npb25JZGVudGlmaWVyRGlkQ2hhbmdlRm9yS2V5R3JvdXA6KG51bGxhYmxlIEFW
Q29udGVudEtleVJlcG9ydEdyb3VwICopcmVwb3J0R3JvdXAKK3sKKyAgICAvLyBGSVhNRTogUmVt
b3ZlIGFmdGVyIHJkYXI6Ly81NzQzMDc0NyBpcyBmaXhlZAorICAgIFtzZWxmIGNvbnRlbnRLZXlT
ZXNzaW9uOnNlc3Npb24gY29udGVudFByb3RlY3Rpb25TZXNzaW9uSWRlbnRpZmllckRpZENoYW5n
ZUZvclJlcG9ydEdyb3VwOnJlcG9ydEdyb3VwXTsKK30KKworLSAodm9pZCljb250ZW50S2V5U2Vz
c2lvbjooQVZDb250ZW50S2V5U2Vzc2lvbiAqKXNlc3Npb24gY29udGVudFByb3RlY3Rpb25TZXNz
aW9uSWRlbnRpZmllckRpZENoYW5nZUZvclJlcG9ydEdyb3VwOihudWxsYWJsZSBBVkNvbnRlbnRL
ZXlSZXBvcnRHcm91cCAqKXJlcG9ydEdyb3VwCit7CisgICAgVU5VU0VEX1BBUkFNKHNlc3Npb24p
OworICAgIGlmIChfcGFyZW50KQorICAgICAgICBfcGFyZW50LT5ncm91cFNlc3Npb25JZGVudGlm
aWVyQ2hhbmdlZChyZXBvcnRHcm91cCwgcmVwb3J0R3JvdXAuY29udGVudFByb3RlY3Rpb25TZXNz
aW9uSWRlbnRpZmllcik7Cit9CiAKIEBlbmQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitDRE1J
bnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6Q0RNSW5zdGFuY2VGYWlyUGxheVN0cmVh
bWluZ0FWRk9iakMoKQoreworICAgIGlmIChQQUw6OmdldEFWQ29udGVudEtleVJlcG9ydEdyb3Vw
Q2xhc3MoKSkKKyAgICAgICAgZW5zdXJlU2Vzc2lvbigpOworfQorCit2b2lkIENETUluc3RhbmNl
RmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjplbnN1cmVTZXNzaW9uKCkKK3sKKyAgICBpZiAobV9z
ZXNzaW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIVBBTDo6Y2FuTG9hZF9BVkZvdW5k
YXRpb25fQVZDb250ZW50S2V5U3lzdGVtRmFpclBsYXlTdHJlYW1pbmcoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgYXV0byBzdG9yYWdlVVJMID0gdGhpcy0+c3RvcmFnZVVSTCgpOworICAgIGlm
ICghcGVyc2lzdGVudFN0YXRlQWxsb3dlZCgpIHx8ICFzdG9yYWdlVVJMKQorICAgICAgICBtX3Nl
c3Npb24gPSBbUEFMOjpnZXRBVkNvbnRlbnRLZXlTZXNzaW9uQ2xhc3MoKSBjb250ZW50S2V5U2Vz
c2lvbldpdGhLZXlTeXN0ZW06QVZDb250ZW50S2V5U3lzdGVtRmFpclBsYXlTdHJlYW1pbmddOwor
ICAgIGVsc2UKKyAgICAgICAgbV9zZXNzaW9uID0gW1BBTDo6Z2V0QVZDb250ZW50S2V5U2Vzc2lv
bkNsYXNzKCkgY29udGVudEtleVNlc3Npb25XaXRoS2V5U3lzdGVtOkFWQ29udGVudEtleVN5c3Rl
bUZhaXJQbGF5U3RyZWFtaW5nIHN0b3JhZ2VEaXJlY3RvcnlBdFVSTDpzdG9yYWdlVVJMXTsKKwor
ICAgIGlmICghbV9zZXNzaW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIW1fZGVsZWdh
dGUpCisgICAgICAgIG1fZGVsZWdhdGUgPSBhZG9wdE5TKFtbV2ViQ29yZUZQU0NvbnRlbnRLZXlT
ZXNzaW9uRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoUGFyZW50OnRoaXNdKTsKKworICAgIFttX3Nl
c3Npb24gc2V0RGVsZWdhdGU6bV9kZWxlZ2F0ZS5nZXQoKSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFp
bl9xdWV1ZSgpXTsKK30KKwogY2xhc3MgQ0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1p
bmdBVkZPYmpDOjpVcGRhdGVSZXNwb25zZUNvbGxlY3RvciB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6CkBAIC0zMDYsNiArMzQ4LDcxIEBAIGNvbnN0IFN0cmluZyYgQ0RN
SW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OmtleVN5c3RlbSgpIGNvbnN0CiAgICAg
cmV0dXJuIGtleVN5c3RlbTsKIH0KIAorc3RhdGljIEFWQ29udGVudEtleVJlcG9ydEdyb3VwKiBn
cm91cEZvclJlcXVlc3QoQVZDb250ZW50S2V5UmVxdWVzdCogcmVxdWVzdCkKK3sKKyAgICBBU1NF
UlQoW3JlcXVlc3QgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihvcHRpb25zKV0pOworICAg
IEFMTE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfQkVHSU4KKyAgICBhdXRvIGdyb3VwID0gKEFW
Q29udGVudEtleVJlcG9ydEdyb3VwKilbcmVxdWVzdC5vcHRpb25zIHZhbHVlRm9yS2V5OkNvbnRl
bnRLZXlSZXBvcnRHcm91cEtleV07CisgICAgQUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJEU19F
TkQKKyAgICByZXR1cm4gZ3JvdXA7Cit9CisKK3ZvaWQgQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVh
bWluZ0FWRk9iakM6OmRpZFByb3ZpZGVSZXF1ZXN0KEFWQ29udGVudEtleVJlcXVlc3QgKnJlcXVl
c3QpCit7CisgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBzZXNzaW9uRm9yR3JvdXAoZ3JvdXBGb3JS
ZXF1ZXN0KHJlcXVlc3QpKSkKKyAgICAgICAgc2Vzc2lvbi0+ZGlkUHJvdmlkZVJlcXVlc3QocmVx
dWVzdCk7Cit9CisKK3ZvaWQgQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OmRp
ZFByb3ZpZGVSZXF1ZXN0cyhWZWN0b3I8UmV0YWluUHRyPEFWQ29udGVudEtleVJlcXVlc3Q+PiYm
IHJlcXVlc3RzKQoreworICAgIGlmIChhdXRvKiBzZXNzaW9uID0gc2Vzc2lvbkZvckdyb3VwKGdy
b3VwRm9yUmVxdWVzdChyZXF1ZXN0cy5maXJzdCgpLmdldCgpKSkpCisgICAgICAgIHNlc3Npb24t
PmRpZFByb3ZpZGVSZXF1ZXN0cyhXVEZNb3ZlKHJlcXVlc3RzKSk7Cit9CisKK3ZvaWQgQ0RNSW5z
dGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OmRpZFByb3ZpZGVSZW5ld2luZ1JlcXVlc3Qo
QVZDb250ZW50S2V5UmVxdWVzdCAqcmVxdWVzdCkKK3sKKyAgICBpZiAoYXV0byogc2Vzc2lvbiA9
IHNlc3Npb25Gb3JHcm91cChncm91cEZvclJlcXVlc3QocmVxdWVzdCkpKQorICAgICAgICBzZXNz
aW9uLT5kaWRQcm92aWRlUmVuZXdpbmdSZXF1ZXN0KHJlcXVlc3QpOworfQorCit2b2lkIENETUlu
c3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpkaWRQcm92aWRlUGVyc2lzdGFibGVSZXF1
ZXN0KEFWQ29udGVudEtleVJlcXVlc3QgKnJlcXVlc3QpCit7CisgICAgaWYgKGF1dG8qIHNlc3Np
b24gPSBzZXNzaW9uRm9yR3JvdXAoZ3JvdXBGb3JSZXF1ZXN0KHJlcXVlc3QpKSkKKyAgICAgICAg
c2Vzc2lvbi0+ZGlkUHJvdmlkZVBlcnNpc3RhYmxlUmVxdWVzdChyZXF1ZXN0KTsKK30KKwordm9p
ZCBDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6ZGlkRmFpbFRvUHJvdmlkZVJl
cXVlc3QoQVZDb250ZW50S2V5UmVxdWVzdCAqcmVxdWVzdCwgTlNFcnJvciAqZXJyb3IpCit7Cisg
ICAgaWYgKGF1dG8qIHNlc3Npb24gPSBzZXNzaW9uRm9yR3JvdXAoZ3JvdXBGb3JSZXF1ZXN0KHJl
cXVlc3QpKSkKKyAgICAgICAgc2Vzc2lvbi0+ZGlkRmFpbFRvUHJvdmlkZVJlcXVlc3QocmVxdWVz
dCwgZXJyb3IpOworfQorCit2b2lkIENETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpD
OjpyZXF1ZXN0RGlkU3VjY2VlZChBVkNvbnRlbnRLZXlSZXF1ZXN0ICpyZXF1ZXN0KQoreworICAg
IGlmIChhdXRvKiBzZXNzaW9uID0gc2Vzc2lvbkZvckdyb3VwKGdyb3VwRm9yUmVxdWVzdChyZXF1
ZXN0KSkpCisgICAgICAgIHNlc3Npb24tPnJlcXVlc3REaWRTdWNjZWVkKHJlcXVlc3QpOworfQor
Citib29sIENETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpzaG91bGRSZXRyeVJl
cXVlc3RGb3JSZWFzb24oQVZDb250ZW50S2V5UmVxdWVzdCAqcmVxdWVzdCwgTlNTdHJpbmcgKnJl
YXNvbikKK3sKKyAgICBpZiAoYXV0byogc2Vzc2lvbiA9IHNlc3Npb25Gb3JHcm91cChncm91cEZv
clJlcXVlc3QocmVxdWVzdCkpKQorICAgICAgICByZXR1cm4gc2Vzc2lvbi0+c2hvdWxkUmV0cnlS
ZXF1ZXN0Rm9yUmVhc29uKHJlcXVlc3QsIHJlYXNvbik7CisgICAgcmV0dXJuIGZhbHNlOworfQor
Cit2b2lkIENETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpzZXNzaW9uSWRlbnRp
ZmllckNoYW5nZWQoTlNEYXRhICpzZXNzaW9uSWRlbnRpZmllcikKK3sKKyAgICBVTlVTRURfUEFS
QU0oc2Vzc2lvbklkZW50aWZpZXIpOworICAgIC8vIE5vLW9wLiBJZiB3ZSBhcmUgZ2V0dGluZyB0
aGlzIGNhbGxiYWNrLCB0aGVyZSBhcmUgb3V0c3RhbmRpbmcgQVZDb250ZW50S2V5UmVxdWVzdEdy
b3VwcyB3aGljaCBhcmUgbWFuYWdpbmcgdGhlaXIgb3duCisgICAgLy8gc2Vzc2lvbiBpZGVudGlm
aWVycy4KK30KKwordm9pZCBDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6Z3Jv
dXBTZXNzaW9uSWRlbnRpZmllckNoYW5nZWQoQVZDb250ZW50S2V5UmVwb3J0R3JvdXAqIGdyb3Vw
LCBOU0RhdGEgKnNlc3Npb25JZGVudGlmaWVyKQoreworICAgIGlmIChhdXRvKiBzZXNzaW9uID0g
c2Vzc2lvbkZvckdyb3VwKGdyb3VwKSkKKyAgICAgICAgc2Vzc2lvbi0+Z3JvdXBTZXNzaW9uSWRl
bnRpZmllckNoYW5nZWQoZ3JvdXAsIHNlc3Npb25JZGVudGlmaWVyKTsKK30KKwogdm9pZCBDRE1J
bnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6b3V0cHV0T2JzY3VyZWREdWVUb0luc3Vm
ZmljaWVudEV4dGVybmFsUHJvdGVjdGlvbkNoYW5nZWQoYm9vbCBvYnNjdXJlZCkKIHsKICAgICBm
b3IgKGF1dG8mIHNlc3Npb25JbnRlcmZhY2UgOiBtX3Nlc3Npb25zKSB7CkBAIC0zMjksOSArNDM2
LDIwIEBAIENETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQyogQ0RNSW5z
dGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAK
K0NETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQyogQ0RNSW5zdGFuY2VG
YWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OnNlc3Npb25Gb3JHcm91cChBVkNvbnRlbnRLZXlSZXBv
cnRHcm91cCogZ3JvdXApIGNvbnN0Cit7CisgICAgYXV0byBpbmRleCA9IG1fc2Vzc2lvbnMuZmlu
ZE1hdGNoaW5nKFtncm91cF0gKGF1dG8gc2Vzc2lvbikgeworICAgICAgICByZXR1cm4gc2Vzc2lv
biAmJiBzZXNzaW9uLT5jb250ZW50S2V5UmVwb3J0R3JvdXAoKSA9PSBncm91cDsKKyAgICB9KTsK
KworICAgIGlmIChpbmRleCAhPSBub3RGb3VuZCkKKyAgICAgICAgcmV0dXJuIG1fc2Vzc2lvbnNb
aW5kZXhdLmdldCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCiBDRE1JbnN0YW5jZVNlc3Np
b25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OkNETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3Ry
ZWFtaW5nQVZGT2JqQyhSZWY8Q0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakM+JiYg
aW5zdGFuY2UpCiAgICAgOiBtX2luc3RhbmNlKFdURk1vdmUoaW5zdGFuY2UpKQotICAgICwgbV9k
ZWxlZ2F0ZShbW1dlYkNvcmVGUFNDb250ZW50S2V5U2Vzc2lvbkRlbGVnYXRlIGFsbG9jXSBpbml0
V2l0aFBhcmVudDp0aGlzXSkKKyAgICAsIG1fZGVsZWdhdGUoYWRvcHROUyhbW1dlYkNvcmVGUFND
b250ZW50S2V5U2Vzc2lvbkRlbGVnYXRlIGFsbG9jXSBpbml0V2l0aFBhcmVudDp0aGlzXSkpCiB7
CiB9CiAKQEAgLTM3NCw4ICs0OTIsMTIgQEAgc3RhdGljIEF0b21TdHJpbmcgaW5pdFR5cGVGb3JS
ZXF1ZXN0KEFWQ29udGVudEtleVJlcXVlc3QqIHJlcXVlc3QpCiBBTExPV19ORVdfQVBJX1dJVEhP
VVRfR1VBUkRTX0JFR0lOCiAgICAgYXV0byBuc0luaXRUeXBlID0gKE5TU3RyaW5nKilbcmVxdWVz
dC5vcHRpb25zIHZhbHVlRm9yS2V5OkluaXRpYWxpemF0aW9uRGF0YVR5cGVLZXldOwogQUxMT1df
TkVXX0FQSV9XSVRIT1VUX0dVQVJEU19FTkQKLSAgICBpZiAoIVtuc0luaXRUeXBlIGlzS2luZE9m
Q2xhc3M6TlNTdHJpbmcuY2xhc3NdKQotICAgICAgICByZXR1cm4gZW1wdHlBdG9tKCk7CisgICAg
aWYgKCFbbnNJbml0VHlwZSBpc0tpbmRPZkNsYXNzOk5TU3RyaW5nLmNsYXNzXSkgeworICAgICAg
ICAvLyBUaGUgb25seSB3YXkgZm9yIGFuIGluaXRpYWxpemF0aW9uIGRhdGEgdG8gZW5kIHVwIGhl
cmUgd2l0aG91dCBhbiBhcHByb3ByaWF0ZSBrZXkgaW4KKyAgICAgICAgLy8gdGhlIG9wdGlvbnMg
ZGljdGlvbmFyeSBpcyBmb3IgdGhhdCBkYXRhIHRvIGhhdmUgYmVlbiBnZW5lcmF0ZWQgYnkgdGhl
IEFWU3RyZWFtRGF0YVBhcnNlcgorICAgICAgICAvLyBhbmQgY3VycmVudGx5LCB0aGUgb25seSBp
bml0aWFsaXphdGlvbiBkYXRhIHN1cHBvcnRlZCBieSB0aGUgcGFyc2VyIGlzIHRoZSAnc2luZicg
a2luZC4KKyAgICAgICAgcmV0dXJuIENETVByaXZhdGVGYWlyUGxheVN0cmVhbWluZzo6c2luZk5h
bWUoKTsKKyAgICB9CiAKICAgICByZXR1cm4gQXRvbVN0cmluZyhuc0luaXRUeXBlKTsKIH0KQEAg
LTQwNSw3ICs1MjcsNyBAQCB2b2lkIENETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5n
QVZGT2JqQzo6cmVxdWVzdExpY2Vuc2UoTGljZW5zZVR5cGUgbGljZQogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgaWYgKCFlbnN1cmVTZXNzaW9uKCkpIHsKKyAgICBpZiAoIWVuc3VyZVNl
c3Npb25Pckdyb3VwKCkpIHsKICAgICAgICAgY2FsbGJhY2soU2hhcmVkQnVmZmVyOjpjcmVhdGUo
KSwgZW1wdHlTdHJpbmcoKSwgZmFsc2UsIEZhaWxlZCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CkBAIC00MjksNyArNTUxLDE0IEBAIHZvaWQgQ0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlTdHJl
YW1pbmdBVkZPYmpDOjpyZXF1ZXN0TGljZW5zZShMaWNlbnNlVHlwZSBsaWNlCiAgICAgfQogCiAg
ICAgbV9yZXF1ZXN0TGljZW5zZUNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7Ci0gICAgW21f
c2Vzc2lvbiBwcm9jZXNzQ29udGVudEtleVJlcXVlc3RXaXRoSWRlbnRpZmllcjppZGVudGlmaWVy
LmdldCgpIGluaXRpYWxpemF0aW9uRGF0YTppbml0aWFsaXphdGlvbkRhdGEuZ2V0KCkgb3B0aW9u
czpAeyBJbml0aWFsaXphdGlvbkRhdGFUeXBlS2V5OiAoTlNTdHJpbmcqKWluaXREYXRhVHlwZSB9
XTsKKworICAgIGlmIChtX2dyb3VwKSB7CisgICAgICAgIGF1dG8qIG9wdGlvbnMgPSBAeyBDb250
ZW50S2V5UmVwb3J0R3JvdXBLZXk6IG1fZ3JvdXAuZ2V0KCksIEluaXRpYWxpemF0aW9uRGF0YVR5
cGVLZXk6IChOU1N0cmluZyopaW5pdERhdGFUeXBlIH07CisgICAgICAgIFttX2dyb3VwIHByb2Nl
c3NDb250ZW50S2V5UmVxdWVzdFdpdGhJZGVudGlmaWVyOmlkZW50aWZpZXIuZ2V0KCkgaW5pdGlh
bGl6YXRpb25EYXRhOmluaXRpYWxpemF0aW9uRGF0YS5nZXQoKSBvcHRpb25zOm9wdGlvbnNdOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIGF1dG8qIG9wdGlvbnMgPSBAeyBJbml0aWFsaXphdGlvbkRh
dGFUeXBlS2V5OiAoTlNTdHJpbmcqKWluaXREYXRhVHlwZSB9OworICAgICAgICBbbV9zZXNzaW9u
IHByb2Nlc3NDb250ZW50S2V5UmVxdWVzdFdpdGhJZGVudGlmaWVyOmlkZW50aWZpZXIuZ2V0KCkg
aW5pdGlhbGl6YXRpb25EYXRhOmluaXRpYWxpemF0aW9uRGF0YS5nZXQoKSBvcHRpb25zOm9wdGlv
bnNdOworICAgIH0KIH0KIAogc3RhdGljIGJvb2wgaXNFcXVhbChjb25zdCBTaGFyZWRCdWZmZXIm
IGRhdGEsIGNvbnN0IFN0cmluZyYgdmFsdWUpCkBAIC02NTYsOCArNzg1LDEwIEBAIHZvaWQgQ0RN
SW5zdGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpjbG9zZVNlc3Npb24oY29u
c3QgU3RyaW5nJiwgQ2xvCiAKIHZvaWQgQ0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1p
bmdBVkZPYmpDOjpyZW1vdmVTZXNzaW9uRGF0YShjb25zdCBTdHJpbmcmIHNlc3Npb25JZCwgTGlj
ZW5zZVR5cGUgbGljZW5zZVR5cGUsIFJlbW92ZVNlc3Npb25EYXRhQ2FsbGJhY2smJiBjYWxsYmFj
aykKIHsKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGJlIGFibGUgdG8gZXhwaXJlIGluZGl2aWR1
YWwgQVZDb250ZW50S2V5UmVxdWVzdHMgcmF0aGVyIHRoYW4gdGhlIGVudGlyZSBBVkNvbnRlbnRL
ZXlTZXNzaW9uLgotICAgIFttX3Nlc3Npb24gZXhwaXJlXTsKKyAgICBpZiAobV9ncm91cCkKKyAg
ICAgICAgW21fZ3JvdXAgZXhwaXJlXTsKKyAgICBlbHNlCisgICAgICAgIFttX3Nlc3Npb24gZXhw
aXJlXTsKIAogICAgIGlmIChsaWNlbnNlVHlwZSA9PSBMaWNlbnNlVHlwZTo6UGVyc2lzdGVudFVz
YWdlUmVjb3JkKSB7CiAgICAgICAgIGF1dG8qIHN0b3JhZ2VVUkwgPSBtX2luc3RhbmNlLT5zdG9y
YWdlVVJMKCk7CkBAIC05ODgsNiArMTExOSwxMiBAQCB2b2lkIENETUluc3RhbmNlU2Vzc2lvbkZh
aXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6c2Vzc2lvbklkZW50aWZpZXJDaGFuZ2VkKE5TRGF0YQog
ICAgIG1fY2xpZW50LT5zZXNzaW9uSWRDaGFuZ2VkKG1fc2Vzc2lvbklkKTsKIH0KIAordm9pZCBD
RE1JbnN0YW5jZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6Omdyb3VwU2Vzc2lvbklk
ZW50aWZpZXJDaGFuZ2VkKEFWQ29udGVudEtleVJlcG9ydEdyb3VwKiBncm91cCwgTlNEYXRhICpz
ZXNzaW9uSWRlbnRpZmllcikKK3sKKyAgICBVTlVTRURfUEFSQU0oZ3JvdXApOworICAgIHNlc3Np
b25JZGVudGlmaWVyQ2hhbmdlZChzZXNzaW9uSWRlbnRpZmllcik7Cit9CisKIHN0YXRpYyBhdXRv
IHJlcXVlc3RTdGF0dXNUb0NETVN0YXR1cyhBVkNvbnRlbnRLZXlSZXF1ZXN0U3RhdHVzIHN0YXR1
cykKIHsKICAgICBzd2l0Y2ggKHN0YXR1cykgewpAQCAtMTAzNCwxMCArMTE3MSwxNSBAQCB2b2lk
IENETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6b3V0cHV0T2JzY3Vy
ZWREdWVUb0luc3VmZmljaWVudAogICAgICAgICBtX2NsaWVudC0+dXBkYXRlS2V5U3RhdHVzZXMo
a2V5U3RhdHVzZXMoKSk7CiB9CiAKLUFWQ29udGVudEtleVNlc3Npb24qIENETUluc3RhbmNlU2Vz
c2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6ZW5zdXJlU2Vzc2lvbigpCitib29sIENETUlu
c3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6ZW5zdXJlU2Vzc2lvbk9yR3Jv
dXAoKQogewotICAgIGlmIChtX3Nlc3Npb24pCi0gICAgICAgIHJldHVybiBtX3Nlc3Npb24uZ2V0
KCk7CisgICAgaWYgKG1fc2Vzc2lvbiB8fCBtX2dyb3VwKQorICAgICAgICByZXR1cm4gdHJ1ZTsK
KworICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbV9pbnN0YW5jZS0+Y29udGVudEtleVNlc3Npb24o
KSkgeworICAgICAgICBtX2dyb3VwID0gW3Nlc3Npb24gbWFrZUNvbnRlbnRLZXlHcm91cF07Cisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KIAogICAgIGF1dG8gc3RvcmFnZVVSTCA9IG1faW5z
dGFuY2UtPnN0b3JhZ2VVUkwoKTsKICAgICBpZiAoIW1faW5zdGFuY2UtPnBlcnNpc3RlbnRTdGF0
ZUFsbG93ZWQoKSB8fCAhc3RvcmFnZVVSTCkKQEAgLTEwNDYsMTAgKzExODgsMTAgQEAgQVZDb250
ZW50S2V5U2Vzc2lvbiogQ0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpD
OjplbnN1cmVTZXNzaW9uKCkKICAgICAgICAgbV9zZXNzaW9uID0gW1BBTDo6Z2V0QVZDb250ZW50
S2V5U2Vzc2lvbkNsYXNzKCkgY29udGVudEtleVNlc3Npb25XaXRoS2V5U3lzdGVtOkFWQ29udGVu
dEtleVN5c3RlbUZhaXJQbGF5U3RyZWFtaW5nIHN0b3JhZ2VEaXJlY3RvcnlBdFVSTDpzdG9yYWdl
VVJMXTsKIAogICAgIGlmICghbV9zZXNzaW9uKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgW21fc2Vzc2lvbiBzZXREZWxlZ2F0ZTptX2RlbGVn
YXRlLmdldCgpIHF1ZXVlOmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCldOwotICAgIHJldHVybiBt
X3Nlc3Npb24uZ2V0KCk7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIGJvb2wgQ0RNSW5zdGFuY2VT
ZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjppc0xpY2Vuc2VUeXBlU3VwcG9ydGVkKExp
Y2Vuc2VUeXBlIGxpY2Vuc2VUeXBlKSBjb25zdAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384716</attachid>
            <date>2019-12-03 09:07:54 -0800</date>
            <delta_ts>2019-12-03 13:37:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204765-20191203090753.patch</filename>
            <type>text/plain</type>
            <size>26190</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyOTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjhkNDYzNjQyZjI3NmIw
M2UxNmY5ZjE4M2RhMjM3MmE1YjhmZTgxNi4uZGFhYTI0MDlhZDI0ZDMwZjNhNGM5MzkwMTJjZGU1
N2Y5MThjODBjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE5LTEyLTAyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkb3B0IEFWQ29udGVudEtl
eVJlcG9ydEdyb3VwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDQ3NjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZG9wdCBhIG5ldyBjbGFzcywgQVZDb250ZW50S2V5UmVwb3J0R3JvdXAsIHdoaWNoIGFs
bG93cyBtdWxpcGxlIE1lZGlhS2V5U2Vzc2lvbnMgdG8gc2hhcmUKKyAgICAgICAgYW4gQVZDb250
ZW50S2V5U2Vzc2lvbiwgd2hpbGUgYWxsb3dpbmcgaW5kZXBlbmRlbnQgZXhwaXJhdGlvbiBhbmQg
cGVyc2lzdGVudCBrZXkgdXNhZ2UKKyAgICAgICAgdG9rZW5zLiBIb3dldmVyLCB0aGlzIGhhcyB0
byBiZSBydW50aW1lIGRldGVjdGVkLCBzbyB0aGF0IGV4aXN0aW5nIHVzYWdlIG9mCisgICAgICAg
IEFWQ29udGVudEtleVNlc3Npb24gdG8gY29udGludWUgd29ya2luZyBmb3IgcGxhdGZvcm0gdmVy
c2lvbnMgd2l0aG91dCByZXBvcnQgZ3JvdXAgc3VwcG9ydC4KKworICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNl
RmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tOgorICAgICAgICAoLVtXZWJDb3JlRlBTQ29udGVu
dEtleVNlc3Npb25EZWxlZ2F0ZSBpbml0V2l0aFBhcmVudDpdKToKKyAgICAgICAgKC1bV2ViQ29y
ZUZQU0NvbnRlbnRLZXlTZXNzaW9uRGVsZWdhdGUgY29udGVudEtleVNlc3Npb246Y29udGVudFBy
b3RlY3Rpb25TZXNzaW9uSWRlbnRpZmllckRpZENoYW5nZUZvcktleUdyb3VwOl0pOgorICAgICAg
ICAoLVtXZWJDb3JlRlBTQ29udGVudEtleVNlc3Npb25EZWxlZ2F0ZSBjb250ZW50S2V5U2Vzc2lv
bjpjb250ZW50UHJvdGVjdGlvblNlc3Npb25JZGVudGlmaWVyRGlkQ2hhbmdlRm9yUmVwb3J0R3Jv
dXA6XSk6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZG
T2JqQzo6Q0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMpOgorICAgICAgICAoV2Vi
Q29yZTo6Q0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OmVuc3VyZVNlc3Npb24p
OgorICAgICAgICAoV2ViQ29yZTo6Z3JvdXBGb3JSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkNETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpkaWRQcm92aWRlUmVxdWVzdCk6
CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6
ZGlkUHJvdmlkZVJlcXVlc3RzKToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlRmFpclBs
YXlTdHJlYW1pbmdBVkZPYmpDOjpkaWRQcm92aWRlUmVuZXdpbmdSZXF1ZXN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkNETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpkaWRQcm92aWRl
UGVyc2lzdGFibGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlRmFpclBs
YXlTdHJlYW1pbmdBVkZPYmpDOjpkaWRGYWlsVG9Qcm92aWRlUmVxdWVzdCk6CisgICAgICAgIChX
ZWJDb3JlOjpDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6cmVxdWVzdERpZFN1
Y2NlZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FW
Rk9iakM6OnNob3VsZFJldHJ5UmVxdWVzdEZvclJlYXNvbik6CisgICAgICAgIChXZWJDb3JlOjpD
RE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6c2Vzc2lvbklkZW50aWZpZXJDaGFu
Z2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZP
YmpDOjpncm91cFNlc3Npb25JZGVudGlmaWVyQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpD
RE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6c2Vzc2lvbkZvckdyb3VwIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5n
QVZGT2JqQzo6Q0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDKToKKyAg
ICAgICAgKFdlYkNvcmU6OmluaXRUeXBlRm9yUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpD
RE1JbnN0YW5jZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OnJlcXVlc3RMaWNlbnNl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5n
QVZGT2JqQzo6cmVtb3ZlU2Vzc2lvbkRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFu
Y2VTZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpncm91cFNlc3Npb25JZGVudGlmaWVy
Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb25GYWlyUGxheVN0
cmVhbWluZ0FWRk9iakM6OmVuc3VyZVNlc3Npb25Pckdyb3VwKToKKyAgICAgICAgKFdlYkNvcmU6
OkNETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6ZW5zdXJlU2Vzc2lv
bik6IERlbGV0ZWQuCisKIDIwMTktMTEtMjAgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgRXhwZXJpbWVudGFsIHN1cHBvcnQgZm9yIEhEUiBtZWRpYSBxdWVyeQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L1BBTC9DaGFuZ2VMb2cKaW5kZXggNDgwOWM1MGFiZjY1ODc1Nzc0MjJkYjU5MGEyOGI4OGQwMjkx
Mjg0OS4uYjFmZmRkMGM5YzllZjEyNDBiYjMwNTQ4MGI5YjdkNDg1MmYxMTQxZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTktMTItMDIgIEplciBOb2JsZSAgPGplci5u
b2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgQWRvcHQgQVZDb250ZW50S2V5UmVwb3J0R3JvdXAK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDc2NQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGFsL2Nv
Y29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg6CisgICAgICAgICogcGFsL2NvY29hL0FWRm91bmRh
dGlvblNvZnRMaW5rLm1tOgorICAgICAgICAqIHBhbC9zcGkvbWFjL0FWRm91bmRhdGlvblNQSS5o
OgorCiAyMDE5LTExLTIwICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAg
ICAgIEV4cGVyaW1lbnRhbCBzdXBwb3J0IGZvciBIRFIgbWVkaWEgcXVlcnkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaCBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaAppbmRleCA2
NTc4NGZlNjVhOTEyYmU2MjQxNzhhM2EyZTNhYjg5ZDAxYTYzNjc4Li5iYzZiYWI0NjY3YTQzMjdi
ZDY4NGZkYTg0ZTM5NWI3MDc1ZmZlNzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oCkBAIC01MCw2ICs1MCw3IEBAIFNPRlRf
TElOS19DTEFTU19GT1JfSEVBREVSKFBBTCwgQVZDYXB0dXJlRGV2aWNlSW5wdXQpCiBTT0ZUX0xJ
TktfQ0xBU1NfRk9SX0hFQURFUihQQUwsIEFWQ2FwdHVyZU91dHB1dCkKIFNPRlRfTElOS19DTEFT
U19GT1JfSEVBREVSKFBBTCwgQVZDYXB0dXJlU2Vzc2lvbikKIFNPRlRfTElOS19DTEFTU19GT1Jf
SEVBREVSKFBBTCwgQVZDYXB0dXJlVmlkZW9EYXRhT3V0cHV0KQorU09GVF9MSU5LX0NMQVNTX0ZP
Ul9IRUFERVIoUEFMLCBBVkNvbnRlbnRLZXlSZXBvcnRHcm91cCkKIFNPRlRfTElOS19DTEFTU19G
T1JfSEVBREVSKFBBTCwgQVZDb250ZW50S2V5UmVzcG9uc2UpCiBTT0ZUX0xJTktfQ0xBU1NfRk9S
X0hFQURFUihQQUwsIEFWQ29udGVudEtleVNlc3Npb24pCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX0hF
QURFUihQQUwsIEFWRnJhbWVSYXRlUmFuZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbQppbmRleCBlMTQ5ZjdmYjgyM2IxNWM4
YTFjNWFmMWJiZGZmODM5ODE2MWJmN2QyLi45Njc0ZGI2YzhkZjRhMWU5MjQ5YWVlYzNmM2NmMzE2
NTZlNzlhY2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91
bmRhdGlvblNvZnRMaW5rLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZG
b3VuZGF0aW9uU29mdExpbmsubW0KQEAgLTYxLDYgKzYxLDcgQEAgU09GVF9MSU5LX0NMQVNTX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWUGxheWVyTGF5ZXIsIFBB
TF9FWFAKIFNPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3Vu
ZGF0aW9uLCBBVlVSTEFzc2V0LCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VS
Q0VfT1BUSU9OQUxfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWQXNzZXRSZWFkZXJT
YW1wbGVSZWZlcmVuY2VPdXRwdXQsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NP
VVJDRV9PUFRJT05BTF9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZBc3NldFJlc291
cmNlTG9hZGluZ1JlcXVlc3QsIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJD
RV9PUFRJT05BTF9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZDb250ZW50S2V5UmVw
b3J0R3JvdXAsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9PUFRJT05B
TF9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZDb250ZW50S2V5UmVzcG9uc2UsIFBB
TF9FWFBPUlQpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9PUFRJT05BTF9XSVRIX0VYUE9S
VChQQUwsIEFWRm91bmRhdGlvbiwgQVZDb250ZW50S2V5U2Vzc2lvbiwgUEFMX0VYUE9SVCkKIFNP
RlRfTElOS19DTEFTU19GT1JfU09VUkNFX09QVElPTkFMX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3Vu
ZGF0aW9uLCBBVlNhbXBsZUJ1ZmZlckF1ZGlvUmVuZGVyZXIsIFBBTF9FWFBPUlQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvQVZGb3VuZGF0aW9uU1BJLmggYi9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9tYWMvQVZGb3VuZGF0aW9uU1BJLmgKaW5kZXggM2Nj
OTUyYjAyMzkwN2M1NzE2OGQ4YzNkMTk5Yzg1NmFjZjY5MGJlZC4uNGEwZGY3MGFkN2Q1MDY0OWZl
NDFmYjVjNDZiMDdkZjM4YmE3YjczMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3Bh
bC9zcGkvbWFjL0FWRm91bmRhdGlvblNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3BpL21hYy9BVkZvdW5kYXRpb25TUEkuaApAQCAtMjgsNiArMjgsMTAgQEAKICNpbXBvcnQgPG9i
amMvcnVudGltZS5oPgogI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CiAKKyNpZiBIQVZFKEFW
Q09OVEVOVEtFWVNFU1NJT04pCisjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZDb250ZW50S2V5U2Vz
c2lvbi5oPgorI2VuZGlmCisKICNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCiAjaW1wb3J0
IDxBVkZvdW5kYXRpb24vQVZBc3NldENhY2hlX1ByaXZhdGUuaD4KQEAgLTE1NCw3ICsxNTgsNiBA
QCB0eXBlZGVmIE5TX0VOVU0oTlNVSW50ZWdlciwgQVZTdHJlYW1EYXRhUGFyc2VyU3RyZWFtRGF0
YUZsYWdzKSB7CiBOU19BU1NVTUVfTk9OTlVMTF9FTkQKIAogI2lmIEhBVkUoQVZDT05URU5US0VZ
U0VTU0lPTikKLSNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkNvbnRlbnRLZXlTZXNzaW9uLmg+CiBA
aW50ZXJmYWNlIEFWU3RyZWFtRGF0YVBhcnNlciAoKSA8QVZDb250ZW50S2V5UmVjaXBpZW50Pgog
QGVuZAogI2VuZGlmCkBAIC0xNjMsNiArMTY2LDE4IEBAIE5TX0FTU1VNRV9OT05OVUxMX0VORAog
CiAjZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIAorI2lmIEhBVkUoQVZDT05URU5U
S0VZU0VTU0lPTikKK0BpbnRlcmZhY2UgQVZDb250ZW50S2V5UmVwb3J0R3JvdXAgOiBOU09iamVj
dAorQHByb3BlcnR5IChyZWFkb25seSwgbnVsbGFibGUpIE5TRGF0YSAqY29udGVudFByb3RlY3Rp
b25TZXNzaW9uSWRlbnRpZmllcjsKKy0gKHZvaWQpZXhwaXJlOworLSAodm9pZClwcm9jZXNzQ29u
dGVudEtleVJlcXVlc3RXaXRoSWRlbnRpZmllcjoobnVsbGFibGUgaWQpaWRlbnRpZmllciBpbml0
aWFsaXphdGlvbkRhdGE6KG51bGxhYmxlIE5TRGF0YSAqKWluaXRpYWxpemF0aW9uRGF0YSBvcHRp
b25zOihudWxsYWJsZSBOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgaWQ+ICopb3B0aW9uczsKK0Bl
bmQKKworQGludGVyZmFjZSBBVkNvbnRlbnRLZXlTZXNzaW9uIChBVkNvbnRlbnRLZXlHcm91cF9T
dXBwb3J0KQorLSAobm9ubnVsbCBBVkNvbnRlbnRLZXlSZXBvcnRHcm91cCAqKW1ha2VDb250ZW50
S2V5R3JvdXA7CitAZW5kCisjZW5kaWYgLy8gSEFWRShBVkNPTlRFTlRLRVlTRVNTSU9OKQorCiAj
aWYgUExBVEZPUk0oTUFDKSAmJiAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKIE5TX0FTU1VNRV9O
T05OVUxMX0JFR0lOCiBAaW50ZXJmYWNlIEFWU3RyZWFtRGF0YVBhcnNlciAoQVZTdHJlYW1EYXRh
UGFyc2VyUHJpdmF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA2YTQ3ODViZmNmZjA3ZmE3ZGRkZmQzNjdjM2UwZTcwZGJkNWU4
ZjA3Li43MTVmYjQ3ZGY1YmFmN2JiYzNiNDBmMDMzZTFhZjJhMmUzMmI5ZDcyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMjk1
MSw2ICsyMjk1MSw4IEBACiAJCQkJQTVDOTc0Q0YxMTQ4NUZGMTAwNjZGMkFCIC8qIEtleUV2ZW50
Q29jb2EuaCAqLywKIAkJCQlBNUM5NzREMDExNDg1RkYxMDA2NkYyQUIgLyogS2V5RXZlbnRDb2Nv
YS5tbSAqLywKIAkJCQkxQTQ4MzJCMjFBOTUzQkE2MDA4QjRERkUgLyogTG9jYWxpemVkU3RyaW5n
c0NvY29hLm1tICovLAorCQkJCUNENTM1NTU3MjM3NDhFNTkwMEE2MTNCRCAvKiBNZWRpYVRvb2xi
b3hTb2Z0TGluay5jcHAgKi8sCisJCQkJQ0Q1MzU1NTYyMzc0OEU1OTAwQTYxM0JEIC8qIE1lZGlh
VG9vbGJveFNvZnRMaW5rLmggKi8sCiAJCQkJQzUzRDM5MzMxQzk3ODkyRDAwN0YzQUU5IC8qIE1J
TUVUeXBlUmVnaXN0cnlDb2NvYS5tbSAqLywKIAkJCQlBMTlEOTM0OTFBQTExQjFFMDBCNDZDMjQg
LyogTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIuaCAqLywKIAkJCQlBMTlEOTM0ODFBQTEx
QjFFMDBCNDZDMjQgLyogTmV0d29ya0V4dGVuc2lvbkNvbnRlbnRGaWx0ZXIubW0gKi8sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0
cmVhbWluZ0FWRk9iakMuaAppbmRleCBhODZlOTdjNDRjN2Y1OTM1NWRlZjhmOGM3OGU0ZTc2YmU5
ODZjYzk0Li5kNDE2OTIzZTA0Njc3MWZmYTY0YTQ0ZjVjNGQwNjBmM2YwZmEyNjUyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9D
RE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlT
dHJlYW1pbmdBVkZPYmpDLmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlIDx3dGYvUmV0YWlu
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKK09CSkNfQ0xBU1MgQVZD
b250ZW50S2V5UmVwb3J0R3JvdXA7CiBPQkpDX0NMQVNTIEFWQ29udGVudEtleVJlcXVlc3Q7CiBP
QkpDX0NMQVNTIEFWQ29udGVudEtleVNlc3Npb247CiBPQkpDX0NMQVNTIE5TRGF0YTsKQEAgLTQ2
LDggKzQ3LDI0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENETUluc3RhbmNlU2Vzc2lv
bkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzsKIHN0cnVjdCBDRE1NZWRpYUNhcGFiaWxpdHk7CiAK
LWNsYXNzIENETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDIGZpbmFsIDogcHVibGlj
IENETUluc3RhbmNlLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8Q0RNSW5zdGFuY2VGYWlyUGxheVN0
cmVhbWluZ0FWRk9iakM+IHsKK2NsYXNzIEFWQ29udGVudEtleVNlc3Npb25EZWxlZ2F0ZUNsaWVu
dCB7CiBwdWJsaWM6CisgICAgdmlydHVhbCB+QVZDb250ZW50S2V5U2Vzc2lvbkRlbGVnYXRlQ2xp
ZW50KCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgdm9pZCBkaWRQcm92aWRlUmVxdWVzdChBVkNv
bnRlbnRLZXlSZXF1ZXN0KikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRQcm92aWRlUmVxdWVz
dHMoVmVjdG9yPFJldGFpblB0cjxBVkNvbnRlbnRLZXlSZXF1ZXN0Pj4mJikgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBkaWRQcm92aWRlUmVuZXdpbmdSZXF1ZXN0KEFWQ29udGVudEtleVJlcXVlc3Qq
KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFByb3ZpZGVQZXJzaXN0YWJsZVJlcXVlc3QoQVZD
b250ZW50S2V5UmVxdWVzdCopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmFpbFRvUHJvdmlk
ZVJlcXVlc3QoQVZDb250ZW50S2V5UmVxdWVzdCosIE5TRXJyb3IqKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHJlcXVlc3REaWRTdWNjZWVkKEFWQ29udGVudEtleVJlcXVlc3QqKSA9IDA7CisgICAg
dmlydHVhbCBib29sIHNob3VsZFJldHJ5UmVxdWVzdEZvclJlYXNvbihBVkNvbnRlbnRLZXlSZXF1
ZXN0KiwgTlNTdHJpbmcqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNlc3Npb25JZGVudGlmaWVy
Q2hhbmdlZChOU0RhdGEqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdyb3VwU2Vzc2lvbklkZW50
aWZpZXJDaGFuZ2VkKEFWQ29udGVudEtleVJlcG9ydEdyb3VwKiwgTlNEYXRhKikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBvdXRwdXRPYnNjdXJlZER1ZVRvSW5zdWZmaWNpZW50RXh0ZXJuYWxQcm90
ZWN0aW9uQ2hhbmdlZChib29sKSA9IDA7Cit9OworCitjbGFzcyBDRE1JbnN0YW5jZUZhaXJQbGF5
U3RyZWFtaW5nQVZGT2JqQyBmaW5hbCA6IHB1YmxpYyBDRE1JbnN0YW5jZSwgcHVibGljIEFWQ29u
dGVudEtleVNlc3Npb25EZWxlZ2F0ZUNsaWVudCwgcHVibGljIENhbk1ha2VXZWFrUHRyPENETUlu
c3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDPiB7CitwdWJsaWM6CisgICAgQ0RNSW5zdGFu
Y2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMoKTsKICAgICB2aXJ0dWFsIH5DRE1JbnN0YW5jZUZh
aXJQbGF5U3RyZWFtaW5nQVZGT2JqQygpID0gZGVmYXVsdDsKIAogICAgIHN0YXRpYyBib29sIHN1
cHBvcnRzUGVyc2lzdGFibGVTdGF0ZSgpOwpAQCAtNzAsMjAgKzg3LDM2IEBAIHB1YmxpYzoKICAg
ICBOU1VSTCAqc3RvcmFnZVVSTCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RvcmFnZVVSTC5nZXQoKTsg
fQogICAgIGJvb2wgcGVyc2lzdGVudFN0YXRlQWxsb3dlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcGVy
c2lzdGVudFN0YXRlQWxsb3dlZDsgfQogICAgIFNoYXJlZEJ1ZmZlciogc2VydmVyQ2VydGlmaWNh
dGUoKSBjb25zdCB7IHJldHVybiBtX3NlcnZlckNlcnRpZmljYXRlLmdldCgpOyB9CisgICAgQVZD
b250ZW50S2V5U2Vzc2lvbiogY29udGVudEtleVNlc3Npb24oKSB7IHJldHVybiBtX3Nlc3Npb24u
Z2V0KCk7IH0KIAotICAgIHZvaWQgb3V0cHV0T2JzY3VyZWREdWVUb0luc3VmZmljaWVudEV4dGVy
bmFsUHJvdGVjdGlvbkNoYW5nZWQoYm9vbCk7CisgICAgLy8gQVZDb250ZW50S2V5U2Vzc2lvbkRl
bGVnYXRlQ2xpZW50CisgICAgdm9pZCBkaWRQcm92aWRlUmVxdWVzdChBVkNvbnRlbnRLZXlSZXF1
ZXN0KikgZmluYWw7CisgICAgdm9pZCBkaWRQcm92aWRlUmVxdWVzdHMoVmVjdG9yPFJldGFpblB0
cjxBVkNvbnRlbnRLZXlSZXF1ZXN0Pj4mJikgZmluYWw7CisgICAgdm9pZCBkaWRQcm92aWRlUmVu
ZXdpbmdSZXF1ZXN0KEFWQ29udGVudEtleVJlcXVlc3QqKSBmaW5hbDsKKyAgICB2b2lkIGRpZFBy
b3ZpZGVQZXJzaXN0YWJsZVJlcXVlc3QoQVZDb250ZW50S2V5UmVxdWVzdCopIGZpbmFsOworICAg
IHZvaWQgZGlkRmFpbFRvUHJvdmlkZVJlcXVlc3QoQVZDb250ZW50S2V5UmVxdWVzdCosIE5TRXJy
b3IqKSBmaW5hbDsKKyAgICB2b2lkIHJlcXVlc3REaWRTdWNjZWVkKEFWQ29udGVudEtleVJlcXVl
c3QqKSBmaW5hbDsKKyAgICBib29sIHNob3VsZFJldHJ5UmVxdWVzdEZvclJlYXNvbihBVkNvbnRl
bnRLZXlSZXF1ZXN0KiwgTlNTdHJpbmcqKSBmaW5hbDsKKyAgICB2b2lkIHNlc3Npb25JZGVudGlm
aWVyQ2hhbmdlZChOU0RhdGEqKSBmaW5hbDsKKyAgICB2b2lkIGdyb3VwU2Vzc2lvbklkZW50aWZp
ZXJDaGFuZ2VkKEFWQ29udGVudEtleVJlcG9ydEdyb3VwKiwgTlNEYXRhKikgZmluYWw7CisgICAg
dm9pZCBvdXRwdXRPYnNjdXJlZER1ZVRvSW5zdWZmaWNpZW50RXh0ZXJuYWxQcm90ZWN0aW9uQ2hh
bmdlZChib29sKSBmaW5hbDsKIAogICAgIHVzaW5nIEtleXMgPSBWZWN0b3I8UmVmPFNoYXJlZEJ1
ZmZlcj4+OwogICAgIENETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQyog
c2Vzc2lvbkZvcktleUlEcyhjb25zdCBLZXlzJikgY29uc3Q7CisgICAgQ0RNSW5zdGFuY2VTZXNz
aW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDKiBzZXNzaW9uRm9yR3JvdXAoQVZDb250ZW50S2V5
UmVwb3J0R3JvdXAqKSBjb25zdDsKIAogcHJpdmF0ZToKKyAgICB2b2lkIGVuc3VyZVNlc3Npb24o
KTsKKworICAgIFJldGFpblB0cjxBVkNvbnRlbnRLZXlTZXNzaW9uPiBtX3Nlc3Npb247CisgICAg
UmV0YWluUHRyPFdlYkNvcmVGUFNDb250ZW50S2V5U2Vzc2lvbkRlbGVnYXRlPiBtX2RlbGVnYXRl
OwogICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IG1fc2VydmVyQ2VydGlmaWNhdGU7CiAgICAgYm9v
bCBtX3BlcnNpc3RlbnRTdGF0ZUFsbG93ZWQgeyB0cnVlIH07CiAgICAgUmV0YWluUHRyPE5TVVJM
PiBtX3N0b3JhZ2VVUkw7CiAgICAgVmVjdG9yPFdlYWtQdHI8Q0RNSW5zdGFuY2VTZXNzaW9uRmFp
clBsYXlTdHJlYW1pbmdBVkZPYmpDPj4gbV9zZXNzaW9uczsKIH07CiAKLWNsYXNzIENETUluc3Rh
bmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQyBmaW5hbCA6IHB1YmxpYyBDRE1JbnN0
YW5jZVNlc3Npb24sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxDRE1JbnN0YW5jZVNlc3Npb25GYWly
UGxheVN0cmVhbWluZ0FWRk9iakM+IHsKK2NsYXNzIENETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5
U3RyZWFtaW5nQVZGT2JqQyBmaW5hbCA6IHB1YmxpYyBDRE1JbnN0YW5jZVNlc3Npb24sIHB1Ymxp
YyBBVkNvbnRlbnRLZXlTZXNzaW9uRGVsZWdhdGVDbGllbnQsIHB1YmxpYyBDYW5NYWtlV2Vha1B0
cjxDRE1JbnN0YW5jZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakM+IHsKIHB1YmxpYzoK
ICAgICBDRE1JbnN0YW5jZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakMoUmVmPENETUlu
c3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDPiYmKTsKICAgICB2aXJ0dWFsIH5DRE1JbnN0
YW5jZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakMoKTsKQEAgLTk4LDE5ICsxMzEsMjIg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0Q2xpZW50KFdlYWtQdHI8Q0RNSW5zdGFuY2VTZXNzaW9u
Q2xpZW50PiYmKSBmaW5hbDsKICAgICB2b2lkIGNsZWFyQ2xpZW50KCkgZmluYWw7CiAKLSAgICB2
b2lkIGRpZFByb3ZpZGVSZXF1ZXN0KEFWQ29udGVudEtleVJlcXVlc3QqKTsKLSAgICB2b2lkIGRp
ZFByb3ZpZGVSZXF1ZXN0cyhWZWN0b3I8UmV0YWluUHRyPEFWQ29udGVudEtleVJlcXVlc3Q+PiYm
KTsKLSAgICB2b2lkIGRpZFByb3ZpZGVSZW5ld2luZ1JlcXVlc3QoQVZDb250ZW50S2V5UmVxdWVz
dCopOwotICAgIHZvaWQgZGlkUHJvdmlkZVBlcnNpc3RhYmxlUmVxdWVzdChBVkNvbnRlbnRLZXlS
ZXF1ZXN0Kik7Ci0gICAgdm9pZCBkaWRGYWlsVG9Qcm92aWRlUmVxdWVzdChBVkNvbnRlbnRLZXlS
ZXF1ZXN0KiwgTlNFcnJvciopOwotICAgIHZvaWQgcmVxdWVzdERpZFN1Y2NlZWQoQVZDb250ZW50
S2V5UmVxdWVzdCopOwotICAgIGJvb2wgc2hvdWxkUmV0cnlSZXF1ZXN0Rm9yUmVhc29uKEFWQ29u
dGVudEtleVJlcXVlc3QqLCBOU1N0cmluZyopOwotICAgIHZvaWQgc2Vzc2lvbklkZW50aWZpZXJD
aGFuZ2VkKE5TRGF0YSopOwotICAgIHZvaWQgb3V0cHV0T2JzY3VyZWREdWVUb0luc3VmZmljaWVu
dEV4dGVybmFsUHJvdGVjdGlvbkNoYW5nZWQoYm9vbCk7CisgICAgLy8gQVZDb250ZW50S2V5U2Vz
c2lvbkRlbGVnYXRlQ2xpZW50CisgICAgdm9pZCBkaWRQcm92aWRlUmVxdWVzdChBVkNvbnRlbnRL
ZXlSZXF1ZXN0KikgZmluYWw7CisgICAgdm9pZCBkaWRQcm92aWRlUmVxdWVzdHMoVmVjdG9yPFJl
dGFpblB0cjxBVkNvbnRlbnRLZXlSZXF1ZXN0Pj4mJikgZmluYWw7CisgICAgdm9pZCBkaWRQcm92
aWRlUmVuZXdpbmdSZXF1ZXN0KEFWQ29udGVudEtleVJlcXVlc3QqKSBmaW5hbDsKKyAgICB2b2lk
IGRpZFByb3ZpZGVQZXJzaXN0YWJsZVJlcXVlc3QoQVZDb250ZW50S2V5UmVxdWVzdCopIGZpbmFs
OworICAgIHZvaWQgZGlkRmFpbFRvUHJvdmlkZVJlcXVlc3QoQVZDb250ZW50S2V5UmVxdWVzdCos
IE5TRXJyb3IqKSBmaW5hbDsKKyAgICB2b2lkIHJlcXVlc3REaWRTdWNjZWVkKEFWQ29udGVudEtl
eVJlcXVlc3QqKSBmaW5hbDsKKyAgICBib29sIHNob3VsZFJldHJ5UmVxdWVzdEZvclJlYXNvbihB
VkNvbnRlbnRLZXlSZXF1ZXN0KiwgTlNTdHJpbmcqKSBmaW5hbDsKKyAgICB2b2lkIHNlc3Npb25J
ZGVudGlmaWVyQ2hhbmdlZChOU0RhdGEqKSBmaW5hbDsKKyAgICB2b2lkIGdyb3VwU2Vzc2lvbklk
ZW50aWZpZXJDaGFuZ2VkKEFWQ29udGVudEtleVJlcG9ydEdyb3VwKiwgTlNEYXRhKikgZmluYWw7
CisgICAgdm9pZCBvdXRwdXRPYnNjdXJlZER1ZVRvSW5zdWZmaWNpZW50RXh0ZXJuYWxQcm90ZWN0
aW9uQ2hhbmdlZChib29sKSBmaW5hbDsKIAogICAgIHVzaW5nIEtleXMgPSBDRE1JbnN0YW5jZUZh
aXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6S2V5czsKICAgICBLZXlzIGtleUlEcygpOwotICAgIEFW
Q29udGVudEtleVNlc3Npb24qIGNvbnRlbnRLZXlTZXNzaW9uKCkgeyByZXR1cm4gbV9zZXNzaW9u
LmdldCgpOyB9CisgICAgQVZDb250ZW50S2V5U2Vzc2lvbiogY29udGVudEtleVNlc3Npb24oKSB7
IHJldHVybiBtX3Nlc3Npb24gPyBtX3Nlc3Npb24uZ2V0KCkgOiBtX2luc3RhbmNlLT5jb250ZW50
S2V5U2Vzc2lvbigpOyB9CisgICAgQVZDb250ZW50S2V5UmVwb3J0R3JvdXAqIGNvbnRlbnRLZXlS
ZXBvcnRHcm91cCgpIHsgcmV0dXJuIG1fZ3JvdXAuZ2V0KCk7IH0KIAogICAgIHN0cnVjdCBSZXF1
ZXN0IHsKICAgICAgICAgQXRvbVN0cmluZyBpbml0VHlwZTsKQEAgLTExOSw3ICsxNTUsNyBAQCBw
dWJsaWM6CiAgICAgfTsKIAogcHJpdmF0ZToKLSAgICBBVkNvbnRlbnRLZXlTZXNzaW9uKiBlbnN1
cmVTZXNzaW9uKCk7CisgICAgYm9vbCBlbnN1cmVTZXNzaW9uT3JHcm91cCgpOwogICAgIGJvb2wg
aXNMaWNlbnNlVHlwZVN1cHBvcnRlZChMaWNlbnNlVHlwZSkgY29uc3Q7CiAKICAgICBLZXlTdGF0
dXNWZWN0b3Iga2V5U3RhdHVzZXMoKSBjb25zdDsKQEAgLTEyNyw2ICsxNjMsNyBAQCBwcml2YXRl
OgogICAgIEFWQ29udGVudEtleVJlcXVlc3QqIGxhc3RLZXlSZXF1ZXN0KCkgY29uc3Q7CiAKICAg
ICBSZWY8Q0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakM+IG1faW5zdGFuY2U7Cisg
ICAgUmV0YWluUHRyPEFWQ29udGVudEtleVJlcG9ydEdyb3VwPiBtX2dyb3VwOwogICAgIFJldGFp
blB0cjxBVkNvbnRlbnRLZXlTZXNzaW9uPiBtX3Nlc3Npb247CiAgICAgT3B0aW9uYWw8UmVxdWVz
dD4gbV9jdXJyZW50UmVxdWVzdDsKICAgICBSZXRhaW5QdHI8V2ViQ29yZUZQU0NvbnRlbnRLZXlT
ZXNzaW9uRGVsZWdhdGU+IG1fZGVsZWdhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5U3Ry
ZWFtaW5nQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tCmluZGV4
IDAzYzVkZGRhYTMyYTE0NmI3ZjM5MmFlZmMxZTBlMTNhYjNmZDgwYTMuLmE3MTRlZjI0NzQ2MWUx
ZTc1M2EwMjU0ZWUzMDMxNzUwZTAwMTEyNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJl
YW1pbmdBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tCkBA
IC00OCwxNCArNDgsMTUgQEAKIAogc3RhdGljIGNvbnN0IE5TU3RyaW5nICpQbGF5YmFja1Nlc3Np
b25JZEtleSA9IEAiUGxheWJhY2tTZXNzaW9uSUQiOwogc3RhdGljIE5TU3RyaW5nICogY29uc3Qg
SW5pdGlhbGl6YXRpb25EYXRhVHlwZUtleSA9IEAiSW5pdGlhbGl6YXRpb25EYXRhVHlwZSI7Citz
dGF0aWMgTlNTdHJpbmcgKiBjb25zdCBDb250ZW50S2V5UmVwb3J0R3JvdXBLZXkgPSBAIkNvbnRl
bnRLZXlSZXBvcnRHcm91cCI7CiAKIEBpbnRlcmZhY2UgV2ViQ29yZUZQU0NvbnRlbnRLZXlTZXNz
aW9uRGVsZWdhdGUgOiBOU09iamVjdDxBVkNvbnRlbnRLZXlTZXNzaW9uRGVsZWdhdGU+IHsKLSAg
ICBXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakMqIF9w
YXJlbnQ7CisgICAgV2ViQ29yZTo6QVZDb250ZW50S2V5U2Vzc2lvbkRlbGVnYXRlQ2xpZW50KiBf
cGFyZW50OwogfQogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2ViQ29yZUZQU0NvbnRlbnRLZXlT
ZXNzaW9uRGVsZWdhdGUKLS0gKGlkKWluaXRXaXRoUGFyZW50OihXZWJDb3JlOjpDRE1JbnN0YW5j
ZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakMgKilwYXJlbnQKKy0gKGlkKWluaXRXaXRo
UGFyZW50OihXZWJDb3JlOjpBVkNvbnRlbnRLZXlTZXNzaW9uRGVsZWdhdGVDbGllbnQgKilwYXJl
bnQKIHsKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKICAgICAgICAgcmV0dXJuIG5p
bDsKQEAgLTE0MSwxMSArMTQyLDUyIEBAIC0gKHZvaWQpY29udGVudEtleVNlc3Npb25Db250ZW50
UHJvdGVjdGlvblNlc3Npb25JZGVudGlmaWVyRGlkQ2hhbmdlOihBVkNvbnRlbnRLCiAgICAgaWYg
KF9wYXJlbnQpCiAgICAgICAgIF9wYXJlbnQtPnNlc3Npb25JZGVudGlmaWVyQ2hhbmdlZChzZXNz
aW9uLmNvbnRlbnRQcm90ZWN0aW9uU2Vzc2lvbklkZW50aWZpZXIpOwogfQorLSAodm9pZCljb250
ZW50S2V5U2Vzc2lvbjooQVZDb250ZW50S2V5U2Vzc2lvbiAqKXNlc3Npb24gY29udGVudFByb3Rl
Y3Rpb25TZXNzaW9uSWRlbnRpZmllckRpZENoYW5nZUZvcktleUdyb3VwOihudWxsYWJsZSBBVkNv
bnRlbnRLZXlSZXBvcnRHcm91cCAqKXJlcG9ydEdyb3VwCit7CisgICAgLy8gRklYTUU6IFJlbW92
ZSBhZnRlciByZGFyOi8vNTc0MzA3NDcgaXMgZml4ZWQKKyAgICBbc2VsZiBjb250ZW50S2V5U2Vz
c2lvbjpzZXNzaW9uIGNvbnRlbnRQcm90ZWN0aW9uU2Vzc2lvbklkZW50aWZpZXJEaWRDaGFuZ2VG
b3JSZXBvcnRHcm91cDpyZXBvcnRHcm91cF07Cit9CisKKy0gKHZvaWQpY29udGVudEtleVNlc3Np
b246KEFWQ29udGVudEtleVNlc3Npb24gKilzZXNzaW9uIGNvbnRlbnRQcm90ZWN0aW9uU2Vzc2lv
bklkZW50aWZpZXJEaWRDaGFuZ2VGb3JSZXBvcnRHcm91cDoobnVsbGFibGUgQVZDb250ZW50S2V5
UmVwb3J0R3JvdXAgKilyZXBvcnRHcm91cAoreworICAgIFVOVVNFRF9QQVJBTShzZXNzaW9uKTsK
KyAgICBpZiAoX3BhcmVudCkKKyAgICAgICAgX3BhcmVudC0+Z3JvdXBTZXNzaW9uSWRlbnRpZmll
ckNoYW5nZWQocmVwb3J0R3JvdXAsIHJlcG9ydEdyb3VwLmNvbnRlbnRQcm90ZWN0aW9uU2Vzc2lv
bklkZW50aWZpZXIpOworfQogCiBAZW5kCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorQ0RNSW5z
dGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OkNETUluc3RhbmNlRmFpclBsYXlTdHJlYW1p
bmdBVkZPYmpDKCkKK3sKKyAgICBpZiAoUEFMOjpnZXRBVkNvbnRlbnRLZXlSZXBvcnRHcm91cENs
YXNzKCkpCisgICAgICAgIGVuc3VyZVNlc3Npb24oKTsKK30KKwordm9pZCBDRE1JbnN0YW5jZUZh
aXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6ZW5zdXJlU2Vzc2lvbigpCit7CisgICAgaWYgKG1fc2Vz
c2lvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFQQUw6OmNhbkxvYWRfQVZGb3VuZGF0
aW9uX0FWQ29udGVudEtleVN5c3RlbUZhaXJQbGF5U3RyZWFtaW5nKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIGF1dG8gc3RvcmFnZVVSTCA9IHRoaXMtPnN0b3JhZ2VVUkwoKTsKKyAgICBpZiAo
IXBlcnNpc3RlbnRTdGF0ZUFsbG93ZWQoKSB8fCAhc3RvcmFnZVVSTCkKKyAgICAgICAgbV9zZXNz
aW9uID0gW1BBTDo6Z2V0QVZDb250ZW50S2V5U2Vzc2lvbkNsYXNzKCkgY29udGVudEtleVNlc3Np
b25XaXRoS2V5U3lzdGVtOkFWQ29udGVudEtleVN5c3RlbUZhaXJQbGF5U3RyZWFtaW5nXTsKKyAg
ICBlbHNlCisgICAgICAgIG1fc2Vzc2lvbiA9IFtQQUw6OmdldEFWQ29udGVudEtleVNlc3Npb25D
bGFzcygpIGNvbnRlbnRLZXlTZXNzaW9uV2l0aEtleVN5c3RlbTpBVkNvbnRlbnRLZXlTeXN0ZW1G
YWlyUGxheVN0cmVhbWluZyBzdG9yYWdlRGlyZWN0b3J5QXRVUkw6c3RvcmFnZVVSTF07CisKKyAg
ICBpZiAoIW1fc2Vzc2lvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFtX2RlbGVnYXRl
KQorICAgICAgICBtX2RlbGVnYXRlID0gYWRvcHROUyhbW1dlYkNvcmVGUFNDb250ZW50S2V5U2Vz
c2lvbkRlbGVnYXRlIGFsbG9jXSBpbml0V2l0aFBhcmVudDp0aGlzXSk7CisKKyAgICBbbV9zZXNz
aW9uIHNldERlbGVnYXRlOm1fZGVsZWdhdGUuZ2V0KCkgcXVldWU6ZGlzcGF0Y2hfZ2V0X21haW5f
cXVldWUoKV07Cit9CisKIGNsYXNzIENETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5n
QVZGT2JqQzo6VXBkYXRlUmVzcG9uc2VDb2xsZWN0b3IgewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgpAQCAtMzA2LDYgKzM0OCw3MSBAQCBjb25zdCBTdHJpbmcmIENETUlu
c3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjprZXlTeXN0ZW0oKSBjb25zdAogICAgIHJl
dHVybiBrZXlTeXN0ZW07CiB9CiAKK3N0YXRpYyBBVkNvbnRlbnRLZXlSZXBvcnRHcm91cCogZ3Jv
dXBGb3JSZXF1ZXN0KEFWQ29udGVudEtleVJlcXVlc3QqIHJlcXVlc3QpCit7CisgICAgQVNTRVJU
KFtyZXF1ZXN0IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iob3B0aW9ucyldKTsKKyAgICBB
TExPV19ORVdfQVBJX1dJVEhPVVRfR1VBUkRTX0JFR0lOCisgICAgYXV0byBncm91cCA9IChBVkNv
bnRlbnRLZXlSZXBvcnRHcm91cCopW3JlcXVlc3Qub3B0aW9ucyB2YWx1ZUZvcktleTpDb250ZW50
S2V5UmVwb3J0R3JvdXBLZXldOworICAgIEFMTE9XX05FV19BUElfV0lUSE9VVF9HVUFSRFNfRU5E
CisgICAgcmV0dXJuIGdyb3VwOworfQorCit2b2lkIENETUluc3RhbmNlRmFpclBsYXlTdHJlYW1p
bmdBVkZPYmpDOjpkaWRQcm92aWRlUmVxdWVzdChBVkNvbnRlbnRLZXlSZXF1ZXN0ICpyZXF1ZXN0
KQoreworICAgIGlmIChhdXRvKiBzZXNzaW9uID0gc2Vzc2lvbkZvckdyb3VwKGdyb3VwRm9yUmVx
dWVzdChyZXF1ZXN0KSkpCisgICAgICAgIHNlc3Npb24tPmRpZFByb3ZpZGVSZXF1ZXN0KHJlcXVl
c3QpOworfQorCit2b2lkIENETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpkaWRQ
cm92aWRlUmVxdWVzdHMoVmVjdG9yPFJldGFpblB0cjxBVkNvbnRlbnRLZXlSZXF1ZXN0Pj4mJiBy
ZXF1ZXN0cykKK3sKKyAgICBpZiAoYXV0byogc2Vzc2lvbiA9IHNlc3Npb25Gb3JHcm91cChncm91
cEZvclJlcXVlc3QocmVxdWVzdHMuZmlyc3QoKS5nZXQoKSkpKQorICAgICAgICBzZXNzaW9uLT5k
aWRQcm92aWRlUmVxdWVzdHMoV1RGTW92ZShyZXF1ZXN0cykpOworfQorCit2b2lkIENETUluc3Rh
bmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpkaWRQcm92aWRlUmVuZXdpbmdSZXF1ZXN0KEFW
Q29udGVudEtleVJlcXVlc3QgKnJlcXVlc3QpCit7CisgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBz
ZXNzaW9uRm9yR3JvdXAoZ3JvdXBGb3JSZXF1ZXN0KHJlcXVlc3QpKSkKKyAgICAgICAgc2Vzc2lv
bi0+ZGlkUHJvdmlkZVJlbmV3aW5nUmVxdWVzdChyZXF1ZXN0KTsKK30KKwordm9pZCBDRE1JbnN0
YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6ZGlkUHJvdmlkZVBlcnNpc3RhYmxlUmVxdWVz
dChBVkNvbnRlbnRLZXlSZXF1ZXN0ICpyZXF1ZXN0KQoreworICAgIGlmIChhdXRvKiBzZXNzaW9u
ID0gc2Vzc2lvbkZvckdyb3VwKGdyb3VwRm9yUmVxdWVzdChyZXF1ZXN0KSkpCisgICAgICAgIHNl
c3Npb24tPmRpZFByb3ZpZGVQZXJzaXN0YWJsZVJlcXVlc3QocmVxdWVzdCk7Cit9CisKK3ZvaWQg
Q0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OmRpZEZhaWxUb1Byb3ZpZGVSZXF1
ZXN0KEFWQ29udGVudEtleVJlcXVlc3QgKnJlcXVlc3QsIE5TRXJyb3IgKmVycm9yKQoreworICAg
IGlmIChhdXRvKiBzZXNzaW9uID0gc2Vzc2lvbkZvckdyb3VwKGdyb3VwRm9yUmVxdWVzdChyZXF1
ZXN0KSkpCisgICAgICAgIHNlc3Npb24tPmRpZEZhaWxUb1Byb3ZpZGVSZXF1ZXN0KHJlcXVlc3Qs
IGVycm9yKTsKK30KKwordm9pZCBDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6
cmVxdWVzdERpZFN1Y2NlZWQoQVZDb250ZW50S2V5UmVxdWVzdCAqcmVxdWVzdCkKK3sKKyAgICBp
ZiAoYXV0byogc2Vzc2lvbiA9IHNlc3Npb25Gb3JHcm91cChncm91cEZvclJlcXVlc3QocmVxdWVz
dCkpKQorICAgICAgICBzZXNzaW9uLT5yZXF1ZXN0RGlkU3VjY2VlZChyZXF1ZXN0KTsKK30KKwor
Ym9vbCBDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6c2hvdWxkUmV0cnlSZXF1
ZXN0Rm9yUmVhc29uKEFWQ29udGVudEtleVJlcXVlc3QgKnJlcXVlc3QsIE5TU3RyaW5nICpyZWFz
b24pCit7CisgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBzZXNzaW9uRm9yR3JvdXAoZ3JvdXBGb3JS
ZXF1ZXN0KHJlcXVlc3QpKSkKKyAgICAgICAgcmV0dXJuIHNlc3Npb24tPnNob3VsZFJldHJ5UmVx
dWVzdEZvclJlYXNvbihyZXF1ZXN0LCByZWFzb24pOworICAgIHJldHVybiBmYWxzZTsKK30KKwor
dm9pZCBDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6c2Vzc2lvbklkZW50aWZp
ZXJDaGFuZ2VkKE5TRGF0YSAqc2Vzc2lvbklkZW50aWZpZXIpCit7CisgICAgVU5VU0VEX1BBUkFN
KHNlc3Npb25JZGVudGlmaWVyKTsKKyAgICAvLyBOby1vcC4gSWYgd2UgYXJlIGdldHRpbmcgdGhp
cyBjYWxsYmFjaywgdGhlcmUgYXJlIG91dHN0YW5kaW5nIEFWQ29udGVudEtleVJlcXVlc3RHcm91
cHMgd2hpY2ggYXJlIG1hbmFnaW5nIHRoZWlyIG93bgorICAgIC8vIHNlc3Npb24gaWRlbnRpZmll
cnMuCit9CisKK3ZvaWQgQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6Omdyb3Vw
U2Vzc2lvbklkZW50aWZpZXJDaGFuZ2VkKEFWQ29udGVudEtleVJlcG9ydEdyb3VwKiBncm91cCwg
TlNEYXRhICpzZXNzaW9uSWRlbnRpZmllcikKK3sKKyAgICBpZiAoYXV0byogc2Vzc2lvbiA9IHNl
c3Npb25Gb3JHcm91cChncm91cCkpCisgICAgICAgIHNlc3Npb24tPmdyb3VwU2Vzc2lvbklkZW50
aWZpZXJDaGFuZ2VkKGdyb3VwLCBzZXNzaW9uSWRlbnRpZmllcik7Cit9CisKIHZvaWQgQ0RNSW5z
dGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6Om91dHB1dE9ic2N1cmVkRHVlVG9JbnN1ZmZp
Y2llbnRFeHRlcm5hbFByb3RlY3Rpb25DaGFuZ2VkKGJvb2wgb2JzY3VyZWQpCiB7CiAgICAgZm9y
IChhdXRvJiBzZXNzaW9uSW50ZXJmYWNlIDogbV9zZXNzaW9ucykgewpAQCAtMzI5LDkgKzQzNiwy
MCBAQCBDRE1JbnN0YW5jZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakMqIENETUluc3Rh
bmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOgogICAgIHJldHVybiBudWxscHRyOwogfQogCitD
RE1JbnN0YW5jZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakMqIENETUluc3RhbmNlRmFp
clBsYXlTdHJlYW1pbmdBVkZPYmpDOjpzZXNzaW9uRm9yR3JvdXAoQVZDb250ZW50S2V5UmVwb3J0
R3JvdXAqIGdyb3VwKSBjb25zdAoreworICAgIGF1dG8gaW5kZXggPSBtX3Nlc3Npb25zLmZpbmRN
YXRjaGluZyhbZ3JvdXBdIChhdXRvIHNlc3Npb24pIHsKKyAgICAgICAgcmV0dXJuIHNlc3Npb24g
JiYgc2Vzc2lvbi0+Y29udGVudEtleVJlcG9ydEdyb3VwKCkgPT0gZ3JvdXA7CisgICAgfSk7CisK
KyAgICBpZiAoaW5kZXggIT0gbm90Rm91bmQpCisgICAgICAgIHJldHVybiBtX3Nlc3Npb25zW2lu
ZGV4XS5nZXQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogQ0RNSW5zdGFuY2VTZXNzaW9u
RmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpDRE1JbnN0YW5jZVNlc3Npb25GYWlyUGxheVN0cmVh
bWluZ0FWRk9iakMoUmVmPENETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDPiYmIGlu
c3RhbmNlKQogICAgIDogbV9pbnN0YW5jZShXVEZNb3ZlKGluc3RhbmNlKSkKLSAgICAsIG1fZGVs
ZWdhdGUoW1tXZWJDb3JlRlBTQ29udGVudEtleVNlc3Npb25EZWxlZ2F0ZSBhbGxvY10gaW5pdFdp
dGhQYXJlbnQ6dGhpc10pCisgICAgLCBtX2RlbGVnYXRlKGFkb3B0TlMoW1tXZWJDb3JlRlBTQ29u
dGVudEtleVNlc3Npb25EZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhQYXJlbnQ6dGhpc10pKQogewog
fQogCkBAIC0zNzQsOCArNDkyLDEyIEBAIHN0YXRpYyBBdG9tU3RyaW5nIGluaXRUeXBlRm9yUmVx
dWVzdChBVkNvbnRlbnRLZXlSZXF1ZXN0KiByZXF1ZXN0KQogQUxMT1dfTkVXX0FQSV9XSVRIT1VU
X0dVQVJEU19CRUdJTgogICAgIGF1dG8gbnNJbml0VHlwZSA9IChOU1N0cmluZyopW3JlcXVlc3Qu
b3B0aW9ucyB2YWx1ZUZvcktleTpJbml0aWFsaXphdGlvbkRhdGFUeXBlS2V5XTsKIEFMTE9XX05F
V19BUElfV0lUSE9VVF9HVUFSRFNfRU5ECi0gICAgaWYgKCFbbnNJbml0VHlwZSBpc0tpbmRPZkNs
YXNzOk5TU3RyaW5nLmNsYXNzXSkKLSAgICAgICAgcmV0dXJuIGVtcHR5QXRvbSgpOworICAgIGlm
ICghW25zSW5pdFR5cGUgaXNLaW5kT2ZDbGFzczpOU1N0cmluZy5jbGFzc10pIHsKKyAgICAgICAg
Ly8gVGhlIG9ubHkgd2F5IGZvciBhbiBpbml0aWFsaXphdGlvbiBkYXRhIHRvIGVuZCB1cCBoZXJl
IHdpdGhvdXQgYW4gYXBwcm9wcmlhdGUga2V5IGluCisgICAgICAgIC8vIHRoZSBvcHRpb25zIGRp
Y3Rpb25hcnkgaXMgZm9yIHRoYXQgZGF0YSB0byBoYXZlIGJlZW4gZ2VuZXJhdGVkIGJ5IHRoZSBB
VlN0cmVhbURhdGFQYXJzZXIKKyAgICAgICAgLy8gYW5kIGN1cnJlbnRseSwgdGhlIG9ubHkgaW5p
dGlhbGl6YXRpb24gZGF0YSBzdXBwb3J0ZWQgYnkgdGhlIHBhcnNlciBpcyB0aGUgJ3NpbmYnIGtp
bmQuCisgICAgICAgIHJldHVybiBDRE1Qcml2YXRlRmFpclBsYXlTdHJlYW1pbmc6OnNpbmZOYW1l
KCk7CisgICAgfQogCiAgICAgcmV0dXJuIEF0b21TdHJpbmcobnNJbml0VHlwZSk7CiB9CkBAIC00
MDUsNyArNTI3LDcgQEAgdm9pZCBDRE1JbnN0YW5jZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FW
Rk9iakM6OnJlcXVlc3RMaWNlbnNlKExpY2Vuc2VUeXBlIGxpY2UKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIGlmICghZW5zdXJlU2Vzc2lvbigpKSB7CisgICAgaWYgKCFlbnN1cmVTZXNz
aW9uT3JHcm91cCgpKSB7CiAgICAgICAgIGNhbGxiYWNrKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCks
IGVtcHR5U3RyaW5nKCksIGZhbHNlLCBGYWlsZWQpOwogICAgICAgICByZXR1cm47CiAgICAgfQpA
QCAtNDI5LDcgKzU1MSwxNCBAQCB2b2lkIENETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFt
aW5nQVZGT2JqQzo6cmVxdWVzdExpY2Vuc2UoTGljZW5zZVR5cGUgbGljZQogICAgIH0KIAogICAg
IG1fcmVxdWVzdExpY2Vuc2VDYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOwotICAgIFttX3Nl
c3Npb24gcHJvY2Vzc0NvbnRlbnRLZXlSZXF1ZXN0V2l0aElkZW50aWZpZXI6aWRlbnRpZmllci5n
ZXQoKSBpbml0aWFsaXphdGlvbkRhdGE6aW5pdGlhbGl6YXRpb25EYXRhLmdldCgpIG9wdGlvbnM6
QHsgSW5pdGlhbGl6YXRpb25EYXRhVHlwZUtleTogKE5TU3RyaW5nKilpbml0RGF0YVR5cGUgfV07
CisKKyAgICBpZiAobV9ncm91cCkgeworICAgICAgICBhdXRvKiBvcHRpb25zID0gQHsgQ29udGVu
dEtleVJlcG9ydEdyb3VwS2V5OiBtX2dyb3VwLmdldCgpLCBJbml0aWFsaXphdGlvbkRhdGFUeXBl
S2V5OiAoTlNTdHJpbmcqKWluaXREYXRhVHlwZSB9OworICAgICAgICBbbV9ncm91cCBwcm9jZXNz
Q29udGVudEtleVJlcXVlc3RXaXRoSWRlbnRpZmllcjppZGVudGlmaWVyLmdldCgpIGluaXRpYWxp
emF0aW9uRGF0YTppbml0aWFsaXphdGlvbkRhdGEuZ2V0KCkgb3B0aW9uczpvcHRpb25zXTsKKyAg
ICB9IGVsc2UgeworICAgICAgICBhdXRvKiBvcHRpb25zID0gQHsgSW5pdGlhbGl6YXRpb25EYXRh
VHlwZUtleTogKE5TU3RyaW5nKilpbml0RGF0YVR5cGUgfTsKKyAgICAgICAgW21fc2Vzc2lvbiBw
cm9jZXNzQ29udGVudEtleVJlcXVlc3RXaXRoSWRlbnRpZmllcjppZGVudGlmaWVyLmdldCgpIGlu
aXRpYWxpemF0aW9uRGF0YTppbml0aWFsaXphdGlvbkRhdGEuZ2V0KCkgb3B0aW9uczpvcHRpb25z
XTsKKyAgICB9CiB9CiAKIHN0YXRpYyBib29sIGlzRXF1YWwoY29uc3QgU2hhcmVkQnVmZmVyJiBk
YXRhLCBjb25zdCBTdHJpbmcmIHZhbHVlKQpAQCAtNjU2LDggKzc4NSwxMCBAQCB2b2lkIENETUlu
c3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6Y2xvc2VTZXNzaW9uKGNvbnN0
IFN0cmluZyYsIENsbwogCiB2b2lkIENETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5n
QVZGT2JqQzo6cmVtb3ZlU2Vzc2lvbkRhdGEoY29uc3QgU3RyaW5nJiBzZXNzaW9uSWQsIExpY2Vu
c2VUeXBlIGxpY2Vuc2VUeXBlLCBSZW1vdmVTZXNzaW9uRGF0YUNhbGxiYWNrJiYgY2FsbGJhY2sp
CiB7Ci0gICAgLy8gRklYTUU6IFdlIHNob3VsZCBiZSBhYmxlIHRvIGV4cGlyZSBpbmRpdmlkdWFs
IEFWQ29udGVudEtleVJlcXVlc3RzIHJhdGhlciB0aGFuIHRoZSBlbnRpcmUgQVZDb250ZW50S2V5
U2Vzc2lvbi4KLSAgICBbbV9zZXNzaW9uIGV4cGlyZV07CisgICAgaWYgKG1fZ3JvdXApCisgICAg
ICAgIFttX2dyb3VwIGV4cGlyZV07CisgICAgZWxzZQorICAgICAgICBbbV9zZXNzaW9uIGV4cGly
ZV07CiAKICAgICBpZiAobGljZW5zZVR5cGUgPT0gTGljZW5zZVR5cGU6OlBlcnNpc3RlbnRVc2Fn
ZVJlY29yZCkgewogICAgICAgICBhdXRvKiBzdG9yYWdlVVJMID0gbV9pbnN0YW5jZS0+c3RvcmFn
ZVVSTCgpOwpAQCAtOTg4LDYgKzExMTksMTIgQEAgdm9pZCBDRE1JbnN0YW5jZVNlc3Npb25GYWly
UGxheVN0cmVhbWluZ0FWRk9iakM6OnNlc3Npb25JZGVudGlmaWVyQ2hhbmdlZChOU0RhdGEKICAg
ICBtX2NsaWVudC0+c2Vzc2lvbklkQ2hhbmdlZChtX3Nlc3Npb25JZCk7CiB9CiAKK3ZvaWQgQ0RN
SW5zdGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpncm91cFNlc3Npb25JZGVu
dGlmaWVyQ2hhbmdlZChBVkNvbnRlbnRLZXlSZXBvcnRHcm91cCogZ3JvdXAsIE5TRGF0YSAqc2Vz
c2lvbklkZW50aWZpZXIpCit7CisgICAgVU5VU0VEX1BBUkFNKGdyb3VwKTsKKyAgICBzZXNzaW9u
SWRlbnRpZmllckNoYW5nZWQoc2Vzc2lvbklkZW50aWZpZXIpOworfQorCiBzdGF0aWMgYXV0byBy
ZXF1ZXN0U3RhdHVzVG9DRE1TdGF0dXMoQVZDb250ZW50S2V5UmVxdWVzdFN0YXR1cyBzdGF0dXMp
CiB7CiAgICAgc3dpdGNoIChzdGF0dXMpIHsKQEAgLTEwMzQsMTAgKzExNzEsMTUgQEAgdm9pZCBD
RE1JbnN0YW5jZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6Om91dHB1dE9ic2N1cmVk
RHVlVG9JbnN1ZmZpY2llbnQKICAgICAgICAgbV9jbGllbnQtPnVwZGF0ZUtleVN0YXR1c2VzKGtl
eVN0YXR1c2VzKCkpOwogfQogCi1BVkNvbnRlbnRLZXlTZXNzaW9uKiBDRE1JbnN0YW5jZVNlc3Np
b25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OmVuc3VyZVNlc3Npb24oKQorYm9vbCBDRE1JbnN0
YW5jZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OmVuc3VyZVNlc3Npb25Pckdyb3Vw
KCkKIHsKLSAgICBpZiAobV9zZXNzaW9uKQotICAgICAgICByZXR1cm4gbV9zZXNzaW9uLmdldCgp
OworICAgIGlmIChtX3Nlc3Npb24gfHwgbV9ncm91cCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisK
KyAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG1faW5zdGFuY2UtPmNvbnRlbnRLZXlTZXNzaW9uKCkp
IHsKKyAgICAgICAgbV9ncm91cCA9IFtzZXNzaW9uIG1ha2VDb250ZW50S2V5R3JvdXBdOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CiAKICAgICBhdXRvIHN0b3JhZ2VVUkwgPSBtX2luc3Rh
bmNlLT5zdG9yYWdlVVJMKCk7CiAgICAgaWYgKCFtX2luc3RhbmNlLT5wZXJzaXN0ZW50U3RhdGVB
bGxvd2VkKCkgfHwgIXN0b3JhZ2VVUkwpCkBAIC0xMDQ2LDEwICsxMTg4LDEwIEBAIEFWQ29udGVu
dEtleVNlc3Npb24qIENETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6
ZW5zdXJlU2Vzc2lvbigpCiAgICAgICAgIG1fc2Vzc2lvbiA9IFtQQUw6OmdldEFWQ29udGVudEtl
eVNlc3Npb25DbGFzcygpIGNvbnRlbnRLZXlTZXNzaW9uV2l0aEtleVN5c3RlbTpBVkNvbnRlbnRL
ZXlTeXN0ZW1GYWlyUGxheVN0cmVhbWluZyBzdG9yYWdlRGlyZWN0b3J5QXRVUkw6c3RvcmFnZVVS
TF07CiAKICAgICBpZiAoIW1fc2Vzc2lvbikKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIFttX3Nlc3Npb24gc2V0RGVsZWdhdGU6bV9kZWxlZ2F0
ZS5nZXQoKSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpXTsKLSAgICByZXR1cm4gbV9z
ZXNzaW9uLmdldCgpOworICAgIHJldHVybiB0cnVlOwogfQogCiBib29sIENETUluc3RhbmNlU2Vz
c2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6aXNMaWNlbnNlVHlwZVN1cHBvcnRlZChMaWNl
bnNlVHlwZSBsaWNlbnNlVHlwZSkgY29uc3QK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384750</attachid>
            <date>2019-12-03 13:37:57 -0800</date>
            <delta_ts>2019-12-03 15:04:05 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-204765-20191203133756.patch</filename>
            <type>text/plain</type>
            <size>26183</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyOTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTlkMWY1ZGRjZTA4N2Y3
NzJiZDU5YjcxY2QwYWM0OWQwNjJjNGU5MC4uNjAxNzBhZjk0ODkwMGM2ZTYxNWVkOWI1NDc3Y2Zm
NDU3Yzc4NWUzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE5LTEyLTAyICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkb3B0IEFWQ29udGVudEtl
eVJlcG9ydEdyb3VwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDQ3NjUKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAg
ICAgQWRvcHQgYSBuZXcgY2xhc3MsIEFWQ29udGVudEtleVJlcG9ydEdyb3VwLCB3aGljaCBhbGxv
d3MgbXVsaXBsZSBNZWRpYUtleVNlc3Npb25zIHRvIHNoYXJlCisgICAgICAgIGFuIEFWQ29udGVu
dEtleVNlc3Npb24sIHdoaWxlIGFsbG93aW5nIGluZGVwZW5kZW50IGV4cGlyYXRpb24gYW5kIHBl
cnNpc3RlbnQga2V5IHVzYWdlCisgICAgICAgIHRva2Vucy4gSG93ZXZlciwgdGhpcyBoYXMgdG8g
YmUgcnVudGltZSBkZXRlY3RlZCwgc28gdGhhdCBleGlzdGluZyB1c2FnZSBvZgorICAgICAgICBB
VkNvbnRlbnRLZXlTZXNzaW9uIGNvbnRpbnVlcyB0byB3b3JrIG9uIHBsYXRmb3JtIHZlcnNpb25z
IHdpdGhvdXQgcmVwb3J0IGdyb3VwIHN1cHBvcnQuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQ
bGF5U3RyZWFtaW5nQVZGT2JqQy5tbToKKyAgICAgICAgKC1bV2ViQ29yZUZQU0NvbnRlbnRLZXlT
ZXNzaW9uRGVsZWdhdGUgaW5pdFdpdGhQYXJlbnQ6XSk6CisgICAgICAgICgtW1dlYkNvcmVGUFND
b250ZW50S2V5U2Vzc2lvbkRlbGVnYXRlIGNvbnRlbnRLZXlTZXNzaW9uOmNvbnRlbnRQcm90ZWN0
aW9uU2Vzc2lvbklkZW50aWZpZXJEaWRDaGFuZ2VGb3JLZXlHcm91cDpdKToKKyAgICAgICAgKC1b
V2ViQ29yZUZQU0NvbnRlbnRLZXlTZXNzaW9uRGVsZWdhdGUgY29udGVudEtleVNlc3Npb246Y29u
dGVudFByb3RlY3Rpb25TZXNzaW9uSWRlbnRpZmllckRpZENoYW5nZUZvclJlcG9ydEdyb3VwOl0p
OgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6
OkNETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDKToKKyAgICAgICAgKFdlYkNvcmU6
OkNETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjplbnN1cmVTZXNzaW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6Omdyb3VwRm9yUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpDRE1J
bnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6ZGlkUHJvdmlkZVJlcXVlc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OmRpZFBy
b3ZpZGVSZXF1ZXN0cyk6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZUZhaXJQbGF5U3Ry
ZWFtaW5nQVZGT2JqQzo6ZGlkUHJvdmlkZVJlbmV3aW5nUmVxdWVzdCk6CisgICAgICAgIChXZWJD
b3JlOjpDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6ZGlkUHJvdmlkZVBlcnNp
c3RhYmxlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZUZhaXJQbGF5U3Ry
ZWFtaW5nQVZGT2JqQzo6ZGlkRmFpbFRvUHJvdmlkZVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6Q0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OnJlcXVlc3REaWRTdWNjZWVk
KToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpD
OjpzaG91bGRSZXRyeVJlcXVlc3RGb3JSZWFzb24pOgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5z
dGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OnNlc3Npb25JZGVudGlmaWVyQ2hhbmdlZCk6
CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6
Z3JvdXBTZXNzaW9uSWRlbnRpZmllckNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5z
dGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OnNlc3Npb25Gb3JHcm91cCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9i
akM6OkNETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQyk6CisgICAgICAg
IChXZWJDb3JlOjppbml0VHlwZUZvclJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5z
dGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpyZXF1ZXN0TGljZW5zZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9i
akM6OnJlbW92ZVNlc3Npb25EYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlU2Vz
c2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6Z3JvdXBTZXNzaW9uSWRlbnRpZmllckNoYW5n
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1p
bmdBVkZPYmpDOjplbnN1cmVTZXNzaW9uT3JHcm91cCk6CisgICAgICAgIChXZWJDb3JlOjpDRE1J
bnN0YW5jZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OmVuc3VyZVNlc3Npb24pOiBE
ZWxldGVkLgorCiAyMDE5LTEyLTAzICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgog
CiAgICAgICAgIEV4cGVyaW1lbnRhbCBzdXBwb3J0IGZvciBIRFIgbWVkaWEgcXVlcnkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nCmluZGV4IDQ4MDljNTBhYmY2NTg3NTc3NDIyZGI1OTBhMjhiODhkMDI5MTI4NDku
LjdlNTk5ZjMxMWFjNTdjYTUxZjUyN2JmYTgxNzRiNDg4NDMwZmYyNGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE5LTEyLTAyICBKZXIgTm9ibGUgIDxqZXIubm9ibGVA
YXBwbGUuY29tPgorCisgICAgICAgIEFkb3B0IEFWQ29udGVudEtleVJlcG9ydEdyb3VwCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3NjUKKworICAg
ICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgKiBwYWwvY29jb2EvQVZG
b3VuZGF0aW9uU29mdExpbmsuaDoKKyAgICAgICAgKiBwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29m
dExpbmsubW06CisgICAgICAgICogcGFsL3NwaS9tYWMvQVZGb3VuZGF0aW9uU1BJLmg6CisKIDIw
MTktMTEtMjAgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgRXhw
ZXJpbWVudGFsIHN1cHBvcnQgZm9yIEhEUiBtZWRpYSBxdWVyeQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oIGIvU291cmNlL1dl
YkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oCmluZGV4IDY1Nzg0ZmU2
NWE5MTJiZTYyNDE3OGEzYTJlM2FiODlkMDFhNjM2NzguLmJjNmJhYjQ2NjdhNDMyN2JkNjg0ZmRh
ODRlMzk1YjcwNzVmZmU3M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29j
b2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2Nv
Y29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmgKQEAgLTUwLDYgKzUwLDcgQEAgU09GVF9MSU5LX0NM
QVNTX0ZPUl9IRUFERVIoUEFMLCBBVkNhcHR1cmVEZXZpY2VJbnB1dCkKIFNPRlRfTElOS19DTEFT
U19GT1JfSEVBREVSKFBBTCwgQVZDYXB0dXJlT3V0cHV0KQogU09GVF9MSU5LX0NMQVNTX0ZPUl9I
RUFERVIoUEFMLCBBVkNhcHR1cmVTZXNzaW9uKQogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFERVIo
UEFMLCBBVkNhcHR1cmVWaWRlb0RhdGFPdXRwdXQpCitTT0ZUX0xJTktfQ0xBU1NfRk9SX0hFQURF
UihQQUwsIEFWQ29udGVudEtleVJlcG9ydEdyb3VwKQogU09GVF9MSU5LX0NMQVNTX0ZPUl9IRUFE
RVIoUEFMLCBBVkNvbnRlbnRLZXlSZXNwb25zZSkKIFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVS
KFBBTCwgQVZDb250ZW50S2V5U2Vzc2lvbikKIFNPRlRfTElOS19DTEFTU19GT1JfSEVBREVSKFBB
TCwgQVZGcmFtZVJhdGVSYW5nZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
Y29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0gYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2Nv
Y29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tCmluZGV4IGUxNDlmN2ZiODIzYjE1YzhhMWM1YWYx
YmJkZmY4Mzk4MTYxYmY3ZDIuLjk2NzRkYjZjOGRmNGExZTkyNDlhZWVjM2YzY2YzMTY1NmU3OWFj
Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9u
U29mdExpbmsubW0KKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRp
b25Tb2Z0TGluay5tbQpAQCAtNjEsNiArNjEsNyBAQCBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJD
RV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZQbGF5ZXJMYXllciwgUEFMX0VYUAog
U09GVF9MSU5LX0NMQVNTX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24s
IEFWVVJMQXNzZXQsIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ0xBU1NfRk9SX1NPVVJDRV9PUFRJ
T05BTF9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZBc3NldFJlYWRlclNhbXBsZVJl
ZmVyZW5jZU91dHB1dCwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX09Q
VElPTkFMX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVkFzc2V0UmVzb3VyY2VMb2Fk
aW5nUmVxdWVzdCwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX09QVElP
TkFMX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVkNvbnRlbnRLZXlSZXBvcnRHcm91
cCwgUEFMX0VYUE9SVCkKIFNPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX09QVElPTkFMX1dJVEhf
RVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVkNvbnRlbnRLZXlSZXNwb25zZSwgUEFMX0VYUE9S
VCkKIFNPRlRfTElOS19DTEFTU19GT1JfU09VUkNFX09QVElPTkFMX1dJVEhfRVhQT1JUKFBBTCwg
QVZGb3VuZGF0aW9uLCBBVkNvbnRlbnRLZXlTZXNzaW9uLCBQQUxfRVhQT1JUKQogU09GVF9MSU5L
X0NMQVNTX0ZPUl9TT1VSQ0VfT1BUSU9OQUxfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24s
IEFWU2FtcGxlQnVmZmVyQXVkaW9SZW5kZXJlciwgUEFMX0VYUE9SVCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9BVkZvdW5kYXRpb25TUEkuaCBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3BpL21hYy9BVkZvdW5kYXRpb25TUEkuaAppbmRleCAzY2M5NTJiMDIz
OTA3YzU3MTY4ZDhjM2QxOTljODU2YWNmNjkwYmVkLi40YTBkZjcwYWQ3ZDUwNjQ5ZmU0MWZiNWM0
NmIwN2RmMzhiYTdiNzMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9t
YWMvQVZGb3VuZGF0aW9uU1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvbWFj
L0FWRm91bmRhdGlvblNQSS5oCkBAIC0yOCw2ICsyOCwxMCBAQAogI2ltcG9ydCA8b2JqYy9ydW50
aW1lLmg+CiAjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KIAorI2lmIEhBVkUoQVZDT05URU5U
S0VZU0VTU0lPTikKKyNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkNvbnRlbnRLZXlTZXNzaW9uLmg+
CisjZW5kaWYKKwogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAKICNpbXBvcnQgPEFWRm91
bmRhdGlvbi9BVkFzc2V0Q2FjaGVfUHJpdmF0ZS5oPgpAQCAtMTU0LDcgKzE1OCw2IEBAIHR5cGVk
ZWYgTlNfRU5VTShOU1VJbnRlZ2VyLCBBVlN0cmVhbURhdGFQYXJzZXJTdHJlYW1EYXRhRmxhZ3Mp
IHsKIE5TX0FTU1VNRV9OT05OVUxMX0VORAogCiAjaWYgSEFWRShBVkNPTlRFTlRLRVlTRVNTSU9O
KQotI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWQ29udGVudEtleVNlc3Npb24uaD4KIEBpbnRlcmZh
Y2UgQVZTdHJlYW1EYXRhUGFyc2VyICgpIDxBVkNvbnRlbnRLZXlSZWNpcGllbnQ+CiBAZW5kCiAj
ZW5kaWYKQEAgLTE2Myw2ICsxNjYsMTggQEAgTlNfQVNTVU1FX05PTk5VTExfRU5ECiAKICNlbmRp
ZiAvLyBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogCisjaWYgSEFWRShBVkNPTlRFTlRLRVlTRVNT
SU9OKQorQGludGVyZmFjZSBBVkNvbnRlbnRLZXlSZXBvcnRHcm91cCA6IE5TT2JqZWN0CitAcHJv
cGVydHkgKHJlYWRvbmx5LCBudWxsYWJsZSkgTlNEYXRhICpjb250ZW50UHJvdGVjdGlvblNlc3Np
b25JZGVudGlmaWVyOworLSAodm9pZClleHBpcmU7CistICh2b2lkKXByb2Nlc3NDb250ZW50S2V5
UmVxdWVzdFdpdGhJZGVudGlmaWVyOihudWxsYWJsZSBpZClpZGVudGlmaWVyIGluaXRpYWxpemF0
aW9uRGF0YToobnVsbGFibGUgTlNEYXRhICopaW5pdGlhbGl6YXRpb25EYXRhIG9wdGlvbnM6KG51
bGxhYmxlIE5TRGljdGlvbmFyeTxOU1N0cmluZyAqLCBpZD4gKilvcHRpb25zOworQGVuZAorCitA
aW50ZXJmYWNlIEFWQ29udGVudEtleVNlc3Npb24gKEFWQ29udGVudEtleUdyb3VwX1N1cHBvcnQp
CistIChub25udWxsIEFWQ29udGVudEtleVJlcG9ydEdyb3VwICopbWFrZUNvbnRlbnRLZXlHcm91
cDsKK0BlbmQKKyNlbmRpZiAvLyBIQVZFKEFWQ09OVEVOVEtFWVNFU1NJT04pCisKICNpZiBQTEFU
Rk9STShNQUMpICYmICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogTlNfQVNTVU1FX05PTk5VTExf
QkVHSU4KIEBpbnRlcmZhY2UgQVZTdHJlYW1EYXRhUGFyc2VyIChBVlN0cmVhbURhdGFQYXJzZXJQ
cml2YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDZhNDc4NWJmY2ZmMDdmYTdkZGRmZDM2N2MzZTBlNzBkYmQ1ZThmMDcuLjcx
NWZiNDdkZjViYWY3YmJjM2I0MGYwMzNlMWFmMmEyZTMyYjlkNzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIyOTUxLDYgKzIy
OTUxLDggQEAKIAkJCQlBNUM5NzRDRjExNDg1RkYxMDA2NkYyQUIgLyogS2V5RXZlbnRDb2NvYS5o
ICovLAogCQkJCUE1Qzk3NEQwMTE0ODVGRjEwMDY2RjJBQiAvKiBLZXlFdmVudENvY29hLm1tICov
LAogCQkJCTFBNDgzMkIyMUE5NTNCQTYwMDhCNERGRSAvKiBMb2NhbGl6ZWRTdHJpbmdzQ29jb2Eu
bW0gKi8sCisJCQkJQ0Q1MzU1NTcyMzc0OEU1OTAwQTYxM0JEIC8qIE1lZGlhVG9vbGJveFNvZnRM
aW5rLmNwcCAqLywKKwkJCQlDRDUzNTU1NjIzNzQ4RTU5MDBBNjEzQkQgLyogTWVkaWFUb29sYm94
U29mdExpbmsuaCAqLywKIAkJCQlDNTNEMzkzMzFDOTc4OTJEMDA3RjNBRTkgLyogTUlNRVR5cGVS
ZWdpc3RyeUNvY29hLm1tICovLAogCQkJCUExOUQ5MzQ5MUFBMTFCMUUwMEI0NkMyNCAvKiBOZXR3
b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5oICovLAogCQkJCUExOUQ5MzQ4MUFBMTFCMUUwMEI0
NkMyNCAvKiBOZXR3b3JrRXh0ZW5zaW9uQ29udGVudEZpbHRlci5tbSAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUlu
c3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5n
QVZGT2JqQy5oCmluZGV4IGE4NmU5N2M0NGM3ZjU5MzU1ZGVmOGY4Yzc4ZTRlNzZiZTk4NmNjOTQu
LmQ0MTY5MjNlMDQ2NzcxZmZhNjRhNDRmNWM0ZDA2MGYzZjBmYTI2NTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3Rh
bmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWlu
Z0FWRk9iakMuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorT0JKQ19DTEFTUyBBVkNvbnRlbnRL
ZXlSZXBvcnRHcm91cDsKIE9CSkNfQ0xBU1MgQVZDb250ZW50S2V5UmVxdWVzdDsKIE9CSkNfQ0xB
U1MgQVZDb250ZW50S2V5U2Vzc2lvbjsKIE9CSkNfQ0xBU1MgTlNEYXRhOwpAQCAtNDYsOCArNDcs
MjQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ0RNSW5zdGFuY2VTZXNzaW9uRmFpclBs
YXlTdHJlYW1pbmdBVkZPYmpDOwogc3RydWN0IENETU1lZGlhQ2FwYWJpbGl0eTsKIAotY2xhc3Mg
Q0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMgZmluYWwgOiBwdWJsaWMgQ0RNSW5z
dGFuY2UsIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5n
QVZGT2JqQz4geworY2xhc3MgQVZDb250ZW50S2V5U2Vzc2lvbkRlbGVnYXRlQ2xpZW50IHsKIHB1
YmxpYzoKKyAgICB2aXJ0dWFsIH5BVkNvbnRlbnRLZXlTZXNzaW9uRGVsZWdhdGVDbGllbnQoKSA9
IGRlZmF1bHQ7CisgICAgdmlydHVhbCB2b2lkIGRpZFByb3ZpZGVSZXF1ZXN0KEFWQ29udGVudEtl
eVJlcXVlc3QqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZFByb3ZpZGVSZXF1ZXN0cyhWZWN0
b3I8UmV0YWluUHRyPEFWQ29udGVudEtleVJlcXVlc3Q+PiYmKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGRpZFByb3ZpZGVSZW5ld2luZ1JlcXVlc3QoQVZDb250ZW50S2V5UmVxdWVzdCopID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkUHJvdmlkZVBlcnNpc3RhYmxlUmVxdWVzdChBVkNvbnRlbnRL
ZXlSZXF1ZXN0KikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsVG9Qcm92aWRlUmVxdWVz
dChBVkNvbnRlbnRLZXlSZXF1ZXN0KiwgTlNFcnJvciopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdERpZFN1Y2NlZWQoQVZDb250ZW50S2V5UmVxdWVzdCopID0gMDsKKyAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkUmV0cnlSZXF1ZXN0Rm9yUmVhc29uKEFWQ29udGVudEtleVJlcXVlc3QqLCBO
U1N0cmluZyopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2Vzc2lvbklkZW50aWZpZXJDaGFuZ2Vk
KE5TRGF0YSopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ3JvdXBTZXNzaW9uSWRlbnRpZmllckNo
YW5nZWQoQVZDb250ZW50S2V5UmVwb3J0R3JvdXAqLCBOU0RhdGEqKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIG91dHB1dE9ic2N1cmVkRHVlVG9JbnN1ZmZpY2llbnRFeHRlcm5hbFByb3RlY3Rpb25D
aGFuZ2VkKGJvb2wpID0gMDsKK307CisKK2NsYXNzIENETUluc3RhbmNlRmFpclBsYXlTdHJlYW1p
bmdBVkZPYmpDIGZpbmFsIDogcHVibGljIENETUluc3RhbmNlLCBwdWJsaWMgQVZDb250ZW50S2V5
U2Vzc2lvbkRlbGVnYXRlQ2xpZW50LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8Q0RNSW5zdGFuY2VG
YWlyUGxheVN0cmVhbWluZ0FWRk9iakM+IHsKK3B1YmxpYzoKKyAgICBDRE1JbnN0YW5jZUZhaXJQ
bGF5U3RyZWFtaW5nQVZGT2JqQygpOwogICAgIHZpcnR1YWwgfkNETUluc3RhbmNlRmFpclBsYXlT
dHJlYW1pbmdBVkZPYmpDKCkgPSBkZWZhdWx0OwogCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNQ
ZXJzaXN0YWJsZVN0YXRlKCk7CkBAIC03MCwyMCArODcsMzYgQEAgcHVibGljOgogICAgIE5TVVJM
ICpzdG9yYWdlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9zdG9yYWdlVVJMLmdldCgpOyB9CiAgICAg
Ym9vbCBwZXJzaXN0ZW50U3RhdGVBbGxvd2VkKCkgY29uc3QgeyByZXR1cm4gbV9wZXJzaXN0ZW50
U3RhdGVBbGxvd2VkOyB9CiAgICAgU2hhcmVkQnVmZmVyKiBzZXJ2ZXJDZXJ0aWZpY2F0ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fc2VydmVyQ2VydGlmaWNhdGUuZ2V0KCk7IH0KKyAgICBBVkNvbnRlbnRL
ZXlTZXNzaW9uKiBjb250ZW50S2V5U2Vzc2lvbigpIHsgcmV0dXJuIG1fc2Vzc2lvbi5nZXQoKTsg
fQogCi0gICAgdm9pZCBvdXRwdXRPYnNjdXJlZER1ZVRvSW5zdWZmaWNpZW50RXh0ZXJuYWxQcm90
ZWN0aW9uQ2hhbmdlZChib29sKTsKKyAgICAvLyBBVkNvbnRlbnRLZXlTZXNzaW9uRGVsZWdhdGVD
bGllbnQKKyAgICB2b2lkIGRpZFByb3ZpZGVSZXF1ZXN0KEFWQ29udGVudEtleVJlcXVlc3QqKSBm
aW5hbDsKKyAgICB2b2lkIGRpZFByb3ZpZGVSZXF1ZXN0cyhWZWN0b3I8UmV0YWluUHRyPEFWQ29u
dGVudEtleVJlcXVlc3Q+PiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpZFByb3ZpZGVSZW5ld2luZ1Jl
cXVlc3QoQVZDb250ZW50S2V5UmVxdWVzdCopIGZpbmFsOworICAgIHZvaWQgZGlkUHJvdmlkZVBl
cnNpc3RhYmxlUmVxdWVzdChBVkNvbnRlbnRLZXlSZXF1ZXN0KikgZmluYWw7CisgICAgdm9pZCBk
aWRGYWlsVG9Qcm92aWRlUmVxdWVzdChBVkNvbnRlbnRLZXlSZXF1ZXN0KiwgTlNFcnJvciopIGZp
bmFsOworICAgIHZvaWQgcmVxdWVzdERpZFN1Y2NlZWQoQVZDb250ZW50S2V5UmVxdWVzdCopIGZp
bmFsOworICAgIGJvb2wgc2hvdWxkUmV0cnlSZXF1ZXN0Rm9yUmVhc29uKEFWQ29udGVudEtleVJl
cXVlc3QqLCBOU1N0cmluZyopIGZpbmFsOworICAgIHZvaWQgc2Vzc2lvbklkZW50aWZpZXJDaGFu
Z2VkKE5TRGF0YSopIGZpbmFsOworICAgIHZvaWQgZ3JvdXBTZXNzaW9uSWRlbnRpZmllckNoYW5n
ZWQoQVZDb250ZW50S2V5UmVwb3J0R3JvdXAqLCBOU0RhdGEqKSBmaW5hbDsKKyAgICB2b2lkIG91
dHB1dE9ic2N1cmVkRHVlVG9JbnN1ZmZpY2llbnRFeHRlcm5hbFByb3RlY3Rpb25DaGFuZ2VkKGJv
b2wpIGZpbmFsOwogCiAgICAgdXNpbmcgS2V5cyA9IFZlY3RvcjxSZWY8U2hhcmVkQnVmZmVyPj47
CiAgICAgQ0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDKiBzZXNzaW9u
Rm9yS2V5SURzKGNvbnN0IEtleXMmKSBjb25zdDsKKyAgICBDRE1JbnN0YW5jZVNlc3Npb25GYWly
UGxheVN0cmVhbWluZ0FWRk9iakMqIHNlc3Npb25Gb3JHcm91cChBVkNvbnRlbnRLZXlSZXBvcnRH
cm91cCopIGNvbnN0OwogCiBwcml2YXRlOgorICAgIHZvaWQgZW5zdXJlU2Vzc2lvbigpOworCisg
ICAgUmV0YWluUHRyPEFWQ29udGVudEtleVNlc3Npb24+IG1fc2Vzc2lvbjsKKyAgICBSZXRhaW5Q
dHI8V2ViQ29yZUZQU0NvbnRlbnRLZXlTZXNzaW9uRGVsZWdhdGU+IG1fZGVsZWdhdGU7CiAgICAg
UmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbV9zZXJ2ZXJDZXJ0aWZpY2F0ZTsKICAgICBib29sIG1fcGVy
c2lzdGVudFN0YXRlQWxsb3dlZCB7IHRydWUgfTsKICAgICBSZXRhaW5QdHI8TlNVUkw+IG1fc3Rv
cmFnZVVSTDsKICAgICBWZWN0b3I8V2Vha1B0cjxDRE1JbnN0YW5jZVNlc3Npb25GYWlyUGxheVN0
cmVhbWluZ0FWRk9iakM+PiBtX3Nlc3Npb25zOwogfTsKIAotY2xhc3MgQ0RNSW5zdGFuY2VTZXNz
aW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDIGZpbmFsIDogcHVibGljIENETUluc3RhbmNlU2Vz
c2lvbiwgcHVibGljIENhbk1ha2VXZWFrUHRyPENETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3Ry
ZWFtaW5nQVZGT2JqQz4geworY2xhc3MgQ0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1p
bmdBVkZPYmpDIGZpbmFsIDogcHVibGljIENETUluc3RhbmNlU2Vzc2lvbiwgcHVibGljIEFWQ29u
dGVudEtleVNlc3Npb25EZWxlZ2F0ZUNsaWVudCwgcHVibGljIENhbk1ha2VXZWFrUHRyPENETUlu
c3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQz4gewogcHVibGljOgogICAgIENE
TUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQyhSZWY8Q0RNSW5zdGFuY2VG
YWlyUGxheVN0cmVhbWluZ0FWRk9iakM+JiYpOwogICAgIHZpcnR1YWwgfkNETUluc3RhbmNlU2Vz
c2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQygpOwpAQCAtOTgsMTkgKzEzMSwyMiBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRDbGllbnQoV2Vha1B0cjxDRE1JbnN0YW5jZVNlc3Npb25DbGllbnQ+
JiYpIGZpbmFsOwogICAgIHZvaWQgY2xlYXJDbGllbnQoKSBmaW5hbDsKIAotICAgIHZvaWQgZGlk
UHJvdmlkZVJlcXVlc3QoQVZDb250ZW50S2V5UmVxdWVzdCopOwotICAgIHZvaWQgZGlkUHJvdmlk
ZVJlcXVlc3RzKFZlY3RvcjxSZXRhaW5QdHI8QVZDb250ZW50S2V5UmVxdWVzdD4+JiYpOwotICAg
IHZvaWQgZGlkUHJvdmlkZVJlbmV3aW5nUmVxdWVzdChBVkNvbnRlbnRLZXlSZXF1ZXN0Kik7Ci0g
ICAgdm9pZCBkaWRQcm92aWRlUGVyc2lzdGFibGVSZXF1ZXN0KEFWQ29udGVudEtleVJlcXVlc3Qq
KTsKLSAgICB2b2lkIGRpZEZhaWxUb1Byb3ZpZGVSZXF1ZXN0KEFWQ29udGVudEtleVJlcXVlc3Qq
LCBOU0Vycm9yKik7Ci0gICAgdm9pZCByZXF1ZXN0RGlkU3VjY2VlZChBVkNvbnRlbnRLZXlSZXF1
ZXN0Kik7Ci0gICAgYm9vbCBzaG91bGRSZXRyeVJlcXVlc3RGb3JSZWFzb24oQVZDb250ZW50S2V5
UmVxdWVzdCosIE5TU3RyaW5nKik7Ci0gICAgdm9pZCBzZXNzaW9uSWRlbnRpZmllckNoYW5nZWQo
TlNEYXRhKik7Ci0gICAgdm9pZCBvdXRwdXRPYnNjdXJlZER1ZVRvSW5zdWZmaWNpZW50RXh0ZXJu
YWxQcm90ZWN0aW9uQ2hhbmdlZChib29sKTsKKyAgICAvLyBBVkNvbnRlbnRLZXlTZXNzaW9uRGVs
ZWdhdGVDbGllbnQKKyAgICB2b2lkIGRpZFByb3ZpZGVSZXF1ZXN0KEFWQ29udGVudEtleVJlcXVl
c3QqKSBmaW5hbDsKKyAgICB2b2lkIGRpZFByb3ZpZGVSZXF1ZXN0cyhWZWN0b3I8UmV0YWluUHRy
PEFWQ29udGVudEtleVJlcXVlc3Q+PiYmKSBmaW5hbDsKKyAgICB2b2lkIGRpZFByb3ZpZGVSZW5l
d2luZ1JlcXVlc3QoQVZDb250ZW50S2V5UmVxdWVzdCopIGZpbmFsOworICAgIHZvaWQgZGlkUHJv
dmlkZVBlcnNpc3RhYmxlUmVxdWVzdChBVkNvbnRlbnRLZXlSZXF1ZXN0KikgZmluYWw7CisgICAg
dm9pZCBkaWRGYWlsVG9Qcm92aWRlUmVxdWVzdChBVkNvbnRlbnRLZXlSZXF1ZXN0KiwgTlNFcnJv
ciopIGZpbmFsOworICAgIHZvaWQgcmVxdWVzdERpZFN1Y2NlZWQoQVZDb250ZW50S2V5UmVxdWVz
dCopIGZpbmFsOworICAgIGJvb2wgc2hvdWxkUmV0cnlSZXF1ZXN0Rm9yUmVhc29uKEFWQ29udGVu
dEtleVJlcXVlc3QqLCBOU1N0cmluZyopIGZpbmFsOworICAgIHZvaWQgc2Vzc2lvbklkZW50aWZp
ZXJDaGFuZ2VkKE5TRGF0YSopIGZpbmFsOworICAgIHZvaWQgZ3JvdXBTZXNzaW9uSWRlbnRpZmll
ckNoYW5nZWQoQVZDb250ZW50S2V5UmVwb3J0R3JvdXAqLCBOU0RhdGEqKSBmaW5hbDsKKyAgICB2
b2lkIG91dHB1dE9ic2N1cmVkRHVlVG9JbnN1ZmZpY2llbnRFeHRlcm5hbFByb3RlY3Rpb25DaGFu
Z2VkKGJvb2wpIGZpbmFsOwogCiAgICAgdXNpbmcgS2V5cyA9IENETUluc3RhbmNlRmFpclBsYXlT
dHJlYW1pbmdBVkZPYmpDOjpLZXlzOwogICAgIEtleXMga2V5SURzKCk7Ci0gICAgQVZDb250ZW50
S2V5U2Vzc2lvbiogY29udGVudEtleVNlc3Npb24oKSB7IHJldHVybiBtX3Nlc3Npb24uZ2V0KCk7
IH0KKyAgICBBVkNvbnRlbnRLZXlTZXNzaW9uKiBjb250ZW50S2V5U2Vzc2lvbigpIHsgcmV0dXJu
IG1fc2Vzc2lvbiA/IG1fc2Vzc2lvbi5nZXQoKSA6IG1faW5zdGFuY2UtPmNvbnRlbnRLZXlTZXNz
aW9uKCk7IH0KKyAgICBBVkNvbnRlbnRLZXlSZXBvcnRHcm91cCogY29udGVudEtleVJlcG9ydEdy
b3VwKCkgeyByZXR1cm4gbV9ncm91cC5nZXQoKTsgfQogCiAgICAgc3RydWN0IFJlcXVlc3Qgewog
ICAgICAgICBBdG9tU3RyaW5nIGluaXRUeXBlOwpAQCAtMTE5LDcgKzE1NSw3IEBAIHB1YmxpYzoK
ICAgICB9OwogCiBwcml2YXRlOgotICAgIEFWQ29udGVudEtleVNlc3Npb24qIGVuc3VyZVNlc3Np
b24oKTsKKyAgICBib29sIGVuc3VyZVNlc3Npb25Pckdyb3VwKCk7CiAgICAgYm9vbCBpc0xpY2Vu
c2VUeXBlU3VwcG9ydGVkKExpY2Vuc2VUeXBlKSBjb25zdDsKIAogICAgIEtleVN0YXR1c1ZlY3Rv
ciBrZXlTdGF0dXNlcygpIGNvbnN0OwpAQCAtMTI3LDYgKzE2Myw3IEBAIHByaXZhdGU6CiAgICAg
QVZDb250ZW50S2V5UmVxdWVzdCogbGFzdEtleVJlcXVlc3QoKSBjb25zdDsKIAogICAgIFJlZjxD
RE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQz4gbV9pbnN0YW5jZTsKKyAgICBSZXRh
aW5QdHI8QVZDb250ZW50S2V5UmVwb3J0R3JvdXA+IG1fZ3JvdXA7CiAgICAgUmV0YWluUHRyPEFW
Q29udGVudEtleVNlc3Npb24+IG1fc2Vzc2lvbjsKICAgICBPcHRpb25hbDxSZXF1ZXN0PiBtX2N1
cnJlbnRSZXF1ZXN0OwogICAgIFJldGFpblB0cjxXZWJDb3JlRlBTQ29udGVudEtleVNlc3Npb25E
ZWxlZ2F0ZT4gbV9kZWxlZ2F0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdB
VkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0KaW5kZXggMDNjNWRk
ZGFhMzJhMTQ2YjdmMzkyYWVmYzFlMGUxM2FiM2ZkODBhMy4uYTcxNGVmMjQ3NDYxZTFlNzUzYTAy
NTRlZTMwMzE3NTBlMDAxMTI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FW
Rk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0KQEAgLTQ4LDE0
ICs0OCwxNSBAQAogCiBzdGF0aWMgY29uc3QgTlNTdHJpbmcgKlBsYXliYWNrU2Vzc2lvbklkS2V5
ID0gQCJQbGF5YmFja1Nlc3Npb25JRCI7CiBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCBJbml0aWFs
aXphdGlvbkRhdGFUeXBlS2V5ID0gQCJJbml0aWFsaXphdGlvbkRhdGFUeXBlIjsKK3N0YXRpYyBO
U1N0cmluZyAqIGNvbnN0IENvbnRlbnRLZXlSZXBvcnRHcm91cEtleSA9IEAiQ29udGVudEtleVJl
cG9ydEdyb3VwIjsKIAogQGludGVyZmFjZSBXZWJDb3JlRlBTQ29udGVudEtleVNlc3Npb25EZWxl
Z2F0ZSA6IE5TT2JqZWN0PEFWQ29udGVudEtleVNlc3Npb25EZWxlZ2F0ZT4gewotICAgIFdlYkNv
cmU6OkNETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQyogX3BhcmVudDsK
KyAgICBXZWJDb3JlOjpBVkNvbnRlbnRLZXlTZXNzaW9uRGVsZWdhdGVDbGllbnQqIF9wYXJlbnQ7
CiB9CiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJDb3JlRlBTQ29udGVudEtleVNlc3Npb25E
ZWxlZ2F0ZQotLSAoaWQpaW5pdFdpdGhQYXJlbnQ6KFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lv
bkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQyAqKXBhcmVudAorLSAoaWQpaW5pdFdpdGhQYXJlbnQ6
KFdlYkNvcmU6OkFWQ29udGVudEtleVNlc3Npb25EZWxlZ2F0ZUNsaWVudCAqKXBhcmVudAogewog
ICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwpAQCAt
MTQxLDExICsxNDIsNTIgQEAgLSAodm9pZCljb250ZW50S2V5U2Vzc2lvbkNvbnRlbnRQcm90ZWN0
aW9uU2Vzc2lvbklkZW50aWZpZXJEaWRDaGFuZ2U6KEFWQ29udGVudEsKICAgICBpZiAoX3BhcmVu
dCkKICAgICAgICAgX3BhcmVudC0+c2Vzc2lvbklkZW50aWZpZXJDaGFuZ2VkKHNlc3Npb24uY29u
dGVudFByb3RlY3Rpb25TZXNzaW9uSWRlbnRpZmllcik7CiB9CistICh2b2lkKWNvbnRlbnRLZXlT
ZXNzaW9uOihBVkNvbnRlbnRLZXlTZXNzaW9uICopc2Vzc2lvbiBjb250ZW50UHJvdGVjdGlvblNl
c3Npb25JZGVudGlmaWVyRGlkQ2hhbmdlRm9yS2V5R3JvdXA6KG51bGxhYmxlIEFWQ29udGVudEtl
eVJlcG9ydEdyb3VwICopcmVwb3J0R3JvdXAKK3sKKyAgICAvLyBGSVhNRTogUmVtb3ZlIGFmdGVy
IHJkYXI6Ly81NzQzMDc0NyBpcyBmaXhlZAorICAgIFtzZWxmIGNvbnRlbnRLZXlTZXNzaW9uOnNl
c3Npb24gY29udGVudFByb3RlY3Rpb25TZXNzaW9uSWRlbnRpZmllckRpZENoYW5nZUZvclJlcG9y
dEdyb3VwOnJlcG9ydEdyb3VwXTsKK30KKworLSAodm9pZCljb250ZW50S2V5U2Vzc2lvbjooQVZD
b250ZW50S2V5U2Vzc2lvbiAqKXNlc3Npb24gY29udGVudFByb3RlY3Rpb25TZXNzaW9uSWRlbnRp
ZmllckRpZENoYW5nZUZvclJlcG9ydEdyb3VwOihudWxsYWJsZSBBVkNvbnRlbnRLZXlSZXBvcnRH
cm91cCAqKXJlcG9ydEdyb3VwCit7CisgICAgVU5VU0VEX1BBUkFNKHNlc3Npb24pOworICAgIGlm
IChfcGFyZW50KQorICAgICAgICBfcGFyZW50LT5ncm91cFNlc3Npb25JZGVudGlmaWVyQ2hhbmdl
ZChyZXBvcnRHcm91cCwgcmVwb3J0R3JvdXAuY29udGVudFByb3RlY3Rpb25TZXNzaW9uSWRlbnRp
Zmllcik7Cit9CiAKIEBlbmQKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitDRE1JbnN0YW5jZUZh
aXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6Q0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9i
akMoKQoreworICAgIGlmIChQQUw6OmdldEFWQ29udGVudEtleVJlcG9ydEdyb3VwQ2xhc3MoKSkK
KyAgICAgICAgZW5zdXJlU2Vzc2lvbigpOworfQorCit2b2lkIENETUluc3RhbmNlRmFpclBsYXlT
dHJlYW1pbmdBVkZPYmpDOjplbnN1cmVTZXNzaW9uKCkKK3sKKyAgICBpZiAobV9zZXNzaW9uKQor
ICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIVBBTDo6Y2FuTG9hZF9BVkZvdW5kYXRpb25fQVZD
b250ZW50S2V5U3lzdGVtRmFpclBsYXlTdHJlYW1pbmcoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgYXV0byBzdG9yYWdlVVJMID0gdGhpcy0+c3RvcmFnZVVSTCgpOworICAgIGlmICghcGVyc2lz
dGVudFN0YXRlQWxsb3dlZCgpIHx8ICFzdG9yYWdlVVJMKQorICAgICAgICBtX3Nlc3Npb24gPSBb
UEFMOjpnZXRBVkNvbnRlbnRLZXlTZXNzaW9uQ2xhc3MoKSBjb250ZW50S2V5U2Vzc2lvbldpdGhL
ZXlTeXN0ZW06QVZDb250ZW50S2V5U3lzdGVtRmFpclBsYXlTdHJlYW1pbmddOworICAgIGVsc2UK
KyAgICAgICAgbV9zZXNzaW9uID0gW1BBTDo6Z2V0QVZDb250ZW50S2V5U2Vzc2lvbkNsYXNzKCkg
Y29udGVudEtleVNlc3Npb25XaXRoS2V5U3lzdGVtOkFWQ29udGVudEtleVN5c3RlbUZhaXJQbGF5
U3RyZWFtaW5nIHN0b3JhZ2VEaXJlY3RvcnlBdFVSTDpzdG9yYWdlVVJMXTsKKworICAgIGlmICgh
bV9zZXNzaW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIW1fZGVsZWdhdGUpCisgICAg
ICAgIG1fZGVsZWdhdGUgPSBhZG9wdE5TKFtbV2ViQ29yZUZQU0NvbnRlbnRLZXlTZXNzaW9uRGVs
ZWdhdGUgYWxsb2NdIGluaXRXaXRoUGFyZW50OnRoaXNdKTsKKworICAgIFttX3Nlc3Npb24gc2V0
RGVsZWdhdGU6bV9kZWxlZ2F0ZS5nZXQoKSBxdWV1ZTpkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgp
XTsKK30KKwogY2xhc3MgQ0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpD
OjpVcGRhdGVSZXNwb25zZUNvbGxlY3RvciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6CkBAIC0zMDYsNiArMzQ4LDcxIEBAIGNvbnN0IFN0cmluZyYgQ0RNSW5zdGFuY2VG
YWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OmtleVN5c3RlbSgpIGNvbnN0CiAgICAgcmV0dXJuIGtl
eVN5c3RlbTsKIH0KIAorc3RhdGljIEFWQ29udGVudEtleVJlcG9ydEdyb3VwKiBncm91cEZvclJl
cXVlc3QoQVZDb250ZW50S2V5UmVxdWVzdCogcmVxdWVzdCkKK3sKKyAgICBBU1NFUlQoW3JlcXVl
c3QgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihvcHRpb25zKV0pOworICAgIEFMTE9XX05F
V19BUElfV0lUSE9VVF9HVUFSRFNfQkVHSU4KKyAgICBhdXRvIGdyb3VwID0gKEFWQ29udGVudEtl
eVJlcG9ydEdyb3VwKilbcmVxdWVzdC5vcHRpb25zIHZhbHVlRm9yS2V5OkNvbnRlbnRLZXlSZXBv
cnRHcm91cEtleV07CisgICAgQUxMT1dfTkVXX0FQSV9XSVRIT1VUX0dVQVJEU19FTkQKKyAgICBy
ZXR1cm4gZ3JvdXA7Cit9CisKK3ZvaWQgQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9i
akM6OmRpZFByb3ZpZGVSZXF1ZXN0KEFWQ29udGVudEtleVJlcXVlc3QgKnJlcXVlc3QpCit7Cisg
ICAgaWYgKGF1dG8qIHNlc3Npb24gPSBzZXNzaW9uRm9yR3JvdXAoZ3JvdXBGb3JSZXF1ZXN0KHJl
cXVlc3QpKSkKKyAgICAgICAgc2Vzc2lvbi0+ZGlkUHJvdmlkZVJlcXVlc3QocmVxdWVzdCk7Cit9
CisKK3ZvaWQgQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OmRpZFByb3ZpZGVS
ZXF1ZXN0cyhWZWN0b3I8UmV0YWluUHRyPEFWQ29udGVudEtleVJlcXVlc3Q+PiYmIHJlcXVlc3Rz
KQoreworICAgIGlmIChhdXRvKiBzZXNzaW9uID0gc2Vzc2lvbkZvckdyb3VwKGdyb3VwRm9yUmVx
dWVzdChyZXF1ZXN0cy5maXJzdCgpLmdldCgpKSkpCisgICAgICAgIHNlc3Npb24tPmRpZFByb3Zp
ZGVSZXF1ZXN0cyhXVEZNb3ZlKHJlcXVlc3RzKSk7Cit9CisKK3ZvaWQgQ0RNSW5zdGFuY2VGYWly
UGxheVN0cmVhbWluZ0FWRk9iakM6OmRpZFByb3ZpZGVSZW5ld2luZ1JlcXVlc3QoQVZDb250ZW50
S2V5UmVxdWVzdCAqcmVxdWVzdCkKK3sKKyAgICBpZiAoYXV0byogc2Vzc2lvbiA9IHNlc3Npb25G
b3JHcm91cChncm91cEZvclJlcXVlc3QocmVxdWVzdCkpKQorICAgICAgICBzZXNzaW9uLT5kaWRQ
cm92aWRlUmVuZXdpbmdSZXF1ZXN0KHJlcXVlc3QpOworfQorCit2b2lkIENETUluc3RhbmNlRmFp
clBsYXlTdHJlYW1pbmdBVkZPYmpDOjpkaWRQcm92aWRlUGVyc2lzdGFibGVSZXF1ZXN0KEFWQ29u
dGVudEtleVJlcXVlc3QgKnJlcXVlc3QpCit7CisgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBzZXNz
aW9uRm9yR3JvdXAoZ3JvdXBGb3JSZXF1ZXN0KHJlcXVlc3QpKSkKKyAgICAgICAgc2Vzc2lvbi0+
ZGlkUHJvdmlkZVBlcnNpc3RhYmxlUmVxdWVzdChyZXF1ZXN0KTsKK30KKwordm9pZCBDRE1JbnN0
YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6ZGlkRmFpbFRvUHJvdmlkZVJlcXVlc3QoQVZD
b250ZW50S2V5UmVxdWVzdCAqcmVxdWVzdCwgTlNFcnJvciAqZXJyb3IpCit7CisgICAgaWYgKGF1
dG8qIHNlc3Npb24gPSBzZXNzaW9uRm9yR3JvdXAoZ3JvdXBGb3JSZXF1ZXN0KHJlcXVlc3QpKSkK
KyAgICAgICAgc2Vzc2lvbi0+ZGlkRmFpbFRvUHJvdmlkZVJlcXVlc3QocmVxdWVzdCwgZXJyb3Ip
OworfQorCit2b2lkIENETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpyZXF1ZXN0
RGlkU3VjY2VlZChBVkNvbnRlbnRLZXlSZXF1ZXN0ICpyZXF1ZXN0KQoreworICAgIGlmIChhdXRv
KiBzZXNzaW9uID0gc2Vzc2lvbkZvckdyb3VwKGdyb3VwRm9yUmVxdWVzdChyZXF1ZXN0KSkpCisg
ICAgICAgIHNlc3Npb24tPnJlcXVlc3REaWRTdWNjZWVkKHJlcXVlc3QpOworfQorCitib29sIENE
TUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpzaG91bGRSZXRyeVJlcXVlc3RGb3JS
ZWFzb24oQVZDb250ZW50S2V5UmVxdWVzdCAqcmVxdWVzdCwgTlNTdHJpbmcgKnJlYXNvbikKK3sK
KyAgICBpZiAoYXV0byogc2Vzc2lvbiA9IHNlc3Npb25Gb3JHcm91cChncm91cEZvclJlcXVlc3Qo
cmVxdWVzdCkpKQorICAgICAgICByZXR1cm4gc2Vzc2lvbi0+c2hvdWxkUmV0cnlSZXF1ZXN0Rm9y
UmVhc29uKHJlcXVlc3QsIHJlYXNvbik7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIENE
TUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpzZXNzaW9uSWRlbnRpZmllckNoYW5n
ZWQoTlNEYXRhICpzZXNzaW9uSWRlbnRpZmllcikKK3sKKyAgICBVTlVTRURfUEFSQU0oc2Vzc2lv
bklkZW50aWZpZXIpOworICAgIC8vIE5vLW9wLiBJZiB3ZSBhcmUgZ2V0dGluZyB0aGlzIGNhbGxi
YWNrLCB0aGVyZSBhcmUgb3V0c3RhbmRpbmcgQVZDb250ZW50S2V5UmVxdWVzdEdyb3VwcyB3aGlj
aCBhcmUgbWFuYWdpbmcgdGhlaXIgb3duCisgICAgLy8gc2Vzc2lvbiBpZGVudGlmaWVycy4KK30K
Kwordm9pZCBDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6Z3JvdXBTZXNzaW9u
SWRlbnRpZmllckNoYW5nZWQoQVZDb250ZW50S2V5UmVwb3J0R3JvdXAqIGdyb3VwLCBOU0RhdGEg
KnNlc3Npb25JZGVudGlmaWVyKQoreworICAgIGlmIChhdXRvKiBzZXNzaW9uID0gc2Vzc2lvbkZv
ckdyb3VwKGdyb3VwKSkKKyAgICAgICAgc2Vzc2lvbi0+Z3JvdXBTZXNzaW9uSWRlbnRpZmllckNo
YW5nZWQoZ3JvdXAsIHNlc3Npb25JZGVudGlmaWVyKTsKK30KKwogdm9pZCBDRE1JbnN0YW5jZUZh
aXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6b3V0cHV0T2JzY3VyZWREdWVUb0luc3VmZmljaWVudEV4
dGVybmFsUHJvdGVjdGlvbkNoYW5nZWQoYm9vbCBvYnNjdXJlZCkKIHsKICAgICBmb3IgKGF1dG8m
IHNlc3Npb25JbnRlcmZhY2UgOiBtX3Nlc3Npb25zKSB7CkBAIC0zMjksOSArNDM2LDIwIEBAIENE
TUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQyogQ0RNSW5zdGFuY2VGYWly
UGxheVN0cmVhbWluZ0FWRk9iakM6CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK0NETUluc3Rh
bmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQyogQ0RNSW5zdGFuY2VGYWlyUGxheVN0
cmVhbWluZ0FWRk9iakM6OnNlc3Npb25Gb3JHcm91cChBVkNvbnRlbnRLZXlSZXBvcnRHcm91cCog
Z3JvdXApIGNvbnN0Cit7CisgICAgYXV0byBpbmRleCA9IG1fc2Vzc2lvbnMuZmluZE1hdGNoaW5n
KFtncm91cF0gKGF1dG8gc2Vzc2lvbikgeworICAgICAgICByZXR1cm4gc2Vzc2lvbiAmJiBzZXNz
aW9uLT5jb250ZW50S2V5UmVwb3J0R3JvdXAoKSA9PSBncm91cDsKKyAgICB9KTsKKworICAgIGlm
IChpbmRleCAhPSBub3RGb3VuZCkKKyAgICAgICAgcmV0dXJuIG1fc2Vzc2lvbnNbaW5kZXhdLmdl
dCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCiBDRE1JbnN0YW5jZVNlc3Npb25GYWlyUGxh
eVN0cmVhbWluZ0FWRk9iakM6OkNETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZG
T2JqQyhSZWY8Q0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakM+JiYgaW5zdGFuY2Up
CiAgICAgOiBtX2luc3RhbmNlKFdURk1vdmUoaW5zdGFuY2UpKQotICAgICwgbV9kZWxlZ2F0ZShb
W1dlYkNvcmVGUFNDb250ZW50S2V5U2Vzc2lvbkRlbGVnYXRlIGFsbG9jXSBpbml0V2l0aFBhcmVu
dDp0aGlzXSkKKyAgICAsIG1fZGVsZWdhdGUoYWRvcHROUyhbW1dlYkNvcmVGUFNDb250ZW50S2V5
U2Vzc2lvbkRlbGVnYXRlIGFsbG9jXSBpbml0V2l0aFBhcmVudDp0aGlzXSkpCiB7CiB9CiAKQEAg
LTM3NCw4ICs0OTIsMTIgQEAgc3RhdGljIEF0b21TdHJpbmcgaW5pdFR5cGVGb3JSZXF1ZXN0KEFW
Q29udGVudEtleVJlcXVlc3QqIHJlcXVlc3QpCiBBTExPV19ORVdfQVBJX1dJVEhPVVRfR1VBUkRT
X0JFR0lOCiAgICAgYXV0byBuc0luaXRUeXBlID0gKE5TU3RyaW5nKilbcmVxdWVzdC5vcHRpb25z
IHZhbHVlRm9yS2V5OkluaXRpYWxpemF0aW9uRGF0YVR5cGVLZXldOwogQUxMT1dfTkVXX0FQSV9X
SVRIT1VUX0dVQVJEU19FTkQKLSAgICBpZiAoIVtuc0luaXRUeXBlIGlzS2luZE9mQ2xhc3M6TlNT
dHJpbmcuY2xhc3NdKQotICAgICAgICByZXR1cm4gZW1wdHlBdG9tKCk7CisgICAgaWYgKCFbbnNJ
bml0VHlwZSBpc0tpbmRPZkNsYXNzOk5TU3RyaW5nLmNsYXNzXSkgeworICAgICAgICAvLyBUaGUg
b25seSB3YXkgZm9yIGFuIGluaXRpYWxpemF0aW9uIGRhdGEgdG8gZW5kIHVwIGhlcmUgd2l0aG91
dCBhbiBhcHByb3ByaWF0ZSBrZXkgaW4KKyAgICAgICAgLy8gdGhlIG9wdGlvbnMgZGljdGlvbmFy
eSBpcyBmb3IgdGhhdCBkYXRhIHRvIGhhdmUgYmVlbiBnZW5lcmF0ZWQgYnkgdGhlIEFWU3RyZWFt
RGF0YVBhcnNlcgorICAgICAgICAvLyBhbmQgY3VycmVudGx5LCB0aGUgb25seSBpbml0aWFsaXph
dGlvbiBkYXRhIHN1cHBvcnRlZCBieSB0aGUgcGFyc2VyIGlzIHRoZSAnc2luZicga2luZC4KKyAg
ICAgICAgcmV0dXJuIENETVByaXZhdGVGYWlyUGxheVN0cmVhbWluZzo6c2luZk5hbWUoKTsKKyAg
ICB9CiAKICAgICByZXR1cm4gQXRvbVN0cmluZyhuc0luaXRUeXBlKTsKIH0KQEAgLTQwNSw3ICs1
MjcsNyBAQCB2b2lkIENETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6
cmVxdWVzdExpY2Vuc2UoTGljZW5zZVR5cGUgbGljZQogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgaWYgKCFlbnN1cmVTZXNzaW9uKCkpIHsKKyAgICBpZiAoIWVuc3VyZVNlc3Npb25Pckdy
b3VwKCkpIHsKICAgICAgICAgY2FsbGJhY2soU2hhcmVkQnVmZmVyOjpjcmVhdGUoKSwgZW1wdHlT
dHJpbmcoKSwgZmFsc2UsIEZhaWxlZCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC00Mjks
NyArNTUxLDE0IEBAIHZvaWQgQ0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZP
YmpDOjpyZXF1ZXN0TGljZW5zZShMaWNlbnNlVHlwZSBsaWNlCiAgICAgfQogCiAgICAgbV9yZXF1
ZXN0TGljZW5zZUNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7Ci0gICAgW21fc2Vzc2lvbiBw
cm9jZXNzQ29udGVudEtleVJlcXVlc3RXaXRoSWRlbnRpZmllcjppZGVudGlmaWVyLmdldCgpIGlu
aXRpYWxpemF0aW9uRGF0YTppbml0aWFsaXphdGlvbkRhdGEuZ2V0KCkgb3B0aW9uczpAeyBJbml0
aWFsaXphdGlvbkRhdGFUeXBlS2V5OiAoTlNTdHJpbmcqKWluaXREYXRhVHlwZSB9XTsKKworICAg
IGlmIChtX2dyb3VwKSB7CisgICAgICAgIGF1dG8qIG9wdGlvbnMgPSBAeyBDb250ZW50S2V5UmVw
b3J0R3JvdXBLZXk6IG1fZ3JvdXAuZ2V0KCksIEluaXRpYWxpemF0aW9uRGF0YVR5cGVLZXk6IChO
U1N0cmluZyopaW5pdERhdGFUeXBlIH07CisgICAgICAgIFttX2dyb3VwIHByb2Nlc3NDb250ZW50
S2V5UmVxdWVzdFdpdGhJZGVudGlmaWVyOmlkZW50aWZpZXIuZ2V0KCkgaW5pdGlhbGl6YXRpb25E
YXRhOmluaXRpYWxpemF0aW9uRGF0YS5nZXQoKSBvcHRpb25zOm9wdGlvbnNdOworICAgIH0gZWxz
ZSB7CisgICAgICAgIGF1dG8qIG9wdGlvbnMgPSBAeyBJbml0aWFsaXphdGlvbkRhdGFUeXBlS2V5
OiAoTlNTdHJpbmcqKWluaXREYXRhVHlwZSB9OworICAgICAgICBbbV9zZXNzaW9uIHByb2Nlc3ND
b250ZW50S2V5UmVxdWVzdFdpdGhJZGVudGlmaWVyOmlkZW50aWZpZXIuZ2V0KCkgaW5pdGlhbGl6
YXRpb25EYXRhOmluaXRpYWxpemF0aW9uRGF0YS5nZXQoKSBvcHRpb25zOm9wdGlvbnNdOworICAg
IH0KIH0KIAogc3RhdGljIGJvb2wgaXNFcXVhbChjb25zdCBTaGFyZWRCdWZmZXImIGRhdGEsIGNv
bnN0IFN0cmluZyYgdmFsdWUpCkBAIC02NTYsOCArNzg1LDEwIEBAIHZvaWQgQ0RNSW5zdGFuY2VT
ZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpjbG9zZVNlc3Npb24oY29uc3QgU3RyaW5n
JiwgQ2xvCiAKIHZvaWQgQ0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpD
OjpyZW1vdmVTZXNzaW9uRGF0YShjb25zdCBTdHJpbmcmIHNlc3Npb25JZCwgTGljZW5zZVR5cGUg
bGljZW5zZVR5cGUsIFJlbW92ZVNlc3Npb25EYXRhQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKLSAg
ICAvLyBGSVhNRTogV2Ugc2hvdWxkIGJlIGFibGUgdG8gZXhwaXJlIGluZGl2aWR1YWwgQVZDb250
ZW50S2V5UmVxdWVzdHMgcmF0aGVyIHRoYW4gdGhlIGVudGlyZSBBVkNvbnRlbnRLZXlTZXNzaW9u
LgotICAgIFttX3Nlc3Npb24gZXhwaXJlXTsKKyAgICBpZiAobV9ncm91cCkKKyAgICAgICAgW21f
Z3JvdXAgZXhwaXJlXTsKKyAgICBlbHNlCisgICAgICAgIFttX3Nlc3Npb24gZXhwaXJlXTsKIAog
ICAgIGlmIChsaWNlbnNlVHlwZSA9PSBMaWNlbnNlVHlwZTo6UGVyc2lzdGVudFVzYWdlUmVjb3Jk
KSB7CiAgICAgICAgIGF1dG8qIHN0b3JhZ2VVUkwgPSBtX2luc3RhbmNlLT5zdG9yYWdlVVJMKCk7
CkBAIC05ODgsNiArMTExOSwxMiBAQCB2b2lkIENETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3Ry
ZWFtaW5nQVZGT2JqQzo6c2Vzc2lvbklkZW50aWZpZXJDaGFuZ2VkKE5TRGF0YQogICAgIG1fY2xp
ZW50LT5zZXNzaW9uSWRDaGFuZ2VkKG1fc2Vzc2lvbklkKTsKIH0KIAordm9pZCBDRE1JbnN0YW5j
ZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6Omdyb3VwU2Vzc2lvbklkZW50aWZpZXJD
aGFuZ2VkKEFWQ29udGVudEtleVJlcG9ydEdyb3VwKiBncm91cCwgTlNEYXRhICpzZXNzaW9uSWRl
bnRpZmllcikKK3sKKyAgICBVTlVTRURfUEFSQU0oZ3JvdXApOworICAgIHNlc3Npb25JZGVudGlm
aWVyQ2hhbmdlZChzZXNzaW9uSWRlbnRpZmllcik7Cit9CisKIHN0YXRpYyBhdXRvIHJlcXVlc3RT
dGF0dXNUb0NETVN0YXR1cyhBVkNvbnRlbnRLZXlSZXF1ZXN0U3RhdHVzIHN0YXR1cykKIHsKICAg
ICBzd2l0Y2ggKHN0YXR1cykgewpAQCAtMTAzNCwxMCArMTE3MSwxNSBAQCB2b2lkIENETUluc3Rh
bmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6b3V0cHV0T2JzY3VyZWREdWVUb0lu
c3VmZmljaWVudAogICAgICAgICBtX2NsaWVudC0+dXBkYXRlS2V5U3RhdHVzZXMoa2V5U3RhdHVz
ZXMoKSk7CiB9CiAKLUFWQ29udGVudEtleVNlc3Npb24qIENETUluc3RhbmNlU2Vzc2lvbkZhaXJQ
bGF5U3RyZWFtaW5nQVZGT2JqQzo6ZW5zdXJlU2Vzc2lvbigpCitib29sIENETUluc3RhbmNlU2Vz
c2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6ZW5zdXJlU2Vzc2lvbk9yR3JvdXAoKQogewot
ICAgIGlmIChtX3Nlc3Npb24pCi0gICAgICAgIHJldHVybiBtX3Nlc3Npb24uZ2V0KCk7CisgICAg
aWYgKG1fc2Vzc2lvbiB8fCBtX2dyb3VwKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlm
IChhdXRvKiBzZXNzaW9uID0gbV9pbnN0YW5jZS0+Y29udGVudEtleVNlc3Npb24oKSkgeworICAg
ICAgICBtX2dyb3VwID0gW3Nlc3Npb24gbWFrZUNvbnRlbnRLZXlHcm91cF07CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KIAogICAgIGF1dG8gc3RvcmFnZVVSTCA9IG1faW5zdGFuY2UtPnN0
b3JhZ2VVUkwoKTsKICAgICBpZiAoIW1faW5zdGFuY2UtPnBlcnNpc3RlbnRTdGF0ZUFsbG93ZWQo
KSB8fCAhc3RvcmFnZVVSTCkKQEAgLTEwNDYsMTAgKzExODgsMTAgQEAgQVZDb250ZW50S2V5U2Vz
c2lvbiogQ0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjplbnN1cmVT
ZXNzaW9uKCkKICAgICAgICAgbV9zZXNzaW9uID0gW1BBTDo6Z2V0QVZDb250ZW50S2V5U2Vzc2lv
bkNsYXNzKCkgY29udGVudEtleVNlc3Npb25XaXRoS2V5U3lzdGVtOkFWQ29udGVudEtleVN5c3Rl
bUZhaXJQbGF5U3RyZWFtaW5nIHN0b3JhZ2VEaXJlY3RvcnlBdFVSTDpzdG9yYWdlVVJMXTsKIAog
ICAgIGlmICghbV9zZXNzaW9uKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgW21fc2Vzc2lvbiBzZXREZWxlZ2F0ZTptX2RlbGVnYXRlLmdldCgp
IHF1ZXVlOmRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCldOwotICAgIHJldHVybiBtX3Nlc3Npb24u
Z2V0KCk7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIGJvb2wgQ0RNSW5zdGFuY2VTZXNzaW9uRmFp
clBsYXlTdHJlYW1pbmdBVkZPYmpDOjppc0xpY2Vuc2VUeXBlU3VwcG9ydGVkKExpY2Vuc2VUeXBl
IGxpY2Vuc2VUeXBlKSBjb25zdAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>