<?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>180383</bug_id>
          
          <creation_ts>2017-12-04 16:19:45 -0800</creation_ts>
          <short_desc>Add support for ServiceWorkerContainer.prototype.ready</short_desc>
          <delta_ts>2017-12-06 16:48:24 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Service Workers</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>https://w3c.github.io/ServiceWorker/#navigator-service-worker-ready</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>180360</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1377980</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-04 16:19:45 -0800</bug_when>
    <thetext>Add support for ServiceWorkerContainer.prototype.ready:
- https://w3c.github.io/ServiceWorker/#navigator-service-worker-ready</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378222</commentid>
    <comment_count>1</comment_count>
      <attachid>328468</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-05 10:53:54 -0800</bug_when>
    <thetext>Created attachment 328468
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378226</commentid>
    <comment_count>2</comment_count>
      <attachid>328469</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-05 10:57:15 -0800</bug_when>
    <thetext>Created attachment 328469
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378231</commentid>
    <comment_count>3</comment_count>
      <attachid>328472</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-05 11:00:48 -0800</bug_when>
    <thetext>Created attachment 328472
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378253</commentid>
    <comment_count>4</comment_count>
      <attachid>328472</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-12-05 11:39:14 -0800</bug_when>
    <thetext>Comment on attachment 328472
Patch

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

&gt; Source/WebCore/workers/service/SWClientConnection.h:65
&gt; +    using WhenRegistrationReadyCallback = WTF::Function&lt;void(ServiceWorkerRegistrationData&amp;&amp;)&gt;;

If this cannot be a CompletionHandler, probably the other callbacks cannot be either.

&gt; Source/WebCore/workers/service/ServiceWorkerContainer.cpp:93
&gt; +                        return;

I wonder whether ScriptExecutionContext::postTaskTo would be able to prevent these kind of checks in the future.

&gt; Source/WebCore/workers/service/server/SWServer.cpp:650
&gt; +        connection-&gt;resolveRegistrationReadyRequests(registration);

Since we already expose Connection through getConnection, maybe it is fine to allow iterating in some ways inside SWServerRegistration directly.

&gt; Source/WebKit/StorageProcess/ServiceWorker/WebSWServerConnection.cpp:212
&gt; +    m_registrationReadyRequests.append({ topOrigin, clientURL, WTFMove(callback) });

If we want to keep good WK2/WebCore layering, we should probably add this vector somewhere else, maybe at SWServerConnection level.
WebSWServerConnection::resolveRegistrationReadyRequests would also move up there.

In preexisting code, we should probably add an SWServerConnection::matchRegistration that would return an optional so that we would do less WebCore stuff in WebSWServerConnection::matchRegistration.
The same could apply there as well maybe.

&gt; Source/WebKit/WebProcess/Storage/WebSWClientConnection.cpp:158
&gt; +void WebSWClientConnection::whenRegistrationReady(Ref&lt;SecurityOrigin&gt;&amp;&amp; topOrigin, const URL&amp; clientURL, WhenRegistrationReadyCallback&amp;&amp; callback)

Could probably take a const SecurityOrigin&amp;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378267</commentid>
    <comment_count>5</comment_count>
      <attachid>328480</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-05 12:09:50 -0800</bug_when>
    <thetext>Created attachment 328480
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378270</commentid>
    <comment_count>6</comment_count>
      <attachid>328480</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-05 12:12:28 -0800</bug_when>
    <thetext>Comment on attachment 328480
Patch

Rejecting attachment 328480 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-02&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 328480, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in LayoutTests/imported/w3c/ChangeLog contains OOPS!.

Full output: http://webkit-queues.webkit.org/results/5504306</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378279</commentid>
    <comment_count>7</comment_count>
      <attachid>328483</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-12-05 12:24:16 -0800</bug_when>
    <thetext>Created attachment 328483
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378300</commentid>
    <comment_count>8</comment_count>
      <attachid>328483</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-05 12:56:17 -0800</bug_when>
    <thetext>Comment on attachment 328483
Patch

Clearing flags on attachment: 328483

Committed r225531: &lt;https://trac.webkit.org/changeset/225531&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378301</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-05 12:56:19 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378925</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-12-06 16:48:24 -0800</bug_when>
    <thetext>&lt;rdar://problem/35896620&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328468</attachid>
            <date>2017-12-05 10:53:54 -0800</date>
            <delta_ts>2017-12-05 10:57:14 -0800</delta_ts>
            <desc>WIP Patch</desc>
            <filename>180383_container_ready_wip.patch</filename>
            <type>text/plain</type>
            <size>21753</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlYWR5Lmh0dHBzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3JlYWR5Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAwNDg5NDE3
ZGY3Mi4uZjU4ODRjMjRmMjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlYWR5Lmh0
dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWFkeS5odHRwcy1leHBl
Y3RlZC50eHQKQEAgLTEsMTQgKzEsMTEgQEAKLUNPTlNPTEUgTUVTU0FHRTogVW5oYW5kbGVkIFBy
b21pc2UgUmVqZWN0aW9uOiBVbmtub3duRXJyb3I6IHNlcnZpY2VXb3JrZXIucmVhZHkoKSBpcyBu
b3QgeWV0IGltcGxlbWVudGVkCi0KLUhhcm5lc3MgRXJyb3IgKEZBSUwpLCBtZXNzYWdlID0gc2Vy
dmljZVdvcmtlci5yZWFkeSgpIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQKIAogUEFTUyByZWFkeSBy
ZXR1cm5zIHRoZSBzYW1lIFByb21pc2Ugb2JqZWN0IAogUEFTUyByZWFkeSByZXR1cm5zIGEgUHJv
bWlzZSBvYmplY3QgaW4gdGhlIGNvbnRleHQgb2YgdGhlIHJlbGF0ZWQgZG9jdW1lbnQgCi1GQUlM
IHJlYWR5IG9uIGEgY29udHJvbGxlZCBkb2N1bWVudCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCBy
ZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJVbmtub3duRXJyb3I6IHNlcnZpY2VXb3JrZXIu
cmVhZHkoKSBpcyBub3QgeWV0IGltcGxlbWVudGVkIgotRkFJTCByZWFkeSBvbiBhIHBvdGVudGlh
bCBjb250cm9sbGVkIGRvY3VtZW50IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3
aXRoIHZhbHVlOiBvYmplY3QgIlVua25vd25FcnJvcjogc2VydmljZVdvcmtlci5yZWFkeSgpIGlz
IG5vdCB5ZXQgaW1wbGVtZW50ZWQiCi1GQUlMIHJlYWR5IG9uIGFuIGlmcmFtZSB3aG9zZSBwYXJl
bnQgcmVnaXN0ZXJzIGEgbmV3IHNlcnZpY2Ugd29ya2VyIHByb21pc2VfdGVzdDogVW5oYW5kbGVk
IHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlVua25vd25FcnJvcjogc2VydmljZVdvcmtl
ci5yZWFkeSgpIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQiCi1GQUlMIHJlYWR5IG9uIGFuIGlmcmFt
ZSB0aGF0IGluc3RhbGxzIGEgbmV3IHNlcnZpY2Ugd29ya2VyIHByb21pc2VfdGVzdDogVW5oYW5k
bGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlVua25vd25FcnJvcjogc2VydmljZVdv
cmtlci5yZWFkeSgpIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQiCi1GQUlMIHJlYWR5IGFmdGVyIGEg
bG9uZ2VyIG1hdGNoZWQgcmVnaXN0cmF0aW9uIHJlZ2lzdGVyZWQgcHJvbWlzZV90ZXN0OiBVbmhh
bmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVW5rbm93bkVycm9yOiBzZXJ2aWNl
V29ya2VyLnJlYWR5KCkgaXMgbm90IHlldCBpbXBsZW1lbnRlZCIKLUZBSUwgYWNjZXNzIHJlYWR5
IGFmdGVyIGl0IGhhcyBiZWVuIHJlc29sdmVkIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVj
dGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlVua25vd25FcnJvcjogc2VydmljZVdvcmtlci5yZWFk
eSgpIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQiCi1GQUlMIGFjY2VzcyByZWFkeSBvbiB1bmluc3Rh
bGxpbmcgcmVnaXN0cmF0aW9uIHRoYXQgaXMgcmVzdXJyZWN0ZWQgcHJvbWlzZV90ZXN0OiBVbmhh
bmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVW5rbm93bkVycm9yOiBzZXJ2aWNl
V29ya2VyLnJlYWR5KCkgaXMgbm90IHlldCBpbXBsZW1lbnRlZCIKK1BBU1MgcmVhZHkgb24gYSBj
b250cm9sbGVkIGRvY3VtZW50IAorUEFTUyByZWFkeSBvbiBhIHBvdGVudGlhbCBjb250cm9sbGVk
IGRvY3VtZW50IAorUEFTUyByZWFkeSBvbiBhbiBpZnJhbWUgd2hvc2UgcGFyZW50IHJlZ2lzdGVy
cyBhIG5ldyBzZXJ2aWNlIHdvcmtlciAKK1BBU1MgcmVhZHkgb24gYW4gaWZyYW1lIHRoYXQgaW5z
dGFsbHMgYSBuZXcgc2VydmljZSB3b3JrZXIgCitQQVNTIHJlYWR5IGFmdGVyIGEgbG9uZ2VyIG1h
dGNoZWQgcmVnaXN0cmF0aW9uIHJlZ2lzdGVyZWQgCitQQVNTIGFjY2VzcyByZWFkeSBhZnRlciBp
dCBoYXMgYmVlbiByZXNvbHZlZCAKK1BBU1MgYWNjZXNzIHJlYWR5IG9uIHVuaW5zdGFsbGluZyBy
ZWdpc3RyYXRpb24gdGhhdCBpcyByZXN1cnJlY3RlZCAKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IDMxNzdmMjliOGM3
Li5kMDFhOTA0NjJlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NXQ2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TV0NsaWVudENvbm5lY3Rpb24uaApAQCAtNjIsNiArNjIsOSBAQCBwdWJsaWM6CiAgICAgdXNp
bmcgR2V0UmVnaXN0cmF0aW9uc0NhbGxiYWNrID0gV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFZlY3RvcjxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YT4mJik+OwogICAgIHZpcnR1YWwg
dm9pZCBnZXRSZWdpc3RyYXRpb25zKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIGNv
bnN0IFVSTCYgY2xpZW50VVJMLCBHZXRSZWdpc3RyYXRpb25zQ2FsbGJhY2smJikgPSAwOwogCisg
ICAgdXNpbmcgV2hlblJlZ2lzdHJhdGlvblJlYWR5Q2FsbGJhY2sgPSBXVEY6OkZ1bmN0aW9uPHZv
aWQoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmJik+OworICAgIHZpcnR1YWwgdm9pZCB3
aGVuUmVnaXN0cmF0aW9uUmVhZHkoUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgY29u
c3QgVVJMJiBjbGllbnRVUkwsIFdoZW5SZWdpc3RyYXRpb25SZWFkeUNhbGxiYWNrJiYpID0gMDsK
KwogICAgIHZpcnR1YWwgdm9pZCBhZGRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSW5TZXJ2ZXIo
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgcmVtb3ZlU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkluU2VydmVyKFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25JZGVudGlmaWVyKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcAppbmRleCA4NWRh
ZjJlMjljYi4uNGEzMTFiOTlkYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAKQEAgLTU3LDggKzU3LDYg
QEAgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6U2VydmljZVdvcmtlckNvbnRhaW5lcihTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LAogICAgICwgbV9uYXZpZ2F0b3IobmF2aWdhdG9yKQog
ewogICAgIHN1c3BlbmRJZk5lZWRlZCgpOwotCi0gICAgbV9yZWFkeVByb21pc2UucmVqZWN0KEV4
Y2VwdGlvbiB7IFVua25vd25FcnJvciwgQVNDSUlMaXRlcmFsKCJzZXJ2aWNlV29ya2VyLnJlYWR5
KCkgaXMgbm90IHlldCBpbXBsZW1lbnRlZCIpIH0pOwogfQogCiBTZXJ2aWNlV29ya2VyQ29udGFp
bmVyOjp+U2VydmljZVdvcmtlckNvbnRhaW5lcigpCkBAIC03OCw2ICs3NiwzMSBAQCB2b2lkIFNl
cnZpY2VXb3JrZXJDb250YWluZXI6OmRlcmVmRXZlbnRUYXJnZXQoKQogICAgIG1fbmF2aWdhdG9y
LmRlcmVmKCk7CiB9CiAKK2F1dG8gU2VydmljZVdvcmtlckNvbnRhaW5lcjo6cmVhZHkoKSAtPiBS
ZWFkeVByb21pc2UmCit7CisgICAgaWYgKCFtX3JlYWR5UHJvbWlzZSkgeworICAgICAgICBtX3Jl
YWR5UHJvbWlzZSA9IHN0ZDo6bWFrZV91bmlxdWU8UmVhZHlQcm9taXNlPigpOworCisgICAgICAg
IGF1dG8qIGNvbnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CisgICAgICAgIGlmICgh
Y29udGV4dCkKKyAgICAgICAgICAgIHJldHVybiAqbV9yZWFkeVByb21pc2U7CisKKyAgICAgICAg
YXV0byBjb250ZXh0SWRlbnRpZmllciA9IHRoaXMtPmNvbnRleHRJZGVudGlmaWVyKCk7CisgICAg
ICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIGNvbm5lY3Rpb24gPSBtYWtlUmVmKGVuc3VyZVNX
Q2xpZW50Q29ubmVjdGlvbigpKSwgdG9wT3JpZ2luID0gY29udGV4dC0+dG9wT3JpZ2luKCkuaXNv
bGF0ZWRDb3B5KCksIGNsaWVudFVSTCA9IGNvbnRleHQtPnVybCgpLmlzb2xhdGVkQ29weSgpLCBj
b250ZXh0SWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGNvbm5lY3Rpb24tPndo
ZW5SZWdpc3RyYXRpb25SZWFkeShXVEZNb3ZlKHRvcE9yaWdpbiksIGNsaWVudFVSTCwgW3RoaXMs
IGNvbnRleHRJZGVudGlmaWVyXShhdXRvJiYgcmVnaXN0cmF0aW9uRGF0YSkgeworICAgICAgICAg
ICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnBvc3RUYXNrVG8oY29udGV4dElkZW50aWZp
ZXIsIFt0aGlzLCByZWdpc3RyYXRpb25EYXRhID0gY3Jvc3NUaHJlYWRDb3B5KHJlZ2lzdHJhdGlv
bkRhdGEpXShhdXRvJikgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX2lzU3Rv
cHBlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgICAg
ICAgICBhdXRvIHJlZ2lzdHJhdGlvbiA9IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb246OmdldE9y
Q3JlYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICp0aGlzLCBXVEZNb3ZlKHJlZ2lzdHJh
dGlvbkRhdGEpKTsKKyAgICAgICAgICAgICAgICAgICAgbV9yZWFkeVByb21pc2UtPnJlc29sdmUo
V1RGTW92ZShyZWdpc3RyYXRpb24pKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICB9KTsKKyAgICB9CisgICAgcmV0dXJuICptX3JlYWR5UHJvbWlzZTsKK30K
KwogU2VydmljZVdvcmtlciogU2VydmljZVdvcmtlckNvbnRhaW5lcjo6Y29udHJvbGxlcigpIGNv
bnN0CiB7CiAgICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29u
dGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNv
bnRhaW5lci5oCmluZGV4IDE0MTYzZjk3NDM4Li43ZjdjZTgyNjI4OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5o
CkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICBTZXJ2aWNlV29ya2VyKiBjb250cm9sbGVy
KCkgY29uc3Q7CiAKICAgICB1c2luZyBSZWFkeVByb21pc2UgPSBET01Qcm9taXNlUHJveHk8SURM
SW50ZXJmYWNlPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24+PjsKLSAgICBSZWFkeVByb21pc2Um
IHJlYWR5KCkgeyByZXR1cm4gbV9yZWFkeVByb21pc2U7IH0KKyAgICBSZWFkeVByb21pc2UmIHJl
YWR5KCk7CiAKICAgICB1c2luZyBSZWdpc3RyYXRpb25PcHRpb25zID0gU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbk9wdGlvbnM7CiAgICAgdm9pZCBhZGRSZWdpc3RyYXRpb24oY29uc3QgU3RyaW5n
JiBzY3JpcHRVUkwsIGNvbnN0IFJlZ2lzdHJhdGlvbk9wdGlvbnMmLCBSZWY8RGVmZXJyZWRQcm9t
aXNlPiYmKTsKQEAgLTExMCw3ICsxMTAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGVyZWZFdmVu
dFRhcmdldCgpIGZpbmFsOwogICAgIHZvaWQgc3RvcCgpIGZpbmFsOwogCi0gICAgUmVhZHlQcm9t
aXNlIG1fcmVhZHlQcm9taXNlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxSZWFkeVByb21pc2U+IG1f
cmVhZHlQcm9taXNlOwogCiAgICAgTmF2aWdhdG9yQmFzZSYgbV9uYXZpZ2F0b3I7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uS2V5LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbktleS5oCmluZGV4IDQyOTgyNGYyZWYwLi5jZDNjNWJlZWUzYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25LZXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbktleS5oCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKICAgICB1bnNp
Z25lZCBoYXNoKCkgY29uc3Q7CiAKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbktleSYpIGNvbnN0OwotICAgIGJvb2wgaXNNYXRjaGluZyhjb25zdCBT
ZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwpIGNvbnN0
OworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNNYXRjaGluZyhjb25zdCBTZWN1cml0eU9yaWdp
bkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwpIGNvbnN0OwogICAgIGJvb2wg
b3JpZ2luSXNNYXRjaGluZyhjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29u
c3QgVVJMJiBjbGllbnRVUkwpIGNvbnN0OwogICAgIHNpemVfdCBzY29wZUxlbmd0aCgpIGNvbnN0
IHsgcmV0dXJuIG1fc2NvcGUuc3RyaW5nKCkubGVuZ3RoKCk7IH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcAppbmRleCBlZDQ0YmNj
NjAxYS4uZTExOGY0MGZiNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCkBAIC02NTEsNiArNjUxLDEyIEBAIHZvaWQgU1dTZXJ2
ZXI6OnVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IENsaWVudE9yaWdpbiYgY2xp
ZW50T3JpZ2luLCBTCiAgICAgaXRlcmF0b3ItPnZhbHVlLnRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJz
VGltZXItPnN0YXJ0T25lU2hvdCh0ZXJtaW5hdGlvbkRlbGF5KTsKIH0KIAordm9pZCBTV1NlcnZl
cjo6cmVzb2x2ZVJlZ2lzdHJhdGlvblJlYWR5UmVxdWVzdHMoU1dTZXJ2ZXJSZWdpc3RyYXRpb24m
IHJlZ2lzdHJhdGlvbikKK3sKKyAgICBmb3IgKGF1dG8qIGNvbm5lY3Rpb24gOiBtX2Nvbm5lY3Rp
b25zLnZhbHVlcygpKQorICAgICAgICBjb25uZWN0aW9uLT5yZXNvbHZlUmVnaXN0cmF0aW9uUmVh
ZHlSZXF1ZXN0cyhyZWdpc3RyYXRpb24pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKaW5kZXggMTU2NDA0MzQxMjYuLjcyOTRk
NzM4ZmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9T
V1NlcnZlci5oCkBAIC04MSw2ICs4MSw3IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lk
IHVwZGF0ZVdvcmtlclN0YXRlSW5DbGllbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIsIFNlcnZp
Y2VXb3JrZXJTdGF0ZSkgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgZmlyZVVwZGF0ZUZvdW5k
RXZlbnQoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpID0gMDsKICAgICAgICAg
dmlydHVhbCB2b2lkIG5vdGlmeUNsaWVudHNPZkNvbnRyb2xsZXJDaGFuZ2UoY29uc3QgSGFzaFNl
dDxEb2N1bWVudElkZW50aWZpZXI+JiBjb250ZXh0SWRlbnRpZmllcnMsIGNvbnN0IFNlcnZpY2VX
b3JrZXJEYXRhJiBuZXdDb250cm9sbGVyKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCByZXNv
bHZlUmVnaXN0cmF0aW9uUmVhZHlSZXF1ZXN0cyhTV1NlcnZlclJlZ2lzdHJhdGlvbiYpID0gMDsK
IAogICAgIHByb3RlY3RlZDoKICAgICAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgQ29ubmVj
dGlvbihTV1NlcnZlciYpOwpAQCAtMTUyLDYgKzE1Myw4IEBAIHB1YmxpYzoKIAogICAgIFdFQkNP
UkVfRVhQT1JUIGJvb2wgaW52b2tlUnVuU2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRp
Zmllcik7CiAKKyAgICB2b2lkIHJlc29sdmVSZWdpc3RyYXRpb25SZWFkeVJlcXVlc3RzKFNXU2Vy
dmVyUmVnaXN0cmF0aW9uJik7CisKIHByaXZhdGU6CiAgICAgdm9pZCByZWdpc3RlckNvbm5lY3Rp
b24oQ29ubmVjdGlvbiYpOwogICAgIHZvaWQgdW5yZWdpc3RlckNvbm5lY3Rpb24oQ29ubmVjdGlv
biYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9T
V1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcAppbmRleCA0YjJhMzExMmVmNi4uZDIwOGFl
YWFiNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCkBAIC0yNjEsNiArMjYxLDkgQEAg
dm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6YWN0aXZhdGUoKQogICAgIHVwZGF0ZVdvcmtlclN0
YXRlKCphY3RpdmVXb3JrZXIoKSwgU2VydmljZVdvcmtlclN0YXRlOjpBY3RpdmF0aW5nKTsKICAg
ICAvLyBGSVhNRTogRm9yIGVhY2ggc2VydmljZSB3b3JrZXIgY2xpZW50IGNsaWVudCB3aG9zZSBj
cmVhdGlvbiBVUkwgbWF0Y2hlcyByZWdpc3RyYXRpb24ncyBzY29wZSB1cmwuLi4KIAorICAgIC8v
IFRoZSByZWdpc3RyYXRpb24gbm93IGhhcyBhbiBhY3RpdmUgd29ya2VyIHNvIHdlIG5lZWQgdG8g
Y2hlY2sgaWYgdGhlcmUgYXJlIGFueSByZWFkeSBwcm9taXNlcyB0aGF0IHdlcmUgd2FpdGluZyBm
b3IgdGhpcy4KKyAgICBtX3NlcnZlci5yZXNvbHZlUmVnaXN0cmF0aW9uUmVhZHlSZXF1ZXN0cygq
dGhpcyk7CisKICAgICAvLyBGb3IgZWFjaCBzZXJ2aWNlIHdvcmtlciBjbGllbnQgY2xpZW50IHdo
byBpcyB1c2luZyByZWdpc3RyYXRpb246CiAgICAgLy8gLSBTZXQgY2xpZW50J3MgYWN0aXZlIHdv
cmtlciB0byByZWdpc3RyYXRpb24ncyBhY3RpdmUgd29ya2VyLgogICAgIC8vIC0gSW52b2tlIE5v
dGlmeSBDb250cm9sbGVyIENoYW5nZSBhbGdvcml0aG0gd2l0aCBjbGllbnQgYXMgdGhlIGFyZ3Vt
ZW50LgpAQCAtMjkzLDYgKzI5NiwxOSBAQCB2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpoYW5k
bGVDbGllbnRVbmxvYWQoKQogICAgIHRyeUFjdGl2YXRlKCk7CiB9CiAKK3ZvaWQgU1dTZXJ2ZXJS
ZWdpc3RyYXRpb246OnNldElzVW5pbnN0YWxsaW5nKGJvb2wgdmFsdWUpCit7CisgICAgaWYgKG1f
dW5pbnN0YWxsaW5nID09IHZhbHVlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3VuaW5zdGFs
bGluZyA9IHZhbHVlOworCisgICAgaWYgKCFtX3VuaW5zdGFsbGluZyAmJiBhY3RpdmVXb3JrZXIo
KSkgeworICAgICAgICAvLyBSZWdpc3RyYXRpb24gd2l0aCBhY3RpdmUgd29ya2VyIGhhcyBiZWVu
IHJlc3VycmVjdGVkLCB3ZSBuZWVkIHRvIGNoZWNrIGlmIGFueSByZWFkeSBwcm9taXNlcyB3ZXJl
IHdhaXRpbmcgZm9yIHRoaXMuCisgICAgICAgIG1fc2VydmVyLnJlc29sdmVSZWdpc3RyYXRpb25S
ZWFkeVJlcXVlc3RzKCp0aGlzKTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24u
aAppbmRleCAxMGU3MGFlM2UxOC4uNzYyNzQ5YTllMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9u
LmgKQEAgLTU2LDcgKzU2LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25EYXRhIGRhdGEoKSBjb25zdDsKIAogICAgIGJvb2wgaXNVbmluc3Rh
bGxpbmcoKSBjb25zdCB7IHJldHVybiBtX3VuaW5zdGFsbGluZzsgfQotICAgIHZvaWQgc2V0SXNV
bmluc3RhbGxpbmcoYm9vbCB2YWx1ZSkgeyBtX3VuaW5zdGFsbGluZyA9IHZhbHVlOyB9CisgICAg
dm9pZCBzZXRJc1VuaW5zdGFsbGluZyhib29sKTsKIAogICAgIHZvaWQgc2V0TGFzdFVwZGF0ZVRp
bWUoZG91YmxlIHRpbWUpIHsgbV9sYXN0VXBkYXRlVGltZSA9IHRpbWU7IH0KICAgICBTZXJ2aWNl
V29ya2VyVXBkYXRlVmlhQ2FjaGUgdXBkYXRlVmlhQ2FjaGUoKSBjb25zdCB7IHJldHVybiBtX3Vw
ZGF0ZVZpYUNhY2hlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQv
U3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCmlu
ZGV4IGIwNGE5MzliY2MzLi5jNWYzZWJkM2YxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
dG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
Q29ubmVjdGlvbi5jcHAKQEAgLTE5OCw2ICsxOTgsMzEgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5l
Y3Rpb246Om1hdGNoUmVnaXN0cmF0aW9uKHVpbnQ2NF90IHJlZ2lzdHJhdGlvbk1hdGNoUmVxdWVz
dEkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NsaWVudENvbm5lY3Rpb246OkRpZE1hdGNoUmVn
aXN0cmF0aW9uIHsgcmVnaXN0cmF0aW9uTWF0Y2hSZXF1ZXN0SWRlbnRpZmllciwgc3RkOjpudWxs
b3B0IH0pOwogfQogCit2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6d2hlblJlZ2lzdHJhdGlv
blJlYWR5KHVpbnQ2NF90IHJlZ2lzdHJhdGlvblJlYWR5UmVxdWVzdElkZW50aWZpZXIsIGNvbnN0
IFNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBVUkwmIGNsaWVudFVSTCkKK3sK
KyAgICBpZiAoYXV0byogcmVnaXN0cmF0aW9uID0gZG9SZWdpc3RyYXRpb25NYXRjaGluZyh0b3BP
cmlnaW4sIGNsaWVudFVSTCkpIHsKKyAgICAgICAgaWYgKHJlZ2lzdHJhdGlvbi0+YWN0aXZlV29y
a2VyKCkpIHsKKyAgICAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ2xpZW50Q29ubmVjdGlv
bjo6UmVnaXN0cmF0aW9uUmVhZHkgeyByZWdpc3RyYXRpb25SZWFkeVJlcXVlc3RJZGVudGlmaWVy
LCByZWdpc3RyYXRpb24tPmRhdGEoKSB9KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
fQorICAgIH0KKyAgICBhdXRvIGNhbGxiYWNrID0gW3RoaXMsIHJlZ2lzdHJhdGlvblJlYWR5UmVx
dWVzdElkZW50aWZpZXJdKGF1dG8mIHJlZ2lzdHJhdGlvbikgeworICAgICAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJTV0NsaWVudENvbm5lY3Rpb246OlJlZ2lzdHJhdGlvblJlYWR5IHsgcmVnaXN0cmF0
aW9uUmVhZHlSZXF1ZXN0SWRlbnRpZmllciwgcmVnaXN0cmF0aW9uLmRhdGEoKSB9KTsKKyAgICB9
OworICAgIG1fcmVnaXN0cmF0aW9uUmVhZHlSZXF1ZXN0cy5hcHBlbmQoeyB0b3BPcmlnaW4sIGNs
aWVudFVSTCwgV1RGTW92ZShjYWxsYmFjaykgfSk7Cit9CisKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uOjpyZXNvbHZlUmVnaXN0cmF0aW9uUmVhZHlSZXF1ZXN0cyhTV1NlcnZlclJlZ2lzdHJh
dGlvbiYgcmVnaXN0cmF0aW9uKQoreworICAgIG1fcmVnaXN0cmF0aW9uUmVhZHlSZXF1ZXN0cy5y
ZW1vdmVBbGxNYXRjaGluZyhbJl0oYXV0byYgcmVxdWVzdCkgeworICAgICAgICBpZiAoIXJlZ2lz
dHJhdGlvbi5rZXkoKS5pc01hdGNoaW5nKHJlcXVlc3QudG9wT3JpZ2luLCByZXF1ZXN0LmNsaWVu
dFVSTCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgcmVxdWVzdC5jYWxs
YmFjayhyZWdpc3RyYXRpb24pOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9KTsKK30KKwog
dm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmdldFJlZ2lzdHJhdGlvbnModWludDY0X3QgcmVn
aXN0cmF0aW9uTWF0Y2hSZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRh
JiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMKQogewogICAgIGF1dG8gcmVnaXN0cmF0
aW9ucyA9IHNlcnZlcigpLmdldFJlZ2lzdHJhdGlvbnModG9wT3JpZ2luLCBjbGllbnRVUkwpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCmluZGV4IDkwYjRlNjZmYzQyLi41ZjI0
MDYzMmM1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaApAQCAtNzcsNiAr
NzcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlV29ya2VyU3RhdGVJbkNsaWVudChXZWJD
b3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlclN0YXRl
KSBmaW5hbDsKICAgICB2b2lkIGZpcmVVcGRhdGVGb3VuZEV2ZW50KFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIG5vdGlmeUNsaWVu
dHNPZkNvbnRyb2xsZXJDaGFuZ2UoY29uc3QgSGFzaFNldDxXZWJDb3JlOjpEb2N1bWVudElkZW50
aWZpZXI+JiBjb250ZXh0SWRlbnRpZmllcnMsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJE
YXRhJiBuZXdDb250cm9sbGVyKTsKKyAgICB2b2lkIHJlc29sdmVSZWdpc3RyYXRpb25SZWFkeVJl
cXVlc3RzKFdlYkNvcmU6OlNXU2VydmVyUmVnaXN0cmF0aW9uJikgZmluYWw7CiAKICAgICB2b2lk
IHN0YXJ0RmV0Y2godWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyPiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiwgY29uc3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiwgY29uc3QgSVBDOjpGb3JtRGF0YVJl
ZmVyZW5jZSYpOwogCkBAIC04NCw2ICs4NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwb3N0TWVz
c2FnZVRvU2VydmljZVdvcmtlckZyb21TZXJ2aWNlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIG1lc3Nh
Z2UsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZSk7CiAKICAgICB2b2lk
IG1hdGNoUmVnaXN0cmF0aW9uKHVpbnQ2NF90IHJlZ2lzdHJhdGlvbk1hdGNoUmVxdWVzdElkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25z
dCBXZWJDb3JlOjpVUkwmIGNsaWVudFVSTCk7CisgICAgdm9pZCB3aGVuUmVnaXN0cmF0aW9uUmVh
ZHkodWludDY0X3QgcmVnaXN0cmF0aW9uUmVhZHlSZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlVSTCYg
Y2xpZW50VVJMKTsKICAgICB2b2lkIGdldFJlZ2lzdHJhdGlvbnModWludDY0X3QgcmVnaXN0cmF0
aW9uTWF0Y2hSZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiB0b3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlVSTCYgY2xpZW50VVJMKTsKIAogICAgIHZv
aWQgcmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSYmIHRvcE9yaWdpbiwgV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyQ2xpZW50RGF0YSYmKTsKQEAgLTk0LDEyICs5NiwxOCBAQCBwcml2YXRlOgogICAg
IAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IHZvaWQgc2VuZFRvQ29udGV4dFByb2Nlc3MoVSYm
IG1lc3NhZ2UpOwogCi0gICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CisgICAgc3RydWN0
IFJlZ2lzdHJhdGlvblJlYWR5UmVxdWVzdCB7CisgICAgICAgIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSB0b3BPcmlnaW47CisgICAgICAgIFdlYkNvcmU6OlVSTCBjbGllbnRVUkw7CisgICAg
ICAgIFdURjo6RnVuY3Rpb248dm9pZChXZWJDb3JlOjpTV1NlcnZlclJlZ2lzdHJhdGlvbiYpPiBj
YWxsYmFjazsKKyAgICB9OwogCisgICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAg
UmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb250ZW50Q29ubmVjdGlvbjsKICAgICBSZWZQdHI8SVBD
OjpDb25uZWN0aW9uPiBtX2NvbnRleHRDb25uZWN0aW9uOwogICAgIEhhc2hNYXA8V2ViQ29yZTo6
RG9jdW1lbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpDbGllbnRPcmlnaW4+IG1fY2xpZW50T3JpZ2lu
czsKLX07IC8vIGNsYXNzIFdlYlNXU2VydmVyQ29ubmVjdGlvbgorICAgIFZlY3RvcjxSZWdpc3Ry
YXRpb25SZWFkeVJlcXVlc3Q+IG1fcmVnaXN0cmF0aW9uUmVhZHlSZXF1ZXN0czsKK307CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCAxMDJmMDBiNTg1MC4uZGFiNWE5NjE4YWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAt
MzgsNiArMzgsNyBAQCBtZXNzYWdlcyAtPiBXZWJTV1NlcnZlckNvbm5lY3Rpb24gewogICAgIERp
ZFJlc29sdmVSZWdpc3RyYXRpb25Qcm9taXNlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25LZXkga2V5KQogCiAgICAgTWF0Y2hSZWdpc3RyYXRpb24odWludDY0X3Qgc2VydmljZVJl
Z2lzdHJhdGlvbk1hdGNoUmVxdWVzdElkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEgdG9wT3JpZ2luLCBXZWJDb3JlOjpVUkwgY2xpZW50VVJMKQorICAgIFdoZW5S
ZWdpc3RyYXRpb25SZWFkeSh1aW50NjRfdCBzZXJ2aWNlUmVnaXN0cmF0aW9uTWF0Y2hSZXF1ZXN0
SWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0b3BPcmlnaW4s
IFdlYkNvcmU6OlVSTCBjbGllbnRVUkwpCiAgICAgR2V0UmVnaXN0cmF0aW9ucyh1aW50NjRfdCBz
ZXJ2aWNlUmVnaXN0cmF0aW9uTWF0Y2hSZXF1ZXN0SWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSB0b3BPcmlnaW4sIFdlYkNvcmU6OlVSTCBjbGllbnRVUkwpCiAg
ICAgUmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEgdG9wT3JpZ2luLCBXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXIgaWRlbnRpZmll
ciwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhIGRhdGEpCiAgICAgVW5y
ZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcAppbmRleCAyYmIxYjE4NzU1Zi4uMWE3MTE3YjJm
MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xp
ZW50Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcApAQCAtMTYwLDkgKzE2MCwyMyBAQCB2b2lkIFdlYlNX
Q2xpZW50Q29ubmVjdGlvbjo6bWF0Y2hSZWdpc3RyYXRpb24oY29uc3QgU2VjdXJpdHlPcmlnaW4m
IHRvcE9yaWdpbiwgYwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgdWludDY0X3QgcmVx
dWVzdElkZW50aWZpZXIgPSArK21fcHJldmlvdXNNYXRjaFJlZ2lzdHJhdGlvblRhc2tJZGVudGlm
aWVyOwotICAgIG1fb25nb2luZ01hdGNoUmVnaXN0cmF0aW9uVGFza3MuYWRkKHJlcXVlc3RJZGVu
dGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2
ZXJDb25uZWN0aW9uOjpNYXRjaFJlZ2lzdHJhdGlvbihyZXF1ZXN0SWRlbnRpZmllciwgU2VjdXJp
dHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4odG9wT3JpZ2luKSwgY2xpZW50VVJMKSk7
CisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9ICsrbV9wcmV2aW91c0NhbGxiYWNrSWRlbnRpZmll
cjsKKyAgICBtX29uZ29pbmdNYXRjaFJlZ2lzdHJhdGlvblRhc2tzLmFkZChjYWxsYmFja0lELCBX
VEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0
aW9uOjpNYXRjaFJlZ2lzdHJhdGlvbihjYWxsYmFja0lELCBTZWN1cml0eU9yaWdpbkRhdGE6OmZy
b21TZWN1cml0eU9yaWdpbih0b3BPcmlnaW4pLCBjbGllbnRVUkwpKTsKK30KKwordm9pZCBXZWJT
V0NsaWVudENvbm5lY3Rpb246OndoZW5SZWdpc3RyYXRpb25SZWFkeShSZWY8U2VjdXJpdHlPcmln
aW4+JiYgdG9wT3JpZ2luLCBjb25zdCBVUkwmIGNsaWVudFVSTCwgV2hlblJlZ2lzdHJhdGlvblJl
YWR5Q2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gKytt
X3ByZXZpb3VzQ2FsbGJhY2tJZGVudGlmaWVyOworICAgIG1fb25nb2luZ1JlZ2lzdHJhdGlvblJl
YWR5VGFza3MuYWRkKGNhbGxiYWNrSUQsIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OldoZW5SZWdpc3RyYXRpb25SZWFkeShjYWxs
YmFja0lELCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbih0b3BPcmlnaW4p
LCBjbGllbnRVUkwpKTsKK30KKwordm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OnJlZ2lzdHJh
dGlvblJlYWR5KHVpbnQ2NF90IGNhbGxiYWNrSUQsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25EYXRhJiYgcmVnaXN0cmF0aW9uRGF0YSkKK3sKKyAgICBBU1NFUlQocmVnaXN0cmF0
aW9uRGF0YS5hY3RpdmVXb3JrZXIpOworICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9vbmdvaW5n
UmVnaXN0cmF0aW9uUmVhZHlUYXNrcy50YWtlKGNhbGxiYWNrSUQpKQorICAgICAgICBjYWxsYmFj
ayhXVEZNb3ZlKHJlZ2lzdHJhdGlvbkRhdGEpKTsKIH0KIAogdm9pZCBXZWJTV0NsaWVudENvbm5l
Y3Rpb246OmdldFJlZ2lzdHJhdGlvbnMoY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwg
Y29uc3QgVVJMJiBjbGllbnRVUkwsIEdldFJlZ2lzdHJhdGlvbnNDYWxsYmFjayYmIGNhbGxiYWNr
KQpAQCAtMTc0LDkgKzE4OCw5IEBAIHZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpnZXRSZWdp
c3RyYXRpb25zKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIGNvCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICB1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciA9ICsrbV9wcmV2
aW91c0dldFJlZ2lzdHJhdGlvbnNUYXNrSWRlbnRpZmllcjsKLSAgICBtX29uZ29pbmdHZXRSZWdp
c3RyYXRpb25zVGFza3MuYWRkKHJlcXVlc3RJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7
Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpHZXRSZWdpc3RyYXRp
b25zKHJlcXVlc3RJZGVudGlmaWVyLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9y
aWdpbih0b3BPcmlnaW4pLCBjbGllbnRVUkwpKTsKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0g
KyttX3ByZXZpb3VzQ2FsbGJhY2tJZGVudGlmaWVyOworICAgIG1fb25nb2luZ0dldFJlZ2lzdHJh
dGlvbnNUYXNrcy5hZGQoY2FsbGJhY2tJRCwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIHNlbmQo
TWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6R2V0UmVnaXN0cmF0aW9ucyhjYWxsYmFj
a0lELCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbih0b3BPcmlnaW4pLCBj
bGllbnRVUkwpKTsKIH0KIAogdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OnN0YXJ0RmV0Y2go
Y29uc3QgUmVzb3VyY2VMb2FkZXImIGxvYWRlciwgdWludDY0X3QgaWRlbnRpZmllcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVj
dGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25u
ZWN0aW9uLmgKaW5kZXggZTU2ZjRlYTU0NWMuLjc5MGEwNTk5MGZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24u
aApAQCAtODMsNiArODMsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgbWF0Y2hSZWdpc3RyYXRpb24o
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6
VVJMJiBjbGllbnRVUkwsIFJlZ2lzdHJhdGlvbkNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQg
ZGlkTWF0Y2hSZWdpc3RyYXRpb24odWludDY0X3QgbWF0Y2hSZXF1ZXN0SWRlbnRpZmllciwgc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YT4mJik7CiAg
ICAgdm9pZCBkaWRHZXRSZWdpc3RyYXRpb25zKHVpbnQ2NF90IG1hdGNoUmVxdWVzdElkZW50aWZp
ZXIsIFZlY3RvcjxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YT4mJik7Cisg
ICAgdm9pZCB3aGVuUmVnaXN0cmF0aW9uUmVhZHkoUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
PiYmIHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6VVJMJiBjbGllbnRVUkwsIFdoZW5SZWdpc3Ry
YXRpb25SZWFkeUNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgcmVnaXN0cmF0aW9uUmVhZHko
dWludDY0X3QgY2FsbGJhY2tJRCwgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRh
dGEmJik7CiAKICAgICB2b2lkIGdldFJlZ2lzdHJhdGlvbnMoY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW4mIHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6VVJMJiBjbGllbnRVUkwsIEdldFJl
Z2lzdHJhdGlvbnNDYWxsYmFjayYmKSBmaW5hbDsKIApAQCAtMTAyLDExICsxMDQsMTAgQEAgcHJp
dmF0ZToKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiAgICAgVW5pcXVl
UmVmPFdlYlNXT3JpZ2luVGFibGU+IG1fc3dPcmlnaW5UYWJsZTsKIAotICAgIHVpbnQ2NF90IG1f
cHJldmlvdXNNYXRjaFJlZ2lzdHJhdGlvblRhc2tJZGVudGlmaWVyIHsgMCB9OworICAgIHVpbnQ2
NF90IG1fcHJldmlvdXNDYWxsYmFja0lkZW50aWZpZXIgeyAwIH07CiAgICAgSGFzaE1hcDx1aW50
NjRfdCwgUmVnaXN0cmF0aW9uQ2FsbGJhY2s+IG1fb25nb2luZ01hdGNoUmVnaXN0cmF0aW9uVGFz
a3M7Ci0KLSAgICB1aW50NjRfdCBtX3ByZXZpb3VzR2V0UmVnaXN0cmF0aW9uc1Rhc2tJZGVudGlm
aWVyIHsgMCB9OwogICAgIEhhc2hNYXA8dWludDY0X3QsIEdldFJlZ2lzdHJhdGlvbnNDYWxsYmFj
az4gbV9vbmdvaW5nR2V0UmVnaXN0cmF0aW9uc1Rhc2tzOworICAgIEhhc2hNYXA8dWludDY0X3Qs
IFdoZW5SZWdpc3RyYXRpb25SZWFkeUNhbGxiYWNrPiBtX29uZ29pbmdSZWdpc3RyYXRpb25SZWFk
eVRhc2tzOwogCiB9OyAvLyBjbGFzcyBXZWJTV1NlcnZlckNvbm5lY3Rpb24KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGll
bnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IGEzMzA4MWYwNDU1Li4xMDIxN2UyYjRlNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRD
b25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMzksNiArMzksNyBAQCBt
ZXNzYWdlcyAtPiBXZWJTV0NsaWVudENvbm5lY3Rpb24gewogCiAgICAgRGlkTWF0Y2hSZWdpc3Ry
YXRpb24odWludDY0X3QgbWF0Y2hSZXF1ZXN0SWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YT4gZGF0YSkKICAgICBEaWRHZXRSZWdp
c3RyYXRpb25zKHVpbnQ2NF90IG1hdGNoUmVxdWVzdElkZW50aWZpZXIsIFZlY3RvcjxXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YT4gcmVnaXN0cmF0aW9ucykKKyAgICBSZWdp
c3RyYXRpb25SZWFkeSh1aW50NjRfdCByZWdpc3RyYXRpb25SZWFkeVJlcXVlc3RJZGVudGlmaWVy
LCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEgZGF0YSkKIH0K
IAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328469</attachid>
            <date>2017-12-05 10:57:15 -0800</date>
            <delta_ts>2017-12-05 11:00:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180383-20171205105714.patch</filename>
            <type>text/plain</type>
            <size>26306</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTIzY2FmMmUxMjliMjFh
