<?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>201419</bug_id>
          
          <creation_ts>2019-09-03 02:52:14 -0700</creation_ts>
          <short_desc>Use WebProcess processIdentifier to identify IDB connections between WebProcess and NetworkProcess</short_desc>
          <delta_ts>2019-09-09 02:09:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Page Loading</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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jsbell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1567310</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-09-03 02:52:14 -0700</bug_when>
    <thetext>Use WebProcess processIdentifier to identify IDB connections between WebProcess and NetworkProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567311</commentid>
    <comment_count>1</comment_count>
      <attachid>377878</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-09-03 02:56:00 -0700</bug_when>
    <thetext>Created attachment 377878
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567316</commentid>
    <comment_count>2</comment_count>
      <attachid>377881</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-09-03 03:04:49 -0700</bug_when>
    <thetext>Created attachment 377881
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568110</commentid>
    <comment_count>3</comment_count>
      <attachid>377881</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-09-05 06:45:50 -0700</bug_when>
    <thetext>Comment on attachment 377881
Patch

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

&gt; Source/WebKit/WebProcess/Network/NetworkProcessConnection.cpp:131
&gt; +        if (auto idbConnection = m_webIDBConnectionsBySession.get(decoder.destinationID()))

Will change to auto&amp;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568580</commentid>
    <comment_count>4</comment_count>
      <attachid>377881</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-09-06 10:55:11 -0700</bug_when>
    <thetext>Comment on attachment 377881
Patch

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

&gt; Source/WebKit/NetworkProcess/IndexedDB/WebIDBConnectionToClient.h:64
&gt; +    uint64_t identifier() const final { return m_identifier.toUInt64(); }

We should eventually make this a strongly-typed identifier.

&gt; Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:58
&gt; +    uint64_t messageSenderDestinationID() const final { return m_sessionID.toUInt64(); }

We should eventually make this a strongly-typed identifier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569078</commentid>
    <comment_count>5</comment_count>
      <attachid>377881</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-09-09 00:29:53 -0700</bug_when>
    <thetext>Comment on attachment 377881
Patch

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

&gt;&gt; Source/WebKit/WebProcess/Databases/IndexedDB/WebIDBConnectionToServer.h:58
&gt;&gt; +    uint64_t messageSenderDestinationID() const final { return m_sessionID.toUInt64(); }
&gt; 
&gt; We should eventually make this a strongly-typed identifier.

Agreed, will add a FIXME.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569079</commentid>
    <comment_count>6</comment_count>
      <attachid>378351</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-09-09 00:30:47 -0700</bug_when>
    <thetext>Created attachment 378351
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569100</commentid>
    <comment_count>7</comment_count>
      <attachid>378351</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-09 02:08:46 -0700</bug_when>
    <thetext>Comment on attachment 378351
Patch for landing

Clearing flags on attachment: 378351

Committed r249640: &lt;https://trac.webkit.org/changeset/249640&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569101</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-09 02:08:47 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569102</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-09 02:09:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/55175490&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377878</attachid>
            <date>2019-09-03 02:56:00 -0700</date>
            <delta_ts>2019-09-03 03:04:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201419-20190903115559.patch</filename>
            <type>text/plain</type>
            <size>28810</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MzY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFiNzkzYmYzMGJkN2QyN2Nm
