<?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>175983</bug_id>
          
          <creation_ts>2017-08-25 05:26:41 -0700</creation_ts>
          <short_desc>[EME][GStreamer] Connect CDM to GStreamer</short_desc>
          <delta_ts>2018-01-09 01:27:31 -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>
          
          <blocked>181289</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Xabier Rodríguez Calvar">calvaris</reporter>
          <assigned_to name="Xabier Rodríguez Calvar">calvaris</assigned_to>
          <cc>annulen</cc>
    
    <cc>buildbot</cc>
    
    <cc>calvaris</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>pnormand</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zandobersek+ews</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1342369</commentid>
    <comment_count>0</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2017-08-25 05:26:41 -0700</bug_when>
    <thetext>[EME][GStreamer] Connect CDM to GStreamer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342370</commentid>
    <comment_count>1</comment_count>
      <attachid>319074</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2017-08-25 05:37:14 -0700</bug_when>
    <thetext>Created attachment 319074
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342371</commentid>
    <comment_count>2</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-25 05:39:49 -0700</bug_when>
    <thetext>Attachment 319074 did not pass style-queue:


ERROR: Source/WebCore/ChangeLog:30:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 1 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342393</commentid>
    <comment_count>3</comment_count>
      <attachid>319081</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2017-08-25 08:51:57 -0700</bug_when>
    <thetext>Created attachment 319081
Patch

Style correction</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342640</commentid>
    <comment_count>4</comment_count>
      <attachid>319081</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-26 01:29:03 -0700</bug_when>
    <thetext>Comment on attachment 319081
Patch

Clearing flags on attachment: 319081

Committed r221224: &lt;http://trac.webkit.org/changeset/221224&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342641</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-08-26 01:29:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1342642</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-08-26 01:30:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/34096610&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1385798</commentid>
    <comment_count>7</comment_count>
      <attachid>319081</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2018-01-04 07:17:32 -0800</bug_when>
    <thetext>Comment on attachment 319081
Patch

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

&gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1053
&gt; +#if ENABLE(ENCRYPTED_MEDIA)