NzcyZTNlZmYyNWMzM2U3NjQ3M2Y3Njg4OS4uNDA0MjM2ZTE1NmE5YjJhYzg3MmZlOWUwZThjYjdk
OGNkNzc3MmQ1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE3LTEyLTA1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIFNl
cnZpY2VXb3JrZXJDb250YWluZXIucHJvdG90eXBlLnJlYWR5CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODAzODMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgU2VydmljZVdvcmtl
ckNvbnRhaW5lci5wcm90b3R5cGUucmVhZHk6CisgICAgICAgIC0gaHR0cHM6Ly93M2MuZ2l0aHVi
LmlvL1NlcnZpY2VXb3JrZXIvI25hdmlnYXRvci1zZXJ2aWNlLXdvcmtlci1yZWFkeQorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cywgcmViYXNlbGluZWQgZXhpc3RpbmcgdGVzdC4KKworICAgICAgICAq
IHdvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uaDoKKyAgICAgICAgKiB3b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpTZXJ2aWNlV29ya2VyQ29udGFpbmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OnJlYWR5KToKKyAgICAgICAgKiB3b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oOgorICAgICAgICAqIHdvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5Lmg6CisgICAgICAgICogd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZl
cjo6cmVzb2x2ZVJlZ2lzdHJhdGlvblJlYWR5UmVxdWVzdHMpOgorICAgICAgICAqIHdvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVy
UmVnaXN0cmF0aW9uOjphY3RpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclJlZ2lz
dHJhdGlvbjo6c2V0SXNVbmluc3RhbGxpbmcpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaDoKKwogMjAxNy0xMi0wNCAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFN1cHBvcnQgY29udGFpbmVyLmdldFJlZ2lz
dHJhdGlvbigpIC8gZ2V0UmVnaXN0cmF0aW9ucygpIGluc2lkZSBzZXJ2aWNlIHdvcmtlcnMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggOWNmYmNmNzk3NDI3YjE0YjgyYjQzZTRjZTk2OGRlNTY5YThkMDhlNS4uZmUyYzdh
NjdmZWQzODMwMWNkYTg1ZDczYzE1YTIwZDlkNWZhM2RmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MyBAQAorMjAxNy0xMi0wNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIEFkZCBzdXBwb3J0IGZvciBTZXJ2aWNlV29ya2VyQ29udGFpbmVyLnByb3RvdHlwZS5yZWFk
eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwMzgz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTdG9y
YWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6d2hlblJlZ2lzdHJhdGlvblJlYWR5
KToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpyZXNvbHZlUmVnaXN0
cmF0aW9uUmVhZHlSZXF1ZXN0cyk6CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjptYXRjaFJlZ2lzdHJhdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6d2hlblJlZ2lzdHJhdGlvblJlYWR5
KToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpyZWdpc3RyYXRpb25S
ZWFkeSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6Z2V0UmVnaXN0
cmF0aW9ucyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVj
dGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rp
b24ubWVzc2FnZXMuaW46CisKIDIwMTctMTItMDQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KIAogICAgICAgICBTdXBwb3J0IGNvbnRhaW5lci5nZXRSZWdpc3RyYXRpb24oKSAvIGdl
dFJlZ2lzdHJhdGlvbnMoKSBpbnNpZGUgc2VydmljZSB3b3JrZXJzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmgKaW5kZXggMzE3N2Yy
OWI4YzdkYTk2YTcyNDA0ZWRmNTg1NzI3NWNkYzllZTQ0NS4uZDAxYTkwNDYyZTk1MTIwYTY5NWFk
OTRhNzgwOTkxOGYyOGQ0ZjQwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uaApAQCAtNjIsNiArNjIsOSBAQCBwdWJsaWM6CiAg
ICAgdXNpbmcgR2V0UmVnaXN0cmF0aW9uc0NhbGxiYWNrID0gV1RGOjpDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFZlY3RvcjxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YT4mJik+OwogICAgIHZp
cnR1YWwgdm9pZCBnZXRSZWdpc3RyYXRpb25zKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmln
aW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMLCBHZXRSZWdpc3RyYXRpb25zQ2FsbGJhY2smJikgPSAw
OwogCisgICAgdXNpbmcgV2hlblJlZ2lzdHJhdGlvblJlYWR5Q2FsbGJhY2sgPSBXVEY6OkZ1bmN0
aW9uPHZvaWQoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmJik+OworICAgIHZpcnR1YWwg
dm9pZCB3aGVuUmVnaXN0cmF0aW9uUmVhZHkoUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdp
biwgY29uc3QgVVJMJiBjbGllbnRVUkwsIFdoZW5SZWdpc3RyYXRpb25SZWFkeUNhbGxiYWNrJiYp
ID0gMDsKKwogICAgIHZpcnR1YWwgdm9pZCBhZGRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSW5T
ZXJ2ZXIoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgcmVtb3ZlU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkluU2VydmVyKFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcAppbmRl
eCA4NWRhZjJlMjljYjI2MzQzMDMwYjU2NGE0NTEzMGE4MTExYzNlNjY0Li40YTMxMWI5OWRiNGFh
NjM5MDFhMzRjMWNlYjJiMzNiMzYxOTk1MjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwCkBAIC01Nyw4
ICs1Nyw2IEBAIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OlNlcnZpY2VXb3JrZXJDb250YWluZXIo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwKICAgICAsIG1fbmF2aWdhdG9yKG5hdmln
YXRvcikKIHsKICAgICBzdXNwZW5kSWZOZWVkZWQoKTsKLQotICAgIG1fcmVhZHlQcm9taXNlLnJl
amVjdChFeGNlcHRpb24geyBVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgic2VydmljZVdvcmtl
ci5yZWFkeSgpIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQiKSB9KTsKIH0KIAogU2VydmljZVdvcmtl
ckNvbnRhaW5lcjo6flNlcnZpY2VXb3JrZXJDb250YWluZXIoKQpAQCAtNzgsNiArNzYsMzEgQEAg
dm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpkZXJlZkV2ZW50VGFyZ2V0KCkKICAgICBtX25h
dmlnYXRvci5kZXJlZigpOwogfQogCithdXRvIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OnJlYWR5
KCkgLT4gUmVhZHlQcm9taXNlJgoreworICAgIGlmICghbV9yZWFkeVByb21pc2UpIHsKKyAgICAg
ICAgbV9yZWFkeVByb21pc2UgPSBzdGQ6Om1ha2VfdW5pcXVlPFJlYWR5UHJvbWlzZT4oKTsKKwor
ICAgICAgICBhdXRvKiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgICAg
ICBpZiAoIWNvbnRleHQpCisgICAgICAgICAgICByZXR1cm4gKm1fcmVhZHlQcm9taXNlOworCisg
ICAgICAgIGF1dG8gY29udGV4dElkZW50aWZpZXIgPSB0aGlzLT5jb250ZXh0SWRlbnRpZmllcigp
OworICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCBjb25uZWN0aW9uID0gbWFrZVJlZihl
bnN1cmVTV0NsaWVudENvbm5lY3Rpb24oKSksIHRvcE9yaWdpbiA9IGNvbnRleHQtPnRvcE9yaWdp
bigpLmlzb2xhdGVkQ29weSgpLCBjbGllbnRVUkwgPSBjb250ZXh0LT51cmwoKS5pc29sYXRlZENv
cHkoKSwgY29udGV4dElkZW50aWZpZXJdKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBjb25uZWN0
aW9uLT53aGVuUmVnaXN0cmF0aW9uUmVhZHkoV1RGTW92ZSh0b3BPcmlnaW4pLCBjbGllbnRVUkws
IFt0aGlzLCBjb250ZXh0SWRlbnRpZmllcl0oYXV0byYmIHJlZ2lzdHJhdGlvbkRhdGEpIHsKKyAg
ICAgICAgICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpwb3N0VGFza1RvKGNvbnRleHRJ
ZGVudGlmaWVyLCBbdGhpcywgcmVnaXN0cmF0aW9uRGF0YSA9IGNyb3NzVGhyZWFkQ29weShyZWdp
c3RyYXRpb25EYXRhKV0oYXV0byYpIG11dGFibGUgeworICAgICAgICAgICAgICAgICAgICBpZiAo
bV9pc1N0b3BwZWQpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAg
ICAgICAgICAgICAgYXV0byByZWdpc3RyYXRpb24gPSBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
OjpnZXRPckNyZWF0ZSgqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCAqdGhpcywgV1RGTW92ZShy
ZWdpc3RyYXRpb25EYXRhKSk7CisgICAgICAgICAgICAgICAgICAgIG1fcmVhZHlQcm9taXNlLT5y
ZXNvbHZlKFdURk1vdmUocmVnaXN0cmF0aW9uKSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorICAgIHJldHVybiAqbV9yZWFkeVByb21p
c2U7Cit9CisKIFNlcnZpY2VXb3JrZXIqIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OmNvbnRyb2xs
ZXIoKSBjb25zdAogewogICAgIGF1dG8qIGNvbnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlckNvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJDb250YWluZXIuaAppbmRleCAxNDE2M2Y5NzQzODkxNzU4NDlkNjI5ZTE3OTJmMWU5YWI5
NWRmNTAxLi43ZjdjZTgyNjI4OWYzYmQ5YWJiNTJkNzZkNzQ4ZDgzNWMwYzFhNjZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5l
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29u
dGFpbmVyLmgKQEAgLTU2LDcgKzU2LDcgQEAgcHVibGljOgogICAgIFNlcnZpY2VXb3JrZXIqIGNv
bnRyb2xsZXIoKSBjb25zdDsKIAogICAgIHVzaW5nIFJlYWR5UHJvbWlzZSA9IERPTVByb21pc2VQ
cm94eTxJRExJbnRlcmZhY2U8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbj4+OwotICAgIFJlYWR5
UHJvbWlzZSYgcmVhZHkoKSB7IHJldHVybiBtX3JlYWR5UHJvbWlzZTsgfQorICAgIFJlYWR5UHJv
bWlzZSYgcmVhZHkoKTsKIAogICAgIHVzaW5nIFJlZ2lzdHJhdGlvbk9wdGlvbnMgPSBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uT3B0aW9uczsKICAgICB2b2lkIGFkZFJlZ2lzdHJhdGlvbihjb25z
dCBTdHJpbmcmIHNjcmlwdFVSTCwgY29uc3QgUmVnaXN0cmF0aW9uT3B0aW9ucyYsIFJlZjxEZWZl
cnJlZFByb21pc2U+JiYpOwpAQCAtMTEwLDcgKzExMCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBk
ZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWw7CiAgICAgdm9pZCBzdG9wKCkgZmluYWw7CiAKLSAgICBS
ZWFkeVByb21pc2UgbV9yZWFkeVByb21pc2U7CisgICAgc3RkOjp1bmlxdWVfcHRyPFJlYWR5UHJv
bWlzZT4gbV9yZWFkeVByb21pc2U7CiAKICAgICBOYXZpZ2F0b3JCYXNlJiBtX25hdmlnYXRvcjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25LZXkuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5LmgKaW5kZXggNDI5ODI0ZjJlZjA3MmExMThkNzEyOWJh
ZTVhN2IxNWQ4MDA1M2Y4MC4uY2QzYzViZWVlM2MwODk5ZjAxYTMxOGYzYmUzZWMxMmY4OGE1NGUy
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25LZXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleS5oCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoK
ICAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3Q7CiAKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3Qg
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYpIGNvbnN0OwotICAgIGJvb2wgaXNNYXRjaGlu
Zyhjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRV
UkwpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNNYXRjaGluZyhjb25zdCBTZWN1
cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwpIGNvbnN0Owog
ICAgIGJvb2wgb3JpZ2luSXNNYXRjaGluZyhjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9y
aWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwpIGNvbnN0OwogICAgIHNpemVfdCBzY29wZUxlbmd0
aCgpIGNvbnN0IHsgcmV0dXJuIG1fc2NvcGUuc3RyaW5nKCkubGVuZ3RoKCk7IH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcAppbmRl
eCBlZDQ0YmNjNjAxYTIyNWJkYzZiZmYxNWRlMjk1MDNjZTA1YTYwNGZhLi5lMTE4ZjQwZmI3OWEw
Mjg4YWVhM2E2MjE1Nzg4MjA5ZjMxYzZiYmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcApAQCAtNjUxLDYgKzY1MSwxMiBAQCB2
b2lkIFNXU2VydmVyOjp1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChjb25zdCBDbGllbnRP
cmlnaW4mIGNsaWVudE9yaWdpbiwgUwogICAgIGl0ZXJhdG9yLT52YWx1ZS50ZXJtaW5hdGVTZXJ2
aWNlV29ya2Vyc1RpbWVyLT5zdGFydE9uZVNob3QodGVybWluYXRpb25EZWxheSk7CiB9CiAKK3Zv
aWQgU1dTZXJ2ZXI6OnJlc29sdmVSZWdpc3RyYXRpb25SZWFkeVJlcXVlc3RzKFNXU2VydmVyUmVn
aXN0cmF0aW9uJiByZWdpc3RyYXRpb24pCit7CisgICAgZm9yIChhdXRvKiBjb25uZWN0aW9uIDog
bV9jb25uZWN0aW9ucy52YWx1ZXMoKSkKKyAgICAgICAgY29ubmVjdGlvbi0+cmVzb2x2ZVJlZ2lz
dHJhdGlvblJlYWR5UmVxdWVzdHMocmVnaXN0cmF0aW9uKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCmluZGV4IDE1NjQwNDM0
MTI2MDc1Yjc3ZDhlNWY5OWY2M2Q5YTI2MWU2ZWFmYmMuLjcyOTRkNzM4ZmMwMWM4ZGU3NDkxYjYw
MTA1ODM5YTJlYTgwYWNjMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXU2VydmVyLmgKQEAgLTgxLDYgKzgxLDcgQEAgcHVibGljOgogICAgICAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlV29ya2VyU3RhdGVJbkNsaWVudChTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciwgU2VydmljZVdvcmtlclN0YXRlKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBmaXJl
VXBkYXRlRm91bmRFdmVudChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcikgPSAw
OwogICAgICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZShj
b25zdCBIYXNoU2V0PERvY3VtZW50SWRlbnRpZmllcj4mIGNvbnRleHRJZGVudGlmaWVycywgY29u
c3QgU2VydmljZVdvcmtlckRhdGEmIG5ld0NvbnRyb2xsZXIpID0gMDsKKyAgICAgICAgdmlydHVh
bCB2b2lkIHJlc29sdmVSZWdpc3RyYXRpb25SZWFkeVJlcXVlc3RzKFNXU2VydmVyUmVnaXN0cmF0
aW9uJikgPSAwOwogCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBXRUJDT1JFX0VYUE9SVCBleHBs
aWNpdCBDb25uZWN0aW9uKFNXU2VydmVyJik7CkBAIC0xNTIsNiArMTUzLDggQEAgcHVibGljOgog
CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBpbnZva2VSdW5TZXJ2aWNlV29ya2VyKFNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyKTsKIAorICAgIHZvaWQgcmVzb2x2ZVJlZ2lzdHJhdGlvblJlYWR5UmVx
dWVzdHMoU1dTZXJ2ZXJSZWdpc3RyYXRpb24mKTsKKwogcHJpdmF0ZToKICAgICB2b2lkIHJlZ2lz
dGVyQ29ubmVjdGlvbihDb25uZWN0aW9uJik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyQ29ubmVjdGlv
bihDb25uZWN0aW9uJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCmluZGV4IDRiMmEzMTEy
ZWY2MTE5MDU2MjVkYTg4MzU0ZDViMTUzZGI0MDA1NzguLmQyMDhhZWFhYjU0ODJhNDllYTQzM2Zl
ZjY2Y2I0ZjViNWZlNWZmZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCkBAIC0yNjEs
NiArMjYxLDkgQEAgdm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6YWN0aXZhdGUoKQogICAgIHVw
ZGF0ZVdvcmtlclN0YXRlKCphY3RpdmVXb3JrZXIoKSwgU2VydmljZVdvcmtlclN0YXRlOjpBY3Rp
dmF0aW5nKTsKICAgICAvLyBGSVhNRTogRm9yIGVhY2ggc2VydmljZSB3b3JrZXIgY2xpZW50IGNs
aWVudCB3aG9zZSBjcmVhdGlvbiBVUkwgbWF0Y2hlcyByZWdpc3RyYXRpb24ncyBzY29wZSB1cmwu
Li4KIAorICAgIC8vIFRoZSByZWdpc3RyYXRpb24gbm93IGhhcyBhbiBhY3RpdmUgd29ya2VyIHNv
IHdlIG5lZWQgdG8gY2hlY2sgaWYgdGhlcmUgYXJlIGFueSByZWFkeSBwcm9taXNlcyB0aGF0IHdl
cmUgd2FpdGluZyBmb3IgdGhpcy4KKyAgICBtX3NlcnZlci5yZXNvbHZlUmVnaXN0cmF0aW9uUmVh
ZHlSZXF1ZXN0cygqdGhpcyk7CisKICAgICAvLyBGb3IgZWFjaCBzZXJ2aWNlIHdvcmtlciBjbGll
bnQgY2xpZW50IHdobyBpcyB1c2luZyByZWdpc3RyYXRpb246CiAgICAgLy8gLSBTZXQgY2xpZW50
J3MgYWN0aXZlIHdvcmtlciB0byByZWdpc3RyYXRpb24ncyBhY3RpdmUgd29ya2VyLgogICAgIC8v
IC0gSW52b2tlIE5vdGlmeSBDb250cm9sbGVyIENoYW5nZSBhbGdvcml0aG0gd2l0aCBjbGllbnQg
YXMgdGhlIGFyZ3VtZW50LgpAQCAtMjkzLDYgKzI5NiwxOSBAQCB2b2lkIFNXU2VydmVyUmVnaXN0
cmF0aW9uOjpoYW5kbGVDbGllbnRVbmxvYWQoKQogICAgIHRyeUFjdGl2YXRlKCk7CiB9CiAKK3Zv
aWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnNldElzVW5pbnN0YWxsaW5nKGJvb2wgdmFsdWUpCit7
CisgICAgaWYgKG1fdW5pbnN0YWxsaW5nID09IHZhbHVlKQorICAgICAgICByZXR1cm47CisKKyAg
ICBtX3VuaW5zdGFsbGluZyA9IHZhbHVlOworCisgICAgaWYgKCFtX3VuaW5zdGFsbGluZyAmJiBh
Y3RpdmVXb3JrZXIoKSkgeworICAgICAgICAvLyBSZWdpc3RyYXRpb24gd2l0aCBhY3RpdmUgd29y
a2VyIGhhcyBiZWVuIHJlc3VycmVjdGVkLCB3ZSBuZWVkIHRvIGNoZWNrIGlmIGFueSByZWFkeSBw
cm9taXNlcyB3ZXJlIHdhaXRpbmcgZm9yIHRoaXMuCisgICAgICAgIG1fc2VydmVyLnJlc29sdmVS
ZWdpc3RyYXRpb25SZWFkeVJlcXVlc3RzKCp0aGlzKTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3Ry
YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJS
ZWdpc3RyYXRpb24uaAppbmRleCAxMGU3MGFlM2UxOGZmZDhjYWJiYjc0YzM0YmQzMjhjNGRhY2M0
MDJmLi43NjI3NDlhOWUxZDcyYzhkNzkyYjI4NzViZTgxN2FlZTY2YzU0ZjRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZl
clJlZ2lzdHJhdGlvbi5oCkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VY
UE9SVCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSBkYXRhKCkgY29uc3Q7CiAKICAgICBi
b29sIGlzVW5pbnN0YWxsaW5nKCkgY29uc3QgeyByZXR1cm4gbV91bmluc3RhbGxpbmc7IH0KLSAg
ICB2b2lkIHNldElzVW5pbnN0YWxsaW5nKGJvb2wgdmFsdWUpIHsgbV91bmluc3RhbGxpbmcgPSB2
YWx1ZTsgfQorICAgIHZvaWQgc2V0SXNVbmluc3RhbGxpbmcoYm9vbCk7CiAKICAgICB2b2lkIHNl
dExhc3RVcGRhdGVUaW1lKGRvdWJsZSB0aW1lKSB7IG1fbGFzdFVwZGF0ZVRpbWUgPSB0aW1lOyB9
CiAgICAgU2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlIHVwZGF0ZVZpYUNhY2hlKCkgY29uc3Qg
eyByZXR1cm4gbV91cGRhdGVWaWFDYWNoZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
dG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uLmNwcAppbmRleCBiMDRhOTM5YmNjMzVmZGVmNGE4YTk0NTk5MzNlOWM3YjUwZWUyMjM1
Li5jNWYzZWJkM2YxYzk0NzRjYzA4Yzk3MDY0NTIyNThlZDRmYzI1MDgwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcApAQCAtMTk4LDYgKzE5OCwzMSBAQCB2b2lkIFdl
YlNXU2VydmVyQ29ubmVjdGlvbjo6bWF0Y2hSZWdpc3RyYXRpb24odWludDY0X3QgcmVnaXN0cmF0
aW9uTWF0Y2hSZXF1ZXN0SQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ2xpZW50Q29ubmVjdGlv
bjo6RGlkTWF0Y2hSZWdpc3RyYXRpb24geyByZWdpc3RyYXRpb25NYXRjaFJlcXVlc3RJZGVudGlm
aWVyLCBzdGQ6Om51bGxvcHQgfSk7CiB9CiAKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjp3
aGVuUmVnaXN0cmF0aW9uUmVhZHkodWludDY0X3QgcmVnaXN0cmF0aW9uUmVhZHlSZXF1ZXN0SWRl
bnRpZmllciwgY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYg
Y2xpZW50VVJMKQoreworICAgIGlmIChhdXRvKiByZWdpc3RyYXRpb24gPSBkb1JlZ2lzdHJhdGlv
bk1hdGNoaW5nKHRvcE9yaWdpbiwgY2xpZW50VVJMKSkgeworICAgICAgICBpZiAocmVnaXN0cmF0
aW9uLT5hY3RpdmVXb3JrZXIoKSkgeworICAgICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViU1dD
bGllbnRDb25uZWN0aW9uOjpSZWdpc3RyYXRpb25SZWFkeSB7IHJlZ2lzdHJhdGlvblJlYWR5UmVx
dWVzdElkZW50aWZpZXIsIHJlZ2lzdHJhdGlvbi0+ZGF0YSgpIH0pOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisgICAgfQorICAgIGF1dG8gY2FsbGJhY2sgPSBbdGhpcywgcmVnaXN0
cmF0aW9uUmVhZHlSZXF1ZXN0SWRlbnRpZmllcl0oYXV0byYgcmVnaXN0cmF0aW9uKSB7CisgICAg
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6UmVnaXN0cmF0aW9uUmVh
ZHkgeyByZWdpc3RyYXRpb25SZWFkeVJlcXVlc3RJZGVudGlmaWVyLCByZWdpc3RyYXRpb24uZGF0
YSgpIH0pOworICAgIH07CisgICAgbV9yZWdpc3RyYXRpb25SZWFkeVJlcXVlc3RzLmFwcGVuZCh7
IHRvcE9yaWdpbiwgY2xpZW50VVJMLCBXVEZNb3ZlKGNhbGxiYWNrKSB9KTsKK30KKwordm9pZCBX
ZWJTV1NlcnZlckNvbm5lY3Rpb246OnJlc29sdmVSZWdpc3RyYXRpb25SZWFkeVJlcXVlc3RzKFNX
U2VydmVyUmVnaXN0cmF0aW9uJiByZWdpc3RyYXRpb24pCit7CisgICAgbV9yZWdpc3RyYXRpb25S
ZWFkeVJlcXVlc3RzLnJlbW92ZUFsbE1hdGNoaW5nKFsmXShhdXRvJiByZXF1ZXN0KSB7CisgICAg
ICAgIGlmICghcmVnaXN0cmF0aW9uLmtleSgpLmlzTWF0Y2hpbmcocmVxdWVzdC50b3BPcmlnaW4s
IHJlcXVlc3QuY2xpZW50VVJMKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAg
ICByZXF1ZXN0LmNhbGxiYWNrKHJlZ2lzdHJhdGlvbik7CisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIH0pOworfQorCiB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6Z2V0UmVnaXN0cmF0aW9u
cyh1aW50NjRfdCByZWdpc3RyYXRpb25NYXRjaFJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBTZWN1
cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwpCiB7CiAgICAg
YXV0byByZWdpc3RyYXRpb25zID0gc2VydmVyKCkuZ2V0UmVnaXN0cmF0aW9ucyh0b3BPcmlnaW4s
IGNsaWVudFVSTCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1N0b3Jh
Z2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKaW5kZXggOTBi
NGU2NmZjNDJhMjhiZTMwYmJlMWNiOGQ5NTBmMzhkMDY4NzUxMS4uNWYyNDA2MzJjNTkwZDkzMmI2
YjNmZjQwNzc0ZWViMzVkNjY4MjVhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdl
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rp
b24uaApAQCAtNzcsNiArNzcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlV29ya2VyU3Rh
dGVJbkNsaWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6U2Vy
dmljZVdvcmtlclN0YXRlKSBmaW5hbDsKICAgICB2b2lkIGZpcmVVcGRhdGVGb3VuZEV2ZW50KFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKSBmaW5hbDsKICAgICB2
b2lkIG5vdGlmeUNsaWVudHNPZkNvbnRyb2xsZXJDaGFuZ2UoY29uc3QgSGFzaFNldDxXZWJDb3Jl
OjpEb2N1bWVudElkZW50aWZpZXI+JiBjb250ZXh0SWRlbnRpZmllcnMsIGNvbnN0IFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJEYXRhJiBuZXdDb250cm9sbGVyKTsKKyAgICB2b2lkIHJlc29sdmVSZWdp
c3RyYXRpb25SZWFkeVJlcXVlc3RzKFdlYkNvcmU6OlNXU2VydmVyUmVnaXN0cmF0aW9uJikgZmlu
YWw7CiAKICAgICB2b2lkIHN0YXJ0RmV0Y2godWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCBzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyPiwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiwgY29uc3Qg
SVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYpOwogCkBAIC04NCw2ICs4NSw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckZyb21TZXJ2aWNlV29ya2VyKFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uLCBjb25zdCBJUEM6OkRhdGFS
ZWZlcmVuY2UmIG1lc3NhZ2UsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJj
ZSk7CiAKICAgICB2b2lkIG1hdGNoUmVnaXN0cmF0aW9uKHVpbnQ2NF90IHJlZ2lzdHJhdGlvbk1h
dGNoUmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYg
dG9wT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpVUkwmIGNsaWVudFVSTCk7CisgICAgdm9pZCB3aGVu
UmVnaXN0cmF0aW9uUmVhZHkodWludDY0X3QgcmVnaXN0cmF0aW9uUmVhZHlSZXF1ZXN0SWRlbnRp
ZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0
IFdlYkNvcmU6OlVSTCYgY2xpZW50VVJMKTsKICAgICB2b2lkIGdldFJlZ2lzdHJhdGlvbnModWlu
dDY0X3QgcmVnaXN0cmF0aW9uTWF0Y2hSZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlVSTCYgY2xpZW50
VVJMKTsKIAogICAgIHZvaWQgcmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YSYmIHRvcE9yaWdpbiwgV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVy
LCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmKTsKQEAgLTk0LDEyICs5NiwxOCBA
QCBwcml2YXRlOgogICAgIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IHZvaWQgc2VuZFRvQ29u
dGV4dFByb2Nlc3MoVSYmIG1lc3NhZ2UpOwogCi0gICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9u
SUQ7CisgICAgc3RydWN0IFJlZ2lzdHJhdGlvblJlYWR5UmVxdWVzdCB7CisgICAgICAgIFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0b3BPcmlnaW47CisgICAgICAgIFdlYkNvcmU6OlVSTCBj
bGllbnRVUkw7CisgICAgICAgIFdURjo6RnVuY3Rpb248dm9pZChXZWJDb3JlOjpTV1NlcnZlclJl
Z2lzdHJhdGlvbiYpPiBjYWxsYmFjazsKKyAgICB9OwogCisgICAgUEFMOjpTZXNzaW9uSUQgbV9z
ZXNzaW9uSUQ7CiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb250ZW50Q29ubmVjdGlvbjsK
ICAgICBSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBtX2NvbnRleHRDb25uZWN0aW9uOwogICAgIEhh
c2hNYXA8V2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpDbGllbnRPcmlnaW4+
IG1fY2xpZW50T3JpZ2luczsKLX07IC8vIGNsYXNzIFdlYlNXU2VydmVyQ29ubmVjdGlvbgorICAg
IFZlY3RvcjxSZWdpc3RyYXRpb25SZWFkeVJlcXVlc3Q+IG1fcmVnaXN0cmF0aW9uUmVhZHlSZXF1
ZXN0czsKK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCAxMDJmMDBiNTg1MDI3NWY3
NmQwN2E4YzE0MWE4Mjk5ODc2ZmVlYTczLi5kYWI1YTk2MThhZjAxYzZkYmUyZDAwNzYzZmY0OGQz
Yjg2MWJhNDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24u
bWVzc2FnZXMuaW4KQEAgLTM4LDYgKzM4LDcgQEAgbWVzc2FnZXMgLT4gV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uIHsKICAgICBEaWRSZXNvbHZlUmVnaXN0cmF0aW9uUHJvbWlzZShXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5IGtleSkKIAogICAgIE1hdGNoUmVnaXN0cmF0aW9uKHVp
bnQ2NF90IHNlcnZpY2VSZWdpc3RyYXRpb25NYXRjaFJlcXVlc3RJZGVudGlmaWVyLCBzdHJ1Y3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcE9yaWdpbiwgV2ViQ29yZTo6VVJMIGNsaWVu
dFVSTCkKKyAgICBXaGVuUmVnaXN0cmF0aW9uUmVhZHkodWludDY0X3Qgc2VydmljZVJlZ2lzdHJh
dGlvbk1hdGNoUmVxdWVzdElkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEgdG9wT3JpZ2luLCBXZWJDb3JlOjpVUkwgY2xpZW50VVJMKQogICAgIEdldFJlZ2lzdHJh
dGlvbnModWludDY0X3Qgc2VydmljZVJlZ2lzdHJhdGlvbk1hdGNoUmVxdWVzdElkZW50aWZpZXIs
IHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wT3JpZ2luLCBXZWJDb3JlOjpV
UkwgY2xpZW50VVJMKQogICAgIFJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChzdHJ1Y3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcE9yaWdpbiwgV2ViQ29yZTo6RG9jdW1lbnRJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0
YSBkYXRhKQogICAgIFVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OkRvY3Vt
ZW50SWRlbnRpZmllciBpZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggMmJiMWIx
ODc1NWYwODg5YzJkYjI2YmUyOTRjOWI4YWFlMmFmYjRmNi4uMWE3MTE3YjJmMmNjMWIwOWJlNDgw
NTkwYTZhNGRhZDg4M2E3YTZkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCkBAIC0xNjAsOSArMTYw
LDIzIEBAIHZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjptYXRjaFJlZ2lzdHJhdGlvbihjb25z
dCBTZWN1cml0eU9yaWdpbiYgdG9wT3JpZ2luLCBjCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICB1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciA9ICsrbV9wcmV2aW91c01hdGNoUmVnaXN0
cmF0aW9uVGFza0lkZW50aWZpZXI7Ci0gICAgbV9vbmdvaW5nTWF0Y2hSZWdpc3RyYXRpb25UYXNr
cy5hZGQocmVxdWVzdElkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKLSAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246Ok1hdGNoUmVnaXN0cmF0aW9uKHJlcXVlc3RJ
ZGVudGlmaWVyLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbih0b3BPcmln
aW4pLCBjbGllbnRVUkwpKTsKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gKyttX3ByZXZpb3Vz
Q2FsbGJhY2tJZGVudGlmaWVyOworICAgIG1fb25nb2luZ01hdGNoUmVnaXN0cmF0aW9uVGFza3Mu
YWRkKGNhbGxiYWNrSUQsIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpX
ZWJTV1NlcnZlckNvbm5lY3Rpb246Ok1hdGNoUmVnaXN0cmF0aW9uKGNhbGxiYWNrSUQsIFNlY3Vy
aXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKHRvcE9yaWdpbiksIGNsaWVudFVSTCkp
OworfQorCit2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6d2hlblJlZ2lzdHJhdGlvblJlYWR5
KFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMLCBX
aGVuUmVnaXN0cmF0aW9uUmVhZHlDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIHVpbnQ2NF90
IGNhbGxiYWNrSUQgPSArK21fcHJldmlvdXNDYWxsYmFja0lkZW50aWZpZXI7CisgICAgbV9vbmdv
aW5nUmVnaXN0cmF0aW9uUmVhZHlUYXNrcy5hZGQoY2FsbGJhY2tJRCwgV1RGTW92ZShjYWxsYmFj
aykpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6V2hlblJlZ2lz
dHJhdGlvblJlYWR5KGNhbGxiYWNrSUQsIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5
T3JpZ2luKHRvcE9yaWdpbiksIGNsaWVudFVSTCkpOworfQorCit2b2lkIFdlYlNXQ2xpZW50Q29u
bmVjdGlvbjo6cmVnaXN0cmF0aW9uUmVhZHkodWludDY0X3QgY2FsbGJhY2tJRCwgV2ViQ29yZTo6
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmJiByZWdpc3RyYXRpb25EYXRhKQoreworICAg
IEFTU0VSVChyZWdpc3RyYXRpb25EYXRhLmFjdGl2ZVdvcmtlcik7CisgICAgaWYgKGF1dG8gY2Fs
bGJhY2sgPSBtX29uZ29pbmdSZWdpc3RyYXRpb25SZWFkeVRhc2tzLnRha2UoY2FsbGJhY2tJRCkp
CisgICAgICAgIGNhbGxiYWNrKFdURk1vdmUocmVnaXN0cmF0aW9uRGF0YSkpOwogfQogCiB2b2lk
IFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6Z2V0UmVnaXN0cmF0aW9ucyhjb25zdCBTZWN1cml0eU9y
aWdpbiYgdG9wT3JpZ2luLCBjb25zdCBVUkwmIGNsaWVudFVSTCwgR2V0UmVnaXN0cmF0aW9uc0Nh
bGxiYWNrJiYgY2FsbGJhY2spCkBAIC0xNzQsOSArMTg4LDkgQEAgdm9pZCBXZWJTV0NsaWVudENv
bm5lY3Rpb246OmdldFJlZ2lzdHJhdGlvbnMoY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdp
biwgY28KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHVpbnQ2NF90IHJlcXVlc3RJZGVu
dGlmaWVyID0gKyttX3ByZXZpb3VzR2V0UmVnaXN0cmF0aW9uc1Rhc2tJZGVudGlmaWVyOwotICAg
IG1fb25nb2luZ0dldFJlZ2lzdHJhdGlvbnNUYXNrcy5hZGQocmVxdWVzdElkZW50aWZpZXIsIFdU
Rk1vdmUoY2FsbGJhY2spKTsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rp
b246OkdldFJlZ2lzdHJhdGlvbnMocmVxdWVzdElkZW50aWZpZXIsIFNlY3VyaXR5T3JpZ2luRGF0
YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKHRvcE9yaWdpbiksIGNsaWVudFVSTCkpOworICAgIHVpbnQ2
NF90IGNhbGxiYWNrSUQgPSArK21fcHJldmlvdXNDYWxsYmFja0lkZW50aWZpZXI7CisgICAgbV9v
bmdvaW5nR2V0UmVnaXN0cmF0aW9uc1Rhc2tzLmFkZChjYWxsYmFja0lELCBXVEZNb3ZlKGNhbGxi
YWNrKSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpHZXRSZWdp
c3RyYXRpb25zKGNhbGxiYWNrSUQsIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3Jp
Z2luKHRvcE9yaWdpbiksIGNsaWVudFVSTCkpOwogfQogCiB2b2lkIFdlYlNXQ2xpZW50Q29ubmVj
dGlvbjo6c3RhcnRGZXRjaChjb25zdCBSZXNvdXJjZUxvYWRlciYgbG9hZGVyLCB1aW50NjRfdCBp
ZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDbGllbnRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaAppbmRleCBlNTZmNGVhNTQ1Y2U0ZWIyOTZlZjQxZWQ2
NDMyN2JlMzI3ODYzZjdmLi43OTBhMDU5OTBmY2ZjNmRkYWFmMDdhMzk3NzEyZjJjZWU3NzhkNmYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVu
dENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NsaWVudENvbm5lY3Rpb24uaApAQCAtODMsNiArODMsOCBAQCBwcml2YXRlOgogICAgIHZvaWQg
bWF0Y2hSZWdpc3RyYXRpb24oY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdp
biwgY29uc3QgV2ViQ29yZTo6VVJMJiBjbGllbnRVUkwsIFJlZ2lzdHJhdGlvbkNhbGxiYWNrJiYp
IGZpbmFsOwogICAgIHZvaWQgZGlkTWF0Y2hSZWdpc3RyYXRpb24odWludDY0X3QgbWF0Y2hSZXF1
ZXN0SWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uRGF0YT4mJik7CiAgICAgdm9pZCBkaWRHZXRSZWdpc3RyYXRpb25zKHVpbnQ2NF90IG1h
dGNoUmVxdWVzdElkZW50aWZpZXIsIFZlY3RvcjxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uRGF0YT4mJik7CisgICAgdm9pZCB3aGVuUmVnaXN0cmF0aW9uUmVhZHkoUmVmPFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6VVJMJiBjbGll
bnRVUkwsIFdoZW5SZWdpc3RyYXRpb25SZWFkeUNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQg
cmVnaXN0cmF0aW9uUmVhZHkodWludDY0X3QgY2FsbGJhY2tJRCwgV2ViQ29yZTo6U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbkRhdGEmJik7CiAKICAgICB2b2lkIGdldFJlZ2lzdHJhdGlvbnMoY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6VVJM
JiBjbGllbnRVUkwsIEdldFJlZ2lzdHJhdGlvbnNDYWxsYmFjayYmKSBmaW5hbDsKIApAQCAtMTAy
LDExICsxMDQsMTAgQEAgcHJpdmF0ZToKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5l
Y3Rpb247CiAgICAgVW5pcXVlUmVmPFdlYlNXT3JpZ2luVGFibGU+IG1fc3dPcmlnaW5UYWJsZTsK
IAotICAgIHVpbnQ2NF90IG1fcHJldmlvdXNNYXRjaFJlZ2lzdHJhdGlvblRhc2tJZGVudGlmaWVy
IHsgMCB9OworICAgIHVpbnQ2NF90IG1fcHJldmlvdXNDYWxsYmFja0lkZW50aWZpZXIgeyAwIH07
CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVnaXN0cmF0aW9uQ2FsbGJhY2s+IG1fb25nb2luZ01h
dGNoUmVnaXN0cmF0aW9uVGFza3M7Ci0KLSAgICB1aW50NjRfdCBtX3ByZXZpb3VzR2V0UmVnaXN0
cmF0aW9uc1Rhc2tJZGVudGlmaWVyIHsgMCB9OwogICAgIEhhc2hNYXA8dWludDY0X3QsIEdldFJl
Z2lzdHJhdGlvbnNDYWxsYmFjaz4gbV9vbmdvaW5nR2V0UmVnaXN0cmF0aW9uc1Rhc2tzOworICAg
IEhhc2hNYXA8dWludDY0X3QsIFdoZW5SZWdpc3RyYXRpb25SZWFkeUNhbGxiYWNrPiBtX29uZ29p
bmdSZWdpc3RyYXRpb25SZWFkeVRhc2tzOwogCiB9OyAvLyBjbGFzcyBXZWJTV1NlcnZlckNvbm5l
Y3Rpb24KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IGEzMzA4MWYw
NDU1OWU5OTAyMDc0NjY0YmJlM2NkOWZkNjkyMTAwNGEuLjEwMjE3ZTJiNGU0MzRhMDViMTc1NDdk
ZTAyZmRmZjY4NDk0ODQ0MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW4K
QEAgLTM5LDYgKzM5LDcgQEAgbWVzc2FnZXMgLT4gV2ViU1dDbGllbnRDb25uZWN0aW9uIHsKIAog
ICAgIERpZE1hdGNoUmVnaXN0cmF0aW9uKHVpbnQ2NF90IG1hdGNoUmVxdWVzdElkZW50aWZpZXIs
IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE+IGRh
dGEpCiAgICAgRGlkR2V0UmVnaXN0cmF0aW9ucyh1aW50NjRfdCBtYXRjaFJlcXVlc3RJZGVudGlm
aWVyLCBWZWN0b3I8V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE+IHJlZ2lz
dHJhdGlvbnMpCisgICAgUmVnaXN0cmF0aW9uUmVhZHkodWludDY0X3QgcmVnaXN0cmF0aW9uUmVh
ZHlSZXF1ZXN0SWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25EYXRhIGRhdGEpCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBiODhlZmIyMDJjNWQ1MWJjNTk2OWJjZjRi
MGQ5ZDJjYjNhYTU2MTFlLi41MjUyZDJjYzBjMDg0M2IyOTQ3ODcxNDQ3ZGI0NWJhYjgyMjk3NTg3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNy0x
Mi0wNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBw
b3J0IGZvciBTZXJ2aWNlV29ya2VyQ29udGFpbmVyLnByb3RvdHlwZS5yZWFkeQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwMzgzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmViYXNlbGluZSBXUFQgdGVz
dCBjb3ZlcmFnZSBjb250YWluZXIucmVhZHkgbm93IHRoYXQgaXQgaXMgcGFzc2luZy4KKworICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVhZHkuaHR0cHMtZXhwZWN0ZWQudHh0OgorCiAyMDE3LTEyLTA0ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgU3VwcG9ydCBjb250YWluZXIuZ2V0UmVnaXN0cmF0
aW9uKCkgLyBnZXRSZWdpc3RyYXRpb25zKCkgaW5zaWRlIHNlcnZpY2Ugd29ya2VycwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVhZHkuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvcmVhZHkuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDA0ODk0MTdkZjcyMjg5
NjFmYmQ0MjJkZTA0Y2YwZjI2NzM1M2I1MmQuLmY1ODg0YzI0ZjIzYzY0OGRmMDQ3MmE4NzE1MDgx
NGY3MDUyYWI4NjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlYWR5Lmh0dHBzLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWFkeS5odHRwcy1leHBlY3RlZC50
eHQKQEAgLTEsMTQgKzEsMTEgQEAKLUNPTlNPTEUgTUVTU0FHRTogVW5oYW5kbGVkIFByb21pc2Ug
UmVqZWN0aW9uOiBVbmtub3duRXJyb3I6IHNlcnZpY2VXb3JrZXIucmVhZHkoKSBpcyBub3QgeWV0
IGltcGxlbWVudGVkCi0KLUhhcm5lc3MgRXJyb3IgKEZBSUwpLCBtZXNzYWdlID0gc2VydmljZVdv
cmtlci5yZWFkeSgpIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQKIAogUEFTUyByZWFkeSByZXR1cm5z
IHRoZSBzYW1lIFByb21pc2Ugb2JqZWN0IAogUEFTUyByZWFkeSByZXR1cm5zIGEgUHJvbWlzZSBv
YmplY3QgaW4gdGhlIGNvbnRleHQgb2YgdGhlIHJlbGF0ZWQgZG9jdW1lbnQgCi1GQUlMIHJlYWR5
IG9uIGEgY29udHJvbGxlZCBkb2N1bWVudCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rp
b24gd2l0aCB2YWx1ZTogb2JqZWN0ICJVbmtub3duRXJyb3I6IHNlcnZpY2VXb3JrZXIucmVhZHko
KSBpcyBub3QgeWV0IGltcGxlbWVudGVkIgotRkFJTCByZWFkeSBvbiBhIHBvdGVudGlhbCBjb250
cm9sbGVkIGRvY3VtZW50IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZh
bHVlOiBvYmplY3QgIlVua25vd25FcnJvcjogc2VydmljZVdvcmtlci5yZWFkeSgpIGlzIG5vdCB5
ZXQgaW1wbGVtZW50ZWQiCi1GQUlMIHJlYWR5IG9uIGFuIGlmcmFtZSB3aG9zZSBwYXJlbnQgcmVn
aXN0ZXJzIGEgbmV3IHNlcnZpY2Ugd29ya2VyIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVj
dGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlVua25vd25FcnJvcjogc2VydmljZVdvcmtlci5yZWFk
eSgpIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQiCi1GQUlMIHJlYWR5IG9uIGFuIGlmcmFtZSB0aGF0
IGluc3RhbGxzIGEgbmV3IHNlcnZpY2Ugd29ya2VyIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlVua25vd25FcnJvcjogc2VydmljZVdvcmtlci5y
ZWFkeSgpIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQiCi1GQUlMIHJlYWR5IGFmdGVyIGEgbG9uZ2Vy
IG1hdGNoZWQgcmVnaXN0cmF0aW9uIHJlZ2lzdGVyZWQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVW5rbm93bkVycm9yOiBzZXJ2aWNlV29ya2Vy
LnJlYWR5KCkgaXMgbm90IHlldCBpbXBsZW1lbnRlZCIKLUZBSUwgYWNjZXNzIHJlYWR5IGFmdGVy
IGl0IGhhcyBiZWVuIHJlc29sdmVkIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3
aXRoIHZhbHVlOiBvYmplY3QgIlVua25vd25FcnJvcjogc2VydmljZVdvcmtlci5yZWFkeSgpIGlz
IG5vdCB5ZXQgaW1wbGVtZW50ZWQiCi1GQUlMIGFjY2VzcyByZWFkeSBvbiB1bmluc3RhbGxpbmcg
cmVnaXN0cmF0aW9uIHRoYXQgaXMgcmVzdXJyZWN0ZWQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVW5rbm93bkVycm9yOiBzZXJ2aWNlV29ya2Vy
LnJlYWR5KCkgaXMgbm90IHlldCBpbXBsZW1lbnRlZCIKK1BBU1MgcmVhZHkgb24gYSBjb250cm9s
bGVkIGRvY3VtZW50IAorUEFTUyByZWFkeSBvbiBhIHBvdGVudGlhbCBjb250cm9sbGVkIGRvY3Vt
ZW50IAorUEFTUyByZWFkeSBvbiBhbiBpZnJhbWUgd2hvc2UgcGFyZW50IHJlZ2lzdGVycyBhIG5l
dyBzZXJ2aWNlIHdvcmtlciAKK1BBU1MgcmVhZHkgb24gYW4gaWZyYW1lIHRoYXQgaW5zdGFsbHMg
YSBuZXcgc2VydmljZSB3b3JrZXIgCitQQVNTIHJlYWR5IGFmdGVyIGEgbG9uZ2VyIG1hdGNoZWQg
cmVnaXN0cmF0aW9uIHJlZ2lzdGVyZWQgCitQQVNTIGFjY2VzcyByZWFkeSBhZnRlciBpdCBoYXMg
YmVlbiByZXNvbHZlZCAKK1BBU1MgYWNjZXNzIHJlYWR5IG9uIHVuaW5zdGFsbGluZyByZWdpc3Ry
YXRpb24gdGhhdCBpcyByZXN1cnJlY3RlZCAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328472</attachid>
            <date>2017-12-05 11:00:48 -0800</date>
            <delta_ts>2017-12-05 12:09:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180383-20171205110048.patch</filename>
            <type>text/plain</type>
            <size>26427</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzFjYjAzODM2ZmY0MmY3