YTY0NmUxNWNjZmQ0ZGVhMmY1MWMwZDMuLmQ2ODM4NWFmMjRmZDM1YjQ2MmU1YzE4NzVmMmZkYjE5
MWIwMzdlNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTktMDktMDMgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBXZWJQcm9jZXNzIHByb2Nl
c3NJZGVudGlmaWVyIHRvIGlkZW50aWZ5IElEQiBjb25uZWN0aW9ucyBiZXR3ZWVuIFdlYlByb2Nl
c3MgYW5kIE5ldHdvcmtQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDE0MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBXZSBjaGFuZ2UgZnJvbSBhbiBpZGVudGlmaWVyIGdlbmVyYXRlZCBieSBO
ZXR3b3JrUHJvY2VzcyB0byBXZWJQcm9jZXNzIGlkZW50aWZpZXIuCisgICAgICAgIEEgV2ViUHJv
Y2VzcyBpZGVudGlmaWVyIGlzIHVuaXF1ZSBnbG9iYWxseSBhbmQgaXMgc3RhYmxlIGV2ZW4gaW4g
Y2FzZSBvZiBOZXR3b3JrUHJvY2VzcyBjcmFzaC4KKyAgICAgICAgVGhpcyByZW1vdmVzIHRoZSBu
ZWVkIGZvciBhIHN5bmMgSVBDIGFuZCBtYWtlcyB0aGluZ3MgbW9yZSBlYXN5IHRvIGhhbmRsZSBp
biBjYXNlIG9mIE5ldHdvcmtQcm9jZXNzIGNyYXNoLgorCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmdldEFsbERhdGFiYXNlTmFt
ZXMpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9u
VG9DbGllbnQuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29u
bmVjdGlvblRvQ2xpZW50Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmVzdGFibGlzaElEQkNvbm5lY3Rpb25Ub1NlcnZlcik6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVj
dGlvblRvU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvU2Vy
dmVyOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJD
b25uZWN0aW9uVG9TZXJ2ZXI6OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNvcmVDb25uZWN0aW9uVG9TZXJ2ZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXMp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0
aW9uVG9TZXJ2ZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbjo6ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb246OmlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24pOgorICAgICAgICAqIFdl
YlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpleGlzdGluZ0lEQkNvbm5lY3Rpb25Ub1Nl
cnZlciBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6bmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKToK
KwogMjAxOS0wOS0wMiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAg
ICAgTW92ZSBjaGVja1Byb2Nlc3NMb2NhbFBvcnRGb3JBY3Rpdml0eSBmcm9tIHByb3ZpZGVyIHRv
IHJlZ2lzdHJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4
ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcAppbmRleCA4N2M2
OWQwMDRmNGMwNDNjYzVjNWY2Y2EzZTY4OWVjYzg2MWNhODk4Li40NjY5MmZlYWM2OGM3ZDBmZTc0
MjU4YTQzZmI4YjJmOGU4Mzk2MmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVu
dC5jcHAKQEAgLTQ0LDEyICs0NCwxMiBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIAotUmVmPFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudD4gV2ViSURCQ29u
bmVjdGlvblRvQ2xpZW50OjpjcmVhdGUoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCitSZWY8V2ViSURCQ29ubmVjdGlvblRv
Q2xpZW50PiBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmNyZWF0ZShOZXR3b3JrUHJvY2VzcyYg
bmV0d29ya1Byb2Nlc3MsIElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgUHJvY2Vzc0lkZW50
aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQo
bmV0d29ya1Byb2Nlc3MsIGNvbm5lY3Rpb24sIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBz
ZXNzaW9uSUQpKTsKIH0KIAotV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpXZWJJREJDb25uZWN0
aW9uVG9DbGllbnQoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBJUEM6OkNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24sIHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQpCitXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OldlYklEQkNv
bm5lY3Rpb25Ub0NsaWVudChOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgUHJvY2Vzc0lkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICA6IG1fY29ubmVjdGlvbihj
b25uZWN0aW9uKQogICAgICwgbV9uZXR3b3JrUHJvY2VzcyhuZXR3b3JrUHJvY2VzcykKICAgICAs
IG1faWRlbnRpZmllcihzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikKQEAgLTM0NSw5ICszNDUs
OSBAQCB2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Y29uZmlybURpZENsb3NlRnJvbVNl
cnZlcih1aW50NjRfdCBkYXRhYmFzZUNvbm5lYwogICAgIG1fbmV0d29ya1Byb2Nlc3MtPmlkYlNl
cnZlcihtX3Nlc3Npb25JRCkuY29uZmlybURpZENsb3NlRnJvbVNlcnZlcihkYXRhYmFzZUNvbm5l
Y3Rpb25JZGVudGlmaWVyKTsKIH0KIAotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6Omdl
dEFsbERhdGFiYXNlTmFtZXModWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmIG9wZW5pbmdPcmlnaW4sIHVpbnQ2NF90IGNhbGxiYWNrSUQp
Cit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Z2V0QWxsRGF0YWJhc2VOYW1lcyhjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiBvcGVuaW5nT3JpZ2luLCB1aW50NjRfdCBjYWxsYmFja0lEKQog
ewotICAgIG1fbmV0d29ya1Byb2Nlc3MtPmlkYlNlcnZlcihtX3Nlc3Npb25JRCkuZ2V0QWxsRGF0
YWJhc2VOYW1lcyhzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdG9wT3JpZ2luLCBvcGVuaW5n
T3JpZ2luLCBjYWxsYmFja0lEKTsKKyAgICBtX25ldHdvcmtQcm9jZXNzLT5pZGJTZXJ2ZXIobV9z
ZXNzaW9uSUQpLmdldEFsbERhdGFiYXNlTmFtZXMoaWRlbnRpZmllcigpLCB0b3BPcmlnaW4sIG9w
ZW5pbmdPcmlnaW4sIGNhbGxiYWNrSUQpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNv
bm5lY3Rpb25Ub0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVk
REIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmgKaW5kZXggY2Y3ODNmNzEwMDBiZmU0ZDNiMzFi
ZGM3Nzc3NGE2MjE1ZmViMzc0MC4uODlmZmQwODYyOWQ2OTJiYTgzZDE3NzEyZmQ2ZTI1NzVjZmQ3
MjY0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIv
V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmgKQEAgLTMxLDYgKzMxLDcg
QEAKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvSURCQ29ubmVjdGlvblRvQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbmRl
eGVkREIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CiAjaW5jbHVk
ZSA8cGFsL1Nlc3Npb25JRC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01NSw0MyArNTYs
MjQgQEAgY2xhc3MgTmV0d29ya1Byb2Nlc3M7CiAKIGNsYXNzIFdlYklEQkNvbm5lY3Rpb25Ub0Ns
aWVudCBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQkNvbm5lY3Rpb25Ub0Ns
aWVudERlbGVnYXRlLCBwdWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVyLCBwdWJsaWMgUmVmQ291bnRl
ZDxXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdl
YklEQkNvbm5lY3Rpb25Ub0NsaWVudD4gY3JlYXRlKE5ldHdvcmtQcm9jZXNzJiwgSVBDOjpDb25u
ZWN0aW9uJiwgdWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFBBTDo6U2Vzc2lv
bklEKTsKKyAgICBzdGF0aWMgUmVmPFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudD4gY3JlYXRlKE5l
dHdvcmtQcm9jZXNzJiwgSVBDOjpDb25uZWN0aW9uJiwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZp
ZXIsIFBBTDo6U2Vzc2lvbklEKTsKIAogICAgIHZpcnR1YWwgfldlYklEQkNvbm5lY3Rpb25Ub0Ns
aWVudCgpOwogCiAgICAgV2ViQ29yZTo6SURCU2VydmVyOjpJREJDb25uZWN0aW9uVG9DbGllbnQm
IGNvbm5lY3Rpb25Ub0NsaWVudCgpOwotICAgIHVpbnQ2NF90IGlkZW50aWZpZXIoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KLSAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVy
RGVzdGluYXRpb25JRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorICAg
IHVpbnQ2NF90IGlkZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lkZW50aWZpZXIu
dG9VSW50NjQoKTsgfQogCi0gICAgLy8gSURCQ29ubmVjdGlvblRvQ2xpZW50RGVsZWdhdGUKLSAg
ICB2b2lkIGRpZERlbGV0ZURhdGFiYXNlKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKSBm
aW5hbDsKLSAgICB2b2lkIGRpZE9wZW5EYXRhYmFzZShjb25zdCBXZWJDb3JlOjpJREJSZXN1bHRE
YXRhJikgZmluYWw7Ci0gICAgdm9pZCBkaWRBYm9ydFRyYW5zYWN0aW9uKGNvbnN0IFdlYkNvcmU6
OklEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpJREJFcnJvciYpIGZpbmFsOwotICAgIHZvaWQgZGlkQ29tbWl0VHJhbnNhY3Rpb24oY29u
c3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OklEQkVycm9yJikgZmluYWw7Ci0gICAgdm9pZCBkaWRDcmVhdGVPYmpl
Y3RTdG9yZShjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikgZmluYWw7Ci0gICAgdm9pZCBk
aWREZWxldGVPYmplY3RTdG9yZShjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikgZmluYWw7
Ci0gICAgdm9pZCBkaWRSZW5hbWVPYmplY3RTdG9yZShjb25zdCBXZWJDb3JlOjpJREJSZXN1bHRE
YXRhJikgZmluYWw7Ci0gICAgdm9pZCBkaWRDbGVhck9iamVjdFN0b3JlKGNvbnN0IFdlYkNvcmU6
OklEQlJlc3VsdERhdGEmKSBmaW5hbDsKLSAgICB2b2lkIGRpZENyZWF0ZUluZGV4KGNvbnN0IFdl
YkNvcmU6OklEQlJlc3VsdERhdGEmKSBmaW5hbDsKLSAgICB2b2lkIGRpZERlbGV0ZUluZGV4KGNv
bnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKSBmaW5hbDsKLSAgICB2b2lkIGRpZFJlbmFtZUlu
ZGV4KGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKSBmaW5hbDsKLSAgICB2b2lkIGRpZFB1
dE9yQWRkKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKSBmaW5hbDsKLSAgICB2b2lkIGRp
ZEdldFJlY29yZChjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikgZmluYWw7Ci0gICAgdm9p
ZCBkaWRHZXRBbGxSZWNvcmRzKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKSBmaW5hbDsK
LSAgICB2b2lkIGRpZEdldENvdW50KGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKSBmaW5h
bDsKLSAgICB2b2lkIGRpZERlbGV0ZVJlY29yZChjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRh
JikgZmluYWw7Ci0gICAgdm9pZCBkaWRPcGVuQ3Vyc29yKGNvbnN0IFdlYkNvcmU6OklEQlJlc3Vs
dERhdGEmKSBmaW5hbDsKLSAgICB2b2lkIGRpZEl0ZXJhdGVDdXJzb3IoY29uc3QgV2ViQ29yZTo6
SURCUmVzdWx0RGF0YSYpIGZpbmFsOworICAgIHZvaWQgcmVmKCkgb3ZlcnJpZGUgeyBSZWZDb3Vu
dGVkPFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudD46OnJlZigpOyB9CisgICAgdm9pZCBkZXJlZigp
IG92ZXJyaWRlIHsgUmVmQ291bnRlZDxXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ+OjpkZXJlZigp
OyB9CiAKLSAgICB2b2lkIGZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQoV2ViQ29yZTo6SURCU2VydmVy
OjpVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJj
ZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCByZXF1ZXN0ZWRWZXJzaW9u
KSBmaW5hbDsKLSAgICB2b2lkIGRpZFN0YXJ0VHJhbnNhY3Rpb24oY29uc3QgV2ViQ29yZTo6SURC
UmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6
OklEQkVycm9yJikgZmluYWw7Ci0gICAgdm9pZCBkaWRDbG9zZUZyb21TZXJ2ZXIoV2ViQ29yZTo6
SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpJ
REJFcnJvciYpIGZpbmFsOwotICAgIHZvaWQgbm90aWZ5T3BlbkRCUmVxdWVzdEJsb2NrZWQoY29u
c3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgdWlu
dDY0X3Qgb2xkVmVyc2lvbiwgdWludDY0X3QgbmV3VmVyc2lvbikgZmluYWw7CisgICAgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKyAgICB2
b2lkIGRpc2Nvbm5lY3RlZEZyb21XZWJQcm9jZXNzKCk7CiAKLSAgICB2b2lkIGRpZEdldEFsbERh
dGFiYXNlTmFtZXModWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRh
dGFiYXNlTmFtZXMpIGZpbmFsOworcHJpdmF0ZToKKyAgICBXZWJJREJDb25uZWN0aW9uVG9DbGll
bnQoTmV0d29ya1Byb2Nlc3MmLCBJUEM6OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpQcm9jZXNzSWRl
bnRpZmllciwgUEFMOjpTZXNzaW9uSUQpOwogCi0gICAgdm9pZCByZWYoKSBvdmVycmlkZSB7IFJl
ZkNvdW50ZWQ8V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Pjo6cmVmKCk7IH0KLSAgICB2b2lkIGRl
cmVmKCkgb3ZlcnJpZGUgeyBSZWZDb3VudGVkPFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudD46OmRl
cmVmKCk7IH0KKyAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkg
Y29uc3QgZmluYWw7CisgICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBtX3Nlc3Npb25JRC50b1VJbnQ2NCgpOyB9CiAKICAgICAvLyBN
ZXNzYWdlcyByZWNlaXZlZCBmcm9tIFdlYlByb2Nlc3MKICAgICB2b2lkIGRlbGV0ZURhdGFiYXNl
KGNvbnN0IFdlYkNvcmU6OklEQlJlcXVlc3REYXRhJik7CkBAIC0xMjIsMjMgKzEwNCw0MSBAQCBw
dWJsaWM6CiAgICAgdm9pZCBvcGVuREJSZXF1ZXN0Q2FuY2VsbGVkKGNvbnN0IFdlYkNvcmU6OklE
QlJlcXVlc3REYXRhJik7CiAgICAgdm9pZCBjb25maXJtRGlkQ2xvc2VGcm9tU2VydmVyKHVpbnQ2
NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpOwogCi0gICAgdm9pZCBnZXRBbGxEYXRh
YmFzZU5hbWVzKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiBvcGVuaW5nT3JpZ2luLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKLQotICAg
IHZvaWQgZGlzY29ubmVjdGVkRnJvbVdlYlByb2Nlc3MoKTsKKyAgICB2b2lkIGdldEFsbERhdGFi
YXNlTmFtZXMoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgb3BlbmluZ09yaWdpbiwgdWludDY0X3Qg
Y2FsbGJhY2tJRCk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6RGVjb2RlciYpOworICAgIC8vIElEQkNvbm5lY3Rpb25Ub0NsaWVudERlbGVnYXRl
CisgICAgdm9pZCBkaWREZWxldGVEYXRhYmFzZShjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRh
JikgZmluYWw7CisgICAgdm9pZCBkaWRPcGVuRGF0YWJhc2UoY29uc3QgV2ViQ29yZTo6SURCUmVz
dWx0RGF0YSYpIGZpbmFsOworICAgIHZvaWQgZGlkQWJvcnRUcmFuc2FjdGlvbihjb25zdCBXZWJD
b3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6SURCRXJyb3ImKSBmaW5hbDsKKyAgICB2b2lkIGRpZENvbW1pdFRyYW5zYWN0aW9u
KGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpJREJFcnJvciYpIGZpbmFsOworICAgIHZvaWQgZGlkQ3JlYXRl
T2JqZWN0U3RvcmUoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpIGZpbmFsOworICAgIHZv
aWQgZGlkRGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpIGZp
bmFsOworICAgIHZvaWQgZGlkUmVuYW1lT2JqZWN0U3RvcmUoY29uc3QgV2ViQ29yZTo6SURCUmVz
dWx0RGF0YSYpIGZpbmFsOworICAgIHZvaWQgZGlkQ2xlYXJPYmplY3RTdG9yZShjb25zdCBXZWJD
b3JlOjpJREJSZXN1bHREYXRhJikgZmluYWw7CisgICAgdm9pZCBkaWRDcmVhdGVJbmRleChjb25z
dCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikgZmluYWw7CisgICAgdm9pZCBkaWREZWxldGVJbmRl
eChjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikgZmluYWw7CisgICAgdm9pZCBkaWRSZW5h
bWVJbmRleChjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikgZmluYWw7CisgICAgdm9pZCBk
aWRQdXRPckFkZChjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikgZmluYWw7CisgICAgdm9p
ZCBkaWRHZXRSZWNvcmQoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpIGZpbmFsOworICAg
IHZvaWQgZGlkR2V0QWxsUmVjb3Jkcyhjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikgZmlu
YWw7CisgICAgdm9pZCBkaWRHZXRDb3VudChjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikg
ZmluYWw7CisgICAgdm9pZCBkaWREZWxldGVSZWNvcmQoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0
RGF0YSYpIGZpbmFsOworICAgIHZvaWQgZGlkT3BlbkN1cnNvcihjb25zdCBXZWJDb3JlOjpJREJS
ZXN1bHREYXRhJikgZmluYWw7CisgICAgdm9pZCBkaWRJdGVyYXRlQ3Vyc29yKGNvbnN0IFdlYkNv
cmU6OklEQlJlc3VsdERhdGEmKSBmaW5hbDsKIAotcHJpdmF0ZToKLSAgICBXZWJJREJDb25uZWN0
aW9uVG9DbGllbnQoTmV0d29ya1Byb2Nlc3MmLCBJUEM6OkNvbm5lY3Rpb24mLCB1aW50NjRfdCBz
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQpOworICAgIHZvaWQgZmly
ZVZlcnNpb25DaGFuZ2VFdmVudChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNl
Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVz
dElkZW50aWZpZXIsIHVpbnQ2NF90IHJlcXVlc3RlZFZlcnNpb24pIGZpbmFsOworICAgIHZvaWQg
ZGlkU3RhcnRUcmFuc2FjdGlvbihjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCRXJyb3ImKSBmaW5hbDsK
KyAgICB2b2lkIGRpZENsb3NlRnJvbVNlcnZlcihXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlE
QkRhdGFiYXNlQ29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OklEQkVycm9yJikgZmluYWw7Cisg
ICAgdm9pZCBub3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tlZChjb25zdCBXZWJDb3JlOjpJREJSZXNv
dXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBvbGRWZXJzaW9uLCB1
aW50NjRfdCBuZXdWZXJzaW9uKSBmaW5hbDsKIAotICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2Fn
ZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGRpZEdldEFsbERhdGFi
YXNlTmFtZXModWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRhdGFi
YXNlTmFtZXMpIGZpbmFsOwogCiAgICAgdGVtcGxhdGU8Y2xhc3MgTWVzc2FnZVR5cGU+IHZvaWQg
aGFuZGxlR2V0UmVzdWx0KGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKTsKIAogICAgIFJl
ZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKICAgICBSZWY8TmV0d29ya1Byb2Nlc3M+
IG1fbmV0d29ya1Byb2Nlc3M7CiAKLSAgICB1aW50NjRfdCBtX2lkZW50aWZpZXI7CisgICAgV2Vi
Q29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogICAgIFBBTDo6U2Vzc2lvbklE
IG1fc2Vzc2lvbklEOwogICAgIFJlZlB0cjxXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQkNvbm5lY3Rp
b25Ub0NsaWVudD4gbV9jb25uZWN0aW9uVG9DbGllbnQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2Vi
SURCQ29ubmVjdGlvblRvQ2xpZW50Lm1lc3NhZ2VzLmluCmluZGV4IDg3OGFmNzBkMzQ1YzY3MTQ3
NmYyOThkYmNlZjk0ZDNmZmY4ZGJiMWQuLjgwM2I5NmQyOWFmYzc5YzI5MzFjOGExMWVmZDQ1M2M1
YWYwZjJhNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhl
ZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQubWVz
c2FnZXMuaW4KQEAgLTUxLDYgKzUxLDYgQEAgbWVzc2FnZXMgLT4gV2ViSURCQ29ubmVjdGlvblRv
Q2xpZW50IHsKICAgICBPcGVuREJSZXF1ZXN0Q2FuY2VsbGVkKFdlYkNvcmU6OklEQlJlcXVlc3RE
YXRhIHJlcXVlc3REYXRhKTsKICAgICBDb25maXJtRGlkQ2xvc2VGcm9tU2VydmVyKHVpbnQ2NF90
IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpOwogCi0gICAgR2V0QWxsRGF0YWJhc2VOYW1l
cyh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSB0b3BPcmlnaW4sIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEgb3BlbmluZ09yaWdpbiwgdWludDY0X3QgY2FsbGJhY2tJRCk7CisgICAgR2V0QWxsRGF0
YWJhc2VOYW1lcyhzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcE9yaWdpbiwg
c3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBvcGVuaW5nT3JpZ2luLCB1aW50NjRf
dCBjYWxsYmFja0lEKTsKIH0KICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggZGYwN2UwNWU3OWRhYzEyYTZhZjZiZGQ1ZjRh
N2U3YjBiYjI3NTk0Yy4uOTIzZmU4Njg3MjNiN2RmMmU2YWNiM2MwZDc2NDU0NDUxOWM0YjFjYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTg0OSwyMSArODQ5LDEyIEBAIHNpemVf
dCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZmluZE5ldHdvcmtBY3Rpdml0eVRyYWNr
ZXIoUmVzb3VyY2VMb2FkSWRlCiB9CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLXN0
YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUlEQkNvbm5lY3Rpb25Ub1NlcnZlcklkZW50aWZpZXIoKQor
dm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZXN0YWJsaXNoSURCQ29ubmVjdGlv
blRvU2VydmVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAgICBBU1NFUlQoUnVuTG9v
cDo6aXNNYWluKCkpOwotICAgIHN0YXRpYyB1aW50NjRfdCBpZGVudGlmaWVyID0gMDsKLSAgICBy
ZXR1cm4gKytpZGVudGlmaWVyOwotfQotCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjplc3RhYmxpc2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKLXsKLSAgICB1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciA9IGdlbmVyYXRl
SURCQ29ubmVjdGlvblRvU2VydmVySWRlbnRpZmllcigpOwotICAgIExPRyhJbmRleGVkREIsICJO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2Vy
dmVyIC0gJSIgUFJJdTY0LCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcik7Ci0gICAgQVNTRVJU
KCFtX3dlYklEQkNvbm5lY3Rpb25zLmNvbnRhaW5zKHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
KSk7CisgICAgTE9HKEluZGV4ZWREQiwgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpl
c3RhYmxpc2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIgLSAlIiBQUkl1NjQsIHNlc3Npb25JRC50b1VJ
bnQ2NCgpKTsKKyAgICBBU1NFUlQoIW1fd2ViSURCQ29ubmVjdGlvbnMuY29udGFpbnMoc2Vzc2lv
bklELnRvVUludDY0KCkpKTsKICAgICAKLSAgICBtX3dlYklEQkNvbm5lY3Rpb25zLnNldChzZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpjcmVhdGUo
bV9uZXR3b3JrUHJvY2VzcywgbV9jb25uZWN0aW9uLmdldCgpLCBzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgc2Vzc2lvbklEKSk7Ci0gICAgY29tcGxldGlvbkhhbmRsZXIoc2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIpOworICAgIG1fd2ViSURCQ29ubmVjdGlvbnMuYWRkKHNlc3Npb25JRC50
b1VJbnQ2NCgpLCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmNyZWF0ZShtX25ldHdvcmtQcm9j
ZXNzLCBtX2Nvbm5lY3Rpb24uZ2V0KCksIG1fd2ViUHJvY2Vzc0lkZW50aWZpZXIsIHNlc3Npb25J
RCkpOwogfQogI2VuZGlmCiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggNzE0YjA5
YjAzOTdmZDU0NWZiZDI0ZmU1ZTZlNTk4MzFhZmJkOGVmMS4uY2E0MDkxYmNlODBjZTQ5ZmE3NmY5
MGUxMzBlOWMzZjUyNzAwOGM2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMjA0LDcg
KzIwNCw3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICAv
LyBNZXNzYWdlcyBoYW5kbGVycyAoTW9kZXJuIElEQikuCi0gICAgdm9pZCBlc3RhYmxpc2hJREJD
b25uZWN0aW9uVG9TZXJ2ZXIoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
dWludDY0X3QgIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKT4mJik7CisgICAgdm9pZCBlc3Rh
Ymxpc2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIoUEFMOjpTZXNzaW9uSUQpOwogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCkBAIC0zMTUsNyArMzE1LDcgQEAgcHJpdmF0ZToKICAg
ICBSZWZQdHI8Q2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbj4gbV9jYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uOwogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0gICAgSGFzaE1hcDx1aW50
NjRfdCwgUmVmUHRyPFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudD4+IG1fd2ViSURCQ29ubmVjdGlv
bnM7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmPFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudD4+
IG1fd2ViSURCQ29ubmVjdGlvbnM7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktF
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGVlOGY3
MmQyMmY3OGFjYjQ4MDQzMDY3ZmQ5ZjYxOTY1YmMyMWU5NWIuLmQ1OTg0ZTYwNWI1M2JlN2I2NjAy
ZmUyMjBkZmFlYjhlNmM2YjY4NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbgpAQCAtNzcsNyArNzcsNyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgVGFrZU5ldHdvcmtMb2FkSW5mb3Jt
YXRpb25NZXRyaWNzKHVpbnQ2NF90IHJlc291cmNlTG9hZElkZW50aWZpZXIpIC0+IChXZWJDb3Jl
OjpOZXR3b3JrTG9hZE1ldHJpY3MgbmV0d29ya01ldHJpY3MpIFN5bmNocm9ub3VzCiAKICNpZiBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLSAgICBFc3RhYmxpc2hJREJDb25uZWN0aW9uVG9TZXJ2
ZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAodWludDY0X3Qgc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIpIFN5bmNocm9ub3VzCisgICAgRXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2Vy
dmVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNFUlZJ
Q0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggMjNkNGYwOGMyZGRjOWVjMTMxY2JmMmU0NmJjZWM3MDBhYmE5ZmVhOC4uNDUy
ZWZjNmJlYjdmOTJkMWYzOWM0MzU5YjkwMWFkMjM0YTdlNDAxMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC05OTM4LDYgKzk5MzgsNyBA
QAogCQkJCUE1NDNFMzA3MjE1QUQxMzcwMDI3OUNEOSAvKiBXZWJQYWdlSW5zcGVjdG9yVGFyZ2V0
RnJvbnRlbmRDaGFubmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMENFNzJBMTEyNDdFNzFEMDBC
QzBFQzQgLyogV2ViUGFnZU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDVDOUQwNjE5
QzgxRDhGMDBCM0M1QzEgLyogV2ViUGFnZU92ZXJsYXkuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ2
QzM5MjI5MjMxNkVDNEQwMDhFRUQ5QiAvKiBXZWJQYWdlUHJveHlJZGVudGlmaWVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCQ0JEMzkxNTEyNUJCMUE4MDBEMkMyOUYgLyogV2ViUGFnZVByb3h5TWVz
c2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMjEyN0M0MTkwODIzOUEwMERBRjM1QyAvKiBX
ZWJQYXN0ZWJvYXJkT3ZlcnJpZGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QzQ2OTREMTFBNTFF
MzY4MDBBRDU4NDUgLyogV2ViUGFzdGVib2FyZFByb3h5LmggaW4gSGVhZGVycyAqLywKQEAgLTEw
MDI4LDcgKzEwMDI5LDYgQEAKIAkJCQlDNUZBMUVEMzE4RTEwNjIyMDBCM0Y0MDIgLyogV0tBaXJQ
bGF5Um91dGVQaWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEMTJEQUI1MjA2NjJDNzMwMDZG
MDBGQiAvKiBXS0FuaW1hdGlvbkRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0REQjMy
RDEyNEVDMkUxMDA0OEQxM0MgLyogV0tBUElDYXN0LmggaW4gSGVhZGVycyAqLywKLQkJCQk0NkMz
OTIyOTIzMTZFQzREMDA4RUVEOUIgLyogV2ViUGFnZVByb3h5SWRlbnRpZmllci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTEyRTM0RTUxMzBCNEQwNTAwQUJEMTlBIC8qIFdLQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUExM0RDNjgyMjA3QUE2QjIwMDY2RUY3MiAv
KiBXS0FwcGxpY2F0aW9uU3RhdGVUcmFja2luZ1ZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUJD
NDA3NUY0MTI0RkYwMjcwMDY4RjIwQSAvKiBXS0FycmF5LmggaW4gSGVhZGVycyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklE
QkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJh
c2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCmluZGV4IDhmNTc4ZTQ2
ZGNiNzhjZDIwZTYyYjI2ZWRlOWJiMGI3NjAxNGNkZDUuLmNlMWM5M2ViNGU3ZjkyZWVkNGNhZDUy
MTZhMTQ1OGQ5NDY0ZDgzMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9E
YXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlv
blRvU2VydmVyLmNwcApAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSURCUmVz
dWx0RGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSURCVHJhbnNhY3Rpb25JbmZvLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9JREJWYWx1ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50
aWZpZXIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
QEAgLTU5LDE4ICs2MCwyMCBAQCBSZWY8V2ViSURCQ29ubmVjdGlvblRvU2VydmVyPiBXZWJJREJD
b25uZWN0aW9uVG9TZXJ2ZXI6OmNyZWF0ZShQQUw6OlNlc3Npb25JRCBzZQogCiBXZWJJREJDb25u
ZWN0aW9uVG9TZXJ2ZXI6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcihQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQpCiAgICAgOiBtX3Nlc3Npb25JRChzZXNzaW9uSUQpCisgICAgLCBtX2Nvbm5lY3Rp
b25Ub1NlcnZlcihJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Y3JlYXRlKCp0aGlz
KSkKIHsKLSAgICByZWxheEFkb3B0aW9uUmVxdWlyZW1lbnQoKTsKLQotICAgIG1faXNPcGVuSW5T
ZXJ2ZXIgPSBzZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OkVzdGFibGlzaElEQkNvbm5lY3Rpb25Ub1NlcnZlcihzZXNzaW9uSUQpLCBNZXNzYWdlczo6TmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkVzdGFibGlzaElEQkNvbm5lY3Rpb25Ub1NlcnZl
cjo6UmVwbHkobV9pZGVudGlmaWVyKSk7Ci0KLSAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZlciA9IElE
QkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyOjpjcmVhdGUoKnRoaXMpOworICAgIHNlbmQo
TWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpFc3RhYmxpc2hJREJDb25u
ZWN0aW9uVG9TZXJ2ZXIoc2Vzc2lvbklEKSwgMCk7CiB9CiAKIFdlYklEQkNvbm5lY3Rpb25Ub1Nl
cnZlcjo6fldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcigpCiB7CiB9CiAKK3VpbnQ2NF90IFdlYklE
QkNvbm5lY3Rpb25Ub1NlcnZlcjo6aWRlbnRpZmllcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIFBy
b2Nlc3M6OmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpOworfQorCiBJUEM6OkNvbm5lY3Rpb24qIFdl
YklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdAog
ewogICAgIHJldHVybiAmV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpOwpAQCAtNzgsNyArODEsNyBAQCBJUEM6OkNvbm5l
Y3Rpb24qIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24o
KSBjb25zdAogCiBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlciYgV2ViSURCQ29ubmVj
dGlvblRvU2VydmVyOjpjb3JlQ29ubmVjdGlvblRvU2VydmVyKCkKIHsKLSAgICByZXR1cm4gKm1f
Y29ubmVjdGlvblRvU2VydmVyOworICAgIHJldHVybiBtX2Nvbm5lY3Rpb25Ub1NlcnZlcjsKIH0K
IAogdm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRlbGV0ZURhdGFiYXNlKGNvbnN0IElE
QlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSkKQEAgLTIxMyw3ICsyMTYsNyBAQCB2b2lkIFdlYklE
QkNvbm5lY3Rpb25Ub1NlcnZlcjo6Y29uZmlybURpZENsb3NlRnJvbVNlcnZlcih1aW50NjRfdCBk
YXRhYmFzZUNvbm5lYwogCiB2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Z2V0QWxsRGF0
YWJhc2VOYW1lcyhjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwg
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBvcGVuaW5nT3JpZ2luLCB1aW50NjRf
dCBjYWxsYmFja0lEKQogewotICAgIHNlbmQoTWVzc2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub0Ns
aWVudDo6R2V0QWxsRGF0YWJhc2VOYW1lcyhtX2lkZW50aWZpZXIsIHRvcE9yaWdpbiwgb3Blbmlu
Z09yaWdpbiwgY2FsbGJhY2tJRCkpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYklEQkNvbm5lY3Rp
b25Ub0NsaWVudDo6R2V0QWxsRGF0YWJhc2VOYW1lcyh0b3BPcmlnaW4sIG9wZW5pbmdPcmlnaW4s
IGNhbGxiYWNrSUQpKTsKIH0KIAogdm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZERl
bGV0ZURhdGFiYXNlKGNvbnN0IElEQlJlc3VsdERhdGEmIHJlc3VsdCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rp
b25Ub1NlcnZlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVk
REIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmgKaW5kZXggZmMxMWQ0MWY1NDI4ZmYxMGFlZTQz
MmE4OTNjM2FkZGU0OWVhYjU0ZS4uZTRlOTRlYTE5YTJhMTlhMjgyNTNkNzMxMjA3Mzc4NTk3M2E0
MTc3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRl
eGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmgKQEAg
LTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5jbHVkZSAiU2Fu
ZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUvSURCQ29ubmVjdGlvblRvU2VydmVy
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHBh
bC9TZXNzaW9uSUQuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0zOSwxMiArNDAsMjIgQEAg
Y2xhc3MgV2ViSURCUmVzdWx0OwogY2xhc3MgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyIGZpbmFs
IDogcHJpdmF0ZSBXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVn
YXRlLCBwcml2YXRlIElQQzo6TWVzc2FnZVNlbmRlciwgcHVibGljIFJlZkNvdW50ZWQ8V2ViSURC
Q29ubmVjdGlvblRvU2VydmVyPiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJJREJDb25u
ZWN0aW9uVG9TZXJ2ZXI+IGNyZWF0ZShQQUw6OlNlc3Npb25JRCk7Ci0KICAgICB2aXJ0dWFsIH5X
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIoKTsKIAogICAgIFdlYkNvcmU6OklEQkNsaWVudDo6SURC
Q29ubmVjdGlvblRvU2VydmVyJiBjb3JlQ29ubmVjdGlvblRvU2VydmVyKCk7Ci0gICAgdWludDY0
X3QgaWRlbnRpZmllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQotICAg
IHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbV9pZGVudGlmaWVyOyB9CisgICAgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0IGZpbmFs
OworCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImKTsKKyAgICB2b2lkIGNvbm5lY3Rpb25Ub1NlcnZlckxvc3QoKTsKKworICAgIHZvaWQg
cmVmKCkgZmluYWwgeyBSZWZDb3VudGVkPFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcj46OnJlZigp
OyB9CisgICAgdm9pZCBkZXJlZigpIGZpbmFsIHsgUmVmQ291bnRlZDxXZWJJREJDb25uZWN0aW9u
VG9TZXJ2ZXI+OjpkZXJlZigpOyB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgV2ViSURCQ29u
bmVjdGlvblRvU2VydmVyKFBBTDo6U2Vzc2lvbklEKTsKKworICAgIElQQzo6Q29ubmVjdGlvbiog
bWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdCBmaW5hbDsKKyAgICB1aW50NjRfdCBtZXNz
YWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc2Vzc2lvbklE
LnRvVUludDY0KCk7IH0KIAogICAgIC8vIElEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlCiAg
ICAgdm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYpIGZp
bmFsOwpAQCAtNzYsOSArODcsNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGdldEFsbERhdGFiYXNl
TmFtZXMoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgb3BlbmluZ09yaWdpbiwgdWludDY0X3QgY2Fs
bGJhY2tJRCkgZmluYWw7CiAKLSAgICB2b2lkIHJlZigpIG92ZXJyaWRlIHsgUmVmQ291bnRlZDxX
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI+OjpyZWYoKTsgfQotICAgIHZvaWQgZGVyZWYoKSBvdmVy
cmlkZSB7IFJlZkNvdW50ZWQ8V2ViSURCQ29ubmVjdGlvblRvU2VydmVyPjo6ZGVyZWYoKTsgfQot
CiAgICAgLy8gTWVzc2FnZXMgcmVjZWl2ZWQgZnJvbSBOZXR3b3JrIFByb2Nlc3MKICAgICB2b2lk
IGRpZERlbGV0ZURhdGFiYXNlKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKTsKICAgICB2
b2lkIGRpZE9wZW5EYXRhYmFzZShjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJik7CkBAIC0x
MDQsMTkgKzExMiw4IEBAIHB1YmxpYzoKICAgICB2b2lkIG5vdGlmeU9wZW5EQlJlcXVlc3RCbG9j
a2VkKGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZp
ZXIsIHVpbnQ2NF90IG9sZFZlcnNpb24sIHVpbnQ2NF90IG5ld1ZlcnNpb24pOwogICAgIHZvaWQg
ZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgZGF0YWJhc2VOYW1lcyk7CiAKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQ
Qzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwotCi0gICAgdm9pZCBjb25uZWN0aW9uVG9T
ZXJ2ZXJMb3N0KCk7Ci0KLXByaXZhdGU6Ci0gICAgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyKFBB
TDo6U2Vzc2lvbklEKTsKLQotICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5l
Y3Rpb24oKSBjb25zdCBmaW5hbDsKLQotICAgIHVpbnQ2NF90IG1faWRlbnRpZmllciB7IDAgfTsK
LSAgICBib29sIG1faXNPcGVuSW5TZXJ2ZXIgeyBmYWxzZSB9OwotICAgIFJlZlB0cjxXZWJDb3Jl
OjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlcj4gbV9jb25uZWN0aW9uVG9TZXJ2ZXI7
CiAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CisgICAgUmVmPFdlYkNvcmU6OklEQkNs
aWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyPiBtX2Nvbm5lY3Rpb25Ub1NlcnZlcjsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggODVh
NGJkOWYzMmQ5MmY0MTgyMzQ4OWI1YjQzZmI2ZjA0ZWVjNWE5NC4uOTVjZTA0ZDM4ZGVjMTc4Y2Vm
ZWNhYjE2ZjRhMTI0YmI0NmYxYmYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0x
MjksNyArMTI5LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgSVAKIAogI2lmIEVOQUJMRShJTkRF
WEVEX0RBVEFCQVNFKQogICAgIGlmIChkZWNvZGVyLm1lc3NhZ2VSZWNlaXZlck5hbWUoKSA9PSBN
ZXNzYWdlczo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkp
IHsKLSAgICAgICAgaWYgKGF1dG8gaWRiQ29ubmVjdGlvbiA9IG1fd2ViSURCQ29ubmVjdGlvbnNC
eUlkZW50aWZpZXIuZ2V0KGRlY29kZXIuZGVzdGluYXRpb25JRCgpKSkKKyAgICAgICAgaWYgKGF1
dG8gaWRiQ29ubmVjdGlvbiA9IG1fd2ViSURCQ29ubmVjdGlvbnNCeVNlc3Npb24uZ2V0KGRlY29k
ZXIuZGVzdGluYXRpb25JRCgpKSkKICAgICAgICAgICAgIGlkYkNvbm5lY3Rpb24tPmRpZFJlY2Vp
dmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQpA
QCAtMTk0LDE2ICsxOTQsMTQgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZENs
b3NlKElQQzo6Q29ubmVjdGlvbiYpCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkubmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKHRoaXMpOwogCiAjaWYgRU5BQkxFKElOREVYRURfREFU
QUJBU0UpCi0gICAgZm9yIChhdXRvJiBjb25uZWN0aW9uIDogbV93ZWJJREJDb25uZWN0aW9uc0J5
SWRlbnRpZmllci52YWx1ZXMoKSkKKyAgICBhdXRvIGlkYkNvbm5lY3Rpb25zID0gc3RkOjpleGNo
YW5nZShtX3dlYklEQkNvbm5lY3Rpb25zQnlTZXNzaW9uLCB7IH0pOworICAgIGZvciAoYXV0byYg
Y29ubmVjdGlvbiA6IGlkYkNvbm5lY3Rpb25zLnZhbHVlcygpKQogICAgICAgICBjb25uZWN0aW9u
LT5jb25uZWN0aW9uVG9TZXJ2ZXJMb3N0KCk7Ci0gICAgCi0gICAgbV93ZWJJREJDb25uZWN0aW9u
c0J5SWRlbnRpZmllci5jbGVhcigpOwotICAgIG1fd2ViSURCQ29ubmVjdGlvbnNCeVNlc3Npb24u
Y2xlYXIoKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotICAgIGF1dG8g
Y29ubmVjdGlvbnMgPSBzdGQ6OmV4Y2hhbmdlKG1fc3dDb25uZWN0aW9uc0J5SWRlbnRpZmllciwg
eyB9KTsKLSAgICBmb3IgKGF1dG8mIGNvbm5lY3Rpb24gOiBjb25uZWN0aW9ucy52YWx1ZXMoKSkK
KyAgICBhdXRvIHN3Q29ubmVjdGlvbnMgPSBzdGQ6OmV4Y2hhbmdlKG1fc3dDb25uZWN0aW9uc0J5
SWRlbnRpZmllciwgeyB9KTsKKyAgICBmb3IgKGF1dG8mIGNvbm5lY3Rpb24gOiBzd0Nvbm5lY3Rp
b25zLnZhbHVlcygpKQogICAgICAgICBjb25uZWN0aW9uLT5jb25uZWN0aW9uVG9TZXJ2ZXJMb3N0
KCk7CiAjZW5kaWYKIH0KQEAgLTI1MiwxMyArMjUwLDggQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb246OmRpZENhY2hlUmVzb3VyY2UoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogV2ViSURCQ29ubmVjdGlvblRvU2VydmVy
JiBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Np
b24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewotICAgIHJldHVybiAqbV93ZWJJREJDb25u
ZWN0aW9uc0J5U2Vzc2lvbi5lbnN1cmUoc2Vzc2lvbklELCBbJl0gewotICAgICAgICBhdXRvIGNv
bm5lY3Rpb24gPSBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNyZWF0ZShzZXNzaW9uSUQpOwot
ICAgICAgICAKLSAgICAgICAgYXV0byByZXN1bHQgPSBtX3dlYklEQkNvbm5lY3Rpb25zQnlJZGVu
dGlmaWVyLmFkZChjb25uZWN0aW9uLT5pZGVudGlmaWVyKCksIGNvbm5lY3Rpb24uY29weVJlZigp
KTsKLSAgICAgICAgQVNTRVJUX1VOVVNFRChyZXN1bHQsIHJlc3VsdC5pc05ld0VudHJ5KTsKLSAg
ICAgICAgCi0gICAgICAgIHJldHVybiBjb25uZWN0aW9uOworICAgIHJldHVybiAqbV93ZWJJREJD
b25uZWN0aW9uc0J5U2Vzc2lvbi5lbnN1cmUoc2Vzc2lvbklELnRvVUludDY0KCksIFsmXSB7Cisg
ICAgICAgIHJldHVybiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNyZWF0ZShzZXNzaW9uSUQp
OwogICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24u
aAppbmRleCA4YjA4NmI0OWYzNjJlZTJkMjI1MzE5ODMyZjMxNDQ3Y2RmMDE2NWVhLi44NWYyZjQ5
NmE3MjIzNDFlN2FkODIzYjU1OWI5NTM0MGEyYmNlOTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24u
aApAQCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB3cml0ZUJsb2JzVG9UZW1wb3Jh
cnlGaWxlcyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGJsb2JVUkxzLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxTdHJpbmc+JiYgZmlsZVBhdGhzKT4mJik7CiAK
ICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLSAgICBXZWJJREJDb25uZWN0aW9uVG9TZXJ2
ZXIqIGV4aXN0aW5nSURCQ29ubmVjdGlvblRvU2VydmVyRm9ySWRlbnRpZmllcih1aW50NjRfdCBp
ZGVudGlmaWVyKSBjb25zdCB7IHJldHVybiBtX3dlYklEQkNvbm5lY3Rpb25zQnlJZGVudGlmaWVy
LmdldChpZGVudGlmaWVyKTsgfTsKKyAgICBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIqIGV4aXN0
aW5nSURCQ29ubmVjdGlvblRvU2VydmVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgY29uc3Qg
eyByZXR1cm4gbV93ZWJJREJDb25uZWN0aW9uc0J5U2Vzc2lvbi5nZXQoc2Vzc2lvbklELnRvVUlu
dDY0KCkpOyB9OwogICAgIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlciYgaWRiQ29ubmVjdGlvblRv
U2VydmVyRm9yU2Vzc2lvbihQQUw6OlNlc3Npb25JRCk7CiAjZW5kaWYKIApAQCAtMTA3LDggKzEw
Nyw3IEBAIHByaXZhdGU6CiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwog
CiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0gICAgSGFzaE1hcDxQQUw6OlNlc3Npb25J
RCwgUmVmUHRyPFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcj4+IG1fd2ViSURCQ29ubmVjdGlvbnNC
eVNlc3Npb247Ci0gICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFdlYklEQkNvbm5lY3Rpb25U
b1NlcnZlcj4+IG1fd2ViSURCQ29ubmVjdGlvbnNCeUlkZW50aWZpZXI7CisgICAgSGFzaE1hcDx1
aW50NjRfdCwgUmVmUHRyPFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcj4+IG1fd2ViSURCQ29ubmVj
dGlvbnNCeVNlc3Npb247CiAjZW5kaWYKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCBlMzU2YTRmMDMzZTEyNDdm
NjE0NjBjODYyNzRhZjlhYjk0M2MyMGNhLi43NmY2MWJmYTUyMzgzNTFkNzhiZTZmMTUwMjcxYWQy
MTM0M2EyMDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0x
MjUxLDggKzEyNTEsOCBAQCB2b2lkIFdlYlByb2Nlc3M6Om5ldHdvcmtQcm9jZXNzQ29ubmVjdGlv
bkNsb3NlZChOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24qIGNvbm5lYwogICAgICAgICBpZiAoIWlk
YkNvbm5lY3Rpb24pCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgCi0gICAgICAgIGlm
IChjb25uZWN0aW9uLT5leGlzdGluZ0lEQkNvbm5lY3Rpb25Ub1NlcnZlckZvcklkZW50aWZpZXIo
aWRiQ29ubmVjdGlvbi0+aWRlbnRpZmllcigpKSkgewotICAgICAgICAgICAgQVNTRVJUKGlkYkNv
bm5lY3Rpb24gPT0gJmNvbm5lY3Rpb24tPmV4aXN0aW5nSURCQ29ubmVjdGlvblRvU2VydmVyRm9y
SWRlbnRpZmllcihpZGJDb25uZWN0aW9uLT5pZGVudGlmaWVyKCkpLT5jb3JlQ29ubmVjdGlvblRv
U2VydmVyKCkpOworICAgICAgICBpZiAoY29ubmVjdGlvbi0+ZXhpc3RpbmdJREJDb25uZWN0aW9u
VG9TZXJ2ZXIocGFnZS0+Y29yZVBhZ2UoKS0+c2Vzc2lvbklEKCkpKSB7CisgICAgICAgICAgICBB
U1NFUlQoaWRiQ29ubmVjdGlvbiA9PSAmY29ubmVjdGlvbi0+ZXhpc3RpbmdJREJDb25uZWN0aW9u
VG9TZXJ2ZXIocGFnZS0+Y29yZVBhZ2UoKS0+c2Vzc2lvbklEKCkpLT5jb3JlQ29ubmVjdGlvblRv
U2VydmVyKCkpOwogICAgICAgICAgICAgcGFnZS0+Y29yZVBhZ2UoKS0+Y2xlYXJJREJDb25uZWN0
aW9uKCk7CiAgICAgICAgIH0KICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377881</attachid>
            <date>2019-09-03 03:04:49 -0700</date>
            <delta_ts>2019-09-09 00:30:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201419-20190903120447.patch</filename>
            <type>text/plain</type>
            <size>27458</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU2NWQxOWY1MWU4ZThjMjVk