This ifdef is embedded in another one which is totally unrelated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1387145</commentid>
    <comment_count>8</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2018-01-09 00:51:29 -0800</bug_when>
    <thetext>(In reply to Philippe Normand from comment #7)
&gt; Comment on attachment 319081 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=319081&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1053
&gt; &gt; +#if ENABLE(ENCRYPTED_MEDIA)
&gt; 
&gt; This ifdef is embedded in another one which is totally unrelated.

You&apos;re absolutely right. I&apos;ll correct this build issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1387146</commentid>
    <comment_count>9</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2018-01-09 00:54:40 -0800</bug_when>
    <thetext>(In reply to Xabier Rodríguez Calvar from comment #8)
&gt; (In reply to Philippe Normand from comment #7)
&gt; &gt; Comment on attachment 319081 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=319081&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1053
&gt; &gt; &gt; +#if ENABLE(ENCRYPTED_MEDIA)
&gt; &gt; 
&gt; &gt; This ifdef is embedded in another one which is totally unrelated.
&gt; 
&gt; You&apos;re absolutely right. I&apos;ll correct this build issue.

No need, I took care of it. See cloned bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1387152</commentid>
    <comment_count>10</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2018-01-09 01:27:31 -0800</bug_when>
    <thetext>(In reply to Philippe Normand from comment #9)
&gt; (In reply to Xabier Rodríguez Calvar from comment #8)
&gt; &gt; (In reply to Philippe Normand from comment #7)
&gt; &gt; &gt; Comment on attachment 319081 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=319081&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:1053
&gt; &gt; &gt; &gt; +#if ENABLE(ENCRYPTED_MEDIA)
&gt; &gt; &gt; 
&gt; &gt; &gt; This ifdef is embedded in another one which is totally unrelated.
&gt; &gt; 
&gt; &gt; You&apos;re absolutely right. I&apos;ll correct this build issue.
&gt; 
&gt; No need, I took care of it. See cloned bug

Yes, I just saw it. It&apos;s a pity that bugzilla didn&apos;t show any comment about a cloned bug here.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319074</attachid>
            <date>2017-08-25 05:37:14 -0700</date>
            <delta_ts>2017-08-25 08:51:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-175983-20170825143712.patch</filename>
            <type>text/plain</type>
            <size>28025</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjRiMTE1NTFiYmYxNDQ2
ODViNWExNWZlZTY1NGFkM2MyZTdmMzY5ZC4uZjIyMTUyODg0OTYxNDAzYzc4ZDVhZmVjYTAxOGQ2
Yjg5NTcwNmMyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDE3LTA4LTI1ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0VN
RV1bR1N0cmVhbWVyXSBDb25uZWN0IENETSB0byBHU3RyZWFtZXIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTk4MworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgc3RpbGwgYSB2ZXJzaW9uIHRo
YXQgd2lsbCBuZWVkIHNvbWUgY2hhbmdlcyBmb3Igc29tZSBvdGhlcgorICAgICAgICB1c2UgY2Fz
ZXMgYnV0IGl0IHNob3VsZCBiZSBlbm91Z2ggdG8gYmVnaW4gd2l0aCBzb21lIHBhc3NlcyBpbiB0
aGUKKyAgICAgICAgdGVzdHMgYW5kIHNvbWUgYmFzaWMgdXNlIGNhc2VzLgorCisgICAgICAgIFdl
IHVzZSB0aGUgYXR0YWNoIENETUluc3RhbmNlIGludGVyZmFjZSBpbiB0aGUgcHJpdmF0ZSBwbGF5
ZXIgdG8KKyAgICAgICAgZ2V0IHRoZSBpbnN0YW5jZSBpbiB0aW1lIGZvciB0aGUgaW5pdGlhbGl6
YXRpb25EYXRhRW5jb3VudGVyZWQKKyAgICAgICAgZXZlbnQsIHdoaWNoIGlzIGhhbmRsZWQgd2hl
biB0aGUgZGVtdXhlciByZXBvcnRzIHN5bmNocm9ub3VzbHkgdGhlCisgICAgICAgIGV2ZW50cyBl
dmVuIGJlZm9yZSBjb25maWd1cmluZyB0aGUgZGVjcnlwdG9ycy4gV2Ugd2FpdCB0aGVyZSBpbgor
ICAgICAgICBjYXNlIHdlIGRvbid0IGhhdmUgdGhlIENETUluc3RhbmNlIGF0dGFjaGVkICh3aGlj
aCBjb250YWlucyBpbmZvCisgICAgICAgIGFib3V0IHRoZSBrZXkgc3lzdGVtIG5vdykgYW5kIHdo
ZW4gd2UgZ2V0IGl0IHdlIHJlcG9ydCBpdCBiYWNrIHRvCisgICAgICAgIHRoZSBkZW11eGVyIGFu
ZCBjb250aW51ZSBzZW5kaW5nIHRoZSBldmVudC4KKworICAgICAgICBXZSBhbHNvIGhhbmRsZWQg
dGhlIGV2ZW50cyB3aGVuIGhhbmRsZWQgYnkgdGhlIGRlY3J5cHRvcnMgYnV0IGZvcgorICAgICAg
ICBub3cgdGhpcyB3aWxsIHJlbWFpbiBhIEZJWE1FLiBUaGUgZXZlbnRzIGhhbmRsZWQgYnkgdGhl
CisgICAgICAgIEFwcGVuZFBpcGVsaW5lIHdpbGwgZW5kIHVwIGhlcmUgdG9vIGZvciBub3cuCisK
KyAgICAgICAgVGhlIENETSBpbnN0YW5jZSBpcyBjcmVhdGVkIHdpdGggdGhlIGtleSBzeXN0ZW0g
YmVjYXVzZSBzb21lIENETXMKKyAgICAgICAgY2FuIGhhbmRsZSBtb3JlIHRoYW4gb25lLCBub3Qg
Q2xlYXJLZXkgeWV0IGJ1dCBvdGhlcnMgaW4gdGhlCisgICAgICAgIChuZWFyKSBmdXR1cmUuCisK
KyAgICAgICAgTW9ja0NETUZhY3RvcnkgaXMgYWRhcHRlZCB0byB0aGUgY2hhbmdlcyBhcyBleHBl
Y3RlZC4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIE1vZHVs
ZXMvZW5jcnlwdGVkbWVkaWEvQ0RNLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNETTo6Q0RNKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1GYWN0b3J5Lmg6CisgICAgICAg
ICogcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNSW5zdGFuY2UuaDoKKyAgICAgICAgKiBwbGF0
Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDRE1GYWN0b3J5Q2xlYXJLZXk6OmNyZWF0ZUNETSk6CisgICAgICAgIChXZWJDb3Jl
OjpDRE1JbnN0YW5jZUNsZWFyS2V5OjprZXlTeXN0ZW0gY29uc3QpOgorICAgICAgICAqIHBsYXRm
b3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5Lmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmhhbmRsZU1l
c3NhZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lckJhc2U6On5NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlKToK
KyAgICAgICAgKFdlYkNvcmU6OmV4dHJhY3RFdmVudHNBbmRTeXN0ZW1zRnJvbU1lc3NhZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6aGFuZGxl
U3luY01lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZTo6Y2RtSW5zdGFuY2VBdHRhY2hlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpjZG1JbnN0YW5jZURldGFjaGVkKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmF0dGVtcHRUb0RlY3J5
cHRXaXRoSW5zdGFuY2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyQmFzZTo6YXR0ZW1wdFRvRGVjcnlwdFdpdGhMb2NhbEluc3RhbmNlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmRpc3BhdGNoRGVjcnlw
dGlvbktleSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJC
YXNlOjpoYW5kbGVQcm90ZWN0aW9uRXZlbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjphcHBlbmRQaXBlbGluZUVsZW1lbnRNZXNzYWdlQ2FsbGJhY2spOgorICAg
ICAgICAoV2ViQ29yZTo6QXBwZW5kUGlwZWxpbmU6OkFwcGVuZFBpcGVsaW5lKToKKyAgICAgICAg
KFdlYkNvcmU6OkFwcGVuZFBpcGVsaW5lOjp+QXBwZW5kUGlwZWxpbmUpOgorICAgICAgICAoV2Vi
Q29yZTo6QXBwZW5kUGlwZWxpbmU6OmhhbmRsZU5lZWRDb250ZXh0U3luY01lc3NhZ2UpOgorICAg
ICAgICAoV2ViQ29yZTo6QXBwZW5kUGlwZWxpbmU6OmhhbmRsZUVsZW1lbnRNZXNzYWdlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGVuZFBpcGVsaW5lOjpoYW5kbGVBcHBzcmNOZWVkRGF0YVJlY2Vp
dmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZFBpcGVsaW5lOjphcHBzaW5rTmV3U2FtcGxl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVs
aW5lLmg6CisgICAgICAgICogdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpNb2NrQ0RNRmFjdG9yeTo6Y3JlYXRlQ0RNKToKKyAgICAgICAgKFdlYkNvcmU6Ok1v
Y2tDRE1JbnN0YW5jZTo6a2V5U3lzdGVtIGNvbnN0KToKKyAgICAgICAgKiB0ZXN0aW5nL01vY2tD
RE1GYWN0b3J5Lmg6CisKIDIwMTctMDgtMjQgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtFTUVdIEltcGxlbWVudCBIVE1MTWVkaWFFbGVtZW50IGRpc3Bh
dGNoIG9mIHRoZSBvbmVuY3J5cHRlZCBldmVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9l
bmNyeXB0ZWRtZWRpYS9DRE0uY3BwCmluZGV4IDk4YTg0Y2FjOGIxMWMxMDdmMzJjMmM5YWUwZGFj
NDY0Yzc0OTY2ZjAuLjYwZThhYWRiYzI2NzI5YmQ5Y2MwOWQ0ZTkxYjAxMTNkMzM4NmI4Y2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETS5jcHAKQEAgLTY0
LDcgKzY0LDcgQEAgQ0RNOjpDRE0oRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGtl
eVN5c3RlbSkKICAgICBBU1NFUlQoc3VwcG9ydHNLZXlTeXN0ZW0oa2V5U3lzdGVtKSk7CiAgICAg
Zm9yIChhdXRvKiBmYWN0b3J5IDogQ0RNRmFjdG9yeTo6cmVnaXN0ZXJlZEZhY3RvcmllcygpKSB7
CiAgICAgICAgIGlmIChmYWN0b3J5LT5zdXBwb3J0c0tleVN5c3RlbShrZXlTeXN0ZW0pKSB7Ci0g
ICAgICAgICAgICBtX3ByaXZhdGUgPSBmYWN0b3J5LT5jcmVhdGVDRE0oKTsKKyAgICAgICAgICAg
IG1fcHJpdmF0ZSA9IGZhY3RvcnktPmNyZWF0ZUNETShrZXlTeXN0ZW0pOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1GYWN0b3J5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9lbmNyeXB0ZWRtZWRpYS9DRE1GYWN0b3J5LmgKaW5kZXggMWI3ZTA3YmE4MTZmYmY2MGI5OWM2
NDczNmI0MzUwMjJiMzViODE1Yy4uYmQ0ODM2NzQ2MDcxOWQ5ZjI5MzBiNGQxNmQyYWE4NTkwMTZh
NzY2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEv
Q0RNRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlh
L0NETUZhY3RvcnkuaApAQCAtNDAsNyArNDAsNyBAQCBjbGFzcyBDRE1Qcml2YXRlOwogY2xhc3Mg
Q0RNRmFjdG9yeSB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+Q0RNRmFjdG9yeSgpIHsgfTsKLSAg
ICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxDRE1Qcml2YXRlPiBjcmVhdGVDRE0oKSA9IDA7Cisg
ICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8Q0RNUHJpdmF0ZT4gY3JlYXRlQ0RNKGNvbnN0IFN0
cmluZyYpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNLZXlTeXN0ZW0oY29uc3QgU3Ry
aW5nJikgPSAwOwogCiAgICAgc3RhdGljIFZlY3RvcjxDRE1GYWN0b3J5Kj4mIHJlZ2lzdGVyZWRG
YWN0b3JpZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRl
ZG1lZGlhL0NETUluc3RhbmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRt
ZWRpYS9DRE1JbnN0YW5jZS5oCmluZGV4IDBlNDRjMzAzNWJlMzg1YjM5NTlmYTIyODQ0MDM3YjM4
ODRlYzA0Y2MuLmE3MjM4ZjRkOGY2ZTVkOTU2Yjc2ZjI0NWJmNGQxYmVlZmMxMzQxNjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETUluc3RhbmNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNSW5zdGFu
Y2UuaApAQCAtOTQsNiArOTQsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVNl
c3Npb25EYXRhKGNvbnN0IFN0cmluZyYgc2Vzc2lvbklkLCBMaWNlbnNlVHlwZSwgUmVtb3ZlU2Vz
c2lvbkRhdGFDYWxsYmFjaykgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHN0b3JlUmVjb3JkT2ZL
ZXlVc2FnZShjb25zdCBTdHJpbmcmIHNlc3Npb25JZCkgPSAwOworCisgICAgdmlydHVhbCBjb25z
dCBTdHJpbmcmIGtleVN5c3RlbSgpIGNvbnN0ID0gMDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlh
L2NsZWFya2V5L0NETUNsZWFyS2V5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5
cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5LmNwcAppbmRleCA4M2U3MzM3YjdiOWQ1ZDYz
NzQ3M2E0NWEwY2M2YjUyMzZlYzYxMTYzLi5lNzhmYzgxNDBmYjFkMTE3MjU4NzI1ZjdhOTBkMjJm
ZGEzMzA3Mjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRt
ZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXkuY3BwCkBAIC00Nyw4ICs0Nywx
MyBAQCBDRE1GYWN0b3J5Q2xlYXJLZXkmIENETUZhY3RvcnlDbGVhcktleTo6c2luZ2xldG9uKCkK
IENETUZhY3RvcnlDbGVhcktleTo6Q0RNRmFjdG9yeUNsZWFyS2V5KCkgPSBkZWZhdWx0OwogQ0RN
RmFjdG9yeUNsZWFyS2V5Ojp+Q0RNRmFjdG9yeUNsZWFyS2V5KCkgPSBkZWZhdWx0OwogCi1zdGQ6
OnVuaXF1ZV9wdHI8Q0RNUHJpdmF0ZT4gQ0RNRmFjdG9yeUNsZWFyS2V5OjpjcmVhdGVDRE0oKQor
c3RkOjp1bmlxdWVfcHRyPENETVByaXZhdGU+IENETUZhY3RvcnlDbGVhcktleTo6Y3JlYXRlQ0RN
KGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQogeworI2lmZGVmIE5ERUJVRworICAgIFVOVVNFRF9Q
QVJBTShrZXlTeXN0ZW0pOworI2Vsc2UKKyAgICBBU1NFUlQoc3VwcG9ydHNLZXlTeXN0ZW0oa2V5
U3lzdGVtKSk7CisjZW5kaWYKICAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPENETVByaXZhdGU+
KG5ldyBDRE1Qcml2YXRlQ2xlYXJLZXkpOwogfQogCkBAIC0yMDgsNiArMjEzLDEzIEBAIHZvaWQg
Q0RNSW5zdGFuY2VDbGVhcktleTo6c3RvcmVSZWNvcmRPZktleVVzYWdlKGNvbnN0IFN0cmluZyYp
CiB7CiB9CiAKK2NvbnN0IFN0cmluZyYgQ0RNSW5zdGFuY2VDbGVhcktleTo6a2V5U3lzdGVtKCkg
Y29uc3QKK3sKKyAgICBzdGF0aWMgY29uc3QgU3RyaW5nIHNfa2V5U3lzdGVtKCJvcmcudzMuY2xl
YXJrZXkiKTsKKworICAgIHJldHVybiBzX2tleVN5c3RlbTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFy
S2V5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9D
RE1DbGVhcktleS5oCmluZGV4IGU2NzhlMzc1M2JlZWE1YzA5NTM4Zjk1NzZiODQyMWVkZjk3ZDBl
NzYuLjFjNjRhMmRiNzA2NGIyZmM3MWRiNmM0YjY4Njc4ZGNhNDZlYmU5Y2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFy
S2V5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJr
ZXkvQ0RNQ2xlYXJLZXkuaApAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IH5DRE1GYWN0b3J5Q2xlYXJLZXkoKTsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxDRE1Qcml2YXRl
PiBjcmVhdGVDRE0oKSBvdmVycmlkZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q0RNUHJpdmF0ZT4g
Y3JlYXRlQ0RNKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwogICAgIGJvb2wgc3VwcG9ydHNLZXlT
eXN0ZW0oY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CkBAIC04OSw2ICs4OSw4
IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsb3NlU2Vzc2lvbihjb25zdCBTdHJpbmcmLCBDbG9zZVNl
c3Npb25DYWxsYmFjaykgb3ZlcnJpZGU7CiAgICAgdm9pZCByZW1vdmVTZXNzaW9uRGF0YShjb25z
dCBTdHJpbmcmLCBMaWNlbnNlVHlwZSwgUmVtb3ZlU2Vzc2lvbkRhdGFDYWxsYmFjaykgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBzdG9yZVJlY29yZE9mS2V5VXNhZ2UoY29uc3QgU3RyaW5nJikgb3ZlcnJp
ZGU7CisKKyAgICBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSgpIGNvbnN0IGZpbmFsOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmNwcAppbmRleCAxYjE1ZTgyNWM2YzZmZmM1MTA2MWQ1MTFkYzE2OGVlMDJl
Zjk4NmVhLi4wZjJiODQ3ZmQ3OWVhNzI3OTAyZTI2ZmQ1OWQ2OGVjM2MyMWY4MGEwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMTA1MCw2
ICsxMDUwLDE0IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVNZXNz
YWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAgICAgICAgICAgcHJvY2Vzc01wZWdUc1Nl
Y3Rpb24oc2VjdGlvbik7CiAgICAgICAgICAgICAgICAgZ3N0X21wZWd0c19zZWN0aW9uX3VucmVm
KHNlY3Rpb24pOwogICAgICAgICAgICAgfQorI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisg
ICAgICAgICAgICBlbHNlIGlmIChnc3Rfc3RydWN0dXJlX2hhc19uYW1lKHN0cnVjdHVyZSwgImRy
bS1rZXktbmVlZGVkIikpIHsKKyAgICAgICAgICAgICAgICBHU1RfREVCVUcoImRybS1rZXktbmVl
ZGVkIG1lc3NhZ2UgZnJvbSAlcyIsIEdTVF9NRVNTQUdFX1NSQ19OQU1FKG1lc3NhZ2UpKTsKKyAg
ICAgICAgICAgICAgICBHUmVmUHRyPEdzdEV2ZW50PiBldmVudDsKKyAgICAgICAgICAgICAgICBn
c3Rfc3RydWN0dXJlX2dldChzdHJ1Y3R1cmUsICJldmVudCIsIEdTVF9UWVBFX0VWRU5ULCAmZXZl
bnQub3V0UHRyKCksIG51bGxwdHIpOworICAgICAgICAgICAgICAgIGhhbmRsZVByb3RlY3Rpb25F
dmVudChldmVudC5nZXQoKSk7CisgICAgICAgICAgICB9CisjZW5kaWYKICAgICAgICAgfQogI2Vu
ZGlmCiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lckJhc2UuY3BwCmluZGV4IGY3ZDJjZDE2ZDRkMDJmOWM4MjU2YzljNjhjMWQw
NzZhZmExYTcyOTkuLjcyMTIxOWJhNjViMjk4ZTQ4MWI2ZGQ5NTRhZWYxMTJjMjBkZWUyNDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5j
cHAKQEAgLTQzLDEwICs0MywxOCBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJh
cy5oPgorI2luY2x1ZGUgPHd0Zi9VVUlELmg+CiAKICNpbmNsdWRlIDxnc3QvYXVkaW8vc3RyZWFt
dm9sdW1lLmg+CiAjaW5jbHVkZSA8Z3N0L3ZpZGVvL2dzdHZpZGVvbWV0YS5oPgogCisjaWYgRU5B
QkxFKEVOQ1JZUFRFRF9NRURJQSkKKyNpbmNsdWRlICJDRE1JbnN0YW5jZS5oIgorI2luY2x1ZGUg
IkdTdHJlYW1lckVNRVV0aWxpdGllcy5oIgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorI2lu
Y2x1ZGUgIldlYktpdENsZWFyS2V5RGVjcnlwdG9yR1N0cmVhbWVyLmgiCisjZW5kaWYKKwogI2lm
IFVTRShHU1RSRUFNRVJfR0wpCiAjaWYgR19CWVRFX09SREVSID09IEdfTElUVExFX0VORElBTgog
I2RlZmluZSBHU1RfR0xfQ0FQU19GT1JNQVQgInsgQkdSeCwgQkdSQSB9IgpAQCAtMTEwLDEyICsx
MTgsNiBAQAogI2VuZGlmCiAjZW5kaWYgLy8gVVNFKFRFWFRVUkVfTUFQUEVSX0dMKQogCi0jaWYg
RU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLSNpbmNsdWRlICJHU3RyZWFtZXJFTUVVdGlsaXRpZXMu
aCIKLSNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKLSNpbmNsdWRlICJXZWJLaXRDbGVhcktleURl
Y3J5cHRvckdTdHJlYW1lci5oIgotI2VuZGlmCi0KIEdTVF9ERUJVR19DQVRFR09SWSh3ZWJraXRf
bWVkaWFfcGxheWVyX2RlYnVnKTsKICNkZWZpbmUgR1NUX0NBVF9ERUZBVUxUIHdlYmtpdF9tZWRp
YV9wbGF5ZXJfZGVidWcKIApAQCAtMjQwLDYgKzI0Miw5IEBAIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lckJhc2U6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UoTWVkaWFQbGF5ZXIq
IHBsCiAKIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6On5NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXJCYXNlKCkKIHsKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgIG1f
cHJvdGVjdGlvbkNvbmRpdGlvbi5ub3RpZnlBbGwoKTsKKyNlbmRpZgogICAgIG1fbm90aWZpZXIt
PmludmFsaWRhdGUoKTsKIAogICAgIGlmIChtX3ZpZGVvU2luaykgewpAQCAtMjczLDYgKzI3OCwz
MSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnNldFBpcGVsaW5lKEdz
dEVsZW1lbnQqIHBpcGVsaW5lKQogICAgIG1fcGlwZWxpbmUgPSBwaXBlbGluZTsKIH0KIAorI2lm
IEVOQUJMRShFTkNSWVBURURfTUVESUEpCitzdGF0aWMgc3RkOjpwYWlyPFZlY3RvcjxHUmVmUHRy
PEdzdEV2ZW50Pj4sIFZlY3RvcjxTdHJpbmc+PiBleHRyYWN0RXZlbnRzQW5kU3lzdGVtc0Zyb21N
ZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCit7CisgICAgY29uc3QgR3N0U3RydWN0dXJlKiBz
dHJ1Y3R1cmUgPSBnc3RfbWVzc2FnZV9nZXRfc3RydWN0dXJlKG1lc3NhZ2UpOworCisgICAgY29u
c3QgR1ZhbHVlKiBzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNWYWx1ZSA9IGdzdF9zdHJ1
Y3R1cmVfZ2V0X3ZhbHVlKHN0cnVjdHVyZSwgInN0cmVhbS1lbmNyeXB0aW9uLXN5c3RlbXMiKTsK
KyAgICBBU1NFUlQoc3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRTeXN0ZW1zVmFsdWUgJiYgR19WQUxV
RV9IT0xEUyhzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNWYWx1ZSwgR19UWVBFX1NUUlYp
KTsKKyAgICBjb25zdCBjaGFyKiogc3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRTeXN0ZW1zID0gcmVp
bnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKio+KGdfdmFsdWVfZ2V0X2JveGVkKHN0cmVhbUVuY3J5
cHRpb25BbGxvd2VkU3lzdGVtc1ZhbHVlKSk7CisgICAgQVNTRVJUKHN0cmVhbUVuY3J5cHRpb25B
bGxvd2VkU3lzdGVtcyk7CisgICAgVmVjdG9yPFN0cmluZz4gc3RyZWFtRW5jcnlwdGlvbkFsbG93
ZWRTeXN0ZW1zVmVjdG9yOworICAgIHVuc2lnbmVkIGk7CisgICAgZm9yIChpID0gMDsgc3RyZWFt
RW5jcnlwdGlvbkFsbG93ZWRTeXN0ZW1zW2ldOyArK2kpCisgICAgICAgIHN0cmVhbUVuY3J5cHRp
b25BbGxvd2VkU3lzdGVtc1ZlY3Rvci5hcHBlbmQoc3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRTeXN0
ZW1zW2ldKTsKKworICAgIGNvbnN0IEdWYWx1ZSogc3RyZWFtRW5jcnlwdGlvbkV2ZW50c0xpc3Qg
PSBnc3Rfc3RydWN0dXJlX2dldF92YWx1ZShzdHJ1Y3R1cmUsICJzdHJlYW0tZW5jcnlwdGlvbi1l
dmVudHMiKTsKKyAgICBBU1NFUlQoc3RyZWFtRW5jcnlwdGlvbkV2ZW50c0xpc3QgJiYgR1NUX1ZB
TFVFX0hPTERTX0xJU1Qoc3RyZWFtRW5jcnlwdGlvbkV2ZW50c0xpc3QpKTsKKyAgICB1bnNpZ25l
ZCBzdHJlYW1FbmNyeXB0aW9uRXZlbnRzTGlzdFNpemUgPSBnc3RfdmFsdWVfbGlzdF9nZXRfc2l6
ZShzdHJlYW1FbmNyeXB0aW9uRXZlbnRzTGlzdCk7CisgICAgVmVjdG9yPEdSZWZQdHI8R3N0RXZl
bnQ+PiBzdHJlYW1FbmNyeXB0aW9uRXZlbnRzVmVjdG9yOworICAgIGZvciAoaSA9IDA7IGkgPCBz
dHJlYW1FbmNyeXB0aW9uRXZlbnRzTGlzdFNpemU7ICsraSkKKyAgICAgICAgc3RyZWFtRW5jcnlw
dGlvbkV2ZW50c1ZlY3Rvci5hcHBlbmQoR1JlZlB0cjxHc3RFdmVudD4oc3RhdGljX2Nhc3Q8R3N0
RXZlbnQqPihnX3ZhbHVlX2dldF9ib3hlZChnc3RfdmFsdWVfbGlzdF9nZXRfdmFsdWUoc3RyZWFt
RW5jcnlwdGlvbkV2ZW50c0xpc3QsIGkpKSkpKTsKKworICAgIHJldHVybiBzdGQ6Om1ha2VfcGFp
cihzdHJlYW1FbmNyeXB0aW9uRXZlbnRzVmVjdG9yLCBzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5
c3RlbXNWZWN0b3IpOworfQorI2VuZGlmCisKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZTo6aGFuZGxlU3luY01lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkKIHsKICAgICBV
TlVTRURfUEFSQU0obWVzc2FnZSk7CkBAIC0yOTAsNiArMzIwLDc4IEBAIGJvb2wgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6aGFuZGxlU3luY01lc3NhZ2UoR3N0TWVzc2FnZSogbWVz
c2FnZSkKICAgICB9CiAjZW5kaWYgLy8gVVNFKEdTVFJFQU1FUl9HTCkKIAorI2lmIEVOQUJMRShF
TkNSWVBURURfTUVESUEpCisgICAgaWYgKCFnX3N0cmNtcDAoY29udGV4dFR5cGUsICJkcm0tcHJl
ZmVycmVkLWRlY3J5cHRpb24tc3lzdGVtLWlkIikpIHsKKyAgICAgICAgaWYgKGlzTWFpblRocmVh
ZCgpKSB7CisgICAgICAgICAgICBHU1RfRVJST1IoImNhbid0IGhhbmRsZSBkcm0tcHJlZmVycmVk
LWRlY3J5cHRpb24tc3lzdGVtLWlkIG5lZWQgY29udGV4dCBtZXNzYWdlIGluIHRoZSBtYWluIHRo
cmVhZCIpOworICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgR1NUX0RFQlVHKCJoYW5kbGluZyBkcm0t
cHJlZmVycmVkLWRlY3J5cHRpb24tc3lzdGVtLWlkIG5lZWQgY29udGV4dCBtZXNzYWdlIik7Cisg
ICAgICAgIExvY2tIb2xkZXIgbG9jayhtX3Byb3RlY3Rpb25NdXRleCk7CisgICAgICAgIHN0ZDo6
cGFpcjxWZWN0b3I8R1JlZlB0cjxHc3RFdmVudD4+LCBWZWN0b3I8U3RyaW5nPj4gc3RyZWFtRW5j
cnlwdGlvbkluZm9ybWF0aW9uID0gZXh0cmFjdEV2ZW50c0FuZFN5c3RlbXNGcm9tTWVzc2FnZSht
ZXNzYWdlKTsKKyAgICAgICAgR1NUX1RSQUNFKCJmb3VuZCAlIiBHX0dTSVpFX0ZPUk1BVCAiIHBy
b3RlY3Rpb24gZXZlbnRzIiwgc3RyZWFtRW5jcnlwdGlvbkluZm9ybWF0aW9uLmZpcnN0LnNpemUo
KSk7CisgICAgICAgIFZlY3Rvcjx1aW50OF90PiBjb25jYXRlbmF0ZWRJbml0RGF0YUNodW5rczsK
KyAgICAgICAgdW5zaWduZWQgY29uY2F0ZW5hdGVkSW5pdERhdGFDaHVua3NOdW1iZXIgPSAwOwor
ICAgICAgICBTdHJpbmcgZXZlbnRLZXlTeXN0ZW1JZFN0cmluZzsKKworICAgICAgICBmb3IgKGF1
dG8mIGV2ZW50IDogc3RyZWFtRW5jcnlwdGlvbkluZm9ybWF0aW9uLmZpcnN0KSB7CisgICAgICAg
ICAgICBHU1RfVFJBQ0UoImhhbmRsaW5nIHByb3RlY3Rpb24gZXZlbnQgJXUiLCBHU1RfRVZFTlRf
U0VRTlVNKGV2ZW50LmdldCgpKSk7CisgICAgICAgICAgICBjb25zdCBjaGFyKiBldmVudEtleVN5
c3RlbUlkID0gbnVsbHB0cjsKKyAgICAgICAgICAgIEdzdEJ1ZmZlciogZGF0YSA9IG51bGxwdHI7
CisgICAgICAgICAgICBnc3RfZXZlbnRfcGFyc2VfcHJvdGVjdGlvbihldmVudC5nZXQoKSwgJmV2
ZW50S2V5U3lzdGVtSWQsICZkYXRhLCBudWxscHRyKTsKKworICAgICAgICAgICAgR3N0TWFwSW5m
byBtYXBJbmZvOworICAgICAgICAgICAgaWYgKCFnc3RfYnVmZmVyX21hcChkYXRhLCAmbWFwSW5m
bywgR1NUX01BUF9SRUFEKSkgeworICAgICAgICAgICAgICAgIEdTVF9XQVJOSU5HKCJjYW5ub3Qg
bWFwICVzIHByb3RlY3Rpb24gZGF0YSIsIGV2ZW50S2V5U3lzdGVtSWQpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICAgICAgR1NUX1RSQUNFKCJhcHBlbmRp
bmcgaW5pdCBkYXRhIGZvciAlcyBvZiBzaXplICUiIEdfR1NJWkVfRk9STUFULCBldmVudEtleVN5
c3RlbUlkLCBtYXBJbmZvLnNpemUpOworICAgICAgICAgICAgR1NUX01FTURVTVAoImluaXQgZGF0
YSIsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdW5zaWduZWQgY2hhciAqPihtYXBJbmZvLmRhdGEp
LCBtYXBJbmZvLnNpemUpOworICAgICAgICAgICAgY29uY2F0ZW5hdGVkSW5pdERhdGFDaHVua3Mu
YXBwZW5kKG1hcEluZm8uZGF0YSwgbWFwSW5mby5zaXplKTsKKyAgICAgICAgICAgICsrY29uY2F0
ZW5hdGVkSW5pdERhdGFDaHVua3NOdW1iZXI7CisgICAgICAgICAgICBldmVudEtleVN5c3RlbUlk
U3RyaW5nID0gZXZlbnRLZXlTeXN0ZW1JZDsKKyAgICAgICAgICAgIGlmIChzdHJlYW1FbmNyeXB0
aW9uSW5mb3JtYXRpb24uc2Vjb25kLmNvbnRhaW5zKGV2ZW50S2V5U3lzdGVtSWQpKSB7CisgICAg
ICAgICAgICAgICAgR1NUX1RSQUNFKCJjb25zaWRlcmluZyBpbml0IGRhdGEgaGFuZGxlZCBmb3Ig
JXMiLCBldmVudEtleVN5c3RlbUlkKTsKKyAgICAgICAgICAgICAgICBtX2hhbmRsZWRQcm90ZWN0
aW9uRXZlbnRzLmFkZChHU1RfRVZFTlRfU0VRTlVNKGV2ZW50LmdldCgpKSk7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBnc3RfYnVmZmVyX3VubWFwKGRhdGEsICZtYXBJbmZvKTsKKyAgICAg
ICAgfQorCisgICAgICAgIGlmICghY29uY2F0ZW5hdGVkSW5pdERhdGFDaHVua3NOdW1iZXIpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKGNvbmNhdGVuYXRlZEluaXRE
YXRhQ2h1bmtzTnVtYmVyID4gMSkKKyAgICAgICAgICAgIGV2ZW50S2V5U3lzdGVtSWRTdHJpbmcg
PSBlbXB0eVN0cmluZygpOworCisgICAgICAgIFN0cmluZyBzZXNzaW9uSWQoY3JlYXRlQ2Fub25p
Y2FsVVVJRFN0cmluZygpKTsKKworICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3Ro
aXMsIGV2ZW50S2V5U3lzdGVtSWRTdHJpbmcsIHNlc3Npb25JZCwgaW5pdERhdGEgPSBXVEZNb3Zl
KGNvbmNhdGVuYXRlZEluaXREYXRhQ2h1bmtzKV0geworICAgICAgICAgICAgR1NUX0RFQlVHKCJz
Y2hlZHVsaW5nIGluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkIGV2ZW50IGZvciAlcyB3aXRo
IGNvbmNhdGVuYXRlZCBpbml0IGRhdGFzIHNpemUgb2YgJSIgR19HU0laRV9GT1JNQVQsIGV2ZW50
S2V5U3lzdGVtSWRTdHJpbmcudXRmOCgpLmRhdGEoKSwgaW5pdERhdGEuc2l6ZSgpKTsKKyAgICAg
ICAgICAgIEdTVF9NRU1EVU1QKCJpbml0IGRhdGFzIiwgaW5pdERhdGEuZGF0YSgpLCBpbml0RGF0
YS5zaXplKCkpOworCisgICAgICAgICAgICBtX3BsYXllci0+aW5pdGlhbGl6YXRpb25EYXRhRW5j
b3VudGVyZWQoQVNDSUlMaXRlcmFsKCJjZW5jIiksIEFycmF5QnVmZmVyOjpjcmVhdGUoaW5pdERh
dGEuZGF0YSgpLCBpbml0RGF0YS5zaXplKCkpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgR1NU
X0lORk8oIndhaXRpbmcgZm9yIGEgQ0RNIGluc3RhbmNlIik7CisgICAgICAgIG1fcHJvdGVjdGlv
bkNvbmRpdGlvbi53YWl0Rm9yKG1fcHJvdGVjdGlvbk11dGV4LCBTZWNvbmRzKDQpLCBbdGhpc10g
eworICAgICAgICAgICAgcmV0dXJuIHRoaXMtPm1fY2RtSW5zdGFuY2U7CisgICAgICAgIH0pOwor
ICAgICAgICBpZiAobV9jZG1JbnN0YW5jZSAmJiAhbV9jZG1JbnN0YW5jZS0+a2V5U3lzdGVtKCku
aXNFbXB0eSgpKSB7CisgICAgICAgICAgICBjb25zdCBjaGFyKiBwcmVmZXJyZWRLZXlTeXN0ZW1V
dWlkID0gR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjprZXlTeXN0ZW1Ub1V1aWQobV9jZG1JbnN0YW5j
ZS0+a2V5U3lzdGVtKCkpOworICAgICAgICAgICAgR1NUX0lORk8oIndvcmtpbmcgd2l0aCAlcywg
Y29udGludWluZyB3aXRoICVzIG9uICVzIiwgbV9jZG1JbnN0YW5jZS0+a2V5U3lzdGVtKCkudXRm
OCgpLmRhdGEoKSwgcHJlZmVycmVkS2V5U3lzdGVtVXVpZCwgR1NUX01FU1NBR0VfU1JDX05BTUUo
bWVzc2FnZSkpOworCisgICAgICAgICAgICBHUmVmUHRyPEdzdENvbnRleHQ+IGNvbnRleHQgPSBh
ZG9wdEdSZWYoZ3N0X2NvbnRleHRfbmV3KCJkcm0tcHJlZmVycmVkLWRlY3J5cHRpb24tc3lzdGVt
LWlkIiwgRkFMU0UpKTsKKyAgICAgICAgICAgIEdzdFN0cnVjdHVyZSogY29udGV4dFN0cnVjdHVy
ZSA9IGdzdF9jb250ZXh0X3dyaXRhYmxlX3N0cnVjdHVyZShjb250ZXh0LmdldCgpKTsKKyAgICAg
ICAgICAgIGdzdF9zdHJ1Y3R1cmVfc2V0KGNvbnRleHRTdHJ1Y3R1cmUsICJkZWNyeXB0aW9uLXN5
c3RlbS1pZCIsIEdfVFlQRV9TVFJJTkcsIHByZWZlcnJlZEtleVN5c3RlbVV1aWQsIG51bGxwdHIp
OworICAgICAgICAgICAgZ3N0X2VsZW1lbnRfc2V0X2NvbnRleHQoR1NUX0VMRU1FTlQoR1NUX01F
U1NBR0VfU1JDKG1lc3NhZ2UpKSwgY29udGV4dC5nZXQoKSk7CisgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgR1NUX1dBUk5JTkcoIm5vIHByb3BlciBDRE0gaW5zdGFuY2UgYXR0YWNoZWQiKTsK
KworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisjZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRF
RF9NRURJQSkKKwogICAgIHJldHVybiBmYWxzZTsKIH0KIApAQCAtMTA0NCw2ICsxMTQ2LDY1IEBA
IHVuc2lnbmVkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OnZpZGVvRGVjb2RlZEJ5
dGVDb3VudCgpIGNvbnN0CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihwb3NpdGlv
bik7CiB9CiAKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQordm9pZCBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJCYXNlOjpjZG1JbnN0YW5jZUF0dGFjaGVkKGNvbnN0IENETUluc3RhbmNl
JiBpbnN0YW5jZSkKK3sKKyAgICBBU1NFUlQoIW1fY2RtSW5zdGFuY2UpOworICAgIG1fY2RtSW5z
dGFuY2UgPSAmaW5zdGFuY2U7CisgICAgR1NUX0RFQlVHKCJDRE0gaW5zdGFuY2UgJXAgc2V0Iiwg
bV9jZG1JbnN0YW5jZS5nZXQoKSk7CisgICAgbV9wcm90ZWN0aW9uQ29uZGl0aW9uLm5vdGlmeUFs
bCgpOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmNkbUluc3Rh
bmNlRGV0YWNoZWQoY29uc3QgQ0RNSW5zdGFuY2UmIGluc3RhbmNlKQoreworI2lmZGVmIE5ERUJV
RworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7CisjZW5kaWYKKyAgICBBU1NFUlQobV9jZG1J
bnN0YW5jZS5nZXQoKSA9PSAmaW5zdGFuY2UpOworICAgIEdTVF9ERUJVRygiZGV0YWNoaW5nIENE
TSBpbnN0YW5jZSAlcCIsIG1fY2RtSW5zdGFuY2UuZ2V0KCkpOworICAgIG1fY2RtSW5zdGFuY2Ug
PSBudWxscHRyOworICAgIG1fcHJvdGVjdGlvbkNvbmRpdGlvbi5ub3RpZnlBbGwoKTsKK30KKwor
dm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjphdHRlbXB0VG9EZWNyeXB0V2l0
aEluc3RhbmNlKGNvbnN0IENETUluc3RhbmNlJiBpbnN0YW5jZSkKK3sKKyAgICBBU1NFUlQobV9j
ZG1JbnN0YW5jZS5nZXQoKSA9PSAmaW5zdGFuY2UpOworICAgIEdTVF9UUkFDRSgiaW5zdGFuY2Ug
JXAsIGN1cnJlbnQgc3RvcmVkICVwIiwgJmluc3RhbmNlLCBtX2NkbUluc3RhbmNlLmdldCgpKTsK
KyAgICBhdHRlbXB0VG9EZWNyeXB0V2l0aExvY2FsSW5zdGFuY2UoKTsKK30KKwordm9pZCBNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjphdHRlbXB0VG9EZWNyeXB0V2l0aExvY2FsSW5z
dGFuY2UoKQoreworICAgIC8vIEZJWE1FLgorfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lckJhc2U6OmRpc3BhdGNoRGVjcnlwdGlvbktleShHc3RCdWZmZXIqIGJ1ZmZlcikKK3sK
KyAgICBib29sIGV2ZW50SGFuZGxlZCA9IGdzdF9lbGVtZW50X3NlbmRfZXZlbnQobV9waXBlbGlu
ZS5nZXQoKSwgZ3N0X2V2ZW50X25ld19jdXN0b20oR1NUX0VWRU5UX0NVU1RPTV9ET1dOU1RSRUFN
X09PQiwKKyAgICAgICAgZ3N0X3N0cnVjdHVyZV9uZXcoImRybS1jaXBoZXIiLCAia2V5IiwgR1NU
X1RZUEVfQlVGRkVSLCBidWZmZXIsIG51bGxwdHIpKSk7CisgICAgbV9uZWVkVG9SZXNlbmRDcmVk
ZW50aWFscyA9IG1faGFuZGxlZFByb3RlY3Rpb25FdmVudHMuc2l6ZSgpID4gMDsKKyAgICBHU1Rf
VFJBQ0UoImVtaXR0ZWQgZGVjcnlwdGlvbiBjaXBoZXIga2V5IG9uIHBpcGVsaW5lLCBldmVudCBo
YW5kbGVkICVzLCBuZWVkIHRvIHJlc2VuZCBjcmVkZW50aWFscyAlcyIsIGJvb2xGb3JQcmludGlu
ZyhldmVudEhhbmRsZWQpLCBib29sRm9yUHJpbnRpbmcobV9uZWVkVG9SZXNlbmRDcmVkZW50aWFs
cykpOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmhhbmRsZVBy
b3RlY3Rpb25FdmVudChHc3RFdmVudCogZXZlbnQpCit7CisgICAgaWYgKG1faGFuZGxlZFByb3Rl
Y3Rpb25FdmVudHMuY29udGFpbnMoR1NUX0VWRU5UX1NFUU5VTShldmVudCkpKSB7CisgICAgICAg
IEdTVF9ERUJVRygiZXZlbnQgJXUgYWxyZWFkeSBoYW5kbGVkIiwgR1NUX0VWRU5UX1NFUU5VTShl
dmVudCkpOworICAgICAgICBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLnJlbW92ZShHU1RfRVZF
TlRfU0VRTlVNKGV2ZW50KSk7CisgICAgICAgIGlmIChtX25lZWRUb1Jlc2VuZENyZWRlbnRpYWxz
KSB7CisgICAgICAgICAgICBHU1RfREVCVUcoInJlc2VuZGluZyBjcmVkZW50aWFscyIpOworICAg
ICAgICAgICAgYXR0ZW1wdFRvRGVjcnlwdFdpdGhMb2NhbEluc3RhbmNlKCk7CisgICAgICAgIH0K
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvbnN0IGdjaGFyKiBldmVudEtleVN5c3Rl
bUlkID0gbnVsbHB0cjsKKyAgICBnc3RfZXZlbnRfcGFyc2VfcHJvdGVjdGlvbihldmVudCwgJmV2
ZW50S2V5U3lzdGVtSWQsIG51bGxwdHIsIG51bGxwdHIpOworICAgIEdTVF9XQVJOSU5HKCJGSVhN
RTogdW5oYW5kbGVkIHByb3RlY3Rpb24gZXZlbnQgZm9yICVzIiwgZXZlbnRLZXlTeXN0ZW1JZCk7
CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisjZW5kaWYKKwogYm9vbCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXJCYXNlOjpzdXBwb3J0c0tleVN5c3RlbShjb25zdCBTdHJpbmcmIGtl
eVN5c3RlbSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKIHsKICAgICBib29sIHJlc3VsdCA9IGZh
bHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNl
LmgKaW5kZXggYTc4MGRlZTk5MDM4NWMyZDhhYzZhNTI1NmY3NzNlZGFjZTVmNGI3YS4uMWUwZmY5
N2I0YzZhNjBmNjg2MDVkMzFhN2FlMTc1YmZlZDU1YWE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oCkBAIC0xMjAsNiArMTIwLDE1IEBA
IHB1YmxpYzoKICNlbmRpZgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQor
ICAgIHZvaWQgY2RtSW5zdGFuY2VBdHRhY2hlZChjb25zdCBDRE1JbnN0YW5jZSYpIG92ZXJyaWRl
OworICAgIHZvaWQgY2RtSW5zdGFuY2VEZXRhY2hlZChjb25zdCBDRE1JbnN0YW5jZSYpIG92ZXJy
aWRlOworICAgIHZvaWQgZGlzcGF0Y2hEZWNyeXB0aW9uS2V5KEdzdEJ1ZmZlciopOworICAgIHZv
aWQgaGFuZGxlUHJvdGVjdGlvbkV2ZW50KEdzdEV2ZW50Kik7CisgICAgdm9pZCBhdHRlbXB0VG9E
ZWNyeXB0V2l0aExvY2FsSW5zdGFuY2UoKTsKKyAgICB2b2lkIGF0dGVtcHRUb0RlY3J5cHRXaXRo
SW5zdGFuY2UoY29uc3QgQ0RNSW5zdGFuY2UmKSBvdmVycmlkZTsKKyNlbmRpZgorCiAgICAgc3Rh
dGljIGJvb2wgc3VwcG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0
IFN0cmluZyYgbWltZVR5cGUpOwogICAgIHN0YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBl
IGV4dGVuZGVkU3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlhRW5naW5lU3VwcG9ydFBhcmFtZXRlcnMm
LCBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlKTsKIApAQCAtMjE5LDYgKzIyOCwxNCBAQCBwcm90
ZWN0ZWQ6CiAjZW5kaWYKIAogICAgIEltYWdlT3JpZW50YXRpb24gbV92aWRlb1NvdXJjZU9yaWVu
dGF0aW9uOworCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAgICBMb2NrIG1fcHJvdGVj
dGlvbk11dGV4OworICAgIENvbmRpdGlvbiBtX3Byb3RlY3Rpb25Db25kaXRpb247CisgICAgUmVm
UHRyPGNvbnN0IENETUluc3RhbmNlPiBtX2NkbUluc3RhbmNlOworICAgIEhhc2hTZXQ8dWludDMy
X3Q+IG1faGFuZGxlZFByb3RlY3Rpb25FdmVudHM7CisgICAgYm9vbCBtX25lZWRUb1Jlc2VuZENy
ZWRlbnRpYWxzIHsgZmFsc2UgfTsKKyNlbmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVu
ZFBpcGVsaW5lLmNwcAppbmRleCBiZDAxODI4OGUyNDY0NzgyZjJmNjFiYTM4MDFjMzM3NDY1OWM3
YzhlLi4xOGQxMDY4N2JlM2VlNjQ3M2M2ODQ5NmJjYjhjYjZmZjNlNjY3MTI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBp
cGVsaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcApAQCAtOTMsNiArOTMsMTMgQEAgc3RhdGljIHZvaWQg
YXBwZW5kUGlwZWxpbmVBcHBsaWNhdGlvbk1lc3NhZ2VDYWxsYmFjayhHc3RCdXMqLCBHc3RNZXNz
YWdlKiBtZXNzYWcKICAgICBhcHBlbmRQaXBlbGluZS0+aGFuZGxlQXBwbGljYXRpb25NZXNzYWdl
KG1lc3NhZ2UpOwogfQogCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKK3N0YXRpYyB2b2lk
IGFwcGVuZFBpcGVsaW5lRWxlbWVudE1lc3NhZ2VDYWxsYmFjayhHc3RCdXMqLCBHc3RNZXNzYWdl
KiBtZXNzYWdlLCBBcHBlbmRQaXBlbGluZSogYXBwZW5kUGlwZWxpbmUpCit7CisgICAgYXBwZW5k
UGlwZWxpbmUtPmhhbmRsZUVsZW1lbnRNZXNzYWdlKG1lc3NhZ2UpOworfQorI2VuZGlmCisKIEFw
cGVuZFBpcGVsaW5lOjpBcHBlbmRQaXBlbGluZShSZWY8TWVkaWFTb3VyY2VDbGllbnRHU3RyZWFt
ZXJNU0U+IG1lZGlhU291cmNlQ2xpZW50LCBSZWY8U291cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1l
cj4gc291cmNlQnVmZmVyUHJpdmF0ZSwgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyTVNFJiBw
bGF5ZXJQcml2YXRlKQogICAgIDogbV9tZWRpYVNvdXJjZUNsaWVudChtZWRpYVNvdXJjZUNsaWVu
dC5nZXQoKSkKICAgICAsIG1fc291cmNlQnVmZmVyUHJpdmF0ZShzb3VyY2VCdWZmZXJQcml2YXRl
LmdldCgpKQpAQCAtMTE5LDYgKzEyNiw5IEBAIEFwcGVuZFBpcGVsaW5lOjpBcHBlbmRQaXBlbGlu
ZShSZWY8TWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJNU0U+IG1lZGlhU291cmNlQ2xpCiAKICAg
ICBnX3NpZ25hbF9jb25uZWN0KG1fYnVzLmdldCgpLCAic3luYy1tZXNzYWdlOjpuZWVkLWNvbnRl
eHQiLCBHX0NBTExCQUNLKGFwcGVuZFBpcGVsaW5lTmVlZENvbnRleHRNZXNzYWdlQ2FsbGJhY2sp
LCB0aGlzKTsKICAgICBnX3NpZ25hbF9jb25uZWN0KG1fYnVzLmdldCgpLCAibWVzc2FnZTo6YXBw
bGljYXRpb24iLCBHX0NBTExCQUNLKGFwcGVuZFBpcGVsaW5lQXBwbGljYXRpb25NZXNzYWdlQ2Fs
bGJhY2spLCB0aGlzKTsKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgIGdfc2lnbmFs
X2Nvbm5lY3QobV9idXMuZ2V0KCksICJtZXNzYWdlOjplbGVtZW50IiwgR19DQUxMQkFDSyhhcHBl
bmRQaXBlbGluZUVsZW1lbnRNZXNzYWdlQ2FsbGJhY2spLCB0aGlzKTsKKyNlbmRpZgogCiAgICAg
Ly8gV2UgYXNzaWduIHRoZSBjcmVhdGVkIGluc3RhbmNlcyBoZXJlIGluc3RlYWQgb2YgYWRvcHRS
ZWYoKSBiZWNhdXNlIGdzdF9iaW5fYWRkX21hbnkoKQogICAgIC8vIGJlbG93IHdpbGwgYWxyZWFk
eSB0YWtlIHRoZSBpbml0aWFsIHJlZmVyZW5jZSBhbmQgd2UgbmVlZCBhbiBhZGRpdGlvbmFsIG9u
ZSBmb3IgdXMuCkBAIC0xODAsNiArMTkwLDggQEAgQXBwZW5kUGlwZWxpbmU6On5BcHBlbmRQaXBl
bGluZSgpCiAKICAgICBpZiAobV9waXBlbGluZSkgewogICAgICAgICBBU1NFUlQobV9idXMpOwor
ICAgICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X2J5X2Z1bmMobV9idXMuZ2V0KCks
IHJlaW50ZXJwcmV0X2Nhc3Q8Z3BvaW50ZXI+KGFwcGVuZFBpcGVsaW5lTmVlZENvbnRleHRNZXNz
YWdlQ2FsbGJhY2spLCB0aGlzKTsKKyAgICAgICAgZ3N0X2J1c19kaXNhYmxlX3N5bmNfbWVzc2Fn
ZV9lbWlzc2lvbihtX2J1cy5nZXQoKSk7CiAgICAgICAgIGdzdF9idXNfcmVtb3ZlX3NpZ25hbF93
YXRjaChtX2J1cy5nZXQoKSk7CiAgICAgICAgIGdzdF9lbGVtZW50X3NldF9zdGF0ZShtX3BpcGVs
aW5lLmdldCgpLCBHU1RfU1RBVEVfTlVMTCk7CiAgICAgICAgIG1fcGlwZWxpbmUgPSBudWxscHRy
OwpAQCAtMjQ5LDcgKzI2MSw4IEBAIHZvaWQgQXBwZW5kUGlwZWxpbmU6OmhhbmRsZU5lZWRDb250
ZXh0U3luY01lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkKICAgICBjb25zdCBnY2hhciogY29u
dGV4dFR5cGUgPSBudWxscHRyOwogICAgIGdzdF9tZXNzYWdlX3BhcnNlX2NvbnRleHRfdHlwZSht
ZXNzYWdlLCAmY29udGV4dFR5cGUpOwogICAgIEdTVF9UUkFDRSgiY29udGV4dCB0eXBlOiAlcyIs
IGNvbnRleHRUeXBlKTsKLSAgICBpZiAoIWdfc3RyY21wMChjb250ZXh0VHlwZSwgImRybS1wcmVm
ZXJyZWQtZGVjcnlwdGlvbi1zeXN0ZW0taWQiKSkKKyAgICBpZiAoIWdfc3RyY21wMChjb250ZXh0
VHlwZSwgImRybS1wcmVmZXJyZWQtZGVjcnlwdGlvbi1zeXN0ZW0taWQiKQorICAgICAgICAmJiBt
X2FwcGVuZFN0YXRlICE9IEFwcGVuZFBpcGVsaW5lOjpBcHBlbmRTdGF0ZTo6S2V5TmVnb3RpYXRp
b24pCiAgICAgICAgIHNldEFwcGVuZFN0YXRlKEFwcGVuZFBpcGVsaW5lOjpBcHBlbmRTdGF0ZTo6
S2V5TmVnb3RpYXRpb24pOwogCiAgICAgLy8gTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFz
ZSB3aWxsIHRha2UgY2FyZSBvZiBzZXR0aW5nIHVwIGVuY3J5cHRpb24uCkBAIC0zMDIsNiArMzE1
LDI1IEBAIHZvaWQgQXBwZW5kUGlwZWxpbmU6OmhhbmRsZUFwcGxpY2F0aW9uTWVzc2FnZShHc3RN
ZXNzYWdlKiBtZXNzYWdlKQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCisjaWYgRU5B
QkxFKEVOQ1JZUFRFRF9NRURJQSkKK3ZvaWQgQXBwZW5kUGlwZWxpbmU6OmhhbmRsZUVsZW1lbnRN
ZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCit7CisgICAgQVNTRVJUKFdURjo6aXNNYWluVGhy
ZWFkKCkpOworCisgICAgY29uc3QgR3N0U3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBnc3RfbWVzc2Fn
ZV9nZXRfc3RydWN0dXJlKG1lc3NhZ2UpOworICAgIEdTVF9UUkFDRSgiJXMgbWVzc2FnZSBmcm9t
ICVzIiwgZ3N0X3N0cnVjdHVyZV9nZXRfbmFtZShzdHJ1Y3R1cmUpLCBHU1RfTUVTU0FHRV9TUkNf
TkFNRShtZXNzYWdlKSk7CisgICAgaWYgKG1fcGxheWVyUHJpdmF0ZSAmJiBnc3Rfc3RydWN0dXJl
X2hhc19uYW1lKHN0cnVjdHVyZSwgImRybS1rZXktbmVlZGVkIikpIHsKKyAgICAgICAgaWYgKG1f
YXBwZW5kU3RhdGUgIT0gQXBwZW5kUGlwZWxpbmU6OkFwcGVuZFN0YXRlOjpLZXlOZWdvdGlhdGlv
bikKKyAgICAgICAgICAgIHNldEFwcGVuZFN0YXRlKEFwcGVuZFBpcGVsaW5lOjpBcHBlbmRTdGF0
ZTo6S2V5TmVnb3RpYXRpb24pOworCisgICAgICAgIEdTVF9ERUJVRygic2VuZGluZyBkcm0ta2V5
LW5lZWRlZCBtZXNzYWdlIGZyb20gJXMgdG8gdGhlIHBsYXllciIsIEdTVF9NRVNTQUdFX1NSQ19O
QU1FKG1lc3NhZ2UpKTsKKyAgICAgICAgR1JlZlB0cjxHc3RFdmVudD4gZXZlbnQ7CisgICAgICAg
IGdzdF9zdHJ1Y3R1cmVfZ2V0KHN0cnVjdHVyZSwgImV2ZW50IiwgR1NUX1RZUEVfRVZFTlQsICZl
dmVudC5vdXRQdHIoKSwgbnVsbHB0cik7CisgICAgICAgIG1fcGxheWVyUHJpdmF0ZS0+aGFuZGxl
UHJvdGVjdGlvbkV2ZW50KGV2ZW50LmdldCgpKTsKKyAgICB9Cit9CisjZW5kaWYKKwogdm9pZCBB
cHBlbmRQaXBlbGluZTo6aGFuZGxlQXBwc3JjTmVlZERhdGFSZWNlaXZlZCgpCiB7CiAgICAgaWYg
KCFtX2FwcHNyY0F0TGVhc3RBQnVmZmVyTGVmdCkgewpAQCAtMzA5LDcgKzM0MSw3IEBAIHZvaWQg
QXBwZW5kUGlwZWxpbmU6OmhhbmRsZUFwcHNyY05lZWREYXRhUmVjZWl2ZWQoKQogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgQVNTRVJUKG1fYXBwZW5kU3RhdGUgPT0gQXBwZW5kU3RhdGU6
Ok9uZ29pbmcgfHwgbV9hcHBlbmRTdGF0ZSA9PSBBcHBlbmRTdGF0ZTo6U2FtcGxpbmcpOworICAg
IEFTU0VSVChtX2FwcGVuZFN0YXRlID09IEFwcGVuZFN0YXRlOjpLZXlOZWdvdGlhdGlvbiB8fCBt
X2FwcGVuZFN0YXRlID09IEFwcGVuZFN0YXRlOjpPbmdvaW5nIHx8IG1fYXBwZW5kU3RhdGUgPT0g
QXBwZW5kU3RhdGU6OlNhbXBsaW5nKTsKICAgICBBU1NFUlQoIW1fYXBwc3JjTmVlZERhdGFSZWNl
aXZlZCk7CiAKICAgICBHU1RfVFJBQ0UoInJlY2VpdmVkIG5lZWQtZGF0YSBmcm9tIGFwcHNyYyIp
OwpAQCAtNjQ3LDYgKzY3OSwxMCBAQCB2b2lkIEFwcGVuZFBpcGVsaW5lOjphcHBzaW5rTmV3U2Ft
cGxlKEdzdFNhbXBsZSogc2FtcGxlKQogICAgIHsKICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9uZXdTYW1wbGVMb2NrKTsKIAorICAgICAgICAvLyBJZiB3ZSB3ZXJlIGluIEtleU5lZ290aWF0
aW9uIGJ1dCBzYW1wbGVzIGFyZSBjb21pbmcsIGFzc3VtZSB3ZSdyZSBhbHJlYWR5IE9uR29pbmcK
KyAgICAgICAgaWYgKG1fYXBwZW5kU3RhdGUgPT0gQXBwZW5kU3RhdGU6OktleU5lZ290aWF0aW9u
KQorICAgICAgICAgICAgc2V0QXBwZW5kU3RhdGUoQXBwZW5kU3RhdGU6Ok9uZ29pbmcpOworCiAg
ICAgICAgIC8vIElnbm9yZSBzYW1wbGVzIGlmIHdlJ3JlIG5vdCBleHBlY3RpbmcgdGhlbS4gUmVm
dXNlIHByb2Nlc3NpbmcgaWYgd2UncmUgaW4gSW52YWxpZCBzdGF0ZS4KICAgICAgICAgaWYgKG1f
YXBwZW5kU3RhdGUgIT0gQXBwZW5kU3RhdGU6Ok9uZ29pbmcgJiYgbV9hcHBlbmRTdGF0ZSAhPSBB
cHBlbmRTdGF0ZTo6U2FtcGxpbmcpIHsKICAgICAgICAgICAgIEdTVF9XQVJOSU5HKCJVbmV4cGVj
dGVkIHNhbXBsZSwgYXBwZW5kU3RhdGU9JXMiLCBkdW1wQXBwZW5kU3RhdGUobV9hcHBlbmRTdGF0
ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL21zZS9BcHBlbmRQaXBlbGluZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5oCmluZGV4IGFjNjNmN2RmN2EzNDNlYjZm
NzRlZDQ0MTllZWIyYzdkNDljM2RiZTIuLmQ5ZDkxMDVkODlhMjM4NjI2ZDM1ZTA5YTYwMDk0ZmJh
OWJmMzhhMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmgKQEAgLTUwLDYgKzUwLDkg
QEAgcHVibGljOgogCiAgICAgdm9pZCBoYW5kbGVOZWVkQ29udGV4dFN5bmNNZXNzYWdlKEdzdE1l
c3NhZ2UqKTsKICAgICB2b2lkIGhhbmRsZUFwcGxpY2F0aW9uTWVzc2FnZShHc3RNZXNzYWdlKik7
CisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAgICB2b2lkIGhhbmRsZUVsZW1lbnRNZXNz
YWdlKEdzdE1lc3NhZ2UqKTsKKyNlbmRpZgogCiAgICAgZ2ludCBpZCgpOwogICAgIEFwcGVuZFN0
YXRlIGFwcGVuZFN0YXRlKCkgeyByZXR1cm4gbV9hcHBlbmRTdGF0ZTsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmNwcAppbmRleCAxOThjNjk2ODU3MzQ2MGNjMzRiZDk0
YzQzOTYwNTQxMmRhZTUyYjRjLi5hMWE3OThkMTc5MzEyNDJiNWY2ZTA3ZTc5NTc4OTA5NDk4Yjgz
YWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmNwcApAQCAtOTYs
NyArOTYsNyBAQCB2b2lkIE1vY2tDRE1GYWN0b3J5OjpzZXRTdXBwb3J0ZWREYXRhVHlwZXMoVmVj
dG9yPFN0cmluZz4mJiB0eXBlcykKICAgICAgICAgbV9zdXBwb3J0ZWREYXRhVHlwZXMuYXBwZW5k
KHR5cGUpOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8Q0RNUHJpdmF0ZT4gTW9ja0NETUZhY3Rvcnk6
OmNyZWF0ZUNETSgpCitzdGQ6OnVuaXF1ZV9wdHI8Q0RNUHJpdmF0ZT4gTW9ja0NETUZhY3Rvcnk6
OmNyZWF0ZUNETShjb25zdCBTdHJpbmcmKQogewogICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVl
PE1vY2tDRE0+KG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpKTsKIH0KQEAgLTM3Nyw2
ICszNzcsMTMgQEAgdm9pZCBNb2NrQ0RNSW5zdGFuY2U6OnN0b3JlUmVjb3JkT2ZLZXlVc2FnZShj
b25zdCBTdHJpbmcmKQogICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBpbXBsZW1lbnRlZCBh
bG9uZyB3aXRoIHRoZSBzdXBwb3J0IGZvciBwZXJzaXN0ZW50LXVzYWdlLXJlY29yZCBzZXNzaW9u
cy4KIH0KIAorY29uc3QgU3RyaW5nJiBNb2NrQ0RNSW5zdGFuY2U6OmtleVN5c3RlbSgpIGNvbnN0
Cit7CisgICAgc3RhdGljIGNvbnN0IFN0cmluZyBzX2tleVN5c3RlbSgib3JnLndlYmtpdC5tb2Nr
Iik7CisKKyAgICByZXR1cm4gc19rZXlTeXN0ZW07Cit9CisKIH0KIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmggYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmgKaW5kZXggMjhlYTU4ZGU4ZDg0NmZmZTk2MWRi
OTg3ZGNhZmQzMmQ0NzMxOTY4NC4uNzdmNTM0NzA3MjhlNzI2ODBkZWI5MTkzMjMxMGE5MjBjZWUx
NjNjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NETUZhY3RvcnkuaApAQCAtNzgsNyAr
NzgsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgTW9ja0NETUZhY3RvcnkoKTsKLSAgICBz
dGQ6OnVuaXF1ZV9wdHI8Q0RNUHJpdmF0ZT4gY3JlYXRlQ0RNKCkgZmluYWw7CisgICAgc3RkOjp1
bmlxdWVfcHRyPENETVByaXZhdGU+IGNyZWF0ZUNETShjb25zdCBTdHJpbmcmKSBmaW5hbDsKICAg
ICBib29sIHN1cHBvcnRzS2V5U3lzdGVtKGNvbnN0IFN0cmluZyYpIGZpbmFsOwogCiAgICAgTWVk
aWFLZXlzUmVxdWlyZW1lbnQgbV9kaXN0aW5jdGl2ZUlkZW50aWZpZXJzUmVxdWlyZW1lbnQgeyBN
ZWRpYUtleXNSZXF1aXJlbWVudDo6T3B0aW9uYWwgfTsKQEAgLTE0MCw2ICsxNDAsOCBAQCBwcml2
YXRlOgogICAgIHZvaWQgcmVtb3ZlU2Vzc2lvbkRhdGEoY29uc3QgU3RyaW5nJiwgTGljZW5zZVR5
cGUsIFJlbW92ZVNlc3Npb25EYXRhQ2FsbGJhY2spIGZpbmFsOwogICAgIHZvaWQgc3RvcmVSZWNv
cmRPZktleVVzYWdlKGNvbnN0IFN0cmluZyYpIGZpbmFsOwogCisgICAgY29uc3QgU3RyaW5nJiBr
ZXlTeXN0ZW0oKSBjb25zdCBmaW5hbDsKKwogICAgIFdlYWtQdHI8TW9ja0NETT4gbV9jZG07CiAg
ICAgYm9vbCBtX2Rpc3RpbmN0aXZlSWRlbnRpZmllcnNBbGxvd2VkIHsgdHJ1ZSB9OwogICAgIGJv
b2wgbV9wZXJzaXN0ZW50U3RhdGVBbGxvd2VkIHsgdHJ1ZSB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319081</attachid>
            <date>2017-08-25 08:51:57 -0700</date>
            <delta_ts>2017-08-26 01:29:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-175983-20170825175155.patch</filename>
            <type>text/plain</type>
            <size>27992</size>
            <attacher name="Xabier Rodríguez Calvar">calvaris</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxMTMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjRiMTE1NTFiYmYxNDQ2
ODViNWExNWZlZTY1NGFkM2MyZTdmMzY5ZC4uMTJkYTg3ZDVjZmU1ZDc4N2Q3MDRkNTkzMDkzODc5
OTVmYWU1MjgxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDE3LTA4LTI1ICBYYWJp
ZXIgUm9kcmlndWV6IENhbHZhciAgPGNhbHZhcmlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0VN
RV1bR1N0cmVhbWVyXSBDb25uZWN0IENETSB0byBHU3RyZWFtZXIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTk4MworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgc3RpbGwgYSB2ZXJzaW9uIHRo
YXQgd2lsbCBuZWVkIHNvbWUgY2hhbmdlcyBmb3Igc29tZSBvdGhlcgorICAgICAgICB1c2UgY2Fz
ZXMgYnV0IGl0IHNob3VsZCBiZSBlbm91Z2ggdG8gYmVnaW4gd2l0aCBzb21lIHBhc3NlcyBpbiB0
aGUKKyAgICAgICAgdGVzdHMgYW5kIHNvbWUgYmFzaWMgdXNlIGNhc2VzLgorCisgICAgICAgIFdl
IHVzZSB0aGUgYXR0YWNoIENETUluc3RhbmNlIGludGVyZmFjZSBpbiB0aGUgcHJpdmF0ZSBwbGF5
ZXIgdG8KKyAgICAgICAgZ2V0IHRoZSBpbnN0YW5jZSBpbiB0aW1lIGZvciB0aGUgaW5pdGlhbGl6
YXRpb25EYXRhRW5jb3VudGVyZWQKKyAgICAgICAgZXZlbnQsIHdoaWNoIGlzIGhhbmRsZWQgd2hl
biB0aGUgZGVtdXhlciByZXBvcnRzIHN5bmNocm9ub3VzbHkgdGhlCisgICAgICAgIGV2ZW50cyBl
dmVuIGJlZm9yZSBjb25maWd1cmluZyB0aGUgZGVjcnlwdG9ycy4gV2Ugd2FpdCB0aGVyZSBpbgor
ICAgICAgICBjYXNlIHdlIGRvbid0IGhhdmUgdGhlIENETUluc3RhbmNlIGF0dGFjaGVkICh3aGlj
aCBjb250YWlucyBpbmZvCisgICAgICAgIGFib3V0IHRoZSBrZXkgc3lzdGVtIG5vdykgYW5kIHdo
ZW4gd2UgZ2V0IGl0IHdlIHJlcG9ydCBpdCBiYWNrIHRvCisgICAgICAgIHRoZSBkZW11eGVyIGFu
ZCBjb250aW51ZSBzZW5kaW5nIHRoZSBldmVudC4KKworICAgICAgICBXZSBhbHNvIGhhbmRsZWQg
dGhlIGV2ZW50cyB3aGVuIGhhbmRsZWQgYnkgdGhlIGRlY3J5cHRvcnMgYnV0IGZvcgorICAgICAg
ICBub3cgdGhpcyB3aWxsIHJlbWFpbiBhIEZJWE1FLiBUaGUgZXZlbnRzIGhhbmRsZWQgYnkgdGhl
CisgICAgICAgIEFwcGVuZFBpcGVsaW5lIHdpbGwgZW5kIHVwIGhlcmUgdG9vIGZvciBub3cuCisK
KyAgICAgICAgVGhlIENETSBpbnN0YW5jZSBpcyBjcmVhdGVkIHdpdGggdGhlIGtleSBzeXN0ZW0g
YmVjYXVzZSBzb21lIENETXMKKyAgICAgICAgY2FuIGhhbmRsZSBtb3JlIHRoYW4gb25lLCBub3Qg
Q2xlYXJLZXkgeWV0IGJ1dCBvdGhlcnMgaW4gdGhlCisgICAgICAgIChuZWFyKSBmdXR1cmUuCisK
KyAgICAgICAgTW9ja0NETUZhY3RvcnkgaXMgYWRhcHRlZCB0byB0aGUgY2hhbmdlcyBhcyBleHBl
Y3RlZC4KKworICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNETTo6Q0RNKToKKyAgICAgICAgKiBwbGF0Zm9ybS9lbmNyeXB0ZWRtZWRp
YS9DRE1GYWN0b3J5Lmg6CisgICAgICAgICogcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNSW5z
dGFuY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1D
bGVhcktleS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDRE1GYWN0b3J5Q2xlYXJLZXk6OmNyZWF0
ZUNETSk6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZUNsZWFyS2V5OjprZXlTeXN0ZW0g
Y29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNs
ZWFyS2V5Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXI6OmhhbmRsZU1lc3NhZ2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6On5NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXJCYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OmV4dHJhY3RFdmVudHNB
bmRTeXN0ZW1zRnJvbU1lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyQmFzZTo6aGFuZGxlU3luY01lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6Y2RtSW5zdGFuY2VBdHRhY2hlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpjZG1JbnN0
YW5jZURldGFjaGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lckJhc2U6OmF0dGVtcHRUb0RlY3J5cHRXaXRoSW5zdGFuY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6YXR0ZW1wdFRvRGVjcnlwdFdpdGhM
b2NhbEluc3RhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lckJhc2U6OmRpc3BhdGNoRGVjcnlwdGlvbktleSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpoYW5kbGVQcm90ZWN0aW9uRXZlbnQpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXJCYXNlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9B
cHBlbmRQaXBlbGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjphcHBlbmRQaXBlbGluZUVsZW1l
bnRNZXNzYWdlQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kUGlwZWxpbmU6OkFw
cGVuZFBpcGVsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZFBpcGVsaW5lOjp+QXBwZW5k
UGlwZWxpbmUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kUGlwZWxpbmU6OmhhbmRsZU5lZWRD
b250ZXh0U3luY01lc3NhZ2UpOgorICAgICAgICAoV2ViQ29yZTo6QXBwZW5kUGlwZWxpbmU6Omhh
bmRsZUVsZW1lbnRNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZFBpcGVsaW5lOjpo
YW5kbGVBcHBzcmNOZWVkRGF0YVJlY2VpdmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGVuZFBp
cGVsaW5lOjphcHBzaW5rTmV3U2FtcGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmg6CisgICAgICAgICogdGVzdGluZy9Nb2NrQ0RN
RmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrQ0RNRmFjdG9yeTo6Y3JlYXRlQ0RN
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tDRE1JbnN0YW5jZTo6a2V5U3lzdGVtIGNvbnN0KToK
KyAgICAgICAgKiB0ZXN0aW5nL01vY2tDRE1GYWN0b3J5Lmg6CisKIDIwMTctMDgtMjQgIFphbiBE
b2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtFTUVdIEltcGxlbWVu
dCBIVE1MTWVkaWFFbGVtZW50IGRpc3BhdGNoIG9mIHRoZSBvbmVuY3J5cHRlZCBldmVudApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uY3BwCmluZGV4IDk4YTg0
Y2FjOGIxMWMxMDdmMzJjMmM5YWUwZGFjNDY0Yzc0OTY2ZjAuLjYwZThhYWRiYzI2NzI5YmQ5Y2Mw
OWQ0ZTkxYjAxMTNkMzM4NmI4Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZW5jcnlwdGVkbWVkaWEvQ0RNLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL0NETS5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgQ0RNOjpDRE0oRG9jdW1lbnQmIGRv
Y3VtZW50LCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKICAgICBBU1NFUlQoc3VwcG9ydHNLZXlT
eXN0ZW0oa2V5U3lzdGVtKSk7CiAgICAgZm9yIChhdXRvKiBmYWN0b3J5IDogQ0RNRmFjdG9yeTo6
cmVnaXN0ZXJlZEZhY3RvcmllcygpKSB7CiAgICAgICAgIGlmIChmYWN0b3J5LT5zdXBwb3J0c0tl
eVN5c3RlbShrZXlTeXN0ZW0pKSB7Ci0gICAgICAgICAgICBtX3ByaXZhdGUgPSBmYWN0b3J5LT5j
cmVhdGVDRE0oKTsKKyAgICAgICAgICAgIG1fcHJpdmF0ZSA9IGZhY3RvcnktPmNyZWF0ZUNETShr
ZXlTeXN0ZW0pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1GYWN0b3J5Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1GYWN0b3J5LmgKaW5k
ZXggMWI3ZTA3YmE4MTZmYmY2MGI5OWM2NDczNmI0MzUwMjJiMzViODE1Yy4uYmQ0ODM2NzQ2MDcx
OWQ5ZjI5MzBiNGQxNmQyYWE4NTkwMTZhNzY2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvQ0RNRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETUZhY3RvcnkuaApAQCAtNDAsNyArNDAsNyBAQCBj
bGFzcyBDRE1Qcml2YXRlOwogY2xhc3MgQ0RNRmFjdG9yeSB7CiBwdWJsaWM6CiAgICAgdmlydHVh
bCB+Q0RNRmFjdG9yeSgpIHsgfTsKLSAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxDRE1Qcml2
YXRlPiBjcmVhdGVDRE0oKSA9IDA7CisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8Q0RNUHJp
dmF0ZT4gY3JlYXRlQ0RNKGNvbnN0IFN0cmluZyYpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgc3Vw
cG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJikgPSAwOwogCiAgICAgc3RhdGljIFZlY3RvcjxD
RE1GYWN0b3J5Kj4mIHJlZ2lzdGVyZWRGYWN0b3JpZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL0NETUluc3RhbmNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9DRE1JbnN0YW5jZS5oCmluZGV4IDBlNDRjMzAz
NWJlMzg1YjM5NTlmYTIyODQ0MDM3YjM4ODRlYzA0Y2MuLmE3MjM4ZjRkOGY2ZTVkOTU2Yjc2ZjI0
NWJmNGQxYmVlZmMxMzQxNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Vu
Y3J5cHRlZG1lZGlhL0NETUluc3RhbmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
ZW5jcnlwdGVkbWVkaWEvQ0RNSW5zdGFuY2UuaApAQCAtOTQsNiArOTQsOCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHJlbW92ZVNlc3Npb25EYXRhKGNvbnN0IFN0cmluZyYgc2Vzc2lvbklk
LCBMaWNlbnNlVHlwZSwgUmVtb3ZlU2Vzc2lvbkRhdGFDYWxsYmFjaykgPSAwOwogCiAgICAgdmly
dHVhbCB2b2lkIHN0b3JlUmVjb3JkT2ZLZXlVc2FnZShjb25zdCBTdHJpbmcmIHNlc3Npb25JZCkg
PSAwOworCisgICAgdmlydHVhbCBjb25zdCBTdHJpbmcmIGtleVN5c3RlbSgpIGNvbnN0ID0gMDsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRlZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5LmNw
cAppbmRleCA4M2U3MzM3YjdiOWQ1ZDYzNzQ3M2E0NWEwY2M2YjUyMzZlYzYxMTYzLi5lNzhmYzgx
NDBmYjFkMTE3MjU4NzI1ZjdhOTBkMjJmZGEzMzA3Mjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9lbmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xl
YXJLZXkuY3BwCkBAIC00Nyw4ICs0NywxMyBAQCBDRE1GYWN0b3J5Q2xlYXJLZXkmIENETUZhY3Rv
cnlDbGVhcktleTo6c2luZ2xldG9uKCkKIENETUZhY3RvcnlDbGVhcktleTo6Q0RNRmFjdG9yeUNs
ZWFyS2V5KCkgPSBkZWZhdWx0OwogQ0RNRmFjdG9yeUNsZWFyS2V5Ojp+Q0RNRmFjdG9yeUNsZWFy
S2V5KCkgPSBkZWZhdWx0OwogCi1zdGQ6OnVuaXF1ZV9wdHI8Q0RNUHJpdmF0ZT4gQ0RNRmFjdG9y
eUNsZWFyS2V5OjpjcmVhdGVDRE0oKQorc3RkOjp1bmlxdWVfcHRyPENETVByaXZhdGU+IENETUZh
Y3RvcnlDbGVhcktleTo6Y3JlYXRlQ0RNKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQogeworI2lm
ZGVmIE5ERUJVRworICAgIFVOVVNFRF9QQVJBTShrZXlTeXN0ZW0pOworI2Vsc2UKKyAgICBBU1NF
UlQoc3VwcG9ydHNLZXlTeXN0ZW0oa2V5U3lzdGVtKSk7CisjZW5kaWYKICAgICByZXR1cm4gc3Rk
Ojp1bmlxdWVfcHRyPENETVByaXZhdGU+KG5ldyBDRE1Qcml2YXRlQ2xlYXJLZXkpOwogfQogCkBA
IC0yMDgsNiArMjEzLDEzIEBAIHZvaWQgQ0RNSW5zdGFuY2VDbGVhcktleTo6c3RvcmVSZWNvcmRP
ZktleVVzYWdlKGNvbnN0IFN0cmluZyYpCiB7CiB9CiAKK2NvbnN0IFN0cmluZyYgQ0RNSW5zdGFu
Y2VDbGVhcktleTo6a2V5U3lzdGVtKCkgY29uc3QKK3sKKyAgICBzdGF0aWMgY29uc3QgU3RyaW5n
IHNfa2V5U3lzdGVtKCJvcmcudzMuY2xlYXJrZXkiKTsKKworICAgIHJldHVybiBzX2tleVN5c3Rl
bTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEVOQ1JZ
UFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRl
ZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9l
bmNyeXB0ZWRtZWRpYS9jbGVhcmtleS9DRE1DbGVhcktleS5oCmluZGV4IGU2NzhlMzc1M2JlZWE1
YzA5NTM4Zjk1NzZiODQyMWVkZjk3ZDBlNzYuLjFjNjRhMmRiNzA2NGIyZmM3MWRiNmM0YjY4Njc4
ZGNhNDZlYmU5Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VuY3J5cHRl
ZG1lZGlhL2NsZWFya2V5L0NETUNsZWFyS2V5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZW5jcnlwdGVkbWVkaWEvY2xlYXJrZXkvQ0RNQ2xlYXJLZXkuaApAQCAtNDIsNyArNDIsNyBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5DRE1GYWN0b3J5Q2xlYXJLZXkoKTsKIAotICAgIHN0
ZDo6dW5pcXVlX3B0cjxDRE1Qcml2YXRlPiBjcmVhdGVDRE0oKSBvdmVycmlkZTsKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8Q0RNUHJpdmF0ZT4gY3JlYXRlQ0RNKGNvbnN0IFN0cmluZyYpIG92ZXJyaWRl
OwogICAgIGJvb2wgc3VwcG9ydHNLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAK
IHByaXZhdGU6CkBAIC04OSw2ICs4OSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsb3NlU2Vzc2lv
bihjb25zdCBTdHJpbmcmLCBDbG9zZVNlc3Npb25DYWxsYmFjaykgb3ZlcnJpZGU7CiAgICAgdm9p
ZCByZW1vdmVTZXNzaW9uRGF0YShjb25zdCBTdHJpbmcmLCBMaWNlbnNlVHlwZSwgUmVtb3ZlU2Vz
c2lvbkRhdGFDYWxsYmFjaykgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9yZVJlY29yZE9mS2V5VXNh
Z2UoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisKKyAgICBjb25zdCBTdHJpbmcmIGtleVN5c3Rl
bSgpIGNvbnN0IGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
c3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCAxYjE1ZTgyNWM2
YzZmZmM1MTA2MWQ1MTFkYzE2OGVlMDJlZjk4NmVhLi4wZjJiODQ3ZmQ3OWVhNzI3OTAyZTI2ZmQ1
OWQ2OGVjM2MyMWY4MGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmNwcApAQCAtMTA1MCw2ICsxMDUwLDE0IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyOjpoYW5kbGVNZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCiAgICAgICAg
ICAgICAgICAgcHJvY2Vzc01wZWdUc1NlY3Rpb24oc2VjdGlvbik7CiAgICAgICAgICAgICAgICAg
Z3N0X21wZWd0c19zZWN0aW9uX3VucmVmKHNlY3Rpb24pOwogICAgICAgICAgICAgfQorI2lmIEVO
QUJMRShFTkNSWVBURURfTUVESUEpCisgICAgICAgICAgICBlbHNlIGlmIChnc3Rfc3RydWN0dXJl
X2hhc19uYW1lKHN0cnVjdHVyZSwgImRybS1rZXktbmVlZGVkIikpIHsKKyAgICAgICAgICAgICAg
ICBHU1RfREVCVUcoImRybS1rZXktbmVlZGVkIG1lc3NhZ2UgZnJvbSAlcyIsIEdTVF9NRVNTQUdF
X1NSQ19OQU1FKG1lc3NhZ2UpKTsKKyAgICAgICAgICAgICAgICBHUmVmUHRyPEdzdEV2ZW50PiBl
dmVudDsKKyAgICAgICAgICAgICAgICBnc3Rfc3RydWN0dXJlX2dldChzdHJ1Y3R1cmUsICJldmVu
dCIsIEdTVF9UWVBFX0VWRU5ULCAmZXZlbnQub3V0UHRyKCksIG51bGxwdHIpOworICAgICAgICAg
ICAgICAgIGhhbmRsZVByb3RlY3Rpb25FdmVudChldmVudC5nZXQoKSk7CisgICAgICAgICAgICB9
CisjZW5kaWYKICAgICAgICAgfQogI2VuZGlmCiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCmluZGV4IGY3ZDJj
ZDE2ZDRkMDJmOWM4MjU2YzljNjhjMWQwNzZhZmExYTcyOTkuLjcyMTIxOWJhNjViMjk4ZTQ4MWI2
ZGQ5NTRhZWYxMTJjMjBkZWUyNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKQEAgLTQzLDEwICs0MywxOCBAQAogI2luY2x1ZGUg
PHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
ICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi9VVUlELmg+CiAKICNp
bmNsdWRlIDxnc3QvYXVkaW8vc3RyZWFtdm9sdW1lLmg+CiAjaW5jbHVkZSA8Z3N0L3ZpZGVvL2dz
dHZpZGVvbWV0YS5oPgogCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKyNpbmNsdWRlICJD
RE1JbnN0YW5jZS5oIgorI2luY2x1ZGUgIkdTdHJlYW1lckVNRVV0aWxpdGllcy5oIgorI2luY2x1
ZGUgIlNoYXJlZEJ1ZmZlci5oIgorI2luY2x1ZGUgIldlYktpdENsZWFyS2V5RGVjcnlwdG9yR1N0
cmVhbWVyLmgiCisjZW5kaWYKKwogI2lmIFVTRShHU1RSRUFNRVJfR0wpCiAjaWYgR19CWVRFX09S
REVSID09IEdfTElUVExFX0VORElBTgogI2RlZmluZSBHU1RfR0xfQ0FQU19GT1JNQVQgInsgQkdS
eCwgQkdSQSB9IgpAQCAtMTEwLDEyICsxMTgsNiBAQAogI2VuZGlmCiAjZW5kaWYgLy8gVVNFKFRF
WFRVUkVfTUFQUEVSX0dMKQogCi0jaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKLSNpbmNsdWRl
ICJHU3RyZWFtZXJFTUVVdGlsaXRpZXMuaCIKLSNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKLSNp
bmNsdWRlICJXZWJLaXRDbGVhcktleURlY3J5cHRvckdTdHJlYW1lci5oIgotI2VuZGlmCi0KIEdT
VF9ERUJVR19DQVRFR09SWSh3ZWJraXRfbWVkaWFfcGxheWVyX2RlYnVnKTsKICNkZWZpbmUgR1NU
X0NBVF9ERUZBVUxUIHdlYmtpdF9tZWRpYV9wbGF5ZXJfZGVidWcKIApAQCAtMjQwLDYgKzI0Miw5
IEBAIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6Ok1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lckJhc2UoTWVkaWFQbGF5ZXIqIHBsCiAKIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ckJhc2U6On5NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlKCkKIHsKKyNpZiBFTkFCTEUo
RU5DUllQVEVEX01FRElBKQorICAgIG1fcHJvdGVjdGlvbkNvbmRpdGlvbi5ub3RpZnlBbGwoKTsK
KyNlbmRpZgogICAgIG1fbm90aWZpZXItPmludmFsaWRhdGUoKTsKIAogICAgIGlmIChtX3ZpZGVv
U2luaykgewpAQCAtMjczLDYgKzI3OCwzMSBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lckJhc2U6OnNldFBpcGVsaW5lKEdzdEVsZW1lbnQqIHBpcGVsaW5lKQogICAgIG1fcGlwZWxp
bmUgPSBwaXBlbGluZTsKIH0KIAorI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCitzdGF0aWMg
c3RkOjpwYWlyPFZlY3RvcjxHUmVmUHRyPEdzdEV2ZW50Pj4sIFZlY3RvcjxTdHJpbmc+PiBleHRy
YWN0RXZlbnRzQW5kU3lzdGVtc0Zyb21NZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCit7Cisg
ICAgY29uc3QgR3N0U3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBnc3RfbWVzc2FnZV9nZXRfc3RydWN0
dXJlKG1lc3NhZ2UpOworCisgICAgY29uc3QgR1ZhbHVlKiBzdHJlYW1FbmNyeXB0aW9uQWxsb3dl
ZFN5c3RlbXNWYWx1ZSA9IGdzdF9zdHJ1Y3R1cmVfZ2V0X3ZhbHVlKHN0cnVjdHVyZSwgInN0cmVh
bS1lbmNyeXB0aW9uLXN5c3RlbXMiKTsKKyAgICBBU1NFUlQoc3RyZWFtRW5jcnlwdGlvbkFsbG93
ZWRTeXN0ZW1zVmFsdWUgJiYgR19WQUxVRV9IT0xEUyhzdHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5
c3RlbXNWYWx1ZSwgR19UWVBFX1NUUlYpKTsKKyAgICBjb25zdCBjaGFyKiogc3RyZWFtRW5jcnlw
dGlvbkFsbG93ZWRTeXN0ZW1zID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKio+KGdfdmFs
dWVfZ2V0X2JveGVkKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1ZhbHVlKSk7CisgICAg
QVNTRVJUKHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtcyk7CisgICAgVmVjdG9yPFN0cmlu
Zz4gc3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRTeXN0ZW1zVmVjdG9yOworICAgIHVuc2lnbmVkIGk7
CisgICAgZm9yIChpID0gMDsgc3RyZWFtRW5jcnlwdGlvbkFsbG93ZWRTeXN0ZW1zW2ldOyArK2kp
CisgICAgICAgIHN0cmVhbUVuY3J5cHRpb25BbGxvd2VkU3lzdGVtc1ZlY3Rvci5hcHBlbmQoc3Ry
ZWFtRW5jcnlwdGlvbkFsbG93ZWRTeXN0ZW1zW2ldKTsKKworICAgIGNvbnN0IEdWYWx1ZSogc3Ry
ZWFtRW5jcnlwdGlvbkV2ZW50c0xpc3QgPSBnc3Rfc3RydWN0dXJlX2dldF92YWx1ZShzdHJ1Y3R1
cmUsICJzdHJlYW0tZW5jcnlwdGlvbi1ldmVudHMiKTsKKyAgICBBU1NFUlQoc3RyZWFtRW5jcnlw
dGlvbkV2ZW50c0xpc3QgJiYgR1NUX1ZBTFVFX0hPTERTX0xJU1Qoc3RyZWFtRW5jcnlwdGlvbkV2
ZW50c0xpc3QpKTsKKyAgICB1bnNpZ25lZCBzdHJlYW1FbmNyeXB0aW9uRXZlbnRzTGlzdFNpemUg
PSBnc3RfdmFsdWVfbGlzdF9nZXRfc2l6ZShzdHJlYW1FbmNyeXB0aW9uRXZlbnRzTGlzdCk7Cisg
ICAgVmVjdG9yPEdSZWZQdHI8R3N0RXZlbnQ+PiBzdHJlYW1FbmNyeXB0aW9uRXZlbnRzVmVjdG9y
OworICAgIGZvciAoaSA9IDA7IGkgPCBzdHJlYW1FbmNyeXB0aW9uRXZlbnRzTGlzdFNpemU7ICsr
aSkKKyAgICAgICAgc3RyZWFtRW5jcnlwdGlvbkV2ZW50c1ZlY3Rvci5hcHBlbmQoR1JlZlB0cjxH
c3RFdmVudD4oc3RhdGljX2Nhc3Q8R3N0RXZlbnQqPihnX3ZhbHVlX2dldF9ib3hlZChnc3RfdmFs
dWVfbGlzdF9nZXRfdmFsdWUoc3RyZWFtRW5jcnlwdGlvbkV2ZW50c0xpc3QsIGkpKSkpKTsKKwor
ICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihzdHJlYW1FbmNyeXB0aW9uRXZlbnRzVmVjdG9yLCBz
dHJlYW1FbmNyeXB0aW9uQWxsb3dlZFN5c3RlbXNWZWN0b3IpOworfQorI2VuZGlmCisKIGJvb2wg
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6aGFuZGxlU3luY01lc3NhZ2UoR3N0TWVz
c2FnZSogbWVzc2FnZSkKIHsKICAgICBVTlVTRURfUEFSQU0obWVzc2FnZSk7CkBAIC0yOTAsNiAr
MzIwLDc4IEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6aGFuZGxlU3lu
Y01lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2FnZSkKICAgICB9CiAjZW5kaWYgLy8gVVNFKEdTVFJF
QU1FUl9HTCkKIAorI2lmIEVOQUJMRShFTkNSWVBURURfTUVESUEpCisgICAgaWYgKCFnX3N0cmNt
cDAoY29udGV4dFR5cGUsICJkcm0tcHJlZmVycmVkLWRlY3J5cHRpb24tc3lzdGVtLWlkIikpIHsK
KyAgICAgICAgaWYgKGlzTWFpblRocmVhZCgpKSB7CisgICAgICAgICAgICBHU1RfRVJST1IoImNh
bid0IGhhbmRsZSBkcm0tcHJlZmVycmVkLWRlY3J5cHRpb24tc3lzdGVtLWlkIG5lZWQgY29udGV4
dCBtZXNzYWdlIGluIHRoZSBtYWluIHRocmVhZCIpOworICAgICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAg
R1NUX0RFQlVHKCJoYW5kbGluZyBkcm0tcHJlZmVycmVkLWRlY3J5cHRpb24tc3lzdGVtLWlkIG5l
ZWQgY29udGV4dCBtZXNzYWdlIik7CisgICAgICAgIExvY2tIb2xkZXIgbG9jayhtX3Byb3RlY3Rp
b25NdXRleCk7CisgICAgICAgIHN0ZDo6cGFpcjxWZWN0b3I8R1JlZlB0cjxHc3RFdmVudD4+LCBW
ZWN0b3I8U3RyaW5nPj4gc3RyZWFtRW5jcnlwdGlvbkluZm9ybWF0aW9uID0gZXh0cmFjdEV2ZW50
c0FuZFN5c3RlbXNGcm9tTWVzc2FnZShtZXNzYWdlKTsKKyAgICAgICAgR1NUX1RSQUNFKCJmb3Vu
ZCAlIiBHX0dTSVpFX0ZPUk1BVCAiIHByb3RlY3Rpb24gZXZlbnRzIiwgc3RyZWFtRW5jcnlwdGlv
bkluZm9ybWF0aW9uLmZpcnN0LnNpemUoKSk7CisgICAgICAgIFZlY3Rvcjx1aW50OF90PiBjb25j
YXRlbmF0ZWRJbml0RGF0YUNodW5rczsKKyAgICAgICAgdW5zaWduZWQgY29uY2F0ZW5hdGVkSW5p
dERhdGFDaHVua3NOdW1iZXIgPSAwOworICAgICAgICBTdHJpbmcgZXZlbnRLZXlTeXN0ZW1JZFN0
cmluZzsKKworICAgICAgICBmb3IgKGF1dG8mIGV2ZW50IDogc3RyZWFtRW5jcnlwdGlvbkluZm9y
bWF0aW9uLmZpcnN0KSB7CisgICAgICAgICAgICBHU1RfVFJBQ0UoImhhbmRsaW5nIHByb3RlY3Rp
b24gZXZlbnQgJXUiLCBHU1RfRVZFTlRfU0VRTlVNKGV2ZW50LmdldCgpKSk7CisgICAgICAgICAg
ICBjb25zdCBjaGFyKiBldmVudEtleVN5c3RlbUlkID0gbnVsbHB0cjsKKyAgICAgICAgICAgIEdz
dEJ1ZmZlciogZGF0YSA9IG51bGxwdHI7CisgICAgICAgICAgICBnc3RfZXZlbnRfcGFyc2VfcHJv
dGVjdGlvbihldmVudC5nZXQoKSwgJmV2ZW50S2V5U3lzdGVtSWQsICZkYXRhLCBudWxscHRyKTsK
KworICAgICAgICAgICAgR3N0TWFwSW5mbyBtYXBJbmZvOworICAgICAgICAgICAgaWYgKCFnc3Rf
YnVmZmVyX21hcChkYXRhLCAmbWFwSW5mbywgR1NUX01BUF9SRUFEKSkgeworICAgICAgICAgICAg
ICAgIEdTVF9XQVJOSU5HKCJjYW5ub3QgbWFwICVzIHByb3RlY3Rpb24gZGF0YSIsIGV2ZW50S2V5
U3lzdGVtSWQpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgR1NUX1RSQUNFKCJhcHBlbmRpbmcgaW5pdCBkYXRhIGZvciAlcyBvZiBzaXplICUiIEdf
R1NJWkVfRk9STUFULCBldmVudEtleVN5c3RlbUlkLCBtYXBJbmZvLnNpemUpOworICAgICAgICAg
ICAgR1NUX01FTURVTVAoImluaXQgZGF0YSIsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdW5zaWdu
ZWQgY2hhciAqPihtYXBJbmZvLmRhdGEpLCBtYXBJbmZvLnNpemUpOworICAgICAgICAgICAgY29u
Y2F0ZW5hdGVkSW5pdERhdGFDaHVua3MuYXBwZW5kKG1hcEluZm8uZGF0YSwgbWFwSW5mby5zaXpl
KTsKKyAgICAgICAgICAgICsrY29uY2F0ZW5hdGVkSW5pdERhdGFDaHVua3NOdW1iZXI7CisgICAg
ICAgICAgICBldmVudEtleVN5c3RlbUlkU3RyaW5nID0gZXZlbnRLZXlTeXN0ZW1JZDsKKyAgICAg
ICAgICAgIGlmIChzdHJlYW1FbmNyeXB0aW9uSW5mb3JtYXRpb24uc2Vjb25kLmNvbnRhaW5zKGV2
ZW50S2V5U3lzdGVtSWQpKSB7CisgICAgICAgICAgICAgICAgR1NUX1RSQUNFKCJjb25zaWRlcmlu
ZyBpbml0IGRhdGEgaGFuZGxlZCBmb3IgJXMiLCBldmVudEtleVN5c3RlbUlkKTsKKyAgICAgICAg
ICAgICAgICBtX2hhbmRsZWRQcm90ZWN0aW9uRXZlbnRzLmFkZChHU1RfRVZFTlRfU0VRTlVNKGV2
ZW50LmdldCgpKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBnc3RfYnVmZmVyX3VubWFw
KGRhdGEsICZtYXBJbmZvKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghY29uY2F0ZW5hdGVk
SW5pdERhdGFDaHVua3NOdW1iZXIpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAg
ICAgaWYgKGNvbmNhdGVuYXRlZEluaXREYXRhQ2h1bmtzTnVtYmVyID4gMSkKKyAgICAgICAgICAg
IGV2ZW50S2V5U3lzdGVtSWRTdHJpbmcgPSBlbXB0eVN0cmluZygpOworCisgICAgICAgIFN0cmlu
ZyBzZXNzaW9uSWQoY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpKTsKKworICAgICAgICBSdW5M
b29wOjptYWluKCkuZGlzcGF0Y2goW3RoaXMsIGV2ZW50S2V5U3lzdGVtSWRTdHJpbmcsIHNlc3Np
b25JZCwgaW5pdERhdGEgPSBXVEZNb3ZlKGNvbmNhdGVuYXRlZEluaXREYXRhQ2h1bmtzKV0gewor
ICAgICAgICAgICAgR1NUX0RFQlVHKCJzY2hlZHVsaW5nIGluaXRpYWxpemF0aW9uRGF0YUVuY291
bnRlcmVkIGV2ZW50IGZvciAlcyB3aXRoIGNvbmNhdGVuYXRlZCBpbml0IGRhdGFzIHNpemUgb2Yg
JSIgR19HU0laRV9GT1JNQVQsIGV2ZW50S2V5U3lzdGVtSWRTdHJpbmcudXRmOCgpLmRhdGEoKSwg
aW5pdERhdGEuc2l6ZSgpKTsKKyAgICAgICAgICAgIEdTVF9NRU1EVU1QKCJpbml0IGRhdGFzIiwg
aW5pdERhdGEuZGF0YSgpLCBpbml0RGF0YS5zaXplKCkpOworCisgICAgICAgICAgICBtX3BsYXll
ci0+aW5pdGlhbGl6YXRpb25EYXRhRW5jb3VudGVyZWQoQVNDSUlMaXRlcmFsKCJjZW5jIiksIEFy
cmF5QnVmZmVyOjpjcmVhdGUoaW5pdERhdGEuZGF0YSgpLCBpbml0RGF0YS5zaXplKCkpKTsKKyAg
ICAgICAgfSk7CisKKyAgICAgICAgR1NUX0lORk8oIndhaXRpbmcgZm9yIGEgQ0RNIGluc3RhbmNl
Iik7CisgICAgICAgIG1fcHJvdGVjdGlvbkNvbmRpdGlvbi53YWl0Rm9yKG1fcHJvdGVjdGlvbk11
dGV4LCBTZWNvbmRzKDQpLCBbdGhpc10geworICAgICAgICAgICAgcmV0dXJuIHRoaXMtPm1fY2Rt
SW5zdGFuY2U7CisgICAgICAgIH0pOworICAgICAgICBpZiAobV9jZG1JbnN0YW5jZSAmJiAhbV9j
ZG1JbnN0YW5jZS0+a2V5U3lzdGVtKCkuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBjb25zdCBj
aGFyKiBwcmVmZXJyZWRLZXlTeXN0ZW1VdWlkID0gR1N0cmVhbWVyRU1FVXRpbGl0aWVzOjprZXlT
eXN0ZW1Ub1V1aWQobV9jZG1JbnN0YW5jZS0+a2V5U3lzdGVtKCkpOworICAgICAgICAgICAgR1NU
X0lORk8oIndvcmtpbmcgd2l0aCAlcywgY29udGludWluZyB3aXRoICVzIG9uICVzIiwgbV9jZG1J
bnN0YW5jZS0+a2V5U3lzdGVtKCkudXRmOCgpLmRhdGEoKSwgcHJlZmVycmVkS2V5U3lzdGVtVXVp
ZCwgR1NUX01FU1NBR0VfU1JDX05BTUUobWVzc2FnZSkpOworCisgICAgICAgICAgICBHUmVmUHRy
PEdzdENvbnRleHQ+IGNvbnRleHQgPSBhZG9wdEdSZWYoZ3N0X2NvbnRleHRfbmV3KCJkcm0tcHJl
ZmVycmVkLWRlY3J5cHRpb24tc3lzdGVtLWlkIiwgRkFMU0UpKTsKKyAgICAgICAgICAgIEdzdFN0
cnVjdHVyZSogY29udGV4dFN0cnVjdHVyZSA9IGdzdF9jb250ZXh0X3dyaXRhYmxlX3N0cnVjdHVy
ZShjb250ZXh0LmdldCgpKTsKKyAgICAgICAgICAgIGdzdF9zdHJ1Y3R1cmVfc2V0KGNvbnRleHRT
dHJ1Y3R1cmUsICJkZWNyeXB0aW9uLXN5c3RlbS1pZCIsIEdfVFlQRV9TVFJJTkcsIHByZWZlcnJl
ZEtleVN5c3RlbVV1aWQsIG51bGxwdHIpOworICAgICAgICAgICAgZ3N0X2VsZW1lbnRfc2V0X2Nv
bnRleHQoR1NUX0VMRU1FTlQoR1NUX01FU1NBR0VfU1JDKG1lc3NhZ2UpKSwgY29udGV4dC5nZXQo
KSk7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgR1NUX1dBUk5JTkcoIm5vIHByb3BlciBD
RE0gaW5zdGFuY2UgYXR0YWNoZWQiKTsKKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cisj
ZW5kaWYgLy8gRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKwogICAgIHJldHVybiBmYWxzZTsKIH0K
IApAQCAtMTA0NCw2ICsxMTQ2LDY1IEBAIHVuc2lnbmVkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lckJhc2U6OnZpZGVvRGVjb2RlZEJ5dGVDb3VudCgpIGNvbnN0CiAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihwb3NpdGlvbik7CiB9CiAKKyNpZiBFTkFCTEUoRU5DUllQVEVEX01F
RElBKQordm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpjZG1JbnN0YW5jZUF0
dGFjaGVkKGNvbnN0IENETUluc3RhbmNlJiBpbnN0YW5jZSkKK3sKKyAgICBBU1NFUlQoIW1fY2Rt
SW5zdGFuY2UpOworICAgIG1fY2RtSW5zdGFuY2UgPSAmaW5zdGFuY2U7CisgICAgR1NUX0RFQlVH
KCJDRE0gaW5zdGFuY2UgJXAgc2V0IiwgbV9jZG1JbnN0YW5jZS5nZXQoKSk7CisgICAgbV9wcm90
ZWN0aW9uQ29uZGl0aW9uLm5vdGlmeUFsbCgpOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lckJhc2U6OmNkbUluc3RhbmNlRGV0YWNoZWQoY29uc3QgQ0RNSW5zdGFuY2UmIGlu
c3RhbmNlKQoreworI2lmZGVmIE5ERUJVRworICAgIFVOVVNFRF9QQVJBTShpbnN0YW5jZSk7Cisj
ZW5kaWYKKyAgICBBU1NFUlQobV9jZG1JbnN0YW5jZS5nZXQoKSA9PSAmaW5zdGFuY2UpOworICAg
IEdTVF9ERUJVRygiZGV0YWNoaW5nIENETSBpbnN0YW5jZSAlcCIsIG1fY2RtSW5zdGFuY2UuZ2V0
KCkpOworICAgIG1fY2RtSW5zdGFuY2UgPSBudWxscHRyOworICAgIG1fcHJvdGVjdGlvbkNvbmRp
dGlvbi5ub3RpZnlBbGwoKTsKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJC
YXNlOjphdHRlbXB0VG9EZWNyeXB0V2l0aEluc3RhbmNlKGNvbnN0IENETUluc3RhbmNlJiBpbnN0
YW5jZSkKK3sKKyAgICBBU1NFUlQobV9jZG1JbnN0YW5jZS5nZXQoKSA9PSAmaW5zdGFuY2UpOwor
ICAgIEdTVF9UUkFDRSgiaW5zdGFuY2UgJXAsIGN1cnJlbnQgc3RvcmVkICVwIiwgJmluc3RhbmNl
LCBtX2NkbUluc3RhbmNlLmdldCgpKTsKKyAgICBhdHRlbXB0VG9EZWNyeXB0V2l0aExvY2FsSW5z
dGFuY2UoKTsKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjphdHRl
bXB0VG9EZWNyeXB0V2l0aExvY2FsSW5zdGFuY2UoKQoreworICAgIC8vIEZJWE1FLgorfQorCit2
b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmRpc3BhdGNoRGVjcnlwdGlvbktl
eShHc3RCdWZmZXIqIGJ1ZmZlcikKK3sKKyAgICBib29sIGV2ZW50SGFuZGxlZCA9IGdzdF9lbGVt
ZW50X3NlbmRfZXZlbnQobV9waXBlbGluZS5nZXQoKSwgZ3N0X2V2ZW50X25ld19jdXN0b20oR1NU
X0VWRU5UX0NVU1RPTV9ET1dOU1RSRUFNX09PQiwKKyAgICAgICAgZ3N0X3N0cnVjdHVyZV9uZXco
ImRybS1jaXBoZXIiLCAia2V5IiwgR1NUX1RZUEVfQlVGRkVSLCBidWZmZXIsIG51bGxwdHIpKSk7
CisgICAgbV9uZWVkVG9SZXNlbmRDcmVkZW50aWFscyA9IG1faGFuZGxlZFByb3RlY3Rpb25FdmVu
dHMuc2l6ZSgpID4gMDsKKyAgICBHU1RfVFJBQ0UoImVtaXR0ZWQgZGVjcnlwdGlvbiBjaXBoZXIg
a2V5IG9uIHBpcGVsaW5lLCBldmVudCBoYW5kbGVkICVzLCBuZWVkIHRvIHJlc2VuZCBjcmVkZW50
aWFscyAlcyIsIGJvb2xGb3JQcmludGluZyhldmVudEhhbmRsZWQpLCBib29sRm9yUHJpbnRpbmco
bV9uZWVkVG9SZXNlbmRDcmVkZW50aWFscykpOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lckJhc2U6OmhhbmRsZVByb3RlY3Rpb25FdmVudChHc3RFdmVudCogZXZlbnQpCit7
CisgICAgaWYgKG1faGFuZGxlZFByb3RlY3Rpb25FdmVudHMuY29udGFpbnMoR1NUX0VWRU5UX1NF
UU5VTShldmVudCkpKSB7CisgICAgICAgIEdTVF9ERUJVRygiZXZlbnQgJXUgYWxyZWFkeSBoYW5k
bGVkIiwgR1NUX0VWRU5UX1NFUU5VTShldmVudCkpOworICAgICAgICBtX2hhbmRsZWRQcm90ZWN0
aW9uRXZlbnRzLnJlbW92ZShHU1RfRVZFTlRfU0VRTlVNKGV2ZW50KSk7CisgICAgICAgIGlmICht
X25lZWRUb1Jlc2VuZENyZWRlbnRpYWxzKSB7CisgICAgICAgICAgICBHU1RfREVCVUcoInJlc2Vu
ZGluZyBjcmVkZW50aWFscyIpOworICAgICAgICAgICAgYXR0ZW1wdFRvRGVjcnlwdFdpdGhMb2Nh
bEluc3RhbmNlKCk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNv
bnN0IGdjaGFyKiBldmVudEtleVN5c3RlbUlkID0gbnVsbHB0cjsKKyAgICBnc3RfZXZlbnRfcGFy
c2VfcHJvdGVjdGlvbihldmVudCwgJmV2ZW50S2V5U3lzdGVtSWQsIG51bGxwdHIsIG51bGxwdHIp
OworICAgIEdTVF9XQVJOSU5HKCJGSVhNRTogdW5oYW5kbGVkIHByb3RlY3Rpb24gZXZlbnQgZm9y
ICVzIiwgZXZlbnRLZXlTeXN0ZW1JZCk7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9Cisj
ZW5kaWYKKwogYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpzdXBwb3J0c0tl
eVN5c3RlbShjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkK
IHsKICAgICBib29sIHJlc3VsdCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJh
c2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmgKaW5kZXggYTc4MGRlZTk5MDM4NWMyZDhhYzZhNTI1
NmY3NzNlZGFjZTVmNGI3YS4uMWUwZmY5N2I0YzZhNjBmNjg2MDVkMzFhN2FlMTc1YmZlZDU1YWE4
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVy
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFz
ZS5oCkBAIC0xMjAsNiArMTIwLDE1IEBAIHB1YmxpYzoKICNlbmRpZgogI2VuZGlmCiAKKyNpZiBF
TkFCTEUoRU5DUllQVEVEX01FRElBKQorICAgIHZvaWQgY2RtSW5zdGFuY2VBdHRhY2hlZChjb25z
dCBDRE1JbnN0YW5jZSYpIG92ZXJyaWRlOworICAgIHZvaWQgY2RtSW5zdGFuY2VEZXRhY2hlZChj
b25zdCBDRE1JbnN0YW5jZSYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGF0Y2hEZWNyeXB0aW9u
S2V5KEdzdEJ1ZmZlciopOworICAgIHZvaWQgaGFuZGxlUHJvdGVjdGlvbkV2ZW50KEdzdEV2ZW50
Kik7CisgICAgdm9pZCBhdHRlbXB0VG9EZWNyeXB0V2l0aExvY2FsSW5zdGFuY2UoKTsKKyAgICB2
b2lkIGF0dGVtcHRUb0RlY3J5cHRXaXRoSW5zdGFuY2UoY29uc3QgQ0RNSW5zdGFuY2UmKSBvdmVy
cmlkZTsKKyNlbmRpZgorCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNLZXlTeXN0ZW0oY29uc3Qg
U3RyaW5nJiBrZXlTeXN0ZW0sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOwogICAgIHN0YXRpYyBN
ZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIGV4dGVuZGVkU3VwcG9ydHNUeXBlKGNvbnN0IE1lZGlh
RW5naW5lU3VwcG9ydFBhcmFtZXRlcnMmLCBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlKTsKIApA
QCAtMjE5LDYgKzIyOCwxNCBAQCBwcm90ZWN0ZWQ6CiAjZW5kaWYKIAogICAgIEltYWdlT3JpZW50
YXRpb24gbV92aWRlb1NvdXJjZU9yaWVudGF0aW9uOworCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9N
RURJQSkKKyAgICBMb2NrIG1fcHJvdGVjdGlvbk11dGV4OworICAgIENvbmRpdGlvbiBtX3Byb3Rl
Y3Rpb25Db25kaXRpb247CisgICAgUmVmUHRyPGNvbnN0IENETUluc3RhbmNlPiBtX2NkbUluc3Rh
bmNlOworICAgIEhhc2hTZXQ8dWludDMyX3Q+IG1faGFuZGxlZFByb3RlY3Rpb25FdmVudHM7Cisg
ICAgYm9vbCBtX25lZWRUb1Jlc2VuZENyZWRlbnRpYWxzIHsgZmFsc2UgfTsKKyNlbmRpZgogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL21zZS9BcHBlbmRQaXBlbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcAppbmRleCBiZDAxODI4OGUyNDY0
NzgyZjJmNjFiYTM4MDFjMzM3NDY1OWM3YzhlLi4xOGQxMDY4N2JlM2VlNjQ3M2M2ODQ5NmJjYjhj
YjZmZjNlNjY3MTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBpcGVsaW5lLmNwcApAQCAtOTMs
NiArOTMsMTMgQEAgc3RhdGljIHZvaWQgYXBwZW5kUGlwZWxpbmVBcHBsaWNhdGlvbk1lc3NhZ2VD
YWxsYmFjayhHc3RCdXMqLCBHc3RNZXNzYWdlKiBtZXNzYWcKICAgICBhcHBlbmRQaXBlbGluZS0+
aGFuZGxlQXBwbGljYXRpb25NZXNzYWdlKG1lc3NhZ2UpOwogfQogCisjaWYgRU5BQkxFKEVOQ1JZ
UFRFRF9NRURJQSkKK3N0YXRpYyB2b2lkIGFwcGVuZFBpcGVsaW5lRWxlbWVudE1lc3NhZ2VDYWxs
YmFjayhHc3RCdXMqLCBHc3RNZXNzYWdlKiBtZXNzYWdlLCBBcHBlbmRQaXBlbGluZSogYXBwZW5k
UGlwZWxpbmUpCit7CisgICAgYXBwZW5kUGlwZWxpbmUtPmhhbmRsZUVsZW1lbnRNZXNzYWdlKG1l
c3NhZ2UpOworfQorI2VuZGlmCisKIEFwcGVuZFBpcGVsaW5lOjpBcHBlbmRQaXBlbGluZShSZWY8
TWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJNU0U+IG1lZGlhU291cmNlQ2xpZW50LCBSZWY8U291
cmNlQnVmZmVyUHJpdmF0ZUdTdHJlYW1lcj4gc291cmNlQnVmZmVyUHJpdmF0ZSwgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyTVNFJiBwbGF5ZXJQcml2YXRlKQogICAgIDogbV9tZWRpYVNvdXJj
ZUNsaWVudChtZWRpYVNvdXJjZUNsaWVudC5nZXQoKSkKICAgICAsIG1fc291cmNlQnVmZmVyUHJp
dmF0ZShzb3VyY2VCdWZmZXJQcml2YXRlLmdldCgpKQpAQCAtMTE5LDYgKzEyNiw5IEBAIEFwcGVu
ZFBpcGVsaW5lOjpBcHBlbmRQaXBlbGluZShSZWY8TWVkaWFTb3VyY2VDbGllbnRHU3RyZWFtZXJN
U0U+IG1lZGlhU291cmNlQ2xpCiAKICAgICBnX3NpZ25hbF9jb25uZWN0KG1fYnVzLmdldCgpLCAi
c3luYy1tZXNzYWdlOjpuZWVkLWNvbnRleHQiLCBHX0NBTExCQUNLKGFwcGVuZFBpcGVsaW5lTmVl
ZENvbnRleHRNZXNzYWdlQ2FsbGJhY2spLCB0aGlzKTsKICAgICBnX3NpZ25hbF9jb25uZWN0KG1f
YnVzLmdldCgpLCAibWVzc2FnZTo6YXBwbGljYXRpb24iLCBHX0NBTExCQUNLKGFwcGVuZFBpcGVs
aW5lQXBwbGljYXRpb25NZXNzYWdlQ2FsbGJhY2spLCB0aGlzKTsKKyNpZiBFTkFCTEUoRU5DUllQ
VEVEX01FRElBKQorICAgIGdfc2lnbmFsX2Nvbm5lY3QobV9idXMuZ2V0KCksICJtZXNzYWdlOjpl
bGVtZW50IiwgR19DQUxMQkFDSyhhcHBlbmRQaXBlbGluZUVsZW1lbnRNZXNzYWdlQ2FsbGJhY2sp
LCB0aGlzKTsKKyNlbmRpZgogCiAgICAgLy8gV2UgYXNzaWduIHRoZSBjcmVhdGVkIGluc3RhbmNl
cyBoZXJlIGluc3RlYWQgb2YgYWRvcHRSZWYoKSBiZWNhdXNlIGdzdF9iaW5fYWRkX21hbnkoKQog
ICAgIC8vIGJlbG93IHdpbGwgYWxyZWFkeSB0YWtlIHRoZSBpbml0aWFsIHJlZmVyZW5jZSBhbmQg
d2UgbmVlZCBhbiBhZGRpdGlvbmFsIG9uZSBmb3IgdXMuCkBAIC0xODAsNiArMTkwLDggQEAgQXBw
ZW5kUGlwZWxpbmU6On5BcHBlbmRQaXBlbGluZSgpCiAKICAgICBpZiAobV9waXBlbGluZSkgewog
ICAgICAgICBBU1NFUlQobV9idXMpOworICAgICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25u
ZWN0X2J5X2Z1bmMobV9idXMuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8Z3BvaW50ZXI+KGFwcGVu
ZFBpcGVsaW5lTmVlZENvbnRleHRNZXNzYWdlQ2FsbGJhY2spLCB0aGlzKTsKKyAgICAgICAgZ3N0
X2J1c19kaXNhYmxlX3N5bmNfbWVzc2FnZV9lbWlzc2lvbihtX2J1cy5nZXQoKSk7CiAgICAgICAg
IGdzdF9idXNfcmVtb3ZlX3NpZ25hbF93YXRjaChtX2J1cy5nZXQoKSk7CiAgICAgICAgIGdzdF9l
bGVtZW50X3NldF9zdGF0ZShtX3BpcGVsaW5lLmdldCgpLCBHU1RfU1RBVEVfTlVMTCk7CiAgICAg
ICAgIG1fcGlwZWxpbmUgPSBudWxscHRyOwpAQCAtMjQ5LDcgKzI2MSw4IEBAIHZvaWQgQXBwZW5k
UGlwZWxpbmU6OmhhbmRsZU5lZWRDb250ZXh0U3luY01lc3NhZ2UoR3N0TWVzc2FnZSogbWVzc2Fn
ZSkKICAgICBjb25zdCBnY2hhciogY29udGV4dFR5cGUgPSBudWxscHRyOwogICAgIGdzdF9tZXNz
YWdlX3BhcnNlX2NvbnRleHRfdHlwZShtZXNzYWdlLCAmY29udGV4dFR5cGUpOwogICAgIEdTVF9U
UkFDRSgiY29udGV4dCB0eXBlOiAlcyIsIGNvbnRleHRUeXBlKTsKLSAgICBpZiAoIWdfc3RyY21w
MChjb250ZXh0VHlwZSwgImRybS1wcmVmZXJyZWQtZGVjcnlwdGlvbi1zeXN0ZW0taWQiKSkKKyAg
ICBpZiAoIWdfc3RyY21wMChjb250ZXh0VHlwZSwgImRybS1wcmVmZXJyZWQtZGVjcnlwdGlvbi1z
eXN0ZW0taWQiKQorICAgICAgICAmJiBtX2FwcGVuZFN0YXRlICE9IEFwcGVuZFBpcGVsaW5lOjpB
cHBlbmRTdGF0ZTo6S2V5TmVnb3RpYXRpb24pCiAgICAgICAgIHNldEFwcGVuZFN0YXRlKEFwcGVu
ZFBpcGVsaW5lOjpBcHBlbmRTdGF0ZTo6S2V5TmVnb3RpYXRpb24pOwogCiAgICAgLy8gTWVkaWFQ
bGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZSB3aWxsIHRha2UgY2FyZSBvZiBzZXR0aW5nIHVwIGVu
Y3J5cHRpb24uCkBAIC0zMDIsNiArMzE1LDI1IEBAIHZvaWQgQXBwZW5kUGlwZWxpbmU6OmhhbmRs
ZUFwcGxpY2F0aW9uTWVzc2FnZShHc3RNZXNzYWdlKiBtZXNzYWdlKQogICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogfQogCisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKK3ZvaWQgQXBwZW5k
UGlwZWxpbmU6OmhhbmRsZUVsZW1lbnRNZXNzYWdlKEdzdE1lc3NhZ2UqIG1lc3NhZ2UpCit7Cisg
ICAgQVNTRVJUKFdURjo6aXNNYWluVGhyZWFkKCkpOworCisgICAgY29uc3QgR3N0U3RydWN0dXJl
KiBzdHJ1Y3R1cmUgPSBnc3RfbWVzc2FnZV9nZXRfc3RydWN0dXJlKG1lc3NhZ2UpOworICAgIEdT
VF9UUkFDRSgiJXMgbWVzc2FnZSBmcm9tICVzIiwgZ3N0X3N0cnVjdHVyZV9nZXRfbmFtZShzdHJ1
Y3R1cmUpLCBHU1RfTUVTU0FHRV9TUkNfTkFNRShtZXNzYWdlKSk7CisgICAgaWYgKG1fcGxheWVy
UHJpdmF0ZSAmJiBnc3Rfc3RydWN0dXJlX2hhc19uYW1lKHN0cnVjdHVyZSwgImRybS1rZXktbmVl
ZGVkIikpIHsKKyAgICAgICAgaWYgKG1fYXBwZW5kU3RhdGUgIT0gQXBwZW5kUGlwZWxpbmU6OkFw
cGVuZFN0YXRlOjpLZXlOZWdvdGlhdGlvbikKKyAgICAgICAgICAgIHNldEFwcGVuZFN0YXRlKEFw
cGVuZFBpcGVsaW5lOjpBcHBlbmRTdGF0ZTo6S2V5TmVnb3RpYXRpb24pOworCisgICAgICAgIEdT
VF9ERUJVRygic2VuZGluZyBkcm0ta2V5LW5lZWRlZCBtZXNzYWdlIGZyb20gJXMgdG8gdGhlIHBs
YXllciIsIEdTVF9NRVNTQUdFX1NSQ19OQU1FKG1lc3NhZ2UpKTsKKyAgICAgICAgR1JlZlB0cjxH
c3RFdmVudD4gZXZlbnQ7CisgICAgICAgIGdzdF9zdHJ1Y3R1cmVfZ2V0KHN0cnVjdHVyZSwgImV2
ZW50IiwgR1NUX1RZUEVfRVZFTlQsICZldmVudC5vdXRQdHIoKSwgbnVsbHB0cik7CisgICAgICAg
IG1fcGxheWVyUHJpdmF0ZS0+aGFuZGxlUHJvdGVjdGlvbkV2ZW50KGV2ZW50LmdldCgpKTsKKyAg
ICB9Cit9CisjZW5kaWYKKwogdm9pZCBBcHBlbmRQaXBlbGluZTo6aGFuZGxlQXBwc3JjTmVlZERh
dGFSZWNlaXZlZCgpCiB7CiAgICAgaWYgKCFtX2FwcHNyY0F0TGVhc3RBQnVmZmVyTGVmdCkgewpA
QCAtMzA5LDcgKzM0MSw3IEBAIHZvaWQgQXBwZW5kUGlwZWxpbmU6OmhhbmRsZUFwcHNyY05lZWRE
YXRhUmVjZWl2ZWQoKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgQVNTRVJUKG1fYXBw
ZW5kU3RhdGUgPT0gQXBwZW5kU3RhdGU6Ok9uZ29pbmcgfHwgbV9hcHBlbmRTdGF0ZSA9PSBBcHBl
bmRTdGF0ZTo6U2FtcGxpbmcpOworICAgIEFTU0VSVChtX2FwcGVuZFN0YXRlID09IEFwcGVuZFN0
YXRlOjpLZXlOZWdvdGlhdGlvbiB8fCBtX2FwcGVuZFN0YXRlID09IEFwcGVuZFN0YXRlOjpPbmdv
aW5nIHx8IG1fYXBwZW5kU3RhdGUgPT0gQXBwZW5kU3RhdGU6OlNhbXBsaW5nKTsKICAgICBBU1NF
UlQoIW1fYXBwc3JjTmVlZERhdGFSZWNlaXZlZCk7CiAKICAgICBHU1RfVFJBQ0UoInJlY2VpdmVk
IG5lZWQtZGF0YSBmcm9tIGFwcHNyYyIpOwpAQCAtNjQ3LDYgKzY3OSwxMCBAQCB2b2lkIEFwcGVu
ZFBpcGVsaW5lOjphcHBzaW5rTmV3U2FtcGxlKEdzdFNhbXBsZSogc2FtcGxlKQogICAgIHsKICAg
ICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9uZXdTYW1wbGVMb2NrKTsKIAorICAgICAgICAvLyBJ
ZiB3ZSB3ZXJlIGluIEtleU5lZ290aWF0aW9uIGJ1dCBzYW1wbGVzIGFyZSBjb21pbmcsIGFzc3Vt
ZSB3ZSdyZSBhbHJlYWR5IE9uR29pbmcKKyAgICAgICAgaWYgKG1fYXBwZW5kU3RhdGUgPT0gQXBw
ZW5kU3RhdGU6OktleU5lZ290aWF0aW9uKQorICAgICAgICAgICAgc2V0QXBwZW5kU3RhdGUoQXBw
ZW5kU3RhdGU6Ok9uZ29pbmcpOworCiAgICAgICAgIC8vIElnbm9yZSBzYW1wbGVzIGlmIHdlJ3Jl
IG5vdCBleHBlY3RpbmcgdGhlbS4gUmVmdXNlIHByb2Nlc3NpbmcgaWYgd2UncmUgaW4gSW52YWxp
ZCBzdGF0ZS4KICAgICAgICAgaWYgKG1fYXBwZW5kU3RhdGUgIT0gQXBwZW5kU3RhdGU6Ok9uZ29p
bmcgJiYgbV9hcHBlbmRTdGF0ZSAhPSBBcHBlbmRTdGF0ZTo6U2FtcGxpbmcpIHsKICAgICAgICAg
ICAgIEdTVF9XQVJOSU5HKCJVbmV4cGVjdGVkIHNhbXBsZSwgYXBwZW5kU3RhdGU9JXMiLCBkdW1w
QXBwZW5kU3RhdGUobV9hcHBlbmRTdGF0ZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL21zZS9BcHBlbmRQaXBlbGluZS5o
CmluZGV4IGFjNjNmN2RmN2EzNDNlYjZmNzRlZDQ0MTllZWIyYzdkNDljM2RiZTIuLmQ5ZDkxMDVk
ODlhMjM4NjI2ZDM1ZTA5YTYwMDk0ZmJhOWJmMzhhMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9tc2UvQXBwZW5kUGlwZWxpbmUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvbXNlL0FwcGVuZFBp
cGVsaW5lLmgKQEAgLTUwLDYgKzUwLDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBoYW5kbGVOZWVk
Q29udGV4dFN5bmNNZXNzYWdlKEdzdE1lc3NhZ2UqKTsKICAgICB2b2lkIGhhbmRsZUFwcGxpY2F0
aW9uTWVzc2FnZShHc3RNZXNzYWdlKik7CisjaWYgRU5BQkxFKEVOQ1JZUFRFRF9NRURJQSkKKyAg
ICB2b2lkIGhhbmRsZUVsZW1lbnRNZXNzYWdlKEdzdE1lc3NhZ2UqKTsKKyNlbmRpZgogCiAgICAg
Z2ludCBpZCgpOwogICAgIEFwcGVuZFN0YXRlIGFwcGVuZFN0YXRlKCkgeyByZXR1cm4gbV9hcHBl
bmRTdGF0ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ0RNRmFj
dG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmNwcAppbmRl
eCAxOThjNjk2ODU3MzQ2MGNjMzRiZDk0YzQzOTYwNTQxMmRhZTUyYjRjLi5hMWE3OThkMTc5MzEy
NDJiNWY2ZTA3ZTc5NTc4OTA5NDk4YjgzYWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01v
Y2tDRE1GYWN0b3J5LmNwcApAQCAtOTYsNyArOTYsNyBAQCB2b2lkIE1vY2tDRE1GYWN0b3J5Ojpz
ZXRTdXBwb3J0ZWREYXRhVHlwZXMoVmVjdG9yPFN0cmluZz4mJiB0eXBlcykKICAgICAgICAgbV9z
dXBwb3J0ZWREYXRhVHlwZXMuYXBwZW5kKHR5cGUpOwogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8Q0RN
UHJpdmF0ZT4gTW9ja0NETUZhY3Rvcnk6OmNyZWF0ZUNETSgpCitzdGQ6OnVuaXF1ZV9wdHI8Q0RN
UHJpdmF0ZT4gTW9ja0NETUZhY3Rvcnk6OmNyZWF0ZUNETShjb25zdCBTdHJpbmcmKQogewogICAg
IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1vY2tDRE0+KG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRl
V2Vha1B0cigpKTsKIH0KQEAgLTM3Nyw2ICszNzcsMTMgQEAgdm9pZCBNb2NrQ0RNSW5zdGFuY2U6
OnN0b3JlUmVjb3JkT2ZLZXlVc2FnZShjb25zdCBTdHJpbmcmKQogICAgIC8vIEZJWE1FOiBUaGlz
IHNob3VsZCBiZSBpbXBsZW1lbnRlZCBhbG9uZyB3aXRoIHRoZSBzdXBwb3J0IGZvciBwZXJzaXN0
ZW50LXVzYWdlLXJlY29yZCBzZXNzaW9ucy4KIH0KIAorY29uc3QgU3RyaW5nJiBNb2NrQ0RNSW5z
dGFuY2U6OmtleVN5c3RlbSgpIGNvbnN0Cit7CisgICAgc3RhdGljIGNvbnN0IFN0cmluZyBzX2tl
eVN5c3RlbSgib3JnLndlYmtpdC5tb2NrIik7CisKKyAgICByZXR1cm4gc19rZXlTeXN0ZW07Cit9
CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tD
RE1GYWN0b3J5LmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDRE1GYWN0b3J5LmgKaW5k
ZXggMjhlYTU4ZGU4ZDg0NmZmZTk2MWRiOTg3ZGNhZmQzMmQ0NzMxOTY4NC4uNzdmNTM0NzA3Mjhl
NzI2ODBkZWI5MTkzMjMxMGE5MjBjZWUxNjNjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9Nb2NrQ0RNRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9j
a0NETUZhY3RvcnkuaApAQCAtNzgsNyArNzgsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAg
TW9ja0NETUZhY3RvcnkoKTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Q0RNUHJpdmF0ZT4gY3JlYXRl
Q0RNKCkgZmluYWw7CisgICAgc3RkOjp1bmlxdWVfcHRyPENETVByaXZhdGU+IGNyZWF0ZUNETShj
b25zdCBTdHJpbmcmKSBmaW5hbDsKICAgICBib29sIHN1cHBvcnRzS2V5U3lzdGVtKGNvbnN0IFN0
cmluZyYpIGZpbmFsOwogCiAgICAgTWVkaWFLZXlzUmVxdWlyZW1lbnQgbV9kaXN0aW5jdGl2ZUlk
ZW50aWZpZXJzUmVxdWlyZW1lbnQgeyBNZWRpYUtleXNSZXF1aXJlbWVudDo6T3B0aW9uYWwgfTsK
QEAgLTE0MCw2ICsxNDAsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVtb3ZlU2Vzc2lvbkRhdGEo
Y29uc3QgU3RyaW5nJiwgTGljZW5zZVR5cGUsIFJlbW92ZVNlc3Npb25EYXRhQ2FsbGJhY2spIGZp
bmFsOwogICAgIHZvaWQgc3RvcmVSZWNvcmRPZktleVVzYWdlKGNvbnN0IFN0cmluZyYpIGZpbmFs
OwogCisgICAgY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0oKSBjb25zdCBmaW5hbDsKKwogICAgIFdl
YWtQdHI8TW9ja0NETT4gbV9jZG07CiAgICAgYm9vbCBtX2Rpc3RpbmN0aXZlSWRlbnRpZmllcnNB
bGxvd2VkIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9wZXJzaXN0ZW50U3RhdGVBbGxvd2VkIHsgdHJ1
ZSB9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>