ZGRkYzIyMDM3ZjJjZGU2MjlkODc2YzRkMC4uZTFhYmYyZWU3M2M1NzgwN2QxNDUxOTEzZTAzZTBi
N2JkOTBmOWFmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE3LTEyLTA1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIFNl
cnZpY2VXb3JrZXJDb250YWluZXIucHJvdG90eXBlLnJlYWR5CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODAzODMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgU2VydmljZVdvcmtl
ckNvbnRhaW5lci5wcm90b3R5cGUucmVhZHk6CisgICAgICAgIC0gaHR0cHM6Ly93M2MuZ2l0aHVi
LmlvL1NlcnZpY2VXb3JrZXIvI25hdmlnYXRvci1zZXJ2aWNlLXdvcmtlci1yZWFkeQorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cywgcmViYXNlbGluZWQgZXhpc3RpbmcgdGVzdC4KKworICAgICAgICAq
IHdvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uaDoKKyAgICAgICAgKiB3b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpTZXJ2aWNlV29ya2VyQ29udGFpbmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OnJlYWR5KToKKyAgICAgICAgKiB3b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oOgorICAgICAgICAqIHdvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5Lmg6CisgICAgICAgICogd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZl
cjo6cmVzb2x2ZVJlZ2lzdHJhdGlvblJlYWR5UmVxdWVzdHMpOgorICAgICAgICAqIHdvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVy
UmVnaXN0cmF0aW9uOjphY3RpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclJlZ2lz
dHJhdGlvbjo6c2V0SXNVbmluc3RhbGxpbmcpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaDoKKwogMjAxNy0xMi0wNSAgU2ltb24gRnJhc2Vy
ICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgd2Via2l0R2V0SW1h
Z2VEYXRhSEQgYW5kIHdlYmtpdFB1dEltYWdlRGF0YUhEIGZyb20gY2FudmFzIEFQSQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCA4M2IwMGEyNzkzYzQxZTk5ZmMzODdmZWNhNzBmMmUzMDNmY2Y2NzliLi5jNTRiYzRjNzZh
NTQ1YjZlODBkMTg4NmIzYWJlNWI5NjA3MzJmN2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBA
CisyMDE3LTEyLTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAg
QWRkIHN1cHBvcnQgZm9yIFNlcnZpY2VXb3JrZXJDb250YWluZXIucHJvdG90eXBlLnJlYWR5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODAzODMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFN0b3JhZ2VQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjp3aGVuUmVnaXN0cmF0aW9uUmVhZHkpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OnJlc29sdmVSZWdpc3RyYXRp
b25SZWFkeVJlcXVlc3RzKToKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTV0NsaWVudENvbm5lY3Rpb246Om1hdGNoUmVnaXN0cmF0aW9uKToKKyAgICAgICAg
KFdlYktpdDo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjp3aGVuUmVnaXN0cmF0aW9uUmVhZHkpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJTV0NsaWVudENvbm5lY3Rpb246OnJlZ2lzdHJhdGlvblJlYWR5
KToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpnZXRSZWdpc3RyYXRp
b25zKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9u
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5t
ZXNzYWdlcy5pbjoKKwogMjAxNy0xMi0wNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgSW1wbGVtZW50IHNldHRpbmcgb2Ygc2VydmljZSB3b3JrZXIgdG8gY2xp
ZW50IGluIFNXU2VydmVyIHdpdGhvdXQgZ29pbmcgdG8gV2ViUHJvY2VzcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IGU1
OGI3ZTYyY2RhMGVmNGEyY2U1YTg4MWIzNWVjNzAxYzMxOTExZTYuLjE5YTUxNDBkMjA4MTAyN2Fl
ZGY1YTRjMDg1ZjNhMzBhZDM4YTM4Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTYyLDYgKzYyLDkgQEAgcHVibGlj
OgogICAgIHVzaW5nIEdldFJlZ2lzdHJhdGlvbnNDYWxsYmFjayA9IFdURjo6Q29tcGxldGlvbkhh
bmRsZXI8dm9pZChWZWN0b3I8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE+JiYpPjsKICAg
ICB2aXJ0dWFsIHZvaWQgZ2V0UmVnaXN0cmF0aW9ucyhjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9w
T3JpZ2luLCBjb25zdCBVUkwmIGNsaWVudFVSTCwgR2V0UmVnaXN0cmF0aW9uc0NhbGxiYWNrJiYp
ID0gMDsKIAorICAgIHVzaW5nIFdoZW5SZWdpc3RyYXRpb25SZWFkeUNhbGxiYWNrID0gV1RGOjpG
dW5jdGlvbjx2b2lkKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJiYpPjsKKyAgICB2aXJ0
dWFsIHZvaWQgd2hlblJlZ2lzdHJhdGlvblJlYWR5KFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BP
cmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMLCBXaGVuUmVnaXN0cmF0aW9uUmVhZHlDYWxsYmFj
ayYmKSA9IDA7CisKICAgICB2aXJ0dWFsIHZvaWQgYWRkU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bkluU2VydmVyKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIHJlbW92ZVNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JblNlcnZlcihTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcikgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAK
aW5kZXggODVkYWYyZTI5Y2IyNjM0MzAzMGI1NjRhNDUxMzBhODExMWMzZTY2NC4uNGEzMTFiOTlk
YjRhYTYzOTAxYTM0YzFjZWIyYjMzYjM2MTk5NTIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcApAQCAt
NTcsOCArNTcsNiBAQCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpTZXJ2aWNlV29ya2VyQ29udGFp
bmVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsCiAgICAgLCBtX25hdmlnYXRvcihu
YXZpZ2F0b3IpCiB7CiAgICAgc3VzcGVuZElmTmVlZGVkKCk7Ci0KLSAgICBtX3JlYWR5UHJvbWlz
ZS5yZWplY3QoRXhjZXB0aW9uIHsgVW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwoInNlcnZpY2VX
b3JrZXIucmVhZHkoKSBpcyBub3QgeWV0IGltcGxlbWVudGVkIikgfSk7CiB9CiAKIFNlcnZpY2VX
b3JrZXJDb250YWluZXI6On5TZXJ2aWNlV29ya2VyQ29udGFpbmVyKCkKQEAgLTc4LDYgKzc2LDMx
IEBAIHZvaWQgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6ZGVyZWZFdmVudFRhcmdldCgpCiAgICAg
bV9uYXZpZ2F0b3IuZGVyZWYoKTsKIH0KIAorYXV0byBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpy
ZWFkeSgpIC0+IFJlYWR5UHJvbWlzZSYKK3sKKyAgICBpZiAoIW1fcmVhZHlQcm9taXNlKSB7Cisg
ICAgICAgIG1fcmVhZHlQcm9taXNlID0gc3RkOjptYWtlX3VuaXF1ZTxSZWFkeVByb21pc2U+KCk7
CisKKyAgICAgICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAg
ICAgICAgaWYgKCFjb250ZXh0KQorICAgICAgICAgICAgcmV0dXJuICptX3JlYWR5UHJvbWlzZTsK
KworICAgICAgICBhdXRvIGNvbnRleHRJZGVudGlmaWVyID0gdGhpcy0+Y29udGV4dElkZW50aWZp
ZXIoKTsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgY29ubmVjdGlvbiA9IG1ha2VS
ZWYoZW5zdXJlU1dDbGllbnRDb25uZWN0aW9uKCkpLCB0b3BPcmlnaW4gPSBjb250ZXh0LT50b3BP
cmlnaW4oKS5pc29sYXRlZENvcHkoKSwgY2xpZW50VVJMID0gY29udGV4dC0+dXJsKCkuaXNvbGF0
ZWRDb3B5KCksIGNvbnRleHRJZGVudGlmaWVyXSgpIG11dGFibGUgeworICAgICAgICAgICAgY29u
bmVjdGlvbi0+d2hlblJlZ2lzdHJhdGlvblJlYWR5KFdURk1vdmUodG9wT3JpZ2luKSwgY2xpZW50
VVJMLCBbdGhpcywgY29udGV4dElkZW50aWZpZXJdKGF1dG8mJiByZWdpc3RyYXRpb25EYXRhKSB7
CisgICAgICAgICAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cG9zdFRhc2tUbyhjb250
ZXh0SWRlbnRpZmllciwgW3RoaXMsIHJlZ2lzdHJhdGlvbkRhdGEgPSBjcm9zc1RocmVhZENvcHko
cmVnaXN0cmF0aW9uRGF0YSldKGF1dG8mKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKG1faXNTdG9wcGVkKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgICAgICAgICAgICAgIGF1dG8gcmVnaXN0cmF0aW9uID0gU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbjo6Z2V0T3JDcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgKnRoaXMsIFdURk1v
dmUocmVnaXN0cmF0aW9uRGF0YSkpOworICAgICAgICAgICAgICAgICAgICBtX3JlYWR5UHJvbWlz
ZS0+cmVzb2x2ZShXVEZNb3ZlKHJlZ2lzdHJhdGlvbikpOworICAgICAgICAgICAgICAgIH0pOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKyAgICByZXR1cm4gKm1fcmVhZHlQ
cm9taXNlOworfQorCiBTZXJ2aWNlV29ya2VyKiBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpjb250
cm9sbGVyKCkgY29uc3QKIHsKICAgICBhdXRvKiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJDb250YWluZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyQ29udGFpbmVyLmgKaW5kZXggMTQxNjNmOTc0Mzg5MTc1ODQ5ZDYyOWUxNzkyZjFl
OWFiOTVkZjUwMS4uN2Y3Y2U4MjYyODlmM2JkOWFiYjUyZDc2ZDc0OGQ4MzVjMGMxYTY2YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250
YWluZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckNvbnRhaW5lci5oCkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICBTZXJ2aWNlV29ya2Vy
KiBjb250cm9sbGVyKCkgY29uc3Q7CiAKICAgICB1c2luZyBSZWFkeVByb21pc2UgPSBET01Qcm9t
aXNlUHJveHk8SURMSW50ZXJmYWNlPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24+PjsKLSAgICBS
ZWFkeVByb21pc2UmIHJlYWR5KCkgeyByZXR1cm4gbV9yZWFkeVByb21pc2U7IH0KKyAgICBSZWFk
eVByb21pc2UmIHJlYWR5KCk7CiAKICAgICB1c2luZyBSZWdpc3RyYXRpb25PcHRpb25zID0gU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbk9wdGlvbnM7CiAgICAgdm9pZCBhZGRSZWdpc3RyYXRpb24o
Y29uc3QgU3RyaW5nJiBzY3JpcHRVUkwsIGNvbnN0IFJlZ2lzdHJhdGlvbk9wdGlvbnMmLCBSZWY8
RGVmZXJyZWRQcm9taXNlPiYmKTsKQEAgLTExMCw3ICsxMTAsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgZGVyZWZFdmVudFRhcmdldCgpIGZpbmFsOwogICAgIHZvaWQgc3RvcCgpIGZpbmFsOwogCi0g
ICAgUmVhZHlQcm9taXNlIG1fcmVhZHlQcm9taXNlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxSZWFk
eVByb21pc2U+IG1fcmVhZHlQcm9taXNlOwogCiAgICAgTmF2aWdhdG9yQmFzZSYgbV9uYXZpZ2F0
b3I7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uS2V5LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleS5oCmluZGV4IDQyOTgyNGYyZWYwNzJhMTE4ZDcx
MjliYWU1YTdiMTVkODAwNTNmODAuLmNkM2M1YmVlZTNjMDg5OWYwMWEzMThmM2JlM2VjMTJmODhh
NTRlMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uS2V5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJs
aWM6CiAgICAgdW5zaWduZWQgaGFzaCgpIGNvbnN0OwogCiAgICAgYm9vbCBvcGVyYXRvcj09KGNv
bnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmKSBjb25zdDsKLSAgICBib29sIGlzTWF0
Y2hpbmcoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xp
ZW50VVJMKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzTWF0Y2hpbmcoY29uc3Qg
U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMKSBjb25z
dDsKICAgICBib29sIG9yaWdpbklzTWF0Y2hpbmcoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiB0
b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMKSBjb25zdDsKICAgICBzaXplX3Qgc2NvcGVM
ZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX3Njb3BlLnN0cmluZygpLmxlbmd0aCgpOyB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAK
aW5kZXggMmJjYjliNWEwZDI3ZmQwNjBkNWZhZWFlYmJkZWFhZDM3MjNjYzJiMy4uN2RlZGEwNWQw
MzNiZGRkNWQwOTZkYWEyN2QxYTVmZjRlNjBjMzgwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKQEAgLTY0NCw2ICs2NDQsMTIg
QEAgdm9pZCBTV1NlcnZlcjo6dW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgQ2xp
ZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFMKICAgICBtX2NsaWVudFRvQ29udHJvbGxpbmdXb3Jr
ZXIucmVtb3ZlKHdvcmtlckl0ZXJhdG9yKTsKIH0KIAordm9pZCBTV1NlcnZlcjo6cmVzb2x2ZVJl
Z2lzdHJhdGlvblJlYWR5UmVxdWVzdHMoU1dTZXJ2ZXJSZWdpc3RyYXRpb24mIHJlZ2lzdHJhdGlv
bikKK3sKKyAgICBmb3IgKGF1dG8qIGNvbm5lY3Rpb24gOiBtX2Nvbm5lY3Rpb25zLnZhbHVlcygp
KQorICAgICAgICBjb25uZWN0aW9uLT5yZXNvbHZlUmVnaXN0cmF0aW9uUmVhZHlSZXF1ZXN0cyhy
ZWdpc3RyYXRpb24pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXU2VydmVyLmgKaW5kZXggNTZhYzMzYWZhOGNlOGUzZTExZmU3ZjRjNjQxNTI1
ZjQ5NGI1MzViMC4uOWI4MDEzNThlNzIyMjA3N2FjMzliODQ2N2I2MTE0ZmFkYmNmMDFiYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaApA
QCAtODEsNiArODEsNyBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVXb3Jr
ZXJTdGF0ZUluQ2xpZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyU3Rh
dGUpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGZpcmVVcGRhdGVGb3VuZEV2ZW50KFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKGNvbnN0IEhhc2hTZXQ8RG9jdW1lbnRJ
ZGVudGlmaWVyPiYgY29udGV4dElkZW50aWZpZXJzLCBjb25zdCBTZXJ2aWNlV29ya2VyRGF0YSYg
bmV3Q29udHJvbGxlcikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgcmVzb2x2ZVJlZ2lzdHJh
dGlvblJlYWR5UmVxdWVzdHMoU1dTZXJ2ZXJSZWdpc3RyYXRpb24mKSA9IDA7CiAKICAgICBwcm90
ZWN0ZWQ6CiAgICAgICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IENvbm5lY3Rpb24oU1dTZXJ2
ZXImKTsKQEAgLTE1MSw2ICsxNTIsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9v
bCBpbnZva2VSdW5TZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKIAogICAg
IHZvaWQgc2V0Q2xpZW50QWN0aXZlV29ya2VyKFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVy
LCBTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CisgICAgdm9pZCByZXNvbHZlUmVnaXN0cmF0aW9u
UmVhZHlSZXF1ZXN0cyhTV1NlcnZlclJlZ2lzdHJhdGlvbiYpOwogCiBwcml2YXRlOgogICAgIHZv
aWQgcmVnaXN0ZXJDb25uZWN0aW9uKENvbm5lY3Rpb24mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlv
bi5jcHAKaW5kZXggOGVhNmZjZWZmYzdhNjc0NTVkYWI1MjAxOWUwNTI0Njk5MTllYzNlYy4uZjUy
NzcwZmMxYzFlYjkzYjY2Yzk2N2Y1ZjZmZWU3MGUyODUwZDE4NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lz
dHJhdGlvbi5jcHAKQEAgLTI2MSw2ICsyNjEsOSBAQCB2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9u
OjphY3RpdmF0ZSgpCiAgICAgdXBkYXRlV29ya2VyU3RhdGUoKmFjdGl2ZVdvcmtlcigpLCBTZXJ2
aWNlV29ya2VyU3RhdGU6OkFjdGl2YXRpbmcpOwogICAgIC8vIEZJWE1FOiBGb3IgZWFjaCBzZXJ2
aWNlIHdvcmtlciBjbGllbnQgd2hvc2UgY3JlYXRpb24gVVJMIG1hdGNoZXMgcmVnaXN0cmF0aW9u
J3Mgc2NvcGUgdXJsLi4uCiAKKyAgICAvLyBUaGUgcmVnaXN0cmF0aW9uIG5vdyBoYXMgYW4gYWN0
aXZlIHdvcmtlciBzbyB3ZSBuZWVkIHRvIGNoZWNrIGlmIHRoZXJlIGFyZSBhbnkgcmVhZHkgcHJv
bWlzZXMgdGhhdCB3ZXJlIHdhaXRpbmcgZm9yIHRoaXMuCisgICAgbV9zZXJ2ZXIucmVzb2x2ZVJl
Z2lzdHJhdGlvblJlYWR5UmVxdWVzdHMoKnRoaXMpOworCiAgICAgLy8gRm9yIGVhY2ggc2Vydmlj
ZSB3b3JrZXIgY2xpZW50IHdobyBpcyB1c2luZyByZWdpc3RyYXRpb246CiAgICAgLy8gLSBTZXQg
Y2xpZW50J3MgYWN0aXZlIHdvcmtlciB0byByZWdpc3RyYXRpb24ncyBhY3RpdmUgd29ya2VyLgog
ICAgIGZvciAoYXV0byBrZXlWYWx1ZSA6IG1fY2xpZW50c1VzaW5nUmVnaXN0cmF0aW9uKSB7CkBA
IC0yOTcsNiArMzAwLDE5IEBAIHZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OmhhbmRsZUNsaWVu
dFVubG9hZCgpCiAgICAgdHJ5QWN0aXZhdGUoKTsKIH0KIAordm9pZCBTV1NlcnZlclJlZ2lzdHJh
dGlvbjo6c2V0SXNVbmluc3RhbGxpbmcoYm9vbCB2YWx1ZSkKK3sKKyAgICBpZiAobV91bmluc3Rh
bGxpbmcgPT0gdmFsdWUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fdW5pbnN0YWxsaW5nID0g
dmFsdWU7CisKKyAgICBpZiAoIW1fdW5pbnN0YWxsaW5nICYmIGFjdGl2ZVdvcmtlcigpKSB7Cisg
ICAgICAgIC8vIFJlZ2lzdHJhdGlvbiB3aXRoIGFjdGl2ZSB3b3JrZXIgaGFzIGJlZW4gcmVzdXJy
ZWN0ZWQsIHdlIG5lZWQgdG8gY2hlY2sgaWYgYW55IHJlYWR5IHByb21pc2VzIHdlcmUgd2FpdGlu
ZyBmb3IgdGhpcy4KKyAgICAgICAgbV9zZXJ2ZXIucmVzb2x2ZVJlZ2lzdHJhdGlvblJlYWR5UmVx
dWVzdHMoKnRoaXMpOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oCmluZGV4
IDEwZTcwYWUzZTE4ZmZkOGNhYmJiNzRjMzRiZDMyOGM0ZGFjYzQwMmYuLjc2Mjc0OWE5ZTFkNzJj
OGQ3OTJiMjg3NWJlODE3YWVlNjZjNTRmNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmgKQEAg
LTU2LDcgKzU2LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25EYXRhIGRhdGEoKSBjb25zdDsKIAogICAgIGJvb2wgaXNVbmluc3RhbGxpbmco
KSBjb25zdCB7IHJldHVybiBtX3VuaW5zdGFsbGluZzsgfQotICAgIHZvaWQgc2V0SXNVbmluc3Rh
bGxpbmcoYm9vbCB2YWx1ZSkgeyBtX3VuaW5zdGFsbGluZyA9IHZhbHVlOyB9CisgICAgdm9pZCBz
ZXRJc1VuaW5zdGFsbGluZyhib29sKTsKIAogICAgIHZvaWQgc2V0TGFzdFVwZGF0ZVRpbWUoZG91
YmxlIHRpbWUpIHsgbV9sYXN0VXBkYXRlVGltZSA9IHRpbWU7IH0KICAgICBTZXJ2aWNlV29ya2Vy
VXBkYXRlVmlhQ2FjaGUgdXBkYXRlVmlhQ2FjaGUoKSBjb25zdCB7IHJldHVybiBtX3VwZGF0ZVZp
YUNhY2hlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCmluZGV4IGYy
MjBmYTRiNWQ4YWYxZDJjNDRlYjE0ZmE2NWFiZmExMzNkMjI3MjkuLjY5NDA1ZGRmYTZiOTA3NTAy
YzM3NTRmMmJhNTM0NGJlNjBhM2UzNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5l
Y3Rpb24uY3BwCkBAIC0xOTgsNiArMTk4LDMxIEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
OjptYXRjaFJlZ2lzdHJhdGlvbih1aW50NjRfdCByZWdpc3RyYXRpb25NYXRjaFJlcXVlc3RJCiAg
ICAgc2VuZChNZXNzYWdlczo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpEaWRNYXRjaFJlZ2lzdHJh
dGlvbiB7IHJlZ2lzdHJhdGlvbk1hdGNoUmVxdWVzdElkZW50aWZpZXIsIHN0ZDo6bnVsbG9wdCB9
KTsKIH0KIAordm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OndoZW5SZWdpc3RyYXRpb25SZWFk
eSh1aW50NjRfdCByZWdpc3RyYXRpb25SZWFkeVJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBTZWN1
cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwpCit7CisgICAg
aWYgKGF1dG8qIHJlZ2lzdHJhdGlvbiA9IGRvUmVnaXN0cmF0aW9uTWF0Y2hpbmcodG9wT3JpZ2lu
LCBjbGllbnRVUkwpKSB7CisgICAgICAgIGlmIChyZWdpc3RyYXRpb24tPmFjdGl2ZVdvcmtlcigp
KSB7CisgICAgICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NsaWVudENvbm5lY3Rpb246OlJl
Z2lzdHJhdGlvblJlYWR5IHsgcmVnaXN0cmF0aW9uUmVhZHlSZXF1ZXN0SWRlbnRpZmllciwgcmVn
aXN0cmF0aW9uLT5kYXRhKCkgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAg
ICB9CisgICAgYXV0byBjYWxsYmFjayA9IFt0aGlzLCByZWdpc3RyYXRpb25SZWFkeVJlcXVlc3RJ
ZGVudGlmaWVyXShhdXRvJiByZWdpc3RyYXRpb24pIHsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6
V2ViU1dDbGllbnRDb25uZWN0aW9uOjpSZWdpc3RyYXRpb25SZWFkeSB7IHJlZ2lzdHJhdGlvblJl
YWR5UmVxdWVzdElkZW50aWZpZXIsIHJlZ2lzdHJhdGlvbi5kYXRhKCkgfSk7CisgICAgfTsKKyAg
ICBtX3JlZ2lzdHJhdGlvblJlYWR5UmVxdWVzdHMuYXBwZW5kKHsgdG9wT3JpZ2luLCBjbGllbnRV
UkwsIFdURk1vdmUoY2FsbGJhY2spIH0pOworfQorCit2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlv
bjo6cmVzb2x2ZVJlZ2lzdHJhdGlvblJlYWR5UmVxdWVzdHMoU1dTZXJ2ZXJSZWdpc3RyYXRpb24m
IHJlZ2lzdHJhdGlvbikKK3sKKyAgICBtX3JlZ2lzdHJhdGlvblJlYWR5UmVxdWVzdHMucmVtb3Zl
QWxsTWF0Y2hpbmcoWyZdKGF1dG8mIHJlcXVlc3QpIHsKKyAgICAgICAgaWYgKCFyZWdpc3RyYXRp
b24ua2V5KCkuaXNNYXRjaGluZyhyZXF1ZXN0LnRvcE9yaWdpbiwgcmVxdWVzdC5jbGllbnRVUkwp
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIHJlcXVlc3QuY2FsbGJhY2so
cmVnaXN0cmF0aW9uKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfSk7Cit9CisKIHZvaWQg
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpnZXRSZWdpc3RyYXRpb25zKHVpbnQ2NF90IHJlZ2lzdHJh
dGlvbk1hdGNoUmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgdG9w
T3JpZ2luLCBjb25zdCBVUkwmIGNsaWVudFVSTCkKIHsKICAgICBhdXRvIHJlZ2lzdHJhdGlvbnMg
PSBzZXJ2ZXIoKS5nZXRSZWdpc3RyYXRpb25zKHRvcE9yaWdpbiwgY2xpZW50VVJMKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaAppbmRleCBmZDAwZDFhNGU5OWU1OGY3M2M5OGI3
MGQ2Y2RmMDQxNTViZDJlZTc5Li41OWE1MzMxZDA2MjY3ZGZmMDc1Y2Y1ZDY5ZWQyMzAwMmRhYjdm
NmY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCkBAIC03Nyw2ICs3Nyw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVXb3JrZXJTdGF0ZUluQ2xpZW50KFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyU3RhdGUpIGZp
bmFsOwogICAgIHZvaWQgZmlyZVVwZGF0ZUZvdW5kRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbklkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgbm90aWZ5Q2xpZW50c09m
Q29udHJvbGxlckNoYW5nZShjb25zdCBIYXNoU2V0PFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmll
cj4mIGNvbnRleHRJZGVudGlmaWVycywgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckRhdGEm
IG5ld0NvbnRyb2xsZXIpOworICAgIHZvaWQgcmVzb2x2ZVJlZ2lzdHJhdGlvblJlYWR5UmVxdWVz
dHMoV2ViQ29yZTo6U1dTZXJ2ZXJSZWdpc3RyYXRpb24mKSBmaW5hbDsKIAogICAgIHZvaWQgc3Rh
cnRGZXRjaCh1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
U2VydmljZVdvcmtlcklkZW50aWZpZXI+LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
LCBjb25zdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmLCBjb25zdCBJUEM6OkZvcm1EYXRhUmVmZXJl
bmNlJik7CiAKQEAgLTg0LDYgKzg1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBvc3RNZXNzYWdl
VG9TZXJ2aWNlV29ya2VyRnJvbVNlcnZpY2VXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklk
ZW50aWZpZXIgZGVzdGluYXRpb24sIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgbWVzc2FnZSwg
V2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc291cmNlKTsKIAogICAgIHZvaWQgbWF0
Y2hSZWdpc3RyYXRpb24odWludDY0X3QgcmVnaXN0cmF0aW9uTWF0Y2hSZXF1ZXN0SWRlbnRpZmll
ciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFdl
YkNvcmU6OlVSTCYgY2xpZW50VVJMKTsKKyAgICB2b2lkIHdoZW5SZWdpc3RyYXRpb25SZWFkeSh1
aW50NjRfdCByZWdpc3RyYXRpb25SZWFkeVJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6VVJMJiBjbGll
bnRVUkwpOwogICAgIHZvaWQgZ2V0UmVnaXN0cmF0aW9ucyh1aW50NjRfdCByZWdpc3RyYXRpb25N
YXRjaFJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
IHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6VVJMJiBjbGllbnRVUkwpOwogCiAgICAgdm9pZCBy
ZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYg
dG9wT3JpZ2luLCBXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJDbGllbnREYXRhJiYsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdv
cmtlcklkZW50aWZpZXI+Jik7CkBAIC05NCwxMiArOTYsMTggQEAgcHJpdmF0ZToKICAgICAKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiB2b2lkIHNlbmRUb0NvbnRleHRQcm9jZXNzKFUmJiBtZXNz
YWdlKTsKIAotICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOworICAgIHN0cnVjdCBSZWdp
c3RyYXRpb25SZWFkeVJlcXVlc3QgeworICAgICAgICBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEgdG9wT3JpZ2luOworICAgICAgICBXZWJDb3JlOjpVUkwgY2xpZW50VVJMOworICAgICAgICBX
VEY6OkZ1bmN0aW9uPHZvaWQoV2ViQ29yZTo6U1dTZXJ2ZXJSZWdpc3RyYXRpb24mKT4gY2FsbGJh
Y2s7CisgICAgfTsKIAorICAgIFBBTDo6U2Vzc2lvbklEIG1fc2Vzc2lvbklEOwogICAgIFJlZjxJ
UEM6OkNvbm5lY3Rpb24+IG1fY29udGVudENvbm5lY3Rpb247CiAgICAgUmVmUHRyPElQQzo6Q29u
bmVjdGlvbj4gbV9jb250ZXh0Q29ubmVjdGlvbjsKICAgICBIYXNoTWFwPFdlYkNvcmU6OkRvY3Vt
ZW50SWRlbnRpZmllciwgV2ViQ29yZTo6Q2xpZW50T3JpZ2luPiBtX2NsaWVudE9yaWdpbnM7Ci19
OyAvLyBjbGFzcyBXZWJTV1NlcnZlckNvbm5lY3Rpb24KKyAgICBWZWN0b3I8UmVnaXN0cmF0aW9u
UmVhZHlSZXF1ZXN0PiBtX3JlZ2lzdHJhdGlvblJlYWR5UmVxdWVzdHM7Cit9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rp
b24ubWVzc2FnZXMuaW4KaW5kZXggNmM3MzRjOGU0ZWM1OGQzYjEzNGMyYjZkNGMzZDlhNGZjNWY5
YzJkOS4uMzM3ZDVhMjVhZDBjZWRiMWNmOGQ4NTc4ZDcyYjc5N2Y3YTkzMjZlNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0zNiw2
ICszNiw3IEBAIG1lc3NhZ2VzIC0+IFdlYlNXU2VydmVyQ29ubmVjdGlvbiB7CiAgICAgRGlkUmVz
b2x2ZVJlZ2lzdHJhdGlvblByb21pc2UoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bktleSBrZXkpCiAKICAgICBNYXRjaFJlZ2lzdHJhdGlvbih1aW50NjRfdCBzZXJ2aWNlUmVnaXN0
cmF0aW9uTWF0Y2hSZXF1ZXN0SWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YSB0b3BPcmlnaW4sIFdlYkNvcmU6OlVSTCBjbGllbnRVUkwpCisgICAgV2hlblJlZ2lz
dHJhdGlvblJlYWR5KHVpbnQ2NF90IHNlcnZpY2VSZWdpc3RyYXRpb25NYXRjaFJlcXVlc3RJZGVu
dGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcE9yaWdpbiwgV2Vi
Q29yZTo6VVJMIGNsaWVudFVSTCkKICAgICBHZXRSZWdpc3RyYXRpb25zKHVpbnQ2NF90IHNlcnZp
Y2VSZWdpc3RyYXRpb25NYXRjaFJlcXVlc3RJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhIHRvcE9yaWdpbiwgV2ViQ29yZTo6VVJMIGNsaWVudFVSTCkKICAgICBS
ZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSB0b3BPcmlnaW4sIFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllciBpZGVudGlmaWVyLCBz
dHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERhdGEgZGF0YSwgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcj4gY29udHJvbGxpbmdTZXJ2aWNlV29y
a2VySWRlbnRpZmllcikKICAgICBVbnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChXZWJDb3Jl
OjpEb2N1bWVudElkZW50aWZpZXIgaWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCmluZGV4
IGJjOTFmMzY4NDA5OWMzZGEwNDM1ZDI4Y2Y3NWQyMGZkNzI0YWJiMzkuLjY4YTUwNzVlZjUyZDI4
ZDFmZDc5NTMyZWZjMTRjMTU0YWYyNGNlYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcApAQCAtMTUw
LDkgKzE1MCwyMyBAQCB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6bWF0Y2hSZWdpc3RyYXRp
b24oY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwgYwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgdWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIgPSArK21fcHJldmlvdXNNYXRj
aFJlZ2lzdHJhdGlvblRhc2tJZGVudGlmaWVyOwotICAgIG1fb25nb2luZ01hdGNoUmVnaXN0cmF0
aW9uVGFza3MuYWRkKHJlcXVlc3RJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7Ci0gICAg
c2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpNYXRjaFJlZ2lzdHJhdGlvbihy
ZXF1ZXN0SWRlbnRpZmllciwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4o
dG9wT3JpZ2luKSwgY2xpZW50VVJMKSk7CisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9ICsrbV9w
cmV2aW91c0NhbGxiYWNrSWRlbnRpZmllcjsKKyAgICBtX29uZ29pbmdNYXRjaFJlZ2lzdHJhdGlv
blRhc2tzLmFkZChjYWxsYmFja0lELCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgc2VuZChNZXNz
YWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpNYXRjaFJlZ2lzdHJhdGlvbihjYWxsYmFja0lE
LCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbih0b3BPcmlnaW4pLCBjbGll
bnRVUkwpKTsKK30KKwordm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OndoZW5SZWdpc3RyYXRp
b25SZWFkeShSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wT3JpZ2luLCBjb25zdCBVUkwmIGNsaWVu
dFVSTCwgV2hlblJlZ2lzdHJhdGlvblJlYWR5Q2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICB1
aW50NjRfdCBjYWxsYmFja0lEID0gKyttX3ByZXZpb3VzQ2FsbGJhY2tJZGVudGlmaWVyOworICAg
IG1fb25nb2luZ1JlZ2lzdHJhdGlvblJlYWR5VGFza3MuYWRkKGNhbGxiYWNrSUQsIFdURk1vdmUo
Y2FsbGJhY2spKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246Oldo
ZW5SZWdpc3RyYXRpb25SZWFkeShjYWxsYmFja0lELCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21T
ZWN1cml0eU9yaWdpbih0b3BPcmlnaW4pLCBjbGllbnRVUkwpKTsKK30KKwordm9pZCBXZWJTV0Ns
aWVudENvbm5lY3Rpb246OnJlZ2lzdHJhdGlvblJlYWR5KHVpbnQ2NF90IGNhbGxiYWNrSUQsIFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJiYgcmVnaXN0cmF0aW9uRGF0YSkK
K3sKKyAgICBBU1NFUlQocmVnaXN0cmF0aW9uRGF0YS5hY3RpdmVXb3JrZXIpOworICAgIGlmIChh
dXRvIGNhbGxiYWNrID0gbV9vbmdvaW5nUmVnaXN0cmF0aW9uUmVhZHlUYXNrcy50YWtlKGNhbGxi
YWNrSUQpKQorICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlZ2lzdHJhdGlvbkRhdGEpKTsKIH0K
IAogdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OmdldFJlZ2lzdHJhdGlvbnMoY29uc3QgU2Vj
dXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwsIEdldFJlZ2lzdHJh
dGlvbnNDYWxsYmFjayYmIGNhbGxiYWNrKQpAQCAtMTY0LDkgKzE3OCw5IEBAIHZvaWQgV2ViU1dD
bGllbnRDb25uZWN0aW9uOjpnZXRSZWdpc3RyYXRpb25zKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0
b3BPcmlnaW4sIGNvCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICB1aW50NjRfdCByZXF1
ZXN0SWRlbnRpZmllciA9ICsrbV9wcmV2aW91c0dldFJlZ2lzdHJhdGlvbnNUYXNrSWRlbnRpZmll
cjsKLSAgICBtX29uZ29pbmdHZXRSZWdpc3RyYXRpb25zVGFza3MuYWRkKHJlcXVlc3RJZGVudGlm
aWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJD
b25uZWN0aW9uOjpHZXRSZWdpc3RyYXRpb25zKHJlcXVlc3RJZGVudGlmaWVyLCBTZWN1cml0eU9y
aWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbih0b3BPcmlnaW4pLCBjbGllbnRVUkwpKTsKKyAg
ICB1aW50NjRfdCBjYWxsYmFja0lEID0gKyttX3ByZXZpb3VzQ2FsbGJhY2tJZGVudGlmaWVyOwor
ICAgIG1fb25nb2luZ0dldFJlZ2lzdHJhdGlvbnNUYXNrcy5hZGQoY2FsbGJhY2tJRCwgV1RGTW92
ZShjYWxsYmFjaykpOworICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6
R2V0UmVnaXN0cmF0aW9ucyhjYWxsYmFja0lELCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1
cml0eU9yaWdpbih0b3BPcmlnaW4pLCBjbGllbnRVUkwpKTsKIH0KIAogdm9pZCBXZWJTV0NsaWVu
dENvbm5lY3Rpb246OnN0YXJ0RmV0Y2goY29uc3QgUmVzb3VyY2VMb2FkZXImIGxvYWRlciwgdWlu
dDY0X3QgaWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKaW5kZXggNWI2ZTIwOWRjNGJlYTNlODE2
MzRmYWI4YjE3NWFjNDMyYjBhOGI4NS4uYWZmZGJkYjk0ZThjYjBhMDVlNDFmNjA3YjU2M2EzZTNj
MGMwMzA4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDbGllbnRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTgxLDYgKzgxLDggQEAgcHJpdmF0ZToKICAg
ICB2b2lkIG1hdGNoUmVnaXN0cmF0aW9uKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0
b3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlVSTCYgY2xpZW50VVJMLCBSZWdpc3RyYXRpb25DYWxs
YmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGRpZE1hdGNoUmVnaXN0cmF0aW9uKHVpbnQ2NF90IG1h
dGNoUmVxdWVzdElkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbkRhdGE+JiYpOwogICAgIHZvaWQgZGlkR2V0UmVnaXN0cmF0aW9ucyh1aW50
NjRfdCBtYXRjaFJlcXVlc3RJZGVudGlmaWVyLCBWZWN0b3I8V2ViQ29yZTo6U2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbkRhdGE+JiYpOworICAgIHZvaWQgd2hlblJlZ2lzdHJhdGlvblJlYWR5KFJl
ZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlVS
TCYgY2xpZW50VVJMLCBXaGVuUmVnaXN0cmF0aW9uUmVhZHlDYWxsYmFjayYmKSBmaW5hbDsKKyAg
ICB2b2lkIHJlZ2lzdHJhdGlvblJlYWR5KHVpbnQ2NF90IGNhbGxiYWNrSUQsIFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJiYpOwogCiAgICAgdm9pZCBnZXRSZWdpc3RyYXRp
b25zKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIGNvbnN0IFdlYkNv
cmU6OlVSTCYgY2xpZW50VVJMLCBHZXRSZWdpc3RyYXRpb25zQ2FsbGJhY2smJikgZmluYWw7CiAK
QEAgLTEwMCwxMSArMTAyLDEwIEBAIHByaXZhdGU6CiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4g
bV9jb25uZWN0aW9uOwogICAgIFVuaXF1ZVJlZjxXZWJTV09yaWdpblRhYmxlPiBtX3N3T3JpZ2lu
VGFibGU7CiAKLSAgICB1aW50NjRfdCBtX3ByZXZpb3VzTWF0Y2hSZWdpc3RyYXRpb25UYXNrSWRl
bnRpZmllciB7IDAgfTsKKyAgICB1aW50NjRfdCBtX3ByZXZpb3VzQ2FsbGJhY2tJZGVudGlmaWVy
IHsgMCB9OwogICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZ2lzdHJhdGlvbkNhbGxiYWNrPiBtX29u
Z29pbmdNYXRjaFJlZ2lzdHJhdGlvblRhc2tzOwotCi0gICAgdWludDY0X3QgbV9wcmV2aW91c0dl
dFJlZ2lzdHJhdGlvbnNUYXNrSWRlbnRpZmllciB7IDAgfTsKICAgICBIYXNoTWFwPHVpbnQ2NF90
LCBHZXRSZWdpc3RyYXRpb25zQ2FsbGJhY2s+IG1fb25nb2luZ0dldFJlZ2lzdHJhdGlvbnNUYXNr
czsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBXaGVuUmVnaXN0cmF0aW9uUmVhZHlDYWxsYmFjaz4g
bV9vbmdvaW5nUmVnaXN0cmF0aW9uUmVhZHlUYXNrczsKIAogfTsgLy8gY2xhc3MgV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCBh
MzMwODFmMDQ1NTllOTkwMjA3NDY2NGJiZTNjZDlmZDY5MjEwMDRhLi4xMDIxN2UyYjRlNDM0YTA1
YjE3NTQ3ZGUwMmZkZmY2ODQ5NDg0NDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluCkBAIC0zOSw2ICszOSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlNXQ2xpZW50Q29ubmVjdGlv
biB7CiAKICAgICBEaWRNYXRjaFJlZ2lzdHJhdGlvbih1aW50NjRfdCBtYXRjaFJlcXVlc3RJZGVu
dGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25E
YXRhPiBkYXRhKQogICAgIERpZEdldFJlZ2lzdHJhdGlvbnModWludDY0X3QgbWF0Y2hSZXF1ZXN0
SWRlbnRpZmllciwgVmVjdG9yPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRh
PiByZWdpc3RyYXRpb25zKQorICAgIFJlZ2lzdHJhdGlvblJlYWR5KHVpbnQ2NF90IHJlZ2lzdHJh
dGlvblJlYWR5UmVxdWVzdElkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uRGF0YSBkYXRhKQogfQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09S
S0VSKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggYjg4ZWZiMjAyYzVkNTFiYzU5
NjliY2Y0YjBkOWQyY2IzYWE1NjExZS4uNTI1MmQyY2MwYzA4NDNiMjk0Nzg3MTQ0N2RiNDViYWI4
MjI5NzU4NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTctMTItMDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgU2VydmljZVdvcmtlckNvbnRhaW5lci5wcm90b3R5cGUucmVhZHkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDM4MworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlYmFzZWxpbmUg
V1BUIHRlc3QgY292ZXJhZ2UgY29udGFpbmVyLnJlYWR5IG5vdyB0aGF0IGl0IGlzIHBhc3Npbmcu
CisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL3JlYWR5Lmh0dHBzLWV4cGVjdGVkLnR4dDoKKwogMjAxNy0xMi0wNCAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFN1cHBvcnQgY29udGFpbmVyLmdldFJl
Z2lzdHJhdGlvbigpIC8gZ2V0UmVnaXN0cmF0aW9ucygpIGluc2lkZSBzZXJ2aWNlIHdvcmtlcnMK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlYWR5Lmh0dHBzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3JlYWR5Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCAwNDg5NDE3
ZGY3MjI4OTYxZmJkNDIyZGUwNGNmMGYyNjczNTNiNTJkLi5mNTg4NGMyNGYyM2M2NDhkZjA0NzJh
ODcxNTA4MTRmNzA1MmFiODYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9yZWFkeS5o
dHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVhZHkuaHR0cHMtZXhw
ZWN0ZWQudHh0CkBAIC0xLDE0ICsxLDExIEBACi1DT05TT0xFIE1FU1NBR0U6IFVuaGFuZGxlZCBQ
cm9taXNlIFJlamVjdGlvbjogVW5rbm93bkVycm9yOiBzZXJ2aWNlV29ya2VyLnJlYWR5KCkgaXMg
bm90IHlldCBpbXBsZW1lbnRlZAotCi1IYXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IHNl
cnZpY2VXb3JrZXIucmVhZHkoKSBpcyBub3QgeWV0IGltcGxlbWVudGVkCiAKIFBBU1MgcmVhZHkg
cmV0dXJucyB0aGUgc2FtZSBQcm9taXNlIG9iamVjdCAKIFBBU1MgcmVhZHkgcmV0dXJucyBhIFBy
b21pc2Ugb2JqZWN0IGluIHRoZSBjb250ZXh0IG9mIHRoZSByZWxhdGVkIGRvY3VtZW50IAotRkFJ
TCByZWFkeSBvbiBhIGNvbnRyb2xsZWQgZG9jdW1lbnQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQg
cmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVW5rbm93bkVycm9yOiBzZXJ2aWNlV29ya2Vy
LnJlYWR5KCkgaXMgbm90IHlldCBpbXBsZW1lbnRlZCIKLUZBSUwgcmVhZHkgb24gYSBwb3RlbnRp
YWwgY29udHJvbGxlZCBkb2N1bWVudCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogb2JqZWN0ICJVbmtub3duRXJyb3I6IHNlcnZpY2VXb3JrZXIucmVhZHkoKSBp
cyBub3QgeWV0IGltcGxlbWVudGVkIgotRkFJTCByZWFkeSBvbiBhbiBpZnJhbWUgd2hvc2UgcGFy
ZW50IHJlZ2lzdGVycyBhIG5ldyBzZXJ2aWNlIHdvcmtlciBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJVbmtub3duRXJyb3I6IHNlcnZpY2VXb3Jr
ZXIucmVhZHkoKSBpcyBub3QgeWV0IGltcGxlbWVudGVkIgotRkFJTCByZWFkeSBvbiBhbiBpZnJh
bWUgdGhhdCBpbnN0YWxscyBhIG5ldyBzZXJ2aWNlIHdvcmtlciBwcm9taXNlX3Rlc3Q6IFVuaGFu
ZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJVbmtub3duRXJyb3I6IHNlcnZpY2VX
b3JrZXIucmVhZHkoKSBpcyBub3QgeWV0IGltcGxlbWVudGVkIgotRkFJTCByZWFkeSBhZnRlciBh
IGxvbmdlciBtYXRjaGVkIHJlZ2lzdHJhdGlvbiByZWdpc3RlcmVkIHByb21pc2VfdGVzdDogVW5o
YW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlVua25vd25FcnJvcjogc2Vydmlj
ZVdvcmtlci5yZWFkeSgpIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQiCi1GQUlMIGFjY2VzcyByZWFk
eSBhZnRlciBpdCBoYXMgYmVlbiByZXNvbHZlZCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWpl
Y3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJVbmtub3duRXJyb3I6IHNlcnZpY2VXb3JrZXIucmVh
ZHkoKSBpcyBub3QgeWV0IGltcGxlbWVudGVkIgotRkFJTCBhY2Nlc3MgcmVhZHkgb24gdW5pbnN0
YWxsaW5nIHJlZ2lzdHJhdGlvbiB0aGF0IGlzIHJlc3VycmVjdGVkIHByb21pc2VfdGVzdDogVW5o
YW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlVua25vd25FcnJvcjogc2Vydmlj
ZVdvcmtlci5yZWFkeSgpIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQiCitQQVNTIHJlYWR5IG9uIGEg
Y29udHJvbGxlZCBkb2N1bWVudCAKK1BBU1MgcmVhZHkgb24gYSBwb3RlbnRpYWwgY29udHJvbGxl
ZCBkb2N1bWVudCAKK1BBU1MgcmVhZHkgb24gYW4gaWZyYW1lIHdob3NlIHBhcmVudCByZWdpc3Rl
cnMgYSBuZXcgc2VydmljZSB3b3JrZXIgCitQQVNTIHJlYWR5IG9uIGFuIGlmcmFtZSB0aGF0IGlu
c3RhbGxzIGEgbmV3IHNlcnZpY2Ugd29ya2VyIAorUEFTUyByZWFkeSBhZnRlciBhIGxvbmdlciBt
YXRjaGVkIHJlZ2lzdHJhdGlvbiByZWdpc3RlcmVkIAorUEFTUyBhY2Nlc3MgcmVhZHkgYWZ0ZXIg
aXQgaGFzIGJlZW4gcmVzb2x2ZWQgCitQQVNTIGFjY2VzcyByZWFkeSBvbiB1bmluc3RhbGxpbmcg
cmVnaXN0cmF0aW9uIHRoYXQgaXMgcmVzdXJyZWN0ZWQgCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328480</attachid>
            <date>2017-12-05 12:09:50 -0800</date>
            <delta_ts>2017-12-05 12:24:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180383-20171205120949.patch</filename>
            <type>text/plain</type>
            <size>27197</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzFjYjAzODM2ZmY0MmY3