ZDA3ZWJhNDQ1ODA4YTI5Mzc5OTZhNDIuLjU3ODNlMGQxMjFjYThkYzQ4Y2JhNGVkY2NiY2E5MzIw
YTBmNmYwNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTktMDktMDMgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBXZWJQcm9jZXNzIHByb2Nl
c3NJZGVudGlmaWVyIHRvIGlkZW50aWZ5IElEQiBjb25uZWN0aW9ucyBiZXR3ZWVuIFdlYlByb2Nl
c3MgYW5kIE5ldHdvcmtQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDE0MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBXZSBjaGFuZ2UgZnJvbSBhbiBpZGVudGlmaWVyIGdlbmVyYXRlZCBieSBO
ZXR3b3JrUHJvY2VzcyB0byBXZWJQcm9jZXNzIGlkZW50aWZpZXIuCisgICAgICAgIEEgV2ViUHJv
Y2VzcyBpZGVudGlmaWVyIGlzIHVuaXF1ZSBnbG9iYWxseSBhbmQgaXMgc3RhYmxlIGV2ZW4gaW4g
Y2FzZSBvZiBOZXR3b3JrUHJvY2VzcyBjcmFzaC4KKyAgICAgICAgVGhpcyByZW1vdmVzIHRoZSBu
ZWVkIGZvciBhIHN5bmMgSVBDIGFuZCBtYWtlcyB0aGluZ3MgbW9yZSBlYXN5IHRvIGhhbmRsZSBp
biBjYXNlIG9mIE5ldHdvcmtQcm9jZXNzIGNyYXNoLgorCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmdldEFsbERhdGFiYXNlTmFt
ZXMpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9u
VG9DbGllbnQuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29u
bmVjdGlvblRvQ2xpZW50Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmVzdGFibGlzaElEQkNvbm5lY3Rpb25Ub1NlcnZlcik6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVj
dGlvblRvU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvU2Vy
dmVyOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJD
b25uZWN0aW9uVG9TZXJ2ZXI6OmlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNvcmVDb25uZWN0aW9uVG9TZXJ2ZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXMp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0
aW9uVG9TZXJ2ZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbjo6ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb246OmlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24pOgorICAgICAgICAqIFdl
YlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpleGlzdGluZ0lEQkNvbm5lY3Rpb25Ub1Nl
cnZlciBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6bmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uQ2xvc2VkKToK
KwogMjAxOS0wOS0wMyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+
CiAKICAgICAgICAgW1dQRV1bR1RLXSBEZXByZWNhdGUgbm9uZnVuY3Rpb25hbCBwcm9jZXNzIGxp
bWl0IEFQSXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhl
ZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwCmluZGV4IDg3YzY5
ZDAwNGY0YzA0M2NjNWM1ZjZjYTNlNjg5ZWNjODYxY2E4OTguLjQ2NjkyZmVhYzY4YzdkMGZlNzQy
NThhNDNmYjhiMmY4ZTgzOTYyZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50
LmNwcApAQCAtNDQsMTIgKzQ0LDEyIEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCi1SZWY8V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50PiBXZWJJREJDb25u
ZWN0aW9uVG9DbGllbnQ6OmNyZWF0ZShOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIElQ
Qzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgdWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKK1JlZjxXZWJJREJDb25uZWN0aW9uVG9D
bGllbnQ+IFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Y3JlYXRlKE5ldHdvcmtQcm9jZXNzJiBu
ZXR3b3JrUHJvY2VzcywgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBQcm9jZXNzSWRlbnRp
ZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudChu
ZXR3b3JrUHJvY2VzcywgY29ubmVjdGlvbiwgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHNl
c3Npb25JRCkpOwogfQogCi1XZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OldlYklEQkNvbm5lY3Rp
b25Ub0NsaWVudChOZXR3b3JrUHJvY2VzcyYgbmV0d29ya1Byb2Nlc3MsIElQQzo6Q29ubmVjdGlv
biYgY29ubmVjdGlvbiwgdWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCkKK1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6V2ViSURCQ29u
bmVjdGlvblRvQ2xpZW50KE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgSVBDOjpDb25u
ZWN0aW9uJiBjb25uZWN0aW9uLCBQcm9jZXNzSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogbV9jb25uZWN0aW9uKGNv
bm5lY3Rpb24pCiAgICAgLCBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtQcm9jZXNzKQogICAgICwg
bV9pZGVudGlmaWVyKHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQpAQCAtMzQ1LDkgKzM0NSw5
IEBAIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Ojpjb25maXJtRGlkQ2xvc2VGcm9tU2Vy
dmVyKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjCiAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+aWRiU2Vy
dmVyKG1fc2Vzc2lvbklEKS5jb25maXJtRGlkQ2xvc2VGcm9tU2VydmVyKGRhdGFiYXNlQ29ubmVj
dGlvbklkZW50aWZpZXIpOwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Z2V0
QWxsRGF0YWJhc2VOYW1lcyh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYgb3BlbmluZ09yaWdpbiwgdWludDY0X3QgY2FsbGJhY2tJRCkK
K3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpnZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmIG9wZW5pbmdPcmlnaW4sIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiB7
Ci0gICAgbV9uZXR3b3JrUHJvY2Vzcy0+aWRiU2VydmVyKG1fc2Vzc2lvbklEKS5nZXRBbGxEYXRh
YmFzZU5hbWVzKHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB0b3BPcmlnaW4sIG9wZW5pbmdP
cmlnaW4sIGNhbGxiYWNrSUQpOworICAgIG1fbmV0d29ya1Byb2Nlc3MtPmlkYlNlcnZlcihtX3Nl
c3Npb25JRCkuZ2V0QWxsRGF0YWJhc2VOYW1lcyhpZGVudGlmaWVyKCksIHRvcE9yaWdpbiwgb3Bl
bmluZ09yaWdpbiwgY2FsbGJhY2tJRCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29u
bmVjdGlvblRvQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWRE
Qi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuaAppbmRleCBjZjc4M2Y3MTAwMGJmZTRkM2IzMWJk
Yzc3Nzc0YTYyMTVmZWIzNzQwLi44OWZmZDA4NjI5ZDY5MmJhODNkMTc3MTJmZDZlMjU3NWNmZDcy
NjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9X
ZWJJREJDb25uZWN0aW9uVG9DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQuaApAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9JREJDb25uZWN0aW9uVG9DbGllbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0luZGV4
ZWREQi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KICNpbmNsdWRl
IDxwYWwvU2Vzc2lvbklELmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTU1LDQzICs1Niwy
NCBAQCBjbGFzcyBOZXR3b3JrUHJvY2VzczsKIAogY2xhc3MgV2ViSURCQ29ubmVjdGlvblRvQ2xp
ZW50IGZpbmFsIDogcHVibGljIFdlYkNvcmU6OklEQlNlcnZlcjo6SURCQ29ubmVjdGlvblRvQ2xp
ZW50RGVsZWdhdGUsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VTZW5kZXIsIHB1YmxpYyBSZWZDb3VudGVk
PFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudD4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2Vi
SURCQ29ubmVjdGlvblRvQ2xpZW50PiBjcmVhdGUoTmV0d29ya1Byb2Nlc3MmLCBJUEM6OkNvbm5l
Y3Rpb24mLCB1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgUEFMOjpTZXNzaW9u
SUQpOworICAgIHN0YXRpYyBSZWY8V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50PiBjcmVhdGUoTmV0
d29ya1Byb2Nlc3MmLCBJUEM6OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmll
ciwgUEFMOjpTZXNzaW9uSUQpOwogCiAgICAgdmlydHVhbCB+V2ViSURCQ29ubmVjdGlvblRvQ2xp
ZW50KCk7CiAKICAgICBXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQkNvbm5lY3Rpb25Ub0NsaWVudCYg
Y29ubmVjdGlvblRvQ2xpZW50KCk7Ci0gICAgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQotICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJE
ZXN0aW5hdGlvbklEKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisgICAg
dWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faWRlbnRpZmllci50
b1VJbnQ2NCgpOyB9CiAKLSAgICAvLyBJREJDb25uZWN0aW9uVG9DbGllbnREZWxlZ2F0ZQotICAg
IHZvaWQgZGlkRGVsZXRlRGF0YWJhc2UoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpIGZp
bmFsOwotICAgIHZvaWQgZGlkT3BlbkRhdGFiYXNlKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERh
dGEmKSBmaW5hbDsKLSAgICB2b2lkIGRpZEFib3J0VHJhbnNhY3Rpb24oY29uc3QgV2ViQ29yZTo6
SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OklEQkVycm9yJikgZmluYWw7Ci0gICAgdm9pZCBkaWRDb21taXRUcmFuc2FjdGlvbihjb25z
dCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwg
Y29uc3QgV2ViQ29yZTo6SURCRXJyb3ImKSBmaW5hbDsKLSAgICB2b2lkIGRpZENyZWF0ZU9iamVj
dFN0b3JlKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKSBmaW5hbDsKLSAgICB2b2lkIGRp
ZERlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKSBmaW5hbDsK
LSAgICB2b2lkIGRpZFJlbmFtZU9iamVjdFN0b3JlKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERh
dGEmKSBmaW5hbDsKLSAgICB2b2lkIGRpZENsZWFyT2JqZWN0U3RvcmUoY29uc3QgV2ViQ29yZTo6
SURCUmVzdWx0RGF0YSYpIGZpbmFsOwotICAgIHZvaWQgZGlkQ3JlYXRlSW5kZXgoY29uc3QgV2Vi
Q29yZTo6SURCUmVzdWx0RGF0YSYpIGZpbmFsOwotICAgIHZvaWQgZGlkRGVsZXRlSW5kZXgoY29u
c3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpIGZpbmFsOwotICAgIHZvaWQgZGlkUmVuYW1lSW5k
ZXgoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpIGZpbmFsOwotICAgIHZvaWQgZGlkUHV0
T3JBZGQoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpIGZpbmFsOwotICAgIHZvaWQgZGlk
R2V0UmVjb3JkKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKSBmaW5hbDsKLSAgICB2b2lk
IGRpZEdldEFsbFJlY29yZHMoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpIGZpbmFsOwot
ICAgIHZvaWQgZGlkR2V0Q291bnQoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpIGZpbmFs
OwotICAgIHZvaWQgZGlkRGVsZXRlUmVjb3JkKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEm
KSBmaW5hbDsKLSAgICB2b2lkIGRpZE9wZW5DdXJzb3IoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0
RGF0YSYpIGZpbmFsOwotICAgIHZvaWQgZGlkSXRlcmF0ZUN1cnNvcihjb25zdCBXZWJDb3JlOjpJ
REJSZXN1bHREYXRhJikgZmluYWw7CisgICAgdm9pZCByZWYoKSBvdmVycmlkZSB7IFJlZkNvdW50
ZWQ8V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Pjo6cmVmKCk7IH0KKyAgICB2b2lkIGRlcmVmKCkg
b3ZlcnJpZGUgeyBSZWZDb3VudGVkPFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudD46OmRlcmVmKCk7
IH0KIAotICAgIHZvaWQgZmlyZVZlcnNpb25DaGFuZ2VFdmVudChXZWJDb3JlOjpJREJTZXJ2ZXI6
OlVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNl
SWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IHJlcXVlc3RlZFZlcnNpb24p
IGZpbmFsOwotICAgIHZvaWQgZGlkU3RhcnRUcmFuc2FjdGlvbihjb25zdCBXZWJDb3JlOjpJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
SURCRXJyb3ImKSBmaW5hbDsKLSAgICB2b2lkIGRpZENsb3NlRnJvbVNlcnZlcihXZWJDb3JlOjpJ
REJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OklE
QkVycm9yJikgZmluYWw7Ci0gICAgdm9pZCBub3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tlZChjb25z
dCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCB1aW50
NjRfdCBvbGRWZXJzaW9uLCB1aW50NjRfdCBuZXdWZXJzaW9uKSBmaW5hbDsKKyAgICB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworICAgIHZv
aWQgZGlzY29ubmVjdGVkRnJvbVdlYlByb2Nlc3MoKTsKIAotICAgIHZvaWQgZGlkR2V0QWxsRGF0
YWJhc2VOYW1lcyh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGF0
YWJhc2VOYW1lcykgZmluYWw7Citwcml2YXRlOgorICAgIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVu
dChOZXR3b3JrUHJvY2VzcyYsIElQQzo6Q29ubmVjdGlvbiYsIFdlYkNvcmU6OlByb2Nlc3NJZGVu
dGlmaWVyLCBQQUw6OlNlc3Npb25JRCk7CiAKLSAgICB2b2lkIHJlZigpIG92ZXJyaWRlIHsgUmVm
Q291bnRlZDxXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ+OjpyZWYoKTsgfQotICAgIHZvaWQgZGVy
ZWYoKSBvdmVycmlkZSB7IFJlZkNvdW50ZWQ8V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Pjo6ZGVy
ZWYoKTsgfQorICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBj
b25zdCBmaW5hbDsKKyAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1fc2Vzc2lvbklELnRvVUludDY0KCk7IH0KIAogICAgIC8vIE1l
c3NhZ2VzIHJlY2VpdmVkIGZyb20gV2ViUHJvY2VzcwogICAgIHZvaWQgZGVsZXRlRGF0YWJhc2Uo
Y29uc3QgV2ViQ29yZTo6SURCUmVxdWVzdERhdGEmKTsKQEAgLTEyMiwyMyArMTA0LDQxIEBAIHB1
YmxpYzoKICAgICB2b2lkIG9wZW5EQlJlcXVlc3RDYW5jZWxsZWQoY29uc3QgV2ViQ29yZTo6SURC
UmVxdWVzdERhdGEmKTsKICAgICB2b2lkIGNvbmZpcm1EaWRDbG9zZUZyb21TZXJ2ZXIodWludDY0
X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcik7CiAKLSAgICB2b2lkIGdldEFsbERhdGFi
YXNlTmFtZXModWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmIG9wZW5pbmdPcmlnaW4sIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwotCi0gICAg
dm9pZCBkaXNjb25uZWN0ZWRGcm9tV2ViUHJvY2VzcygpOworICAgIHZvaWQgZ2V0QWxsRGF0YWJh
c2VOYW1lcyhjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBvcGVuaW5nT3JpZ2luLCB1aW50NjRfdCBj
YWxsYmFja0lEKTsKIAotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpEZWNvZGVyJik7CisgICAgLy8gSURCQ29ubmVjdGlvblRvQ2xpZW50RGVsZWdhdGUK
KyAgICB2b2lkIGRpZERlbGV0ZURhdGFiYXNlKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEm
KSBmaW5hbDsKKyAgICB2b2lkIGRpZE9wZW5EYXRhYmFzZShjb25zdCBXZWJDb3JlOjpJREJSZXN1
bHREYXRhJikgZmluYWw7CisgICAgdm9pZCBkaWRBYm9ydFRyYW5zYWN0aW9uKGNvbnN0IFdlYkNv
cmU6OklEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBX
ZWJDb3JlOjpJREJFcnJvciYpIGZpbmFsOworICAgIHZvaWQgZGlkQ29tbWl0VHJhbnNhY3Rpb24o
Y29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZp
ZXIsIGNvbnN0IFdlYkNvcmU6OklEQkVycm9yJikgZmluYWw7CisgICAgdm9pZCBkaWRDcmVhdGVP
YmplY3RTdG9yZShjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikgZmluYWw7CisgICAgdm9p
ZCBkaWREZWxldGVPYmplY3RTdG9yZShjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikgZmlu
YWw7CisgICAgdm9pZCBkaWRSZW5hbWVPYmplY3RTdG9yZShjb25zdCBXZWJDb3JlOjpJREJSZXN1
bHREYXRhJikgZmluYWw7CisgICAgdm9pZCBkaWRDbGVhck9iamVjdFN0b3JlKGNvbnN0IFdlYkNv
cmU6OklEQlJlc3VsdERhdGEmKSBmaW5hbDsKKyAgICB2b2lkIGRpZENyZWF0ZUluZGV4KGNvbnN0
IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKSBmaW5hbDsKKyAgICB2b2lkIGRpZERlbGV0ZUluZGV4
KGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlbmFt
ZUluZGV4KGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKSBmaW5hbDsKKyAgICB2b2lkIGRp
ZFB1dE9yQWRkKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKSBmaW5hbDsKKyAgICB2b2lk
IGRpZEdldFJlY29yZChjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikgZmluYWw7CisgICAg
dm9pZCBkaWRHZXRBbGxSZWNvcmRzKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKSBmaW5h
bDsKKyAgICB2b2lkIGRpZEdldENvdW50KGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKSBm
aW5hbDsKKyAgICB2b2lkIGRpZERlbGV0ZVJlY29yZChjb25zdCBXZWJDb3JlOjpJREJSZXN1bHRE
YXRhJikgZmluYWw7CisgICAgdm9pZCBkaWRPcGVuQ3Vyc29yKGNvbnN0IFdlYkNvcmU6OklEQlJl
c3VsdERhdGEmKSBmaW5hbDsKKyAgICB2b2lkIGRpZEl0ZXJhdGVDdXJzb3IoY29uc3QgV2ViQ29y
ZTo6SURCUmVzdWx0RGF0YSYpIGZpbmFsOwogCi1wcml2YXRlOgotICAgIFdlYklEQkNvbm5lY3Rp
b25Ub0NsaWVudChOZXR3b3JrUHJvY2VzcyYsIElQQzo6Q29ubmVjdGlvbiYsIHVpbnQ2NF90IHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCk7CisgICAgdm9pZCBmaXJl
VmVyc2lvbkNoYW5nZUV2ZW50KFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2VD
b25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0
SWRlbnRpZmllciwgdWludDY0X3QgcmVxdWVzdGVkVmVyc2lvbikgZmluYWw7CisgICAgdm9pZCBk
aWRTdGFydFRyYW5zYWN0aW9uKGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYg
dHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpJREJFcnJvciYpIGZpbmFsOwor
ICAgIHZvaWQgZGlkQ2xvc2VGcm9tU2VydmVyKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURC
RGF0YWJhc2VDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6SURCRXJyb3ImKSBmaW5hbDsKKyAg
ICB2b2lkIG5vdGlmeU9wZW5EQlJlcXVlc3RCbG9ja2VkKGNvbnN0IFdlYkNvcmU6OklEQlJlc291
cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IG9sZFZlcnNpb24sIHVp
bnQ2NF90IG5ld1ZlcnNpb24pIGZpbmFsOwogCi0gICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdl
U2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgZGlkR2V0QWxsRGF0YWJh
c2VOYW1lcyh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGF0YWJh
c2VOYW1lcykgZmluYWw7CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBNZXNzYWdlVHlwZT4gdm9pZCBo
YW5kbGVHZXRSZXN1bHQoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpOwogCiAgICAgUmVm
PElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogICAgIFJlZjxOZXR3b3JrUHJvY2Vzcz4g
bV9uZXR3b3JrUHJvY2VzczsKIAotICAgIHVpbnQ2NF90IG1faWRlbnRpZmllcjsKKyAgICBXZWJD
b3JlOjpQcm9jZXNzSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAgUEFMOjpTZXNzaW9uSUQg
bV9zZXNzaW9uSUQ7CiAgICAgUmVmUHRyPFdlYkNvcmU6OklEQlNlcnZlcjo6SURCQ29ubmVjdGlv
blRvQ2xpZW50PiBtX2Nvbm5lY3Rpb25Ub0NsaWVudDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQu
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJ
REJDb25uZWN0aW9uVG9DbGllbnQubWVzc2FnZXMuaW4KaW5kZXggODc4YWY3MGQzNDVjNjcxNDc2
ZjI5OGRiY2VmOTRkM2ZmZjhkYmIxZC4uODAzYjk2ZDI5YWZjNzljMjkzMWM4YTExZWZkNDUzYzVh
ZjBmMmE0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVk
REIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5tZXNz
YWdlcy5pbgpAQCAtNTEsNiArNTEsNiBAQCBtZXNzYWdlcyAtPiBXZWJJREJDb25uZWN0aW9uVG9D
bGllbnQgewogICAgIE9wZW5EQlJlcXVlc3RDYW5jZWxsZWQoV2ViQ29yZTo6SURCUmVxdWVzdERh
dGEgcmVxdWVzdERhdGEpOwogICAgIENvbmZpcm1EaWRDbG9zZUZyb21TZXJ2ZXIodWludDY0X3Qg
ZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllcik7CiAKLSAgICBHZXRBbGxEYXRhYmFzZU5hbWVz
KHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhIHRvcE9yaWdpbiwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSBvcGVuaW5nT3JpZ2luLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKKyAgICBHZXRBbGxEYXRh
YmFzZU5hbWVzKHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wT3JpZ2luLCBz
dHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIG9wZW5pbmdPcmlnaW4sIHVpbnQ2NF90
IGNhbGxiYWNrSUQpOwogfQogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA5OGNiMjU4NjQwMzFhNDdmMGE2ZjViMTlmZjhl
MDBkNmNmOTVhZjA5Li4yZTNiNGJiNDgyMDBiZjgxNmU4ZjQwNTdlY2UzNWMwMzEzNDQzNTNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtODQ0LDIxICs4NDQsMTIgQEAgc2l6ZV90
IE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpmaW5kTmV0d29ya0FjdGl2aXR5VHJhY2tl
cihSZXNvdXJjZUxvYWRJZGUKIH0KIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotc3Rh
dGljIHVpbnQ2NF90IGdlbmVyYXRlSURCQ29ubmVjdGlvblRvU2VydmVySWRlbnRpZmllcigpCit2
b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjplc3RhYmxpc2hJREJDb25uZWN0aW9u
VG9TZXJ2ZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogewotICAgIEFTU0VSVChSdW5Mb29w
Ojppc01haW4oKSk7Ci0gICAgc3RhdGljIHVpbnQ2NF90IGlkZW50aWZpZXIgPSAwOwotICAgIHJl
dHVybiArK2lkZW50aWZpZXI7Ci19Ci0KLXZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OmVzdGFibGlzaElEQkNvbm5lY3Rpb25Ub1NlcnZlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQodWludDY0X3QpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQotewotICAgIHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyID0gZ2VuZXJhdGVJ
REJDb25uZWN0aW9uVG9TZXJ2ZXJJZGVudGlmaWVyKCk7Ci0gICAgTE9HKEluZGV4ZWREQiwgIk5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjplc3RhYmxpc2hJREJDb25uZWN0aW9uVG9TZXJ2
ZXIgLSAlIiBQUkl1NjQsIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKTsKLSAgICBBU1NFUlQo
IW1fd2ViSURCQ29ubmVjdGlvbnMuY29udGFpbnMoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIp
KTsKKyAgICBMT0coSW5kZXhlZERCLCAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmVz
dGFibGlzaElEQkNvbm5lY3Rpb25Ub1NlcnZlciAtICUiIFBSSXU2NCwgc2Vzc2lvbklELnRvVUlu
dDY0KCkpOworICAgIEFTU0VSVCghbV93ZWJJREJDb25uZWN0aW9ucy5jb250YWlucyhzZXNzaW9u
SUQudG9VSW50NjQoKSkpOwogICAgIAotICAgIG1fd2ViSURCQ29ubmVjdGlvbnMuc2V0KHNlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmNyZWF0ZSht
X25ldHdvcmtQcm9jZXNzLCBtX2Nvbm5lY3Rpb24uZ2V0KCksIHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBzZXNzaW9uSUQpKTsKLSAgICBjb21wbGV0aW9uSGFuZGxlcihzZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllcik7CisgICAgbV93ZWJJREJDb25uZWN0aW9ucy5hZGQoc2Vzc2lvbklELnRv
VUludDY0KCksIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Y3JlYXRlKG1fbmV0d29ya1Byb2Nl
c3MsIG1fY29ubmVjdGlvbi5nZXQoKSwgbV93ZWJQcm9jZXNzSWRlbnRpZmllciwgc2Vzc2lvbklE
KSk7CiB9CiAjZW5kaWYKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAppbmRleCBmYWQ4YjZl
OTAyNTExMGQ2MjFhM2UwOWUyMjIyNTkyZDgxYjVhYjc5Li43MWFhOGU3NWRlMjI0OWIxY2I2NTA1
ODFjMDI2MmM2NDA4M2MxZjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0yMDAsNyAr
MjAwLDcgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIC8v
IE1lc3NhZ2VzIGhhbmRsZXJzIChNb2Rlcm4gSURCKS4KLSAgICB2b2lkIGVzdGFibGlzaElEQkNv
bm5lY3Rpb25Ub1NlcnZlcihQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1
aW50NjRfdCAgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpPiYmKTsKKyAgICB2b2lkIGVzdGFi
bGlzaElEQkNvbm5lY3Rpb25Ub1NlcnZlcihQQUw6OlNlc3Npb25JRCk7CiAjZW5kaWYKIAogI2lm
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKQEAgLTMwMCw3ICszMDAsNyBAQCBwcml2YXRlOgogICAg
IFJlZlB0cjxDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uPiBtX2NhY2hlU3RvcmFnZUNvbm5l
Y3Rpb247CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLSAgICBIYXNoTWFwPHVpbnQ2
NF90LCBSZWZQdHI8V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Pj4gbV93ZWJJREJDb25uZWN0aW9u
czsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWY8V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Pj4g
bV93ZWJJREJDb25uZWN0aW9uczsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggZDBlZmEw
YjBiMmUzNTFlMTQ3MTUwN2Y2NDgxNDY4NjJmOWNkNGZjMC4uZTM1Mzg3MjU3MmE1MzYzZDAxM2Vi
MjlkMjFmYzRkNzk2OTM2NDE2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1l
c3NhZ2VzLmluCkBAIC03Nyw3ICs3Nyw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBUYWtlTmV0d29ya0xvYWRJbmZvcm1h
dGlvbk1ldHJpY3ModWludDY0X3QgcmVzb3VyY2VMb2FkSWRlbnRpZmllcikgLT4gKFdlYkNvcmU6
Ok5ldHdvcmtMb2FkTWV0cmljcyBuZXR3b3JrTWV0cmljcykgU3luY2hyb25vdXMKIAogI2lmIEVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFKQotICAgIEVzdGFibGlzaElEQkNvbm5lY3Rpb25Ub1NlcnZl
cihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllcikgU3luY2hyb25vdXMKKyAgICBFc3RhYmxpc2hJREJDb25uZWN0aW9uVG9TZXJ2
ZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VSVklD
RV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2Vz
L0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNw
cAppbmRleCA4ZjU3OGU0NmRjYjc4Y2QyMGU2MmIyNmVkZTliYjBiNzYwMTRjZGQ1Li5jZTFjOTNl
YjRlN2Y5MmVlZDRjYWQ1MjE2YTE0NThkOTQ2NGQ4MzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERC
L1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL0lEQlJlc3VsdERhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0lEQlRyYW5zYWN0
aW9uSW5mby5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSURCVmFsdWUuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CkBAIC01OSwxOCArNjAsMjAgQEAgUmVmPFdlYklEQkNvbm5lY3Rpb25U
b1NlcnZlcj4gV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpjcmVhdGUoUEFMOjpTZXNzaW9uSUQg
c2UKIAogV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAgIDogbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQor
ICAgICwgbV9jb25uZWN0aW9uVG9TZXJ2ZXIoSURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2
ZXI6OmNyZWF0ZSgqdGhpcykpCiB7Ci0gICAgcmVsYXhBZG9wdGlvblJlcXVpcmVtZW50KCk7Ci0K
LSAgICBtX2lzT3BlbkluU2VydmVyID0gc2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpFc3RhYmxpc2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIoc2Vzc2lvbklE
KSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpFc3RhYmxpc2hJREJD
b25uZWN0aW9uVG9TZXJ2ZXI6OlJlcGx5KG1faWRlbnRpZmllcikpOwotCi0gICAgbV9jb25uZWN0
aW9uVG9TZXJ2ZXIgPSBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Y3JlYXRlKCp0
aGlzKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
RXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2VydmVyKHNlc3Npb25JRCksIDApOwogfQogCiBXZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXI6On5XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIoKQogewogfQog
Cit1aW50NjRfdCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmlkZW50aWZpZXIoKSBjb25zdAor
eworICAgIHJldHVybiBQcm9jZXNzOjppZGVudGlmaWVyKCkudG9VSW50NjQoKTsKK30KKwogSVBD
OjpDb25uZWN0aW9uKiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6Om1lc3NhZ2VTZW5kZXJDb25u
ZWN0aW9uKCkgY29uc3QKIHsKICAgICByZXR1cm4gJldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVu
c3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKTsKQEAgLTc4LDcgKzgx
LDcgQEAgSVBDOjpDb25uZWN0aW9uKiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6Om1lc3NhZ2VT
ZW5kZXJDb25uZWN0aW9uKCkgY29uc3QKIAogSURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2
ZXImIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Y29yZUNvbm5lY3Rpb25Ub1NlcnZlcigpCiB7
Ci0gICAgcmV0dXJuICptX2Nvbm5lY3Rpb25Ub1NlcnZlcjsKKyAgICByZXR1cm4gbV9jb25uZWN0
aW9uVG9TZXJ2ZXI7CiB9CiAKIHZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpkZWxldGVE
YXRhYmFzZShjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEpCkBAIC0yMTMsNyArMjE2
LDcgQEAgdm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNvbmZpcm1EaWRDbG9zZUZyb21T
ZXJ2ZXIodWludDY0X3QgZGF0YWJhc2VDb25uZWMKIAogdm9pZCBXZWJJREJDb25uZWN0aW9uVG9T
ZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXMoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiB0b3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgb3Blbmlu
Z09yaWdpbiwgdWludDY0X3QgY2FsbGJhY2tJRCkKIHsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJ
REJDb25uZWN0aW9uVG9DbGllbnQ6OkdldEFsbERhdGFiYXNlTmFtZXMobV9pZGVudGlmaWVyLCB0
b3BPcmlnaW4sIG9wZW5pbmdPcmlnaW4sIGNhbGxiYWNrSUQpKTsKKyAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OkdldEFsbERhdGFiYXNlTmFtZXModG9wT3JpZ2lu
LCBvcGVuaW5nT3JpZ2luLCBjYWxsYmFja0lEKSk7CiB9CiAKIHZvaWQgV2ViSURCQ29ubmVjdGlv
blRvU2VydmVyOjpkaWREZWxldGVEYXRhYmFzZShjb25zdCBJREJSZXN1bHREYXRhJiByZXN1bHQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWRE
Qi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9E
YXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCmluZGV4IGZjMTFk
NDFmNTQyOGZmMTBhZWU0MzJhODkzYzNhZGRlNDllYWI1NGUuLmU0ZTk0ZWExOWEyYTE5YTI4MjUz
ZDczMTIwNzM3ODU5NzNhNDE3NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rp
b25Ub1NlcnZlci5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5o
IgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlIDxXZWJDb3JlL0lEQkNv
bm5lY3Rpb25Ub1NlcnZlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIu
aD4KICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAt
MzksMTIgKzQwLDIyIEBAIGNsYXNzIFdlYklEQlJlc3VsdDsKIGNsYXNzIFdlYklEQkNvbm5lY3Rp
b25Ub1NlcnZlciBmaW5hbCA6IHByaXZhdGUgV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0
aW9uVG9TZXJ2ZXJEZWxlZ2F0ZSwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VTZW5kZXIsIHB1YmxpYyBS
ZWZDb3VudGVkPFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcj4gewogcHVibGljOgogICAgIHN0YXRp
YyBSZWY8V2ViSURCQ29ubmVjdGlvblRvU2VydmVyPiBjcmVhdGUoUEFMOjpTZXNzaW9uSUQpOwot
CiAgICAgdmlydHVhbCB+V2ViSURCQ29ubmVjdGlvblRvU2VydmVyKCk7CiAKICAgICBXZWJDb3Jl
OjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlciYgY29yZUNvbm5lY3Rpb25Ub1NlcnZl
cigpOwotICAgIHVpbnQ2NF90IGlkZW50aWZpZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lk
ZW50aWZpZXI7IH0KLSAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorICAgIHVpbnQ2NF90IGlkZW50aWZp
ZXIoKSBjb25zdCBmaW5hbDsKKworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CisgICAgdm9pZCBjb25uZWN0aW9uVG9TZXJ2ZXJMb3N0
KCk7CisKKyAgICB2b2lkIHJlZigpIGZpbmFsIHsgUmVmQ291bnRlZDxXZWJJREJDb25uZWN0aW9u
VG9TZXJ2ZXI+OjpyZWYoKTsgfQorICAgIHZvaWQgZGVyZWYoKSBmaW5hbCB7IFJlZkNvdW50ZWQ8
V2ViSURCQ29ubmVjdGlvblRvU2VydmVyPjo6ZGVyZWYoKTsgfQorCitwcml2YXRlOgorICAgIGV4
cGxpY2l0IFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcihQQUw6OlNlc3Npb25JRCk7CisKKyAgICBJ
UEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QgZmluYWw7Cisg
ICAgdWludDY0X3QgbWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBtX3Nlc3Npb25JRC50b1VJbnQ2NCgpOyB9CiAKICAgICAvLyBJREJDb25uZWN0aW9uVG9T
ZXJ2ZXJEZWxlZ2F0ZQogICAgIHZvaWQgZGVsZXRlRGF0YWJhc2UoY29uc3QgV2ViQ29yZTo6SURC
UmVxdWVzdERhdGEmKSBmaW5hbDsKQEAgLTc2LDkgKzg3LDYgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBnZXRBbGxEYXRhYmFzZU5hbWVzKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYg
dG9wT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG9wZW5pbmdPcmln
aW4sIHVpbnQ2NF90IGNhbGxiYWNrSUQpIGZpbmFsOwogCi0gICAgdm9pZCByZWYoKSBvdmVycmlk
ZSB7IFJlZkNvdW50ZWQ8V2ViSURCQ29ubmVjdGlvblRvU2VydmVyPjo6cmVmKCk7IH0KLSAgICB2
b2lkIGRlcmVmKCkgb3ZlcnJpZGUgeyBSZWZDb3VudGVkPFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZl
cj46OmRlcmVmKCk7IH0KLQogICAgIC8vIE1lc3NhZ2VzIHJlY2VpdmVkIGZyb20gTmV0d29yayBQ
cm9jZXNzCiAgICAgdm9pZCBkaWREZWxldGVEYXRhYmFzZShjb25zdCBXZWJDb3JlOjpJREJSZXN1
bHREYXRhJik7CiAgICAgdm9pZCBkaWRPcGVuRGF0YWJhc2UoY29uc3QgV2ViQ29yZTo6SURCUmVz
dWx0RGF0YSYpOwpAQCAtMTA0LDE5ICsxMTIsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBub3RpZnlP
cGVuREJSZXF1ZXN0QmxvY2tlZChjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHJlcXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCBvbGRWZXJzaW9uLCB1aW50NjRfdCBuZXdWZXJz
aW9uKTsKICAgICB2b2lkIGRpZEdldEFsbERhdGFiYXNlTmFtZXModWludDY0X3QgY2FsbGJhY2tJ
RCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRhdGFiYXNlTmFtZXMpOwogCi0gICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKLQotICAgIHZv
aWQgY29ubmVjdGlvblRvU2VydmVyTG9zdCgpOwotCi1wcml2YXRlOgotICAgIFdlYklEQkNvbm5l
Y3Rpb25Ub1NlcnZlcihQQUw6OlNlc3Npb25JRCk7Ci0KLSAgICBJUEM6OkNvbm5lY3Rpb24qIG1l
c3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QgZmluYWw7Ci0KLSAgICB1aW50NjRfdCBtX2lk
ZW50aWZpZXIgeyAwIH07Ci0gICAgYm9vbCBtX2lzT3BlbkluU2VydmVyIHsgZmFsc2UgfTsKLSAg
ICBSZWZQdHI8V2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI+IG1fY29u
bmVjdGlvblRvU2VydmVyOwogICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOworICAgIFJl
ZjxXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlcj4gbV9jb25uZWN0aW9u
VG9TZXJ2ZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b24uY3BwCmluZGV4IDhkYTdjOTE0MWVkMzk5ZGQyMmMxYzNhN2JmZWQ3MjE4YTc5ZDg4YjAuLjcx
MmQ1MDVmYzQzODQyMGU3ZDZlYzNjZGMyN2M4ZTZjZDYwMTNjZWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uLmNwcApAQCAtMTI4LDcgKzEyOCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQCiAK
ICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVj
ZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpKSB7Ci0gICAgICAgIGlmIChhdXRvIGlkYkNvbm5lY3Rpb24gPSBtX3dl
YklEQkNvbm5lY3Rpb25zQnlJZGVudGlmaWVyLmdldChkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSkp
CisgICAgICAgIGlmIChhdXRvIGlkYkNvbm5lY3Rpb24gPSBtX3dlYklEQkNvbm5lY3Rpb25zQnlT
ZXNzaW9uLmdldChkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSkpCiAgICAgICAgICAgICBpZGJDb25u
ZWN0aW9uLT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KQEAgLTE5MywxNiArMTkzLDE0IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQogICAgIFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLm5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZCh0aGlzKTsKIAogI2lmIEVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFKQotICAgIGZvciAoYXV0byYgY29ubmVjdGlvbiA6IG1fd2Vi
SURCQ29ubmVjdGlvbnNCeUlkZW50aWZpZXIudmFsdWVzKCkpCisgICAgYXV0byBpZGJDb25uZWN0
aW9ucyA9IHN0ZDo6ZXhjaGFuZ2UobV93ZWJJREJDb25uZWN0aW9uc0J5U2Vzc2lvbiwgeyB9KTsK
KyAgICBmb3IgKGF1dG8mIGNvbm5lY3Rpb24gOiBpZGJDb25uZWN0aW9ucy52YWx1ZXMoKSkKICAg
ICAgICAgY29ubmVjdGlvbi0+Y29ubmVjdGlvblRvU2VydmVyTG9zdCgpOwotICAgIAotICAgIG1f
d2ViSURCQ29ubmVjdGlvbnNCeUlkZW50aWZpZXIuY2xlYXIoKTsKLSAgICBtX3dlYklEQkNvbm5l
Y3Rpb25zQnlTZXNzaW9uLmNsZWFyKCk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dP
UktFUikKLSAgICBhdXRvIGNvbm5lY3Rpb25zID0gc3RkOjpleGNoYW5nZShtX3N3Q29ubmVjdGlv
bnNCeUlkZW50aWZpZXIsIHsgfSk7Ci0gICAgZm9yIChhdXRvJiBjb25uZWN0aW9uIDogY29ubmVj
dGlvbnMudmFsdWVzKCkpCisgICAgYXV0byBzd0Nvbm5lY3Rpb25zID0gc3RkOjpleGNoYW5nZSht
X3N3Q29ubmVjdGlvbnNCeUlkZW50aWZpZXIsIHsgfSk7CisgICAgZm9yIChhdXRvJiBjb25uZWN0
aW9uIDogc3dDb25uZWN0aW9ucy52YWx1ZXMoKSkKICAgICAgICAgY29ubmVjdGlvbi0+Y29ubmVj
dGlvblRvU2VydmVyTG9zdCgpOwogI2VuZGlmCiB9CkBAIC0yNTEsMTMgKzI0OSw4IEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRDYWNoZVJlc291cmNlKGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIFdlYklEQkNv
bm5lY3Rpb25Ub1NlcnZlciYgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjppZGJDb25uZWN0aW9u
VG9TZXJ2ZXJGb3JTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAgICByZXR1
cm4gKm1fd2ViSURCQ29ubmVjdGlvbnNCeVNlc3Npb24uZW5zdXJlKHNlc3Npb25JRCwgWyZdIHsK
LSAgICAgICAgYXV0byBjb25uZWN0aW9uID0gV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpjcmVh
dGUoc2Vzc2lvbklEKTsKLSAgICAgICAgCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gbV93ZWJJREJD
b25uZWN0aW9uc0J5SWRlbnRpZmllci5hZGQoY29ubmVjdGlvbi0+aWRlbnRpZmllcigpLCBjb25u
ZWN0aW9uLmNvcHlSZWYoKSk7Ci0gICAgICAgIEFTU0VSVF9VTlVTRUQocmVzdWx0LCByZXN1bHQu
aXNOZXdFbnRyeSk7Ci0gICAgICAgIAotICAgICAgICByZXR1cm4gY29ubmVjdGlvbjsKKyAgICBy
ZXR1cm4gKm1fd2ViSURCQ29ubmVjdGlvbnNCeVNlc3Npb24uZW5zdXJlKHNlc3Npb25JRC50b1VJ
bnQ2NCgpLCBbJl0geworICAgICAgICByZXR1cm4gV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpj
cmVhdGUoc2Vzc2lvbklEKTsKICAgICB9KS5pdGVyYXRvci0+dmFsdWU7CiB9CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggNjI2ZGFiMTFiMmRmMjk5NGNhZGJhNzczZjkyNTEwOGYx
YzU3OWI1Ni4uYWM3NmM4MjI0OTM2OTg2Nzg1NjdlMDEzMGQzYzUzMjZhMWI3NzYzNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uLmgKQEAgLTY4LDcgKzY4LDcgQEAgcHVibGljOgogICAgIHZvaWQgd3Jp
dGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBibG9iVVJMcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiYmIGZp
bGVQYXRocyk+JiYpOwogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0gICAgV2ViSURC
Q29ubmVjdGlvblRvU2VydmVyKiBleGlzdGluZ0lEQkNvbm5lY3Rpb25Ub1NlcnZlckZvcklkZW50
aWZpZXIodWludDY0X3QgaWRlbnRpZmllcikgY29uc3QgeyByZXR1cm4gbV93ZWJJREJDb25uZWN0
aW9uc0J5SWRlbnRpZmllci5nZXQoaWRlbnRpZmllcik7IH07CisgICAgV2ViSURCQ29ubmVjdGlv
blRvU2VydmVyKiBleGlzdGluZ0lEQkNvbm5lY3Rpb25Ub1NlcnZlcihQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQpIGNvbnN0IHsgcmV0dXJuIG1fd2ViSURCQ29ubmVjdGlvbnNCeVNlc3Npb24uZ2V0
KHNlc3Npb25JRC50b1VJbnQ2NCgpKTsgfTsKICAgICBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIm
IGlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24oUEFMOjpTZXNzaW9uSUQpOwogI2VuZGlm
CiAKQEAgLTEwMiw4ICsxMDIsNyBAQCBwcml2YXRlOgogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+
IG1fY29ubmVjdGlvbjsKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotICAgIEhhc2hN
YXA8UEFMOjpTZXNzaW9uSUQsIFJlZlB0cjxXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI+PiBtX3dl
YklEQkNvbm5lY3Rpb25zQnlTZXNzaW9uOwotICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxX
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI+PiBtX3dlYklEQkNvbm5lY3Rpb25zQnlJZGVudGlmaWVy
OworICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI+
PiBtX3dlYklEQkNvbm5lY3Rpb25zQnlTZXNzaW9uOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXgg
ZTI3OWQ0NGY3NmE4MmQ1ZTlmNTA4ZmNmMGZlNGQ4YWI1MGRhOWExNS4uMjNmY2IwMzc4OTgyYTc1
YmM4MzEyYWI5YTRmOWNiZjVkZWZmNTQ3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmNwcApAQCAtMTI2Niw4ICsxMjY2LDggQEAgdm9pZCBXZWJQcm9jZXNzOjpuZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKiBjb25uZWMK
ICAgICAgICAgaWYgKCFpZGJDb25uZWN0aW9uKQogICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgIAotICAgICAgICBpZiAoY29ubmVjdGlvbi0+ZXhpc3RpbmdJREJDb25uZWN0aW9uVG9TZXJ2
ZXJGb3JJZGVudGlmaWVyKGlkYkNvbm5lY3Rpb24tPmlkZW50aWZpZXIoKSkpIHsKLSAgICAgICAg
ICAgIEFTU0VSVChpZGJDb25uZWN0aW9uID09ICZjb25uZWN0aW9uLT5leGlzdGluZ0lEQkNvbm5l
Y3Rpb25Ub1NlcnZlckZvcklkZW50aWZpZXIoaWRiQ29ubmVjdGlvbi0+aWRlbnRpZmllcigpKS0+
Y29yZUNvbm5lY3Rpb25Ub1NlcnZlcigpKTsKKyAgICAgICAgaWYgKGNvbm5lY3Rpb24tPmV4aXN0
aW5nSURCQ29ubmVjdGlvblRvU2VydmVyKHBhZ2UtPmNvcmVQYWdlKCktPnNlc3Npb25JRCgpKSkg
eworICAgICAgICAgICAgQVNTRVJUKGlkYkNvbm5lY3Rpb24gPT0gJmNvbm5lY3Rpb24tPmV4aXN0
aW5nSURCQ29ubmVjdGlvblRvU2VydmVyKHBhZ2UtPmNvcmVQYWdlKCktPnNlc3Npb25JRCgpKS0+
Y29yZUNvbm5lY3Rpb25Ub1NlcnZlcigpKTsKICAgICAgICAgICAgIHBhZ2UtPmNvcmVQYWdlKCkt
PmNsZWFySURCQ29ubmVjdGlvbigpOwogICAgICAgICB9CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378351</attachid>
            <date>2019-09-09 00:30:47 -0700</date>
            <delta_ts>2019-09-09 02:08:46 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-201419-20190909093046.patch</filename>
            <type>text/plain</type>
            <size>28205</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGMzMmYwNGQzODY1ZGVmMjRj