ZGRkYzIyMDM3ZjJjZGU2MjlkODc2YzRkMC4uZTFhYmYyZWU3M2M1NzgwN2QxNDUxOTEzZTAzZTBi
N2JkOTBmOWFmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE3LTEyLTA1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIFNl
cnZpY2VXb3JrZXJDb250YWluZXIucHJvdG90eXBlLnJlYWR5CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODAzODMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgU2VydmljZVdvcmtl
ckNvbnRhaW5lci5wcm90b3R5cGUucmVhZHk6CisgICAgICAgIC0gaHR0cHM6Ly93M2MuZ2l0aHVi
LmlvL1NlcnZpY2VXb3JrZXIvI25hdmlnYXRvci1zZXJ2aWNlLXdvcmtlci1yZWFkeQorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cywgcmViYXNlbGluZWQgZXhpc3RpbmcgdGVzdC4KKworICAgICAgICAq
IHdvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uaDoKKyAgICAgICAgKiB3b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpTZXJ2aWNlV29ya2VyQ29udGFpbmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OnJlYWR5KToKKyAgICAgICAgKiB3b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oOgorICAgICAgICAqIHdvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5Lmg6CisgICAgICAgICogd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZl
cjo6cmVzb2x2ZVJlZ2lzdHJhdGlvblJlYWR5UmVxdWVzdHMpOgorICAgICAgICAqIHdvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVy
UmVnaXN0cmF0aW9uOjphY3RpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclJlZ2lz
dHJhdGlvbjo6c2V0SXNVbmluc3RhbGxpbmcpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaDoKKwogMjAxNy0xMi0wNSAgU2ltb24gRnJhc2Vy
ICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgd2Via2l0R2V0SW1h
Z2VEYXRhSEQgYW5kIHdlYmtpdFB1dEltYWdlRGF0YUhEIGZyb20gY2FudmFzIEFQSQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpp
bmRleCA4M2IwMGEyNzkzYzQxZTk5ZmMzODdmZWNhNzBmMmUzMDNmY2Y2NzliLi5jNTRiYzRjNzZh
NTQ1YjZlODBkMTg4NmIzYWJlNWI5NjA3MzJmN2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBA
CisyMDE3LTEyLTA1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAg
QWRkIHN1cHBvcnQgZm9yIFNlcnZpY2VXb3JrZXJDb250YWluZXIucHJvdG90eXBlLnJlYWR5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODAzODMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFN0b3JhZ2VQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjp3aGVuUmVnaXN0cmF0aW9uUmVhZHkpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OnJlc29sdmVSZWdpc3RyYXRp
b25SZWFkeVJlcXVlc3RzKToKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFN0b3JhZ2VQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTV0NsaWVudENvbm5lY3Rpb246Om1hdGNoUmVnaXN0cmF0aW9uKToKKyAgICAgICAg
KFdlYktpdDo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjp3aGVuUmVnaXN0cmF0aW9uUmVhZHkpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJTV0NsaWVudENvbm5lY3Rpb246OnJlZ2lzdHJhdGlvblJlYWR5
KToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpnZXRSZWdpc3RyYXRp
b25zKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9u
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5t
ZXNzYWdlcy5pbjoKKwogMjAxNy0xMi0wNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgSW1wbGVtZW50IHNldHRpbmcgb2Ygc2VydmljZSB3b3JrZXIgdG8gY2xp
ZW50IGluIFNXU2VydmVyIHdpdGhvdXQgZ29pbmcgdG8gV2ViUHJvY2VzcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IGU1
OGI3ZTYyY2RhMGVmNGEyY2U1YTg4MWIzNWVjNzAxYzMxOTExZTYuLjQ3MTQyMDU5YTE1YmMwMDZh
ZWQ4MWQwYmJmM2VlNGM0ZmYwZjE5NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTYyLDYgKzYyLDkgQEAgcHVibGlj
OgogICAgIHVzaW5nIEdldFJlZ2lzdHJhdGlvbnNDYWxsYmFjayA9IFdURjo6Q29tcGxldGlvbkhh
bmRsZXI8dm9pZChWZWN0b3I8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE+JiYpPjsKICAg
ICB2aXJ0dWFsIHZvaWQgZ2V0UmVnaXN0cmF0aW9ucyhjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9w
T3JpZ2luLCBjb25zdCBVUkwmIGNsaWVudFVSTCwgR2V0UmVnaXN0cmF0aW9uc0NhbGxiYWNrJiYp
ID0gMDsKIAorICAgIHVzaW5nIFdoZW5SZWdpc3RyYXRpb25SZWFkeUNhbGxiYWNrID0gV1RGOjpG
dW5jdGlvbjx2b2lkKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJiYpPjsKKyAgICB2aXJ0
dWFsIHZvaWQgd2hlblJlZ2lzdHJhdGlvblJlYWR5KGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BP
cmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMLCBXaGVuUmVnaXN0cmF0aW9uUmVhZHlDYWxsYmFj
ayYmKSA9IDA7CisKICAgICB2aXJ0dWFsIHZvaWQgYWRkU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bkluU2VydmVyKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIHJlbW92ZVNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JblNlcnZlcihTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcikgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAK
aW5kZXggODVkYWYyZTI5Y2IyNjM0MzAzMGI1NjRhNDUxMzBhODExMWMzZTY2NC4uY2MyNGQzMWU1
MDUwOGQwZTlmYTZiYWE2MmNkMmU1ZGQyZTA4OTNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcApAQCAt
NTcsOCArNTcsNiBAQCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpTZXJ2aWNlV29ya2VyQ29udGFp
bmVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsCiAgICAgLCBtX25hdmlnYXRvcihu
YXZpZ2F0b3IpCiB7CiAgICAgc3VzcGVuZElmTmVlZGVkKCk7Ci0KLSAgICBtX3JlYWR5UHJvbWlz
ZS5yZWplY3QoRXhjZXB0aW9uIHsgVW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwoInNlcnZpY2VX
b3JrZXIucmVhZHkoKSBpcyBub3QgeWV0IGltcGxlbWVudGVkIikgfSk7CiB9CiAKIFNlcnZpY2VX
b3JrZXJDb250YWluZXI6On5TZXJ2aWNlV29ya2VyQ29udGFpbmVyKCkKQEAgLTc4LDYgKzc2LDMx
IEBAIHZvaWQgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6ZGVyZWZFdmVudFRhcmdldCgpCiAgICAg
bV9uYXZpZ2F0b3IuZGVyZWYoKTsKIH0KIAorYXV0byBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpy
ZWFkeSgpIC0+IFJlYWR5UHJvbWlzZSYKK3sKKyAgICBpZiAoIW1fcmVhZHlQcm9taXNlKSB7Cisg
ICAgICAgIG1fcmVhZHlQcm9taXNlID0gc3RkOjptYWtlX3VuaXF1ZTxSZWFkeVByb21pc2U+KCk7
CisKKyAgICAgICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAg
ICAgICAgaWYgKCFjb250ZXh0KQorICAgICAgICAgICAgcmV0dXJuICptX3JlYWR5UHJvbWlzZTsK
KworICAgICAgICBhdXRvIGNvbnRleHRJZGVudGlmaWVyID0gdGhpcy0+Y29udGV4dElkZW50aWZp
ZXIoKTsKKyAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgY29ubmVjdGlvbiA9IG1ha2VS
ZWYoZW5zdXJlU1dDbGllbnRDb25uZWN0aW9uKCkpLCB0b3BPcmlnaW4gPSBjb250ZXh0LT50b3BP
cmlnaW4oKS5pc29sYXRlZENvcHkoKSwgY2xpZW50VVJMID0gY29udGV4dC0+dXJsKCkuaXNvbGF0
ZWRDb3B5KCksIGNvbnRleHRJZGVudGlmaWVyXSgpIG11dGFibGUgeworICAgICAgICAgICAgY29u
bmVjdGlvbi0+d2hlblJlZ2lzdHJhdGlvblJlYWR5KHRvcE9yaWdpbiwgY2xpZW50VVJMLCBbdGhp
cywgY29udGV4dElkZW50aWZpZXJdKGF1dG8mJiByZWdpc3RyYXRpb25EYXRhKSB7CisgICAgICAg
ICAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cG9zdFRhc2tUbyhjb250ZXh0SWRlbnRp
ZmllciwgW3RoaXMsIHJlZ2lzdHJhdGlvbkRhdGEgPSBjcm9zc1RocmVhZENvcHkocmVnaXN0cmF0
aW9uRGF0YSldKGF1dG8mKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1faXNT
dG9wcGVkKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICAg
ICAgICAgIGF1dG8gcmVnaXN0cmF0aW9uID0gU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6Z2V0
T3JDcmVhdGUoKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgKnRoaXMsIFdURk1vdmUocmVnaXN0
cmF0aW9uRGF0YSkpOworICAgICAgICAgICAgICAgICAgICBtX3JlYWR5UHJvbWlzZS0+cmVzb2x2
ZShXVEZNb3ZlKHJlZ2lzdHJhdGlvbikpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKyAgICByZXR1cm4gKm1fcmVhZHlQcm9taXNlOwor
fQorCiBTZXJ2aWNlV29ya2VyKiBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpjb250cm9sbGVyKCkg
Y29uc3QKIHsKICAgICBhdXRvKiBjb250ZXh0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJD
b250YWluZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
Q29udGFpbmVyLmgKaW5kZXggMTQxNjNmOTc0Mzg5MTc1ODQ5ZDYyOWUxNzkyZjFlOWFiOTVkZjUw
MS4uN2Y3Y2U4MjYyODlmM2JkOWFiYjUyZDc2ZDc0OGQ4MzVjMGMxYTY2YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5l
ci5oCkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICBTZXJ2aWNlV29ya2VyKiBjb250cm9s
bGVyKCkgY29uc3Q7CiAKICAgICB1c2luZyBSZWFkeVByb21pc2UgPSBET01Qcm9taXNlUHJveHk8
SURMSW50ZXJmYWNlPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24+PjsKLSAgICBSZWFkeVByb21p
c2UmIHJlYWR5KCkgeyByZXR1cm4gbV9yZWFkeVByb21pc2U7IH0KKyAgICBSZWFkeVByb21pc2Um
IHJlYWR5KCk7CiAKICAgICB1c2luZyBSZWdpc3RyYXRpb25PcHRpb25zID0gU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbk9wdGlvbnM7CiAgICAgdm9pZCBhZGRSZWdpc3RyYXRpb24oY29uc3QgU3Ry
aW5nJiBzY3JpcHRVUkwsIGNvbnN0IFJlZ2lzdHJhdGlvbk9wdGlvbnMmLCBSZWY8RGVmZXJyZWRQ
cm9taXNlPiYmKTsKQEAgLTExMCw3ICsxMTAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGVyZWZF
dmVudFRhcmdldCgpIGZpbmFsOwogICAgIHZvaWQgc3RvcCgpIGZpbmFsOwogCi0gICAgUmVhZHlQ
cm9taXNlIG1fcmVhZHlQcm9taXNlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxSZWFkeVByb21pc2U+
IG1fcmVhZHlQcm9taXNlOwogCiAgICAgTmF2aWdhdG9yQmFzZSYgbV9uYXZpZ2F0b3I7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uS2V5LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbktleS5oCmluZGV4IDQyOTgyNGYyZWYwNzJhMTE4ZDcxMjliYWU1YTdi
MTVkODAwNTNmODAuLmNkM2M1YmVlZTNjMDg5OWYwMWEzMThmM2JlM2VjMTJmODhhNTRlMjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uS2V5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25LZXkuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAg
dW5zaWduZWQgaGFzaCgpIGNvbnN0OwogCiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmKSBjb25zdDsKLSAgICBib29sIGlzTWF0Y2hpbmcoY29u
c3QgU2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMKSBj
b25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzTWF0Y2hpbmcoY29uc3QgU2VjdXJpdHlP
cmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMKSBjb25zdDsKICAgICBi
b29sIG9yaWdpbklzTWF0Y2hpbmcoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4s
IGNvbnN0IFVSTCYgY2xpZW50VVJMKSBjb25zdDsKICAgICBzaXplX3Qgc2NvcGVMZW5ndGgoKSBj
b25zdCB7IHJldHVybiBtX3Njb3BlLnN0cmluZygpLmxlbmd0aCgpOyB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKaW5kZXggMmJj
YjliNWEwZDI3ZmQwNjBkNWZhZWFlYmJkZWFhZDM3MjNjYzJiMy4uMjk1OWM2MjczZWQ1MDJkZjc5
MmZiMDI5ZDliYTMxZjQ0MmY1YjZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKQEAgLTY0NCw2ICs2NDQsMzQgQEAgdm9pZCBT
V1NlcnZlcjo6dW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgQ2xpZW50T3JpZ2lu
JiBjbGllbnRPcmlnaW4sIFMKICAgICBtX2NsaWVudFRvQ29udHJvbGxpbmdXb3JrZXIucmVtb3Zl
KHdvcmtlckl0ZXJhdG9yKTsKIH0KIAordm9pZCBTV1NlcnZlcjo6cmVzb2x2ZVJlZ2lzdHJhdGlv
blJlYWR5UmVxdWVzdHMoU1dTZXJ2ZXJSZWdpc3RyYXRpb24mIHJlZ2lzdHJhdGlvbikKK3sKKyAg
ICBmb3IgKGF1dG8qIGNvbm5lY3Rpb24gOiBtX2Nvbm5lY3Rpb25zLnZhbHVlcygpKQorICAgICAg
ICBjb25uZWN0aW9uLT5yZXNvbHZlUmVnaXN0cmF0aW9uUmVhZHlSZXF1ZXN0cyhyZWdpc3RyYXRp
b24pOworfQorCit2b2lkIFNXU2VydmVyOjpDb25uZWN0aW9uOjp3aGVuUmVnaXN0cmF0aW9uUmVh
ZHkodWludDY0X3QgcmVnaXN0cmF0aW9uUmVhZHlSZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgU2Vj
dXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMKQoreworICAg
IGlmIChhdXRvKiByZWdpc3RyYXRpb24gPSBkb1JlZ2lzdHJhdGlvbk1hdGNoaW5nKHRvcE9yaWdp
biwgY2xpZW50VVJMKSkgeworICAgICAgICBpZiAocmVnaXN0cmF0aW9uLT5hY3RpdmVXb3JrZXIo
KSkgeworICAgICAgICAgICAgcmVnaXN0cmF0aW9uUmVhZHkocmVnaXN0cmF0aW9uUmVhZHlSZXF1
ZXN0SWRlbnRpZmllciwgcmVnaXN0cmF0aW9uLT5kYXRhKCkpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisgICAgfQorICAgIG1fcmVnaXN0cmF0aW9uUmVhZHlSZXF1ZXN0cy5hcHBl
bmQoeyB0b3BPcmlnaW4sIGNsaWVudFVSTCwgcmVnaXN0cmF0aW9uUmVhZHlSZXF1ZXN0SWRlbnRp
ZmllciB9KTsKK30KKwordm9pZCBTV1NlcnZlcjo6Q29ubmVjdGlvbjo6cmVzb2x2ZVJlZ2lzdHJh
dGlvblJlYWR5UmVxdWVzdHMoU1dTZXJ2ZXJSZWdpc3RyYXRpb24mIHJlZ2lzdHJhdGlvbikKK3sK
KyAgICBtX3JlZ2lzdHJhdGlvblJlYWR5UmVxdWVzdHMucmVtb3ZlQWxsTWF0Y2hpbmcoWyZdKGF1
dG8mIHJlcXVlc3QpIHsKKyAgICAgICAgaWYgKCFyZWdpc3RyYXRpb24ua2V5KCkuaXNNYXRjaGlu
ZyhyZXF1ZXN0LnRvcE9yaWdpbiwgcmVxdWVzdC5jbGllbnRVUkwpKQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgICAgIHJlZ2lzdHJhdGlvblJlYWR5KHJlcXVlc3QuaWRlbnRpZmll
ciwgcmVnaXN0cmF0aW9uLmRhdGEoKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0pOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9X
T1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2Vy
dmVyLmgKaW5kZXggNTZhYzMzYWZhOGNlOGUzZTExZmU3ZjRjNjQxNTI1ZjQ5NGI1MzViMC4uOGYz
ODAxMGU4MjFlODdlYzY4ZjRlOThhNjI1Y2U2MjYwNTIwZTJiYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaApAQCAtNzUsMTIgKzc1LDE0
IEBAIHB1YmxpYzoKIAogICAgICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZFJlc29sdmVSZWdp
c3RyYXRpb25Qcm9taXNlKGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmKTsKICAg
ICAgICAgY29uc3QgU1dTZXJ2ZXJSZWdpc3RyYXRpb24qIGRvUmVnaXN0cmF0aW9uTWF0Y2hpbmco
Y29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJM
KSBjb25zdCB7IHJldHVybiBtX3NlcnZlci5kb1JlZ2lzdHJhdGlvbk1hdGNoaW5nKHRvcE9yaWdp
biwgY2xpZW50VVJMKTsgfQorICAgICAgICB2b2lkIHJlc29sdmVSZWdpc3RyYXRpb25SZWFkeVJl
cXVlc3RzKFNXU2VydmVyUmVnaXN0cmF0aW9uJik7CiAKICAgICAgICAgLy8gTWVzc2FnZXMgdG8g
dGhlIGNsaWVudCBXZWJQcm9jZXNzCiAgICAgICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVSZWdpc3Ry
YXRpb25TdGF0ZUluQ2xpZW50KFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uU3RhdGUsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2Vydmlj
ZVdvcmtlckRhdGE+JikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlV29ya2VyU3Rh
dGVJbkNsaWVudChTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU2VydmljZVdvcmtlclN0YXRlKSA9
IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBmaXJlVXBkYXRlRm91bmRFdmVudChTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgbm90
aWZ5Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZShjb25zdCBIYXNoU2V0PERvY3VtZW50SWRlbnRp
Zmllcj4mIGNvbnRleHRJZGVudGlmaWVycywgY29uc3QgU2VydmljZVdvcmtlckRhdGEmIG5ld0Nv
bnRyb2xsZXIpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHJlZ2lzdHJhdGlvblJlYWR5KHVp
bnQ2NF90IHJlZ2lzdHJhdGlvblJlYWR5UmVxdWVzdElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25EYXRhJiYpID0gMDsKIAogICAgIHByb3RlY3RlZDoKICAgICAgICAgV0VCQ09S
RV9FWFBPUlQgZXhwbGljaXQgQ29ubmVjdGlvbihTV1NlcnZlciYpOwpAQCAtOTEsNiArOTMsNyBA
QCBwdWJsaWM6CiAgICAgICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWRkU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbkluU2VydmVyKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKTsK
ICAgICAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uSW5TZXJ2ZXIoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOwogICAgICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN5bmNUZXJtaW5hdGVXb3JrZXIoU2VydmljZVdvcmtlcklk
ZW50aWZpZXIpOworICAgICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdoZW5SZWdpc3RyYXRpb25S
ZWFkeSh1aW50NjRfdCByZWdpc3RyYXRpb25SZWFkeVJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBT
ZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwpOwogCiAg
ICAgcHJpdmF0ZToKICAgICAgICAgLy8gTWVzc2FnZXMgdG8gdGhlIGNsaWVudCBXZWJQcm9jZXNz
CkBAIC05OSw4ICsxMDIsMTUgQEAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVzb2x2
ZVVucmVnaXN0cmF0aW9uSm9iSW5DbGllbnQoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVu
dGlmaWVyJiwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIGJvb2wgcmVnaXN0
cmF0aW9uUmVzdWx0KSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzdGFydFNjcmlwdEZldGNo
SW5DbGllbnQoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJikgPSAwOwogCisg
ICAgICAgIHN0cnVjdCBSZWdpc3RyYXRpb25SZWFkeVJlcXVlc3QgeworICAgICAgICAgICAgU2Vj
dXJpdHlPcmlnaW5EYXRhIHRvcE9yaWdpbjsKKyAgICAgICAgICAgIFVSTCBjbGllbnRVUkw7Cisg
ICAgICAgICAgICB1aW50NjRfdCBpZGVudGlmaWVyOworICAgICAgICB9OworCiAgICAgICAgIFNX
U2VydmVyJiBtX3NlcnZlcjsKICAgICAgICAgSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CisgICAg
ICAgIFZlY3RvcjxSZWdpc3RyYXRpb25SZWFkeVJlcXVlc3Q+IG1fcmVnaXN0cmF0aW9uUmVhZHlS
ZXF1ZXN0czsKICAgICB9OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgU1dTZXJ2ZXIo
VW5pcXVlUmVmPFNXT3JpZ2luU3RvcmU+JiYsIGNvbnN0IFN0cmluZyYgcmVnaXN0cmF0aW9uRGF0
YWJhc2VEaXJlY3RvcnkpOwpAQCAtMTUxLDYgKzE2MSw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JF
X0VYUE9SVCBib29sIGludm9rZVJ1blNlcnZpY2VXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZp
ZXIpOwogCiAgICAgdm9pZCBzZXRDbGllbnRBY3RpdmVXb3JrZXIoU2VydmljZVdvcmtlckNsaWVu
dElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlc29sdmVS
ZWdpc3RyYXRpb25SZWFkeVJlcXVlc3RzKFNXU2VydmVyUmVnaXN0cmF0aW9uJik7CiAKIHByaXZh
dGU6CiAgICAgdm9pZCByZWdpc3RlckNvbm5lY3Rpb24oQ29ubmVjdGlvbiYpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJh
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVy
UmVnaXN0cmF0aW9uLmNwcAppbmRleCA4ZWE2ZmNlZmZjN2E2NzQ1NWRhYjUyMDE5ZTA1MjQ2OTkx
OWVjM2VjLi5mNTI3NzBmYzFjMWViOTNiNjZjOTY3ZjVmNmZlZTcwZTI4NTBkMTg2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0
cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NX
U2VydmVyUmVnaXN0cmF0aW9uLmNwcApAQCAtMjYxLDYgKzI2MSw5IEBAIHZvaWQgU1dTZXJ2ZXJS
ZWdpc3RyYXRpb246OmFjdGl2YXRlKCkKICAgICB1cGRhdGVXb3JrZXJTdGF0ZSgqYWN0aXZlV29y
a2VyKCksIFNlcnZpY2VXb3JrZXJTdGF0ZTo6QWN0aXZhdGluZyk7CiAgICAgLy8gRklYTUU6IEZv
ciBlYWNoIHNlcnZpY2Ugd29ya2VyIGNsaWVudCB3aG9zZSBjcmVhdGlvbiBVUkwgbWF0Y2hlcyBy
ZWdpc3RyYXRpb24ncyBzY29wZSB1cmwuLi4KIAorICAgIC8vIFRoZSByZWdpc3RyYXRpb24gbm93
IGhhcyBhbiBhY3RpdmUgd29ya2VyIHNvIHdlIG5lZWQgdG8gY2hlY2sgaWYgdGhlcmUgYXJlIGFu
eSByZWFkeSBwcm9taXNlcyB0aGF0IHdlcmUgd2FpdGluZyBmb3IgdGhpcy4KKyAgICBtX3NlcnZl
ci5yZXNvbHZlUmVnaXN0cmF0aW9uUmVhZHlSZXF1ZXN0cygqdGhpcyk7CisKICAgICAvLyBGb3Ig
ZWFjaCBzZXJ2aWNlIHdvcmtlciBjbGllbnQgd2hvIGlzIHVzaW5nIHJlZ2lzdHJhdGlvbjoKICAg
ICAvLyAtIFNldCBjbGllbnQncyBhY3RpdmUgd29ya2VyIHRvIHJlZ2lzdHJhdGlvbidzIGFjdGl2
ZSB3b3JrZXIuCiAgICAgZm9yIChhdXRvIGtleVZhbHVlIDogbV9jbGllbnRzVXNpbmdSZWdpc3Ry
YXRpb24pIHsKQEAgLTI5Nyw2ICszMDAsMTkgQEAgdm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6
aGFuZGxlQ2xpZW50VW5sb2FkKCkKICAgICB0cnlBY3RpdmF0ZSgpOwogfQogCit2b2lkIFNXU2Vy
dmVyUmVnaXN0cmF0aW9uOjpzZXRJc1VuaW5zdGFsbGluZyhib29sIHZhbHVlKQoreworICAgIGlm
IChtX3VuaW5zdGFsbGluZyA9PSB2YWx1ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV91bmlu
c3RhbGxpbmcgPSB2YWx1ZTsKKworICAgIGlmICghbV91bmluc3RhbGxpbmcgJiYgYWN0aXZlV29y
a2VyKCkpIHsKKyAgICAgICAgLy8gUmVnaXN0cmF0aW9uIHdpdGggYWN0aXZlIHdvcmtlciBoYXMg
YmVlbiByZXN1cnJlY3RlZCwgd2UgbmVlZCB0byBjaGVjayBpZiBhbnkgcmVhZHkgcHJvbWlzZXMg
d2VyZSB3YWl0aW5nIGZvciB0aGlzLgorICAgICAgICBtX3NlcnZlci5yZXNvbHZlUmVnaXN0cmF0
aW9uUmVhZHlSZXF1ZXN0cygqdGhpcyk7CisgICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0
aW9uLmgKaW5kZXggMTBlNzBhZTNlMThmZmQ4Y2FiYmI3NGMzNGJkMzI4YzRkYWNjNDAyZi4uNzYy
NzQ5YTllMWQ3MmM4ZDc5MmIyODc1YmU4MTdhZWU2NmM1NGY0ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3Ry
YXRpb24uaApAQCAtNTYsNyArNTYsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEgZGF0YSgpIGNvbnN0OwogCiAgICAgYm9vbCBpc1Vu
aW5zdGFsbGluZygpIGNvbnN0IHsgcmV0dXJuIG1fdW5pbnN0YWxsaW5nOyB9Ci0gICAgdm9pZCBz
ZXRJc1VuaW5zdGFsbGluZyhib29sIHZhbHVlKSB7IG1fdW5pbnN0YWxsaW5nID0gdmFsdWU7IH0K
KyAgICB2b2lkIHNldElzVW5pbnN0YWxsaW5nKGJvb2wpOwogCiAgICAgdm9pZCBzZXRMYXN0VXBk
YXRlVGltZShkb3VibGUgdGltZSkgeyBtX2xhc3RVcGRhdGVUaW1lID0gdGltZTsgfQogICAgIFNl
cnZpY2VXb3JrZXJVcGRhdGVWaWFDYWNoZSB1cGRhdGVWaWFDYWNoZSgpIGNvbnN0IHsgcmV0dXJu
IG1fdXBkYXRlVmlhQ2FjaGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVBy
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dl
YktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5j
cHAKaW5kZXggZjIyMGZhNGI1ZDhhZjFkMmM0NGViMTRmYTY1YWJmYTEzM2QyMjcyOS4uNDM0MGI3
Yjc1NGE5YmM3NjNmNTYzZjM4M2NkZDBjZTU4ZmIxNmNlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
U2VydmVyQ29ubmVjdGlvbi5jcHAKQEAgLTE5OCw2ICsxOTgsMTEgQEAgdm9pZCBXZWJTV1NlcnZl
ckNvbm5lY3Rpb246Om1hdGNoUmVnaXN0cmF0aW9uKHVpbnQ2NF90IHJlZ2lzdHJhdGlvbk1hdGNo
UmVxdWVzdEkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NsaWVudENvbm5lY3Rpb246OkRpZE1h
dGNoUmVnaXN0cmF0aW9uIHsgcmVnaXN0cmF0aW9uTWF0Y2hSZXF1ZXN0SWRlbnRpZmllciwgc3Rk
OjpudWxsb3B0IH0pOwogfQogCit2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6cmVnaXN0cmF0
aW9uUmVhZHkodWludDY0X3QgcmVnaXN0cmF0aW9uUmVhZHlSZXF1ZXN0SWRlbnRpZmllciwgU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmJiByZWdpc3RyYXRpb25EYXRhKQoreworICAgIHNl
bmQoTWVzc2FnZXM6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6UmVnaXN0cmF0aW9uUmVhZHkgeyBy
ZWdpc3RyYXRpb25SZWFkeVJlcXVlc3RJZGVudGlmaWVyLCBXVEZNb3ZlKHJlZ2lzdHJhdGlvbkRh
dGEpIH0pOworfQorCiB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6Z2V0UmVnaXN0cmF0aW9u
cyh1aW50NjRfdCByZWdpc3RyYXRpb25NYXRjaFJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBTZWN1
cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwpCiB7CiAgICAg
YXV0byByZWdpc3RyYXRpb25zID0gc2VydmVyKCkuZ2V0UmVnaXN0cmF0aW9ucyh0b3BPcmlnaW4s
IGNsaWVudFVSTCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1N0b3Jh
Z2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKaW5kZXggZmQw
MGQxYTRlOTllNThmNzNjOThiNzBkNmNkZjA0MTU1YmQyZWU3OS4uYjY1MDg1M2M1NTZlZjkzNmMy
YmM5YjhhNTNhZGE0N2M2MGUwMTNkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdl
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rp
b24uaApAQCAtNzcsNiArNzcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlV29ya2VyU3Rh
dGVJbkNsaWVudChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6U2Vy
dmljZVdvcmtlclN0YXRlKSBmaW5hbDsKICAgICB2b2lkIGZpcmVVcGRhdGVGb3VuZEV2ZW50KFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKSBmaW5hbDsKICAgICB2
b2lkIG5vdGlmeUNsaWVudHNPZkNvbnRyb2xsZXJDaGFuZ2UoY29uc3QgSGFzaFNldDxXZWJDb3Jl
OjpEb2N1bWVudElkZW50aWZpZXI+JiBjb250ZXh0SWRlbnRpZmllcnMsIGNvbnN0IFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJEYXRhJiBuZXdDb250cm9sbGVyKTsKKyAgICB2b2lkIHJlZ2lzdHJhdGlv
blJlYWR5KHVpbnQ2NF90IHJlZ2lzdHJhdGlvblJlYWR5UmVxdWVzdElkZW50aWZpZXIsIFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJiYpIGZpbmFsOwogCiAgICAgdm9pZCBz
dGFydEZldGNoKHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcj4sIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYsIGNvbnN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyYsIGNvbnN0IElQQzo6Rm9ybURhdGFSZWZl
cmVuY2UmKTsKIApAQCAtOTUsMTEgKzk2LDEwIEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVT4gdm9pZCBzZW5kVG9Db250ZXh0UHJvY2VzcyhVJiYgbWVzc2FnZSk7CiAKICAgICBQ
QUw6OlNlc3Npb25JRCBtX3Nlc3Npb25JRDsKLQogICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1f
Y29udGVudENvbm5lY3Rpb247CiAgICAgUmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gbV9jb250ZXh0
Q29ubmVjdGlvbjsKICAgICBIYXNoTWFwPFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllciwgV2Vi
Q29yZTo6Q2xpZW50T3JpZ2luPiBtX2NsaWVudE9yaWdpbnM7Ci19OyAvLyBjbGFzcyBXZWJTV1Nl
cnZlckNvbm5lY3Rpb24KK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCA2YzczNGM4
ZTRlYzU4ZDNiMTM0YzJiNmQ0YzNkOWE0ZmM1ZjljMmQ5Li4zMzdkNWEyNWFkMGNlZGIxY2Y4ZDg1
NzhkNzJiNzk3ZjdhOTMyNmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNv
bm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTM2LDYgKzM2LDcgQEAgbWVzc2FnZXMgLT4gV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uIHsKICAgICBEaWRSZXNvbHZlUmVnaXN0cmF0aW9uUHJvbWlzZShXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5IGtleSkKIAogICAgIE1hdGNoUmVnaXN0
cmF0aW9uKHVpbnQ2NF90IHNlcnZpY2VSZWdpc3RyYXRpb25NYXRjaFJlcXVlc3RJZGVudGlmaWVy
LCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcE9yaWdpbiwgV2ViQ29yZTo6
VVJMIGNsaWVudFVSTCkKKyAgICBXaGVuUmVnaXN0cmF0aW9uUmVhZHkodWludDY0X3Qgc2Vydmlj
ZVJlZ2lzdHJhdGlvbk1hdGNoUmVxdWVzdElkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEgdG9wT3JpZ2luLCBXZWJDb3JlOjpVUkwgY2xpZW50VVJMKQogICAgIEdl
dFJlZ2lzdHJhdGlvbnModWludDY0X3Qgc2VydmljZVJlZ2lzdHJhdGlvbk1hdGNoUmVxdWVzdElk
ZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wT3JpZ2luLCBX
ZWJDb3JlOjpVUkwgY2xpZW50VVJMKQogICAgIFJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChz
dHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcE9yaWdpbiwgV2ViQ29yZTo6RG9j
dW1lbnRJZGVudGlmaWVyIGlkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
Q2xpZW50RGF0YSBkYXRhLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyPiBjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJJZGVudGlmaWVyKQogICAgIFVucmVnaXN0
ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllciBpZGVudGlm
aWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
bGllbnRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggYmM5MWYzNjg0MDk5YzNkYTA0MzVkMjhjZjc1
ZDIwZmQ3MjRhYmIzOS4uNjZjMTBlYmY2NmNiMWYyMjczZjRkYTZiYjY5MzkxOGM1YzI5ZDFlNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRD
b25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NsaWVudENvbm5lY3Rpb24uY3BwCkBAIC0xNTAsOSArMTUwLDIzIEBAIHZvaWQgV2ViU1dDbGll
bnRDb25uZWN0aW9uOjptYXRjaFJlZ2lzdHJhdGlvbihjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9w
T3JpZ2luLCBjCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICB1aW50NjRfdCByZXF1ZXN0
SWRlbnRpZmllciA9ICsrbV9wcmV2aW91c01hdGNoUmVnaXN0cmF0aW9uVGFza0lkZW50aWZpZXI7
Ci0gICAgbV9vbmdvaW5nTWF0Y2hSZWdpc3RyYXRpb25UYXNrcy5hZGQocmVxdWVzdElkZW50aWZp
ZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNv
bm5lY3Rpb246Ok1hdGNoUmVnaXN0cmF0aW9uKHJlcXVlc3RJZGVudGlmaWVyLCBTZWN1cml0eU9y
aWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbih0b3BPcmlnaW4pLCBjbGllbnRVUkwpKTsKKyAg
ICB1aW50NjRfdCBjYWxsYmFja0lEID0gKyttX3ByZXZpb3VzQ2FsbGJhY2tJZGVudGlmaWVyOwor
ICAgIG1fb25nb2luZ01hdGNoUmVnaXN0cmF0aW9uVGFza3MuYWRkKGNhbGxiYWNrSUQsIFdURk1v
dmUoY2FsbGJhY2spKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246
Ok1hdGNoUmVnaXN0cmF0aW9uKGNhbGxiYWNrSUQsIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNl
Y3VyaXR5T3JpZ2luKHRvcE9yaWdpbiksIGNsaWVudFVSTCkpOworfQorCit2b2lkIFdlYlNXQ2xp
ZW50Q29ubmVjdGlvbjo6d2hlblJlZ2lzdHJhdGlvblJlYWR5KGNvbnN0IFNlY3VyaXR5T3JpZ2lu
JiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMLCBXaGVuUmVnaXN0cmF0aW9uUmVhZHlD
YWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSArK21fcHJl
dmlvdXNDYWxsYmFja0lkZW50aWZpZXI7CisgICAgbV9vbmdvaW5nUmVnaXN0cmF0aW9uUmVhZHlU
YXNrcy5hZGQoY2FsbGJhY2tJRCwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6V2hlblJlZ2lzdHJhdGlvblJlYWR5KGNhbGxiYWNr
SUQsIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKHRvcE9yaWdpbiksIGNs
aWVudFVSTCkpOworfQorCit2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6cmVnaXN0cmF0aW9u
UmVhZHkodWludDY0X3QgY2FsbGJhY2tJRCwgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbkRhdGEmJiByZWdpc3RyYXRpb25EYXRhKQoreworICAgIEFTU0VSVChyZWdpc3RyYXRpb25E
YXRhLmFjdGl2ZVdvcmtlcik7CisgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX29uZ29pbmdSZWdp
c3RyYXRpb25SZWFkeVRhc2tzLnRha2UoY2FsbGJhY2tJRCkpCisgICAgICAgIGNhbGxiYWNrKFdU
Rk1vdmUocmVnaXN0cmF0aW9uRGF0YSkpOwogfQogCiB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlv
bjo6Z2V0UmVnaXN0cmF0aW9ucyhjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wT3JpZ2luLCBjb25z
dCBVUkwmIGNsaWVudFVSTCwgR2V0UmVnaXN0cmF0aW9uc0NhbGxiYWNrJiYgY2FsbGJhY2spCkBA
IC0xNjQsOSArMTc4LDkgQEAgdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OmdldFJlZ2lzdHJh
dGlvbnMoY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwgY28KICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyID0gKyttX3ByZXZpb3Vz
R2V0UmVnaXN0cmF0aW9uc1Rhc2tJZGVudGlmaWVyOwotICAgIG1fb25nb2luZ0dldFJlZ2lzdHJh
dGlvbnNUYXNrcy5hZGQocmVxdWVzdElkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKLSAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OkdldFJlZ2lzdHJhdGlvbnMo
cmVxdWVzdElkZW50aWZpZXIsIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2lu
KHRvcE9yaWdpbiksIGNsaWVudFVSTCkpOworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSArK21f
cHJldmlvdXNDYWxsYmFja0lkZW50aWZpZXI7CisgICAgbV9vbmdvaW5nR2V0UmVnaXN0cmF0aW9u
c1Rhc2tzLmFkZChjYWxsYmFja0lELCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgc2VuZChNZXNz
YWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpHZXRSZWdpc3RyYXRpb25zKGNhbGxiYWNrSUQs
IFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKHRvcE9yaWdpbiksIGNsaWVu
dFVSTCkpOwogfQogCiB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6c3RhcnRGZXRjaChjb25z
dCBSZXNvdXJjZUxvYWRlciYgbG9hZGVyLCB1aW50NjRfdCBpZGVudGlmaWVyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rp
b24uaAppbmRleCA1YjZlMjA5ZGM0YmVhM2U4MTYzNGZhYjhiMTc1YWM0MzJiMGE4Yjg1Li5jYTM3
ZDIwMjJiZTQ4ZWM4MzUxNDdkNTA4YjRhOTQyZjYzZjdhMGU1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaApA
QCAtODEsNiArODEsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgbWF0Y2hSZWdpc3RyYXRpb24oY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6VVJM
JiBjbGllbnRVUkwsIFJlZ2lzdHJhdGlvbkNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgZGlk
TWF0Y2hSZWdpc3RyYXRpb24odWludDY0X3QgbWF0Y2hSZXF1ZXN0SWRlbnRpZmllciwgc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YT4mJik7CiAgICAg
dm9pZCBkaWRHZXRSZWdpc3RyYXRpb25zKHVpbnQ2NF90IG1hdGNoUmVxdWVzdElkZW50aWZpZXIs
IFZlY3RvcjxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YT4mJik7CisgICAg
dm9pZCB3aGVuUmVnaXN0cmF0aW9uUmVhZHkoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4m
IHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6VVJMJiBjbGllbnRVUkwsIFdoZW5SZWdpc3RyYXRp
b25SZWFkeUNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgcmVnaXN0cmF0aW9uUmVhZHkodWlu
dDY0X3QgY2FsbGJhY2tJRCwgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEm
Jik7CiAKICAgICB2b2lkIGdldFJlZ2lzdHJhdGlvbnMoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4mIHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6VVJMJiBjbGllbnRVUkwsIEdldFJlZ2lz
dHJhdGlvbnNDYWxsYmFjayYmKSBmaW5hbDsKIApAQCAtMTAwLDExICsxMDIsMTAgQEAgcHJpdmF0
ZToKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CiAgICAgVW5pcXVlUmVm
PFdlYlNXT3JpZ2luVGFibGU+IG1fc3dPcmlnaW5UYWJsZTsKIAotICAgIHVpbnQ2NF90IG1fcHJl
dmlvdXNNYXRjaFJlZ2lzdHJhdGlvblRhc2tJZGVudGlmaWVyIHsgMCB9OworICAgIHVpbnQ2NF90
IG1fcHJldmlvdXNDYWxsYmFja0lkZW50aWZpZXIgeyAwIH07CiAgICAgSGFzaE1hcDx1aW50NjRf
dCwgUmVnaXN0cmF0aW9uQ2FsbGJhY2s+IG1fb25nb2luZ01hdGNoUmVnaXN0cmF0aW9uVGFza3M7
Ci0KLSAgICB1aW50NjRfdCBtX3ByZXZpb3VzR2V0UmVnaXN0cmF0aW9uc1Rhc2tJZGVudGlmaWVy
IHsgMCB9OwogICAgIEhhc2hNYXA8dWludDY0X3QsIEdldFJlZ2lzdHJhdGlvbnNDYWxsYmFjaz4g
bV9vbmdvaW5nR2V0UmVnaXN0cmF0aW9uc1Rhc2tzOworICAgIEhhc2hNYXA8dWludDY0X3QsIFdo
ZW5SZWdpc3RyYXRpb25SZWFkeUNhbGxiYWNrPiBtX29uZ29pbmdSZWdpc3RyYXRpb25SZWFkeVRh
c2tzOwogCiB9OyAvLyBjbGFzcyBXZWJTV1NlcnZlckNvbm5lY3Rpb24KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRD
b25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IGEzMzA4MWYwNDU1OWU5OTAyMDc0NjY0YmJlM2Nk
OWZkNjkyMTAwNGEuLjEwMjE3ZTJiNGU0MzRhMDViMTc1NDdkZTAyZmRmZjY4NDk0ODQ0MDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29u
bmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTM5LDYgKzM5LDcgQEAgbWVz
c2FnZXMgLT4gV2ViU1dDbGllbnRDb25uZWN0aW9uIHsKIAogICAgIERpZE1hdGNoUmVnaXN0cmF0
aW9uKHVpbnQ2NF90IG1hdGNoUmVxdWVzdElkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE+IGRhdGEpCiAgICAgRGlkR2V0UmVnaXN0
cmF0aW9ucyh1aW50NjRfdCBtYXRjaFJlcXVlc3RJZGVudGlmaWVyLCBWZWN0b3I8V2ViQ29yZTo6
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE+IHJlZ2lzdHJhdGlvbnMpCisgICAgUmVnaXN0
cmF0aW9uUmVhZHkodWludDY0X3QgcmVnaXN0cmF0aW9uUmVhZHlSZXF1ZXN0SWRlbnRpZmllciwg
c3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhIGRhdGEpCiB9CiAK
ICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZwppbmRleCBiODhlZmIyMDJjNWQ1MWJjNTk2OWJjZjRiMGQ5ZDJjYjNhYTU2MTFlLi41MjUy
ZDJjYzBjMDg0M2IyOTQ3ODcxNDQ3ZGI0NWJhYjgyMjk3NTg3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxNy0xMi0wNSAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBTZXJ2aWNlV29ya2Vy
Q29udGFpbmVyLnByb3RvdHlwZS5yZWFkeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTgwMzgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmViYXNlbGluZSBXUFQgdGVzdCBjb3ZlcmFnZSBjb250YWluZXIu
cmVhZHkgbm93IHRoYXQgaXQgaXMgcGFzc2luZy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVhZHkuaHR0cHMtZXhwZWN0ZWQu
dHh0OgorCiAyMDE3LTEyLTA0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgU3VwcG9ydCBjb250YWluZXIuZ2V0UmVnaXN0cmF0aW9uKCkgLyBnZXRSZWdpc3RyYXRp
b25zKCkgaW5zaWRlIHNlcnZpY2Ugd29ya2VycwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvcmVhZHkuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVhZHkuaHR0
cHMtZXhwZWN0ZWQudHh0CmluZGV4IDA0ODk0MTdkZjcyMjg5NjFmYmQ0MjJkZTA0Y2YwZjI2NzM1
M2I1MmQuLmY1ODg0YzI0ZjIzYzY0OGRmMDQ3MmE4NzE1MDgxNGY3MDUyYWI4NjMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlYWR5Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9yZWFkeS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMTQgKzEsMTEgQEAK
LUNPTlNPTEUgTUVTU0FHRTogVW5oYW5kbGVkIFByb21pc2UgUmVqZWN0aW9uOiBVbmtub3duRXJy
b3I6IHNlcnZpY2VXb3JrZXIucmVhZHkoKSBpcyBub3QgeWV0IGltcGxlbWVudGVkCi0KLUhhcm5l
c3MgRXJyb3IgKEZBSUwpLCBtZXNzYWdlID0gc2VydmljZVdvcmtlci5yZWFkeSgpIGlzIG5vdCB5
ZXQgaW1wbGVtZW50ZWQKIAogUEFTUyByZWFkeSByZXR1cm5zIHRoZSBzYW1lIFByb21pc2Ugb2Jq
ZWN0IAogUEFTUyByZWFkeSByZXR1cm5zIGEgUHJvbWlzZSBvYmplY3QgaW4gdGhlIGNvbnRleHQg
b2YgdGhlIHJlbGF0ZWQgZG9jdW1lbnQgCi1GQUlMIHJlYWR5IG9uIGEgY29udHJvbGxlZCBkb2N1
bWVudCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0
ICJVbmtub3duRXJyb3I6IHNlcnZpY2VXb3JrZXIucmVhZHkoKSBpcyBub3QgeWV0IGltcGxlbWVu
dGVkIgotRkFJTCByZWFkeSBvbiBhIHBvdGVudGlhbCBjb250cm9sbGVkIGRvY3VtZW50IHByb21p
c2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlVua25vd25F
cnJvcjogc2VydmljZVdvcmtlci5yZWFkeSgpIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQiCi1GQUlM
IHJlYWR5IG9uIGFuIGlmcmFtZSB3aG9zZSBwYXJlbnQgcmVnaXN0ZXJzIGEgbmV3IHNlcnZpY2Ug
d29ya2VyIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmpl
Y3QgIlVua25vd25FcnJvcjogc2VydmljZVdvcmtlci5yZWFkeSgpIGlzIG5vdCB5ZXQgaW1wbGVt
ZW50ZWQiCi1GQUlMIHJlYWR5IG9uIGFuIGlmcmFtZSB0aGF0IGluc3RhbGxzIGEgbmV3IHNlcnZp
Y2Ugd29ya2VyIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBv
YmplY3QgIlVua25vd25FcnJvcjogc2VydmljZVdvcmtlci5yZWFkeSgpIGlzIG5vdCB5ZXQgaW1w
bGVtZW50ZWQiCi1GQUlMIHJlYWR5IGFmdGVyIGEgbG9uZ2VyIG1hdGNoZWQgcmVnaXN0cmF0aW9u
IHJlZ2lzdGVyZWQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
IG9iamVjdCAiVW5rbm93bkVycm9yOiBzZXJ2aWNlV29ya2VyLnJlYWR5KCkgaXMgbm90IHlldCBp
bXBsZW1lbnRlZCIKLUZBSUwgYWNjZXNzIHJlYWR5IGFmdGVyIGl0IGhhcyBiZWVuIHJlc29sdmVk
IHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlVu
a25vd25FcnJvcjogc2VydmljZVdvcmtlci5yZWFkeSgpIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQi
Ci1GQUlMIGFjY2VzcyByZWFkeSBvbiB1bmluc3RhbGxpbmcgcmVnaXN0cmF0aW9uIHRoYXQgaXMg
cmVzdXJyZWN0ZWQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
IG9iamVjdCAiVW5rbm93bkVycm9yOiBzZXJ2aWNlV29ya2VyLnJlYWR5KCkgaXMgbm90IHlldCBp
bXBsZW1lbnRlZCIKK1BBU1MgcmVhZHkgb24gYSBjb250cm9sbGVkIGRvY3VtZW50IAorUEFTUyBy
ZWFkeSBvbiBhIHBvdGVudGlhbCBjb250cm9sbGVkIGRvY3VtZW50IAorUEFTUyByZWFkeSBvbiBh
biBpZnJhbWUgd2hvc2UgcGFyZW50IHJlZ2lzdGVycyBhIG5ldyBzZXJ2aWNlIHdvcmtlciAKK1BB
U1MgcmVhZHkgb24gYW4gaWZyYW1lIHRoYXQgaW5zdGFsbHMgYSBuZXcgc2VydmljZSB3b3JrZXIg
CitQQVNTIHJlYWR5IGFmdGVyIGEgbG9uZ2VyIG1hdGNoZWQgcmVnaXN0cmF0aW9uIHJlZ2lzdGVy
ZWQgCitQQVNTIGFjY2VzcyByZWFkeSBhZnRlciBpdCBoYXMgYmVlbiByZXNvbHZlZCAKK1BBU1Mg
YWNjZXNzIHJlYWR5IG9uIHVuaW5zdGFsbGluZyByZWdpc3RyYXRpb24gdGhhdCBpcyByZXN1cnJl
Y3RlZCAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328483</attachid>
            <date>2017-12-05 12:24:16 -0800</date>
            <delta_ts>2017-12-05 12:56:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180383-20171205122415.patch</filename>
            <type>text/plain</type>
            <size>27194</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzFjYjAzODM2ZmY0MmY3
ZGRkYzIyMDM3ZjJjZGU2MjlkODc2YzRkMC4uZTJmODI0ZjY0ZTI0NjNjZjJjNjc4ODRlNGNkYTlh
MjNkMDc1ODdlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE3LTEyLTA1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIFNl
cnZpY2VXb3JrZXJDb250YWluZXIucHJvdG90eXBlLnJlYWR5CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODAzODMKKworICAgICAgICBSZXZpZXdlZCBi
eSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBTZXJ2aWNlV29ya2Vy
Q29udGFpbmVyLnByb3RvdHlwZS5yZWFkeToKKyAgICAgICAgLSBodHRwczovL3czYy5naXRodWIu
aW8vU2VydmljZVdvcmtlci8jbmF2aWdhdG9yLXNlcnZpY2Utd29ya2VyLXJlYWR5CisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLCByZWJhc2VsaW5lZCBleGlzdGluZyB0ZXN0LgorCisgICAgICAgICog
d29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oOgorICAgICAgICAqIHdvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJDb250YWluZXI6OlNlcnZpY2VXb3JrZXJDb250YWluZXIpOgorICAgICAgICAo
V2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRhaW5lcjo6cmVhZHkpOgorICAgICAgICAqIHdvcmtl
cnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmg6CisgICAgICAgICogd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkuaDoKKyAgICAgICAgKiB3b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVy
OjpyZXNvbHZlUmVnaXN0cmF0aW9uUmVhZHlSZXF1ZXN0cyk6CisgICAgICAgICogd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJS
ZWdpc3RyYXRpb246OmFjdGl2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyUmVnaXN0
cmF0aW9uOjpzZXRJc1VuaW5zdGFsbGluZyk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oOgorCiAyMDE3LTEyLTA1ICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSB3ZWJraXRHZXRJbWFn
ZURhdGFIRCBhbmQgd2Via2l0UHV0SW1hZ2VEYXRhSEQgZnJvbSBjYW52YXMgQVBJCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IDgzYjAwYTI3OTNjNDFlOTlmYzM4N2ZlY2E3MGYyZTMwM2ZjZjY3OWIuLjMyMmE1Y2QyMmRi
YThlMjBlMzQzZjU4MWU0OTFhMGVjMmQ0MDc1MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAK
KzIwMTctMTItMDUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgU2VydmljZVdvcmtlckNvbnRhaW5lci5wcm90b3R5cGUucmVhZHkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDM4MworCisg
ICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBTdG9yYWdlUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6d2hlblJlZ2lzdHJhdGlvblJlYWR5KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpyZXNvbHZlUmVnaXN0cmF0aW9u
UmVhZHlSZXF1ZXN0cyk6CisgICAgICAgICogU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlckNvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjptYXRjaFJlZ2lzdHJhdGlvbik6CisgICAgICAgIChX
ZWJLaXQ6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6d2hlblJlZ2lzdHJhdGlvblJlYWR5KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpyZWdpc3RyYXRpb25SZWFkeSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6Z2V0UmVnaXN0cmF0aW9u
cyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVz
c2FnZXMuaW46CisKIDIwMTctMTItMDUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgogCiAgICAgICAgIEltcGxlbWVudCBzZXR0aW5nIG9mIHNlcnZpY2Ugd29ya2VyIHRvIGNsaWVu
dCBpbiBTV1NlcnZlciB3aXRob3V0IGdvaW5nIHRvIFdlYlByb2Nlc3MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uaAppbmRleCBlNThi
N2U2MmNkYTBlZjRhMmNlNWE4ODFiMzVlYzcwMWMzMTkxMWU2Li40NzE0MjA1OWExNWJjMDA2YWVk
ODFkMGJiZjNlZTRjNGZmMGYxOTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oCkBAIC02Miw2ICs2Miw5IEBAIHB1YmxpYzoK
ICAgICB1c2luZyBHZXRSZWdpc3RyYXRpb25zQ2FsbGJhY2sgPSBXVEY6OkNvbXBsZXRpb25IYW5k
bGVyPHZvaWQoVmVjdG9yPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhPiYmKT47CiAgICAg
dmlydHVhbCB2b2lkIGdldFJlZ2lzdHJhdGlvbnMoY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9y
aWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwsIEdldFJlZ2lzdHJhdGlvbnNDYWxsYmFjayYmKSA9
IDA7CiAKKyAgICB1c2luZyBXaGVuUmVnaXN0cmF0aW9uUmVhZHlDYWxsYmFjayA9IFdURjo6RnVu
Y3Rpb248dm9pZChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYmKT47CisgICAgdmlydHVh
bCB2b2lkIHdoZW5SZWdpc3RyYXRpb25SZWFkeShjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wT3Jp
Z2luLCBjb25zdCBVUkwmIGNsaWVudFVSTCwgV2hlblJlZ2lzdHJhdGlvblJlYWR5Q2FsbGJhY2sm
JikgPSAwOworCiAgICAgdmlydHVhbCB2b2lkIGFkZFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25J
blNlcnZlcihTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcikgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCByZW1vdmVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSW5TZXJ2ZXIoU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwCmlu
ZGV4IDg1ZGFmMmUyOWNiMjYzNDMwMzBiNTY0YTQ1MTMwYTgxMTFjM2U2NjQuLmNjMjRkMzFlNTA1
MDhkMGU5ZmE2YmFhNjJjZDJlNWRkMmUwODkzZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAKQEAgLTU3
LDggKzU3LDYgQEAgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6U2VydmljZVdvcmtlckNvbnRhaW5l
cihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LAogICAgICwgbV9uYXZpZ2F0b3IobmF2
aWdhdG9yKQogewogICAgIHN1c3BlbmRJZk5lZWRlZCgpOwotCi0gICAgbV9yZWFkeVByb21pc2Uu
cmVqZWN0KEV4Y2VwdGlvbiB7IFVua25vd25FcnJvciwgQVNDSUlMaXRlcmFsKCJzZXJ2aWNlV29y
a2VyLnJlYWR5KCkgaXMgbm90IHlldCBpbXBsZW1lbnRlZCIpIH0pOwogfQogCiBTZXJ2aWNlV29y
a2VyQ29udGFpbmVyOjp+U2VydmljZVdvcmtlckNvbnRhaW5lcigpCkBAIC03OCw2ICs3NiwzMSBA
QCB2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OmRlcmVmRXZlbnRUYXJnZXQoKQogICAgIG1f
bmF2aWdhdG9yLmRlcmVmKCk7CiB9CiAKK2F1dG8gU2VydmljZVdvcmtlckNvbnRhaW5lcjo6cmVh
ZHkoKSAtPiBSZWFkeVByb21pc2UmCit7CisgICAgaWYgKCFtX3JlYWR5UHJvbWlzZSkgeworICAg
ICAgICBtX3JlYWR5UHJvbWlzZSA9IHN0ZDo6bWFrZV91bmlxdWU8UmVhZHlQcm9taXNlPigpOwor
CisgICAgICAgIGF1dG8qIGNvbnRleHQgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CisgICAg
ICAgIGlmICghY29udGV4dCkKKyAgICAgICAgICAgIHJldHVybiAqbV9yZWFkeVByb21pc2U7CisK
KyAgICAgICAgYXV0byBjb250ZXh0SWRlbnRpZmllciA9IHRoaXMtPmNvbnRleHRJZGVudGlmaWVy
KCk7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIGNvbm5lY3Rpb24gPSBtYWtlUmVm
KGVuc3VyZVNXQ2xpZW50Q29ubmVjdGlvbigpKSwgdG9wT3JpZ2luID0gY29udGV4dC0+dG9wT3Jp
Z2luKCkuaXNvbGF0ZWRDb3B5KCksIGNsaWVudFVSTCA9IGNvbnRleHQtPnVybCgpLmlzb2xhdGVk
Q29weSgpLCBjb250ZXh0SWRlbnRpZmllcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGNvbm5l
Y3Rpb24tPndoZW5SZWdpc3RyYXRpb25SZWFkeSh0b3BPcmlnaW4sIGNsaWVudFVSTCwgW3RoaXMs
IGNvbnRleHRJZGVudGlmaWVyXShhdXRvJiYgcmVnaXN0cmF0aW9uRGF0YSkgeworICAgICAgICAg
ICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnBvc3RUYXNrVG8oY29udGV4dElkZW50aWZp
ZXIsIFt0aGlzLCByZWdpc3RyYXRpb25EYXRhID0gY3Jvc3NUaHJlYWRDb3B5KHJlZ2lzdHJhdGlv
bkRhdGEpXShhdXRvJikgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChtX2lzU3Rv
cHBlZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgICAg
ICAgICBhdXRvIHJlZ2lzdHJhdGlvbiA9IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb246OmdldE9y
Q3JlYXRlKCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICp0aGlzLCBXVEZNb3ZlKHJlZ2lzdHJh
dGlvbkRhdGEpKTsKKyAgICAgICAgICAgICAgICAgICAgbV9yZWFkeVByb21pc2UtPnJlc29sdmUo
V1RGTW92ZShyZWdpc3RyYXRpb24pKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICB9KTsKKyAgICB9CisgICAgcmV0dXJuICptX3JlYWR5UHJvbWlzZTsKK30K
KwogU2VydmljZVdvcmtlciogU2VydmljZVdvcmtlckNvbnRhaW5lcjo6Y29udHJvbGxlcigpIGNv
bnN0CiB7CiAgICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29u
dGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNv
bnRhaW5lci5oCmluZGV4IDE0MTYzZjk3NDM4OTE3NTg0OWQ2MjllMTc5MmYxZTlhYjk1ZGY1MDEu
LjdmN2NlODI2Mjg5ZjNiZDlhYmI1MmQ3NmQ3NDhkODM1YzBjMWE2NmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIu
aApAQCAtNTYsNyArNTYsNyBAQCBwdWJsaWM6CiAgICAgU2VydmljZVdvcmtlciogY29udHJvbGxl
cigpIGNvbnN0OwogCiAgICAgdXNpbmcgUmVhZHlQcm9taXNlID0gRE9NUHJvbWlzZVByb3h5PElE
TEludGVyZmFjZTxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uPj47Ci0gICAgUmVhZHlQcm9taXNl
JiByZWFkeSgpIHsgcmV0dXJuIG1fcmVhZHlQcm9taXNlOyB9CisgICAgUmVhZHlQcm9taXNlJiBy
ZWFkeSgpOwogCiAgICAgdXNpbmcgUmVnaXN0cmF0aW9uT3B0aW9ucyA9IFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25PcHRpb25zOwogICAgIHZvaWQgYWRkUmVnaXN0cmF0aW9uKGNvbnN0IFN0cmlu
ZyYgc2NyaXB0VVJMLCBjb25zdCBSZWdpc3RyYXRpb25PcHRpb25zJiwgUmVmPERlZmVycmVkUHJv
bWlzZT4mJik7CkBAIC0xMTAsNyArMTEwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRlcmVmRXZl
bnRUYXJnZXQoKSBmaW5hbDsKICAgICB2b2lkIHN0b3AoKSBmaW5hbDsKIAotICAgIFJlYWR5UHJv
bWlzZSBtX3JlYWR5UHJvbWlzZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVhZHlQcm9taXNlPiBt
X3JlYWR5UHJvbWlzZTsKIAogICAgIE5hdmlnYXRvckJhc2UmIG1fbmF2aWdhdG9yOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbktleS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25LZXkuaAppbmRleCA0Mjk4MjRmMmVmMDcyYTExOGQ3MTI5YmFlNWE3YjE1
ZDgwMDUzZjgwLi5jZDNjNWJlZWUzYzA4OTlmMDFhMzE4ZjNiZTNlYzEyZjg4YTU0ZTI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbktleS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uS2V5LmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogICAgIHVu
c2lnbmVkIGhhc2goKSBjb25zdDsKIAogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uS2V5JikgY29uc3Q7Ci0gICAgYm9vbCBpc01hdGNoaW5nKGNvbnN0
IFNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBVUkwmIGNsaWVudFVSTCkgY29u
c3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBpc01hdGNoaW5nKGNvbnN0IFNlY3VyaXR5T3Jp
Z2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBVUkwmIGNsaWVudFVSTCkgY29uc3Q7CiAgICAgYm9v
bCBvcmlnaW5Jc01hdGNoaW5nKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBj
b25zdCBVUkwmIGNsaWVudFVSTCkgY29uc3Q7CiAgICAgc2l6ZV90IHNjb3BlTGVuZ3RoKCkgY29u
c3QgeyByZXR1cm4gbV9zY29wZS5zdHJpbmcoKS5sZW5ndGgoKTsgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCmluZGV4IDJiY2I5
YjVhMGQyN2ZkMDYwZDVmYWVhZWJiZGVhYWQzNzIzY2MyYjMuLjI5NTljNjI3M2VkNTAyZGY3OTJm
YjAyOWQ5YmEzMWY0NDJmNWI2ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCkBAIC02NDQsNiArNjQ0LDM0IEBAIHZvaWQgU1dT
ZXJ2ZXI6OnVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IENsaWVudE9yaWdpbiYg
Y2xpZW50T3JpZ2luLCBTCiAgICAgbV9jbGllbnRUb0NvbnRyb2xsaW5nV29ya2VyLnJlbW92ZSh3
b3JrZXJJdGVyYXRvcik7CiB9CiAKK3ZvaWQgU1dTZXJ2ZXI6OnJlc29sdmVSZWdpc3RyYXRpb25S
ZWFkeVJlcXVlc3RzKFNXU2VydmVyUmVnaXN0cmF0aW9uJiByZWdpc3RyYXRpb24pCit7CisgICAg
Zm9yIChhdXRvKiBjb25uZWN0aW9uIDogbV9jb25uZWN0aW9ucy52YWx1ZXMoKSkKKyAgICAgICAg
Y29ubmVjdGlvbi0+cmVzb2x2ZVJlZ2lzdHJhdGlvblJlYWR5UmVxdWVzdHMocmVnaXN0cmF0aW9u
KTsKK30KKwordm9pZCBTV1NlcnZlcjo6Q29ubmVjdGlvbjo6d2hlblJlZ2lzdHJhdGlvblJlYWR5
KHVpbnQ2NF90IHJlZ2lzdHJhdGlvblJlYWR5UmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFNlY3Vy
aXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBVUkwmIGNsaWVudFVSTCkKK3sKKyAgICBp
ZiAoYXV0byogcmVnaXN0cmF0aW9uID0gZG9SZWdpc3RyYXRpb25NYXRjaGluZyh0b3BPcmlnaW4s
IGNsaWVudFVSTCkpIHsKKyAgICAgICAgaWYgKHJlZ2lzdHJhdGlvbi0+YWN0aXZlV29ya2VyKCkp
IHsKKyAgICAgICAgICAgIHJlZ2lzdHJhdGlvblJlYWR5KHJlZ2lzdHJhdGlvblJlYWR5UmVxdWVz
dElkZW50aWZpZXIsIHJlZ2lzdHJhdGlvbi0+ZGF0YSgpKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorICAgIH0KKyAgICBtX3JlZ2lzdHJhdGlvblJlYWR5UmVxdWVzdHMuYXBwZW5k
KHsgdG9wT3JpZ2luLCBjbGllbnRVUkwsIHJlZ2lzdHJhdGlvblJlYWR5UmVxdWVzdElkZW50aWZp
ZXIgfSk7Cit9CisKK3ZvaWQgU1dTZXJ2ZXI6OkNvbm5lY3Rpb246OnJlc29sdmVSZWdpc3RyYXRp
b25SZWFkeVJlcXVlc3RzKFNXU2VydmVyUmVnaXN0cmF0aW9uJiByZWdpc3RyYXRpb24pCit7Cisg
ICAgbV9yZWdpc3RyYXRpb25SZWFkeVJlcXVlc3RzLnJlbW92ZUFsbE1hdGNoaW5nKFsmXShhdXRv
JiByZXF1ZXN0KSB7CisgICAgICAgIGlmICghcmVnaXN0cmF0aW9uLmtleSgpLmlzTWF0Y2hpbmco
cmVxdWVzdC50b3BPcmlnaW4sIHJlcXVlc3QuY2xpZW50VVJMKSkKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgICAgICByZWdpc3RyYXRpb25SZWFkeShyZXF1ZXN0LmlkZW50aWZpZXIs
IHJlZ2lzdHJhdGlvbi5kYXRhKCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9KTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09S
S0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9T
V1NlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZl
ci5oCmluZGV4IDU2YWMzM2FmYThjZThlM2UxMWZlN2Y0YzY0MTUyNWY0OTRiNTM1YjAuLjhmMzgw
MTBlODIxZTg3ZWM2OGY0ZTk4YTYyNWNlNjI2MDUyMGUyYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKQEAgLTc1LDEyICs3NSwxNCBA
QCBwdWJsaWM6CiAKICAgICAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaWRSZXNvbHZlUmVnaXN0
cmF0aW9uUHJvbWlzZShjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5Jik7CiAgICAg
ICAgIGNvbnN0IFNXU2VydmVyUmVnaXN0cmF0aW9uKiBkb1JlZ2lzdHJhdGlvbk1hdGNoaW5nKGNv
bnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBVUkwmIGNsaWVudFVSTCkg
Y29uc3QgeyByZXR1cm4gbV9zZXJ2ZXIuZG9SZWdpc3RyYXRpb25NYXRjaGluZyh0b3BPcmlnaW4s
IGNsaWVudFVSTCk7IH0KKyAgICAgICAgdm9pZCByZXNvbHZlUmVnaXN0cmF0aW9uUmVhZHlSZXF1
ZXN0cyhTV1NlcnZlclJlZ2lzdHJhdGlvbiYpOwogCiAgICAgICAgIC8vIE1lc3NhZ2VzIHRvIHRo
ZSBjbGllbnQgV2ViUHJvY2VzcwogICAgICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUmVnaXN0cmF0
aW9uU3RhdGVJbkNsaWVudChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VX
b3JrZXJEYXRhPiYpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVdvcmtlclN0YXRl
SW5DbGllbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJTdGF0ZSkgPSAw
OwogICAgICAgICB2aXJ0dWFsIHZvaWQgZmlyZVVwZGF0ZUZvdW5kRXZlbnQoU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbklkZW50aWZpZXIpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIG5vdGlm
eUNsaWVudHNPZkNvbnRyb2xsZXJDaGFuZ2UoY29uc3QgSGFzaFNldDxEb2N1bWVudElkZW50aWZp
ZXI+JiBjb250ZXh0SWRlbnRpZmllcnMsIGNvbnN0IFNlcnZpY2VXb3JrZXJEYXRhJiBuZXdDb250
cm9sbGVyKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCByZWdpc3RyYXRpb25SZWFkeSh1aW50
NjRfdCByZWdpc3RyYXRpb25SZWFkeVJlcXVlc3RJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uRGF0YSYmKSA9IDA7CiAKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIFdFQkNPUkVf
RVhQT1JUIGV4cGxpY2l0IENvbm5lY3Rpb24oU1dTZXJ2ZXImKTsKQEAgLTkxLDYgKzkzLDcgQEAg
cHVibGljOgogICAgICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFkZFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25JblNlcnZlcihTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcik7CiAg
ICAgICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bkluU2VydmVyKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKTsKICAgICAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzeW5jVGVybWluYXRlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyKTsKKyAgICAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB3aGVuUmVnaXN0cmF0aW9uUmVh
ZHkodWludDY0X3QgcmVnaXN0cmF0aW9uUmVhZHlSZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgU2Vj
dXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMKTsKIAogICAg
IHByaXZhdGU6CiAgICAgICAgIC8vIE1lc3NhZ2VzIHRvIHRoZSBjbGllbnQgV2ViUHJvY2VzcwpA
QCAtOTksOCArMTAyLDE1IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIHJlc29sdmVV
bnJlZ2lzdHJhdGlvbkpvYkluQ2xpZW50KGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRp
ZmllciYsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmLCBib29sIHJlZ2lzdHJh
dGlvblJlc3VsdCkgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRTY3JpcHRGZXRjaElu
Q2xpZW50KGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYpID0gMDsKIAorICAg
ICAgICBzdHJ1Y3QgUmVnaXN0cmF0aW9uUmVhZHlSZXF1ZXN0IHsKKyAgICAgICAgICAgIFNlY3Vy
aXR5T3JpZ2luRGF0YSB0b3BPcmlnaW47CisgICAgICAgICAgICBVUkwgY2xpZW50VVJMOworICAg
ICAgICAgICAgdWludDY0X3QgaWRlbnRpZmllcjsKKyAgICAgICAgfTsKKwogICAgICAgICBTV1Nl
cnZlciYgbV9zZXJ2ZXI7CiAgICAgICAgIElkZW50aWZpZXIgbV9pZGVudGlmaWVyOworICAgICAg
ICBWZWN0b3I8UmVnaXN0cmF0aW9uUmVhZHlSZXF1ZXN0PiBtX3JlZ2lzdHJhdGlvblJlYWR5UmVx
dWVzdHM7CiAgICAgfTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IFNXU2VydmVyKFVu
aXF1ZVJlZjxTV09yaWdpblN0b3JlPiYmLCBjb25zdCBTdHJpbmcmIHJlZ2lzdHJhdGlvbkRhdGFi
YXNlRGlyZWN0b3J5KTsKQEAgLTE1MSw2ICsxNjEsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBpbnZva2VSdW5TZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
KTsKIAogICAgIHZvaWQgc2V0Q2xpZW50QWN0aXZlV29ya2VyKFNlcnZpY2VXb3JrZXJDbGllbnRJ
ZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CisgICAgdm9pZCByZXNvbHZlUmVn
aXN0cmF0aW9uUmVhZHlSZXF1ZXN0cyhTV1NlcnZlclJlZ2lzdHJhdGlvbiYpOwogCiBwcml2YXRl
OgogICAgIHZvaWQgcmVnaXN0ZXJDb25uZWN0aW9uKENvbm5lY3Rpb24mKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJl
Z2lzdHJhdGlvbi5jcHAKaW5kZXggOGVhNmZjZWZmYzdhNjc0NTVkYWI1MjAxOWUwNTI0Njk5MTll
YzNlYy4uZjUyNzcwZmMxYzFlYjkzYjY2Yzk2N2Y1ZjZmZWU3MGUyODUwZDE4NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJh
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlclJlZ2lzdHJhdGlvbi5jcHAKQEAgLTI2MSw2ICsyNjEsOSBAQCB2b2lkIFNXU2VydmVyUmVn
aXN0cmF0aW9uOjphY3RpdmF0ZSgpCiAgICAgdXBkYXRlV29ya2VyU3RhdGUoKmFjdGl2ZVdvcmtl
cigpLCBTZXJ2aWNlV29ya2VyU3RhdGU6OkFjdGl2YXRpbmcpOwogICAgIC8vIEZJWE1FOiBGb3Ig
ZWFjaCBzZXJ2aWNlIHdvcmtlciBjbGllbnQgd2hvc2UgY3JlYXRpb24gVVJMIG1hdGNoZXMgcmVn
aXN0cmF0aW9uJ3Mgc2NvcGUgdXJsLi4uCiAKKyAgICAvLyBUaGUgcmVnaXN0cmF0aW9uIG5vdyBo
YXMgYW4gYWN0aXZlIHdvcmtlciBzbyB3ZSBuZWVkIHRvIGNoZWNrIGlmIHRoZXJlIGFyZSBhbnkg
cmVhZHkgcHJvbWlzZXMgdGhhdCB3ZXJlIHdhaXRpbmcgZm9yIHRoaXMuCisgICAgbV9zZXJ2ZXIu
cmVzb2x2ZVJlZ2lzdHJhdGlvblJlYWR5UmVxdWVzdHMoKnRoaXMpOworCiAgICAgLy8gRm9yIGVh
Y2ggc2VydmljZSB3b3JrZXIgY2xpZW50IHdobyBpcyB1c2luZyByZWdpc3RyYXRpb246CiAgICAg
Ly8gLSBTZXQgY2xpZW50J3MgYWN0aXZlIHdvcmtlciB0byByZWdpc3RyYXRpb24ncyBhY3RpdmUg
d29ya2VyLgogICAgIGZvciAoYXV0byBrZXlWYWx1ZSA6IG1fY2xpZW50c1VzaW5nUmVnaXN0cmF0
aW9uKSB7CkBAIC0yOTcsNiArMzAwLDE5IEBAIHZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246Omhh
bmRsZUNsaWVudFVubG9hZCgpCiAgICAgdHJ5QWN0aXZhdGUoKTsKIH0KIAordm9pZCBTV1NlcnZl
clJlZ2lzdHJhdGlvbjo6c2V0SXNVbmluc3RhbGxpbmcoYm9vbCB2YWx1ZSkKK3sKKyAgICBpZiAo
bV91bmluc3RhbGxpbmcgPT0gdmFsdWUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fdW5pbnN0
YWxsaW5nID0gdmFsdWU7CisKKyAgICBpZiAoIW1fdW5pbnN0YWxsaW5nICYmIGFjdGl2ZVdvcmtl
cigpKSB7CisgICAgICAgIC8vIFJlZ2lzdHJhdGlvbiB3aXRoIGFjdGl2ZSB3b3JrZXIgaGFzIGJl
ZW4gcmVzdXJyZWN0ZWQsIHdlIG5lZWQgdG8gY2hlY2sgaWYgYW55IHJlYWR5IHByb21pc2VzIHdl
cmUgd2FpdGluZyBmb3IgdGhpcy4KKyAgICAgICAgbV9zZXJ2ZXIucmVzb2x2ZVJlZ2lzdHJhdGlv
blJlYWR5UmVxdWVzdHMoKnRoaXMpOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlv
bi5oCmluZGV4IDEwZTcwYWUzZTE4ZmZkOGNhYmJiNzRjMzRiZDMyOGM0ZGFjYzQwMmYuLjc2Mjc0
OWE5ZTFkNzJjOGQ3OTJiMjg3NWJlODE3YWVlNjZjNTRmNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0
aW9uLmgKQEAgLTU2LDcgKzU2LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhIGRhdGEoKSBjb25zdDsKIAogICAgIGJvb2wgaXNVbmlu
c3RhbGxpbmcoKSBjb25zdCB7IHJldHVybiBtX3VuaW5zdGFsbGluZzsgfQotICAgIHZvaWQgc2V0
SXNVbmluc3RhbGxpbmcoYm9vbCB2YWx1ZSkgeyBtX3VuaW5zdGFsbGluZyA9IHZhbHVlOyB9Cisg
ICAgdm9pZCBzZXRJc1VuaW5zdGFsbGluZyhib29sKTsKIAogICAgIHZvaWQgc2V0TGFzdFVwZGF0
ZVRpbWUoZG91YmxlIHRpbWUpIHsgbV9sYXN0VXBkYXRlVGltZSA9IHRpbWU7IH0KICAgICBTZXJ2
aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGUgdXBkYXRlVmlhQ2FjaGUoKSBjb25zdCB7IHJldHVybiBt
X3VwZGF0ZVZpYUNhY2hlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3Bw
CmluZGV4IGYyMjBmYTRiNWQ4YWYxZDJjNDRlYjE0ZmE2NWFiZmExMzNkMjI3MjkuLjQzNDBiN2I3
NTRhOWJjNzYzZjU2M2YzODNjZGQwY2U1OGZiMTZjZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlckNvbm5lY3Rpb24uY3BwCkBAIC0xOTgsNiArMTk4LDExIEBAIHZvaWQgV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uOjptYXRjaFJlZ2lzdHJhdGlvbih1aW50NjRfdCByZWdpc3RyYXRpb25NYXRjaFJl
cXVlc3RJCiAgICAgc2VuZChNZXNzYWdlczo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpEaWRNYXRj
aFJlZ2lzdHJhdGlvbiB7IHJlZ2lzdHJhdGlvbk1hdGNoUmVxdWVzdElkZW50aWZpZXIsIHN0ZDo6
bnVsbG9wdCB9KTsKIH0KIAordm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnJlZ2lzdHJhdGlv
blJlYWR5KHVpbnQ2NF90IHJlZ2lzdHJhdGlvblJlYWR5UmVxdWVzdElkZW50aWZpZXIsIFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJiYgcmVnaXN0cmF0aW9uRGF0YSkKK3sKKyAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJTV0NsaWVudENvbm5lY3Rpb246OlJlZ2lzdHJhdGlvblJlYWR5IHsgcmVn
aXN0cmF0aW9uUmVhZHlSZXF1ZXN0SWRlbnRpZmllciwgV1RGTW92ZShyZWdpc3RyYXRpb25EYXRh
KSB9KTsKK30KKwogdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmdldFJlZ2lzdHJhdGlvbnMo
dWludDY0X3QgcmVnaXN0cmF0aW9uTWF0Y2hSZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgU2VjdXJp
dHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMKQogewogICAgIGF1
dG8gcmVnaXN0cmF0aW9ucyA9IHNlcnZlcigpLmdldFJlZ2lzdHJhdGlvbnModG9wT3JpZ2luLCBj
bGllbnRVUkwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9TdG9yYWdl
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCmluZGV4IGZkMDBk
MWE0ZTk5ZTU4ZjczYzk4YjcwZDZjZGYwNDE1NWJkMmVlNzkuLmI2NTA4NTNjNTU2ZWY5MzZjMmJj
OWI4YTUzYWRhNDdjNjBlMDEzZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVBy
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
LmgKQEAgLTc3LDYgKzc3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZVdvcmtlclN0YXRl
SW5DbGllbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJTdGF0ZSkgZmluYWw7CiAgICAgdm9pZCBmaXJlVXBkYXRlRm91bmRFdmVudChXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcikgZmluYWw7CiAgICAgdm9p
ZCBub3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKGNvbnN0IEhhc2hTZXQ8V2ViQ29yZTo6
RG9jdW1lbnRJZGVudGlmaWVyPiYgY29udGV4dElkZW50aWZpZXJzLCBjb25zdCBXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyRGF0YSYgbmV3Q29udHJvbGxlcik7CisgICAgdm9pZCByZWdpc3RyYXRpb25S
ZWFkeSh1aW50NjRfdCByZWdpc3RyYXRpb25SZWFkeVJlcXVlc3RJZGVudGlmaWVyLCBXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYmKSBmaW5hbDsKIAogICAgIHZvaWQgc3Rh
cnRGZXRjaCh1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
U2VydmljZVdvcmtlcklkZW50aWZpZXI+LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
LCBjb25zdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmLCBjb25zdCBJUEM6OkZvcm1EYXRhUmVmZXJl
bmNlJik7CiAKQEAgLTk1LDExICs5NiwxMCBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFU+IHZvaWQgc2VuZFRvQ29udGV4dFByb2Nlc3MoVSYmIG1lc3NhZ2UpOwogCiAgICAgUEFM
OjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7Ci0KICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nv
bnRlbnRDb25uZWN0aW9uOwogICAgIFJlZlB0cjxJUEM6OkNvbm5lY3Rpb24+IG1fY29udGV4dENv
bm5lY3Rpb247CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXIsIFdlYkNv
cmU6OkNsaWVudE9yaWdpbj4gbV9jbGllbnRPcmlnaW5zOwotfTsgLy8gY2xhc3MgV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uCit9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggNmM3MzRjOGU0
ZWM1OGQzYjEzNGMyYjZkNGMzZDlhNGZjNWY5YzJkOS4uMzM3ZDVhMjVhZDBjZWRiMWNmOGQ4NTc4
ZDcyYjc5N2Y3YTkzMjZlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0zNiw2ICszNiw3IEBAIG1lc3NhZ2VzIC0+IFdlYlNXU2Vy
dmVyQ29ubmVjdGlvbiB7CiAgICAgRGlkUmVzb2x2ZVJlZ2lzdHJhdGlvblByb21pc2UoV2ViQ29y
ZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSBrZXkpCiAKICAgICBNYXRjaFJlZ2lzdHJh
dGlvbih1aW50NjRfdCBzZXJ2aWNlUmVnaXN0cmF0aW9uTWF0Y2hSZXF1ZXN0SWRlbnRpZmllciwg
c3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0b3BPcmlnaW4sIFdlYkNvcmU6OlVS
TCBjbGllbnRVUkwpCisgICAgV2hlblJlZ2lzdHJhdGlvblJlYWR5KHVpbnQ2NF90IHNlcnZpY2VS
ZWdpc3RyYXRpb25NYXRjaFJlcXVlc3RJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhIHRvcE9yaWdpbiwgV2ViQ29yZTo6VVJMIGNsaWVudFVSTCkKICAgICBHZXRS
ZWdpc3RyYXRpb25zKHVpbnQ2NF90IHNlcnZpY2VSZWdpc3RyYXRpb25NYXRjaFJlcXVlc3RJZGVu
dGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcE9yaWdpbiwgV2Vi
Q29yZTo6VVJMIGNsaWVudFVSTCkKICAgICBSZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoc3Ry
dWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0b3BPcmlnaW4sIFdlYkNvcmU6OkRvY3Vt
ZW50SWRlbnRpZmllciBpZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNs
aWVudERhdGEgZGF0YSwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRp
Zmllcj4gY29udHJvbGxpbmdTZXJ2aWNlV29ya2VySWRlbnRpZmllcikKICAgICBVbnJlZ2lzdGVy
U2VydmljZVdvcmtlckNsaWVudChXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXIgaWRlbnRpZmll
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xp
ZW50Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NsaWVudENvbm5lY3Rpb24uY3BwCmluZGV4IGJjOTFmMzY4NDA5OWMzZGEwNDM1ZDI4Y2Y3NWQy
MGZkNzI0YWJiMzkuLjY2YzEwZWJmNjZjYjFmMjI3M2Y0ZGE2YmI2OTM5MThjNWMyOWQxZTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29u
bmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
bGllbnRDb25uZWN0aW9uLmNwcApAQCAtMTUwLDkgKzE1MCwyMyBAQCB2b2lkIFdlYlNXQ2xpZW50
Q29ubmVjdGlvbjo6bWF0Y2hSZWdpc3RyYXRpb24oY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9y
aWdpbiwgYwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgdWludDY0X3QgcmVxdWVzdElk
ZW50aWZpZXIgPSArK21fcHJldmlvdXNNYXRjaFJlZ2lzdHJhdGlvblRhc2tJZGVudGlmaWVyOwot
ICAgIG1fb25nb2luZ01hdGNoUmVnaXN0cmF0aW9uVGFza3MuYWRkKHJlcXVlc3RJZGVudGlmaWVy
LCBXVEZNb3ZlKGNhbGxiYWNrKSk7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uOjpNYXRjaFJlZ2lzdHJhdGlvbihyZXF1ZXN0SWRlbnRpZmllciwgU2VjdXJpdHlPcmln
aW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4odG9wT3JpZ2luKSwgY2xpZW50VVJMKSk7CisgICAg
dWludDY0X3QgY2FsbGJhY2tJRCA9ICsrbV9wcmV2aW91c0NhbGxiYWNrSWRlbnRpZmllcjsKKyAg
ICBtX29uZ29pbmdNYXRjaFJlZ2lzdHJhdGlvblRhc2tzLmFkZChjYWxsYmFja0lELCBXVEZNb3Zl
KGNhbGxiYWNrKSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpN
YXRjaFJlZ2lzdHJhdGlvbihjYWxsYmFja0lELCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1
cml0eU9yaWdpbih0b3BPcmlnaW4pLCBjbGllbnRVUkwpKTsKK30KKwordm9pZCBXZWJTV0NsaWVu
dENvbm5lY3Rpb246OndoZW5SZWdpc3RyYXRpb25SZWFkeShjb25zdCBTZWN1cml0eU9yaWdpbiYg
dG9wT3JpZ2luLCBjb25zdCBVUkwmIGNsaWVudFVSTCwgV2hlblJlZ2lzdHJhdGlvblJlYWR5Q2Fs
bGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gKyttX3ByZXZp
b3VzQ2FsbGJhY2tJZGVudGlmaWVyOworICAgIG1fb25nb2luZ1JlZ2lzdHJhdGlvblJlYWR5VGFz
a3MuYWRkKGNhbGxiYWNrSUQsIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OldoZW5SZWdpc3RyYXRpb25SZWFkeShjYWxsYmFja0lE
LCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbih0b3BPcmlnaW4pLCBjbGll
bnRVUkwpKTsKK30KKwordm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OnJlZ2lzdHJhdGlvblJl
YWR5KHVpbnQ2NF90IGNhbGxiYWNrSUQsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25EYXRhJiYgcmVnaXN0cmF0aW9uRGF0YSkKK3sKKyAgICBBU1NFUlQocmVnaXN0cmF0aW9uRGF0
YS5hY3RpdmVXb3JrZXIpOworICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9vbmdvaW5nUmVnaXN0
cmF0aW9uUmVhZHlUYXNrcy50YWtlKGNhbGxiYWNrSUQpKQorICAgICAgICBjYWxsYmFjayhXVEZN
b3ZlKHJlZ2lzdHJhdGlvbkRhdGEpKTsKIH0KIAogdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246
OmdldFJlZ2lzdHJhdGlvbnMoY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwgY29uc3Qg
VVJMJiBjbGllbnRVUkwsIEdldFJlZ2lzdHJhdGlvbnNDYWxsYmFjayYmIGNhbGxiYWNrKQpAQCAt
MTY0LDkgKzE3OCw5IEBAIHZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpnZXRSZWdpc3RyYXRp
b25zKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIGNvCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICB1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciA9ICsrbV9wcmV2aW91c0dl
dFJlZ2lzdHJhdGlvbnNUYXNrSWRlbnRpZmllcjsKLSAgICBtX29uZ29pbmdHZXRSZWdpc3RyYXRp
b25zVGFza3MuYWRkKHJlcXVlc3RJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7Ci0gICAg
c2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpHZXRSZWdpc3RyYXRpb25zKHJl
cXVlc3RJZGVudGlmaWVyLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbih0
b3BPcmlnaW4pLCBjbGllbnRVUkwpKTsKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gKyttX3By
ZXZpb3VzQ2FsbGJhY2tJZGVudGlmaWVyOworICAgIG1fb25nb2luZ0dldFJlZ2lzdHJhdGlvbnNU
YXNrcy5hZGQoY2FsbGJhY2tJRCwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6R2V0UmVnaXN0cmF0aW9ucyhjYWxsYmFja0lELCBT
ZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbih0b3BPcmlnaW4pLCBjbGllbnRV
UkwpKTsKIH0KIAogdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OnN0YXJ0RmV0Y2goY29uc3Qg
UmVzb3VyY2VMb2FkZXImIGxvYWRlciwgdWludDY0X3QgaWRlbnRpZmllcikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9u
LmgKaW5kZXggNWI2ZTIwOWRjNGJlYTNlODE2MzRmYWI4YjE3NWFjNDMyYjBhOGI4NS4uY2EzN2Qy
MDIyYmU0OGVjODM1MTQ3ZDUwOGI0YTk0MmY2M2Y3YTBlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKQEAg
LTgxLDYgKzgxLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIG1hdGNoUmVnaXN0cmF0aW9uKGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlVSTCYg
Y2xpZW50VVJMLCBSZWdpc3RyYXRpb25DYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGRpZE1h
dGNoUmVnaXN0cmF0aW9uKHVpbnQ2NF90IG1hdGNoUmVxdWVzdElkZW50aWZpZXIsIHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE+JiYpOwogICAgIHZv
aWQgZGlkR2V0UmVnaXN0cmF0aW9ucyh1aW50NjRfdCBtYXRjaFJlcXVlc3RJZGVudGlmaWVyLCBW
ZWN0b3I8V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE+JiYpOworICAgIHZv
aWQgd2hlblJlZ2lzdHJhdGlvblJlYWR5KGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0
b3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlVSTCYgY2xpZW50VVJMLCBXaGVuUmVnaXN0cmF0aW9u
UmVhZHlDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIHJlZ2lzdHJhdGlvblJlYWR5KHVpbnQ2
NF90IGNhbGxiYWNrSUQsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJiYp
OwogCiAgICAgdm9pZCBnZXRSZWdpc3RyYXRpb25zKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luJiB0b3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlVSTCYgY2xpZW50VVJMLCBHZXRSZWdpc3Ry
YXRpb25zQ2FsbGJhY2smJikgZmluYWw7CiAKQEAgLTEwMCwxMSArMTAyLDEwIEBAIHByaXZhdGU6
CiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwogICAgIFVuaXF1ZVJlZjxX
ZWJTV09yaWdpblRhYmxlPiBtX3N3T3JpZ2luVGFibGU7CiAKLSAgICB1aW50NjRfdCBtX3ByZXZp
b3VzTWF0Y2hSZWdpc3RyYXRpb25UYXNrSWRlbnRpZmllciB7IDAgfTsKKyAgICB1aW50NjRfdCBt
X3ByZXZpb3VzQ2FsbGJhY2tJZGVudGlmaWVyIHsgMCB9OwogICAgIEhhc2hNYXA8dWludDY0X3Qs
IFJlZ2lzdHJhdGlvbkNhbGxiYWNrPiBtX29uZ29pbmdNYXRjaFJlZ2lzdHJhdGlvblRhc2tzOwot
Ci0gICAgdWludDY0X3QgbV9wcmV2aW91c0dldFJlZ2lzdHJhdGlvbnNUYXNrSWRlbnRpZmllciB7
IDAgfTsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBHZXRSZWdpc3RyYXRpb25zQ2FsbGJhY2s+IG1f
b25nb2luZ0dldFJlZ2lzdHJhdGlvbnNUYXNrczsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBXaGVu
UmVnaXN0cmF0aW9uUmVhZHlDYWxsYmFjaz4gbV9vbmdvaW5nUmVnaXN0cmF0aW9uUmVhZHlUYXNr
czsKIAogfTsgLy8gY2xhc3MgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29u
bmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCBhMzMwODFmMDQ1NTllOTkwMjA3NDY2NGJiZTNjZDlm
ZDY5MjEwMDRhLi4xMDIxN2UyYjRlNDM0YTA1YjE3NTQ3ZGUwMmZkZmY2ODQ5NDg0NDA1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5l
Y3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0zOSw2ICszOSw3IEBAIG1lc3Nh
Z2VzIC0+IFdlYlNXQ2xpZW50Q29ubmVjdGlvbiB7CiAKICAgICBEaWRNYXRjaFJlZ2lzdHJhdGlv
bih1aW50NjRfdCBtYXRjaFJlcXVlc3RJZGVudGlmaWVyLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhPiBkYXRhKQogICAgIERpZEdldFJlZ2lzdHJh
dGlvbnModWludDY0X3QgbWF0Y2hSZXF1ZXN0SWRlbnRpZmllciwgVmVjdG9yPFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhPiByZWdpc3RyYXRpb25zKQorICAgIFJlZ2lzdHJh
dGlvblJlYWR5KHVpbnQ2NF90IHJlZ2lzdHJhdGlvblJlYWR5UmVxdWVzdElkZW50aWZpZXIsIHN0
cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSBkYXRhKQogfQogCiAj
ZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VM
b2cKaW5kZXggYjg4ZWZiMjAyYzVkNTFiYzU5NjliY2Y0YjBkOWQyY2IzYWE1NjExZS4uNzc5NTM0
NjBiODdiMmQ3NTI5ZDgyYzZjZGM3YzYxMmMyNWVhZThmZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMTItMDUgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgU2VydmljZVdvcmtlckNv
bnRhaW5lci5wcm90b3R5cGUucmVhZHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE4MDM4MworCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJs
ZXQuCisKKyAgICAgICAgUmViYXNlbGluZSBXUFQgdGVzdCBjb3ZlcmFnZSBjb250YWluZXIucmVh
ZHkgbm93IHRoYXQgaXQgaXMgcGFzc2luZy4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVhZHkuaHR0cHMtZXhwZWN0ZWQudHh0
OgorCiAyMDE3LTEyLTA0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAg
ICAgU3VwcG9ydCBjb250YWluZXIuZ2V0UmVnaXN0cmF0aW9uKCkgLyBnZXRSZWdpc3RyYXRpb25z
KCkgaW5zaWRlIHNlcnZpY2Ugd29ya2VycwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
cmVhZHkuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvcmVhZHkuaHR0cHMt
ZXhwZWN0ZWQudHh0CmluZGV4IDA0ODk0MTdkZjcyMjg5NjFmYmQ0MjJkZTA0Y2YwZjI2NzM1M2I1
MmQuLmY1ODg0YzI0ZjIzYzY0OGRmMDQ3MmE4NzE1MDgxNGY3MDUyYWI4NjMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL3JlYWR5Lmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9yZWFkeS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTEsMTQgKzEsMTEgQEAKLUNP
TlNPTEUgTUVTU0FHRTogVW5oYW5kbGVkIFByb21pc2UgUmVqZWN0aW9uOiBVbmtub3duRXJyb3I6
IHNlcnZpY2VXb3JrZXIucmVhZHkoKSBpcyBub3QgeWV0IGltcGxlbWVudGVkCi0KLUhhcm5lc3Mg
RXJyb3IgKEZBSUwpLCBtZXNzYWdlID0gc2VydmljZVdvcmtlci5yZWFkeSgpIGlzIG5vdCB5ZXQg
aW1wbGVtZW50ZWQKIAogUEFTUyByZWFkeSByZXR1cm5zIHRoZSBzYW1lIFByb21pc2Ugb2JqZWN0
IAogUEFTUyByZWFkeSByZXR1cm5zIGEgUHJvbWlzZSBvYmplY3QgaW4gdGhlIGNvbnRleHQgb2Yg
dGhlIHJlbGF0ZWQgZG9jdW1lbnQgCi1GQUlMIHJlYWR5IG9uIGEgY29udHJvbGxlZCBkb2N1bWVu
dCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJV
bmtub3duRXJyb3I6IHNlcnZpY2VXb3JrZXIucmVhZHkoKSBpcyBub3QgeWV0IGltcGxlbWVudGVk
IgotRkFJTCByZWFkeSBvbiBhIHBvdGVudGlhbCBjb250cm9sbGVkIGRvY3VtZW50IHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlVua25vd25FcnJv
cjogc2VydmljZVdvcmtlci5yZWFkeSgpIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQiCi1GQUlMIHJl
YWR5IG9uIGFuIGlmcmFtZSB3aG9zZSBwYXJlbnQgcmVnaXN0ZXJzIGEgbmV3IHNlcnZpY2Ugd29y
a2VyIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3Qg
IlVua25vd25FcnJvcjogc2VydmljZVdvcmtlci5yZWFkeSgpIGlzIG5vdCB5ZXQgaW1wbGVtZW50
ZWQiCi1GQUlMIHJlYWR5IG9uIGFuIGlmcmFtZSB0aGF0IGluc3RhbGxzIGEgbmV3IHNlcnZpY2Ug
d29ya2VyIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmpl
Y3QgIlVua25vd25FcnJvcjogc2VydmljZVdvcmtlci5yZWFkeSgpIGlzIG5vdCB5ZXQgaW1wbGVt
ZW50ZWQiCi1GQUlMIHJlYWR5IGFmdGVyIGEgbG9uZ2VyIG1hdGNoZWQgcmVnaXN0cmF0aW9uIHJl
Z2lzdGVyZWQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9i
amVjdCAiVW5rbm93bkVycm9yOiBzZXJ2aWNlV29ya2VyLnJlYWR5KCkgaXMgbm90IHlldCBpbXBs
ZW1lbnRlZCIKLUZBSUwgYWNjZXNzIHJlYWR5IGFmdGVyIGl0IGhhcyBiZWVuIHJlc29sdmVkIHBy
b21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlVua25v
d25FcnJvcjogc2VydmljZVdvcmtlci5yZWFkeSgpIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQiCi1G
QUlMIGFjY2VzcyByZWFkeSBvbiB1bmluc3RhbGxpbmcgcmVnaXN0cmF0aW9uIHRoYXQgaXMgcmVz
dXJyZWN0ZWQgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9i
amVjdCAiVW5rbm93bkVycm9yOiBzZXJ2aWNlV29ya2VyLnJlYWR5KCkgaXMgbm90IHlldCBpbXBs
ZW1lbnRlZCIKK1BBU1MgcmVhZHkgb24gYSBjb250cm9sbGVkIGRvY3VtZW50IAorUEFTUyByZWFk
eSBvbiBhIHBvdGVudGlhbCBjb250cm9sbGVkIGRvY3VtZW50IAorUEFTUyByZWFkeSBvbiBhbiBp
ZnJhbWUgd2hvc2UgcGFyZW50IHJlZ2lzdGVycyBhIG5ldyBzZXJ2aWNlIHdvcmtlciAKK1BBU1Mg
cmVhZHkgb24gYW4gaWZyYW1lIHRoYXQgaW5zdGFsbHMgYSBuZXcgc2VydmljZSB3b3JrZXIgCitQ
QVNTIHJlYWR5IGFmdGVyIGEgbG9uZ2VyIG1hdGNoZWQgcmVnaXN0cmF0aW9uIHJlZ2lzdGVyZWQg
CitQQVNTIGFjY2VzcyByZWFkeSBhZnRlciBpdCBoYXMgYmVlbiByZXNvbHZlZCAKK1BBU1MgYWNj
ZXNzIHJlYWR5IG9uIHVuaW5zdGFsbGluZyByZWdpc3RyYXRpb24gdGhhdCBpcyByZXN1cnJlY3Rl
ZCAKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>