NTA3OGZiODJjZTJlNmI3MGZhODdlMTguLjNhMWFlYWVmMWMzNTkyNGIxYWViMDQ5NzczMzgzYThm
NzM0M2EyZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTktMDktMDkgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBXZWJQcm9jZXNzIHByb2Nl
c3NJZGVudGlmaWVyIHRvIGlkZW50aWZ5IElEQiBjb25uZWN0aW9ucyBiZXR3ZWVuIFdlYlByb2Nl
c3MgYW5kIE5ldHdvcmtQcm9jZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDE0MTkKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4IENocmlzdGVu
c2VuLgorCisgICAgICAgIFdlIGNoYW5nZSBmcm9tIGFuIGlkZW50aWZpZXIgZ2VuZXJhdGVkIGJ5
IE5ldHdvcmtQcm9jZXNzIHRvIFdlYlByb2Nlc3MgaWRlbnRpZmllci4KKyAgICAgICAgQSBXZWJQ
cm9jZXNzIGlkZW50aWZpZXIgaXMgdW5pcXVlIGdsb2JhbGx5IGFuZCBpcyBzdGFibGUgZXZlbiBp
biBjYXNlIG9mIE5ldHdvcmtQcm9jZXNzIGNyYXNoLgorICAgICAgICBUaGlzIHJlbW92ZXMgdGhl
IG5lZWQgZm9yIGEgc3luYyBJUEMgYW5kIG1ha2VzIHRoaW5ncyBtb3JlIGVhc3kgdG8gaGFuZGxl
IGluIGNhc2Ugb2YgTmV0d29ya1Byb2Nlc3MgY3Jhc2guCisKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Z2V0QWxsRGF0YWJhc2VO
YW1lcyk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rp
b25Ub0NsaWVudC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJD
b25uZWN0aW9uVG9DbGllbnQubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2VydmVy
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25u
ZWN0aW9uVG9TZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9T
ZXJ2ZXI6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OldlYklE
QkNvbm5lY3Rpb25Ub1NlcnZlcjo6aWRlbnRpZmllciBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Y29yZUNvbm5lY3Rpb25Ub1NlcnZlcik6CisgICAg
ICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1l
cyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5l
Y3Rpb25Ub1NlcnZlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uOjpkaWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
Q29ubmVjdGlvbjo6aWRiQ29ubmVjdGlvblRvU2VydmVyRm9yU2Vzc2lvbik6CisgICAgICAgICog
V2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OmV4aXN0aW5nSURCQ29ubmVjdGlvblRv
U2VydmVyIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpuZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQp
OgorCiAyMDE5LTA5LTA4ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBNb3ZlIGNoZWNrUHJvY2Vzc0xvY2FsUG9ydEZvckFjdGl2aXR5IGZyb20gcHJvdmlkZXIg
dG8gcmVnaXN0cnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQuaAppbmRleCBhYWZjNTM4MDI0
ODJiNTRmMWY3ZjM2ZWMyOGM3YWU3MTVlOWFhOTZmLi5mMTBkNmY2MzIwOWE0Yzk5YjlmYjcyN2M1
NWNkYTg5ODljYjA1YTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCkBAIC00Niw3
ICs0Niw4IEBAIGNsYXNzIFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbjsKIGNsYXNzIElEQkNv
bm5lY3Rpb25Ub0NsaWVudCA6IHB1YmxpYyBSZWZDb3VudGVkPElEQkNvbm5lY3Rpb25Ub0NsaWVu
dD4gewogcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8SURCQ29ubmVjdGlv
blRvQ2xpZW50PiBjcmVhdGUoSURCQ29ubmVjdGlvblRvQ2xpZW50RGVsZWdhdGUmKTsKLSAgICAK
KworICAgIC8vIEZJWE1FOiBVc2UgYSB0eXBlZCBpZGVudGlmaWVyLgogICAgIHVpbnQ2NF90IGlk
ZW50aWZpZXIoKSBjb25zdDsKIAogICAgIHZvaWQgZGlkRGVsZXRlRGF0YWJhc2UoY29uc3QgSURC
UmVzdWx0RGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9J
bmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKaW5kZXgg
ODdjNjlkMDA0ZjRjMDQzY2M1YzVmNmNhM2U2ODllY2M4NjFjYTg5OC4uNDY2OTJmZWFjNjhjN2Qw
ZmU3NDI1OGE0M2ZiOGIyZjhlODM5NjJmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9D
bGllbnQuY3BwCkBAIC00NCwxMiArNDQsMTIgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKLVJlZjxXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ+IFdlYklE
QkNvbm5lY3Rpb25Ub0NsaWVudDo6Y3JlYXRlKE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2Vz
cywgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCB1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQorUmVmPFdlYklEQkNvbm5lY3Rp
b25Ub0NsaWVudD4gV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpjcmVhdGUoTmV0d29ya1Byb2Nl
c3MmIG5ldHdvcmtQcm9jZXNzLCBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFByb2Nlc3NJ
ZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViSURCQ29ubmVjdGlvblRvQ2xp
ZW50KG5ldHdvcmtQcm9jZXNzLCBjb25uZWN0aW9uLCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgc2Vzc2lvbklEKSk7CiB9CiAKLVdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6V2ViSURCQ29u
bmVjdGlvblRvQ2xpZW50KE5ldHdvcmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgSVBDOjpDb25u
ZWN0aW9uJiBjb25uZWN0aW9uLCB1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwg
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQorV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpXZWJJ
REJDb25uZWN0aW9uVG9DbGllbnQoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9jZXNzLCBJUEM6
OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFByb2Nlc3NJZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBtX2Nvbm5lY3Rp
b24oY29ubmVjdGlvbikKICAgICAsIG1fbmV0d29ya1Byb2Nlc3MobmV0d29ya1Byb2Nlc3MpCiAg
ICAgLCBtX2lkZW50aWZpZXIoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCkBAIC0zNDUsOSAr
MzQ1LDkgQEAgdm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmNvbmZpcm1EaWRDbG9zZUZy
b21TZXJ2ZXIodWludDY0X3QgZGF0YWJhc2VDb25uZWMKICAgICBtX25ldHdvcmtQcm9jZXNzLT5p
ZGJTZXJ2ZXIobV9zZXNzaW9uSUQpLmNvbmZpcm1EaWRDbG9zZUZyb21TZXJ2ZXIoZGF0YWJhc2VD
b25uZWN0aW9uSWRlbnRpZmllcik7CiB9CiAKLXZvaWQgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50
OjpnZXRBbGxEYXRhYmFzZU5hbWVzKHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBvcGVuaW5nT3JpZ2luLCB1aW50NjRfdCBjYWxsYmFj
a0lEKQordm9pZCBXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OmdldEFsbERhdGFiYXNlTmFtZXMo
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgb3BlbmluZ09yaWdpbiwgdWludDY0X3QgY2FsbGJhY2tJ
RCkKIHsKLSAgICBtX25ldHdvcmtQcm9jZXNzLT5pZGJTZXJ2ZXIobV9zZXNzaW9uSUQpLmdldEFs
bERhdGFiYXNlTmFtZXMoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHRvcE9yaWdpbiwgb3Bl
bmluZ09yaWdpbiwgY2FsbGJhY2tJRCk7CisgICAgbV9uZXR3b3JrUHJvY2Vzcy0+aWRiU2VydmVy
KG1fc2Vzc2lvbklEKS5nZXRBbGxEYXRhYmFzZU5hbWVzKGlkZW50aWZpZXIoKSwgdG9wT3JpZ2lu
LCBvcGVuaW5nT3JpZ2luLCBjYWxsYmFja0lEKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0luZGV4ZWREQi9XZWJJ
REJDb25uZWN0aW9uVG9DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5k
ZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCmluZGV4IGNmNzgzZjcxMDAwYmZlNGQz
YjMxYmRjNzc3NzRhNjIxNWZlYjM3NDAuLjg5ZmZkMDg2MjlkNjkyYmE4M2QxNzcxMmZkNmUyNTc1
Y2ZkNzI2NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhl
ZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCkBAIC0zMSw2ICsz
MSw3IEBACiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
SW5kZXhlZERCLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpZmllci5oPgogI2lu
Y2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTUsNDMg
KzU2LDI0IEBAIGNsYXNzIE5ldHdvcmtQcm9jZXNzOwogCiBjbGFzcyBXZWJJREJDb25uZWN0aW9u
VG9DbGllbnQgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6SURCU2VydmVyOjpJREJDb25uZWN0aW9u
VG9DbGllbnREZWxlZ2F0ZSwgcHVibGljIElQQzo6TWVzc2FnZVNlbmRlciwgcHVibGljIFJlZkNv
dW50ZWQ8V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZjxXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ+IGNyZWF0ZShOZXR3b3JrUHJvY2VzcyYsIElQQzo6
Q29ubmVjdGlvbiYsIHVpbnQ2NF90IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBQQUw6OlNl
c3Npb25JRCk7CisgICAgc3RhdGljIFJlZjxXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ+IGNyZWF0
ZShOZXR3b3JrUHJvY2VzcyYsIElQQzo6Q29ubmVjdGlvbiYsIFdlYkNvcmU6OlByb2Nlc3NJZGVu
dGlmaWVyLCBQQUw6OlNlc3Npb25JRCk7CiAKICAgICB2aXJ0dWFsIH5XZWJJREJDb25uZWN0aW9u
VG9DbGllbnQoKTsKIAogICAgIFdlYkNvcmU6OklEQlNlcnZlcjo6SURCQ29ubmVjdGlvblRvQ2xp
ZW50JiBjb25uZWN0aW9uVG9DbGllbnQoKTsKLSAgICB1aW50NjRfdCBpZGVudGlmaWVyKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9Ci0gICAgdWludDY0X3QgbWVzc2FnZVNl
bmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0K
KyAgICB1aW50NjRfdCBpZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pZGVudGlm
aWVyLnRvVUludDY0KCk7IH0KIAotICAgIC8vIElEQkNvbm5lY3Rpb25Ub0NsaWVudERlbGVnYXRl
Ci0gICAgdm9pZCBkaWREZWxldGVEYXRhYmFzZShjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRh
JikgZmluYWw7Ci0gICAgdm9pZCBkaWRPcGVuRGF0YWJhc2UoY29uc3QgV2ViQ29yZTo6SURCUmVz
dWx0RGF0YSYpIGZpbmFsOwotICAgIHZvaWQgZGlkQWJvcnRUcmFuc2FjdGlvbihjb25zdCBXZWJD
b3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6SURCRXJyb3ImKSBmaW5hbDsKLSAgICB2b2lkIGRpZENvbW1pdFRyYW5zYWN0aW9u
KGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpJREJFcnJvciYpIGZpbmFsOwotICAgIHZvaWQgZGlkQ3JlYXRl
T2JqZWN0U3RvcmUoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpIGZpbmFsOwotICAgIHZv
aWQgZGlkRGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpIGZp
bmFsOwotICAgIHZvaWQgZGlkUmVuYW1lT2JqZWN0U3RvcmUoY29uc3QgV2ViQ29yZTo6SURCUmVz
dWx0RGF0YSYpIGZpbmFsOwotICAgIHZvaWQgZGlkQ2xlYXJPYmplY3RTdG9yZShjb25zdCBXZWJD
b3JlOjpJREJSZXN1bHREYXRhJikgZmluYWw7Ci0gICAgdm9pZCBkaWRDcmVhdGVJbmRleChjb25z
dCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikgZmluYWw7Ci0gICAgdm9pZCBkaWREZWxldGVJbmRl
eChjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikgZmluYWw7Ci0gICAgdm9pZCBkaWRSZW5h
bWVJbmRleChjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikgZmluYWw7Ci0gICAgdm9pZCBk
aWRQdXRPckFkZChjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikgZmluYWw7Ci0gICAgdm9p
ZCBkaWRHZXRSZWNvcmQoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpIGZpbmFsOwotICAg
IHZvaWQgZGlkR2V0QWxsUmVjb3Jkcyhjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikgZmlu
YWw7Ci0gICAgdm9pZCBkaWRHZXRDb3VudChjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJikg
ZmluYWw7Ci0gICAgdm9pZCBkaWREZWxldGVSZWNvcmQoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0
RGF0YSYpIGZpbmFsOwotICAgIHZvaWQgZGlkT3BlbkN1cnNvcihjb25zdCBXZWJDb3JlOjpJREJS
ZXN1bHREYXRhJikgZmluYWw7Ci0gICAgdm9pZCBkaWRJdGVyYXRlQ3Vyc29yKGNvbnN0IFdlYkNv
cmU6OklEQlJlc3VsdERhdGEmKSBmaW5hbDsKKyAgICB2b2lkIHJlZigpIG92ZXJyaWRlIHsgUmVm
Q291bnRlZDxXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ+OjpyZWYoKTsgfQorICAgIHZvaWQgZGVy
ZWYoKSBvdmVycmlkZSB7IFJlZkNvdW50ZWQ8V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50Pjo6ZGVy
ZWYoKTsgfQogCi0gICAgdm9pZCBmaXJlVmVyc2lvbkNoYW5nZUV2ZW50KFdlYkNvcmU6OklEQlNl
cnZlcjo6VW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6SURCUmVz
b3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3QgcmVxdWVzdGVkVmVy
c2lvbikgZmluYWw7Ci0gICAgdm9pZCBkaWRTdGFydFRyYW5zYWN0aW9uKGNvbnN0IFdlYkNvcmU6
OklEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpJREJFcnJvciYpIGZpbmFsOwotICAgIHZvaWQgZGlkQ2xvc2VGcm9tU2VydmVyKFdlYkNv
cmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29y
ZTo6SURCRXJyb3ImKSBmaW5hbDsKLSAgICB2b2lkIG5vdGlmeU9wZW5EQlJlcXVlc3RCbG9ja2Vk
KGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50aWZpZXIs
IHVpbnQ2NF90IG9sZFZlcnNpb24sIHVpbnQ2NF90IG5ld1ZlcnNpb24pIGZpbmFsOworICAgIHZv
aWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7Cisg
ICAgdm9pZCBkaXNjb25uZWN0ZWRGcm9tV2ViUHJvY2VzcygpOwogCi0gICAgdm9pZCBkaWRHZXRB
bGxEYXRhYmFzZU5hbWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBkYXRhYmFzZU5hbWVzKSBmaW5hbDsKK3ByaXZhdGU6CisgICAgV2ViSURCQ29ubmVjdGlvblRv
Q2xpZW50KE5ldHdvcmtQcm9jZXNzJiwgSVBDOjpDb25uZWN0aW9uJiwgV2ViQ29yZTo6UHJvY2Vz
c0lkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklEKTsKIAotICAgIHZvaWQgcmVmKCkgb3ZlcnJpZGUg
eyBSZWZDb3VudGVkPFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudD46OnJlZigpOyB9Ci0gICAgdm9p
ZCBkZXJlZigpIG92ZXJyaWRlIHsgUmVmQ291bnRlZDxXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ+
OjpkZXJlZigpOyB9CisgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlv
bigpIGNvbnN0IGZpbmFsOworICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklE
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zZXNzaW9uSUQudG9VSW50NjQoKTsgfQogCiAgICAg
Ly8gTWVzc2FnZXMgcmVjZWl2ZWQgZnJvbSBXZWJQcm9jZXNzCiAgICAgdm9pZCBkZWxldGVEYXRh
YmFzZShjb25zdCBXZWJDb3JlOjpJREJSZXF1ZXN0RGF0YSYpOwpAQCAtMTIyLDIzICsxMDQsNDEg
QEAgcHVibGljOgogICAgIHZvaWQgb3BlbkRCUmVxdWVzdENhbmNlbGxlZChjb25zdCBXZWJDb3Jl
OjpJREJSZXF1ZXN0RGF0YSYpOwogICAgIHZvaWQgY29uZmlybURpZENsb3NlRnJvbVNlcnZlcih1
aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKTsKIAotICAgIHZvaWQgZ2V0QWxs
RGF0YWJhc2VOYW1lcyh1aW50NjRfdCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYgb3BlbmluZ09yaWdpbiwgdWludDY0X3QgY2FsbGJhY2tJRCk7Ci0K
LSAgICB2b2lkIGRpc2Nvbm5lY3RlZEZyb21XZWJQcm9jZXNzKCk7CisgICAgdm9pZCBnZXRBbGxE
YXRhYmFzZU5hbWVzKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2lu
LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIG9wZW5pbmdPcmlnaW4sIHVpbnQ2
NF90IGNhbGxiYWNrSUQpOwogCi0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKyAgICAvLyBJREJDb25uZWN0aW9uVG9DbGllbnREZWxl
Z2F0ZQorICAgIHZvaWQgZGlkRGVsZXRlRGF0YWJhc2UoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0
RGF0YSYpIGZpbmFsOworICAgIHZvaWQgZGlkT3BlbkRhdGFiYXNlKGNvbnN0IFdlYkNvcmU6OklE
QlJlc3VsdERhdGEmKSBmaW5hbDsKKyAgICB2b2lkIGRpZEFib3J0VHJhbnNhY3Rpb24oY29uc3Qg
V2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6OklEQkVycm9yJikgZmluYWw7CisgICAgdm9pZCBkaWRDb21taXRUcmFuc2Fj
dGlvbihjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6SURCRXJyb3ImKSBmaW5hbDsKKyAgICB2b2lkIGRpZENy
ZWF0ZU9iamVjdFN0b3JlKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKSBmaW5hbDsKKyAg
ICB2b2lkIGRpZERlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEm
KSBmaW5hbDsKKyAgICB2b2lkIGRpZFJlbmFtZU9iamVjdFN0b3JlKGNvbnN0IFdlYkNvcmU6OklE
QlJlc3VsdERhdGEmKSBmaW5hbDsKKyAgICB2b2lkIGRpZENsZWFyT2JqZWN0U3RvcmUoY29uc3Qg
V2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpIGZpbmFsOworICAgIHZvaWQgZGlkQ3JlYXRlSW5kZXgo
Y29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpIGZpbmFsOworICAgIHZvaWQgZGlkRGVsZXRl
SW5kZXgoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpIGZpbmFsOworICAgIHZvaWQgZGlk
UmVuYW1lSW5kZXgoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpIGZpbmFsOworICAgIHZv
aWQgZGlkUHV0T3JBZGQoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYpIGZpbmFsOworICAg
IHZvaWQgZGlkR2V0UmVjb3JkKGNvbnN0IFdlYkNvcmU6OklEQlJlc3VsdERhdGEmKSBmaW5hbDsK
KyAgICB2b2lkIGRpZEdldEFsbFJlY29yZHMoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0YSYp
IGZpbmFsOworICAgIHZvaWQgZGlkR2V0Q291bnQoY29uc3QgV2ViQ29yZTo6SURCUmVzdWx0RGF0
YSYpIGZpbmFsOworICAgIHZvaWQgZGlkRGVsZXRlUmVjb3JkKGNvbnN0IFdlYkNvcmU6OklEQlJl
c3VsdERhdGEmKSBmaW5hbDsKKyAgICB2b2lkIGRpZE9wZW5DdXJzb3IoY29uc3QgV2ViQ29yZTo6
SURCUmVzdWx0RGF0YSYpIGZpbmFsOworICAgIHZvaWQgZGlkSXRlcmF0ZUN1cnNvcihjb25zdCBX
ZWJDb3JlOjpJREJSZXN1bHREYXRhJikgZmluYWw7CiAKLXByaXZhdGU6Ci0gICAgV2ViSURCQ29u
bmVjdGlvblRvQ2xpZW50KE5ldHdvcmtQcm9jZXNzJiwgSVBDOjpDb25uZWN0aW9uJiwgdWludDY0
X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklEKTsKKyAgICB2b2lk
IGZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRh
YmFzZUNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpJREJSZXNvdXJjZUlkZW50aWZpZXImIHJl
cXVlc3RJZGVudGlmaWVyLCB1aW50NjRfdCByZXF1ZXN0ZWRWZXJzaW9uKSBmaW5hbDsKKyAgICB2
b2lkIGRpZFN0YXJ0VHJhbnNhY3Rpb24oY29uc3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlm
aWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OklEQkVycm9yJikgZmlu
YWw7CisgICAgdm9pZCBkaWRDbG9zZUZyb21TZXJ2ZXIoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlx
dWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpJREJFcnJvciYpIGZpbmFs
OworICAgIHZvaWQgbm90aWZ5T3BlbkRCUmVxdWVzdEJsb2NrZWQoY29uc3QgV2ViQ29yZTo6SURC
UmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmllciwgdWludDY0X3Qgb2xkVmVyc2lv
biwgdWludDY0X3QgbmV3VmVyc2lvbikgZmluYWw7CiAKLSAgICBJUEM6OkNvbm5lY3Rpb24qIG1l
c3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBkaWRHZXRBbGxE
YXRhYmFzZU5hbWVzKHVpbnQ2NF90IGNhbGxiYWNrSUQsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBk
YXRhYmFzZU5hbWVzKSBmaW5hbDsKIAogICAgIHRlbXBsYXRlPGNsYXNzIE1lc3NhZ2VUeXBlPiB2
b2lkIGhhbmRsZUdldFJlc3VsdChjb25zdCBXZWJDb3JlOjpJREJSZXN1bHREYXRhJik7CiAKICAg
ICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiAgICAgUmVmPE5ldHdvcmtQcm9j
ZXNzPiBtX25ldHdvcmtQcm9jZXNzOwogCi0gICAgdWludDY0X3QgbV9pZGVudGlmaWVyOworICAg
IFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBQQUw6OlNlc3Np
b25JRCBtX3Nlc3Npb25JRDsKICAgICBSZWZQdHI8V2ViQ29yZTo6SURCU2VydmVyOjpJREJDb25u
ZWN0aW9uVG9DbGllbnQ+IG1fY29ubmVjdGlvblRvQ2xpZW50OwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub0Ns
aWVudC5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERC
L1dlYklEQkNvbm5lY3Rpb25Ub0NsaWVudC5tZXNzYWdlcy5pbgppbmRleCA4NzhhZjcwZDM0NWM2
NzE0NzZmMjk4ZGJjZWY5NGQzZmZmOGRiYjFkLi44MDNiOTZkMjlhZmM3OWMyOTMxYzhhMTFlZmQ0
NTNjNWFmMGYyYTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0lu
ZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9DbGllbnQubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50
Lm1lc3NhZ2VzLmluCkBAIC01MSw2ICs1MSw2IEBAIG1lc3NhZ2VzIC0+IFdlYklEQkNvbm5lY3Rp
b25Ub0NsaWVudCB7CiAgICAgT3BlbkRCUmVxdWVzdENhbmNlbGxlZChXZWJDb3JlOjpJREJSZXF1
ZXN0RGF0YSByZXF1ZXN0RGF0YSk7CiAgICAgQ29uZmlybURpZENsb3NlRnJvbVNlcnZlcih1aW50
NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKTsKIAotICAgIEdldEFsbERhdGFiYXNl
TmFtZXModWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wT3JpZ2luLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhIG9wZW5pbmdPcmlnaW4sIHVpbnQ2NF90IGNhbGxiYWNrSUQpOworICAgIEdldEFs
bERhdGFiYXNlTmFtZXMoc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0b3BPcmln
aW4sIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgb3BlbmluZ09yaWdpbiwgdWlu
dDY0X3QgY2FsbGJhY2tJRCk7CiB9CiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0Up
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDM2M2I3NTBiOGEyZWRkYTI4M2FiNjIx
NWM0ZTEyNWU0YWM2Yjg5NmMuLjQxMjhhNGJjOTI3YzBkNmNiMGE5YWMwNjBiNDc2NDFlODA1ZTli
MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC04NDksMjEgKzg0OSwxMiBAQCBz
aXplX3QgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmZpbmROZXR3b3JrQWN0aXZpdHlU
cmFja2VyKFJlc291cmNlTG9hZElkZQogfQogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0Up
Ci1zdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVJREJDb25uZWN0aW9uVG9TZXJ2ZXJJZGVudGlmaWVy
KCkKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmVzdGFibGlzaElEQkNvbm5l
Y3Rpb25Ub1NlcnZlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgQVNTRVJUKFJ1
bkxvb3A6OmlzTWFpbigpKTsKLSAgICBzdGF0aWMgdWludDY0X3QgaWRlbnRpZmllciA9IDA7Ci0g
ICAgcmV0dXJuICsraWRlbnRpZmllcjsKLX0KLQotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6ZXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2VydmVyKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCi17Ci0gICAgdWludDY0X3Qgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgPSBnZW5l
cmF0ZUlEQkNvbm5lY3Rpb25Ub1NlcnZlcklkZW50aWZpZXIoKTsKLSAgICBMT0coSW5kZXhlZERC
LCAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmVzdGFibGlzaElEQkNvbm5lY3Rpb25U
b1NlcnZlciAtICUiIFBSSXU2NCwgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpOwotICAgIEFT
U0VSVCghbV93ZWJJREJDb25uZWN0aW9ucy5jb250YWlucyhzZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllcikpOworICAgIExPRyhJbmRleGVkREIsICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6ZXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2VydmVyIC0gJSIgUFJJdTY0LCBzZXNzaW9uSUQu
dG9VSW50NjQoKSk7CisgICAgQVNTRVJUKCFtX3dlYklEQkNvbm5lY3Rpb25zLmNvbnRhaW5zKHNl
c3Npb25JRC50b1VJbnQ2NCgpKSk7CiAgICAgCi0gICAgbV93ZWJJREJDb25uZWN0aW9ucy5zZXQo
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Y3Jl
YXRlKG1fbmV0d29ya1Byb2Nlc3MsIG1fY29ubmVjdGlvbi5nZXQoKSwgc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIsIHNlc3Npb25JRCkpOwotICAgIGNvbXBsZXRpb25IYW5kbGVyKHNlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyKTsKKyAgICBtX3dlYklEQkNvbm5lY3Rpb25zLmFkZChzZXNzaW9u
SUQudG9VSW50NjQoKSwgV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpjcmVhdGUobV9uZXR3b3Jr
UHJvY2VzcywgbV9jb25uZWN0aW9uLmdldCgpLCBtX3dlYlByb2Nlc3NJZGVudGlmaWVyLCBzZXNz
aW9uSUQpKTsKIH0KICNlbmRpZgogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCmluZGV4IDA5
YjZhMzUxODJkNTM3N2FmOGZkZjc4ZGZkYzhjMWU1YWE3YTQ2NjMuLjg5YzkzMTUxMTNjNGIyZThi
OTlhNWQ0ODYwMTI2NDRkMjJkYjhmNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKQEAgLTIw
NCw3ICsyMDQsNyBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAg
ICAgLy8gTWVzc2FnZXMgaGFuZGxlcnMgKE1vZGVybiBJREIpLgotICAgIHZvaWQgZXN0YWJsaXNo
SURCQ29ubmVjdGlvblRvU2VydmVyKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKHVpbnQ2NF90ICBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcik+JiYpOworICAgIHZvaWQg
ZXN0YWJsaXNoSURCQ29ubmVjdGlvblRvU2VydmVyKFBBTDo6U2Vzc2lvbklEKTsKICNlbmRpZgog
CiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpAQCAtMzE1LDcgKzMxNSw3IEBAIHByaXZhdGU6
CiAgICAgUmVmUHRyPENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24+IG1fY2FjaGVTdG9yYWdl
Q29ubmVjdGlvbjsKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotICAgIEhhc2hNYXA8
dWludDY0X3QsIFJlZlB0cjxXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ+PiBtX3dlYklEQkNvbm5l
Y3Rpb25zOworICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZjxXZWJJREJDb25uZWN0aW9uVG9DbGll
bnQ+PiBtX3dlYklEQkNvbm5lY3Rpb25zOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VSVklDRV9X
T1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBm
ZDA5MmYzMTQ3OTMyNTRjNGZiNTQ3OThmYjdlNzA2MDdlMzZiNjcxLi5hOWM1ZjYxODE4NjI0YTY5
MDUxZGQ3MGNmMTk5MDIzM2ZlNjA3MmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MubWVzc2FnZXMuaW4KQEAgLTc3LDcgKzc3LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFRha2VOZXR3b3JrTG9hZElu
Zm9ybWF0aW9uTWV0cmljcyh1aW50NjRfdCByZXNvdXJjZUxvYWRJZGVudGlmaWVyKSAtPiAoV2Vi
Q29yZTo6TmV0d29ya0xvYWRNZXRyaWNzIG5ldHdvcmtNZXRyaWNzKSBTeW5jaHJvbm91cwogCiAj
aWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0gICAgRXN0YWJsaXNoSURCQ29ubmVjdGlvblRv
U2VydmVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKHVpbnQ2NF90IHNlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyKSBTeW5jaHJvbm91cworICAgIEVzdGFibGlzaElEQkNvbm5lY3Rpb25U
b1NlcnZlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShT
RVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRh
YmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2
ZXIuY3BwCmluZGV4IDhmNTc4ZTQ2ZGNiNzhjZDIwZTYyYjI2ZWRlOWJiMGI3NjAxNGNkZDUuLmNl
MWM5M2ViNGU3ZjkyZWVkNGNhZDUyMTZhMTQ1OGQ5NDY0ZDgzMzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25U
b1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRl
eGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcApAQCAtNDgsNiArNDgsNyBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvSURCUmVzdWx0RGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSURCVHJh
bnNhY3Rpb25JbmZvLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JREJWYWx1ZS5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTU5LDE4ICs2MCwyMCBAQCBSZWY8V2ViSURCQ29ubmVj
dGlvblRvU2VydmVyPiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNyZWF0ZShQQUw6OlNlc3Np
b25JRCBzZQogCiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OldlYklEQkNvbm5lY3Rpb25Ub1Nl
cnZlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgOiBtX3Nlc3Npb25JRChzZXNzaW9u
SUQpCisgICAgLCBtX2Nvbm5lY3Rpb25Ub1NlcnZlcihJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25U
b1NlcnZlcjo6Y3JlYXRlKCp0aGlzKSkKIHsKLSAgICByZWxheEFkb3B0aW9uUmVxdWlyZW1lbnQo
KTsKLQotICAgIG1faXNPcGVuSW5TZXJ2ZXIgPSBzZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkVzdGFibGlzaElEQkNvbm5lY3Rpb25Ub1NlcnZlcihzZXNz
aW9uSUQpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkVzdGFibGlz
aElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6UmVwbHkobV9pZGVudGlmaWVyKSk7Ci0KLSAgICBtX2Nv
bm5lY3Rpb25Ub1NlcnZlciA9IElEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyOjpjcmVh
dGUoKnRoaXMpOworICAgIHNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpFc3RhYmxpc2hJREJDb25uZWN0aW9uVG9TZXJ2ZXIoc2Vzc2lvbklEKSwgMCk7CiB9CiAK
IFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6fldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcigpCiB7
CiB9CiAKK3VpbnQ2NF90IFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6aWRlbnRpZmllcigpIGNv
bnN0Cit7CisgICAgcmV0dXJuIFByb2Nlc3M6OmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpOworfQor
CiBJUEM6OkNvbm5lY3Rpb24qIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6bWVzc2FnZVNlbmRl
ckNvbm5lY3Rpb24oKSBjb25zdAogewogICAgIHJldHVybiAmV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpOwpAQCAtNzgs
NyArODEsNyBAQCBJUEM6OkNvbm5lY3Rpb24qIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6bWVz
c2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdAogCiBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25U
b1NlcnZlciYgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpjb3JlQ29ubmVjdGlvblRvU2VydmVy
KCkKIHsKLSAgICByZXR1cm4gKm1fY29ubmVjdGlvblRvU2VydmVyOworICAgIHJldHVybiBtX2Nv
bm5lY3Rpb25Ub1NlcnZlcjsKIH0KIAogdm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRl
bGV0ZURhdGFiYXNlKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSkKQEAgLTIxMyw3
ICsyMTYsNyBAQCB2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Y29uZmlybURpZENsb3Nl
RnJvbVNlcnZlcih1aW50NjRfdCBkYXRhYmFzZUNvbm5lYwogCiB2b2lkIFdlYklEQkNvbm5lY3Rp
b25Ub1NlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lcyhjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBv
cGVuaW5nT3JpZ2luLCB1aW50NjRfdCBjYWxsYmFja0lEKQogewotICAgIHNlbmQoTWVzc2FnZXM6
OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6R2V0QWxsRGF0YWJhc2VOYW1lcyhtX2lkZW50aWZp
ZXIsIHRvcE9yaWdpbiwgb3BlbmluZ09yaWdpbiwgY2FsbGJhY2tJRCkpOworICAgIHNlbmQoTWVz
c2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6R2V0QWxsRGF0YWJhc2VOYW1lcyh0b3BP
cmlnaW4sIG9wZW5pbmdPcmlnaW4sIGNhbGxiYWNrSUQpKTsKIH0KIAogdm9pZCBXZWJJREJDb25u
ZWN0aW9uVG9TZXJ2ZXI6OmRpZERlbGV0ZURhdGFiYXNlKGNvbnN0IElEQlJlc3VsdERhdGEmIHJl
c3VsdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5k
ZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmgKaW5kZXgg
ZmMxMWQ0MWY1NDI4ZmYxMGFlZTQzMmE4OTNjM2FkZGU0OWVhYjU0ZS4uZTRlOTRlYTE5YTJhMTlh
MjgyNTNkNzMxMjA3Mzc4NTk3M2E0MTc3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29u
bmVjdGlvblRvU2VydmVyLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJNZXNzYWdlU2Vu
ZGVyLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
SURCQ29ubmVjdGlvblRvU2VydmVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRp
Zmllci5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7
CkBAIC0zOSwxMiArNDAsMjIgQEAgY2xhc3MgV2ViSURCUmVzdWx0OwogY2xhc3MgV2ViSURCQ29u
bmVjdGlvblRvU2VydmVyIGZpbmFsIDogcHJpdmF0ZSBXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNv
bm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLCBwcml2YXRlIElQQzo6TWVzc2FnZVNlbmRlciwgcHVi
bGljIFJlZkNvdW50ZWQ8V2ViSURCQ29ubmVjdGlvblRvU2VydmVyPiB7CiBwdWJsaWM6CiAgICAg
c3RhdGljIFJlZjxXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI+IGNyZWF0ZShQQUw6OlNlc3Npb25J
RCk7Ci0KICAgICB2aXJ0dWFsIH5XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIoKTsKIAogICAgIFdl
YkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyJiBjb3JlQ29ubmVjdGlvblRv
U2VydmVyKCk7Ci0gICAgdWludDY0X3QgaWRlbnRpZmllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1faWRlbnRpZmllcjsgfQotICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklE
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CisgICAgdWludDY0X3QgaWRl
bnRpZmllcigpIGNvbnN0IGZpbmFsOworCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKyAgICB2b2lkIGNvbm5lY3Rpb25Ub1NlcnZl
ckxvc3QoKTsKKworICAgIHZvaWQgcmVmKCkgZmluYWwgeyBSZWZDb3VudGVkPFdlYklEQkNvbm5l
Y3Rpb25Ub1NlcnZlcj46OnJlZigpOyB9CisgICAgdm9pZCBkZXJlZigpIGZpbmFsIHsgUmVmQ291
bnRlZDxXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI+OjpkZXJlZigpOyB9CisKK3ByaXZhdGU6Cisg
ICAgZXhwbGljaXQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyKFBBTDo6U2Vzc2lvbklEKTsKKwor
ICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdCBmaW5h
bDsKKyAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIG1fc2Vzc2lvbklELnRvVUludDY0KCk7IH0KIAogICAgIC8vIElEQkNvbm5lY3Rp
b25Ub1NlcnZlckRlbGVnYXRlCiAgICAgdm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBXZWJDb3Jl
OjpJREJSZXF1ZXN0RGF0YSYpIGZpbmFsOwpAQCAtNzYsOSArODcsNiBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIGdldEFsbERhdGFiYXNlTmFtZXMoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiB0b3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgb3Blbmlu
Z09yaWdpbiwgdWludDY0X3QgY2FsbGJhY2tJRCkgZmluYWw7CiAKLSAgICB2b2lkIHJlZigpIG92
ZXJyaWRlIHsgUmVmQ291bnRlZDxXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI+OjpyZWYoKTsgfQot
ICAgIHZvaWQgZGVyZWYoKSBvdmVycmlkZSB7IFJlZkNvdW50ZWQ8V2ViSURCQ29ubmVjdGlvblRv
U2VydmVyPjo6ZGVyZWYoKTsgfQotCiAgICAgLy8gTWVzc2FnZXMgcmVjZWl2ZWQgZnJvbSBOZXR3
b3JrIFByb2Nlc3MKICAgICB2b2lkIGRpZERlbGV0ZURhdGFiYXNlKGNvbnN0IFdlYkNvcmU6OklE
QlJlc3VsdERhdGEmKTsKICAgICB2b2lkIGRpZE9wZW5EYXRhYmFzZShjb25zdCBXZWJDb3JlOjpJ
REJSZXN1bHREYXRhJik7CkBAIC0xMDQsMTkgKzExMiw4IEBAIHB1YmxpYzoKICAgICB2b2lkIG5v
dGlmeU9wZW5EQlJlcXVlc3RCbG9ja2VkKGNvbnN0IFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRp
ZmllciYgcmVxdWVzdElkZW50aWZpZXIsIHVpbnQ2NF90IG9sZFZlcnNpb24sIHVpbnQ2NF90IG5l
d1ZlcnNpb24pOwogICAgIHZvaWQgZGlkR2V0QWxsRGF0YWJhc2VOYW1lcyh1aW50NjRfdCBjYWxs
YmFja0lELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZGF0YWJhc2VOYW1lcyk7CiAKLSAgICB2b2lk
IGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOwotCi0g
ICAgdm9pZCBjb25uZWN0aW9uVG9TZXJ2ZXJMb3N0KCk7Ci0KLXByaXZhdGU6Ci0gICAgV2ViSURC
Q29ubmVjdGlvblRvU2VydmVyKFBBTDo6U2Vzc2lvbklEKTsKLQotICAgIElQQzo6Q29ubmVjdGlv
biogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdCBmaW5hbDsKLQotICAgIHVpbnQ2NF90
IG1faWRlbnRpZmllciB7IDAgfTsKLSAgICBib29sIG1faXNPcGVuSW5TZXJ2ZXIgeyBmYWxzZSB9
OwotICAgIFJlZlB0cjxXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlcj4g
bV9jb25uZWN0aW9uVG9TZXJ2ZXI7CiAgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7Cisg
ICAgUmVmPFdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyPiBtX2Nvbm5l
Y3Rpb25Ub1NlcnZlcjsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29u
bmVjdGlvbi5jcHAKaW5kZXggYmZjNWZkNjIwMWVjZmE5YTMzNzc1MGVkZWMyMTJlMjUzYjMyYTNj
NS4uOTQ5Y2FkYTZjY2Y0NTMzYWY3NTE3YzY0MGVkMGQyZTYwZDY5MDVlZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb24uY3BwCkBAIC0xMjksNyArMTI5LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc0Nv
bm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwg
SVAKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIGlmIChkZWNvZGVyLm1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSA9PSBNZXNzYWdlczo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKLSAgICAgICAgaWYgKGF1dG8gaWRiQ29ubmVjdGlvbiA9
IG1fd2ViSURCQ29ubmVjdGlvbnNCeUlkZW50aWZpZXIuZ2V0KGRlY29kZXIuZGVzdGluYXRpb25J
RCgpKSkKKyAgICAgICAgaWYgKGF1dG8qIGlkYkNvbm5lY3Rpb24gPSBtX3dlYklEQkNvbm5lY3Rp
b25zQnlTZXNzaW9uLmdldChkZWNvZGVyLmRlc3RpbmF0aW9uSUQoKSkpCiAgICAgICAgICAgICBp
ZGJDb25uZWN0aW9uLT5kaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE5NCwxNiArMTk0LDE0IEBAIHZvaWQgTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQogICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLm5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZCh0aGlzKTsKIAog
I2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotICAgIGZvciAoYXV0byYgY29ubmVjdGlvbiA6
IG1fd2ViSURCQ29ubmVjdGlvbnNCeUlkZW50aWZpZXIudmFsdWVzKCkpCisgICAgYXV0byBpZGJD
b25uZWN0aW9ucyA9IHN0ZDo6ZXhjaGFuZ2UobV93ZWJJREJDb25uZWN0aW9uc0J5U2Vzc2lvbiwg
eyB9KTsKKyAgICBmb3IgKGF1dG8mIGNvbm5lY3Rpb24gOiBpZGJDb25uZWN0aW9ucy52YWx1ZXMo
KSkKICAgICAgICAgY29ubmVjdGlvbi0+Y29ubmVjdGlvblRvU2VydmVyTG9zdCgpOwotICAgIAot
ICAgIG1fd2ViSURCQ29ubmVjdGlvbnNCeUlkZW50aWZpZXIuY2xlYXIoKTsKLSAgICBtX3dlYklE
QkNvbm5lY3Rpb25zQnlTZXNzaW9uLmNsZWFyKCk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKLSAgICBhdXRvIGNvbm5lY3Rpb25zID0gc3RkOjpleGNoYW5nZShtX3N3Q29u
bmVjdGlvbnNCeUlkZW50aWZpZXIsIHsgfSk7Ci0gICAgZm9yIChhdXRvJiBjb25uZWN0aW9uIDog
Y29ubmVjdGlvbnMudmFsdWVzKCkpCisgICAgYXV0byBzd0Nvbm5lY3Rpb25zID0gc3RkOjpleGNo
YW5nZShtX3N3Q29ubmVjdGlvbnNCeUlkZW50aWZpZXIsIHsgfSk7CisgICAgZm9yIChhdXRvJiBj
b25uZWN0aW9uIDogc3dDb25uZWN0aW9ucy52YWx1ZXMoKSkKICAgICAgICAgY29ubmVjdGlvbi0+
Y29ubmVjdGlvblRvU2VydmVyTG9zdCgpOwogI2VuZGlmCiB9CkBAIC0yNTIsMTMgKzI1MCw4IEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjpkaWRDYWNoZVJlc291cmNlKGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCwKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIFdl
YklEQkNvbm5lY3Rpb25Ub1NlcnZlciYgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uOjppZGJDb25u
ZWN0aW9uVG9TZXJ2ZXJGb3JTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAg
ICByZXR1cm4gKm1fd2ViSURCQ29ubmVjdGlvbnNCeVNlc3Npb24uZW5zdXJlKHNlc3Npb25JRCwg
WyZdIHsKLSAgICAgICAgYXV0byBjb25uZWN0aW9uID0gV2ViSURCQ29ubmVjdGlvblRvU2VydmVy
OjpjcmVhdGUoc2Vzc2lvbklEKTsKLSAgICAgICAgCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gbV93
ZWJJREJDb25uZWN0aW9uc0J5SWRlbnRpZmllci5hZGQoY29ubmVjdGlvbi0+aWRlbnRpZmllcigp
LCBjb25uZWN0aW9uLmNvcHlSZWYoKSk7Ci0gICAgICAgIEFTU0VSVF9VTlVTRUQocmVzdWx0LCBy
ZXN1bHQuaXNOZXdFbnRyeSk7Ci0gICAgICAgIAotICAgICAgICByZXR1cm4gY29ubmVjdGlvbjsK
KyAgICByZXR1cm4gKm1fd2ViSURCQ29ubmVjdGlvbnNCeVNlc3Npb24uZW5zdXJlKHNlc3Npb25J
RC50b1VJbnQ2NCgpLCBbJl0geworICAgICAgICByZXR1cm4gV2ViSURCQ29ubmVjdGlvblRvU2Vy
dmVyOjpjcmVhdGUoc2Vzc2lvbklEKTsKICAgICB9KS5pdGVyYXRvci0+dmFsdWU7CiB9CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggMDA3MWRiMWY3NmI2MGY2MTU1YWUwNGEzNmI2
OGRiOTRiZjE2NzE2MS4uY2YzZWRlMTQxMDE5MTkxMzRhMmJkMDgxYTJkZGQwMjFkZTdhNTU0MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTcxLDcgKzcxLDcgQEAgcHVibGljOgogICAgIHZv
aWQgd3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBibG9iVVJMcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5n
PiYmIGZpbGVQYXRocyk+JiYpOwogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCi0gICAg
V2ViSURCQ29ubmVjdGlvblRvU2VydmVyKiBleGlzdGluZ0lEQkNvbm5lY3Rpb25Ub1NlcnZlckZv
cklkZW50aWZpZXIodWludDY0X3QgaWRlbnRpZmllcikgY29uc3QgeyByZXR1cm4gbV93ZWJJREJD
b25uZWN0aW9uc0J5SWRlbnRpZmllci5nZXQoaWRlbnRpZmllcik7IH07CisgICAgV2ViSURCQ29u
bmVjdGlvblRvU2VydmVyKiBleGlzdGluZ0lEQkNvbm5lY3Rpb25Ub1NlcnZlcihQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQpIGNvbnN0IHsgcmV0dXJuIG1fd2ViSURCQ29ubmVjdGlvbnNCeVNlc3Np
b24uZ2V0KHNlc3Npb25JRC50b1VJbnQ2NCgpKTsgfTsKICAgICBXZWJJREJDb25uZWN0aW9uVG9T
ZXJ2ZXImIGlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24oUEFMOjpTZXNzaW9uSUQpOwog
I2VuZGlmCiAKQEAgLTEwOCw4ICsxMDgsNyBAQCBwcml2YXRlOgogICAgIFJlZjxJUEM6OkNvbm5l
Y3Rpb24+IG1fY29ubmVjdGlvbjsKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotICAg
IEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIFJlZlB0cjxXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI+
PiBtX3dlYklEQkNvbm5lY3Rpb25zQnlTZXNzaW9uOwotICAgIEhhc2hNYXA8dWludDY0X3QsIFJl
ZlB0cjxXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI+PiBtX3dlYklEQkNvbm5lY3Rpb25zQnlJZGVu
dGlmaWVyOworICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxXZWJJREJDb25uZWN0aW9uVG9T
ZXJ2ZXI+PiBtX3dlYklEQkNvbm5lY3Rpb25zQnlTZXNzaW9uOwogI2VuZGlmCiAKICNpZiBFTkFC
TEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAK
aW5kZXggZjIwODQzZTljN2U1ZjEzODM1YzUzMjJkNTM2NDYzZGYxNTFkNDk0YS4uNGFlOWNhYzQy
YWJkZDViYTg0MWQ3MDM0MDc2NzljNGM1MTM5NmIzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcApAQCAtMTI0Miw4ICsxMjQyLDggQEAgdm9pZCBXZWJQcm9jZXNzOjpu
ZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKiBj
b25uZWMKICAgICAgICAgaWYgKCFpZGJDb25uZWN0aW9uKQogICAgICAgICAgICAgY29udGludWU7
CiAgICAgICAgIAotICAgICAgICBpZiAoY29ubmVjdGlvbi0+ZXhpc3RpbmdJREJDb25uZWN0aW9u
VG9TZXJ2ZXJGb3JJZGVudGlmaWVyKGlkYkNvbm5lY3Rpb24tPmlkZW50aWZpZXIoKSkpIHsKLSAg
ICAgICAgICAgIEFTU0VSVChpZGJDb25uZWN0aW9uID09ICZjb25uZWN0aW9uLT5leGlzdGluZ0lE
QkNvbm5lY3Rpb25Ub1NlcnZlckZvcklkZW50aWZpZXIoaWRiQ29ubmVjdGlvbi0+aWRlbnRpZmll
cigpKS0+Y29yZUNvbm5lY3Rpb25Ub1NlcnZlcigpKTsKKyAgICAgICAgaWYgKGNvbm5lY3Rpb24t
PmV4aXN0aW5nSURCQ29ubmVjdGlvblRvU2VydmVyKHBhZ2UtPmNvcmVQYWdlKCktPnNlc3Npb25J
RCgpKSkgeworICAgICAgICAgICAgQVNTRVJUKGlkYkNvbm5lY3Rpb24gPT0gJmNvbm5lY3Rpb24t
PmV4aXN0aW5nSURCQ29ubmVjdGlvblRvU2VydmVyKHBhZ2UtPmNvcmVQYWdlKCktPnNlc3Npb25J
RCgpKS0+Y29yZUNvbm5lY3Rpb25Ub1NlcnZlcigpKTsKICAgICAgICAgICAgIHBhZ2UtPmNvcmVQ
YWdlKCktPmNsZWFySURCQ29ubmVjdGlvbigpOwogICAgICAgICB9CiAgICAgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>