<?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>233288</bug_id>
          
          <creation_ts>2021-11-17 15:57:15 -0800</creation_ts>
          <short_desc>Drop ServiceWorkerClientIdentifier / DocumentIdentifier and use ScriptExecutionContextIdentifier instead</short_desc>
          <delta_ts>2021-11-18 11:25:20 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>232436</blocked>
    
    <blocked>233323</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hta</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kangil.han</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1816169</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-11-17 15:57:15 -0800</bug_when>
    <thetext>Drop ServiceWorkerClientIdentifier / DocumentIdentifier and use ScriptExecutionContextIdentifier instead.

We need to generic identifier type to identify script execution contexts globally. The proposal is to augment ScriptExecutionContextIdentifier with a process identifier to make it global, and then get rid of ServiceWorkerClientIdentifier &amp; DocumentIdentifier.
This is useful for Web Lock API support as we need a clientId that is consistent between the Web Lock API and the service worker API (tested by imported/w3c/web-platform-tests/web-locks//clientids.tentative.https.html).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816187</commentid>
    <comment_count>1</comment_count>
      <attachid>444596</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-11-17 16:21:11 -0800</bug_when>
    <thetext>Created attachment 444596
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816380</commentid>
    <comment_count>2</comment_count>
      <attachid>444596</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-11-18 03:56:06 -0800</bug_when>
    <thetext>Comment on attachment 444596
Patch

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

&gt; Source/WebCore/dom/Document.cpp:8728
&gt; +        m_serviceWorkerConnection-&gt;unregisterServiceWorkerClient(contextIdentifier());

This change is not needed and goes against a comment saying this function is deprecated.

&gt; Source/WebCore/dom/ScriptExecutionContext.cpp:120
&gt; +    allScriptExecutionContextsMap().add(m_contextIdentifier, const_cast&lt;ScriptExecutionContext*&gt;(this));

No const_cast here wanted or needed.

&gt; Source/WebCore/loader/cache/CachedResourceLoader.cpp:774
&gt; +        request.setClientIdentifierIfNeeded(document-&gt;contextIdentifier());

Change not needed, as above. Unless I am missing something?

&gt; Source/WebCore/platform/ProcessQualified.h:109
&gt; +    encoder &lt;&lt; m_object;

I’ve been wondering why we don’t write these kinds of functions as one-liners.

&gt; Source/WebCore/platform/ProcessQualified.h:117
&gt; +    decoder &gt;&gt; object;

We really need a better idiom for writing these structure decoders. I think we could find a way to cut down on repetitive code somehow.

&gt; Source/WebCore/platform/ProcessQualified.h:124
&gt; +    return ProcessQualified { *object, *processIdentifier };

Could use two sets of braces instead of naming the type here.

&gt; Source/WebCore/platform/ScriptExecutionContextIdentifier.h:28
&gt; +#include &quot;ProcessQualified.h&quot;

Can this be a forward declaration instead of an include?

&gt; Source/WebCore/platform/ScriptExecutionContextIdentifier.h:29
&gt;  #include &lt;wtf/ObjectIdentifier.h&gt;

Wondering the same.

&gt; Source/WebCore/testing/Internals.cpp:2762
&gt; +    return Document::allDocumentsMap().contains(ScriptExecutionContextIdentifier { makeObjectIdentifier&lt;ScriptExecutionContextIdentifierType&gt;(documentIdentifier), Process::identifier() });

Can this be written any more tersely without so many type names?

&gt; Source/WebCore/workers/service/ServiceWorker.cpp:124
&gt; +        sourceIdentifier = context.contextIdentifier();

Why contextIdentifier instead of just identifier?

&gt; Source/WebCore/workers/service/ServiceWorkerClientData.cpp:73
&gt; +        context.contextIdentifier(),

Why contextIdentifier instead of just identifier?

&gt; Source/WebCore/workers/service/ServiceWorkerClients.cpp:63
&gt; +        if (!identifier || !*identifier)

Not sure why we mix *identifier with identifier.value() here. Choose one I say.

&gt; Source/WebCore/workers/service/ServiceWorkerContainer.cpp:633
&gt; +    return scriptExecutionContext()-&gt;contextIdentifier();

Why contextIdentifier instead of just identifier?

&gt; Source/WebCore/workers/service/server/SWServerRegistration.cpp:177
&gt; +    auto addResult = m_clientsUsingRegistration.ensure(clientIdentifier.processIdentifier(), [] {

This could use add instead of ensure. An empty HashSet is just a null pointer, near zero cost to construct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816423</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-11-18 07:31:56 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #2)
&gt; Comment on attachment 444596 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=444596&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/Document.cpp:8728
&gt; &gt; +        m_serviceWorkerConnection-&gt;unregisterServiceWorkerClient(contextIdentifier());
&gt; 
&gt; This change is not needed and goes against a comment saying this function is
&gt; deprecated.

Yes, that&apos;s my bad. I updated identifier() to be identical to contextIdentifier() last minute and failed to update the rest of my patch accordingly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816438</commentid>
    <comment_count>4</comment_count>
      <attachid>444678</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-11-18 08:23:00 -0800</bug_when>
    <thetext>Created attachment 444678
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816448</commentid>
    <comment_count>5</comment_count>
      <attachid>444678</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-11-18 08:40:40 -0800</bug_when>
    <thetext>Comment on attachment 444678
Patch

Generated tests failure looks real</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816453</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-11-18 08:41:41 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #5)
&gt; Comment on attachment 444678 [details]
&gt; Patch
&gt; 
&gt; Generated tests failure looks real

The new output looks like this though:
```
diff --git a/Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp b/Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp
index 630a865b13a6..52e3c7638390 100644
--- a/Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp
+++ b/Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp
@@ -127,6 +127,9 @@
 #endif
 #include &quot;TestWithCVPixelBufferMessages.h&quot;
 #if USE(AVFOUNDATION)
+#include &lt;WebCore/CVUtilities.h&gt;
+#endif
+#if USE(AVFOUNDATION)
 #include &lt;wtf/RetainPtr.h&gt;
 #endif
 
diff --git a/Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessageReceiver.cpp b/Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessageReceiver.cpp
index ee7defb81297..56496ddba5ea 100644
--- a/Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessageReceiver.cpp
+++ b/Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessageReceiver.cpp
@@ -32,6 +32,9 @@
 #include &quot;HandleMessage.h&quot;
 #include &quot;TestWithCVPixelBufferMessages.h&quot;
 #if USE(AVFOUNDATION)
+#include &lt;WebCore/CVUtilities.h&gt;
+#endif
+#if USE(AVFOUNDATION)
 #include &lt;wtf/RetainPtr.h&gt;
 #endif
 
diff --git a/Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessages.h b/Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessages.h
index 1675bea59439..326500eb0a0e 100644
--- a/Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessages.h
+++ b/Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessages.h
@@ -28,6 +28,9 @@
 #include &quot;Connection.h&quot;
 #include &quot;MessageNames.h&quot;
 #include &quot;TestWithCVPixelBufferMessagesReplies.h&quot;
+#if PLATFORM(COCOA)
+#include &lt;WebCore/CVUtilities.h&gt;
+#endif
 #include &lt;wtf/Forward.h&gt;
 #include &lt;wtf/RetainPtr.h&gt;
 #include &lt;wtf/ThreadSafeRefCounted.h&gt;
```

Not sure how it relates to my patch yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816454</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-11-18 08:42:34 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #6)
&gt; (In reply to Darin Adler from comment #5)
&gt; &gt; Comment on attachment 444678 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; Generated tests failure looks real
&gt; 
&gt; The new output looks like this though:
&gt; ```
&gt; diff --git
&gt; a/Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp
&gt; b/Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp
&gt; index 630a865b13a6..52e3c7638390 100644
&gt; --- a/Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp
&gt; +++ b/Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp
&gt; @@ -127,6 +127,9 @@
&gt;  #endif
&gt;  #include &quot;TestWithCVPixelBufferMessages.h&quot;
&gt;  #if USE(AVFOUNDATION)
&gt; +#include &lt;WebCore/CVUtilities.h&gt;
&gt; +#endif
&gt; +#if USE(AVFOUNDATION)
&gt;  #include &lt;wtf/RetainPtr.h&gt;
&gt;  #endif
&gt;  
&gt; diff --git
&gt; a/Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessageReceiver.
&gt; cpp
&gt; b/Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessageReceiver.cpp
&gt; index ee7defb81297..56496ddba5ea 100644
&gt; ---
&gt; a/Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessageReceiver.cpp
&gt; +++
&gt; b/Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessageReceiver.cpp
&gt; @@ -32,6 +32,9 @@
&gt;  #include &quot;HandleMessage.h&quot;
&gt;  #include &quot;TestWithCVPixelBufferMessages.h&quot;
&gt;  #if USE(AVFOUNDATION)
&gt; +#include &lt;WebCore/CVUtilities.h&gt;
&gt; +#endif
&gt; +#if USE(AVFOUNDATION)
&gt;  #include &lt;wtf/RetainPtr.h&gt;
&gt;  #endif
&gt;  
&gt; diff --git
&gt; a/Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessages.h
&gt; b/Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessages.h
&gt; index 1675bea59439..326500eb0a0e 100644
&gt; --- a/Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessages.h
&gt; +++ b/Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessages.h
&gt; @@ -28,6 +28,9 @@
&gt;  #include &quot;Connection.h&quot;
&gt;  #include &quot;MessageNames.h&quot;
&gt;  #include &quot;TestWithCVPixelBufferMessagesReplies.h&quot;
&gt; +#if PLATFORM(COCOA)
&gt; +#include &lt;WebCore/CVUtilities.h&gt;
&gt; +#endif
&gt;  #include &lt;wtf/Forward.h&gt;
&gt;  #include &lt;wtf/RetainPtr.h&gt;
&gt;  #include &lt;wtf/ThreadSafeRefCounted.h&gt;
&gt; ```
&gt; 
&gt; Not sure how it relates to my patch yet.

I think it was more likely caused by https://bugs.webkit.org/show_bug.cgi?id=231945.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816467</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-11-18 08:54:56 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #7)
&gt; (In reply to Chris Dumez from comment #6)
&gt; &gt; (In reply to Darin Adler from comment #5)
&gt; &gt; &gt; Comment on attachment 444678 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; Generated tests failure looks real
&gt; &gt; 
&gt; &gt; The new output looks like this though:
&gt; &gt; ```
&gt; &gt; diff --git
&gt; &gt; a/Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp
&gt; &gt; b/Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp
&gt; &gt; index 630a865b13a6..52e3c7638390 100644
&gt; &gt; --- a/Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp
&gt; &gt; +++ b/Source/WebKit/Scripts/webkit/tests/MessageArgumentDescriptions.cpp
&gt; &gt; @@ -127,6 +127,9 @@
&gt; &gt;  #endif
&gt; &gt;  #include &quot;TestWithCVPixelBufferMessages.h&quot;
&gt; &gt;  #if USE(AVFOUNDATION)
&gt; &gt; +#include &lt;WebCore/CVUtilities.h&gt;
&gt; &gt; +#endif
&gt; &gt; +#if USE(AVFOUNDATION)
&gt; &gt;  #include &lt;wtf/RetainPtr.h&gt;
&gt; &gt;  #endif
&gt; &gt;  
&gt; &gt; diff --git
&gt; &gt; a/Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessageReceiver.
&gt; &gt; cpp
&gt; &gt; b/Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessageReceiver.cpp
&gt; &gt; index ee7defb81297..56496ddba5ea 100644
&gt; &gt; ---
&gt; &gt; a/Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessageReceiver.cpp
&gt; &gt; +++
&gt; &gt; b/Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessageReceiver.cpp
&gt; &gt; @@ -32,6 +32,9 @@
&gt; &gt;  #include &quot;HandleMessage.h&quot;
&gt; &gt;  #include &quot;TestWithCVPixelBufferMessages.h&quot;
&gt; &gt;  #if USE(AVFOUNDATION)
&gt; &gt; +#include &lt;WebCore/CVUtilities.h&gt;
&gt; &gt; +#endif
&gt; &gt; +#if USE(AVFOUNDATION)
&gt; &gt;  #include &lt;wtf/RetainPtr.h&gt;
&gt; &gt;  #endif
&gt; &gt;  
&gt; &gt; diff --git
&gt; &gt; a/Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessages.h
&gt; &gt; b/Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessages.h
&gt; &gt; index 1675bea59439..326500eb0a0e 100644
&gt; &gt; --- a/Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessages.h
&gt; &gt; +++ b/Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessages.h
&gt; &gt; @@ -28,6 +28,9 @@
&gt; &gt;  #include &quot;Connection.h&quot;
&gt; &gt;  #include &quot;MessageNames.h&quot;
&gt; &gt;  #include &quot;TestWithCVPixelBufferMessagesReplies.h&quot;
&gt; &gt; +#if PLATFORM(COCOA)
&gt; &gt; +#include &lt;WebCore/CVUtilities.h&gt;
&gt; &gt; +#endif
&gt; &gt;  #include &lt;wtf/Forward.h&gt;
&gt; &gt;  #include &lt;wtf/RetainPtr.h&gt;
&gt; &gt;  #include &lt;wtf/ThreadSafeRefCounted.h&gt;
&gt; &gt; ```
&gt; &gt; 
&gt; &gt; Not sure how it relates to my patch yet.
&gt; 
&gt; I think it was more likely caused by
&gt; https://bugs.webkit.org/show_bug.cgi?id=231945.

Youenn has a patch in-flight to do the rebaseline already.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816469</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-11-18 08:57:59 -0800</bug_when>
    <thetext>My mistake</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816470</commentid>
    <comment_count>10</comment_count>
      <attachid>444678</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-11-18 08:58:50 -0800</bug_when>
    <thetext>Comment on attachment 444678
Patch

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

Post landing feedback

&gt; Source/WebCore/platform/ScriptExecutionContextIdentifier.h:29
&gt; +template &lt;typename&gt; class ObjectIdentifier;

Ideally this should be done with Forward.h so we don’t have to write WTF prefixes. If it wasn’t for the WTF prefixes thing I guess we could do individual forward declarations like this. But would hate for Forward.h include costs to undercut the savings from using forward declarations to cut down number of headers included to speed up compiles. Maybe we should eventually abandon the “using WTF::String” thing and write the WTF prefixes everywhere.

Would like to nail down the idiom so we aren’t making different choices each time.

&gt; Source/WebCore/platform/ScriptExecutionContextIdentifier.h:34
&gt; +template &lt;typename&gt; class ProcessQualified;

I slightly prefer the formatting without the space after “template”.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816477</commentid>
    <comment_count>11</comment_count>
      <attachid>444688</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-11-18 09:07:40 -0800</bug_when>
    <thetext>Created attachment 444688
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816501</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-18 10:27:35 -0800</bug_when>
    <thetext>Committed r286012 (244405@main): &lt;https://commits.webkit.org/244405@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 444688.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816502</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-18 10:28:24 -0800</bug_when>
    <thetext>&lt;rdar://problem/85557507&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444596</attachid>
            <date>2021-11-17 16:21:11 -0800</date>
            <delta_ts>2021-11-18 08:22:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233288-20211117162110.patch</filename>
            <type>text/plain</type>
            <size>208725</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1ODcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2NmMWUzYmYzMWY3Zjlj
OGI2OTRjNzNmZjlkMDg0YzBiOWFhNjY5ZS4uYWE2NmE0NWMyYzRlNTJkYmU4NGYxZjY3MDlkZjNm
NGM1ZTg2ZjRjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2MSBAQAorMjAyMS0xMS0xNyAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3AgU2VydmljZVdvcmtl
ckNsaWVudElkZW50aWZpZXIgLyBEb2N1bWVudElkZW50aWZpZXIgYW5kIHVzZSBTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllciBpbnN0ZWFkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMyODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVy
IC8gRG9jdW1lbnRJZGVudGlmaWVyIGFuZCB1c2UgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXIgaW5zdGVhZC4KKworICAgICAgICBXZSBuZWVkIHRvIGdlbmVyaWMgaWRlbnRpZmllciB0
eXBlIHRvIGlkZW50aWZ5IHNjcmlwdCBleGVjdXRpb24gY29udGV4dHMgZ2xvYmFsbHkuIFRoaXMg
cGF0Y2ggYXVnbWVudHMKKyAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIg
d2l0aCBhIHByb2Nlc3MgaWRlbnRpZmllciB0byBtYWtlIGl0IGFwcC1nbG9iYWwsIGFuZCB0aGVu
IGdldHMgcmlkIG9mCisgICAgICAgIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyICYgRG9j
dW1lbnRJZGVudGlmaWVyICh3aGljaCBiZWNvbWUgb2Jzb2xldGUpLgorCisgICAgICAgIFRoaXMg
aXMgdXNlZnVsIGZvciBXZWIgTG9jayBBUEkgc3VwcG9ydCBhcyB3ZSBuZWVkIGEgY2xpZW50SWQg
dGhhdCBpcyBjb25zaXN0ZW50IGJldHdlZW4gdGhlIFdlYiBMb2NrCisgICAgICAgIEFQSSBhbmQg
dGhlIHNlcnZpY2Ugd29ya2VyIEFQSSAodGVzdGVkIGJ5IGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2ViLWxvY2tzLy9jbGllbnRpZHMudGVudGF0aXZlLmh0dHBzLmh0bWwpLgorICAg
ICAgICBUaGUgY2xpZW50SWQgaW4gc2VydmljZSB3b3JrZXJzIHdhcyB1c2luZyB0aGUgU2Vydmlj
ZVdvcmtlckNsaWVudElkZW50aWZpZXIgdHlwZSwgd2hpY2ggbWFkZSBsaXR0bGUKKyAgICAgICAg
c2Vuc2UgdG8gdXNlIGZvciB0aGUgV2ViIExvY2sgQVBJIGdpdmVuIGl0cyBuYW1lLgorCisgICAg
ICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBX
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0RvY3VtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjphZGRUb0RvY3VtZW50c01hcCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVtb3ZlRnJvbURvY3VtZW50c01hcCk6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0U2VydmljZVdvcmtlckNvbm5lY3Rpb24pOgorICAg
ICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmlkZW50
aWZpZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9FbGVtZW50Q29udGV4dC5oOgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudENvbnRleHQ6OmRlY29kZSk6CisgICAgICAgICogZG9t
L1NjcmlwdEVsZW1lbnQuaDoKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpTY3JpcHRFeGVj
dXRpb25Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6
OnJlbW92ZUZyb21Db250ZXh0c01hcCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRp
b25Db250ZXh0Ojp+U2NyaXB0RXhlY3V0aW9uQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JpcHRFeGVjdXRpb25Db250ZXh0Ojpjb250ZXh0SWRlbnRpZmllciBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmNvbnRleHRJZGVudGlmaWVyIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmlkZW50aWZpZXIgY29uc3Qp
OgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudExvYWRlcjo6ZnJvbVRlbXBvcmFyeURvY3VtZW50SWRlbnRpZmllcik6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6bG9hZE1haW5SZXNvdXJjZSk6CisgICAgICAg
ICogbG9hZGVyL0RvY3VtZW50TG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL0ZldGNoT3B0aW9u
cy5oOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjplbmNvZGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpkZWNvZGUpOgorICAgICAgICAqIGxvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRS
ZXNvdXJjZUxvYWRlcjo6cHJlcGFyZUZldGNoKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2VSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNl
UmVxdWVzdDo6c2V0Q2xpZW50SWRlbnRpZmllcklmTmVlZGVkKToKKyAgICAgICAgKiBsb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Lmg6CisgICAgICAgICogcGFnZS9tYWMvUGFnZU1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAg
ICAgICogcGxhdGZvcm0vRG9jdW1lbnRJZGVudGlmaWVyLmg6IFJlbW92ZWQuCisgICAgICAgICgp
OiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL1Byb2Nlc3NRdWFsaWZpZWQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlByb2Nlc3NRdWFsaWZpZWQ6OmdlbmVyYXRlVGhyZWFkU2FmZSk6CisgICAg
ICAgIChXZWJDb3JlOjpQcm9jZXNzUXVhbGlmaWVkOjpnZW5lcmF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpQcm9jZXNzUXVhbGlmaWVkOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpQcm9jZXNzUXVhbGlmaWVkPFQ+OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
UHJvY2Vzc1F1YWxpZmllZDxUPjo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpM
aWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlUGVlckNvbm5lY3Rpb24pOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6ZG9j
dW1lbnRJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6aXNE
b2N1bWVudEFsaXZlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6c2Vydmlj
ZVdvcmtlckNsaWVudElkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAqIHdvcmtlcnMvc2Vydmlj
ZS9TV0NsaWVudENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZGlzcGF0Y2hUb0Nv
bnRleHRUaHJlYWRJZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJDb3JlOjpTV0NsaWVudENvbm5l
Y3Rpb246OnNjaGVkdWxlSm9iKToKKyAgICAgICAgKFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlv
bjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6
U1dDbGllbnRDb25uZWN0aW9uOjpub3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlvbjo6cmVnaXN0ZXJTZXJ2aWNlV29ya2Vy
Q2xpZW50cyk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5o
OgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXI6OnBvc3RNZXNzYWdlKToKKyAgICAgICAgKiB3b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudC5oOgorICAgICAgICAqIHdvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyQ2xpZW50RGF0YTo6ZnJvbSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJDbGllbnREYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xp
ZW50RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckNsaWVudElkZW50aWZpZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAoV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlckNsaWVudElkZW50aWZpZXI6OmZyb21TdHJpbmcpOiBEZWxldGVkLgorICAgICAgICAq
IHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllci5oOiBSZW1vdmVk
LgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI6OnRvU3Ry
aW5nIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPT0pOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI6OmVu
Y29kZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xp
ZW50SWRlbnRpZmllcjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJDbGllbnRJZGVudGlmaWVyOjpoYXNoIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVySGFzaDo6aGFzaCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllckhhc2g6
OmVxdWFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj46OmVtcHR5VmFsdWUpOiBEZWxldGVkLgorICAgICAg
ICAoV1RGOjpIYXNoVHJhaXRzPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVy
Pjo6Y29uc3RydWN0RGVsZXRlZFZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6SGFzaFRy
YWl0czxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj46OmlzRGVsZXRlZFZh
bHVlKTogRGVsZXRlZC4KKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNs
aWVudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXJGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRz
OjpnZXQpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50cy5o
OgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OmNvbnRleHRJZGVudGlm
aWVyKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5o
OgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGV4dERhdGEuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6ZGVjb2RlKToKKyAg
ICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTo6c2VydmljZVdvcmtlclBh
Z2UpOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjpzZXJ2aWNl
V29ya2VyQ2xpZW50KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckds
b2JhbFNjb3BlLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2Iu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2I6OmNvbnRleHRJZGVudGlmaWVy
KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYkNsaWVudC5oOgor
ICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iRGF0YS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpzZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhOjpTZXJ2aWNlV29ya2VySm9iRGF0YSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YTo6c2VydmljZVdvcmtlclBhZ2VJ
ZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckpvYkRhdGEuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclR5cGVz
Lmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVjdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTV0NsaWVudENvbm5lY3Rpb246OnVucmVnaXN0
ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNXQ2xpZW50
Q29ubmVjdGlvbjo6c2NoZWR1bGVKb2IpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU1dDbGll
bnRDb25uZWN0aW9uOjpzY2hlZHVsZVVucmVnaXN0ZXJKb2JJblNlcnZlcik6CisgICAgICAgICog
d29ya2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVjdGlvbi5oOgorICAgICAgICAqIHdv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuY3BwOgorICAgICAgICAqIHdv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaDoKKyAgICAgICAgKiB3b3Jr
ZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2VydmljZVdvcmtlckZldGNoOjpkaXNwYXRjaEZldGNoRXZlbnQpOgorICAgICAgICAq
IHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5oOgorICAgICAgICAq
IHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZDo6cXVldWVUYXNrVG9GaXJlRmV0Y2hFdmVu
dCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVh
ZC5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJl
YWRQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6
OnN0YXJ0RmV0Y2gpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VX
b3JrZXJUaHJlYWRQcm94eS5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dT
ZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnNlcnZpY2VXb3JrZXJDbGll
bnRXaXRoT3JpZ2luQnlJRCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6c2No
ZWR1bGVVbnJlZ2lzdGVySm9iKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjp1cGRhdGVX
b3JrZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnJlZ2lzdGVyU2VydmljZVdvcmtl
ckNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6dW5yZWdpc3RlclNlcnZpY2VX
b3JrZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OmNyZWF0ZUNvbnRleHRD
b25uZWN0aW9uKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmg6
CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclJlZ2lzdHJhdGlvbjo6U1dTZXJ2ZXJSZWdp
c3RyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJSZWdpc3RyYXRpb246OmFkZENs
aWVudFVzaW5nUmVnaXN0cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyUmVnaXN0
cmF0aW9uOjpyZW1vdmVDbGllbnRVc2luZ1JlZ2lzdHJhdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpTV1NlcnZlclJlZ2lzdHJhdGlvbjo6Y29udHJvbENsaWVudCk6CisgICAgICAgICogd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oOgorICAgICAgICAoV2ViQ29y
ZTo6U1dTZXJ2ZXJSZWdpc3RyYXRpb246OnNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciBjb25z
dCk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uOjpTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpmaW5kQ2xpZW50QnlJZGVudGlmaWVyKToKKyAgICAg
ICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5o
OgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpzZXJ2aWNl
V29ya2VyUGFnZUlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJXb3Jr
ZXI6OmZpbmRDbGllbnRCeUlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1dT
ZXJ2ZXJXb3JrZXI6OnNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAg
ICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oOgorCiAyMDIxLTExLTE2
ICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXgg
Zm9yIGFjY2Vzc2liaWxpdHkvbWFjL3JlcGxhY2UtdGV4dC13aXRoLXJhbmdlLW9uLXdlYmFyZWEt
ZWxlbWVudC5odG1sIGluIGlzb2xhdGVkIHRyZWUgbW9kZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggN2ZlNGFhNTIw
MTBlYWJjOTdkOWIzMzEwMjBmZGZhZWFjNmMzOWQxMC4uNjRjYWViMDY5MmEwNmE5MjM3OTY0NjQy
Zjc0N2UzYmQzMmE2YmJlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw5NyBAQAorMjAyMS0xMS0xNyAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3AgU2VydmljZVdv
cmtlckNsaWVudElkZW50aWZpZXIgLyBEb2N1bWVudElkZW50aWZpZXIgYW5kIHVzZSBTY3JpcHRF
eGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBpbnN0ZWFkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMyODgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEcm9wIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlm
aWVyIC8gRG9jdW1lbnRJZGVudGlmaWVyIGFuZCB1c2UgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIgaW5zdGVhZC4KKworICAgICAgICBXZSBuZWVkIHRvIGdlbmVyaWMgaWRlbnRpZmll
ciB0eXBlIHRvIGlkZW50aWZ5IHNjcmlwdCBleGVjdXRpb24gY29udGV4dHMgZ2xvYmFsbHkuIFRo
aXMgcGF0Y2ggYXVnbWVudHMKKyAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIgd2l0aCBhIHByb2Nlc3MgaWRlbnRpZmllciB0byBtYWtlIGl0IGFwcC1nbG9iYWwsIGFuZCB0
aGVuIGdldHMgcmlkIG9mCisgICAgICAgIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyICYg
RG9jdW1lbnRJZGVudGlmaWVyICh3aGljaCBiZWNvbWUgb2Jzb2xldGUpLgorCisgICAgICAgIFRo
aXMgaXMgdXNlZnVsIGZvciBXZWIgTG9jayBBUEkgc3VwcG9ydCBhcyB3ZSBuZWVkIGEgY2xpZW50
SWQgdGhhdCBpcyBjb25zaXN0ZW50IGJldHdlZW4gdGhlIFdlYiBMb2NrCisgICAgICAgIEFQSSBh
bmQgdGhlIHNlcnZpY2Ugd29ya2VyIEFQSSAodGVzdGVkIGJ5IGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2ViLWxvY2tzLy9jbGllbnRpZHMudGVudGF0aXZlLmh0dHBzLmh0bWwpLgor
ICAgICAgICBUaGUgY2xpZW50SWQgaW4gc2VydmljZSB3b3JrZXJzIHdhcyB1c2luZyB0aGUgU2Vy
dmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgdHlwZSwgd2hpY2ggbWFkZSBsaXR0bGUKKyAgICAg
ICAgc2Vuc2UgdG8gdXNlIGZvciB0aGUgV2ViIExvY2sgQVBJIGdpdmVuIGl0cyBuYW1lLgorCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZXN0YWJs
aXNoU1dDb250ZXh0Q29ubmVjdGlvbik6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29y
a0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzOjpzd1NlcnZlckZvclNlc3Npb24pOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV1Nl
cnZlckNvbm5lY3Rpb246Om5vdGlmeUNsaWVudHNPZkNvbnRyb2xsZXJDaGFuZ2UpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OmNvbnRyb2xDbGllbnQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OmNyZWF0ZUZldGNoVGFzayk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VX
b3JrZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OmNsaWVudFVS
TEZyb21JZGVudGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9u
OjpzY2hlZHVsZVVucmVnaXN0ZXJKb2JJblNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlNX
U2VydmVyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OnVucmVnaXN0ZXJTZXJ2aWNlV29y
a2VyQ2xpZW50KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
U2VydmVyQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpXZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KToKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbi5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrTUROU1JlZ2lzdGVyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya01ETlNSZWdpc3Rlcjo6dW5yZWdpc3Rlck1ETlNOYW1lcyk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtNRE5TUmVnaXN0ZXI6OnJlZ2lzdGVyTUROU05hbWUpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrTUROU1JlZ2lzdGVyLmg6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtNRE5TUmVnaXN0ZXIubWVzc2FnZXMuaW46Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICh0eXBlc190aGF0
X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKToKKyAgICAgICAgKGhlYWRlcnNfZm9yX3R5cGUp
OgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAo
SVBDOjpBcmd1bWVudENvZGVyPFNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXI+OjplbmNv
ZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFNlcnZpY2VXb3JrZXJPckNsaWVudElk
ZW50aWZpZXI+OjpkZWNvZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9TeXN0ZW1QcmV2
aWV3Q29udHJvbGxlckNvY29hLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5
Ojplc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQb29sOjplc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29ya1By
b2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9j
ZXNzUHJveHk6OmVzdGFibGlzaFNlcnZpY2VXb3JrZXJDb250ZXh0KToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxl
OjpsaXZlRG9jdW1lbnRVUkxzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRj
L0xpYldlYlJUQ05ldHdvcmtNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRD
TmV0d29ya01hbmFnZXI6OmdldE9yQ3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRD
TmV0d29ya01hbmFnZXI6OkxpYldlYlJUQ05ldHdvcmtNYW5hZ2VyKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmtNYW5hZ2VyLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkxpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVQZWVyQ29ubmVjdGlvbik6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViTUROU1JlZ2lzdGVyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViTUROU1JlZ2lzdGVyOjp1bnJlZ2lzdGVyTUROU05hbWVzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViTUROU1JlZ2lzdGVyOjpyZWdpc3Rlck1ETlNOYW1lKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYk1ETlNSZWdpc3Rlci5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJTV0NsaWVudENvbm5lY3Rpb246OnNjaGVkdWxlVW5yZWdpc3Rlckpv
YkluU2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjp1bnJl
Z2lzdGVyU2VydmljZVdvcmtlckNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ2xpZW50
Q29ubmVjdGlvbjo6c2V0RG9jdW1lbnRJc0NvbnRyb2xsZWQpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uOjpzdGFydEZldGNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OmZpbmRDbGllbnRCeUlk
ZW50aWZpZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0
aW9uVG9OZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorCiAyMDIxLTEx
LTE2ICBQZXIgQXJuZSBWb2xsYW4gPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNP
U11bR1BVUF0gQWRkIHRlbGVtZXRyeSBmb3Igc3lzY2FsbHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4
IDBkNmZmMmY1OWU1NGQ1ZjQwM2MzMDYxY2M3NWNkNzUyM2FlMDRmYWIuLjQ5M2JkM2ExNzMzY2Vi
YTM0NWNkODg3Yjc5N2RhNDNmM2QyN2RiMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hl
YWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTA4MSw3
ICsxMDgxLDYgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHBs
YXRmb3JtL0RhdGVUaW1lQ2hvb3NlclBhcmFtZXRlcnMuaAogICAgIHBsYXRmb3JtL0RlY2ltYWwu
aAogICAgIHBsYXRmb3JtL0RlZmVycmFibGVUYXNrLmgKLSAgICBwbGF0Zm9ybS9Eb2N1bWVudElk
ZW50aWZpZXIuaAogICAgIHBsYXRmb3JtL0RyYWdEYXRhLmgKICAgICBwbGF0Zm9ybS9EcmFnSW1h
Z2UuaAogICAgIHBsYXRmb3JtL0RyYWdJdGVtLmgKQEAgLTE3NTksNyArMTc1OCw2IEBAIHNldChX
ZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKIAogICAgIHdvcmtlcnMvc2VydmljZS9T
V0NsaWVudENvbm5lY3Rpb24uaAogICAgIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xp
ZW50RGF0YS5oCi0gICAgd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlm
aWVyLmgKICAgICB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudFF1ZXJ5T3B0aW9u
cy5oCiAgICAgd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRUeXBlLmgKICAgICB3
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRleHREYXRhLmgKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5k
ZXggOWQ3NzU0OGNkZWEwYjQ3YjIyMDZiYjU4ZGU2ZDNkYTA4NGU1Yzc0OC4uZDg5NjBmN2JhN2Nh
NTg2OTE0NjYwOTE2YzZhOTc3NjQxODA3NzYyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTI3MjMsNyAr
MjcyMyw2IEBAIHdvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uY3BwCiB3b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHAKIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
Q2xpZW50LmNwcAogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmNwcAot
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmNwcAogd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRzLmNwcAogd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJDb250YWluZXIuY3BwCiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRl
eHREYXRhLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IDRmMmUyNTMwMTI0Njc1MWNiYmQyNzRmN2QyMGQ5ZDFkMWI3NWFjMDIu
LjA0ZTkxYjEyODEzNDJkNjYzNzRiMDczZTU2Y2JjNjlkMDZjMDJkM2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTExNjEsNyAr
MTE2MSw2IEBACiAJCTQxODFDNjQ4MjU1QjRDMjgwMEFFQjBGRiAvKiBSVENSdHBTRnJhbWVUcmFu
c2Zvcm1lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDE4MUM2NDIyNTVCNEMyNjAwQUVCMEZGIC8qIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE4MUM2NEEy
NTVCNEMyODAwQUVCMEZGIC8qIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4MUM2NDQyNTVCNEMyNzAwQUVCMEZG
IC8qIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybS5oICovOyB9OwogCQk0MTgyMDU0NzFFNTNFOThDMDBE
NjIyMDcgLyogUlRDQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDE4MjA1NDUxRTUzQzhDRDAwRDYyMjA3IC8qIFJUQ0NvbnRyb2xsZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk0MTgy
NkJGMjIzRkI1OTc3MDBCOTIyQjEgLyogRG9jdW1lbnRJZGVudGlmaWVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTgyNkJGMTIzRkI1OTcwMDBCOTIy
QjEgLyogRG9jdW1lbnRJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE4NEY1MTYxRUFGMDVBODAwRjE4QkYwIC8qIE9yaWVudGF0
aW9uTm90aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxODRGNTE1MUVBRjA1OTgwMEYxOEJGMCAvKiBPcmllbnRhdGlvbk5vdGlmaWVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE4NkJEM0Uy
MTNFRTM0MDAwMDE4MjZGIC8qIExpYldlYlJUQ1V0aWxzLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRDFBMDQ5MjEzRURERkQwMDYzRkI2QiAvKiBM
aWJXZWJSVENVdGlscy5jcHAgKi87IH07CiAJCTQxODZCRDNGMjEzRUUzNDMwMDAxODI2RiAvKiBM
aWJXZWJSVENSdHBTZW5kZXJCYWNrZW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQxRDFBMDRCMjEzRURERkUwMDYzRkI2QiAvKiBMaWJXZWJSVENS
dHBTZW5kZXJCYWNrZW5kLmNwcCAqLzsgfTsKQEAgLTI2NDMsNyArMjY0Miw2IEBACiAJCTgzNzk2
NENGMUY4REI2OUQwMDIxOEVBMCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YUlPUy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNzk2NENFMUY4REI2
OUEwMDIxOEVBMCAvKiBHZW9sb2NhdGlvblBvc2l0aW9uRGF0YUlPUy5tbSAqLzsgfTsKIAkJODM3
QTgwMTMxRTFFMTI3MzAwMDI2QjlGIC8qIExvY2FsaXphYmxlLnN0cmluZ3NkaWN0IGluIFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzdBODAxMTFFMUUxMjcz
MDAwMjZCOUYgLyogTG9jYWxpemFibGUuc3RyaW5nc2RpY3QgKi87IH07CiAJCTgzN0MwQjc2MjRE
QjM4NTAwMDVENTk1OSAvKiBEeW5hbWljc0NvbXByZXNzb3JPcHRpb25zLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzdDMEI3MzI0REIzODQyMDA1RDU5
NTkgLyogRHluYW1pY3NDb21wcmVzc29yT3B0aW9ucy5oICovOyB9OwotCQk4MzdENDYyNzFGQTJB
OENFMDA1NEUxRkEgLyogU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzN0Q0NjI1MUZBMkE4QzUwMDU0
RTFGQSAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzN0ZCMzQ1MUY5RUEwNkQwMEQwRkMz
MSAvKiBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4MzdGQjM0MDFGOUVBMDY2MDBEMEZDMzEgLyogRXh0ZW5kYWJs
ZU1lc3NhZ2VFdmVudC5oICovOyB9OwogCQk4Mzg4NjczNTFEMTNCQTVGMDAzNjk3RDAgLyogUmVu
ZGVyT2JqZWN0RW51bXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzODg2NzM0MUQxM0JBNTkwMDM2OTdEMCAvKiBSZW5kZXJPYmplY3RFbnVtcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTgzOENBNkJE
MUZDMERGRTkwMDVEOUZBNSAvKiBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzOENBNkJCMUZDMERG
REQwMDVEOUZBNSAvKiBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtODQxOCw3ICs4NDE2LDYg
QEAKIAkJNDE4MUM2NDUyNTVCNEMyODAwQUVCMEZGIC8qIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSVENSdHBTRnJhbWVUcmFu
c2Zvcm0uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTgyMDU0NTFFNTNDOENE
MDBENjIyMDcgLyogUlRDQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBSVENDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxODIw
NTQ4MUU1M0VBQUQwMEQ2MjIwNyAvKiBSVENDb250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJUQ0NvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk0MTgyNkJGMTIzRkI1OTcwMDBCOTIyQjEgLyogRG9jdW1lbnRJZGVudGlm
aWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERvY3VtZW50SWRlbnRpZmll
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTg0RjUxNTFFQUYwNTk4MDBGMThC
RjAgLyogT3JpZW50YXRpb25Ob3RpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBPcmllbnRhdGlvbk5vdGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQxODZCRDNCMjEzRURFMzgwMDAxODI2RiAvKiBMaWJXZWJSVENSdHBSZWNlaXZlckJhY2tlbmQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gTGliV2ViUlRDUnRwUmVjZWl2ZXJCYWNrZW5kLmg7IHBhdGggPSBs
aWJ3ZWJydGMvTGliV2ViUlRDUnRwUmVjZWl2ZXJCYWNrZW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQxODZCRDNEMjEzRURFMzkwMDAxODI2RiAvKiBMaWJXZWJSVENSdHBTZW5k
ZXJCYWNrZW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExpYldlYlJUQ1J0cFNlbmRlckJhY2tlbmQuaDsg
cGF0aCA9IGxpYndlYnJ0Yy9MaWJXZWJSVENSdHBTZW5kZXJCYWNrZW5kLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xMTY4NSw3ICsxMTY4Miw2IEBACiAJCTgzN0I3RDFGMURDM0Y1
NEMwMEQwNTFGQyAvKiBWYWxpZGF0aW9uQnViYmxlSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gVmFsaWRhdGlvbkJ1YmJsZUlPUy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJODM3QzBCNzMyNERCMzg0MjAwNUQ1OTU5IC8qIER5bmFtaWNzQ29t
cHJlc3Nvck9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRHluYW1pY3NDb21wcmVzc29yT3B0aW9u
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzdDMEI3NTI0REIzODQzMDA1RDU5
NTkgLyogRHluYW1pY3NDb21wcmVzc29yT3B0aW9ucy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRHluYW1pY3NDb21wcmVz
c29yT3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTgzN0Q0NjI1MUZB
MkE4QzUwMDU0RTFGQSAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzdERkIzNDFFQkZFQTcwMDA2MDEzODUg
LyogRWxlbWVudENTU0lubGluZVN0eWxlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBFbGVt
ZW50Q1NTSW5saW5lU3R5bGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzdG
QjM0MDFGOUVBMDY2MDBEMEZDMzEgLyogRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzN0ZCMzQyMUY5RUEwNjcwMEQwRkMzMSAvKiBFeHRl
bmRhYmxlTWVzc2FnZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEV4dGVuZGFibGVNZXNzYWdlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTI0MTUsNyArMTI0MTEsNiBAQAogCQk5M0Y5QjZERjBCQTBGQjcyMDA4NTQwNjQgLyog
SlNDb21tZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQ29tbWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y5Qjc5RTBCQTYwMzI2MDA4NTQwNjQg
LyogSlNDREFUQVNlY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSlNDREFUQVNlY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0Y5
Qjc5RjBCQTYwMzI2MDA4NTQwNjQgLyogSlNDREFUQVNlY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNDREFUQVNlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJOTNGQ0RCNDkyNjQ0NTVENjAwNDZERDdEIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRJ
ZGVudGlmaWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVu
dGlmaWVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGQ0RCNEIyNjQ3MERE
MTAwNDZERDdEIC8qIFNWR1Byb3BlcnR5VHJhaXRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNW
R1Byb3BlcnR5VHJhaXRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNGREFG
QzkwQjExMzA3NDAwRTI3NDZGIC8qIEVkaXRvckluc2VydEFjdGlvbi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRWRpdG9ySW5zZXJ0QWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTk0MTgyNzg4MUQ4QjI0MjIwMDQ5Mjc2NCAvKiBTdHlsZUNvbG9yLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0eWxlQ29sb3IuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjE3NzYsOCArMjE3NzEsNiBAQAogCQkJCTQ2
RUYxNDI4MUY5N0I3QkEwMEMyQTUyNCAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50LmlkbCAqLywKIAkJ
CQk4Mzc5MzYzQzFGQkJCMEE0MDBDODAyM0MgLyogU2VydmljZVdvcmtlckNsaWVudERhdGEuY3Bw
ICovLAogCQkJCTgzNzkzNjNFMUZCQkIwQTUwMEM4MDIzQyAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50
RGF0YS5oICovLAotCQkJCTkzRkNEQjQ5MjY0NDU1RDYwMDQ2REQ3RCAvKiBTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllci5jcHAgKi8sCi0JCQkJODM3RDQ2MjUxRkEyQThDNTAwNTRFMUZBIC8q
IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmggKi8sCiAJCQkJNDEzRkM0Q0QxRkQxREQ4
QzAwNTQxQzRCIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRRdWVyeU9wdGlvbnMuaCAqLywKIAkJCQk0
NkVGMTQyMTFGOTdCN0JBMDBDMkE1MjQgLyogU2VydmljZVdvcmtlckNsaWVudHMuY3BwICovLAog
CQkJCTQ2RUYxNDIyMUY5N0I3QkEwMEMyQTUyNCAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50cy5oICov
LApAQCAtMjg5NDksNyArMjg5NDIsNiBAQAogCQkJCTQ1RkVBNUNEMTU2RERFOEMwMDY1NDEwMSAv
KiBEZWNpbWFsLmNwcCAqLywKIAkJCQk0NUZFQTVDRTE1NkRERThDMDA2NTQxMDEgLyogRGVjaW1h
bC5oICovLAogCQkJCUNEODNEMzVBMjExMTEwODIwMDc2RTExQyAvKiBEZWZlcnJhYmxlVGFzay5o
ICovLAotCQkJCTQxODI2QkYxMjNGQjU5NzAwMEI5MjJCMSAvKiBEb2N1bWVudElkZW50aWZpZXIu
aCAqLywKIAkJCQlBNzk1NDY0MjBCNUM0Q0I0MDA3QjQzOEYgLyogRHJhZ0RhdGEuY3BwICovLAog
CQkJCUE3QjZFNjlEMEIyOTFBOTYwMEQwNTI5RiAvKiBEcmFnRGF0YS5oICovLAogCQkJCUE3Q0ZC
M0NGMEI3RUQxMEEwMDcwQzMyRCAvKiBEcmFnSW1hZ2UuY3BwICovLApAQCAtMzMyMTQsNyArMzMy
MDYsNiBAQAogCQkJCUE4MTg1RjQ1MDk3NjU3NjYwMDU4MjZEOSAvKiBEb2N1bWVudEZvbnRMb2Fk
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTg1RjNEMDk3NjU3NjYwMDU4MjZEOSAvKiBEb2N1
bWVudEZyYWdtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDkyRjUxMzIyNjBGRkVFMDBGODdC
QjMgLyogRG9jdW1lbnRGdWxsc2NyZWVuLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTgyNkJGMjIz
RkI1OTc3MDBCOTIyQjEgLyogRG9jdW1lbnRJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDREVGREEwQjI3MTIyNjM4MDA1NTU5QTcgLyogRG9jdW1lbnRJbmxpbmVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk2NTZEMzczNjBBREJBNURFMDBBNDU1NEQgLyogRG9jdW1lbnRMb2FkZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCThBMTJFMzVEMTFGQTMzMjgwMDI1ODM2QSAvKiBEb2N1bWVudExv
YWRUaW1pbmcuaCBpbiBIZWFkZXJzICovLApAQCAtMzYwNjMsNyArMzYwNTQsNiBAQAogCQkJCUE1
ODFFRDEzMUZCMjg4Q0YwMENFRDRFQyAvKiBTZXJ2aWNlV29ya2VyQWdlbnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQ2RUYxNDJEMUY5N0I3RDgwMEMyQTUyNCAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQk4Mzc5MzYzRjFGQkJCMEI0MDBDODAyM0MgLyogU2Vydmlj
ZVdvcmtlckNsaWVudERhdGEuaCBpbiBIZWFkZXJzICovLAotCQkJCTgzN0Q0NjI3MUZBMkE4Q0Uw
MDU0RTFGQSAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNDE1MTlDQjgxRkQxRjAyRTAwN0Y2MjNDIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRRdWVy
eU9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2RUYxNDJDMUY5N0I3RDgwMEMyQTUyNCAv
KiBTZXJ2aWNlV29ya2VyQ2xpZW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM2OUZERkMxRkEx
MDJFMzAwQzFGRjFGIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRUeXBlLmggaW4gSGVhZGVycyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDBiNjMwYjdjY2M4N2UzZTRjMzllMWRlZGNkZjNh
M2U4OWE5ZjQxOWUuLmUxZjJlZWI5MzI2MDdkOGQyZThiZDgwNzJmNmIwNDU2YTk0NGZhYmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNTYzLDcgKzU2Myw3IEBAIHZvaWQgRG9jdW1lbnQ6
OmNvbmZpZ3VyZVNoYXJlZExvZ2dlcigpCiAKIHZvaWQgRG9jdW1lbnQ6OmFkZFRvRG9jdW1lbnRz
TWFwKCkKIHsKLSAgICBhdXRvIGFkZFJlc3VsdCA9IGFsbERvY3VtZW50c01hcCgpLmFkZChtX2lk
ZW50aWZpZXIsIHRoaXMpOworICAgIGF1dG8gYWRkUmVzdWx0ID0gYWxsRG9jdW1lbnRzTWFwKCku
YWRkKGlkZW50aWZpZXIoKSwgdGhpcyk7CiAgICAgQVNTRVJUX1VOVVNFRChhZGRSZXN1bHQsIGFk
ZFJlc3VsdC5pc05ld0VudHJ5KTsKIAogICAgIGNvbmZpZ3VyZVNoYXJlZExvZ2dlcigpOwpAQCAt
NTcxLDggKzU3MSw4IEBAIHZvaWQgRG9jdW1lbnQ6OmFkZFRvRG9jdW1lbnRzTWFwKCkKIAogdm9p
ZCBEb2N1bWVudDo6cmVtb3ZlRnJvbURvY3VtZW50c01hcCgpCiB7Ci0gICAgQVNTRVJUKGFsbERv
Y3VtZW50c01hcCgpLmNvbnRhaW5zKG1faWRlbnRpZmllcikpOwotICAgIGFsbERvY3VtZW50c01h
cCgpLnJlbW92ZShtX2lkZW50aWZpZXIpOworICAgIEFTU0VSVChhbGxEb2N1bWVudHNNYXAoKS5j
b250YWlucyhpZGVudGlmaWVyKCkpKTsKKyAgICBhbGxEb2N1bWVudHNNYXAoKS5yZW1vdmUoaWRl
bnRpZmllcigpKTsKICAgICBjb25maWd1cmVTaGFyZWRMb2dnZXIoKTsKIH0KIApAQCAtNjUzLDcg
KzY1Myw2IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IFNldHRpbmdz
JiBzZXR0aW5ncywgY29uc3QgVVJMJiB1cmwsIERvY3VtCiAgICAgLCBtX2lzU3ludGhlc2l6ZWQo
Y29uc3RydWN0aW9uRmxhZ3MgJiBTeW50aGVzaXplZCkKICAgICAsIG1faXNOb25SZW5kZXJlZFBs
YWNlaG9sZGVyKGNvbnN0cnVjdGlvbkZsYWdzICYgTm9uUmVuZGVyZWRQbGFjZWhvbGRlcikKICAg
ICAsIG1fb3JpZW50YXRpb25Ob3RpZmllcihjdXJyZW50T3JpZW50YXRpb24oZnJhbWUpKQotICAg
ICwgbV9pZGVudGlmaWVyKERvY3VtZW50SWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKICAgICAsIG1f
dW5kb01hbmFnZXIoVW5kb01hbmFnZXI6OmNyZWF0ZSgqdGhpcykpCiAgICAgLCBtX2VkaXRvciht
YWtlVW5pcXVlUmVmPEVkaXRvcj4oKnRoaXMpKQogICAgICwgbV9zZWxlY3Rpb24obWFrZVVuaXF1
ZVJlZjxGcmFtZVNlbGVjdGlvbj4odGhpcykpCkBAIC04NzI2LDcgKzg3MjUsNyBAQCB2b2lkIERv
Y3VtZW50OjpzZXRTZXJ2aWNlV29ya2VyQ29ubmVjdGlvbihTV0NsaWVudENvbm5lY3Rpb24qIHNl
cnZpY2VXb3JrZXJDb25uZQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9zZXJ2aWNlV29y
a2VyQ29ubmVjdGlvbikKLSAgICAgICAgbV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbi0+dW5yZWdp
c3RlclNlcnZpY2VXb3JrZXJDbGllbnQoaWRlbnRpZmllcigpKTsKKyAgICAgICAgbV9zZXJ2aWNl
V29ya2VyQ29ubmVjdGlvbi0+dW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoY29udGV4dElk
ZW50aWZpZXIoKSk7CiAKICAgICBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uID0gc2VydmljZVdv
cmtlckNvbm5lY3Rpb247CiAKQEAgLTg3MzQsNyArODczMyw3IEBAIHZvaWQgRG9jdW1lbnQ6OnNl
dFNlcnZpY2VXb3JrZXJDb25uZWN0aW9uKFNXQ2xpZW50Q29ubmVjdGlvbiogc2VydmljZVdvcmtl
ckNvbm5lCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1dG8gY29udHJvbGxpbmdTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciA9IGFjdGl2ZVNlcnZpY2VXb3JrZXIoKSA/IHN0ZDo6
bWFrZV9vcHRpb25hbDxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcj4oYWN0aXZl
U2VydmljZVdvcmtlcigpLT5yZWdpc3RyYXRpb25JZGVudGlmaWVyKCkpIDogc3RkOjpudWxsb3B0
OwotICAgIG1fc2VydmljZVdvcmtlckNvbm5lY3Rpb24tPnJlZ2lzdGVyU2VydmljZVdvcmtlckNs
aWVudCh0b3BPcmlnaW4oKSwgU2VydmljZVdvcmtlckNsaWVudERhdGE6OmZyb20oKnRoaXMsICpz
ZXJ2aWNlV29ya2VyQ29ubmVjdGlvbiksIGNvbnRyb2xsaW5nU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbklkZW50aWZpZXIsIHVzZXJBZ2VudCh1cmwoKSkpOworICAgIG1fc2VydmljZVdvcmtlckNv
bm5lY3Rpb24tPnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudCh0b3BPcmlnaW4oKSwgU2Vydmlj
ZVdvcmtlckNsaWVudERhdGE6OmZyb20oKnRoaXMpLCBjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25JZGVudGlmaWVyLCB1c2VyQWdlbnQodXJsKCkpKTsKIH0KICNlbmRpZgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCmluZGV4IGNkMDNkZDE3NGU3MjM5OTgyMmNlYWE0Y2I4NDcyYzRjMTgy
Y2QyYTQuLjIzZTkwMDVhNjBhNGM3NWE0YTdkMTRmYjgzMzFjYWQyNWQzOGZjZjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5PcGVu
ZXJQb2xpY3kuaCIKICNpbmNsdWRlICJEaXNhYmxlZEFkYXB0YXRpb25zLmgiCiAjaW5jbHVkZSAi
RG9jdW1lbnRFdmVudFRpbWluZy5oIgotI2luY2x1ZGUgIkRvY3VtZW50SWRlbnRpZmllci5oIgog
I2luY2x1ZGUgIkVsZW1lbnRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiRm9jdXNPcHRpb25zLmgi
CiAjaW5jbHVkZSAiRm9udFNlbGVjdG9yQ2xpZW50LmgiCkBAIC0zOTcsOSArMzk2LDcgQEAgcHVi
bGljOgogCiAgICAgdm9pZCByZW1vdmVkTGFzdFJlZigpOwogCi0gICAgRG9jdW1lbnRJZGVudGlm
aWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50aWZpZXI7IH0KLQotICAgIHVz
aW5nIERvY3VtZW50c01hcCA9IEhhc2hNYXA8RG9jdW1lbnRJZGVudGlmaWVyLCBEb2N1bWVudCo+
OworICAgIHVzaW5nIERvY3VtZW50c01hcCA9IEhhc2hNYXA8U2NyaXB0RXhlY3V0aW9uQ29udGV4
dElkZW50aWZpZXIsIERvY3VtZW50Kj47CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIERvY3Vt
ZW50c01hcDo6VmFsdWVzSXRlcmF0b3JSYW5nZSBhbGxEb2N1bWVudHMoKTsKICAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgRG9jdW1lbnRzTWFwJiBhbGxEb2N1bWVudHNNYXAoKTsKIApAQCAtMjE4
OCw4ICsyMTg1LDYgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8RG9jdW1lbnRUaW1lbGluZT4gbV90
aW1lbGluZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RG9jdW1lbnRUaW1lbGluZXNDb250cm9sbGVy
PiBtX3RpbWVsaW5lc0NvbnRyb2xsZXI7CiAKLSAgICBEb2N1bWVudElkZW50aWZpZXIgbV9pZGVu
dGlmaWVyOwotCiAgICAgUmVmUHRyPFdpbmRvd0V2ZW50TG9vcD4gbV9ldmVudExvb3A7CiAgICAg
c3RkOjp1bmlxdWVfcHRyPEV2ZW50TG9vcFRhc2tHcm91cD4gbV9kb2N1bWVudFRhc2tHcm91cDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRDb250ZXh0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudENvbnRleHQuaAppbmRleCA2Y2RmMDJhMTQ2YWM3MTAwNTNl
MGMzMjA0Yzk2MjY0ODFmYzcxNmQ5Li5hZTM0YWRkYTQzNzgzN2NiYmRlMDk3N2FlMzRhMmUzM2M1
OWRjYzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudENvbnRleHQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudENvbnRleHQuaApAQCAtMjUsMTAgKzI1LDEw
IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiRG9jdW1lbnRJZGVudGlmaWVyLmgiCiAj
aW5jbHVkZSAiRWxlbWVudElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNp
bmNsdWRlICJQYWdlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzYsNyArMzYsNyBA
QCBzdHJ1Y3QgRWxlbWVudENvbnRleHQgewogICAgIEZsb2F0UmVjdCBib3VuZGluZ1JlY3Q7CiAK
ICAgICBQYWdlSWRlbnRpZmllciB3ZWJQYWdlSWRlbnRpZmllcjsKLSAgICBEb2N1bWVudElkZW50
aWZpZXIgZG9jdW1lbnRJZGVudGlmaWVyOworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyIGRvY3VtZW50SWRlbnRpZmllcjsKICAgICBFbGVtZW50SWRlbnRpZmllciBlbGVtZW50
SWRlbnRpZmllcjsKIAogICAgIH5FbGVtZW50Q29udGV4dCgpID0gZGVmYXVsdDsKQEAgLTc3LDcg
Kzc3LDggQEAgc3RkOjpvcHRpb25hbDxFbGVtZW50Q29udGV4dD4gRWxlbWVudENvbnRleHQ6OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAg
IGNvbnRleHQud2ViUGFnZUlkZW50aWZpZXIgPSAqcGFnZUlkZW50aWZpZXI7CiAKLSAgICBhdXRv
IGRvY3VtZW50SWRlbnRpZmllciA9IERvY3VtZW50SWRlbnRpZmllcjo6ZGVjb2RlKGRlY29kZXIp
OworICAgIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IGRv
Y3VtZW50SWRlbnRpZmllcjsKKyAgICBkZWNvZGVyID4+IGRvY3VtZW50SWRlbnRpZmllcjsKICAg
ICBpZiAoIWRvY3VtZW50SWRlbnRpZmllcikKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
ICAgICBjb250ZXh0LmRvY3VtZW50SWRlbnRpZmllciA9ICpkb2N1bWVudElkZW50aWZpZXI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuaAppbmRleCAwZTczOTcxNDNkYzU2MzgwMjYzOWE3NWJl
YTNkODE5YjE1ZDk4ZTc5Li4zZTU5ODg0OWVmNTY2YTFmNzQ5YzEzNmFiOTdjNDkyYzhmZDA5ZTFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKQEAgLTIzLDkgKzIzLDkgQEAKIAogI2lu
Y2x1ZGUgIkNvbnRhaW5lck5vZGUuaCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3ku
aCIKLSNpbmNsdWRlICJEb2N1bWVudElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJMb2FkYWJsZVNj
cmlwdC5oIgogI2luY2x1ZGUgIlJlZmVycmVyUG9saWN5LmgiCisjaW5jbHVkZSAiU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJVc2VyR2VzdHVyZUluZGljYXRv
ci5oIgogI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQv
VGV4dFBvc2l0aW9uLmg+CkBAIC0xMzksNyArMTM5LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8
TG9hZGFibGVTY3JpcHQ+IG1fbG9hZGFibGVTY3JpcHQ7CiAKICAgICAvLyBodHRwczovL2h0bWwu
c3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zY3JpcHRpbmcuaHRtbCNwcmVwYXJhdGlvbi10aW1l
LWRvY3VtZW50Ci0gICAgRG9jdW1lbnRJZGVudGlmaWVyIG1fcHJlcGFyYXRpb25UaW1lRG9jdW1l
bnRJZGVudGlmaWVyOworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIG1fcHJl
cGFyYXRpb25UaW1lRG9jdW1lbnRJZGVudGlmaWVyOwogCiAgICAgTW9ub3RvbmljVGltZSBtX2Ny
ZWF0aW9uVGltZTsKICAgICBSZWZQdHI8VXNlckdlc3R1cmVUb2tlbj4gbV91c2VyR2VzdHVyZVRv
a2VuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCmlu
ZGV4IDI1ZmE0YzM2NTgxYWFhNDZjNjgwOTVlYTU4YWNjZmZhN2EzNWQ4NDkuLjdiYjRhNjkxYWM1
MzdiN2ZlZmNhNjBjYWEyYzI2YTRiZmI4MjNhNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAgLTExNCwzMCArMTE0LDE3IEBAIHB1YmxpYzoK
IH07CiAKIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKQor
ICAgIDogbV9jb250ZXh0SWRlbnRpZmllcihTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
cjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCkpCiB7Ci19Ci0KLVNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmNvbnRleHRJZGVudGlmaWVyKCkgY29u
c3QKLXsKLSAgICBBU1NFUlQoaXNDb250ZXh0VGhyZWFkKCkpOwotICAgIGlmICghbV9jb250ZXh0
SWRlbnRpZmllcikgewotICAgICAgICBMb2NrZXIgbG9ja2VyIHsgYWxsU2NyaXB0RXhlY3V0aW9u
Q29udGV4dHNNYXBMb2NrIH07Ci0KLSAgICAgICAgbV9jb250ZXh0SWRlbnRpZmllciA9IFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwotCi0gICAgICAgIEFTU0VS
VCghYWxsU2NyaXB0RXhlY3V0aW9uQ29udGV4dHNNYXAoKS5jb250YWlucyhtX2NvbnRleHRJZGVu
dGlmaWVyKSk7Ci0gICAgICAgIGFsbFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRzTWFwKCkuYWRkKG1f
Y29udGV4dElkZW50aWZpZXIsIGNvbnN0X2Nhc3Q8U2NyaXB0RXhlY3V0aW9uQ29udGV4dCo+KHRo
aXMpKTsKLSAgICB9Ci0gICAgcmV0dXJuIG1fY29udGV4dElkZW50aWZpZXI7CisgICAgTG9ja2Vy
IGxvY2tlciB7IGFsbFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRzTWFwTG9jayB9OworICAgIGFsbFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRzTWFwKCkuYWRkKG1fY29udGV4dElkZW50aWZpZXIsIGNvbnN0
X2Nhc3Q8U2NyaXB0RXhlY3V0aW9uQ29udGV4dCo+KHRoaXMpKTsKIH0KIAogdm9pZCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0OjpyZW1vdmVGcm9tQ29udGV4dHNNYXAoKQogewotICAgIGlmIChtX2Nv
bnRleHRJZGVudGlmaWVyKSB7Ci0gICAgICAgIExvY2tlciBsb2NrZXIgeyBhbGxTY3JpcHRFeGVj
dXRpb25Db250ZXh0c01hcExvY2sgfTsKLSAgICAgICAgQVNTRVJUKGFsbFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRzTWFwKCkuY29udGFpbnMobV9jb250ZXh0SWRlbnRpZmllcikpOwotICAgICAgICBh
bGxTY3JpcHRFeGVjdXRpb25Db250ZXh0c01hcCgpLnJlbW92ZShtX2NvbnRleHRJZGVudGlmaWVy
KTsKLSAgICB9CisgICAgTG9ja2VyIGxvY2tlciB7IGFsbFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRz
TWFwTG9jayB9OworICAgIEFTU0VSVChhbGxTY3JpcHRFeGVjdXRpb25Db250ZXh0c01hcCgpLmNv
bnRhaW5zKG1fY29udGV4dElkZW50aWZpZXIpKTsKKyAgICBhbGxTY3JpcHRFeGVjdXRpb25Db250
ZXh0c01hcCgpLnJlbW92ZShtX2NvbnRleHRJZGVudGlmaWVyKTsKIH0KIAogI2lmICFBU1NFUlRf
RU5BQkxFRApAQCAtMTY5LDEwICsxNTYsOSBAQCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojp+U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpCiAgICAgY2hlY2tDb25zaXN0ZW5jeSgpOwogCiAjaWYgQVNT
RVJUX0VOQUJMRUQKLSAgICBpZiAobV9jb250ZXh0SWRlbnRpZmllcikgeworICAgIHsKICAgICAg
ICAgTG9ja2VyIGxvY2tlciB7IGFsbFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRzTWFwTG9jayB9Owot
ICAgICAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFhbGxTY3JpcHRFeGVjdXRpb25Db250ZXh0c01h
cCgpLmNvbnRhaW5zKG1fY29udGV4dElkZW50aWZpZXIpLAotICAgICAgICAgICAgIkEgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCBzdWJjbGFzcyBpbnN0YW5jZSBpbXBsZW1lbnRpbmcgcG9zdFRhc2sg
c2hvdWxkIGhhdmUgYWxyZWFkeSByZW1vdmVkIGl0c2VsZiBmcm9tIHRoZSBtYXAiKTsKKyAgICAg
ICAgQVNTRVJUX1dJVEhfTUVTU0FHRSghYWxsU2NyaXB0RXhlY3V0aW9uQ29udGV4dHNNYXAoKS5j
b250YWlucyhtX2NvbnRleHRJZGVudGlmaWVyKSwgIkEgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCBz
dWJjbGFzcyBpbnN0YW5jZSBpbXBsZW1lbnRpbmcgcG9zdFRhc2sgc2hvdWxkIGhhdmUgYWxyZWFk
eSByZW1vdmVkIGl0c2VsZiBmcm9tIHRoZSBtYXAiKTsKICAgICB9CiAKICAgICBtX2luU2NyaXB0
RXhlY3V0aW9uQ29udGV4dERlc3RydWN0b3IgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
Y3JpcHRFeGVjdXRpb25Db250ZXh0LmgKaW5kZXggZjc5YzNlZGM4OGQzZWZmMTE2YTVhNjU4MzY0
OGNkOGFmYzFlYTM5MC4uNjU3NGMzM2Y3MWU0Njc1YzkxNmE5MDYyMTMxYzQ5MjViMWEyMzRmYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCkBAIC0yODMs
NyArMjgzLDkgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIHBvc3RU
YXNrVG8oU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIFRhc2smJik7CiAgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIGJvb2wgZW5zdXJlT25Db250ZXh0VGhyZWFkKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyLCBUYXNrJiYpOwogCi0gICAgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dElkZW50aWZpZXIgY29udGV4dElkZW50aWZpZXIoKSBjb25zdDsKKyAgICAvLyBGSVhNRTog
UG9ydCBjYWxsIHNpdGVzIHRvIGlkZW50aWZpZXIoKSBhbmQgZHJvcCB0aGlzIGZ1bmN0aW9uLgor
ICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZGVudGlmaWVyKCkg
Y29uc3QgeyByZXR1cm4gbV9jb250ZXh0SWRlbnRpZmllcjsgfQorICAgIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHRJ
ZGVudGlmaWVyOyB9CiAKIHByb3RlY3RlZDoKICAgICBjbGFzcyBBZGRDb25zb2xlTWVzc2FnZVRh
c2sgOiBwdWJsaWMgVGFzayB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNw
cAppbmRleCAzOWNlNWZkNDFkNjY5OTkyOGQ4YjkwMGNiNGY1OGM5NjI3YTY5NWRlLi4xZTE5YzYw
MjA4Mzc3MTJmYjUxNjkwNmE4OGZjY2UxOWY5NmJhNDI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTE1MCwxMyArMTUwLDEzIEBAIHN0YXRpYyB2b2lkIHNl
dEFsbERlZmVyc0xvYWRpbmcoY29uc3QgUmVzb3VyY2VMb2FkZXJNYXAmIGxvYWRlcnMsIGJvb2wg
ZGVmZXJzKQogICAgICAgICBsb2FkZXItPnNldERlZmVyc0xvYWRpbmcoZGVmZXJzKTsKIH0KIAot
c3RhdGljIEhhc2hNYXA8RG9jdW1lbnRJZGVudGlmaWVyLCBEb2N1bWVudExvYWRlcio+JiB0ZW1w
b3JhcnlJZGVudGlmaWVyVG9Mb2FkZXJNYXAoKQorc3RhdGljIEhhc2hNYXA8U2NyaXB0RXhlY3V0
aW9uQ29udGV4dElkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKj4mIHRlbXBvcmFyeUlkZW50aWZp
ZXJUb0xvYWRlck1hcCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8RG9j
dW1lbnRJZGVudGlmaWVyLCBEb2N1bWVudExvYWRlcio+PiBtYXA7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEhhc2hNYXA8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIERvY3Vt
ZW50TG9hZGVyKj4+IG1hcDsKICAgICByZXR1cm4gbWFwLmdldCgpOwogfQogCi1Eb2N1bWVudExv
YWRlciogRG9jdW1lbnRMb2FkZXI6OmZyb21UZW1wb3JhcnlEb2N1bWVudElkZW50aWZpZXIoRG9j
dW1lbnRJZGVudGlmaWVyIGlkZW50aWZpZXIpCitEb2N1bWVudExvYWRlciogRG9jdW1lbnRMb2Fk
ZXI6OmZyb21UZW1wb3JhcnlEb2N1bWVudElkZW50aWZpZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dElkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICByZXR1cm4gdGVtcG9yYXJ5SWRlbnRpZmll
clRvTG9hZGVyTWFwKCkuZ2V0KGlkZW50aWZpZXIpOwogfQpAQCAtMjEwNiw3ICsyMTA2LDcgQEAg
dm9pZCBEb2N1bWVudExvYWRlcjo6bG9hZE1haW5SZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QmJiBy
ZXF1ZXN0KQogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICBpZiAoIW1fdGVtcG9yYXJ5
U2VydmljZVdvcmtlckNsaWVudCkgewogICAgICAgICAvLyBUaGUgbWFpbiBuYXZpZ2F0aW9uIGxv
YWQgd2lsbCB0cmlnZ2VyIHRoZSByZWdpc3RyYXRpb24gb2YgdGhlIHRlbXAgY2xpZW50LgotICAg
ICAgICBtX3RlbXBvcmFyeVNlcnZpY2VXb3JrZXJDbGllbnQgPSBEb2N1bWVudElkZW50aWZpZXI6
OmdlbmVyYXRlKCk7CisgICAgICAgIG1fdGVtcG9yYXJ5U2VydmljZVdvcmtlckNsaWVudCA9IFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKTsKICAg
ICAgICAgQVNTRVJUKCF0ZW1wb3JhcnlJZGVudGlmaWVyVG9Mb2FkZXJNYXAoKS5jb250YWlucygq
bV90ZW1wb3JhcnlTZXJ2aWNlV29ya2VyQ2xpZW50KSk7CiAgICAgICAgIHRlbXBvcmFyeUlkZW50
aWZpZXJUb0xvYWRlck1hcCgpLmFkZCgqbV90ZW1wb3JhcnlTZXJ2aWNlV29ya2VyQ2xpZW50LCB0
aGlzKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRM
b2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCmluZGV4IDRm
YmZkNzEyMDE5OWQyN2NmYTg3YmRkNTk2NzM3MTA2YmNlMDhkYjAuLjEyNjFkNjI3NGJiMjA2N2Fl
YzU0MzQ3MWM3MWFhOWI0OGY2YjA5YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Eb2N1bWVudExvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRlci5oCkBAIC0zNSw3ICszNSw2IEBACiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5
Q2xpZW50LmgiCiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kuaCIKICNpbmNsdWRl
ICJEZXZpY2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmgiCi0jaW5jbHVkZSAi
RG9jdW1lbnRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkVGltaW5nLmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnRXcml0ZXIuaCIKICNpbmNsdWRlICJGcmFtZURlc3RydWN0aW9uT2Jz
ZXJ2ZXIuaCIKQEAgLTQ2LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRlck9wdGlv
bnMuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJl
c3BvbnNlLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaCIK
ICNpbmNsdWRlICJTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEuaCIKICNpbmNsdWRlICJTdHJpbmdXaXRoRGlyZWN0
aW9uLmgiCkBAIC0xNjAsNyArMTYwLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBEb2N1bWVudExvYWRlcihyZXF1ZXN0LCBkYXRhKSk7CiAgICAgfQogCi0gICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIERvY3VtZW50TG9hZGVyKiBmcm9tVGVtcG9yYXJ5RG9jdW1lbnRJ
ZGVudGlmaWVyKERvY3VtZW50SWRlbnRpZmllcik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IERvY3VtZW50TG9hZGVyKiBmcm9tVGVtcG9yYXJ5RG9jdW1lbnRJZGVudGlmaWVyKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwg
fkRvY3VtZW50TG9hZGVyKCk7CiAKQEAgLTY2NSw3ICs2NjUsNyBAQCBwcml2YXRlOgogCiAjaWYg
RU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbkRhdGE+IG1fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE7Ci0gICAgc3Rk
OjpvcHRpb25hbDxEb2N1bWVudElkZW50aWZpZXI+IG1fdGVtcG9yYXJ5U2VydmljZVdvcmtlckNs
aWVudDsKKyAgICBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
PiBtX3RlbXBvcmFyeVNlcnZpY2VXb3JrZXJDbGllbnQ7CiAjZW5kaWYKIAogI2lmIEFTU0VSVF9F
TkFCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRmV0Y2hPcHRpb25zLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRmV0Y2hPcHRpb25zLmgKaW5kZXggMjdiOThhOTMyMzA3
ZmM1OGM0NTlkNzE1YzMxNGNjY2E2N2M0ZDhkYy4uZDE5ODcwNzE0NzU3ZWViYWIzYWYxYzljNGIy
YTdkMGY2YzcwNDc2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZldGNoT3B0
aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GZXRjaE9wdGlvbnMuaApAQCAtMjgs
OCArMjgsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkRvY3VtZW50SWRlbnRpZmll
ci5oIgogI2luY2x1ZGUgIlJlZmVycmVyUG9saWN5LmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0
aW9uQ29udGV4dElkZW50aWZpZXIuaCIKICNpbmNsdWRlIDx3dGYvTWFya2FibGUuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNTksNyArNTksNyBAQCBzdHJ1Y3QgRmV0
Y2hPcHRpb25zIHsKICAgICBSZWZlcnJlclBvbGljeSByZWZlcnJlclBvbGljeSB7IFJlZmVycmVy
UG9saWN5OjpFbXB0eVN0cmluZyB9OwogICAgIGJvb2wga2VlcEFsaXZlIHsgZmFsc2UgfTsKICAg
ICBTdHJpbmcgaW50ZWdyaXR5OwotICAgIE1hcmthYmxlPERvY3VtZW50SWRlbnRpZmllciwgRG9j
dW1lbnRJZGVudGlmaWVyOjpNYXJrYWJsZVRyYWl0cz4gY2xpZW50SWRlbnRpZmllcjsKKyAgICBz
dGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBjbGllbnRJZGVu
dGlmaWVyOwogfTsKIAogaW5saW5lIEZldGNoT3B0aW9uczo6RmV0Y2hPcHRpb25zKERlc3RpbmF0
aW9uIGRlc3RpbmF0aW9uLCBNb2RlIG1vZGUsIENyZWRlbnRpYWxzIGNyZWRlbnRpYWxzLCBDYWNo
ZSBjYWNoZSwgUmVkaXJlY3QgcmVkaXJlY3QsIFJlZmVycmVyUG9saWN5IHJlZmVycmVyUG9saWN5
LCBTdHJpbmcmJiBpbnRlZ3JpdHksIGJvb2wga2VlcEFsaXZlKQpAQCAtMjQ4LDcgKzI0OCw3IEBA
IHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiBpbmxpbmUgdm9pZCBGZXRjaE9wdGlvbnM6OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGVuY29kZVBlcnNpc3RlbnQoZW5jb2Rl
cik7Ci0gICAgZW5jb2RlciA8PCBjbGllbnRJZGVudGlmaWVyLmFzT3B0aW9uYWwoKTsKKyAgICBl
bmNvZGVyIDw8IGNsaWVudElkZW50aWZpZXI7CiB9CiAKIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
CkBAIC0yNTgsNyArMjU4LDcgQEAgaW5saW5lIHN0ZDo6b3B0aW9uYWw8RmV0Y2hPcHRpb25zPiBG
ZXRjaE9wdGlvbnM6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogICAgIGlmICghZGVjb2RlUGVy
c2lzdGVudChkZWNvZGVyLCBvcHRpb25zKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
IAotICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxEb2N1bWVudElkZW50aWZpZXI+PiBj
bGllbnRJZGVudGlmaWVyOworICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxTY3JpcHRF
eGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4+IGNsaWVudElkZW50aWZpZXI7CiAgICAgZGVjb2Rl
ciA+PiBjbGllbnRJZGVudGlmaWVyOwogICAgIGlmICghY2xpZW50SWRlbnRpZmllcikKICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDU0YzE5N2ZjMGY4Njc2M2UyNjlj
MTFiYjQ2Zjk1NjViMzQyYjkwNzQuLmQ1MTFlODM1MGI5NzViMzI1Y2U0Njc5MDcwOTlkYzY5ZDEy
MDU4MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlTG9hZGVyLmNwcApAQCAtNzcxLDcgKzc3MSw3IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2VM
b2FkZXI6OnByZXBhcmVGZXRjaChDYWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBDYWNoZWRSZXNv
dXJjCiAgICAgICAgIGlmICghcmVxdWVzdC5vcmlnaW4oKSkKICAgICAgICAgICAgIHJlcXVlc3Qu
c2V0T3JpZ2luKGRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpKTsKICNpZiBFTkFCTEUoU0VSVklD
RV9XT1JLRVIpCi0gICAgICAgIHJlcXVlc3Quc2V0Q2xpZW50SWRlbnRpZmllcklmTmVlZGVkKGRv
Y3VtZW50LT5pZGVudGlmaWVyKCkpOworICAgICAgICByZXF1ZXN0LnNldENsaWVudElkZW50aWZp
ZXJJZk5lZWRlZChkb2N1bWVudC0+Y29udGV4dElkZW50aWZpZXIoKSk7CiAgICAgICAgIGlmIChh
dXRvKiBhY3RpdmVTZXJ2aWNlV29ya2VyID0gZG9jdW1lbnQtPmFjdGl2ZVNlcnZpY2VXb3JrZXIo
KSkKICAgICAgICAgICAgIHJlcXVlc3Quc2V0U2VsZWN0ZWRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uSWRlbnRpZmllcklmTmVlZGVkKGFjdGl2ZVNlcnZpY2VXb3JrZXItPnJlZ2lzdHJhdGlvbklk
ZW50aWZpZXIoKSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5jcHAKaW5kZXggZWQzZGE2NGY1MGRiMTJlMjc0NzNj
YmVjNzVlMGUxM2FiYzNjNzRjZi4uZDRkYmM5ODUwZDk4ODg0NDQyZjg2MzIzM2QxOTVkNGNlYTQw
NDRmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlUmVxdWVzdC5jcHAKQEAgLTI3OSw3ICsyNzksNyBAQCB2b2lkIENhY2hlZFJlc291cmNl
UmVxdWVzdDo6c2V0RGVzdGluYXRpb25JZk5vdFNldChGZXRjaE9wdGlvbnM6OkRlc3RpbmF0aW9u
IGRlcwogfQogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotdm9pZCBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3Q6OnNldENsaWVudElkZW50aWZpZXJJZk5lZWRlZChEb2N1bWVudElkZW50aWZpZXIg
Y2xpZW50SWRlbnRpZmllcikKK3ZvaWQgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRDbGllbnRJ
ZGVudGlmaWVySWZOZWVkZWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50
SWRlbnRpZmllcikKIHsKICAgICBpZiAoIW1fb3B0aW9ucy5jbGllbnRJZGVudGlmaWVyKQogICAg
ICAgICBtX29wdGlvbnMuY2xpZW50SWRlbnRpZmllciA9IGNsaWVudElkZW50aWZpZXI7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgK
aW5kZXggZmNiNTM0ZjljM2M5ZTJmYjI4OTQ1NTMyZDJiMDg2MDQ3ODNmNTA0MC4uZDk4NWMxODBh
OGI0NmQ1YTI1MWJhMGViM2ZhYjk0MjdiMjQ4NzMzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaApAQCAtMTA2LDcgKzEwNiw3
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgU3RyaW5nIGFjY2VwdEhlYWRlclZhbHVlRnJvbVR5cGUo
Q2FjaGVkUmVzb3VyY2U6OlR5cGUpOwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotICAg
IHZvaWQgc2V0Q2xpZW50SWRlbnRpZmllcklmTmVlZGVkKERvY3VtZW50SWRlbnRpZmllcik7Cisg
ICAgdm9pZCBzZXRDbGllbnRJZGVudGlmaWVySWZOZWVkZWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dElkZW50aWZpZXIpOwogICAgIHZvaWQgc2V0U2VsZWN0ZWRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uSWRlbnRpZmllcklmTmVlZGVkKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVy
KTsKICAgICB2b2lkIHNldE5hdmlnYXRpb25TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YShj
b25zdCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhPiYpOwogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9QYWdlTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9tYWMvUGFnZU1hYy5tbQppbmRleCA0ZGEwNzU3NTYyYTkxMWVmM2Vi
NWMyYzk4ZjI3OTI4N2U2MGNjNmU0Li43YWNkNTk3YWZjODA3Nzk4YmFmMjA0ODk4NjdkMjYyNmVi
NzgyNGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9QYWdlTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1BhZ2VNYWMubW0KQEAgLTgxLDcgKzgxLDcgQEAg
dm9pZCBQYWdlOjpwbGF0Zm9ybUluaXRpYWxpemUoKQogICAgICAgICAgICAgV1RGTG9nQWx3YXlz
KCIldSBsaXZlIGRvY3VtZW50czoiLCBEb2N1bWVudDo6YWxsRG9jdW1lbnRzKCkuc2l6ZSgpKTsK
ICAgICAgICAgICAgIGZvciAoY29uc3QgYXV0byogZG9jdW1lbnQgOiBEb2N1bWVudDo6YWxsRG9j
dW1lbnRzKCkpIHsKICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBkb2N1bWVudFR5cGUgPSBp
czxTVkdEb2N1bWVudD4oZG9jdW1lbnQpID8gIlNWR0RvY3VtZW50IiA6ICJEb2N1bWVudCI7Ci0g
ICAgICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCIlcyAlcCAlbGx1IChyZWZDb3VudCAlZCwgcmVm
ZXJlbmNpbmdOb2RlQ291bnQgJWQpICVzIiwgZG9jdW1lbnRUeXBlLCBkb2N1bWVudCwgZG9jdW1l
bnQtPmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpLCBkb2N1bWVudC0+cmVmQ291bnQoKSwgZG9jdW1l
bnQtPnJlZmVyZW5jaW5nTm9kZUNvdW50KCksIGRvY3VtZW50LT51cmwoKS5zdHJpbmcoKS51dGY4
KCkuZGF0YSgpKTsKKyAgICAgICAgICAgICAgICBXVEZMb2dBbHdheXMoIiVzICVwICVzIChyZWZD
b3VudCAlZCwgcmVmZXJlbmNpbmdOb2RlQ291bnQgJWQpICVzIiwgZG9jdW1lbnRUeXBlLCBkb2N1
bWVudCwgZG9jdW1lbnQtPmlkZW50aWZpZXIoKS50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIGRv
Y3VtZW50LT5yZWZDb3VudCgpLCBkb2N1bWVudC0+cmVmZXJlbmNpbmdOb2RlQ291bnQoKSwgZG9j
dW1lbnQtPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogICAgICAgICAgICAgfQogICAg
ICAgICB9KTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Rv
Y3VtZW50SWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRG9jdW1lbnRJZGVu
dGlmaWVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDljOTNiMTU4MjhhOTNkNDcx
ZGIyZGMxZGM1YTRjMDk4ZDhmNDY4ZWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRG9jdW1lbnRJZGVudGlmaWVy
LmgKKysrIC9kZXYvbnVsbApAQCAtMSwzNSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBv
bmNlCi0KLSNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLWVudW0gRG9jdW1lbnRJZGVudGlmaWVyVHlwZSB7IH07Ci11c2luZyBEb2N1bWVu
dElkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPERvY3VtZW50SWRlbnRpZmllclR5cGU+Owot
Ci19CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzUXVhbGlmaWVk
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzUXVhbGlmaWVkLmgKaW5kZXggYjEz
ZjE2NjVlYTU4OGRlNzliYTM2MTY0NDVlNDRhY2IyODIwOTE5NC4uZTBhZmE2OWY0MDA4NzRlZGU1
ZGE5NWY2ZDY4MmVlYTVjNWQzMjExMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUHJvY2Vzc1F1YWxpZmllZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nl
c3NRdWFsaWZpZWQuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiUHJvY2Vzc0lkZW50
aWZpZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaGVyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvVGV4dFN0cmVhbS5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC05MCwxMSArOTEsMzkgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gISgqdGhpcyA9PSBvdGhlcik7CiAgICAgfQogCisgICAgc3RhdGljIFByb2Nl
c3NRdWFsaWZpZWQgZ2VuZXJhdGVUaHJlYWRTYWZlKCkgeyByZXR1cm4geyBUOjpnZW5lcmF0ZVRo
cmVhZFNhZmUoKSwgUHJvY2Vzczo6aWRlbnRpZmllcigpIH07IH0KKyAgICBzdGF0aWMgUHJvY2Vz
c1F1YWxpZmllZCBnZW5lcmF0ZSgpIHsgcmV0dXJuIHsgVDo6Z2VuZXJhdGUoKSwgUHJvY2Vzczo6
aWRlbnRpZmllcigpIH07IH0KKyAgICBTdHJpbmcgdG9TdHJpbmcoKSBjb25zdCB7IHJldHVybiBt
YWtlU3RyaW5nKG1fcHJvY2Vzc0lkZW50aWZpZXIudG9VSW50NjQoKSwgJy0nLCBtX29iamVjdC50
b1VJbnQ2NCgpKTsgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+IHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPFByb2Nlc3NRdWFsaWZpZWQ+IGRlY29kZShEZWNvZGVyJik7CisKIHBy
aXZhdGU6CiAgICAgVCBtX29iamVjdDsKICAgICBQcm9jZXNzSWRlbnRpZmllciBtX3Byb2Nlc3NJ
ZGVudGlmaWVyOwogfTsKIAordGVtcGxhdGUgPHR5cGVuYW1lIFQ+Cit0ZW1wbGF0ZTx0eXBlbmFt
ZSBFbmNvZGVyPiB2b2lkIFByb2Nlc3NRdWFsaWZpZWQ8VD46OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV9vYmplY3Q7CisgICAgZW5jb2RlciA8PCBt
X3Byb2Nlc3NJZGVudGlmaWVyOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3RlbXBsYXRl
PHR5cGVuYW1lIERlY29kZXI+IHN0ZDo6b3B0aW9uYWw8UHJvY2Vzc1F1YWxpZmllZDxUPj4gUHJv
Y2Vzc1F1YWxpZmllZDxUPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpv
cHRpb25hbDxUPiBvYmplY3Q7CisgICAgZGVjb2RlciA+PiBvYmplY3Q7CisgICAgaWYgKCFvYmpl
Y3QpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgc3RkOjpvcHRpb25hbDxQcm9j
ZXNzSWRlbnRpZmllcj4gcHJvY2Vzc0lkZW50aWZpZXI7CisgICAgZGVjb2RlciA+PiBwcm9jZXNz
SWRlbnRpZmllcjsKKyAgICBpZiAoIXByb2Nlc3NJZGVudGlmaWVyKQorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworICAgIHJldHVybiBQcm9jZXNzUXVhbGlmaWVkIHsgKm9iamVjdCwgKnBy
b2Nlc3NJZGVudGlmaWVyIH07Cit9CisKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogaW5saW5lIFRl
eHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFByb2Nlc3NRdWFsaWZp
ZWQ8VD4mIHByb2Nlc3NRdWFsaWZpZWQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaAppbmRleCBjZDRm
YzczMjM5YmMwYzJhOTRjNDhjMDYzNzI4MDZkNTNmZTNmOTE1Li4wMTIwZmIzNTViZmYzNDRlZjNj
NzNmMDQyMzdjN2YyZGJjZmZiZmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmgKQEAgLTI1LDExICsy
NSwxMiBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIlByb2Nlc3NRdWFsaWZpZWQuaCIK
ICNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGVudW0gU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXJUeXBlIHsgfTsKLXVzaW5n
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxTY3Jp
cHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllclR5cGU+OwordXNpbmcgU2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIgPSBQcm9jZXNzUXVhbGlmaWVkPE9iamVjdElkZW50aWZpZXI8U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXJUeXBlPj47CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92
aWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
TGliV2ViUlRDUHJvdmlkZXIuY3BwCmluZGV4IGZiNTJhNGI2ZGM2YWU0NzZkNGIwM2U3ZWFhMmRi
M2ZkMWI3YTVkZjEuLjM1YzczYTA5YzZlNDc2ODhmN2M3NmY5NDU0OGE3ODc5MTA3ZjEyYjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9M
aWJXZWJSVENQcm92aWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcApAQCAtMzIzLDcgKzMyMyw3IEBA
IHZvaWQgTGliV2ViUlRDUHJvdmlkZXI6OmVuYWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVy
ZmFjZXMoKQogICAgIG1fZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcyA9IHRy
dWU7CiB9CiAKLXJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJm
YWNlPiBMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlUGVlckNvbm5lY3Rpb24oRG9jdW1lbnRJZGVu
dGlmaWVyLCB3ZWJydGM6OlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXImIG9ic2VydmVyLCBydGM6OlBh
Y2tldFNvY2tldEZhY3RvcnkqLCB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjpSVEND
b25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKK3J0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6
OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlPiBMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlUGVlckNv
bm5lY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIHdlYnJ0Yzo6UGVlckNv
bm5lY3Rpb25PYnNlcnZlciYgb2JzZXJ2ZXIsIHJ0Yzo6UGFja2V0U29ja2V0RmFjdG9yeSosIHdl
YnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OlJUQ0NvbmZpZ3VyYXRpb24mJiBjb25maWd1
cmF0aW9uKQogewogICAgIC8vIERlZmF1bHQgV0sxIGltcGxlbWVudGF0aW9uLgogICAgIEFTU0VS
VChtX3VzZU5ldHdvcmtUaHJlYWRXaXRoU29ja2V0U2VydmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldl
YlJUQ1Byb3ZpZGVyLmgKaW5kZXggZWRlNTNjYTFmOTIzNzdiMjIzYjkxMTExMDA5ZDgxOWNmZDIw
YjU2OC4uMmMwMDliZTI3YmUzOTkzNWE4YmYxYTk4MjRmYTVkMjM5ODhiOTQzMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q1Byb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGli
d2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKQEAgLTI1LDEwICsyNSwxMCBAQAogCiAjcHJhZ21h
IG9uY2UKIAotI2luY2x1ZGUgIkRvY3VtZW50SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkxpYldl
YlJUQ01hY3Jvcy5oIgogI2luY2x1ZGUgIk1ETlNSZWdpc3RlckVycm9yLmgiCiAjaW5jbHVkZSAi
UlRDRGF0YUNoYW5uZWxSZW1vdGVIYW5kbGVyQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25I
YW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0V4cGVjdGVkLmg+CiAjaW5jbHVkZSA8d3RmL1VuaXF1
ZVJlZi5oPgpAQCAtMTAwLDcgKzEwMCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNyZWF0ZUVuY29k
aW5nQ29uZmlndXJhdGlvbihNZWRpYUVuY29kaW5nQ29uZmlndXJhdGlvbiYmLCBFbmNvZGluZ0Nv
bmZpZ3VyYXRpb25DYWxsYmFjayYmKTsKIAogI2lmIFVTRShMSUJXRUJSVEMpCi0gICAgdmlydHVh
bCBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZT4gY3Jl
YXRlUGVlckNvbm5lY3Rpb24oRG9jdW1lbnRJZGVudGlmaWVyLCB3ZWJydGM6OlBlZXJDb25uZWN0
aW9uT2JzZXJ2ZXImLCBydGM6OlBhY2tldFNvY2tldEZhY3RvcnkqLCB3ZWJydGM6OlBlZXJDb25u
ZWN0aW9uSW50ZXJmYWNlOjpSVENDb25maWd1cmF0aW9uJiYpOworICAgIHZpcnR1YWwgcnRjOjpz
Y29wZWRfcmVmcHRyPHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U+IGNyZWF0ZVBlZXJD
b25uZWN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCB3ZWJydGM6OlBlZXJD
b25uZWN0aW9uT2JzZXJ2ZXImLCBydGM6OlBhY2tldFNvY2tldEZhY3RvcnkqLCB3ZWJydGM6OlBl
ZXJDb25uZWN0aW9uSW50ZXJmYWNlOjpSVENDb25maWd1cmF0aW9uJiYpOwogCiAgICAgd2VicnRj
OjpQZWVyQ29ubmVjdGlvbkZhY3RvcnlJbnRlcmZhY2UqIGZhY3RvcnkoKTsKICAgICBMaWJXZWJS
VENBdWRpb01vZHVsZSogYXVkaW9Nb2R1bGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAppbmRleCBhNWVjZTA4MTBiZmVlNDYwMWQwMGVkYzZiYzVkN2FkZTAxMDVjN2QwLi5iYjUy
ODNmOGEyN2Y1ZDE4MDA3ZDM0YjU5MDMyODk3NjJhNzQ1OGMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCkBAIC0yNzU0LDEyICsyNzU0LDEyIEBAIHVuc2lnbmVkIEludGVybmFs
czo6bnVtYmVyT2ZSZXNpemVPYnNlcnZlcnMoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KSBjb25z
dAogCiB1aW50NjRfdCBJbnRlcm5hbHM6OmRvY3VtZW50SWRlbnRpZmllcihjb25zdCBEb2N1bWVu
dCYgZG9jdW1lbnQpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGRvY3VtZW50LmlkZW50aWZpZXIoKS50
b1VJbnQ2NCgpOworICAgIHJldHVybiBkb2N1bWVudC5pZGVudGlmaWVyKCkub2JqZWN0KCkudG9V
SW50NjQoKTsKIH0KIAogYm9vbCBJbnRlcm5hbHM6OmlzRG9jdW1lbnRBbGl2ZSh1aW50NjRfdCBk
b2N1bWVudElkZW50aWZpZXIpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIERvY3VtZW50OjphbGxEb2N1
bWVudHNNYXAoKS5jb250YWlucyhtYWtlT2JqZWN0SWRlbnRpZmllcjxEb2N1bWVudElkZW50aWZp
ZXJUeXBlPihkb2N1bWVudElkZW50aWZpZXIpKTsKKyAgICByZXR1cm4gRG9jdW1lbnQ6OmFsbERv
Y3VtZW50c01hcCgpLmNvbnRhaW5zKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIHsg
bWFrZU9iamVjdElkZW50aWZpZXI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXJUeXBl
Pihkb2N1bWVudElkZW50aWZpZXIpLCBQcm9jZXNzOjppZGVudGlmaWVyKCkgfSk7CiB9CiAKIHVp
bnQ2NF90IEludGVybmFsczo6c3RvcmFnZUFyZWFNYXBDb3VudCgpIGNvbnN0CkBAIC0yODAwLDEy
ICsyODAwLDcgQEAgYm9vbCBJbnRlcm5hbHM6OmlzQW55V29ya2xldEdsb2JhbFNjb3BlQWxpdmUo
KSBjb25zdAogCiBTdHJpbmcgSW50ZXJuYWxzOjpzZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmll
cihjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpIGNvbnN0CiB7Ci0jaWYgRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQotICAgIHJldHVybiBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciB7IFNlcnZp
Y2VXb3JrZXJQcm92aWRlcjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlckNvbm5lY3Rpb24oKS5z
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcigpLCBkb2N1bWVudC5pZGVudGlmaWVyKCkgfS50b1N0
cmluZygpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oZG9jdW1lbnQpOwotICAgIHJldHVybiBT
dHJpbmcoKTsKLSNlbmRpZgorICAgIHJldHVybiBkb2N1bWVudC5jb250ZXh0SWRlbnRpZmllcigp
LnRvU3RyaW5nKCk7CiB9CiAKIFJlZlB0cjxXaW5kb3dQcm94eT4gSW50ZXJuYWxzOjpvcGVuRHVt
bXlJbnNwZWN0b3JGcm9udGVuZChjb25zdCBTdHJpbmcmIHVybCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggZmU4
MjYwZWM3MTk3ZTE2YmVmZjNkOTMxMWRkZDkyOTY2MDYxMWM4Ny4uMjY5NDBiNTA0NWYxZjk2ZGE3
MzRmYjU3NDA5NThlNWZhMTI2Mjk3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5jcHAKQEAgLTQxLDExICs0MSwxMiBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBib29sIGRpc3BhdGNoVG9Db250ZXh0VGhy
ZWFkSWZOZWNlc3NhcnkoY29uc3QgRG9jdW1lbnRPcldvcmtlcklkZW50aWZpZXImIGNvbnRleHRJ
ZGVudGlmaWVyLCBGdW5jdGlvbjx2b2lkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKT4mJiB0YXNr
KQorc3RhdGljIGJvb2wgZGlzcGF0Y2hUb0NvbnRleHRUaHJlYWRJZk5lY2Vzc2FyeShjb25zdCBT
ZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyJiBjb250ZXh0SWRlbnRpZmllciwgRnVuY3Rp
b248dm9pZChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik+JiYgdGFzaykKIHsKICAgICBSRUxFQVNF
X0FTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgYm9vbCB3YXNQb3N0ZWQgPSBmYWxzZTsKLSAg
ICBzd2l0Y2hPbihjb250ZXh0SWRlbnRpZmllciwgWyZdIChEb2N1bWVudElkZW50aWZpZXIgaWRl
bnRpZmllcikgeworICAgIHN3aXRjaE9uKGNvbnRleHRJZGVudGlmaWVyLCBbJl0gKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGlkZW50aWZpZXIpIHsKKyAgICAgICAgLy8gRklYTUU6
IFdlIHNob3VsZCBwcm9iYWJseSBqdXN0IHVzZSBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpwb3N0
VGFza1RvKCkuCiAgICAgICAgIGF1dG8qIGRvY3VtZW50ID0gRG9jdW1lbnQ6OmFsbERvY3VtZW50
c01hcCgpLmdldChpZGVudGlmaWVyKTsKICAgICAgICAgaWYgKCFkb2N1bWVudCkKICAgICAgICAg
ICAgIHJldHVybjsKQEAgLTYzLDcgKzY0LDcgQEAgU1dDbGllbnRDb25uZWN0aW9uOjpTV0NsaWVu
dENvbm5lY3Rpb24oKSA9IGRlZmF1bHQ7CiAKIFNXQ2xpZW50Q29ubmVjdGlvbjo6flNXQ2xpZW50
Q29ubmVjdGlvbigpID0gZGVmYXVsdDsKIAotdm9pZCBTV0NsaWVudENvbm5lY3Rpb246OnNjaGVk
dWxlSm9iKERvY3VtZW50T3JXb3JrZXJJZGVudGlmaWVyIGNvbnRleHRJZGVudGlmaWVyLCBjb25z
dCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iRGF0YSkKK3ZvaWQgU1dDbGllbnRDb25uZWN0aW9u
OjpzY2hlZHVsZUpvYihTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyIGNvbnRleHRJZGVu
dGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iRGF0YSkKIHsKICAgICBhdXRv
IGFkZFJlc3VsdCA9IG1fc2NoZWR1bGVkSm9iU291cmNlcy5hZGQoam9iRGF0YS5pZGVudGlmaWVy
KCkuam9iSWRlbnRpZmllciwgY29udGV4dElkZW50aWZpZXIpOwogICAgIEFTU0VSVF9VTlVTRUQo
YWRkUmVzdWx0LCBhZGRSZXN1bHQuaXNOZXdFbnRyeSk7CkBAIC0xMTgsNyArMTE5LDcgQEAgdm9p
ZCBTV0NsaWVudENvbm5lY3Rpb246OnN0YXJ0U2NyaXB0RmV0Y2hGb3JTZXJ2ZXIoU2VydmljZVdv
cmtlckpvYklkZW50aWZpZXIgam8KIH0KIAogCi12b2lkIFNXQ2xpZW50Q29ubmVjdGlvbjo6cG9z
dE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoRG9jdW1lbnRJZGVudGlmaWVyIGRlc3RpbmF0
aW9uQ29udGV4dElkZW50aWZpZXIsIE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYgbWVzc2FnZSwg
U2VydmljZVdvcmtlckRhdGEmJiBzb3VyY2VEYXRhLCBTdHJpbmcmJiBzb3VyY2VPcmlnaW4pCit2
b2lkIFNXQ2xpZW50Q29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgZGVzdGluYXRpb25Db250ZXh0SWRlbnRp
ZmllciwgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2VyRGF0
YSYmIHNvdXJjZURhdGEsIFN0cmluZyYmIHNvdXJjZU9yaWdpbikKIHsKICAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOwogCkBAIC0yMjQsNyArMjI1LDcgQEAgdm9pZCBTV0NsaWVudENvbm5lY3Rp
b246OnNldFJlZ2lzdHJhdGlvblVwZGF0ZVZpYUNhY2hlKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b24KICAgICB9CiB9CiAKLXZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpub3RpZnlDbGllbnRzT2ZD
b250cm9sbGVyQ2hhbmdlKGNvbnN0IEhhc2hTZXQ8RG9jdW1lbnRJZGVudGlmaWVyPiYgY29udGV4
dElkZW50aWZpZXJzLCBTZXJ2aWNlV29ya2VyRGF0YSYmIG5ld0NvbnRyb2xsZXIpCit2b2lkIFNX
Q2xpZW50Q29ubmVjdGlvbjo6bm90aWZ5Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZShjb25zdCBI
YXNoU2V0PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiYgY29udGV4dElkZW50aWZp
ZXJzLCBTZXJ2aWNlV29ya2VyRGF0YSYmIG5ld0NvbnRyb2xsZXIpCiB7CiAgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQoIWNvbnRleHRJZGVudGlmaWVycy5pc0VtcHR5KCkp
OwpAQCAtMjYwLDcgKzI2MSw3IEBAIHZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpyZWdpc3RlclNl
cnZpY2VXb3JrZXJDbGllbnRzKCkKIHsKICAgICBmb3IgKGF1dG8qIGRvY3VtZW50IDogRG9jdW1l
bnQ6OmFsbERvY3VtZW50cygpKSB7CiAgICAgICAgIGF1dG8gY29udHJvbGxpbmdTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciA9IGRvY3VtZW50LT5hY3RpdmVTZXJ2aWNlV29ya2Vy
KCkgPyBzdGQ6Om1ha2Vfb3B0aW9uYWw8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZp
ZXI+KGRvY3VtZW50LT5hY3RpdmVTZXJ2aWNlV29ya2VyKCktPnJlZ2lzdHJhdGlvbklkZW50aWZp
ZXIoKSkgOiBzdGQ6Om51bGxvcHQ7Ci0gICAgICAgIHJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVu
dChkb2N1bWVudC0+dG9wT3JpZ2luKCksIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjpmcm9tKCpk
b2N1bWVudCwgKnRoaXMpLCBjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVu
dGlmaWVyLCBkb2N1bWVudC0+dXNlckFnZW50KGRvY3VtZW50LT51cmwoKSkpOworICAgICAgICBy
ZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoZG9jdW1lbnQtPnRvcE9yaWdpbigpLCBTZXJ2aWNl
V29ya2VyQ2xpZW50RGF0YTo6ZnJvbSgqZG9jdW1lbnQpLCBjb250cm9sbGluZ1NlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBkb2N1bWVudC0+dXNlckFnZW50KGRvY3VtZW50LT51
cmwoKSkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IDEzN2U5MzU4NzBmNjkzMjY0M2FjYTI2OTIw
ZjM3NmVkNzA5MWE2ZWMuLjFmYTE3ZjllOGNkYzJlZDE4OGY3NTc3ZDRiMTRiZGY5Y2IwYjJhMGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5l
Y3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25u
ZWN0aW9uLmgKQEAgLTI3LDEwICsyNywxMCBAQAogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQogCi0jaW5jbHVkZSAiRG9jdW1lbnRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9u
T3IuaCIKICNpbmNsdWRlICJQdXNoUGVybWlzc2lvblN0YXRlLmgiCiAjaW5jbHVkZSAiUHVzaFN1
YnNjcmlwdGlvbkRhdGEuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
Zmllci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJKb2IuaCIKICNpbmNsdWRlICJTZXJ2aWNl
V29ya2VyVHlwZXMuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KQEAgLTUw
LDcgKzUwLDYgQEAgZW51bSBjbGFzcyBTaG91bGROb3RpZnlXaGVuUmVzb2x2ZWQgOiBib29sOwog
c3RydWN0IEV4Y2VwdGlvbkRhdGE7CiBzdHJ1Y3QgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHM7CiBz
dHJ1Y3QgU2VydmljZVdvcmtlckNsaWVudERhdGE7Ci1zdHJ1Y3QgU2VydmljZVdvcmtlckNsaWVu
dElkZW50aWZpZXI7CiBzdHJ1Y3QgU2VydmljZVdvcmtlckRhdGE7CiBzdHJ1Y3QgU2VydmljZVdv
cmtlckZldGNoUmVzdWx0Owogc3RydWN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhOwpA
QCAtNzAsOSArNjksOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgYWRkU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbkluU2VydmVyKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlm
aWVyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JblNlcnZlcihTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcikgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCBzY2hlZHVsZVVucmVnaXN0ZXJKb2JJblNlcnZlcihTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uSWRlbnRpZmllciwgRG9jdW1lbnRPcldvcmtlcklkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8Ym9vbD4mJik+JiYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgc2NoZWR1bGVVbnJlZ2lzdGVySm9iSW5TZXJ2ZXIoU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8Ym9vbD4mJik+JiYpID0gMDsKIAotICAgIFdF
QkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUpvYihEb2N1bWVudE9yV29ya2VySWRl
bnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVKb2IoU2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmll
ciwgY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZXNvbHZlUmVnaXN0cmF0aW9uUHJvbWlzZShjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
S2V5JikgPSAwOwogCkBAIC04Miw3ICs4MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wg
bWF5SGF2ZVNlcnZpY2VXb3JrZXJSZWdpc3RlcmVkRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3Jp
Z2luRGF0YSYpIGNvbnN0ID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlclNlcnZpY2VX
b3JrZXJDbGllbnQoY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwgY29uc3QgU2Vydmlj
ZVdvcmtlckNsaWVudERhdGEmLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25JZGVudGlmaWVyPiYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50KSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIHVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KERvY3VtZW50SWRlbnRp
ZmllcikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVu
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcikgPSAwOwogCiAgICAgdmlydHVhbCB2
b2lkIGZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoY29uc3QgU2VydmljZVdvcmtlckZldGNo
UmVzdWx0JikgPSAwOwogCkBAIC0xMDksMTMgKzEwOCwxMyBAQCBwcm90ZWN0ZWQ6CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBqb2JSZWplY3RlZEluU2VydmVyKFNlcnZpY2VXb3JrZXJKb2JJZGVu
dGlmaWVyLCBjb25zdCBFeGNlcHRpb25EYXRhJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBy
ZWdpc3RyYXRpb25Kb2JSZXNvbHZlZEluU2VydmVyKFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVy
LCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYmLCBTaG91bGROb3RpZnlXaGVuUmVzb2x2
ZWQpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RhcnRTY3JpcHRGZXRjaEZvclNlcnZlcihT
ZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bktleSYsIEZldGNoT3B0aW9uczo6Q2FjaGUpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcG9z
dE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoRG9jdW1lbnRJZGVudGlmaWVyIGRlc3RpbmF0
aW9uQ29udGV4dElkZW50aWZpZXIsIE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYsIFNlcnZpY2VX
b3JrZXJEYXRhJiYgc291cmNlLCBTdHJpbmcmJiBzb3VyY2VPcmlnaW4pOworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dElkZW50aWZpZXIgZGVzdGluYXRpb25Db250ZXh0SWRlbnRpZmllciwgTWVzc2Fn
ZVdpdGhNZXNzYWdlUG9ydHMmJiwgU2VydmljZVdvcmtlckRhdGEmJiBzb3VyY2UsIFN0cmluZyYm
IHNvdXJjZU9yaWdpbik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVSZWdpc3RyYXRp
b25TdGF0ZShTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvblN0YXRlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJEYXRh
PiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBkYXRlV29ya2VyU3RhdGUoU2VydmljZVdv
cmtlcklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJTdGF0ZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBmaXJlVXBkYXRlRm91bmRFdmVudChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRp
Zmllcik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRSZWdpc3RyYXRpb25MYXN0VXBkYXRl
VGltZShTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgV2FsbFRpbWUpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0UmVnaXN0cmF0aW9uVXBkYXRlVmlhQ2FjaGUoU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJVcGRhdGVWaWFDYWNo
ZSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBub3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hh
bmdlKGNvbnN0IEhhc2hTZXQ8RG9jdW1lbnRJZGVudGlmaWVyPiYgY29udGV4dElkZW50aWZpZXJz
LCBTZXJ2aWNlV29ya2VyRGF0YSYmIG5ld0NvbnRyb2xsZXIpOworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgbm90aWZ5Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZShjb25zdCBIYXNoU2V0PFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiYgY29udGV4dElkZW50aWZpZXJzLCBTZXJ2aWNl
V29ya2VyRGF0YSYmIG5ld0NvbnRyb2xsZXIpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBj
bGVhclBlbmRpbmdKb2JzKCk7CiAKQEAgLTEyNSw3ICsxMjQsNyBAQCBwcml2YXRlOgogICAgIGVu
dW0gY2xhc3MgSXNKb2JDb21wbGV0ZSB7IE5vLCBZZXMgfTsKICAgICBib29sIHBvc3RUYXNrRm9y
Sm9iKFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyLCBJc0pvYkNvbXBsZXRlLCBGdW5jdGlvbjx2
b2lkKFNlcnZpY2VXb3JrZXJKb2ImKT4mJik7CiAKLSAgICBIYXNoTWFwPFNlcnZpY2VXb3JrZXJK
b2JJZGVudGlmaWVyLCBEb2N1bWVudE9yV29ya2VySWRlbnRpZmllcj4gbV9zY2hlZHVsZWRKb2JT
b3VyY2VzOworICAgIEhhc2hNYXA8U2VydmljZVdvcmtlckpvYklkZW50aWZpZXIsIFNlcnZpY2VX
b3JrZXJPckNsaWVudElkZW50aWZpZXI+IG1fc2NoZWR1bGVkSm9iU291cmNlczsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyLmNwcAppbmRleCAzNzc0MjU3ODdkNWY0MTFmM2M4MTUyOWU2MzRiNTlk
ZDM1NmVlYTkzLi43YzE0MGI5MGI3ODIzOTEyZDIyYzBkMGVhMmFkNGU0YmMxNjM5OTVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuY3BwCkBA
IC0xMTYsMTMgKzExNiwxMiBAQCBFeGNlcHRpb25Pcjx2b2lkPiBTZXJ2aWNlV29ya2VyOjpwb3N0
TWVzc2FnZShKU0M6OkpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsCiAgICAgICAgIHJldHVy
biBwb3J0c09yRXhjZXB0aW9uLnJlbGVhc2VFeGNlcHRpb24oKTsKIAogICAgIGF1dG8mIGNvbnRl
eHQgPSAqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIC8vIEZJWE1FOiBNYXliZSB3ZSBj
b3VsZCB1c2UgYSBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBmb3Igc2VydmljZSB3
b3JrZXJzIHRvby4KICAgICBTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyIHNvdXJjZUlk
ZW50aWZpZXI7CiAgICAgaWYgKGlzPFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkp
CiAgICAgICAgIHNvdXJjZUlkZW50aWZpZXIgPSBkb3duY2FzdDxTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGU+KGNvbnRleHQpLnRocmVhZCgpLmlkZW50aWZpZXIoKTsKLSAgICBlbHNlIHsKLSAgICAg
ICAgYXV0byYgY29ubmVjdGlvbiA9IFNlcnZpY2VXb3JrZXJQcm92aWRlcjo6c2luZ2xldG9uKCku
c2VydmljZVdvcmtlckNvbm5lY3Rpb24oKTsKLSAgICAgICAgc291cmNlSWRlbnRpZmllciA9IFNl
cnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIHsgY29ubmVjdGlvbi5zZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllcigpLCBkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCkuaWRlbnRpZmllcigpIH07
Ci0gICAgfQorICAgIGVsc2UKKyAgICAgICAgc291cmNlSWRlbnRpZmllciA9IGNvbnRleHQuY29u
dGV4dElkZW50aWZpZXIoKTsKIAogICAgIE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzIG1lc3NhZ2Ug
eyBtZXNzYWdlRGF0YS5yZWxlYXNlUmV0dXJuVmFsdWUoKSwgcG9ydHNPckV4Y2VwdGlvbi5yZWxl
YXNlUmV0dXJuVmFsdWUoKSB9OwogICAgIHN3Q29ubmVjdGlvbigpLnBvc3RNZXNzYWdlVG9TZXJ2
aWNlV29ya2VyKGlkZW50aWZpZXIoKSwgV1RGTW92ZShtZXNzYWdlKSwgc291cmNlSWRlbnRpZmll
cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJDbGllbnQuaAppbmRleCAyZTJjOTlmMDMwYzc2YWI5Y2IxYTIzMDE4YjJiNDk3MTg4OGM5OWEw
Li4xZmYyYzIzNWExMjQyNzM2ODM2MTQ3MDJkZTgxNmRmZTFjNDdiYWZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmgKQEAg
LTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgi
CiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDbGllbnREYXRhLmgiCiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3Ryb25nLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KQEAgLTQ2LDcgKzQ3LDcgQEAgc3RydWN0IFN0cnVjdHVyZWRTZXJpYWxpemVPcHRpb25z
OwogCiBjbGFzcyBTZXJ2aWNlV29ya2VyQ2xpZW50IDogcHVibGljIFJlZkNvdW50ZWQ8U2Vydmlj
ZVdvcmtlckNsaWVudD4sIHB1YmxpYyBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlciB7CiBwdWJs
aWM6Ci0gICAgdXNpbmcgSWRlbnRpZmllciA9IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVy
OworICAgIHVzaW5nIElkZW50aWZpZXIgPSBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
cjsKIAogICAgIHVzaW5nIFR5cGUgPSBTZXJ2aWNlV29ya2VyQ2xpZW50VHlwZTsKICAgICB1c2lu
ZyBGcmFtZVR5cGUgPSBTZXJ2aWNlV29ya2VyQ2xpZW50RnJhbWVUeXBlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0
YS5jcHAKaW5kZXggMjVkN2MwYTdmNGViZTk0NjY3YmYxODA1NmRlNjc3ZTI3MzBiODcyMi4uODJl
ZDY2Yjg5OTEyNWUwYzk5MjhjYTkxN2ZhMTNmM2NkYTUzYWNmZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudERhdGEu
Y3BwCkBAIC02MSw3ICs2MSw3IEBAIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhIFNlcnZpY2VXb3Jr
ZXJDbGllbnREYXRhOjppc29sYXRlZENvcHkoKSBjb25zdAogICAgIHJldHVybiB7IGlkZW50aWZp
ZXIsIHR5cGUsIGZyYW1lVHlwZSwgdXJsLmlzb2xhdGVkQ29weSgpLCBsYXN0TmF2aWdhdGlvbldh
c0FwcEluaXRpYXRlZCB9OwogfQogCi1TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBTZXJ2aWNlV29y
a2VyQ2xpZW50RGF0YTo6ZnJvbShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBTV0Ns
aWVudENvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCitTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBTZXJ2
aWNlV29ya2VyQ2xpZW50RGF0YTo6ZnJvbShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
KQogewogICAgIGJvb2wgaXNEb2N1bWVudCA9IGlzPERvY3VtZW50Pihjb250ZXh0KTsKICAgICBS
RUxFQVNFX0FTU0VSVChpc0RvY3VtZW50KTsgLy8gV2UgZG8gbm90IHN1cHBvcnQgZGVkaWNhdGVk
IHdvcmtlcnMgYXMgY2xpZW50cyB5ZXQuCkBAIC03MCw3ICs3MCw3IEBAIFNlcnZpY2VXb3JrZXJD
bGllbnREYXRhIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjpmcm9tKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvCiAgICAgYXV0byBsYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCA9IGRvY3Vt
ZW50LmxvYWRlcigpICYmIGRvY3VtZW50LmxvYWRlcigpLT5sYXN0TmF2aWdhdGlvbldhc0FwcElu
aXRpYXRlZCgpID8gTGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQ6OlllcyA6IExhc3ROYXZp
Z2F0aW9uV2FzQXBwSW5pdGlhdGVkOjpObzsKIAogICAgIHJldHVybiB7Ci0gICAgICAgIHsgY29u
bmVjdGlvbi5zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcigpLCBkb2N1bWVudC5pZGVudGlmaWVy
KCkgfSwKKyAgICAgICAgY29udGV4dC5jb250ZXh0SWRlbnRpZmllcigpLAogICAgICAgICBpc0Rv
Y3VtZW50ID8gU2VydmljZVdvcmtlckNsaWVudFR5cGU6OldpbmRvdyA6IFNlcnZpY2VXb3JrZXJD
bGllbnRUeXBlOjpXb3JrZXIsCiAgICAgICAgIHRvU2VydmljZVdvcmtlckNsaWVudEZyYW1lVHlw
ZShjb250ZXh0KSwKICAgICAgICAgY29udGV4dC51cmwoKSwgbGFzdE5hdmlnYXRpb25XYXNBcHBJ
bml0aWF0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyQ2xpZW50RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJDbGllbnREYXRhLmgKaW5kZXggMGY0ZjYxYjcwMzVhNWE2NzcxMzkwYzAyN2Mw
MWZhYWNkNmU0NTBlZC4uMTQ0N2NmZjhkNDc2ZjQ0ZjE3ODJjYjdkNDUwYWJjNzc2NDNmZDhjNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJD
bGllbnREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJDbGllbnREYXRhLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKIAotI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmgiCisj
aW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJT
ZXJ2aWNlV29ya2VyQ2xpZW50VHlwZS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJUeXBlcy5o
IgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KQEAgLTQwLDcgKzQwLDcgQEAgY2xhc3MgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDsKIGVudW0gY2xhc3MgTGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQg
OiBib29sIHsgTm8sIFllcyB9OwogCiBzdHJ1Y3QgU2VydmljZVdvcmtlckNsaWVudERhdGEgewot
ICAgIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIGlkZW50aWZpZXI7CisgICAgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgaWRlbnRpZmllcjsKICAgICBTZXJ2aWNlV29ya2Vy
Q2xpZW50VHlwZSB0eXBlOwogICAgIFNlcnZpY2VXb3JrZXJDbGllbnRGcmFtZVR5cGUgZnJhbWVU
eXBlOwogICAgIFVSTCB1cmw7CkBAIC00OCw3ICs0OCw3IEBAIHN0cnVjdCBTZXJ2aWNlV29ya2Vy
Q2xpZW50RGF0YSB7CiAKICAgICBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBpc29sYXRlZENvcHko
KSBjb25zdDsKIAotICAgIHN0YXRpYyBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBmcm9tKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmLCBTV0NsaWVudENvbm5lY3Rpb24mKTsKKyAgICBzdGF0aWMgU2Vy
dmljZVdvcmtlckNsaWVudERhdGEgZnJvbShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CiAKICAg
ICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAg
ICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdv
cmtlckNsaWVudERhdGE+IGRlY29kZShEZWNvZGVyJik7CkBAIC02Myw3ICs2Myw3IEBAIHZvaWQg
U2VydmljZVdvcmtlckNsaWVudERhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAog
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVu
dERhdGE+IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikK
IHsKLSAgICBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiBpZGVu
dGlmaWVyOworICAgIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXI+IGlkZW50aWZpZXI7CiAgICAgZGVjb2RlciA+PiBpZGVudGlmaWVyOwogICAgIGlmICghaWRl
bnRpZmllcikKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudElk
ZW50aWZpZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiY2YzMzM0MzkxOWY2
MDY2ZTc0MjYzN2RjMTNlOTJkMWMzZGRmZmM1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyQ2xpZW50SWRlbnRpZmllci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw1NCArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNlcnZpY2VXb3Jr
ZXJDbGllbnRJZGVudGlmaWVyLmgiCi0KLSNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0KLSNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KLSNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdUb0ludGVnZXJDb252ZXJzaW9uLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gU2Vydmlj
ZVdvcmtlckNsaWVudElkZW50aWZpZXI6OmZyb21TdHJpbmcoU3RyaW5nVmlldyBzdHJpbmcpCi17
Ci0gICAgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcjsKLSAg
ICB1bnNpZ25lZCBjb3VudGVyID0gMDsKLSAgICBmb3IgKGF1dG8gaXRlbSA6IHN0cmluZy5zcGxp
dCgnLScpKSB7Ci0gICAgICAgIGF1dG8gaWRlbnRpZmllciA9IHBhcnNlSW50ZWdlcjx1aW50NjRf
dD4oaXRlbSk7Ci0gICAgICAgIGlmICghaWRlbnRpZmllciB8fCAhKmlkZW50aWZpZXIpCi0gICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgICAgICBpZiAoIWNvdW50ZXIrKykKLSAg
ICAgICAgICAgIGNsaWVudElkZW50aWZpZXIuc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgPSBt
YWtlT2JqZWN0SWRlbnRpZmllcjxTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyVHlwZT4oaWRl
bnRpZmllci52YWx1ZSgpKTsKLSAgICAgICAgZWxzZSBpZiAoY291bnRlciA9PSAyKQotICAgICAg
ICAgICAgY2xpZW50SWRlbnRpZmllci5jb250ZXh0SWRlbnRpZmllciA9IG1ha2VPYmplY3RJZGVu
dGlmaWVyPERvY3VtZW50SWRlbnRpZmllclR5cGU+KGlkZW50aWZpZXIudmFsdWUoKSk7Ci0gICAg
fQotICAgIHJldHVybiAoY291bnRlciA9PSAyKSA/IHN0ZDo6bWFrZV9vcHRpb25hbChXVEZNb3Zl
KGNsaWVudElkZW50aWZpZXIpKSA6IHN0ZDo6bnVsbG9wdDsKLX0KLQotfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlm
aWVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVu
dElkZW50aWZpZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmNlMjdjY2UzMDY5
NjgzYTg5ZWQ0MWY2YTc0NmY2NDRiYjIyZGVmMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlckNsaWVudElkZW50aWZpZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDEwMSArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShTRVJWSUNFX1dP
UktFUikKLQotI2luY2x1ZGUgIkRvY3VtZW50SWRlbnRpZmllci5oIgotI2luY2x1ZGUgIlNlcnZp
Y2VXb3JrZXJUeXBlcy5oIgotI2luY2x1ZGUgPHd0Zi9IYXNoZXIuaD4KLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1zdHJ1Y3QgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgewotICAgIFNX
U2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXI7Ci0g
ICAgRG9jdW1lbnRJZGVudGlmaWVyIGNvbnRleHRJZGVudGlmaWVyOwotCi0gICAgdW5zaWduZWQg
aGFzaCgpIGNvbnN0OwotCi0gICAgU3RyaW5nIHRvU3RyaW5nKCkgY29uc3QgeyByZXR1cm4gbWFr
ZVN0cmluZyhzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllci50b1VJbnQ2NCgpLCAnLScsIGNvbnRl
eHRJZGVudGlmaWVyLnRvVUludDY0KCkpOyB9Ci0gICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8U2Vy
dmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+IGZyb21TdHJpbmcoU3RyaW5nVmlldyk7Ci0KLSAg
ICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7Ci0g
ICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdv
cmtlckNsaWVudElkZW50aWZpZXI+IGRlY29kZShEZWNvZGVyJik7Ci19OwotCi1pbmxpbmUgYm9v
bCBvcGVyYXRvcj09KGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyJiBhLCBjb25z
dCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYgYikKLXsKLSAgICByZXR1cm4gYS5zZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciA9PSBiLnNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyICYm
IGEuY29udGV4dElkZW50aWZpZXIgPT0gYi5jb250ZXh0SWRlbnRpZmllcjsKLX0KLQotdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4KLXZvaWQgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI6OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAotewotICAgIGVuY29kZXIgPDwgc2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIgPDwgY29udGV4dElkZW50aWZpZXI7Ci19Ci0KLXRlbXBsYXRlPGNs
YXNzIERlY29kZXI+Ci1zdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVy
PiBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIp
Ci17Ci0gICAgc3RkOjpvcHRpb25hbDxTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyPiBzZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllcjsKLSAgICBkZWNvZGVyID4+IHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyOwotICAgIGlmICghc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpCi0gICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICBzdGQ6Om9wdGlvbmFsPERvY3VtZW50SWRlbnRp
Zmllcj4gY29udGV4dElkZW50aWZpZXI7Ci0gICAgZGVjb2RlciA+PiBjb250ZXh0SWRlbnRpZmll
cjsKLSAgICBpZiAoIWNvbnRleHRJZGVudGlmaWVyKQotICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwotCi0gICAgcmV0dXJuIHsgeyAqc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsICpjb250
ZXh0SWRlbnRpZmllciB9IH07Ci19Ci0KLWlubGluZSB1bnNpZ25lZCBTZXJ2aWNlV29ya2VyQ2xp
ZW50SWRlbnRpZmllcjo6aGFzaCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGNvbXB1dGVIYXNoKHNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb250ZXh0SWRlbnRpZmllcik7Ci19Ci0KLXN0cnVj
dCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllckhhc2ggewotICAgIHN0YXRpYyB1bnNpZ25l
ZCBoYXNoKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyJiBrZXkp
IHsgcmV0dXJuIGtleS5oYXNoKCk7IH0KLSAgICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYgYSwgY29uc3QgV2ViQ29yZTo6U2Vy
dmljZVdvcmtlckNsaWVudElkZW50aWZpZXImIGIpIHsgcmV0dXJuIGEgPT0gYjsgfQotICAgIHN0
YXRpYyBjb25zdCBib29sIHNhZmVUb0NvbXBhcmVUb0VtcHR5T3JEZWxldGVkID0gdHJ1ZTsKLX07
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotbmFtZXNwYWNlIFdURiB7Ci0KLXRlbXBsYXRl
PD4gc3RydWN0IEhhc2hUcmFpdHM8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZp
ZXI+IDogR2VuZXJpY0hhc2hUcmFpdHM8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50
aWZpZXI+IHsKLSAgICBzdGF0aWMgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZp
ZXIgZW1wdHlWYWx1ZSgpIHsgcmV0dXJuIHsgfTsgfQotICAgIHN0YXRpYyB2b2lkIGNvbnN0cnVj
dERlbGV0ZWRWYWx1ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYgc2xv
dCkgeyBuZXcgKE5vdE51bGwsICZzbG90LnNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKSBXZWJD
b3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKEhhc2hUYWJsZURlbGV0ZWRWYWx1ZSk7
IH0KLSAgICBzdGF0aWMgYm9vbCBpc0RlbGV0ZWRWYWx1ZShjb25zdCBXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyQ2xpZW50SWRlbnRpZmllciYgc2xvdCkgeyByZXR1cm4gc2xvdC5zZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllci5pc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpOyB9Ci19OwotCi10ZW1wbGF0
ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRp
Zmllcj4gOiBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllckhhc2ggeyB9Owot
Ci19Ci0KLSNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudHMuY3BwIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRzLmNwcAppbmRl
eCBjODI3MjBlYTc2NDEwOWVkM2IyMGViNGQ2NjY0NjUyOGMxZGNhZjU0Li5jNDg4ZDc4YzI2NmJm
NzVkMjcxMDJjMWY2NDFjMGY2MzAwZDczNzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50cy5jcHAKQEAgLTM0LDYgKzM0
LDcgQEAKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclRocmVhZC5oIgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ1RvSW50ZWdlckNvbnZlcnNpb24uaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC01Miw5ICs1MywyNiBAQCBzdGF0aWMgaW5saW5lIHZvaWQgZGlkRmluaXNo
R2V0UmVxdWVzdChTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUmIHNjb3BlLCBEZWZlcnJlZAogICAg
IHByb21pc2UucmVzb2x2ZTxJRExJbnRlcmZhY2U8U2VydmljZVdvcmtlckNsaWVudD4+KFNlcnZp
Y2VXb3JrZXJDbGllbnQ6OmdldE9yQ3JlYXRlKHNjb3BlLCBXVEZNb3ZlKGRhdGEudmFsdWUoKSkp
KTsKIH0KIAorc3RhdGljIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXI+IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyRnJvbVN0cmluZyhTdHJpbmdW
aWV3IHN0cmluZykKK3sKKyAgICBQcm9jZXNzSWRlbnRpZmllciBwcm9jZXNzSWRlbnRpZmllcjsK
KyAgICBPYmplY3RJZGVudGlmaWVyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyVHlw
ZT4gY29udGV4dElkZW50aWZpZXI7CisgICAgdW5zaWduZWQgY291bnRlciA9IDA7CisgICAgZm9y
IChhdXRvIGl0ZW0gOiBzdHJpbmcuc3BsaXQoJy0nKSkgeworICAgICAgICBhdXRvIGlkZW50aWZp
ZXIgPSBwYXJzZUludGVnZXI8dWludDY0X3Q+KGl0ZW0pOworICAgICAgICBpZiAoIWlkZW50aWZp
ZXIgfHwgISppZGVudGlmaWVyKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAg
ICAgICAgaWYgKCFjb3VudGVyKyspCisgICAgICAgICAgICBwcm9jZXNzSWRlbnRpZmllciA9IG1h
a2VPYmplY3RJZGVudGlmaWVyPFByb2Nlc3NJZGVudGlmaWVyVHlwZT4oaWRlbnRpZmllci52YWx1
ZSgpKTsKKyAgICAgICAgZWxzZSBpZiAoY291bnRlciA9PSAyKQorICAgICAgICAgICAgY29udGV4
dElkZW50aWZpZXIgPSBtYWtlT2JqZWN0SWRlbnRpZmllcjxTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllclR5cGU+KGlkZW50aWZpZXIudmFsdWUoKSk7CisgICAgfQorICAgIHJldHVybiAo
cHJvY2Vzc0lkZW50aWZpZXIgJiYgY29udGV4dElkZW50aWZpZXIpID8gc3RkOjptYWtlX29wdGlv
bmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIHsgY29udGV4dElkZW50aWZpZXIs
IHByb2Nlc3NJZGVudGlmaWVyIH0pIDogc3RkOjpudWxsb3B0OworfQorCiB2b2lkIFNlcnZpY2VX
b3JrZXJDbGllbnRzOjpnZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3Qg
U3RyaW5nJiBpZCwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewotICAgIGF1dG8g
aWRlbnRpZmllciA9IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGlk
KTsKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
ckZyb21TdHJpbmcoaWQpOwogICAgIGlmICghaWRlbnRpZmllcikgewogICAgICAgICBwcm9taXNl
LT5yZXNvbHZlKCk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRzLmgKaW5kZXggNjM3YWIyMzNlMDk4
ZjFkYzQ5MDQyYzAyODkwYzU5MWEwOWQ0OWIxYS4uZTAxOTVmNDY4NDMyN2NjMTJiMTAzY2Q0N2E5
N2Q4MzdiODY4ZDdhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRzLmgKQEAgLTM5LDcgKzM5LDYgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgRGVmZXJyZWRQcm9taXNlOwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dDsKIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YTsKLXN0cnVjdCBTZXJ2aWNlV29y
a2VyQ2xpZW50SWRlbnRpZmllcjsKIAogY2xhc3MgU2VydmljZVdvcmtlckNsaWVudHMgOiBwdWJs
aWMgUmVmQ291bnRlZDxTZXJ2aWNlV29ya2VyQ2xpZW50cz4gewogcHVibGljOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWlu
ZXIuY3BwCmluZGV4IGRjNzkyMjI3MzgwYzljMDM0MmRjZDg5ZjFkZDcwODFlNzk1MTdiZjkuLjhj
OTY2YjAxMTRjOTEzMGUyZDViZDMzZDI2OGU5ZWM4ZDJjMzE5MjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5j
cHAKQEAgLTYyNCwxMyArNjI0LDEzIEBAIHZvaWQgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6c3Rv
cCgpCiAgICAgICAgIG5vdGlmeVJlZ2lzdHJhdGlvbklzU2V0dGxlZChyZWdpc3RyYXRpb24pOwog
fQogCi1Eb2N1bWVudE9yV29ya2VySWRlbnRpZmllciBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpj
b250ZXh0SWRlbnRpZmllcigpCitTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyIFNlcnZp
Y2VXb3JrZXJDb250YWluZXI6OmNvbnRleHRJZGVudGlmaWVyKCkKIHsKICAgICBBU1NFUlQobV9j
cmVhdGlvblRocmVhZC5wdHIoKSA9PSAmVGhyZWFkOjpjdXJyZW50KCkpOwogICAgIEFTU0VSVChz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwogICAgIGlmIChpczxTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGU+KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQogICAgICAgICByZXR1cm4gZG93bmNh
c3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3BlPigqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKS50
aHJlYWQoKS5pZGVudGlmaWVyKCk7Ci0gICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50Pigqc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKS5pZGVudGlmaWVyKCk7CisgICAgcmV0dXJuIHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+Y29udGV4dElkZW50aWZpZXIoKTsKIH0KIAogU2VydmljZVdvcmtl
ckpvYiogU2VydmljZVdvcmtlckNvbnRhaW5lcjo6am9iKFNlcnZpY2VXb3JrZXJKb2JJZGVudGlm
aWVyIGlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaAppbmRleCA4N2Y2ODYwOGU2Y2YwNDk1OWIwNmQx
ZGE5NDhiODhkMGEwN2ZjNTRjLi44Mjg5NzFhNjU3YWYwZTA5MDYwMmQ5YzFhMTc0NGYwZjUzMmNm
ZDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlckNvbnRhaW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyQ29udGFpbmVyLmgKQEAgLTExNCw3ICsxMTQsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgZGVzdHJveUpvYihTZXJ2aWNlV29ya2VySm9iJik7CiAgICAgdm9pZCB3aWxsU2V0dGxlUmVn
aXN0cmF0aW9uUHJvbWlzZShib29sIHN1Y2Nlc3MpOwogCi0gICAgRG9jdW1lbnRPcldvcmtlcklk
ZW50aWZpZXIgY29udGV4dElkZW50aWZpZXIoKSBmaW5hbDsKKyAgICBTZXJ2aWNlV29ya2VyT3JD
bGllbnRJZGVudGlmaWVyIGNvbnRleHRJZGVudGlmaWVyKCkgZmluYWw7CiAKICAgICBTV0NsaWVu
dENvbm5lY3Rpb24mIGVuc3VyZVNXQ2xpZW50Q29ubmVjdGlvbigpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRleHREYXRhLmgg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRleHREYXRh
LmgKaW5kZXggNTliMmQ5MTk4ZmNiYjBhMDMzN2Y1M2I0YjAzMjczYzQwOGU1ZWFjOS4uMDFkOGNi
Y2Y0OTI0OTgxMWUzYjNkYzYzN2ViYzRiNGI0MTNjY2U3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250ZXh0RGF0YS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGV4dERhdGEuaApA
QCAtMjksNyArMjksNyBAQAogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeVJlc3BvbnNl
SGVhZGVycy5oIgogI2luY2x1ZGUgIkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kuaCIKICNpbmNs
dWRlICJTY3JpcHRCdWZmZXIuaCIKLSNpbmNsdWRlICJTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRp
Zmllci5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmgiCiAj
aW5jbHVkZSAiU2VydmljZVdvcmtlcklkZW50aWZpZXIuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29y
a2VySm9iRGF0YUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uRGF0YS5oIgpAQCAtOTQsNyArOTQsNyBAQCBzdHJ1Y3QgU2VydmljZVdvcmtlckNvbnRleHRE
YXRhIHsKICAgICBib29sIGxvYWRlZEZyb21EaXNrOwogICAgIHN0ZDo6b3B0aW9uYWw8TGFzdE5h
dmlnYXRpb25XYXNBcHBJbml0aWF0ZWQ+IGxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkOwog
ICAgIEhhc2hNYXA8VVJMLCBJbXBvcnRlZFNjcmlwdD4gc2NyaXB0UmVzb3VyY2VNYXA7Ci0gICAg
c3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gc2VydmljZVdvcmtl
clBhZ2VJZGVudGlmaWVyOworICAgIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4
dElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcjsKIAogICAgIHRlbXBsYXRl
PGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKICAgICB0ZW1wbGF0
ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ29udGV4
dERhdGE+IGRlY29kZShEZWNvZGVyJik7CkBAIC0xNzAsNyArMTcwLDcgQEAgc3RkOjpvcHRpb25h
bDxTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE+IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6ZGVj
b2RlKERlY29kZXIKICAgICBpZiAoIWNlcnRpZmljYXRlSW5mbykKICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKIAotICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxTZXJ2aWNlV29y
a2VyQ2xpZW50SWRlbnRpZmllcj4+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcjsKKyAgICBz
dGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXI+PiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXI7CiAgICAgZGVjb2RlciA+PiBzZXJ2aWNl
V29ya2VyUGFnZUlkZW50aWZpZXI7CiAgICAgaWYgKCFzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZp
ZXIpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwCmlu
ZGV4IDg0ZjVmMjc4ZmVhOWM0NjY1MGQyMDRjM2JmODFiM2U5MGU1ZjJmZWEuLjYwNzFkODY4MWE5
Y2U4MGI0M2EzNjE1ODNmN2Y4MTQ0YmZmMjRhOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwCkBA
IC05MCw3ICs5MCw3IEBAIFBhZ2UqIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTo6c2VydmljZVdv
cmtlclBhZ2UoKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIFJFTEVBU0VfQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKLSAgICBhdXRvKiBzZXJ2aWNlV29ya2VyUGFnZURvY3VtZW50ID0g
RG9jdW1lbnQ6OmFsbERvY3VtZW50c01hcCgpLmdldChtX2NvbnRleHREYXRhLnNlcnZpY2VXb3Jr
ZXJQYWdlSWRlbnRpZmllci0+Y29udGV4dElkZW50aWZpZXIpOworICAgIGF1dG8qIHNlcnZpY2VX
b3JrZXJQYWdlRG9jdW1lbnQgPSBEb2N1bWVudDo6YWxsRG9jdW1lbnRzTWFwKCkuZ2V0KCptX2Nv
bnRleHREYXRhLnNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcik7CiAgICAgcmV0dXJuIHNlcnZp
Y2VXb3JrZXJQYWdlRG9jdW1lbnQgPyBzZXJ2aWNlV29ya2VyUGFnZURvY3VtZW50LT5wYWdlKCkg
OiBudWxscHRyOwogfQogCkBAIC0xMjUsNyArMTI1LDcgQEAgU2VydmljZVdvcmtlclRocmVhZCYg
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjp0aHJlYWQoKQogICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxTZXJ2aWNlV29ya2VyVGhyZWFkJj4oV29ya2VyR2xvYmFsU2NvcGU6OnRocmVhZCgpKTsKIH0K
IAotU2VydmljZVdvcmtlckNsaWVudCogU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjpzZXJ2aWNl
V29ya2VyQ2xpZW50KFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIGlkZW50aWZpZXIpCitT
ZXJ2aWNlV29ya2VyQ2xpZW50KiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6OnNlcnZpY2VXb3Jr
ZXJDbGllbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgaWRlbnRpZmllcikKIHsK
ICAgICByZXR1cm4gbV9jbGllbnRNYXAuZ2V0KGlkZW50aWZpZXIpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5o
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZS5oCmluZGV4IDY3YzIyOTJiYzY5ZDYxZTk0MzQ0MzQwZmQ0Y2JiOGJhOWRkMmU5YWMuLmZhYzQx
MmM3MDhhMGZiYWM0ZWE4YzQ5NjJlOTA1MWNkOWE4N2UxNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgK
QEAgLTI3LDcgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAotI2luY2x1
ZGUgIlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyQ29udGV4
dERhdGEuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmgiCiAjaW5jbHVk
ZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgogCiAgICAg
U2VydmljZVdvcmtlclRocmVhZCYgdGhyZWFkKCk7CiAKLSAgICBTZXJ2aWNlV29ya2VyQ2xpZW50
KiBzZXJ2aWNlV29ya2VyQ2xpZW50KFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyKTsKKyAg
ICBTZXJ2aWNlV29ya2VyQ2xpZW50KiBzZXJ2aWNlV29ya2VyQ2xpZW50KFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyKTsKICAgICB2b2lkIGFkZFNlcnZpY2VXb3JrZXJDbGllbnQoU2Vy
dmljZVdvcmtlckNsaWVudCYpOwogICAgIHZvaWQgcmVtb3ZlU2VydmljZVdvcmtlckNsaWVudChT
ZXJ2aWNlV29ya2VyQ2xpZW50Jik7CiAKQEAgLTkwLDcgKzkwLDcgQEAgcHJpdmF0ZToKICAgICBS
ZWY8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbj4gbV9yZWdpc3RyYXRpb247CiAgICAgUmVmPFNl
cnZpY2VXb3JrZXI+IG1fc2VydmljZVdvcmtlcjsKICAgICBSZWY8U2VydmljZVdvcmtlckNsaWVu
dHM+IG1fY2xpZW50czsKLSAgICBIYXNoTWFwPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVy
LCBTZXJ2aWNlV29ya2VyQ2xpZW50Kj4gbV9jbGllbnRNYXA7CisgICAgSGFzaE1hcDxTY3JpcHRF
eGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudCo+IG1fY2xpZW50
TWFwOwogICAgIFZlY3RvcjxSZWY8RXh0ZW5kYWJsZUV2ZW50Pj4gbV9leHRlbmRlZEV2ZW50czsK
IAogICAgIHVpbnQ2NF90IG1fbGFzdFJlcXVlc3RJZGVudGlmaWVyIHsgMCB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmgKaW5kZXggYTc3
NzRlZGM0ZWYyZDkwZmRlZDBlMDQyOGZjYTc0ODU0Zjk1ZWQ0ZS4uM2ZlYjIwYThkOGE4OTI4M2Q1
YzZhMjJmZTg5ZTdkYzU5M2QyNmE0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5oCkBAIC02Nyw3ICs2Nyw3IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgZmV0Y2hTY3JpcHRXaXRoQ29udGV4dChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwg
RmV0Y2hPcHRpb25zOjpDYWNoZSk7CiAKLSAgICBjb25zdCBEb2N1bWVudE9yV29ya2VySWRlbnRp
ZmllciYgY29udGV4dElkZW50aWZpZXIoKSB7IHJldHVybiBtX2NvbnRleHRJZGVudGlmaWVyOyB9
CisgICAgY29uc3QgU2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciYgY29udGV4dElkZW50
aWZpZXIoKSB7IHJldHVybiBtX2NvbnRleHRJZGVudGlmaWVyOyB9CiAKICAgICBib29sIGNhbmNl
bFBlbmRpbmdMb2FkKCk7CiAKQEAgLTg0LDcgKzg0LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wg
bV9jb21wbGV0ZWQgeyBmYWxzZSB9OwogCi0gICAgRG9jdW1lbnRPcldvcmtlcklkZW50aWZpZXIg
bV9jb250ZXh0SWRlbnRpZmllcjsKKyAgICBTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVy
IG1fY29udGV4dElkZW50aWZpZXI7CiAgICAgUmVmUHRyPFdvcmtlclNjcmlwdExvYWRlcj4gbV9z
Y3JpcHRMb2FkZXI7CiAKICNpZiBBU1NFUlRfRU5BQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JDbGllbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iQ2xpZW50LmgKaW5kZXggMTkz
MjJlNmNmNDk5MGVmNDBiYjI4MGRkMTE0MGEwOTBkMTAwNjBhMi4uMmNmNTE0NzhjOWIxZGY3MGRh
YmUwYmU0NjFmZDk3MDVjMjkzY2MxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYkNsaWVudC5oCkBAIC00NCw3ICs0NCw3IEBA
IGNsYXNzIFNlcnZpY2VXb3JrZXJKb2JDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgflNl
cnZpY2VXb3JrZXJKb2JDbGllbnQoKSA9IGRlZmF1bHQ7CiAKLSAgICB2aXJ0dWFsIERvY3VtZW50
T3JXb3JrZXJJZGVudGlmaWVyIGNvbnRleHRJZGVudGlmaWVyKCkgPSAwOworICAgIHZpcnR1YWwg
U2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciBjb250ZXh0SWRlbnRpZmllcigpID0gMDsK
IAogICAgIHZpcnR1YWwgdm9pZCBqb2JGYWlsZWRXaXRoRXhjZXB0aW9uKFNlcnZpY2VXb3JrZXJK
b2ImLCBjb25zdCBFeGNlcHRpb24mKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGpvYlJlc29sdmVk
V2l0aFJlZ2lzdHJhdGlvbihTZXJ2aWNlV29ya2VySm9iJiwgU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbkRhdGEmJiwgU2hvdWxkTm90aWZ5V2hlblJlc29sdmVkKSA9IDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYkRhdGEuY3BwIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JEYXRhLmNwcApp
bmRleCAyMjU2ZTJmMTVmNDc5MTg1NTlkZTJhZDI4YjA4MDE4Yjg0MDk5ZTk1Li5mMGFhODZjNWRh
NmYyNzlmZDdlMDcyY2UzMjVhMzVjYTBjYzkzZDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYkRhdGEuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iRGF0YS5jcHAKQEAgLTMwLDIz
ICszMCwyMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBpbmxpbmUgU2Vydmlj
ZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciBzZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVy
KFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0
IERvY3VtZW50T3JXb3JrZXJJZGVudGlmaWVyJiBsb2NhbFNvdXJjZUNvbnRleHQpCitzdGF0aWMg
aW5saW5lIFNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXIgc2VydmljZVdvcmtlck9yQ2xp
ZW50SWRlbnRpZmllcihjb25zdCBTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyJiBsb2Nh
bFNvdXJjZUNvbnRleHQpCiB7Ci0gICAgcmV0dXJuIFdURjo6c3dpdGNoT24obG9jYWxTb3VyY2VD
b250ZXh0LCBbJl0oRG9jdW1lbnRJZGVudGlmaWVyIGRvY3VtZW50SWRlbnRpZmllcikgLT4gU2Vy
dmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciB7Ci0gICAgICAgIHJldHVybiBTZXJ2aWNlV29y
a2VyQ2xpZW50SWRlbnRpZmllciB7IGNvbm5lY3Rpb25JZGVudGlmaWVyLCBkb2N1bWVudElkZW50
aWZpZXIgfTsKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihsb2NhbFNvdXJjZUNvbnRleHQsIFsm
XShTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWRlbnRpZmllcikgLT4g
U2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciB7CisgICAgICAgIHJldHVybiBjb250ZXh0
SWRlbnRpZmllcjsKICAgICB9LCBbJl0oU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdv
cmtlcklkZW50aWZpZXIpIC0+IFNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXIgewogICAg
ICAgICByZXR1cm4gc2VydmljZVdvcmtlcklkZW50aWZpZXI7CiAgICAgfSk7CiB9CiAKLVNlcnZp
Y2VXb3JrZXJKb2JEYXRhOjpTZXJ2aWNlV29ya2VySm9iRGF0YShTV1NlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBEb2N1bWVudE9yV29ya2VySWRl
bnRpZmllciYgbG9jYWxTb3VyY2VDb250ZXh0KQotICAgIDogc291cmNlQ29udGV4dChzZXJ2aWNl
V29ya2VyT3JDbGllbnRJZGVudGlmaWVyKGNvbm5lY3Rpb25JZGVudGlmaWVyLCBsb2NhbFNvdXJj
ZUNvbnRleHQpKQorU2VydmljZVdvcmtlckpvYkRhdGE6OlNlcnZpY2VXb3JrZXJKb2JEYXRhKFNX
U2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFNl
cnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXImIGxvY2FsU291cmNlQ29udGV4dCkKKyAgICA6
IHNvdXJjZUNvbnRleHQoc2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllcihsb2NhbFNvdXJj
ZUNvbnRleHQpKQogICAgICwgbV9pZGVudGlmaWVyIHsgY29ubmVjdGlvbklkZW50aWZpZXIsIFNl
cnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKSB9CiB7CiB9CiAK
LVNlcnZpY2VXb3JrZXJKb2JEYXRhOjpTZXJ2aWNlV29ya2VySm9iRGF0YShJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIGNvbnN0IERvY3VtZW50T3JXb3JrZXJJZGVudGlmaWVyJiBsb2NhbFNvdXJjZUNv
bnRleHQpCi0gICAgOiBzb3VyY2VDb250ZXh0KHNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZp
ZXIoaWRlbnRpZmllci5jb25uZWN0aW9uSWRlbnRpZmllciwgbG9jYWxTb3VyY2VDb250ZXh0KSkK
K1NlcnZpY2VXb3JrZXJKb2JEYXRhOjpTZXJ2aWNlV29ya2VySm9iRGF0YShJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXImIGxvY2FsU291
cmNlQ29udGV4dCkKKyAgICA6IHNvdXJjZUNvbnRleHQoc2VydmljZVdvcmtlck9yQ2xpZW50SWRl
bnRpZmllcihsb2NhbFNvdXJjZUNvbnRleHQpKQogICAgICwgbV9pZGVudGlmaWVyIHsgaWRlbnRp
ZmllciB9CiB7CiB9CkBAIC01OCwxMCArNTgsMTAgQEAgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bktleSBTZXJ2aWNlV29ya2VySm9iRGF0YTo6cmVnaXN0cmF0aW9uS2V5KCkgY29uc3QKICAgICBy
ZXR1cm4geyBTZWN1cml0eU9yaWdpbkRhdGEgeyB0b3BPcmlnaW4gfSwgV1RGTW92ZShzY29wZSkg
fTsKIH0KIAotc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gU2Vy
dmljZVdvcmtlckpvYkRhdGE6OnNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcigpIGNvbnN0Citz
dGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBTZXJ2aWNlV29y
a2VySm9iRGF0YTo6c2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKCkgY29uc3QKIHsKLSAgICBp
ZiAoaXNGcm9tU2VydmljZVdvcmtlclBhZ2UgJiYgc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxTZXJ2
aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4oc291cmNlQ29udGV4dCkpCi0gICAgICAgIHJldHVy
biBzdGQ6OmdldDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4oc291cmNlQ29udGV4dCk7
CisgICAgaWYgKGlzRnJvbVNlcnZpY2VXb3JrZXJQYWdlICYmIHN0ZDo6aG9sZHNfYWx0ZXJuYXRp
dmU8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+KHNvdXJjZUNvbnRleHQpKQorICAg
ICAgICByZXR1cm4gc3RkOjpnZXQ8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+KHNv
dXJjZUNvbnRleHQpOwogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iRGF0YS5oIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JEYXRhLmgKaW5k
ZXggZjA3M2JmYjgxNzUwOGVmZWUzOTU4NDQyODY0ODQ5Y2JjYzUyODkyOC4uZGZiYWRhMzVlM2Q0
OTA3NTNhMzEyMDE2NjVmOWFhZDU1ZTNmMGYyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JEYXRhLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JEYXRhLmgKQEAgLTI3LDggKzI3LDgg
QEAKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5EYXRhLmgi
Ci0jaW5jbHVkZSAiU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJT
ZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2Vy
Sm9iVHlwZS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkuaCIKQEAg
LTQwLDEzICs0MCwxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBTZXJ2aWNlV29y
a2VySm9iRGF0YSB7CiAgICAgdXNpbmcgSWRlbnRpZmllciA9IFNlcnZpY2VXb3JrZXJKb2JEYXRh
SWRlbnRpZmllcjsKLSAgICBTZXJ2aWNlV29ya2VySm9iRGF0YShTV1NlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBjb25zdCBEb2N1bWVudE9yV29ya2VySWRlbnRpZmllciYgc291cmNlQ29udGV4
dCk7Ci0gICAgU2VydmljZVdvcmtlckpvYkRhdGEoSWRlbnRpZmllciwgY29uc3QgRG9jdW1lbnRP
cldvcmtlcklkZW50aWZpZXImIHNvdXJjZUNvbnRleHQpOworICAgIFNlcnZpY2VXb3JrZXJKb2JE
YXRhKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJPckNs
aWVudElkZW50aWZpZXImIHNvdXJjZUNvbnRleHQpOworICAgIFNlcnZpY2VXb3JrZXJKb2JEYXRh
KElkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXImIHNvdXJj
ZUNvbnRleHQpOwogCiAgICAgU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW9u
SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllci5jb25uZWN0aW9uSWRlbnRp
ZmllcjsgfQogCiAgICAgYm9vbCBpc0VxdWl2YWxlbnQoY29uc3QgU2VydmljZVdvcmtlckpvYkRh
dGEmKSBjb25zdDsKLSAgICBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlm
aWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIoKSBjb25zdDsKKyAgICBzdGQ6Om9wdGlv
bmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlk
ZW50aWZpZXIoKSBjb25zdDsKIAogICAgIFVSTCBzY3JpcHRVUkw7CiAgICAgVVJMIGNsaWVudENy
ZWF0aW9uVVJMOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJUeXBlcy5oCmluZGV4IGQwZGZiMmFjMTNlNTdkNGFiM2EyOWE5ODkzYjgyYTM4NTQ0
OWJhZTAuLjdkMDM4YzJmMzgzY2I1NGY0YTQ3YmYwYjI3YzAwYTdkNzhmYWE1MTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyVHlwZXMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclR5cGVzLmgK
QEAgLTI3LDggKzI3LDggQEAKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAotI2luY2x1
ZGUgIkRvY3VtZW50SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlByb2Nlc3NJZGVudGlmaWVyLmgi
CisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaCIKICNpbmNsdWRl
ICJTZXJ2aWNlV29ya2VySWRlbnRpZmllci5oIgogI2luY2x1ZGUgPHZhcmlhbnQ+CiAjaW5jbHVk
ZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KQEAgLTM3LDcgKzM3LDYgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBzdHJ1Y3QgU2VydmljZVdvcmtlckRhdGE7CiBzdHJ1Y3QgU2VydmljZVdvcmtl
ckNsaWVudERhdGE7Ci1zdHJ1Y3QgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI7CiAKIGVu
dW0gY2xhc3MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRlIDogdWludDhfdCB7CiAgICAg
SW5zdGFsbGluZyA9IDAsCkBAIC03NSwxMCArNzQsMTAgQEAgdXNpbmcgU1dTZXJ2ZXJUb0NvbnRl
eHRDb25uZWN0aW9uSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8U1dTZXJ2ZXJUb0NvbnRl
eHQKIHVzaW5nIFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXJUeXBlID0gUHJvY2Vzc0lkZW50
aWZpZXJUeXBlOwogdXNpbmcgU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciA9IE9iamVjdElk
ZW50aWZpZXI8U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllclR5cGU+OwogCi11c2luZyBEb2N1
bWVudE9yV29ya2VySWRlbnRpZmllciA9IHN0ZDo6dmFyaWFudDxEb2N1bWVudElkZW50aWZpZXIs
IFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyPjsKLQogdXNpbmcgU2VydmljZVdvcmtlck9yQ2xpZW50
RGF0YSA9IHN0ZDo6dmFyaWFudDxTZXJ2aWNlV29ya2VyRGF0YSwgU2VydmljZVdvcmtlckNsaWVu
dERhdGE+OwotdXNpbmcgU2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciA9IHN0ZDo6dmFy
aWFudDxTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZp
ZXI+OworCisvLyBGSVhNRTogSXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIHJlcGxhY2UgU2Vydmlj
ZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciB3aXRoIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyIGVudGlyZWx5LgordXNpbmcgU2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciA9
IHN0ZDo6dmFyaWFudDxTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dElkZW50aWZpZXI+OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVudENvbm5lY3Rpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVj
dGlvbi5jcHAKaW5kZXggZTIwNzQzN2Y4NzcyMjRkZjc1MTM2ZDI2ZTA4YjYwMjY4OTY3MWIyOC4u
ZmFlZjk0YTc1YThkNzIxOTg2ZjU3OWYzYjY1OTAyMzM3ZjhlZWY3OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVjdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVj
dGlvbi5jcHAKQEAgLTE3OSw3ICsxNzksNyBAQCB2b2lkIFdvcmtlclNXQ2xpZW50Q29ubmVjdGlv
bjo6cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFNlY3VyaXR5T3JpZ2luJgogICAg
IH0pOwogfQogCi12b2lkIFdvcmtlclNXQ2xpZW50Q29ubmVjdGlvbjo6dW5yZWdpc3RlclNlcnZp
Y2VXb3JrZXJDbGllbnQoRG9jdW1lbnRJZGVudGlmaWVyKQordm9pZCBXb3JrZXJTV0NsaWVudENv
bm5lY3Rpb246OnVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRJZGVudGlmaWVyKQogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQpAQCAtMTky
LDcgKzE5Miw3IEBAIHZvaWQgV29ya2VyU1dDbGllbnRDb25uZWN0aW9uOjpmaW5pc2hGZXRjaGlu
Z1NjcmlwdEluU2VydmVyKGNvbnN0IFNlcnZpY2VXb3JrZXJGCiAgICAgfSk7CiB9CiAKLXZvaWQg
V29ya2VyU1dDbGllbnRDb25uZWN0aW9uOjpzY2hlZHVsZUpvYihEb2N1bWVudE9yV29ya2VySWRl
bnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgZGF0YSkKK3Zv
aWQgV29ya2VyU1dDbGllbnRDb25uZWN0aW9uOjpzY2hlZHVsZUpvYihTZXJ2aWNlV29ya2VyT3JD
bGllbnRJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBk
YXRhKQogewogICAgIGNhbGxPbk1haW5UaHJlYWQoW2lkZW50aWZpZXIsIGRhdGEgPSBjcm9zc1Ro
cmVhZENvcHkoZGF0YSldKCkgbXV0YWJsZSB7CiAgICAgICAgIGF1dG8mIGNvbm5lY3Rpb24gPSBT
ZXJ2aWNlV29ya2VyUHJvdmlkZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3JrZXJDb25uZWN0aW9u
KCk7CkBAIC0yMDAsNyArMjAwLDcgQEAgdm9pZCBXb3JrZXJTV0NsaWVudENvbm5lY3Rpb246OnNj
aGVkdWxlSm9iKERvY3VtZW50T3JXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIKICAgICB9KTsK
IH0KIAotdm9pZCBXb3JrZXJTV0NsaWVudENvbm5lY3Rpb246OnNjaGVkdWxlVW5yZWdpc3Rlckpv
YkluU2VydmVyKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHJlZ2lzdHJhdGlv
bklkZW50aWZpZXIsIERvY3VtZW50T3JXb3JrZXJJZGVudGlmaWVyIGNvbnRleHRJZGVudGlmaWVy
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPGJvb2w+JiYpPiYmIGNhbGxiYWNr
KQordm9pZCBXb3JrZXJTV0NsaWVudENvbm5lY3Rpb246OnNjaGVkdWxlVW5yZWdpc3RlckpvYklu
U2VydmVyKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHJlZ2lzdHJhdGlvbklk
ZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXIgY29udGV4dElkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8Ym9vbD4mJik+JiYgY2FsbGJh
Y2spCiB7CiAgICAgdWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIgPSArK21fbGFzdFJlcXVlc3RJ
ZGVudGlmaWVyOwogICAgIG1fdW5yZWdpc3RlclJlcXVlc3RzLmFkZChyZXF1ZXN0SWRlbnRpZmll
ciwgV1RGTW92ZShjYWxsYmFjaykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IDc3N2ZhYzczMWI1
Y2ViZGJhNGI2YjNmZDU2YWY3ZTc3MWMwZGZkNDMuLjk2OTk0YmQ5NTZkMWNiZjE1YmEzZTE5YmNm
MDcxMzMzOWY5OTFlMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9Xb3JrZXJTV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTUyLDExICs1MiwxMSBAQCBw
cml2YXRlOgogICAgIFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIoKSBjb25zdCBmaW5hbDsKICAgICBib29sIG1heUhhdmVTZXJ2aWNlV29ya2Vy
UmVnaXN0ZXJlZEZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmKSBjb25zdCBmaW5h
bDsKICAgICB2b2lkIHJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChjb25zdCBTZWN1cml0eU9y
aWdpbiYgdG9wT3JpZ2luLCBjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYsIGNvbnN0IHN0
ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+JiwgY29uc3Qg
U3RyaW5nJiB1c2VyQWdlbnQpIGZpbmFsOwotICAgIHZvaWQgdW5yZWdpc3RlclNlcnZpY2VXb3Jr
ZXJDbGllbnQoRG9jdW1lbnRJZGVudGlmaWVyKSBmaW5hbDsKKyAgICB2b2lkIHVucmVnaXN0ZXJT
ZXJ2aWNlV29ya2VyQ2xpZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKSBmaW5h
bDsKICAgICB2b2lkIGZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoY29uc3QgU2VydmljZVdv
cmtlckZldGNoUmVzdWx0JikgZmluYWw7CiAgICAgdm9pZCBzY2hlZHVsZUpvYkluU2VydmVyKGNv
bnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJikgZmluYWw7Ci0gICAgdm9pZCBzY2hlZHVsZUpvYihE
b2N1bWVudE9yV29ya2VySWRlbnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmKSBm
aW5hbDsKLSAgICB2b2lkIHNjaGVkdWxlVW5yZWdpc3RlckpvYkluU2VydmVyKFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBEb2N1bWVudE9yV29ya2VySWRlbnRpZmllciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjxib29sPiYmKT4mJikgZmluYWw7CisgICAg
dm9pZCBzY2hlZHVsZUpvYihTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyLCBjb25zdCBT
ZXJ2aWNlV29ya2VySm9iRGF0YSYpIGZpbmFsOworICAgIHZvaWQgc2NoZWR1bGVVbnJlZ2lzdGVy
Sm9iSW5TZXJ2ZXIoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFNlcnZpY2VX
b3JrZXJPckNsaWVudElkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9u
T3I8Ym9vbD4mJik+JiYpIGZpbmFsOwogICAgIHZvaWQgc3Vic2NyaWJlVG9QdXNoU2VydmljZShT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+
JiBhcHBsaWNhdGlvblNlcnZlcktleSwgU3Vic2NyaWJlVG9QdXNoU2VydmljZUNhbGxiYWNrJiYp
IGZpbmFsOwogICAgIHZvaWQgdW5zdWJzY3JpYmVGcm9tUHVzaFNlcnZpY2UoU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFVuc3Vic2NyaWJlRnJvbVB1c2hTZXJ2aWNlQ2FsbGJh
Y2smJikgZmluYWw7CiAgICAgdm9pZCBnZXRQdXNoU3Vic2NyaXB0aW9uKFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25JZGVudGlmaWVyLCBHZXRQdXNoU3Vic2NyaXB0aW9uQ2FsbGJhY2smJikgZmlu
YWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
V0NvbnRleHRNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NXQ29udGV4dE1hbmFnZXIuY3BwCmluZGV4IDUxMDQ1MzRlNTVmOTFlYWFjNjI0MTE3MmM4
YTgyMTE4YjNmOGE0ZGMuLmExZGNkZTVhOTY1MDNiYjU2MmQ0YmMzZjY5OTg3MDkyNDVjZDljNTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29u
dGV4dE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NXQ29udGV4dE1hbmFnZXIuY3BwCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiRnJh
bWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVzc2Fn
ZVdpdGhNZXNzYWdlUG9ydHMuaCIKLSNpbmNsdWRlICJTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRp
Zmllci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
Y29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmgKaW5kZXggYzc2NWM1N2QyMDIzZjE0Y2FiYmJk
YmI5MGI2ODNlYTY1NDU3MDdjYi4uZmUwMDgzMDk4MjE3OWFkMmI0NDg2NDY5YTY4NmQ1ODZjYzQ1
NjMzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U1dDb250ZXh0TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9j
b250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaApAQCAtNTEsNyArNTEsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIHZpcnR1YWwgfkNvbm5lY3Rpb24oKSB7IH0KIAogICAgICAgICB2aXJ0dWFsIHZvaWQgZXN0
YWJsaXNoQ29ubmVjdGlvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpID0gMDsKLSAgICAg
ICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFNl
cnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyJiBkZXN0aW5hdGlvbklkZW50aWZpZXIsIGNvbnN0
IE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc291cmNl
LCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQg
cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dElkZW50aWZpZXImIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgY29uc3QgTWVzc2FnZVdpdGhN
ZXNzYWdlUG9ydHMmLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzb3VyY2UsIGNvbnN0IFN0cmlu
ZyYgc291cmNlT3JpZ2luKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXJ2aWNlV29ya2Vy
U3RhcnRlZChzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllcj4sIFNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBib29sIGRvZXNIYW5kbGVGZXRjaCkgPSAwOwogICAgICAg
ICB2aXJ0dWFsIHZvaWQgc2VydmljZVdvcmtlckZhaWxlZFRvU3RhcnQoc3RkOjpvcHRpb25hbDxT
ZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+LCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5p
c2hJbnN0YWxsKHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiwg
U2VydmljZVdvcmtlcklkZW50aWZpZXIsIGJvb2wgd2FzU3VjY2Vzc2Z1bCkgPSAwOwpAQCAtNjIs
NyArNjIsNyBAQCBwdWJsaWM6CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JpcHRSZXNvdXJj
ZShTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgVVJMJiwgY29uc3QgU2VydmljZVdvcmtl
ckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdCYpID0gMDsKIAogICAgICAgICB1c2luZyBGaW5k
Q2xpZW50QnlJZGVudGlmaWVyQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2Vw
dGlvbk9yPHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudERhdGE+PiYmKT47Ci0gICAg
ICAgIHZpcnR1YWwgdm9pZCBmaW5kQ2xpZW50QnlJZGVudGlmaWVyKFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciwgRmluZENsaWVudEJ5SWRlbnRp
ZmllckNhbGxiYWNrJiYpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGZpbmRDbGllbnRCeUlk
ZW50aWZpZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyLCBGaW5kQ2xpZW50QnlJZGVudGlmaWVyQ2FsbGJhY2smJikgPSAwOwogICAgICAg
ICB2aXJ0dWFsIHZvaWQgbWF0Y2hBbGwoU2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFNl
cnZpY2VXb3JrZXJDbGllbnRRdWVyeU9wdGlvbnMmLCBTZXJ2aWNlV29ya2VyQ2xpZW50c01hdGNo
QWxsQ2FsbGJhY2smJikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgY2xhaW0oU2VydmljZVdv
cmtlcklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4m
Jik+JiYpID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L2NvbnRleHQvU2VydmljZVdvcmtlckZldGNoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5jcHAKaW5kZXggZTZhYjc3ZGRjOTJi
MjdlN2ExMjA0MDdkMTIyN2Y5NDI3YjFiNzVhMC4uNGRhOWNjMDFhNmM2ZjNiZmIwYTI4MzNjOWQ1
ZTM0ZDc1MWFmMjc4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L2NvbnRleHQvU2VydmljZVdvcmtlckZldGNoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guY3BwCkBAIC0zNSw4ICszNSw4
IEBACiAjaW5jbHVkZSAiRmV0Y2hSZXNwb25zZS5oIgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0
cnkuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXIuaCIKLSNp
bmNsdWRlICJTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJUaHJlYWQuaCIK
ICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgpAQCAtMTM5LDcgKzEzOSw3IEBAIHN0YXRp
YyB2b2lkIHByb2Nlc3NSZXNwb25zZShSZWY8Q2xpZW50PiYmIGNsaWVudCwgRXhwZWN0ZWQ8UmVm
PEZldGNoUmVzcG9uc2U+LCBzCiAgICAgfSk7CiB9CiAKLXZvaWQgZGlzcGF0Y2hGZXRjaEV2ZW50
KFJlZjxDbGllbnQ+JiYgY2xpZW50LCBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUmIGdsb2JhbFNj
b3BlLCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiBjbGllbnRJ
ZCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU3RyaW5nJiYgcmVmZXJyZXIsIEZldGNoT3B0
aW9ucyYmIG9wdGlvbnMpCit2b2lkIGRpc3BhdGNoRmV0Y2hFdmVudChSZWY8Q2xpZW50PiYmIGNs
aWVudCwgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlJiBnbG9iYWxTY29wZSwgc3RkOjpvcHRpb25h
bDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gY2xpZW50SWQsIFJlc291cmNlUmVx
dWVzdCYmIHJlcXVlc3QsIFN0cmluZyYmIHJlZmVycmVyLCBGZXRjaE9wdGlvbnMmJiBvcHRpb25z
KQogewogICAgIGF1dG8gcmVxdWVzdEhlYWRlcnMgPSBGZXRjaEhlYWRlcnM6OmNyZWF0ZShGZXRj
aEhlYWRlcnM6Okd1YXJkOjpJbW11dGFibGUsIEhUVFBIZWFkZXJNYXAgeyByZXF1ZXN0Lmh0dHBI
ZWFkZXJGaWVsZHMoKSB9KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckZldGNoLmggYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guaAppbmRleCBjMjczNWRlODdm
OGJlZDE4NTc3YmZjYzZjODliYWJmNDM2Y2YyZjEzLi5mYzVhNzI1OGU0N2U2N2FkZGRmYjE2MjE5
ZDQ4ZmZlNjRhNThhOWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guaApAQCAtMjcsNiArMjcsNyBA
QAogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0
aW9uQ29udGV4dElkZW50aWZpZXIuaCIKICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8
d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+CiAKQEAgLTM4LDcgKzM5LDYgQEAgY2xhc3MgRm9y
bURhdGE7CiBjbGFzcyBSZXNvdXJjZUVycm9yOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xh
c3MgUmVzb3VyY2VSZXNwb25zZTsKLXN0cnVjdCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmll
cjsKIGNsYXNzIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTsKIGNsYXNzIFNlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZTsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBjb250aW51ZURpZFJlY2VpdmVSZXNwb25zZSgpID0gMDsKIH07
CiAKLXZvaWQgZGlzcGF0Y2hGZXRjaEV2ZW50KFJlZjxDbGllbnQ+JiYsIFNlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZSYsIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+
LCBSZXNvdXJjZVJlcXVlc3QmJiwgU3RyaW5nJiYgcmVmZXJyZXIsIEZldGNoT3B0aW9ucyYmKTsK
K3ZvaWQgZGlzcGF0Y2hGZXRjaEV2ZW50KFJlZjxDbGllbnQ+JiYsIFNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZSYsIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+
LCBSZXNvdXJjZVJlcXVlc3QmJiwgU3RyaW5nJiYgcmVmZXJyZXIsIEZldGNoT3B0aW9ucyYmKTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAK
aW5kZXggZjZkZGY4OGJjMzIzNGM0NTg5ZTM0MmFlZjcyMTUyNzJhODg4ZjUwMi4uMDA2OTg4Yzc3
M2QzNjg3YTRkODllNzUwODBmNTYzZTdkYjlmZDA1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVh
ZC5jcHAKQEAgLTEyMiw3ICsxMjIsNyBAQCB2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWQ6OnJ1bkV2
ZW50TG9vcCgpCiAgICAgV29ya2VyVGhyZWFkOjpydW5FdmVudExvb3AoKTsKIH0KIAotdm9pZCBT
ZXJ2aWNlV29ya2VyVGhyZWFkOjpxdWV1ZVRhc2tUb0ZpcmVGZXRjaEV2ZW50KFJlZjxTZXJ2aWNl
V29ya2VyRmV0Y2g6OkNsaWVudD4mJiBjbGllbnQsIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtl
ckNsaWVudElkZW50aWZpZXI+JiYgY2xpZW50SWQsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3Qs
IFN0cmluZyYmIHJlZmVycmVyLCBGZXRjaE9wdGlvbnMmJiBvcHRpb25zKQordm9pZCBTZXJ2aWNl
V29ya2VyVGhyZWFkOjpxdWV1ZVRhc2tUb0ZpcmVGZXRjaEV2ZW50KFJlZjxTZXJ2aWNlV29ya2Vy
RmV0Y2g6OkNsaWVudD4mJiBjbGllbnQsIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dElkZW50aWZpZXI+JiYgY2xpZW50SWQsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFN0
cmluZyYmIHJlZmVycmVyLCBGZXRjaE9wdGlvbnMmJiBvcHRpb25zKQogewogICAgIFJlZiBzZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUgPSBkb3duY2FzdDxTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+
KCpnbG9iYWxTY29wZSgpKTsKICAgICBzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUtPmV2ZW50TG9v
cCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpET01NYW5pcHVsYXRpb24sIFtzZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUsIGNsaWVudCA9IFdURk1vdmUoY2xpZW50KSwgY2xpZW50SWQsIHJlcXVlc3Qg
PSBXVEZNb3ZlKHJlcXVlc3QpLCByZWZlcnJlciA9IFdURk1vdmUocmVmZXJyZXIpLCBvcHRpb25z
ID0gV1RGTW92ZShvcHRpb25zKV0oKSBtdXRhYmxlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaApp
bmRleCAwNjgxYjMzY2ZjY2FiZjM5MDBhNzQ3ZjcwZTExNTg3MjEwOGMwMGJjLi5iNDgzMWEwYzAz
M2EyMTBiMTU5ZmFhMWMxZDNjMWQ0MGMwM2RhNjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5o
CkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNs
dWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNlcnZp
Y2VXb3JrZXJDb250ZXh0RGF0YS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaC5oIgog
I2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLmgiCkBAIC00NCw3ICs0NSw2IEBAIGNs
YXNzIE1lc3NhZ2VQb3J0Q2hhbm5lbDsKIGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIGNs
YXNzIFdvcmtlck9iamVjdFByb3h5Owogc3RydWN0IE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzOwot
c3RydWN0IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyOwogCiBjbGFzcyBTZXJ2aWNlV29y
a2VyVGhyZWFkIDogcHVibGljIFdvcmtlclRocmVhZCwgcHVibGljIENhbk1ha2VXZWFrUHRyPFNl
cnZpY2VXb3JrZXJUaHJlYWQsIFdlYWtQdHJGYWN0b3J5SW5pdGlhbGl6YXRpb246OkVhZ2VyPiB7
CiBwdWJsaWM6CkBAIC02Miw3ICs2Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHdpbGxQb3N0VGFz
a1RvRmlyZUFjdGl2YXRlRXZlbnQoKTsKICAgICB2b2lkIHdpbGxQb3N0VGFza1RvRmlyZU1lc3Nh
Z2VFdmVudCgpOwogCi0gICAgdm9pZCBxdWV1ZVRhc2tUb0ZpcmVGZXRjaEV2ZW50KFJlZjxTZXJ2
aWNlV29ya2VyRmV0Y2g6OkNsaWVudD4mJiwgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xp
ZW50SWRlbnRpZmllcj4mJiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFN0cmluZyYmIHJlZmVycmVyLCBG
ZXRjaE9wdGlvbnMmJik7CisgICAgdm9pZCBxdWV1ZVRhc2tUb0ZpcmVGZXRjaEV2ZW50KFJlZjxT
ZXJ2aWNlV29ya2VyRmV0Y2g6OkNsaWVudD4mJiwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRp
b25Db250ZXh0SWRlbnRpZmllcj4mJiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFN0cmluZyYmIHJlZmVy
cmVyLCBGZXRjaE9wdGlvbnMmJik7CiAgICAgdm9pZCBxdWV1ZVRhc2tUb1Bvc3RNZXNzYWdlKE1l
c3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYsIFNlcnZpY2VXb3JrZXJPckNsaWVudERhdGEmJiBzb3Vy
Y2VEYXRhKTsKICAgICB2b2lkIHF1ZXVlVGFza1RvRmlyZUluc3RhbGxFdmVudCgpOwogICAgIHZv
aWQgcXVldWVUYXNrVG9GaXJlQWN0aXZhdGVFdmVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eS5jcHAKaW5kZXggMDczYjQyZTkzNmViZmRlMTliOTVlYWY1MTA1ODUwZTI0YTli
OTRjZC4uNWM0NGRlNTZkM2VhN2E4MDExNzYxYTUwMmE5OGI2YzVlMDg5NzAzNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRo
cmVhZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCkBAIC00MCw4ICs0MCw4IEBACiAjaW5jbHVk
ZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzLmgiCiAjaW5j
bHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oIgot
I2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRl
ICJXb3JrZXJHbG9iYWxTY29wZS5oIgpAQCAtMjE0LDcgKzIxNCw3IEBAIHZvaWQgU2VydmljZVdv
cmtlclRocmVhZFByb3h5Ojpub3RpZnlOZXR3b3JrU3RhdGVDaGFuZ2UoYm9vbCBpc09ubGluZSkK
ICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKIH0KIAotdm9pZCBTZXJ2aWNl
V29ya2VyVGhyZWFkUHJveHk6OnN0YXJ0RmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciBjb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwg
UmVmPFNlcnZpY2VXb3JrZXJGZXRjaDo6Q2xpZW50PiYmIGNsaWVudCwgc3RkOjpvcHRpb25hbDxT
ZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4mJiBjbGllbnRJZCwgUmVzb3VyY2VSZXF1ZXN0
JiYgcmVxdWVzdCwgU3RyaW5nJiYgcmVmZXJyZXIsIEZldGNoT3B0aW9ucyYmIG9wdGlvbnMpCit2
b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6c3RhcnRGZXRjaChTV1NlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJ
ZGVudGlmaWVyLCBSZWY8U2VydmljZVdvcmtlckZldGNoOjpDbGllbnQ+JiYgY2xpZW50LCBzdGQ6
Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiYmIGNsaWVudElkLCBS
ZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTdHJpbmcmJiByZWZlcnJlciwgRmV0Y2hPcHRpb25z
JiYgb3B0aW9ucykKIHsKICAgICBSRUxFQVNFX0xPRyhTZXJ2aWNlV29ya2VyLCAiU2VydmljZVdv
cmtlclRocmVhZFByb3h5OjpzdGFydEZldGNoICVsbHUiLCBmZXRjaElkZW50aWZpZXIudG9VSW50
NjQoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmgKaW5kZXggY2VmYmM1ZTE2
MzY4YzM4YTgzYTdlMTE1ZmQ1NzQ3MmNhZjVjNWI5OC4uOTQ1ZmVlODk2ZDY1ZWZmMTg5ZmE0NTMx
NGU3OGZhYzA0N2UxMGFhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmgKQEAg
LTcyLDcgKzcyLDcgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBub3RpZnlO
ZXR3b3JrU3RhdGVDaGFuZ2UoYm9vbCBpc09ubGluZSk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHN0YXJ0RmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlm
aWVyLCBSZWY8U2VydmljZVdvcmtlckZldGNoOjpDbGllbnQ+JiYsIHN0ZDo6b3B0aW9uYWw8U2Vy
dmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+JiYsIFJlc291cmNlUmVxdWVzdCYmLCBTdHJpbmcm
JiByZWZlcnJlciwgRmV0Y2hPcHRpb25zJiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3Rh
cnRGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIsIFJl
ZjxTZXJ2aWNlV29ya2VyRmV0Y2g6OkNsaWVudD4mJiwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllcj4mJiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFN0cmluZyYmIHJl
ZmVycmVyLCBGZXRjaE9wdGlvbnMmJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjYW5jZWxG
ZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgY29udGludWVEaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShTV1Nl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIpOwogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgcmVtb3ZlRmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0
Y2hJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9TV1NlcnZlci5jcHAKaW5kZXggYWU2MWI3OWMxYTg2NTE1Nzg2NDdlMTNjOTA2NWM3Njli
YzdhMjIyNS4uM2VhNjhmZGY5ZjNlZjRkYTc4MGNlMGFmMWIyMDgzNjAxOWI3MDIxMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAK
QEAgLTkxLDcgKzkxLDcgQEAgU1dTZXJ2ZXJXb3JrZXIqIFNXU2VydmVyOjp3b3JrZXJCeUlEKFNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpIGNvbnN0CiAgICAgcmV0dXJuIHdvcmtl
cjsKIH0KIAotc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4gU1dTZXJ2ZXI6
OnNlcnZpY2VXb3JrZXJDbGllbnRXaXRoT3JpZ2luQnlJRChjb25zdCBDbGllbnRPcmlnaW4mIGNs
aWVudE9yaWdpbiwgY29uc3QgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXImIGNsaWVudElk
ZW50aWZpZXIpIGNvbnN0CitzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiBT
V1NlcnZlcjo6c2VydmljZVdvcmtlckNsaWVudFdpdGhPcmlnaW5CeUlEKGNvbnN0IENsaWVudE9y
aWdpbiYgY2xpZW50T3JpZ2luLCBjb25zdCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
ciYgY2xpZW50SWRlbnRpZmllcikgY29uc3QKIHsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV9jbGll
bnRJZGVudGlmaWVyc1Blck9yaWdpbi5maW5kKGNsaWVudE9yaWdpbik7CiAgICAgaWYgKGl0ZXJh
dG9yID09IG1fY2xpZW50SWRlbnRpZmllcnNQZXJPcmlnaW4uZW5kKCkpCkBAIC00MTAsNyArNDEw
LDcgQEAgdm9pZCBTV1NlcnZlcjo6c2NoZWR1bGVKb2IoU2VydmljZVdvcmtlckpvYkRhdGEmJiBq
b2JEYXRhKQogICAgIH0pOwogfQogCi12b2lkIFNXU2VydmVyOjpzY2hlZHVsZVVucmVnaXN0ZXJK
b2IoU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyIGpvYkRhdGFJZGVudGlmaWVyLCBTV1Nl
cnZlclJlZ2lzdHJhdGlvbiYgcmVnaXN0cmF0aW9uLCBEb2N1bWVudE9yV29ya2VySWRlbnRpZmll
ciBjb250ZXh0SWRlbnRpZmllciwgVVJMJiYgY2xpZW50Q3JlYXRpb25VUkwpCit2b2lkIFNXU2Vy
dmVyOjpzY2hlZHVsZVVucmVnaXN0ZXJKb2IoU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVy
IGpvYkRhdGFJZGVudGlmaWVyLCBTV1NlcnZlclJlZ2lzdHJhdGlvbiYgcmVnaXN0cmF0aW9uLCBT
ZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyIGNvbnRleHRJZGVudGlmaWVyLCBVUkwmJiBj
bGllbnRDcmVhdGlvblVSTCkKIHsKICAgICBTZXJ2aWNlV29ya2VySm9iRGF0YSBqb2JEYXRhIHsg
am9iRGF0YUlkZW50aWZpZXIsIGNvbnRleHRJZGVudGlmaWVyIH07CiAgICAgam9iRGF0YS5jbGll
bnRDcmVhdGlvblVSTCA9IFdURk1vdmUoY2xpZW50Q3JlYXRpb25VUkwpOwpAQCAtNjY3LDcgKzY2
Nyw3IEBAIHZvaWQgU1dTZXJ2ZXI6OnJlbW92ZUNsaWVudFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b24oQ29ubmVjdGlvbiYgY29ubmVjdGlvbiwgU2VyCiAgICAgICAgIHJlZ2lzdHJhdGlvbi0+cmVt
b3ZlQ2xpZW50U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbihjb25uZWN0aW9uLmlkZW50aWZpZXIo
KSk7CiB9CiAKLXZvaWQgU1dTZXJ2ZXI6OnVwZGF0ZVdvcmtlcihjb25zdCBTZXJ2aWNlV29ya2Vy
Sm9iRGF0YUlkZW50aWZpZXImIGpvYkRhdGFJZGVudGlmaWVyLCBTV1NlcnZlclJlZ2lzdHJhdGlv
biYgcmVnaXN0cmF0aW9uLCBjb25zdCBVUkwmIHVybCwgY29uc3QgU2NyaXB0QnVmZmVyJiBzY3Jp
cHQsIGNvbnN0IENlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJbmZvLCBjb25zdCBDb250ZW50
U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRTZWN1cml0eVBvbGljeSwgY29u
c3QgQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeSYgY29lcCwgY29uc3QgU3RyaW5nJiByZWZlcnJl
clBvbGljeSwgV29ya2VyVHlwZSB0eXBlLCBIYXNoTWFwPFVSTCwgU2VydmljZVdvcmtlckNvbnRl
eHREYXRhOjpJbXBvcnRlZFNjcmlwdD4mJiBzY3JpcHRSZXNvdXJjZU1hcCwgc3RkOjpvcHRpb25h
bDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlm
aWVyKQordm9pZCBTV1NlcnZlcjo6dXBkYXRlV29ya2VyKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JE
YXRhSWRlbnRpZmllciYgam9iRGF0YUlkZW50aWZpZXIsIFNXU2VydmVyUmVnaXN0cmF0aW9uJiBy
ZWdpc3RyYXRpb24sIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTY3JpcHRCdWZmZXImIHNjcmlwdCwg
Y29uc3QgQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGNvbnN0IENvbnRlbnRTZWN1
cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBjb25zdCBD
cm9zc09yaWdpbkVtYmVkZGVyUG9saWN5JiBjb2VwLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyUG9s
aWN5LCBXb3JrZXJUeXBlIHR5cGUsIEhhc2hNYXA8VVJMLCBTZXJ2aWNlV29ya2VyQ29udGV4dERh
dGE6OkltcG9ydGVkU2NyaXB0PiYmIHNjcmlwdFJlc291cmNlTWFwLCBzdGQ6Om9wdGlvbmFsPFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZp
ZXIpCiB7CiAgICAgdHJ5SW5zdGFsbENvbnRleHREYXRhKFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0
YSB7IGpvYkRhdGFJZGVudGlmaWVyLCByZWdpc3RyYXRpb24uZGF0YSgpLCBTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllcjo6Z2VuZXJhdGUoKSwgc2NyaXB0LCBjZXJ0aWZpY2F0ZUluZm8sIGNvbnRlbnRT
ZWN1cml0eVBvbGljeSwgY29lcCwgcmVmZXJyZXJQb2xpY3ksIHVybCwgdHlwZSwgZmFsc2UsIGNs
aWVudElzQXBwSW5pdGlhdGVkRm9yUmVnaXN0cmFibGVEb21haW4oUmVnaXN0cmFibGVEb21haW4o
dXJsKSksIFdURk1vdmUoc2NyaXB0UmVzb3VyY2VNYXApLCBzZXJ2aWNlV29ya2VyUGFnZUlkZW50
aWZpZXIgfSk7CiB9CkBAIC05NDIsNyArOTQyLDcgQEAgdm9pZCBTV1NlcnZlcjo6cmVnaXN0ZXJT
ZXJ2aWNlV29ya2VyQ2xpZW50KENsaWVudE9yaWdpbiYmIGNsaWVudE9yaWdpbiwgU2VydmljZVcK
ICAgICBjbGllbnRJZGVudGlmaWVyc0Zvck9yaWdpbi50ZXJtaW5hdGVTZXJ2aWNlV29ya2Vyc1Rp
bWVyID0gbnVsbHB0cjsKIAogICAgIG1fY2xpZW50c0J5UmVnaXN0cmFibGVEb21haW4uZW5zdXJl
KGNsaWVudE9yaWdpbi5jbGllbnRSZWdpc3RyYWJsZURvbWFpbigpLCBbXSB7Ci0gICAgICAgIHJl
dHVybiBIYXNoU2V0PFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiB7IH07CisgICAgICAg
IHJldHVybiBIYXNoU2V0PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiB7IH07CiAg
ICAgfSkuaXRlcmF0b3ItPnZhbHVlLmFkZChjbGllbnRJZGVudGlmaWVyKTsKIAogICAgIGlmICgh
Y29udHJvbGxpbmdTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcikKQEAgLTk1Nyw3
ICs5NTcsNyBAQCB2b2lkIFNXU2VydmVyOjpyZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoQ2xp
ZW50T3JpZ2luJiYgY2xpZW50T3JpZ2luLCBTZXJ2aWNlVwogICAgIG1fY2xpZW50VG9Db250cm9s
bGluZ1JlZ2lzdHJhdGlvbi5hZGQoY2xpZW50SWRlbnRpZmllciwgKmNvbnRyb2xsaW5nU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOwogfQogCi12b2lkIFNXU2VydmVyOjp1bnJl
Z2lzdGVyU2VydmljZVdvcmtlckNsaWVudChjb25zdCBDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdp
biwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikKK3ZvaWQg
U1dTZXJ2ZXI6OnVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IENsaWVudE9yaWdp
biYgY2xpZW50T3JpZ2luLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJ
ZGVudGlmaWVyKQogewogICAgIGF1dG8gY2xpZW50UmVnaXN0cmFibGVEb21haW4gPSBjbGllbnRP
cmlnaW4uY2xpZW50UmVnaXN0cmFibGVEb21haW4oKTsKICAgICBhdXRvIGFwcEluaXRpYXRlZFZh
bHVlQmVmb3JlID0gY2xpZW50SXNBcHBJbml0aWF0ZWRGb3JSZWdpc3RyYWJsZURvbWFpbihjbGll
bnRPcmlnaW4uY2xpZW50UmVnaXN0cmFibGVEb21haW4oKSk7CkBAIC0xMTQyLDcgKzExNDIsNyBA
QCB2b2lkIFNXU2VydmVyOjpyZW1vdmVDb250ZXh0Q29ubmVjdGlvbihTV1NlcnZlclRvQ29udGV4
dENvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiAgICAgICAgIGNyZWF0ZUNvbnRleHRDb25uZWN0aW9u
KHJlZ2lzdHJhYmxlRG9tYWluLCBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIpOwogfQogCi12
b2lkIFNXU2VydmVyOjpjcmVhdGVDb250ZXh0Q29ubmVjdGlvbihjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgcmVnaXN0cmFibGVEb21haW4sIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVu
dElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcikKK3ZvaWQgU1dTZXJ2ZXI6
OmNyZWF0ZUNvbnRleHRDb25uZWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZWdpc3Ry
YWJsZURvbWFpbiwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
cj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKQogewogICAgIEFTU0VSVCghbV9jb250ZXh0
Q29ubmVjdGlvbnMuY29udGFpbnMocmVnaXN0cmFibGVEb21haW4pKTsKICAgICBpZiAobV9wZW5k
aW5nQ29ubmVjdGlvbkRvbWFpbnMuY29udGFpbnMocmVnaXN0cmFibGVEb21haW4pKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCmluZGV4IGE4
ZWFhNjBhZTAyOTQ1NWZlY2E3OTRkMDgzN2I4ZDcxYzJiZTU3MjMuLmExYWEwNzFiZjliNDIwOWJi
NzAzZDA0NzI0MDI2OTFkODk2NzZjMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKQEAgLTI4LDkgKzI4LDkgQEAKICNpZiBFTkFCTEUo
U0VSVklDRV9XT1JLRVIpCiAKICNpbmNsdWRlICJDbGllbnRPcmlnaW4uaCIKLSNpbmNsdWRlICJE
b2N1bWVudElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUg
IlNXU2VydmVyV29ya2VyLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXIuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKICNpbmNsdWRlICJTZXJ2
aWNlV29ya2VyQ2xpZW50RGF0YS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
LmgiCkBAIC04OSw5ICs4OSw5IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIGZpcmVV
cGRhdGVGb3VuZEV2ZW50KFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKSA9IDA7
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRSZWdpc3RyYXRpb25MYXN0VXBkYXRlVGltZShTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgV2FsbFRpbWUpID0gMDsKICAgICAgICAg
dmlydHVhbCB2b2lkIHNldFJlZ2lzdHJhdGlvblVwZGF0ZVZpYUNhY2hlKFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25JZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGUpID0gMDsK
LSAgICAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUNsaWVudHNPZkNvbnRyb2xsZXJDaGFuZ2UoY29u
c3QgSGFzaFNldDxEb2N1bWVudElkZW50aWZpZXI+JiBjb250ZXh0SWRlbnRpZmllcnMsIGNvbnN0
IFNlcnZpY2VXb3JrZXJEYXRhJiBuZXdDb250cm9sbGVyKSA9IDA7CisgICAgICAgIHZpcnR1YWwg
dm9pZCBub3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKGNvbnN0IEhhc2hTZXQ8U2NyaXB0
RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+JiBjb250ZXh0SWRlbnRpZmllcnMsIGNvbnN0IFNl
cnZpY2VXb3JrZXJEYXRhJiBuZXdDb250cm9sbGVyKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCByZWdpc3RyYXRpb25SZWFkeSh1aW50NjRfdCByZWdpc3RyYXRpb25SZWFkeVJlcXVlc3RJZGVu
dGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYmKSA9IDA7Ci0gICAgICAgIHZp
cnR1YWwgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChEb2N1bWVudElkZW50
aWZpZXIsIGNvbnN0IE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiwgU2VydmljZVdvcmtlcklkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKSA9IDA7CisgICAgICAgIHZpcnR1YWwg
dm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllciwgY29uc3QgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmLCBTZXJ2aWNlV29y
a2VySWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pID0gMDsKIAogICAgICAg
ICB2aXJ0dWFsIHZvaWQgY29udGV4dENvbm5lY3Rpb25DcmVhdGVkKFNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbiYpID0gMDsKIApAQCAtMTI3LDcgKzEyNyw3IEBAIHB1YmxpYzoKICAgICB9Owog
CiAgICAgdXNpbmcgU29mdFVwZGF0ZUNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChTZXJ2aWNlV29y
a2VySm9iRGF0YSYmIGpvYkRhdGEsIGJvb2wgc2hvdWxkUmVmcmVzaENhY2hlLCBSZXNvdXJjZVJl
cXVlc3QmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBTZXJ2aWNlV29ya2VyRmV0Y2hS
ZXN1bHQmKT4mJik+OwotICAgIHVzaW5nIENyZWF0ZUNvbnRleHRDb25uZWN0aW9uQ2FsbGJhY2sg
PSBGdW5jdGlvbjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiwgc3RkOjpv
cHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4sIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik+OworICAgIHVzaW5nIENyZWF0ZUNvbnRleHRDb25uZWN0aW9uQ2FsbGJhY2sg
PSBGdW5jdGlvbjx2b2lkKGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiwgc3RkOjpv
cHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4sIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik+OwogICAgIHVzaW5nIEFwcEJvdW5kRG9tYWluc0NhbGxiYWNrID0gRnVu
Y3Rpb248dm9pZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc2hTZXQ8V2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4+JiYpPiYmKT47CiAgICAgV0VCQ09SRV9FWFBPUlQgU1dTZXJ2ZXIoVW5pcXVl
UmVmPFNXT3JpZ2luU3RvcmU+JiYsIGJvb2wgcHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVk
LCBTdHJpbmcmJiByZWdpc3RyYXRpb25EYXRhYmFzZURpcmVjdG9yeSwgUEFMOjpTZXNzaW9uSUQs
IGJvb2wgc2hvdWxkUnVuU2VydmljZVdvcmtlcnNPbk1haW5UaHJlYWRGb3JUZXN0aW5nLCBib29s
IGhhc1NlcnZpY2VXb3JrZXJFbnRpdGxlbWVudCwgU29mdFVwZGF0ZUNhbGxiYWNrJiYsIENyZWF0
ZUNvbnRleHRDb25uZWN0aW9uQ2FsbGJhY2smJiwgQXBwQm91bmREb21haW5zQ2FsbGJhY2smJik7
CiAKQEAgLTE0NiwxOSArMTQ2LDE5IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBWZWN0
b3I8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE+IGdldFJlZ2lzdHJhdGlvbnMoY29uc3Qg
U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMKTsKIAog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2NoZWR1bGVKb2IoU2VydmljZVdvcmtlckpvYkRhdGEm
Jik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY2hlZHVsZVVucmVnaXN0ZXJKb2IoU2Vydmlj
ZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyLCBTV1NlcnZlclJlZ2lzdHJhdGlvbiYsIERvY3VtZW50
T3JXb3JrZXJJZGVudGlmaWVyLCBVUkwmJik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzY2hl
ZHVsZVVucmVnaXN0ZXJKb2IoU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyLCBTV1NlcnZl
clJlZ2lzdHJhdGlvbiYsIFNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXIsIFVSTCYmKTsK
IAogICAgIHZvaWQgcmVqZWN0Sm9iKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiwgY29uc3Qg
RXhjZXB0aW9uRGF0YSYpOwogICAgIHZvaWQgcmVzb2x2ZVJlZ2lzdHJhdGlvbkpvYihjb25zdCBT
ZXJ2aWNlV29ya2VySm9iRGF0YSYsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRh
JiwgU2hvdWxkTm90aWZ5V2hlblJlc29sdmVkKTsKICAgICB2b2lkIHJlc29sdmVVbnJlZ2lzdHJh
dGlvbkpvYihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYsIGNvbnN0IFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25LZXkmLCBib29sIHVucmVnaXN0cmF0aW9uUmVzdWx0KTsKICAgICB2b2lkIHN0
YXJ0U2NyaXB0RmV0Y2goY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmLCBTV1NlcnZlclJlZ2lz
dHJhdGlvbiYpOwogCi0gICAgdm9pZCB1cGRhdGVXb3JrZXIoY29uc3QgU2VydmljZVdvcmtlckpv
YkRhdGFJZGVudGlmaWVyJiwgU1dTZXJ2ZXJSZWdpc3RyYXRpb24mLCBjb25zdCBVUkwmLCBjb25z
dCBTY3JpcHRCdWZmZXImLCBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mLCBjb25zdCBDb250ZW50U2Vj
dXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBjb25zdCBDcm9zc09yaWdpbkVtYmVkZGVyUG9s
aWN5JiwgY29uc3QgU3RyaW5nJiByZWZlcnJlclBvbGljeSwgV29ya2VyVHlwZSwgSGFzaE1hcDxV
UkwsIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+JiYsIHN0ZDo6b3B0
aW9uYWw8U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRl
bnRpZmllcik7CisgICAgdm9pZCB1cGRhdGVXb3JrZXIoY29uc3QgU2VydmljZVdvcmtlckpvYkRh
dGFJZGVudGlmaWVyJiwgU1dTZXJ2ZXJSZWdpc3RyYXRpb24mLCBjb25zdCBVUkwmLCBjb25zdCBT
Y3JpcHRCdWZmZXImLCBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mLCBjb25zdCBDb250ZW50U2VjdXJp
dHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmLCBjb25zdCBDcm9zc09yaWdpbkVtYmVkZGVyUG9saWN5
JiwgY29uc3QgU3RyaW5nJiByZWZlcnJlclBvbGljeSwgV29ya2VyVHlwZSwgSGFzaE1hcDxVUkws
IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+JiYsIHN0ZDo6b3B0aW9u
YWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRl
bnRpZmllcik7CiAgICAgdm9pZCBmaXJlSW5zdGFsbEV2ZW50KFNXU2VydmVyV29ya2VyJik7CiAg
ICAgdm9pZCBmaXJlQWN0aXZhdGVFdmVudChTV1NlcnZlcldvcmtlciYpOwogCiAgICAgV0VCQ09S
RV9FWFBPUlQgU1dTZXJ2ZXJXb3JrZXIqIHdvcmtlckJ5SUQoU2VydmljZVdvcmtlcklkZW50aWZp
ZXIpIGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtl
ckNsaWVudERhdGE+IHNlcnZpY2VXb3JrZXJDbGllbnRXaXRoT3JpZ2luQnlJRChjb25zdCBDbGll
bnRPcmlnaW4mLCBjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYpIGNvbnN0Owor
ICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudERhdGE+
IHNlcnZpY2VXb3JrZXJDbGllbnRXaXRoT3JpZ2luQnlJRChjb25zdCBDbGllbnRPcmlnaW4mLCBj
b25zdCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciYpIGNvbnN0OwogICAgIFN0cmlu
ZyBzZXJ2aWNlV29ya2VyQ2xpZW50VXNlckFnZW50KGNvbnN0IENsaWVudE9yaWdpbiYpIGNvbnN0
OwogICAgIFdFQkNPUkVfRVhQT1JUIFNXU2VydmVyV29ya2VyKiBhY3RpdmVXb3JrZXJGcm9tUmVn
aXN0cmF0aW9uSUQoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOwogCkBAIC0x
ODQsNyArMTg0LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBIYXNoU2V0
PFNXU2VydmVyKj4mIGFsbFNlcnZlcnMoKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVn
aXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KENsaWVudE9yaWdpbiYmLCBTZXJ2aWNlV29ya2VyQ2xp
ZW50RGF0YSYmLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25J
ZGVudGlmaWVyPiYsIFN0cmluZyYmIHVzZXJBZ2VudCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCB1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChjb25zdCBDbGllbnRPcmlnaW4mLCBTZXJ2
aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1bnJl
Z2lzdGVyU2VydmljZVdvcmtlckNsaWVudChjb25zdCBDbGllbnRPcmlnaW4mLCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllcik7CiAKICAgICB1c2luZyBSdW5TZXJ2aWNlV29ya2VyQ2Fs
bGJhY2sgPSBGdW5jdGlvbjx2b2lkKFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiopPjsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJ1blNlcnZpY2VXb3JrZXJJZk5lY2Vzc2FyeShTZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgUnVuU2VydmljZVdvcmtlckNhbGxiYWNrJiYpOwpAQCAtMjA3LDcg
KzIwNyw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUNvbnRleHRD
b25uZWN0aW9uKFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiYpOwogCiAgICAgU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uKiBjb250ZXh0Q29ubmVjdGlvbkZvclJlZ2lzdHJhYmxlRG9tYWlu
KGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4pIHsgcmV0dXJuIG1fY29udGV4dENvbm5l
Y3Rpb25zLmdldChkb21haW4pOyB9Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjcmVhdGVDb250
ZXh0Q29ubmVjdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIHN0ZDo6b3B0aW9uYWw8U2Vy
dmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcik7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjcmVhdGVDb250ZXh0Q29ubmVjdGlvbihjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYsIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcik7CiAKICAgICBib29sIGlzSW1w
b3J0Q29tcGxldGVkKCkgY29uc3QgeyByZXR1cm4gbV9pbXBvcnRDb21wbGV0ZWQ7IH0KICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHdoZW5JbXBvcnRJc0NvbXBsZXRlZChDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwpAQCAtMjYxLDE2ICsyNjEsMTYgQEAgcHJpdmF0ZToKIAogICAgIEhhc2hN
YXA8U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFJlZjxTV1NlcnZlcldvcmtlcj4+IG1fcnVubmlu
Z09yVGVybWluYXRpbmdXb3JrZXJzOwogCi0gICAgSGFzaE1hcDxSZWdpc3RyYWJsZURvbWFpbiwg
SGFzaFNldDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4+IG1fY2xpZW50c0J5UmVnaXN0
cmFibGVEb21haW47CisgICAgSGFzaE1hcDxSZWdpc3RyYWJsZURvbWFpbiwgSGFzaFNldDxTY3Jp
cHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4+IG1fY2xpZW50c0J5UmVnaXN0cmFibGVEb21h
aW47CiAgICAgc3RydWN0IENsaWVudHMgewotICAgICAgICBWZWN0b3I8U2VydmljZVdvcmtlckNs
aWVudElkZW50aWZpZXI+IGlkZW50aWZpZXJzOworICAgICAgICBWZWN0b3I8U2NyaXB0RXhlY3V0
aW9uQ29udGV4dElkZW50aWZpZXI+IGlkZW50aWZpZXJzOwogICAgICAgICBzdGQ6OnVuaXF1ZV9w
dHI8VGltZXI+IHRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJzVGltZXI7CiAgICAgICAgIFN0cmluZyB1
c2VyQWdlbnQ7CiAgICAgfTsKICAgICBIYXNoTWFwPENsaWVudE9yaWdpbiwgQ2xpZW50cz4gbV9j
bGllbnRJZGVudGlmaWVyc1Blck9yaWdpbjsKLSAgICBIYXNoTWFwPFNlcnZpY2VXb3JrZXJDbGll
bnRJZGVudGlmaWVyLCBXZWFrUHRyPFNXU2VydmVyUmVnaXN0cmF0aW9uPj4gbV9zZXJ2aWNlV29y
a2VyUGFnZUlkZW50aWZpZXJUb1JlZ2lzdHJhdGlvbk1hcDsKLSAgICBIYXNoTWFwPFNlcnZpY2VX
b3JrZXJDbGllbnRJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4gbV9jbGllbnRz
QnlJZDsKLSAgICBIYXNoTWFwPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLCBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcj4gbV9jbGllbnRUb0NvbnRyb2xsaW5nUmVnaXN0
cmF0aW9uOworICAgIEhhc2hNYXA8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIFdl
YWtQdHI8U1dTZXJ2ZXJSZWdpc3RyYXRpb24+PiBtX3NlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmll
clRvUmVnaXN0cmF0aW9uTWFwOworICAgIEhhc2hNYXA8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiBtX2NsaWVudHNCeUlkOworICAgIEhh
c2hNYXA8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25JZGVudGlmaWVyPiBtX2NsaWVudFRvQ29udHJvbGxpbmdSZWdpc3RyYXRpb247CiAK
ICAgICBVbmlxdWVSZWY8U1dPcmlnaW5TdG9yZT4gbV9vcmlnaW5TdG9yZTsKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8UmVnaXN0cmF0aW9uU3RvcmU+IG1fcmVnaXN0cmF0aW9uU3RvcmU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0
cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2
ZXJSZWdpc3RyYXRpb24uY3BwCmluZGV4IDg2YjU4MjY0MTRkOWM1ODJiNmViMGZkM2Q0MTliOTlm
MjA2Nzc4YTIuLjBhZjBkNDkzYjM3ZDZjYjYwYWFhNjExZGZiMzIwMWI4MDUxNGJjM2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdp
c3RyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCkBAIC00Miw3ICs0Miw3IEBAIHN0YXRpYyBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBnZW5lcmF0ZVNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25JZGVuCiAgICAgcmV0dXJuIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVy
OjpnZW5lcmF0ZSgpOwogfQogCi1TV1NlcnZlclJlZ2lzdHJhdGlvbjo6U1dTZXJ2ZXJSZWdpc3Ry
YXRpb24oU1dTZXJ2ZXImIHNlcnZlciwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktl
eSYga2V5LCBTZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGUgdXBkYXRlVmlhQ2FjaGUsIGNvbnN0
IFVSTCYgc2NvcGVVUkwsIGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBzdGQ6Om9wdGlvbmFsPFNlcnZp
Y2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIpCitT
V1NlcnZlclJlZ2lzdHJhdGlvbjo6U1dTZXJ2ZXJSZWdpc3RyYXRpb24oU1dTZXJ2ZXImIHNlcnZl
ciwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYga2V5LCBTZXJ2aWNlV29ya2Vy
VXBkYXRlVmlhQ2FjaGUgdXBkYXRlVmlhQ2FjaGUsIGNvbnN0IFVSTCYgc2NvcGVVUkwsIGNvbnN0
IFVSTCYgc2NyaXB0VVJMLCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIpCiAgICAgOiBtX2lkZW50aWZpZXIo
Z2VuZXJhdGVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcigpKQogICAgICwgbV9y
ZWdpc3RyYXRpb25LZXkoa2V5KQogICAgICwgbV91cGRhdGVWaWFDYWNoZSh1cGRhdGVWaWFDYWNo
ZSkKQEAgLTE3MiwyMiArMTcyLDIyIEBAIHZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnJlbW92
ZUNsaWVudFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24oU1dTZXJ2ZXJDb25uZWN0CiAgICAgbV9j
b25uZWN0aW9uc1dpdGhDbGllbnRSZWdpc3RyYXRpb25zLnJlbW92ZShjb25uZWN0aW9uSWRlbnRp
Zmllcik7CiB9CiAKLXZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OmFkZENsaWVudFVzaW5nUmVn
aXN0cmF0aW9uKGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyJiBjbGllbnRJZGVu
dGlmaWVyKQordm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6YWRkQ2xpZW50VXNpbmdSZWdpc3Ry
YXRpb24oY29uc3QgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXImIGNsaWVudElkZW50
aWZpZXIpCiB7Ci0gICAgYXV0byBhZGRSZXN1bHQgPSBtX2NsaWVudHNVc2luZ1JlZ2lzdHJhdGlv
bi5lbnN1cmUoY2xpZW50SWRlbnRpZmllci5zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgW10g
ewotICAgICAgICByZXR1cm4gSGFzaFNldDxEb2N1bWVudElkZW50aWZpZXI+IHsgfTsKLSAgICB9
KS5pdGVyYXRvci0+dmFsdWUuYWRkKGNsaWVudElkZW50aWZpZXIuY29udGV4dElkZW50aWZpZXIp
OworICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9jbGllbnRzVXNpbmdSZWdpc3RyYXRpb24uZW5zdXJl
KGNsaWVudElkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZpZXIoKSwgW10geworICAgICAgICByZXR1
cm4gSGFzaFNldDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4geyB9OworICAgIH0p
Lml0ZXJhdG9yLT52YWx1ZS5hZGQoY2xpZW50SWRlbnRpZmllcik7CiAgICAgQVNTRVJUX1VOVVNF
RChhZGRSZXN1bHQsIGFkZFJlc3VsdC5pc05ld0VudHJ5KTsKIH0KIAotdm9pZCBTV1NlcnZlclJl
Z2lzdHJhdGlvbjo6cmVtb3ZlQ2xpZW50VXNpbmdSZWdpc3RyYXRpb24oY29uc3QgU2VydmljZVdv
cmtlckNsaWVudElkZW50aWZpZXImIGNsaWVudElkZW50aWZpZXIpCit2b2lkIFNXU2VydmVyUmVn
aXN0cmF0aW9uOjpyZW1vdmVDbGllbnRVc2luZ1JlZ2lzdHJhdGlvbihjb25zdCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllciYgY2xpZW50SWRlbnRpZmllcikKIHsKLSAgICBhdXRvIGl0
ZXJhdG9yID0gbV9jbGllbnRzVXNpbmdSZWdpc3RyYXRpb24uZmluZChjbGllbnRJZGVudGlmaWVy
LnNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9jbGll
bnRzVXNpbmdSZWdpc3RyYXRpb24uZmluZChjbGllbnRJZGVudGlmaWVyLnByb2Nlc3NJZGVudGlm
aWVyKCkpOwogICAgIEFTU0VSVChpdGVyYXRvciAhPSBtX2NsaWVudHNVc2luZ1JlZ2lzdHJhdGlv
bi5lbmQoKSk7CiAgICAgaWYgKGl0ZXJhdG9yID09IG1fY2xpZW50c1VzaW5nUmVnaXN0cmF0aW9u
LmVuZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBib29sIHdhc1JlbW92ZWQgPSBpdGVyYXRv
ci0+dmFsdWUucmVtb3ZlKGNsaWVudElkZW50aWZpZXIuY29udGV4dElkZW50aWZpZXIpOworICAg
IGJvb2wgd2FzUmVtb3ZlZCA9IGl0ZXJhdG9yLT52YWx1ZS5yZW1vdmUoY2xpZW50SWRlbnRpZmll
cik7CiAgICAgQVNTRVJUX1VOVVNFRCh3YXNSZW1vdmVkLCB3YXNSZW1vdmVkKTsKIAogICAgIGlm
IChpdGVyYXRvci0+dmFsdWUuaXNFbXB0eSgpKQpAQCAtMzQ3LDE1ICszNDcsMTUgQEAgYm9vbCBT
V1NlcnZlclJlZ2lzdHJhdGlvbjo6aXNVbnJlZ2lzdGVyZWQoKSBjb25zdAogICAgIHJldHVybiBt
X3NlcnZlci5nZXRSZWdpc3RyYXRpb24oa2V5KCkpICE9IHRoaXM7CiB9CiAKLXZvaWQgU1dTZXJ2
ZXJSZWdpc3RyYXRpb246OmNvbnRyb2xDbGllbnQoU2VydmljZVdvcmtlckNsaWVudElkZW50aWZp
ZXIgaWRlbnRpZmllcikKK3ZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OmNvbnRyb2xDbGllbnQo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBBU1NF
UlQoYWN0aXZlV29ya2VyKCkpOwogCiAgICAgYWRkQ2xpZW50VXNpbmdSZWdpc3RyYXRpb24oaWRl
bnRpZmllcik7CiAKLSAgICBIYXNoU2V0PERvY3VtZW50SWRlbnRpZmllcj4gaWRlbnRpZmllcnM7
Ci0gICAgaWRlbnRpZmllcnMuYWRkKGlkZW50aWZpZXIuY29udGV4dElkZW50aWZpZXIpOwotICAg
IG1fc2VydmVyLmNvbm5lY3Rpb24oaWRlbnRpZmllci5zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciktPm5vdGlmeUNsaWVudHNPZkNvbnRyb2xsZXJDaGFuZ2UoaWRlbnRpZmllcnMsIGFjdGl2ZVdv
cmtlcigpLT5kYXRhKCkpOworICAgIEhhc2hTZXQ8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXI+IGlkZW50aWZpZXJzOworICAgIGlkZW50aWZpZXJzLmFkZChpZGVudGlmaWVyKTsKKyAg
ICBtX3NlcnZlci5jb25uZWN0aW9uKGlkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZpZXIoKSktPm5v
dGlmeUNsaWVudHNPZkNvbnRyb2xsZXJDaGFuZ2UoaWRlbnRpZmllcnMsIGFjdGl2ZVdvcmtlcigp
LT5kYXRhKCkpOwogfQogCiBib29sIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpzaG91bGRTb2Z0VXBk
YXRlKGNvbnN0IEZldGNoT3B0aW9ucyYgb3B0aW9ucykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRp
b24uaAppbmRleCAyYzE2NGU0NDRiNDVjZTY5MGI1ZTM2OGZmOGFiZmVkNjkwNzhiN2U0Li43Mjg3
MWI5YjBhMDA3OWRlMjM2YjMzNTkyZDZkY2ZhN2Y0ZWM2YjVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJh
dGlvbi5oCkBAIC0yOCw3ICsyOCw3IEBACiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogCiAj
aW5jbHVkZSAiU1dTZXJ2ZXIuaCIKLSNpbmNsdWRlICJTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRp
Zmllci5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmgiCiAj
aW5jbHVkZSAiU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEuaCIKICNpbmNsdWRlICJTZXJ2
aWNlV29ya2VyVHlwZXMuaCIKICNpbmNsdWRlICJUaW1lci5oIgpAQCAtNTIsNyArNTIsNyBAQCBl
bnVtIGNsYXNzIElzQXBwSW5pdGlhdGVkIDogYm9vbCB7IE5vLCBZZXMgfTsKIGNsYXNzIFNXU2Vy
dmVyUmVnaXN0cmF0aW9uIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFNXU2VydmVyUmVnaXN0cmF0
aW9uPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgU1dTZXJ2
ZXJSZWdpc3RyYXRpb24oU1dTZXJ2ZXImLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
S2V5JiwgU2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlLCBjb25zdCBVUkwmIHNjb3BlVVJMLCBj
b25zdCBVUkwmIHNjcmlwdFVSTCwgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRl
bnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKTsKKyAgICBTV1NlcnZlclJlZ2lz
dHJhdGlvbihTV1NlcnZlciYsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmLCBT
ZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGUsIGNvbnN0IFVSTCYgc2NvcGVVUkwsIGNvbnN0IFVS
TCYgc2NyaXB0VVJMLCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIpOwogICAgIH5TV1NlcnZlclJlZ2lzdHJh
dGlvbigpOwogCiAgICAgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYga2V5KCkg
Y29uc3QgeyByZXR1cm4gbV9yZWdpc3RyYXRpb25LZXk7IH0KQEAgLTg0LDEyICs4NCwxMiBAQCBw
dWJsaWM6CiAgICAgTW9ub3RvbmljVGltZSBjcmVhdGlvblRpbWUoKSBjb25zdCB7IHJldHVybiBt
X2NyZWF0aW9uVGltZTsgfQogCiAgICAgYm9vbCBoYXNDbGllbnRzVXNpbmdSZWdpc3RyYXRpb24o
KSBjb25zdCB7IHJldHVybiAhbV9jbGllbnRzVXNpbmdSZWdpc3RyYXRpb24uaXNFbXB0eSgpOyB9
Ci0gICAgdm9pZCBhZGRDbGllbnRVc2luZ1JlZ2lzdHJhdGlvbihjb25zdCBTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllciYpOwotICAgIHZvaWQgcmVtb3ZlQ2xpZW50VXNpbmdSZWdpc3RyYXRp
b24oY29uc3QgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXImKTsKKyAgICB2b2lkIGFkZENs
aWVudFVzaW5nUmVnaXN0cmF0aW9uKGNvbnN0IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyJik7CisgICAgdm9pZCByZW1vdmVDbGllbnRVc2luZ1JlZ2lzdHJhdGlvbihjb25zdCBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciYpOwogICAgIHZvaWQgdW5yZWdpc3RlclNlcnZl
ckNvbm5lY3Rpb24oU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcik7CiAKICAgICB2b2lkIG5v
dGlmeUNsaWVudHNPZkNvbnRyb2xsZXJDaGFuZ2UoKTsKLSAgICB2b2lkIGNvbnRyb2xDbGllbnQo
U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIpOworICAgIHZvaWQgY29udHJvbENsaWVudChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcik7CiAKICAgICB2b2lkIGNsZWFyKCk7CiAg
ICAgYm9vbCB0cnlDbGVhcigpOwpAQCAtMTA4LDcgKzEwOCw3IEBAIHB1YmxpYzoKICAgICBVUkwg
c2NyaXB0VVJMKCkgY29uc3QgeyByZXR1cm4gbV9zY3JpcHRVUkw7IH0KIAogICAgIGJvb2wgaXNB
cHBJbml0aWF0ZWQoKSBjb25zdCB7IHJldHVybiBtX2lzQXBwSW5pdGlhdGVkOyB9Ci0gICAgc3Rk
OjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBh
Z2VJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9zZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZp
ZXI7IH0KKyAgICBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
PiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3NlcnZpY2VX
b3JrZXJQYWdlSWRlbnRpZmllcjsgfQogCiBwcml2YXRlOgogICAgIHZvaWQgYWN0aXZhdGUoKTsK
QEAgLTEyMCw3ICsxMjAsNyBAQCBwcml2YXRlOgogICAgIFNlcnZpY2VXb3JrZXJVcGRhdGVWaWFD
YWNoZSBtX3VwZGF0ZVZpYUNhY2hlOwogICAgIFVSTCBtX3Njb3BlVVJMOwogICAgIFVSTCBtX3Nj
cmlwdFVSTDsKLSAgICBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVy
PiBtX3NlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcjsKKyAgICBzdGQ6Om9wdGlvbmFsPFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBtX3NlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmll
cjsKIAogICAgIFJlZlB0cjxTV1NlcnZlcldvcmtlcj4gbV9wcmVJbnN0YWxsYXRpb25Xb3JrZXI7
IC8vIEltcGxlbWVudGF0aW9uIGRldGFpbCwgbm90IHBhcnQgb2YgdGhlIHNwZWNpZmljYXRpb24u
CiAgICAgUmVmUHRyPFNXU2VydmVyV29ya2VyPiBtX2luc3RhbGxpbmdXb3JrZXI7CkBAIC0xMzMs
NyArMTMzLDcgQEAgcHJpdmF0ZToKICAgICBTV1NlcnZlciYgbV9zZXJ2ZXI7CiAKICAgICBNb25v
dG9uaWNUaW1lIG1fY3JlYXRpb25UaW1lOwotICAgIEhhc2hNYXA8U1dTZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciwgSGFzaFNldDxEb2N1bWVudElkZW50aWZpZXI+PiBtX2NsaWVudHNVc2luZ1Jl
Z2lzdHJhdGlvbjsKKyAgICBIYXNoTWFwPFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEhh
c2hTZXQ8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+PiBtX2NsaWVudHNVc2luZ1Jl
Z2lzdHJhdGlvbjsKIAogICAgIFdlYkNvcmU6OlRpbWVyIG1fc29mdFVwZGF0ZVRpbWVyOwogICAg
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCmluZGV4IGZlYzRiZGJm
MDE4MjI5OTg1OWU3NzcwYTEyNDg2OTJmYmY1Njk5YWQuLmJmZWVjY2UwM2UwNGNjNzhlODdlMWUx
NjI2OWI5NjMwMWQ0ODE3YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bi5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgc3RhdGljIFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bklkZW50aWZpZXIgZ2VuZXJhdGVTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uSWQKICAgICByZXR1
cm4gU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKIH0K
IAotU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b24oUmVnaXN0cmFibGVEb21haW4mJiByZWdpc3RyYWJsZURvbWFpbiwgc3RkOjpvcHRpb25hbDxT
ZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVy
KQorU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b24oUmVnaXN0cmFibGVEb21haW4mJiByZWdpc3RyYWJsZURvbWFpbiwgc3RkOjpvcHRpb25hbDxT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlm
aWVyKQogICAgIDogbV9pZGVudGlmaWVyKGdlbmVyYXRlU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bklkZW50aWZpZXIoKSkKICAgICAsIG1fcmVnaXN0cmFibGVEb21haW4oV1RGTW92ZShyZWdpc3Ry
YWJsZURvbWFpbikpCiAgICAgLCBtX3NlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcihzZXJ2aWNl
V29ya2VyUGFnZUlkZW50aWZpZXIpCkBAIC04Nyw3ICs4Nyw3IEBAIHZvaWQgU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uOjp3b3JrZXJUZXJtaW5hdGVkKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
IHNlcnZpCiAgICAgICAgIHdvcmtlci0+Y29udGV4dFRlcm1pbmF0ZWQoKTsKIH0KIAotdm9pZCBT
V1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OmZpbmRDbGllbnRCeUlkZW50aWZpZXIodWludDY0
X3QgcmVxdWVzdElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZCkKK3Zv
aWQgU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpmaW5kQ2xpZW50QnlJZGVudGlmaWVyKHVp
bnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50
SWQpCiB7CiAgICAgaWYgKGF1dG8qIHdvcmtlciA9IFNXU2VydmVyV29ya2VyOjpleGlzdGluZ1dv
cmtlckZvcklkZW50aWZpZXIoc2VydmljZVdvcmtlcklkZW50aWZpZXIpKQogICAgICAgICB3b3Jr
ZXItPmNvbnRleHRDb25uZWN0aW9uKCktPmZpbmRDbGllbnRCeUlkZW50aWZpZXJDb21wbGV0ZWQo
cmVxdWVzdElkZW50aWZpZXIsIHdvcmtlci0+ZmluZENsaWVudEJ5SWRlbnRpZmllcihjbGllbnRJ
ZCksIGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCmluZGV4IDUy
MzU1NzMyNzg2MzBmNzgwMzNlZGVlOTg0YTlmYzA1NTljNGRkNjUuLmJkZDM2M2IyYmM0NTBjYzI5
OTJlNjU2ODM2YWY3N2VkNTNiY2RhNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb24uaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiRXhjZXB0aW9uRGF0YS5oIgog
I2luY2x1ZGUgIlJlZ2lzdHJhYmxlRG9tYWluLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyQ2xpZW50UXVlcnlP
cHRpb25zLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckNvbnRleHREYXRhLmgiCiAjaW5jbHVk
ZSAiU2VydmljZVdvcmtlcklkZW50aWZpZXIuaCIKQEAgLTM5LDcgKzQwLDYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBTV1NlcnZlcjsKIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ2xpZW50
RGF0YTsKLXN0cnVjdCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcjsKIHN0cnVjdCBTZXJ2
aWNlV29ya2VyQ29udGV4dERhdGE7CiBzdHJ1Y3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlm
aWVyOwogZW51bSBjbGFzcyBXb3JrZXJUaHJlYWRNb2RlIDogYm9vbDsKQEAgLTcwLDI1ICs3MCwy
NSBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTZXJ2aWNlV29ya2VySGFz
UGVuZGluZ0V2ZW50cyhTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgYm9vbCBoYXNQZW5kaW5nRXZl
bnRzKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNraXBXYWl0aW5nKFNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgd29ya2VyVGVybWluYXRlZChTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7Ci0gICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBmaW5kQ2xpZW50QnlJZGVudGlmaWVyKHVpbnQ2NF90IGNsaWVu
dElkUmVxdWVzdElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTZXJ2aWNlV29y
a2VyQ2xpZW50SWRlbnRpZmllcik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmaW5kQ2xpZW50
QnlJZGVudGlmaWVyKHVpbnQ2NF90IGNsaWVudElkUmVxdWVzdElkZW50aWZpZXIsIFNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcik7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBtYXRjaEFsbCh1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwg
U2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRRdWVyeU9w
dGlvbnMmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsYWltKFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RXhjZXB0aW9uRGF0
YT4mJik+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U2NyaXB0UmVzb3VyY2UoU2Vy
dmljZVdvcmtlcklkZW50aWZpZXIsIFVSTCYmIHNjcmlwdFVSTCwgU2VydmljZVdvcmtlckNvbnRl
eHREYXRhOjpJbXBvcnRlZFNjcmlwdCYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpZEZh
aWxIZWFydEJlYXRDaGVjayhTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAKICAgICBjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgcmVnaXN0cmFibGVEb21haW4oKSBjb25zdCB7IHJldHVybiBtX3Jl
Z2lzdHJhYmxlRG9tYWluOyB9Ci0gICAgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50
SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4g
bV9zZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXI7IH0KKyAgICBzdGQ6Om9wdGlvbmFsPFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIo
KSBjb25zdCB7IHJldHVybiBtX3NlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcjsgfQogCiAgICAg
dmlydHVhbCB2b2lkIGNvbm5lY3Rpb25Jc05vTG9uZ2VyTmVlZGVkKCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCB0ZXJtaW5hdGVEdWVUb1VucmVzcG9uc2l2ZW5lc3MoKSA9IDA7CiAKIHByb3RlY3Rl
ZDoKLSAgICBXRUJDT1JFX0VYUE9SVCBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24oUmVnaXN0
cmFibGVEb21haW4mJiwgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmll
cj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24oUmVnaXN0cmFibGVEb21haW4mJiwgc3RkOjpvcHRpb25h
bDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVu
dGlmaWVyKTsKIAogcHJpdmF0ZToKICAgICBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb25JZGVu
dGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBSZWdpc3RyYWJsZURvbWFpbiBtX3JlZ2lzdHJhYmxl
RG9tYWluOwotICAgIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+
IG1fc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyOworICAgIHN0ZDo6b3B0aW9uYWw8U2NyaXB0
RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IG1fc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVy
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcAppbmRleCAyYjA0
YzI4OGZjOGM2OWE0YzkwNmRlYTU0NmM2ODI0NjA3MTQyZjU2Li5iNjdiYTlhOTY0MzU0ZjBkNmRk
YWY4YmZmNjllYmIxZTdlMGQwZDhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcApAQCAtMjIzLDcgKzIyMyw3
IEBAIHZvaWQgU1dTZXJ2ZXJXb3JrZXI6OmNvbnRleHRUZXJtaW5hdGVkKCkKICAgICAgICAgbV9z
ZXJ2ZXItPndvcmtlckNvbnRleHRUZXJtaW5hdGVkKCp0aGlzKTsKIH0KIAotc3RkOjpvcHRpb25h
bDxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4gU1dTZXJ2ZXJXb3JrZXI6OmZpbmRDbGllbnRCeUlk
ZW50aWZpZXIoY29uc3QgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXImIGNsaWVudElkKSBj
b25zdAorc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4gU1dTZXJ2ZXJXb3Jr
ZXI6OmZpbmRDbGllbnRCeUlkZW50aWZpZXIoY29uc3QgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXImIGNsaWVudElkKSBjb25zdAogewogICAgIEFTU0VSVChtX3NlcnZlcik7CiAgICAg
aWYgKCFtX3NlcnZlcikKQEAgLTM3NCw3ICszNzQsNyBAQCBXb3JrZXJUaHJlYWRNb2RlIFNXU2Vy
dmVyV29ya2VyOjp3b3JrZXJUaHJlYWRNb2RlKCkgY29uc3QKICAgICByZXR1cm4gV29ya2VyVGhy
ZWFkTW9kZTo6Q3JlYXRlTmV3VGhyZWFkOwogfQogCi1zdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3Jr
ZXJDbGllbnRJZGVudGlmaWVyPiBTV1NlcnZlcldvcmtlcjo6c2VydmljZVdvcmtlclBhZ2VJZGVu
dGlmaWVyKCkgY29uc3QKK3N0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXI+IFNXU2VydmVyV29ya2VyOjpzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIoKSBjb25z
dAogewogICAgIGlmICghbV9yZWdpc3RyYXRpb24pCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NX
U2VydmVyV29ya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NX
U2VydmVyV29ya2VyLmgKaW5kZXggMWYxYzg0ZDA3NGE2MTAzNDczNjRkN2E4MDk5NTYzYzIzZWE1
YjhjMS4uYjIyMTVkOWY0YWQ0ZDBmZDkxNTA0YTRjMjFhY2I5MzA0N2ExYzgyNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3Jr
ZXIuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeVJl
c3BvbnNlSGVhZGVycy5oIgogI2luY2x1ZGUgIkNyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kuaCIK
ICNpbmNsdWRlICJSZWdpc3RyYWJsZURvbWFpbi5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckNsaWVudERhdGEu
aCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEuaCIKICNpbmNsdWRlICJTZXJ2
aWNlV29ya2VyRGF0YS5oIgpAQCAtNDgsNyArNDksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBj
bGFzcyBTV1NlcnZlcjsKIGNsYXNzIFNXU2VydmVyUmVnaXN0cmF0aW9uOwogY2xhc3MgU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uOwotc3RydWN0IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlm
aWVyOwogc3RydWN0IFNlcnZpY2VXb3JrZXJDbGllbnRRdWVyeU9wdGlvbnM7CiBzdHJ1Y3QgU2Vy
dmljZVdvcmtlckNvbnRleHREYXRhOwogc3RydWN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRp
ZmllcjsKQEAgLTEwMiw3ICsxMDIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRGaW5pc2hJbnN0
YWxsKGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiYs
IGJvb2wgd2FzU3VjY2Vzc2Z1bCk7CiAgICAgdm9pZCBkaWRGaW5pc2hBY3RpdmF0aW9uKCk7CiAg
ICAgdm9pZCBjb250ZXh0VGVybWluYXRlZCgpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6b3B0
aW9uYWw8U2VydmljZVdvcmtlckNsaWVudERhdGE+IGZpbmRDbGllbnRCeUlkZW50aWZpZXIoY29u
c3QgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXImKSBjb25zdDsKKyAgICBXRUJDT1JFX0VY
UE9SVCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiBmaW5kQ2xpZW50QnlJ
ZGVudGlmaWVyKGNvbnN0IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyJikgY29uc3Q7
CiAgICAgdm9pZCBtYXRjaEFsbChjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50UXVlcnlPcHRpb25z
JiwgU2VydmljZVdvcmtlckNsaWVudHNNYXRjaEFsbENhbGxiYWNrJiYpOwogICAgIHZvaWQgc2V0
U2NyaXB0UmVzb3VyY2UoVVJMJiYsIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRT
Y3JpcHQmJik7CiAgICAgdm9pZCBkaWRTYXZlU2NyaXB0c1RvRGlzayhTY3JpcHRCdWZmZXImJiBt
YWluU2NyaXB0LCBIYXNoTWFwPFVSTCwgU2NyaXB0QnVmZmVyPiYmIGltcG9ydGVkU2NyaXB0cyk7
CkBAIC0xMTgsNyArMTE4LDcgQEAgcHVibGljOgogCiAgICAgY29uc3QgQ2xpZW50T3JpZ2luJiBv
cmlnaW4oKSBjb25zdDsKICAgICBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVnaXN0cmFibGVE
b21haW4oKSBjb25zdCB7IHJldHVybiBtX3JlZ2lzdHJhYmxlRG9tYWluOyB9Ci0gICAgV0VCQ09S
RV9FWFBPUlQgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gc2Vy
dmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgc3Rk
OjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtl
clBhZ2VJZGVudGlmaWVyKCkgY29uc3Q7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBTV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb24qIGNvbnRleHRDb25uZWN0aW9uKCk7CiAgICAgU3RyaW5nIHVzZXJB
Z2VudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA5ZjcyZDhkYzYy
YjkwYjdlNjQ0MzdjNTg3MGU3OTQ0ZDgxNDYwNjMwLi4yOTFjYzk4OTJlODEwMjdkOWNhZWQxZDlk
YjcwNjFkNzNlNjc0MTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtMTE1OSw3
ICsxMTU5LDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZXN0YWJsaXNo
U1dTZXJ2ZXJDb25uZWN0aW9uKCkKICAgICBzZXJ2ZXIuYWRkQ29ubmVjdGlvbihXVEZNb3ZlKGNv
bm5lY3Rpb24pKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZXN0
YWJsaXNoU1dDb250ZXh0Q29ubmVjdGlvbihXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQ
cm94eUlELCBSZWdpc3RyYWJsZURvbWFpbiYmIHJlZ2lzdHJhYmxlRG9tYWluLCBzdGQ6Om9wdGlv
bmFsPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50
aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3Zv
aWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmVzdGFibGlzaFNXQ29udGV4dENvbm5l
Y3Rpb24oV2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgUmVnaXN0cmFibGVE
b21haW4mJiByZWdpc3RyYWJsZURvbWFpbiwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIHNl
cnZlciA9IG1fbmV0d29ya1Byb2Nlc3MtPnN3U2VydmVyRm9yU2Vzc2lvbklmRXhpc3RzKG1fc2Vz
c2lvbklEKSkKICAgICAgICAgbV9zd0NvbnRleHRDb25uZWN0aW9uID0gbWFrZVVuaXF1ZTxXZWJT
V1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24+KCp0aGlzLCB3ZWJQYWdlUHJveHlJRCwgV1RGTW92
ZShyZWdpc3RyYWJsZURvbWFpbiksIHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciwgKnNlcnZl
cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggZDFiYmZkYjAwOTBhOGZjZjhjOGZhOGQx
ZTBhNmQ1NWJjMmJmOTU2Zi4uZTgxN2I3YjYyZDI0OTc4N2RjNGFiMTllZGViYjBjNGY2ODUxMmYy
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMjUxLDcgKzI1MSw3IEBAIHByaXZhdGU6
CiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgdm9pZCBlc3RhYmxpc2hTV1NlcnZl
ckNvbm5lY3Rpb24oKTsKLSAgICB2b2lkIGVzdGFibGlzaFNXQ29udGV4dENvbm5lY3Rpb24oV2Vi
UGFnZVByb3h5SWRlbnRpZmllciwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiwgc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gc2VydmljZVdv
cmtlclBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZv
aWQgZXN0YWJsaXNoU1dDb250ZXh0Q29ubmVjdGlvbihXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBjbG9zZVNXQ29udGV4dENv
bm5lY3Rpb24oKTsKICAgICB2b2lkIHVucmVnaXN0ZXJTV0Nvbm5lY3Rpb24oKTsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggZGFlYmE1ZDg0
NTgyYzUwNjM5MWIyZWNhMTQzNzEwZDIzYTE3ZGUxMi4uMDA1ZjYzMmVmNTc3YzljMTZhN2RkN2Mx
ZTZjNjdjOTExYjQyNjc2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3Nh
Z2VzLmluCkBAIC04NCw3ICs4NCw3IEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtDb25uZWN0aW9uVG9X
ZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBUYWtlTmV0d29ya0xvYWRJbmZvcm1hdGlv
bk1ldHJpY3MoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJJZGVudGlmaWVyIHJlc291cmNlTG9hZElk
ZW50aWZpZXIpIC0+IChXZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJpY3MgbmV0d29ya01ldHJpY3Mp
IFN5bmNocm9ub3VzCiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0gICAgRXN0YWJsaXNo
U1dDb250ZXh0Q29ubmVjdGlvbihXZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFn
ZVByb3h5SUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbiwgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBh
Z2VJZGVudGlmaWVyKSAtPiAoKSBBc3luYworICAgIEVzdGFibGlzaFNXQ29udGV4dENvbm5lY3Rp
b24oV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiBkb21haW4sIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2NyaXB0
RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcikg
LT4gKCkgQXN5bmMKICAgICBDbG9zZVNXQ29udGV4dENvbm5lY3Rpb24oKQogI2VuZGlmCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXgg
YmUwMDA2NmJhMDMzNTBjZTk2NTc5NWM1OGJhZmE0MTJiYzQ5NTkwNy4uNjY2YmNjMWIyMWI5NWQw
ODkyYjJmMjNmZGMxMjlmYmFlNjFmZTMyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTI0NzksNyArMjQ3OSw3IEBAIFNXU2VydmVy
JiBOZXR3b3JrUHJvY2Vzczo6c3dTZXJ2ZXJGb3JTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCkKICAgICAgICAgICAgIHNob3VsZFJ1blNlcnZpY2VXb3JrZXJzT25NYWluVGhyZWFkRm9y
VGVzdGluZyA9IHNlc3Npb24tPnNob3VsZFJ1blNlcnZpY2VXb3JrZXJzT25NYWluVGhyZWFkRm9y
VGVzdGluZygpOwogICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxTV1NlcnZlcj4obWFrZVVuaXF1
ZVJlZjxXZWJTV09yaWdpblN0b3JlPigpLCBpbmZvLnByb2Nlc3NUZXJtaW5hdGlvbkRlbGF5RW5h
YmxlZCwgV1RGTW92ZShwYXRoKSwgc2Vzc2lvbklELCBzaG91bGRSdW5TZXJ2aWNlV29ya2Vyc09u
TWFpblRocmVhZEZvclRlc3RpbmcsIHBhcmVudFByb2Nlc3NIYXNTZXJ2aWNlV29ya2VyRW50aXRs
ZW1lbnQoKSwgW3RoaXMsIHNlc3Npb25JRF0oYXV0byYmIGpvYkRhdGEsIGJvb2wgc2hvdWxkUmVm
cmVzaENhY2hlLCBhdXRvJiYgcmVxdWVzdCwgYXV0byYmIGNvbXBsZXRpb25IYW5kbGVyKSBtdXRh
YmxlIHsKICAgICAgICAgICAgIFNlcnZpY2VXb3JrZXJTb2Z0VXBkYXRlTG9hZGVyOjpzdGFydChu
ZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpLCBXVEZNb3ZlKGpvYkRhdGEpLCBzaG91bGRSZWZyZXNo
Q2FjaGUsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAg
ICAgICAgfSwgW3RoaXMsIHNlc3Npb25JRF0oYXV0byYgcmVnaXN0cmFibGVEb21haW4sIHN0ZDo6
b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdl
SWRlbnRpZmllciwgYXV0byYmIGNvbXBsZXRpb25IYW5kbGVyKSB7CisgICAgICAgIH0sIFt0aGlz
LCBzZXNzaW9uSURdKGF1dG8mIHJlZ2lzdHJhYmxlRG9tYWluLCBzdGQ6Om9wdGlvbmFsPFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIs
IGF1dG8mJiBjb21wbGV0aW9uSGFuZGxlcikgewogICAgICAgICAgICAgQVNTRVJUKCFyZWdpc3Ry
YWJsZURvbWFpbi5pc0VtcHR5KCkpOwogICAgICAgICAgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpF
c3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MgeyByZWdpc3Ry
YWJsZURvbWFpbiwgc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyLCBzZXNzaW9uSUQgfSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlciksIDApOwogICAgICAgICB9LCBXVEZNb3ZlKGFwcEJvdW5k
RG9tYWluc0NhbGxiYWNrKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtQcm9jZXNzLmgKaW5kZXggNTc3OTlhYzA0MzY4NzQ2NDg3ZGQyNTM2YTE5NTk1MWU1YzA4ZDc2
MC4uOWQzMmQ1Nzk3M2EwZWJhYzFkMDcxNzVjNmRmODc5ZDQ2NmNlNjhhOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtOTYsNyArOTYsNiBA
QCBzdHJ1Y3QgQ2xpZW50T3JpZ2luOwogc3RydWN0IE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzOwog
c3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKIHN0cnVjdCBTb3VwTmV0d29ya1Byb3h5U2V0dGlu
Z3M7Ci1zdHJ1Y3QgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI7CiB9CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmgKaW5kZXggZDM3
ZDc4MDY5ODNiYmE1NDdjYTBmOTIzNWViNGJmNmI3MzE1NjVhNC4uMDQ5YjNjNDEzYWQ3ZDIxMDFh
ZTk5NWM3ZDk5YWVlNDdkZmJkZTRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNo
VGFzay5oCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiRGF0YVJlZmVyZW5jZS5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRmV0Y2hJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZVJlcXVlc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJDbGllbnRJZGVu
dGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
Zmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9UaW1lci5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQuaD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZl
ckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKaW5kZXggYTU4YjRjZmQ5MThmZjQzNmRlYTgw
ZDhlNGUxZDk2MzZmY2U3NGU1MS4uZTMzNTA5MGFmYTgzYmI4Yzk5ZmEyYWJkNWE0MjQ3MDhlNTZk
YmFiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKQEAgLTQzLDE0
ICs0MywxMyBAQAogI2luY2x1ZGUgIldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJXZWJTV1NlcnZlckNvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1
ZGUgIldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oIgotI2luY2x1ZGUgPFdlYkNvcmUv
RG9jdW1lbnRJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb25EYXRhLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9MZWdhY3lTY2hlbWVSZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NXU2VydmVyUmVnaXN0
cmF0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
Zmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXJ2
aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdv
cmtlckNvbnRleHREYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VySm9iRGF0
YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlLmg+CkBA
IC0xMjYsNyArMTI1LDcgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnNldFJlZ2lzdHJh
dGlvblVwZGF0ZVZpYUNhY2hlKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXQKICAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJTV0NsaWVudENvbm5lY3Rpb246OlNldFJlZ2lzdHJhdGlvblVwZGF0ZVZpYUNhY2hl
KGlkZW50aWZpZXIsIHVwZGF0ZVZpYUNhY2hlKSk7CiB9CiAKLXZvaWQgV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uOjpub3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKGNvbnN0IEhhc2hTZXQ8RG9j
dW1lbnRJZGVudGlmaWVyPiYgY29udGV4dElkZW50aWZpZXJzLCBjb25zdCBTZXJ2aWNlV29ya2Vy
RGF0YSYgbmV3Q29udHJvbGxlcikKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpub3RpZnlD
bGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKGNvbnN0IEhhc2hTZXQ8U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dElkZW50aWZpZXI+JiBjb250ZXh0SWRlbnRpZmllcnMsIGNvbnN0IFNlcnZpY2VXb3JrZXJE
YXRhJiBuZXdDb250cm9sbGVyKQogewogICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXQ2xpZW50Q29u
bmVjdGlvbjo6Tm90aWZ5Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZShjb250ZXh0SWRlbnRpZmll
cnMsIG5ld0NvbnRyb2xsZXIpKTsKIH0KQEAgLTEzNiwxMiArMTM1LDEyIEBAIHZvaWQgV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uOjp1cGRhdGVXb3JrZXJTdGF0ZUluQ2xpZW50KFNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIHdvCiAgICAgc2VuZChNZXNzYWdlczo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpV
cGRhdGVXb3JrZXJTdGF0ZSh3b3JrZXIsIHN0YXRlKSk7CiB9CiAKLXZvaWQgV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uOjpjb250cm9sQ2xpZW50KFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIGNs
aWVudElkZW50aWZpZXIsIFNXU2VydmVyUmVnaXN0cmF0aW9uJiByZWdpc3RyYXRpb24sIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpj
b250cm9sQ2xpZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElkZW50
aWZpZXIsIFNXU2VydmVyUmVnaXN0cmF0aW9uJiByZWdpc3RyYXRpb24sIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICAvLyBBcyBwZXIgc3RlcCAxMiBvZiBodHRwczovL3cz
Yy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jb24tZmV0Y2gtcmVxdWVzdC1hbGdvcml0aG0sIHRo
ZSBhY3RpdmUgc2VydmljZSB3b3JrZXIgc2hvdWxkIGJlIGNvbnRyb2xsaW5nIHRoZSBkb2N1bWVu
dC4KICAgICAvLyBXZSByZWdpc3RlciBhIHRlbXBvcmFyeSBzZXJ2aWNlIHdvcmtlciBjbGllbnQg
dXNpbmcgdGhlIGlkZW50aWZpZXIgcHJvdmlkZWQgYnkgRG9jdW1lbnRMb2FkZXIgYW5kIG5vdGlm
eSBEb2N1bWVudExvYWRlciBhYm91dCBpdC4KICAgICAvLyBJZiBub3RpZmljYXRpb24gaXMgc3Vj
Y2Vzc2Z1bCwgRG9jdW1lbnRMb2FkZXIgd2lsbCB1bnJlZ2lzdGVyIHRoZSB0ZW1wb3Jhcnkgc2Vy
dmljZSB3b3JrZXIgY2xpZW50IGp1c3QgYWZ0ZXIgdGhlIGRvY3VtZW50IGlzIGNyZWF0ZWQgYW5k
IHJlZ2lzdGVyZWQgYXMgYSBjbGllbnQuCi0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpXZWJTV0NsaWVudENvbm5lY3Rpb246OlNldERvY3VtZW50SXNDb250cm9sbGVkIHsgY2xpZW50
SWRlbnRpZmllci5jb250ZXh0SWRlbnRpZmllciwgcmVnaXN0cmF0aW9uLmRhdGEoKSB9LCBbd2Vh
a1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgdGhpcywgY2xpZW50SWRlbnRpZmllcl0oYm9vbCBp
c1N1Y2Nlc3MpIHsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlNXQ2xpZW50
Q29ubmVjdGlvbjo6U2V0RG9jdW1lbnRJc0NvbnRyb2xsZWQgeyBjbGllbnRJZGVudGlmaWVyLCBy
ZWdpc3RyYXRpb24uZGF0YSgpIH0sIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB0aGlz
LCBjbGllbnRJZGVudGlmaWVyXShib29sIGlzU3VjY2VzcykgewogICAgICAgICBpZiAoIXdlYWtU
aGlzIHx8IGlzU3VjY2VzcykKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgdW5yZWdpc3Rl
clNlcnZpY2VXb3JrZXJDbGllbnQoY2xpZW50SWRlbnRpZmllcik7CkBAIC0xNjcsNyArMTY2LDcg
QEAgc3RkOjp1bmlxdWVfcHRyPFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s+IFdlYlNXU2VydmVyQ29u
bmVjdGlvbjo6Y3JlYXRlRmV0Y2hUYXNrKE4KICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwog
CiAgICAgICAgIHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyID0gcmVnaXN0cmF0
aW9uLT5pZGVudGlmaWVyKCk7Ci0gICAgICAgIGNvbnRyb2xDbGllbnQoU2VydmljZVdvcmtlckNs
aWVudElkZW50aWZpZXIgeyBsb2FkZXIuY29ubmVjdGlvblRvV2ViUHJvY2VzcygpLndlYlByb2Nl
c3NJZGVudGlmaWVyKCksICpsb2FkZXIucGFyYW1ldGVycygpLm9wdGlvbnMuY2xpZW50SWRlbnRp
ZmllciB9LCAqcmVnaXN0cmF0aW9uLCByZXF1ZXN0KTsKKyAgICAgICAgY29udHJvbENsaWVudCgq
bG9hZGVyLnBhcmFtZXRlcnMoKS5vcHRpb25zLmNsaWVudElkZW50aWZpZXIsICpyZWdpc3RyYXRp
b24sIHJlcXVlc3QpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmICghbG9hZGVyLnBhcmFtZXRl
cnMoKS5zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcikKICAgICAgICAgICAgIHJl
dHVybiBudWxscHRyOwpAQCAtMjYyLDcgKzI2MSw3IEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2VySWRlbnRpZmllciBk
CiAgICAgV1RGOjpzd2l0Y2hPbihzb3VyY2VJZGVudGlmaWVyLCBbJl0oU2VydmljZVdvcmtlcklk
ZW50aWZpZXIgaWRlbnRpZmllcikgewogICAgICAgICBpZiAoYXV0byogc291cmNlV29ya2VyID0g
c2VydmVyKCkud29ya2VyQnlJRChpZGVudGlmaWVyKSkKICAgICAgICAgICAgIHNvdXJjZURhdGEg
PSBTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhIHsgc291cmNlV29ya2VyLT5kYXRhKCkgfTsKLSAg
ICB9LCBbJl0oU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgaWRlbnRpZmllcikgeworICAg
IH0sIFsmXShTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBpZGVudGlmaWVyKSB7CiAg
ICAgICAgIGlmIChhdXRvIGNsaWVudERhdGEgPSBkZXN0aW5hdGlvbldvcmtlci0+ZmluZENsaWVu
dEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKSkKICAgICAgICAgICAgIHNvdXJjZURhdGEgPSBTZXJ2
aWNlV29ya2VyT3JDbGllbnREYXRhIHsgKmNsaWVudERhdGEgfTsKICAgICB9KTsKQEAgLTI5MSwx
MSArMjkwLDkgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnNjaGVkdWxlSm9iSW5TZXJ2
ZXIoU2VydmljZVdvcmtlckpvYkRhdGEmJiBqb2JEYXRhKQogICAgIHNlcnZlcigpLnNjaGVkdWxl
Sm9iKFdURk1vdmUoam9iRGF0YSkpOwogfQogCi1VUkwgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpj
bGllbnRVUkxGcm9tSWRlbnRpZmllcihEb2N1bWVudE9yV29ya2VySWRlbnRpZmllciBjb250ZXh0
SWRlbnRpZmllcikKK1VSTCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmNsaWVudFVSTEZyb21JZGVu
dGlmaWVyKFNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXIgY29udGV4dElkZW50aWZpZXIp
CiB7Ci0gICAgcmV0dXJuIFdURjo6c3dpdGNoT24oY29udGV4dElkZW50aWZpZXIsIFsmXShEb2N1
bWVudElkZW50aWZpZXIgZG9jdW1lbnRJZGVudGlmaWVyKSAtPiBVUkwgewotICAgICAgICBTZXJ2
aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyIHsgaWRlbnRpZmllcigp
LCBkb2N1bWVudElkZW50aWZpZXIgfTsKLQorICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKGNvbnRl
eHRJZGVudGlmaWVyLCBbJl0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50
SWRlbnRpZmllcikgLT4gVVJMIHsKICAgICAgICAgYXV0byBpdGVyYXRvciA9IG1fY2xpZW50T3Jp
Z2lucy5maW5kKGNsaWVudElkZW50aWZpZXIpOwogICAgICAgICBpZiAoaXRlcmF0b3IgPT0gbV9j
bGllbnRPcmlnaW5zLmVuZCgpKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsKQEAgLTMxMyw3ICsz
MTAsNyBAQCBVUkwgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpjbGllbnRVUkxGcm9tSWRlbnRpZmll
cihEb2N1bWVudE9yV29ya2VySWRlbnRpZmllciBjbwogICAgIH0pOwogfQogCi12b2lkIFdlYlNX
U2VydmVyQ29ubmVjdGlvbjo6c2NoZWR1bGVVbnJlZ2lzdGVySm9iSW5TZXJ2ZXIoU2VydmljZVdv
cmtlckpvYklkZW50aWZpZXIgam9iSWRlbnRpZmllciwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bklkZW50aWZpZXIgcmVnaXN0cmF0aW9uSWRlbnRpZmllciwgRG9jdW1lbnRPcldvcmtlcklkZW50
aWZpZXIgY29udGV4dElkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVW5yZWdpc3Rl
ckpvYlJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uOjpzY2hlZHVsZVVucmVnaXN0ZXJKb2JJblNlcnZlcihTZXJ2aWNlV29ya2VySm9iSWRl
bnRpZmllciBqb2JJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmll
ciByZWdpc3RyYXRpb25JZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVy
IGNvbnRleHRJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFVucmVnaXN0ZXJKb2JS
ZXN1bHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgU1dTRVJWRVJDT05ORUNUSU9O
X1JFTEVBU0VfTE9HKCJTY2hlZHVsaW5nIHVucmVnaXN0ZXIgU2VydmljZVdvcmtlciBqb2IgaW4g
c2VydmVyIik7CiAKQEAgLTMzMSw3ICszMjgsNyBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlv
bjo6c2NoZWR1bGVVbnJlZ2lzdGVySm9iSW5TZXJ2ZXIoU2VydmljZVdvcmtlckpvYklkZW50aQog
ICAgIHNlcnZlcigpLnNjaGVkdWxlVW5yZWdpc3RlckpvYihTZXJ2aWNlV29ya2VySm9iRGF0YUlk
ZW50aWZpZXIgeyBpZGVudGlmaWVyKCksIGpvYklkZW50aWZpZXIgfSwgKnJlZ2lzdHJhdGlvbiwg
Y29udGV4dElkZW50aWZpZXIsIFdURk1vdmUoY2xpZW50VVJMKSk7CiB9CiAKLXZvaWQgV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChEb2N1bWVu
dElkZW50aWZpZXIgZGVzdGluYXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgTWVzc2FnZVdp
dGhNZXNzYWdlUG9ydHMmIG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZUlk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKQordm9pZCBXZWJTV1NlcnZlckNv
bm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyIGRlc3RpbmF0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IE1l
c3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBz
b3VyY2VJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbikKIHsKICAgICBhdXRv
KiBzb3VyY2VTZXJ2aWNlV29ya2VyID0gc2VydmVyKCkud29ya2VyQnlJRChzb3VyY2VJZGVudGlm
aWVyKTsKICAgICBpZiAoIXNvdXJjZVNlcnZpY2VXb3JrZXIpCkBAIC0zODEsNyArMzc4LDcgQEAg
dm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChT
ZWN1cml0eU9yaWdpbkRhdGEmJiB0b3AKICAgICB9CiB9CiAKLXZvaWQgV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uOjp1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChjb25zdCBTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllciYgY2xpZW50SWRlbnRpZmllcikKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uOjp1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChjb25zdCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0SWRlbnRpZmllciYgY2xpZW50SWRlbnRpZmllcikKIHsKICAgICBhdXRvIGl0ZXJh
dG9yID0gbV9jbGllbnRPcmlnaW5zLmZpbmQoY2xpZW50SWRlbnRpZmllcik7CiAgICAgaWYgKGl0
ZXJhdG9yID09IG1fY2xpZW50T3JpZ2lucy5lbmQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNv
bm5lY3Rpb24uaAppbmRleCA2OTU3YWRlZjkwZmY0M2E5NTJiMzc2OTAwYTdkOTk5NjA2OWZjMWYy
Li4yNjg1NTU0ZjlmZWNkZDQ1MWVhNmQ3Njg4MTQyNDU5OTQ4MWE3Y2FiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCkBAIC05MiwxMyArOTIsMTMgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGZpcmVVcGRhdGVGb3VuZEV2ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25JZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIHNldFJlZ2lzdHJhdGlvbkxhc3RVcGRh
dGVUaW1lKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBXYWxs
VGltZSkgZmluYWw7CiAgICAgdm9pZCBzZXRSZWdpc3RyYXRpb25VcGRhdGVWaWFDYWNoZShXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlclVwZGF0ZVZpYUNhY2hlKSBmaW5hbDsKLSAgICB2b2lkIG5vdGlmeUNsaWVudHNPZkNv
bnRyb2xsZXJDaGFuZ2UoY29uc3QgSGFzaFNldDxXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXI+
JiBjb250ZXh0SWRlbnRpZmllcnMsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJEYXRhJiBu
ZXdDb250cm9sbGVyKTsKKyAgICB2b2lkIG5vdGlmeUNsaWVudHNPZkNvbnRyb2xsZXJDaGFuZ2Uo
Y29uc3QgSGFzaFNldDxXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4m
IGNvbnRleHRJZGVudGlmaWVycywgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckRhdGEmIG5l
d0NvbnRyb2xsZXIpOwogICAgIHZvaWQgcmVnaXN0cmF0aW9uUmVhZHkodWludDY0X3QgcmVnaXN0
cmF0aW9uUmVhZHlSZXF1ZXN0SWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbkRhdGEmJikgZmluYWw7CiAKICAgICB2b2lkIHNjaGVkdWxlSm9iSW5TZXJ2ZXIoV2Vi
Q29yZTo6U2VydmljZVdvcmtlckpvYkRhdGEmJik7CiAKICAgICB1c2luZyBVbnJlZ2lzdGVySm9i
UmVzdWx0ID0gRXhwZWN0ZWQ8Ym9vbCwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT47Ci0gICAgdm9p
ZCBzY2hlZHVsZVVucmVnaXN0ZXJKb2JJblNlcnZlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9i
SWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIs
IFdlYkNvcmU6OkRvY3VtZW50T3JXb3JrZXJJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFVucmVnaXN0ZXJKb2JSZXN1bHQmJik+JiYpOworICAgIHZvaWQgc2NoZWR1bGVVbnJlZ2lz
dGVySm9iSW5TZXJ2ZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYklkZW50aWZpZXIsIFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyT3JDbGllbnRJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFVucmVnaXN0
ZXJKb2JSZXN1bHQmJik+JiYpOwogCiAgICAgdm9pZCBzdGFydEZldGNoKFNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2smLCBXZWJDb3JlOjpTV1NlcnZlcldvcmtlciYpOwogCkBAIC0xMDYsMTEgKzEwNiwx
MSBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0UmVnaXN0cmF0aW9ucyh1aW50NjRfdCByZWdpc3Ry
YXRpb25NYXRjaFJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwpOwogCiAgICAgdm9pZCByZWdp
c3RlclNlcnZpY2VXb3JrZXJDbGllbnQoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgdG9w
T3JpZ2luLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYmLCBjb25zdCBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyPiYsIFN0
cmluZyYmIHVzZXJBZ2VudCk7Ci0gICAgdm9pZCB1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVu
dChjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYpOworICAgIHZv
aWQgdW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgV2ViQ29yZTo6U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dElkZW50aWZpZXImKTsKICAgICB2b2lkIHRlcm1pbmF0ZVdvcmtlckZyb21D
bGllbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAgICAgdm9pZCB3aGVuU2VydmljZVdvcmtlcklzVGVybWluYXRlZEZvclRl
c3RpbmcoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAKLSAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50
KFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllciBkZXN0aW5hdGlvbkNvbnRleHRJZGVudGlmaWVy
LCBjb25zdCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYsIFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZVNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIHNvdXJjZU9yaWdpbikgZmluYWw7CisgICAgdm9pZCBwb3N0TWVzc2FnZVRvU2Vydmlj
ZVdvcmtlckNsaWVudChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBk
ZXN0aW5hdGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1l
c3NhZ2VQb3J0cyYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZVNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbikgZmluYWw7CiAK
ICAgICB2b2lkIGNvbnRleHRDb25uZWN0aW9uQ3JlYXRlZChXZWJDb3JlOjpTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb24mKSBmaW5hbDsKIApAQCAtMTI2LDkgKzEyNiw5IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBnZXRQdXNoUGVybWlzc2lvblN0YXRlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25JZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPHVpbnQ4
X3QsIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+JiYpPiYmKTsKIAogICAgIHZvaWQgcG9zdE1lc3Nh
Z2VUb1NlcnZpY2VXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGlu
YXRpb24sIFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYsIGNvbnN0IFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXImIHNvdXJjZSk7Ci0gICAgdm9pZCBjb250
cm9sQ2xpZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLCBXZWJDb3Jl
OjpTV1NlcnZlclJlZ2lzdHJhdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYp
OworICAgIHZvaWQgY29udHJvbENsaWVudChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllciwgV2ViQ29yZTo6U1dTZXJ2ZXJSZWdpc3RyYXRpb24mLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmKTsKIAotICAgIFVSTCBjbGllbnRVUkxGcm9tSWRlbnRpZmllcihX
ZWJDb3JlOjpEb2N1bWVudE9yV29ya2VySWRlbnRpZmllcik7CisgICAgVVJMIGNsaWVudFVSTEZy
b21JZGVudGlmaWVyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXIpOwog
CiAgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1fY29udGVudENvbm5lY3Rpb24ucHRyKCk7IH0KICAgICB1aW50NjRfdCBt
ZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIDA7IH0KQEAg
LTEzNyw3ICsxMzcsNyBAQCBwcml2YXRlOgogCiAgICAgUmVmPElQQzo6Q29ubmVjdGlvbj4gbV9j
b250ZW50Q29ubmVjdGlvbjsKICAgICBSZWY8TmV0d29ya1Byb2Nlc3M+IG1fbmV0d29ya1Byb2Nl
c3M7Ci0gICAgSGFzaE1hcDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciwg
V2ViQ29yZTo6Q2xpZW50T3JpZ2luPiBtX2NsaWVudE9yaWdpbnM7CisgICAgSGFzaE1hcDxXZWJD
b3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6Q2xpZW50T3Jp
Z2luPiBtX2NsaWVudE9yaWdpbnM7CiAgICAgSGFzaE1hcDxXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
Sm9iSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChVbnJlZ2lzdGVySm9iUmVzdWx0
JiYpPj4gbV91bnJlZ2lzdGVySm9iczsKICAgICBib29sIG1faXNUaHJvdHRsZWFibGUgeyB0cnVl
IH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2Fn
ZXMuaW4KaW5kZXggZTFlMmYzYmY5MjVkOTI5NDE4OTk3NmNlOTRiODhmN2Q3ZWYxOTMwMi4uZDVj
ODQwMDhlZDJiZWMyMDQ2NGE4YzAxYjk3YWIwNGE5NTA2YzYxNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlv
bi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VX
b3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0yNSw3ICsyNSw3IEBA
CiBtZXNzYWdlcyAtPiBXZWJTV1NlcnZlckNvbm5lY3Rpb24gTm90UmVmQ291bnRlZCB7CiAgICAg
IyBXaGVuIHBvc3NpYmxlLCB0aGVzZSBtZXNzYWdlcyBjYW4gYmUgaW1wbGVtZW50ZWQgZGlyZWN0
bHkgYnkgV2ViQ29yZTo6U1dDbGllbnRDb25uZWN0aW9uCiAgICAgU2NoZWR1bGVKb2JJblNlcnZl
cihzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGEgam9iRGF0YSkKLSAgICBTY2hl
ZHVsZVVucmVnaXN0ZXJKb2JJblNlcnZlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iSWRlbnRp
ZmllciBqb2JJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRl
bnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpEb2N1bWVudE9yV29ya2VySWRlbnRpZmllciBk
b2N1bWVudElkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxib29sLCBXZWJDb3JlOjpFeGNlcHRpb25E
YXRhPiByZXN1bHQpIEFzeW5jCisgICAgU2NoZWR1bGVVbnJlZ2lzdGVySm9iSW5TZXJ2ZXIoV2Vi
Q29yZTo6U2VydmljZVdvcmtlckpvYklkZW50aWZpZXIgam9iSWRlbnRpZmllciwgV2ViQ29yZTo6
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6
U2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciBkb2N1bWVudElkZW50aWZpZXIpIC0+IChF
eHBlY3RlZDxib29sLCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiByZXN1bHQpIEFzeW5jCiAKICAg
ICBGaW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyRmV0Y2hSZXN1bHQgcmVzdWx0KQogICAgIEFkZFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25J
blNlcnZlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBpZGVu
dGlmaWVyKQpAQCAtMzksNyArMzksNyBAQCBtZXNzYWdlcyAtPiBXZWJTV1NlcnZlckNvbm5lY3Rp
b24gTm90UmVmQ291bnRlZCB7CiAgICAgV2hlblJlZ2lzdHJhdGlvblJlYWR5KHVpbnQ2NF90IHNl
cnZpY2VSZWdpc3RyYXRpb25NYXRjaFJlcXVlc3RJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhIHRvcE9yaWdpbiwgVVJMIGNsaWVudFVSTCkKICAgICBHZXRSZWdp
c3RyYXRpb25zKHVpbnQ2NF90IHNlcnZpY2VSZWdpc3RyYXRpb25NYXRjaFJlcXVlc3RJZGVudGlm
aWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcE9yaWdpbiwgVVJMIGNs
aWVudFVSTCkKICAgICBSZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoc3RydWN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSB0b3BPcmlnaW4sIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyQ2xpZW50RGF0YSBkYXRhLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25JZGVudGlmaWVyPiBjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JZGVudGlmaWVyLCBTdHJpbmcgdXNlckFnZW50KQotICAgIFVucmVnaXN0ZXJTZXJ2aWNlV29y
a2VyQ2xpZW50KHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBp
ZGVudGlmaWVyKQorICAgIFVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAKICAgICBUZXJtaW5h
dGVXb3JrZXJGcm9tQ2xpZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHdvcmtl
cklkZW50aWZpZXIpIC0+ICgpIEFzeW5jCiAgICAgV2hlblNlcnZpY2VXb3JrZXJJc1Rlcm1pbmF0
ZWRGb3JUZXN0aW5nKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHdvcmtlcklkZW50
aWZpZXIpIC0+ICgpIEFzeW5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb24uY3BwCmluZGV4IDg1ZWVkYzZlOTYzMmM2ZDI2MGVjYTFiMjIwYTljNTNh
ODg4YzFlMmMuLjhiMjEzODUyZDBmMTE3ZGVmODE5ZDQ1MmRiN2I4ZmNmNDllMzc1NmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCkBA
IC00NCw3ICs0NCw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCi1XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OldlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwg
V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgUmVnaXN0cmFibGVEb21haW4m
JiByZWdpc3RyYWJsZURvbWFpbiwgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRl
bnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyLCBTV1NlcnZlciYgc2VydmVyKQor
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpXZWJTV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb24oTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb24sIFdlYlBhZ2VQ
cm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFJlZ2lzdHJhYmxlRG9tYWluJiYgcmVnaXN0
cmFibGVEb21haW4sIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciwgU1dTZXJ2ZXImIHNlcnZlcikKICAgICA6
IFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbihXVEZNb3ZlKHJlZ2lzdHJhYmxlRG9tYWluKSwg
c2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKQogICAgICwgbV9jb25uZWN0aW9uKGNvbm5lY3Rp
b24pCiAgICAgLCBtX3NlcnZlcihzZXJ2ZXIpCkBAIC03OCwxMyArNzgsMTMgQEAgdWludDY0X3Qg
V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25J
RCgpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChjb25zdCBTZXJ2aWNl
V29ya2VyQ2xpZW50SWRlbnRpZmllciYgZGVzdGluYXRpb25JZGVudGlmaWVyLCBjb25zdCBNZXNz
YWdlV2l0aE1lc3NhZ2VQb3J0cyYgbWVzc2FnZSwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc291
cmNlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pCit2b2lkIFdlYlNXU2Vy
dmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQo
Y29uc3QgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXImIGRlc3RpbmF0aW9uSWRlbnRp
ZmllciwgY29uc3QgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmIG1lc3NhZ2UsIFNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2lu
KQogewogICAgIGlmICghbV9zZXJ2ZXIpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChhdXRv
KiBjb25uZWN0aW9uID0gbV9zZXJ2ZXItPmNvbm5lY3Rpb24oZGVzdGluYXRpb25JZGVudGlmaWVy
LnNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKSkKLSAgICAgICAgY29ubmVjdGlvbi0+cG9zdE1l
c3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoZGVzdGluYXRpb25JZGVudGlmaWVyLmNvbnRleHRJ
ZGVudGlmaWVyLCBtZXNzYWdlLCBzb3VyY2VJZGVudGlmaWVyLCBzb3VyY2VPcmlnaW4pOworICAg
IGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV9zZXJ2ZXItPmNvbm5lY3Rpb24oZGVzdGluYXRpb25J
ZGVudGlmaWVyLnByb2Nlc3NJZGVudGlmaWVyKCkpKQorICAgICAgICBjb25uZWN0aW9uLT5wb3N0
TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChkZXN0aW5hdGlvbklkZW50aWZpZXIsIG1lc3Nh
Z2UsIHNvdXJjZUlkZW50aWZpZXIsIHNvdXJjZU9yaWdpbik7CiB9CiAKIHZvaWQgV2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uOjppbnN0YWxsU2VydmljZVdvcmtlckNvbnRleHQoY29uc3Qg
U2VydmljZVdvcmtlckNvbnRleHREYXRhJiBjb250ZXh0RGF0YSwgY29uc3QgU2VydmljZVdvcmtl
ckRhdGEmIHdvcmtlckRhdGEsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBXb3JrZXJUaHJlYWRN
b2RlIHdvcmtlclRocmVhZE1vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uLmgKaW5kZXggZTM3NDA3ODZhZWRjZGY3MzRhNjcyZjM2YjEyNzk3MGQ0
MTg1ZjZlMi4uNGEwYjE1MzcxZmY5NjcxNTlkZmU2NjEyNThlNDU1NzZlNzUyMTEwZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2Vy
dmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaApAQCAtNTYs
NyArNTYsNyBAQCBjbGFzcyBXZWJTV1NlcnZlckNvbm5lY3Rpb247CiAKIGNsYXNzIFdlYlNXU2Vy
dmVyVG9Db250ZXh0Q29ubmVjdGlvbjogcHVibGljIFdlYkNvcmU6OlNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbiwgcHVibGljIElQQzo6TWVzc2FnZVNlbmRlciwgcHVibGljIElQQzo6TWVzc2Fn
ZVJlY2VpdmVyIHsKIHB1YmxpYzoKLSAgICBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24o
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIsIFdl
YkNvcmU6OlNXU2VydmVyJik7CisgICAgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgV2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4mJiwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTY3JpcHRF
eGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyLCBX
ZWJDb3JlOjpTV1NlcnZlciYpOwogICAgIH5XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24o
KTsKIAogICAgIElQQzo6Q29ubmVjdGlvbiYgaXBjQ29ubmVjdGlvbigpIGNvbnN0OwpAQCAtODIs
NyArODIsNyBAQCBwcml2YXRlOgogICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2FnZVNlbmRlckNv
bm5lY3Rpb24oKSBjb25zdCBmaW5hbDsKICAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGlu
YXRpb25JRCgpIGNvbnN0IGZpbmFsOwogCi0gICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdv
cmtlckNsaWVudChjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYg
ZGVzdGluYXRpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQ
b3J0cyYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKTsKKyAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2
aWNlV29ya2VyQ2xpZW50KGNvbnN0IFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyJiBkZXN0aW5hdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lc3NhZ2VXaXRo
TWVzc2FnZVBvcnRzJiwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc291cmNlSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pOwogCiAgICAgLy8gTWVzc2FnZXMg
dG8gdGhlIFNXIGhvc3QgV2ViUHJvY2VzcwogICAgIHZvaWQgaW5zdGFsbFNlcnZpY2VXb3JrZXJD
b250ZXh0KGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYsIGNvbnN0IFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJEYXRhJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFdlYkNv
cmU6OldvcmtlclRocmVhZE1vZGUpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtl
ci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggNTUyY2Fl
NWUyMjQ0MjQyZGY1MDMyYTAyODZmMGZiYWU5OTI0NjUxMi4uZmQ3MTk0OGM1ZjM1OTk5ZjU1MmRm
MWRmZDYzNTJjMTNkMmY1ZjgxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0zMiwxMSArMzIsMTEg
QEAgbWVzc2FnZXMgLT4gV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uIE5vdFJlZkNvdW50
ZWQgewogICAgIFNldFNlcnZpY2VXb3JrZXJIYXNQZW5kaW5nRXZlbnRzKFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgaGFzUGVuZGluZ0V2ZW50cykKICAg
ICBTa2lwV2FpdGluZyhXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVy
KSAtPiAoKSBBc3luYwogICAgIFdvcmtlclRlcm1pbmF0ZWQoV2ViQ29yZTo6U2VydmljZVdvcmtl
cklkZW50aWZpZXIgaWRlbnRpZmllcikKLSAgICBGaW5kQ2xpZW50QnlJZGVudGlmaWVyKHVpbnQ2
NF90IHJlcXVlc3RJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBz
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGll
bnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCisgICAgRmluZENsaWVudEJ5SWRlbnRpZmll
cih1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50
aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCiAgICAgTWF0Y2hBbGwodWludDY0X3Qg
bWF0Y2hBbGxSZXF1ZXN0SWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZp
ZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
Q2xpZW50UXVlcnlPcHRpb25zIG9wdGlvbnMpOwogICAgIENsYWltKFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSAtPiAoc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiByZXN1bHQpIEFzeW5jCiAgICAgU2V0U2NyaXB0UmVz
b3VyY2UoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllciwgVVJMIHNj
cmlwdFVSTCwgV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlw
dCBzY3JpcHQpCi0gICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoc3RydWN0IFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIGRlc3RpbmF0aW9uLCBzdHJ1Y3Qg
V2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMgbWVzc2FnZSwgV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIgc291cmNlLCBTdHJpbmcgc291cmNlT3JpZ2luKQorICAgIFBvc3RN
ZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyIGRlc3RpbmF0aW9uLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNz
YWdlUG9ydHMgbWVzc2FnZSwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc291cmNl
LCBTdHJpbmcgc291cmNlT3JpZ2luKQogICAgIERpZEZhaWxIZWFydEJlYXRDaGVjayhXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrTUROU1JlZ2lzdGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtNRE5TUmVnaXN0
ZXIuY3BwCmluZGV4IDc5N2U1ODQzN2NiYmNkYTU4NmE3MmIwYzAzMTc2OTQ1NjkxZmRlNzYuLjMy
ODJjYjQ5MDFkNTk3MDY5MjVmMWJkZjIzMzExMjhhMDM1YjM3MmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtNRE5TUmVnaXN0ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtNRE5TUmVnaXN0
ZXIuY3BwCkBAIC01NCw3ICs1NCw3IEBAIE5ldHdvcmtNRE5TUmVnaXN0ZXI6On5OZXR3b3JrTURO
U1JlZ2lzdGVyKCkKIH0KIAogI2lmIEVOQUJMRV9NRE5TCi12b2lkIE5ldHdvcmtNRE5TUmVnaXN0
ZXI6OnVucmVnaXN0ZXJNRE5TTmFtZXMoV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyIGRvY3Vt
ZW50SWRlbnRpZmllcikKK3ZvaWQgTmV0d29ya01ETlNSZWdpc3Rlcjo6dW5yZWdpc3Rlck1ETlNO
YW1lcyhXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBkb2N1bWVudElk
ZW50aWZpZXIpCiB7CiAgICAgYXV0byBpdGVyYXRvciA9IG1fc2VydmljZXMuZmluZChkb2N1bWVu
dElkZW50aWZpZXIpOwogICAgIGlmIChpdGVyYXRvciA9PSBtX3NlcnZpY2VzLmVuZCgpKQpAQCAt
MTA0LDcgKzEwNCw3IEBAIHN0YXRpYyB2b2lkIHJlZ2lzdGVyTUROU05hbWVDYWxsYmFjayhETlNT
ZXJ2aWNlUmVmLCBETlNSZWNvcmRSZWYgcmVjb3JkLCBETlNTZXJ2CiAgICAgcmVxdWVzdC0+Y29u
bmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2ViTUROU1JlZ2lzdGVyOjpGaW5pc2hlZFJlZ2lzdGVy
aW5nTUROU05hbWUgeyByZXF1ZXN0LT5yZXF1ZXN0SWRlbnRpZmllciwgcmVxdWVzdC0+bmFtZSwg
eyB9IH0sIDApOwogfQogCi12b2lkIE5ldHdvcmtNRE5TUmVnaXN0ZXI6OnJlZ2lzdGVyTUROU05h
bWUoTUROU1JlZ2lzdGVySWRlbnRpZmllciByZXF1ZXN0SWRlbnRpZmllciwgV2ViQ29yZTo6RG9j
dW1lbnRJZGVudGlmaWVyIGRvY3VtZW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBpcEFkZHJl
c3MpCit2b2lkIE5ldHdvcmtNRE5TUmVnaXN0ZXI6OnJlZ2lzdGVyTUROU05hbWUoTUROU1JlZ2lz
dGVySWRlbnRpZmllciByZXF1ZXN0SWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIgZG9jdW1lbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGlwQWRk
cmVzcykKIHsKICAgICBhdXRvIG5hbWUgPSBtYWtlU3RyaW5nKGNyZWF0ZUNhbm9uaWNhbFVVSURT
dHJpbmcoKSwgIi5sb2NhbCIpOwogCkBAIC0xNjUsMTEgKzE2NSwxMSBAQCB2b2lkIE5ldHdvcmtN
RE5TUmVnaXN0ZXI6OnJlZ2lzdGVyTUROU05hbWUoTUROU1JlZ2lzdGVySWRlbnRpZmllciByZXF1
ZXN0SWRlbnRpZgogCiAjZWxzZQogCi12b2lkIE5ldHdvcmtNRE5TUmVnaXN0ZXI6OnVucmVnaXN0
ZXJNRE5TTmFtZXMoV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyKQordm9pZCBOZXR3b3JrTURO
U1JlZ2lzdGVyOjp1bnJlZ2lzdGVyTUROU05hbWVzKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRJZGVudGlmaWVyKQogewogfQogCi12b2lkIE5ldHdvcmtNRE5TUmVnaXN0ZXI6OnJlZ2lz
dGVyTUROU05hbWUoTUROU1JlZ2lzdGVySWRlbnRpZmllciByZXF1ZXN0SWRlbnRpZmllciwgV2Vi
Q29yZTo6RG9jdW1lbnRJZGVudGlmaWVyIGRvY3VtZW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBpcEFkZHJlc3MpCit2b2lkIE5ldHdvcmtNRE5TUmVnaXN0ZXI6OnJlZ2lzdGVyTUROU05hbWUo
TUROU1JlZ2lzdGVySWRlbnRpZmllciByZXF1ZXN0SWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0
RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgZG9jdW1lbnRJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIGlwQWRkcmVzcykKIHsKICAgICBNRE5TX1JFTEVBU0VfTE9HKCJyZWdpc3Rlck1ETlNOYW1l
IG5vdCBpbXBsZW1lbnRlZCIpOwogICAgIGF1dG8gbmFtZSA9IG1ha2VTdHJpbmcoY3JlYXRlQ2Fu
b25pY2FsVVVJRFN0cmluZygpLCAiLmxvY2FsIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrTUROU1JlZ2lzdGVyLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrTUROU1JlZ2lzdGVyLmgKaW5kZXggM2M3
NTQ3MGZiNTE1OTEwMzFkNTY0YjdiMWQ5NjEyNTc3NGUzZDRkOC4uMDEzYjE4NWU2YjQ3MjY3NTMz
NmVmYjgwMmFjZmVmYmFmYjJhOGQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy93ZWJydGMvTmV0d29ya01ETlNSZWdpc3Rlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtNRE5TUmVnaXN0ZXIuaApAQCAtMjksNyArMjks
NyBAQAogCiAjaW5jbHVkZSAiTUROU1JlZ2lzdGVySWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlJU
Q05ldHdvcmsuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50SWRlbnRpZmllci5oPgorI2lu
Y2x1ZGUgPFdlYkNvcmUvU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaD4KICNpbmNs
dWRlIDx3dGYvRXhwZWN0ZWQuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+CkBAIC02NSwxNCArNjUsMTQgQEAgcHVibGljOgogICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CiAKIHByaXZh
dGU6Ci0gICAgdm9pZCB1bnJlZ2lzdGVyTUROU05hbWVzKFdlYkNvcmU6OkRvY3VtZW50SWRlbnRp
Zmllcik7Ci0gICAgdm9pZCByZWdpc3Rlck1ETlNOYW1lKE1ETlNSZWdpc3RlcklkZW50aWZpZXIs
IFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBpcEFkZHJlc3MpOwor
ICAgIHZvaWQgdW5yZWdpc3Rlck1ETlNOYW1lcyhXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllcik7CisgICAgdm9pZCByZWdpc3Rlck1ETlNOYW1lKE1ETlNSZWdpc3Rlcklk
ZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIGlwQWRkcmVzcyk7CiAgICAgCiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
KCkgY29uc3Q7CiAKICAgICBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgbV9jb25uZWN0
aW9uOwogI2lmIEVOQUJMRV9NRE5TCi0gICAgSGFzaE1hcDxXZWJDb3JlOjpEb2N1bWVudElkZW50
aWZpZXIsIEROU1NlcnZpY2VSZWY+IG1fc2VydmljZXM7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgRE5TU2VydmljZVJlZj4gbV9zZXJ2aWNl
czsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy93ZWJydGMvTmV0d29ya01ETlNSZWdpc3Rlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtNRE5TUmVnaXN0ZXIubWVzc2FnZXMuaW4KaW5k
ZXggMTU4Mzk2MzNkNTUzZTAwNWNjY2I5Yjc0ZmMwYzE4ZmQxMDdkZjUxNC4uMWQyNzVkOWJlMjJl
M2I1NjBjNDVmNDFlYmFmN2I5ZDJjNTYzZjY2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya01ETlNSZWdpc3Rlci5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrTUROU1JlZ2lzdGVy
Lm1lc3NhZ2VzLmluCkBAIC0yMyw4ICsyMyw4IEBACiAjaWYgRU5BQkxFKFdFQl9SVEMpCiAKIG1l
c3NhZ2VzIC0+IE5ldHdvcmtNRE5TUmVnaXN0ZXIgTm90UmVmQ291bnRlZCB7Ci0gICAgVW5yZWdp
c3Rlck1ETlNOYW1lcyhXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXIgZG9jdW1lbnRJZGVudGlm
aWVyKQotICAgIFJlZ2lzdGVyTUROU05hbWUoV2ViS2l0OjpNRE5TUmVnaXN0ZXJJZGVudGlmaWVy
IHJlcXVlc3RJZGVudGlmaWVyLCBXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXIgZG9jdW1lbnRJ
ZGVudGlmaWVyLCBTdHJpbmcgaXBBZGRyZXNzKQorICAgIFVucmVnaXN0ZXJNRE5TTmFtZXMoV2Vi
Q29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgZG9jdW1lbnRJZGVudGlmaWVy
KQorICAgIFJlZ2lzdGVyTUROU05hbWUoV2ViS2l0OjpNRE5TUmVnaXN0ZXJJZGVudGlmaWVyIHJl
cXVlc3RJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
ciBkb2N1bWVudElkZW50aWZpZXIsIFN0cmluZyBpcEFkZHJlc3MpCiB9CiAKICNlbmRpZiAvLyBF
TkFCTEUoV0VCX1JUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5Cmlu
ZGV4IDhiZDBkYjI5N2JmYjQwNzRmNjg5MDA0MmZjZGE0Nzg0NTBkZjA1NjYuLjQ1OTFhZjZmMzE4
Y2Y5ZmUxYmI4MjMyODg5YmJjMjUzZDA3MjQxN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC9tZXNzYWdlcy5weQpAQCAtMjc2LDggKzI3Niw2IEBAIGRlZiB0eXBlc190aGF0X2Nhbm5v
dF9iZV9mb3J3YXJkX2RlY2xhcmVkKCk6CiAgICAgICAgICdXZWJDb3JlOjpEaWFnbm9zdGljTG9n
Z2luZ0RvbWFpbicsCiAgICAgICAgICdXZWJDb3JlOjpEaWN0YXRpb25Db250ZXh0JywKICAgICAg
ICAgJ1dlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVySWRlbnRpZmllcicsCi0gICAgICAg
ICdXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXInLAotICAgICAgICAnV2ViQ29yZTo6RG9jdW1l
bnRPcldvcmtlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9u
RmxhZ3MnLAogICAgICAgICAnV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyJywKICAgICAgICAgJ1dl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyJywKQEAgLTMwMSw2ICsyOTksNyBAQCBk
ZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpOgogICAgICAgICAnV2Vi
Q29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OlJl
c291cmNlTG9hZGVySWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpTV1NlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
JywKICAgICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyJywKICAgICAg
ICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJPckNsaWVudERhdGEnLApAQCAtNzA1LDcgKzcwNCw2
IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnV2ViQ29yZTo6RE9NUGFz
dGVBY2Nlc3NSZXNwb25zZSc6IFsnPFdlYkNvcmUvRE9NUGFzdGVBY2Nlc3MuaD4nXSwKICAgICAg
ICAgJ1dlYkNvcmU6OkRlc3RpbmF0aW9uQ29sb3JTcGFjZSc6IFsnPFdlYkNvcmUvQ29sb3JTcGFj
ZS5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RG9jdW1lbnRNYXJrZXJMaW5lU3R5bGUnOiBbJzxX
ZWJDb3JlL0dyYXBoaWNzVHlwZXMuaD4nXSwKLSAgICAgICAgJ1dlYkNvcmU6OkRvY3VtZW50T3JX
b3JrZXJJZGVudGlmaWVyJzogWyc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4nXSwKICAg
ICAgICAgJ1dlYkNvcmU6OkRyYWdBcHBsaWNhdGlvbkZsYWdzJzogWyc8V2ViQ29yZS9EcmFnRGF0
YS5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RHJhZ0hhbmRsaW5nTWV0aG9kJzogWyc8V2ViQ29y
ZS9EcmFnQWN0aW9ucy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RHJhZ09wZXJhdGlvbic6IFsn
PFdlYkNvcmUvRHJhZ0FjdGlvbnMuaD4nXSwKQEAgLTc2OSw3ICs3NjcsNyBAQCBkZWYgaGVhZGVy
c19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OlNlbGVjdGlvbkdlb21ldHJ5Jzog
WyciRWRpdG9yU3RhdGUuaCInXSwKICAgICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JJ
ZGVudGlmaWVyJzogWyc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4nXSwKICAgICAgICAg
J1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJPckNsaWVudERhdGEnOiBbJzxXZWJDb3JlL1NlcnZpY2VX
b3JrZXJUeXBlcy5oPicsICc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oPicsICc8
V2ViQ29yZS9TZXJ2aWNlV29ya2VyRGF0YS5oPiddLAotICAgICAgICAnV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllcic6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVz
Lmg+JywgJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmg+J10sCisgICAg
ICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyJzogWyc8V2ViQ29y
ZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyJzogWyc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMu
aD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TdGF0ZSc6
IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyU3RhdGUnOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPiddLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNw
cCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXgg
MjJlMGJmODkyYWVlNGE4YTVhZDc5ZDEyMzgyYWUzYjUwOTYwOWJiZS4uZTJjMWVlYjgwYjQyNzU0
NzczNmQ5NDY2ZmU3NDQ1OGQ5MjdmNzEyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC03NSw2ICs3NSw3IEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9u
c2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdEJ1ZmZlci5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1Njcm9sbGluZ0NvbnN0cmFpbnRzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxpbmdDb29y
ZGluYXRvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VhcmNoUG9wdXBNZW51Lmg+CkBAIC04Miw3
ICs4Myw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxpemVkQXR0YWNobWVudERhdGEuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRQbGF0Zm9ybURhdGFDdWVWYWx1ZS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlckNsaWVudERhdGEuaD4KLSNpbmNsdWRlIDxXZWJD
b3JlL1NlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
ZXJ2aWNlV29ya2VyRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVEYXRhLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9UZXh0Q2hlY2tlckNsaWVudC5oPgpAQCAtMjgxNCw3ICsyODE0LDcgQEAg
dm9pZCBBcmd1bWVudENvZGVyPFNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXI+OjplbmNv
ZGUoRW5jb2RlciYgZW5jb2RlciwgY28KICAgICBpZiAoaXNTZXJ2aWNlV29ya2VySWRlbnRpZmll
cikKICAgICAgICAgZW5jb2RlciA8PCBzdGQ6OmdldDxTZXJ2aWNlV29ya2VySWRlbnRpZmllcj4o
aWRlbnRpZmllcik7CiAgICAgZWxzZQotICAgICAgICBlbmNvZGVyIDw8IHN0ZDo6Z2V0PFNlcnZp
Y2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPihpZGVudGlmaWVyKTsKKyAgICAgICAgZW5jb2RlciA8
PCBzdGQ6OmdldDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4oaWRlbnRpZmllcik7
CiB9CiAKIGJvb2wgQXJndW1lbnRDb2RlcjxTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVy
Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZp
ZXImIGlkZW50aWZpZXIpCkBAIC0yODMwLDcgKzI4MzAsNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8
U2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllcj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
LCBTZQogCiAgICAgICAgIGlkZW50aWZpZXIgPSBXVEZNb3ZlKCp3b3JrZXJJZGVudGlmaWVyKTsK
ICAgICB9IGVsc2UgewotICAgICAgICBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnRJ
ZGVudGlmaWVyPiBjbGllbnRJZGVudGlmaWVyOworICAgICAgICBzdGQ6Om9wdGlvbmFsPFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBjbGllbnRJZGVudGlmaWVyOwogICAgICAgICBk
ZWNvZGVyID4+IGNsaWVudElkZW50aWZpZXI7CiAgICAgICAgIGlmICghY2xpZW50SWRlbnRpZmll
cikKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1N5c3RlbVByZXZpZXdDb250cm9sbGVyQ29jb2EubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9TeXN0ZW1QcmV2aWV3Q29udHJvbGxlckNvY29hLm1tCmlu
ZGV4IGJkNGU2YmZiNzMxODUwNzU5NWFjNGY4MTA1ZjAzZTc1OWI2ZDFkYTcuLmRjY2Q5MGRmZWMy
NDIzMTMyMjMzMTEwNGI2N2M5MGMzODA3OTJmNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1N5c3RlbVByZXZpZXdDb250cm9sbGVyQ29jb2EubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvU3lzdGVtUHJldmlld0NvbnRyb2xsZXJDb2NvYS5t
bQpAQCAtMzA1LDcgKzMwNSw3IEBAIHZvaWQgU3lzdGVtUHJldmlld0NvbnRyb2xsZXI6OnRyaWdn
ZXJTeXN0ZW1QcmV2aWV3QWN0aW9uV2l0aFRhcmdldEZvclRlc3RpbmcodWluCiB7CiAgICAgbV9z
eXN0ZW1QcmV2aWV3SW5mby5pc1ByZXZpZXcgPSB0cnVlOwogICAgIG1fc3lzdGVtUHJldmlld0lu
Zm8uZWxlbWVudC5lbGVtZW50SWRlbnRpZmllciA9IG1ha2VPYmplY3RJZGVudGlmaWVyPFdlYkNv
cmU6OkVsZW1lbnRJZGVudGlmaWVyVHlwZT4oZWxlbWVudElEKTsKLSAgICBtX3N5c3RlbVByZXZp
ZXdJbmZvLmVsZW1lbnQuZG9jdW1lbnRJZGVudGlmaWVyID0gbWFrZU9iamVjdElkZW50aWZpZXI8
V2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyVHlwZT4oZG9jdW1lbnRJRCk7CisgICAgbV9zeXN0
ZW1QcmV2aWV3SW5mby5lbGVtZW50LmRvY3VtZW50SWRlbnRpZmllciA9IFdlYkNvcmU6OlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIHsgbWFrZU9iamVjdElkZW50aWZpZXI8V2ViQ29y
ZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXJUeXBlPihkb2N1bWVudElEKSwgbV93
ZWJQYWdlUHJveHkucHJvY2VzcygpLmNvcmVQcm9jZXNzSWRlbnRpZmllcigpIH07CiAgICAgbV9z
eXN0ZW1QcmV2aWV3SW5mby5lbGVtZW50LndlYlBhZ2VJZGVudGlmaWVyID0gbWFrZU9iamVjdElk
ZW50aWZpZXI8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXJUeXBlPihwYWdlSUQpOwogICAgIHRyaWdn
ZXJTeXN0ZW1QcmV2aWV3QWN0aW9uKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAzOTg2NDM0OWEx
OTlkYzcwNWU3ZmIyYTU0ZGI1MTEwYjhmZTA1YjUxLi5iMjJiYWEyYTQ3OTg4NTlmYzI4MzI4NmJh
YzgyNTkxMTRmM2ZlOGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTE0MDUsNyArMTQwNSw3IEBAIHZv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkRGVzdHJveVdlYlVzZXJDb250ZW50Q29udHJvbGxl
clByb3h5KFdlYlVzZXJDb250ZW50CiAjZW5kaWYKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktF
UikKLXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5l
Y3Rpb25Ub05ldHdvcmtQcm9jZXNzKFJlZ2lzdHJhYmxlRG9tYWluJiYgcmVnaXN0cmFibGVEb21h
aW4sIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+IHNlcnZpY2VX
b3JrZXJQYWdlSWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6OmVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0aW9uVG9OZXR3b3JrUHJvY2VzcyhS
ZWdpc3RyYWJsZURvbWFpbiYmIHJlZ2lzdHJhYmxlRG9tYWluLCBzdGQ6Om9wdGlvbmFsPFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIs
IFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIFdlYlByb2Nlc3NQb29sOjplc3RhYmxpc2hXb3JrZXJD
b250ZXh0Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MoKnRoaXMsIFdURk1vdmUocmVnaXN0cmFi
bGVEb21haW4pLCBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIsIHNlc3Npb25JRCwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCA5OGQ5ZDgwYzI0ZGFhN2Vl
MWUwMzBkMWMyZjRhMTIzYTc3ZWJjY2VjLi40NDFiODZlMTg5YzJjZjE3MjQ0ZDhhZGUzZDdlZDA1
ZmY4NzkwMGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAtMzIyLDcgKzMyMiw3IEBAIHByaXZhdGU6CiAjZW5k
aWYKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAgICB2b2lkIGVzdGFibGlzaFdvcmtl
ckNvbnRleHRDb25uZWN0aW9uVG9OZXR3b3JrUHJvY2VzcyhXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiYmLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlm
aWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklELCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgZXN0YWJsaXNoV29ya2VyQ29udGV4dENv
bm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYsIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IHNl
cnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCB3b3JrZXJDb250ZXh0Q29ubmVjdGlvbk5vTG9uZ2Vy
TmVlZGVkKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyKTsKICAgICB2b2lkIHJlZ2lzdGVyU2Vy
dmljZVdvcmtlckNsaWVudFByb2Nlc3MoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgd2ViUHJv
Y2Vzc0lkZW50aWZpZXIsIFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJQ
cm9jZXNzSWRlbnRpZmllcik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVu
dFByb2Nlc3MoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgd2ViUHJvY2Vzc0lkZW50aWZpZXIs
IFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJQcm9jZXNzSWRlbnRpZmll
cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYjRhNGYwMjFhNDhiOGVlMzg2
ZDJhZDUzZjY1ZDNiZGY4YTExMTlmYy4uMDIyM2M2MDVjMzUyYjViYzdiYjM3NzNjZmU1YmEyMzZi
NDkyMTlmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtNTMsNyArNTMsNyBA
QCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKICAgICBU
ZXJtaW5hdGVXZWJQcm9jZXNzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHdlYlByb2Nlc3NJ
ZGVudGlmaWVyKQogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotICAgIEVzdGFibGlzaFdv
cmtlckNvbnRleHRDb25uZWN0aW9uVG9OZXR3b3JrUHJvY2VzcyhXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiByZWdpc3RyYWJsZURvbWFpbiwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyQ2xpZW50SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyLCBQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCisgICAgRXN0YWJsaXNoV29ya2VyQ29u
dGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
IHJlZ2lzdHJhYmxlRG9tYWluLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIsIFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCkgLT4gKCkgQXN5bmMKICAgICBXb3JrZXJDb250ZXh0Q29ubmVjdGlv
bk5vTG9uZ2VyTmVlZGVkKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAg
ICAgUmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50UHJvY2VzcyhXZWJDb3JlOjpQcm9jZXNzSWRl
bnRpZmllciB3ZWJQcm9jZXNzSWRlbnRpZmllciwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIg
c2VydmljZVdvcmtlclByb2Nlc3NJZGVudGlmaWVyKQogICAgIFVucmVnaXN0ZXJTZXJ2aWNlV29y
a2VyQ2xpZW50UHJvY2VzcyhXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciB3ZWJQcm9jZXNzSWRl
bnRpZmllciwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgc2VydmljZVdvcmtlclByb2Nlc3NJ
ZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmlu
ZGV4IDNjM2JlZmMyYTY3NGMwZDgyYmVhNjRlYmUzNTQ5NDBhYzNjZmE5ODAuLmFmYzZkYjk2ZjY2
ZTdmYTQ3ZDdjNTM4YzRlNzM2YTQxNjkzZDdmNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTUxMiw3ICs1MTIsNyBAQCB2b2lkIFdlYlByb2Nlc3NQ
b29sOjpnZXRXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKFdlYlByb2Nlc3NQcm94eSYgd2ViUHJv
Y2Vzc1BybwogYm9vbCBXZWJQcm9jZXNzUG9vbDo6c191c2VTZXBhcmF0ZVNlcnZpY2VXb3JrZXJQ
cm9jZXNzID0gZmFsc2U7CiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi12b2lkIFdlYlBy
b2Nlc3NQb29sOjplc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nl
c3MoTmV0d29ya1Byb2Nlc3NQcm94eSYgcHJveHksIFJlZ2lzdHJhYmxlRG9tYWluJiYgcmVnaXN0
cmFibGVEb21haW4sIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+
IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBy
b2Nlc3NQb29sOjplc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nl
c3MoTmV0d29ya1Byb2Nlc3NQcm94eSYgcHJveHksIFJlZ2lzdHJhYmxlRG9tYWluJiYgcmVnaXN0
cmFibGVEb21haW4sIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
YXV0byogd2Vic2l0ZURhdGFTdG9yZSA9IFdlYnNpdGVEYXRhU3RvcmU6OmV4aXN0aW5nRGF0YVN0
b3JlRm9yU2Vzc2lvbklEKHNlc3Npb25JRCk7CiAgICAgaWYgKCF3ZWJzaXRlRGF0YVN0b3JlKQpA
QCAtNTI4LDcgKzUyOCw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmVzdGFibGlzaFdvcmtlckNv
bnRleHRDb25uZWN0aW9uVG9OZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvCiAKICAgICBpZiAoc2Vy
dmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKSB7CiAgICAgICAgIC8vIFRoaXMgaXMgYSBzZXJ2aWNl
IHdvcmtlciBmb3IgYSBzZXJ2aWNlIHdvcmtlciBwYWdlIHNvIHdlIG5lZWQgdG8gbWFrZSBzdXJl
IHdlIHVzZSB1c2UgdGhlIHBhZ2UncyBXZWJQcm9jZXNzIGZvciB0aGUgc2VydmljZSB3b3JrZXIu
Ci0gICAgICAgIGlmICgoc2VydmljZVdvcmtlclByb2Nlc3NQcm94eSA9IFdlYlByb2Nlc3NQcm94
eTo6cHJvY2Vzc0ZvcklkZW50aWZpZXIoc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyLT5zZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpKSB7CisgICAgICAgIGlmICgoc2VydmljZVdvcmtlclBy
b2Nlc3NQcm94eSA9IFdlYlByb2Nlc3NQcm94eTo6cHJvY2Vzc0ZvcklkZW50aWZpZXIoc2Vydmlj
ZVdvcmtlclBhZ2VJZGVudGlmaWVyLT5wcm9jZXNzSWRlbnRpZmllcigpKSkpIHsKICAgICAgICAg
ICAgIHNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHktPmVuYWJsZVNlcnZpY2VXb3JrZXJzKHByb2Nl
c3NQb29sLT51c2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyRm9yU2VydmljZVdvcmtlcnMo
KSk7CiAgICAgICAgICAgICBpZiAoc2VydmljZVdvcmtlclByb2Nlc3NQcm94eS0+aXNJblByb2Nl
c3NDYWNoZSgpKSB7CiAgICAgICAgICAgICAgICAgcHJvY2Vzc1Bvb2wtPndlYlByb2Nlc3NDYWNo
ZSgpLnJlbW92ZVByb2Nlc3MoKnNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHksIFdlYlByb2Nlc3ND
YWNoZTo6U2hvdWxkU2h1dERvd25Qcm9jZXNzOjpObyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuaAppbmRleCA4ZTgwZmRjMjljZTVjZWEwNmQ2M2MyNGZhYzZhNDhmNDM4
OGRhZGFmLi5hOTQzOGFlM2RiMWJhYzQ1MzVmMWU5MmZlMjBlYmMxZjg4OWE3MjQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTM2Niw3ICszNjYsNyBAQCBw
dWJsaWM6CiAKICAgICBib29sIGlzU2VydmljZVdvcmtlclBhZ2VJRChXZWJQYWdlUHJveHlJZGVu
dGlmaWVyKSBjb25zdDsKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0gICAgc3RhdGljIHZv
aWQgZXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKE5ldHdv
cmtQcm9jZXNzUHJveHkmLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmLCBzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2Vy
UGFnZUlkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOworICAgIHN0YXRpYyB2b2lkIGVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0aW9uVG9O
ZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc1Byb3h5JiwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4mJiwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHJlbW92ZUZyb21TZXJ2aWNlV29y
a2VyUHJvY2Vzc2VzKFdlYlByb2Nlc3NQcm94eSYpOwogICAgIHNpemVfdCBzZXJ2aWNlV29ya2Vy
UHJveGllc0NvdW50KCkgY29uc3QgeyByZXR1cm4gc2VydmljZVdvcmtlclByb2Nlc3NlcygpLmNv
bXB1dGVTaXplKCk7IH0KICAgICB2b2lkIHVwZGF0ZVNlcnZpY2VXb3JrZXJVc2VyQWdlbnQoY29u
c3QgU3RyaW5nJiB1c2VyQWdlbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAKaW5kZXggOWMwMGM0N2I3YzVjZDAyNjRmMjcwMzAyZWE3YmY2MzU0NTgwYjdj
Zi4uMTE4MWNhN2Q2NThiNDk0NjUzZmY4MGE2MjIwOTU1MTQ5YTMzNzg4OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC0xODU2LDcgKzE4NTYsNyBA
QCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZW5kQmFja2dyb3VuZEFjdGl2aXR5Rm9yRnVsbHNjcmVl
bklucHV0KCkKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotdm9pZCBXZWJQ
cm9jZXNzUHJveHk6OmVzdGFibGlzaFNlcnZpY2VXb3JrZXJDb250ZXh0KGNvbnN0IFdlYlByZWZl
cmVuY2VzU3RvcmUmIHN0b3JlLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVnaXN0cmFibGVE
b21haW4sIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+IHNlcnZp
Y2VXb3JrZXJQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OmVzdGFibGlzaFNlcnZpY2VXb3Jr
ZXJDb250ZXh0KGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlLCBjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYgcmVnaXN0cmFibGVEb21haW4sIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0
aW9uQ29udGV4dElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIFdFQlBST0NF
U1NQUk9YWV9SRUxFQVNFX0xPRyhMb2FkaW5nLCAiZXN0YWJsaXNoU2VydmljZVdvcmtlckNvbnRl
eHQ6IFN0YXJ0ZWQiKTsKICAgICBtYXJrUHJvY2Vzc0FzUmVjZW50bHlVc2VkKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDQyOWMzYzEwNjMxZjM0YmVh
YjU3Mjk3ZTY0Y2Y5MzkzYTgzZmRhMDkuLmRhNmRjNjhlZWJjZWNiNDIzNjI3ZWM5ODlkNmJjYWE4
MDE1NzQ5NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBA
IC0zNTcsNyArMzU3LDcgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlQXVkaWJsZU1lZGlhQXNz
ZXJ0aW9ucygpOwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotICAgIHZvaWQgZXN0YWJs
aXNoU2VydmljZVdvcmtlckNvbnRleHQoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYsIGNvbnN0
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgZXN0YWJsaXNoU2VydmljZVdv
cmtlckNvbnRleHQoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYsIGNvbnN0IFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluJiwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0U2VydmljZVdvcmtlclVzZXJBZ2VudChj
b25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHVwZGF0ZVNlcnZpY2VXb3JrZXJQcmVmZXJlbmNlc1N0
b3JlKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmKTsKICAgICBib29sIGhhc1NlcnZpY2VXb3Jr
ZXJQYWdlUHJveHkoV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlUHJveHlJRCkgeyByZXR1cm4g
bV9zZXJ2aWNlV29ya2VySW5mb3JtYXRpb24gJiYgbV9zZXJ2aWNlV29ya2VySW5mb3JtYXRpb24t
PnNlcnZpY2VXb3JrZXJQYWdlUHJveHlJRCA9PSBwYWdlUHJveHlJRDsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZS5jcHAKaW5kZXggYWVlMmQ0NzgyOTk4YjE2ZGU5OGZkZTRmYmFhZTY0NDA3MjY3MDhiNS4uZjA1
YzRlYjZmYzRiMWNmYTJlZDZlNmI3NGFhNWNlNjc2NTBlY2IzMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUu
Y3BwCkBAIC0zMzgsMTQgKzMzOCwxNCBAQCBJbmplY3RlZEJ1bmRsZTo6RG9jdW1lbnRJRFRvVVJM
TWFwIEluamVjdGVkQnVuZGxlOjpsaXZlRG9jdW1lbnRVUkxzKGJvb2wgZXhjbHVkZQogICAgIERv
Y3VtZW50SURUb1VSTE1hcCByZXN1bHQ7CiAKICAgICBmb3IgKGNvbnN0IGF1dG8qIGRvY3VtZW50
IDogRG9jdW1lbnQ6OmFsbERvY3VtZW50cygpKQotICAgICAgICByZXN1bHQuYWRkKGRvY3VtZW50
LT5pZGVudGlmaWVyKCkudG9VSW50NjQoKSwgZG9jdW1lbnQtPnVybCgpLnN0cmluZygpKTsKKyAg
ICAgICAgcmVzdWx0LmFkZChkb2N1bWVudC0+aWRlbnRpZmllcigpLm9iamVjdCgpLnRvVUludDY0
KCksIGRvY3VtZW50LT51cmwoKS5zdHJpbmcoKSk7CiAKICAgICBpZiAoZXhjbHVkZURvY3VtZW50
c0luUGFnZUdyb3VwUGFnZXMpIHsKICAgICAgICAgUGFnZTo6Zm9yRWFjaFBhZ2UoWyZdKFBhZ2Um
IHBhZ2UpIHsKICAgICAgICAgICAgIGZvciAoYXV0byogZnJhbWUgPSAmcGFnZS5tYWluRnJhbWUo
KTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoKSkgewogICAgICAg
ICAgICAgICAgIGlmICghZnJhbWUtPmRvY3VtZW50KCkpCiAgICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlOwotICAgICAgICAgICAgICAgIHJlc3VsdC5yZW1vdmUoZnJhbWUtPmRvY3VtZW50KCkt
PmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKKyAgICAgICAgICAgICAgICByZXN1bHQucmVtb3Zl
KGZyYW1lLT5kb2N1bWVudCgpLT5pZGVudGlmaWVyKCkub2JqZWN0KCkudG9VSW50NjQoKSk7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0pOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrTWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29y
a01hbmFnZXIuY3BwCmluZGV4IDZjYmQ2ZDdjNDJiMjA5NDBiZTg4ODQ2NjZhNjcxZWFlMzc4OTI1
MWYuLjljZGFlYjhhM2E2YzhhOTljNjVlNTE5ZTRhYjdhY2Y1NTc3NWM2ZGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3Jr
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRj
L0xpYldlYlJUQ05ldHdvcmtNYW5hZ2VyLmNwcApAQCAtMzcsNyArMzcsNyBAQAogbmFtZXNwYWNl
IFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotTGliV2ViUlRDTmV0d29ya01h
bmFnZXIqIExpYldlYlJUQ05ldHdvcmtNYW5hZ2VyOjpnZXRPckNyZWF0ZShXZWJDb3JlOjpEb2N1
bWVudElkZW50aWZpZXIgaWRlbnRpZmllcikKK0xpYldlYlJUQ05ldHdvcmtNYW5hZ2VyKiBMaWJX
ZWJSVENOZXR3b3JrTWFuYWdlcjo6Z2V0T3JDcmVhdGUoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICBhdXRvKiBkb2N1bWVudCA9IERv
Y3VtZW50OjphbGxEb2N1bWVudHNNYXAoKS5nZXQoaWRlbnRpZmllcik7CiAgICAgaWYgKCFkb2N1
bWVudCkKQEAgLTUzLDcgKzUzLDcgQEAgTGliV2ViUlRDTmV0d29ya01hbmFnZXIqIExpYldlYlJU
Q05ldHdvcmtNYW5hZ2VyOjpnZXRPckNyZWF0ZShXZWJDb3JlOjpEb2N1bWVudEkKICAgICByZXR1
cm4gbmV0d29ya01hbmFnZXI7CiB9CiAKLUxpYldlYlJUQ05ldHdvcmtNYW5hZ2VyOjpMaWJXZWJS
VENOZXR3b3JrTWFuYWdlcihXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXIgZG9jdW1lbnRJZGVu
dGlmaWVyKQorTGliV2ViUlRDTmV0d29ya01hbmFnZXI6OkxpYldlYlJUQ05ldHdvcmtNYW5hZ2Vy
KFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGRvY3VtZW50SWRlbnRp
ZmllcikKICAgICA6IG1fZG9jdW1lbnRJZGVudGlmaWVyKGRvY3VtZW50SWRlbnRpZmllcikKIHsK
ICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5saWJXZWJSVENOZXR3b3JrKCkubW9uaXRvcigp
LmFkZE9ic2VydmVyKCp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrTWFuYWdlci5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmtNYW5hZ2VyLmgKaW5k
ZXggMjg2ZGE2NzIyMWIwNTNhZjljYTNjNDBmYjI1NmZiZTY2YTc5MTFhMi4uMjU0OTQ0Y2I3ZjRh
MzkzMzlhMDA0NDNlZDRiMzJkNjZhMDI2NmVlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmtNYW5hZ2VyLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmtN
YW5hZ2VyLmgKQEAgLTI4LDIwICsyOCwyMCBAQAogI2lmIFVTRShMSUJXRUJSVEMpCiAKICNpbmNs
dWRlICJXZWJSVENNb25pdG9yLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudElkZW50aWZp
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xpYldlYlJUQ1Byb3ZpZGVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9SVENOZXR3b3JrTWFuYWdlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dElkZW50aWZpZXIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNz
IExpYldlYlJUQ05ldHdvcmtNYW5hZ2VyIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlJUQ05ldHdv
cmtNYW5hZ2VyLCBwdWJsaWMgcnRjOjpOZXR3b3JrTWFuYWdlckJhc2UsIHB1YmxpYyB3ZWJydGM6
Ok1kbnNSZXNwb25kZXJJbnRlcmZhY2UsIHB1YmxpYyBXZWJSVENNb25pdG9yOjpPYnNlcnZlciB7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIExpYldl
YlJUQ05ldHdvcmtNYW5hZ2VyKiBnZXRPckNyZWF0ZShXZWJDb3JlOjpEb2N1bWVudElkZW50aWZp
ZXIpOworICAgIHN0YXRpYyBMaWJXZWJSVENOZXR3b3JrTWFuYWdlciogZ2V0T3JDcmVhdGUoV2Vi
Q29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpOwogICAgIH5MaWJXZWJSVENO
ZXR3b3JrTWFuYWdlcigpOwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IExpYldlYlJUQ05ldHdv
cmtNYW5hZ2VyKFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllcik7CisgICAgZXhwbGljaXQgTGli
V2ViUlRDTmV0d29ya01hbmFnZXIoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXIpOwogCiAgICAgLy8gV2ViQ29yZTo6UlRDTmV0d29ya01hbmFnZXIKICAgICB2b2lkIHNl
dElDRUNhbmRpZGF0ZUZpbHRlcmluZyhib29sIGRvRmlsdGVyaW5nKSBmaW5hbCB7IG1fdXNlTURO
U0NhbmRpZGF0ZXMgPSBkb0ZpbHRlcmluZzsgfQpAQCAtNjAsNyArNjAsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgbmV0d29ya3NDaGFuZ2VkKGNvbnN0IFZlY3RvcjxSVENOZXR3b3JrPiYsIGNvbnN0
IFJUQ05ldHdvcms6OklQQWRkcmVzcyYsIGNvbnN0IFJUQ05ldHdvcms6OklQQWRkcmVzcyYpIGZp
bmFsOwogICAgIHZvaWQgbmV0d29ya1Byb2Nlc3NDcmFzaGVkKCkgZmluYWw7CiAKLSAgICBXZWJD
b3JlOjpEb2N1bWVudElkZW50aWZpZXIgbV9kb2N1bWVudElkZW50aWZpZXI7CisgICAgV2ViQ29y
ZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgbV9kb2N1bWVudElkZW50aWZpZXI7
CiAgICAgYm9vbCBtX3VzZU1ETlNDYW5kaWRhdGVzIHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9yZWNl
aXZlZE5ldHdvcmtMaXN0IHsgZmFsc2UgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcApp
bmRleCA3ZjQwNjI5ZTViMmIzYzRjZDdhNjY5OThhMGMxMDc2MDlmNmZhMzgwLi4wNzBjNzNkODU3
NmVjMmIzMzhlOWQxMDhkM2ZlOGNlMWU2ZGE3ZDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5j
cHAKQEAgLTU1LDcgKzU1LDcgQEAgcHJpdmF0ZToKICAgICB9CiB9OwogCi1ydGM6OnNjb3BlZF9y
ZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZT4gTGliV2ViUlRDUHJvdmlkZXI6
OmNyZWF0ZVBlZXJDb25uZWN0aW9uKERvY3VtZW50SWRlbnRpZmllciBpZGVudGlmaWVyLCB3ZWJy
dGM6OlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXImIG9ic2VydmVyLCBydGM6OlBhY2tldFNvY2tldEZh
Y3RvcnkqIHNvY2tldEZhY3RvcnksIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OlJU
Q0NvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQorcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0
Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U+IExpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVQZWVy
Q29ubmVjdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBpZGVudGlmaWVyLCB3
ZWJydGM6OlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXImIG9ic2VydmVyLCBydGM6OlBhY2tldFNvY2tl
dEZhY3RvcnkqIHNvY2tldEZhY3RvcnksIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6
OlJUQ0NvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogewogI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykgJiYgUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkKICAgICBp
ZiAoIW1fZGlkSW5pdGlhbGl6ZUNhbGxiYWNrKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCmluZGV4
IDc5NTE3YzA4ODkzZTFmNmI1MDVlNzI5ZTY0ZTE5ZDAwYzk5MDFiM2IuLmQzODBhMDc1ZGViOTcx
ZTBmZDNiOTYzNmM1ZGNhNjVkMGFmZjc3MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oCkBAIC01
NCw3ICs1NCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFN1c3Bl
bmRhYmxlU29ja2V0RmFjdG9yeT4gY3JlYXRlU29ja2V0RmFjdG9yeShTdHJpbmcmJiAvKiB1c2Vy
QWdlbnQgKi8sIGJvb2wgLyogaXNGaXJzdFBhcnR5ICovLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiYmKSBmaW5hbDsKIAotICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25u
ZWN0aW9uSW50ZXJmYWNlPiBjcmVhdGVQZWVyQ29ubmVjdGlvbihXZWJDb3JlOjpEb2N1bWVudElk
ZW50aWZpZXIsIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25PYnNlcnZlciYsIHJ0Yzo6UGFja2V0U29j
a2V0RmFjdG9yeSosIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OlJUQ0NvbmZpZ3Vy
YXRpb24mJikgZmluYWw7CisgICAgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6UGVlckNvbm5l
Y3Rpb25JbnRlcmZhY2U+IGNyZWF0ZVBlZXJDb25uZWN0aW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyLCB3ZWJydGM6OlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXImLCBy
dGM6OlBhY2tldFNvY2tldEZhY3RvcnkqLCB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNl
OjpSVENDb25maWd1cmF0aW9uJiYpIGZpbmFsOwogCiAgICAgdm9pZCBkaXNhYmxlTm9uTG9jYWxo
b3N0Q29ubmVjdGlvbnMoKSBmaW5hbDsKICAgICB2b2lkIHN0YXJ0ZWROZXR3b3JrVGhyZWFkKCkg
ZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJy
dGMvV2ViTUROU1JlZ2lzdGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L3dlYnJ0Yy9XZWJNRE5TUmVnaXN0ZXIuY3BwCmluZGV4IDc2MDIwN2VhNTliY2EyNTQ1MjJmNTZj
NTlhNTI0NWU1OTVhOGRlMmIuLmMzY2FmY2FhZTZkZDZmZTRmYTJmMTZjNGJhNjBiZDVkM2I0ZDQ4
OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9X
ZWJNRE5TUmVnaXN0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L3dlYnJ0Yy9XZWJNRE5TUmVnaXN0ZXIuY3BwCkBAIC01NCw3ICs1NCw3IEBAIHZvaWQgV2ViTURO
U1JlZ2lzdGVyOjpmaW5pc2hlZFJlZ2lzdGVyaW5nTUROU05hbWUoTUROU1JlZ2lzdGVySWRlbnRp
ZmllciBpZGVudGlmCiAgICAgcGVuZGluZ1JlZ2lzdHJhdGlvbi5jYWxsYmFjayhuYW1lLCBlcnJv
cik7CiB9CiAKLXZvaWQgV2ViTUROU1JlZ2lzdGVyOjp1bnJlZ2lzdGVyTUROU05hbWVzKERvY3Vt
ZW50SWRlbnRpZmllciBpZGVudGlmaWVyKQordm9pZCBXZWJNRE5TUmVnaXN0ZXI6OnVucmVnaXN0
ZXJNRE5TTmFtZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgaWRlbnRpZmllcikK
IHsKICAgICBpZiAobV9yZWdpc3RlcmluZ0RvY3VtZW50cy50YWtlKGlkZW50aWZpZXIpLmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtNjMsNyArNjMsNyBAQCB2b2lkIFdlYk1ETlNSZWdp
c3Rlcjo6dW5yZWdpc3Rlck1ETlNOYW1lcyhEb2N1bWVudElkZW50aWZpZXIgaWRlbnRpZmllcikK
ICAgICBjb25uZWN0aW9uLnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtNRE5TUmVnaXN0ZXI6OlVucmVn
aXN0ZXJNRE5TTmFtZXMgeyBpZGVudGlmaWVyIH0sIDApOwogfQogCi12b2lkIFdlYk1ETlNSZWdp
c3Rlcjo6cmVnaXN0ZXJNRE5TTmFtZShEb2N1bWVudElkZW50aWZpZXIgaWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBpcEFkZHJlc3MsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgU3RyaW5n
Jiwgc3RkOjpvcHRpb25hbDxNRE5TUmVnaXN0ZXJFcnJvcj4pPiYmIGNhbGxiYWNrKQordm9pZCBX
ZWJNRE5TUmVnaXN0ZXI6OnJlZ2lzdGVyTUROU05hbWUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBpcEFkZHJlc3MsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoY29uc3QgU3RyaW5nJiwgc3RkOjpvcHRpb25hbDxNRE5TUmVnaXN0ZXJFcnJv
cj4pPiYmIGNhbGxiYWNrKQogewogICAgIGF1dG8mIG1hcCA9IG1fcmVnaXN0ZXJpbmdEb2N1bWVu
dHMuZW5zdXJlKGlkZW50aWZpZXIsIFtdIHsKICAgICAgICAgcmV0dXJuIEhhc2hNYXA8U3RyaW5n
LCBTdHJpbmc+IHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9XZWJNRE5TUmVnaXN0ZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL3dlYnJ0Yy9XZWJNRE5TUmVnaXN0ZXIuaAppbmRleCAyYzBmZjBlNDY2NTExZjk3OGZi
ODA5MjcyMGFmMDczZGJmNTM4ZmJlLi5jYzY5MTY0MWFlZjI0NDRjOWY0MTIxZTlkZmUyZDFmMzA4
NmUzOGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJy
dGMvV2ViTUROU1JlZ2lzdGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvd2VicnRjL1dlYk1ETlNSZWdpc3Rlci5oCkBAIC0yOCw4ICsyOCw4IEBACiAjaWYgRU5BQkxF
KFdFQl9SVEMpCiAKICNpbmNsdWRlICJNRE5TUmVnaXN0ZXJJZGVudGlmaWVyLmgiCi0jaW5jbHVk
ZSA8V2ViQ29yZS9Eb2N1bWVudElkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xpYldl
YlJUQ1Byb3ZpZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9FeHBlY3RlZC5oPgogI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTQ1LDggKzQ1LDggQEAgY2xh
c3MgV2ViTUROU1JlZ2lzdGVyIHsKIHB1YmxpYzoKICAgICBXZWJNRE5TUmVnaXN0ZXIoKSA9IGRl
ZmF1bHQ7CiAKLSAgICB2b2lkIHVucmVnaXN0ZXJNRE5TTmFtZXMoV2ViQ29yZTo6RG9jdW1lbnRJ
ZGVudGlmaWVyKTsKLSAgICB2b2lkIHJlZ2lzdGVyTUROU05hbWUoV2ViQ29yZTo6RG9jdW1lbnRJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGlwQWRkcmVzcywgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChjb25zdCBTdHJpbmcmLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1ETlNSZWdpc3RlckVycm9y
Pik+JiYpOworICAgIHZvaWQgdW5yZWdpc3Rlck1ETlNOYW1lcyhXZWJDb3JlOjpTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllcik7CisgICAgdm9pZCByZWdpc3Rlck1ETlNOYW1lKFdlYkNv
cmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGlwQWRk
cmVzcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBTdHJpbmcmLCBzdGQ6Om9wdGlvbmFs
PFdlYkNvcmU6Ok1ETlNSZWdpc3RlckVycm9yPik+JiYpOwogCiAgICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKIApAQCAtNTUsMTIgKzU1
LDEyIEBAIHByaXZhdGU6CiAKICAgICBzdHJ1Y3QgUGVuZGluZ1JlZ2lzdHJhdGlvbiB7CiAgICAg
ICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgU3RyaW5nJiwgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpNRE5TUmVnaXN0ZXJFcnJvcj4pPiBjYWxsYmFjazsKLSAgICAgICAgV2ViQ29yZTo6
RG9jdW1lbnRJZGVudGlmaWVyIGRvY3VtZW50SWRlbnRpZmllcjsKKyAgICAgICAgV2ViQ29yZTo6
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgZG9jdW1lbnRJZGVudGlmaWVyOwogICAg
ICAgICBTdHJpbmcgaXBBZGRyZXNzOwogICAgIH07CiAgICAgSGFzaE1hcDxNRE5TUmVnaXN0ZXJJ
ZGVudGlmaWVyLCBQZW5kaW5nUmVnaXN0cmF0aW9uPiBtX3BlbmRpbmdSZWdpc3RyYXRpb25zOwog
Ci0gICAgSGFzaE1hcDxXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXIsIEhhc2hNYXA8U3RyaW5n
LCBTdHJpbmc+PiBtX3JlZ2lzdGVyaW5nRG9jdW1lbnRzOworICAgIEhhc2hNYXA8V2ViQ29yZTo6
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+
PiBtX3JlZ2lzdGVyaW5nRG9jdW1lbnRzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENv
bm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGll
bnRDb25uZWN0aW9uLmNwcAppbmRleCBhZDRmYjBhYjc4YzJkZGFmMjdjZGY3NDE2ZDEwNmNiOWRm
NDc1ZWE3Li44ZDZlYjI2ODBiMWU3NTU1NTUwNzRmYjU4ZDUxZDk1ZDJhZmE0MjIxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50
Q29ubmVjdGlvbi5jcHAKQEAgLTk2LDcgKzk2LDcgQEAgdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rp
b246OnJlbW92ZVNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JblNlcnZlcihTZXJ2aWNlV29ya2UK
ICAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpSZW1vdmVTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uSW5TZXJ2ZXIgeyBpZGVudGlmaWVyIH0pOwogfQogCi12b2lk
IFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6c2NoZWR1bGVVbnJlZ2lzdGVySm9iSW5TZXJ2ZXIoU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgcmVnaXN0cmF0aW9uSWRlbnRpZmllciwg
V2ViQ29yZTo6RG9jdW1lbnRPcldvcmtlcklkZW50aWZpZXIgZG9jdW1lbnRJZGVudGlmaWVyLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPGJvb2w+JiYpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQordm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OnNjaGVkdWxlVW5yZWdpc3Rlckpv
YkluU2VydmVyKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHJlZ2lzdHJhdGlv
bklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXIgZG9j
dW1lbnRJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPGJvb2w+
JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpTY2hlZHVsZVVucmVnaXN0ZXJKb2JJblNlcnZl
ciB7IFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKSwgcmVn
aXN0cmF0aW9uSWRlbnRpZmllciwgZG9jdW1lbnRJZGVudGlmaWVyIH0sIFtjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvJiYgcmVzdWx0KSBtdXRhYmxl
IHsKICAgICAgICAgaWYgKCFyZXN1bHQuaGFzX3ZhbHVlKCkpCkBAIC0xMTUsOSArMTE1LDkgQEAg
dm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChj
b25zdCBTZWN1cml0eU9yaWdpbiYgdG8KICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNv
bm5lY3Rpb246OlJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudCB7IHRvcE9yaWdpbi5kYXRhKCks
IGRhdGEsIGNvbnRyb2xsaW5nU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIHVz
ZXJBZ2VudCB9KTsKIH0KIAotdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OnVucmVnaXN0ZXJT
ZXJ2aWNlV29ya2VyQ2xpZW50KERvY3VtZW50SWRlbnRpZmllciBjb250ZXh0SWRlbnRpZmllcikK
K3ZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjp1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVu
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjb250ZXh0SWRlbnRpZmllcikKIHsK
LSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OlVucmVnaXN0ZXJTZXJ2
aWNlV29ya2VyQ2xpZW50IHsgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgeyBzZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllcigpLCBjb250ZXh0SWRlbnRpZmllciB9IH0pOworICAgIHNlbmQo
TWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6VW5yZWdpc3RlclNlcnZpY2VXb3JrZXJD
bGllbnQgeyBjb250ZXh0SWRlbnRpZmllciB9KTsKIH0KIAogdm9pZCBXZWJTV0NsaWVudENvbm5l
Y3Rpb246OmRpZFJlc29sdmVSZWdpc3RyYXRpb25Qcm9taXNlKGNvbnN0IFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25LZXkmIGtleSkKQEAgLTIwMCw3ICsyMDAsNyBAQCB2b2lkIFdlYlNXQ2xpZW50
Q29ubmVjdGlvbjo6cmVnaXN0cmF0aW9uUmVhZHkodWludDY0X3QgY2FsbGJhY2tJRCwgU2Vydmlj
ZVdvcmtlcgogICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlZ2lzdHJhdGlvbkRhdGEpKTsKIH0K
IAotdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OnNldERvY3VtZW50SXNDb250cm9sbGVkKERv
Y3VtZW50SWRlbnRpZmllciBkb2N1bWVudElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25EYXRhJiYgZGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKK3ZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpzZXREb2N1bWVudElzQ29u
dHJvbGxlZChTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBkb2N1bWVudElkZW50aWZp
ZXIsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJiYgZGF0YSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRvKiBkb2N1bWVu
dExvYWRlciA9IERvY3VtZW50TG9hZGVyOjpmcm9tVGVtcG9yYXJ5RG9jdW1lbnRJZGVudGlmaWVy
KGRvY3VtZW50SWRlbnRpZmllcik7CiAgICAgYm9vbCByZXN1bHQgPSBkb2N1bWVudExvYWRlciA/
IGRvY3VtZW50TG9hZGVyLT5zZXRDb250cm9sbGluZ1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24o
V1RGTW92ZShkYXRhKSkgOiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKaW5kZXggMmFjZWRiODRhYzM1
OGE3NDY1ZWIxMGIyNmFjNzg2ZDI1ODM5MDE5OS4uNDU4NjgxZjliMGFlYWFhMzlhYmVkNDY3OTky
OWE0MjAyNTkwOGU0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTc0LDggKzc0LDggQEAgcHJpdmF0
ZToKICAgICB2b2lkIGZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoY29uc3QgV2ViQ29yZTo6
U2VydmljZVdvcmtlckZldGNoUmVzdWx0JikgZmluYWw7CiAgICAgdm9pZCBwb3N0TWVzc2FnZVRv
U2VydmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlv
bklkZW50aWZpZXIsIFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYsIGNvbnN0IFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXImIHNvdXJjZSkgZmluYWw7CiAg
ICAgdm9pZCByZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW4mIHRvcE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudERh
dGEmLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JZGVudGlmaWVyPiYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50KSBmaW5hbDsKLSAgICB2b2lk
IHVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmll
cikgZmluYWw7Ci0gICAgdm9pZCBzY2hlZHVsZVVucmVnaXN0ZXJKb2JJblNlcnZlcihXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6RG9jdW1lbnRP
cldvcmtlcklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RXhjZXB0
aW9uT3I8Ym9vbD4mJik+JiYpIGZpbmFsOworICAgIHZvaWQgdW5yZWdpc3RlclNlcnZpY2VXb3Jr
ZXJDbGllbnQoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpIGZpbmFs
OworICAgIHZvaWQgc2NoZWR1bGVVbnJlZ2lzdGVySm9iSW5TZXJ2ZXIoV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJPckNs
aWVudElkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RXhjZXB0aW9u
T3I8Ym9vbD4mJik+JiYpIGZpbmFsOwogCiAgICAgdm9pZCBtYXRjaFJlZ2lzdHJhdGlvbihXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJM
LCBSZWdpc3RyYXRpb25DYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGRpZE1hdGNoUmVnaXN0
cmF0aW9uKHVpbnQ2NF90IG1hdGNoUmVxdWVzdElkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE+JiYpOwpAQCAtODMsNyArODMsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgd2hlblJlZ2lzdHJhdGlvblJlYWR5KGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25zdCBVUkwmIGNsaWVudFVSTCwgV2hl
blJlZ2lzdHJhdGlvblJlYWR5Q2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCByZWdpc3RyYXRp
b25SZWFkeSh1aW50NjRfdCBjYWxsYmFja0lELCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uRGF0YSYmKTsKIAotICAgIHZvaWQgc2V0RG9jdW1lbnRJc0NvbnRyb2xsZWQoV2ViQ29y
ZTo6RG9jdW1lbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
RGF0YSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIHNldERv
Y3VtZW50SXNDb250cm9sbGVkKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKIAogICAgIHZvaWQgZ2V0UmVnaXN0cmF0aW9ucyhXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJM
LCBHZXRSZWdpc3RyYXRpb25zQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCB3aGVuU2Vydmlj
ZVdvcmtlcklzVGVybWluYXRlZEZvclRlc3RpbmcoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50
aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENv
bm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggZDIyZDZmZDY4YTI3ZmEzY2E4ZDE3NDVmMDY2ZjJk
MjcwZDFiZmZmOS4uMmYxNDZmNmMwMDI4N2NhNjhjYzE4M2ViMjYxNWVjM2JiMzZiYThlNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMzIsMTcgKzMyLDE3IEBAIG1l
c3NhZ2VzIC0+IFdlYlNXQ2xpZW50Q29ubmVjdGlvbiB7CiAgICAgRmlyZVVwZGF0ZUZvdW5kRXZl
bnQoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmll
cikKICAgICBTZXRSZWdpc3RyYXRpb25MYXN0VXBkYXRlVGltZShXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyLCBXYWxsVGltZSBsYXN0VXBkYXRl
VGltZSkKICAgICBTZXRSZWdpc3RyYXRpb25VcGRhdGVWaWFDYWNoZShXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyLCBlbnVtOnVpbnQ4X3QgV2Vi
Q29yZTo6U2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlIHVwZGF0ZVZpYUNhY2hlKTsKLSAgICBO
b3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKEhhc2hTZXQ8V2ViQ29yZTo6RG9jdW1lbnRJ
ZGVudGlmaWVyPiBjb250ZXh0SWRlbnRpZmllcnMsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyRGF0YSBuZXdDb250cm9sbGVyKQorICAgIE5vdGlmeUNsaWVudHNPZkNvbnRyb2xsZXJDaGFu
Z2UoSGFzaFNldDxXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gY29u
dGV4dElkZW50aWZpZXJzLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckRhdGEgbmV3Q29u
dHJvbGxlcikKIAogICAgIFNldFNXT3JpZ2luVGFibGVJc0ltcG9ydGVkKCkKICAgICBTZXRTV09y
aWdpblRhYmxlU2hhcmVkTWVtb3J5KFdlYktpdDo6U2hhcmVkTWVtb3J5OjpJUENIYW5kbGUgaGFu
ZGxlKQotICAgIFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OkRvY3Vt
ZW50SWRlbnRpZmllciBkZXN0aW5hdGlvbkNvbnRleHRJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29y
ZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMgbWVzc2FnZSwgc3RydWN0IFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJEYXRhIHNvdXJjZSwgU3RyaW5nIHNvdXJjZU9yaWdpbikKKyAgICBQb3N0TWVzc2Fn
ZVRvU2VydmljZVdvcmtlckNsaWVudChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllciBkZXN0aW5hdGlvbkNvbnRleHRJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6TWVz
c2FnZVdpdGhNZXNzYWdlUG9ydHMgbWVzc2FnZSwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJEYXRhIHNvdXJjZSwgU3RyaW5nIHNvdXJjZU9yaWdpbikKIAogICAgIERpZE1hdGNoUmVnaXN0
cmF0aW9uKHVpbnQ2NF90IG1hdGNoUmVxdWVzdElkZW50aWZpZXIsIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE+IGRhdGEpCiAgICAgRGlkR2V0UmVn
aXN0cmF0aW9ucyh1aW50NjRfdCBtYXRjaFJlcXVlc3RJZGVudGlmaWVyLCBWZWN0b3I8V2ViQ29y
ZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE+IHJlZ2lzdHJhdGlvbnMpCiAgICAgUmVn
aXN0cmF0aW9uUmVhZHkodWludDY0X3QgcmVnaXN0cmF0aW9uUmVhZHlSZXF1ZXN0SWRlbnRpZmll
ciwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhIGRhdGEpCiAK
LSAgICBTZXREb2N1bWVudElzQ29udHJvbGxlZChXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXIg
dGVtcG9yYXJ5RG9jdW1lbnRJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbkRhdGEgZGF0YSkgLT4gKGJvb2wgaXNTdWNjZXNzKSBBc3luYworICAgIFNl
dERvY3VtZW50SXNDb250cm9sbGVkKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyIHRlbXBvcmFyeURvY3VtZW50SWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhIGRhdGEpIC0+IChib29sIGlzU3VjY2VzcykgQXN5bmMK
IH0KIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uLmNwcAppbmRleCA3MmFjNWE0ZmIzZDJlNTZiM2Y0OTYwY2M3ZjQyYzQ1ZWYz
ZTQxMTdmLi5iMDg1NjY3ZjgwODUxNjg2YjY5YTQ2YWUwN2NlZTAxZmU4YWEzZmZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCkBAIC01OSw5ICs1OSw5IEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9NZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UGFnZUNvbmZpZ3VyYXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVFbmFibGVkRmVh
dHVyZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmg+Ci0jaW5jbHVkZSA8V2ViQ29y
ZS9TZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Vy
dmljZVdvcmtlckNsaWVudFF1ZXJ5T3B0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Vydmlj
ZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyQWdlbnQu
aD4KQEAgLTEwMCw3ICsxMDAsNyBAQCBSZWY8RG9jdW1lbnRMb2FkZXI+IFNlcnZpY2VXb3JrZXJG
cmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRG9jdW1lbnRMb2FkZXIoY29uc3QgUgogICAgIHJldHVy
biBXZWJEb2N1bWVudExvYWRlcjo6Y3JlYXRlKHJlcXVlc3QsIHN1YnN0aXR1dGVEYXRhKTsKIH0K
IAotV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OldlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4mJiByZWdpc3RyYWJsZURvbWFpbiwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVy
LCBQYWdlR3JvdXBJZGVudGlmaWVyIHBhZ2VHcm91cElELCBXZWJQYWdlUHJveHlJZGVudGlmaWVy
IHdlYlBhZ2VQcm94eUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIGNvbnN0IFdlYlByZWZlcmVu
Y2VzU3RvcmUmIHN0b3JlLCBTZXJ2aWNlV29ya2VySW5pdGlhbGl6YXRpb25EYXRhJiYgaW5pdGlh
bGl6YXRpb25EYXRhKQorV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OldlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbiwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4mJiByZWdpc3RyYWJsZURvbWFpbiwgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtl
clBhZ2VJZGVudGlmaWVyLCBQYWdlR3JvdXBJZGVudGlmaWVyIHBhZ2VHcm91cElELCBXZWJQYWdl
UHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIGNv
bnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlLCBTZXJ2aWNlV29ya2VySW5pdGlhbGl6YXRp
b25EYXRhJiYgaW5pdGlhbGl6YXRpb25EYXRhKQogICAgIDogbV9jb25uZWN0aW9uVG9OZXR3b3Jr
UHJvY2VzcyhXVEZNb3ZlKGNvbm5lY3Rpb24pKQogICAgICwgbV9yZWdpc3RyYWJsZURvbWFpbihX
VEZNb3ZlKHJlZ2lzdHJhYmxlRG9tYWluKSkKICAgICAsIG1fc2VydmljZVdvcmtlclBhZ2VJZGVu
dGlmaWVyKHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcikKQEAgLTI1MSw5ICsyNTEsNyBAQCB2
b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpzdGFydEZldGNoKFNXU2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIgc2VydgogICAgIH0KIAogICAgIGF1dG8gY2xpZW50ID0gV2ViU2Vy
dmljZVdvcmtlckZldGNoVGFza0NsaWVudDo6Y3JlYXRlKG1fY29ubmVjdGlvblRvTmV0d29ya1By
b2Nlc3MuY29weVJlZigpLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllciwgcmVxdWVzdC5yZXF1ZXN0ZXIoKSA9PSBSZXNv
dXJjZVJlcXVlc3Q6OlJlcXVlc3Rlcjo6TWFpbik7Ci0gICAgc3RkOjpvcHRpb25hbDxTZXJ2aWNl
V29ya2VyQ2xpZW50SWRlbnRpZmllcj4gY2xpZW50SWQ7Ci0gICAgaWYgKG9wdGlvbnMuY2xpZW50
SWRlbnRpZmllcikKLSAgICAgICAgY2xpZW50SWQgPSBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRp
ZmllciB7IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBvcHRpb25zLmNsaWVudElkZW50aWZp
ZXIudmFsdWUoKSB9OworICAgIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXI+IGNsaWVudElkID0gb3B0aW9ucy5jbGllbnRJZGVudGlmaWVyOwogCiAgICAgcmVx
dWVzdC5zZXRIVFRQQm9keShmb3JtRGF0YS50YWtlRGF0YSgpKTsKICAgICBzZXJ2aWNlV29ya2Vy
VGhyZWFkUHJveHktPnN0YXJ0RmV0Y2goc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGZldGNo
SWRlbnRpZmllciwgV1RGTW92ZShjbGllbnQpLCBXVEZNb3ZlKGNsaWVudElkKSwgV1RGTW92ZShy
ZXF1ZXN0KSwgV1RGTW92ZShyZWZlcnJlciksIFdURk1vdmUob3B0aW9ucykpOwpAQCAtMjk0LDcg
KzI5Miw3IEBAIHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OmRpZFNhdmVTY3Jp
cHRzVG9EaXNrKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGll
bnQoY29uc3QgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXImIGRlc3RpbmF0aW9uSWRlbnRp
ZmllciwgY29uc3QgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmIG1lc3NhZ2UsIFNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2lu
KQordm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZp
Y2VXb3JrZXJDbGllbnQoY29uc3QgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXImIGRl
c3RpbmF0aW9uSWRlbnRpZmllciwgY29uc3QgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmIG1lc3Nh
Z2UsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgc291cmNlT3JpZ2luKQogewogICAgIG1fY29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MtPnNl
bmQoTWVzc2FnZXM6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6UG9zdE1lc3NhZ2VU
b1NlcnZpY2VXb3JrZXJDbGllbnQoZGVzdGluYXRpb25JZGVudGlmaWVyLCBtZXNzYWdlLCBzb3Vy
Y2VJZGVudGlmaWVyLCBzb3VyY2VPcmlnaW4pLCAwKTsKIH0KQEAgLTMyOSw3ICszMjcsNyBAQCB2
b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjp3b3JrZXJUZXJtaW5hdGVkKFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIHNlcgogICAgIG1fY29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3Mt
PnNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6V29ya2VyVGVy
bWluYXRlZChzZXJ2aWNlV29ya2VySWRlbnRpZmllciksIDApOwogfQogCi12b2lkIFdlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uOjpmaW5kQ2xpZW50QnlJZGVudGlmaWVyKFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTZXJ2aWNlV29y
a2VyQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBGaW5kQ2xpZW50QnlJZGVudGlm
aWVyQ2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b246OmZpbmRDbGllbnRCeUlkZW50aWZpZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZp
ZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyIGNsaWVudElkZW50aWZpZXIsIEZpbmRDbGllbnRCeUlkZW50aWZpZXJDYWxsYmFjayYmIGNh
bGxiYWNrKQogewogICAgIGF1dG8gcmVxdWVzdElkZW50aWZpZXIgPSArK21fcHJldmlvdXNSZXF1
ZXN0SWRlbnRpZmllcjsKICAgICBtX2ZpbmRDbGllbnRCeUlkZW50aWZpZXJSZXF1ZXN0cy5hZGQo
cmVxdWVzdElkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5oCmluZGV4IDlkOGIyN2UwYzViYzYwM2I2MzY0NzhlNTNhNjYwZWM0MmNjMmI1
YTMuLjBiNDdlNjZhOTEyNzk4YTI3NzUzMDk3ZjNmMGU2OTQ3YTBjM2MyMWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24uaApAQCAtNjIsNyArNjIsNyBAQCBjbGFzcyBXZWJVc2VyQ29u
dGVudENvbnRyb2xsZXI7CiAKIGNsYXNzIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uIGZp
bmFsIDogcHVibGljIFdlYkNvcmU6OlNXQ29udGV4dE1hbmFnZXI6OkNvbm5lY3Rpb24sIHB1Ymxp
YyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6Ci0gICAgV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24oUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4mJiwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRp
Zmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyLCBQYWdlR3JvdXBJZGVudGlmaWVyLCBX
ZWJQYWdlUHJveHlJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgY29uc3QgV2Vi
UHJlZmVyZW5jZXNTdG9yZSYsIFNlcnZpY2VXb3JrZXJJbml0aWFsaXphdGlvbkRhdGEmJik7Cisg
ICAgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24oUmVmPElQQzo6Q29ubmVjdGlvbj4mJiwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTY3Jp
cHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVy
LCBQYWdlR3JvdXBJZGVudGlmaWVyLCBXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciwgY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYsIFNlcnZpY2VXb3JrZXJJ
bml0aWFsaXphdGlvbkRhdGEmJik7CiAgICAgfldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
KCk7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
RGVjb2RlciYpIGZpbmFsOwpAQCAtNzIsMTIgKzcyLDEyIEBAIHByaXZhdGU6CiAKICAgICAvLyBX
ZWJDb3JlOjpTV0NvbnRleHRNYW5hZ2VyOjpDb25uZWN0aW9uLgogICAgIHZvaWQgZXN0YWJsaXNo
Q29ubmVjdGlvbihDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwotICAgIHZvaWQg
cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgV2ViQ29yZTo6U2VydmljZVdv
cmtlckNsaWVudElkZW50aWZpZXImIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29y
ZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbikgZmluYWw7
CisgICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChjb25zdCBXZWJDb3Jl
OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciYgZGVzdGluYXRpb25JZGVudGlmaWVy
LCBjb25zdCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYsIFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNl
T3JpZ2luKSBmaW5hbDsKICAgICB2b2lkIGRpZEZpbmlzaEluc3RhbGwoc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+LCBXZWJDb3JlOjpTZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgYm9vbCB3YXNTdWNjZXNzZnVsKSBmaW5hbDsKICAgICB2b2lkIGRp
ZEZpbmlzaEFjdGl2YXRpb24oV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpIGZpbmFs
OwogICAgIHZvaWQgc2V0U2VydmljZVdvcmtlckhhc1BlbmRpbmdFdmVudHMoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlcklkZW50aWZpZXIsIGJvb2wpIGZpbmFsOwogICAgIHZvaWQgd29ya2VyVGVybWlu
YXRlZChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgZmluYWw7Ci0gICAgdm9pZCBm
aW5kQ2xpZW50QnlJZGVudGlmaWVyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciwgRmluZENsaWVudEJ5SWRlbnRp
ZmllckNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgZmluZENsaWVudEJ5SWRlbnRpZmllcihX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIsIEZpbmRDbGllbnRCeUlkZW50aWZpZXJDYWxsYmFjayYmKSBmaW5h
bDsKICAgICB2b2lkIG1hdGNoQWxsKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBj
b25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50UXVlcnlPcHRpb25zJiwgV2ViQ29yZTo6
U2VydmljZVdvcmtlckNsaWVudHNNYXRjaEFsbENhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQg
Y2xhaW0oV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV2ViQ29yZTo6RXhjZXB0aW9uT3I8dm9pZD4mJik+JiYpIGZpbmFsOwogICAgIHZvaWQg
c2tpcFdhaXRpbmcoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CkBAIC0xMDksNyArMTA5LDcgQEAgcHJpdmF0ZToKIAog
ICAgIFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3M7CiAg
ICAgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gbV9yZWdpc3RyYWJsZURvbWFpbjsKLSAgICBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiBtX3Nl
cnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcjsKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBtX3NlcnZpY2VXb3JrZXJQYWdlSWRlbnRp
ZmllcjsKICAgICBQYWdlR3JvdXBJZGVudGlmaWVyIG1fcGFnZUdyb3VwSUQ7CiAgICAgV2ViUGFn
ZVByb3h5SWRlbnRpZmllciBtX3dlYlBhZ2VQcm94eUlEOwogICAgIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyIG1fcGFnZUlEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmlu
ZGV4IDVmMGY2M2UwZmFhMTdmYjg4MGY1OGU2YWJhNWE5NjJhMTU1NDM5MTMuLmI5Y2QzOWE3NWI2
OWYwY2U0ZGVkMzdiZDI2NTIzMWNjNWZlZTU3NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAKQEAgLTE5MjgsNyArMTkyOCw3IEBAIExpYldlYlJUQ05ldHdvcmsmIFdl
YlByb2Nlc3M6OmxpYldlYlJUQ05ldHdvcmsoKQogfQogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09S
S0VSKQotdm9pZCBXZWJQcm9jZXNzOjplc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRv
TmV0d29ya1Byb2Nlc3MoUGFnZUdyb3VwSWRlbnRpZmllciBwYWdlR3JvdXBJRCwgV2ViUGFnZVBy
b3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBjb25z
dCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSwgUmVnaXN0cmFibGVEb21haW4mJiByZWdpc3Ry
YWJsZURvbWFpbiwgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4g
c2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySW5pdGlhbGl6YXRpb25E
YXRhJiYgaW5pdGlhbGl6YXRpb25EYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlByb2Nlc3M6OmVzdGFibGlzaFdvcmtlckNvbnRleHRD
b25uZWN0aW9uVG9OZXR3b3JrUHJvY2VzcyhQYWdlR3JvdXBJZGVudGlmaWVyIHBhZ2VHcm91cElE
LCBXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBQYWdlSWRlbnRpZmllciBw
YWdlSUQsIGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlLCBSZWdpc3RyYWJsZURvbWFp
biYmIHJlZ2lzdHJhYmxlRG9tYWluLCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJ
bml0aWFsaXphdGlvbkRhdGEmJiBpbml0aWFsaXphdGlvbkRhdGEsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICAvLyBXZSBhcmUgaW4gdGhlIFNl
cnZpY2UgV29ya2VyIGNvbnRleHQgcHJvY2VzcyBhbmQgdGhlIGNhbGwgYmVsb3cgZXN0YWJsaXNo
ZXMgb3VyIGNvbm5lY3Rpb24gdG8gdGhlIE5ldHdvcmsgUHJvY2VzcwogICAgIC8vIGJ5IGNhbGxp
bmcgZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLiBTV0NvbnRleHRNYW5hZ2VyIG5lZWRz
IHRvIHVzZSB0aGUgc2FtZSB1bmRlcmx5aW5nIElQQzo6Q29ubmVjdGlvbiBhcyB0aGUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IGY2Yzg2NDMyODM3YTFlMmZiMjkzN2Qz
MTliNjM1NDAyMTJhODA3ZDQuLjlhZGUzYzAwNWFmMmUyMjcxYWZjYWJmZmQ2ODE1MjM2NzZlZmI3
MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtNDc2LDcgKzQ3Niw3
IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAgICB2
b2lkIGVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0aW9uVG9OZXR3b3JrUHJvY2VzcyhQYWdl
R3JvdXBJZGVudGlmaWVyLCBXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciwgY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYsIFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluJiYsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50
aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciwgU2VydmljZVdvcmtlckluaXRpYWxp
emF0aW9uRGF0YSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgZXN0
YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKFBhZ2VHcm91cElk
ZW50aWZpZXIsIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
LCBjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4m
Jiwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
cj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySW5pdGlhbGl6YXRp
b25EYXRhJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAjZW5kaWYKIAogICAgIHZv
aWQgZmV0Y2hXZWJzaXRlRGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChXZWJzaXRlRGF0YSYmKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IGIzZWZlNTUzYWE1YWM3YzVhOGY5
NzkyZDRhZGI4NGE4NzE4MThkODQuLjc0OTNjM2Y4ZjQ2NTFkZGZiZDUwNDExZTdlMjA1NjZhZDkw
ZDkyZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3Nh
Z2VzLmluCkBAIC0xMDEsNyArMTAxLDcgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lS
ZWNlaXZlciBOb3RSZWZDb3VudGVkIHsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09S
S0VSKQotICAgIEVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vz
cyhXZWJLaXQ6OlBhZ2VHcm91cElkZW50aWZpZXIgcGFnZUdyb3VwSUQsIFdlYktpdDo6V2ViUGFn
ZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIg
cGFnZUlELCBzdHJ1Y3QgV2ViS2l0OjpXZWJQcmVmZXJlbmNlc1N0b3JlIHN0b3JlLCBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiBkb21haW4sIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2Vydmlj
ZVdvcmtlckNsaWVudElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciwgc3Ry
dWN0IFdlYktpdDo6U2VydmljZVdvcmtlckluaXRpYWxpemF0aW9uRGF0YSBpbml0aWFsaXphdGlv
bkRhdGEpIC0+ICgpIEFzeW5jCisgICAgRXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25U
b05ldHdvcmtQcm9jZXNzKFdlYktpdDo6UGFnZUdyb3VwSWRlbnRpZmllciBwYWdlR3JvdXBJRCwg
V2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBXZWJDb3JlOjpQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIHN0cnVjdCBXZWJLaXQ6OldlYlByZWZlcmVuY2VzU3RvcmUg
c3RvcmUsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbiwgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBh
Z2VJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViS2l0OjpTZXJ2aWNlV29ya2VySW5pdGlhbGl6YXRpb25E
YXRhIGluaXRpYWxpemF0aW9uRGF0YSkgLT4gKCkgQXN5bmMKICNlbmRpZgogCiAgICAgU2V0SGFz
U3VzcGVuZGVkUGFnZVByb3h5KGJvb2wgaGFzU3VzcGVuZGVkUGFnZVByb3h5KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444678</attachid>
            <date>2021-11-18 08:23:00 -0800</date>
            <delta_ts>2021-11-18 09:07:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233288-20211118082259.patch</filename>
            <type>text/plain</type>
            <size>210103</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDhjYjcxOWU0ODdhYmVh
ZGZjODE5NTc0MTBkYTAyMTA1Y2Q3ZTU4MS4uOGQzZTM3OGIzYjNjM2Y3ZWRjNDA5MzA3OGJhNmNl
MmEwYmJjZjI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2MSBAQAorMjAyMS0xMS0xNyAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3AgU2VydmljZVdvcmtl
ckNsaWVudElkZW50aWZpZXIgLyBEb2N1bWVudElkZW50aWZpZXIgYW5kIHVzZSBTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllciBpbnN0ZWFkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMyODgKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJp
biBBZGxlci4KKworICAgICAgICBEcm9wIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIC8g
RG9jdW1lbnRJZGVudGlmaWVyIGFuZCB1c2UgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIgaW5zdGVhZC4KKworICAgICAgICBXZSBuZWVkIHRvIGdlbmVyaWMgaWRlbnRpZmllciB0eXBl
IHRvIGlkZW50aWZ5IHNjcmlwdCBleGVjdXRpb24gY29udGV4dHMgZ2xvYmFsbHkuIFRoaXMgcGF0
Y2ggYXVnbWVudHMKKyAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgd2l0
aCBhIHByb2Nlc3MgaWRlbnRpZmllciB0byBtYWtlIGl0IGFwcC1nbG9iYWwsIGFuZCB0aGVuIGdl
dHMgcmlkIG9mCisgICAgICAgIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyICYgRG9jdW1l
bnRJZGVudGlmaWVyICh3aGljaCBiZWNvbWUgb2Jzb2xldGUpLgorCisgICAgICAgIFRoaXMgaXMg
dXNlZnVsIGZvciBXZWIgTG9jayBBUEkgc3VwcG9ydCBhcyB3ZSBuZWVkIGEgY2xpZW50SWQgdGhh
dCBpcyBjb25zaXN0ZW50IGJldHdlZW4gdGhlIFdlYiBMb2NrCisgICAgICAgIEFQSSBhbmQgdGhl
IHNlcnZpY2Ugd29ya2VyIEFQSSAodGVzdGVkIGJ5IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2ViLWxvY2tzLy9jbGllbnRpZHMudGVudGF0aXZlLmh0dHBzLmh0bWwpLgorICAgICAg
ICBUaGUgY2xpZW50SWQgaW4gc2VydmljZSB3b3JrZXJzIHdhcyB1c2luZyB0aGUgU2VydmljZVdv
cmtlckNsaWVudElkZW50aWZpZXIgdHlwZSwgd2hpY2ggbWFkZSBsaXR0bGUKKyAgICAgICAgc2Vu
c2UgdG8gdXNlIGZvciB0aGUgV2ViIExvY2sgQVBJIGdpdmVuIGl0cyBuYW1lLgorCisgICAgICAg
ICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjphZGRUb0RvY3VtZW50c01hcCk6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVtb3ZlRnJvbURvY3VtZW50c01hcCk6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6c2V0U2VydmljZVdvcmtlckNvbm5lY3Rpb24pOgorICAgICAg
ICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmlkZW50aWZp
ZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9FbGVtZW50Q29udGV4dC5oOgorICAg
ICAgICAoV2ViQ29yZTo6RWxlbWVudENvbnRleHQ6OmRlY29kZSk6CisgICAgICAgICogZG9tL1Nj
cmlwdEVsZW1lbnQuaDoKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpTY3JpcHRFeGVjdXRp
b25Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnJl
bW92ZUZyb21Db250ZXh0c01hcCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0Ojp+U2NyaXB0RXhlY3V0aW9uQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpTY3Jp
cHRFeGVjdXRpb25Db250ZXh0Ojpjb250ZXh0SWRlbnRpZmllciBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmNvbnRleHRJZGVudGlmaWVyIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmlkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudExvYWRlcjo6ZnJvbVRlbXBvcmFyeURvY3VtZW50SWRlbnRpZmllcik6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6bG9hZE1haW5SZXNvdXJjZSk6CisgICAgICAgICog
bG9hZGVyL0RvY3VtZW50TG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL0ZldGNoT3B0aW9ucy5o
OgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpkZWNvZGUpOgorICAgICAgICAqIGxvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6cHJlcGFyZUZldGNoKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVx
dWVzdDo6c2V0Q2xpZW50SWRlbnRpZmllcklmTmVlZGVkKToKKyAgICAgICAgKiBsb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Lmg6CisgICAgICAgICogcGFnZS9tYWMvUGFnZU1hYy5t
bToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAgICAg
ICogcGxhdGZvcm0vRG9jdW1lbnRJZGVudGlmaWVyLmg6IFJlbW92ZWQuCisgICAgICAgICgpOiBE
ZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL1Byb2Nlc3NRdWFsaWZpZWQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlByb2Nlc3NRdWFsaWZpZWQ6OmdlbmVyYXRlVGhyZWFkU2FmZSk6CisgICAgICAg
IChXZWJDb3JlOjpQcm9jZXNzUXVhbGlmaWVkOjpnZW5lcmF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQcm9jZXNzUXVhbGlmaWVkOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQ
cm9jZXNzUXVhbGlmaWVkPFQ+OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJv
Y2Vzc1F1YWxpZmllZDxUPjo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllci5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaWJX
ZWJSVENQcm92aWRlcjo6Y3JlYXRlUGVlckNvbm5lY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oOgorICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6ZG9jdW1l
bnRJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6aXNEb2N1
bWVudEFsaXZlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6c2VydmljZVdv
cmtlckNsaWVudElkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9T
V0NsaWVudENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZGlzcGF0Y2hUb0NvbnRl
eHRUaHJlYWRJZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJDb3JlOjpTV0NsaWVudENvbm5lY3Rp
b246OnNjaGVkdWxlSm9iKToKKyAgICAgICAgKFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlvbjo6
cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1dD
bGllbnRDb25uZWN0aW9uOjpub3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlvbjo6cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xp
ZW50cyk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oOgor
ICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXI6OnBvc3RNZXNzYWdlKToKKyAgICAgICAgKiB3b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlckNsaWVudC5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyQ2xpZW50RGF0YTo6ZnJvbSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJDbGllbnREYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50
RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNs
aWVudElkZW50aWZpZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdv
cmtlckNsaWVudElkZW50aWZpZXI6OmZyb21TdHJpbmcpOiBEZWxldGVkLgorICAgICAgICAqIHdv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllci5oOiBSZW1vdmVkLgor
ICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI6OnRvU3RyaW5n
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPT0pOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI6OmVuY29k
ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50
SWRlbnRpZmllcjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJDbGllbnRJZGVudGlmaWVyOjpoYXNoIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVySGFzaDo6aGFzaCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllckhhc2g6OmVx
dWFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyQ2xpZW50SWRlbnRpZmllcj46OmVtcHR5VmFsdWUpOiBEZWxldGVkLgorICAgICAgICAo
V1RGOjpIYXNoVHJhaXRzPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPjo6
Y29uc3RydWN0RGVsZXRlZFZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6SGFzaFRyYWl0
czxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj46OmlzRGVsZXRlZFZhbHVl
KTogRGVsZXRlZC4KKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVu
dHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXJGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRzOjpn
ZXQpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50cy5oOgor
ICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OmNvbnRleHRJZGVudGlmaWVy
KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oOgor
ICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGV4dERhdGEuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6ZGVjb2RlKToKKyAgICAg
ICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTo6c2VydmljZVdvcmtlclBhZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjpzZXJ2aWNlV29y
a2VyQ2xpZW50KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2I6OmNvbnRleHRJZGVudGlmaWVyKToK
KyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYkNsaWVudC5oOgorICAg
ICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iRGF0YS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpzZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhOjpTZXJ2aWNlV29ya2VySm9iRGF0YSk6CisgICAg
ICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YTo6c2VydmljZVdvcmtlclBhZ2VJZGVu
dGlmaWVyIGNvbnN0KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpv
YkRhdGEuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclR5cGVzLmg6
CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVjdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTV0NsaWVudENvbm5lY3Rpb246OnVucmVnaXN0ZXJT
ZXJ2aWNlV29ya2VyQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNXQ2xpZW50Q29u
bmVjdGlvbjo6c2NoZWR1bGVKb2IpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU1dDbGllbnRD
b25uZWN0aW9uOjpzY2hlZHVsZVVucmVnaXN0ZXJKb2JJblNlcnZlcik6CisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVjdGlvbi5oOgorICAgICAgICAqIHdvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuY3BwOgorICAgICAgICAqIHdvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaDoKKyAgICAgICAgKiB3b3JrZXJz
L3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2VydmljZVdvcmtlckZldGNoOjpkaXNwYXRjaEZldGNoRXZlbnQpOgorICAgICAgICAqIHdv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5oOgorICAgICAgICAqIHdv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZDo6cXVldWVUYXNrVG9GaXJlRmV0Y2hFdmVudCk6
CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5o
OgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQ
cm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnN0
YXJ0RmV0Y2gpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3Jr
ZXJUaHJlYWRQcm94eS5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnNlcnZpY2VXb3JrZXJDbGllbnRX
aXRoT3JpZ2luQnlJRCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6c2NoZWR1
bGVVbnJlZ2lzdGVySm9iKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjp1cGRhdGVXb3Jr
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnJlZ2lzdGVyU2VydmljZVdvcmtlckNs
aWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6dW5yZWdpc3RlclNlcnZpY2VXb3Jr
ZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OmNyZWF0ZUNvbnRleHRDb25u
ZWN0aW9uKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmg6Cisg
ICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclJlZ2lzdHJhdGlvbjo6U1dTZXJ2ZXJSZWdpc3Ry
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJSZWdpc3RyYXRpb246OmFkZENsaWVu
dFVzaW5nUmVnaXN0cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyUmVnaXN0cmF0
aW9uOjpyZW1vdmVDbGllbnRVc2luZ1JlZ2lzdHJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpT
V1NlcnZlclJlZ2lzdHJhdGlvbjo6Y29udHJvbENsaWVudCk6CisgICAgICAgICogd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6
U1dTZXJ2ZXJSZWdpc3RyYXRpb246OnNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciBjb25zdCk6
CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
OjpTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpmaW5kQ2xpZW50QnlJZGVudGlmaWVyKToKKyAgICAgICAg
KiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oOgor
ICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpzZXJ2aWNlV29y
a2VyUGFnZUlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJXb3JrZXI6
OmZpbmRDbGllbnRCeUlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2
ZXJXb3JrZXI6OnNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICog
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oOgorCiAyMDIxLTExLTE4ICBB
bGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIFNob3Vs
ZCBub3QgYWx3YXlzIGtlZXAgdGhlIGVudGlyZSBjb250aW51b3VzIGNvbnRlbnQgd2hlbiB0aGUg
bGluZSBpcyBlbXB0eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBjMWU4MWQwNjhiMjg4Yzc0YjNkNGU2NTUxZmQzY2Rj
MDIzZWVmOGYzLi5jOTgzZTMxZDIzNmQzNzdmMDU4ZWQ0OTg5MjkzYzdiYzVhZWUxOGIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDk3IEBACisyMDIxLTExLTE3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciAv
IERvY3VtZW50SWRlbnRpZmllciBhbmQgdXNlIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyIGluc3RlYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMzI4OAorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAg
IERyb3AgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgLyBEb2N1bWVudElkZW50aWZpZXIg
YW5kIHVzZSBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBpbnN0ZWFkLgorCisgICAg
ICAgIFdlIG5lZWQgdG8gZ2VuZXJpYyBpZGVudGlmaWVyIHR5cGUgdG8gaWRlbnRpZnkgc2NyaXB0
IGV4ZWN1dGlvbiBjb250ZXh0cyBnbG9iYWxseS4gVGhpcyBwYXRjaCBhdWdtZW50cworICAgICAg
ICBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciB3aXRoIGEgcHJvY2VzcyBpZGVudGlm
aWVyIHRvIG1ha2UgaXQgYXBwLWdsb2JhbCwgYW5kIHRoZW4gZ2V0cyByaWQgb2YKKyAgICAgICAg
U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgJiBEb2N1bWVudElkZW50aWZpZXIgKHdoaWNo
IGJlY29tZSBvYnNvbGV0ZSkuCisKKyAgICAgICAgVGhpcyBpcyB1c2VmdWwgZm9yIFdlYiBMb2Nr
IEFQSSBzdXBwb3J0IGFzIHdlIG5lZWQgYSBjbGllbnRJZCB0aGF0IGlzIGNvbnNpc3RlbnQgYmV0
d2VlbiB0aGUgV2ViIExvY2sKKyAgICAgICAgQVBJIGFuZCB0aGUgc2VydmljZSB3b3JrZXIgQVBJ
ICh0ZXN0ZWQgYnkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWItbG9ja3MvL2Ns
aWVudGlkcy50ZW50YXRpdmUuaHR0cHMuaHRtbCkuCisgICAgICAgIFRoZSBjbGllbnRJZCBpbiBz
ZXJ2aWNlIHdvcmtlcnMgd2FzIHVzaW5nIHRoZSBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmll
ciB0eXBlLCB3aGljaCBtYWRlIGxpdHRsZQorICAgICAgICBzZW5zZSB0byB1c2UgZm9yIHRoZSBX
ZWIgTG9jayBBUEkgZ2l2ZW4gaXRzIG5hbWUuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjplc3RhYmxpc2hTV0NvbnRleHRDb25uZWN0aW9uKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnN3U2VydmVyRm9yU2Vzc2lvbik6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlv
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6bm90aWZ5Q2xp
ZW50c09mQ29udHJvbGxlckNoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29u
bmVjdGlvbjo6Y29udHJvbENsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29u
bmVjdGlvbjo6Y3JlYXRlRmV0Y2hUYXNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJD
b25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcik6CisgICAgICAgIChXZWJLaXQ6
OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6Y2xpZW50VVJMRnJvbUlkZW50aWZpZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OnNjaGVkdWxlVW5yZWdpc3RlckpvYklu
U2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpwb3N0TWVz
c2FnZVRvU2VydmljZVdvcmtlckNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVy
Q29ubmVjdGlvbjo6dW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24u
bWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJT
V1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb246OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbik6
CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6cG9zdE1l
c3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmg6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b24ubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtN
RE5TUmVnaXN0ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTUROU1JlZ2lzdGVyOjp1
bnJlZ2lzdGVyTUROU05hbWVzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya01ETlNSZWdpc3Rl
cjo6cmVnaXN0ZXJNRE5TTmFtZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05l
dHdvcmtNRE5TUmVnaXN0ZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0
d29ya01ETlNSZWdpc3Rlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weToKKyAgICAgICAgKHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFy
ZWQpOgorICAgICAgICAoaGVhZGVyc19mb3JfdHlwZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8U2Vydmlj
ZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllcj46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8U2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllcj46OmRlY29kZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0NvY29hL1N5c3RlbVByZXZpZXdDb250cm9sbGVyQ29jb2EubW06Cisg
ICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmVzdGFibGlzaFdvcmtlckNvbnRleHRD
b25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmVzdGFibGlzaFdv
cmtlckNvbnRleHRDb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZXN0YWJsaXNoU2Vydmlj
ZVdvcmtlckNvbnRleHQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGU6OmxpdmVEb2N1bWVudFVSTHMpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29ya01hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENOZXR3b3JrTWFuYWdlcjo6Z2V0T3JDcmVh
dGUpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENOZXR3b3JrTWFuYWdlcjo6TGliV2ViUlRD
TmV0d29ya01hbmFnZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGli
V2ViUlRDTmV0d29ya01hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDUHJv
dmlkZXI6OmNyZWF0ZVBlZXJDb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdv
cmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9XZWJNRE5TUmVnaXN0ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNRE5T
UmVnaXN0ZXI6OnVucmVnaXN0ZXJNRE5TTmFtZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJNRE5T
UmVnaXN0ZXI6OnJlZ2lzdGVyTUROU05hbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29y
ay93ZWJydGMvV2ViTUROU1JlZ2lzdGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ2xpZW50
Q29ubmVjdGlvbjo6c2NoZWR1bGVVbnJlZ2lzdGVySm9iSW5TZXJ2ZXIpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTV0NsaWVudENvbm5lY3Rpb246OnVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50
KToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpzZXREb2N1bWVudElz
Q29udHJvbGxlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29u
bmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5l
Y3Rpb24ubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb246OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnN0YXJ0RmV0Y2gpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6cG9zdE1lc3Nh
Z2VUb1NlcnZpY2VXb3JrZXJDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbjo6ZmluZENsaWVudEJ5SWRlbnRpZmllcik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6ZXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlByb2Nlc3MubWVzc2FnZXMuaW46CisKIDIwMjEtMTAtMjUgIENhcmxvcyBHYXJjaWEgQ2FtcG9z
ICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW2ExMXldIEFkZCBpbml0aWFs
IFdUUiBhY2Nlc3NpYmlsaXR5IHN1cHBvcnQgd2hlbiBidWlsZGluZyB3aXRoIEFUU1BJCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVh
ZGVycy5jbWFrZQppbmRleCAyYTI3ZTYwMjIwNTZiN2M5ZGQ1OTFhNzExOTRjZDMxNGMxYzY0MmM3
Li4zY2Q0YTg0MWM3YmE0YmE4MmNiN2RmMmNhMmFiNzc3MzhiOTA5Yzk3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMu
Y21ha2UKQEAgLTEwODIsNyArMTA4Miw2IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JL
X0hFQURFUlMKICAgICBwbGF0Zm9ybS9EYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzLmgKICAgICBw
bGF0Zm9ybS9EZWNpbWFsLmgKICAgICBwbGF0Zm9ybS9EZWZlcnJhYmxlVGFzay5oCi0gICAgcGxh
dGZvcm0vRG9jdW1lbnRJZGVudGlmaWVyLmgKICAgICBwbGF0Zm9ybS9EcmFnRGF0YS5oCiAgICAg
cGxhdGZvcm0vRHJhZ0ltYWdlLmgKICAgICBwbGF0Zm9ybS9EcmFnSXRlbS5oCkBAIC0xNzYxLDcg
KzE3NjAsNiBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAKICAgICB3
b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmgKICAgICB3b3JrZXJzL3NlcnZpY2Uv
U2VydmljZVdvcmtlckNsaWVudERhdGEuaAotICAgIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyQ2xpZW50SWRlbnRpZmllci5oCiAgICAgd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJD
bGllbnRRdWVyeU9wdGlvbnMuaAogICAgIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xp
ZW50VHlwZS5oCiAgICAgd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250ZXh0RGF0YS5o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlci5oCmluZGV4
IGYwOWZmYTc4OTI5Mjk1MGUwM2NiNzViMzI5ZjU1OTBmZDJlZDU0YTguLjQxZjk1MjgyMWU2MjAw
OTNmOGVlZmUzMmM1ZWQ0YWUwZjVlNTQxOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldl
YlJUQ0RhdGFDaGFubmVsSGFuZGxlci5oCkBAIC0yNywxMCArMjcsMTMgQEAKICNpZiBVU0UoTElC
V0VCUlRDKQogCiAjaW5jbHVkZSAiTGliV2ViUlRDTWFjcm9zLmgiCisjaW5jbHVkZSAiUHJvY2Vz
c1F1YWxpZmllZC5oIgogI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsSGFuZGxlci5oIgogI2luY2x1
ZGUgIlJUQ0RhdGFDaGFubmVsU3RhdGUuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNp
bmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+Cisj
aW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogQUxMT1dfVU5VU0VEX1BBUkFNRVRFUlNfQkVHSU4K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dAppbmRleCBlOTI4ZmY5NDk0NTgzYjY0ZWQ2MGY1NWE4Nzk0MzUwMTFkNzY0
MmI0Li45MWE4YzBlZmFkYTU4NWEzYmNjMmRjNzEwMWI1NTdhMGEzZjFiMTkyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dApAQCAtMjcyNSw3ICsyNzI1LDYgQEAgd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVj
dGlvbi5jcHAKIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcAogd29ya2Vycy9zZXJ2
aWNlL1NlcnZpY2VXb3JrZXJDbGllbnQuY3BwCiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckNsaWVudERhdGEuY3BwCi13b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudElkZW50
aWZpZXIuY3BwCiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudHMuY3BwCiB3b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAKIHdvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyQ29udGV4dERhdGEuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYmIyNjc3NTQxZmQyMzdiNDg4OTg4YWMz
MGQ3MjYyNzk4YTE3YzY4Ny4uNWE0YjRjZTA2ODcwOGY2NDBjNzFhMjJiNzVkZjRhNTBiY2YxZTBk
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMTE2Myw3ICsxMTYzLDYgQEAKIAkJNDE4MUM2NDgyNTVCNEMyODAwQUVCMEZGIC8q
IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MTgxQzY0MjI1NUI0QzI2MDBBRUIwRkYgLyogUlRDUnRwU0ZyYW1l
VHJhbnNmb3JtZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk0MTgxQzY0QTI1NUI0QzI4MDBBRUIwRkYgLyogUlRDUnRwU0ZyYW1lVHJhbnNmb3Jt
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTgxQzY0
NDI1NUI0QzI3MDBBRUIwRkYgLyogUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmggKi87IH07CiAJCTQx
ODIwNTQ3MUU1M0U5OEMwMEQ2MjIwNyAvKiBSVENDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTgyMDU0NTFFNTNDOENEMDBENjIyMDcg
LyogUlRDQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07Ci0JCTQxODI2QkYyMjNGQjU5NzcwMEI5MjJCMSAvKiBEb2N1bWVudElkZW50aWZp
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxODI2
QkYxMjNGQjU5NzAwMEI5MjJCMSAvKiBEb2N1bWVudElkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTg0RjUxNjFFQUYwNUE4MDBG
MThCRjAgLyogT3JpZW50YXRpb25Ob3RpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4NEY1MTUxRUFGMDU5ODAwRjE4QkYwIC8qIE9yaWVudGF0
aW9uTm90aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk0MTg2QkQzRTIxM0VFMzQwMDAwMTgyNkYgLyogTGliV2ViUlRDVXRpbHMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFEMUEwNDkyMTNF
RERGRDAwNjNGQjZCIC8qIExpYldlYlJUQ1V0aWxzLmNwcCAqLzsgfTsKIAkJNDE4NkJEM0YyMTNF
RTM0MzAwMDE4MjZGIC8qIExpYldlYlJUQ1J0cFNlbmRlckJhY2tlbmQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFEMUEwNEIyMTNFRERGRTAwNjNG
QjZCIC8qIExpYldlYlJUQ1J0cFNlbmRlckJhY2tlbmQuY3BwICovOyB9OwpAQCAtMjY0NSw3ICsy
NjQ0LDYgQEAKIAkJODM3OTY0Q0YxRjhEQjY5RDAwMjE4RUEwIC8qIEdlb2xvY2F0aW9uUG9zaXRp
b25EYXRhSU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODM3OTY0Q0UxRjhEQjY5QTAwMjE4RUEwIC8qIEdlb2xvY2F0aW9uUG9zaXRpb25EYXRhSU9T
Lm1tICovOyB9OwogCQk4MzdBODAxMzFFMUUxMjczMDAwMjZCOUYgLyogTG9jYWxpemFibGUuc3Ry
aW5nc2RpY3QgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDgzN0E4MDExMUUxRTEyNzMwMDAyNkI5RiAvKiBMb2NhbGl6YWJsZS5zdHJpbmdzZGljdCAqLzsg
fTsKIAkJODM3QzBCNzYyNERCMzg1MDAwNUQ1OTU5IC8qIER5bmFtaWNzQ29tcHJlc3Nvck9wdGlv
bnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzN0Mw
QjczMjREQjM4NDIwMDVENTk1OSAvKiBEeW5hbWljc0NvbXByZXNzb3JPcHRpb25zLmggKi87IH07
Ci0JCTgzN0Q0NjI3MUZBMkE4Q0UwMDU0RTFGQSAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRp
Zmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM3
RDQ2MjUxRkEyQThDNTAwNTRFMUZBIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODM3RkIz
NDUxRjlFQTA2RDAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzN0ZCMzQwMUY5RUEwNjYwMEQw
RkMzMSAvKiBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmggKi87IH07CiAJCTgzODg2NzM1MUQxM0JB
NUYwMDM2OTdEMCAvKiBSZW5kZXJPYmplY3RFbnVtcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM4ODY3MzQxRDEzQkE1OTAwMzY5N0QwIC8qIFJlbmRl
ck9iamVjdEVudW1zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJODM4Q0E2QkQxRkMwREZFOTAwNUQ5RkE1IC8qIFNlcnZpY2VXb3JrZXJKb2JEYXRh
SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODM4Q0E2QkIxRkMwREZERDAwNUQ5RkE1IC8qIFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRp
Zmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBA
IC04NDI0LDcgKzg0MjIsNiBAQAogCQk0MTgxQzY0NTI1NUI0QzI4MDBBRUIwRkYgLyogUlRDUnRw
U0ZyYW1lVHJhbnNmb3JtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQxODIwNTQ1MUU1M0M4Q0QwMEQ2MjIwNyAvKiBSVENDb250cm9sbGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0NvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDE4MjA1NDgxRTUzRUFBRDAwRDYyMjA3IC8qIFJUQ0NvbnRyb2xsZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUlRDQ29udHJvbGxlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxODI2QkYxMjNGQjU5NzAwMEI5MjJCMSAv
KiBEb2N1bWVudElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RG9jdW1lbnRJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxODRG
NTE1MUVBRjA1OTgwMEYxOEJGMCAvKiBPcmllbnRhdGlvbk5vdGlmaWVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9yaWVudGF0aW9uTm90aWZpZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDE4NkJEM0IyMTNFREUzODAwMDE4MjZGIC8qIExpYldlYlJUQ1J0
cFJlY2VpdmVyQmFja2VuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMaWJXZWJSVENSdHBSZWNlaXZlckJh
Y2tlbmQuaDsgcGF0aCA9IGxpYndlYnJ0Yy9MaWJXZWJSVENSdHBSZWNlaXZlckJhY2tlbmQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4NkJEM0QyMTNFREUzOTAwMDE4MjZGIC8q
IExpYldlYlJUQ1J0cFNlbmRlckJhY2tlbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTGliV2ViUlRDUnRw
U2VuZGVyQmFja2VuZC5oOyBwYXRoID0gbGlid2VicnRjL0xpYldlYlJUQ1J0cFNlbmRlckJhY2tl
bmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExNjkxLDcgKzExNjg4LDYgQEAK
IAkJODM3QjdEMUYxREMzRjU0QzAwRDA1MUZDIC8qIFZhbGlkYXRpb25CdWJibGVJT1MubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWYWxpZGF0aW9uQnViYmxlSU9T
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzdDMEI3MzI0REIzODQyMDA1RDU5
NTkgLyogRHluYW1pY3NDb21wcmVzc29yT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEeW5hbWlj
c0NvbXByZXNzb3JPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzN0Mw
Qjc1MjREQjM4NDMwMDVENTk1OSAvKiBEeW5hbWljc0NvbXByZXNzb3JPcHRpb25zLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBEeW5hbWljc0NvbXByZXNzb3JPcHRpb25zLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJODM3RDQ2MjUxRkEyQThDNTAwNTRFMUZBIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVu
dGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJD
bGllbnRJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzN0RGQjM0
MUVCRkVBNzAwMDYwMTM4NSAvKiBFbGVtZW50Q1NTSW5saW5lU3R5bGUuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IEVsZW1lbnRDU1NJbmxpbmVTdHlsZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTgzN0ZCMzQwMUY5RUEwNjYwMEQwRkMzMSAvKiBFeHRlbmRhYmxlTWVzc2Fn
ZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4dGVuZGFibGVNZXNz
YWdlRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODM3RkIzNDIxRjlFQTA2
NzAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjQyMSw3ICsxMjQxNyw2IEBACiAJCTkzRjlCNkRGMEJB
MEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNDb21tZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjlCNzlF
MEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRBU2VjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0NEQVRBU2VjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzRjlCNzlGMEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRBU2VjdGlvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NEQVRBU2VjdGlvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5M0ZDREI0OTI2NDQ1NUQ2MDA0NkREN0QgLyogU2Vy
dmljZVdvcmtlckNsaWVudElkZW50aWZpZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2Vydmlj
ZVdvcmtlckNsaWVudElkZW50aWZpZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5M0ZDREI0QjI2NDcwREQxMDA0NkREN0QgLyogU1ZHUHJvcGVydHlUcmFpdHMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU1ZHUHJvcGVydHlUcmFpdHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5M0ZEQUZDOTBCMTEzMDc0MDBFMjc0NkYgLyogRWRpdG9ySW5zZXJ0QWN0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFZGl0b3JJbnNlcnRBY3Rpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTQxODI3ODgxRDhCMjQyMjAwNDkyNzY0
IC8qIFN0eWxlQ29sb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U3R5bGVDb2xvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODk2MSwxMSAr
MTg5NTYsMTEgQEAKIAkJMUE1NjlDQzQwRDdFMkI2MDAwN0MzOTgzIC8qIGJyaWRnZSAqLyA9IHsK
IAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNTlCNTk3NzExMTA4NjU1
NjAwNzE1OUU4IC8qIGpzYyAqLywKIAkJCQkxQTU2OUNFMjBEN0UyQjgyMDA3QzM5ODMgLyogb2Jq
YyAqLywKIAkJCQk1OTlFNzU4RjExMDU1QTFGMDBEOTA0RkEgLyogQnJpZGdlLmggKi8sCiAJCQkJ
MUE3MUQ1NzkwRjMzODE5MDAwRjlDRTRFIC8qIElkZW50aWZpZXJSZXAuY3BwICovLAogCQkJCTFB
NzFENTdBMEYzMzgxOTAwMEY5Q0U0RSAvKiBJZGVudGlmaWVyUmVwLmggKi8sCi0JCQkJNTlCNTk3
NzExMTA4NjU1NjAwNzE1OUU4IC8qIGpzYyAqLywKIAkJCQkxQTU2OUNFRjBEN0UyQjgyMDA3QzM5
ODMgLyogcnVudGltZV9hcnJheS5jcHAgKi8sCiAJCQkJMUE1NjlDRjAwRDdFMkI4MjAwN0MzOTgz
IC8qIHJ1bnRpbWVfYXJyYXkuaCAqLywKIAkJCQkxQTU2OUNGMTBEN0UyQjgyMDA3QzM5ODMgLyog
cnVudGltZV9tZXRob2QuY3BwICovLApAQCAtMjE3ODQsOCArMjE3NzksNiBAQAogCQkJCTQ2RUYx
NDI4MUY5N0I3QkEwMEMyQTUyNCAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50LmlkbCAqLywKIAkJCQk4
Mzc5MzYzQzFGQkJCMEE0MDBDODAyM0MgLyogU2VydmljZVdvcmtlckNsaWVudERhdGEuY3BwICov
LAogCQkJCTgzNzkzNjNFMUZCQkIwQTUwMEM4MDIzQyAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0
YS5oICovLAotCQkJCTkzRkNEQjQ5MjY0NDU1RDYwMDQ2REQ3RCAvKiBTZXJ2aWNlV29ya2VyQ2xp
ZW50SWRlbnRpZmllci5jcHAgKi8sCi0JCQkJODM3RDQ2MjUxRkEyQThDNTAwNTRFMUZBIC8qIFNl
cnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmggKi8sCiAJCQkJNDEzRkM0Q0QxRkQxREQ4QzAw
NTQxQzRCIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRRdWVyeU9wdGlvbnMuaCAqLywKIAkJCQk0NkVG
MTQyMTFGOTdCN0JBMDBDMkE1MjQgLyogU2VydmljZVdvcmtlckNsaWVudHMuY3BwICovLAogCQkJ
CTQ2RUYxNDIyMUY5N0I3QkEwMEMyQTUyNCAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50cy5oICovLApA
QCAtMjg5NjEsNyArMjg5NTQsNiBAQAogCQkJCTQ1RkVBNUNEMTU2RERFOEMwMDY1NDEwMSAvKiBE
ZWNpbWFsLmNwcCAqLywKIAkJCQk0NUZFQTVDRTE1NkRERThDMDA2NTQxMDEgLyogRGVjaW1hbC5o
ICovLAogCQkJCUNEODNEMzVBMjExMTEwODIwMDc2RTExQyAvKiBEZWZlcnJhYmxlVGFzay5oICov
LAotCQkJCTQxODI2QkYxMjNGQjU5NzAwMEI5MjJCMSAvKiBEb2N1bWVudElkZW50aWZpZXIuaCAq
LywKIAkJCQlBNzk1NDY0MjBCNUM0Q0I0MDA3QjQzOEYgLyogRHJhZ0RhdGEuY3BwICovLAogCQkJ
CUE3QjZFNjlEMEIyOTFBOTYwMEQwNTI5RiAvKiBEcmFnRGF0YS5oICovLAogCQkJCUE3Q0ZCM0NG
MEI3RUQxMEEwMDcwQzMyRCAvKiBEcmFnSW1hZ2UuY3BwICovLApAQCAtMzMyMjcsNyArMzMyMTks
NiBAQAogCQkJCUE4MTg1RjQ1MDk3NjU3NjYwMDU4MjZEOSAvKiBEb2N1bWVudEZvbnRMb2FkZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTg1RjNEMDk3NjU3NjYwMDU4MjZEOSAvKiBEb2N1bWVu
dEZyYWdtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDkyRjUxMzIyNjBGRkVFMDBGODdCQjMg
LyogRG9jdW1lbnRGdWxsc2NyZWVuLmggaW4gSGVhZGVycyAqLywKLQkJCQk0MTgyNkJGMjIzRkI1
OTc3MDBCOTIyQjEgLyogRG9jdW1lbnRJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlD
REVGREEwQjI3MTIyNjM4MDA1NTU5QTcgLyogRG9jdW1lbnRJbmxpbmVzLmggaW4gSGVhZGVycyAq
LywKIAkJCQk2NTZEMzczNjBBREJBNURFMDBBNDU1NEQgLyogRG9jdW1lbnRMb2FkZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCThBMTJFMzVEMTFGQTMzMjgwMDI1ODM2QSAvKiBEb2N1bWVudExvYWRU
aW1pbmcuaCBpbiBIZWFkZXJzICovLApAQCAtMzYwNzgsNyArMzYwNjksNiBAQAogCQkJCUE1ODFF
RDEzMUZCMjg4Q0YwMENFRDRFQyAvKiBTZXJ2aWNlV29ya2VyQWdlbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQ2RUYxNDJEMUY5N0I3RDgwMEMyQTUyNCAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk4Mzc5MzYzRjFGQkJCMEI0MDBDODAyM0MgLyogU2VydmljZVdv
cmtlckNsaWVudERhdGEuaCBpbiBIZWFkZXJzICovLAotCQkJCTgzN0Q0NjI3MUZBMkE4Q0UwMDU0
RTFGQSAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDE1MTlDQjgxRkQxRjAyRTAwN0Y2MjNDIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRRdWVyeU9w
dGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2RUYxNDJDMUY5N0I3RDgwMEMyQTUyNCAvKiBT
ZXJ2aWNlV29ya2VyQ2xpZW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM2OUZERkMxRkExMDJF
MzAwQzFGRjFGIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRUeXBlLmggaW4gSGVhZGVycyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDBiNjMwYjdjY2M4N2UzZTRjMzllMWRlZGNkZjNhM2U4
OWE5ZjQxOWUuLjY5N2NmNmE1YTgyZGQwZDE3MTNmZmQ1ZmJiOTY0NDc5ZTExZWE3MTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNTYzLDcgKzU2Myw3IEBAIHZvaWQgRG9jdW1lbnQ6OmNv
bmZpZ3VyZVNoYXJlZExvZ2dlcigpCiAKIHZvaWQgRG9jdW1lbnQ6OmFkZFRvRG9jdW1lbnRzTWFw
KCkKIHsKLSAgICBhdXRvIGFkZFJlc3VsdCA9IGFsbERvY3VtZW50c01hcCgpLmFkZChtX2lkZW50
aWZpZXIsIHRoaXMpOworICAgIGF1dG8gYWRkUmVzdWx0ID0gYWxsRG9jdW1lbnRzTWFwKCkuYWRk
KGlkZW50aWZpZXIoKSwgdGhpcyk7CiAgICAgQVNTRVJUX1VOVVNFRChhZGRSZXN1bHQsIGFkZFJl
c3VsdC5pc05ld0VudHJ5KTsKIAogICAgIGNvbmZpZ3VyZVNoYXJlZExvZ2dlcigpOwpAQCAtNTcx
LDggKzU3MSw4IEBAIHZvaWQgRG9jdW1lbnQ6OmFkZFRvRG9jdW1lbnRzTWFwKCkKIAogdm9pZCBE
b2N1bWVudDo6cmVtb3ZlRnJvbURvY3VtZW50c01hcCgpCiB7Ci0gICAgQVNTRVJUKGFsbERvY3Vt
ZW50c01hcCgpLmNvbnRhaW5zKG1faWRlbnRpZmllcikpOwotICAgIGFsbERvY3VtZW50c01hcCgp
LnJlbW92ZShtX2lkZW50aWZpZXIpOworICAgIEFTU0VSVChhbGxEb2N1bWVudHNNYXAoKS5jb250
YWlucyhpZGVudGlmaWVyKCkpKTsKKyAgICBhbGxEb2N1bWVudHNNYXAoKS5yZW1vdmUoaWRlbnRp
ZmllcigpKTsKICAgICBjb25maWd1cmVTaGFyZWRMb2dnZXIoKTsKIH0KIApAQCAtNjUzLDcgKzY1
Myw2IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IFNldHRpbmdzJiBz
ZXR0aW5ncywgY29uc3QgVVJMJiB1cmwsIERvY3VtCiAgICAgLCBtX2lzU3ludGhlc2l6ZWQoY29u
c3RydWN0aW9uRmxhZ3MgJiBTeW50aGVzaXplZCkKICAgICAsIG1faXNOb25SZW5kZXJlZFBsYWNl
aG9sZGVyKGNvbnN0cnVjdGlvbkZsYWdzICYgTm9uUmVuZGVyZWRQbGFjZWhvbGRlcikKICAgICAs
IG1fb3JpZW50YXRpb25Ob3RpZmllcihjdXJyZW50T3JpZW50YXRpb24oZnJhbWUpKQotICAgICwg
bV9pZGVudGlmaWVyKERvY3VtZW50SWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKICAgICAsIG1fdW5k
b01hbmFnZXIoVW5kb01hbmFnZXI6OmNyZWF0ZSgqdGhpcykpCiAgICAgLCBtX2VkaXRvcihtYWtl
VW5pcXVlUmVmPEVkaXRvcj4oKnRoaXMpKQogICAgICwgbV9zZWxlY3Rpb24obWFrZVVuaXF1ZVJl
ZjxGcmFtZVNlbGVjdGlvbj4odGhpcykpCkBAIC04NzM0LDcgKzg3MzMsNyBAQCB2b2lkIERvY3Vt
ZW50OjpzZXRTZXJ2aWNlV29ya2VyQ29ubmVjdGlvbihTV0NsaWVudENvbm5lY3Rpb24qIHNlcnZp
Y2VXb3JrZXJDb25uZQogICAgICAgICByZXR1cm47CiAKICAgICBhdXRvIGNvbnRyb2xsaW5nU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgPSBhY3RpdmVTZXJ2aWNlV29ya2VyKCkg
PyBzdGQ6Om1ha2Vfb3B0aW9uYWw8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+
KGFjdGl2ZVNlcnZpY2VXb3JrZXIoKS0+cmVnaXN0cmF0aW9uSWRlbnRpZmllcigpKSA6IHN0ZDo6
bnVsbG9wdDsKLSAgICBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uLT5yZWdpc3RlclNlcnZpY2VX
b3JrZXJDbGllbnQodG9wT3JpZ2luKCksIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjpmcm9tKCp0
aGlzLCAqc2VydmljZVdvcmtlckNvbm5lY3Rpb24pLCBjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25JZGVudGlmaWVyLCB1c2VyQWdlbnQodXJsKCkpKTsKKyAgICBtX3NlcnZpY2VX
b3JrZXJDb25uZWN0aW9uLT5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQodG9wT3JpZ2luKCks
IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjpmcm9tKCp0aGlzKSwgY29udHJvbGxpbmdTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgdXNlckFnZW50KHVybCgpKSk7CiB9CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA4ZDJhY2Q4NzQ0ZmI4ZTc3NTVlMzdkNjFmZDhm
NjFiMzJhZDYxYmQ1Li4xZWZjM2Y1Yjc3NTBhNmU3NDMwZmMyNTM4MTU2YzJlZTQ3YmFjZmNmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaApAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgIkNyb3NzT3Jp
Z2luT3BlbmVyUG9saWN5LmgiCiAjaW5jbHVkZSAiRGlzYWJsZWRBZGFwdGF0aW9ucy5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50RXZlbnRUaW1pbmcuaCIKLSNpbmNsdWRlICJEb2N1bWVudElkZW50aWZp
ZXIuaCIKICNpbmNsdWRlICJFbGVtZW50SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkZvY3VzT3B0
aW9ucy5oIgogI2luY2x1ZGUgIkZvbnRTZWxlY3RvckNsaWVudC5oIgpAQCAtNDAwLDkgKzM5OSw3
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcmVtb3ZlZExhc3RSZWYoKTsKIAotICAgIERvY3VtZW50
SWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9Ci0K
LSAgICB1c2luZyBEb2N1bWVudHNNYXAgPSBIYXNoTWFwPERvY3VtZW50SWRlbnRpZmllciwgRG9j
dW1lbnQqPjsKKyAgICB1c2luZyBEb2N1bWVudHNNYXAgPSBIYXNoTWFwPFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyLCBEb2N1bWVudCo+OwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBEb2N1bWVudHNNYXA6OlZhbHVlc0l0ZXJhdG9yUmFuZ2UgYWxsRG9jdW1lbnRzKCk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIERvY3VtZW50c01hcCYgYWxsRG9jdW1lbnRzTWFwKCk7CiAK
QEAgLTIxOTQsOCArMjE5MSw2IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPERvY3VtZW50VGltZWxp
bmU+IG1fdGltZWxpbmU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPERvY3VtZW50VGltZWxpbmVzQ29u
dHJvbGxlcj4gbV90aW1lbGluZXNDb250cm9sbGVyOwogCi0gICAgRG9jdW1lbnRJZGVudGlmaWVy
IG1faWRlbnRpZmllcjsKLQogICAgIFJlZlB0cjxXaW5kb3dFdmVudExvb3A+IG1fZXZlbnRMb29w
OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxFdmVudExvb3BUYXNrR3JvdXA+IG1fZG9jdW1lbnRUYXNr
R3JvdXA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50Q29udGV4dC5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRDb250ZXh0LmgKaW5kZXggNmNkZjAyYTE0NmFj
NzEwMDUzZTBjMzIwNGM5NjI2NDgxZmM3MTZkOS4uOWQwOWIwODliM2FjNDk0M2EwZDlhMjJjM2Q2
NmU3ZjU1MDU0ZGMxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRDb250
ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRDb250ZXh0LmgKQEAgLTI1LDEw
ICsyNSwxMiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkRvY3VtZW50SWRlbnRpZmll
ci5oIgogI2luY2x1ZGUgIkVsZW1lbnRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0
LmgiCiAjaW5jbHVkZSAiUGFnZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJQcm9jZXNzUXVhbGlm
aWVkLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaCIKKyNp
bmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTM2LDcgKzM4LDcgQEAgc3RydWN0IEVsZW1lbnRDb250ZXh0IHsKICAgICBGbG9hdFJlY3Qg
Ym91bmRpbmdSZWN0OwogCiAgICAgUGFnZUlkZW50aWZpZXIgd2ViUGFnZUlkZW50aWZpZXI7Ci0g
ICAgRG9jdW1lbnRJZGVudGlmaWVyIGRvY3VtZW50SWRlbnRpZmllcjsKKyAgICBTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllciBkb2N1bWVudElkZW50aWZpZXI7CiAgICAgRWxlbWVudElk
ZW50aWZpZXIgZWxlbWVudElkZW50aWZpZXI7CiAKICAgICB+RWxlbWVudENvbnRleHQoKSA9IGRl
ZmF1bHQ7CkBAIC03Nyw3ICs3OSw4IEBAIHN0ZDo6b3B0aW9uYWw8RWxlbWVudENvbnRleHQ+IEVs
ZW1lbnRDb250ZXh0OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKICAgICBjb250ZXh0LndlYlBhZ2VJZGVudGlmaWVyID0gKnBhZ2VJZGVudGlm
aWVyOwogCi0gICAgYXV0byBkb2N1bWVudElkZW50aWZpZXIgPSBEb2N1bWVudElkZW50aWZpZXI6
OmRlY29kZShkZWNvZGVyKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyPiBkb2N1bWVudElkZW50aWZpZXI7CisgICAgZGVjb2RlciA+PiBkb2N1bWVu
dElkZW50aWZpZXI7CiAgICAgaWYgKCFkb2N1bWVudElkZW50aWZpZXIpCiAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAgICAgY29udGV4dC5kb2N1bWVudElkZW50aWZpZXIgPSAqZG9jdW1l
bnRJZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgKaW5kZXggMGU3Mzk3MTQz
ZGM1NjM4MDI2MzlhNzViZWEzZDgxOWIxNWQ5OGU3OS4uM2U1OTg4NDllZjU2NmExZjc0OWMxMzZh
Yjk3YzQ5MmM4ZmQwOWUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5oCkBAIC0yMyw5
ICsyMyw5IEBACiAKICNpbmNsdWRlICJDb250YWluZXJOb2RlLmgiCiAjaW5jbHVkZSAiQ29udGVu
dFNlY3VyaXR5UG9saWN5LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnRJZGVudGlmaWVyLmgiCiAjaW5j
bHVkZSAiTG9hZGFibGVTY3JpcHQuaCIKICNpbmNsdWRlICJSZWZlcnJlclBvbGljeS5oIgorI2lu
Y2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiVXNl
ckdlc3R1cmVJbmRpY2F0b3IuaCIKICNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1RleHRQb3NpdGlvbi5oPgpAQCAtMTM5LDcgKzEzOSw3IEBAIHByaXZh
dGU6CiAgICAgUmVmUHRyPExvYWRhYmxlU2NyaXB0PiBtX2xvYWRhYmxlU2NyaXB0OwogCiAgICAg
Ly8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc2NyaXB0aW5nLmh0bWwj
cHJlcGFyYXRpb24tdGltZS1kb2N1bWVudAotICAgIERvY3VtZW50SWRlbnRpZmllciBtX3ByZXBh
cmF0aW9uVGltZURvY3VtZW50SWRlbnRpZmllcjsKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllciBtX3ByZXBhcmF0aW9uVGltZURvY3VtZW50SWRlbnRpZmllcjsKIAogICAgIE1v
bm90b25pY1RpbWUgbV9jcmVhdGlvblRpbWU7CiAgICAgUmVmUHRyPFVzZXJHZXN0dXJlVG9rZW4+
IG1fdXNlckdlc3R1cmVUb2tlbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0LmNwcAppbmRleCAyNWZhNGMzNjU4MWFhYTQ2YzY4MDk1ZWE1OGFjY2ZmYTdhMzVk
ODQ5Li45ZDk2NWFmMGNhNzg3YjRjZjA2YmQxODY3YTQwOTYxYWUzMDAxY2Q2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCkBAIC0xMTQsMzAgKzEx
NCwxNyBAQCBwdWJsaWM6CiB9OwogCiBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpTY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkKKyAgICA6IG1fY29udGV4dElkZW50aWZpZXIoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFkU2FmZSgpKQogewotfQotCi1TY3JpcHRF
eGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpjb250ZXh0
SWRlbnRpZmllcigpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGlzQ29udGV4dFRocmVhZCgpKTsKLSAg
ICBpZiAoIW1fY29udGV4dElkZW50aWZpZXIpIHsKLSAgICAgICAgTG9ja2VyIGxvY2tlciB7IGFs
bFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRzTWFwTG9jayB9OwotCi0gICAgICAgIG1fY29udGV4dElk
ZW50aWZpZXIgPSBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsK
LQotICAgICAgICBBU1NFUlQoIWFsbFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRzTWFwKCkuY29udGFp
bnMobV9jb250ZXh0SWRlbnRpZmllcikpOwotICAgICAgICBhbGxTY3JpcHRFeGVjdXRpb25Db250
ZXh0c01hcCgpLmFkZChtX2NvbnRleHRJZGVudGlmaWVyLCBjb25zdF9jYXN0PFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqPih0aGlzKSk7Ci0gICAgfQotICAgIHJldHVybiBtX2NvbnRleHRJZGVudGlm
aWVyOworICAgIExvY2tlciBsb2NrZXIgeyBhbGxTY3JpcHRFeGVjdXRpb25Db250ZXh0c01hcExv
Y2sgfTsKKyAgICBhbGxTY3JpcHRFeGVjdXRpb25Db250ZXh0c01hcCgpLmFkZChtX2NvbnRleHRJ
ZGVudGlmaWVyLCB0aGlzKTsKIH0KIAogdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpyZW1v
dmVGcm9tQ29udGV4dHNNYXAoKQogewotICAgIGlmIChtX2NvbnRleHRJZGVudGlmaWVyKSB7Ci0g
ICAgICAgIExvY2tlciBsb2NrZXIgeyBhbGxTY3JpcHRFeGVjdXRpb25Db250ZXh0c01hcExvY2sg
fTsKLSAgICAgICAgQVNTRVJUKGFsbFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRzTWFwKCkuY29udGFp
bnMobV9jb250ZXh0SWRlbnRpZmllcikpOwotICAgICAgICBhbGxTY3JpcHRFeGVjdXRpb25Db250
ZXh0c01hcCgpLnJlbW92ZShtX2NvbnRleHRJZGVudGlmaWVyKTsKLSAgICB9CisgICAgTG9ja2Vy
IGxvY2tlciB7IGFsbFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRzTWFwTG9jayB9OworICAgIEFTU0VS
VChhbGxTY3JpcHRFeGVjdXRpb25Db250ZXh0c01hcCgpLmNvbnRhaW5zKG1fY29udGV4dElkZW50
aWZpZXIpKTsKKyAgICBhbGxTY3JpcHRFeGVjdXRpb25Db250ZXh0c01hcCgpLnJlbW92ZShtX2Nv
bnRleHRJZGVudGlmaWVyKTsKIH0KIAogI2lmICFBU1NFUlRfRU5BQkxFRApAQCAtMTY5LDEwICsx
NTYsOSBAQCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojp+U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
CiAgICAgY2hlY2tDb25zaXN0ZW5jeSgpOwogCiAjaWYgQVNTRVJUX0VOQUJMRUQKLSAgICBpZiAo
bV9jb250ZXh0SWRlbnRpZmllcikgeworICAgIHsKICAgICAgICAgTG9ja2VyIGxvY2tlciB7IGFs
bFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRzTWFwTG9jayB9OwotICAgICAgICBBU1NFUlRfV0lUSF9N
RVNTQUdFKCFhbGxTY3JpcHRFeGVjdXRpb25Db250ZXh0c01hcCgpLmNvbnRhaW5zKG1fY29udGV4
dElkZW50aWZpZXIpLAotICAgICAgICAgICAgIkEgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCBzdWJj
bGFzcyBpbnN0YW5jZSBpbXBsZW1lbnRpbmcgcG9zdFRhc2sgc2hvdWxkIGhhdmUgYWxyZWFkeSBy
ZW1vdmVkIGl0c2VsZiBmcm9tIHRoZSBtYXAiKTsKKyAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FH
RSghYWxsU2NyaXB0RXhlY3V0aW9uQ29udGV4dHNNYXAoKS5jb250YWlucyhtX2NvbnRleHRJZGVu
dGlmaWVyKSwgIkEgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCBzdWJjbGFzcyBpbnN0YW5jZSBpbXBs
ZW1lbnRpbmcgcG9zdFRhc2sgc2hvdWxkIGhhdmUgYWxyZWFkeSByZW1vdmVkIGl0c2VsZiBmcm9t
IHRoZSBtYXAiKTsKICAgICB9CiAKICAgICBtX2luU2NyaXB0RXhlY3V0aW9uQ29udGV4dERlc3Ry
dWN0b3IgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0
LmgKaW5kZXggZjc5YzNlZGM4OGQzZWZmMTE2YTVhNjU4MzY0OGNkOGFmYzFlYTM5MC4uNjU3NGMz
M2Y3MWU0Njc1YzkxNmE5MDYyMTMxYzQ5MjViMWEyMzRmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCkBAIC0yODMsNyArMjgzLDkgQEAgcHVibGljOgog
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIHBvc3RUYXNrVG8oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIsIFRhc2smJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJv
b2wgZW5zdXJlT25Db250ZXh0VGhyZWFkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
LCBUYXNrJiYpOwogCi0gICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4
dElkZW50aWZpZXIoKSBjb25zdDsKKyAgICAvLyBGSVhNRTogUG9ydCBjYWxsIHNpdGVzIHRvIGlk
ZW50aWZpZXIoKSBhbmQgZHJvcCB0aGlzIGZ1bmN0aW9uLgorICAgIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRJZGVudGlmaWVyIGNvbnRleHRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9jb250
ZXh0SWRlbnRpZmllcjsgfQorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGlk
ZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHRJZGVudGlmaWVyOyB9CiAKIHByb3Rl
Y3RlZDoKICAgICBjbGFzcyBBZGRDb25zb2xlTWVzc2FnZVRhc2sgOiBwdWJsaWMgVGFzayB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAppbmRleCBlOGFiNmZmOTVjMjg5
NjU1YWQ0YWQxNDc3YzU3NWE2YWJlYzFiOWZlLi5jM2Q4NDUwZjcxYzJjMzczZDJhZjFjY2NmYjIx
NWFkODFiZjgwZDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAK
QEAgLTE1MSwxMyArMTUxLDEzIEBAIHN0YXRpYyB2b2lkIHNldEFsbERlZmVyc0xvYWRpbmcoY29u
c3QgUmVzb3VyY2VMb2FkZXJNYXAmIGxvYWRlcnMsIGJvb2wgZGVmZXJzKQogICAgICAgICBsb2Fk
ZXItPnNldERlZmVyc0xvYWRpbmcoZGVmZXJzKTsKIH0KIAotc3RhdGljIEhhc2hNYXA8RG9jdW1l
bnRJZGVudGlmaWVyLCBEb2N1bWVudExvYWRlcio+JiB0ZW1wb3JhcnlJZGVudGlmaWVyVG9Mb2Fk
ZXJNYXAoKQorc3RhdGljIEhhc2hNYXA8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIs
IERvY3VtZW50TG9hZGVyKj4mIHRlbXBvcmFyeUlkZW50aWZpZXJUb0xvYWRlck1hcCgpCiB7Ci0g
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8RG9jdW1lbnRJZGVudGlmaWVyLCBEb2N1
bWVudExvYWRlcio+PiBtYXA7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKj4+IG1hcDsKICAg
ICByZXR1cm4gbWFwLmdldCgpOwogfQogCi1Eb2N1bWVudExvYWRlciogRG9jdW1lbnRMb2FkZXI6
OmZyb21UZW1wb3JhcnlEb2N1bWVudElkZW50aWZpZXIoRG9jdW1lbnRJZGVudGlmaWVyIGlkZW50
aWZpZXIpCitEb2N1bWVudExvYWRlciogRG9jdW1lbnRMb2FkZXI6OmZyb21UZW1wb3JhcnlEb2N1
bWVudElkZW50aWZpZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgaWRlbnRpZmll
cikKIHsKICAgICByZXR1cm4gdGVtcG9yYXJ5SWRlbnRpZmllclRvTG9hZGVyTWFwKCkuZ2V0KGlk
ZW50aWZpZXIpOwogfQpAQCAtMjExMCw3ICsyMTEwLDcgQEAgdm9pZCBEb2N1bWVudExvYWRlcjo6
bG9hZE1haW5SZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQogI2lmIEVOQUJMRShT
RVJWSUNFX1dPUktFUikKICAgICBpZiAoIW1fdGVtcG9yYXJ5U2VydmljZVdvcmtlckNsaWVudCkg
ewogICAgICAgICAvLyBUaGUgbWFpbiBuYXZpZ2F0aW9uIGxvYWQgd2lsbCB0cmlnZ2VyIHRoZSBy
ZWdpc3RyYXRpb24gb2YgdGhlIHRlbXAgY2xpZW50LgotICAgICAgICBtX3RlbXBvcmFyeVNlcnZp
Y2VXb3JrZXJDbGllbnQgPSBEb2N1bWVudElkZW50aWZpZXI6OmdlbmVyYXRlKCk7CisgICAgICAg
IG1fdGVtcG9yYXJ5U2VydmljZVdvcmtlckNsaWVudCA9IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKTsKICAgICAgICAgQVNTRVJUKCF0ZW1wb3Jh
cnlJZGVudGlmaWVyVG9Mb2FkZXJNYXAoKS5jb250YWlucygqbV90ZW1wb3JhcnlTZXJ2aWNlV29y
a2VyQ2xpZW50KSk7CiAgICAgICAgIHRlbXBvcmFyeUlkZW50aWZpZXJUb0xvYWRlck1hcCgpLmFk
ZCgqbV90ZW1wb3JhcnlTZXJ2aWNlV29ya2VyQ2xpZW50LCB0aGlzKTsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCmluZGV4IGMxNzc0MGFmNjdlYTU5NTViYTQ2MTQz
ODU0ZTdkZGZmZTY3NmFlMmMuLmZiZjU0NWM0NjBlNGU0ODlkODdiMjVjMGU4NWVjY2NhNGNiZjNj
ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCkBAIC0zNSw3ICszNSw2
IEBACiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5Q2xpZW50LmgiCiAjaW5jbHVkZSAi
Q3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kuaCIKICNpbmNsdWRlICJEZXZpY2VPcmllbnRhdGlvbk9y
TW90aW9uUGVybWlzc2lvblN0YXRlLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnRJZGVudGlmaWVyLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkVGltaW5nLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRXcml0
ZXIuaCIKICNpbmNsdWRlICJGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaCIKQEAgLTQ2LDYgKzQ1
LDcgQEAKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRlck9wdGlvbnMuaCIKICNpbmNsdWRlICJSZXNv
dXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCisjaW5jbHVkZSAi
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJTZWN1cml0eVBv
bGljeVZpb2xhdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bkRhdGEuaCIKICNpbmNsdWRlICJTdHJpbmdXaXRoRGlyZWN0aW9uLmgiCkBAIC0xNjEsNyArMTYx
LDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEb2N1bWVudExvYWRl
cihyZXF1ZXN0LCBkYXRhKSk7CiAgICAgfQogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIERv
Y3VtZW50TG9hZGVyKiBmcm9tVGVtcG9yYXJ5RG9jdW1lbnRJZGVudGlmaWVyKERvY3VtZW50SWRl
bnRpZmllcik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIERvY3VtZW50TG9hZGVyKiBmcm9t
VGVtcG9yYXJ5RG9jdW1lbnRJZGVudGlmaWVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgfkRvY3VtZW50TG9hZGVyKCk7CiAK
QEAgLTY3MCw3ICs2NzAsNyBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQogICAgIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE+IG1fc2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE7Ci0gICAgc3RkOjpvcHRpb25hbDxEb2N1bWVudElk
ZW50aWZpZXI+IG1fdGVtcG9yYXJ5U2VydmljZVdvcmtlckNsaWVudDsKKyAgICBzdGQ6Om9wdGlv
bmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBtX3RlbXBvcmFyeVNlcnZpY2VX
b3JrZXJDbGllbnQ7CiAjZW5kaWYKIAogI2lmIEFTU0VSVF9FTkFCTEVECmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRmV0Y2hPcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRmV0Y2hPcHRpb25zLmgKaW5kZXggMjdiOThhOTMyMzA3ZmM1OGM0NTlkNzE1YzMxNGNjY2E2
N2M0ZDhkYy4uZmM4MjI3NDIwMWI5NDQ0NmVmNzM2ZDQzMTdkMTZlNGU2NTBiYzNiZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZldGNoT3B0aW9ucy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GZXRjaE9wdGlvbnMuaApAQCAtMjgsOCArMjgsOSBAQAogCiAjcHJhZ21h
IG9uY2UKIAotI2luY2x1ZGUgIkRvY3VtZW50SWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlByb2Nl
c3NRdWFsaWZpZWQuaCIKICNpbmNsdWRlICJSZWZlcnJlclBvbGljeS5oIgorI2luY2x1ZGUgIlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8d3RmL01hcmthYmxl
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTU5LDcgKzYwLDcgQEAg
c3RydWN0IEZldGNoT3B0aW9ucyB7CiAgICAgUmVmZXJyZXJQb2xpY3kgcmVmZXJyZXJQb2xpY3kg
eyBSZWZlcnJlclBvbGljeTo6RW1wdHlTdHJpbmcgfTsKICAgICBib29sIGtlZXBBbGl2ZSB7IGZh
bHNlIH07CiAgICAgU3RyaW5nIGludGVncml0eTsKLSAgICBNYXJrYWJsZTxEb2N1bWVudElkZW50
aWZpZXIsIERvY3VtZW50SWRlbnRpZmllcjo6TWFya2FibGVUcmFpdHM+IGNsaWVudElkZW50aWZp
ZXI7CisgICAgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4g
Y2xpZW50SWRlbnRpZmllcjsKIH07CiAKIGlubGluZSBGZXRjaE9wdGlvbnM6OkZldGNoT3B0aW9u
cyhEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbiwgTW9kZSBtb2RlLCBDcmVkZW50aWFscyBjcmVkZW50
aWFscywgQ2FjaGUgY2FjaGUsIFJlZGlyZWN0IHJlZGlyZWN0LCBSZWZlcnJlclBvbGljeSByZWZl
cnJlclBvbGljeSwgU3RyaW5nJiYgaW50ZWdyaXR5LCBib29sIGtlZXBBbGl2ZSkKQEAgLTI0OCw3
ICsyNDksNyBAQCB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogaW5saW5lIHZvaWQgRmV0Y2hPcHRp
b25zOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVQZXJzaXN0
ZW50KGVuY29kZXIpOwotICAgIGVuY29kZXIgPDwgY2xpZW50SWRlbnRpZmllci5hc09wdGlvbmFs
KCk7CisgICAgZW5jb2RlciA8PCBjbGllbnRJZGVudGlmaWVyOwogfQogCiB0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPgpAQCAtMjU4LDcgKzI1OSw3IEBAIGlubGluZSBzdGQ6Om9wdGlvbmFsPEZldGNo
T3B0aW9ucz4gRmV0Y2hPcHRpb25zOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICBpZiAo
IWRlY29kZVBlcnNpc3RlbnQoZGVjb2Rlciwgb3B0aW9ucykpCiAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CiAKLSAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9uYWw8RG9jdW1lbnRJZGVu
dGlmaWVyPj4gY2xpZW50SWRlbnRpZmllcjsKKyAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9u
YWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+PiBjbGllbnRJZGVudGlmaWVyOwog
ICAgIGRlY29kZXIgPj4gY2xpZW50SWRlbnRpZmllcjsKICAgICBpZiAoIWNsaWVudElkZW50aWZp
ZXIpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCmluZGV4IGVkM2RhNjRm
NTBkYjEyZTI3NDczY2JlYzc1ZTBlMTNhYmMzYzc0Y2YuLmQ0ZGJjOTg1MGQ5ODg4NDQ0MmY4NjMy
MzNkMTk1ZDRjZWE0MDQ0ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCkBAIC0yNzksNyArMjc5LDcgQEAgdm9pZCBD
YWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldERlc3RpbmF0aW9uSWZOb3RTZXQoRmV0Y2hPcHRpb25z
OjpEZXN0aW5hdGlvbiBkZXMKIH0KIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLXZvaWQg
Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRDbGllbnRJZGVudGlmaWVySWZOZWVkZWQoRG9jdW1l
bnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCit2b2lkIENhY2hlZFJlc291cmNlUmVxdWVz
dDo6c2V0Q2xpZW50SWRlbnRpZmllcklmTmVlZGVkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyIGNsaWVudElkZW50aWZpZXIpCiB7CiAgICAgaWYgKCFtX29wdGlvbnMuY2xpZW50SWRl
bnRpZmllcikKICAgICAgICAgbV9vcHRpb25zLmNsaWVudElkZW50aWZpZXIgPSBjbGllbnRJZGVu
dGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291
cmNlUmVxdWVzdC5oCmluZGV4IGZjYjUzNGY5YzNjOWUyZmIyODk0NTUzMmQyYjA4NjA0NzgzZjUw
NDAuLmQ5ODVjMTgwYThiNDZkNWEyNTFiYTBlYjNmYWI5NDI3YjI0ODczMzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmgKQEAg
LTEwNiw3ICsxMDYsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFN0cmluZyBhY2NlcHRIZWFkZXJW
YWx1ZUZyb21UeXBlKENhY2hlZFJlc291cmNlOjpUeXBlKTsKIAogI2lmIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKLSAgICB2b2lkIHNldENsaWVudElkZW50aWZpZXJJZk5lZWRlZChEb2N1bWVudElk
ZW50aWZpZXIpOworICAgIHZvaWQgc2V0Q2xpZW50SWRlbnRpZmllcklmTmVlZGVkKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKTsKICAgICB2b2lkIHNldFNlbGVjdGVkU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXJJZk5lZWRlZChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uSWRlbnRpZmllcik7CiAgICAgdm9pZCBzZXROYXZpZ2F0aW9uU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbkRhdGEoY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
RGF0YT4mKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvUGFn
ZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1BhZ2VNYWMubW0KaW5kZXggNGRhMDc1
NzU2MmE5MTFlZjNlYjVjMmM5OGYyNzkyODdlNjBjYzZlNC4uN2FjZDU5N2FmYzgwNzc5OGJhZjIw
NDg5ODY3ZDI2MjZlYjc4MjRhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMv
UGFnZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9QYWdlTWFjLm1tCkBAIC04
MSw3ICs4MSw3IEBAIHZvaWQgUGFnZTo6cGxhdGZvcm1Jbml0aWFsaXplKCkKICAgICAgICAgICAg
IFdURkxvZ0Fsd2F5cygiJXUgbGl2ZSBkb2N1bWVudHM6IiwgRG9jdW1lbnQ6OmFsbERvY3VtZW50
cygpLnNpemUoKSk7CiAgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8qIGRvY3VtZW50IDogRG9j
dW1lbnQ6OmFsbERvY3VtZW50cygpKSB7CiAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogZG9j
dW1lbnRUeXBlID0gaXM8U1ZHRG9jdW1lbnQ+KGRvY3VtZW50KSA/ICJTVkdEb2N1bWVudCIgOiAi
RG9jdW1lbnQiOwotICAgICAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiJXMgJXAgJWxsdSAocmVm
Q291bnQgJWQsIHJlZmVyZW5jaW5nTm9kZUNvdW50ICVkKSAlcyIsIGRvY3VtZW50VHlwZSwgZG9j
dW1lbnQsIGRvY3VtZW50LT5pZGVudGlmaWVyKCkudG9VSW50NjQoKSwgZG9jdW1lbnQtPnJlZkNv
dW50KCksIGRvY3VtZW50LT5yZWZlcmVuY2luZ05vZGVDb3VudCgpLCBkb2N1bWVudC0+dXJsKCku
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCIl
cyAlcCAlcyAocmVmQ291bnQgJWQsIHJlZmVyZW5jaW5nTm9kZUNvdW50ICVkKSAlcyIsIGRvY3Vt
ZW50VHlwZSwgZG9jdW1lbnQsIGRvY3VtZW50LT5pZGVudGlmaWVyKCkudG9TdHJpbmcoKS51dGY4
KCkuZGF0YSgpLCBkb2N1bWVudC0+cmVmQ291bnQoKSwgZG9jdW1lbnQtPnJlZmVyZW5jaW5nTm9k
ZUNvdW50KCksIGRvY3VtZW50LT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfSk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Eb2N1bWVudElkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0RvY3VtZW50SWRlbnRpZmllci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5Yzkz
YjE1ODI4YTkzZDQ3MWRiMmRjMWRjNWE0YzA5OGQ4ZjQ2OGVmLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RvY3Vt
ZW50SWRlbnRpZmllci5oCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi1lbnVtIERvY3VtZW50SWRlbnRpZmllclR5cGUgeyB9Owot
dXNpbmcgRG9jdW1lbnRJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxEb2N1bWVudElkZW50
aWZpZXJUeXBlPjsKLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHJv
Y2Vzc1F1YWxpZmllZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUHJvY2Vzc1F1YWxpZmll
ZC5oCmluZGV4IGIxM2YxNjY1ZWE1ODhkZTc5YmEzNjE2NDQ1ZTQ0YWNiMjgyMDkxOTQuLjI4NWE0
MjU1MzkyY2E3ZGVlNjk4ZjFjYmE3MzMxMmNhOWIyM2JhMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Byb2Nlc3NRdWFsaWZpZWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9Qcm9jZXNzUXVhbGlmaWVkLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUg
IlByb2Nlc3NJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hlci5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1RleHRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtOTAsMTEgKzkxLDMyIEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOwogICAgIH0KIAorICAg
IHN0YXRpYyBQcm9jZXNzUXVhbGlmaWVkIGdlbmVyYXRlVGhyZWFkU2FmZSgpIHsgcmV0dXJuIHsg
VDo6Z2VuZXJhdGVUaHJlYWRTYWZlKCksIFByb2Nlc3M6OmlkZW50aWZpZXIoKSB9OyB9CisgICAg
c3RhdGljIFByb2Nlc3NRdWFsaWZpZWQgZ2VuZXJhdGUoKSB7IHJldHVybiB7IFQ6OmdlbmVyYXRl
KCksIFByb2Nlc3M6OmlkZW50aWZpZXIoKSB9OyB9CisgICAgU3RyaW5nIHRvU3RyaW5nKCkgY29u
c3QgeyByZXR1cm4gbWFrZVN0cmluZyhtX3Byb2Nlc3NJZGVudGlmaWVyLnRvVUludDY0KCksICct
JywgbV9vYmplY3QudG9VSW50NjQoKSk7IH0KKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVuY29k
ZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0IHsgZW5jb2RlciA8PCBtX29i
amVjdCA8PCBtX3Byb2Nlc3NJZGVudGlmaWVyOyB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGVj
b2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UHJvY2Vzc1F1YWxpZmllZD4gZGVjb2RlKERlY29k
ZXImKTsKKwogcHJpdmF0ZToKICAgICBUIG1fb2JqZWN0OwogICAgIFByb2Nlc3NJZGVudGlmaWVy
IG1fcHJvY2Vzc0lkZW50aWZpZXI7CiB9OwogCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK3RlbXBs
YXRlPHR5cGVuYW1lIERlY29kZXI+IHN0ZDo6b3B0aW9uYWw8UHJvY2Vzc1F1YWxpZmllZDxUPj4g
UHJvY2Vzc1F1YWxpZmllZDxUPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3Rk
OjpvcHRpb25hbDxUPiBvYmplY3Q7CisgICAgZGVjb2RlciA+PiBvYmplY3Q7CisgICAgaWYgKCFv
YmplY3QpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgc3RkOjpvcHRpb25hbDxQ
cm9jZXNzSWRlbnRpZmllcj4gcHJvY2Vzc0lkZW50aWZpZXI7CisgICAgZGVjb2RlciA+PiBwcm9j
ZXNzSWRlbnRpZmllcjsKKyAgICBpZiAoIXByb2Nlc3NJZGVudGlmaWVyKQorICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworICAgIHJldHVybiB7IHsgKm9iamVjdCwgKnByb2Nlc3NJZGVudGlm
aWVyIH0gfTsKK30KKwogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBpbmxpbmUgVGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgUHJvY2Vzc1F1YWxpZmllZDxUPiYgcHJv
Y2Vzc1F1YWxpZmllZCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oCmluZGV4IGNkNGZjNzMyMzliYzBj
MmE5NGM0OGMwNjM3MjgwNmQ1M2ZlM2Y5MTUuLmQzZjcwODZlZDc5YjlmMDhhMTMwODU5NWQzMmQw
NmYxYmU2NjMxYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaApAQCAtMjUsMTEgKzI1LDE1IEBACiAK
ICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KK25hbWVz
cGFjZSBXVEYgewordGVtcGxhdGUgPHR5cGVuYW1lPiBjbGFzcyBPYmplY3RJZGVudGlmaWVyOwor
fQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3RlbXBsYXRlIDx0eXBlbmFtZT4gY2xhc3MgUHJv
Y2Vzc1F1YWxpZmllZDsKKwogZW51bSBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllclR5
cGUgeyB9OwotdXNpbmcgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgPSBPYmplY3RJ
ZGVudGlmaWVyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyVHlwZT47Cit1c2luZyBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciA9IFByb2Nlc3NRdWFsaWZpZWQ8V1RGOjpP
YmplY3RJZGVudGlmaWVyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyVHlwZT4+Owog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcAppbmRleCBmYjUyYTRiNmRj
NmFlNDc2ZDRiMDNlN2VhYTJkYjNmZDFiN2E1ZGYxLi4zYjEwNzA3NmZlOGQyOThhZGE3N2RlYjQ2
MTA5NjYyMTBhNmJmNTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAK
QEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJNZWRpYUNhcGFiaWxpdGllc0VuY29kaW5nSW5m
by5oIgogI2luY2x1ZGUgIk1lZGlhRGVjb2RpbmdDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAi
TWVkaWFFbmNvZGluZ0NvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJQcm9jZXNzUXVhbGlmaWVk
LmgiCiAKICNpZiBVU0UoTElCV0VCUlRDKQogI2luY2x1ZGUgIkNvbnRlbnRUeXBlLmgiCkBAIC0z
MjMsNyArMzI0LDcgQEAgdm9pZCBMaWJXZWJSVENQcm92aWRlcjo6ZW5hYmxlRW51bWVyYXRpbmdB
bGxOZXR3b3JrSW50ZXJmYWNlcygpCiAgICAgbV9lbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJ
bnRlcmZhY2VzID0gdHJ1ZTsKIH0KIAotcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6UGVlckNv
bm5lY3Rpb25JbnRlcmZhY2U+IExpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVQZWVyQ29ubmVjdGlv
bihEb2N1bWVudElkZW50aWZpZXIsIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25PYnNlcnZlciYgb2Jz
ZXJ2ZXIsIHJ0Yzo6UGFja2V0U29ja2V0RmFjdG9yeSosIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25J
bnRlcmZhY2U6OlJUQ0NvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQorcnRjOjpzY29wZWRf
cmVmcHRyPHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U+IExpYldlYlJUQ1Byb3ZpZGVy
OjpjcmVhdGVQZWVyQ29ubmVjdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwg
d2VicnRjOjpQZWVyQ29ubmVjdGlvbk9ic2VydmVyJiBvYnNlcnZlciwgcnRjOjpQYWNrZXRTb2Nr
ZXRGYWN0b3J5Kiwgd2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6UlRDQ29uZmlndXJh
dGlvbiYmIGNvbmZpZ3VyYXRpb24pCiB7CiAgICAgLy8gRGVmYXVsdCBXSzEgaW1wbGVtZW50YXRp
b24uCiAgICAgQVNTRVJUKG1fdXNlTmV0d29ya1RocmVhZFdpdGhTb2NrZXRTZXJ2ZXIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaAppbmRleCBlZGU1M2NhMWY5MjM3N2IyMjNiOTEx
MTEwMDlkODE5Y2ZkMjBiNTY4Li4yYzAwOWJlMjdiZTM5OTM1YThiZjFhOTgyNGZhNWQyMzk4OGI5
NDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuaApAQCAtMjUsMTAgKzI1LDEw
IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiRG9jdW1lbnRJZGVudGlmaWVyLmgiCiAj
aW5jbHVkZSAiTGliV2ViUlRDTWFjcm9zLmgiCiAjaW5jbHVkZSAiTUROU1JlZ2lzdGVyRXJyb3Iu
aCIKICNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbFJlbW90ZUhhbmRsZXJDb25uZWN0aW9uLmgiCisj
aW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaCIKICNpbmNsdWRlIDx3
dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvRXhwZWN0ZWQuaD4KICNpbmNs
dWRlIDx3dGYvVW5pcXVlUmVmLmg+CkBAIC0xMDAsNyArMTAwLDcgQEAgcHVibGljOgogICAgIHZv
aWQgY3JlYXRlRW5jb2RpbmdDb25maWd1cmF0aW9uKE1lZGlhRW5jb2RpbmdDb25maWd1cmF0aW9u
JiYsIEVuY29kaW5nQ29uZmlndXJhdGlvbkNhbGxiYWNrJiYpOwogCiAjaWYgVVNFKExJQldFQlJU
QykKLSAgICB2aXJ0dWFsIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9u
SW50ZXJmYWNlPiBjcmVhdGVQZWVyQ29ubmVjdGlvbihEb2N1bWVudElkZW50aWZpZXIsIHdlYnJ0
Yzo6UGVlckNvbm5lY3Rpb25PYnNlcnZlciYsIHJ0Yzo6UGFja2V0U29ja2V0RmFjdG9yeSosIHdl
YnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OlJUQ0NvbmZpZ3VyYXRpb24mJik7CisgICAg
dmlydHVhbCBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFj
ZT4gY3JlYXRlUGVlckNvbm5lY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIs
IHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25PYnNlcnZlciYsIHJ0Yzo6UGFja2V0U29ja2V0RmFjdG9y
eSosIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6OlJUQ0NvbmZpZ3VyYXRpb24mJik7
CiAKICAgICB3ZWJydGM6OlBlZXJDb25uZWN0aW9uRmFjdG9yeUludGVyZmFjZSogZmFjdG9yeSgp
OwogICAgIExpYldlYlJUQ0F1ZGlvTW9kdWxlKiBhdWRpb01vZHVsZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9SVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2NrLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9j
ay5jcHAKaW5kZXggOTNiZDk2MmQ0ZGVhZDQwMzllNWQwMTU0N2I1NTgyMDhkOWVlZWE3Ny4uZTIz
NGViNmU0MTA1NTBkOTQ5ZThjM2NmYjdhOTFlZGY2NTk4ZGQ0MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9SVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2NrLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1JUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2su
Y3BwCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpZiBFTkFCTEUoV0VCX1JUQykKIAorI2luY2x1ZGUg
IlByb2Nlc3NRdWFsaWZpZWQuaCIKICNpbmNsdWRlICJSVENEYXRhQ2hhbm5lbEhhbmRsZXJDbGll
bnQuaCIKICNpbmNsdWRlICJSVENOb3RpZmllcnNNb2NrLmgiCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcAppbmRleCBiODFlZDA4OTMyNjI3MjQ1ZTE2OWRlNjg3NjMwMmY0ZjhhMWIw
ODljLi4yNTY5Y2I4MjMzZjI0NTI3ZWFiOWU2N2U5MjAyNzdkMmFhZmU5MWI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0yNzU0LDEyICsyNzU0LDEyIEBAIHVuc2lnbmVk
IEludGVybmFsczo6bnVtYmVyT2ZSZXNpemVPYnNlcnZlcnMoY29uc3QgRG9jdW1lbnQmIGRvY3Vt
ZW50KSBjb25zdAogCiB1aW50NjRfdCBJbnRlcm5hbHM6OmRvY3VtZW50SWRlbnRpZmllcihjb25z
dCBEb2N1bWVudCYgZG9jdW1lbnQpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGRvY3VtZW50LmlkZW50
aWZpZXIoKS50b1VJbnQ2NCgpOworICAgIHJldHVybiBkb2N1bWVudC5pZGVudGlmaWVyKCkub2Jq
ZWN0KCkudG9VSW50NjQoKTsKIH0KIAogYm9vbCBJbnRlcm5hbHM6OmlzRG9jdW1lbnRBbGl2ZSh1
aW50NjRfdCBkb2N1bWVudElkZW50aWZpZXIpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIERvY3VtZW50
OjphbGxEb2N1bWVudHNNYXAoKS5jb250YWlucyhtYWtlT2JqZWN0SWRlbnRpZmllcjxEb2N1bWVu
dElkZW50aWZpZXJUeXBlPihkb2N1bWVudElkZW50aWZpZXIpKTsKKyAgICByZXR1cm4gRG9jdW1l
bnQ6OmFsbERvY3VtZW50c01hcCgpLmNvbnRhaW5zKHsgbWFrZU9iamVjdElkZW50aWZpZXI8U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXJUeXBlPihkb2N1bWVudElkZW50aWZpZXIpLCBQ
cm9jZXNzOjppZGVudGlmaWVyKCkgfSk7CiB9CiAKIHVpbnQ2NF90IEludGVybmFsczo6c3RvcmFn
ZUFyZWFNYXBDb3VudCgpIGNvbnN0CkBAIC0yODAwLDEyICsyODAwLDcgQEAgYm9vbCBJbnRlcm5h
bHM6OmlzQW55V29ya2xldEdsb2JhbFNjb3BlQWxpdmUoKSBjb25zdAogCiBTdHJpbmcgSW50ZXJu
YWxzOjpzZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcihjb25zdCBEb2N1bWVudCYgZG9jdW1l
bnQpIGNvbnN0CiB7Ci0jaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotICAgIHJldHVybiBTZXJ2
aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciB7IFNlcnZpY2VXb3JrZXJQcm92aWRlcjo6c2luZ2xl
dG9uKCkuc2VydmljZVdvcmtlckNvbm5lY3Rpb24oKS5zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
cigpLCBkb2N1bWVudC5pZGVudGlmaWVyKCkgfS50b1N0cmluZygpOwotI2Vsc2UKLSAgICBVTlVT
RURfUEFSQU0oZG9jdW1lbnQpOwotICAgIHJldHVybiBTdHJpbmcoKTsKLSNlbmRpZgorICAgIHJl
dHVybiBkb2N1bWVudC5pZGVudGlmaWVyKCkudG9TdHJpbmcoKTsKIH0KIAogUmVmUHRyPFdpbmRv
d1Byb3h5PiBJbnRlcm5hbHM6Om9wZW5EdW1teUluc3BlY3RvckZyb250ZW5kKGNvbnN0IFN0cmlu
ZyYgdXJsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xp
ZW50Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGll
bnRDb25uZWN0aW9uLmNwcAppbmRleCBmZTgyNjBlYzcxOTdlMTZiZWZmM2Q5MzExZGRkOTI5NjYw
NjExYzg3Li4yNjk0MGI1MDQ1ZjFmOTZkYTczNGZiNTc0MDk1OGU1ZmExMjYyOTdmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9u
LmNwcApAQCAtNDEsMTEgKzQxLDEyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGlj
IGJvb2wgZGlzcGF0Y2hUb0NvbnRleHRUaHJlYWRJZk5lY2Vzc2FyeShjb25zdCBEb2N1bWVudE9y
V29ya2VySWRlbnRpZmllciYgY29udGV4dElkZW50aWZpZXIsIEZ1bmN0aW9uPHZvaWQoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYpPiYmIHRhc2spCitzdGF0aWMgYm9vbCBkaXNwYXRjaFRvQ29udGV4
dFRocmVhZElmTmVjZXNzYXJ5KGNvbnN0IFNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXIm
IGNvbnRleHRJZGVudGlmaWVyLCBGdW5jdGlvbjx2b2lkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
KT4mJiB0YXNrKQogewogICAgIFJFTEVBU0VfQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBi
b29sIHdhc1Bvc3RlZCA9IGZhbHNlOwotICAgIHN3aXRjaE9uKGNvbnRleHRJZGVudGlmaWVyLCBb
Jl0gKERvY3VtZW50SWRlbnRpZmllciBpZGVudGlmaWVyKSB7CisgICAgc3dpdGNoT24oY29udGV4
dElkZW50aWZpZXIsIFsmXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgaWRlbnRp
ZmllcikgeworICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHByb2JhYmx5IGp1c3QgdXNlIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnBvc3RUYXNrVG8oKS4KICAgICAgICAgYXV0byogZG9jdW1l
bnQgPSBEb2N1bWVudDo6YWxsRG9jdW1lbnRzTWFwKCkuZ2V0KGlkZW50aWZpZXIpOwogICAgICAg
ICBpZiAoIWRvY3VtZW50KQogICAgICAgICAgICAgcmV0dXJuOwpAQCAtNjMsNyArNjQsNyBAQCBT
V0NsaWVudENvbm5lY3Rpb246OlNXQ2xpZW50Q29ubmVjdGlvbigpID0gZGVmYXVsdDsKIAogU1dD
bGllbnRDb25uZWN0aW9uOjp+U1dDbGllbnRDb25uZWN0aW9uKCkgPSBkZWZhdWx0OwogCi12b2lk
IFNXQ2xpZW50Q29ubmVjdGlvbjo6c2NoZWR1bGVKb2IoRG9jdW1lbnRPcldvcmtlcklkZW50aWZp
ZXIgY29udGV4dElkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2JEYXRh
KQordm9pZCBTV0NsaWVudENvbm5lY3Rpb246OnNjaGVkdWxlSm9iKFNlcnZpY2VXb3JrZXJPckNs
aWVudElkZW50aWZpZXIgY29udGV4dElkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JE
YXRhJiBqb2JEYXRhKQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9zY2hlZHVsZWRKb2JTb3Vy
Y2VzLmFkZChqb2JEYXRhLmlkZW50aWZpZXIoKS5qb2JJZGVudGlmaWVyLCBjb250ZXh0SWRlbnRp
Zmllcik7CiAgICAgQVNTRVJUX1VOVVNFRChhZGRSZXN1bHQsIGFkZFJlc3VsdC5pc05ld0VudHJ5
KTsKQEAgLTExOCw3ICsxMTksNyBAQCB2b2lkIFNXQ2xpZW50Q29ubmVjdGlvbjo6c3RhcnRTY3Jp
cHRGZXRjaEZvclNlcnZlcihTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllciBqbwogfQogCiAKLXZv
aWQgU1dDbGllbnRDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChE
b2N1bWVudElkZW50aWZpZXIgZGVzdGluYXRpb25Db250ZXh0SWRlbnRpZmllciwgTWVzc2FnZVdp
dGhNZXNzYWdlUG9ydHMmJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2VyRGF0YSYmIHNvdXJjZURhdGEs
IFN0cmluZyYmIHNvdXJjZU9yaWdpbikKK3ZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpwb3N0TWVz
c2FnZVRvU2VydmljZVdvcmtlckNsaWVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
ciBkZXN0aW5hdGlvbkNvbnRleHRJZGVudGlmaWVyLCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYm
IG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJEYXRhJiYgc291cmNlRGF0YSwgU3RyaW5nJiYgc291cmNl
T3JpZ2luKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKQEAgLTIyNCw3ICsyMjUs
NyBAQCB2b2lkIFNXQ2xpZW50Q29ubmVjdGlvbjo6c2V0UmVnaXN0cmF0aW9uVXBkYXRlVmlhQ2Fj
aGUoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbgogICAgIH0KIH0KIAotdm9pZCBTV0NsaWVudENv
bm5lY3Rpb246Om5vdGlmeUNsaWVudHNPZkNvbnRyb2xsZXJDaGFuZ2UoY29uc3QgSGFzaFNldDxE
b2N1bWVudElkZW50aWZpZXI+JiBjb250ZXh0SWRlbnRpZmllcnMsIFNlcnZpY2VXb3JrZXJEYXRh
JiYgbmV3Q29udHJvbGxlcikKK3ZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpub3RpZnlDbGllbnRz
T2ZDb250cm9sbGVyQ2hhbmdlKGNvbnN0IEhhc2hTZXQ8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXI+JiBjb250ZXh0SWRlbnRpZmllcnMsIFNlcnZpY2VXb3JrZXJEYXRhJiYgbmV3Q29u
dHJvbGxlcikKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVCghY29u
dGV4dElkZW50aWZpZXJzLmlzRW1wdHkoKSk7CkBAIC0yNjAsNyArMjYxLDcgQEAgdm9pZCBTV0Ns
aWVudENvbm5lY3Rpb246OnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudHMoKQogewogICAgIGZv
ciAoYXV0byogZG9jdW1lbnQgOiBEb2N1bWVudDo6YWxsRG9jdW1lbnRzKCkpIHsKICAgICAgICAg
YXV0byBjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyID0gZG9j
dW1lbnQtPmFjdGl2ZVNlcnZpY2VXb3JrZXIoKSA/IHN0ZDo6bWFrZV9vcHRpb25hbDxTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcj4oZG9jdW1lbnQtPmFjdGl2ZVNlcnZpY2VXb3Jr
ZXIoKS0+cmVnaXN0cmF0aW9uSWRlbnRpZmllcigpKSA6IHN0ZDo6bnVsbG9wdDsKLSAgICAgICAg
cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGRvY3VtZW50LT50b3BPcmlnaW4oKSwgU2Vydmlj
ZVdvcmtlckNsaWVudERhdGE6OmZyb20oKmRvY3VtZW50LCAqdGhpcyksIGNvbnRyb2xsaW5nU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIGRvY3VtZW50LT51c2VyQWdlbnQoZG9j
dW1lbnQtPnVybCgpKSk7CisgICAgICAgIHJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChkb2N1
bWVudC0+dG9wT3JpZ2luKCksIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjpmcm9tKCpkb2N1bWVu
dCksIGNvbnRyb2xsaW5nU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIGRvY3Vt
ZW50LT51c2VyQWdlbnQoZG9jdW1lbnQtPnVybCgpKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmgKaW5kZXgg
MTM3ZTkzNTg3MGY2OTMyNjQzYWNhMjY5MjBmMzc2ZWQ3MDkxYTZlYy4uMWZhMTdmOWU4Y2RjMmVk
MTg4Zjc1NzdkNGIxNGJkZjljYjBiMmEwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uaApAQCAtMjcsMTAgKzI3LDEwIEBACiAK
ICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKLSNpbmNsdWRlICJEb2N1bWVudElkZW50aWZp
ZXIuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1ZGUgIlB1c2hQZXJtaXNzaW9u
U3RhdGUuaCIKICNpbmNsdWRlICJQdXNoU3Vic2NyaXB0aW9uRGF0YS5oIgorI2luY2x1ZGUgIlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtl
ckpvYi5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJUeXBlcy5oIgogI2luY2x1ZGUgPHd0Zi9D
b21wbGV0aW9uSGFuZGxlci5oPgpAQCAtNTAsNyArNTAsNiBAQCBlbnVtIGNsYXNzIFNob3VsZE5v
dGlmeVdoZW5SZXNvbHZlZCA6IGJvb2w7CiBzdHJ1Y3QgRXhjZXB0aW9uRGF0YTsKIHN0cnVjdCBN
ZXNzYWdlV2l0aE1lc3NhZ2VQb3J0czsKIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YTsK
LXN0cnVjdCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcjsKIHN0cnVjdCBTZXJ2aWNlV29y
a2VyRGF0YTsKIHN0cnVjdCBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQ7CiBzdHJ1Y3QgU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE7CkBAIC03MCw5ICs2OSw5IEBAIHB1YmxpYzoKIAogICAg
IHZpcnR1YWwgdm9pZCBhZGRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSW5TZXJ2ZXIoU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVt
b3ZlU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkluU2VydmVyKFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25JZGVudGlmaWVyKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlVW5yZWdpc3Rl
ckpvYkluU2VydmVyKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBEb2N1bWVu
dE9yV29ya2VySWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjxi
b29sPiYmKT4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZVVucmVnaXN0ZXJKb2JJ
blNlcnZlcihTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgU2VydmljZVdvcmtl
ck9yQ2xpZW50SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjxi
b29sPiYmKT4mJikgPSAwOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIHNjaGVk
dWxlSm9iKERvY3VtZW50T3JXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VySm9i
RGF0YSYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUpvYihTZXJ2
aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYp
OwogCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlc29sdmVSZWdpc3RyYXRpb25Qcm9taXNlKGNvbnN0
IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmKSA9IDA7CiAKQEAgLTgyLDcgKzgxLDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBtYXlIYXZlU2VydmljZVdvcmtlclJlZ2lzdGVyZWRG
b3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJikgY29uc3QgPSAwOwogCiAgICAgdmly
dHVhbCB2b2lkIHJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChjb25zdCBTZWN1cml0eU9yaWdp
biYgdG9wT3JpZ2luLCBjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYsIGNvbnN0IHN0ZDo6
b3B0aW9uYWw8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+JiwgY29uc3QgU3Ry
aW5nJiB1c2VyQWdlbnQpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgdW5yZWdpc3RlclNlcnZpY2VX
b3JrZXJDbGllbnQoRG9jdW1lbnRJZGVudGlmaWVyKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVu
cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgZmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZl
cihjb25zdCBTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQmKSA9IDA7CiAKQEAgLTEwOSwxMyArMTA4
LDEzIEBAIHByb3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGpvYlJlamVjdGVkSW5T
ZXJ2ZXIoU2VydmljZVdvcmtlckpvYklkZW50aWZpZXIsIGNvbnN0IEV4Y2VwdGlvbkRhdGEmKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlZ2lzdHJhdGlvbkpvYlJlc29sdmVkSW5TZXJ2ZXIo
U2VydmljZVdvcmtlckpvYklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRh
JiYsIFNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
dGFydFNjcmlwdEZldGNoRm9yU2VydmVyKFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyLCBjb25z
dCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiwgRmV0Y2hPcHRpb25zOjpDYWNoZSk7Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChE
b2N1bWVudElkZW50aWZpZXIgZGVzdGluYXRpb25Db250ZXh0SWRlbnRpZmllciwgTWVzc2FnZVdp
dGhNZXNzYWdlUG9ydHMmJiwgU2VydmljZVdvcmtlckRhdGEmJiBzb3VyY2UsIFN0cmluZyYmIHNv
dXJjZU9yaWdpbik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwb3N0TWVzc2FnZVRvU2Vydmlj
ZVdvcmtlckNsaWVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBkZXN0aW5hdGlv
bkNvbnRleHRJZGVudGlmaWVyLCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmLCBTZXJ2aWNlV29y
a2VyRGF0YSYmIHNvdXJjZSwgU3RyaW5nJiYgc291cmNlT3JpZ2luKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHVwZGF0ZVJlZ2lzdHJhdGlvblN0YXRlKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uU3RhdGUsIGNvbnN0IHN0ZDo6
b3B0aW9uYWw8U2VydmljZVdvcmtlckRhdGE+Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1
cGRhdGVXb3JrZXJTdGF0ZShTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU2VydmljZVdvcmtlclN0
YXRlKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZpcmVVcGRhdGVGb3VuZEV2ZW50KFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldFJlZ2lzdHJhdGlvbkxhc3RVcGRhdGVUaW1lKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25J
ZGVudGlmaWVyLCBXYWxsVGltZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRSZWdpc3Ry
YXRpb25VcGRhdGVWaWFDYWNoZShTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwg
U2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG5v
dGlmeUNsaWVudHNPZkNvbnRyb2xsZXJDaGFuZ2UoY29uc3QgSGFzaFNldDxEb2N1bWVudElkZW50
aWZpZXI+JiBjb250ZXh0SWRlbnRpZmllcnMsIFNlcnZpY2VXb3JrZXJEYXRhJiYgbmV3Q29udHJv
bGxlcik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBub3RpZnlDbGllbnRzT2ZDb250cm9sbGVy
Q2hhbmdlKGNvbnN0IEhhc2hTZXQ8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+JiBj
b250ZXh0SWRlbnRpZmllcnMsIFNlcnZpY2VXb3JrZXJEYXRhJiYgbmV3Q29udHJvbGxlcik7CiAK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyUGVuZGluZ0pvYnMoKTsKIApAQCAtMTI1LDcg
KzEyNCw3IEBAIHByaXZhdGU6CiAgICAgZW51bSBjbGFzcyBJc0pvYkNvbXBsZXRlIHsgTm8sIFll
cyB9OwogICAgIGJvb2wgcG9zdFRhc2tGb3JKb2IoU2VydmljZVdvcmtlckpvYklkZW50aWZpZXIs
IElzSm9iQ29tcGxldGUsIEZ1bmN0aW9uPHZvaWQoU2VydmljZVdvcmtlckpvYiYpPiYmKTsKIAot
ICAgIEhhc2hNYXA8U2VydmljZVdvcmtlckpvYklkZW50aWZpZXIsIERvY3VtZW50T3JXb3JrZXJJ
ZGVudGlmaWVyPiBtX3NjaGVkdWxlZEpvYlNvdXJjZXM7CisgICAgSGFzaE1hcDxTZXJ2aWNlV29y
a2VySm9iSWRlbnRpZmllciwgU2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllcj4gbV9zY2hl
ZHVsZWRKb2JTb3VyY2VzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuY3BwCmluZGV4IDM3NzQy
NTc4N2Q1ZjQxMWYzYzgxNTI5ZTYzNGI1OWRkMzU2ZWVhOTMuLmRmOTBkNTc3N2VhM2M4YmQ3YjIy
ZTVkYjk1NDJjZGVmMmVmN2E4OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlci5jcHAKQEAgLTExNiwxMyArMTE2LDEyIEBAIEV4Y2VwdGlvbk9y
PHZvaWQ+IFNlcnZpY2VXb3JrZXI6OnBvc3RNZXNzYWdlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGds
b2JhbE9iamVjdCwKICAgICAgICAgcmV0dXJuIHBvcnRzT3JFeGNlcHRpb24ucmVsZWFzZUV4Y2Vw
dGlvbigpOwogCiAgICAgYXV0byYgY29udGV4dCA9ICpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7
CisgICAgLy8gRklYTUU6IE1heWJlIHdlIGNvdWxkIHVzZSBhIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyIGZvciBzZXJ2aWNlIHdvcmtlcnMgdG9vLgogICAgIFNlcnZpY2VXb3JrZXJP
ckNsaWVudElkZW50aWZpZXIgc291cmNlSWRlbnRpZmllcjsKICAgICBpZiAoaXM8U2VydmljZVdv
cmtlckdsb2JhbFNjb3BlPihjb250ZXh0KSkKICAgICAgICAgc291cmNlSWRlbnRpZmllciA9IGRv
d25jYXN0PFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkudGhyZWFkKCkuaWRlbnRp
ZmllcigpOwotICAgIGVsc2UgewotICAgICAgICBhdXRvJiBjb25uZWN0aW9uID0gU2VydmljZVdv
cmtlclByb3ZpZGVyOjpzaW5nbGV0b24oKS5zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbigpOwotICAg
ICAgICBzb3VyY2VJZGVudGlmaWVyID0gU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgeyBj
b25uZWN0aW9uLnNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKCksIGRvd25jYXN0PERvY3VtZW50
Pihjb250ZXh0KS5pZGVudGlmaWVyKCkgfTsKLSAgICB9CisgICAgZWxzZQorICAgICAgICBzb3Vy
Y2VJZGVudGlmaWVyID0gY29udGV4dC5pZGVudGlmaWVyKCk7CiAKICAgICBNZXNzYWdlV2l0aE1l
c3NhZ2VQb3J0cyBtZXNzYWdlIHsgbWVzc2FnZURhdGEucmVsZWFzZVJldHVyblZhbHVlKCksIHBv
cnRzT3JFeGNlcHRpb24ucmVsZWFzZVJldHVyblZhbHVlKCkgfTsKICAgICBzd0Nvbm5lY3Rpb24o
KS5wb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihpZGVudGlmaWVyKCksIFdURk1vdmUobWVzc2Fn
ZSksIHNvdXJjZUlkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmgKaW5kZXggMmUyYzk5ZjAzMGM3NmFiOWNiMWEy
MzAxOGIyYjQ5NzE4ODhjOTlhMC4uMWZmMmMyMzVhMTI0MjczNjgzNjE0NzAyZGU4MTZkZmUxYzQ3
YmFmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlckNsaWVudC5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJDb250ZXh0RGVz
dHJ1Y3Rpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCisjaW5jbHVkZSAi
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29y
a2VyQ2xpZW50RGF0YS5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1N0cm9uZy5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC00Niw3ICs0Nyw3IEBAIHN0cnVjdCBTdHJ1Y3R1
cmVkU2VyaWFsaXplT3B0aW9uczsKIAogY2xhc3MgU2VydmljZVdvcmtlckNsaWVudCA6IHB1Ymxp
YyBSZWZDb3VudGVkPFNlcnZpY2VXb3JrZXJDbGllbnQ+LCBwdWJsaWMgQ29udGV4dERlc3RydWN0
aW9uT2JzZXJ2ZXIgewogcHVibGljOgotICAgIHVzaW5nIElkZW50aWZpZXIgPSBTZXJ2aWNlV29y
a2VyQ2xpZW50SWRlbnRpZmllcjsKKyAgICB1c2luZyBJZGVudGlmaWVyID0gU2NyaXB0RXhlY3V0
aW9uQ29udGV4dElkZW50aWZpZXI7CiAKICAgICB1c2luZyBUeXBlID0gU2VydmljZVdvcmtlckNs
aWVudFR5cGU7CiAgICAgdXNpbmcgRnJhbWVUeXBlID0gU2VydmljZVdvcmtlckNsaWVudEZyYW1l
VHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyQ2xpZW50RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlckNsaWVudERhdGEuY3BwCmluZGV4IDI1ZDdjMGE3ZjRlYmU5NDY2N2JmMTgwNTZk
ZTY3N2UyNzMwYjg3MjIuLjY4ZjBlNjBlYzc0NzRhYmUwNmIyNjExNDJjN2Y3NTJlYjI0Y2RjMmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
Q2xpZW50RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJDbGllbnREYXRhLmNwcApAQCAtNjEsNyArNjEsNyBAQCBTZXJ2aWNlV29ya2VyQ2xp
ZW50RGF0YSBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YTo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKICAg
ICByZXR1cm4geyBpZGVudGlmaWVyLCB0eXBlLCBmcmFtZVR5cGUsIHVybC5pc29sYXRlZENvcHko
KSwgbGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQgfTsKIH0KIAotU2VydmljZVdvcmtlckNs
aWVudERhdGEgU2VydmljZVdvcmtlckNsaWVudERhdGE6OmZyb20oU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCwgU1dDbGllbnRDb25uZWN0aW9uJiBjb25uZWN0aW9uKQorU2VydmljZVdv
cmtlckNsaWVudERhdGEgU2VydmljZVdvcmtlckNsaWVudERhdGE6OmZyb20oU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCkKIHsKICAgICBib29sIGlzRG9jdW1lbnQgPSBpczxEb2N1bWVu
dD4oY29udGV4dCk7CiAgICAgUkVMRUFTRV9BU1NFUlQoaXNEb2N1bWVudCk7IC8vIFdlIGRvIG5v
dCBzdXBwb3J0IGRlZGljYXRlZCB3b3JrZXJzIGFzIGNsaWVudHMgeWV0LgpAQCAtNzAsNyArNzAs
NyBAQCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YTo6ZnJv
bShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjbwogICAgIGF1dG8gbGFzdE5hdmlnYXRpb25XYXNB
cHBJbml0aWF0ZWQgPSBkb2N1bWVudC5sb2FkZXIoKSAmJiBkb2N1bWVudC5sb2FkZXIoKS0+bGFz
dE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQoKSA/IExhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlh
dGVkOjpZZXMgOiBMYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZDo6Tm87CiAKICAgICByZXR1
cm4gewotICAgICAgICB7IGNvbm5lY3Rpb24uc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIoKSwg
ZG9jdW1lbnQuaWRlbnRpZmllcigpIH0sCisgICAgICAgIGNvbnRleHQuaWRlbnRpZmllcigpLAog
ICAgICAgICBpc0RvY3VtZW50ID8gU2VydmljZVdvcmtlckNsaWVudFR5cGU6OldpbmRvdyA6IFNl
cnZpY2VXb3JrZXJDbGllbnRUeXBlOjpXb3JrZXIsCiAgICAgICAgIHRvU2VydmljZVdvcmtlckNs
aWVudEZyYW1lVHlwZShjb250ZXh0KSwKICAgICAgICAgY29udGV4dC51cmwoKSwgbGFzdE5hdmln
YXRpb25XYXNBcHBJbml0aWF0ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmgKaW5kZXggMGY0ZjYxYjcwMzVhNWE2
NzcxMzkwYzAyN2MwMWZhYWNkNmU0NTBlZC4uZTI4YjJiYzU3OGJlYjI4YmYwMTdkOTNhYjExMzZl
YWFiNmZjYzFmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJDbGllbnREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmgKQEAgLTI3LDcgKzI3LDggQEAKIAogI2lmIEVO
QUJMRShTRVJWSUNFX1dPUktFUikKIAotI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDbGllbnRJZGVu
dGlmaWVyLmgiCisjaW5jbHVkZSAiUHJvY2Vzc1F1YWxpZmllZC5oIgorI2luY2x1ZGUgIlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckNs
aWVudFR5cGUuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyVHlwZXMuaCIKICNpbmNsdWRlIDx3
dGYvVVJMLmg+CkBAIC00MCw3ICs0MSw3IEBAIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7
CiBlbnVtIGNsYXNzIExhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkIDogYm9vbCB7IE5vLCBZ
ZXMgfTsKIAogc3RydWN0IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhIHsKLSAgICBTZXJ2aWNlV29y
a2VyQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyOworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyIGlkZW50aWZpZXI7CiAgICAgU2VydmljZVdvcmtlckNsaWVudFR5cGUgdHlw
ZTsKICAgICBTZXJ2aWNlV29ya2VyQ2xpZW50RnJhbWVUeXBlIGZyYW1lVHlwZTsKICAgICBVUkwg
dXJsOwpAQCAtNDgsNyArNDksNyBAQCBzdHJ1Y3QgU2VydmljZVdvcmtlckNsaWVudERhdGEgewog
CiAgICAgU2VydmljZVdvcmtlckNsaWVudERhdGEgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7CiAKLSAg
ICBzdGF0aWMgU2VydmljZVdvcmtlckNsaWVudERhdGEgZnJvbShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgU1dDbGllbnRDb25uZWN0aW9uJik7CisgICAgc3RhdGljIFNlcnZpY2VXb3JrZXJDbGll
bnREYXRhIGZyb20oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwogCiAgICAgdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNs
YXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnREYXRh
PiBkZWNvZGUoRGVjb2RlciYpOwpAQCAtNjMsNyArNjQsNyBAQCB2b2lkIFNlcnZpY2VXb3JrZXJD
bGllbnREYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+CiBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiBTZXJ2aWNl
V29ya2VyQ2xpZW50RGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgc3RkOjpv
cHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gaWRlbnRpZmllcjsKKyAgICBz
dGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBpZGVudGlmaWVy
OwogICAgIGRlY29kZXIgPj4gaWRlbnRpZmllcjsKICAgICBpZiAoIWlkZW50aWZpZXIpCiAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmNmMzMzNDM5MTlmNjA2NmU3NDI2MzdkYzEz
ZTkyZDFjM2RkZmZjNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudElk
ZW50aWZpZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRp
Zmllci5oIgotCi0jaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotCi0jaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
VG9JbnRlZ2VyQ29udmVyc2lvbi5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXN0ZDo6b3B0
aW9uYWw8U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+IFNlcnZpY2VXb3JrZXJDbGllbnRJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKFN0cmluZ1ZpZXcgc3RyaW5nKQotewotICAgIFNlcnZpY2VX
b3JrZXJDbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXI7Ci0gICAgdW5zaWduZWQgY291
bnRlciA9IDA7Ci0gICAgZm9yIChhdXRvIGl0ZW0gOiBzdHJpbmcuc3BsaXQoJy0nKSkgewotICAg
ICAgICBhdXRvIGlkZW50aWZpZXIgPSBwYXJzZUludGVnZXI8dWludDY0X3Q+KGl0ZW0pOwotICAg
ICAgICBpZiAoIWlkZW50aWZpZXIgfHwgISppZGVudGlmaWVyKQotICAgICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKLSAgICAgICAgaWYgKCFjb3VudGVyKyspCi0gICAgICAgICAgICBjbGll
bnRJZGVudGlmaWVyLnNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyID0gbWFrZU9iamVjdElkZW50
aWZpZXI8U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllclR5cGU+KGlkZW50aWZpZXIudmFsdWUo
KSk7Ci0gICAgICAgIGVsc2UgaWYgKGNvdW50ZXIgPT0gMikKLSAgICAgICAgICAgIGNsaWVudElk
ZW50aWZpZXIuY29udGV4dElkZW50aWZpZXIgPSBtYWtlT2JqZWN0SWRlbnRpZmllcjxEb2N1bWVu
dElkZW50aWZpZXJUeXBlPihpZGVudGlmaWVyLnZhbHVlKCkpOwotICAgIH0KLSAgICByZXR1cm4g
KGNvdW50ZXIgPT0gMikgPyBzdGQ6Om1ha2Vfb3B0aW9uYWwoV1RGTW92ZShjbGllbnRJZGVudGlm
aWVyKSkgOiBzdGQ6Om51bGxvcHQ7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2Vu
ZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllci5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJjZTI3Y2NlMzA2OTY4M2E4OWVkNDFmNmE3
NDZmNjQ0YmIyMmRlZjIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRJ
ZGVudGlmaWVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMDEgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxNy0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0KLSNpbmNs
dWRlICJEb2N1bWVudElkZW50aWZpZXIuaCIKLSNpbmNsdWRlICJTZXJ2aWNlV29ya2VyVHlwZXMu
aCIKLSNpbmNsdWRlIDx3dGYvSGFzaGVyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotc3Ry
dWN0IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIHsKLSAgICBTV1NlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyOwotICAgIERvY3VtZW50SWRl
bnRpZmllciBjb250ZXh0SWRlbnRpZmllcjsKLQotICAgIHVuc2lnbmVkIGhhc2goKSBjb25zdDsK
LQotICAgIFN0cmluZyB0b1N0cmluZygpIGNvbnN0IHsgcmV0dXJuIG1ha2VTdHJpbmcoc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIudG9VSW50NjQoKSwgJy0nLCBjb250ZXh0SWRlbnRpZmllci50
b1VJbnQ2NCgpKTsgfQotICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGll
bnRJZGVudGlmaWVyPiBmcm9tU3RyaW5nKFN0cmluZ1ZpZXcpOwotCi0gICAgdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwotICAgIHRlbXBsYXRlPGNs
YXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVu
dGlmaWVyPiBkZWNvZGUoRGVjb2RlciYpOwotfTsKLQotaW5saW5lIGJvb2wgb3BlcmF0b3I9PShj
b25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYgYSwgY29uc3QgU2VydmljZVdvcmtl
ckNsaWVudElkZW50aWZpZXImIGIpCi17Ci0gICAgcmV0dXJuIGEuc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIgPT0gYi5zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciAmJiBhLmNvbnRleHRJZGVu
dGlmaWVyID09IGIuY29udGV4dElkZW50aWZpZXI7Ci19Ci0KLXRlbXBsYXRlPGNsYXNzIEVuY29k
ZXI+Ci12b2lkIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyOjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKLXsKLSAgICBlbmNvZGVyIDw8IHNlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyIDw8IGNvbnRleHRJZGVudGlmaWVyOwotfQotCi10ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgot
c3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gU2VydmljZVdvcmtl
ckNsaWVudElkZW50aWZpZXI6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIHN0ZDo6
b3B0aW9uYWw8U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcj4gc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXI7Ci0gICAgZGVjb2RlciA+PiBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcjsKLSAg
ICBpZiAoIXNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKQotICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwotCi0gICAgc3RkOjpvcHRpb25hbDxEb2N1bWVudElkZW50aWZpZXI+IGNvbnRleHRJ
ZGVudGlmaWVyOwotICAgIGRlY29kZXIgPj4gY29udGV4dElkZW50aWZpZXI7Ci0gICAgaWYgKCFj
b250ZXh0SWRlbnRpZmllcikKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgIHJl
dHVybiB7IHsgKnNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCAqY29udGV4dElkZW50aWZpZXIg
fSB9OwotfQotCi1pbmxpbmUgdW5zaWduZWQgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI6
Omhhc2goKSBjb25zdAotewotICAgIHJldHVybiBjb21wdXRlSGFzaChzZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciwgY29udGV4dElkZW50aWZpZXIpOwotfQotCi1zdHJ1Y3QgU2VydmljZVdvcmtl
ckNsaWVudElkZW50aWZpZXJIYXNoIHsKLSAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYga2V5KSB7IHJldHVybiBrZXku
aGFzaCgpOyB9Ci0gICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgV2ViQ29yZTo6U2VydmljZVdv
cmtlckNsaWVudElkZW50aWZpZXImIGEsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGll
bnRJZGVudGlmaWVyJiBiKSB7IHJldHVybiBhID09IGI7IH0KLSAgICBzdGF0aWMgY29uc3QgYm9v
bCBzYWZlVG9Db21wYXJlVG9FbXB0eU9yRGVsZXRlZCA9IHRydWU7Ci19OwotCi19IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCi0KLW5hbWVzcGFjZSBXVEYgewotCi10ZW1wbGF0ZTw+IHN0cnVjdCBIYXNo
VHJhaXRzPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiA6IEdlbmVyaWNI
YXNoVHJhaXRzPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiB7Ci0gICAg
c3RhdGljIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIGVtcHR5VmFsdWUo
KSB7IHJldHVybiB7IH07IH0KLSAgICBzdGF0aWMgdm9pZCBjb25zdHJ1Y3REZWxldGVkVmFsdWUo
V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXImIHNsb3QpIHsgbmV3IChOb3RO
dWxsLCAmc2xvdC5zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikgV2ViQ29yZTo6U1dTZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllcihIYXNoVGFibGVEZWxldGVkVmFsdWUpOyB9Ci0gICAgc3RhdGlj
IGJvb2wgaXNEZWxldGVkVmFsdWUoY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElk
ZW50aWZpZXImIHNsb3QpIHsgcmV0dXJuIHNsb3Quc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIu
aXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKTsgfQotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgRGVm
YXVsdEhhc2g8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+IDogV2ViQ29y
ZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXJIYXNoIHsgfTsKLQotfQotCi0jZW5kaWYg
Ly8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50cy5jcHAKaW5kZXggYzgyNzIwZWE3NjQx
MDllZDNiMjBlYjRkNjY2NDY1MjhjMWRjYWY1NC4uYWI2YjVlODQ3ZjJiYmVkNzY4YzNkMTkwOWFi
MWE4MTg1M2IwYzIxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlckNsaWVudHMuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVk
ZSAiU2VydmljZVdvcmtlci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5o
IgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJUaHJlYWQuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdUb0ludGVnZXJDb252ZXJzaW9uLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
NTIsOSArNTMsMjYgQEAgc3RhdGljIGlubGluZSB2b2lkIGRpZEZpbmlzaEdldFJlcXVlc3QoU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlJiBzY29wZSwgRGVmZXJyZWQKICAgICBwcm9taXNlLnJlc29s
dmU8SURMSW50ZXJmYWNlPFNlcnZpY2VXb3JrZXJDbGllbnQ+PihTZXJ2aWNlV29ya2VyQ2xpZW50
OjpnZXRPckNyZWF0ZShzY29wZSwgV1RGTW92ZShkYXRhLnZhbHVlKCkpKSk7CiB9CiAKK3N0YXRp
YyBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzY3JpcHRF
eGVjdXRpb25Db250ZXh0SWRlbnRpZmllckZyb21TdHJpbmcoU3RyaW5nVmlldyBzdHJpbmcpCit7
CisgICAgUHJvY2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lkZW50aWZpZXI7CisgICAgT2JqZWN0SWRl
bnRpZmllcjxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllclR5cGU+IGNvbnRleHRJZGVu
dGlmaWVyOworICAgIHVuc2lnbmVkIGNvdW50ZXIgPSAwOworICAgIGZvciAoYXV0byBpdGVtIDog
c3RyaW5nLnNwbGl0KCctJykpIHsKKyAgICAgICAgYXV0byBpZGVudGlmaWVyID0gcGFyc2VJbnRl
Z2VyPHVpbnQ2NF90PihpdGVtKTsKKyAgICAgICAgaWYgKCFpZGVudGlmaWVyIHx8ICEqaWRlbnRp
ZmllcikKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgICAgIGlmICghY291
bnRlcisrKQorICAgICAgICAgICAgcHJvY2Vzc0lkZW50aWZpZXIgPSBtYWtlT2JqZWN0SWRlbnRp
ZmllcjxQcm9jZXNzSWRlbnRpZmllclR5cGU+KCppZGVudGlmaWVyKTsKKyAgICAgICAgZWxzZSBp
ZiAoY291bnRlciA9PSAyKQorICAgICAgICAgICAgY29udGV4dElkZW50aWZpZXIgPSBtYWtlT2Jq
ZWN0SWRlbnRpZmllcjxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllclR5cGU+KCppZGVu
dGlmaWVyKTsKKyAgICB9CisgICAgcmV0dXJuIChwcm9jZXNzSWRlbnRpZmllciAmJiBjb250ZXh0
SWRlbnRpZmllcikgPyBzdGQ6Om1ha2Vfb3B0aW9uYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIgeyBjb250ZXh0SWRlbnRpZmllciwgcHJvY2Vzc0lkZW50aWZpZXIgfSkgOiBzdGQ6
Om51bGxvcHQ7Cit9CisKIHZvaWQgU2VydmljZVdvcmtlckNsaWVudHM6OmdldChTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIGlkLCBSZWY8RGVmZXJyZWRQcm9t
aXNlPiYmIHByb21pc2UpCiB7Ci0gICAgYXV0byBpZGVudGlmaWVyID0gU2VydmljZVdvcmtlckNs
aWVudElkZW50aWZpZXI6OmZyb21TdHJpbmcoaWQpOworICAgIGF1dG8gaWRlbnRpZmllciA9IHNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyRnJvbVN0cmluZyhpZCk7CiAgICAgaWYgKCFp
ZGVudGlmaWVyKSB7CiAgICAgICAgIHByb21pc2UtPnJlc29sdmUoKTsKICAgICAgICAgcmV0dXJu
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckNsaWVudHMuaAppbmRleCA2MzdhYjIzM2UwOThmMWRjNDkwNDJjMDI4OTBjNTkxYTA5ZDQ5YjFh
Li5lMDE5NWY0Njg0MzI3Y2MxMmIxMDNjZDQ3YTk3ZDgzN2I4NjhkN2EwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudHMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudHMuaApA
QCAtMzksNyArMzksNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBEZWZlcnJlZFByb21p
c2U7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0Owogc3RydWN0IFNlcnZpY2VXb3JrZXJD
bGllbnREYXRhOwotc3RydWN0IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyOwogCiBjbGFz
cyBTZXJ2aWNlV29ya2VyQ2xpZW50cyA6IHB1YmxpYyBSZWZDb3VudGVkPFNlcnZpY2VXb3JrZXJD
bGllbnRzPiB7CiBwdWJsaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAKaW5kZXggZGM3OTIyMjczODBjOWMw
MzQyZGNkODlmMWRkNzA4MWU3OTUxN2JmOS4uYTQ5YjU4OWQ0ZDlmNGRlYWRmMjE1YzUxZmM4NDU1
ZDQzNDk2OTRkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcApAQCAtNjI0LDEzICs2MjQsMTMgQEAgdm9p
ZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpzdG9wKCkKICAgICAgICAgbm90aWZ5UmVnaXN0cmF0
aW9uSXNTZXR0bGVkKHJlZ2lzdHJhdGlvbik7CiB9CiAKLURvY3VtZW50T3JXb3JrZXJJZGVudGlm
aWVyIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OmNvbnRleHRJZGVudGlmaWVyKCkKK1NlcnZpY2VX
b3JrZXJPckNsaWVudElkZW50aWZpZXIgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6Y29udGV4dElk
ZW50aWZpZXIoKQogewogICAgIEFTU0VSVChtX2NyZWF0aW9uVGhyZWFkLnB0cigpID09ICZUaHJl
YWQ6OmN1cnJlbnQoKSk7CiAgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAg
ICAgaWYgKGlzPFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oKnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSkpCiAgICAgICAgIHJldHVybiBkb3duY2FzdDxTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+
KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpLnRocmVhZCgpLmlkZW50aWZpZXIoKTsKLSAgICBy
ZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpLmlkZW50
aWZpZXIoKTsKKyAgICByZXR1cm4gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pZGVudGlmaWVy
KCk7CiB9CiAKIFNlcnZpY2VXb3JrZXJKb2IqIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OmpvYihT
ZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllciBpZGVudGlmaWVyKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKaW5kZXgg
ODdmNjg2MDhlNmNmMDQ5NTliMDZkMWRhOTQ4Yjg4ZDBhMDdmYzU0Yy4uODI4OTcxYTY1N2FmMGUw
OTA2MDJkOWMxYTE3NDRmMGY1MzJjZmQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oCkBAIC0xMTQsNyArMTE0
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRlc3Ryb3lKb2IoU2VydmljZVdvcmtlckpvYiYpOwog
ICAgIHZvaWQgd2lsbFNldHRsZVJlZ2lzdHJhdGlvblByb21pc2UoYm9vbCBzdWNjZXNzKTsKIAot
ICAgIERvY3VtZW50T3JXb3JrZXJJZGVudGlmaWVyIGNvbnRleHRJZGVudGlmaWVyKCkgZmluYWw7
CisgICAgU2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciBjb250ZXh0SWRlbnRpZmllcigp
IGZpbmFsOwogCiAgICAgU1dDbGllbnRDb25uZWN0aW9uJiBlbnN1cmVTV0NsaWVudENvbm5lY3Rp
b24oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJDb250ZXh0RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJDb250ZXh0RGF0YS5oCmluZGV4IDU5YjJkOTE5OGZjYmIwYTAzMzdmNTNiNGIw
MzI3M2M0MDhlNWVhYzkuLjAxZDhjYmNmNDkyNDk4MTFlM2IzZGM2MzdlYmM0YjRiNDEzY2NlN2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
Q29udGV4dERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlckNvbnRleHREYXRhLmgKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRlICJDb250ZW50
U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMuaCIKICNpbmNsdWRlICJDcm9zc09yaWdpbkVt
YmVkZGVyUG9saWN5LmgiCiAjaW5jbHVkZSAiU2NyaXB0QnVmZmVyLmgiCi0jaW5jbHVkZSAiU2Vy
dmljZVdvcmtlckNsaWVudElkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLmgi
CiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAi
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEuaCIKQEAgLTk0LDcgKzk0LDcgQEAgc3RydWN0
IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSB7CiAgICAgYm9vbCBsb2FkZWRGcm9tRGlzazsKICAg
ICBzdGQ6Om9wdGlvbmFsPExhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkPiBsYXN0TmF2aWdh
dGlvbldhc0FwcEluaXRpYXRlZDsKICAgICBIYXNoTWFwPFVSTCwgSW1wb3J0ZWRTY3JpcHQ+IHNj
cmlwdFJlc291cmNlTWFwOwotICAgIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudElk
ZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcjsKKyAgICBzdGQ6Om9wdGlvbmFs
PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50
aWZpZXI7CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVy
JikgY29uc3Q7CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9u
YWw8U2VydmljZVdvcmtlckNvbnRleHREYXRhPiBkZWNvZGUoRGVjb2RlciYpOwpAQCAtMTcwLDcg
KzE3MCw3IEBAIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNvbnRleHREYXRhPiBTZXJ2aWNl
V29ya2VyQ29udGV4dERhdGE6OmRlY29kZShEZWNvZGVyCiAgICAgaWYgKCFjZXJ0aWZpY2F0ZUlu
Zm8pCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICBzdGQ6Om9wdGlvbmFsPHN0
ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+PiBzZXJ2aWNlV29ya2Vy
UGFnZUlkZW50aWZpZXI7CisgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyOwog
ICAgIGRlY29kZXIgPj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyOwogICAgIGlmICghc2Vy
dmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlLmNwcAppbmRleCA4NGY1ZjI3OGZlYTljNDY2NTBkMjA0YzNiZjgxYjNl
OTBlNWYyZmVhLi42MDcxZDg2ODFhOWNlODBiNDNhMzYxNTgzZjdmODE0NGJmZjI0YTkzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlLmNwcApAQCAtOTAsNyArOTAsNyBAQCBQYWdlKiBTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGU6OnNlcnZpY2VXb3JrZXJQYWdlKCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKICAgICBSRUxFQVNFX0FTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgYXV0byogc2Vydmlj
ZVdvcmtlclBhZ2VEb2N1bWVudCA9IERvY3VtZW50OjphbGxEb2N1bWVudHNNYXAoKS5nZXQobV9j
b250ZXh0RGF0YS5zZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXItPmNvbnRleHRJZGVudGlmaWVy
KTsKKyAgICBhdXRvKiBzZXJ2aWNlV29ya2VyUGFnZURvY3VtZW50ID0gRG9jdW1lbnQ6OmFsbERv
Y3VtZW50c01hcCgpLmdldCgqbV9jb250ZXh0RGF0YS5zZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZp
ZXIpOwogICAgIHJldHVybiBzZXJ2aWNlV29ya2VyUGFnZURvY3VtZW50ID8gc2VydmljZVdvcmtl
clBhZ2VEb2N1bWVudC0+cGFnZSgpIDogbnVsbHB0cjsKIH0KIApAQCAtMTI1LDcgKzEyNSw3IEBA
IFNlcnZpY2VXb3JrZXJUaHJlYWQmIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTo6dGhyZWFkKCkK
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8U2VydmljZVdvcmtlclRocmVhZCY+KFdvcmtlckdsb2Jh
bFNjb3BlOjp0aHJlYWQoKSk7CiB9CiAKLVNlcnZpY2VXb3JrZXJDbGllbnQqIFNlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZTo6c2VydmljZVdvcmtlckNsaWVudChTZXJ2aWNlV29ya2VyQ2xpZW50SWRl
bnRpZmllciBpZGVudGlmaWVyKQorU2VydmljZVdvcmtlckNsaWVudCogU2VydmljZVdvcmtlckds
b2JhbFNjb3BlOjpzZXJ2aWNlV29ya2VyQ2xpZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCiB7CiAgICAgcmV0dXJuIG1fY2xpZW50TWFwLmdldChpZGVudGlm
aWVyKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaAppbmRleCA2N2MyMjkyYmM2OWQ2MWU5NDM0NDM0MGZk
NGNiYjhiYTlkZDJlOWFjLi5mYWM0MTJjNzA4YTBmYmFjNGVhOGM0OTYyZTkwNTFjZDlhODdlMTY0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZS5oCkBAIC0yNyw3ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCiAKLSNpbmNsdWRlICJTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllci5o
IgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmgiCiAjaW5jbHVk
ZSAiU2VydmljZVdvcmtlckNvbnRleHREYXRhLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbi5oIgogI2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCkBAIC02Miw3ICs2
Miw3IEBAIHB1YmxpYzoKIAogICAgIFNlcnZpY2VXb3JrZXJUaHJlYWQmIHRocmVhZCgpOwogCi0g
ICAgU2VydmljZVdvcmtlckNsaWVudCogc2VydmljZVdvcmtlckNsaWVudChTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllcik7CisgICAgU2VydmljZVdvcmtlckNsaWVudCogc2VydmljZVdvcmtl
ckNsaWVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcik7CiAgICAgdm9pZCBhZGRT
ZXJ2aWNlV29ya2VyQ2xpZW50KFNlcnZpY2VXb3JrZXJDbGllbnQmKTsKICAgICB2b2lkIHJlbW92
ZVNlcnZpY2VXb3JrZXJDbGllbnQoU2VydmljZVdvcmtlckNsaWVudCYpOwogCkBAIC05MCw3ICs5
MCw3IEBAIHByaXZhdGU6CiAgICAgUmVmPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24+IG1fcmVn
aXN0cmF0aW9uOwogICAgIFJlZjxTZXJ2aWNlV29ya2VyPiBtX3NlcnZpY2VXb3JrZXI7CiAgICAg
UmVmPFNlcnZpY2VXb3JrZXJDbGllbnRzPiBtX2NsaWVudHM7Ci0gICAgSGFzaE1hcDxTZXJ2aWNl
V29ya2VyQ2xpZW50SWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudCo+IG1fY2xpZW50TWFw
OworICAgIEhhc2hNYXA8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIFNlcnZpY2VX
b3JrZXJDbGllbnQqPiBtX2NsaWVudE1hcDsKICAgICBWZWN0b3I8UmVmPEV4dGVuZGFibGVFdmVu
dD4+IG1fZXh0ZW5kZWRFdmVudHM7CiAKICAgICB1aW50NjRfdCBtX2xhc3RSZXF1ZXN0SWRlbnRp
ZmllciB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VySm9iLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlckpvYi5oCmluZGV4IGE3Nzc0ZWRjNGVmMmQ5MGZkZWQwZTA0MjhmY2E3NDg1NGY5NWVk
NGUuLjNmZWIyMGE4ZDhhODkyODNkNWM2YTIyZmU4OWU3ZGM1OTNkMjZhNGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuaApAQCAtNjcs
NyArNjcsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGZldGNoU2NyaXB0V2l0aENvbnRleHQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYsIEZldGNoT3B0aW9uczo6Q2FjaGUpOwogCi0gICAgY29uc3Qg
RG9jdW1lbnRPcldvcmtlcklkZW50aWZpZXImIGNvbnRleHRJZGVudGlmaWVyKCkgeyByZXR1cm4g
bV9jb250ZXh0SWRlbnRpZmllcjsgfQorICAgIGNvbnN0IFNlcnZpY2VXb3JrZXJPckNsaWVudElk
ZW50aWZpZXImIGNvbnRleHRJZGVudGlmaWVyKCkgeyByZXR1cm4gbV9jb250ZXh0SWRlbnRpZmll
cjsgfQogCiAgICAgYm9vbCBjYW5jZWxQZW5kaW5nTG9hZCgpOwogCkBAIC04NCw3ICs4NCw3IEBA
IHByaXZhdGU6CiAKICAgICBib29sIG1fY29tcGxldGVkIHsgZmFsc2UgfTsKIAotICAgIERvY3Vt
ZW50T3JXb3JrZXJJZGVudGlmaWVyIG1fY29udGV4dElkZW50aWZpZXI7CisgICAgU2VydmljZVdv
cmtlck9yQ2xpZW50SWRlbnRpZmllciBtX2NvbnRleHRJZGVudGlmaWVyOwogICAgIFJlZlB0cjxX
b3JrZXJTY3JpcHRMb2FkZXI+IG1fc2NyaXB0TG9hZGVyOwogCiAjaWYgQVNTRVJUX0VOQUJMRUQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
Sm9iQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckpvYkNsaWVudC5oCmluZGV4IDE5MzIyZTZjZjQ5OTBlZjQwYmIyODBkZDExNDBhMDkwZDEwMDYw
YTIuLjJjZjUxNDc4YzliMWRmNzBkYWJlMGJlNDYxZmQ5NzA1YzI5M2NjMTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JDbGll
bnQuaApAQCAtNDQsNyArNDQsNyBAQCBjbGFzcyBTZXJ2aWNlV29ya2VySm9iQ2xpZW50IHsKIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5TZXJ2aWNlV29ya2VySm9iQ2xpZW50KCkgPSBkZWZhdWx0Owog
Ci0gICAgdmlydHVhbCBEb2N1bWVudE9yV29ya2VySWRlbnRpZmllciBjb250ZXh0SWRlbnRpZmll
cigpID0gMDsKKyAgICB2aXJ0dWFsIFNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXIgY29u
dGV4dElkZW50aWZpZXIoKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgam9iRmFpbGVkV2l0aEV4
Y2VwdGlvbihTZXJ2aWNlV29ya2VySm9iJiwgY29uc3QgRXhjZXB0aW9uJikgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBqb2JSZXNvbHZlZFdpdGhSZWdpc3RyYXRpb24oU2VydmljZVdvcmtlckpvYiYs
IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJiYsIFNob3VsZE5vdGlmeVdoZW5SZXNvbHZl
ZCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJKb2JEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VySm9iRGF0YS5jcHAKaW5kZXggMjI1NmUyZjE1ZjQ3OTE4NTU5ZGUyYWQyOGIwODAx
OGI4NDA5OWU5NS4uZjBhYTg2YzVkYTZmMjc5ZmQ3ZTA3MmNlMzI1YTM1Y2EwY2M5M2Q0MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JE
YXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckpvYkRhdGEuY3BwCkBAIC0zMCwyMyArMzAsMjMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1zdGF0aWMgaW5saW5lIFNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXIgc2VydmljZVdv
cmtlck9yQ2xpZW50SWRlbnRpZmllcihTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBjb25zdCBEb2N1bWVudE9yV29ya2VySWRlbnRpZmllciYgbG9jYWxT
b3VyY2VDb250ZXh0KQorc3RhdGljIGlubGluZSBTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlm
aWVyIHNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXIoY29uc3QgU2VydmljZVdvcmtlck9y
Q2xpZW50SWRlbnRpZmllciYgbG9jYWxTb3VyY2VDb250ZXh0KQogewotICAgIHJldHVybiBXVEY6
OnN3aXRjaE9uKGxvY2FsU291cmNlQ29udGV4dCwgWyZdKERvY3VtZW50SWRlbnRpZmllciBkb2N1
bWVudElkZW50aWZpZXIpIC0+IFNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXIgewotICAg
ICAgICByZXR1cm4gU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgeyBjb25uZWN0aW9uSWRl
bnRpZmllciwgZG9jdW1lbnRJZGVudGlmaWVyIH07CisgICAgcmV0dXJuIFdURjo6c3dpdGNoT24o
bG9jYWxTb3VyY2VDb250ZXh0LCBbJl0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIg
Y29udGV4dElkZW50aWZpZXIpIC0+IFNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXIgewor
ICAgICAgICByZXR1cm4gY29udGV4dElkZW50aWZpZXI7CiAgICAgfSwgWyZdKFNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSAtPiBTZXJ2aWNlV29ya2VyT3JD
bGllbnRJZGVudGlmaWVyIHsKICAgICAgICAgcmV0dXJuIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
OwogICAgIH0pOwogfQogCi1TZXJ2aWNlV29ya2VySm9iRGF0YTo6U2VydmljZVdvcmtlckpvYkRh
dGEoU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllciwgY29u
c3QgRG9jdW1lbnRPcldvcmtlcklkZW50aWZpZXImIGxvY2FsU291cmNlQ29udGV4dCkKLSAgICA6
IHNvdXJjZUNvbnRleHQoc2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllcihjb25uZWN0aW9u
SWRlbnRpZmllciwgbG9jYWxTb3VyY2VDb250ZXh0KSkKK1NlcnZpY2VXb3JrZXJKb2JEYXRhOjpT
ZXJ2aWNlV29ya2VySm9iRGF0YShTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5lY3Rp
b25JZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyJiBsb2Nh
bFNvdXJjZUNvbnRleHQpCisgICAgOiBzb3VyY2VDb250ZXh0KHNlcnZpY2VXb3JrZXJPckNsaWVu
dElkZW50aWZpZXIobG9jYWxTb3VyY2VDb250ZXh0KSkKICAgICAsIG1faWRlbnRpZmllciB7IGNv
bm5lY3Rpb25JZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllcjo6Z2VuZXJhdGVU
aHJlYWRTYWZlKCkgfQogewogfQogCi1TZXJ2aWNlV29ya2VySm9iRGF0YTo6U2VydmljZVdvcmtl
ckpvYkRhdGEoSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBEb2N1bWVudE9yV29ya2VySWRl
bnRpZmllciYgbG9jYWxTb3VyY2VDb250ZXh0KQotICAgIDogc291cmNlQ29udGV4dChzZXJ2aWNl
V29ya2VyT3JDbGllbnRJZGVudGlmaWVyKGlkZW50aWZpZXIuY29ubmVjdGlvbklkZW50aWZpZXIs
IGxvY2FsU291cmNlQ29udGV4dCkpCitTZXJ2aWNlV29ya2VySm9iRGF0YTo6U2VydmljZVdvcmtl
ckpvYkRhdGEoSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VyT3JDbGll
bnRJZGVudGlmaWVyJiBsb2NhbFNvdXJjZUNvbnRleHQpCisgICAgOiBzb3VyY2VDb250ZXh0KHNl
cnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXIobG9jYWxTb3VyY2VDb250ZXh0KSkKICAgICAs
IG1faWRlbnRpZmllciB7IGlkZW50aWZpZXIgfQogewogfQpAQCAtNTgsMTAgKzU4LDEwIEBAIFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkgU2VydmljZVdvcmtlckpvYkRhdGE6OnJlZ2lzdHJh
dGlvbktleSgpIGNvbnN0CiAgICAgcmV0dXJuIHsgU2VjdXJpdHlPcmlnaW5EYXRhIHsgdG9wT3Jp
Z2luIH0sIFdURk1vdmUoc2NvcGUpIH07CiB9CiAKLXN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtl
ckNsaWVudElkZW50aWZpZXI+IFNlcnZpY2VXb3JrZXJKb2JEYXRhOjpzZXJ2aWNlV29ya2VyUGFn
ZUlkZW50aWZpZXIoKSBjb25zdAorc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllcj4gU2VydmljZVdvcmtlckpvYkRhdGE6OnNlcnZpY2VXb3JrZXJQYWdlSWRlbnRp
ZmllcigpIGNvbnN0CiB7Ci0gICAgaWYgKGlzRnJvbVNlcnZpY2VXb3JrZXJQYWdlICYmIHN0ZDo6
aG9sZHNfYWx0ZXJuYXRpdmU8U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+KHNvdXJjZUNv
bnRleHQpKQotICAgICAgICByZXR1cm4gc3RkOjpnZXQ8U2VydmljZVdvcmtlckNsaWVudElkZW50
aWZpZXI+KHNvdXJjZUNvbnRleHQpOworICAgIGlmIChpc0Zyb21TZXJ2aWNlV29ya2VyUGFnZSAm
JiBzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
Pihzb3VyY2VDb250ZXh0KSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6Z2V0PFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyPihzb3VyY2VDb250ZXh0KTsKICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlckpvYkRhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VySm9iRGF0YS5oCmluZGV4IGYwNzNiZmI4MTc1MDhlZmVlMzk1ODQ0Mjg2NDg0OWNi
Y2M1Mjg5MjguLmRmYmFkYTM1ZTNkNDkwNzUzYTMxMjAxNjY1ZjlhYWQ1NWUzZjBmMjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iRGF0
YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9i
RGF0YS5oCkBAIC0yNyw4ICsyNyw4IEBACiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAK
KyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oIgogI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luRGF0YS5oIgotI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDbGllbnRJZGVu
dGlmaWVyLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyLmgiCiAj
aW5jbHVkZSAiU2VydmljZVdvcmtlckpvYlR5cGUuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uS2V5LmgiCkBAIC00MCwxMyArNDAsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBzdHJ1Y3QgU2VydmljZVdvcmtlckpvYkRhdGEgewogICAgIHVzaW5nIElkZW50aWZpZXIg
PSBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI7Ci0gICAgU2VydmljZVdvcmtlckpvYkRh
dGEoU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgRG9jdW1lbnRPcldvcmtlcklk
ZW50aWZpZXImIHNvdXJjZUNvbnRleHQpOwotICAgIFNlcnZpY2VXb3JrZXJKb2JEYXRhKElkZW50
aWZpZXIsIGNvbnN0IERvY3VtZW50T3JXb3JrZXJJZGVudGlmaWVyJiBzb3VyY2VDb250ZXh0KTsK
KyAgICBTZXJ2aWNlV29ya2VySm9iRGF0YShTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBj
b25zdCBTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyJiBzb3VyY2VDb250ZXh0KTsKKyAg
ICBTZXJ2aWNlV29ya2VySm9iRGF0YShJZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VyT3JD
bGllbnRJZGVudGlmaWVyJiBzb3VyY2VDb250ZXh0KTsKIAogICAgIFNXU2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2lkZW50
aWZpZXIuY29ubmVjdGlvbklkZW50aWZpZXI7IH0KIAogICAgIGJvb2wgaXNFcXVpdmFsZW50KGNv
bnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJikgY29uc3Q7Ci0gICAgc3RkOjpvcHRpb25hbDxTZXJ2
aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKCkg
Y29uc3Q7CisgICAgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
cj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKCkgY29uc3Q7CiAKICAgICBVUkwgc2NyaXB0
VVJMOwogICAgIFVSTCBjbGllbnRDcmVhdGlvblVSTDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyVHlwZXMuaAppbmRleCBkMGRmYjJhYzEzZTU3
ZDRhYjNhMjlhOTg5M2I4MmEzODU0NDliYWUwLi43ZDAzOGMyZjM4M2NiNTRmNGE0N2JmMGIyN2Mw
MGE3ZDc4ZmFhNTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
U2VydmljZVdvcmtlclR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJUeXBlcy5oCkBAIC0yNyw4ICsyNyw4IEBACiAKICNpZiBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCiAKLSNpbmNsdWRlICJEb2N1bWVudElkZW50aWZpZXIuaCIKICNpbmNsdWRl
ICJQcm9jZXNzSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlcklkZW50aWZpZXIuaCIKICNpbmNs
dWRlIDx2YXJpYW50PgogI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CkBAIC0zNyw3
ICszNyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IFNlcnZpY2VXb3JrZXJEYXRh
Owogc3RydWN0IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhOwotc3RydWN0IFNlcnZpY2VXb3JrZXJD
bGllbnRJZGVudGlmaWVyOwogCiBlbnVtIGNsYXNzIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25T
dGF0ZSA6IHVpbnQ4X3QgewogICAgIEluc3RhbGxpbmcgPSAwLApAQCAtNzUsMTAgKzc0LDEwIEBA
IHVzaW5nIFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbklkZW50aWZpZXIgPSBPYmplY3RJZGVu
dGlmaWVyPFNXU2VydmVyVG9Db250ZXh0CiB1c2luZyBTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyVHlwZSA9IFByb2Nlc3NJZGVudGlmaWVyVHlwZTsKIHVzaW5nIFNXU2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXJUeXBlPjsKIAotdXNpbmcgRG9jdW1lbnRPcldvcmtlcklkZW50aWZpZXIgPSBzdGQ6OnZhcmlh
bnQ8RG9jdW1lbnRJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllcj47Ci0KIHVzaW5n
IFNlcnZpY2VXb3JrZXJPckNsaWVudERhdGEgPSBzdGQ6OnZhcmlhbnQ8U2VydmljZVdvcmtlckRh
dGEsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPjsKLXVzaW5nIFNlcnZpY2VXb3JrZXJPckNsaWVu
dElkZW50aWZpZXIgPSBzdGQ6OnZhcmlhbnQ8U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFNlcnZp
Y2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPjsKKworLy8gRklYTUU6IEl0IHNob3VsZCBiZSBwb3Nz
aWJsZSB0byByZXBsYWNlIFNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXIgd2l0aCBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBlbnRpcmVseS4KK3VzaW5nIFNlcnZpY2VXb3Jr
ZXJPckNsaWVudElkZW50aWZpZXIgPSBzdGQ6OnZhcmlhbnQ8U2VydmljZVdvcmtlcklkZW50aWZp
ZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPjsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvV29y
a2VyU1dDbGllbnRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9Xb3JrZXJTV0NsaWVudENvbm5lY3Rpb24uY3BwCmluZGV4IGUyMDc0MzdmODc3MjI0ZGY3NTEz
NmQyNmUwOGI2MDI2ODk2NzFiMjguLmZhZWY5NGE3NWE4ZDcyMTk4NmY1NzlmM2I2NTkwMjMzN2Y4
ZWVmNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3JrZXJT
V0NsaWVudENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9Xb3JrZXJTV0NsaWVudENvbm5lY3Rpb24uY3BwCkBAIC0xNzksNyArMTc5LDcgQEAgdm9pZCBX
b3JrZXJTV0NsaWVudENvbm5lY3Rpb246OnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChjb25z
dCBTZWN1cml0eU9yaWdpbiYKICAgICB9KTsKIH0KIAotdm9pZCBXb3JrZXJTV0NsaWVudENvbm5l
Y3Rpb246OnVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KERvY3VtZW50SWRlbnRpZmllcikK
K3ZvaWQgV29ya2VyU1dDbGllbnRDb25uZWN0aW9uOjp1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNs
aWVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcikKIHsKICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKIH0KQEAgLTE5Miw3ICsxOTIsNyBAQCB2b2lkIFdvcmtlclNXQ2xpZW50Q29u
bmVjdGlvbjo6ZmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcihjb25zdCBTZXJ2aWNlV29ya2Vy
RgogICAgIH0pOwogfQogCi12b2lkIFdvcmtlclNXQ2xpZW50Q29ubmVjdGlvbjo6c2NoZWR1bGVK
b2IoRG9jdW1lbnRPcldvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU2VydmljZVdv
cmtlckpvYkRhdGEmIGRhdGEpCit2b2lkIFdvcmtlclNXQ2xpZW50Q29ubmVjdGlvbjo6c2NoZWR1
bGVKb2IoU2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBT
ZXJ2aWNlV29ya2VySm9iRGF0YSYgZGF0YSkKIHsKICAgICBjYWxsT25NYWluVGhyZWFkKFtpZGVu
dGlmaWVyLCBkYXRhID0gY3Jvc3NUaHJlYWRDb3B5KGRhdGEpXSgpIG11dGFibGUgewogICAgICAg
ICBhdXRvJiBjb25uZWN0aW9uID0gU2VydmljZVdvcmtlclByb3ZpZGVyOjpzaW5nbGV0b24oKS5z
ZXJ2aWNlV29ya2VyQ29ubmVjdGlvbigpOwpAQCAtMjAwLDcgKzIwMCw3IEBAIHZvaWQgV29ya2Vy
U1dDbGllbnRDb25uZWN0aW9uOjpzY2hlZHVsZUpvYihEb2N1bWVudE9yV29ya2VySWRlbnRpZmll
ciBpZGVudGlmaWVyCiAgICAgfSk7CiB9CiAKLXZvaWQgV29ya2VyU1dDbGllbnRDb25uZWN0aW9u
OjpzY2hlZHVsZVVucmVnaXN0ZXJKb2JJblNlcnZlcihTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
SWRlbnRpZmllciByZWdpc3RyYXRpb25JZGVudGlmaWVyLCBEb2N1bWVudE9yV29ya2VySWRlbnRp
ZmllciBjb250ZXh0SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25P
cjxib29sPiYmKT4mJiBjYWxsYmFjaykKK3ZvaWQgV29ya2VyU1dDbGllbnRDb25uZWN0aW9uOjpz
Y2hlZHVsZVVucmVnaXN0ZXJKb2JJblNlcnZlcihTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRl
bnRpZmllciByZWdpc3RyYXRpb25JZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVu
dGlmaWVyIGNvbnRleHRJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlv
bk9yPGJvb2w+JiYpPiYmIGNhbGxiYWNrKQogewogICAgIHVpbnQ2NF90IHJlcXVlc3RJZGVudGlm
aWVyID0gKyttX2xhc3RSZXF1ZXN0SWRlbnRpZmllcjsKICAgICBtX3VucmVnaXN0ZXJSZXF1ZXN0
cy5hZGQocmVxdWVzdElkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVudENvbm5lY3Rpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVudENvbm5lY3Rp
b24uaAppbmRleCA3NzdmYWM3MzFiNWNlYmRiYTRiNmIzZmQ1NmFmN2U3NzFjMGRmZDQzLi45Njk5
NGJkOTU2ZDFjYmYxNWJhM2UxOWJjZjA3MTMzMzlmOTkxZTM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVjdGlvbi5o
CkBAIC01MiwxMSArNTIsMTEgQEAgcHJpdmF0ZToKICAgICBTV1NlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKCkgY29uc3QgZmluYWw7CiAgICAgYm9v
bCBtYXlIYXZlU2VydmljZVdvcmtlclJlZ2lzdGVyZWRGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlP
cmlnaW5EYXRhJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCByZWdpc3RlclNlcnZpY2VXb3JrZXJD
bGllbnQoY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwgY29uc3QgU2VydmljZVdvcmtl
ckNsaWVudERhdGEmLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JZGVudGlmaWVyPiYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50KSBmaW5hbDsKLSAgICB2b2lk
IHVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KERvY3VtZW50SWRlbnRpZmllcikgZmluYWw7
CisgICAgdm9pZCB1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllcikgZmluYWw7CiAgICAgdm9pZCBmaW5pc2hGZXRjaGluZ1NjcmlwdElu
U2VydmVyKGNvbnN0IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYpIGZpbmFsOwogICAgIHZvaWQg
c2NoZWR1bGVKb2JJblNlcnZlcihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYpIGZpbmFsOwot
ICAgIHZvaWQgc2NoZWR1bGVKb2IoRG9jdW1lbnRPcldvcmtlcklkZW50aWZpZXIsIGNvbnN0IFNl
cnZpY2VXb3JrZXJKb2JEYXRhJikgZmluYWw7Ci0gICAgdm9pZCBzY2hlZHVsZVVucmVnaXN0ZXJK
b2JJblNlcnZlcihTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgRG9jdW1lbnRP
cldvcmtlcklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8Ym9v
bD4mJik+JiYpIGZpbmFsOworICAgIHZvaWQgc2NoZWR1bGVKb2IoU2VydmljZVdvcmtlck9yQ2xp
ZW50SWRlbnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmKSBmaW5hbDsKKyAgICB2
b2lkIHNjaGVkdWxlVW5yZWdpc3RlckpvYkluU2VydmVyKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPGJvb2w+JiYpPiYmKSBmaW5hbDsKICAgICB2b2lkIHN1
YnNjcmliZVRvUHVzaFNlcnZpY2UoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIs
IGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgYXBwbGljYXRpb25TZXJ2ZXJLZXksIFN1YnNjcmliZVRv
UHVzaFNlcnZpY2VDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIHVuc3Vic2NyaWJlRnJvbVB1
c2hTZXJ2aWNlKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBVbnN1YnNjcmli
ZUZyb21QdXNoU2VydmljZUNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgZ2V0UHVzaFN1YnNj
cmlwdGlvbihTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgR2V0UHVzaFN1YnNj
cmlwdGlvbkNhbGxiYWNrJiYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmNwcAppbmRleCA1MTA0
NTM0ZTU1ZjkxZWFhYzYyNDExNzJjOGE4MjExOGIzZjhhNGRjLi5hMWRjZGU1YTk2NTAzYmI1NjJk
NGJjM2Y2OTk4NzA5MjQ1Y2Q5YzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmNwcApAQCAtMzAsNyAr
MzAsNiBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgogI2luY2x1ZGUgIk1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzLmgiCi0jaW5jbHVkZSAiU2Vy
dmljZVdvcmtlckNsaWVudElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFuYWdlci5oCmluZGV4
IGM3NjVjNTdkMjAyM2YxNGNhYmJiZGJiOTBiNjgzZWE2NTQ1NzA3Y2IuLmZlMDA4MzA5ODIxNzlh
ZDJiNDQ4NjQ2OWE2ODZkNTg2Y2M0NTYzMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRleHRNYW5hZ2VyLmgKQEAgLTUxLDcg
KzUxLDcgQEAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIH5Db25uZWN0aW9uKCkgeyB9CiAKICAg
ICAgICAgdmlydHVhbCB2b2lkIGVzdGFibGlzaENvbm5lY3Rpb24oQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBwb3N0TWVzc2FnZVRvU2Vydmlj
ZVdvcmtlckNsaWVudChjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYgZGVzdGlu
YXRpb25JZGVudGlmaWVyLCBjb25zdCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYsIFNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyIHNvdXJjZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pID0gMDsK
KyAgICAgICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KGNv
bnN0IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyJiBkZXN0aW5hdGlvbklkZW50aWZp
ZXIsIGNvbnN0IE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiwgU2VydmljZVdvcmtlcklkZW50aWZp
ZXIgc291cmNlLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbikgPSAwOwogICAgICAgICB2aXJ0
dWFsIHZvaWQgc2VydmljZVdvcmtlclN0YXJ0ZWQoc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2Vy
Sm9iRGF0YUlkZW50aWZpZXI+LCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgYm9vbCBkb2VzSGFu
ZGxlRmV0Y2gpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHNlcnZpY2VXb3JrZXJGYWlsZWRU
b1N0YXJ0KHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiwgU2Vy
dmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgPSAwOwogICAgICAg
ICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoSW5zdGFsbChzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3Jr
ZXJKb2JEYXRhSWRlbnRpZmllcj4sIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBib29sIHdhc1N1
Y2Nlc3NmdWwpID0gMDsKQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgogICAgICAgICB2aXJ0dWFs
IHZvaWQgc2V0U2NyaXB0UmVzb3VyY2UoU2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFVS
TCYsIGNvbnN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQmKSA9IDA7
CiAKICAgICAgICAgdXNpbmcgRmluZENsaWVudEJ5SWRlbnRpZmllckNhbGxiYWNrID0gQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJD
bGllbnREYXRhPj4mJik+OwotICAgICAgICB2aXJ0dWFsIHZvaWQgZmluZENsaWVudEJ5SWRlbnRp
ZmllcihTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZp
ZXIsIEZpbmRDbGllbnRCeUlkZW50aWZpZXJDYWxsYmFjayYmKSA9IDA7CisgICAgICAgIHZpcnR1
YWwgdm9pZCBmaW5kQ2xpZW50QnlJZGVudGlmaWVyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgRmluZENsaWVudEJ5SWRlbnRpZmllckNh
bGxiYWNrJiYpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIG1hdGNoQWxsKFNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50UXVlcnlPcHRpb25zJiwgU2Vy
dmljZVdvcmtlckNsaWVudHNNYXRjaEFsbENhbGxiYWNrJiYpID0gMDsKICAgICAgICAgdmlydHVh
bCB2b2lkIGNsYWltKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2gu
Y3BwCmluZGV4IGU2YWI3N2RkYzkyYjI3ZTdhMTIwNDA3ZDEyMjdmOTQyN2IxYjc1YTAuLjRkYTlj
YzAxYTZjNmYzYmZiMGEyODMzYzlkNWUzNGQ3NTFhZjI3ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckZl
dGNoLmNwcApAQCAtMzUsOCArMzUsOCBAQAogI2luY2x1ZGUgIkZldGNoUmVzcG9uc2UuaCIKICNp
bmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0Lmgi
CisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaCIKICNpbmNsdWRl
ICJTZXJ2aWNlV29ya2VyLmgiCi0jaW5jbHVkZSAiU2VydmljZVdvcmtlckNsaWVudElkZW50aWZp
ZXIuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJT
ZXJ2aWNlV29ya2VyVGhyZWFkLmgiCiAjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKQEAg
LTEzOSw3ICsxMzksNyBAQCBzdGF0aWMgdm9pZCBwcm9jZXNzUmVzcG9uc2UoUmVmPENsaWVudD4m
JiBjbGllbnQsIEV4cGVjdGVkPFJlZjxGZXRjaFJlc3BvbnNlPiwgcwogICAgIH0pOwogfQogCi12
b2lkIGRpc3BhdGNoRmV0Y2hFdmVudChSZWY8Q2xpZW50PiYmIGNsaWVudCwgU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlJiBnbG9iYWxTY29wZSwgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xp
ZW50SWRlbnRpZmllcj4gY2xpZW50SWQsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFN0cmlu
ZyYmIHJlZmVycmVyLCBGZXRjaE9wdGlvbnMmJiBvcHRpb25zKQordm9pZCBkaXNwYXRjaEZldGNo
RXZlbnQoUmVmPENsaWVudD4mJiBjbGllbnQsIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSYgZ2xv
YmFsU2NvcGUsIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+
IGNsaWVudElkLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTdHJpbmcmJiByZWZlcnJlciwg
RmV0Y2hPcHRpb25zJiYgb3B0aW9ucykKIHsKICAgICBhdXRvIHJlcXVlc3RIZWFkZXJzID0gRmV0
Y2hIZWFkZXJzOjpjcmVhdGUoRmV0Y2hIZWFkZXJzOjpHdWFyZDo6SW1tdXRhYmxlLCBIVFRQSGVh
ZGVyTWFwIHsgcmVxdWVzdC5odHRwSGVhZGVyRmllbGRzKCkgfSk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5o
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckZl
dGNoLmgKaW5kZXggYzI3MzVkZTg3ZjhiZWQxODU3N2JmY2M2Yzg5YmFiZjQzNmNmMmYxMy4uZmM1
YTcyNThlNDdlNjdhZGRkZmIxNjIxOWQ0OGZmZTY0YTU4YTliMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckZldGNoLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckZl
dGNoLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAor
I2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8
d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgogCkBAIC0z
OCw3ICszOSw2IEBAIGNsYXNzIEZvcm1EYXRhOwogY2xhc3MgUmVzb3VyY2VFcnJvcjsKIGNsYXNz
IFJlc291cmNlUmVxdWVzdDsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7Ci1zdHJ1Y3QgU2Vydmlj
ZVdvcmtlckNsaWVudElkZW50aWZpZXI7CiBjbGFzcyBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU7
CiBjbGFzcyBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU7CiBjbGFzcyBTaGFyZWRCdWZmZXI7CkBA
IC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY29udGludWVEaWRSZWNl
aXZlUmVzcG9uc2UoKSA9IDA7CiB9OwogCi12b2lkIGRpc3BhdGNoRmV0Y2hFdmVudChSZWY8Q2xp
ZW50PiYmLCBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUmLCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VX
b3JrZXJDbGllbnRJZGVudGlmaWVyPiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFN0cmluZyYmIHJlZmVy
cmVyLCBGZXRjaE9wdGlvbnMmJik7Cit2b2lkIGRpc3BhdGNoRmV0Y2hFdmVudChSZWY8Q2xpZW50
PiYmLCBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUmLCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyPiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFN0cmluZyYmIHJlZmVy
cmVyLCBGZXRjaE9wdGlvbnMmJik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29y
a2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1Nl
cnZpY2VXb3JrZXJUaHJlYWQuY3BwCmluZGV4IGY2ZGRmODhiYzMyMzRjNDU4OWUzNDJhZWY3MjE1
MjcyYTg4OGY1MDIuLjAwNjk4OGM3NzNkMzY4N2E0ZDg5ZTc1MDgwZjU2M2U3ZGI5ZmQwNTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VX
b3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCkBAIC0xMjIsNyArMTIyLDcgQEAgdm9pZCBTZXJ2
aWNlV29ya2VyVGhyZWFkOjpydW5FdmVudExvb3AoKQogICAgIFdvcmtlclRocmVhZDo6cnVuRXZl
bnRMb29wKCk7CiB9CiAKLXZvaWQgU2VydmljZVdvcmtlclRocmVhZDo6cXVldWVUYXNrVG9GaXJl
RmV0Y2hFdmVudChSZWY8U2VydmljZVdvcmtlckZldGNoOjpDbGllbnQ+JiYgY2xpZW50LCBzdGQ6
Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiYmIGNsaWVudElkLCBSZXNv
dXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTdHJpbmcmJiByZWZlcnJlciwgRmV0Y2hPcHRpb25zJiYg
b3B0aW9ucykKK3ZvaWQgU2VydmljZVdvcmtlclRocmVhZDo6cXVldWVUYXNrVG9GaXJlRmV0Y2hF
dmVudChSZWY8U2VydmljZVdvcmtlckZldGNoOjpDbGllbnQ+JiYgY2xpZW50LCBzdGQ6Om9wdGlv
bmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiYmIGNsaWVudElkLCBSZXNvdXJj
ZVJlcXVlc3QmJiByZXF1ZXN0LCBTdHJpbmcmJiByZWZlcnJlciwgRmV0Y2hPcHRpb25zJiYgb3B0
aW9ucykKIHsKICAgICBSZWYgc2VydmljZVdvcmtlckdsb2JhbFNjb3BlID0gZG93bmNhc3Q8U2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlPigqZ2xvYmFsU2NvcGUoKSk7CiAgICAgc2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlLT5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6RE9NTWFuaXB1
bGF0aW9uLCBbc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLCBjbGllbnQgPSBXVEZNb3ZlKGNsaWVu
dCksIGNsaWVudElkLCByZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KSwgcmVmZXJyZXIgPSBXVEZN
b3ZlKHJlZmVycmVyKSwgb3B0aW9ucyA9IFdURk1vdmUob3B0aW9ucyldKCkgbXV0YWJsZSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNl
V29ya2VyVGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
ZXJ2aWNlV29ya2VyVGhyZWFkLmgKaW5kZXggMDY4MWIzM2NmY2NhYmYzOTAwYTc0N2Y3MGUxMTU4
NzIxMDhjMDBiYy4uYjQ4MzFhMGMwMzNhMjEwYjE1OWZhYTFjMWQzYzFkNDBjMDNkYTYyNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0
L1NlcnZpY2VXb3JrZXJUaHJlYWQuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgRU5BQkxFKFNF
UlZJQ0VfV09SS0VSKQogCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEuaCIKICNpbmNsdWRlICJT
ZXJ2aWNlV29ya2VyRmV0Y2guaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VySWRlbnRpZmllci5o
IgpAQCAtNDQsNyArNDUsNiBAQCBjbGFzcyBNZXNzYWdlUG9ydENoYW5uZWw7CiBjbGFzcyBTZXJp
YWxpemVkU2NyaXB0VmFsdWU7CiBjbGFzcyBXb3JrZXJPYmplY3RQcm94eTsKIHN0cnVjdCBNZXNz
YWdlV2l0aE1lc3NhZ2VQb3J0czsKLXN0cnVjdCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmll
cjsKIAogY2xhc3MgU2VydmljZVdvcmtlclRocmVhZCA6IHB1YmxpYyBXb3JrZXJUaHJlYWQsIHB1
YmxpYyBDYW5NYWtlV2Vha1B0cjxTZXJ2aWNlV29ya2VyVGhyZWFkLCBXZWFrUHRyRmFjdG9yeUlu
aXRpYWxpemF0aW9uOjpFYWdlcj4gewogcHVibGljOgpAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCB3aWxsUG9zdFRhc2tUb0ZpcmVBY3RpdmF0ZUV2ZW50KCk7CiAgICAgdm9pZCB3
aWxsUG9zdFRhc2tUb0ZpcmVNZXNzYWdlRXZlbnQoKTsKIAotICAgIHZvaWQgcXVldWVUYXNrVG9G
aXJlRmV0Y2hFdmVudChSZWY8U2VydmljZVdvcmtlckZldGNoOjpDbGllbnQ+JiYsIHN0ZDo6b3B0
aW9uYWw8U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+JiYsIFJlc291cmNlUmVxdWVzdCYm
LCBTdHJpbmcmJiByZWZlcnJlciwgRmV0Y2hPcHRpb25zJiYpOworICAgIHZvaWQgcXVldWVUYXNr
VG9GaXJlRmV0Y2hFdmVudChSZWY8U2VydmljZVdvcmtlckZldGNoOjpDbGllbnQ+JiYsIHN0ZDo6
b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+JiYsIFJlc291cmNlUmVx
dWVzdCYmLCBTdHJpbmcmJiByZWZlcnJlciwgRmV0Y2hPcHRpb25zJiYpOwogICAgIHZvaWQgcXVl
dWVUYXNrVG9Qb3N0TWVzc2FnZShNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmLCBTZXJ2aWNlV29y
a2VyT3JDbGllbnREYXRhJiYgc291cmNlRGF0YSk7CiAgICAgdm9pZCBxdWV1ZVRhc2tUb0ZpcmVJ
bnN0YWxsRXZlbnQoKTsKICAgICB2b2lkIHF1ZXVlVGFza1RvRmlyZUFjdGl2YXRlRXZlbnQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZp
Y2VXb3JrZXJUaHJlYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
Y29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCmluZGV4IDA3M2I0MmU5MzZlYmZk
ZTE5Yjk1ZWFmNTEwNTg1MGUyNGE5Yjk0Y2QuLjVjNDRkZTU2ZDNlYTdhODAxMTc2MWE1MDJhOThi
NmM1ZTA4OTcwMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9j
b250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcApAQCAt
NDAsOCArNDAsOCBAQAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZXNzYWdlV2l0
aE1lc3NhZ2VQb3J0cy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgorI2luY2x1
ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2Vydmlj
ZVdvcmtlckNsaWVudERhdGEuaCIKLSNpbmNsdWRlICJTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRp
Zmllci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUg
IlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKQEAgLTIxNCw3ICsy
MTQsNyBAQCB2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6bm90aWZ5TmV0d29ya1N0YXRl
Q2hhbmdlKGJvb2wgaXNPbmxpbmUpCiAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUo
KSk7CiB9CiAKLXZvaWQgU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpzdGFydEZldGNoKFNXU2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRp
ZmllciBmZXRjaElkZW50aWZpZXIsIFJlZjxTZXJ2aWNlV29ya2VyRmV0Y2g6OkNsaWVudD4mJiBj
bGllbnQsIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+JiYgY2xp
ZW50SWQsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFN0cmluZyYmIHJlZmVycmVyLCBGZXRj
aE9wdGlvbnMmJiBvcHRpb25zKQordm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnN0YXJ0
RmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllciwg
RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgUmVmPFNlcnZpY2VXb3JrZXJGZXRjaDo6
Q2xpZW50PiYmIGNsaWVudCwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllcj4mJiBjbGllbnRJZCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU3RyaW5nJiYg
cmVmZXJyZXIsIEZldGNoT3B0aW9ucyYmIG9wdGlvbnMpCiB7CiAgICAgUkVMRUFTRV9MT0coU2Vy
dmljZVdvcmtlciwgIlNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6c3RhcnRGZXRjaCAlbGx1Iiwg
ZmV0Y2hJZGVudGlmaWVyLnRvVUludDY0KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQ
cm94eS5oCmluZGV4IGNlZmJjNWUxNjM2OGMzOGE4M2E3ZTExNWZkNTc0NzJjYWY1YzViOTguLjk0
NWZlZTg5NmQ2NWVmZjE4OWZhNDUzMTRlNzhmYWMwNDdlMTBhYTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VX
b3JrZXJUaHJlYWRQcm94eS5oCkBAIC03Miw3ICs3Miw3IEBAIHB1YmxpYzoKIAogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgbm90aWZ5TmV0d29ya1N0YXRlQ2hhbmdlKGJvb2wgaXNPbmxpbmUpOwog
Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdGFydEZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciwgUmVmPFNlcnZpY2VXb3JrZXJGZXRjaDo6Q2xpZW50
PiYmLCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiYmLCBSZXNv
dXJjZVJlcXVlc3QmJiwgU3RyaW5nJiYgcmVmZXJyZXIsIEZldGNoT3B0aW9ucyYmKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHN0YXJ0RmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgRmV0Y2hJZGVudGlmaWVyLCBSZWY8U2VydmljZVdvcmtlckZldGNoOjpDbGllbnQ+JiYsIHN0
ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+JiYsIFJlc291cmNl
UmVxdWVzdCYmLCBTdHJpbmcmJiByZWZlcnJlciwgRmV0Y2hPcHRpb25zJiYpOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgY2FuY2VsRmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwg
RmV0Y2hJZGVudGlmaWVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNvbnRpbnVlRGlkUmVj
ZWl2ZUZldGNoUmVzcG9uc2UoU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVu
dGlmaWVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUZldGNoKFNXU2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCmluZGV4IGFlNjFiNzljMWE4
NjUxNTc4NjQ3ZTEzYzkwNjVjNzY5YmM3YTIyMjUuLjNlYTY4ZmRmOWYzZWY0ZGE3ODBjZTBhZjFi
MjA4MzYwMTliNzAyMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCkBAIC05MSw3ICs5MSw3IEBAIFNXU2VydmVyV29ya2VyKiBT
V1NlcnZlcjo6d29ya2VyQnlJRChTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKSBj
b25zdAogICAgIHJldHVybiB3b3JrZXI7CiB9CiAKLXN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtl
ckNsaWVudERhdGE+IFNXU2VydmVyOjpzZXJ2aWNlV29ya2VyQ2xpZW50V2l0aE9yaWdpbkJ5SUQo
Y29uc3QgQ2xpZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIGNvbnN0IFNlcnZpY2VXb3JrZXJDbGll
bnRJZGVudGlmaWVyJiBjbGllbnRJZGVudGlmaWVyKSBjb25zdAorc3RkOjpvcHRpb25hbDxTZXJ2
aWNlV29ya2VyQ2xpZW50RGF0YT4gU1dTZXJ2ZXI6OnNlcnZpY2VXb3JrZXJDbGllbnRXaXRoT3Jp
Z2luQnlJRChjb25zdCBDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwgY29uc3QgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dElkZW50aWZpZXImIGNsaWVudElkZW50aWZpZXIpIGNvbnN0CiB7CiAgICAg
YXV0byBpdGVyYXRvciA9IG1fY2xpZW50SWRlbnRpZmllcnNQZXJPcmlnaW4uZmluZChjbGllbnRP
cmlnaW4pOwogICAgIGlmIChpdGVyYXRvciA9PSBtX2NsaWVudElkZW50aWZpZXJzUGVyT3JpZ2lu
LmVuZCgpKQpAQCAtNDEwLDcgKzQxMCw3IEBAIHZvaWQgU1dTZXJ2ZXI6OnNjaGVkdWxlSm9iKFNl
cnZpY2VXb3JrZXJKb2JEYXRhJiYgam9iRGF0YSkKICAgICB9KTsKIH0KIAotdm9pZCBTV1NlcnZl
cjo6c2NoZWR1bGVVbnJlZ2lzdGVySm9iKFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciBq
b2JEYXRhSWRlbnRpZmllciwgU1dTZXJ2ZXJSZWdpc3RyYXRpb24mIHJlZ2lzdHJhdGlvbiwgRG9j
dW1lbnRPcldvcmtlcklkZW50aWZpZXIgY29udGV4dElkZW50aWZpZXIsIFVSTCYmIGNsaWVudENy
ZWF0aW9uVVJMKQordm9pZCBTV1NlcnZlcjo6c2NoZWR1bGVVbnJlZ2lzdGVySm9iKFNlcnZpY2VX
b3JrZXJKb2JEYXRhSWRlbnRpZmllciBqb2JEYXRhSWRlbnRpZmllciwgU1dTZXJ2ZXJSZWdpc3Ry
YXRpb24mIHJlZ2lzdHJhdGlvbiwgU2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciBjb250
ZXh0SWRlbnRpZmllciwgVVJMJiYgY2xpZW50Q3JlYXRpb25VUkwpCiB7CiAgICAgU2VydmljZVdv
cmtlckpvYkRhdGEgam9iRGF0YSB7IGpvYkRhdGFJZGVudGlmaWVyLCBjb250ZXh0SWRlbnRpZmll
ciB9OwogICAgIGpvYkRhdGEuY2xpZW50Q3JlYXRpb25VUkwgPSBXVEZNb3ZlKGNsaWVudENyZWF0
aW9uVVJMKTsKQEAgLTY2Nyw3ICs2NjcsNyBAQCB2b2lkIFNXU2VydmVyOjpyZW1vdmVDbGllbnRT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFNlcgogICAg
ICAgICByZWdpc3RyYXRpb24tPnJlbW92ZUNsaWVudFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24o
Y29ubmVjdGlvbi5pZGVudGlmaWVyKCkpOwogfQogCi12b2lkIFNXU2VydmVyOjp1cGRhdGVXb3Jr
ZXIoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyJiBqb2JEYXRhSWRlbnRpZmll
ciwgU1dTZXJ2ZXJSZWdpc3RyYXRpb24mIHJlZ2lzdHJhdGlvbiwgY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFNjcmlwdEJ1ZmZlciYgc2NyaXB0LCBjb25zdCBDZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmlj
YXRlSW5mbywgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiBjb250
ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnN0IENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kmIGNvZXAs
IGNvbnN0IFN0cmluZyYgcmVmZXJyZXJQb2xpY3ksIFdvcmtlclR5cGUgdHlwZSwgSGFzaE1hcDxV
UkwsIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQ+JiYgc2NyaXB0UmVz
b3VyY2VNYXAsIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+IHNl
cnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcikKK3ZvaWQgU1dTZXJ2ZXI6OnVwZGF0ZVdvcmtlcihj
b25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXImIGpvYkRhdGFJZGVudGlmaWVyLCBT
V1NlcnZlclJlZ2lzdHJhdGlvbiYgcmVnaXN0cmF0aW9uLCBjb25zdCBVUkwmIHVybCwgY29uc3Qg
U2NyaXB0QnVmZmVyJiBzY3JpcHQsIGNvbnN0IENlcnRpZmljYXRlSW5mbyYgY2VydGlmaWNhdGVJ
bmZvLCBjb25zdCBDb250ZW50U2VjdXJpdHlQb2xpY3lSZXNwb25zZUhlYWRlcnMmIGNvbnRlbnRT
ZWN1cml0eVBvbGljeSwgY29uc3QgQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeSYgY29lcCwgY29u
c3QgU3RyaW5nJiByZWZlcnJlclBvbGljeSwgV29ya2VyVHlwZSB0eXBlLCBIYXNoTWFwPFVSTCwg
U2VydmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdD4mJiBzY3JpcHRSZXNvdXJj
ZU1hcCwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2Vy
dmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKQogewogICAgIHRyeUluc3RhbGxDb250ZXh0RGF0YShT
ZXJ2aWNlV29ya2VyQ29udGV4dERhdGEgeyBqb2JEYXRhSWRlbnRpZmllciwgcmVnaXN0cmF0aW9u
LmRhdGEoKSwgU2VydmljZVdvcmtlcklkZW50aWZpZXI6OmdlbmVyYXRlKCksIHNjcmlwdCwgY2Vy
dGlmaWNhdGVJbmZvLCBjb250ZW50U2VjdXJpdHlQb2xpY3ksIGNvZXAsIHJlZmVycmVyUG9saWN5
LCB1cmwsIHR5cGUsIGZhbHNlLCBjbGllbnRJc0FwcEluaXRpYXRlZEZvclJlZ2lzdHJhYmxlRG9t
YWluKFJlZ2lzdHJhYmxlRG9tYWluKHVybCkpLCBXVEZNb3ZlKHNjcmlwdFJlc291cmNlTWFwKSwg
c2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyIH0pOwogfQpAQCAtOTQyLDcgKzk0Miw3IEBAIHZv
aWQgU1dTZXJ2ZXI6OnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChDbGllbnRPcmlnaW4mJiBj
bGllbnRPcmlnaW4sIFNlcnZpY2VXCiAgICAgY2xpZW50SWRlbnRpZmllcnNGb3JPcmlnaW4udGVy
bWluYXRlU2VydmljZVdvcmtlcnNUaW1lciA9IG51bGxwdHI7CiAKICAgICBtX2NsaWVudHNCeVJl
Z2lzdHJhYmxlRG9tYWluLmVuc3VyZShjbGllbnRPcmlnaW4uY2xpZW50UmVnaXN0cmFibGVEb21h
aW4oKSwgW10gewotICAgICAgICByZXR1cm4gSGFzaFNldDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRl
bnRpZmllcj4geyB9OworICAgICAgICByZXR1cm4gSGFzaFNldDxTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllcj4geyB9OwogICAgIH0pLml0ZXJhdG9yLT52YWx1ZS5hZGQoY2xpZW50SWRl
bnRpZmllcik7CiAKICAgICBpZiAoIWNvbnRyb2xsaW5nU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bklkZW50aWZpZXIpCkBAIC05NTcsNyArOTU3LDcgQEAgdm9pZCBTV1NlcnZlcjo6cmVnaXN0ZXJT
ZXJ2aWNlV29ya2VyQ2xpZW50KENsaWVudE9yaWdpbiYmIGNsaWVudE9yaWdpbiwgU2VydmljZVcK
ICAgICBtX2NsaWVudFRvQ29udHJvbGxpbmdSZWdpc3RyYXRpb24uYWRkKGNsaWVudElkZW50aWZp
ZXIsICpjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKTsKIH0K
IAotdm9pZCBTV1NlcnZlcjo6dW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgQ2xp
ZW50T3JpZ2luJiBjbGllbnRPcmlnaW4sIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIGNs
aWVudElkZW50aWZpZXIpCit2b2lkIFNXU2VydmVyOjp1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNs
aWVudChjb25zdCBDbGllbnRPcmlnaW4mIGNsaWVudE9yaWdpbiwgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikKIHsKICAgICBhdXRvIGNsaWVudFJlZ2lz
dHJhYmxlRG9tYWluID0gY2xpZW50T3JpZ2luLmNsaWVudFJlZ2lzdHJhYmxlRG9tYWluKCk7CiAg
ICAgYXV0byBhcHBJbml0aWF0ZWRWYWx1ZUJlZm9yZSA9IGNsaWVudElzQXBwSW5pdGlhdGVkRm9y
UmVnaXN0cmFibGVEb21haW4oY2xpZW50T3JpZ2luLmNsaWVudFJlZ2lzdHJhYmxlRG9tYWluKCkp
OwpAQCAtMTE0Miw3ICsxMTQyLDcgQEAgdm9pZCBTV1NlcnZlcjo6cmVtb3ZlQ29udGV4dENvbm5l
Y3Rpb24oU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uJiBjb25uZWN0aW9uKQogICAgICAgICBj
cmVhdGVDb250ZXh0Q29ubmVjdGlvbihyZWdpc3RyYWJsZURvbWFpbiwgc2VydmljZVdvcmtlclBh
Z2VJZGVudGlmaWVyKTsKIH0KIAotdm9pZCBTV1NlcnZlcjo6Y3JlYXRlQ29udGV4dENvbm5lY3Rp
b24oY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlZ2lzdHJhYmxlRG9tYWluLCBzdGQ6Om9wdGlv
bmFsPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50
aWZpZXIpCit2b2lkIFNXU2VydmVyOjpjcmVhdGVDb250ZXh0Q29ubmVjdGlvbihjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgcmVnaXN0cmFibGVEb21haW4sIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcikKIHsK
ICAgICBBU1NFUlQoIW1fY29udGV4dENvbm5lY3Rpb25zLmNvbnRhaW5zKHJlZ2lzdHJhYmxlRG9t
YWluKSk7CiAgICAgaWYgKG1fcGVuZGluZ0Nvbm5lY3Rpb25Eb21haW5zLmNvbnRhaW5zKHJlZ2lz
dHJhYmxlRG9tYWluKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXIuaAppbmRleCBhOGVhYTYwYWUwMjk0NTVmZWNhNzk0ZDA4MzdiOGQ3MWMyYmU1
NzIzLi5hMWFhMDcxYmY5YjQyMDliYjcwM2QwNDcyNDAyNjkxZDg5Njc2YzFhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCkBAIC0yOCw5
ICsyOCw5IEBACiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogCiAjaW5jbHVkZSAiQ2xpZW50
T3JpZ2luLmgiCi0jaW5jbHVkZSAiRG9jdW1lbnRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiRXhj
ZXB0aW9uT3IuaCIKICNpbmNsdWRlICJTV1NlcnZlcldvcmtlci5oIgorI2luY2x1ZGUgIlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW5E
YXRhLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckNsaWVudERhdGEuaCIKICNpbmNsdWRlICJT
ZXJ2aWNlV29ya2VySWRlbnRpZmllci5oIgpAQCAtODksOSArODksOSBAQCBwdWJsaWM6CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBmaXJlVXBkYXRlRm91bmRFdmVudChTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uSWRlbnRpZmllcikgPSAwOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVnaXN0cmF0
aW9uTGFzdFVwZGF0ZVRpbWUoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFdh
bGxUaW1lKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzZXRSZWdpc3RyYXRpb25VcGRhdGVW
aWFDYWNoZShTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgU2VydmljZVdvcmtl
clVwZGF0ZVZpYUNhY2hlKSA9IDA7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBub3RpZnlDbGllbnRz
T2ZDb250cm9sbGVyQ2hhbmdlKGNvbnN0IEhhc2hTZXQ8RG9jdW1lbnRJZGVudGlmaWVyPiYgY29u
dGV4dElkZW50aWZpZXJzLCBjb25zdCBTZXJ2aWNlV29ya2VyRGF0YSYgbmV3Q29udHJvbGxlcikg
PSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5Q2xpZW50c09mQ29udHJvbGxlckNoYW5n
ZShjb25zdCBIYXNoU2V0PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiYgY29udGV4
dElkZW50aWZpZXJzLCBjb25zdCBTZXJ2aWNlV29ya2VyRGF0YSYgbmV3Q29udHJvbGxlcikgPSAw
OwogICAgICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0cmF0aW9uUmVhZHkodWludDY0X3QgcmVnaXN0
cmF0aW9uUmVhZHlSZXF1ZXN0SWRlbnRpZmllciwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRh
dGEmJikgPSAwOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3Jr
ZXJDbGllbnQoRG9jdW1lbnRJZGVudGlmaWVyLCBjb25zdCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0
cyYsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbikg
PSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGll
bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IE1lc3NhZ2VXaXRoTWVz
c2FnZVBvcnRzJiwgU2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNl
T3JpZ2luKSA9IDA7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGNvbnRleHRDb25uZWN0aW9uQ3Jl
YXRlZChTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24mKSA9IDA7CiAKQEAgLTEyNyw3ICsxMjcs
NyBAQCBwdWJsaWM6CiAgICAgfTsKIAogICAgIHVzaW5nIFNvZnRVcGRhdGVDYWxsYmFjayA9IEZ1
bmN0aW9uPHZvaWQoU2VydmljZVdvcmtlckpvYkRhdGEmJiBqb2JEYXRhLCBib29sIHNob3VsZFJl
ZnJlc2hDYWNoZSwgUmVzb3VyY2VSZXF1ZXN0JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29u
c3QgU2VydmljZVdvcmtlckZldGNoUmVzdWx0Jik+JiYpPjsKLSAgICB1c2luZyBDcmVhdGVDb250
ZXh0Q29ubmVjdGlvbkNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25zdCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiYsIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudElkZW50aWZp
ZXI+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpPjsKKyAgICB1c2luZyBDcmVhdGVDb250
ZXh0Q29ubmVjdGlvbkNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25zdCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiYsIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXI+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpPjsKICAgICB1c2luZyBBcHBCb3Vu
ZERvbWFpbnNDYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChI
YXNoU2V0PFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiYmKT4mJik+OwogICAgIFdFQkNPUkVf
RVhQT1JUIFNXU2VydmVyKFVuaXF1ZVJlZjxTV09yaWdpblN0b3JlPiYmLCBib29sIHByb2Nlc3NU
ZXJtaW5hdGlvbkRlbGF5RW5hYmxlZCwgU3RyaW5nJiYgcmVnaXN0cmF0aW9uRGF0YWJhc2VEaXJl
Y3RvcnksIFBBTDo6U2Vzc2lvbklELCBib29sIHNob3VsZFJ1blNlcnZpY2VXb3JrZXJzT25NYWlu
VGhyZWFkRm9yVGVzdGluZywgYm9vbCBoYXNTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnQsIFNvZnRV
cGRhdGVDYWxsYmFjayYmLCBDcmVhdGVDb250ZXh0Q29ubmVjdGlvbkNhbGxiYWNrJiYsIEFwcEJv
dW5kRG9tYWluc0NhbGxiYWNrJiYpOwogCkBAIC0xNDYsMTkgKzE0NiwxOSBAQCBwdWJsaWM6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhPiBn
ZXRSZWdpc3RyYXRpb25zKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2luLCBjb25z
dCBVUkwmIGNsaWVudFVSTCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjaGVkdWxlSm9i
KFNlcnZpY2VXb3JrZXJKb2JEYXRhJiYpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2NoZWR1
bGVVbnJlZ2lzdGVySm9iKFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciwgU1dTZXJ2ZXJS
ZWdpc3RyYXRpb24mLCBEb2N1bWVudE9yV29ya2VySWRlbnRpZmllciwgVVJMJiYpOworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2NoZWR1bGVVbnJlZ2lzdGVySm9iKFNlcnZpY2VXb3JrZXJKb2JE
YXRhSWRlbnRpZmllciwgU1dTZXJ2ZXJSZWdpc3RyYXRpb24mLCBTZXJ2aWNlV29ya2VyT3JDbGll
bnRJZGVudGlmaWVyLCBVUkwmJik7CiAKICAgICB2b2lkIHJlamVjdEpvYihjb25zdCBTZXJ2aWNl
V29ya2VySm9iRGF0YSYsIGNvbnN0IEV4Y2VwdGlvbkRhdGEmKTsKICAgICB2b2lkIHJlc29sdmVS
ZWdpc3RyYXRpb25Kb2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmLCBjb25zdCBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uRGF0YSYsIFNob3VsZE5vdGlmeVdoZW5SZXNvbHZlZCk7CiAgICAg
dm9pZCByZXNvbHZlVW5yZWdpc3RyYXRpb25Kb2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEm
LCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiwgYm9vbCB1bnJlZ2lzdHJhdGlv
blJlc3VsdCk7CiAgICAgdm9pZCBzdGFydFNjcmlwdEZldGNoKGNvbnN0IFNlcnZpY2VXb3JrZXJK
b2JEYXRhJiwgU1dTZXJ2ZXJSZWdpc3RyYXRpb24mKTsKIAotICAgIHZvaWQgdXBkYXRlV29ya2Vy
KGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYsIFNXU2VydmVyUmVnaXN0cmF0
aW9uJiwgY29uc3QgVVJMJiwgY29uc3QgU2NyaXB0QnVmZmVyJiwgY29uc3QgQ2VydGlmaWNhdGVJ
bmZvJiwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgY29uc3Qg
Q3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeSYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXJQb2xpY3ks
IFdvcmtlclR5cGUsIEhhc2hNYXA8VVJMLCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9y
dGVkU2NyaXB0PiYmLCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVy
PiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIpOworICAgIHZvaWQgdXBkYXRlV29ya2VyKGNv
bnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYsIFNXU2VydmVyUmVnaXN0cmF0aW9u
JiwgY29uc3QgVVJMJiwgY29uc3QgU2NyaXB0QnVmZmVyJiwgY29uc3QgQ2VydGlmaWNhdGVJbmZv
JiwgY29uc3QgQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJzJiwgY29uc3QgQ3Jv
c3NPcmlnaW5FbWJlZGRlclBvbGljeSYsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXJQb2xpY3ksIFdv
cmtlclR5cGUsIEhhc2hNYXA8VVJMLCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVk
U2NyaXB0PiYmLCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
PiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZmlyZUluc3RhbGxFdmVu
dChTV1NlcnZlcldvcmtlciYpOwogICAgIHZvaWQgZmlyZUFjdGl2YXRlRXZlbnQoU1dTZXJ2ZXJX
b3JrZXImKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIFNXU2VydmVyV29ya2VyKiB3b3JrZXJCeUlE
KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6
Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiBzZXJ2aWNlV29ya2VyQ2xpZW50V2l0
aE9yaWdpbkJ5SUQoY29uc3QgQ2xpZW50T3JpZ2luJiwgY29uc3QgU2VydmljZVdvcmtlckNsaWVu
dElkZW50aWZpZXImKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6Om9wdGlvbmFsPFNl
cnZpY2VXb3JrZXJDbGllbnREYXRhPiBzZXJ2aWNlV29ya2VyQ2xpZW50V2l0aE9yaWdpbkJ5SUQo
Y29uc3QgQ2xpZW50T3JpZ2luJiwgY29uc3QgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXImKSBjb25zdDsKICAgICBTdHJpbmcgc2VydmljZVdvcmtlckNsaWVudFVzZXJBZ2VudChjb25z
dCBDbGllbnRPcmlnaW4mKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBTV1NlcnZlcldvcmtl
ciogYWN0aXZlV29ya2VyRnJvbVJlZ2lzdHJhdGlvbklEKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JZGVudGlmaWVyKTsKIApAQCAtMTg0LDcgKzE4NCw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgSGFzaFNldDxTV1NlcnZlcio+JiBhbGxTZXJ2ZXJzKCk7CiAKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChDbGllbnRPcmln
aW4mJiwgU2VydmljZVdvcmtlckNsaWVudERhdGEmJiwgY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcj4mLCBTdHJpbmcmJiB1c2VyQWdlbnQpOwot
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoY29u
c3QgQ2xpZW50T3JpZ2luJiwgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIpOworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgdW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgQ2xp
ZW50T3JpZ2luJiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpOwogCiAgICAgdXNp
bmcgUnVuU2VydmljZVdvcmtlckNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb24qKT47CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBydW5TZXJ2aWNlV29y
a2VySWZOZWNlc3NhcnkoU2VydmljZVdvcmtlcklkZW50aWZpZXIsIFJ1blNlcnZpY2VXb3JrZXJD
YWxsYmFjayYmKTsKQEAgLTIwNyw3ICsyMDcsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCByZW1vdmVDb250ZXh0Q29ubmVjdGlvbihTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b24mKTsKIAogICAgIFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiogY29udGV4dENvbm5lY3Rp
b25Gb3JSZWdpc3RyYWJsZURvbWFpbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKSB7
IHJldHVybiBtX2NvbnRleHRDb25uZWN0aW9ucy5nZXQoZG9tYWluKTsgfQotICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgY3JlYXRlQ29udGV4dENvbm5lY3Rpb24oY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mLCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiBzZXJ2aWNl
V29ya2VyUGFnZUlkZW50aWZpZXIpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY3JlYXRlQ29u
dGV4dENvbm5lY3Rpb24oY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBzdGQ6Om9wdGlvbmFsPFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZp
ZXIpOwogCiAgICAgYm9vbCBpc0ltcG9ydENvbXBsZXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1faW1w
b3J0Q29tcGxldGVkOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB3aGVuSW1wb3J0SXNDb21w
bGV0ZWQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKQEAgLTI2MSwxNiArMjYxLDE2IEBA
IHByaXZhdGU6CiAKICAgICBIYXNoTWFwPFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBSZWY8U1dT
ZXJ2ZXJXb3JrZXI+PiBtX3J1bm5pbmdPclRlcm1pbmF0aW5nV29ya2VyczsKIAotICAgIEhhc2hN
YXA8UmVnaXN0cmFibGVEb21haW4sIEhhc2hTZXQ8U2VydmljZVdvcmtlckNsaWVudElkZW50aWZp
ZXI+PiBtX2NsaWVudHNCeVJlZ2lzdHJhYmxlRG9tYWluOworICAgIEhhc2hNYXA8UmVnaXN0cmFi
bGVEb21haW4sIEhhc2hTZXQ8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+PiBtX2Ns
aWVudHNCeVJlZ2lzdHJhYmxlRG9tYWluOwogICAgIHN0cnVjdCBDbGllbnRzIHsKLSAgICAgICAg
VmVjdG9yPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiBpZGVudGlmaWVyczsKKyAgICAg
ICAgVmVjdG9yPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBpZGVudGlmaWVyczsK
ICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFRpbWVyPiB0ZXJtaW5hdGVTZXJ2aWNlV29ya2Vyc1Rp
bWVyOwogICAgICAgICBTdHJpbmcgdXNlckFnZW50OwogICAgIH07CiAgICAgSGFzaE1hcDxDbGll
bnRPcmlnaW4sIENsaWVudHM+IG1fY2xpZW50SWRlbnRpZmllcnNQZXJPcmlnaW47Ci0gICAgSGFz
aE1hcDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciwgV2Vha1B0cjxTV1NlcnZlclJlZ2lz
dHJhdGlvbj4+IG1fc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyVG9SZWdpc3RyYXRpb25NYXA7
Ci0gICAgSGFzaE1hcDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciwgU2VydmljZVdvcmtl
ckNsaWVudERhdGE+IG1fY2xpZW50c0J5SWQ7Ci0gICAgSGFzaE1hcDxTZXJ2aWNlV29ya2VyQ2xp
ZW50SWRlbnRpZmllciwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+IG1fY2xp
ZW50VG9Db250cm9sbGluZ1JlZ2lzdHJhdGlvbjsKKyAgICBIYXNoTWFwPFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyLCBXZWFrUHRyPFNXU2VydmVyUmVnaXN0cmF0aW9uPj4gbV9zZXJ2
aWNlV29ya2VyUGFnZUlkZW50aWZpZXJUb1JlZ2lzdHJhdGlvbk1hcDsKKyAgICBIYXNoTWFwPFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4g
bV9jbGllbnRzQnlJZDsKKyAgICBIYXNoTWFwPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcj4gbV9jbGllbnRUb0NvbnRy
b2xsaW5nUmVnaXN0cmF0aW9uOwogCiAgICAgVW5pcXVlUmVmPFNXT3JpZ2luU3RvcmU+IG1fb3Jp
Z2luU3RvcmU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlZ2lzdHJhdGlvblN0b3JlPiBtX3JlZ2lz
dHJhdGlvblN0b3JlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcAppbmRleCA4NmI1ODI2NDE0
ZDljNTgyYjZlYjBmZDNkNDE5Yjk5ZjIwNjc3OGEyLi5mN2M2N2JkOWI1NmQ5NWRkYTczNjY5YTkz
OTdkYTA0MDdiYjIyMWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcApAQCAtNDIsNyAr
NDIsNyBAQCBzdGF0aWMgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgZ2VuZXJh
dGVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbgogICAgIHJldHVybiBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uSWRlbnRpZmllcjo6Z2VuZXJhdGUoKTsKIH0KIAotU1dTZXJ2ZXJSZWdpc3Ry
YXRpb246OlNXU2VydmVyUmVnaXN0cmF0aW9uKFNXU2VydmVyJiBzZXJ2ZXIsIGNvbnN0IFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmIGtleSwgU2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hl
IHVwZGF0ZVZpYUNhY2hlLCBjb25zdCBVUkwmIHNjb3BlVVJMLCBjb25zdCBVUkwmIHNjcmlwdFVS
TCwgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gc2VydmljZVdv
cmtlclBhZ2VJZGVudGlmaWVyKQorU1dTZXJ2ZXJSZWdpc3RyYXRpb246OlNXU2VydmVyUmVnaXN0
cmF0aW9uKFNXU2VydmVyJiBzZXJ2ZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25L
ZXkmIGtleSwgU2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlIHVwZGF0ZVZpYUNhY2hlLCBjb25z
dCBVUkwmIHNjb3BlVVJMLCBjb25zdCBVUkwmIHNjcmlwdFVSTCwgc3RkOjpvcHRpb25hbDxTY3Jp
cHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVy
KQogICAgIDogbV9pZGVudGlmaWVyKGdlbmVyYXRlU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklk
ZW50aWZpZXIoKSkKICAgICAsIG1fcmVnaXN0cmF0aW9uS2V5KGtleSkKICAgICAsIG1fdXBkYXRl
VmlhQ2FjaGUodXBkYXRlVmlhQ2FjaGUpCkBAIC0xNzIsMjIgKzE3MiwyMCBAQCB2b2lkIFNXU2Vy
dmVyUmVnaXN0cmF0aW9uOjpyZW1vdmVDbGllbnRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKFNX
U2VydmVyQ29ubmVjdAogICAgIG1fY29ubmVjdGlvbnNXaXRoQ2xpZW50UmVnaXN0cmF0aW9ucy5y
ZW1vdmUoY29ubmVjdGlvbklkZW50aWZpZXIpOwogfQogCi12b2lkIFNXU2VydmVyUmVnaXN0cmF0
aW9uOjphZGRDbGllbnRVc2luZ1JlZ2lzdHJhdGlvbihjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50
SWRlbnRpZmllciYgY2xpZW50SWRlbnRpZmllcikKK3ZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246
OmFkZENsaWVudFVzaW5nUmVnaXN0cmF0aW9uKGNvbnN0IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyJiBjbGllbnRJZGVudGlmaWVyKQogewotICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9j
bGllbnRzVXNpbmdSZWdpc3RyYXRpb24uZW5zdXJlKGNsaWVudElkZW50aWZpZXIuc2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIsIFtdIHsKLSAgICAgICAgcmV0dXJuIEhhc2hTZXQ8RG9jdW1lbnRJ
ZGVudGlmaWVyPiB7IH07Ci0gICAgfSkuaXRlcmF0b3ItPnZhbHVlLmFkZChjbGllbnRJZGVudGlm
aWVyLmNvbnRleHRJZGVudGlmaWVyKTsKKyAgICBhdXRvIGFkZFJlc3VsdCA9IG1fY2xpZW50c1Vz
aW5nUmVnaXN0cmF0aW9uLmFkZChjbGllbnRJZGVudGlmaWVyLnByb2Nlc3NJZGVudGlmaWVyKCks
IEhhc2hTZXQ8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IHsgfSkuaXRlcmF0b3It
PnZhbHVlLmFkZChjbGllbnRJZGVudGlmaWVyKTsKICAgICBBU1NFUlRfVU5VU0VEKGFkZFJlc3Vs
dCwgYWRkUmVzdWx0LmlzTmV3RW50cnkpOwogfQogCi12b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9u
OjpyZW1vdmVDbGllbnRVc2luZ1JlZ2lzdHJhdGlvbihjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50
SWRlbnRpZmllciYgY2xpZW50SWRlbnRpZmllcikKK3ZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246
OnJlbW92ZUNsaWVudFVzaW5nUmVnaXN0cmF0aW9uKGNvbnN0IFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyJiBjbGllbnRJZGVudGlmaWVyKQogewotICAgIGF1dG8gaXRlcmF0b3IgPSBt
X2NsaWVudHNVc2luZ1JlZ2lzdHJhdGlvbi5maW5kKGNsaWVudElkZW50aWZpZXIuc2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIpOworICAgIGF1dG8gaXRlcmF0b3IgPSBtX2NsaWVudHNVc2luZ1Jl
Z2lzdHJhdGlvbi5maW5kKGNsaWVudElkZW50aWZpZXIucHJvY2Vzc0lkZW50aWZpZXIoKSk7CiAg
ICAgQVNTRVJUKGl0ZXJhdG9yICE9IG1fY2xpZW50c1VzaW5nUmVnaXN0cmF0aW9uLmVuZCgpKTsK
ICAgICBpZiAoaXRlcmF0b3IgPT0gbV9jbGllbnRzVXNpbmdSZWdpc3RyYXRpb24uZW5kKCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGJvb2wgd2FzUmVtb3ZlZCA9IGl0ZXJhdG9yLT52YWx1ZS5y
ZW1vdmUoY2xpZW50SWRlbnRpZmllci5jb250ZXh0SWRlbnRpZmllcik7CisgICAgYm9vbCB3YXNS
ZW1vdmVkID0gaXRlcmF0b3ItPnZhbHVlLnJlbW92ZShjbGllbnRJZGVudGlmaWVyKTsKICAgICBB
U1NFUlRfVU5VU0VEKHdhc1JlbW92ZWQsIHdhc1JlbW92ZWQpOwogCiAgICAgaWYgKGl0ZXJhdG9y
LT52YWx1ZS5pc0VtcHR5KCkpCkBAIC0zNDcsMTUgKzM0NSwxNSBAQCBib29sIFNXU2VydmVyUmVn
aXN0cmF0aW9uOjppc1VucmVnaXN0ZXJlZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fc2VydmVyLmdl
dFJlZ2lzdHJhdGlvbihrZXkoKSkgIT0gdGhpczsKIH0KIAotdm9pZCBTV1NlcnZlclJlZ2lzdHJh
dGlvbjo6Y29udHJvbENsaWVudChTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBpZGVudGlm
aWVyKQordm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6Y29udHJvbENsaWVudChTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAgIEFTU0VSVChhY3RpdmVX
b3JrZXIoKSk7CiAKICAgICBhZGRDbGllbnRVc2luZ1JlZ2lzdHJhdGlvbihpZGVudGlmaWVyKTsK
IAotICAgIEhhc2hTZXQ8RG9jdW1lbnRJZGVudGlmaWVyPiBpZGVudGlmaWVyczsKLSAgICBpZGVu
dGlmaWVycy5hZGQoaWRlbnRpZmllci5jb250ZXh0SWRlbnRpZmllcik7Ci0gICAgbV9zZXJ2ZXIu
Y29ubmVjdGlvbihpZGVudGlmaWVyLnNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKS0+bm90aWZ5
Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZShpZGVudGlmaWVycywgYWN0aXZlV29ya2VyKCktPmRh
dGEoKSk7CisgICAgSGFzaFNldDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gaWRl
bnRpZmllcnM7CisgICAgaWRlbnRpZmllcnMuYWRkKGlkZW50aWZpZXIpOworICAgIG1fc2VydmVy
LmNvbm5lY3Rpb24oaWRlbnRpZmllci5wcm9jZXNzSWRlbnRpZmllcigpKS0+bm90aWZ5Q2xpZW50
c09mQ29udHJvbGxlckNoYW5nZShpZGVudGlmaWVycywgYWN0aXZlV29ya2VyKCktPmRhdGEoKSk7
CiB9CiAKIGJvb2wgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnNob3VsZFNvZnRVcGRhdGUoY29uc3Qg
RmV0Y2hPcHRpb25zJiBvcHRpb25zKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oCmluZGV4
IDJjMTY0ZTQ0NGI0NWNlNjkwYjVlMzY4ZmY4YWJmZWQ2OTA3OGI3ZTQuLjcyODcxYjliMGEwMDc5
ZGUyMzZiMzM1OTJkNmRjZmE3ZjRlYzZiNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmgKQEAg
LTI4LDcgKzI4LDcgQEAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKICNpbmNsdWRlICJT
V1NlcnZlci5oIgotI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmgiCisj
aW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJU
eXBlcy5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCkBAIC01Miw3ICs1Miw3IEBAIGVudW0gY2xhc3Mg
SXNBcHBJbml0aWF0ZWQgOiBib29sIHsgTm8sIFllcyB9OwogY2xhc3MgU1dTZXJ2ZXJSZWdpc3Ry
YXRpb24gOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U1dTZXJ2ZXJSZWdpc3RyYXRpb24+IHsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBTV1NlcnZlclJlZ2lzdHJh
dGlvbihTV1NlcnZlciYsIGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmLCBTZXJ2
aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGUsIGNvbnN0IFVSTCYgc2NvcGVVUkwsIGNvbnN0IFVSTCYg
c2NyaXB0VVJMLCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiBz
ZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIpOworICAgIFNXU2VydmVyUmVnaXN0cmF0aW9uKFNX
U2VydmVyJiwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIFNlcnZpY2VXb3Jr
ZXJVcGRhdGVWaWFDYWNoZSwgY29uc3QgVVJMJiBzY29wZVVSTCwgY29uc3QgVVJMJiBzY3JpcHRV
UkwsIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IHNlcnZp
Y2VXb3JrZXJQYWdlSWRlbnRpZmllcik7CiAgICAgflNXU2VydmVyUmVnaXN0cmF0aW9uKCk7CiAK
ICAgICBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiBrZXkoKSBjb25zdCB7IHJl
dHVybiBtX3JlZ2lzdHJhdGlvbktleTsgfQpAQCAtODQsMTIgKzg0LDEyIEBAIHB1YmxpYzoKICAg
ICBNb25vdG9uaWNUaW1lIGNyZWF0aW9uVGltZSgpIGNvbnN0IHsgcmV0dXJuIG1fY3JlYXRpb25U
aW1lOyB9CiAKICAgICBib29sIGhhc0NsaWVudHNVc2luZ1JlZ2lzdHJhdGlvbigpIGNvbnN0IHsg
cmV0dXJuICFtX2NsaWVudHNVc2luZ1JlZ2lzdHJhdGlvbi5pc0VtcHR5KCk7IH0KLSAgICB2b2lk
IGFkZENsaWVudFVzaW5nUmVnaXN0cmF0aW9uKGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVu
dGlmaWVyJik7Ci0gICAgdm9pZCByZW1vdmVDbGllbnRVc2luZ1JlZ2lzdHJhdGlvbihjb25zdCBT
ZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYpOworICAgIHZvaWQgYWRkQ2xpZW50VXNpbmdS
ZWdpc3RyYXRpb24oY29uc3QgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXImKTsKKyAg
ICB2b2lkIHJlbW92ZUNsaWVudFVzaW5nUmVnaXN0cmF0aW9uKGNvbnN0IFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyJik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyU2VydmVyQ29ubmVjdGlv
bihTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKTsKIAogICAgIHZvaWQgbm90aWZ5Q2xpZW50
c09mQ29udHJvbGxlckNoYW5nZSgpOwotICAgIHZvaWQgY29udHJvbENsaWVudChTZXJ2aWNlV29y
a2VyQ2xpZW50SWRlbnRpZmllcik7CisgICAgdm9pZCBjb250cm9sQ2xpZW50KFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyKTsKIAogICAgIHZvaWQgY2xlYXIoKTsKICAgICBib29sIHRy
eUNsZWFyKCk7CkBAIC0xMDgsNyArMTA4LDcgQEAgcHVibGljOgogICAgIFVSTCBzY3JpcHRVUkwo
KSBjb25zdCB7IHJldHVybiBtX3NjcmlwdFVSTDsgfQogCiAgICAgYm9vbCBpc0FwcEluaXRpYXRl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNBcHBJbml0aWF0ZWQ7IH0KLSAgICBzdGQ6Om9wdGlvbmFs
PFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZp
ZXIoKSBjb25zdCB7IHJldHVybiBtX3NlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcjsgfQorICAg
IHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IHNlcnZpY2VX
b3JrZXJQYWdlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2VydmljZVdvcmtlclBhZ2VJ
ZGVudGlmaWVyOyB9CiAKIHByaXZhdGU6CiAgICAgdm9pZCBhY3RpdmF0ZSgpOwpAQCAtMTIwLDcg
KzEyMCw3IEBAIHByaXZhdGU6CiAgICAgU2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlIG1fdXBk
YXRlVmlhQ2FjaGU7CiAgICAgVVJMIG1fc2NvcGVVUkw7CiAgICAgVVJMIG1fc2NyaXB0VVJMOwot
ICAgIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+IG1fc2Vydmlj
ZVdvcmtlclBhZ2VJZGVudGlmaWVyOworICAgIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXI+IG1fc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyOwogCiAgICAg
UmVmUHRyPFNXU2VydmVyV29ya2VyPiBtX3ByZUluc3RhbGxhdGlvbldvcmtlcjsgLy8gSW1wbGVt
ZW50YXRpb24gZGV0YWlsLCBub3QgcGFydCBvZiB0aGUgc3BlY2lmaWNhdGlvbi4KICAgICBSZWZQ
dHI8U1dTZXJ2ZXJXb3JrZXI+IG1faW5zdGFsbGluZ1dvcmtlcjsKQEAgLTEzMyw3ICsxMzMsNyBA
QCBwcml2YXRlOgogICAgIFNXU2VydmVyJiBtX3NlcnZlcjsKIAogICAgIE1vbm90b25pY1RpbWUg
bV9jcmVhdGlvblRpbWU7Ci0gICAgSGFzaE1hcDxTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
LCBIYXNoU2V0PERvY3VtZW50SWRlbnRpZmllcj4+IG1fY2xpZW50c1VzaW5nUmVnaXN0cmF0aW9u
OworICAgIEhhc2hNYXA8U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgSGFzaFNldDxTY3Jp
cHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4+IG1fY2xpZW50c1VzaW5nUmVnaXN0cmF0aW9u
OwogCiAgICAgV2ViQ29yZTo6VGltZXIgbV9zb2Z0VXBkYXRlVGltZXI7CiAgICAgCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKaW5kZXggZmVjNGJkYmYwMTgyMjk5ODU5
ZTc3NzBhMTI0ODY5MmZiZjU2OTlhZC4uYmZlZWNjZTAzZTA0Y2M3OGU4N2UxZTE2MjY5Yjk2MzAx
ZDQ4MTdhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNwcApAQCAt
NDAsNyArNDAsNyBAQCBzdGF0aWMgU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uSWRlbnRpZmll
ciBnZW5lcmF0ZVNlcnZlclRvQ29udGV4dENvbm5lY3Rpb25JZAogICAgIHJldHVybiBTV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb25JZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwogfQogCi1TV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb246OlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbihSZWdpc3Ry
YWJsZURvbWFpbiYmIHJlZ2lzdHJhYmxlRG9tYWluLCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3Jr
ZXJDbGllbnRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIpCitTV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb246OlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbihSZWdpc3Ry
YWJsZURvbWFpbiYmIHJlZ2lzdHJhYmxlRG9tYWluLCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIpCiAgICAg
OiBtX2lkZW50aWZpZXIoZ2VuZXJhdGVTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uSWRlbnRpZmll
cigpKQogICAgICwgbV9yZWdpc3RyYWJsZURvbWFpbihXVEZNb3ZlKHJlZ2lzdHJhYmxlRG9tYWlu
KSkKICAgICAsIG1fc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKHNlcnZpY2VXb3JrZXJQYWdl
SWRlbnRpZmllcikKQEAgLTg3LDcgKzg3LDcgQEAgdm9pZCBTV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb246OndvcmtlclRlcm1pbmF0ZWQoU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmkKICAg
ICAgICAgd29ya2VyLT5jb250ZXh0VGVybWluYXRlZCgpOwogfQogCi12b2lkIFNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbjo6ZmluZENsaWVudEJ5SWRlbnRpZmllcih1aW50NjRfdCByZXF1ZXN0
SWRlbnRpZmllciwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZp
ZXIsIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIGNsaWVudElkKQordm9pZCBTV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb246OmZpbmRDbGllbnRCeUlkZW50aWZpZXIodWludDY0X3QgcmVx
dWVzdElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJZCkKIHsKICAg
ICBpZiAoYXV0byogd29ya2VyID0gU1dTZXJ2ZXJXb3JrZXI6OmV4aXN0aW5nV29ya2VyRm9ySWRl
bnRpZmllcihzZXJ2aWNlV29ya2VySWRlbnRpZmllcikpCiAgICAgICAgIHdvcmtlci0+Y29udGV4
dENvbm5lY3Rpb24oKS0+ZmluZENsaWVudEJ5SWRlbnRpZmllckNvbXBsZXRlZChyZXF1ZXN0SWRl
bnRpZmllciwgd29ya2VyLT5maW5kQ2xpZW50QnlJZGVudGlmaWVyKGNsaWVudElkKSwgZmFsc2Up
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKaW5kZXggNTIzNTU3MzI3ODYz
MGY3ODAzM2VkZWU5ODRhOWZjMDU1OWM0ZGQ2NS4uYmRkMzYzYjJiYzQ1MGNjMjk5MmU2NTY4MzZh
Zjc3ZWQ1M2JjZGE0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCkBA
IC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJFeGNlcHRpb25EYXRhLmgiCiAjaW5jbHVkZSAi
UmVnaXN0cmFibGVEb21haW4uaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDbGllbnRRdWVyeU9wdGlvbnMuaCIK
ICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEuaCIKICNpbmNsdWRlICJTZXJ2aWNl
V29ya2VySWRlbnRpZmllci5oIgpAQCAtMzksNyArNDAsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIFNXU2VydmVyOwogc3RydWN0IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhOwotc3Ry
dWN0IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyOwogc3RydWN0IFNlcnZpY2VXb3JrZXJD
b250ZXh0RGF0YTsKIHN0cnVjdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI7CiBlbnVt
IGNsYXNzIFdvcmtlclRocmVhZE1vZGUgOiBib29sOwpAQCAtNzAsMjUgKzcwLDI1IEBAIHB1Ymxp
YzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNlcnZpY2VXb3JrZXJIYXNQZW5kaW5nRXZl
bnRzKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBib29sIGhhc1BlbmRpbmdFdmVudHMpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2tpcFdhaXRpbmcoU2VydmljZVdvcmtlcklkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB3
b3JrZXJUZXJtaW5hdGVkKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKLSAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGZpbmRDbGllbnRCeUlkZW50aWZpZXIodWludDY0X3QgY2xpZW50SWRSZXF1ZXN0
SWRlbnRpZmllciwgU2VydmljZVdvcmtlcklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnRJ
ZGVudGlmaWVyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZpbmRDbGllbnRCeUlkZW50aWZp
ZXIodWludDY0X3QgY2xpZW50SWRSZXF1ZXN0SWRlbnRpZmllciwgU2VydmljZVdvcmtlcklkZW50
aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIG1hdGNoQWxsKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBTZXJ2aWNlV29y
a2VySWRlbnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlckNsaWVudFF1ZXJ5T3B0aW9ucyYpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xhaW0oU2VydmljZVdvcmtlcklkZW50aWZpZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxFeGNlcHRpb25EYXRhPiYmKT4mJik7
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTY3JpcHRSZXNvdXJjZShTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgVVJMJiYgc2NyaXB0VVJMLCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6Oklt
cG9ydGVkU2NyaXB0JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlkRmFpbEhlYXJ0QmVh
dENoZWNrKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKIAogICAgIGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiByZWdpc3RyYWJsZURvbWFpbigpIGNvbnN0IHsgcmV0dXJuIG1fcmVnaXN0cmFibGVE
b21haW47IH0KLSAgICBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVy
PiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3NlcnZpY2VX
b3JrZXJQYWdlSWRlbnRpZmllcjsgfQorICAgIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcigpIGNvbnN0IHsg
cmV0dXJuIG1fc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyOyB9CiAKICAgICB2aXJ0dWFsIHZv
aWQgY29ubmVjdGlvbklzTm9Mb25nZXJOZWVkZWQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHRl
cm1pbmF0ZUR1ZVRvVW5yZXNwb25zaXZlbmVzcygpID0gMDsKIAogcHJvdGVjdGVkOgotICAgIFdF
QkNPUkVfRVhQT1JUIFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbihSZWdpc3RyYWJsZURvbWFp
biYmLCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiBzZXJ2aWNl
V29ya2VyUGFnZUlkZW50aWZpZXIpOworICAgIFdFQkNPUkVfRVhQT1JUIFNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbihSZWdpc3RyYWJsZURvbWFpbiYmLCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIpOwog
CiBwcml2YXRlOgogICAgIFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbklkZW50aWZpZXIgbV9p
ZGVudGlmaWVyOwogICAgIFJlZ2lzdHJhYmxlRG9tYWluIG1fcmVnaXN0cmFibGVEb21haW47Ci0g
ICAgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gbV9zZXJ2aWNl
V29ya2VyUGFnZUlkZW50aWZpZXI7CisgICAgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllcj4gbV9zZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXI7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwCmluZGV4IDJiMDRjMjg4ZmM4YzY5
YTRjOTA2ZGVhNTQ2YzY4MjQ2MDcxNDJmNTYuLmI2N2JhOWE5NjQzNTRmMGQ2ZGRhZjhiZmY2OWVi
YjFlN2UwZDBkOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwCkBAIC0yMjMsNyArMjIzLDcgQEAgdm9pZCBT
V1NlcnZlcldvcmtlcjo6Y29udGV4dFRlcm1pbmF0ZWQoKQogICAgICAgICBtX3NlcnZlci0+d29y
a2VyQ29udGV4dFRlcm1pbmF0ZWQoKnRoaXMpOwogfQogCi1zdGQ6Om9wdGlvbmFsPFNlcnZpY2VX
b3JrZXJDbGllbnREYXRhPiBTV1NlcnZlcldvcmtlcjo6ZmluZENsaWVudEJ5SWRlbnRpZmllcihj
b25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYgY2xpZW50SWQpIGNvbnN0CitzdGQ6
Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiBTV1NlcnZlcldvcmtlcjo6ZmluZENs
aWVudEJ5SWRlbnRpZmllcihjb25zdCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciYg
Y2xpZW50SWQpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG1fc2VydmVyKTsKICAgICBpZiAoIW1fc2Vy
dmVyKQpAQCAtMzc0LDcgKzM3NCw3IEBAIFdvcmtlclRocmVhZE1vZGUgU1dTZXJ2ZXJXb3JrZXI6
OndvcmtlclRocmVhZE1vZGUoKSBjb25zdAogICAgIHJldHVybiBXb3JrZXJUaHJlYWRNb2RlOjpD
cmVhdGVOZXdUaHJlYWQ7CiB9CiAKLXN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudElk
ZW50aWZpZXI+IFNXU2VydmVyV29ya2VyOjpzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIoKSBj
b25zdAorc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gU1dT
ZXJ2ZXJXb3JrZXI6OnNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcigpIGNvbnN0CiB7CiAgICAg
aWYgKCFtX3JlZ2lzdHJhdGlvbikKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3Jr
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJXb3Jr
ZXIuaAppbmRleCAxZjFjODRkMDc0YTYxMDM0NzM2NGQ3YTgwOTk1NjNjMjNlYTViOGMxLi5iMjIx
NWQ5ZjRhZDRkMGZkOTE1MDRhNGMyMWFjYjkzMDQ3YTFjODI0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oCkBAIC0z
MSw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFk
ZXJzLmgiCiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5oIgogI2luY2x1ZGUg
IlJlZ2lzdHJhYmxlRG9tYWluLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oIgogI2luY2x1
ZGUgIlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJE
YXRhLmgiCkBAIC00OCw3ICs0OSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFNXU2Vy
dmVyOwogY2xhc3MgU1dTZXJ2ZXJSZWdpc3RyYXRpb247CiBjbGFzcyBTV1NlcnZlclRvQ29udGV4
dENvbm5lY3Rpb247Ci1zdHJ1Y3QgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI7CiBzdHJ1
Y3QgU2VydmljZVdvcmtlckNsaWVudFF1ZXJ5T3B0aW9uczsKIHN0cnVjdCBTZXJ2aWNlV29ya2Vy
Q29udGV4dERhdGE7CiBzdHJ1Y3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyOwpAQCAt
MTAyLDcgKzEwMiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZEZpbmlzaEluc3RhbGwoY29uc3Qg
c3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+JiwgYm9vbCB3YXNT
dWNjZXNzZnVsKTsKICAgICB2b2lkIGRpZEZpbmlzaEFjdGl2YXRpb24oKTsKICAgICB2b2lkIGNv
bnRleHRUZXJtaW5hdGVkKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpvcHRpb25hbDxTZXJ2
aWNlV29ya2VyQ2xpZW50RGF0YT4gZmluZENsaWVudEJ5SWRlbnRpZmllcihjb25zdCBTZXJ2aWNl
V29ya2VyQ2xpZW50SWRlbnRpZmllciYpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6
b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudERhdGE+IGZpbmRDbGllbnRCeUlkZW50aWZpZXIo
Y29uc3QgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXImKSBjb25zdDsKICAgICB2b2lk
IG1hdGNoQWxsKGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRRdWVyeU9wdGlvbnMmLCBTZXJ2aWNl
V29ya2VyQ2xpZW50c01hdGNoQWxsQ2FsbGJhY2smJik7CiAgICAgdm9pZCBzZXRTY3JpcHRSZXNv
dXJjZShVUkwmJiwgU2VydmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdCYmKTsK
ICAgICB2b2lkIGRpZFNhdmVTY3JpcHRzVG9EaXNrKFNjcmlwdEJ1ZmZlciYmIG1haW5TY3JpcHQs
IEhhc2hNYXA8VVJMLCBTY3JpcHRCdWZmZXI+JiYgaW1wb3J0ZWRTY3JpcHRzKTsKQEAgLTExOCw3
ICsxMTgsNyBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBDbGllbnRPcmlnaW4mIG9yaWdpbigpIGNv
bnN0OwogICAgIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZWdpc3RyYWJsZURvbWFpbigpIGNv
bnN0IHsgcmV0dXJuIG1fcmVnaXN0cmFibGVEb21haW47IH0KLSAgICBXRUJDT1JFX0VYUE9SVCBz
dGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2Vy
UGFnZUlkZW50aWZpZXIoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6Om9wdGlvbmFs
PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50
aWZpZXIoKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIFNXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbiogY29udGV4dENvbm5lY3Rpb24oKTsKICAgICBTdHJpbmcgdXNlckFnZW50KCkgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IDlmNzJkOGRjNjJiOTBiN2U2NDQz
N2M1ODcwZTc5NDRkODE0NjA2MzAuLjI5MWNjOTg5MmU4MTAyN2Q5Y2FlZDFkOWRiNzA2MWQ3M2U2
NzQxNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC0xMTU5LDcgKzExNTksNyBA
QCB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjplc3RhYmxpc2hTV1NlcnZlckNv
bm5lY3Rpb24oKQogICAgIHNlcnZlci5hZGRDb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikp
OwogfQogCi12b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjplc3RhYmxpc2hTV0Nv
bnRleHRDb25uZWN0aW9uKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFJl
Z2lzdHJhYmxlRG9tYWluJiYgcmVnaXN0cmFibGVEb21haW4sIHN0ZDo6b3B0aW9uYWw8U2Vydmlj
ZVdvcmtlckNsaWVudElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZXN0YWJsaXNoU1dDb250ZXh0Q29ubmVjdGlvbihXZWJQ
YWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBSZWdpc3RyYWJsZURvbWFpbiYmIHJl
Z2lzdHJhYmxlRG9tYWluLCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoYXV0byogc2VydmVyID0gbV9u
ZXR3b3JrUHJvY2Vzcy0+c3dTZXJ2ZXJGb3JTZXNzaW9uSWZFeGlzdHMobV9zZXNzaW9uSUQpKQog
ICAgICAgICBtX3N3Q29udGV4dENvbm5lY3Rpb24gPSBtYWtlVW5pcXVlPFdlYlNXU2VydmVyVG9D
b250ZXh0Q29ubmVjdGlvbj4oKnRoaXMsIHdlYlBhZ2VQcm94eUlELCBXVEZNb3ZlKHJlZ2lzdHJh
YmxlRG9tYWluKSwgc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyLCAqc2VydmVyKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaAppbmRleCBkMWJiZmRiMDA5MGE4ZmNmOGM4ZmE4ZDFlMGE2ZDU1YmMy
YmY5NTZmLi5lODE3YjdiNjJkMjQ5Nzg3ZGM0YWIxOWVkZWJiMGM0ZjY4NTEyZjJlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5oCkBAIC0yNTEsNyArMjUxLDcgQEAgcHJpdmF0ZToKIAogI2lmIEVO
QUJMRShTRVJWSUNFX1dPUktFUikKICAgICB2b2lkIGVzdGFibGlzaFNXU2VydmVyQ29ubmVjdGlv
bigpOwotICAgIHZvaWQgZXN0YWJsaXNoU1dDb250ZXh0Q29ubmVjdGlvbihXZWJQYWdlUHJveHlJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmLCBzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBlc3RhYmxp
c2hTV0NvbnRleHRDb25uZWN0aW9uKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluJiYsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGNsb3NlU1dDb250ZXh0Q29ubmVjdGlvbigp
OwogICAgIHZvaWQgdW5yZWdpc3RlclNXQ29ubmVjdGlvbigpOwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBkYWViYTVkODQ1ODJjNTA2Mzkx
YjJlY2ExNDM3MTBkMjNhMTdkZTEyLi4wMDVmNjMyZWY1NzdjOWMxNmE3ZGQ3YzFlNmM2N2M5MTFi
NDI2NzZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAg
LTg0LDcgKzg0LDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mg
TGVnYWN5UmVjZWl2ZXIgewogICAgIFRha2VOZXR3b3JrTG9hZEluZm9ybWF0aW9uTWV0cmljcyhX
ZWJDb3JlOjpSZXNvdXJjZUxvYWRlcklkZW50aWZpZXIgcmVzb3VyY2VMb2FkSWRlbnRpZmllcikg
LT4gKFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyBuZXR3b3JrTWV0cmljcykgU3luY2hyb25v
dXMKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAgICBFc3RhYmxpc2hTV0NvbnRleHRD
b25uZWN0aW9uKFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWluLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZp
ZXIpIC0+ICgpIEFzeW5jCisgICAgRXN0YWJsaXNoU1dDb250ZXh0Q29ubmVjdGlvbihXZWJLaXQ6
OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluIGRvbWFpbiwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKSAtPiAoKSBBc3lu
YwogICAgIENsb3NlU1dDb250ZXh0Q29ubmVjdGlvbigpCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCBiZTAwMDY2YmEw
MzM1MGNlOTY1Nzk1YzU4YmFmYTQxMmJjNDk1OTA3Li42NjZiY2MxYjIxYjk1ZDA4OTJiMmYyM2Zk
YzEyOWZiYWU2MWZlMzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtQcm9jZXNzLmNwcApAQCAtMjQ3OSw3ICsyNDc5LDcgQEAgU1dTZXJ2ZXImIE5ldHdvcmtQ
cm9jZXNzOjpzd1NlcnZlckZvclNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogICAg
ICAgICAgICAgc2hvdWxkUnVuU2VydmljZVdvcmtlcnNPbk1haW5UaHJlYWRGb3JUZXN0aW5nID0g
c2Vzc2lvbi0+c2hvdWxkUnVuU2VydmljZVdvcmtlcnNPbk1haW5UaHJlYWRGb3JUZXN0aW5nKCk7
CiAgICAgICAgIHJldHVybiBtYWtlVW5pcXVlPFNXU2VydmVyPihtYWtlVW5pcXVlUmVmPFdlYlNX
T3JpZ2luU3RvcmU+KCksIGluZm8ucHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVkLCBXVEZN
b3ZlKHBhdGgpLCBzZXNzaW9uSUQsIHNob3VsZFJ1blNlcnZpY2VXb3JrZXJzT25NYWluVGhyZWFk
Rm9yVGVzdGluZywgcGFyZW50UHJvY2Vzc0hhc1NlcnZpY2VXb3JrZXJFbnRpdGxlbWVudCgpLCBb
dGhpcywgc2Vzc2lvbklEXShhdXRvJiYgam9iRGF0YSwgYm9vbCBzaG91bGRSZWZyZXNoQ2FjaGUs
IGF1dG8mJiByZXF1ZXN0LCBhdXRvJiYgY29tcGxldGlvbkhhbmRsZXIpIG11dGFibGUgewogICAg
ICAgICAgICAgU2VydmljZVdvcmtlclNvZnRVcGRhdGVMb2FkZXI6OnN0YXJ0KG5ldHdvcmtTZXNz
aW9uKHNlc3Npb25JRCksIFdURk1vdmUoam9iRGF0YSksIHNob3VsZFJlZnJlc2hDYWNoZSwgV1RG
TW92ZShyZXF1ZXN0KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICB9LCBb
dGhpcywgc2Vzc2lvbklEXShhdXRvJiByZWdpc3RyYWJsZURvbWFpbiwgc3RkOjpvcHRpb25hbDxT
ZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVy
LCBhdXRvJiYgY29tcGxldGlvbkhhbmRsZXIpIHsKKyAgICAgICAgfSwgW3RoaXMsIHNlc3Npb25J
RF0oYXV0byYgcmVnaXN0cmFibGVEb21haW4sIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciwgYXV0byYmIGNv
bXBsZXRpb25IYW5kbGVyKSB7CiAgICAgICAgICAgICBBU1NFUlQoIXJlZ2lzdHJhYmxlRG9tYWlu
LmlzRW1wdHkoKSk7CiAgICAgICAgICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OkVzdGFibGlzaFdv
cmtlckNvbnRleHRDb25uZWN0aW9uVG9OZXR3b3JrUHJvY2VzcyB7IHJlZ2lzdHJhYmxlRG9tYWlu
LCBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIsIHNlc3Npb25JRCB9LCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSwgMCk7CiAgICAgICAgIH0sIFdURk1vdmUoYXBwQm91bmREb21haW5zQ2Fs
bGJhY2spKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Byb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aAppbmRleCA1Nzc5OWFjMDQzNjg3NDY0ODdkZDI1MzZhMTk1OTUxZTVjMDhkNzYwLi45ZDMyZDU3
OTczYTBlYmFjMWQwNzE3NWM2ZGY4NzlkNDY2Y2U2OGE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC05Niw3ICs5Niw2IEBAIHN0cnVjdCBD
bGllbnRPcmlnaW47CiBzdHJ1Y3QgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHM7CiBzdHJ1Y3QgU2Vj
dXJpdHlPcmlnaW5EYXRhOwogc3RydWN0IFNvdXBOZXR3b3JrUHJveHlTZXR0aW5nczsKLXN0cnVj
dCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcjsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
U2VydmljZVdvcmtlckZldGNoVGFzay5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suaAppbmRleCBkMzdkNzgwNjk4M2Ji
YTU0N2NhMGY5MjM1ZWI0YmY2YjczMTU2NWE0Li4wNDliM2M0MTNhZDdkMjEwMWFlOTk1YzdkOTlh
ZWU0N2RmYmRlNGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmgKQEAg
LTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9GZXRjaElkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVz
dC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1RpbWVyLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uLmNwcAppbmRleCBhNThiNGNmZDkxOGZmNDM2ZGVhODBkOGU0ZTFkOTYz
NmZjZTc0ZTUxLi5lMzM1MDkwYWZhODNiYjhjOTlmYTJhYmQ1YTQyNDcwOGU1NmRiYWI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcApAQCAtNDMsMTQgKzQzLDEzIEBA
CiAjaW5jbHVkZSAiV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIldlYlNXU2VydmVyQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgiCi0jaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudElk
ZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0V4Y2VwdGlvbkRhdGEuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0xlZ2FjeVNjaGVtZVJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJ
bXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Vy
dmljZVdvcmtlckNsaWVudERhdGEuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJD
bGllbnRJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyQ29udGV4
dERhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJKb2JEYXRhLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGUuaD4KQEAgLTEyNiw3ICsx
MjUsNyBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6c2V0UmVnaXN0cmF0aW9uVXBkYXRl
VmlhQ2FjaGUoU2VydmljZVdvcmtlclJlZ2lzdHJhdAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlNX
Q2xpZW50Q29ubmVjdGlvbjo6U2V0UmVnaXN0cmF0aW9uVXBkYXRlVmlhQ2FjaGUoaWRlbnRpZmll
ciwgdXBkYXRlVmlhQ2FjaGUpKTsKIH0KIAotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246Om5v
dGlmeUNsaWVudHNPZkNvbnRyb2xsZXJDaGFuZ2UoY29uc3QgSGFzaFNldDxEb2N1bWVudElkZW50
aWZpZXI+JiBjb250ZXh0SWRlbnRpZmllcnMsIGNvbnN0IFNlcnZpY2VXb3JrZXJEYXRhJiBuZXdD
b250cm9sbGVyKQordm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246Om5vdGlmeUNsaWVudHNPZkNv
bnRyb2xsZXJDaGFuZ2UoY29uc3QgSGFzaFNldDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
Zmllcj4mIGNvbnRleHRJZGVudGlmaWVycywgY29uc3QgU2VydmljZVdvcmtlckRhdGEmIG5ld0Nv
bnRyb2xsZXIpCiB7CiAgICAgc2VuZChNZXNzYWdlczo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpO
b3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKGNvbnRleHRJZGVudGlmaWVycywgbmV3Q29u
dHJvbGxlcikpOwogfQpAQCAtMTM2LDEyICsxMzUsMTIgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5l
Y3Rpb246OnVwZGF0ZVdvcmtlclN0YXRlSW5DbGllbnQoU2VydmljZVdvcmtlcklkZW50aWZpZXIg
d28KICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NsaWVudENvbm5lY3Rpb246OlVwZGF0ZVdvcmtl
clN0YXRlKHdvcmtlciwgc3RhdGUpKTsKIH0KIAotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246
OmNvbnRyb2xDbGllbnQoU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRp
ZmllciwgU1dTZXJ2ZXJSZWdpc3RyYXRpb24mIHJlZ2lzdHJhdGlvbiwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0KQordm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmNvbnRyb2xDbGll
bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgU1dT
ZXJ2ZXJSZWdpc3RyYXRpb24mIHJlZ2lzdHJhdGlvbiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0KQogewogICAgIC8vIEFzIHBlciBzdGVwIDEyIG9mIGh0dHBzOi8vdzNjLmdpdGh1Yi5p
by9TZXJ2aWNlV29ya2VyLyNvbi1mZXRjaC1yZXF1ZXN0LWFsZ29yaXRobSwgdGhlIGFjdGl2ZSBz
ZXJ2aWNlIHdvcmtlciBzaG91bGQgYmUgY29udHJvbGxpbmcgdGhlIGRvY3VtZW50LgogICAgIC8v
IFdlIHJlZ2lzdGVyIGEgdGVtcG9yYXJ5IHNlcnZpY2Ugd29ya2VyIGNsaWVudCB1c2luZyB0aGUg
aWRlbnRpZmllciBwcm92aWRlZCBieSBEb2N1bWVudExvYWRlciBhbmQgbm90aWZ5IERvY3VtZW50
TG9hZGVyIGFib3V0IGl0LgogICAgIC8vIElmIG5vdGlmaWNhdGlvbiBpcyBzdWNjZXNzZnVsLCBE
b2N1bWVudExvYWRlciB3aWxsIHVucmVnaXN0ZXIgdGhlIHRlbXBvcmFyeSBzZXJ2aWNlIHdvcmtl
ciBjbGllbnQganVzdCBhZnRlciB0aGUgZG9jdW1lbnQgaXMgY3JlYXRlZCBhbmQgcmVnaXN0ZXJl
ZCBhcyBhIGNsaWVudC4KLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlNXQ2xp
ZW50Q29ubmVjdGlvbjo6U2V0RG9jdW1lbnRJc0NvbnRyb2xsZWQgeyBjbGllbnRJZGVudGlmaWVy
LmNvbnRleHRJZGVudGlmaWVyLCByZWdpc3RyYXRpb24uZGF0YSgpIH0sIFt3ZWFrVGhpcyA9IFdl
YWtQdHIgeyAqdGhpcyB9LCB0aGlzLCBjbGllbnRJZGVudGlmaWVyXShib29sIGlzU3VjY2Vzcykg
eworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViU1dDbGllbnRDb25uZWN0aW9u
OjpTZXREb2N1bWVudElzQ29udHJvbGxlZCB7IGNsaWVudElkZW50aWZpZXIsIHJlZ2lzdHJhdGlv
bi5kYXRhKCkgfSwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHRoaXMsIGNsaWVudElk
ZW50aWZpZXJdKGJvb2wgaXNTdWNjZXNzKSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgaXNT
dWNjZXNzKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB1bnJlZ2lzdGVyU2VydmljZVdv
cmtlckNsaWVudChjbGllbnRJZGVudGlmaWVyKTsKQEAgLTE2Nyw3ICsxNjYsNyBAQCBzdGQ6OnVu
aXF1ZV9wdHI8U2VydmljZVdvcmtlckZldGNoVGFzaz4gV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpj
cmVhdGVGZXRjaFRhc2soTgogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAgICAg
c2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgPSByZWdpc3RyYXRpb24tPmlkZW50
aWZpZXIoKTsKLSAgICAgICAgY29udHJvbENsaWVudChTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRp
ZmllciB7IGxvYWRlci5jb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkud2ViUHJvY2Vzc0lkZW50aWZp
ZXIoKSwgKmxvYWRlci5wYXJhbWV0ZXJzKCkub3B0aW9ucy5jbGllbnRJZGVudGlmaWVyIH0sICpy
ZWdpc3RyYXRpb24sIHJlcXVlc3QpOworICAgICAgICBjb250cm9sQ2xpZW50KCpsb2FkZXIucGFy
YW1ldGVycygpLm9wdGlvbnMuY2xpZW50SWRlbnRpZmllciwgKnJlZ2lzdHJhdGlvbiwgcmVxdWVz
dCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKCFsb2FkZXIucGFyYW1ldGVycygpLnNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKQogICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CkBAIC0yNjIsNyArMjYxLDcgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnBvc3RN
ZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGQKICAgICBXVEY6
OnN3aXRjaE9uKHNvdXJjZUlkZW50aWZpZXIsIFsmXShTZXJ2aWNlV29ya2VySWRlbnRpZmllciBp
ZGVudGlmaWVyKSB7CiAgICAgICAgIGlmIChhdXRvKiBzb3VyY2VXb3JrZXIgPSBzZXJ2ZXIoKS53
b3JrZXJCeUlEKGlkZW50aWZpZXIpKQogICAgICAgICAgICAgc291cmNlRGF0YSA9IFNlcnZpY2VX
b3JrZXJPckNsaWVudERhdGEgeyBzb3VyY2VXb3JrZXItPmRhdGEoKSB9OwotICAgIH0sIFsmXShT
ZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyKSB7CisgICAgfSwgWyZdKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGlkZW50aWZpZXIpIHsKICAgICAgICAgaWYg
KGF1dG8gY2xpZW50RGF0YSA9IGRlc3RpbmF0aW9uV29ya2VyLT5maW5kQ2xpZW50QnlJZGVudGlm
aWVyKGlkZW50aWZpZXIpKQogICAgICAgICAgICAgc291cmNlRGF0YSA9IFNlcnZpY2VXb3JrZXJP
ckNsaWVudERhdGEgeyAqY2xpZW50RGF0YSB9OwogICAgIH0pOwpAQCAtMjkxLDExICsyOTAsOSBA
QCB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6c2NoZWR1bGVKb2JJblNlcnZlcihTZXJ2aWNl
V29ya2VySm9iRGF0YSYmIGpvYkRhdGEpCiAgICAgc2VydmVyKCkuc2NoZWR1bGVKb2IoV1RGTW92
ZShqb2JEYXRhKSk7CiB9CiAKLVVSTCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmNsaWVudFVSTEZy
b21JZGVudGlmaWVyKERvY3VtZW50T3JXb3JrZXJJZGVudGlmaWVyIGNvbnRleHRJZGVudGlmaWVy
KQorVVJMIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6Y2xpZW50VVJMRnJvbUlkZW50aWZpZXIoU2Vy
dmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciBjb250ZXh0SWRlbnRpZmllcikKIHsKLSAgICBy
ZXR1cm4gV1RGOjpzd2l0Y2hPbihjb250ZXh0SWRlbnRpZmllciwgWyZdKERvY3VtZW50SWRlbnRp
ZmllciBkb2N1bWVudElkZW50aWZpZXIpIC0+IFVSTCB7Ci0gICAgICAgIFNlcnZpY2VXb3JrZXJD
bGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIgeyBpZGVudGlmaWVyKCksIGRvY3VtZW50
SWRlbnRpZmllciB9OwotCisgICAgcmV0dXJuIFdURjo6c3dpdGNoT24oY29udGV4dElkZW50aWZp
ZXIsIFsmXShTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVy
KSAtPiBVUkwgewogICAgICAgICBhdXRvIGl0ZXJhdG9yID0gbV9jbGllbnRPcmlnaW5zLmZpbmQo
Y2xpZW50SWRlbnRpZmllcik7CiAgICAgICAgIGlmIChpdGVyYXRvciA9PSBtX2NsaWVudE9yaWdp
bnMuZW5kKCkpCiAgICAgICAgICAgICByZXR1cm4geyB9OwpAQCAtMzEzLDcgKzMxMCw3IEBAIFVS
TCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmNsaWVudFVSTEZyb21JZGVudGlmaWVyKERvY3VtZW50
T3JXb3JrZXJJZGVudGlmaWVyIGNvCiAgICAgfSk7CiB9CiAKLXZvaWQgV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uOjpzY2hlZHVsZVVucmVnaXN0ZXJKb2JJblNlcnZlcihTZXJ2aWNlV29ya2VySm9iSWRl
bnRpZmllciBqb2JJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmll
ciByZWdpc3RyYXRpb25JZGVudGlmaWVyLCBEb2N1bWVudE9yV29ya2VySWRlbnRpZmllciBjb250
ZXh0SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChVbnJlZ2lzdGVySm9iUmVzdWx0
JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnNj
aGVkdWxlVW5yZWdpc3RlckpvYkluU2VydmVyKFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyIGpv
YklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHJlZ2lzdHJh
dGlvbklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXIgY29udGV4dElk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVW5yZWdpc3RlckpvYlJlc3VsdCYmKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBTV1NFUlZFUkNPTk5FQ1RJT05fUkVMRUFTRV9M
T0coIlNjaGVkdWxpbmcgdW5yZWdpc3RlciBTZXJ2aWNlV29ya2VyIGpvYiBpbiBzZXJ2ZXIiKTsK
IApAQCAtMzMxLDcgKzMyOCw3IEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzY2hlZHVs
ZVVucmVnaXN0ZXJKb2JJblNlcnZlcihTZXJ2aWNlV29ya2VySm9iSWRlbnRpCiAgICAgc2VydmVy
KCkuc2NoZWR1bGVVbnJlZ2lzdGVySm9iKFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciB7
IGlkZW50aWZpZXIoKSwgam9iSWRlbnRpZmllciB9LCAqcmVnaXN0cmF0aW9uLCBjb250ZXh0SWRl
bnRpZmllciwgV1RGTW92ZShjbGllbnRVUkwpKTsKIH0KIAotdm9pZCBXZWJTV1NlcnZlckNvbm5l
Y3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KERvY3VtZW50SWRlbnRpZmll
ciBkZXN0aW5hdGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBNZXNzYWdlV2l0aE1lc3NhZ2VQ
b3J0cyYgbWVzc2FnZSwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pCit2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6
cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIgZGVzdGluYXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgTWVzc2FnZVdpdGhN
ZXNzYWdlUG9ydHMmIG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZUlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKQogewogICAgIGF1dG8qIHNvdXJjZVNl
cnZpY2VXb3JrZXIgPSBzZXJ2ZXIoKS53b3JrZXJCeUlEKHNvdXJjZUlkZW50aWZpZXIpOwogICAg
IGlmICghc291cmNlU2VydmljZVdvcmtlcikKQEAgLTM4MSw3ICszNzgsNyBAQCB2b2lkIFdlYlNX
U2VydmVyQ29ubmVjdGlvbjo6cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KFNlY3VyaXR5T3Jp
Z2luRGF0YSYmIHRvcAogICAgIH0KIH0KIAotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnVu
cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVu
dGlmaWVyJiBjbGllbnRJZGVudGlmaWVyKQordm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnVu
cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyJiBjbGllbnRJZGVudGlmaWVyKQogewogICAgIGF1dG8gaXRlcmF0b3IgPSBtX2Ns
aWVudE9yaWdpbnMuZmluZChjbGllbnRJZGVudGlmaWVyKTsKICAgICBpZiAoaXRlcmF0b3IgPT0g
bV9jbGllbnRPcmlnaW5zLmVuZCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5o
CmluZGV4IDY5NTdhZGVmOTBmZjQzYTk1MmIzNzY5MDBhN2Q5OTk2MDY5ZmMxZjIuLjI2ODU1NTRm
OWZlY2RkNDUxZWE2ZDc2ODgxNDI0NTk5NDgxYTdjYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uLmgKQEAgLTkyLDEzICs5MiwxMyBAQCBwcml2YXRlOgogICAgIHZvaWQgZmly
ZVVwZGF0ZUZvdW5kRXZlbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50
aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgc2V0UmVnaXN0cmF0aW9uTGFzdFVwZGF0ZVRpbWUoV2Vi
Q29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFdhbGxUaW1lKSBmaW5h
bDsKICAgICB2b2lkIHNldFJlZ2lzdHJhdGlvblVwZGF0ZVZpYUNhY2hlKFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVXBk
YXRlVmlhQ2FjaGUpIGZpbmFsOwotICAgIHZvaWQgbm90aWZ5Q2xpZW50c09mQ29udHJvbGxlckNo
YW5nZShjb25zdCBIYXNoU2V0PFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllcj4mIGNvbnRleHRJ
ZGVudGlmaWVycywgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckRhdGEmIG5ld0NvbnRyb2xs
ZXIpOworICAgIHZvaWQgbm90aWZ5Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZShjb25zdCBIYXNo
U2V0PFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiYgY29udGV4dElk
ZW50aWZpZXJzLCBjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRGF0YSYgbmV3Q29udHJvbGxl
cik7CiAgICAgdm9pZCByZWdpc3RyYXRpb25SZWFkeSh1aW50NjRfdCByZWdpc3RyYXRpb25SZWFk
eVJlcXVlc3RJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0
YSYmKSBmaW5hbDsKIAogICAgIHZvaWQgc2NoZWR1bGVKb2JJblNlcnZlcihXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySm9iRGF0YSYmKTsKIAogICAgIHVzaW5nIFVucmVnaXN0ZXJKb2JSZXN1bHQgPSBF
eHBlY3RlZDxib29sLCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPjsKLSAgICB2b2lkIHNjaGVkdWxl
VW5yZWdpc3RlckpvYkluU2VydmVyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVy
LCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6
RG9jdW1lbnRPcldvcmtlcklkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVW5yZWdp
c3RlckpvYlJlc3VsdCYmKT4mJik7CisgICAgdm9pZCBzY2hlZHVsZVVucmVnaXN0ZXJKb2JJblNl
cnZlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllciwgV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJPckNs
aWVudElkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVW5yZWdpc3RlckpvYlJlc3Vs
dCYmKT4mJik7CiAKICAgICB2b2lkIHN0YXJ0RmV0Y2goU2VydmljZVdvcmtlckZldGNoVGFzayYs
IFdlYkNvcmU6OlNXU2VydmVyV29ya2VyJik7CiAKQEAgLTEwNiwxMSArMTA2LDExIEBAIHByaXZh
dGU6CiAgICAgdm9pZCBnZXRSZWdpc3RyYXRpb25zKHVpbnQ2NF90IHJlZ2lzdHJhdGlvbk1hdGNo
UmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgdG9w
T3JpZ2luLCBjb25zdCBVUkwmIGNsaWVudFVSTCk7CiAKICAgICB2b2lkIHJlZ2lzdGVyU2Vydmlj
ZVdvcmtlckNsaWVudChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiB0b3BPcmlnaW4sIFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiYsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+JiwgU3RyaW5nJiYgdXNl
ckFnZW50KTsKLSAgICB2b2lkIHVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyJik7CisgICAgdm9pZCB1bnJlZ2lz
dGVyU2VydmljZVdvcmtlckNsaWVudChjb25zdCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllciYpOwogICAgIHZvaWQgdGVybWluYXRlV29ya2VyRnJvbUNsaWVudChXZWJD
b3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKICAgICB2b2lkIHdoZW5TZXJ2aWNlV29ya2VySXNUZXJtaW5hdGVkRm9yVGVzdGluZyhXZWJD
b3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKIAotICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoV2ViQ29yZTo6
RG9jdW1lbnRJZGVudGlmaWVyIGRlc3RpbmF0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFdl
YkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklk
ZW50aWZpZXIgc291cmNlU2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291
cmNlT3JpZ2luKSBmaW5hbDsKKyAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xp
ZW50KFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGRlc3RpbmF0aW9u
Q29udGV4dElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRz
JiwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc291cmNlU2VydmljZVdvcmtlcklk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKSBmaW5hbDsKIAogICAgIHZvaWQg
Y29udGV4dENvbm5lY3Rpb25DcmVhdGVkKFdlYkNvcmU6OlNXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbiYpIGZpbmFsOwogCkBAIC0xMjYsOSArMTI2LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGdl
dFB1c2hQZXJtaXNzaW9uU3RhdGUoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8dWludDhfdCwgV2ViQ29y
ZTo6RXhjZXB0aW9uRGF0YT4mJik+JiYpOwogCiAgICAgdm9pZCBwb3N0TWVzc2FnZVRvU2Vydmlj
ZVdvcmtlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbiwgV2Vi
Q29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdv
cmtlck9yQ2xpZW50SWRlbnRpZmllciYgc291cmNlKTsKLSAgICB2b2lkIGNvbnRyb2xDbGllbnQo
V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIsIFdlYkNvcmU6OlNXU2VydmVy
UmVnaXN0cmF0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgdm9p
ZCBjb250cm9sQ2xpZW50KFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
LCBXZWJDb3JlOjpTV1NlcnZlclJlZ2lzdHJhdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYpOwogCi0gICAgVVJMIGNsaWVudFVSTEZyb21JZGVudGlmaWVyKFdlYkNvcmU6OkRv
Y3VtZW50T3JXb3JrZXJJZGVudGlmaWVyKTsKKyAgICBVUkwgY2xpZW50VVJMRnJvbUlkZW50aWZp
ZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllcik7CiAKICAgICBJUEM6
OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gbV9jb250ZW50Q29ubmVjdGlvbi5wdHIoKTsgfQogICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5k
ZXJEZXN0aW5hdGlvbklEKCkgY29uc3QgZmluYWwgeyByZXR1cm4gMDsgfQpAQCAtMTM3LDcgKzEz
Nyw3IEBAIHByaXZhdGU6CiAKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2NvbnRlbnRDb25u
ZWN0aW9uOwogICAgIFJlZjxOZXR3b3JrUHJvY2Vzcz4gbV9uZXR3b3JrUHJvY2VzczsKLSAgICBI
YXNoTWFwPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLCBXZWJDb3JlOjpD
bGllbnRPcmlnaW4+IG1fY2xpZW50T3JpZ2luczsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpDbGllbnRPcmlnaW4+IG1fY2xp
ZW50T3JpZ2luczsKICAgICBIYXNoTWFwPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JJZGVudGlm
aWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFVucmVnaXN0ZXJKb2JSZXN1bHQmJik+PiBtX3Vu
cmVnaXN0ZXJKb2JzOwogICAgIGJvb2wgbV9pc1Rocm90dGxlYWJsZSB7IHRydWUgfTsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgppbmRl
eCBlMWUyZjNiZjkyNWQ5Mjk0MTg5OTc2Y2U5NGI4OGY3ZDdlZjE5MzAyLi5kNWM4NDAwOGVkMmJl
YzIwNDY0YThjMDFiOTdhYjA0YTk1MDZjNjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJT
V1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTI1LDcgKzI1LDcgQEAKIG1lc3NhZ2Vz
IC0+IFdlYlNXU2VydmVyQ29ubmVjdGlvbiBOb3RSZWZDb3VudGVkIHsKICAgICAjIFdoZW4gcG9z
c2libGUsIHRoZXNlIG1lc3NhZ2VzIGNhbiBiZSBpbXBsZW1lbnRlZCBkaXJlY3RseSBieSBXZWJD
b3JlOjpTV0NsaWVudENvbm5lY3Rpb24KICAgICBTY2hlZHVsZUpvYkluU2VydmVyKHN0cnVjdCBX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YSBqb2JEYXRhKQotICAgIFNjaGVkdWxlVW5yZWdp
c3RlckpvYkluU2VydmVyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyIGpvYklk
ZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFdlYkNvcmU6OkRvY3VtZW50T3JXb3JrZXJJZGVudGlmaWVyIGRvY3VtZW50SWRl
bnRpZmllcikgLT4gKEV4cGVjdGVkPGJvb2wsIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IHJlc3Vs
dCkgQXN5bmMKKyAgICBTY2hlZHVsZVVucmVnaXN0ZXJKb2JJblNlcnZlcihXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySm9iSWRlbnRpZmllciBqb2JJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyT3JDbGllbnRJZGVudGlmaWVyIGRvY3VtZW50SWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPGJv
b2wsIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IHJlc3VsdCkgQXN5bmMKIAogICAgIEZpbmlzaEZl
dGNoaW5nU2NyaXB0SW5TZXJ2ZXIoc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJGZXRjaFJl
c3VsdCByZXN1bHQpCiAgICAgQWRkU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkluU2VydmVyKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIGlkZW50aWZpZXIpCkBA
IC0zOSw3ICszOSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlNXU2VydmVyQ29ubmVjdGlvbiBOb3RSZWZD
b3VudGVkIHsKICAgICBXaGVuUmVnaXN0cmF0aW9uUmVhZHkodWludDY0X3Qgc2VydmljZVJlZ2lz
dHJhdGlvbk1hdGNoUmVxdWVzdElkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGEgdG9wT3JpZ2luLCBVUkwgY2xpZW50VVJMKQogICAgIEdldFJlZ2lzdHJhdGlvbnMo
dWludDY0X3Qgc2VydmljZVJlZ2lzdHJhdGlvbk1hdGNoUmVxdWVzdElkZW50aWZpZXIsIHN0cnVj
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgdG9wT3JpZ2luLCBVUkwgY2xpZW50VVJMKQog
ICAgIFJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhIHRvcE9yaWdpbiwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRE
YXRhIGRhdGEsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bklkZW50aWZpZXI+IGNvbnRyb2xsaW5nU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZp
ZXIsIFN0cmluZyB1c2VyQWdlbnQpCi0gICAgVW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQo
c3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIGlkZW50aWZpZXIp
CisgICAgVW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoV2ViQ29yZTo6U2NyaXB0RXhlY3V0
aW9uQ29udGV4dElkZW50aWZpZXIgaWRlbnRpZmllcikKIAogICAgIFRlcm1pbmF0ZVdvcmtlckZy
b21DbGllbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgd29ya2VySWRlbnRpZmll
cikgLT4gKCkgQXN5bmMKICAgICBXaGVuU2VydmljZVdvcmtlcklzVGVybWluYXRlZEZvclRlc3Rp
bmcoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgd29ya2VySWRlbnRpZmllcikgLT4g
KCkgQXN5bmMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbi5jcHAKaW5kZXggODVlZWRjNmU5NjMyYzZkMjYwZWNhMWIyMjBhOWM1M2E4ODhjMWUyYy4u
OGIyMTM4NTJkMGYxMTdkZWY4MTlkNDUyZGI3YjhmY2Y0OWUzNzU2YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKQEAgLTQ0LDcgKzQ0
LDcgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVdl
YlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6V2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uLCBXZWJQYWdlUHJv
eHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBSZWdpc3RyYWJsZURvbWFpbiYmIHJlZ2lzdHJh
YmxlRG9tYWluLCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiBz
ZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIsIFNXU2VydmVyJiBzZXJ2ZXIpCitXZWJTV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb246OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbihOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbiwgV2ViUGFnZVByb3h5SWRlbnRp
ZmllciB3ZWJQYWdlUHJveHlJRCwgUmVnaXN0cmFibGVEb21haW4mJiByZWdpc3RyYWJsZURvbWFp
biwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2Vydmlj
ZVdvcmtlclBhZ2VJZGVudGlmaWVyLCBTV1NlcnZlciYgc2VydmVyKQogICAgIDogU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uKFdURk1vdmUocmVnaXN0cmFibGVEb21haW4pLCBzZXJ2aWNlV29y
a2VyUGFnZUlkZW50aWZpZXIpCiAgICAgLCBtX2Nvbm5lY3Rpb24oY29ubmVjdGlvbikKICAgICAs
IG1fc2VydmVyKHNlcnZlcikKQEAgLTc4LDEzICs3OCwxMyBAQCB1aW50NjRfdCBXZWJTV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb246Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QK
ICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246
OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFNlcnZpY2VXb3JrZXJDbGll
bnRJZGVudGlmaWVyJiBkZXN0aW5hdGlvbklkZW50aWZpZXIsIGNvbnN0IE1lc3NhZ2VXaXRoTWVz
c2FnZVBvcnRzJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzb3VyY2VJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbikKK3ZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRl
eHRDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChjb25zdCBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciYgZGVzdGluYXRpb25JZGVudGlmaWVyLCBjb25z
dCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYgbWVzc2FnZSwgU2VydmljZVdvcmtlcklkZW50aWZp
ZXIgc291cmNlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pCiB7CiAgICAg
aWYgKCFtX3NlcnZlcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGF1dG8qIGNvbm5lY3Rp
b24gPSBtX3NlcnZlci0+Y29ubmVjdGlvbihkZXN0aW5hdGlvbklkZW50aWZpZXIuc2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIpKQotICAgICAgICBjb25uZWN0aW9uLT5wb3N0TWVzc2FnZVRvU2Vy
dmljZVdvcmtlckNsaWVudChkZXN0aW5hdGlvbklkZW50aWZpZXIuY29udGV4dElkZW50aWZpZXIs
IG1lc3NhZ2UsIHNvdXJjZUlkZW50aWZpZXIsIHNvdXJjZU9yaWdpbik7CisgICAgaWYgKGF1dG8q
IGNvbm5lY3Rpb24gPSBtX3NlcnZlci0+Y29ubmVjdGlvbihkZXN0aW5hdGlvbklkZW50aWZpZXIu
cHJvY2Vzc0lkZW50aWZpZXIoKSkpCisgICAgICAgIGNvbm5lY3Rpb24tPnBvc3RNZXNzYWdlVG9T
ZXJ2aWNlV29ya2VyQ2xpZW50KGRlc3RpbmF0aW9uSWRlbnRpZmllciwgbWVzc2FnZSwgc291cmNl
SWRlbnRpZmllciwgc291cmNlT3JpZ2luKTsKIH0KIAogdm9pZCBXZWJTV1NlcnZlclRvQ29udGV4
dENvbm5lY3Rpb246Omluc3RhbGxTZXJ2aWNlV29ya2VyQ29udGV4dChjb25zdCBTZXJ2aWNlV29y
a2VyQ29udGV4dERhdGEmIGNvbnRleHREYXRhLCBjb25zdCBTZXJ2aWNlV29ya2VyRGF0YSYgd29y
a2VyRGF0YSwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIFdvcmtlclRocmVhZE1vZGUgd29ya2Vy
VGhyZWFkTW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb24uaAppbmRleCBlMzc0MDc4NmFlZGNkZjczNGE2NzJmMzZiMTI3OTcwZDQxODVmNmUyLi40
YTBiMTUzNzFmZjk2NzE1OWRmZTY2MTI1OGU0NTU3NmU3NTIxMTBkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRl
eHRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCkBAIC01Niw3ICs1Niw3IEBA
IGNsYXNzIFdlYlNXU2VydmVyQ29ubmVjdGlvbjsKIAogY2xhc3MgV2ViU1dTZXJ2ZXJUb0NvbnRl
eHRDb25uZWN0aW9uOiBwdWJsaWMgV2ViQ29yZTo6U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
LCBwdWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVyLCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIg
ewogcHVibGljOgotICAgIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbihOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2VzcyYsIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluJiYsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNs
aWVudElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U1dT
ZXJ2ZXImKTsKKyAgICBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24oTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MmLCBXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiYmLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNX
U2VydmVyJik7CiAgICAgfldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbigpOwogCiAgICAg
SVBDOjpDb25uZWN0aW9uJiBpcGNDb25uZWN0aW9uKCkgY29uc3Q7CkBAIC04Miw3ICs4Miw3IEBA
IHByaXZhdGU6CiAgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigp
IGNvbnN0IGZpbmFsOwogICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkg
Y29uc3QgZmluYWw7CiAKLSAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50
KGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyJiBkZXN0aW5hdGlv
bklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiwgV2Vi
Q29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VPcmlnaW4pOworICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJD
bGllbnQoY29uc3QgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXImIGRl
c3RpbmF0aW9uSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9y
dHMmLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbik7CiAKICAgICAvLyBNZXNzYWdlcyB0byB0aGUgU1cg
aG9zdCBXZWJQcm9jZXNzCiAgICAgdm9pZCBpbnN0YWxsU2VydmljZVdvcmtlckNvbnRleHQoY29u
c3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRleHREYXRhJiwgY29uc3QgV2ViQ29yZTo6U2Vy
dmljZVdvcmtlckRhdGEmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgV2ViQ29yZTo6V29ya2Vy
VGhyZWFkTW9kZSkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2Vy
dmVyVG9Db250ZXh0Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCA1NTJjYWU1ZTIyNDQyNDJk
ZjUwMzJhMDI4NmYwZmJhZTk5MjQ2NTEyLi5mZDcxOTQ4YzVmMzU5OTlmNTUyZGYxZGZkNjM1MmMx
M2QyZjVmODFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTMyLDExICszMiwxMSBAQCBtZXNzYWdl
cyAtPiBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24gTm90UmVmQ291bnRlZCB7CiAgICAg
U2V0U2VydmljZVdvcmtlckhhc1BlbmRpbmdFdmVudHMoV2ViQ29yZTo6U2VydmljZVdvcmtlcklk
ZW50aWZpZXIgaWRlbnRpZmllciwgYm9vbCBoYXNQZW5kaW5nRXZlbnRzKQogICAgIFNraXBXYWl0
aW5nKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+ICgpIEFz
eW5jCiAgICAgV29ya2VyVGVybWluYXRlZChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciBpZGVudGlmaWVyKQotICAgIEZpbmRDbGllbnRCeUlkZW50aWZpZXIodWludDY0X3QgcmVxdWVz
dElkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZp
ZXIgY2xpZW50SWRlbnRpZmllcikKKyAgICBGaW5kQ2xpZW50QnlJZGVudGlmaWVyKHVpbnQ2NF90
IHJlcXVlc3RJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2
aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXIgY2xpZW50SWRlbnRpZmllcikKICAgICBNYXRjaEFsbCh1aW50NjRfdCBtYXRjaEFsbFJl
cXVlc3RJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRRdWVy
eU9wdGlvbnMgb3B0aW9ucyk7CiAgICAgQ2xhaW0oV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50
aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OkV4Y2VwdGlvbkRhdGE+IHJlc3VsdCkgQXN5bmMKICAgICBTZXRTY3JpcHRSZXNvdXJjZShXZWJD
b3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyLCBVUkwgc2NyaXB0VVJMLCBX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6OkltcG9ydGVkU2NyaXB0IHNjcmlwdCkK
LSAgICBQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChzdHJ1Y3QgV2ViQ29yZTo6U2Vy
dmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgZGVzdGluYXRpb24sIHN0cnVjdCBXZWJDb3JlOjpN
ZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyBtZXNzYWdlLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRl
bnRpZmllciBzb3VyY2UsIFN0cmluZyBzb3VyY2VPcmlnaW4pCisgICAgUG9zdE1lc3NhZ2VUb1Nl
cnZpY2VXb3JrZXJDbGllbnQoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIgZGVzdGluYXRpb24sIHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyBt
ZXNzYWdlLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzb3VyY2UsIFN0cmluZyBz
b3VyY2VPcmlnaW4pCiAgICAgRGlkRmFpbEhlYXJ0QmVhdENoZWNrKFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtNRE5TUmVnaXN0ZXIuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya01ETlNSZWdpc3Rlci5jcHAKaW5k
ZXggNzk3ZTU4NDM3Y2JiY2RhNTg2YTcyYjBjMDMxNzY5NDU2OTFmZGU3Ni4uMzI4MmNiNDkwMWQ1
OTcwNjkyNWYxYmRmMjMzMTEyOGEwMzViMzcyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya01ETlNSZWdpc3Rlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya01ETlNSZWdpc3Rlci5jcHAKQEAg
LTU0LDcgKzU0LDcgQEAgTmV0d29ya01ETlNSZWdpc3Rlcjo6fk5ldHdvcmtNRE5TUmVnaXN0ZXIo
KQogfQogCiAjaWYgRU5BQkxFX01ETlMKLXZvaWQgTmV0d29ya01ETlNSZWdpc3Rlcjo6dW5yZWdp
c3Rlck1ETlNOYW1lcyhXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXIgZG9jdW1lbnRJZGVudGlm
aWVyKQordm9pZCBOZXR3b3JrTUROU1JlZ2lzdGVyOjp1bnJlZ2lzdGVyTUROU05hbWVzKFdlYkNv
cmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGRvY3VtZW50SWRlbnRpZmllcikK
IHsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV9zZXJ2aWNlcy5maW5kKGRvY3VtZW50SWRlbnRpZmll
cik7CiAgICAgaWYgKGl0ZXJhdG9yID09IG1fc2VydmljZXMuZW5kKCkpCkBAIC0xMDQsNyArMTA0
LDcgQEAgc3RhdGljIHZvaWQgcmVnaXN0ZXJNRE5TTmFtZUNhbGxiYWNrKEROU1NlcnZpY2VSZWYs
IEROU1JlY29yZFJlZiByZWNvcmQsIEROU1NlcnYKICAgICByZXF1ZXN0LT5jb25uZWN0aW9uLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJNRE5TUmVnaXN0ZXI6OkZpbmlzaGVkUmVnaXN0ZXJpbmdNRE5TTmFt
ZSB7IHJlcXVlc3QtPnJlcXVlc3RJZGVudGlmaWVyLCByZXF1ZXN0LT5uYW1lLCB7IH0gfSwgMCk7
CiB9CiAKLXZvaWQgTmV0d29ya01ETlNSZWdpc3Rlcjo6cmVnaXN0ZXJNRE5TTmFtZShNRE5TUmVn
aXN0ZXJJZGVudGlmaWVyIHJlcXVlc3RJZGVudGlmaWVyLCBXZWJDb3JlOjpEb2N1bWVudElkZW50
aWZpZXIgZG9jdW1lbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGlwQWRkcmVzcykKK3ZvaWQg
TmV0d29ya01ETlNSZWdpc3Rlcjo6cmVnaXN0ZXJNRE5TTmFtZShNRE5TUmVnaXN0ZXJJZGVudGlm
aWVyIHJlcXVlc3RJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllciBkb2N1bWVudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgaXBBZGRyZXNzKQogewog
ICAgIGF1dG8gbmFtZSA9IG1ha2VTdHJpbmcoY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpLCAi
LmxvY2FsIik7CiAKQEAgLTE2NSwxMSArMTY1LDExIEBAIHZvaWQgTmV0d29ya01ETlNSZWdpc3Rl
cjo6cmVnaXN0ZXJNRE5TTmFtZShNRE5TUmVnaXN0ZXJJZGVudGlmaWVyIHJlcXVlc3RJZGVudGlm
CiAKICNlbHNlCiAKLXZvaWQgTmV0d29ya01ETlNSZWdpc3Rlcjo6dW5yZWdpc3Rlck1ETlNOYW1l
cyhXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXIpCit2b2lkIE5ldHdvcmtNRE5TUmVnaXN0ZXI6
OnVucmVnaXN0ZXJNRE5TTmFtZXMoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXIpCiB7CiB9CiAKLXZvaWQgTmV0d29ya01ETlNSZWdpc3Rlcjo6cmVnaXN0ZXJNRE5TTmFt
ZShNRE5TUmVnaXN0ZXJJZGVudGlmaWVyIHJlcXVlc3RJZGVudGlmaWVyLCBXZWJDb3JlOjpEb2N1
bWVudElkZW50aWZpZXIgZG9jdW1lbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGlwQWRkcmVz
cykKK3ZvaWQgTmV0d29ya01ETlNSZWdpc3Rlcjo6cmVnaXN0ZXJNRE5TTmFtZShNRE5TUmVnaXN0
ZXJJZGVudGlmaWVyIHJlcXVlc3RJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllciBkb2N1bWVudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgaXBBZGRy
ZXNzKQogewogICAgIE1ETlNfUkVMRUFTRV9MT0coInJlZ2lzdGVyTUROU05hbWUgbm90IGltcGxl
bWVudGVkIik7CiAgICAgYXV0byBuYW1lID0gbWFrZVN0cmluZyhjcmVhdGVDYW5vbmljYWxVVUlE
U3RyaW5nKCksICIubG9jYWwiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvd2VicnRjL05ldHdvcmtNRE5TUmVnaXN0ZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtNRE5TUmVnaXN0ZXIuaAppbmRleCAzYzc1NDcwZmI1MTU5
MTAzMWQ1NjRiN2IxZDk2MTI1Nzc0ZTNkNGQ4Li4wMTNiMTg1ZTZiNDcyNjc1MzM2ZWZiODAyYWNm
ZWZiYWZiMmE4ZDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dl
YnJ0Yy9OZXR3b3JrTUROU1JlZ2lzdGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy93ZWJydGMvTmV0d29ya01ETlNSZWdpc3Rlci5oCkBAIC0yOSw3ICsyOSw3IEBACiAKICNp
bmNsdWRlICJNRE5TUmVnaXN0ZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUlRDTmV0d29yay5o
IgotI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9TY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPHd0Zi9F
eHBlY3RlZC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KQEAgLTY1LDE0ICs2NSwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKIAogcHJpdmF0ZToKLSAgICB2
b2lkIHVucmVnaXN0ZXJNRE5TTmFtZXMoV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyKTsKLSAg
ICB2b2lkIHJlZ2lzdGVyTUROU05hbWUoTUROU1JlZ2lzdGVySWRlbnRpZmllciwgV2ViQ29yZTo6
RG9jdW1lbnRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGlwQWRkcmVzcyk7CisgICAgdm9pZCB1
bnJlZ2lzdGVyTUROU05hbWVzKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyKTsKKyAgICB2b2lkIHJlZ2lzdGVyTUROU05hbWUoTUROU1JlZ2lzdGVySWRlbnRpZmllciwg
V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
aXBBZGRyZXNzKTsKICAgICAKICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQoKSBjb25zdDsK
IAogICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBtX2Nvbm5lY3Rpb247CiAjaWYg
RU5BQkxFX01ETlMKLSAgICBIYXNoTWFwPFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllciwgRE5T
U2VydmljZVJlZj4gbV9zZXJ2aWNlczsKKyAgICBIYXNoTWFwPFdlYkNvcmU6OlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyLCBETlNTZXJ2aWNlUmVmPiBtX3NlcnZpY2VzOwogI2VuZGlm
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9O
ZXR3b3JrTUROU1JlZ2lzdGVyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy93ZWJydGMvTmV0d29ya01ETlNSZWdpc3Rlci5tZXNzYWdlcy5pbgppbmRleCAxNTgzOTYz
M2Q1NTNlMDA1Y2NjYjliNzRmYzBjMThmZDEwN2RmNTE0Li4xZDI3NWQ5YmUyMmUzYjU2MGM0NWY0
MWViYWY3YjlkMmM1NjNmNjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3dlYnJ0Yy9OZXR3b3JrTUROU1JlZ2lzdGVyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtNRE5TUmVnaXN0ZXIubWVzc2FnZXMu
aW4KQEAgLTIzLDggKzIzLDggQEAKICNpZiBFTkFCTEUoV0VCX1JUQykKIAogbWVzc2FnZXMgLT4g
TmV0d29ya01ETlNSZWdpc3RlciBOb3RSZWZDb3VudGVkIHsKLSAgICBVbnJlZ2lzdGVyTUROU05h
bWVzKFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllciBkb2N1bWVudElkZW50aWZpZXIpCi0gICAg
UmVnaXN0ZXJNRE5TTmFtZShXZWJLaXQ6Ok1ETlNSZWdpc3RlcklkZW50aWZpZXIgcmVxdWVzdElk
ZW50aWZpZXIsIFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllciBkb2N1bWVudElkZW50aWZpZXIs
IFN0cmluZyBpcEFkZHJlc3MpCisgICAgVW5yZWdpc3Rlck1ETlNOYW1lcyhXZWJDb3JlOjpTY3Jp
cHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBkb2N1bWVudElkZW50aWZpZXIpCisgICAgUmVn
aXN0ZXJNRE5TTmFtZShXZWJLaXQ6Ok1ETlNSZWdpc3RlcklkZW50aWZpZXIgcmVxdWVzdElkZW50
aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGRvY3VtZW50
SWRlbnRpZmllciwgU3RyaW5nIGlwQWRkcmVzcykKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShXRUJf
UlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5w
eSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggZTliMmI0
MjY0NjQwM2FlZWNkMjI4Yjk3YTJmZmZmYzUwNTk5YTc3MS4uYzVmNWY1MDk3M2M3YjQyNDkwYzVk
ZTRiYTVhOGExMTBhYTc1MjM5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dl
YmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5CkBAIC0yNzYsOCArMjc2LDYgQEAgZGVmIHR5cGVzX3RoYXRfY2Fubm90X2JlX2Zvcndh
cmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nRG9tYWlu
JywKICAgICAgICAgJ1dlYkNvcmU6OkRpY3RhdGlvbkNvbnRleHQnLAogICAgICAgICAnV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJJZGVudGlmaWVyJywKLSAgICAgICAgJ1dlYkNvcmU6
OkRvY3VtZW50SWRlbnRpZmllcicsCi0gICAgICAgICdXZWJDb3JlOjpEb2N1bWVudE9yV29ya2Vy
SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJDb3JlOjpEcmFnQXBwbGljYXRpb25GbGFncycsCiAg
ICAgICAgICdXZWJDb3JlOjpGZXRjaElkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXInLApAQCAtMzAxLDYgKzI5OSw3IEBAIGRlZiB0eXBlc190
aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKCk6CiAgICAgICAgICdXZWJDb3JlOjpSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29yZTo6UmVzb3VyY2VMb2Fk
ZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXInLAorICAgICAgICAnV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXInLAogICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXInLAogICAgICAg
ICAnV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYklkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29y
ZTo6U2VydmljZVdvcmtlck9yQ2xpZW50RGF0YScsCkBAIC03NTcsNyArNzU2LDYgQEAgZGVmIGhl
YWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpEZXN0aW5hdGlvbkNvbG9y
U3BhY2UnOiBbJzxXZWJDb3JlL0NvbG9yU3BhY2UuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkRp
c3BsYXlMaXN0OjpJdGVtQnVmZmVySWRlbnRpZmllcic6IFsnPFdlYkNvcmUvRGlzcGxheUxpc3Qu
aD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkRvY3VtZW50TWFya2VyTGluZVN0eWxlJzogWyc8V2Vi
Q29yZS9HcmFwaGljc1R5cGVzLmg+J10sCi0gICAgICAgICdXZWJDb3JlOjpEb2N1bWVudE9yV29y
a2VySWRlbnRpZmllcic6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+J10sCiAgICAg
ICAgICdXZWJDb3JlOjpEcmFnQXBwbGljYXRpb25GbGFncyc6IFsnPFdlYkNvcmUvRHJhZ0RhdGEu
aD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkRyYWdIYW5kbGluZ01ldGhvZCc6IFsnPFdlYkNvcmUv
RHJhZ0FjdGlvbnMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OkRyYWdPcGVyYXRpb24nOiBbJzxX
ZWJDb3JlL0RyYWdBY3Rpb25zLmg+J10sCkBAIC04MTYsMTMgKzgxNCwxNCBAQCBkZWYgaGVhZGVy
c19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSc6
IFsnPFdlYkNvcmUvQXVkaW9TZXNzaW9uLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTV1NlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyJzogWyc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4n
XSwKICAgICAgICAgJ1dlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkJzog
Wyc8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyJzogWyc8V2ViQ29yZS9Qcm9jZXNzUXVh
bGlmaWVkLmg+JywgJzxXZWJDb3JlL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmg+
JywgJzx3dGYvT2JqZWN0SWRlbnRpZmllci5oPiddLAogICAgICAgICAnV2ViQ29yZTo6U2Nyb2xs
R3JhbnVsYXJpdHknOiBbJzxXZWJDb3JlL1Njcm9sbFR5cGVzLmg+J10sCiAgICAgICAgICdXZWJD
b3JlOjpTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50SW5pdCc6IFsnPFdlYkNvcmUvU2VjdXJp
dHlQb2xpY3lWaW9sYXRpb25FdmVudC5oPiddLAogICAgICAgICAnV2ViQ29yZTo6U2VsZWN0aW9u
RGlyZWN0aW9uJzogWyc8V2ViQ29yZS9WaXNpYmxlU2VsZWN0aW9uLmg+J10sCiAgICAgICAgICdX
ZWJDb3JlOjpTZWxlY3Rpb25HZW9tZXRyeSc6IFsnIkVkaXRvclN0YXRlLmgiJ10sCiAgICAgICAg
ICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllcic6IFsnPFdlYkNvcmUvU2Vydmlj
ZVdvcmtlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGll
bnREYXRhJzogWyc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4nLCAnPFdlYkNvcmUvU2Vy
dmljZVdvcmtlckNsaWVudERhdGEuaD4nLCAnPFdlYkNvcmUvU2VydmljZVdvcmtlckRhdGEuaD4n
XSwKLSAgICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXInOiBb
JzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPicsICc8V2ViQ29yZS9TZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllci5oPiddLAorICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlck9y
Q2xpZW50SWRlbnRpZmllcic6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+J10sCiAg
ICAgICAgICdXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcic6IFsn
PFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uU3RhdGUnOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBl
cy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlclN0YXRlJzogWyc8V2ViQ29y
ZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4nXSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDM5Y2Q3M2NlZWM5N2E2YTI2OTUyYzg2ODRjNjA1
Y2VmODJjNzExZTcuLmMwYjZlZjNmYTNhMmUxMjA0YzY3N2VjZjg2YWVjYmQxOWJiNjRkN2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAt
NzUsNiArNzUsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3Jp
cHRCdWZmZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxpbmdDb25zdHJhaW50cy5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1NlYXJjaFBvcHVwTWVudS5oPgpAQCAtODIsNyArODMsNiBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
U2VyaWFsaXplZEF0dGFjaG1lbnREYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxpemVk
UGxhdGZvcm1EYXRhQ3VlVmFsdWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJD
bGllbnREYXRhLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRp
Zmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlckRhdGEuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1NoYXJlRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dENoZWNrZXJDbGll
bnQuaD4KQEAgLTI4MjIsNyArMjgyMiw3IEBAIHZvaWQgQXJndW1lbnRDb2RlcjxTZXJ2aWNlV29y
a2VyT3JDbGllbnRJZGVudGlmaWVyPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvCiAgICAg
aWYgKGlzU2VydmljZVdvcmtlcklkZW50aWZpZXIpCiAgICAgICAgIGVuY29kZXIgPDwgc3RkOjpn
ZXQ8U2VydmljZVdvcmtlcklkZW50aWZpZXI+KGlkZW50aWZpZXIpOwogICAgIGVsc2UKLSAgICAg
ICAgZW5jb2RlciA8PCBzdGQ6OmdldDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4oaWRl
bnRpZmllcik7CisgICAgICAgIGVuY29kZXIgPDwgc3RkOjpnZXQ8U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dElkZW50aWZpZXI+KGlkZW50aWZpZXIpOwogfQogCiBib29sIEFyZ3VtZW50Q29kZXI8U2Vy
dmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllcj46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBT
ZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyJiBpZGVudGlmaWVyKQpAQCAtMjgzOCw3ICsy
ODM4LDcgQEAgYm9vbCBBcmd1bWVudENvZGVyPFNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZp
ZXI+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU2UKIAogICAgICAgICBpZGVudGlmaWVyID0g
V1RGTW92ZSgqd29ya2VySWRlbnRpZmllcik7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgc3RkOjpv
cHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gY2xpZW50SWRlbnRpZmllcjsK
KyAgICAgICAgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4g
Y2xpZW50SWRlbnRpZmllcjsKICAgICAgICAgZGVjb2RlciA+PiBjbGllbnRJZGVudGlmaWVyOwog
ICAgICAgICBpZiAoIWNsaWVudElkZW50aWZpZXIpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9TeXN0ZW1QcmV2aWV3
Q29udHJvbGxlckNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvU3lzdGVt
UHJldmlld0NvbnRyb2xsZXJDb2NvYS5tbQppbmRleCBiZDRlNmJmYjczMTg1MDc1OTVhYzRmODEw
NWYwM2U3NTliNmQxZGE3Li5kY2NkOTBkZmVjMjQyMzEzMjIzMzExMDRiNjdjOTBjMzgwNzkyZjc4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9TeXN0ZW1QcmV2aWV3
Q29udHJvbGxlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1N5
c3RlbVByZXZpZXdDb250cm9sbGVyQ29jb2EubW0KQEAgLTMwNSw3ICszMDUsNyBAQCB2b2lkIFN5
c3RlbVByZXZpZXdDb250cm9sbGVyOjp0cmlnZ2VyU3lzdGVtUHJldmlld0FjdGlvbldpdGhUYXJn
ZXRGb3JUZXN0aW5nKHVpbgogewogICAgIG1fc3lzdGVtUHJldmlld0luZm8uaXNQcmV2aWV3ID0g
dHJ1ZTsKICAgICBtX3N5c3RlbVByZXZpZXdJbmZvLmVsZW1lbnQuZWxlbWVudElkZW50aWZpZXIg
PSBtYWtlT2JqZWN0SWRlbnRpZmllcjxXZWJDb3JlOjpFbGVtZW50SWRlbnRpZmllclR5cGU+KGVs
ZW1lbnRJRCk7Ci0gICAgbV9zeXN0ZW1QcmV2aWV3SW5mby5lbGVtZW50LmRvY3VtZW50SWRlbnRp
ZmllciA9IG1ha2VPYmplY3RJZGVudGlmaWVyPFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllclR5
cGU+KGRvY3VtZW50SUQpOworICAgIG1fc3lzdGVtUHJldmlld0luZm8uZWxlbWVudC5kb2N1bWVu
dElkZW50aWZpZXIgPSBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciB7
IG1ha2VPYmplY3RJZGVudGlmaWVyPFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyVHlwZT4oZG9jdW1lbnRJRCksIG1fd2ViUGFnZVByb3h5LnByb2Nlc3MoKS5jb3JlUHJv
Y2Vzc0lkZW50aWZpZXIoKSB9OwogICAgIG1fc3lzdGVtUHJldmlld0luZm8uZWxlbWVudC53ZWJQ
YWdlSWRlbnRpZmllciA9IG1ha2VPYmplY3RJZGVudGlmaWVyPFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyVHlwZT4ocGFnZUlEKTsKICAgICB0cmlnZ2VyU3lzdGVtUHJldmlld0FjdGlvbigpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5jcHAKaW5kZXggMzk4NjQzNDlhMTk5ZGM3MDVlN2ZiMmE1NGRiNTExMGI4ZmUwNWI1
MS4uYjIyYmFhMmE0Nzk4ODU5ZmMyODMyODZiYWM4MjU5MTE0ZjNmZThlMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
Y3BwCkBAIC0xNDA1LDcgKzE0MDUsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmRpZERl
c3Ryb3lXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eShXZWJVc2VyQ29udGVudAogI2VuZGlm
CiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi12b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
OmVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0aW9uVG9OZXR3b3JrUHJvY2VzcyhSZWdpc3Ry
YWJsZURvbWFpbiYmIHJlZ2lzdHJhYmxlRG9tYWluLCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3Jr
ZXJDbGllbnRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIsIFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQordm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojplc3RhYmxpc2hXb3JrZXJDb250ZXh0
Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiByZWdpc3RyYWJs
ZURvbWFpbiwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4g
c2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBXZWJQ
cm9jZXNzUG9vbDo6ZXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9j
ZXNzKCp0aGlzLCBXVEZNb3ZlKHJlZ2lzdHJhYmxlRG9tYWluKSwgc2VydmljZVdvcmtlclBhZ2VJ
ZGVudGlmaWVyLCBzZXNzaW9uSUQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5LmgKaW5kZXggOThkOWQ4MGMyNGRhYTdlZTFlMDMwZDFjMmY0YTEyM2E3N2ViY2NlYy4uNDQx
Yjg2ZTE4OWMyY2YxNzI0NGQ4YWRlM2Q3ZWQwNWZmODc5MDBlNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTMy
Miw3ICszMjIsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JL
RVIpCi0gICAgdm9pZCBlc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29ya1By
b2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiwgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlm
aWVyLCBQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2
b2lkIGVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0aW9uVG9OZXR3b3JrUHJvY2VzcyhXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIsIFBB
TDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgd29y
a2VyQ29udGV4dENvbm5lY3Rpb25Ob0xvbmdlck5lZWRlZChXZWJDb3JlOjpQcm9jZXNzSWRlbnRp
Zmllcik7CiAgICAgdm9pZCByZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnRQcm9jZXNzKFdlYkNv
cmU6OlByb2Nlc3NJZGVudGlmaWVyIHdlYlByb2Nlc3NJZGVudGlmaWVyLCBXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpZmllciBzZXJ2aWNlV29ya2VyUHJvY2Vzc0lkZW50aWZpZXIpOwogICAgIHZvaWQg
dW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnRQcm9jZXNzKFdlYkNvcmU6OlByb2Nlc3NJZGVu
dGlmaWVyIHdlYlByb2Nlc3NJZGVudGlmaWVyLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBz
ZXJ2aWNlV29ya2VyUHJvY2Vzc0lkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2Vz
LmluCmluZGV4IGI0YTRmMDIxYTQ4YjhlZTM4NmQyYWQ1M2Y2NWQzYmRmOGExMTE5ZmMuLjAyMjNj
NjA1YzM1MmI1YmM3YmIzNzczY2ZlNWJhMjM2YjQ5MjE5ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
bWVzc2FnZXMuaW4KQEAgLTUzLDcgKzUzLDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3NQ
cm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgVGVybWluYXRlV2ViUHJvY2VzcyhXZWJDb3JlOjpQ
cm9jZXNzSWRlbnRpZmllciB3ZWJQcm9jZXNzSWRlbnRpZmllcikKIAogI2lmIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKLSAgICBFc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29y
a1Byb2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVnaXN0cmFibGVEb21haW4sIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+IHNlcnZp
Y2VXb3JrZXJQYWdlSWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBB
c3luYworICAgIEVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vz
cyhXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZWdpc3RyYWJsZURvbWFpbiwgc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdv
cmtlclBhZ2VJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5j
CiAgICAgV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ob0xvbmdlck5lZWRlZChXZWJDb3JlOjpQcm9j
ZXNzSWRlbnRpZmllciBpZGVudGlmaWVyKQogICAgIFJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVu
dFByb2Nlc3MoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgd2ViUHJvY2Vzc0lkZW50aWZpZXIs
IFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJQcm9jZXNzSWRlbnRpZmll
cikKICAgICBVbnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudFByb2Nlc3MoV2ViQ29yZTo6UHJv
Y2Vzc0lkZW50aWZpZXIgd2ViUHJvY2Vzc0lkZW50aWZpZXIsIFdlYkNvcmU6OlByb2Nlc3NJZGVu
dGlmaWVyIHNlcnZpY2VXb3JrZXJQcm9jZXNzSWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCAzYzNiZWZjMmE2NzRjMGQ4MmJlYTY0ZWJl
MzU0OTQwYWMzY2ZhOTgwLi5hZmM2ZGI5NmY2NmU3ZmE0N2Q3YzUzOGM0ZTczNmE0MTY5M2Q3Zjcy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC01MTIs
NyArNTEyLDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6Z2V0V2ViQXV0aG5Qcm9jZXNzQ29ubmVj
dGlvbihXZWJQcm9jZXNzUHJveHkmIHdlYlByb2Nlc3NQcm8KIGJvb2wgV2ViUHJvY2Vzc1Bvb2w6
OnNfdXNlU2VwYXJhdGVTZXJ2aWNlV29ya2VyUHJvY2VzcyA9IGZhbHNlOwogCiAjaWYgRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQotdm9pZCBXZWJQcm9jZXNzUG9vbDo6ZXN0YWJsaXNoV29ya2VyQ29u
dGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzUHJveHkmIHByb3h5
LCBSZWdpc3RyYWJsZURvbWFpbiYmIHJlZ2lzdHJhYmxlRG9tYWluLCBzdGQ6Om9wdGlvbmFsPFNl
cnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIs
IFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQcm9jZXNzUG9vbDo6ZXN0YWJsaXNoV29ya2VyQ29u
dGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzUHJveHkmIHByb3h5
LCBSZWdpc3RyYWJsZURvbWFpbiYmIHJlZ2lzdHJhYmxlRG9tYWluLCBzdGQ6Om9wdGlvbmFsPFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZp
ZXIsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8qIHdlYnNpdGVEYXRhU3RvcmUgPSBXZWJz
aXRlRGF0YVN0b3JlOjpleGlzdGluZ0RhdGFTdG9yZUZvclNlc3Npb25JRChzZXNzaW9uSUQpOwog
ICAgIGlmICghd2Vic2l0ZURhdGFTdG9yZSkKQEAgLTUyOCw3ICs1MjgsNyBAQCB2b2lkIFdlYlBy
b2Nlc3NQb29sOjplc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nl
c3MoTmV0d29ya1BybwogCiAgICAgaWYgKHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcikgewog
ICAgICAgICAvLyBUaGlzIGlzIGEgc2VydmljZSB3b3JrZXIgZm9yIGEgc2VydmljZSB3b3JrZXIg
cGFnZSBzbyB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB3ZSB1c2UgdXNlIHRoZSBwYWdlJ3MgV2ViUHJv
Y2VzcyBmb3IgdGhlIHNlcnZpY2Ugd29ya2VyLgotICAgICAgICBpZiAoKHNlcnZpY2VXb3JrZXJQ
cm9jZXNzUHJveHkgPSBXZWJQcm9jZXNzUHJveHk6OnByb2Nlc3NGb3JJZGVudGlmaWVyKHNlcnZp
Y2VXb3JrZXJQYWdlSWRlbnRpZmllci0+c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpKSkgewor
ICAgICAgICBpZiAoKHNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkgPSBXZWJQcm9jZXNzUHJveHk6
OnByb2Nlc3NGb3JJZGVudGlmaWVyKHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllci0+cHJvY2Vz
c0lkZW50aWZpZXIoKSkpKSB7CiAgICAgICAgICAgICBzZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5
LT5lbmFibGVTZXJ2aWNlV29ya2Vycyhwcm9jZXNzUG9vbC0+dXNlckNvbnRlbnRDb250cm9sbGVy
SWRlbnRpZmllckZvclNlcnZpY2VXb3JrZXJzKCkpOwogICAgICAgICAgICAgaWYgKHNlcnZpY2VX
b3JrZXJQcm9jZXNzUHJveHktPmlzSW5Qcm9jZXNzQ2FjaGUoKSkgewogICAgICAgICAgICAgICAg
IHByb2Nlc3NQb29sLT53ZWJQcm9jZXNzQ2FjaGUoKS5yZW1vdmVQcm9jZXNzKCpzZXJ2aWNlV29y
a2VyUHJvY2Vzc1Byb3h5LCBXZWJQcm9jZXNzQ2FjaGU6OlNob3VsZFNodXREb3duUHJvY2Vzczo6
Tm8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggOGU4MGZk
YzI5Y2U1Y2VhMDZkNjNjMjRmYWM2YTQ4ZjQzODhkYWRhZi4uYTk0MzhhZTNkYjFiYWM0NTM1ZjFl
OTJmZTIwZWJjMWY4ODlhNzI0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5oCkBAIC0zNjYsNyArMzY2LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc1NlcnZpY2VX
b3JrZXJQYWdlSUQoV2ViUGFnZVByb3h5SWRlbnRpZmllcikgY29uc3Q7CiAjaWYgRU5BQkxFKFNF
UlZJQ0VfV09SS0VSKQotICAgIHN0YXRpYyB2b2lkIGVzdGFibGlzaFdvcmtlckNvbnRleHRDb25u
ZWN0aW9uVG9OZXR3b3JrUHJvY2VzcyhOZXR3b3JrUHJvY2Vzc1Byb3h5JiwgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4mJiwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xp
ZW50SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25J
RCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICBzdGF0aWMgdm9pZCBlc3RhYmxp
c2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MoTmV0d29ya1Byb2Nlc3NQ
cm94eSYsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYsIHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRl
bnRpZmllciwgUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAg
ICAgdm9pZCByZW1vdmVGcm9tU2VydmljZVdvcmtlclByb2Nlc3NlcyhXZWJQcm9jZXNzUHJveHkm
KTsKICAgICBzaXplX3Qgc2VydmljZVdvcmtlclByb3hpZXNDb3VudCgpIGNvbnN0IHsgcmV0dXJu
IHNlcnZpY2VXb3JrZXJQcm9jZXNzZXMoKS5jb21wdXRlU2l6ZSgpOyB9CiAgICAgdm9pZCB1cGRh
dGVTZXJ2aWNlV29ya2VyVXNlckFnZW50KGNvbnN0IFN0cmluZyYgdXNlckFnZW50KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDljMDBjNDdiN2M1
Y2QwMjY0ZjI3MDMwMmVhN2JmNjM1NDU4MGI3Y2YuLjExODFjYTdkNjU4YjQ5NDY1M2ZmODBhNjIy
MDk1NTE0OWEzMzc4ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmNwcApAQCAtMTg1Niw3ICsxODU2LDcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OmVuZEJh
Y2tncm91bmRBY3Rpdml0eUZvckZ1bGxzY3JlZW5JbnB1dCgpCiAjZW5kaWYKIAogI2lmIEVOQUJM
RShTRVJWSUNFX1dPUktFUikKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojplc3RhYmxpc2hTZXJ2aWNl
V29ya2VyQ29udGV4dChjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHJlZ2lzdHJhYmxlRG9tYWluLCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VX
b3JrZXJDbGllbnRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUHJvY2Vz
c1Byb3h5Ojplc3RhYmxpc2hTZXJ2aWNlV29ya2VyQ29udGV4dChjb25zdCBXZWJQcmVmZXJlbmNl
c1N0b3JlJiBzdG9yZSwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlZ2lzdHJhYmxlRG9tYWlu
LCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNl
V29ya2VyUGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKICAgICBXRUJQUk9DRVNTUFJPWFlfUkVMRUFTRV9MT0coTG9hZGluZywg
ImVzdGFibGlzaFNlcnZpY2VXb3JrZXJDb250ZXh0OiBTdGFydGVkIik7CiAgICAgbWFya1Byb2Nl
c3NBc1JlY2VudGx5VXNlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuaAppbmRleCA0MjljM2MxMDYzMWYzNGJlYWI1NzI5N2U2NGNmOTM5M2E4M2ZkYTA5Li5kYTZk
YzY4ZWViY2VjYjQyMzYyN2VjOTg5ZDZiY2FhODAxNTc0OTczIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMzU3LDcgKzM1Nyw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHVwZGF0ZUF1ZGlibGVNZWRpYUFzc2VydGlvbnMoKTsKIAogI2lmIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKLSAgICB2b2lkIGVzdGFibGlzaFNlcnZpY2VXb3JrZXJDb250ZXh0KGNvbnN0
IFdlYlByZWZlcmVuY2VzU3RvcmUmLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYs
IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+IHNl
cnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
KyAgICB2b2lkIGVzdGFibGlzaFNlcnZpY2VXb3JrZXJDb250ZXh0KGNvbnN0IFdlYlByZWZlcmVu
Y2VzU3RvcmUmLCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYsIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IHNlcnZpY2VXb3Jr
ZXJQYWdlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lk
IHNldFNlcnZpY2VXb3JrZXJVc2VyQWdlbnQoY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCB1cGRh
dGVTZXJ2aWNlV29ya2VyUHJlZmVyZW5jZXNTdG9yZShjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3Jl
Jik7CiAgICAgYm9vbCBoYXNTZXJ2aWNlV29ya2VyUGFnZVByb3h5KFdlYlBhZ2VQcm94eUlkZW50
aWZpZXIgcGFnZVByb3h5SUQpIHsgcmV0dXJuIG1fc2VydmljZVdvcmtlckluZm9ybWF0aW9uICYm
IG1fc2VydmljZVdvcmtlckluZm9ybWF0aW9uLT5zZXJ2aWNlV29ya2VyUGFnZVByb3h5SUQgPT0g
cGFnZVByb3h5SUQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IGFlZTJkNDc4Mjk5OGIxNmRl
OThmZGU0ZmJhYWU2NDQwNzI2NzA4YjUuLmYwNWM0ZWI2ZmM0YjFjZmEyZWQ2ZTZiNzRhYTVjZTY3
NjUwZWNiMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcApAQCAtMzM4LDE0ICszMzgsMTQgQEAgSW5q
ZWN0ZWRCdW5kbGU6OkRvY3VtZW50SURUb1VSTE1hcCBJbmplY3RlZEJ1bmRsZTo6bGl2ZURvY3Vt
ZW50VVJMcyhib29sIGV4Y2x1ZGUKICAgICBEb2N1bWVudElEVG9VUkxNYXAgcmVzdWx0OwogCiAg
ICAgZm9yIChjb25zdCBhdXRvKiBkb2N1bWVudCA6IERvY3VtZW50OjphbGxEb2N1bWVudHMoKSkK
LSAgICAgICAgcmVzdWx0LmFkZChkb2N1bWVudC0+aWRlbnRpZmllcigpLnRvVUludDY0KCksIGRv
Y3VtZW50LT51cmwoKS5zdHJpbmcoKSk7CisgICAgICAgIHJlc3VsdC5hZGQoZG9jdW1lbnQtPmlk
ZW50aWZpZXIoKS5vYmplY3QoKS50b1VJbnQ2NCgpLCBkb2N1bWVudC0+dXJsKCkuc3RyaW5nKCkp
OwogCiAgICAgaWYgKGV4Y2x1ZGVEb2N1bWVudHNJblBhZ2VHcm91cFBhZ2VzKSB7CiAgICAgICAg
IFBhZ2U6OmZvckVhY2hQYWdlKFsmXShQYWdlJiBwYWdlKSB7CiAgICAgICAgICAgICBmb3IgKGF1
dG8qIGZyYW1lID0gJnBhZ2UubWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVl
KCkudHJhdmVyc2VOZXh0KCkpIHsKICAgICAgICAgICAgICAgICBpZiAoIWZyYW1lLT5kb2N1bWVu
dCgpKQogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICByZXN1
bHQucmVtb3ZlKGZyYW1lLT5kb2N1bWVudCgpLT5pZGVudGlmaWVyKCkudG9VSW50NjQoKSk7Cisg
ICAgICAgICAgICAgICAgcmVzdWx0LnJlbW92ZShmcmFtZS0+ZG9jdW1lbnQoKS0+aWRlbnRpZmll
cigpLm9iamVjdCgpLnRvVUludDY0KCkpOwogICAgICAgICAgICAgfQogICAgICAgICB9KTsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
TGliV2ViUlRDTmV0d29ya01hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmtNYW5hZ2VyLmNwcAppbmRleCA2Y2JkNmQ3YzQy
YjIwOTQwYmU4ODg0NjY2YTY3MWVhZTM3ODkyNTFmLi45Y2RhZWI4YTNhNmM4YTk5YzY1ZTUxOWU0
YWI3YWNmNTU3NzVjNmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0
d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29ya01hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrTWFuYWdlci5jcHAK
QEAgLTM3LDcgKzM3LDcgQEAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKLUxpYldlYlJUQ05ldHdvcmtNYW5hZ2VyKiBMaWJXZWJSVENOZXR3b3JrTWFuYWdl
cjo6Z2V0T3JDcmVhdGUoV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyIGlkZW50aWZpZXIpCitM
aWJXZWJSVENOZXR3b3JrTWFuYWdlciogTGliV2ViUlRDTmV0d29ya01hbmFnZXI6OmdldE9yQ3Jl
YXRlKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGlkZW50aWZpZXIp
CiB7CiAgICAgYXV0byogZG9jdW1lbnQgPSBEb2N1bWVudDo6YWxsRG9jdW1lbnRzTWFwKCkuZ2V0
KGlkZW50aWZpZXIpOwogICAgIGlmICghZG9jdW1lbnQpCkBAIC01Myw3ICs1Myw3IEBAIExpYldl
YlJUQ05ldHdvcmtNYW5hZ2VyKiBMaWJXZWJSVENOZXR3b3JrTWFuYWdlcjo6Z2V0T3JDcmVhdGUo
V2ViQ29yZTo6RG9jdW1lbnRJCiAgICAgcmV0dXJuIG5ldHdvcmtNYW5hZ2VyOwogfQogCi1MaWJX
ZWJSVENOZXR3b3JrTWFuYWdlcjo6TGliV2ViUlRDTmV0d29ya01hbmFnZXIoV2ViQ29yZTo6RG9j
dW1lbnRJZGVudGlmaWVyIGRvY3VtZW50SWRlbnRpZmllcikKK0xpYldlYlJUQ05ldHdvcmtNYW5h
Z2VyOjpMaWJXZWJSVENOZXR3b3JrTWFuYWdlcihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllciBkb2N1bWVudElkZW50aWZpZXIpCiAgICAgOiBtX2RvY3VtZW50SWRlbnRp
Zmllcihkb2N1bWVudElkZW50aWZpZXIpCiB7CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
bGliV2ViUlRDTmV0d29yaygpLm1vbml0b3IoKS5hZGRPYnNlcnZlcigqdGhpcyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0
d29ya01hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9M
aWJXZWJSVENOZXR3b3JrTWFuYWdlci5oCmluZGV4IDI4NmRhNjcyMjFiMDUzYWY5Y2EzYzQwZmIy
NTZmYmU2NmE3OTExYTIuLjI1NDk0NGNiN2Y0YTM5MzM5YTAwNDQzZWQ0YjMyZDY2YTAyNjZlZTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJX
ZWJSVENOZXR3b3JrTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3JrTWFuYWdlci5oCkBAIC0yOCwyMCArMjgsMjAgQEAK
ICNpZiBVU0UoTElCV0VCUlRDKQogCiAjaW5jbHVkZSAiV2ViUlRDTW9uaXRvci5oIgotI2luY2x1
ZGUgPFdlYkNvcmUvRG9jdW1lbnRJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9MaWJX
ZWJSVENQcm92aWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUlRDTmV0d29ya01hbmFnZXIuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmg+CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBMaWJXZWJSVENOZXR3b3JrTWFuYWdlciBmaW5h
bCA6IHB1YmxpYyBXZWJDb3JlOjpSVENOZXR3b3JrTWFuYWdlciwgcHVibGljIHJ0Yzo6TmV0d29y
a01hbmFnZXJCYXNlLCBwdWJsaWMgd2VicnRjOjpNZG5zUmVzcG9uZGVySW50ZXJmYWNlLCBwdWJs
aWMgV2ViUlRDTW9uaXRvcjo6T2JzZXJ2ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgotICAgIHN0YXRpYyBMaWJXZWJSVENOZXR3b3JrTWFuYWdlciogZ2V0T3JDcmVh
dGUoV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyKTsKKyAgICBzdGF0aWMgTGliV2ViUlRDTmV0
d29ya01hbmFnZXIqIGdldE9yQ3JlYXRlKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyKTsKICAgICB+TGliV2ViUlRDTmV0d29ya01hbmFnZXIoKTsKIAogcHJpdmF0ZToK
LSAgICBleHBsaWNpdCBMaWJXZWJSVENOZXR3b3JrTWFuYWdlcihXZWJDb3JlOjpEb2N1bWVudElk
ZW50aWZpZXIpOworICAgIGV4cGxpY2l0IExpYldlYlJUQ05ldHdvcmtNYW5hZ2VyKFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKTsKIAogICAgIC8vIFdlYkNvcmU6OlJU
Q05ldHdvcmtNYW5hZ2VyCiAgICAgdm9pZCBzZXRJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoYm9vbCBk
b0ZpbHRlcmluZykgZmluYWwgeyBtX3VzZU1ETlNDYW5kaWRhdGVzID0gZG9GaWx0ZXJpbmc7IH0K
QEAgLTYwLDcgKzYwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIG5ldHdvcmtzQ2hhbmdlZChjb25z
dCBWZWN0b3I8UlRDTmV0d29yaz4mLCBjb25zdCBSVENOZXR3b3JrOjpJUEFkZHJlc3MmLCBjb25z
dCBSVENOZXR3b3JrOjpJUEFkZHJlc3MmKSBmaW5hbDsKICAgICB2b2lkIG5ldHdvcmtQcm9jZXNz
Q3Jhc2hlZCgpIGZpbmFsOwogCi0gICAgV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyIG1fZG9j
dW1lbnRJZGVudGlmaWVyOworICAgIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyIG1fZG9jdW1lbnRJZGVudGlmaWVyOwogICAgIGJvb2wgbV91c2VNRE5TQ2FuZGlkYXRl
cyB7IHRydWUgfTsKICAgICBib29sIG1fcmVjZWl2ZWROZXR3b3JrTGlzdCB7IGZhbHNlIH07CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xp
YldlYlJUQ1Byb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dl
YnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKaW5kZXggN2Y0MDYyOWU1YjJiM2M0Y2Q3YTY2OTk4
YTBjMTA3NjA5ZjZmYTM4MC4uMDcwYzczZDg1NzZlYzJiMzM4ZTlkMTA4ZDNmZThjZTFlNmRhN2Qx
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xp
YldlYlJUQ1Byb3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCkBAIC01NSw3ICs1NSw3IEBAIHByaXZhdGU6
CiAgICAgfQogfTsKIAotcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25J
bnRlcmZhY2U+IExpYldlYlJUQ1Byb3ZpZGVyOjpjcmVhdGVQZWVyQ29ubmVjdGlvbihEb2N1bWVu
dElkZW50aWZpZXIgaWRlbnRpZmllciwgd2VicnRjOjpQZWVyQ29ubmVjdGlvbk9ic2VydmVyJiBv
YnNlcnZlciwgcnRjOjpQYWNrZXRTb2NrZXRGYWN0b3J5KiBzb2NrZXRGYWN0b3J5LCB3ZWJydGM6
OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjpSVENDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlv
bikKK3J0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlPiBM
aWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlUGVlckNvbm5lY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dElkZW50aWZpZXIgaWRlbnRpZmllciwgd2VicnRjOjpQZWVyQ29ubmVjdGlvbk9ic2VydmVy
JiBvYnNlcnZlciwgcnRjOjpQYWNrZXRTb2NrZXRGYWN0b3J5KiBzb2NrZXRGYWN0b3J5LCB3ZWJy
dGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjpSVENDb25maWd1cmF0aW9uJiYgY29uZmlndXJh
dGlvbikKIHsKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpICYmIFBMQVRGT1JNKENPQ09BKSAmJiAh
UExBVEZPUk0oTUFDQ0FUQUxZU1QpCiAgICAgaWYgKCFtX2RpZEluaXRpYWxpemVDYWxsYmFjaykg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xp
YldlYlJUQ1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJy
dGMvTGliV2ViUlRDUHJvdmlkZXIuaAppbmRleCA3OTUxN2MwODg5M2UxZjZiNTA1ZTcyOWU2NGUx
OWQwMGM5OTAxYjNiLi5kMzgwYTA3NWRlYjk3MWUwZmQzYjk2MzZjNWRjYTY1ZDBhZmY3NzBkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2Vi
UlRDUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJy
dGMvTGliV2ViUlRDUHJvdmlkZXIuaApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiBwcml2YXRl
OgogICAgIHN0ZDo6dW5pcXVlX3B0cjxTdXNwZW5kYWJsZVNvY2tldEZhY3Rvcnk+IGNyZWF0ZVNv
Y2tldEZhY3RvcnkoU3RyaW5nJiYgLyogdXNlckFnZW50ICovLCBib29sIC8qIGlzRmlyc3RQYXJ0
eSAqLywgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJikgZmluYWw7CiAKLSAgICBydGM6OnNj
b3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZT4gY3JlYXRlUGVlckNv
bm5lY3Rpb24oV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyLCB3ZWJydGM6OlBlZXJDb25uZWN0
aW9uT2JzZXJ2ZXImLCBydGM6OlBhY2tldFNvY2tldEZhY3RvcnkqLCB3ZWJydGM6OlBlZXJDb25u
ZWN0aW9uSW50ZXJmYWNlOjpSVENDb25maWd1cmF0aW9uJiYpIGZpbmFsOworICAgIHJ0Yzo6c2Nv
cGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlPiBjcmVhdGVQZWVyQ29u
bmVjdGlvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgd2VicnRj
OjpQZWVyQ29ubmVjdGlvbk9ic2VydmVyJiwgcnRjOjpQYWNrZXRTb2NrZXRGYWN0b3J5Kiwgd2Vi
cnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6UlRDQ29uZmlndXJhdGlvbiYmKSBmaW5hbDsK
IAogICAgIHZvaWQgZGlzYWJsZU5vbkxvY2FsaG9zdENvbm5lY3Rpb25zKCkgZmluYWw7CiAgICAg
dm9pZCBzdGFydGVkTmV0d29ya1RocmVhZCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYk1ETlNSZWdpc3Rlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViTUROU1JlZ2lzdGVyLmNwcApp
bmRleCA3NjAyMDdlYTU5YmNhMjU0NTIyZjU2YzU5YTUyNDVlNTk1YThkZTJiLi5jM2NhZmNhYWU2
ZGQ2ZmU0ZmEyZjE2YzRiYTYwYmQ1ZDNiNGQ0ODljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViTUROU1JlZ2lzdGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViTUROU1JlZ2lzdGVyLmNwcApA
QCAtNTQsNyArNTQsNyBAQCB2b2lkIFdlYk1ETlNSZWdpc3Rlcjo6ZmluaXNoZWRSZWdpc3Rlcmlu
Z01ETlNOYW1lKE1ETlNSZWdpc3RlcklkZW50aWZpZXIgaWRlbnRpZgogICAgIHBlbmRpbmdSZWdp
c3RyYXRpb24uY2FsbGJhY2sobmFtZSwgZXJyb3IpOwogfQogCi12b2lkIFdlYk1ETlNSZWdpc3Rl
cjo6dW5yZWdpc3Rlck1ETlNOYW1lcyhEb2N1bWVudElkZW50aWZpZXIgaWRlbnRpZmllcikKK3Zv
aWQgV2ViTUROU1JlZ2lzdGVyOjp1bnJlZ2lzdGVyTUROU05hbWVzKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7CiAgICAgaWYgKG1fcmVnaXN0ZXJpbmdEb2N1
bWVudHMudGFrZShpZGVudGlmaWVyKS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTYz
LDcgKzYzLDcgQEAgdm9pZCBXZWJNRE5TUmVnaXN0ZXI6OnVucmVnaXN0ZXJNRE5TTmFtZXMoRG9j
dW1lbnRJZGVudGlmaWVyIGlkZW50aWZpZXIpCiAgICAgY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2Vz
OjpOZXR3b3JrTUROU1JlZ2lzdGVyOjpVbnJlZ2lzdGVyTUROU05hbWVzIHsgaWRlbnRpZmllciB9
LCAwKTsKIH0KIAotdm9pZCBXZWJNRE5TUmVnaXN0ZXI6OnJlZ2lzdGVyTUROU05hbWUoRG9jdW1l
bnRJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgaXBBZGRyZXNzLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFN0cmluZyYsIHN0ZDo6b3B0aW9uYWw8TUROU1JlZ2lzdGVy
RXJyb3I+KT4mJiBjYWxsYmFjaykKK3ZvaWQgV2ViTUROU1JlZ2lzdGVyOjpyZWdpc3Rlck1ETlNO
YW1lKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgaXBBZGRyZXNzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFN0cmluZyYsIHN0
ZDo6b3B0aW9uYWw8TUROU1JlZ2lzdGVyRXJyb3I+KT4mJiBjYWxsYmFjaykKIHsKICAgICBhdXRv
JiBtYXAgPSBtX3JlZ2lzdGVyaW5nRG9jdW1lbnRzLmVuc3VyZShpZGVudGlmaWVyLCBbXSB7CiAg
ICAgICAgIHJldHVybiBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiB7IH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViTUROU1JlZ2lzdGVyLmgg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvV2ViTUROU1JlZ2lzdGVy
LmgKaW5kZXggMmMwZmYwZTQ2NjUxMWY5NzhmYjgwOTI3MjBhZjA3M2RiZjUzOGZiZS4uZjkxMWYw
ZjViMmRiNmE1NGYyMWExMzhkMzdiY2ZlN2MzOWVmNDAxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dlYk1ETlNSZWdpc3Rlci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9XZWJNRE5TUmVnaXN0ZXIuaApA
QCAtMjgsOCArMjgsOSBAQAogI2lmIEVOQUJMRShXRUJfUlRDKQogCiAjaW5jbHVkZSAiTUROU1Jl
Z2lzdGVySWRlbnRpZmllci5oIgotI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRJZGVudGlmaWVy
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9MaWJXZWJSVENQcm92aWRlci5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvUHJvY2Vzc1F1YWxpZmllZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0RXhlY3V0
aW9uQ29udGV4dElkZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvRXhwZWN0ZWQuaD4KICNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC00NSw4ICs0
Niw4IEBAIGNsYXNzIFdlYk1ETlNSZWdpc3RlciB7CiBwdWJsaWM6CiAgICAgV2ViTUROU1JlZ2lz
dGVyKCkgPSBkZWZhdWx0OwogCi0gICAgdm9pZCB1bnJlZ2lzdGVyTUROU05hbWVzKFdlYkNvcmU6
OkRvY3VtZW50SWRlbnRpZmllcik7Ci0gICAgdm9pZCByZWdpc3Rlck1ETlNOYW1lKFdlYkNvcmU6
OkRvY3VtZW50SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBpcEFkZHJlc3MsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoY29uc3QgU3RyaW5nJiwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNRE5TUmVn
aXN0ZXJFcnJvcj4pPiYmKTsKKyAgICB2b2lkIHVucmVnaXN0ZXJNRE5TTmFtZXMoV2ViQ29yZTo6
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpOworICAgIHZvaWQgcmVnaXN0ZXJNRE5T
TmFtZShXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBpcEFkZHJlc3MsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgU3RyaW5nJiwgc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpNRE5TUmVnaXN0ZXJFcnJvcj4pPiYmKTsKIAogICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CiAKQEAg
LTU1LDEyICs1NiwxMiBAQCBwcml2YXRlOgogCiAgICAgc3RydWN0IFBlbmRpbmdSZWdpc3RyYXRp
b24gewogICAgICAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFN0cmluZyYsIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6TUROU1JlZ2lzdGVyRXJyb3I+KT4gY2FsbGJhY2s7Ci0gICAgICAg
IFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllciBkb2N1bWVudElkZW50aWZpZXI7CisgICAgICAg
IFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGRvY3VtZW50SWRlbnRp
ZmllcjsKICAgICAgICAgU3RyaW5nIGlwQWRkcmVzczsKICAgICB9OwogICAgIEhhc2hNYXA8TURO
U1JlZ2lzdGVySWRlbnRpZmllciwgUGVuZGluZ1JlZ2lzdHJhdGlvbj4gbV9wZW5kaW5nUmVnaXN0
cmF0aW9uczsKIAotICAgIEhhc2hNYXA8V2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyLCBIYXNo
TWFwPFN0cmluZywgU3RyaW5nPj4gbV9yZWdpc3RlcmluZ0RvY3VtZW50czsKKyAgICBIYXNoTWFw
PFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBIYXNoTWFwPFN0cmlu
ZywgU3RyaW5nPj4gbV9yZWdpc3RlcmluZ0RvY3VtZW50czsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDbGllbnRDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggYWQ0ZmIwYWI3OGMyZGRhZjI3Y2RmNzQx
NmQxMDZjYjlkZjQ3NWVhNy4uOGQ2ZWIyNjgwYjFlNzU1NTU1MDc0ZmI1OGQ1MWQ5NWQyYWZhNDIy
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGll
bnRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCkBAIC05Niw3ICs5Niw3IEBAIHZvaWQgV2ViU1dDbGll
bnRDb25uZWN0aW9uOjpyZW1vdmVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSW5TZXJ2ZXIoU2Vy
dmljZVdvcmtlCiAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6
UmVtb3ZlU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkluU2VydmVyIHsgaWRlbnRpZmllciB9KTsK
IH0KIAotdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OnNjaGVkdWxlVW5yZWdpc3RlckpvYklu
U2VydmVyKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHJlZ2lzdHJhdGlvbklk
ZW50aWZpZXIsIFdlYkNvcmU6OkRvY3VtZW50T3JXb3JrZXJJZGVudGlmaWVyIGRvY3VtZW50SWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjxib29sPiYmKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpzY2hlZHVsZVVu
cmVnaXN0ZXJKb2JJblNlcnZlcihTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBy
ZWdpc3RyYXRpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVu
dGlmaWVyIGRvY3VtZW50SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRp
b25Pcjxib29sPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBzZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6U2NoZWR1bGVVbnJlZ2lzdGVy
Sm9iSW5TZXJ2ZXIgeyBTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRT
YWZlKCksIHJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIGRvY3VtZW50SWRlbnRpZmllciB9LCBbY29t
cGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byYmIHJlc3Vs
dCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghcmVzdWx0Lmhhc192YWx1ZSgpKQpAQCAtMTE1LDkg
KzExNSw5IEBAIHZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpyZWdpc3RlclNlcnZpY2VXb3Jr
ZXJDbGllbnQoY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvCiAgICAgc2VuZChNZXNzYWdlczo6V2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uOjpSZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQgeyB0b3BPcmln
aW4uZGF0YSgpLCBkYXRhLCBjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVu
dGlmaWVyLCB1c2VyQWdlbnQgfSk7CiB9CiAKLXZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjp1
bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChEb2N1bWVudElkZW50aWZpZXIgY29udGV4dElk
ZW50aWZpZXIpCit2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6dW5yZWdpc3RlclNlcnZpY2VX
b3JrZXJDbGllbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY29udGV4dElkZW50
aWZpZXIpCiB7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpVbnJl
Z2lzdGVyU2VydmljZVdvcmtlckNsaWVudCB7IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVy
IHsgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIoKSwgY29udGV4dElkZW50aWZpZXIgfSB9KTsK
KyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OlVucmVnaXN0ZXJTZXJ2
aWNlV29ya2VyQ2xpZW50IHsgY29udGV4dElkZW50aWZpZXIgfSk7CiB9CiAKIHZvaWQgV2ViU1dD
bGllbnRDb25uZWN0aW9uOjpkaWRSZXNvbHZlUmVnaXN0cmF0aW9uUHJvbWlzZShjb25zdCBTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiBrZXkpCkBAIC0yMDAsNyArMjAwLDcgQEAgdm9pZCBX
ZWJTV0NsaWVudENvbm5lY3Rpb246OnJlZ2lzdHJhdGlvblJlYWR5KHVpbnQ2NF90IGNhbGxiYWNr
SUQsIFNlcnZpY2VXb3JrZXIKICAgICAgICAgY2FsbGJhY2soV1RGTW92ZShyZWdpc3RyYXRpb25E
YXRhKSk7CiB9CiAKLXZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpzZXREb2N1bWVudElzQ29u
dHJvbGxlZChEb2N1bWVudElkZW50aWZpZXIgZG9jdW1lbnRJZGVudGlmaWVyLCBTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uRGF0YSYmIGRhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6c2V0RG9j
dW1lbnRJc0NvbnRyb2xsZWQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgZG9jdW1l
bnRJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYmIGRhdGEsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgYXV0
byogZG9jdW1lbnRMb2FkZXIgPSBEb2N1bWVudExvYWRlcjo6ZnJvbVRlbXBvcmFyeURvY3VtZW50
SWRlbnRpZmllcihkb2N1bWVudElkZW50aWZpZXIpOwogICAgIGJvb2wgcmVzdWx0ID0gZG9jdW1l
bnRMb2FkZXIgPyBkb2N1bWVudExvYWRlci0+c2V0Q29udHJvbGxpbmdTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uKFdURk1vdmUoZGF0YSkpIDogZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IDJh
Y2VkYjg0YWMzNThhNzQ2NWViMTBiMjZhYzc4NmQyNTgzOTAxOTkuLjQ1ODY4MWY5YjBhZWFhYTM5
YWJlZDQ2Nzk5MjlhNDIwMjU5MDhlNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCkBAIC03NCw4ICs3NCw4
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBmaW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKGNvbnN0
IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYpIGZpbmFsOwogICAgIHZvaWQgcG9z
dE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIg
ZGVzdGluYXRpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYm
LCBjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyJiBzb3VyY2Up
IGZpbmFsOwogICAgIHZvaWQgcmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJDbGllbnREYXRhJiwgY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uSWRlbnRpZmllcj4mLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCkgZmluYWw7
Ci0gICAgdm9pZCB1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChXZWJDb3JlOjpEb2N1bWVu
dElkZW50aWZpZXIpIGZpbmFsOwotICAgIHZvaWQgc2NoZWR1bGVVbnJlZ2lzdGVySm9iSW5TZXJ2
ZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6
OkRvY3VtZW50T3JXb3JrZXJJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNv
cmU6OkV4Y2VwdGlvbk9yPGJvb2w+JiYpPiYmKSBmaW5hbDsKKyAgICB2b2lkIHVucmVnaXN0ZXJT
ZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyKSBmaW5hbDsKKyAgICB2b2lkIHNjaGVkdWxlVW5yZWdpc3RlckpvYkluU2VydmVyKFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyT3JDbGllbnRJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6
OkV4Y2VwdGlvbk9yPGJvb2w+JiYpPiYmKSBmaW5hbDsKIAogICAgIHZvaWQgbWF0Y2hSZWdpc3Ry
YXRpb24oV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgdG9wT3JpZ2luLCBjb25zdCBVUkwm
IGNsaWVudFVSTCwgUmVnaXN0cmF0aW9uQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBkaWRN
YXRjaFJlZ2lzdHJhdGlvbih1aW50NjRfdCBtYXRjaFJlcXVlc3RJZGVudGlmaWVyLCBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhPiYmKTsKQEAgLTgz
LDcgKzgzLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHdoZW5SZWdpc3RyYXRpb25SZWFkeShjb25z
dCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGll
bnRVUkwsIFdoZW5SZWdpc3RyYXRpb25SZWFkeUNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQg
cmVnaXN0cmF0aW9uUmVhZHkodWludDY0X3QgY2FsbGJhY2tJRCwgV2ViQ29yZTo6U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbkRhdGEmJik7CiAKLSAgICB2b2lkIHNldERvY3VtZW50SXNDb250cm9s
bGVkKFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbkRhdGEmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CisgICAg
dm9pZCBzZXREb2N1bWVudElzQ29udHJvbGxlZChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAKICAgICB2b2lkIGdldFJlZ2lzdHJh
dGlvbnMoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiYgdG9wT3JpZ2luLCBjb25zdCBVUkwm
IGNsaWVudFVSTCwgR2V0UmVnaXN0cmF0aW9uc0NhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQg
d2hlblNlcnZpY2VXb3JrZXJJc1Rlcm1pbmF0ZWRGb3JUZXN0aW5nKFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25u
ZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDbGllbnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IGQyMmQ2ZmQ2OGEyN2ZhM2NhOGQx
NzQ1ZjA2NmYyZDI3MGQxYmZmZjkuLjJmMTQ2ZjZjMDAyODdjYTY4Y2MxODNlYjI2MTVlYzNiYjM2
YmE4ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTMyLDE3ICsz
MiwxNyBAQCBtZXNzYWdlcyAtPiBXZWJTV0NsaWVudENvbm5lY3Rpb24gewogICAgIEZpcmVVcGRh
dGVGb3VuZEV2ZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVy
IGlkZW50aWZpZXIpCiAgICAgU2V0UmVnaXN0cmF0aW9uTGFzdFVwZGF0ZVRpbWUoV2ViQ29yZTo6
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllciwgV2FsbFRpbWUg
bGFzdFVwZGF0ZVRpbWUpCiAgICAgU2V0UmVnaXN0cmF0aW9uVXBkYXRlVmlhQ2FjaGUoV2ViQ29y
ZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllciwgZW51bTp1
aW50OF90IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJVcGRhdGVWaWFDYWNoZSB1cGRhdGVWaWFDYWNo
ZSk7Ci0gICAgTm90aWZ5Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZShIYXNoU2V0PFdlYkNvcmU6
OkRvY3VtZW50SWRlbnRpZmllcj4gY29udGV4dElkZW50aWZpZXJzLCBzdHJ1Y3QgV2ViQ29yZTo6
U2VydmljZVdvcmtlckRhdGEgbmV3Q29udHJvbGxlcikKKyAgICBOb3RpZnlDbGllbnRzT2ZDb250
cm9sbGVyQ2hhbmdlKEhhc2hTZXQ8V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXI+IGNvbnRleHRJZGVudGlmaWVycywgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJE
YXRhIG5ld0NvbnRyb2xsZXIpCiAKICAgICBTZXRTV09yaWdpblRhYmxlSXNJbXBvcnRlZCgpCiAg
ICAgU2V0U1dPcmlnaW5UYWJsZVNoYXJlZE1lbW9yeShXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SVBD
SGFuZGxlIGhhbmRsZSkKLSAgICBQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChXZWJD
b3JlOjpEb2N1bWVudElkZW50aWZpZXIgZGVzdGluYXRpb25Db250ZXh0SWRlbnRpZmllciwgc3Ry
dWN0IFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzIG1lc3NhZ2UsIHN0cnVjdCBXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyRGF0YSBzb3VyY2UsIFN0cmluZyBzb3VyY2VPcmlnaW4pCisgICAg
UG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIgZGVzdGluYXRpb25Db250ZXh0SWRlbnRpZmllciwgc3RydWN0IFdl
YkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzIG1lc3NhZ2UsIHN0cnVjdCBXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyRGF0YSBzb3VyY2UsIFN0cmluZyBzb3VyY2VPcmlnaW4pCiAKICAgICBEaWRN
YXRjaFJlZ2lzdHJhdGlvbih1aW50NjRfdCBtYXRjaFJlcXVlc3RJZGVudGlmaWVyLCBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhPiBkYXRhKQogICAg
IERpZEdldFJlZ2lzdHJhdGlvbnModWludDY0X3QgbWF0Y2hSZXF1ZXN0SWRlbnRpZmllciwgVmVj
dG9yPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhPiByZWdpc3RyYXRpb25z
KQogICAgIFJlZ2lzdHJhdGlvblJlYWR5KHVpbnQ2NF90IHJlZ2lzdHJhdGlvblJlYWR5UmVxdWVz
dElkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0
YSBkYXRhKQogCi0gICAgU2V0RG9jdW1lbnRJc0NvbnRyb2xsZWQoV2ViQ29yZTo6RG9jdW1lbnRJ
ZGVudGlmaWVyIHRlbXBvcmFyeURvY3VtZW50SWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhIGRhdGEpIC0+IChib29sIGlzU3VjY2VzcykgQXN5
bmMKKyAgICBTZXREb2N1bWVudElzQ29udHJvbGxlZChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllciB0ZW1wb3JhcnlEb2N1bWVudElkZW50aWZpZXIsIHN0cnVjdCBXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSBkYXRhKSAtPiAoYm9vbCBpc1N1Y2Nl
c3MpIEFzeW5jCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKaW5kZXggNzJhYzVhNGZiM2QyZTU2YjNmNDk2MGNj
N2Y0MmM0NWVmM2U0MTE3Zi4uYjA4NTY2N2Y4MDg1MTY4NmI2OWE0NmFlMDdjZWUwMWZlOGFhM2Zm
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcApAQCAtNTksOSArNTksOSBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1BhZ2VDb25maWd1cmF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VyaWFsaXplZFNjcmlwdFZhbHVl
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oPgotI2luY2x1
ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1NlcnZpY2VXb3JrZXJDbGllbnRRdWVyeU9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1NlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
VXNlckFnZW50Lmg+CkBAIC0xMDAsNyArMTAwLDcgQEAgUmVmPERvY3VtZW50TG9hZGVyPiBTZXJ2
aWNlV29ya2VyRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZURvY3VtZW50TG9hZGVyKGNvbnN0IFIK
ICAgICByZXR1cm4gV2ViRG9jdW1lbnRMb2FkZXI6OmNyZWF0ZShyZXF1ZXN0LCBzdWJzdGl0dXRl
RGF0YSk7CiB9CiAKLVdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbihSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24sIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgcmVnaXN0cmFibGVEb21haW4sIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdl
SWRlbnRpZmllciwgUGFnZUdyb3VwSWRlbnRpZmllciBwYWdlR3JvdXBJRCwgV2ViUGFnZVByb3h5
SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgUGFnZUlkZW50aWZpZXIgcGFnZUlELCBjb25zdCBX
ZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSwgU2VydmljZVdvcmtlckluaXRpYWxpemF0aW9uRGF0
YSYmIGluaXRpYWxpemF0aW9uRGF0YSkKK1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpX
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbihSZWY8SVBDOjpDb25uZWN0aW9uPiYmIGNvbm5l
Y3Rpb24sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgcmVnaXN0cmFibGVEb21haW4sIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IHNl
cnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciwgUGFnZUdyb3VwSWRlbnRpZmllciBwYWdlR3JvdXBJ
RCwgV2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgUGFnZUlkZW50aWZpZXIg
cGFnZUlELCBjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSwgU2VydmljZVdvcmtlcklu
aXRpYWxpemF0aW9uRGF0YSYmIGluaXRpYWxpemF0aW9uRGF0YSkKICAgICA6IG1fY29ubmVjdGlv
blRvTmV0d29ya1Byb2Nlc3MoV1RGTW92ZShjb25uZWN0aW9uKSkKICAgICAsIG1fcmVnaXN0cmFi
bGVEb21haW4oV1RGTW92ZShyZWdpc3RyYWJsZURvbWFpbikpCiAgICAgLCBtX3NlcnZpY2VXb3Jr
ZXJQYWdlSWRlbnRpZmllcihzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIpCkBAIC0yNTEsOSAr
MjUxLDcgQEAgdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaChT
V1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnYKICAgICB9CiAKICAgICBhdXRvIGNsaWVu
dCA9IFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQ6OmNyZWF0ZShtX2Nvbm5lY3Rpb25U
b05ldHdvcmtQcm9jZXNzLmNvcHlSZWYoKSwgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIHNlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIsIHJlcXVlc3QucmVxdWVzdGVy
KCkgPT0gUmVzb3VyY2VSZXF1ZXN0OjpSZXF1ZXN0ZXI6Ok1haW4pOwotICAgIHN0ZDo6b3B0aW9u
YWw8U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+IGNsaWVudElkOwotICAgIGlmIChvcHRp
b25zLmNsaWVudElkZW50aWZpZXIpCi0gICAgICAgIGNsaWVudElkID0gU2VydmljZVdvcmtlckNs
aWVudElkZW50aWZpZXIgeyBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgb3B0aW9ucy5jbGll
bnRJZGVudGlmaWVyLnZhbHVlKCkgfTsKKyAgICBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyPiBjbGllbnRJZCA9IG9wdGlvbnMuY2xpZW50SWRlbnRpZmllcjsK
IAogICAgIHJlcXVlc3Quc2V0SFRUUEJvZHkoZm9ybURhdGEudGFrZURhdGEoKSk7CiAgICAgc2Vy
dmljZVdvcmtlclRocmVhZFByb3h5LT5zdGFydEZldGNoKHNlcnZlckNvbm5lY3Rpb25JZGVudGlm
aWVyLCBmZXRjaElkZW50aWZpZXIsIFdURk1vdmUoY2xpZW50KSwgV1RGTW92ZShjbGllbnRJZCks
IFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVmZXJyZXIpLCBXVEZNb3ZlKG9wdGlvbnMpKTsK
QEAgLTI5NCw3ICsyOTIsNyBAQCB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpk
aWRTYXZlU2NyaXB0c1RvRGlzayhXZWJDb3JlOjpTZXJ2aWNlV29ya2VySQogfQogI2VuZGlmCiAK
LXZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNl
V29ya2VyQ2xpZW50KGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyJiBkZXN0aW5h
dGlvbklkZW50aWZpZXIsIGNvbnN0IE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiBtZXNzYWdlLCBT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNv
dXJjZU9yaWdpbikKK3ZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnBvc3RNZXNz
YWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyJiBkZXN0aW5hdGlvbklkZW50aWZpZXIsIGNvbnN0IE1lc3NhZ2VXaXRoTWVzc2FnZVBv
cnRzJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbikKIHsKICAgICBtX2Nvbm5lY3Rpb25Ub05ldHdvcmtQ
cm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OlBv
c3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KGRlc3RpbmF0aW9uSWRlbnRpZmllciwgbWVz
c2FnZSwgc291cmNlSWRlbnRpZmllciwgc291cmNlT3JpZ2luKSwgMCk7CiB9CkBAIC0zMjksNyAr
MzI3LDcgQEAgdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6d29ya2VyVGVybWlu
YXRlZChTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXIKICAgICBtX2Nvbm5lY3Rpb25Ub05ldHdv
cmtQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246
OldvcmtlclRlcm1pbmF0ZWQoc2VydmljZVdvcmtlcklkZW50aWZpZXIpLCAwKTsKIH0KIAotdm9p
ZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6ZmluZENsaWVudEJ5SWRlbnRpZmllcihX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwg
U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllciwgRmluZENsaWVu
dEJ5SWRlbnRpZmllckNhbGxiYWNrJiYgY2FsbGJhY2spCit2b2lkIFdlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uOjpmaW5kQ2xpZW50QnlJZGVudGlmaWVyKFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyLCBGaW5kQ2xpZW50QnlJZGVudGlmaWVyQ2Fs
bGJhY2smJiBjYWxsYmFjaykKIHsKICAgICBhdXRvIHJlcXVlc3RJZGVudGlmaWVyID0gKyttX3By
ZXZpb3VzUmVxdWVzdElkZW50aWZpZXI7CiAgICAgbV9maW5kQ2xpZW50QnlJZGVudGlmaWVyUmVx
dWVzdHMuYWRkKHJlcXVlc3RJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24uaAppbmRleCA5ZDhiMjdlMGM1YmM2MDNiNjM2NDc4ZTUzYTY2
MGVjNDJjYzJiNWEzLi4wYjQ3ZTY2YTkxMjc5OGEyNzc1MzA5N2YzZjBlNjk0N2EwYzNjMjFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKQEAgLTYyLDcgKzYyLDcgQEAgY2xhc3Mg
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOwogCiBjbGFzcyBXZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbiBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpTV0NvbnRleHRNYW5hZ2VyOjpDb25uZWN0
aW9uLCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogcHVibGljOgotICAgIFdlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uKFJlZjxJUEM6OkNvbm5lY3Rpb24+JiYsIFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluJiYsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNs
aWVudElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciwgUGFnZUdyb3VwSWRl
bnRpZmllciwgV2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIs
IGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmLCBTZXJ2aWNlV29ya2VySW5pdGlhbGl6YXRpb25E
YXRhJiYpOworICAgIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uKFJlZjxJUEM6OkNvbm5l
Y3Rpb24+JiYsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYsIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdl
SWRlbnRpZmllciwgUGFnZUdyb3VwSWRlbnRpZmllciwgV2ViUGFnZVByb3h5SWRlbnRpZmllciwg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmLCBTZXJ2
aWNlV29ya2VySW5pdGlhbGl6YXRpb25EYXRhJiYpOwogICAgIH5XZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbigpOwogCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6OkRlY29kZXImKSBmaW5hbDsKQEAgLTcyLDEyICs3MiwxMiBAQCBwcml2YXRlOgog
CiAgICAgLy8gV2ViQ29yZTo6U1dDb250ZXh0TWFuYWdlcjo6Q29ubmVjdGlvbi4KICAgICB2b2lk
IGVzdGFibGlzaENvbm5lY3Rpb24oQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsK
LSAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyJiBkZXN0aW5hdGlvbklkZW50aWZpZXIsIGNv
bnN0IFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiwgV2ViQ29yZTo6U2VydmljZVdv
cmtlcklkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmln
aW4pIGZpbmFsOworICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoY29u
c3QgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXImIGRlc3RpbmF0aW9u
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmLCBXZWJD
b3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIHNvdXJjZU9yaWdpbikgZmluYWw7CiAgICAgdm9pZCBkaWRGaW5pc2hJbnN0YWxsKHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiwgV2ViQ29y
ZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIGJvb2wgd2FzU3VjY2Vzc2Z1bCkgZmluYWw7CiAg
ICAgdm9pZCBkaWRGaW5pc2hBY3RpdmF0aW9uKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyKSBmaW5hbDsKICAgICB2b2lkIHNldFNlcnZpY2VXb3JrZXJIYXNQZW5kaW5nRXZlbnRzKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBib29sKSBmaW5hbDsKICAgICB2b2lkIHdv
cmtlclRlcm1pbmF0ZWQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIpIGZpbmFsOwot
ICAgIHZvaWQgZmluZENsaWVudEJ5SWRlbnRpZmllcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIsIEZpbmRDbGll
bnRCeUlkZW50aWZpZXJDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIGZpbmRDbGllbnRCeUlk
ZW50aWZpZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBGaW5kQ2xpZW50QnlJZGVudGlmaWVyQ2FsbGJh
Y2smJikgZmluYWw7CiAgICAgdm9pZCBtYXRjaEFsbChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudFF1ZXJ5T3B0aW9ucyYs
IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRzTWF0Y2hBbGxDYWxsYmFjayYmKSBmaW5hbDsK
ICAgICB2b2lkIGNsYWltKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKSBmaW5hbDsK
ICAgICB2b2lkIHNraXBXYWl0aW5nKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwpAQCAtMTA5LDcgKzEwOSw3IEBAIHBy
aXZhdGU6CiAKICAgICBSZWY8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb25Ub05ldHdvcmtQ
cm9jZXNzOwogICAgIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIG1fcmVnaXN0cmFibGVEb21h
aW47Ci0gICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRp
Zmllcj4gbV9zZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXI7CisgICAgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gbV9zZXJ2aWNlV29ya2Vy
UGFnZUlkZW50aWZpZXI7CiAgICAgUGFnZUdyb3VwSWRlbnRpZmllciBtX3BhZ2VHcm91cElEOwog
ICAgIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgbV93ZWJQYWdlUHJveHlJRDsKICAgICBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciBtX3BhZ2VJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcAppbmRleCA1NzJmMzZkZDA3M2VkYTYzNTg2N2UxNWZlODg0ZDhiODc0N2MyZWNjLi45
NDMwNGI3MTFmZDRmYWVhM2IyMGU3MzljOTk2YTQ3YjhjNzJhZDM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xOTI4LDcgKzE5MjgsNyBAQCBMaWJXZWJSVENO
ZXR3b3JrJiBXZWJQcm9jZXNzOjpsaWJXZWJSVENOZXR3b3JrKCkKIH0KIAogI2lmIEVOQUJMRShT
RVJWSUNFX1dPUktFUikKLXZvaWQgV2ViUHJvY2Vzczo6ZXN0YWJsaXNoV29ya2VyQ29udGV4dENv
bm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKFBhZ2VHcm91cElkZW50aWZpZXIgcGFnZUdyb3VwSUQs
IFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFBhZ2VJZGVudGlmaWVyIHBh
Z2VJRCwgY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUsIFJlZ2lzdHJhYmxlRG9tYWlu
JiYgcmVnaXN0cmFibGVEb21haW4sIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudElk
ZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciwgU2VydmljZVdvcmtlckluaXRp
YWxpemF0aW9uRGF0YSYmIGluaXRpYWxpemF0aW9uRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQcm9jZXNzOjplc3RhYmxpc2hXb3Jr
ZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MoUGFnZUdyb3VwSWRlbnRpZmllciBw
YWdlR3JvdXBJRCwgV2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgUGFnZUlk
ZW50aWZpZXIgcGFnZUlELCBjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSwgUmVnaXN0
cmFibGVEb21haW4mJiByZWdpc3RyYWJsZURvbWFpbiwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyLCBTZXJ2
aWNlV29ya2VySW5pdGlhbGl6YXRpb25EYXRhJiYgaW5pdGlhbGl6YXRpb25EYXRhLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgLy8gV2UgYXJl
IGluIHRoZSBTZXJ2aWNlIFdvcmtlciBjb250ZXh0IHByb2Nlc3MgYW5kIHRoZSBjYWxsIGJlbG93
IGVzdGFibGlzaGVzIG91ciBjb25uZWN0aW9uIHRvIHRoZSBOZXR3b3JrIFByb2Nlc3MKICAgICAv
LyBieSBjYWxsaW5nIGVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi4gU1dDb250ZXh0TWFu
YWdlciBuZWVkcyB0byB1c2UgdGhlIHNhbWUgdW5kZXJseWluZyBJUEM6OkNvbm5lY3Rpb24gYXMg
dGhlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCBmNmM4NjQzMjgzN2Ex
ZTJmYjI5MzdkMzE5YjYzNTQwMjEyYTgwN2Q0Li45YWRlM2MwMDVhZjJlMjI3MWFmY2FiZmZkNjgx
NTIzNjc2ZWZiNzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTQ3
Niw3ICs0NzYsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JL
RVIpCi0gICAgdm9pZCBlc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29ya1By
b2Nlc3MoUGFnZUdyb3VwSWRlbnRpZmllciwgV2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIsIGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmLCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiYmLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJD
bGllbnRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIsIFNlcnZpY2VXb3Jr
ZXJJbml0aWFsaXphdGlvbkRhdGEmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAg
ICB2b2lkIGVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0aW9uVG9OZXR3b3JrUHJvY2VzcyhQ
YWdlR3JvdXBJZGVudGlmaWVyLCBXZWJQYWdlUHJveHlJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciwgY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYsIFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluJiYsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4
dElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciwgU2VydmljZVdvcmtlcklu
aXRpYWxpemF0aW9uRGF0YSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogI2VuZGlm
CiAKICAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vic2l0ZURhdGEmJik+JiYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBiM2VmZTU1M2Fh
NWFjN2M1YThmOTc5MmQ0YWRiODRhODcxODE4ZDg0Li43NDkzYzNmOGY0NjUxZGRmYmQ1MDQxMWU3
ZTIwNTY2YWQ5MGQ5MmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5tZXNzYWdlcy5pbgpAQCAtMTAxLDcgKzEwMSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nl
c3MgTGVnYWN5UmVjZWl2ZXIgTm90UmVmQ291bnRlZCB7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShT
RVJWSUNFX1dPUktFUikKLSAgICBFc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0
d29ya1Byb2Nlc3MoV2ViS2l0OjpQYWdlR3JvdXBJZGVudGlmaWVyIHBhZ2VHcm91cElELCBXZWJL
aXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgc3RydWN0IFdlYktpdDo6V2ViUHJlZmVyZW5jZXNTdG9yZSBzdG9y
ZSwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWluLCBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50
aWZpZXIsIHN0cnVjdCBXZWJLaXQ6OlNlcnZpY2VXb3JrZXJJbml0aWFsaXphdGlvbkRhdGEgaW5p
dGlhbGl6YXRpb25EYXRhKSAtPiAoKSBBc3luYworICAgIEVzdGFibGlzaFdvcmtlckNvbnRleHRD
b25uZWN0aW9uVG9OZXR3b3JrUHJvY2VzcyhXZWJLaXQ6OlBhZ2VHcm91cElkZW50aWZpZXIgcGFn
ZUdyb3VwSUQsIFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgcGFnZUlELCBzdHJ1Y3QgV2ViS2l0OjpXZWJQcmVmZXJl
bmNlc1N0b3JlIHN0b3JlLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBkb21haW4sIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IHNlcnZp
Y2VXb3JrZXJQYWdlSWRlbnRpZmllciwgc3RydWN0IFdlYktpdDo6U2VydmljZVdvcmtlckluaXRp
YWxpemF0aW9uRGF0YSBpbml0aWFsaXphdGlvbkRhdGEpIC0+ICgpIEFzeW5jCiAjZW5kaWYKIAog
ICAgIFNldEhhc1N1c3BlbmRlZFBhZ2VQcm94eShib29sIGhhc1N1c3BlbmRlZFBhZ2VQcm94eSk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444688</attachid>
            <date>2021-11-18 09:07:40 -0800</date>
            <delta_ts>2021-11-18 10:27:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233288-20211118090738.patch</filename>
            <type>text/plain</type>
            <size>210929</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDhjYjcxOWU0ODdhYmVh
ZGZjODE5NTc0MTBkYTAyMTA1Y2Q3ZTU4MS4uOGQzZTM3OGIzYjNjM2Y3ZWRjNDA5MzA3OGJhNmNl
MmEwYmJjZjI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2MSBAQAorMjAyMS0xMS0xNyAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIERyb3AgU2VydmljZVdvcmtl
ckNsaWVudElkZW50aWZpZXIgLyBEb2N1bWVudElkZW50aWZpZXIgYW5kIHVzZSBTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllciBpbnN0ZWFkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMyODgKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJp
biBBZGxlci4KKworICAgICAgICBEcm9wIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIC8g
RG9jdW1lbnRJZGVudGlmaWVyIGFuZCB1c2UgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIgaW5zdGVhZC4KKworICAgICAgICBXZSBuZWVkIHRvIGdlbmVyaWMgaWRlbnRpZmllciB0eXBl
IHRvIGlkZW50aWZ5IHNjcmlwdCBleGVjdXRpb24gY29udGV4dHMgZ2xvYmFsbHkuIFRoaXMgcGF0
Y2ggYXVnbWVudHMKKyAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgd2l0
aCBhIHByb2Nlc3MgaWRlbnRpZmllciB0byBtYWtlIGl0IGFwcC1nbG9iYWwsIGFuZCB0aGVuIGdl
dHMgcmlkIG9mCisgICAgICAgIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyICYgRG9jdW1l
bnRJZGVudGlmaWVyICh3aGljaCBiZWNvbWUgb2Jzb2xldGUpLgorCisgICAgICAgIFRoaXMgaXMg
dXNlZnVsIGZvciBXZWIgTG9jayBBUEkgc3VwcG9ydCBhcyB3ZSBuZWVkIGEgY2xpZW50SWQgdGhh
dCBpcyBjb25zaXN0ZW50IGJldHdlZW4gdGhlIFdlYiBMb2NrCisgICAgICAgIEFQSSBhbmQgdGhl
IHNlcnZpY2Ugd29ya2VyIEFQSSAodGVzdGVkIGJ5IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2ViLWxvY2tzLy9jbGllbnRpZHMudGVudGF0aXZlLmh0dHBzLmh0bWwpLgorICAgICAg
ICBUaGUgY2xpZW50SWQgaW4gc2VydmljZSB3b3JrZXJzIHdhcyB1c2luZyB0aGUgU2VydmljZVdv
cmtlckNsaWVudElkZW50aWZpZXIgdHlwZSwgd2hpY2ggbWFkZSBsaXR0bGUKKyAgICAgICAgc2Vu
c2UgdG8gdXNlIGZvciB0aGUgV2ViIExvY2sgQVBJIGdpdmVuIGl0cyBuYW1lLgorCisgICAgICAg
ICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjphZGRUb0RvY3VtZW50c01hcCk6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVtb3ZlRnJvbURvY3VtZW50c01hcCk6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudDo6c2V0U2VydmljZVdvcmtlckNvbm5lY3Rpb24pOgorICAgICAg
ICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmlkZW50aWZp
ZXIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGRvbS9FbGVtZW50Q29udGV4dC5oOgorICAg
ICAgICAoV2ViQ29yZTo6RWxlbWVudENvbnRleHQ6OmRlY29kZSk6CisgICAgICAgICogZG9tL1Nj
cmlwdEVsZW1lbnQuaDoKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpTY3JpcHRFeGVjdXRp
b25Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnJl
bW92ZUZyb21Db250ZXh0c01hcCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0Ojp+U2NyaXB0RXhlY3V0aW9uQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpTY3Jp
cHRFeGVjdXRpb25Db250ZXh0Ojpjb250ZXh0SWRlbnRpZmllciBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmNvbnRleHRJZGVudGlmaWVyIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmlkZW50aWZpZXIgY29uc3QpOgor
ICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudExvYWRlcjo6ZnJvbVRlbXBvcmFyeURvY3VtZW50SWRlbnRpZmllcik6CisgICAgICAg
IChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6bG9hZE1haW5SZXNvdXJjZSk6CisgICAgICAgICog
bG9hZGVyL0RvY3VtZW50TG9hZGVyLmg6CisgICAgICAgICogbG9hZGVyL0ZldGNoT3B0aW9ucy5o
OgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6RmV0Y2hPcHRpb25zOjpkZWNvZGUpOgorICAgICAgICAqIGxvYWRlci9jYWNo
ZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNv
dXJjZUxvYWRlcjo6cHJlcGFyZUZldGNoKToKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFJlc291cmNlUmVx
dWVzdDo6c2V0Q2xpZW50SWRlbnRpZmllcklmTmVlZGVkKToKKyAgICAgICAgKiBsb2FkZXIvY2Fj
aGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0Lmg6CisgICAgICAgICogcGFnZS9tYWMvUGFnZU1hYy5t
bToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnBsYXRmb3JtSW5pdGlhbGl6ZSk6CisgICAgICAg
ICogcGxhdGZvcm0vRG9jdW1lbnRJZGVudGlmaWVyLmg6IFJlbW92ZWQuCisgICAgICAgICgpOiBE
ZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL1Byb2Nlc3NRdWFsaWZpZWQuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlByb2Nlc3NRdWFsaWZpZWQ6OmdlbmVyYXRlVGhyZWFkU2FmZSk6CisgICAgICAg
IChXZWJDb3JlOjpQcm9jZXNzUXVhbGlmaWVkOjpnZW5lcmF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQcm9jZXNzUXVhbGlmaWVkOjp0b1N0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQ
cm9jZXNzUXVhbGlmaWVkPFQ+OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UHJv
Y2Vzc1F1YWxpZmllZDxUPjo6ZGVjb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllci5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaWJX
ZWJSVENQcm92aWRlcjo6Y3JlYXRlUGVlckNvbm5lY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3Jt
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oOgorICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6ZG9jdW1l
bnRJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6aXNEb2N1
bWVudEFsaXZlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6c2VydmljZVdv
cmtlckNsaWVudElkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9T
V0NsaWVudENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZGlzcGF0Y2hUb0NvbnRl
eHRUaHJlYWRJZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJDb3JlOjpTV0NsaWVudENvbm5lY3Rp
b246OnNjaGVkdWxlSm9iKToKKyAgICAgICAgKFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlvbjo6
cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1dD
bGllbnRDb25uZWN0aW9uOjpub3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNXQ2xpZW50Q29ubmVjdGlvbjo6cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xp
ZW50cyk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oOgor
ICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXI6OnBvc3RNZXNzYWdlKToKKyAgICAgICAgKiB3b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlckNsaWVudC5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyQ2xpZW50RGF0YTo6ZnJvbSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJDbGllbnREYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50
RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNs
aWVudElkZW50aWZpZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdv
cmtlckNsaWVudElkZW50aWZpZXI6OmZyb21TdHJpbmcpOiBEZWxldGVkLgorICAgICAgICAqIHdv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllci5oOiBSZW1vdmVkLgor
ICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI6OnRvU3RyaW5n
IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPT0pOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI6OmVuY29k
ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50
SWRlbnRpZmllcjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJDbGllbnRJZGVudGlmaWVyOjpoYXNoIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVySGFzaDo6aGFzaCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllckhhc2g6OmVx
dWFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6SGFzaFRyYWl0czxXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyQ2xpZW50SWRlbnRpZmllcj46OmVtcHR5VmFsdWUpOiBEZWxldGVkLgorICAgICAgICAo
V1RGOjpIYXNoVHJhaXRzPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPjo6
Y29uc3RydWN0RGVsZXRlZFZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdURjo6SGFzaFRyYWl0
czxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj46OmlzRGVsZXRlZFZhbHVl
KTogRGVsZXRlZC4KKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVu
dHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXJGcm9tU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRzOjpn
ZXQpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50cy5oOgor
ICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250YWluZXI6OmNvbnRleHRJZGVudGlmaWVy
KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oOgor
ICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGV4dERhdGEuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6ZGVjb2RlKToKKyAgICAg
ICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTo6c2VydmljZVdvcmtlclBhZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjpzZXJ2aWNlV29y
a2VyQ2xpZW50KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2I6OmNvbnRleHRJZGVudGlmaWVyKToK
KyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYkNsaWVudC5oOgorICAg
ICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iRGF0YS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpzZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhOjpTZXJ2aWNlV29ya2VySm9iRGF0YSk6CisgICAg
ICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YTo6c2VydmljZVdvcmtlclBhZ2VJZGVu
dGlmaWVyIGNvbnN0KToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpv
YkRhdGEuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclR5cGVzLmg6
CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVjdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJTV0NsaWVudENvbm5lY3Rpb246OnVucmVnaXN0ZXJT
ZXJ2aWNlV29ya2VyQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclNXQ2xpZW50Q29u
bmVjdGlvbjo6c2NoZWR1bGVKb2IpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyU1dDbGllbnRD
b25uZWN0aW9uOjpzY2hlZHVsZVVucmVnaXN0ZXJKb2JJblNlcnZlcik6CisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVjdGlvbi5oOgorICAgICAgICAqIHdvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuY3BwOgorICAgICAgICAqIHdvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4dE1hbmFnZXIuaDoKKyAgICAgICAgKiB3b3JrZXJz
L3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2VydmljZVdvcmtlckZldGNoOjpkaXNwYXRjaEZldGNoRXZlbnQpOgorICAgICAgICAqIHdv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5oOgorICAgICAgICAqIHdv
cmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2VydmljZVdvcmtlclRocmVhZDo6cXVldWVUYXNrVG9GaXJlRmV0Y2hFdmVudCk6
CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5o
OgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQ
cm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnN0
YXJ0RmV0Y2gpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3Jr
ZXJUaHJlYWRQcm94eS5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnNlcnZpY2VXb3JrZXJDbGllbnRX
aXRoT3JpZ2luQnlJRCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6c2NoZWR1
bGVVbnJlZ2lzdGVySm9iKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjp1cGRhdGVXb3Jr
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OnJlZ2lzdGVyU2VydmljZVdvcmtlckNs
aWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6dW5yZWdpc3RlclNlcnZpY2VXb3Jr
ZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6OmNyZWF0ZUNvbnRleHRDb25u
ZWN0aW9uKToKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmg6Cisg
ICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlclJlZ2lzdHJhdGlvbjo6U1dTZXJ2ZXJSZWdpc3Ry
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJSZWdpc3RyYXRpb246OmFkZENsaWVu
dFVzaW5nUmVnaXN0cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyUmVnaXN0cmF0
aW9uOjpyZW1vdmVDbGllbnRVc2luZ1JlZ2lzdHJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpT
V1NlcnZlclJlZ2lzdHJhdGlvbjo6Y29udHJvbENsaWVudCk6CisgICAgICAgICogd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6
U1dTZXJ2ZXJSZWdpc3RyYXRpb246OnNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciBjb25zdCk6
CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
OjpTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpmaW5kQ2xpZW50QnlJZGVudGlmaWVyKToKKyAgICAgICAg
KiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oOgor
ICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpzZXJ2aWNlV29y
a2VyUGFnZUlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXJXb3JrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXJXb3JrZXI6
OmZpbmRDbGllbnRCeUlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2
ZXJXb3JrZXI6OnNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICog
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtlci5oOgorCiAyMDIxLTExLTE4ICBB
bGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtJRkNdIFNob3Vs
ZCBub3QgYWx3YXlzIGtlZXAgdGhlIGVudGlyZSBjb250aW51b3VzIGNvbnRlbnQgd2hlbiB0aGUg
bGluZSBpcyBlbXB0eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4YWRiYTRhMzcwZGY2MWRmODE5ZDU3M2E1NGYwMTBh
ZWYzMmY4YTNkLi5hMmQyYjU4ZjY5Yzc3YWJlMDlkYmY5Y2IxYjllYTNlY2VjZGU5ZjBlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDk3IEBACisyMDIxLTExLTE3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgRHJvcCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciAv
IERvY3VtZW50SWRlbnRpZmllciBhbmQgdXNlIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyIGluc3RlYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMzI4OAorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAg
IERyb3AgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgLyBEb2N1bWVudElkZW50aWZpZXIg
YW5kIHVzZSBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBpbnN0ZWFkLgorCisgICAg
ICAgIFdlIG5lZWQgdG8gZ2VuZXJpYyBpZGVudGlmaWVyIHR5cGUgdG8gaWRlbnRpZnkgc2NyaXB0
IGV4ZWN1dGlvbiBjb250ZXh0cyBnbG9iYWxseS4gVGhpcyBwYXRjaCBhdWdtZW50cworICAgICAg
ICBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciB3aXRoIGEgcHJvY2VzcyBpZGVudGlm
aWVyIHRvIG1ha2UgaXQgYXBwLWdsb2JhbCwgYW5kIHRoZW4gZ2V0cyByaWQgb2YKKyAgICAgICAg
U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgJiBEb2N1bWVudElkZW50aWZpZXIgKHdoaWNo
IGJlY29tZSBvYnNvbGV0ZSkuCisKKyAgICAgICAgVGhpcyBpcyB1c2VmdWwgZm9yIFdlYiBMb2Nr
IEFQSSBzdXBwb3J0IGFzIHdlIG5lZWQgYSBjbGllbnRJZCB0aGF0IGlzIGNvbnNpc3RlbnQgYmV0
d2VlbiB0aGUgV2ViIExvY2sKKyAgICAgICAgQVBJIGFuZCB0aGUgc2VydmljZSB3b3JrZXIgQVBJ
ICh0ZXN0ZWQgYnkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWItbG9ja3MvL2Ns
aWVudGlkcy50ZW50YXRpdmUuaHR0cHMuaHRtbCkuCisgICAgICAgIFRoZSBjbGllbnRJZCBpbiBz
ZXJ2aWNlIHdvcmtlcnMgd2FzIHVzaW5nIHRoZSBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmll
ciB0eXBlLCB3aGljaCBtYWRlIGxpdHRsZQorICAgICAgICBzZW5zZSB0byB1c2UgZm9yIHRoZSBX
ZWIgTG9jayBBUEkgZ2l2ZW4gaXRzIG5hbWUuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjplc3RhYmxpc2hTV0NvbnRleHRDb25uZWN0aW9uKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnN3U2VydmVyRm9yU2Vzc2lvbik6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suaDoKKyAg
ICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlv
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6bm90aWZ5Q2xp
ZW50c09mQ29udHJvbGxlckNoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29u
bmVjdGlvbjo6Y29udHJvbENsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29u
bmVjdGlvbjo6Y3JlYXRlRmV0Y2hUYXNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJD
b25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcik6CisgICAgICAgIChXZWJLaXQ6
OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6Y2xpZW50VVJMRnJvbUlkZW50aWZpZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OnNjaGVkdWxlVW5yZWdpc3RlckpvYklu
U2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpwb3N0TWVz
c2FnZVRvU2VydmljZVdvcmtlckNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVy
Q29ubmVjdGlvbjo6dW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQpOgorICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24u
bWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJT
V1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb246OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbik6
CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6cG9zdE1l
c3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmg6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rp
b24ubWVzc2FnZXMuaW46CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtN
RE5TUmVnaXN0ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrTUROU1JlZ2lzdGVyOjp1
bnJlZ2lzdGVyTUROU05hbWVzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya01ETlNSZWdpc3Rl
cjo6cmVnaXN0ZXJNRE5TTmFtZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05l
dHdvcmtNRE5TUmVnaXN0ZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0
d29ya01ETlNSZWdpc3Rlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9t
ZXNzYWdlcy5weToKKyAgICAgICAgKHR5cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFy
ZWQpOgorICAgICAgICAoaGVhZGVyc19mb3JfdHlwZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8U2Vydmlj
ZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllcj46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8U2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllcj46OmRlY29kZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0NvY29hL1N5c3RlbVByZXZpZXdDb250cm9sbGVyQ29jb2EubW06Cisg
ICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmVzdGFibGlzaFdvcmtlckNvbnRleHRD
b25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmVzdGFibGlzaFdv
cmtlckNvbnRleHRDb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6ZXN0YWJsaXNoU2Vydmlj
ZVdvcmtlckNvbnRleHQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGU6OmxpdmVEb2N1bWVudFVSTHMpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29ya01hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENOZXR3b3JrTWFuYWdlcjo6Z2V0T3JDcmVh
dGUpOgorICAgICAgICAoV2ViS2l0OjpMaWJXZWJSVENOZXR3b3JrTWFuYWdlcjo6TGliV2ViUlRD
TmV0d29ya01hbmFnZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGli
V2ViUlRDTmV0d29ya01hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvd2Vi
cnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TGliV2ViUlRDUHJv
dmlkZXI6OmNyZWF0ZVBlZXJDb25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdv
cmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3
b3JrL3dlYnJ0Yy9XZWJNRE5TUmVnaXN0ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNRE5T
UmVnaXN0ZXI6OnVucmVnaXN0ZXJNRE5TTmFtZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJNRE5T
UmVnaXN0ZXI6OnJlZ2lzdGVyTUROU05hbWUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29y
ay93ZWJydGMvV2ViTUROU1JlZ2lzdGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNXQ2xpZW50
Q29ubmVjdGlvbjo6c2NoZWR1bGVVbnJlZ2lzdGVySm9iSW5TZXJ2ZXIpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJTV0NsaWVudENvbm5lY3Rpb246OnVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50
KToKKyAgICAgICAgKFdlYktpdDo6V2ViU1dDbGllbnRDb25uZWN0aW9uOjpzZXREb2N1bWVudElz
Q29udHJvbGxlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29u
bmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5l
Y3Rpb24ubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb246OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnN0YXJ0RmV0Y2gpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6cG9zdE1lc3Nh
Z2VUb1NlcnZpY2VXb3JrZXJDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbjo6ZmluZENsaWVudEJ5SWRlbnRpZmllcik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
czo6ZXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlByb2Nlc3MubWVzc2FnZXMuaW46CisKIDIwMjEtMTEtMTggIFBlciBBcm5lIFZvbGxhbiAgPHB2
b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIEJsb2NrIGFjY2VzcyB0byB1bnVzZWQg
cmVzb3VyY2VzIGluIHRoZSBOZXR3b3JraW5nIHByb2Nlc3MnIHNhbmRib3gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaCBiL1NvdXJjZS9XVEYvd3RmL0ZvcndhcmQuaAppbmRl
eCAwZjU0NjdmNWY2MzlmM2Q0NTRiMTNmMTBmZjkzMzAzOGZhYzIzY2MzLi4zY2U3NjEyNDJjMzJl
YzE2OTRjNjVhNzdlNzQwZTljNjY5M2MzYmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9G
b3J3YXJkLmgKKysrIGIvU291cmNlL1dURi93dGYvRm9yd2FyZC5oCkBAIC03MCw2ICs3MCw3IEBA
IHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBGaXhlZFZlY3RvcjsKIHRlbXBsYXRlPHR5cGVuYW1l
PiBjbGFzcyBGdW5jdGlvbjsKIHRlbXBsYXRlPHR5cGVuYW1lLCB0eXBlbmFtZSA9IEFueVRocmVh
ZHNBY2Nlc3NUcmFpdHM+IGNsYXNzIExhenlOZXZlckRlc3Ryb3llZDsKIHRlbXBsYXRlPHR5cGVu
YW1lLCB0eXBlbmFtZSA9IEFueVRocmVhZHNBY2Nlc3NUcmFpdHM+IGNsYXNzIE5ldmVyRGVzdHJv
eWVkOwordGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIE9iamVjdElkZW50aWZpZXI7CiB0ZW1wbGF0
ZTx0eXBlbmFtZT4gY2xhc3MgT3B0aW9uU2V0OwogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIFBh
Y2tlZDsKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCA9IGFsaWdub2YoVCk+IGNsYXNzIFBh
Y2tlZEFsaWduZWRQdHI7CkBAIC0xMzcsNiArMTM4LDcgQEAgdXNpbmcgV1RGOjpMYXp5TmV2ZXJE
ZXN0cm95ZWQ7CiB1c2luZyBXVEY6OkxvY2s7CiB1c2luZyBXVEY6OkxvZ2dlcjsKIHVzaW5nIFdU
Rjo6TmV2ZXJEZXN0cm95ZWQ7Cit1c2luZyBXVEY6Ok9iamVjdElkZW50aWZpZXI7CiB1c2luZyBX
VEY6Ok9wdGlvblNldDsKIHVzaW5nIFdURjo6T3JkaW5hbE51bWJlcjsKIHVzaW5nIFdURjo6UHJp
bnRTdHJlYW07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCAyYTI3ZTYwMjIwNTZiN2M5ZGQ1OTFhNzEx
OTRjZDMxNGMxYzY0MmM3Li4zY2Q0YTg0MWM3YmE0YmE4MmNiN2RmMmNhMmFiNzc3MzhiOTA5Yzk3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTEwODIsNyArMTA4Miw2IEBAIHNldChXZWJDb3JlX1BS
SVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBwbGF0Zm9ybS9EYXRlVGltZUNob29zZXJQYXJh
bWV0ZXJzLmgKICAgICBwbGF0Zm9ybS9EZWNpbWFsLmgKICAgICBwbGF0Zm9ybS9EZWZlcnJhYmxl
VGFzay5oCi0gICAgcGxhdGZvcm0vRG9jdW1lbnRJZGVudGlmaWVyLmgKICAgICBwbGF0Zm9ybS9E
cmFnRGF0YS5oCiAgICAgcGxhdGZvcm0vRHJhZ0ltYWdlLmgKICAgICBwbGF0Zm9ybS9EcmFnSXRl
bS5oCkBAIC0xNzYxLDcgKzE3NjAsNiBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19I
RUFERVJTCiAKICAgICB3b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmgKICAgICB3
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudERhdGEuaAotICAgIHdvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllci5oCiAgICAgd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJDbGllbnRRdWVyeU9wdGlvbnMuaAogICAgIHdvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyQ2xpZW50VHlwZS5oCiAgICAgd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJDb250ZXh0RGF0YS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENEYXRhQ2hhbm5lbEhhbmRsZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0RhdGFDaGFubmVs
SGFuZGxlci5oCmluZGV4IGYwOWZmYTc4OTI5Mjk1MGUwM2NiNzViMzI5ZjU1OTBmZDJlZDU0YTgu
LjQxZjk1MjgyMWU2MjAwOTNmOGVlZmUzMmM1ZWQ0YWUwZjVlNTQxOTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ0RhdGFD
aGFubmVsSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ0RhdGFDaGFubmVsSGFuZGxlci5oCkBAIC0yNywxMCArMjcsMTMg
QEAKICNpZiBVU0UoTElCV0VCUlRDKQogCiAjaW5jbHVkZSAiTGliV2ViUlRDTWFjcm9zLmgiCisj
aW5jbHVkZSAiUHJvY2Vzc1F1YWxpZmllZC5oIgogI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsSGFu
ZGxlci5oIgogI2luY2x1ZGUgIlJUQ0RhdGFDaGFubmVsU3RhdGUuaCIKICNpbmNsdWRlICJTaGFy
ZWRCdWZmZXIuaCIKICNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9PYmplY3RJ
ZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogQUxMT1dfVU5VU0VEX1BB
UkFNRVRFUlNfQkVHSU4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQg
Yi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBlOTI4ZmY5NDk0NTgzYjY0ZWQ2MGY1
NWE4Nzk0MzUwMTFkNzY0MmI0Li45MWE4YzBlZmFkYTU4NWEzYmNjMmRjNzEwMWI1NTdhMGEzZjFi
MTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMjcyNSw3ICsyNzI1LDYgQEAgd29ya2Vycy9zZXJ2aWNl
L1NXQ2xpZW50Q29ubmVjdGlvbi5jcHAKIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNw
cAogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnQuY3BwCiB3b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlckNsaWVudERhdGEuY3BwCi13b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlckNsaWVudElkZW50aWZpZXIuY3BwCiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNs
aWVudHMuY3BwCiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAKIHdv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGV4dERhdGEuY3BwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYmIyNjc3NTQx
ZmQyMzdiNDg4OTg4YWMzMGQ3MjYyNzk4YTE3YzY4Ny4uNWE0YjRjZTA2ODcwOGY2NDBjNzFhMjJi
NzVkZjRhNTBiY2YxZTBkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTE2Myw3ICsxMTYzLDYgQEAKIAkJNDE4MUM2NDgyNTVC
NEMyODAwQUVCMEZGIC8qIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTgxQzY0MjI1NUI0QzI2MDBBRUIwRkYg
LyogUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTgxQzY0QTI1NUI0QzI4MDBBRUIwRkYgLyogUlRDUnRw
U0ZyYW1lVHJhbnNmb3JtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MTgxQzY0NDI1NUI0QzI3MDBBRUIwRkYgLyogUlRDUnRwU0ZyYW1lVHJhbnNmb3Jt
LmggKi87IH07CiAJCTQxODIwNTQ3MUU1M0U5OEMwMEQ2MjIwNyAvKiBSVENDb250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTgyMDU0NTFF
NTNDOENEMDBENjIyMDcgLyogUlRDQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCTQxODI2QkYyMjNGQjU5NzcwMEI5MjJCMSAvKiBE
b2N1bWVudElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQxODI2QkYxMjNGQjU5NzAwMEI5MjJCMSAvKiBEb2N1bWVudElkZW50aWZpZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTg0
RjUxNjFFQUYwNUE4MDBGMThCRjAgLyogT3JpZW50YXRpb25Ob3RpZmllci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4NEY1MTUxRUFGMDU5ODAwRjE4
QkYwIC8qIE9yaWVudGF0aW9uTm90aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTg2QkQzRTIxM0VFMzQwMDAwMTgyNkYgLyogTGliV2Vi
UlRDVXRpbHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDFEMUEwNDkyMTNFRERGRDAwNjNGQjZCIC8qIExpYldlYlJUQ1V0aWxzLmNwcCAqLzsgfTsK
IAkJNDE4NkJEM0YyMTNFRTM0MzAwMDE4MjZGIC8qIExpYldlYlJUQ1J0cFNlbmRlckJhY2tlbmQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFEMUEw
NEIyMTNFRERGRTAwNjNGQjZCIC8qIExpYldlYlJUQ1J0cFNlbmRlckJhY2tlbmQuY3BwICovOyB9
OwpAQCAtMjY0NSw3ICsyNjQ0LDYgQEAKIAkJODM3OTY0Q0YxRjhEQjY5RDAwMjE4RUEwIC8qIEdl
b2xvY2F0aW9uUG9zaXRpb25EYXRhSU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODM3OTY0Q0UxRjhEQjY5QTAwMjE4RUEwIC8qIEdlb2xvY2F0aW9u
UG9zaXRpb25EYXRhSU9TLm1tICovOyB9OwogCQk4MzdBODAxMzFFMUUxMjczMDAwMjZCOUYgLyog
TG9jYWxpemFibGUuc3RyaW5nc2RpY3QgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDgzN0E4MDExMUUxRTEyNzMwMDAyNkI5RiAvKiBMb2NhbGl6YWJsZS5z
dHJpbmdzZGljdCAqLzsgfTsKIAkJODM3QzBCNzYyNERCMzg1MDAwNUQ1OTU5IC8qIER5bmFtaWNz
Q29tcHJlc3Nvck9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDgzN0MwQjczMjREQjM4NDIwMDVENTk1OSAvKiBEeW5hbWljc0NvbXByZXNzb3JP
cHRpb25zLmggKi87IH07Ci0JCTgzN0Q0NjI3MUZBMkE4Q0UwMDU0RTFGQSAvKiBTZXJ2aWNlV29y
a2VyQ2xpZW50SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODM3RDQ2MjUxRkEyQThDNTAwNTRFMUZBIC8qIFNlcnZpY2VXb3JrZXJDbGll
bnRJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJODM3RkIzNDUxRjlFQTA2RDAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZl
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzN0ZC
MzQwMUY5RUEwNjYwMEQwRkMzMSAvKiBFeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmggKi87IH07CiAJ
CTgzODg2NzM1MUQxM0JBNUYwMDM2OTdEMCAvKiBSZW5kZXJPYmplY3RFbnVtcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM4ODY3MzQxRDEzQkE1OTAw
MzY5N0QwIC8qIFJlbmRlck9iamVjdEVudW1zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODM4Q0E2QkQxRkMwREZFOTAwNUQ5RkE1IC8qIFNlcnZp
Y2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODM4Q0E2QkIxRkMwREZERDAwNUQ5RkE1IC8qIFNlcnZpY2VXb3Jr
ZXJKb2JEYXRhSWRlbnRpZmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC04NDI0LDcgKzg0MjIsNiBAQAogCQk0MTgxQzY0NTI1NUI0QzI4MDBB
RUIwRkYgLyogUlRDUnRwU0ZyYW1lVHJhbnNmb3JtLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxODIwNTQ1MUU1M0M4Q0QwMEQ2MjIwNyAvKiBSVENDb250cm9sbGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJUQ0NvbnRyb2xsZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4MjA1NDgxRTUzRUFBRDAwRDYyMjA3IC8qIFJU
Q0NvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUlRD
Q29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQxODI2QkYxMjNG
QjU5NzAwMEI5MjJCMSAvKiBEb2N1bWVudElkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRG9jdW1lbnRJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTQxODRGNTE1MUVBRjA1OTgwMEYxOEJGMCAvKiBPcmllbnRhdGlvbk5vdGlmaWVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9yaWVudGF0aW9uTm90aWZpZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4NkJEM0IyMTNFREUzODAwMDE4MjZG
IC8qIExpYldlYlJUQ1J0cFJlY2VpdmVyQmFja2VuZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBMaWJXZWJS
VENSdHBSZWNlaXZlckJhY2tlbmQuaDsgcGF0aCA9IGxpYndlYnJ0Yy9MaWJXZWJSVENSdHBSZWNl
aXZlckJhY2tlbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4NkJEM0QyMTNF
REUzOTAwMDE4MjZGIC8qIExpYldlYlJUQ1J0cFNlbmRlckJhY2tlbmQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gTGliV2ViUlRDUnRwU2VuZGVyQmFja2VuZC5oOyBwYXRoID0gbGlid2VicnRjL0xpYldlYlJU
Q1J0cFNlbmRlckJhY2tlbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExNjkx
LDcgKzExNjg4LDYgQEAKIAkJODM3QjdEMUYxREMzRjU0QzAwRDA1MUZDIC8qIFZhbGlkYXRpb25C
dWJibGVJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWYWxp
ZGF0aW9uQnViYmxlSU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzdDMEI3
MzI0REIzODQyMDA1RDU5NTkgLyogRHluYW1pY3NDb21wcmVzc29yT3B0aW9ucy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEeW5hbWljc0NvbXByZXNzb3JPcHRpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTgzN0MwQjc1MjREQjM4NDMwMDVENTk1OSAvKiBEeW5hbWljc0NvbXByZXNzb3JP
cHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBEeW5hbWljc0NvbXByZXNzb3JPcHRpb25zLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODM3RDQ2MjUxRkEyQThDNTAwNTRFMUZBIC8qIFNlcnZpY2VX
b3JrZXJDbGllbnRJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTgzN0RGQjM0MUVCRkVBNzAwMDYwMTM4NSAvKiBFbGVtZW50Q1NTSW5saW5lU3R5bGUu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEVsZW1lbnRDU1NJbmxpbmVTdHlsZS5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzN0ZCMzQwMUY5RUEwNjYwMEQwRkMzMSAvKiBF
eHRlbmRhYmxlTWVzc2FnZUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEV4dGVuZGFibGVNZXNzYWdlRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODM3RkIzNDIxRjlFQTA2NzAwRDBGQzMxIC8qIEV4dGVuZGFibGVNZXNzYWdlRXZlbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXh0ZW5kYWJsZU1lc3NhZ2VFdmVu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjQyMSw3ICsxMjQxNyw2IEBA
CiAJCTkzRjlCNkRGMEJBMEZCNzIwMDg1NDA2NCAvKiBKU0NvbW1lbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDb21tZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzRjlCNzlFMEJBNjAzMjYwMDg1NDA2NCAvKiBKU0NEQVRBU2VjdGlvbi5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0NEQVRBU2VjdGlvbi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRjlCNzlGMEJBNjAzMjYwMDg1NDA2NCAvKiBK
U0NEQVRBU2VjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NEQVRB
U2VjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5M0ZDREI0OTI2NDQ1NUQ2
MDA0NkREN0QgLyogU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5M0ZDREI0QjI2NDcwREQxMDA0NkREN0QgLyogU1ZHUHJvcGVydHlU
cmFpdHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHUHJvcGVydHlUcmFpdHMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0ZEQUZDOTBCMTEzMDc0MDBFMjc0NkYgLyogRWRp
dG9ySW5zZXJ0QWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFZGl0
b3JJbnNlcnRBY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTQxODI3ODgx
RDhCMjQyMjAwNDkyNzY0IC8qIFN0eWxlQ29sb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gU3R5bGVDb2xvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xODk2MSwxMSArMTg5NTYsMTEgQEAKIAkJMUE1NjlDQzQwRDdFMkI2MDAwN0MzOTgzIC8q
IGJyaWRnZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJ
NTlCNTk3NzExMTA4NjU1NjAwNzE1OUU4IC8qIGpzYyAqLywKIAkJCQkxQTU2OUNFMjBEN0UyQjgy
MDA3QzM5ODMgLyogb2JqYyAqLywKIAkJCQk1OTlFNzU4RjExMDU1QTFGMDBEOTA0RkEgLyogQnJp
ZGdlLmggKi8sCiAJCQkJMUE3MUQ1NzkwRjMzODE5MDAwRjlDRTRFIC8qIElkZW50aWZpZXJSZXAu
Y3BwICovLAogCQkJCTFBNzFENTdBMEYzMzgxOTAwMEY5Q0U0RSAvKiBJZGVudGlmaWVyUmVwLmgg
Ki8sCi0JCQkJNTlCNTk3NzExMTA4NjU1NjAwNzE1OUU4IC8qIGpzYyAqLywKIAkJCQkxQTU2OUNF
RjBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9hcnJheS5jcHAgKi8sCiAJCQkJMUE1NjlDRjAw
RDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfYXJyYXkuaCAqLywKIAkJCQkxQTU2OUNGMTBEN0Uy
QjgyMDA3QzM5ODMgLyogcnVudGltZV9tZXRob2QuY3BwICovLApAQCAtMjE3ODQsOCArMjE3Nzks
NiBAQAogCQkJCTQ2RUYxNDI4MUY5N0I3QkEwMEMyQTUyNCAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50
LmlkbCAqLywKIAkJCQk4Mzc5MzYzQzFGQkJCMEE0MDBDODAyM0MgLyogU2VydmljZVdvcmtlckNs
aWVudERhdGEuY3BwICovLAogCQkJCTgzNzkzNjNFMUZCQkIwQTUwMEM4MDIzQyAvKiBTZXJ2aWNl
V29ya2VyQ2xpZW50RGF0YS5oICovLAotCQkJCTkzRkNEQjQ5MjY0NDU1RDYwMDQ2REQ3RCAvKiBT
ZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllci5jcHAgKi8sCi0JCQkJODM3RDQ2MjUxRkEyQThD
NTAwNTRFMUZBIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmggKi8sCiAJCQkJNDEz
RkM0Q0QxRkQxREQ4QzAwNTQxQzRCIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRRdWVyeU9wdGlvbnMu
aCAqLywKIAkJCQk0NkVGMTQyMTFGOTdCN0JBMDBDMkE1MjQgLyogU2VydmljZVdvcmtlckNsaWVu
dHMuY3BwICovLAogCQkJCTQ2RUYxNDIyMUY5N0I3QkEwMEMyQTUyNCAvKiBTZXJ2aWNlV29ya2Vy
Q2xpZW50cy5oICovLApAQCAtMjg5NjEsNyArMjg5NTQsNiBAQAogCQkJCTQ1RkVBNUNEMTU2RERF
OEMwMDY1NDEwMSAvKiBEZWNpbWFsLmNwcCAqLywKIAkJCQk0NUZFQTVDRTE1NkRERThDMDA2NTQx
MDEgLyogRGVjaW1hbC5oICovLAogCQkJCUNEODNEMzVBMjExMTEwODIwMDc2RTExQyAvKiBEZWZl
cnJhYmxlVGFzay5oICovLAotCQkJCTQxODI2QkYxMjNGQjU5NzAwMEI5MjJCMSAvKiBEb2N1bWVu
dElkZW50aWZpZXIuaCAqLywKIAkJCQlBNzk1NDY0MjBCNUM0Q0I0MDA3QjQzOEYgLyogRHJhZ0Rh
dGEuY3BwICovLAogCQkJCUE3QjZFNjlEMEIyOTFBOTYwMEQwNTI5RiAvKiBEcmFnRGF0YS5oICov
LAogCQkJCUE3Q0ZCM0NGMEI3RUQxMEEwMDcwQzMyRCAvKiBEcmFnSW1hZ2UuY3BwICovLApAQCAt
MzMyMjcsNyArMzMyMTksNiBAQAogCQkJCUE4MTg1RjQ1MDk3NjU3NjYwMDU4MjZEOSAvKiBEb2N1
bWVudEZvbnRMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTg1RjNEMDk3NjU3NjYwMDU4
MjZEOSAvKiBEb2N1bWVudEZyYWdtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDkyRjUxMzIy
NjBGRkVFMDBGODdCQjMgLyogRG9jdW1lbnRGdWxsc2NyZWVuLmggaW4gSGVhZGVycyAqLywKLQkJ
CQk0MTgyNkJGMjIzRkI1OTc3MDBCOTIyQjEgLyogRG9jdW1lbnRJZGVudGlmaWVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlDREVGREEwQjI3MTIyNjM4MDA1NTU5QTcgLyogRG9jdW1lbnRJbmxpbmVz
LmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTZEMzczNjBBREJBNURFMDBBNDU1NEQgLyogRG9jdW1l
bnRMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCThBMTJFMzVEMTFGQTMzMjgwMDI1ODM2QSAv
KiBEb2N1bWVudExvYWRUaW1pbmcuaCBpbiBIZWFkZXJzICovLApAQCAtMzYwNzgsNyArMzYwNjks
NiBAQAogCQkJCUE1ODFFRDEzMUZCMjg4Q0YwMENFRDRFQyAvKiBTZXJ2aWNlV29ya2VyQWdlbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTQ2RUYxNDJEMUY5N0I3RDgwMEMyQTUyNCAvKiBTZXJ2aWNl
V29ya2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4Mzc5MzYzRjFGQkJCMEI0MDBDODAy
M0MgLyogU2VydmljZVdvcmtlckNsaWVudERhdGEuaCBpbiBIZWFkZXJzICovLAotCQkJCTgzN0Q0
NjI3MUZBMkE4Q0UwMDU0RTFGQSAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDE1MTlDQjgxRkQxRjAyRTAwN0Y2MjNDIC8qIFNlcnZpY2VXb3Jr
ZXJDbGllbnRRdWVyeU9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2RUYxNDJDMUY5N0I3
RDgwMEMyQTUyNCAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODM2OUZERkMxRkExMDJFMzAwQzFGRjFGIC8qIFNlcnZpY2VXb3JrZXJDbGllbnRUeXBlLmggaW4g
SGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDBiNjMwYjdjY2M4N2UzZTRj
MzllMWRlZGNkZjNhM2U4OWE5ZjQxOWUuLjY5N2NmNmE1YTgyZGQwZDE3MTNmZmQ1ZmJiOTY0NDc5
ZTExZWE3MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNTYzLDcgKzU2Myw3IEBAIHZv
aWQgRG9jdW1lbnQ6OmNvbmZpZ3VyZVNoYXJlZExvZ2dlcigpCiAKIHZvaWQgRG9jdW1lbnQ6OmFk
ZFRvRG9jdW1lbnRzTWFwKCkKIHsKLSAgICBhdXRvIGFkZFJlc3VsdCA9IGFsbERvY3VtZW50c01h
cCgpLmFkZChtX2lkZW50aWZpZXIsIHRoaXMpOworICAgIGF1dG8gYWRkUmVzdWx0ID0gYWxsRG9j
dW1lbnRzTWFwKCkuYWRkKGlkZW50aWZpZXIoKSwgdGhpcyk7CiAgICAgQVNTRVJUX1VOVVNFRChh
ZGRSZXN1bHQsIGFkZFJlc3VsdC5pc05ld0VudHJ5KTsKIAogICAgIGNvbmZpZ3VyZVNoYXJlZExv
Z2dlcigpOwpAQCAtNTcxLDggKzU3MSw4IEBAIHZvaWQgRG9jdW1lbnQ6OmFkZFRvRG9jdW1lbnRz
TWFwKCkKIAogdm9pZCBEb2N1bWVudDo6cmVtb3ZlRnJvbURvY3VtZW50c01hcCgpCiB7Ci0gICAg
QVNTRVJUKGFsbERvY3VtZW50c01hcCgpLmNvbnRhaW5zKG1faWRlbnRpZmllcikpOwotICAgIGFs
bERvY3VtZW50c01hcCgpLnJlbW92ZShtX2lkZW50aWZpZXIpOworICAgIEFTU0VSVChhbGxEb2N1
bWVudHNNYXAoKS5jb250YWlucyhpZGVudGlmaWVyKCkpKTsKKyAgICBhbGxEb2N1bWVudHNNYXAo
KS5yZW1vdmUoaWRlbnRpZmllcigpKTsKICAgICBjb25maWd1cmVTaGFyZWRMb2dnZXIoKTsKIH0K
IApAQCAtNjUzLDcgKzY1Myw2IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUsIGNv
bnN0IFNldHRpbmdzJiBzZXR0aW5ncywgY29uc3QgVVJMJiB1cmwsIERvY3VtCiAgICAgLCBtX2lz
U3ludGhlc2l6ZWQoY29uc3RydWN0aW9uRmxhZ3MgJiBTeW50aGVzaXplZCkKICAgICAsIG1faXNO
b25SZW5kZXJlZFBsYWNlaG9sZGVyKGNvbnN0cnVjdGlvbkZsYWdzICYgTm9uUmVuZGVyZWRQbGFj
ZWhvbGRlcikKICAgICAsIG1fb3JpZW50YXRpb25Ob3RpZmllcihjdXJyZW50T3JpZW50YXRpb24o
ZnJhbWUpKQotICAgICwgbV9pZGVudGlmaWVyKERvY3VtZW50SWRlbnRpZmllcjo6Z2VuZXJhdGUo
KSkKICAgICAsIG1fdW5kb01hbmFnZXIoVW5kb01hbmFnZXI6OmNyZWF0ZSgqdGhpcykpCiAgICAg
LCBtX2VkaXRvcihtYWtlVW5pcXVlUmVmPEVkaXRvcj4oKnRoaXMpKQogICAgICwgbV9zZWxlY3Rp
b24obWFrZVVuaXF1ZVJlZjxGcmFtZVNlbGVjdGlvbj4odGhpcykpCkBAIC04NzM0LDcgKzg3MzMs
NyBAQCB2b2lkIERvY3VtZW50OjpzZXRTZXJ2aWNlV29ya2VyQ29ubmVjdGlvbihTV0NsaWVudENv
bm5lY3Rpb24qIHNlcnZpY2VXb3JrZXJDb25uZQogICAgICAgICByZXR1cm47CiAKICAgICBhdXRv
IGNvbnRyb2xsaW5nU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgPSBhY3RpdmVT
ZXJ2aWNlV29ya2VyKCkgPyBzdGQ6Om1ha2Vfb3B0aW9uYWw8U2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbklkZW50aWZpZXI+KGFjdGl2ZVNlcnZpY2VXb3JrZXIoKS0+cmVnaXN0cmF0aW9uSWRlbnRp
ZmllcigpKSA6IHN0ZDo6bnVsbG9wdDsKLSAgICBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uLT5y
ZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQodG9wT3JpZ2luKCksIFNlcnZpY2VXb3JrZXJDbGll
bnREYXRhOjpmcm9tKCp0aGlzLCAqc2VydmljZVdvcmtlckNvbm5lY3Rpb24pLCBjb250cm9sbGlu
Z1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCB1c2VyQWdlbnQodXJsKCkpKTsK
KyAgICBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uLT5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGll
bnQodG9wT3JpZ2luKCksIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjpmcm9tKCp0aGlzKSwgY29u
dHJvbGxpbmdTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgdXNlckFnZW50KHVy
bCgpKSk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA4ZDJhY2Q4NzQ0ZmI4
ZTc3NTVlMzdkNjFmZDhmNjFiMzJhZDYxYmQ1Li4xZWZjM2Y1Yjc3NTBhNmU3NDMwZmMyNTM4MTU2
YzJlZTQ3YmFjZmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMzQsNyArMzQsNiBAQAogI2lu
Y2x1ZGUgIkNyb3NzT3JpZ2luT3BlbmVyUG9saWN5LmgiCiAjaW5jbHVkZSAiRGlzYWJsZWRBZGFw
dGF0aW9ucy5oIgogI2luY2x1ZGUgIkRvY3VtZW50RXZlbnRUaW1pbmcuaCIKLSNpbmNsdWRlICJE
b2N1bWVudElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJFbGVtZW50SWRlbnRpZmllci5oIgogI2lu
Y2x1ZGUgIkZvY3VzT3B0aW9ucy5oIgogI2luY2x1ZGUgIkZvbnRTZWxlY3RvckNsaWVudC5oIgpA
QCAtNDAwLDkgKzM5OSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcmVtb3ZlZExhc3RSZWYoKTsK
IAotICAgIERvY3VtZW50SWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9p
ZGVudGlmaWVyOyB9Ci0KLSAgICB1c2luZyBEb2N1bWVudHNNYXAgPSBIYXNoTWFwPERvY3VtZW50
SWRlbnRpZmllciwgRG9jdW1lbnQqPjsKKyAgICB1c2luZyBEb2N1bWVudHNNYXAgPSBIYXNoTWFw
PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBEb2N1bWVudCo+OwogICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBEb2N1bWVudHNNYXA6OlZhbHVlc0l0ZXJhdG9yUmFuZ2UgYWxsRG9j
dW1lbnRzKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIERvY3VtZW50c01hcCYgYWxsRG9j
dW1lbnRzTWFwKCk7CiAKQEAgLTIxOTQsOCArMjE5MSw2IEBAIHByaXZhdGU6CiAgICAgUmVmUHRy
PERvY3VtZW50VGltZWxpbmU+IG1fdGltZWxpbmU7CiAgICAgc3RkOjp1bmlxdWVfcHRyPERvY3Vt
ZW50VGltZWxpbmVzQ29udHJvbGxlcj4gbV90aW1lbGluZXNDb250cm9sbGVyOwogCi0gICAgRG9j
dW1lbnRJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKLQogICAgIFJlZlB0cjxXaW5kb3dFdmVudExv
b3A+IG1fZXZlbnRMb29wOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxFdmVudExvb3BUYXNrR3JvdXA+
IG1fZG9jdW1lbnRUYXNrR3JvdXA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50Q29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRDb250ZXh0LmgKaW5k
ZXggNmNkZjAyYTE0NmFjNzEwMDUzZTBjMzIwNGM5NjI2NDgxZmM3MTZkOS4uOWQwOWIwODliM2Fj
NDk0M2EwZDlhMjJjM2Q2NmU3ZjU1MDU0ZGMxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnRDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRDb250
ZXh0LmgKQEAgLTI1LDEwICsyNSwxMiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkRv
Y3VtZW50SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkVsZW1lbnRJZGVudGlmaWVyLmgiCiAjaW5j
bHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiUGFnZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRl
ICJQcm9jZXNzUXVhbGlmaWVkLmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvT2JqZWN0SWRlbnRpZmllci5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKQEAgLTM2LDcgKzM4LDcgQEAgc3RydWN0IEVsZW1lbnRDb250ZXh0IHsK
ICAgICBGbG9hdFJlY3QgYm91bmRpbmdSZWN0OwogCiAgICAgUGFnZUlkZW50aWZpZXIgd2ViUGFn
ZUlkZW50aWZpZXI7Ci0gICAgRG9jdW1lbnRJZGVudGlmaWVyIGRvY3VtZW50SWRlbnRpZmllcjsK
KyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBkb2N1bWVudElkZW50aWZpZXI7
CiAgICAgRWxlbWVudElkZW50aWZpZXIgZWxlbWVudElkZW50aWZpZXI7CiAKICAgICB+RWxlbWVu
dENvbnRleHQoKSA9IGRlZmF1bHQ7CkBAIC03Nyw3ICs3OSw4IEBAIHN0ZDo6b3B0aW9uYWw8RWxl
bWVudENvbnRleHQ+IEVsZW1lbnRDb250ZXh0OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICBjb250ZXh0LndlYlBhZ2VJZGVudGlmaWVy
ID0gKnBhZ2VJZGVudGlmaWVyOwogCi0gICAgYXV0byBkb2N1bWVudElkZW50aWZpZXIgPSBEb2N1
bWVudElkZW50aWZpZXI6OmRlY29kZShkZWNvZGVyKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBkb2N1bWVudElkZW50aWZpZXI7CisgICAgZGVj
b2RlciA+PiBkb2N1bWVudElkZW50aWZpZXI7CiAgICAgaWYgKCFkb2N1bWVudElkZW50aWZpZXIp
CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgY29udGV4dC5kb2N1bWVudElkZW50
aWZpZXIgPSAqZG9jdW1lbnRJZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmgK
aW5kZXggMGU3Mzk3MTQzZGM1NjM4MDI2MzlhNzViZWEzZDgxOWIxNWQ5OGU3OS4uM2U1OTg4NDll
ZjU2NmExZjc0OWMxMzZhYjk3YzQ5MmM4ZmQwOWUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL1NjcmlwdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxl
bWVudC5oCkBAIC0yMyw5ICsyMyw5IEBACiAKICNpbmNsdWRlICJDb250YWluZXJOb2RlLmgiCiAj
aW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnRJZGVu
dGlmaWVyLmgiCiAjaW5jbHVkZSAiTG9hZGFibGVTY3JpcHQuaCIKICNpbmNsdWRlICJSZWZlcnJl
clBvbGljeS5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmgi
CiAjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKICNpbmNsdWRlIDx3dGYvTW9ub3Rv
bmljVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRQb3NpdGlvbi5oPgpAQCAtMTM5LDcg
KzEzOSw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPExvYWRhYmxlU2NyaXB0PiBtX2xvYWRhYmxl
U2NyaXB0OwogCiAgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uv
c2NyaXB0aW5nLmh0bWwjcHJlcGFyYXRpb24tdGltZS1kb2N1bWVudAotICAgIERvY3VtZW50SWRl
bnRpZmllciBtX3ByZXBhcmF0aW9uVGltZURvY3VtZW50SWRlbnRpZmllcjsKKyAgICBTY3JpcHRF
eGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBtX3ByZXBhcmF0aW9uVGltZURvY3VtZW50SWRlbnRp
ZmllcjsKIAogICAgIE1vbm90b25pY1RpbWUgbV9jcmVhdGlvblRpbWU7CiAgICAgUmVmUHRyPFVz
ZXJHZXN0dXJlVG9rZW4+IG1fdXNlckdlc3R1cmVUb2tlbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAppbmRleCAyNWZhNGMzNjU4MWFhYTQ2YzY4MDk1
ZWE1OGFjY2ZmYTdhMzVkODQ5Li45ZDk2NWFmMGNhNzg3YjRjZjA2YmQxODY3YTQwOTYxYWUzMDAx
Y2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3Bw
CkBAIC0xMTQsMzAgKzExNCwxNyBAQCBwdWJsaWM6CiB9OwogCiBTY3JpcHRFeGVjdXRpb25Db250
ZXh0OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KCkKKyAgICA6IG1fY29udGV4dElkZW50aWZpZXIo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFkU2FmZSgpKQog
ewotfQotCi1TY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBTY3JpcHRFeGVjdXRpb25D
b250ZXh0Ojpjb250ZXh0SWRlbnRpZmllcigpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGlzQ29udGV4
dFRocmVhZCgpKTsKLSAgICBpZiAoIW1fY29udGV4dElkZW50aWZpZXIpIHsKLSAgICAgICAgTG9j
a2VyIGxvY2tlciB7IGFsbFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRzTWFwTG9jayB9OwotCi0gICAg
ICAgIG1fY29udGV4dElkZW50aWZpZXIgPSBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
cjo6Z2VuZXJhdGUoKTsKLQotICAgICAgICBBU1NFUlQoIWFsbFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRzTWFwKCkuY29udGFpbnMobV9jb250ZXh0SWRlbnRpZmllcikpOwotICAgICAgICBhbGxTY3Jp
cHRFeGVjdXRpb25Db250ZXh0c01hcCgpLmFkZChtX2NvbnRleHRJZGVudGlmaWVyLCBjb25zdF9j
YXN0PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqPih0aGlzKSk7Ci0gICAgfQotICAgIHJldHVybiBt
X2NvbnRleHRJZGVudGlmaWVyOworICAgIExvY2tlciBsb2NrZXIgeyBhbGxTY3JpcHRFeGVjdXRp
b25Db250ZXh0c01hcExvY2sgfTsKKyAgICBhbGxTY3JpcHRFeGVjdXRpb25Db250ZXh0c01hcCgp
LmFkZChtX2NvbnRleHRJZGVudGlmaWVyLCB0aGlzKTsKIH0KIAogdm9pZCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0OjpyZW1vdmVGcm9tQ29udGV4dHNNYXAoKQogewotICAgIGlmIChtX2NvbnRleHRJ
ZGVudGlmaWVyKSB7Ci0gICAgICAgIExvY2tlciBsb2NrZXIgeyBhbGxTY3JpcHRFeGVjdXRpb25D
b250ZXh0c01hcExvY2sgfTsKLSAgICAgICAgQVNTRVJUKGFsbFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRzTWFwKCkuY29udGFpbnMobV9jb250ZXh0SWRlbnRpZmllcikpOwotICAgICAgICBhbGxTY3Jp
cHRFeGVjdXRpb25Db250ZXh0c01hcCgpLnJlbW92ZShtX2NvbnRleHRJZGVudGlmaWVyKTsKLSAg
ICB9CisgICAgTG9ja2VyIGxvY2tlciB7IGFsbFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRzTWFwTG9j
ayB9OworICAgIEFTU0VSVChhbGxTY3JpcHRFeGVjdXRpb25Db250ZXh0c01hcCgpLmNvbnRhaW5z
KG1fY29udGV4dElkZW50aWZpZXIpKTsKKyAgICBhbGxTY3JpcHRFeGVjdXRpb25Db250ZXh0c01h
cCgpLnJlbW92ZShtX2NvbnRleHRJZGVudGlmaWVyKTsKIH0KIAogI2lmICFBU1NFUlRfRU5BQkxF
RApAQCAtMTY5LDEwICsxNTYsOSBAQCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojp+U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpCiAgICAgY2hlY2tDb25zaXN0ZW5jeSgpOwogCiAjaWYgQVNTRVJUX0VO
QUJMRUQKLSAgICBpZiAobV9jb250ZXh0SWRlbnRpZmllcikgeworICAgIHsKICAgICAgICAgTG9j
a2VyIGxvY2tlciB7IGFsbFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRzTWFwTG9jayB9OwotICAgICAg
ICBBU1NFUlRfV0lUSF9NRVNTQUdFKCFhbGxTY3JpcHRFeGVjdXRpb25Db250ZXh0c01hcCgpLmNv
bnRhaW5zKG1fY29udGV4dElkZW50aWZpZXIpLAotICAgICAgICAgICAgIkEgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCBzdWJjbGFzcyBpbnN0YW5jZSBpbXBsZW1lbnRpbmcgcG9zdFRhc2sgc2hvdWxk
IGhhdmUgYWxyZWFkeSByZW1vdmVkIGl0c2VsZiBmcm9tIHRoZSBtYXAiKTsKKyAgICAgICAgQVNT
RVJUX1dJVEhfTUVTU0FHRSghYWxsU2NyaXB0RXhlY3V0aW9uQ29udGV4dHNNYXAoKS5jb250YWlu
cyhtX2NvbnRleHRJZGVudGlmaWVyKSwgIkEgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCBzdWJjbGFz
cyBpbnN0YW5jZSBpbXBsZW1lbnRpbmcgcG9zdFRhc2sgc2hvdWxkIGhhdmUgYWxyZWFkeSByZW1v
dmVkIGl0c2VsZiBmcm9tIHRoZSBtYXAiKTsKICAgICB9CiAKICAgICBtX2luU2NyaXB0RXhlY3V0
aW9uQ29udGV4dERlc3RydWN0b3IgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgKaW5kZXggZjc5YzNlZGM4OGQzZWZmMTE2YTVhNjU4MzY0OGNkOGFm
YzFlYTM5MC4uNjU3NGMzM2Y3MWU0Njc1YzkxNmE5MDYyMTMxYzQ5MjViMWEyMzRmYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCkBAIC0yODMsNyArMjgz
LDkgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIHBvc3RUYXNrVG8o
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIFRhc2smJik7CiAgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIGJvb2wgZW5zdXJlT25Db250ZXh0VGhyZWFkKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRJZGVudGlmaWVyLCBUYXNrJiYpOwogCi0gICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIgY29udGV4dElkZW50aWZpZXIoKSBjb25zdDsKKyAgICAvLyBGSVhNRTogUG9ydCBj
YWxsIHNpdGVzIHRvIGlkZW50aWZpZXIoKSBhbmQgZHJvcCB0aGlzIGZ1bmN0aW9uLgorICAgIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZGVudGlmaWVyKCkgY29uc3Qg
eyByZXR1cm4gbV9jb250ZXh0SWRlbnRpZmllcjsgfQorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHRJZGVudGlm
aWVyOyB9CiAKIHByb3RlY3RlZDoKICAgICBjbGFzcyBBZGRDb25zb2xlTWVzc2FnZVRhc2sgOiBw
dWJsaWMgVGFzayB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRM
b2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAppbmRl
eCBlOGFiNmZmOTVjMjg5NjU1YWQ0YWQxNDc3YzU3NWE2YWJlYzFiOWZlLi5jM2Q4NDUwZjcxYzJj
MzczZDJhZjFjY2NmYjIxNWFkODFiZjgwZDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1
bWVudExvYWRlci5jcHAKQEAgLTE1MSwxMyArMTUxLDEzIEBAIHN0YXRpYyB2b2lkIHNldEFsbERl
ZmVyc0xvYWRpbmcoY29uc3QgUmVzb3VyY2VMb2FkZXJNYXAmIGxvYWRlcnMsIGJvb2wgZGVmZXJz
KQogICAgICAgICBsb2FkZXItPnNldERlZmVyc0xvYWRpbmcoZGVmZXJzKTsKIH0KIAotc3RhdGlj
IEhhc2hNYXA8RG9jdW1lbnRJZGVudGlmaWVyLCBEb2N1bWVudExvYWRlcio+JiB0ZW1wb3JhcnlJ
ZGVudGlmaWVyVG9Mb2FkZXJNYXAoKQorc3RhdGljIEhhc2hNYXA8U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dElkZW50aWZpZXIsIERvY3VtZW50TG9hZGVyKj4mIHRlbXBvcmFyeUlkZW50aWZpZXJUb0xv
YWRlck1hcCgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8RG9jdW1lbnRJ
ZGVudGlmaWVyLCBEb2N1bWVudExvYWRlcio+PiBtYXA7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEhhc2hNYXA8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIERvY3VtZW50TG9h
ZGVyKj4+IG1hcDsKICAgICByZXR1cm4gbWFwLmdldCgpOwogfQogCi1Eb2N1bWVudExvYWRlciog
RG9jdW1lbnRMb2FkZXI6OmZyb21UZW1wb3JhcnlEb2N1bWVudElkZW50aWZpZXIoRG9jdW1lbnRJ
ZGVudGlmaWVyIGlkZW50aWZpZXIpCitEb2N1bWVudExvYWRlciogRG9jdW1lbnRMb2FkZXI6OmZy
b21UZW1wb3JhcnlEb2N1bWVudElkZW50aWZpZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXIgaWRlbnRpZmllcikKIHsKICAgICByZXR1cm4gdGVtcG9yYXJ5SWRlbnRpZmllclRvTG9h
ZGVyTWFwKCkuZ2V0KGlkZW50aWZpZXIpOwogfQpAQCAtMjExMCw3ICsyMTEwLDcgQEAgdm9pZCBE
b2N1bWVudExvYWRlcjo6bG9hZE1haW5SZXNvdXJjZShSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0
KQogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKICAgICBpZiAoIW1fdGVtcG9yYXJ5U2Vydmlj
ZVdvcmtlckNsaWVudCkgewogICAgICAgICAvLyBUaGUgbWFpbiBuYXZpZ2F0aW9uIGxvYWQgd2ls
bCB0cmlnZ2VyIHRoZSByZWdpc3RyYXRpb24gb2YgdGhlIHRlbXAgY2xpZW50LgotICAgICAgICBt
X3RlbXBvcmFyeVNlcnZpY2VXb3JrZXJDbGllbnQgPSBEb2N1bWVudElkZW50aWZpZXI6OmdlbmVy
YXRlKCk7CisgICAgICAgIG1fdGVtcG9yYXJ5U2VydmljZVdvcmtlckNsaWVudCA9IFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKTsKICAgICAgICAg
QVNTRVJUKCF0ZW1wb3JhcnlJZGVudGlmaWVyVG9Mb2FkZXJNYXAoKS5jb250YWlucygqbV90ZW1w
b3JhcnlTZXJ2aWNlV29ya2VyQ2xpZW50KSk7CiAgICAgICAgIHRlbXBvcmFyeUlkZW50aWZpZXJU
b0xvYWRlck1hcCgpLmFkZCgqbV90ZW1wb3JhcnlTZXJ2aWNlV29ya2VyQ2xpZW50LCB0aGlzKTsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5oCmluZGV4IGMxNzc0MGFm
NjdlYTU5NTViYTQ2MTQzODU0ZTdkZGZmZTY3NmFlMmMuLmZiZjU0NWM0NjBlNGU0ODlkODdiMjVj
MGU4NWVjY2NhNGNiZjNjODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1
bWVudExvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5o
CkBAIC0zNSw3ICszNSw2IEBACiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5Q2xpZW50
LmgiCiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5PcGVuZXJQb2xpY3kuaCIKICNpbmNsdWRlICJEZXZp
Y2VPcmllbnRhdGlvbk9yTW90aW9uUGVybWlzc2lvblN0YXRlLmgiCi0jaW5jbHVkZSAiRG9jdW1l
bnRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkVGltaW5nLmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnRXcml0ZXIuaCIKICNpbmNsdWRlICJGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIu
aCIKQEAgLTQ2LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRlck9wdGlvbnMuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNl
LmgiCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaCIKICNpbmNs
dWRlICJTZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbkRhdGEuaCIKICNpbmNsdWRlICJTdHJpbmdXaXRoRGlyZWN0aW9uLmgi
CkBAIC0xNjEsNyArMTYxLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBEb2N1bWVudExvYWRlcihyZXF1ZXN0LCBkYXRhKSk7CiAgICAgfQogCi0gICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIERvY3VtZW50TG9hZGVyKiBmcm9tVGVtcG9yYXJ5RG9jdW1lbnRJZGVudGlm
aWVyKERvY3VtZW50SWRlbnRpZmllcik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIERvY3Vt
ZW50TG9hZGVyKiBmcm9tVGVtcG9yYXJ5RG9jdW1lbnRJZGVudGlmaWVyKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgfkRvY3Vt
ZW50TG9hZGVyKCk7CiAKQEAgLTY3MCw3ICs2NzAsNyBAQCBwcml2YXRlOgogCiAjaWYgRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQogICAgIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbkRhdGE+IG1fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE7Ci0gICAgc3RkOjpvcHRp
b25hbDxEb2N1bWVudElkZW50aWZpZXI+IG1fdGVtcG9yYXJ5U2VydmljZVdvcmtlckNsaWVudDsK
KyAgICBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBtX3Rl
bXBvcmFyeVNlcnZpY2VXb3JrZXJDbGllbnQ7CiAjZW5kaWYKIAogI2lmIEFTU0VSVF9FTkFCTEVE
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRmV0Y2hPcHRpb25zLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRmV0Y2hPcHRpb25zLmgKaW5kZXggMjdiOThhOTMyMzA3ZmM1OGM0
NTlkNzE1YzMxNGNjY2E2N2M0ZDhkYy4uZmM4MjI3NDIwMWI5NDQ0NmVmNzM2ZDQzMTdkMTZlNGU2
NTBiYzNiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZldGNoT3B0aW9ucy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GZXRjaE9wdGlvbnMuaApAQCAtMjgsOCArMjgs
OSBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkRvY3VtZW50SWRlbnRpZmllci5oIgor
I2luY2x1ZGUgIlByb2Nlc3NRdWFsaWZpZWQuaCIKICNpbmNsdWRlICJSZWZlcnJlclBvbGljeS5o
IgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmgiCiAjaW5jbHVk
ZSA8d3RmL01hcmthYmxlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAg
LTU5LDcgKzYwLDcgQEAgc3RydWN0IEZldGNoT3B0aW9ucyB7CiAgICAgUmVmZXJyZXJQb2xpY3kg
cmVmZXJyZXJQb2xpY3kgeyBSZWZlcnJlclBvbGljeTo6RW1wdHlTdHJpbmcgfTsKICAgICBib29s
IGtlZXBBbGl2ZSB7IGZhbHNlIH07CiAgICAgU3RyaW5nIGludGVncml0eTsKLSAgICBNYXJrYWJs
ZTxEb2N1bWVudElkZW50aWZpZXIsIERvY3VtZW50SWRlbnRpZmllcjo6TWFya2FibGVUcmFpdHM+
IGNsaWVudElkZW50aWZpZXI7CisgICAgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllcj4gY2xpZW50SWRlbnRpZmllcjsKIH07CiAKIGlubGluZSBGZXRjaE9wdGlv
bnM6OkZldGNoT3B0aW9ucyhEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbiwgTW9kZSBtb2RlLCBDcmVk
ZW50aWFscyBjcmVkZW50aWFscywgQ2FjaGUgY2FjaGUsIFJlZGlyZWN0IHJlZGlyZWN0LCBSZWZl
cnJlclBvbGljeSByZWZlcnJlclBvbGljeSwgU3RyaW5nJiYgaW50ZWdyaXR5LCBib29sIGtlZXBB
bGl2ZSkKQEAgLTI0OCw3ICsyNDksNyBAQCB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogaW5saW5l
IHZvaWQgRmV0Y2hPcHRpb25zOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAg
ICBlbmNvZGVQZXJzaXN0ZW50KGVuY29kZXIpOwotICAgIGVuY29kZXIgPDwgY2xpZW50SWRlbnRp
Zmllci5hc09wdGlvbmFsKCk7CisgICAgZW5jb2RlciA8PCBjbGllbnRJZGVudGlmaWVyOwogfQog
CiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgpAQCAtMjU4LDcgKzI1OSw3IEBAIGlubGluZSBzdGQ6
Om9wdGlvbmFsPEZldGNoT3B0aW9ucz4gRmV0Y2hPcHRpb25zOjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikKICAgICBpZiAoIWRlY29kZVBlcnNpc3RlbnQoZGVjb2Rlciwgb3B0aW9ucykpCiAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9u
YWw8RG9jdW1lbnRJZGVudGlmaWVyPj4gY2xpZW50SWRlbnRpZmllcjsKKyAgICBzdGQ6Om9wdGlv
bmFsPHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+PiBjbGll
bnRJZGVudGlmaWVyOwogICAgIGRlY29kZXIgPj4gY2xpZW50SWRlbnRpZmllcjsKICAgICBpZiAo
IWNsaWVudElkZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3Bw
CmluZGV4IGVkM2RhNjRmNTBkYjEyZTI3NDczY2JlYzc1ZTBlMTNhYmMzYzc0Y2YuLmQ0ZGJjOTg1
MGQ5ODg4NDQ0MmY4NjMyMzNkMTk1ZDRjZWE0MDQ0ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3QuY3BwCkBAIC0yNzksNyAr
Mjc5LDcgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZVJlcXVlc3Q6OnNldERlc3RpbmF0aW9uSWZOb3RT
ZXQoRmV0Y2hPcHRpb25zOjpEZXN0aW5hdGlvbiBkZXMKIH0KIAogI2lmIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKLXZvaWQgQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0OjpzZXRDbGllbnRJZGVudGlmaWVy
SWZOZWVkZWQoRG9jdW1lbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCit2b2lkIENhY2hl
ZFJlc291cmNlUmVxdWVzdDo6c2V0Q2xpZW50SWRlbnRpZmllcklmTmVlZGVkKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCiB7CiAgICAgaWYgKCFtX29w
dGlvbnMuY2xpZW50SWRlbnRpZmllcikKICAgICAgICAgbV9vcHRpb25zLmNsaWVudElkZW50aWZp
ZXIgPSBjbGllbnRJZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdC5oCmluZGV4IGZjYjUzNGY5YzNjOWUyZmIyODk0NTUz
MmQyYjA4NjA0NzgzZjUwNDAuLmQ5ODVjMTgwYThiNDZkNWEyNTFiYTBlYjNmYWI5NDI3YjI0ODcz
MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZVJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0LmgKQEAgLTEwNiw3ICsxMDYsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFN0cmlu
ZyBhY2NlcHRIZWFkZXJWYWx1ZUZyb21UeXBlKENhY2hlZFJlc291cmNlOjpUeXBlKTsKIAogI2lm
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAgICB2b2lkIHNldENsaWVudElkZW50aWZpZXJJZk5l
ZWRlZChEb2N1bWVudElkZW50aWZpZXIpOworICAgIHZvaWQgc2V0Q2xpZW50SWRlbnRpZmllcklm
TmVlZGVkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKTsKICAgICB2b2lkIHNldFNl
bGVjdGVkU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXJJZk5lZWRlZChTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcik7CiAgICAgdm9pZCBzZXROYXZpZ2F0aW9uU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEoY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uRGF0YT4mKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9tYWMvUGFnZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1BhZ2VNYWMu
bW0KaW5kZXggNGRhMDc1NzU2MmE5MTFlZjNlYjVjMmM5OGYyNzkyODdlNjBjYzZlNC4uN2FjZDU5
N2FmYzgwNzc5OGJhZjIwNDg5ODY3ZDI2MjZlYjc4MjRhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9tYWMvUGFnZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9Q
YWdlTWFjLm1tCkBAIC04MSw3ICs4MSw3IEBAIHZvaWQgUGFnZTo6cGxhdGZvcm1Jbml0aWFsaXpl
KCkKICAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiJXUgbGl2ZSBkb2N1bWVudHM6IiwgRG9jdW1l
bnQ6OmFsbERvY3VtZW50cygpLnNpemUoKSk7CiAgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8q
IGRvY3VtZW50IDogRG9jdW1lbnQ6OmFsbERvY3VtZW50cygpKSB7CiAgICAgICAgICAgICAgICAg
Y29uc3QgY2hhciogZG9jdW1lbnRUeXBlID0gaXM8U1ZHRG9jdW1lbnQ+KGRvY3VtZW50KSA/ICJT
VkdEb2N1bWVudCIgOiAiRG9jdW1lbnQiOwotICAgICAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygi
JXMgJXAgJWxsdSAocmVmQ291bnQgJWQsIHJlZmVyZW5jaW5nTm9kZUNvdW50ICVkKSAlcyIsIGRv
Y3VtZW50VHlwZSwgZG9jdW1lbnQsIGRvY3VtZW50LT5pZGVudGlmaWVyKCkudG9VSW50NjQoKSwg
ZG9jdW1lbnQtPnJlZkNvdW50KCksIGRvY3VtZW50LT5yZWZlcmVuY2luZ05vZGVDb3VudCgpLCBk
b2N1bWVudC0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICAgICAg
V1RGTG9nQWx3YXlzKCIlcyAlcCAlcyAocmVmQ291bnQgJWQsIHJlZmVyZW5jaW5nTm9kZUNvdW50
ICVkKSAlcyIsIGRvY3VtZW50VHlwZSwgZG9jdW1lbnQsIGRvY3VtZW50LT5pZGVudGlmaWVyKCku
dG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBkb2N1bWVudC0+cmVmQ291bnQoKSwgZG9jdW1lbnQt
PnJlZmVyZW5jaW5nTm9kZUNvdW50KCksIGRvY3VtZW50LT51cmwoKS5zdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSk7CiAgICAgfSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Eb2N1bWVudElkZW50aWZpZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0RvY3VtZW50SWRlbnRpZmllci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCA5YzkzYjE1ODI4YTkzZDQ3MWRiMmRjMWRjNWE0YzA5OGQ4ZjQ2OGVmLi4wMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0RvY3VtZW50SWRlbnRpZmllci5oCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSA8d3RmL09iamVjdElk
ZW50aWZpZXIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1lbnVtIERvY3VtZW50SWRlbnRp
ZmllclR5cGUgeyB9OwotdXNpbmcgRG9jdW1lbnRJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmll
cjxEb2N1bWVudElkZW50aWZpZXJUeXBlPjsKLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUHJvY2Vzc1F1YWxpZmllZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UHJvY2Vzc1F1YWxpZmllZC5oCmluZGV4IGIxM2YxNjY1ZWE1ODhkZTc5YmEzNjE2NDQ1ZTQ0YWNi
MjgyMDkxOTQuLjI4NWE0MjU1MzkyY2E3ZGVlNjk4ZjFjYmE3MzMxMmNhOWIyM2JhMmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Byb2Nlc3NRdWFsaWZpZWQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Qcm9jZXNzUXVhbGlmaWVkLmgKQEAgLTI3LDYgKzI3LDcg
QEAKIAogI2luY2x1ZGUgIlByb2Nlc3NJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hl
ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
OTAsMTEgKzkxLDMyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIp
OwogICAgIH0KIAorICAgIHN0YXRpYyBQcm9jZXNzUXVhbGlmaWVkIGdlbmVyYXRlVGhyZWFkU2Fm
ZSgpIHsgcmV0dXJuIHsgVDo6Z2VuZXJhdGVUaHJlYWRTYWZlKCksIFByb2Nlc3M6OmlkZW50aWZp
ZXIoKSB9OyB9CisgICAgc3RhdGljIFByb2Nlc3NRdWFsaWZpZWQgZ2VuZXJhdGUoKSB7IHJldHVy
biB7IFQ6OmdlbmVyYXRlKCksIFByb2Nlc3M6OmlkZW50aWZpZXIoKSB9OyB9CisgICAgU3RyaW5n
IHRvU3RyaW5nKCkgY29uc3QgeyByZXR1cm4gbWFrZVN0cmluZyhtX3Byb2Nlc3NJZGVudGlmaWVy
LnRvVUludDY0KCksICctJywgbV9vYmplY3QudG9VSW50NjQoKSk7IH0KKworICAgIHRlbXBsYXRl
PHR5cGVuYW1lIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0IHsg
ZW5jb2RlciA8PCBtX29iamVjdCA8PCBtX3Byb2Nlc3NJZGVudGlmaWVyOyB9CisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UHJvY2Vzc1F1YWxpZmll
ZD4gZGVjb2RlKERlY29kZXImKTsKKwogcHJpdmF0ZToKICAgICBUIG1fb2JqZWN0OwogICAgIFBy
b2Nlc3NJZGVudGlmaWVyIG1fcHJvY2Vzc0lkZW50aWZpZXI7CiB9OwogCit0ZW1wbGF0ZSA8dHlw
ZW5hbWUgVD4KK3RlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+IHN0ZDo6b3B0aW9uYWw8UHJvY2Vz
c1F1YWxpZmllZDxUPj4gUHJvY2Vzc1F1YWxpZmllZDxUPjo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxUPiBvYmplY3Q7CisgICAgZGVjb2RlciA+PiBvYmpl
Y3Q7CisgICAgaWYgKCFvYmplY3QpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAg
c3RkOjpvcHRpb25hbDxQcm9jZXNzSWRlbnRpZmllcj4gcHJvY2Vzc0lkZW50aWZpZXI7CisgICAg
ZGVjb2RlciA+PiBwcm9jZXNzSWRlbnRpZmllcjsKKyAgICBpZiAoIXByb2Nlc3NJZGVudGlmaWVy
KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIHJldHVybiB7IHsgKm9iamVjdCwg
KnByb2Nlc3NJZGVudGlmaWVyIH0gfTsKK30KKwogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBpbmxp
bmUgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgUHJvY2Vzc1F1
YWxpZmllZDxUPiYgcHJvY2Vzc1F1YWxpZmllZCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oCmluZGV4
IGNkNGZjNzMyMzliYzBjMmE5NGM0OGMwNjM3MjgwNmQ1M2ZlM2Y5MTUuLjJjZWFlN2UyOTRiODMx
MzdlMDMwZjdlYTlmNWViZGQ0OTBmMjBjYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaApAQCAtMjUs
MTEgKzI1LDEzIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSA8d3RmL09iamVjdElkZW50
aWZpZXIuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKK3RlbXBsYXRlIDx0eXBlbmFtZT4gY2xhc3MgUHJvY2Vzc1F1YWxpZmllZDsKKwogZW51bSBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllclR5cGUgeyB9OwotdXNpbmcgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dElkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyVHlwZT47Cit1c2luZyBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllciA9IFByb2Nlc3NRdWFsaWZpZWQ8T2JqZWN0SWRlbnRpZmllcjxTY3JpcHRFeGVjdXRp
b25Db250ZXh0SWRlbnRpZmllclR5cGU+PjsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQ
cm92aWRlci5jcHAKaW5kZXggZmI1MmE0YjZkYzZhZTQ3NmQ0YjAzZTdlYWEyZGIzZmQxYjdhNWRm
MS4uM2IxMDcwNzZmZThkMjk4YWRhNzdkZWI0NjEwOTY2MjEwYTZiZjU4OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1By
b3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAi
TWVkaWFDYXBhYmlsaXRpZXNFbmNvZGluZ0luZm8uaCIKICNpbmNsdWRlICJNZWRpYURlY29kaW5n
Q29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIk1lZGlhRW5jb2RpbmdDb25maWd1cmF0aW9uLmgi
CisjaW5jbHVkZSAiUHJvY2Vzc1F1YWxpZmllZC5oIgogCiAjaWYgVVNFKExJQldFQlJUQykKICNp
bmNsdWRlICJDb250ZW50VHlwZS5oIgpAQCAtMzIzLDcgKzMyNCw3IEBAIHZvaWQgTGliV2ViUlRD
UHJvdmlkZXI6OmVuYWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMoKQogICAgIG1f
ZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlcyA9IHRydWU7CiB9CiAKLXJ0Yzo6
c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlPiBMaWJXZWJSVENQ
cm92aWRlcjo6Y3JlYXRlUGVlckNvbm5lY3Rpb24oRG9jdW1lbnRJZGVudGlmaWVyLCB3ZWJydGM6
OlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXImIG9ic2VydmVyLCBydGM6OlBhY2tldFNvY2tldEZhY3Rv
cnkqLCB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlOjpSVENDb25maWd1cmF0aW9uJiYg
Y29uZmlndXJhdGlvbikKK3J0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9u
SW50ZXJmYWNlPiBMaWJXZWJSVENQcm92aWRlcjo6Y3JlYXRlUGVlckNvbm5lY3Rpb24oU2NyaXB0
RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25PYnNlcnZl
ciYgb2JzZXJ2ZXIsIHJ0Yzo6UGFja2V0U29ja2V0RmFjdG9yeSosIHdlYnJ0Yzo6UGVlckNvbm5l
Y3Rpb25JbnRlcmZhY2U6OlJUQ0NvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogewogICAg
IC8vIERlZmF1bHQgV0sxIGltcGxlbWVudGF0aW9uLgogICAgIEFTU0VSVChtX3VzZU5ldHdvcmtU
aHJlYWRXaXRoU29ja2V0U2VydmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgK
aW5kZXggZWRlNTNjYTFmOTIzNzdiMjIzYjkxMTExMDA5ZDgxOWNmZDIwYjU2OC4uMmMwMDliZTI3
YmUzOTkzNWE4YmYxYTk4MjRmYTVkMjM5ODhiOTQzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q1Byb3ZpZGVyLmgKQEAgLTI1LDEwICsyNSwxMCBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1
ZGUgIkRvY3VtZW50SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkxpYldlYlJUQ01hY3Jvcy5oIgog
I2luY2x1ZGUgIk1ETlNSZWdpc3RlckVycm9yLmgiCiAjaW5jbHVkZSAiUlRDRGF0YUNoYW5uZWxS
ZW1vdGVIYW5kbGVyQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5j
bHVkZSA8d3RmL0V4cGVjdGVkLmg+CiAjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgpAQCAtMTAw
LDcgKzEwMCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNyZWF0ZUVuY29kaW5nQ29uZmlndXJhdGlv
bihNZWRpYUVuY29kaW5nQ29uZmlndXJhdGlvbiYmLCBFbmNvZGluZ0NvbmZpZ3VyYXRpb25DYWxs
YmFjayYmKTsKIAogI2lmIFVTRShMSUJXRUJSVEMpCi0gICAgdmlydHVhbCBydGM6OnNjb3BlZF9y
ZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZT4gY3JlYXRlUGVlckNvbm5lY3Rp
b24oRG9jdW1lbnRJZGVudGlmaWVyLCB3ZWJydGM6OlBlZXJDb25uZWN0aW9uT2JzZXJ2ZXImLCBy
dGM6OlBhY2tldFNvY2tldEZhY3RvcnkqLCB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNl
OjpSVENDb25maWd1cmF0aW9uJiYpOworICAgIHZpcnR1YWwgcnRjOjpzY29wZWRfcmVmcHRyPHdl
YnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U+IGNyZWF0ZVBlZXJDb25uZWN0aW9uKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCB3ZWJydGM6OlBlZXJDb25uZWN0aW9uT2JzZXJ2
ZXImLCBydGM6OlBhY2tldFNvY2tldEZhY3RvcnkqLCB3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50
ZXJmYWNlOjpSVENDb25maWd1cmF0aW9uJiYpOwogCiAgICAgd2VicnRjOjpQZWVyQ29ubmVjdGlv
bkZhY3RvcnlJbnRlcmZhY2UqIGZhY3RvcnkoKTsKICAgICBMaWJXZWJSVENBdWRpb01vZHVsZSog
YXVkaW9Nb2R1bGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
UlRDRGF0YUNoYW5uZWxIYW5kbGVyTW9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL1JUQ0RhdGFDaGFubmVsSGFuZGxlck1vY2suY3BwCmluZGV4IDkzYmQ5NjJkNGRlYWQ0MDM5
ZTVkMDE1NDdiNTU4MjA4ZDllZWVhNzcuLmUyMzRlYjZlNDEwNTUwZDk0OWU4YzNjZmI3YTkxZWRm
NjU5OGRkNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svUlRDRGF0
YUNoYW5uZWxIYW5kbGVyTW9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9SVENEYXRhQ2hhbm5lbEhhbmRsZXJNb2NrLmNwcApAQCAtMjksNiArMjksNyBAQAogCiAjaWYg
RU5BQkxFKFdFQl9SVEMpCiAKKyNpbmNsdWRlICJQcm9jZXNzUXVhbGlmaWVkLmgiCiAjaW5jbHVk
ZSAiUlRDRGF0YUNoYW5uZWxIYW5kbGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiUlRDTm90aWZpZXJz
TW9jay5oIgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggYjgxZWQwODkz
MjYyNzI0NWUxNjlkZTY4NzYzMDJmNGY4YTFiMDg5Yy4uMjU2OWNiODIzM2YyNDUyN2VhYjllNjdl
OTIwMjc3ZDJhYWZlOTFiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAt
Mjc1NCwxMiArMjc1NCwxMiBAQCB1bnNpZ25lZCBJbnRlcm5hbHM6Om51bWJlck9mUmVzaXplT2Jz
ZXJ2ZXJzKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkgY29uc3QKIAogdWludDY0X3QgSW50ZXJu
YWxzOjpkb2N1bWVudElkZW50aWZpZXIoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KSBjb25zdAog
ewotICAgIHJldHVybiBkb2N1bWVudC5pZGVudGlmaWVyKCkudG9VSW50NjQoKTsKKyAgICByZXR1
cm4gZG9jdW1lbnQuaWRlbnRpZmllcigpLm9iamVjdCgpLnRvVUludDY0KCk7CiB9CiAKIGJvb2wg
SW50ZXJuYWxzOjppc0RvY3VtZW50QWxpdmUodWludDY0X3QgZG9jdW1lbnRJZGVudGlmaWVyKSBj
b25zdAogewotICAgIHJldHVybiBEb2N1bWVudDo6YWxsRG9jdW1lbnRzTWFwKCkuY29udGFpbnMo
bWFrZU9iamVjdElkZW50aWZpZXI8RG9jdW1lbnRJZGVudGlmaWVyVHlwZT4oZG9jdW1lbnRJZGVu
dGlmaWVyKSk7CisgICAgcmV0dXJuIERvY3VtZW50OjphbGxEb2N1bWVudHNNYXAoKS5jb250YWlu
cyh7IG1ha2VPYmplY3RJZGVudGlmaWVyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVy
VHlwZT4oZG9jdW1lbnRJZGVudGlmaWVyKSwgUHJvY2Vzczo6aWRlbnRpZmllcigpIH0pOwogfQog
CiB1aW50NjRfdCBJbnRlcm5hbHM6OnN0b3JhZ2VBcmVhTWFwQ291bnQoKSBjb25zdApAQCAtMjgw
MCwxMiArMjgwMCw3IEBAIGJvb2wgSW50ZXJuYWxzOjppc0FueVdvcmtsZXRHbG9iYWxTY29wZUFs
aXZlKCkgY29uc3QKIAogU3RyaW5nIEludGVybmFsczo6c2VydmljZVdvcmtlckNsaWVudElkZW50
aWZpZXIoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KSBjb25zdAogewotI2lmIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKLSAgICByZXR1cm4gU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgeyBT
ZXJ2aWNlV29ya2VyUHJvdmlkZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3JrZXJDb25uZWN0aW9u
KCkuc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIoKSwgZG9jdW1lbnQuaWRlbnRpZmllcigpIH0u
dG9TdHJpbmcoKTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKGRvY3VtZW50KTsKLSAgICByZXR1
cm4gU3RyaW5nKCk7Ci0jZW5kaWYKKyAgICByZXR1cm4gZG9jdW1lbnQuaWRlbnRpZmllcigpLnRv
U3RyaW5nKCk7CiB9CiAKIFJlZlB0cjxXaW5kb3dQcm94eT4gSW50ZXJuYWxzOjpvcGVuRHVtbXlJ
bnNwZWN0b3JGcm9udGVuZChjb25zdCBTdHJpbmcmIHVybCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggZmU4MjYw
ZWM3MTk3ZTE2YmVmZjNkOTMxMWRkZDkyOTY2MDYxMWM4Ny4uMjY5NDBiNTA0NWYxZjk2ZGE3MzRm
YjU3NDA5NThlNWZhMTI2Mjk3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5jcHAKQEAgLTQxLDExICs0MSwxMiBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBib29sIGRpc3BhdGNoVG9Db250ZXh0VGhyZWFk
SWZOZWNlc3NhcnkoY29uc3QgRG9jdW1lbnRPcldvcmtlcklkZW50aWZpZXImIGNvbnRleHRJZGVu
dGlmaWVyLCBGdW5jdGlvbjx2b2lkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKT4mJiB0YXNrKQor
c3RhdGljIGJvb2wgZGlzcGF0Y2hUb0NvbnRleHRUaHJlYWRJZk5lY2Vzc2FyeShjb25zdCBTZXJ2
aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyJiBjb250ZXh0SWRlbnRpZmllciwgRnVuY3Rpb248
dm9pZChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik+JiYgdGFzaykKIHsKICAgICBSRUxFQVNFX0FT
U0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgYm9vbCB3YXNQb3N0ZWQgPSBmYWxzZTsKLSAgICBz
d2l0Y2hPbihjb250ZXh0SWRlbnRpZmllciwgWyZdIChEb2N1bWVudElkZW50aWZpZXIgaWRlbnRp
ZmllcikgeworICAgIHN3aXRjaE9uKGNvbnRleHRJZGVudGlmaWVyLCBbJl0gKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyIGlkZW50aWZpZXIpIHsKKyAgICAgICAgLy8gRklYTUU6IFdl
IHNob3VsZCBwcm9iYWJseSBqdXN0IHVzZSBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpwb3N0VGFz
a1RvKCkuCiAgICAgICAgIGF1dG8qIGRvY3VtZW50ID0gRG9jdW1lbnQ6OmFsbERvY3VtZW50c01h
cCgpLmdldChpZGVudGlmaWVyKTsKICAgICAgICAgaWYgKCFkb2N1bWVudCkKICAgICAgICAgICAg
IHJldHVybjsKQEAgLTYzLDcgKzY0LDcgQEAgU1dDbGllbnRDb25uZWN0aW9uOjpTV0NsaWVudENv
bm5lY3Rpb24oKSA9IGRlZmF1bHQ7CiAKIFNXQ2xpZW50Q29ubmVjdGlvbjo6flNXQ2xpZW50Q29u
bmVjdGlvbigpID0gZGVmYXVsdDsKIAotdm9pZCBTV0NsaWVudENvbm5lY3Rpb246OnNjaGVkdWxl
Sm9iKERvY3VtZW50T3JXb3JrZXJJZGVudGlmaWVyIGNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBT
ZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iRGF0YSkKK3ZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpz
Y2hlZHVsZUpvYihTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyIGNvbnRleHRJZGVudGlm
aWVyLCBjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYgam9iRGF0YSkKIHsKICAgICBhdXRvIGFk
ZFJlc3VsdCA9IG1fc2NoZWR1bGVkSm9iU291cmNlcy5hZGQoam9iRGF0YS5pZGVudGlmaWVyKCku
am9iSWRlbnRpZmllciwgY29udGV4dElkZW50aWZpZXIpOwogICAgIEFTU0VSVF9VTlVTRUQoYWRk
UmVzdWx0LCBhZGRSZXN1bHQuaXNOZXdFbnRyeSk7CkBAIC0xMTgsNyArMTE5LDcgQEAgdm9pZCBT
V0NsaWVudENvbm5lY3Rpb246OnN0YXJ0U2NyaXB0RmV0Y2hGb3JTZXJ2ZXIoU2VydmljZVdvcmtl
ckpvYklkZW50aWZpZXIgam8KIH0KIAogCi12b2lkIFNXQ2xpZW50Q29ubmVjdGlvbjo6cG9zdE1l
c3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoRG9jdW1lbnRJZGVudGlmaWVyIGRlc3RpbmF0aW9u
Q29udGV4dElkZW50aWZpZXIsIE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYgbWVzc2FnZSwgU2Vy
dmljZVdvcmtlckRhdGEmJiBzb3VyY2VEYXRhLCBTdHJpbmcmJiBzb3VyY2VPcmlnaW4pCit2b2lk
IFNXQ2xpZW50Q29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgZGVzdGluYXRpb25Db250ZXh0SWRlbnRpZmll
ciwgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiBtZXNzYWdlLCBTZXJ2aWNlV29ya2VyRGF0YSYm
IHNvdXJjZURhdGEsIFN0cmluZyYmIHNvdXJjZU9yaWdpbikKIHsKICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwogCkBAIC0yMjQsNyArMjI1LDcgQEAgdm9pZCBTV0NsaWVudENvbm5lY3Rpb246
OnNldFJlZ2lzdHJhdGlvblVwZGF0ZVZpYUNhY2hlKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24K
ICAgICB9CiB9CiAKLXZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpub3RpZnlDbGllbnRzT2ZDb250
cm9sbGVyQ2hhbmdlKGNvbnN0IEhhc2hTZXQ8RG9jdW1lbnRJZGVudGlmaWVyPiYgY29udGV4dElk
ZW50aWZpZXJzLCBTZXJ2aWNlV29ya2VyRGF0YSYmIG5ld0NvbnRyb2xsZXIpCit2b2lkIFNXQ2xp
ZW50Q29ubmVjdGlvbjo6bm90aWZ5Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZShjb25zdCBIYXNo
U2V0PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiYgY29udGV4dElkZW50aWZpZXJz
LCBTZXJ2aWNlV29ya2VyRGF0YSYmIG5ld0NvbnRyb2xsZXIpCiB7CiAgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKICAgICBBU1NFUlQoIWNvbnRleHRJZGVudGlmaWVycy5pc0VtcHR5KCkpOwpA
QCAtMjYwLDcgKzI2MSw3IEBAIHZvaWQgU1dDbGllbnRDb25uZWN0aW9uOjpyZWdpc3RlclNlcnZp
Y2VXb3JrZXJDbGllbnRzKCkKIHsKICAgICBmb3IgKGF1dG8qIGRvY3VtZW50IDogRG9jdW1lbnQ6
OmFsbERvY3VtZW50cygpKSB7CiAgICAgICAgIGF1dG8gY29udHJvbGxpbmdTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uSWRlbnRpZmllciA9IGRvY3VtZW50LT5hY3RpdmVTZXJ2aWNlV29ya2VyKCkg
PyBzdGQ6Om1ha2Vfb3B0aW9uYWw8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+
KGRvY3VtZW50LT5hY3RpdmVTZXJ2aWNlV29ya2VyKCktPnJlZ2lzdHJhdGlvbklkZW50aWZpZXIo
KSkgOiBzdGQ6Om51bGxvcHQ7Ci0gICAgICAgIHJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChk
b2N1bWVudC0+dG9wT3JpZ2luKCksIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhOjpmcm9tKCpkb2N1
bWVudCwgKnRoaXMpLCBjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlm
aWVyLCBkb2N1bWVudC0+dXNlckFnZW50KGRvY3VtZW50LT51cmwoKSkpOworICAgICAgICByZWdp
c3RlclNlcnZpY2VXb3JrZXJDbGllbnQoZG9jdW1lbnQtPnRvcE9yaWdpbigpLCBTZXJ2aWNlV29y
a2VyQ2xpZW50RGF0YTo6ZnJvbSgqZG9jdW1lbnQpLCBjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25JZGVudGlmaWVyLCBkb2N1bWVudC0+dXNlckFnZW50KGRvY3VtZW50LT51cmwo
KSkpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IDEzN2U5MzU4NzBmNjkzMjY0M2FjYTI2OTIwZjM3
NmVkNzA5MWE2ZWMuLjFmYTE3ZjllOGNkYzJlZDE4OGY3NTc3ZDRiMTRiZGY5Y2IwYjJhMGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0
aW9uLmgKQEAgLTI3LDEwICsyNywxMCBAQAogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQog
Ci0jaW5jbHVkZSAiRG9jdW1lbnRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3Iu
aCIKICNpbmNsdWRlICJQdXNoUGVybWlzc2lvblN0YXRlLmgiCiAjaW5jbHVkZSAiUHVzaFN1YnNj
cmlwdGlvbkRhdGEuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
ci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJKb2IuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29y
a2VyVHlwZXMuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KQEAgLTUwLDcg
KzUwLDYgQEAgZW51bSBjbGFzcyBTaG91bGROb3RpZnlXaGVuUmVzb2x2ZWQgOiBib29sOwogc3Ry
dWN0IEV4Y2VwdGlvbkRhdGE7CiBzdHJ1Y3QgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHM7CiBzdHJ1
Y3QgU2VydmljZVdvcmtlckNsaWVudERhdGE7Ci1zdHJ1Y3QgU2VydmljZVdvcmtlckNsaWVudElk
ZW50aWZpZXI7CiBzdHJ1Y3QgU2VydmljZVdvcmtlckRhdGE7CiBzdHJ1Y3QgU2VydmljZVdvcmtl
ckZldGNoUmVzdWx0Owogc3RydWN0IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhOwpAQCAt
NzAsOSArNjksOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgYWRkU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbkluU2VydmVyKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVy
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25J
blNlcnZlcihTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcikgPSAwOwotICAgIHZp
cnR1YWwgdm9pZCBzY2hlZHVsZVVucmVnaXN0ZXJKb2JJblNlcnZlcihTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uSWRlbnRpZmllciwgRG9jdW1lbnRPcldvcmtlcklkZW50aWZpZXIsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8Ym9vbD4mJik+JiYpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgc2NoZWR1bGVVbnJlZ2lzdGVySm9iSW5TZXJ2ZXIoU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXIsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8Ym9vbD4mJik+JiYpID0gMDsKIAotICAgIFdFQkNP
UkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUpvYihEb2N1bWVudE9yV29ya2VySWRlbnRp
ZmllciwgY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
aXJ0dWFsIHZvaWQgc2NoZWR1bGVKb2IoU2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciwg
Y29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRSZXNv
bHZlUmVnaXN0cmF0aW9uUHJvbWlzZShjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5
JikgPSAwOwogCkBAIC04Miw3ICs4MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgbWF5
SGF2ZVNlcnZpY2VXb3JrZXJSZWdpc3RlcmVkRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2lu
RGF0YSYpIGNvbnN0ID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlclNlcnZpY2VXb3Jr
ZXJDbGllbnQoY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRvcE9yaWdpbiwgY29uc3QgU2VydmljZVdv
cmtlckNsaWVudERhdGEmLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25JZGVudGlmaWVyPiYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50KSA9IDA7Ci0gICAgdmly
dHVhbCB2b2lkIHVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KERvY3VtZW50SWRlbnRpZmll
cikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lk
IGZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoY29uc3QgU2VydmljZVdvcmtlckZldGNoUmVz
dWx0JikgPSAwOwogCkBAIC0xMDksMTMgKzEwOCwxMyBAQCBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBqb2JSZWplY3RlZEluU2VydmVyKFNlcnZpY2VXb3JrZXJKb2JJZGVudGlm
aWVyLCBjb25zdCBFeGNlcHRpb25EYXRhJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZWdp
c3RyYXRpb25Kb2JSZXNvbHZlZEluU2VydmVyKFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyLCBT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSYmLCBTaG91bGROb3RpZnlXaGVuUmVzb2x2ZWQp
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RhcnRTY3JpcHRGZXRjaEZvclNlcnZlcihTZXJ2
aWNlV29ya2VySm9iSWRlbnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktl
eSYsIEZldGNoT3B0aW9uczo6Q2FjaGUpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcG9zdE1l
c3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoRG9jdW1lbnRJZGVudGlmaWVyIGRlc3RpbmF0aW9u
Q29udGV4dElkZW50aWZpZXIsIE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYsIFNlcnZpY2VXb3Jr
ZXJEYXRhJiYgc291cmNlLCBTdHJpbmcmJiBzb3VyY2VPcmlnaW4pOworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIgZGVzdGluYXRpb25Db250ZXh0SWRlbnRpZmllciwgTWVzc2FnZVdp
dGhNZXNzYWdlUG9ydHMmJiwgU2VydmljZVdvcmtlckRhdGEmJiBzb3VyY2UsIFN0cmluZyYmIHNv
dXJjZU9yaWdpbik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVSZWdpc3RyYXRpb25T
dGF0ZShTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvblN0YXRlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJEYXRhPiYp
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBkYXRlV29ya2VyU3RhdGUoU2VydmljZVdvcmtl
cklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJTdGF0ZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBmaXJlVXBkYXRlRm91bmRFdmVudChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmll
cik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRSZWdpc3RyYXRpb25MYXN0VXBkYXRlVGlt
ZShTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgV2FsbFRpbWUpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0UmVnaXN0cmF0aW9uVXBkYXRlVmlhQ2FjaGUoU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJVcGRhdGVWaWFDYWNoZSk7
Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBub3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdl
KGNvbnN0IEhhc2hTZXQ8RG9jdW1lbnRJZGVudGlmaWVyPiYgY29udGV4dElkZW50aWZpZXJzLCBT
ZXJ2aWNlV29ya2VyRGF0YSYmIG5ld0NvbnRyb2xsZXIpOworICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgbm90aWZ5Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZShjb25zdCBIYXNoU2V0PFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiYgY29udGV4dElkZW50aWZpZXJzLCBTZXJ2aWNlV29y
a2VyRGF0YSYmIG5ld0NvbnRyb2xsZXIpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVh
clBlbmRpbmdKb2JzKCk7CiAKQEAgLTEyNSw3ICsxMjQsNyBAQCBwcml2YXRlOgogICAgIGVudW0g
Y2xhc3MgSXNKb2JDb21wbGV0ZSB7IE5vLCBZZXMgfTsKICAgICBib29sIHBvc3RUYXNrRm9ySm9i
KFNlcnZpY2VXb3JrZXJKb2JJZGVudGlmaWVyLCBJc0pvYkNvbXBsZXRlLCBGdW5jdGlvbjx2b2lk
KFNlcnZpY2VXb3JrZXJKb2ImKT4mJik7CiAKLSAgICBIYXNoTWFwPFNlcnZpY2VXb3JrZXJKb2JJ
ZGVudGlmaWVyLCBEb2N1bWVudE9yV29ya2VySWRlbnRpZmllcj4gbV9zY2hlZHVsZWRKb2JTb3Vy
Y2VzOworICAgIEhhc2hNYXA8U2VydmljZVdvcmtlckpvYklkZW50aWZpZXIsIFNlcnZpY2VXb3Jr
ZXJPckNsaWVudElkZW50aWZpZXI+IG1fc2NoZWR1bGVkSm9iU291cmNlczsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyLmNwcAppbmRleCAzNzc0MjU3ODdkNWY0MTFmM2M4MTUyOWU2MzRiNTlkZDM1
NmVlYTkzLi5kZjkwZDU3NzdlYTNjOGJkN2IyMmU1ZGI5NTQyY2RlZjJlZjdhODk3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuY3BwCkBAIC0x
MTYsMTMgKzExNiwxMiBAQCBFeGNlcHRpb25Pcjx2b2lkPiBTZXJ2aWNlV29ya2VyOjpwb3N0TWVz
c2FnZShKU0M6OkpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsCiAgICAgICAgIHJldHVybiBw
b3J0c09yRXhjZXB0aW9uLnJlbGVhc2VFeGNlcHRpb24oKTsKIAogICAgIGF1dG8mIGNvbnRleHQg
PSAqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIC8vIEZJWE1FOiBNYXliZSB3ZSBjb3Vs
ZCB1c2UgYSBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBmb3Igc2VydmljZSB3b3Jr
ZXJzIHRvby4KICAgICBTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyIHNvdXJjZUlkZW50
aWZpZXI7CiAgICAgaWYgKGlzPFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oY29udGV4dCkpCiAg
ICAgICAgIHNvdXJjZUlkZW50aWZpZXIgPSBkb3duY2FzdDxTZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGU+KGNvbnRleHQpLnRocmVhZCgpLmlkZW50aWZpZXIoKTsKLSAgICBlbHNlIHsKLSAgICAgICAg
YXV0byYgY29ubmVjdGlvbiA9IFNlcnZpY2VXb3JrZXJQcm92aWRlcjo6c2luZ2xldG9uKCkuc2Vy
dmljZVdvcmtlckNvbm5lY3Rpb24oKTsKLSAgICAgICAgc291cmNlSWRlbnRpZmllciA9IFNlcnZp
Y2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIHsgY29ubmVjdGlvbi5zZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllcigpLCBkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCkuaWRlbnRpZmllcigpIH07Ci0g
ICAgfQorICAgIGVsc2UKKyAgICAgICAgc291cmNlSWRlbnRpZmllciA9IGNvbnRleHQuaWRlbnRp
ZmllcigpOwogCiAgICAgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMgbWVzc2FnZSB7IG1lc3NhZ2VE
YXRhLnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCBwb3J0c09yRXhjZXB0aW9uLnJlbGVhc2VSZXR1cm5W
YWx1ZSgpIH07CiAgICAgc3dDb25uZWN0aW9uKCkucG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIo
aWRlbnRpZmllcigpLCBXVEZNb3ZlKG1lc3NhZ2UpLCBzb3VyY2VJZGVudGlmaWVyKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudC5o
CmluZGV4IDJlMmM5OWYwMzBjNzZhYjljYjFhMjMwMThiMmI0OTcxODg4Yzk5YTAuLjFmZjJjMjM1
YTEyNDI3MzY4MzYxNDcwMmRlODE2ZGZlMWM0N2JhZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnQuaApAQCAtMjksNiArMjks
NyBAQAogCiAjaW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRl
ICJFeGNlcHRpb25Pci5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckNsaWVudERhdGEuaCIKICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9TdHJvbmcuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpAQCAt
NDYsNyArNDcsNyBAQCBzdHJ1Y3QgU3RydWN0dXJlZFNlcmlhbGl6ZU9wdGlvbnM7CiAKIGNsYXNz
IFNlcnZpY2VXb3JrZXJDbGllbnQgOiBwdWJsaWMgUmVmQ291bnRlZDxTZXJ2aWNlV29ya2VyQ2xp
ZW50PiwgcHVibGljIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyIHsKIHB1YmxpYzoKLSAgICB1
c2luZyBJZGVudGlmaWVyID0gU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI7CisgICAgdXNp
bmcgSWRlbnRpZmllciA9IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyOwogCiAgICAg
dXNpbmcgVHlwZSA9IFNlcnZpY2VXb3JrZXJDbGllbnRUeXBlOwogICAgIHVzaW5nIEZyYW1lVHlw
ZSA9IFNlcnZpY2VXb3JrZXJDbGllbnRGcmFtZVR5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudERhdGEuY3BwIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmNwcAppbmRl
eCAyNWQ3YzBhN2Y0ZWJlOTQ2NjdiZjE4MDU2ZGU2NzdlMjczMGI4NzIyLi42OGYwZTYwZWM3NDc0
YWJlMDZiMjYxMTQyYzdmNzUyZWIyNGNkYzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudERhdGEuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5jcHAKQEAgLTYx
LDcgKzYxLDcgQEAgU2VydmljZVdvcmtlckNsaWVudERhdGEgU2VydmljZVdvcmtlckNsaWVudERh
dGE6Omlzb2xhdGVkQ29weSgpIGNvbnN0CiAgICAgcmV0dXJuIHsgaWRlbnRpZmllciwgdHlwZSwg
ZnJhbWVUeXBlLCB1cmwuaXNvbGF0ZWRDb3B5KCksIGxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlh
dGVkIH07CiB9CiAKLVNlcnZpY2VXb3JrZXJDbGllbnREYXRhIFNlcnZpY2VXb3JrZXJDbGllbnRE
YXRhOjpmcm9tKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFNXQ2xpZW50Q29ubmVj
dGlvbiYgY29ubmVjdGlvbikKK1NlcnZpY2VXb3JrZXJDbGllbnREYXRhIFNlcnZpY2VXb3JrZXJD
bGllbnREYXRhOjpmcm9tKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCiB7CiAgICAg
Ym9vbCBpc0RvY3VtZW50ID0gaXM8RG9jdW1lbnQ+KGNvbnRleHQpOwogICAgIFJFTEVBU0VfQVNT
RVJUKGlzRG9jdW1lbnQpOyAvLyBXZSBkbyBub3Qgc3VwcG9ydCBkZWRpY2F0ZWQgd29ya2VycyBh
cyBjbGllbnRzIHlldC4KQEAgLTcwLDcgKzcwLDcgQEAgU2VydmljZVdvcmtlckNsaWVudERhdGEg
U2VydmljZVdvcmtlckNsaWVudERhdGE6OmZyb20oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY28K
ICAgICBhdXRvIGxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkID0gZG9jdW1lbnQubG9hZGVy
KCkgJiYgZG9jdW1lbnQubG9hZGVyKCktPmxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKCkg
PyBMYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZDo6WWVzIDogTGFzdE5hdmlnYXRpb25XYXNB
cHBJbml0aWF0ZWQ6Ok5vOwogCiAgICAgcmV0dXJuIHsKLSAgICAgICAgeyBjb25uZWN0aW9uLnNl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKCksIGRvY3VtZW50LmlkZW50aWZpZXIoKSB9LAorICAg
ICAgICBjb250ZXh0LmlkZW50aWZpZXIoKSwKICAgICAgICAgaXNEb2N1bWVudCA/IFNlcnZpY2VX
b3JrZXJDbGllbnRUeXBlOjpXaW5kb3cgOiBTZXJ2aWNlV29ya2VyQ2xpZW50VHlwZTo6V29ya2Vy
LAogICAgICAgICB0b1NlcnZpY2VXb3JrZXJDbGllbnRGcmFtZVR5cGUoY29udGV4dCksCiAgICAg
ICAgIGNvbnRleHQudXJsKCksIGxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudERh
dGEuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50
RGF0YS5oCmluZGV4IDBmNGY2MWI3MDM1YTVhNjc3MTM5MGMwMjdjMDFmYWFjZDZlNDUwZWQuLmUy
OGIyYmM1NzhiZWIyOGJmMDE3ZDkzYWIxMTM2ZWFhYjZmY2MxZjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5o
CkBAIC0yNyw3ICsyNyw4IEBACiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKLSNpbmNs
dWRlICJTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlByb2Nlc3NR
dWFsaWZpZWQuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5o
IgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDbGllbnRUeXBlLmgiCiAjaW5jbHVkZSAiU2Vydmlj
ZVdvcmtlclR5cGVzLmgiCiAjaW5jbHVkZSA8d3RmL1VSTC5oPgpAQCAtNDAsNyArNDEsNyBAQCBj
bGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogZW51bSBjbGFzcyBMYXN0TmF2aWdhdGlvbldh
c0FwcEluaXRpYXRlZCA6IGJvb2wgeyBObywgWWVzIH07CiAKIHN0cnVjdCBTZXJ2aWNlV29ya2Vy
Q2xpZW50RGF0YSB7Ci0gICAgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgaWRlbnRpZmll
cjsKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBpZGVudGlmaWVyOwogICAg
IFNlcnZpY2VXb3JrZXJDbGllbnRUeXBlIHR5cGU7CiAgICAgU2VydmljZVdvcmtlckNsaWVudEZy
YW1lVHlwZSBmcmFtZVR5cGU7CiAgICAgVVJMIHVybDsKQEAgLTQ4LDcgKzQ5LDcgQEAgc3RydWN0
IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhIHsKIAogICAgIFNlcnZpY2VXb3JrZXJDbGllbnREYXRh
IGlzb2xhdGVkQ29weSgpIGNvbnN0OwogCi0gICAgc3RhdGljIFNlcnZpY2VXb3JrZXJDbGllbnRE
YXRhIGZyb20oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFNXQ2xpZW50Q29ubmVjdGlvbiYpOwor
ICAgIHN0YXRpYyBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBmcm9tKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmKTsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImKSBjb25zdDsKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRp
b25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4gZGVjb2RlKERlY29kZXImKTsKQEAgLTYzLDcg
KzY0LDcgQEAgdm9pZCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YTo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0CiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgogc3RkOjpvcHRpb25hbDxTZXJ2
aWNlV29ya2VyQ2xpZW50RGF0YT4gU2VydmljZVdvcmtlckNsaWVudERhdGE6OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyKQogewotICAgIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudElk
ZW50aWZpZXI+IGlkZW50aWZpZXI7CisgICAgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllcj4gaWRlbnRpZmllcjsKICAgICBkZWNvZGVyID4+IGlkZW50aWZpZXI7
CiAgICAgaWYgKCFpZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGll
bnRJZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyQ2xpZW50SWRlbnRpZmllci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGJjZjMzMzQzOTE5ZjYwNjZlNzQyNjM3ZGMxM2U5MmQxYzNkZGZmYzUuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDU0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIuaCIKLQotI2lmIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKLQotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5o
PgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ1RvSW50ZWdlckNvbnZlcnNpb24uaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1zdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVu
dGlmaWVyPiBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcjo6ZnJvbVN0cmluZyhTdHJpbmdW
aWV3IHN0cmluZykKLXsKLSAgICBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBjbGllbnRJ
ZGVudGlmaWVyOwotICAgIHVuc2lnbmVkIGNvdW50ZXIgPSAwOwotICAgIGZvciAoYXV0byBpdGVt
IDogc3RyaW5nLnNwbGl0KCctJykpIHsKLSAgICAgICAgYXV0byBpZGVudGlmaWVyID0gcGFyc2VJ
bnRlZ2VyPHVpbnQ2NF90PihpdGVtKTsKLSAgICAgICAgaWYgKCFpZGVudGlmaWVyIHx8ICEqaWRl
bnRpZmllcikKLSAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAgICAgIGlmICgh
Y291bnRlcisrKQotICAgICAgICAgICAgY2xpZW50SWRlbnRpZmllci5zZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciA9IG1ha2VPYmplY3RJZGVudGlmaWVyPFNXU2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXJUeXBlPihpZGVudGlmaWVyLnZhbHVlKCkpOwotICAgICAgICBlbHNlIGlmIChjb3VudGVy
ID09IDIpCi0gICAgICAgICAgICBjbGllbnRJZGVudGlmaWVyLmNvbnRleHRJZGVudGlmaWVyID0g
bWFrZU9iamVjdElkZW50aWZpZXI8RG9jdW1lbnRJZGVudGlmaWVyVHlwZT4oaWRlbnRpZmllci52
YWx1ZSgpKTsKLSAgICB9Ci0gICAgcmV0dXJuIChjb3VudGVyID09IDIpID8gc3RkOjptYWtlX29w
dGlvbmFsKFdURk1vdmUoY2xpZW50SWRlbnRpZmllcikpIDogc3RkOjpudWxsb3B0OwotfQotCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckNsaWVudElkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBiY2UyN2NjZTMwNjk2ODNhODllZDQxZjZhNzQ2ZjY0NGJiMjJkZWYyLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllci5oCisrKyAvZGV2L251bGwKQEAg
LTEsMTAxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5B
QkxFKFNFUlZJQ0VfV09SS0VSKQotCi0jaW5jbHVkZSAiRG9jdW1lbnRJZGVudGlmaWVyLmgiCi0j
aW5jbHVkZSAiU2VydmljZVdvcmtlclR5cGVzLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hlci5oPgot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLXN0cnVjdCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRp
ZmllciB7Ci0gICAgU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllcjsKLSAgICBEb2N1bWVudElkZW50aWZpZXIgY29udGV4dElkZW50aWZpZXI7Ci0K
LSAgICB1bnNpZ25lZCBoYXNoKCkgY29uc3Q7Ci0KLSAgICBTdHJpbmcgdG9TdHJpbmcoKSBjb25z
dCB7IHJldHVybiBtYWtlU3RyaW5nKHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLnRvVUludDY0
KCksICctJywgY29udGV4dElkZW50aWZpZXIudG9VSW50NjQoKSk7IH0KLSAgICBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gZnJvbVN0cmluZyhTdHJp
bmdWaWV3KTsKLQotICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImKSBjb25zdDsKLSAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRp
b25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gZGVjb2RlKERlY29kZXImKTsKLX07
Ci0KLWlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgU2VydmljZVdvcmtlckNsaWVudElkZW50
aWZpZXImIGEsIGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyJiBiKQotewotICAg
IHJldHVybiBhLnNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyID09IGIuc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIgJiYgYS5jb250ZXh0SWRlbnRpZmllciA9PSBiLmNvbnRleHRJZGVudGlmaWVy
OwotfQotCi10ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgotdm9pZCBTZXJ2aWNlV29ya2VyQ2xpZW50
SWRlbnRpZmllcjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Ci17Ci0gICAgZW5jb2Rl
ciA8PCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciA8PCBjb250ZXh0SWRlbnRpZmllcjsKLX0K
LQotdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KLXN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNs
aWVudElkZW50aWZpZXI+IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyOjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlcikKLXsKLSAgICBzdGQ6Om9wdGlvbmFsPFNXU2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXI+IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyOwotICAgIGRlY29kZXIgPj4gc2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXI7Ci0gICAgaWYgKCFzZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllcikKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgIHN0ZDo6b3B0aW9uYWw8
RG9jdW1lbnRJZGVudGlmaWVyPiBjb250ZXh0SWRlbnRpZmllcjsKLSAgICBkZWNvZGVyID4+IGNv
bnRleHRJZGVudGlmaWVyOwotICAgIGlmICghY29udGV4dElkZW50aWZpZXIpCi0gICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICByZXR1cm4geyB7ICpzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgKmNvbnRleHRJZGVudGlmaWVyIH0gfTsKLX0KLQotaW5saW5lIHVuc2lnbmVkIFNl
cnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyOjpoYXNoKCkgY29uc3QKLXsKLSAgICByZXR1cm4g
Y29tcHV0ZUhhc2goc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnRleHRJZGVudGlmaWVy
KTsKLX0KLQotc3RydWN0IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVySGFzaCB7Ci0gICAg
c3RhdGljIHVuc2lnbmVkIGhhc2goY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElk
ZW50aWZpZXImIGtleSkgeyByZXR1cm4ga2V5Lmhhc2goKTsgfQotICAgIHN0YXRpYyBib29sIGVx
dWFsKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyJiBhLCBjb25z
dCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYgYikgeyByZXR1cm4gYSA9
PSBiOyB9Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgc2FmZVRvQ29tcGFyZVRvRW1wdHlPckRlbGV0
ZWQgPSB0cnVlOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi1uYW1lc3BhY2UgV1RG
IHsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgSGFzaFRyYWl0czxXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllcj4gOiBHZW5lcmljSGFzaFRyYWl0czxXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyQ2xpZW50SWRlbnRpZmllcj4gewotICAgIHN0YXRpYyBXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllciBlbXB0eVZhbHVlKCkgeyByZXR1cm4geyB9OyB9Ci0gICAgc3RhdGlj
IHZvaWQgY29uc3RydWN0RGVsZXRlZFZhbHVlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJ
ZGVudGlmaWVyJiBzbG90KSB7IG5ldyAoTm90TnVsbCwgJnNsb3Quc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIpIFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIoSGFzaFRhYmxl
RGVsZXRlZFZhbHVlKTsgfQotICAgIHN0YXRpYyBib29sIGlzRGVsZXRlZFZhbHVlKGNvbnN0IFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyJiBzbG90KSB7IHJldHVybiBzbG90
LnNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7IH0K
LX07Ci0KLXRlbXBsYXRlPD4gc3RydWN0IERlZmF1bHRIYXNoPFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJDbGllbnRJZGVudGlmaWVyPiA6IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlm
aWVySGFzaCB7IH07Ci0KLX0KLQotI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xp
ZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNs
aWVudHMuY3BwCmluZGV4IGM4MjcyMGVhNzY0MTA5ZWQzYjIwZWI0ZDY2NjQ2NTI4YzFkY2FmNTQu
LmFiNmI1ZTg0N2YyYmJlZDc2OGMzZDE5MDlhYjFhODE4NTNiMGMyMTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50cy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRzLmNw
cApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXIuaCIKICNpbmNsdWRl
ICJTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyVGhy
ZWFkLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVG9JbnRlZ2VyQ29udmVyc2lvbi5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTUyLDkgKzUzLDI2IEBAIHN0YXRpYyBpbmxpbmUg
dm9pZCBkaWRGaW5pc2hHZXRSZXF1ZXN0KFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSYgc2NvcGUs
IERlZmVycmVkCiAgICAgcHJvbWlzZS5yZXNvbHZlPElETEludGVyZmFjZTxTZXJ2aWNlV29ya2Vy
Q2xpZW50Pj4oU2VydmljZVdvcmtlckNsaWVudDo6Z2V0T3JDcmVhdGUoc2NvcGUsIFdURk1vdmUo
ZGF0YS52YWx1ZSgpKSkpOwogfQogCitzdGF0aWMgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRp
b25Db250ZXh0SWRlbnRpZmllcj4gc2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXJGcm9t
U3RyaW5nKFN0cmluZ1ZpZXcgc3RyaW5nKQoreworICAgIFByb2Nlc3NJZGVudGlmaWVyIHByb2Nl
c3NJZGVudGlmaWVyOworICAgIE9iamVjdElkZW50aWZpZXI8U2NyaXB0RXhlY3V0aW9uQ29udGV4
dElkZW50aWZpZXJUeXBlPiBjb250ZXh0SWRlbnRpZmllcjsKKyAgICB1bnNpZ25lZCBjb3VudGVy
ID0gMDsKKyAgICBmb3IgKGF1dG8gaXRlbSA6IHN0cmluZy5zcGxpdCgnLScpKSB7CisgICAgICAg
IGF1dG8gaWRlbnRpZmllciA9IHBhcnNlSW50ZWdlcjx1aW50NjRfdD4oaXRlbSk7CisgICAgICAg
IGlmICghaWRlbnRpZmllciB8fCAhKmlkZW50aWZpZXIpCisgICAgICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworICAgICAgICBpZiAoIWNvdW50ZXIrKykKKyAgICAgICAgICAgIHByb2Nlc3NJ
ZGVudGlmaWVyID0gbWFrZU9iamVjdElkZW50aWZpZXI8UHJvY2Vzc0lkZW50aWZpZXJUeXBlPigq
aWRlbnRpZmllcik7CisgICAgICAgIGVsc2UgaWYgKGNvdW50ZXIgPT0gMikKKyAgICAgICAgICAg
IGNvbnRleHRJZGVudGlmaWVyID0gbWFrZU9iamVjdElkZW50aWZpZXI8U2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXJUeXBlPigqaWRlbnRpZmllcik7CisgICAgfQorICAgIHJldHVybiAo
cHJvY2Vzc0lkZW50aWZpZXIgJiYgY29udGV4dElkZW50aWZpZXIpID8gc3RkOjptYWtlX29wdGlv
bmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIHsgY29udGV4dElkZW50aWZpZXIs
IHByb2Nlc3NJZGVudGlmaWVyIH0pIDogc3RkOjpudWxsb3B0OworfQorCiB2b2lkIFNlcnZpY2VX
b3JrZXJDbGllbnRzOjpnZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3Qg
U3RyaW5nJiBpZCwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewotICAgIGF1dG8g
aWRlbnRpZmllciA9IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyOjpmcm9tU3RyaW5nKGlk
KTsKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBzY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
ckZyb21TdHJpbmcoaWQpOwogICAgIGlmICghaWRlbnRpZmllcikgewogICAgICAgICBwcm9taXNl
LT5yZXNvbHZlKCk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRzLmgKaW5kZXggNjM3YWIyMzNlMDk4
ZjFkYzQ5MDQyYzAyODkwYzU5MWEwOWQ0OWIxYS4uZTAxOTVmNDY4NDMyN2NjMTJiMTAzY2Q0N2E5
N2Q4MzdiODY4ZDdhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRzLmgKQEAgLTM5LDcgKzM5LDYgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogY2xhc3MgRGVmZXJyZWRQcm9taXNlOwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dDsKIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YTsKLXN0cnVjdCBTZXJ2aWNlV29y
a2VyQ2xpZW50SWRlbnRpZmllcjsKIAogY2xhc3MgU2VydmljZVdvcmtlckNsaWVudHMgOiBwdWJs
aWMgUmVmQ291bnRlZDxTZXJ2aWNlV29ya2VyQ2xpZW50cz4gewogcHVibGljOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWlu
ZXIuY3BwCmluZGV4IGRjNzkyMjI3MzgwYzljMDM0MmRjZDg5ZjFkZDcwODFlNzk1MTdiZjkuLmE0
OWI1ODlkNGQ5ZjRkZWFkZjIxNWM1MWZjODQ1NWQ0MzQ5Njk0ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5j
cHAKQEAgLTYyNCwxMyArNjI0LDEzIEBAIHZvaWQgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6c3Rv
cCgpCiAgICAgICAgIG5vdGlmeVJlZ2lzdHJhdGlvbklzU2V0dGxlZChyZWdpc3RyYXRpb24pOwog
fQogCi1Eb2N1bWVudE9yV29ya2VySWRlbnRpZmllciBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpj
b250ZXh0SWRlbnRpZmllcigpCitTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyIFNlcnZp
Y2VXb3JrZXJDb250YWluZXI6OmNvbnRleHRJZGVudGlmaWVyKCkKIHsKICAgICBBU1NFUlQobV9j
cmVhdGlvblRocmVhZC5wdHIoKSA9PSAmVGhyZWFkOjpjdXJyZW50KCkpOwogICAgIEFTU0VSVChz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwogICAgIGlmIChpczxTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGU+KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpKQogICAgICAgICByZXR1cm4gZG93bmNh
c3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3BlPigqc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKS50
aHJlYWQoKS5pZGVudGlmaWVyKCk7Ci0gICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50Pigqc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKS5pZGVudGlmaWVyKCk7CisgICAgcmV0dXJuIHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+aWRlbnRpZmllcigpOwogfQogCiBTZXJ2aWNlV29ya2VySm9iKiBT
ZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpqb2IoU2VydmljZVdvcmtlckpvYklkZW50aWZpZXIgaWRl
bnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyQ29udGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlckNvbnRhaW5lci5oCmluZGV4IDg3ZjY4NjA4ZTZjZjA0OTU5YjA2ZDFkYTk0OGI4
OGQwYTA3ZmM1NGMuLjgyODk3MWE2NTdhZjBlMDkwNjAyZDljMWExNzQ0ZjBmNTMyY2ZkNjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29u
dGFpbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJDb250YWluZXIuaApAQCAtMTE0LDcgKzExNCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZXN0
cm95Sm9iKFNlcnZpY2VXb3JrZXJKb2ImKTsKICAgICB2b2lkIHdpbGxTZXR0bGVSZWdpc3RyYXRp
b25Qcm9taXNlKGJvb2wgc3VjY2Vzcyk7CiAKLSAgICBEb2N1bWVudE9yV29ya2VySWRlbnRpZmll
ciBjb250ZXh0SWRlbnRpZmllcigpIGZpbmFsOworICAgIFNlcnZpY2VXb3JrZXJPckNsaWVudElk
ZW50aWZpZXIgY29udGV4dElkZW50aWZpZXIoKSBmaW5hbDsKIAogICAgIFNXQ2xpZW50Q29ubmVj
dGlvbiYgZW5zdXJlU1dDbGllbnRDb25uZWN0aW9uKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGV4dERhdGEuaCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGV4dERhdGEuaAppbmRl
eCA1OWIyZDkxOThmY2JiMGEwMzM3ZjUzYjRiMDMyNzNjNDA4ZTVlYWM5Li4wMWQ4Y2JjZjQ5MjQ5
ODExZTNiM2RjNjM3ZWJjNGI0YjQxM2NjZTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRleHREYXRhLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250ZXh0RGF0YS5oCkBAIC0yOSw3
ICsyOSw3IEBACiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5UmVzcG9uc2VIZWFkZXJz
LmgiCiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5FbWJlZGRlclBvbGljeS5oIgogI2luY2x1ZGUgIlNj
cmlwdEJ1ZmZlci5oIgotI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmgi
CisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaCIKICNpbmNsdWRl
ICJTZXJ2aWNlV29ya2VySWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJKb2JE
YXRhSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRh
LmgiCkBAIC05NCw3ICs5NCw3IEBAIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEgewog
ICAgIGJvb2wgbG9hZGVkRnJvbURpc2s7CiAgICAgc3RkOjpvcHRpb25hbDxMYXN0TmF2aWdhdGlv
bldhc0FwcEluaXRpYXRlZD4gbGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQ7CiAgICAgSGFz
aE1hcDxVUkwsIEltcG9ydGVkU2NyaXB0PiBzY3JpcHRSZXNvdXJjZU1hcDsKLSAgICBzdGQ6Om9w
dGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlk
ZW50aWZpZXI7CisgICAgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
Zmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyOwogCiAgICAgdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YT4g
ZGVjb2RlKERlY29kZXImKTsKQEAgLTE3MCw3ICsxNzAsNyBAQCBzdGQ6Om9wdGlvbmFsPFNlcnZp
Y2VXb3JrZXJDb250ZXh0RGF0YT4gU2VydmljZVdvcmtlckNvbnRleHREYXRhOjpkZWNvZGUoRGVj
b2RlcgogICAgIGlmICghY2VydGlmaWNhdGVJbmZvKQogICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwogCi0gICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGll
bnRJZGVudGlmaWVyPj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyOworICAgIHN0ZDo6b3B0
aW9uYWw8c3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4+IHNl
cnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcjsKICAgICBkZWNvZGVyID4+IHNlcnZpY2VXb3JrZXJQ
YWdlSWRlbnRpZmllcjsKICAgICBpZiAoIXNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcikKICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHAKaW5kZXggODRm
NWYyNzhmZWE5YzQ2NjUwZDIwNGMzYmY4MWIzZTkwZTVmMmZlYS4uNjA3MWQ4NjgxYTljZTgwYjQz
YTM2MTU4M2Y3ZjgxNDRiZmYyNGE5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHAKQEAgLTkwLDcg
KzkwLDcgQEAgUGFnZSogU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjpzZXJ2aWNlV29ya2VyUGFn
ZSgpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgUkVMRUFTRV9BU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwotICAgIGF1dG8qIHNlcnZpY2VXb3JrZXJQYWdlRG9jdW1lbnQgPSBEb2N1bWVu
dDo6YWxsRG9jdW1lbnRzTWFwKCkuZ2V0KG1fY29udGV4dERhdGEuc2VydmljZVdvcmtlclBhZ2VJ
ZGVudGlmaWVyLT5jb250ZXh0SWRlbnRpZmllcik7CisgICAgYXV0byogc2VydmljZVdvcmtlclBh
Z2VEb2N1bWVudCA9IERvY3VtZW50OjphbGxEb2N1bWVudHNNYXAoKS5nZXQoKm1fY29udGV4dERh
dGEuc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKTsKICAgICByZXR1cm4gc2VydmljZVdvcmtl
clBhZ2VEb2N1bWVudCA/IHNlcnZpY2VXb3JrZXJQYWdlRG9jdW1lbnQtPnBhZ2UoKSA6IG51bGxw
dHI7CiB9CiAKQEAgLTEyNSw3ICsxMjUsNyBAQCBTZXJ2aWNlV29ya2VyVGhyZWFkJiBTZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGU6OnRocmVhZCgpCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFNlcnZp
Y2VXb3JrZXJUaHJlYWQmPihXb3JrZXJHbG9iYWxTY29wZTo6dGhyZWFkKCkpOwogfQogCi1TZXJ2
aWNlV29ya2VyQ2xpZW50KiBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6OnNlcnZpY2VXb3JrZXJD
bGllbnQoU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgaWRlbnRpZmllcikKK1NlcnZpY2VX
b3JrZXJDbGllbnQqIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTo6c2VydmljZVdvcmtlckNsaWVu
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAgIHJl
dHVybiBtX2NsaWVudE1hcC5nZXQoaWRlbnRpZmllcik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgKaW5k
ZXggNjdjMjI5MmJjNjlkNjFlOTQzNDQzNDBmZDRjYmI4YmE5ZGQyZTlhYy4uZmFjNDEyYzcwOGEw
ZmJhYzRlYThjNDk2MmU5MDUxY2Q5YTg3ZTE2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaApAQCAtMjcs
NyArMjcsNyBAQAogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogCi0jaW5jbHVkZSAiU2Vy
dmljZVdvcmtlckNsaWVudElkZW50aWZpZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YS5o
IgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaCIKICNpbmNsdWRlICJXb3Jr
ZXJHbG9iYWxTY29wZS5oIgpAQCAtNjIsNyArNjIsNyBAQCBwdWJsaWM6CiAKICAgICBTZXJ2aWNl
V29ya2VyVGhyZWFkJiB0aHJlYWQoKTsKIAotICAgIFNlcnZpY2VXb3JrZXJDbGllbnQqIHNlcnZp
Y2VXb3JrZXJDbGllbnQoU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIpOworICAgIFNlcnZp
Y2VXb3JrZXJDbGllbnQqIHNlcnZpY2VXb3JrZXJDbGllbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dElkZW50aWZpZXIpOwogICAgIHZvaWQgYWRkU2VydmljZVdvcmtlckNsaWVudChTZXJ2aWNlV29y
a2VyQ2xpZW50Jik7CiAgICAgdm9pZCByZW1vdmVTZXJ2aWNlV29ya2VyQ2xpZW50KFNlcnZpY2VX
b3JrZXJDbGllbnQmKTsKIApAQCAtOTAsNyArOTAsNyBAQCBwcml2YXRlOgogICAgIFJlZjxTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uPiBtX3JlZ2lzdHJhdGlvbjsKICAgICBSZWY8U2VydmljZVdv
cmtlcj4gbV9zZXJ2aWNlV29ya2VyOwogICAgIFJlZjxTZXJ2aWNlV29ya2VyQ2xpZW50cz4gbV9j
bGllbnRzOwotICAgIEhhc2hNYXA8U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIsIFNlcnZp
Y2VXb3JrZXJDbGllbnQqPiBtX2NsaWVudE1hcDsKKyAgICBIYXNoTWFwPFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50Kj4gbV9jbGllbnRNYXA7CiAg
ICAgVmVjdG9yPFJlZjxFeHRlbmRhYmxlRXZlbnQ+PiBtX2V4dGVuZGVkRXZlbnRzOwogCiAgICAg
dWludDY0X3QgbV9sYXN0UmVxdWVzdElkZW50aWZpZXIgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYi5oIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2IuaAppbmRleCBhNzc3NGVkYzRl
ZjJkOTBmZGVkMGUwNDI4ZmNhNzQ4NTRmOTVlZDRlLi4zZmViMjBhOGQ4YTg5MjgzZDVjNmEyMmZl
ODllN2RjNTkzZDI2YTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlckpvYi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VySm9iLmgKQEAgLTY3LDcgKzY3LDcgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBmZXRjaFNjcmlwdFdpdGhDb250ZXh0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBGZXRjaE9w
dGlvbnM6OkNhY2hlKTsKIAotICAgIGNvbnN0IERvY3VtZW50T3JXb3JrZXJJZGVudGlmaWVyJiBj
b250ZXh0SWRlbnRpZmllcigpIHsgcmV0dXJuIG1fY29udGV4dElkZW50aWZpZXI7IH0KKyAgICBj
b25zdCBTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyJiBjb250ZXh0SWRlbnRpZmllcigp
IHsgcmV0dXJuIG1fY29udGV4dElkZW50aWZpZXI7IH0KIAogICAgIGJvb2wgY2FuY2VsUGVuZGlu
Z0xvYWQoKTsKIApAQCAtODQsNyArODQsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2NvbXBs
ZXRlZCB7IGZhbHNlIH07CiAKLSAgICBEb2N1bWVudE9yV29ya2VySWRlbnRpZmllciBtX2NvbnRl
eHRJZGVudGlmaWVyOworICAgIFNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXIgbV9jb250
ZXh0SWRlbnRpZmllcjsKICAgICBSZWZQdHI8V29ya2VyU2NyaXB0TG9hZGVyPiBtX3NjcmlwdExv
YWRlcjsKIAogI2lmIEFTU0VSVF9FTkFCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYkNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JDbGllbnQuaAppbmRleCAxOTMyMmU2Y2Y0
OTkwZWY0MGJiMjgwZGQxMTQwYTA5MGQxMDA2MGEyLi4yY2Y1MTQ3OGM5YjFkZjcwZGFiZTBiZTQ2
MWZkOTcwNWMyOTNjYzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlckpvYkNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VySm9iQ2xpZW50LmgKQEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3Mg
U2VydmljZVdvcmtlckpvYkNsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+U2VydmljZVdv
cmtlckpvYkNsaWVudCgpID0gZGVmYXVsdDsKIAotICAgIHZpcnR1YWwgRG9jdW1lbnRPcldvcmtl
cklkZW50aWZpZXIgY29udGV4dElkZW50aWZpZXIoKSA9IDA7CisgICAgdmlydHVhbCBTZXJ2aWNl
V29ya2VyT3JDbGllbnRJZGVudGlmaWVyIGNvbnRleHRJZGVudGlmaWVyKCkgPSAwOwogCiAgICAg
dmlydHVhbCB2b2lkIGpvYkZhaWxlZFdpdGhFeGNlcHRpb24oU2VydmljZVdvcmtlckpvYiYsIGNv
bnN0IEV4Y2VwdGlvbiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgam9iUmVzb2x2ZWRXaXRoUmVn
aXN0cmF0aW9uKFNlcnZpY2VXb3JrZXJKb2ImLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0
YSYmLCBTaG91bGROb3RpZnlXaGVuUmVzb2x2ZWQpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iRGF0YS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYkRhdGEuY3BwCmluZGV4IDIy
NTZlMmYxNWY0NzkxODU1OWRlMmFkMjhiMDgwMThiODQwOTllOTUuLmYwYWE4NmM1ZGE2ZjI3OWZk
N2UwNzJjZTMyNWEzNWNhMGNjOTNkNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9TZXJ2aWNlV29ya2VySm9iRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JEYXRhLmNwcApAQCAtMzAsMjMgKzMwLDIz
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGlubGluZSBTZXJ2aWNlV29ya2Vy
T3JDbGllbnRJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXIoU1dTZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgRG9jdW1l
bnRPcldvcmtlcklkZW50aWZpZXImIGxvY2FsU291cmNlQ29udGV4dCkKK3N0YXRpYyBpbmxpbmUg
U2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciBzZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVu
dGlmaWVyKGNvbnN0IFNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXImIGxvY2FsU291cmNl
Q29udGV4dCkKIHsKLSAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihsb2NhbFNvdXJjZUNvbnRleHQs
IFsmXShEb2N1bWVudElkZW50aWZpZXIgZG9jdW1lbnRJZGVudGlmaWVyKSAtPiBTZXJ2aWNlV29y
a2VyT3JDbGllbnRJZGVudGlmaWVyIHsKLSAgICAgICAgcmV0dXJuIFNlcnZpY2VXb3JrZXJDbGll
bnRJZGVudGlmaWVyIHsgY29ubmVjdGlvbklkZW50aWZpZXIsIGRvY3VtZW50SWRlbnRpZmllciB9
OworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKGxvY2FsU291cmNlQ29udGV4dCwgWyZdKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNvbnRleHRJZGVudGlmaWVyKSAtPiBTZXJ2aWNl
V29ya2VyT3JDbGllbnRJZGVudGlmaWVyIHsKKyAgICAgICAgcmV0dXJuIGNvbnRleHRJZGVudGlm
aWVyOwogICAgIH0sIFsmXShTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRl
bnRpZmllcikgLT4gU2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciB7CiAgICAgICAgIHJl
dHVybiBzZXJ2aWNlV29ya2VySWRlbnRpZmllcjsKICAgICB9KTsKIH0KIAotU2VydmljZVdvcmtl
ckpvYkRhdGE6OlNlcnZpY2VXb3JrZXJKb2JEYXRhKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIgY29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IERvY3VtZW50T3JXb3JrZXJJZGVudGlmaWVy
JiBsb2NhbFNvdXJjZUNvbnRleHQpCi0gICAgOiBzb3VyY2VDb250ZXh0KHNlcnZpY2VXb3JrZXJP
ckNsaWVudElkZW50aWZpZXIoY29ubmVjdGlvbklkZW50aWZpZXIsIGxvY2FsU291cmNlQ29udGV4
dCkpCitTZXJ2aWNlV29ya2VySm9iRGF0YTo6U2VydmljZVdvcmtlckpvYkRhdGEoU1dTZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgU2VydmljZVdv
cmtlck9yQ2xpZW50SWRlbnRpZmllciYgbG9jYWxTb3VyY2VDb250ZXh0KQorICAgIDogc291cmNl
Q29udGV4dChzZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyKGxvY2FsU291cmNlQ29udGV4
dCkpCiAgICAgLCBtX2lkZW50aWZpZXIgeyBjb25uZWN0aW9uSWRlbnRpZmllciwgU2VydmljZVdv
cmtlckpvYklkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFkU2FmZSgpIH0KIHsKIH0KIAotU2Vydmlj
ZVdvcmtlckpvYkRhdGE6OlNlcnZpY2VXb3JrZXJKb2JEYXRhKElkZW50aWZpZXIgaWRlbnRpZmll
ciwgY29uc3QgRG9jdW1lbnRPcldvcmtlcklkZW50aWZpZXImIGxvY2FsU291cmNlQ29udGV4dCkK
LSAgICA6IHNvdXJjZUNvbnRleHQoc2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllcihpZGVu
dGlmaWVyLmNvbm5lY3Rpb25JZGVudGlmaWVyLCBsb2NhbFNvdXJjZUNvbnRleHQpKQorU2Vydmlj
ZVdvcmtlckpvYkRhdGE6OlNlcnZpY2VXb3JrZXJKb2JEYXRhKElkZW50aWZpZXIgaWRlbnRpZmll
ciwgY29uc3QgU2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciYgbG9jYWxTb3VyY2VDb250
ZXh0KQorICAgIDogc291cmNlQ29udGV4dChzZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVy
KGxvY2FsU291cmNlQ29udGV4dCkpCiAgICAgLCBtX2lkZW50aWZpZXIgeyBpZGVudGlmaWVyIH0K
IHsKIH0KQEAgLTU4LDEwICs1OCwxMCBAQCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5IFNl
cnZpY2VXb3JrZXJKb2JEYXRhOjpyZWdpc3RyYXRpb25LZXkoKSBjb25zdAogICAgIHJldHVybiB7
IFNlY3VyaXR5T3JpZ2luRGF0YSB7IHRvcE9yaWdpbiB9LCBXVEZNb3ZlKHNjb3BlKSB9OwogfQog
Ci1zdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiBTZXJ2aWNlV29y
a2VySm9iRGF0YTo6c2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKCkgY29uc3QKK3N0ZDo6b3B0
aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IFNlcnZpY2VXb3JrZXJKb2JE
YXRhOjpzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIoKSBjb25zdAogewotICAgIGlmIChpc0Zy
b21TZXJ2aWNlV29ya2VyUGFnZSAmJiBzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFNlcnZpY2VXb3Jr
ZXJDbGllbnRJZGVudGlmaWVyPihzb3VyY2VDb250ZXh0KSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6
Z2V0PFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPihzb3VyY2VDb250ZXh0KTsKKyAgICBp
ZiAoaXNGcm9tU2VydmljZVdvcmtlclBhZ2UgJiYgc3RkOjpob2xkc19hbHRlcm5hdGl2ZTxTY3Jp
cHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4oc291cmNlQ29udGV4dCkpCisgICAgICAgIHJl
dHVybiBzdGQ6OmdldDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4oc291cmNlQ29u
dGV4dCk7CiAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJKb2JEYXRhLmggYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYkRhdGEuaAppbmRleCBmMDcz
YmZiODE3NTA4ZWZlZTM5NTg0NDI4NjQ4NDljYmNjNTI4OTI4Li5kZmJhZGEzNWUzZDQ5MDc1M2Ez
MTIwMTY2NWY5YWFkNTVlM2YwZjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlckpvYkRhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckpvYkRhdGEuaApAQCAtMjcsOCArMjcsOCBAQAogCiAj
aWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogCisjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKLSNpbmNs
dWRlICJTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNlcnZpY2VX
b3JrZXJKb2JEYXRhSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJKb2JUeXBl
LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleS5oIgpAQCAtNDAsMTMg
KzQwLDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IFNlcnZpY2VXb3JrZXJKb2JE
YXRhIHsKICAgICB1c2luZyBJZGVudGlmaWVyID0gU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlm
aWVyOwotICAgIFNlcnZpY2VXb3JrZXJKb2JEYXRhKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIsIGNvbnN0IERvY3VtZW50T3JXb3JrZXJJZGVudGlmaWVyJiBzb3VyY2VDb250ZXh0KTsKLSAg
ICBTZXJ2aWNlV29ya2VySm9iRGF0YShJZGVudGlmaWVyLCBjb25zdCBEb2N1bWVudE9yV29ya2Vy
SWRlbnRpZmllciYgc291cmNlQ29udGV4dCk7CisgICAgU2VydmljZVdvcmtlckpvYkRhdGEoU1dT
ZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlck9yQ2xpZW50SWRl
bnRpZmllciYgc291cmNlQ29udGV4dCk7CisgICAgU2VydmljZVdvcmtlckpvYkRhdGEoSWRlbnRp
ZmllciwgY29uc3QgU2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciYgc291cmNlQ29udGV4
dCk7CiAKICAgICBTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlm
aWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyLmNvbm5lY3Rpb25JZGVudGlmaWVyOyB9
CiAKICAgICBib29sIGlzRXF1aXZhbGVudChjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYpIGNv
bnN0OwotICAgIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+IHNl
cnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcigpIGNvbnN0OworICAgIHN0ZDo6b3B0aW9uYWw8U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmll
cigpIGNvbnN0OwogCiAgICAgVVJMIHNjcmlwdFVSTDsKICAgICBVUkwgY2xpZW50Q3JlYXRpb25V
Ukw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlclR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
clR5cGVzLmgKaW5kZXggZDBkZmIyYWMxM2U1N2Q0YWIzYTI5YTk4OTNiODJhMzg1NDQ5YmFlMC4u
N2QwMzhjMmYzODNjYjU0ZjRhNDdiZjBiMjdjMDBhN2Q3OGZhYTUxNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJUeXBlcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyVHlwZXMuaApAQCAtMjcs
OCArMjcsOCBAQAogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogCi0jaW5jbHVkZSAiRG9j
dW1lbnRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiUHJvY2Vzc0lkZW50aWZpZXIuaCIKKyNpbmNs
dWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSA8dmFyaWFudD4KICNpbmNsdWRlIDx3dGYv
T2JqZWN0SWRlbnRpZmllci5oPgpAQCAtMzcsNyArMzcsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIHN0cnVjdCBTZXJ2aWNlV29ya2VyRGF0YTsKIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ2xpZW50
RGF0YTsKLXN0cnVjdCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcjsKIAogZW51bSBjbGFz
cyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uU3RhdGUgOiB1aW50OF90IHsKICAgICBJbnN0YWxs
aW5nID0gMCwKQEAgLTc1LDEwICs3NCwxMCBAQCB1c2luZyBTV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb25JZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxTV1NlcnZlclRvQ29udGV4dAogdXNp
bmcgU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllclR5cGUgPSBQcm9jZXNzSWRlbnRpZmllclR5
cGU7CiB1c2luZyBTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmll
cjxTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyVHlwZT47CiAKLXVzaW5nIERvY3VtZW50T3JX
b3JrZXJJZGVudGlmaWVyID0gc3RkOjp2YXJpYW50PERvY3VtZW50SWRlbnRpZmllciwgU2Vydmlj
ZVdvcmtlcklkZW50aWZpZXI+OwotCiB1c2luZyBTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhID0g
c3RkOjp2YXJpYW50PFNlcnZpY2VXb3JrZXJEYXRhLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT47
Ci11c2luZyBTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyID0gc3RkOjp2YXJpYW50PFNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj47CisK
Ky8vIEZJWE1FOiBJdCBzaG91bGQgYmUgcG9zc2libGUgdG8gcmVwbGFjZSBTZXJ2aWNlV29ya2Vy
T3JDbGllbnRJZGVudGlmaWVyIHdpdGggU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIg
ZW50aXJlbHkuCit1c2luZyBTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyID0gc3RkOjp2
YXJpYW50PFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllcj47CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmNw
cAppbmRleCBlMjA3NDM3Zjg3NzIyNGRmNzUxMzZkMjZlMDhiNjAyNjg5NjcxYjI4Li5mYWVmOTRh
NzVhOGQ3MjE5ODZmNTc5ZjNiNjU5MDIzMzdmOGVlZjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmNw
cApAQCAtMTc5LDcgKzE3OSw3IEBAIHZvaWQgV29ya2VyU1dDbGllbnRDb25uZWN0aW9uOjpyZWdp
c3RlclNlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgU2VjdXJpdHlPcmlnaW4mCiAgICAgfSk7CiB9
CiAKLXZvaWQgV29ya2VyU1dDbGllbnRDb25uZWN0aW9uOjp1bnJlZ2lzdGVyU2VydmljZVdvcmtl
ckNsaWVudChEb2N1bWVudElkZW50aWZpZXIpCit2b2lkIFdvcmtlclNXQ2xpZW50Q29ubmVjdGlv
bjo6dW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CkBAIC0xOTIsNyArMTky
LDcgQEAgdm9pZCBXb3JrZXJTV0NsaWVudENvbm5lY3Rpb246OmZpbmlzaEZldGNoaW5nU2NyaXB0
SW5TZXJ2ZXIoY29uc3QgU2VydmljZVdvcmtlckYKICAgICB9KTsKIH0KIAotdm9pZCBXb3JrZXJT
V0NsaWVudENvbm5lY3Rpb246OnNjaGVkdWxlSm9iKERvY3VtZW50T3JXb3JrZXJJZGVudGlmaWVy
IGlkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBkYXRhKQordm9pZCBXb3Jr
ZXJTV0NsaWVudENvbm5lY3Rpb246OnNjaGVkdWxlSm9iKFNlcnZpY2VXb3JrZXJPckNsaWVudElk
ZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmIGRhdGEpCiB7
CiAgICAgY2FsbE9uTWFpblRocmVhZChbaWRlbnRpZmllciwgZGF0YSA9IGNyb3NzVGhyZWFkQ29w
eShkYXRhKV0oKSBtdXRhYmxlIHsKICAgICAgICAgYXV0byYgY29ubmVjdGlvbiA9IFNlcnZpY2VX
b3JrZXJQcm92aWRlcjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlckNvbm5lY3Rpb24oKTsKQEAg
LTIwMCw3ICsyMDAsNyBAQCB2b2lkIFdvcmtlclNXQ2xpZW50Q29ubmVjdGlvbjo6c2NoZWR1bGVK
b2IoRG9jdW1lbnRPcldvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcgogICAgIH0pOwogfQogCi12
b2lkIFdvcmtlclNXQ2xpZW50Q29ubmVjdGlvbjo6c2NoZWR1bGVVbnJlZ2lzdGVySm9iSW5TZXJ2
ZXIoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgcmVnaXN0cmF0aW9uSWRlbnRp
ZmllciwgRG9jdW1lbnRPcldvcmtlcklkZW50aWZpZXIgY29udGV4dElkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8Ym9vbD4mJik+JiYgY2FsbGJhY2spCit2b2lk
IFdvcmtlclNXQ2xpZW50Q29ubmVjdGlvbjo6c2NoZWR1bGVVbnJlZ2lzdGVySm9iSW5TZXJ2ZXIo
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgcmVnaXN0cmF0aW9uSWRlbnRpZmll
ciwgU2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciBjb250ZXh0SWRlbnRpZmllciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjxib29sPiYmKT4mJiBjYWxsYmFjaykKIHsK
ICAgICB1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciA9ICsrbV9sYXN0UmVxdWVzdElkZW50aWZp
ZXI7CiAgICAgbV91bnJlZ2lzdGVyUmVxdWVzdHMuYWRkKHJlcXVlc3RJZGVudGlmaWVyLCBXVEZN
b3ZlKGNhbGxiYWNrKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmgKaW5kZXggNzc3ZmFjNzMxYjVjZWJkYmE0
YjZiM2ZkNTZhZjdlNzcxYzBkZmQ0My4uOTY5OTRiZDk1NmQxY2JmMTViYTNlMTliY2YwNzEzMzM5
Zjk5MWUzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1dvcmtl
clNXQ2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9Xb3JrZXJTV0NsaWVudENvbm5lY3Rpb24uaApAQCAtNTIsMTEgKzUyLDExIEBAIHByaXZhdGU6
CiAgICAgU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllcigpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgbWF5SGF2ZVNlcnZpY2VXb3JrZXJSZWdpc3Rl
cmVkRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYpIGNvbnN0IGZpbmFsOwogICAg
IHZvaWQgcmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0
b3BPcmlnaW4sIGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnREYXRhJiwgY29uc3Qgc3RkOjpvcHRp
b25hbDxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcj4mLCBjb25zdCBTdHJpbmcm
IHVzZXJBZ2VudCkgZmluYWw7Ci0gICAgdm9pZCB1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVu
dChEb2N1bWVudElkZW50aWZpZXIpIGZpbmFsOworICAgIHZvaWQgdW5yZWdpc3RlclNlcnZpY2VX
b3JrZXJDbGllbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpIGZpbmFsOwogICAg
IHZvaWQgZmluaXNoRmV0Y2hpbmdTY3JpcHRJblNlcnZlcihjb25zdCBTZXJ2aWNlV29ya2VyRmV0
Y2hSZXN1bHQmKSBmaW5hbDsKICAgICB2b2lkIHNjaGVkdWxlSm9iSW5TZXJ2ZXIoY29uc3QgU2Vy
dmljZVdvcmtlckpvYkRhdGEmKSBmaW5hbDsKLSAgICB2b2lkIHNjaGVkdWxlSm9iKERvY3VtZW50
T3JXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYpIGZpbmFsOwot
ICAgIHZvaWQgc2NoZWR1bGVVbnJlZ2lzdGVySm9iSW5TZXJ2ZXIoU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbklkZW50aWZpZXIsIERvY3VtZW50T3JXb3JrZXJJZGVudGlmaWVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPGJvb2w+JiYpPiYmKSBmaW5hbDsKKyAgICB2b2lkIHNj
aGVkdWxlSm9iKFNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VX
b3JrZXJKb2JEYXRhJikgZmluYWw7CisgICAgdm9pZCBzY2hlZHVsZVVucmVnaXN0ZXJKb2JJblNl
cnZlcihTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgU2VydmljZVdvcmtlck9y
Q2xpZW50SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjxib29s
PiYmKT4mJikgZmluYWw7CiAgICAgdm9pZCBzdWJzY3JpYmVUb1B1c2hTZXJ2aWNlKFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGFwcGxp
Y2F0aW9uU2VydmVyS2V5LCBTdWJzY3JpYmVUb1B1c2hTZXJ2aWNlQ2FsbGJhY2smJikgZmluYWw7
CiAgICAgdm9pZCB1bnN1YnNjcmliZUZyb21QdXNoU2VydmljZShTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uSWRlbnRpZmllciwgVW5zdWJzY3JpYmVGcm9tUHVzaFNlcnZpY2VDYWxsYmFjayYmKSBm
aW5hbDsKICAgICB2b2lkIGdldFB1c2hTdWJzY3JpcHRpb24oU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbklkZW50aWZpZXIsIEdldFB1c2hTdWJzY3JpcHRpb25DYWxsYmFjayYmKSBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NXQ29udGV4
dE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dD
b250ZXh0TWFuYWdlci5jcHAKaW5kZXggNTEwNDUzNGU1NWY5MWVhYWM2MjQxMTcyYzhhODIxMThi
M2Y4YTRkYy4uYTFkY2RlNWE5NjUwM2JiNTYyZDRiYzNmNjk5ODcwOTI0NWNkOWM1NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dDb250ZXh0TWFu
YWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU1dD
b250ZXh0TWFuYWdlci5jcHAKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRl
ckNsaWVudC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZXNzYWdlV2l0aE1l
c3NhZ2VQb3J0cy5oIgotI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmgi
CiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0
L1NXQ29udGV4dE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NXQ29udGV4dE1hbmFnZXIuaAppbmRleCBjNzY1YzU3ZDIwMjNmMTRjYWJiYmRiYjkwYjY4
M2VhNjU0NTcwN2NiLi5mZTAwODMwOTgyMTc5YWQyYjQ0ODY0NjlhNjg2ZDU4NmNjNDU2MzMxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TV0NvbnRl
eHRNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U1dDb250ZXh0TWFuYWdlci5oCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICAgICAgdmly
dHVhbCB+Q29ubmVjdGlvbigpIHsgfQogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBlc3RhYmxpc2hD
b25uZWN0aW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgPSAwOwotICAgICAgICB2aXJ0
dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgU2VydmljZVdv
cmtlckNsaWVudElkZW50aWZpZXImIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgY29uc3QgTWVzc2Fn
ZVdpdGhNZXNzYWdlUG9ydHMmLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzb3VyY2UsIGNvbnN0
IFN0cmluZyYgc291cmNlT3JpZ2luKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwb3N0TWVz
c2FnZVRvU2VydmljZVdvcmtlckNsaWVudChjb25zdCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllciYgZGVzdGluYXRpb25JZGVudGlmaWVyLCBjb25zdCBNZXNzYWdlV2l0aE1lc3NhZ2VQ
b3J0cyYsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZSwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VPcmlnaW4pID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHNlcnZpY2VXb3JrZXJTdGFydGVk
KHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiwgU2VydmljZVdv
cmtlcklkZW50aWZpZXIsIGJvb2wgZG9lc0hhbmRsZUZldGNoKSA9IDA7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBzZXJ2aWNlV29ya2VyRmFpbGVkVG9TdGFydChzdGQ6Om9wdGlvbmFsPFNlcnZpY2VX
b3JrZXJKb2JEYXRhSWRlbnRpZmllcj4sIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaEluc3Rh
bGwoc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXI+LCBTZXJ2aWNl
V29ya2VySWRlbnRpZmllciwgYm9vbCB3YXNTdWNjZXNzZnVsKSA9IDA7CkBAIC02Miw3ICs2Miw3
IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIHNldFNjcmlwdFJlc291cmNlKFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBVUkwmLCBjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4
dERhdGE6OkltcG9ydGVkU2NyaXB0JikgPSAwOwogCiAgICAgICAgIHVzaW5nIEZpbmRDbGllbnRC
eUlkZW50aWZpZXJDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8
c3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4+JiYpPjsKLSAgICAgICAgdmly
dHVhbCB2b2lkIGZpbmRDbGllbnRCeUlkZW50aWZpZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIs
IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLCBGaW5kQ2xpZW50QnlJZGVudGlmaWVyQ2Fs
bGJhY2smJikgPSAwOworICAgICAgICB2aXJ0dWFsIHZvaWQgZmluZENsaWVudEJ5SWRlbnRpZmll
cihTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZp
ZXIsIEZpbmRDbGllbnRCeUlkZW50aWZpZXJDYWxsYmFjayYmKSA9IDA7CiAgICAgICAgIHZpcnR1
YWwgdm9pZCBtYXRjaEFsbChTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgY29uc3QgU2VydmljZVdv
cmtlckNsaWVudFF1ZXJ5T3B0aW9ucyYsIFNlcnZpY2VXb3JrZXJDbGllbnRzTWF0Y2hBbGxDYWxs
YmFjayYmKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBjbGFpbShTZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJikg
PSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyRmV0Y2guY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L2NvbnRleHQvU2VydmljZVdvcmtlckZldGNoLmNwcAppbmRleCBlNmFiNzdkZGM5MmIyN2U3YTEy
MDQwN2QxMjI3Zjk0MjdiMWI3NWEwLi40ZGE5Y2MwMWE2YzZmM2JmYjBhMjgzM2M5ZDVlMzRkNzUx
YWYyNzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyRmV0Y2guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5jcHAKQEAgLTM1LDggKzM1LDggQEAKICNp
bmNsdWRlICJGZXRjaFJlc3BvbnNlLmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgog
I2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlci5oIgotI2luY2x1ZGUg
IlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclRocmVhZC5oIgogI2luY2x1
ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCkBAIC0xMzksNyArMTM5LDcgQEAgc3RhdGljIHZvaWQg
cHJvY2Vzc1Jlc3BvbnNlKFJlZjxDbGllbnQ+JiYgY2xpZW50LCBFeHBlY3RlZDxSZWY8RmV0Y2hS
ZXNwb25zZT4sIHMKICAgICB9KTsKIH0KIAotdm9pZCBkaXNwYXRjaEZldGNoRXZlbnQoUmVmPENs
aWVudD4mJiBjbGllbnQsIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSYgZ2xvYmFsU2NvcGUsIHN0
ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+IGNsaWVudElkLCBSZXNv
dXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTdHJpbmcmJiByZWZlcnJlciwgRmV0Y2hPcHRpb25zJiYg
b3B0aW9ucykKK3ZvaWQgZGlzcGF0Y2hGZXRjaEV2ZW50KFJlZjxDbGllbnQ+JiYgY2xpZW50LCBT
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUmIGdsb2JhbFNjb3BlLCBzdGQ6Om9wdGlvbmFsPFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBjbGllbnRJZCwgUmVzb3VyY2VSZXF1ZXN0JiYg
cmVxdWVzdCwgU3RyaW5nJiYgcmVmZXJyZXIsIEZldGNoT3B0aW9ucyYmIG9wdGlvbnMpCiB7CiAg
ICAgYXV0byByZXF1ZXN0SGVhZGVycyA9IEZldGNoSGVhZGVyczo6Y3JlYXRlKEZldGNoSGVhZGVy
czo6R3VhcmQ6OkltbXV0YWJsZSwgSFRUUEhlYWRlck1hcCB7IHJlcXVlc3QuaHR0cEhlYWRlckZp
ZWxkcygpIH0pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
Y29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5oCmluZGV4IGMyNzM1ZGU4N2Y4YmVkMTg1
NzdiZmNjNmM4OWJhYmY0MzZjZjJmMTMuLmZjNWE3MjU4ZTQ3ZTY3YWRkZGZiMTYyMTlkNDhmZmU2
NGE1OGE5YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNp
ZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllci5oIgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYvVGhy
ZWFkU2FmZVJlZkNvdW50ZWQuaD4KIApAQCAtMzgsNyArMzksNiBAQCBjbGFzcyBGb3JtRGF0YTsK
IGNsYXNzIFJlc291cmNlRXJyb3I7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBjbGFzcyBSZXNv
dXJjZVJlc3BvbnNlOwotc3RydWN0IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyOwogY2xh
c3MgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOwogY2xhc3MgU2VydmljZVdvcmtlckdsb2JhbFNj
b3BlOwogY2xhc3MgU2hhcmVkQnVmZmVyOwpAQCAtNTksNyArNTksNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlKCkgPSAwOwogfTsKIAotdm9p
ZCBkaXNwYXRjaEZldGNoRXZlbnQoUmVmPENsaWVudD4mJiwgU2VydmljZVdvcmtlckdsb2JhbFNj
b3BlJiwgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4sIFJlc291
cmNlUmVxdWVzdCYmLCBTdHJpbmcmJiByZWZlcnJlciwgRmV0Y2hPcHRpb25zJiYpOwordm9pZCBk
aXNwYXRjaEZldGNoRXZlbnQoUmVmPENsaWVudD4mJiwgU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
Jiwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4sIFJlc291
cmNlUmVxdWVzdCYmLCBTdHJpbmcmJiByZWZlcnJlciwgRmV0Y2hPcHRpb25zJiYpOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcAppbmRleCBm
NmRkZjg4YmMzMjM0YzQ1ODllMzQyYWVmNzIxNTI3MmE4ODhmNTAyLi4wMDY5ODhjNzczZDM2ODdh
NGQ4OWU3NTA4MGY1NjNlN2RiOWZkMDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcApA
QCAtMTIyLDcgKzEyMiw3IEBAIHZvaWQgU2VydmljZVdvcmtlclRocmVhZDo6cnVuRXZlbnRMb29w
KCkKICAgICBXb3JrZXJUaHJlYWQ6OnJ1bkV2ZW50TG9vcCgpOwogfQogCi12b2lkIFNlcnZpY2VX
b3JrZXJUaHJlYWQ6OnF1ZXVlVGFza1RvRmlyZUZldGNoRXZlbnQoUmVmPFNlcnZpY2VXb3JrZXJG
ZXRjaDo6Q2xpZW50PiYmIGNsaWVudCwgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50
SWRlbnRpZmllcj4mJiBjbGllbnRJZCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU3RyaW5n
JiYgcmVmZXJyZXIsIEZldGNoT3B0aW9ucyYmIG9wdGlvbnMpCit2b2lkIFNlcnZpY2VXb3JrZXJU
aHJlYWQ6OnF1ZXVlVGFza1RvRmlyZUZldGNoRXZlbnQoUmVmPFNlcnZpY2VXb3JrZXJGZXRjaDo6
Q2xpZW50PiYmIGNsaWVudCwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllcj4mJiBjbGllbnRJZCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU3RyaW5nJiYg
cmVmZXJyZXIsIEZldGNoT3B0aW9ucyYmIG9wdGlvbnMpCiB7CiAgICAgUmVmIHNlcnZpY2VXb3Jr
ZXJHbG9iYWxTY29wZSA9IGRvd25jYXN0PFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oKmdsb2Jh
bFNjb3BlKCkpOwogICAgIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS0+ZXZlbnRMb29wKCkucXVl
dWVUYXNrKFRhc2tTb3VyY2U6OkRPTU1hbmlwdWxhdGlvbiwgW3NlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZSwgY2xpZW50ID0gV1RGTW92ZShjbGllbnQpLCBjbGllbnRJZCwgcmVxdWVzdCA9IFdURk1v
dmUocmVxdWVzdCksIHJlZmVycmVyID0gV1RGTW92ZShyZWZlcnJlciksIG9wdGlvbnMgPSBXVEZN
b3ZlKG9wdGlvbnMpXSgpIG11dGFibGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oCmluZGV4IDA2
ODFiMzNjZmNjYWJmMzkwMGE3NDdmNzBlMTE1ODcyMTA4YzAwYmMuLmI0ODMxYTBjMDMzYTIxMGIx
NTlmYWExYzFkM2MxZDQwYzAzZGE2MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmgKQEAgLTI3
LDYgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAorI2luY2x1ZGUgIlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtl
ckNvbnRleHREYXRhLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckZldGNoLmgiCiAjaW5jbHVk
ZSAiU2VydmljZVdvcmtlcklkZW50aWZpZXIuaCIKQEAgLTQ0LDcgKzQ1LDYgQEAgY2xhc3MgTWVz
c2FnZVBvcnRDaGFubmVsOwogY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogY2xhc3MgV29y
a2VyT2JqZWN0UHJveHk7CiBzdHJ1Y3QgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHM7Ci1zdHJ1Y3Qg
U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI7CiAKIGNsYXNzIFNlcnZpY2VXb3JrZXJUaHJl
YWQgOiBwdWJsaWMgV29ya2VyVGhyZWFkLCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8U2VydmljZVdv
cmtlclRocmVhZCwgV2Vha1B0ckZhY3RvcnlJbml0aWFsaXphdGlvbjo6RWFnZXI+IHsKIHB1Ymxp
YzoKQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgogICAgIHZvaWQgd2lsbFBvc3RUYXNrVG9GaXJl
QWN0aXZhdGVFdmVudCgpOwogICAgIHZvaWQgd2lsbFBvc3RUYXNrVG9GaXJlTWVzc2FnZUV2ZW50
KCk7CiAKLSAgICB2b2lkIHF1ZXVlVGFza1RvRmlyZUZldGNoRXZlbnQoUmVmPFNlcnZpY2VXb3Jr
ZXJGZXRjaDo6Q2xpZW50PiYmLCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVu
dGlmaWVyPiYmLCBSZXNvdXJjZVJlcXVlc3QmJiwgU3RyaW5nJiYgcmVmZXJyZXIsIEZldGNoT3B0
aW9ucyYmKTsKKyAgICB2b2lkIHF1ZXVlVGFza1RvRmlyZUZldGNoRXZlbnQoUmVmPFNlcnZpY2VX
b3JrZXJGZXRjaDo6Q2xpZW50PiYmLCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyPiYmLCBSZXNvdXJjZVJlcXVlc3QmJiwgU3RyaW5nJiYgcmVmZXJyZXIsIEZl
dGNoT3B0aW9ucyYmKTsKICAgICB2b2lkIHF1ZXVlVGFza1RvUG9zdE1lc3NhZ2UoTWVzc2FnZVdp
dGhNZXNzYWdlUG9ydHMmJiwgU2VydmljZVdvcmtlck9yQ2xpZW50RGF0YSYmIHNvdXJjZURhdGEp
OwogICAgIHZvaWQgcXVldWVUYXNrVG9GaXJlSW5zdGFsbEV2ZW50KCk7CiAgICAgdm9pZCBxdWV1
ZVRhc2tUb0ZpcmVBY3RpdmF0ZUV2ZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFBy
b3h5LmNwcAppbmRleCAwNzNiNDJlOTM2ZWJmZGUxOWI5NWVhZjUxMDU4NTBlMjRhOWI5NGNkLi41
YzQ0ZGU1NmQzZWE3YTgwMTE3NjFhNTAyYTk4YjZjNWUwODk3MDM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZp
Y2VXb3JrZXJUaHJlYWRQcm94eS5jcHAKQEAgLTQwLDggKzQwLDggQEAKICNpbmNsdWRlICJMb2dn
aW5nLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDbGllbnREYXRhLmgiCi0jaW5jbHVk
ZSAiU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldvcmtl
ckdsb2JhbFNjb3BlLmgiCkBAIC0yMTQsNyArMjE0LDcgQEAgdm9pZCBTZXJ2aWNlV29ya2VyVGhy
ZWFkUHJveHk6Om5vdGlmeU5ldHdvcmtTdGF0ZUNoYW5nZShib29sIGlzT25saW5lKQogICAgIH0s
IFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwogfQogCi12b2lkIFNlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eTo6c3RhcnRGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBSZWY8U2Vy
dmljZVdvcmtlckZldGNoOjpDbGllbnQ+JiYgY2xpZW50LCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VX
b3JrZXJDbGllbnRJZGVudGlmaWVyPiYmIGNsaWVudElkLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1
ZXN0LCBTdHJpbmcmJiByZWZlcnJlciwgRmV0Y2hPcHRpb25zJiYgb3B0aW9ucykKK3ZvaWQgU2Vy
dmljZVdvcmtlclRocmVhZFByb3h5OjpzdGFydEZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZp
ZXIsIFJlZjxTZXJ2aWNlV29ya2VyRmV0Y2g6OkNsaWVudD4mJiBjbGllbnQsIHN0ZDo6b3B0aW9u
YWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+JiYgY2xpZW50SWQsIFJlc291cmNl
UmVxdWVzdCYmIHJlcXVlc3QsIFN0cmluZyYmIHJlZmVycmVyLCBGZXRjaE9wdGlvbnMmJiBvcHRp
b25zKQogewogICAgIFJFTEVBU0VfTE9HKFNlcnZpY2VXb3JrZXIsICJTZXJ2aWNlV29ya2VyVGhy
ZWFkUHJveHk6OnN0YXJ0RmV0Y2ggJWxsdSIsIGZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vy
dmljZVdvcmtlclRocmVhZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
Y29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaAppbmRleCBjZWZiYzVlMTYzNjhjMzhh
ODNhN2UxMTVmZDU3NDcyY2FmNWM1Yjk4Li45NDVmZWU4OTZkNjVlZmYxODlmYTQ1MzE0ZTc4ZmFj
MDQ3ZTEwYWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29u
dGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaApAQCAtNzIsNyAr
NzIsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG5vdGlmeU5ldHdvcmtT
dGF0ZUNoYW5nZShib29sIGlzT25saW5lKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3Rh
cnRGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIsIFJl
ZjxTZXJ2aWNlV29ya2VyRmV0Y2g6OkNsaWVudD4mJiwgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29y
a2VyQ2xpZW50SWRlbnRpZmllcj4mJiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFN0cmluZyYmIHJlZmVy
cmVyLCBGZXRjaE9wdGlvbnMmJik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdGFydEZldGNo
KFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciwgUmVmPFNlcnZp
Y2VXb3JrZXJGZXRjaDo6Q2xpZW50PiYmLCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRJZGVudGlmaWVyPiYmLCBSZXNvdXJjZVJlcXVlc3QmJiwgU3RyaW5nJiYgcmVmZXJyZXIs
IEZldGNoT3B0aW9ucyYmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNhbmNlbEZldGNoKFNX
U2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllcik7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBjb250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKFNXU2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCByZW1vdmVGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50
aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NX
U2VydmVyLmNwcAppbmRleCBhZTYxYjc5YzFhODY1MTU3ODY0N2UxM2M5MDY1Yzc2OWJjN2EyMjI1
Li4zZWE2OGZkZjlmM2VmNGRhNzgwY2UwYWYxYjIwODM2MDE5YjcwMjEzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmNwcApAQCAtOTEs
NyArOTEsNyBAQCBTV1NlcnZlcldvcmtlciogU1dTZXJ2ZXI6OndvcmtlckJ5SUQoU2VydmljZVdv
cmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikgY29uc3QKICAgICByZXR1cm4gd29ya2VyOwogfQog
Ci1zdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiBTV1NlcnZlcjo6c2Vydmlj
ZVdvcmtlckNsaWVudFdpdGhPcmlnaW5CeUlEKGNvbnN0IENsaWVudE9yaWdpbiYgY2xpZW50T3Jp
Z2luLCBjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYgY2xpZW50SWRlbnRpZmll
cikgY29uc3QKK3N0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudERhdGE+IFNXU2VydmVy
OjpzZXJ2aWNlV29ya2VyQ2xpZW50V2l0aE9yaWdpbkJ5SUQoY29uc3QgQ2xpZW50T3JpZ2luJiBj
bGllbnRPcmlnaW4sIGNvbnN0IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyJiBjbGll
bnRJZGVudGlmaWVyKSBjb25zdAogewogICAgIGF1dG8gaXRlcmF0b3IgPSBtX2NsaWVudElkZW50
aWZpZXJzUGVyT3JpZ2luLmZpbmQoY2xpZW50T3JpZ2luKTsKICAgICBpZiAoaXRlcmF0b3IgPT0g
bV9jbGllbnRJZGVudGlmaWVyc1Blck9yaWdpbi5lbmQoKSkKQEAgLTQxMCw3ICs0MTAsNyBAQCB2
b2lkIFNXU2VydmVyOjpzY2hlZHVsZUpvYihTZXJ2aWNlV29ya2VySm9iRGF0YSYmIGpvYkRhdGEp
CiAgICAgfSk7CiB9CiAKLXZvaWQgU1dTZXJ2ZXI6OnNjaGVkdWxlVW5yZWdpc3RlckpvYihTZXJ2
aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXIgam9iRGF0YUlkZW50aWZpZXIsIFNXU2VydmVyUmVn
aXN0cmF0aW9uJiByZWdpc3RyYXRpb24sIERvY3VtZW50T3JXb3JrZXJJZGVudGlmaWVyIGNvbnRl
eHRJZGVudGlmaWVyLCBVUkwmJiBjbGllbnRDcmVhdGlvblVSTCkKK3ZvaWQgU1dTZXJ2ZXI6OnNj
aGVkdWxlVW5yZWdpc3RlckpvYihTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXIgam9iRGF0
YUlkZW50aWZpZXIsIFNXU2VydmVyUmVnaXN0cmF0aW9uJiByZWdpc3RyYXRpb24sIFNlcnZpY2VX
b3JrZXJPckNsaWVudElkZW50aWZpZXIgY29udGV4dElkZW50aWZpZXIsIFVSTCYmIGNsaWVudENy
ZWF0aW9uVVJMKQogewogICAgIFNlcnZpY2VXb3JrZXJKb2JEYXRhIGpvYkRhdGEgeyBqb2JEYXRh
SWRlbnRpZmllciwgY29udGV4dElkZW50aWZpZXIgfTsKICAgICBqb2JEYXRhLmNsaWVudENyZWF0
aW9uVVJMID0gV1RGTW92ZShjbGllbnRDcmVhdGlvblVSTCk7CkBAIC02NjcsNyArNjY3LDcgQEAg
dm9pZCBTV1NlcnZlcjo6cmVtb3ZlQ2xpZW50U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbihDb25u
ZWN0aW9uJiBjb25uZWN0aW9uLCBTZXIKICAgICAgICAgcmVnaXN0cmF0aW9uLT5yZW1vdmVDbGll
bnRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKGNvbm5lY3Rpb24uaWRlbnRpZmllcigpKTsKIH0K
IAotdm9pZCBTV1NlcnZlcjo6dXBkYXRlV29ya2VyKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRh
SWRlbnRpZmllciYgam9iRGF0YUlkZW50aWZpZXIsIFNXU2VydmVyUmVnaXN0cmF0aW9uJiByZWdp
c3RyYXRpb24sIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTY3JpcHRCdWZmZXImIHNjcmlwdCwgY29u
c3QgQ2VydGlmaWNhdGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8sIGNvbnN0IENvbnRlbnRTZWN1cml0
eVBvbGljeVJlc3BvbnNlSGVhZGVycyYgY29udGVudFNlY3VyaXR5UG9saWN5LCBjb25zdCBDcm9z
c09yaWdpbkVtYmVkZGVyUG9saWN5JiBjb2VwLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyUG9saWN5
LCBXb3JrZXJUeXBlIHR5cGUsIEhhc2hNYXA8VVJMLCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE6
OkltcG9ydGVkU2NyaXB0PiYmIHNjcmlwdFJlc291cmNlTWFwLCBzdGQ6Om9wdGlvbmFsPFNlcnZp
Y2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIpCit2
b2lkIFNXU2VydmVyOjp1cGRhdGVXb3JrZXIoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVu
dGlmaWVyJiBqb2JEYXRhSWRlbnRpZmllciwgU1dTZXJ2ZXJSZWdpc3RyYXRpb24mIHJlZ2lzdHJh
dGlvbiwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFNjcmlwdEJ1ZmZlciYgc2NyaXB0LCBjb25zdCBD
ZXJ0aWZpY2F0ZUluZm8mIGNlcnRpZmljYXRlSW5mbywgY29uc3QgQ29udGVudFNlY3VyaXR5UG9s
aWN5UmVzcG9uc2VIZWFkZXJzJiBjb250ZW50U2VjdXJpdHlQb2xpY3ksIGNvbnN0IENyb3NzT3Jp
Z2luRW1iZWRkZXJQb2xpY3kmIGNvZXAsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXJQb2xpY3ksIFdv
cmtlclR5cGUgdHlwZSwgSGFzaE1hcDxVUkwsIFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6SW1w
b3J0ZWRTY3JpcHQ+JiYgc2NyaXB0UmVzb3VyY2VNYXAsIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcikKIHsK
ICAgICB0cnlJbnN0YWxsQ29udGV4dERhdGEoU2VydmljZVdvcmtlckNvbnRleHREYXRhIHsgam9i
RGF0YUlkZW50aWZpZXIsIHJlZ2lzdHJhdGlvbi5kYXRhKCksIFNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyOjpnZW5lcmF0ZSgpLCBzY3JpcHQsIGNlcnRpZmljYXRlSW5mbywgY29udGVudFNlY3VyaXR5
UG9saWN5LCBjb2VwLCByZWZlcnJlclBvbGljeSwgdXJsLCB0eXBlLCBmYWxzZSwgY2xpZW50SXNB
cHBJbml0aWF0ZWRGb3JSZWdpc3RyYWJsZURvbWFpbihSZWdpc3RyYWJsZURvbWFpbih1cmwpKSwg
V1RGTW92ZShzY3JpcHRSZXNvdXJjZU1hcCksIHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciB9
KTsKIH0KQEAgLTk0Miw3ICs5NDIsNyBAQCB2b2lkIFNXU2VydmVyOjpyZWdpc3RlclNlcnZpY2VX
b3JrZXJDbGllbnQoQ2xpZW50T3JpZ2luJiYgY2xpZW50T3JpZ2luLCBTZXJ2aWNlVwogICAgIGNs
aWVudElkZW50aWZpZXJzRm9yT3JpZ2luLnRlcm1pbmF0ZVNlcnZpY2VXb3JrZXJzVGltZXIgPSBu
dWxscHRyOwogCiAgICAgbV9jbGllbnRzQnlSZWdpc3RyYWJsZURvbWFpbi5lbnN1cmUoY2xpZW50
T3JpZ2luLmNsaWVudFJlZ2lzdHJhYmxlRG9tYWluKCksIFtdIHsKLSAgICAgICAgcmV0dXJuIEhh
c2hTZXQ8U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+IHsgfTsKKyAgICAgICAgcmV0dXJu
IEhhc2hTZXQ8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IHsgfTsKICAgICB9KS5p
dGVyYXRvci0+dmFsdWUuYWRkKGNsaWVudElkZW50aWZpZXIpOwogCiAgICAgaWYgKCFjb250cm9s
bGluZ1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKQpAQCAtOTU3LDcgKzk1Nyw3
IEBAIHZvaWQgU1dTZXJ2ZXI6OnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChDbGllbnRPcmln
aW4mJiBjbGllbnRPcmlnaW4sIFNlcnZpY2VXCiAgICAgbV9jbGllbnRUb0NvbnRyb2xsaW5nUmVn
aXN0cmF0aW9uLmFkZChjbGllbnRJZGVudGlmaWVyLCAqY29udHJvbGxpbmdTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uSWRlbnRpZmllcik7CiB9CiAKLXZvaWQgU1dTZXJ2ZXI6OnVucmVnaXN0ZXJT
ZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IENsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luLCBTZXJ2
aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlmaWVyKQordm9pZCBTV1NlcnZl
cjo6dW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgQ2xpZW50T3JpZ2luJiBjbGll
bnRPcmlnaW4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElkZW50aWZp
ZXIpCiB7CiAgICAgYXV0byBjbGllbnRSZWdpc3RyYWJsZURvbWFpbiA9IGNsaWVudE9yaWdpbi5j
bGllbnRSZWdpc3RyYWJsZURvbWFpbigpOwogICAgIGF1dG8gYXBwSW5pdGlhdGVkVmFsdWVCZWZv
cmUgPSBjbGllbnRJc0FwcEluaXRpYXRlZEZvclJlZ2lzdHJhYmxlRG9tYWluKGNsaWVudE9yaWdp
bi5jbGllbnRSZWdpc3RyYWJsZURvbWFpbigpKTsKQEAgLTExNDIsNyArMTE0Miw3IEBAIHZvaWQg
U1dTZXJ2ZXI6OnJlbW92ZUNvbnRleHRDb25uZWN0aW9uKFNXU2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbiYgY29ubmVjdGlvbikKICAgICAgICAgY3JlYXRlQ29udGV4dENvbm5lY3Rpb24ocmVnaXN0
cmFibGVEb21haW4sIHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcik7CiB9CiAKLXZvaWQgU1dT
ZXJ2ZXI6OmNyZWF0ZUNvbnRleHRDb25uZWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBy
ZWdpc3RyYWJsZURvbWFpbiwgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRp
Zmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKQordm9pZCBTV1NlcnZlcjo6Y3JlYXRl
Q29udGV4dENvbm5lY3Rpb24oY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlZ2lzdHJhYmxlRG9t
YWluLCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2
aWNlV29ya2VyUGFnZUlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKCFtX2NvbnRleHRDb25uZWN0
aW9ucy5jb250YWlucyhyZWdpc3RyYWJsZURvbWFpbikpOwogICAgIGlmIChtX3BlbmRpbmdDb25u
ZWN0aW9uRG9tYWlucy5jb250YWlucyhyZWdpc3RyYWJsZURvbWFpbikpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKaW5kZXggYThlYWE2MGFl
MDI5NDU1ZmVjYTc5NGQwODM3YjhkNzFjMmJlNTcyMy4uYTFhYTA3MWJmOWI0MjA5YmI3MDNkMDQ3
MjQwMjY5MWQ4OTY3NmMxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXIuaApAQCAtMjgsOSArMjgsOSBAQAogI2lmIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKIAogI2luY2x1ZGUgIkNsaWVudE9yaWdpbi5oIgotI2luY2x1ZGUgIkRvY3VtZW50
SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiU1dTZXJ2
ZXJXb3JrZXIuaCIKKyNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5o
IgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luRGF0YS5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3Jr
ZXJDbGllbnREYXRhLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlcklkZW50aWZpZXIuaCIKQEAg
LTg5LDkgKzg5LDkgQEAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIHZvaWQgZmlyZVVwZGF0ZUZv
dW5kRXZlbnQoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIpID0gMDsKICAgICAg
ICAgdmlydHVhbCB2b2lkIHNldFJlZ2lzdHJhdGlvbkxhc3RVcGRhdGVUaW1lKFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBXYWxsVGltZSkgPSAwOwogICAgICAgICB2aXJ0dWFs
IHZvaWQgc2V0UmVnaXN0cmF0aW9uVXBkYXRlVmlhQ2FjaGUoU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJVcGRhdGVWaWFDYWNoZSkgPSAwOwotICAgICAg
ICB2aXJ0dWFsIHZvaWQgbm90aWZ5Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZShjb25zdCBIYXNo
U2V0PERvY3VtZW50SWRlbnRpZmllcj4mIGNvbnRleHRJZGVudGlmaWVycywgY29uc3QgU2Vydmlj
ZVdvcmtlckRhdGEmIG5ld0NvbnRyb2xsZXIpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIG5v
dGlmeUNsaWVudHNPZkNvbnRyb2xsZXJDaGFuZ2UoY29uc3QgSGFzaFNldDxTY3JpcHRFeGVjdXRp
b25Db250ZXh0SWRlbnRpZmllcj4mIGNvbnRleHRJZGVudGlmaWVycywgY29uc3QgU2VydmljZVdv
cmtlckRhdGEmIG5ld0NvbnRyb2xsZXIpID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHJlZ2lz
dHJhdGlvblJlYWR5KHVpbnQ2NF90IHJlZ2lzdHJhdGlvblJlYWR5UmVxdWVzdElkZW50aWZpZXIs
IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJiYpID0gMDsKLSAgICAgICAgdmlydHVhbCB2
b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KERvY3VtZW50SWRlbnRpZmllciwg
Y29uc3QgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHBv
c3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyLCBjb25zdCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYsIFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbikgPSAwOwogCiAgICAgICAgIHZpcnR1
YWwgdm9pZCBjb250ZXh0Q29ubmVjdGlvbkNyZWF0ZWQoU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0
aW9uJikgPSAwOwogCkBAIC0xMjcsNyArMTI3LDcgQEAgcHVibGljOgogICAgIH07CiAKICAgICB1
c2luZyBTb2Z0VXBkYXRlQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKFNlcnZpY2VXb3JrZXJKb2JE
YXRhJiYgam9iRGF0YSwgYm9vbCBzaG91bGRSZWZyZXNoQ2FjaGUsIFJlc291cmNlUmVxdWVzdCYm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdCYp
PiYmKT47Ci0gICAgdXNpbmcgQ3JlYXRlQ29udGV4dENvbm5lY3Rpb25DYWxsYmFjayA9IEZ1bmN0
aW9uPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mLCBzdGQ6Om9wdGlvbmFs
PFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKT47CisgICAgdXNpbmcgQ3JlYXRlQ29udGV4dENvbm5lY3Rpb25DYWxsYmFjayA9IEZ1bmN0
aW9uPHZvaWQoY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mLCBzdGQ6Om9wdGlvbmFs
PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKT47CiAgICAgdXNpbmcgQXBwQm91bmREb21haW5zQ2FsbGJhY2sgPSBGdW5jdGlvbjx2
b2lkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbj4mJik+JiYpPjsKICAgICBXRUJDT1JFX0VYUE9SVCBTV1NlcnZlcihVbmlxdWVSZWY8U1dP
cmlnaW5TdG9yZT4mJiwgYm9vbCBwcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQsIFN0cmlu
ZyYmIHJlZ2lzdHJhdGlvbkRhdGFiYXNlRGlyZWN0b3J5LCBQQUw6OlNlc3Npb25JRCwgYm9vbCBz
aG91bGRSdW5TZXJ2aWNlV29ya2Vyc09uTWFpblRocmVhZEZvclRlc3RpbmcsIGJvb2wgaGFzU2Vy
dmljZVdvcmtlckVudGl0bGVtZW50LCBTb2Z0VXBkYXRlQ2FsbGJhY2smJiwgQ3JlYXRlQ29udGV4
dENvbm5lY3Rpb25DYWxsYmFjayYmLCBBcHBCb3VuZERvbWFpbnNDYWxsYmFjayYmKTsKIApAQCAt
MTQ2LDE5ICsxNDYsMTkgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YT4gZ2V0UmVnaXN0cmF0aW9ucyhjb25zdCBTZWN1cml0
eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwpOwogCiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzY2hlZHVsZUpvYihTZXJ2aWNlV29ya2VySm9iRGF0YSYmKTsKLSAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjaGVkdWxlVW5yZWdpc3RlckpvYihTZXJ2aWNlV29ya2Vy
Sm9iRGF0YUlkZW50aWZpZXIsIFNXU2VydmVyUmVnaXN0cmF0aW9uJiwgRG9jdW1lbnRPcldvcmtl
cklkZW50aWZpZXIsIFVSTCYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjaGVkdWxlVW5y
ZWdpc3RlckpvYihTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXIsIFNXU2VydmVyUmVnaXN0
cmF0aW9uJiwgU2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciwgVVJMJiYpOwogCiAgICAg
dm9pZCByZWplY3RKb2IoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGEmLCBjb25zdCBFeGNlcHRp
b25EYXRhJik7CiAgICAgdm9pZCByZXNvbHZlUmVnaXN0cmF0aW9uSm9iKGNvbnN0IFNlcnZpY2VX
b3JrZXJKb2JEYXRhJiwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmLCBTaG91
bGROb3RpZnlXaGVuUmVzb2x2ZWQpOwogICAgIHZvaWQgcmVzb2x2ZVVucmVnaXN0cmF0aW9uSm9i
KGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbktleSYsIGJvb2wgdW5yZWdpc3RyYXRpb25SZXN1bHQpOwogICAgIHZvaWQgc3RhcnRTY3Jp
cHRGZXRjaChjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYsIFNXU2VydmVyUmVnaXN0cmF0aW9u
Jik7CiAKLSAgICB2b2lkIHVwZGF0ZVdvcmtlcihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlk
ZW50aWZpZXImLCBTV1NlcnZlclJlZ2lzdHJhdGlvbiYsIGNvbnN0IFVSTCYsIGNvbnN0IFNjcmlw
dEJ1ZmZlciYsIGNvbnN0IENlcnRpZmljYXRlSW5mbyYsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBv
bGljeVJlc3BvbnNlSGVhZGVycyYsIGNvbnN0IENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kmLCBj
b25zdCBTdHJpbmcmIHJlZmVycmVyUG9saWN5LCBXb3JrZXJUeXBlLCBIYXNoTWFwPFVSTCwgU2Vy
dmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdD4mJiwgc3RkOjpvcHRpb25hbDxT
ZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVy
KTsKKyAgICB2b2lkIHVwZGF0ZVdvcmtlcihjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50
aWZpZXImLCBTV1NlcnZlclJlZ2lzdHJhdGlvbiYsIGNvbnN0IFVSTCYsIGNvbnN0IFNjcmlwdEJ1
ZmZlciYsIGNvbnN0IENlcnRpZmljYXRlSW5mbyYsIGNvbnN0IENvbnRlbnRTZWN1cml0eVBvbGlj
eVJlc3BvbnNlSGVhZGVycyYsIGNvbnN0IENyb3NzT3JpZ2luRW1iZWRkZXJQb2xpY3kmLCBjb25z
dCBTdHJpbmcmIHJlZmVycmVyUG9saWN5LCBXb3JrZXJUeXBlLCBIYXNoTWFwPFVSTCwgU2Vydmlj
ZVdvcmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdD4mJiwgc3RkOjpvcHRpb25hbDxTY3Jp
cHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVy
KTsKICAgICB2b2lkIGZpcmVJbnN0YWxsRXZlbnQoU1dTZXJ2ZXJXb3JrZXImKTsKICAgICB2b2lk
IGZpcmVBY3RpdmF0ZUV2ZW50KFNXU2VydmVyV29ya2VyJik7CiAKICAgICBXRUJDT1JFX0VYUE9S
VCBTV1NlcnZlcldvcmtlciogd29ya2VyQnlJRChTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgY29u
c3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50
RGF0YT4gc2VydmljZVdvcmtlckNsaWVudFdpdGhPcmlnaW5CeUlEKGNvbnN0IENsaWVudE9yaWdp
biYsIGNvbnN0IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyJikgY29uc3Q7CisgICAgV0VC
Q09SRV9FWFBPUlQgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4gc2Vydmlj
ZVdvcmtlckNsaWVudFdpdGhPcmlnaW5CeUlEKGNvbnN0IENsaWVudE9yaWdpbiYsIGNvbnN0IFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyJikgY29uc3Q7CiAgICAgU3RyaW5nIHNlcnZp
Y2VXb3JrZXJDbGllbnRVc2VyQWdlbnQoY29uc3QgQ2xpZW50T3JpZ2luJikgY29uc3Q7CiAgICAg
V0VCQ09SRV9FWFBPUlQgU1dTZXJ2ZXJXb3JrZXIqIGFjdGl2ZVdvcmtlckZyb21SZWdpc3RyYXRp
b25JRChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcik7CiAKQEAgLTE4NCw3ICsx
ODQsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEhhc2hTZXQ8U1dTZXJ2
ZXIqPiYgYWxsU2VydmVycygpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZWdpc3RlclNl
cnZpY2VXb3JrZXJDbGllbnQoQ2xpZW50T3JpZ2luJiYsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRh
JiYsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZp
ZXI+JiwgU3RyaW5nJiYgdXNlckFnZW50KTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVucmVn
aXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IENsaWVudE9yaWdpbiYsIFNlcnZpY2VXb3Jr
ZXJDbGllbnRJZGVudGlmaWVyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVucmVnaXN0ZXJT
ZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IENsaWVudE9yaWdpbiYsIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRJZGVudGlmaWVyKTsKIAogICAgIHVzaW5nIFJ1blNlcnZpY2VXb3JrZXJDYWxsYmFjayA9
IEZ1bmN0aW9uPHZvaWQoU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKik+OwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgcnVuU2VydmljZVdvcmtlcklmTmVjZXNzYXJ5KFNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyLCBSdW5TZXJ2aWNlV29ya2VyQ2FsbGJhY2smJik7CkBAIC0yMDcsNyArMjA3LDcg
QEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlQ29udGV4dENvbm5lY3Rp
b24oU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uJik7CiAKICAgICBTV1NlcnZlclRvQ29udGV4
dENvbm5lY3Rpb24qIGNvbnRleHRDb25uZWN0aW9uRm9yUmVnaXN0cmFibGVEb21haW4oY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIGRvbWFpbikgeyByZXR1cm4gbV9jb250ZXh0Q29ubmVjdGlvbnMu
Z2V0KGRvbWFpbik7IH0KLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNyZWF0ZUNvbnRleHRDb25u
ZWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29y
a2VyQ2xpZW50SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGNyZWF0ZUNvbnRleHRDb25uZWN0aW9uKGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
cj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKTsKIAogICAgIGJvb2wgaXNJbXBvcnRDb21w
bGV0ZWQoKSBjb25zdCB7IHJldHVybiBtX2ltcG9ydENvbXBsZXRlZDsgfQogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgd2hlbkltcG9ydElzQ29tcGxldGVkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CkBAIC0yNjEsMTYgKzI2MSwxNiBAQCBwcml2YXRlOgogCiAgICAgSGFzaE1hcDxTZXJ2
aWNlV29ya2VySWRlbnRpZmllciwgUmVmPFNXU2VydmVyV29ya2VyPj4gbV9ydW5uaW5nT3JUZXJt
aW5hdGluZ1dvcmtlcnM7CiAKLSAgICBIYXNoTWFwPFJlZ2lzdHJhYmxlRG9tYWluLCBIYXNoU2V0
PFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPj4gbV9jbGllbnRzQnlSZWdpc3RyYWJsZURv
bWFpbjsKKyAgICBIYXNoTWFwPFJlZ2lzdHJhYmxlRG9tYWluLCBIYXNoU2V0PFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyPj4gbV9jbGllbnRzQnlSZWdpc3RyYWJsZURvbWFpbjsKICAg
ICBzdHJ1Y3QgQ2xpZW50cyB7Ci0gICAgICAgIFZlY3RvcjxTZXJ2aWNlV29ya2VyQ2xpZW50SWRl
bnRpZmllcj4gaWRlbnRpZmllcnM7CisgICAgICAgIFZlY3RvcjxTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllcj4gaWRlbnRpZmllcnM7CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxUaW1l
cj4gdGVybWluYXRlU2VydmljZVdvcmtlcnNUaW1lcjsKICAgICAgICAgU3RyaW5nIHVzZXJBZ2Vu
dDsKICAgICB9OwogICAgIEhhc2hNYXA8Q2xpZW50T3JpZ2luLCBDbGllbnRzPiBtX2NsaWVudElk
ZW50aWZpZXJzUGVyT3JpZ2luOwotICAgIEhhc2hNYXA8U2VydmljZVdvcmtlckNsaWVudElkZW50
aWZpZXIsIFdlYWtQdHI8U1dTZXJ2ZXJSZWdpc3RyYXRpb24+PiBtX3NlcnZpY2VXb3JrZXJQYWdl
SWRlbnRpZmllclRvUmVnaXN0cmF0aW9uTWFwOwotICAgIEhhc2hNYXA8U2VydmljZVdvcmtlckNs
aWVudElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnREYXRhPiBtX2NsaWVudHNCeUlkOwot
ICAgIEhhc2hNYXA8U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25JZGVudGlmaWVyPiBtX2NsaWVudFRvQ29udHJvbGxpbmdSZWdpc3RyYXRpb247
CisgICAgSGFzaE1hcDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgV2Vha1B0cjxT
V1NlcnZlclJlZ2lzdHJhdGlvbj4+IG1fc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyVG9SZWdp
c3RyYXRpb25NYXA7CisgICAgSGFzaE1hcDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
ciwgU2VydmljZVdvcmtlckNsaWVudERhdGE+IG1fY2xpZW50c0J5SWQ7CisgICAgSGFzaE1hcDxT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bklkZW50aWZpZXI+IG1fY2xpZW50VG9Db250cm9sbGluZ1JlZ2lzdHJhdGlvbjsKIAogICAgIFVu
aXF1ZVJlZjxTV09yaWdpblN0b3JlPiBtX29yaWdpblN0b3JlOwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxSZWdpc3RyYXRpb25TdG9yZT4gbV9yZWdpc3RyYXRpb25TdG9yZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lz
dHJhdGlvbi5jcHAKaW5kZXggODZiNTgyNjQxNGQ5YzU4MmI2ZWIwZmQzZDQxOWI5OWYyMDY3Nzhh
Mi4uZjdjNjdiZDliNTZkOTVkZGE3MzY2OWE5Mzk3ZGEwNDA3YmIyMjFjMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZl
clJlZ2lzdHJhdGlvbi5jcHAKQEAgLTQyLDcgKzQyLDcgQEAgc3RhdGljIFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25JZGVudGlmaWVyIGdlbmVyYXRlU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklk
ZW4KICAgICByZXR1cm4gU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI6OmdlbmVy
YXRlKCk7CiB9CiAKLVNXU2VydmVyUmVnaXN0cmF0aW9uOjpTV1NlcnZlclJlZ2lzdHJhdGlvbihT
V1NlcnZlciYgc2VydmVyLCBjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiBrZXks
IFNlcnZpY2VXb3JrZXJVcGRhdGVWaWFDYWNoZSB1cGRhdGVWaWFDYWNoZSwgY29uc3QgVVJMJiBz
Y29wZVVSTCwgY29uc3QgVVJMJiBzY3JpcHRVUkwsIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtl
ckNsaWVudElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcikKK1NXU2VydmVy
UmVnaXN0cmF0aW9uOjpTV1NlcnZlclJlZ2lzdHJhdGlvbihTV1NlcnZlciYgc2VydmVyLCBjb25z
dCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiBrZXksIFNlcnZpY2VXb3JrZXJVcGRhdGVW
aWFDYWNoZSB1cGRhdGVWaWFDYWNoZSwgY29uc3QgVVJMJiBzY29wZVVSTCwgY29uc3QgVVJMJiBz
Y3JpcHRVUkwsIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+
IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcikKICAgICA6IG1faWRlbnRpZmllcihnZW5lcmF0
ZVNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKCkpCiAgICAgLCBtX3JlZ2lzdHJh
dGlvbktleShrZXkpCiAgICAgLCBtX3VwZGF0ZVZpYUNhY2hlKHVwZGF0ZVZpYUNhY2hlKQpAQCAt
MTcyLDIyICsxNzIsMjAgQEAgdm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6cmVtb3ZlQ2xpZW50
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbihTV1NlcnZlckNvbm5lY3QKICAgICBtX2Nvbm5lY3Rp
b25zV2l0aENsaWVudFJlZ2lzdHJhdGlvbnMucmVtb3ZlKGNvbm5lY3Rpb25JZGVudGlmaWVyKTsK
IH0KIAotdm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6YWRkQ2xpZW50VXNpbmdSZWdpc3RyYXRp
b24oY29uc3QgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXImIGNsaWVudElkZW50aWZpZXIp
Cit2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjphZGRDbGllbnRVc2luZ1JlZ2lzdHJhdGlvbihj
b25zdCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciYgY2xpZW50SWRlbnRpZmllcikK
IHsKLSAgICBhdXRvIGFkZFJlc3VsdCA9IG1fY2xpZW50c1VzaW5nUmVnaXN0cmF0aW9uLmVuc3Vy
ZShjbGllbnRJZGVudGlmaWVyLnNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBbXSB7Ci0gICAg
ICAgIHJldHVybiBIYXNoU2V0PERvY3VtZW50SWRlbnRpZmllcj4geyB9OwotICAgIH0pLml0ZXJh
dG9yLT52YWx1ZS5hZGQoY2xpZW50SWRlbnRpZmllci5jb250ZXh0SWRlbnRpZmllcik7CisgICAg
YXV0byBhZGRSZXN1bHQgPSBtX2NsaWVudHNVc2luZ1JlZ2lzdHJhdGlvbi5hZGQoY2xpZW50SWRl
bnRpZmllci5wcm9jZXNzSWRlbnRpZmllcigpLCBIYXNoU2V0PFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyPiB7IH0pLml0ZXJhdG9yLT52YWx1ZS5hZGQoY2xpZW50SWRlbnRpZmllcik7
CiAgICAgQVNTRVJUX1VOVVNFRChhZGRSZXN1bHQsIGFkZFJlc3VsdC5pc05ld0VudHJ5KTsKIH0K
IAotdm9pZCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6cmVtb3ZlQ2xpZW50VXNpbmdSZWdpc3RyYXRp
b24oY29uc3QgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXImIGNsaWVudElkZW50aWZpZXIp
Cit2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpyZW1vdmVDbGllbnRVc2luZ1JlZ2lzdHJhdGlv
bihjb25zdCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciYgY2xpZW50SWRlbnRpZmll
cikKIHsKLSAgICBhdXRvIGl0ZXJhdG9yID0gbV9jbGllbnRzVXNpbmdSZWdpc3RyYXRpb24uZmlu
ZChjbGllbnRJZGVudGlmaWVyLnNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKyAgICBhdXRv
IGl0ZXJhdG9yID0gbV9jbGllbnRzVXNpbmdSZWdpc3RyYXRpb24uZmluZChjbGllbnRJZGVudGlm
aWVyLnByb2Nlc3NJZGVudGlmaWVyKCkpOwogICAgIEFTU0VSVChpdGVyYXRvciAhPSBtX2NsaWVu
dHNVc2luZ1JlZ2lzdHJhdGlvbi5lbmQoKSk7CiAgICAgaWYgKGl0ZXJhdG9yID09IG1fY2xpZW50
c1VzaW5nUmVnaXN0cmF0aW9uLmVuZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBib29sIHdh
c1JlbW92ZWQgPSBpdGVyYXRvci0+dmFsdWUucmVtb3ZlKGNsaWVudElkZW50aWZpZXIuY29udGV4
dElkZW50aWZpZXIpOworICAgIGJvb2wgd2FzUmVtb3ZlZCA9IGl0ZXJhdG9yLT52YWx1ZS5yZW1v
dmUoY2xpZW50SWRlbnRpZmllcik7CiAgICAgQVNTRVJUX1VOVVNFRCh3YXNSZW1vdmVkLCB3YXNS
ZW1vdmVkKTsKIAogICAgIGlmIChpdGVyYXRvci0+dmFsdWUuaXNFbXB0eSgpKQpAQCAtMzQ3LDE1
ICszNDUsMTUgQEAgYm9vbCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6aXNVbnJlZ2lzdGVyZWQoKSBj
b25zdAogICAgIHJldHVybiBtX3NlcnZlci5nZXRSZWdpc3RyYXRpb24oa2V5KCkpICE9IHRoaXM7
CiB9CiAKLXZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRpb246OmNvbnRyb2xDbGllbnQoU2VydmljZVdv
cmtlckNsaWVudElkZW50aWZpZXIgaWRlbnRpZmllcikKK3ZvaWQgU1dTZXJ2ZXJSZWdpc3RyYXRp
b246OmNvbnRyb2xDbGllbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgaWRlbnRp
ZmllcikKIHsKICAgICBBU1NFUlQoYWN0aXZlV29ya2VyKCkpOwogCiAgICAgYWRkQ2xpZW50VXNp
bmdSZWdpc3RyYXRpb24oaWRlbnRpZmllcik7CiAKLSAgICBIYXNoU2V0PERvY3VtZW50SWRlbnRp
Zmllcj4gaWRlbnRpZmllcnM7Ci0gICAgaWRlbnRpZmllcnMuYWRkKGlkZW50aWZpZXIuY29udGV4
dElkZW50aWZpZXIpOwotICAgIG1fc2VydmVyLmNvbm5lY3Rpb24oaWRlbnRpZmllci5zZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciktPm5vdGlmeUNsaWVudHNPZkNvbnRyb2xsZXJDaGFuZ2UoaWRl
bnRpZmllcnMsIGFjdGl2ZVdvcmtlcigpLT5kYXRhKCkpOworICAgIEhhc2hTZXQ8U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dElkZW50aWZpZXI+IGlkZW50aWZpZXJzOworICAgIGlkZW50aWZpZXJzLmFk
ZChpZGVudGlmaWVyKTsKKyAgICBtX3NlcnZlci5jb25uZWN0aW9uKGlkZW50aWZpZXIucHJvY2Vz
c0lkZW50aWZpZXIoKSktPm5vdGlmeUNsaWVudHNPZkNvbnRyb2xsZXJDaGFuZ2UoaWRlbnRpZmll
cnMsIGFjdGl2ZVdvcmtlcigpLT5kYXRhKCkpOwogfQogCiBib29sIFNXU2VydmVyUmVnaXN0cmF0
aW9uOjpzaG91bGRTb2Z0VXBkYXRlKGNvbnN0IEZldGNoT3B0aW9ucyYgb3B0aW9ucykgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2
ZXJSZWdpc3RyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dTZXJ2ZXJSZWdpc3RyYXRpb24uaAppbmRleCAyYzE2NGU0NDRiNDVjZTY5MGI1ZTM2OGZmOGFi
ZmVkNjkwNzhiN2U0Li43Mjg3MWI5YjBhMDA3OWRlMjM2YjMzNTkyZDZkY2ZhN2Y0ZWM2YjVlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVy
UmVnaXN0cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oCkBAIC0yOCw3ICsyOCw3IEBACiAjaWYgRU5BQkxFKFNF
UlZJQ0VfV09SS0VSKQogCiAjaW5jbHVkZSAiU1dTZXJ2ZXIuaCIKLSNpbmNsdWRlICJTZXJ2aWNl
V29ya2VyQ2xpZW50SWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEu
aCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyVHlwZXMuaCIKICNpbmNsdWRlICJUaW1lci5oIgpA
QCAtNTIsNyArNTIsNyBAQCBlbnVtIGNsYXNzIElzQXBwSW5pdGlhdGVkIDogYm9vbCB7IE5vLCBZ
ZXMgfTsKIGNsYXNzIFNXU2VydmVyUmVnaXN0cmF0aW9uIDogcHVibGljIENhbk1ha2VXZWFrUHRy
PFNXU2VydmVyUmVnaXN0cmF0aW9uPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6Ci0gICAgU1dTZXJ2ZXJSZWdpc3RyYXRpb24oU1dTZXJ2ZXImLCBjb25zdCBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uS2V5JiwgU2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlLCBjb25z
dCBVUkwmIHNjb3BlVVJMLCBjb25zdCBVUkwmIHNjcmlwdFVSTCwgc3RkOjpvcHRpb25hbDxTZXJ2
aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKTsK
KyAgICBTV1NlcnZlclJlZ2lzdHJhdGlvbihTV1NlcnZlciYsIGNvbnN0IFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25LZXkmLCBTZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGUsIGNvbnN0IFVSTCYg
c2NvcGVVUkwsIGNvbnN0IFVSTCYgc2NyaXB0VVJMLCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIpOwogICAg
IH5TV1NlcnZlclJlZ2lzdHJhdGlvbigpOwogCiAgICAgY29uc3QgU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbktleSYga2V5KCkgY29uc3QgeyByZXR1cm4gbV9yZWdpc3RyYXRpb25LZXk7IH0KQEAg
LTg0LDEyICs4NCwxMiBAQCBwdWJsaWM6CiAgICAgTW9ub3RvbmljVGltZSBjcmVhdGlvblRpbWUo
KSBjb25zdCB7IHJldHVybiBtX2NyZWF0aW9uVGltZTsgfQogCiAgICAgYm9vbCBoYXNDbGllbnRz
VXNpbmdSZWdpc3RyYXRpb24oKSBjb25zdCB7IHJldHVybiAhbV9jbGllbnRzVXNpbmdSZWdpc3Ry
YXRpb24uaXNFbXB0eSgpOyB9Ci0gICAgdm9pZCBhZGRDbGllbnRVc2luZ1JlZ2lzdHJhdGlvbihj
b25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYpOwotICAgIHZvaWQgcmVtb3ZlQ2xp
ZW50VXNpbmdSZWdpc3RyYXRpb24oY29uc3QgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIm
KTsKKyAgICB2b2lkIGFkZENsaWVudFVzaW5nUmVnaXN0cmF0aW9uKGNvbnN0IFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyJik7CisgICAgdm9pZCByZW1vdmVDbGllbnRVc2luZ1JlZ2lz
dHJhdGlvbihjb25zdCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciYpOwogICAgIHZv
aWQgdW5yZWdpc3RlclNlcnZlckNvbm5lY3Rpb24oU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
cik7CiAKICAgICB2b2lkIG5vdGlmeUNsaWVudHNPZkNvbnRyb2xsZXJDaGFuZ2UoKTsKLSAgICB2
b2lkIGNvbnRyb2xDbGllbnQoU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIpOworICAgIHZv
aWQgY29udHJvbENsaWVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcik7CiAKICAg
ICB2b2lkIGNsZWFyKCk7CiAgICAgYm9vbCB0cnlDbGVhcigpOwpAQCAtMTA4LDcgKzEwOCw3IEBA
IHB1YmxpYzoKICAgICBVUkwgc2NyaXB0VVJMKCkgY29uc3QgeyByZXR1cm4gbV9zY3JpcHRVUkw7
IH0KIAogICAgIGJvb2wgaXNBcHBJbml0aWF0ZWQoKSBjb25zdCB7IHJldHVybiBtX2lzQXBwSW5p
dGlhdGVkOyB9Ci0gICAgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmll
cj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9zZXJ2aWNl
V29ya2VyUGFnZUlkZW50aWZpZXI7IH0KKyAgICBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIoKSBjb25zdCB7
IHJldHVybiBtX3NlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcjsgfQogCiBwcml2YXRlOgogICAg
IHZvaWQgYWN0aXZhdGUoKTsKQEAgLTEyMCw3ICsxMjAsNyBAQCBwcml2YXRlOgogICAgIFNlcnZp
Y2VXb3JrZXJVcGRhdGVWaWFDYWNoZSBtX3VwZGF0ZVZpYUNhY2hlOwogICAgIFVSTCBtX3Njb3Bl
VVJMOwogICAgIFVSTCBtX3NjcmlwdFVSTDsKLSAgICBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3Jr
ZXJDbGllbnRJZGVudGlmaWVyPiBtX3NlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcjsKKyAgICBz
dGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBtX3NlcnZpY2VX
b3JrZXJQYWdlSWRlbnRpZmllcjsKIAogICAgIFJlZlB0cjxTV1NlcnZlcldvcmtlcj4gbV9wcmVJ
bnN0YWxsYXRpb25Xb3JrZXI7IC8vIEltcGxlbWVudGF0aW9uIGRldGFpbCwgbm90IHBhcnQgb2Yg
dGhlIHNwZWNpZmljYXRpb24uCiAgICAgUmVmUHRyPFNXU2VydmVyV29ya2VyPiBtX2luc3RhbGxp
bmdXb3JrZXI7CkBAIC0xMzMsNyArMTMzLDcgQEAgcHJpdmF0ZToKICAgICBTV1NlcnZlciYgbV9z
ZXJ2ZXI7CiAKICAgICBNb25vdG9uaWNUaW1lIG1fY3JlYXRpb25UaW1lOwotICAgIEhhc2hNYXA8
U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgSGFzaFNldDxEb2N1bWVudElkZW50aWZpZXI+
PiBtX2NsaWVudHNVc2luZ1JlZ2lzdHJhdGlvbjsKKyAgICBIYXNoTWFwPFNXU2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIsIEhhc2hTZXQ8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+
PiBtX2NsaWVudHNVc2luZ1JlZ2lzdHJhdGlvbjsKIAogICAgIFdlYkNvcmU6OlRpbWVyIG1fc29m
dFVwZGF0ZVRpbWVyOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24u
Y3BwCmluZGV4IGZlYzRiZGJmMDE4MjI5OTg1OWU3NzcwYTEyNDg2OTJmYmY1Njk5YWQuLmJmZWVj
Y2UwM2UwNGNjNzhlODdlMWUxNjI2OWI5NjMwMWQ0ODE3YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbi5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgc3RhdGljIFNXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbklkZW50aWZpZXIgZ2VuZXJhdGVTZXJ2ZXJUb0NvbnRleHRDb25u
ZWN0aW9uSWQKICAgICByZXR1cm4gU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uSWRlbnRpZmll
cjo6Z2VuZXJhdGUoKTsKIH0KIAotU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpTV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb24oUmVnaXN0cmFibGVEb21haW4mJiByZWdpc3RyYWJsZURvbWFp
biwgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gc2VydmljZVdv
cmtlclBhZ2VJZGVudGlmaWVyKQorU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpTV1NlcnZl
clRvQ29udGV4dENvbm5lY3Rpb24oUmVnaXN0cmFibGVEb21haW4mJiByZWdpc3RyYWJsZURvbWFp
biwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2Vydmlj
ZVdvcmtlclBhZ2VJZGVudGlmaWVyKQogICAgIDogbV9pZGVudGlmaWVyKGdlbmVyYXRlU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbklkZW50aWZpZXIoKSkKICAgICAsIG1fcmVnaXN0cmFibGVEb21h
aW4oV1RGTW92ZShyZWdpc3RyYWJsZURvbWFpbikpCiAgICAgLCBtX3NlcnZpY2VXb3JrZXJQYWdl
SWRlbnRpZmllcihzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIpCkBAIC04Nyw3ICs4Nyw3IEBA
IHZvaWQgU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjp3b3JrZXJUZXJtaW5hdGVkKFNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpCiAgICAgICAgIHdvcmtlci0+Y29udGV4dFRlcm1pbmF0
ZWQoKTsKIH0KIAotdm9pZCBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246OmZpbmRDbGllbnRC
eUlkZW50aWZpZXIodWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRp
ZmllciBjbGllbnRJZCkKK3ZvaWQgU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpmaW5kQ2xp
ZW50QnlJZGVudGlmaWVyKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dElkZW50aWZpZXIgY2xpZW50SWQpCiB7CiAgICAgaWYgKGF1dG8qIHdvcmtlciA9IFNXU2VydmVy
V29ya2VyOjpleGlzdGluZ1dvcmtlckZvcklkZW50aWZpZXIoc2VydmljZVdvcmtlcklkZW50aWZp
ZXIpKQogICAgICAgICB3b3JrZXItPmNvbnRleHRDb25uZWN0aW9uKCktPmZpbmRDbGllbnRCeUlk
ZW50aWZpZXJDb21wbGV0ZWQocmVxdWVzdElkZW50aWZpZXIsIHdvcmtlci0+ZmluZENsaWVudEJ5
SWRlbnRpZmllcihjbGllbnRJZCksIGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyVG9Db250ZXh0Q29u
bmVjdGlvbi5oCmluZGV4IDUyMzU1NzMyNzg2MzBmNzgwMzNlZGVlOTg0YTlmYzA1NTljNGRkNjUu
LmJkZDM2M2IyYmM0NTBjYzI5OTJlNjU2ODM2YWY3N2VkNTNiY2RhNDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJUb0NvbnRleHRDb25u
ZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24uaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAi
RXhjZXB0aW9uRGF0YS5oIgogI2luY2x1ZGUgIlJlZ2lzdHJhYmxlRG9tYWluLmgiCisjaW5jbHVk
ZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJTZXJ2aWNl
V29ya2VyQ2xpZW50UXVlcnlPcHRpb25zLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckNvbnRl
eHREYXRhLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlcklkZW50aWZpZXIuaCIKQEAgLTM5LDcg
KzQwLDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTV1NlcnZlcjsKIHN0cnVjdCBT
ZXJ2aWNlV29ya2VyQ2xpZW50RGF0YTsKLXN0cnVjdCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRp
ZmllcjsKIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE7CiBzdHJ1Y3QgU2VydmljZVdv
cmtlckpvYkRhdGFJZGVudGlmaWVyOwogZW51bSBjbGFzcyBXb3JrZXJUaHJlYWRNb2RlIDogYm9v
bDsKQEAgLTcwLDI1ICs3MCwyNSBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRTZXJ2aWNlV29ya2VySGFzUGVuZGluZ0V2ZW50cyhTZXJ2aWNlV29ya2VySWRlbnRpZmllciwg
Ym9vbCBoYXNQZW5kaW5nRXZlbnRzKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNraXBXYWl0
aW5nKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgd29ya2VyVGVybWluYXRlZChTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllcik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmaW5kQ2xpZW50QnlJZGVudGlm
aWVyKHVpbnQ2NF90IGNsaWVudElkUmVxdWVzdElkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyLCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcik7CisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBmaW5kQ2xpZW50QnlJZGVudGlmaWVyKHVpbnQ2NF90IGNsaWVudElkUmVxdWVzdElk
ZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllcik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtYXRjaEFsbCh1aW50NjRfdCBy
ZXF1ZXN0SWRlbnRpZmllciwgU2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFNlcnZpY2VX
b3JrZXJDbGllbnRRdWVyeU9wdGlvbnMmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsYWlt
KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0
aW9uYWw8RXhjZXB0aW9uRGF0YT4mJik+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
U2NyaXB0UmVzb3VyY2UoU2VydmljZVdvcmtlcklkZW50aWZpZXIsIFVSTCYmIHNjcmlwdFVSTCwg
U2VydmljZVdvcmtlckNvbnRleHREYXRhOjpJbXBvcnRlZFNjcmlwdCYmKTsKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGRpZEZhaWxIZWFydEJlYXRDaGVjayhTZXJ2aWNlV29ya2VySWRlbnRpZmll
cik7CiAKICAgICBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVnaXN0cmFibGVEb21haW4oKSBj
b25zdCB7IHJldHVybiBtX3JlZ2lzdHJhYmxlRG9tYWluOyB9Ci0gICAgc3RkOjpvcHRpb25hbDxT
ZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVy
KCkgY29uc3QgeyByZXR1cm4gbV9zZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXI7IH0KKyAgICBz
dGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29y
a2VyUGFnZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3NlcnZpY2VXb3JrZXJQYWdlSWRl
bnRpZmllcjsgfQogCiAgICAgdmlydHVhbCB2b2lkIGNvbm5lY3Rpb25Jc05vTG9uZ2VyTmVlZGVk
KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB0ZXJtaW5hdGVEdWVUb1VucmVzcG9uc2l2ZW5lc3Mo
KSA9IDA7CiAKIHByb3RlY3RlZDoKLSAgICBXRUJDT1JFX0VYUE9SVCBTV1NlcnZlclRvQ29udGV4
dENvbm5lY3Rpb24oUmVnaXN0cmFibGVEb21haW4mJiwgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29y
a2VyQ2xpZW50SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24oUmVnaXN0cmFibGVEb21h
aW4mJiwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2Vy
dmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKTsKIAogcHJpdmF0ZToKICAgICBTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb25JZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBSZWdpc3RyYWJsZURv
bWFpbiBtX3JlZ2lzdHJhYmxlRG9tYWluOwotICAgIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtl
ckNsaWVudElkZW50aWZpZXI+IG1fc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyOworICAgIHN0
ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IG1fc2VydmljZVdv
cmtlclBhZ2VJZGVudGlmaWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlcldvcmtl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29y
a2VyLmNwcAppbmRleCAyYjA0YzI4OGZjOGM2OWE0YzkwNmRlYTU0NmM2ODI0NjA3MTQyZjU2Li5i
NjdiYTlhOTY0MzU0ZjBkNmRkYWY4YmZmNjllYmIxZTdlMGQwZDhmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNw
cApAQCAtMjIzLDcgKzIyMyw3IEBAIHZvaWQgU1dTZXJ2ZXJXb3JrZXI6OmNvbnRleHRUZXJtaW5h
dGVkKCkKICAgICAgICAgbV9zZXJ2ZXItPndvcmtlckNvbnRleHRUZXJtaW5hdGVkKCp0aGlzKTsK
IH0KIAotc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YT4gU1dTZXJ2ZXJXb3Jr
ZXI6OmZpbmRDbGllbnRCeUlkZW50aWZpZXIoY29uc3QgU2VydmljZVdvcmtlckNsaWVudElkZW50
aWZpZXImIGNsaWVudElkKSBjb25zdAorc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50
RGF0YT4gU1dTZXJ2ZXJXb3JrZXI6OmZpbmRDbGllbnRCeUlkZW50aWZpZXIoY29uc3QgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXImIGNsaWVudElkKSBjb25zdAogewogICAgIEFTU0VS
VChtX3NlcnZlcik7CiAgICAgaWYgKCFtX3NlcnZlcikKQEAgLTM3NCw3ICszNzQsNyBAQCBXb3Jr
ZXJUaHJlYWRNb2RlIFNXU2VydmVyV29ya2VyOjp3b3JrZXJUaHJlYWRNb2RlKCkgY29uc3QKICAg
ICByZXR1cm4gV29ya2VyVGhyZWFkTW9kZTo6Q3JlYXRlTmV3VGhyZWFkOwogfQogCi1zdGQ6Om9w
dGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiBTV1NlcnZlcldvcmtlcjo6c2Vy
dmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKCkgY29uc3QKK3N0ZDo6b3B0aW9uYWw8U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dElkZW50aWZpZXI+IFNXU2VydmVyV29ya2VyOjpzZXJ2aWNlV29ya2VyUGFn
ZUlkZW50aWZpZXIoKSBjb25zdAogewogICAgIGlmICghbV9yZWdpc3RyYXRpb24pCiAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmgKaW5kZXggMWYxYzg0ZDA3NGE2MTAzNDcz
NjRkN2E4MDk5NTYzYzIzZWE1YjhjMS4uYjIyMTVkOWY0YWQ0ZDBmZDkxNTA0YTRjMjFhY2I5MzA0
N2ExYzgyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlcldvcmtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXJXb3JrZXIuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkNvbnRl
bnRTZWN1cml0eVBvbGljeVJlc3BvbnNlSGVhZGVycy5oIgogI2luY2x1ZGUgIkNyb3NzT3JpZ2lu
RW1iZWRkZXJQb2xpY3kuaCIKICNpbmNsdWRlICJSZWdpc3RyYWJsZURvbWFpbi5oIgorI2luY2x1
ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2Vydmlj
ZVdvcmtlckNsaWVudERhdGEuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEu
aCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRGF0YS5oIgpAQCAtNDgsNyArNDksNiBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBTV1NlcnZlcjsKIGNsYXNzIFNXU2VydmVyUmVnaXN0cmF0
aW9uOwogY2xhc3MgU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOwotc3RydWN0IFNlcnZpY2VX
b3JrZXJDbGllbnRJZGVudGlmaWVyOwogc3RydWN0IFNlcnZpY2VXb3JrZXJDbGllbnRRdWVyeU9w
dGlvbnM7CiBzdHJ1Y3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhOwogc3RydWN0IFNlcnZpY2VX
b3JrZXJKb2JEYXRhSWRlbnRpZmllcjsKQEAgLTEwMiw3ICsxMDIsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBkaWRGaW5pc2hJbnN0YWxsKGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckpv
YkRhdGFJZGVudGlmaWVyPiYsIGJvb2wgd2FzU3VjY2Vzc2Z1bCk7CiAgICAgdm9pZCBkaWRGaW5p
c2hBY3RpdmF0aW9uKCk7CiAgICAgdm9pZCBjb250ZXh0VGVybWluYXRlZCgpOwotICAgIFdFQkNP
UkVfRVhQT1JUIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudERhdGE+IGZpbmRDbGll
bnRCeUlkZW50aWZpZXIoY29uc3QgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXImKSBjb25z
dDsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnRE
YXRhPiBmaW5kQ2xpZW50QnlJZGVudGlmaWVyKGNvbnN0IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyJikgY29uc3Q7CiAgICAgdm9pZCBtYXRjaEFsbChjb25zdCBTZXJ2aWNlV29ya2Vy
Q2xpZW50UXVlcnlPcHRpb25zJiwgU2VydmljZVdvcmtlckNsaWVudHNNYXRjaEFsbENhbGxiYWNr
JiYpOwogICAgIHZvaWQgc2V0U2NyaXB0UmVzb3VyY2UoVVJMJiYsIFNlcnZpY2VXb3JrZXJDb250
ZXh0RGF0YTo6SW1wb3J0ZWRTY3JpcHQmJik7CiAgICAgdm9pZCBkaWRTYXZlU2NyaXB0c1RvRGlz
ayhTY3JpcHRCdWZmZXImJiBtYWluU2NyaXB0LCBIYXNoTWFwPFVSTCwgU2NyaXB0QnVmZmVyPiYm
IGltcG9ydGVkU2NyaXB0cyk7CkBAIC0xMTgsNyArMTE4LDcgQEAgcHVibGljOgogCiAgICAgY29u
c3QgQ2xpZW50T3JpZ2luJiBvcmlnaW4oKSBjb25zdDsKICAgICBjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgcmVnaXN0cmFibGVEb21haW4oKSBjb25zdCB7IHJldHVybiBtX3JlZ2lzdHJhYmxlRG9t
YWluOyB9Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xp
ZW50SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKCkgY29uc3Q7CisgICAg
V0VCQ09SRV9FWFBPUlQgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
Zmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKCkgY29uc3Q7CiAKICAgICBXRUJDT1JF
X0VYUE9SVCBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24qIGNvbnRleHRDb25uZWN0aW9uKCk7
CiAgICAgU3RyaW5nIHVzZXJBZ2VudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cAppbmRleCA5ZjcyZDhkYzYyYjkwYjdlNjQ0MzdjNTg3MGU3OTQ0ZDgxNDYwNjMwLi4yOTFjYzk4
OTJlODEwMjdkOWNhZWQxZDlkYjcwNjFkNzNlNjc0MTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLmNwcApAQCAtMTE1OSw3ICsxMTU5LDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzczo6ZXN0YWJsaXNoU1dTZXJ2ZXJDb25uZWN0aW9uKCkKICAgICBzZXJ2ZXIuYWRkQ29u
bmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKTsKIH0KIAotdm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6ZXN0YWJsaXNoU1dDb250ZXh0Q29ubmVjdGlvbihXZWJQYWdlUHJveHlJ
ZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBSZWdpc3RyYWJsZURvbWFpbiYmIHJlZ2lzdHJhYmxl
RG9tYWluLCBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiBzZXJ2
aWNlV29ya2VyUGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmVzdGFi
bGlzaFNXQ29udGV4dENvbm5lY3Rpb24oV2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJv
eHlJRCwgUmVnaXN0cmFibGVEb21haW4mJiByZWdpc3RyYWJsZURvbWFpbiwgc3RkOjpvcHRpb25h
bDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
CiAgICAgaWYgKGF1dG8qIHNlcnZlciA9IG1fbmV0d29ya1Byb2Nlc3MtPnN3U2VydmVyRm9yU2Vz
c2lvbklmRXhpc3RzKG1fc2Vzc2lvbklEKSkKICAgICAgICAgbV9zd0NvbnRleHRDb25uZWN0aW9u
ID0gbWFrZVVuaXF1ZTxXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24+KCp0aGlzLCB3ZWJQ
YWdlUHJveHlJRCwgV1RGTW92ZShyZWdpc3RyYWJsZURvbWFpbiksIHNlcnZpY2VXb3JrZXJQYWdl
SWRlbnRpZmllciwgKnNlcnZlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggZDFiYmZk
YjAwOTBhOGZjZjhjOGZhOGQxZTBhNmQ1NWJjMmJmOTU2Zi4uZTgxN2I3YjYyZDI0OTc4N2RjNGFi
MTllZGViYjBjNGY2ODUxMmYyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMjUxLDcg
KzI1MSw3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgdm9p
ZCBlc3RhYmxpc2hTV1NlcnZlckNvbm5lY3Rpb24oKTsKLSAgICB2b2lkIGVzdGFibGlzaFNXQ29u
dGV4dENvbm5lY3Rpb24oV2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4mJiwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRl
bnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOworICAgIHZvaWQgZXN0YWJsaXNoU1dDb250ZXh0Q29ubmVjdGlvbihXZWJQYWdl
UHJveHlJZGVudGlmaWVyLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmLCBzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29y
a2VyUGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9p
ZCBjbG9zZVNXQ29udGV4dENvbm5lY3Rpb24oKTsKICAgICB2b2lkIHVucmVnaXN0ZXJTV0Nvbm5l
Y3Rpb24oKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMu
aW4KaW5kZXggZGFlYmE1ZDg0NTgyYzUwNjM5MWIyZWNhMTQzNzEwZDIzYTE3ZGUxMi4uMDA1ZjYz
MmVmNTc3YzljMTZhN2RkN2MxZTZjNjdjOTExYjQyNjc2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9u
VG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC04NCw3ICs4NCw3IEBAIG1lc3NhZ2VzIC0+IE5l
dHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBUYWtlTmV0
d29ya0xvYWRJbmZvcm1hdGlvbk1ldHJpY3MoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXJJZGVudGlm
aWVyIHJlc291cmNlTG9hZElkZW50aWZpZXIpIC0+IChXZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJp
Y3MgbmV0d29ya01ldHJpY3MpIFN5bmNocm9ub3VzCiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JL
RVIpCi0gICAgRXN0YWJsaXNoU1dDb250ZXh0Q29ubmVjdGlvbihXZWJLaXQ6OldlYlBhZ2VQcm94
eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRv
bWFpbiwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmll
cj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKSAtPiAoKSBBc3luYworICAgIEVzdGFibGlz
aFNXQ29udGV4dENvbm5lY3Rpb24oV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBh
Z2VQcm94eUlELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBkb21haW4sIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IHNlcnZpY2VXb3Jr
ZXJQYWdlSWRlbnRpZmllcikgLT4gKCkgQXN5bmMKICAgICBDbG9zZVNXQ29udGV4dENvbm5lY3Rp
b24oKQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
UHJvY2Vzcy5jcHAKaW5kZXggYmUwMDA2NmJhMDMzNTBjZTk2NTc5NWM1OGJhZmE0MTJiYzQ5NTkw
Ny4uNjY2YmNjMWIyMWI5NWQwODkyYjJmMjNmZGMxMjlmYmFlNjFmZTMyMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTI0NzksNyAr
MjQ3OSw3IEBAIFNXU2VydmVyJiBOZXR3b3JrUHJvY2Vzczo6c3dTZXJ2ZXJGb3JTZXNzaW9uKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKICAgICAgICAgICAgIHNob3VsZFJ1blNlcnZpY2VXb3Jr
ZXJzT25NYWluVGhyZWFkRm9yVGVzdGluZyA9IHNlc3Npb24tPnNob3VsZFJ1blNlcnZpY2VXb3Jr
ZXJzT25NYWluVGhyZWFkRm9yVGVzdGluZygpOwogICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxT
V1NlcnZlcj4obWFrZVVuaXF1ZVJlZjxXZWJTV09yaWdpblN0b3JlPigpLCBpbmZvLnByb2Nlc3NU
ZXJtaW5hdGlvbkRlbGF5RW5hYmxlZCwgV1RGTW92ZShwYXRoKSwgc2Vzc2lvbklELCBzaG91bGRS
dW5TZXJ2aWNlV29ya2Vyc09uTWFpblRocmVhZEZvclRlc3RpbmcsIHBhcmVudFByb2Nlc3NIYXNT
ZXJ2aWNlV29ya2VyRW50aXRsZW1lbnQoKSwgW3RoaXMsIHNlc3Npb25JRF0oYXV0byYmIGpvYkRh
dGEsIGJvb2wgc2hvdWxkUmVmcmVzaENhY2hlLCBhdXRvJiYgcmVxdWVzdCwgYXV0byYmIGNvbXBs
ZXRpb25IYW5kbGVyKSBtdXRhYmxlIHsKICAgICAgICAgICAgIFNlcnZpY2VXb3JrZXJTb2Z0VXBk
YXRlTG9hZGVyOjpzdGFydChuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpLCBXVEZNb3ZlKGpvYkRh
dGEpLCBzaG91bGRSZWZyZXNoQ2FjaGUsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKLSAgICAgICAgfSwgW3RoaXMsIHNlc3Npb25JRF0oYXV0byYgcmVnaXN0
cmFibGVEb21haW4sIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+
IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciwgYXV0byYmIGNvbXBsZXRpb25IYW5kbGVyKSB7
CisgICAgICAgIH0sIFt0aGlzLCBzZXNzaW9uSURdKGF1dG8mIHJlZ2lzdHJhYmxlRG9tYWluLCBz
dGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29y
a2VyUGFnZUlkZW50aWZpZXIsIGF1dG8mJiBjb21wbGV0aW9uSGFuZGxlcikgewogICAgICAgICAg
ICAgQVNTRVJUKCFyZWdpc3RyYWJsZURvbWFpbi5pc0VtcHR5KCkpOwogICAgICAgICAgICAgcGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpFc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29y
a1Byb2Nlc3MgeyByZWdpc3RyYWJsZURvbWFpbiwgc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVy
LCBzZXNzaW9uSUQgfSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIDApOwogICAgICAgICB9
LCBXVEZNb3ZlKGFwcEJvdW5kRG9tYWluc0NhbGxiYWNrKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggNTc3OTlhYzA0MzY4NzQ2NDg3ZGQy
NTM2YTE5NTk1MWU1YzA4ZDc2MC4uOWQzMmQ1Nzk3M2EwZWJhYzFkMDcxNzVjNmRmODc5ZDQ2NmNl
NjhhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aApAQCAtOTYsNyArOTYsNiBAQCBzdHJ1Y3QgQ2xpZW50T3JpZ2luOwogc3RydWN0IE1lc3NhZ2VX
aXRoTWVzc2FnZVBvcnRzOwogc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKIHN0cnVjdCBTb3Vw
TmV0d29ya1Byb3h5U2V0dGluZ3M7Ci1zdHJ1Y3QgU2VydmljZVdvcmtlckNsaWVudElkZW50aWZp
ZXI7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suaCBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrLmgKaW5kZXggZDM3ZDc4MDY5ODNiYmE1NDdjYTBmOTIzNWViNGJmNmI3MzE1NjVhNC4u
MDQ5YjNjNDEzYWQ3ZDIxMDFhZTk5NWM3ZDk5YWVlNDdkZmJkZTRiOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRj
aFRhc2suaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
U2VydmljZVdvcmtlckZldGNoVGFzay5oCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiRGF0
YVJlZmVyZW5jZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRmV0Y2hJZGVudGlmaWVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1NlcnZp
Y2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtl
clR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UaW1lci5oPgogI2luY2x1ZGUgPHBhbC9TZXNz
aW9uSUQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vydmlj
ZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKaW5kZXggYTU4
YjRjZmQ5MThmZjQzNmRlYTgwZDhlNGUxZDk2MzZmY2U3NGU1MS4uZTMzNTA5MGFmYTgzYmI4Yzk5
ZmEyYWJkNWE0MjQ3MDhlNTZkYmFiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVj
dGlvbi5jcHAKQEAgLTQzLDE0ICs0MywxMyBAQAogI2luY2x1ZGUgIldlYlNXQ29udGV4dE1hbmFn
ZXJDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJTV1NlcnZlckNvbm5lY3Rpb25N
ZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oIgot
I2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9FeGNlcHRpb25EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9MZWdhY3lTY2hlbWVSZWdpc3Ry
eS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1NXU2VydmVyUmVnaXN0cmF0aW9uLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmln
aW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmg+Ci0jaW5j
bHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU2VydmljZVdvcmtlckNvbnRleHREYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
ZXJ2aWNlV29ya2VySm9iRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VydmljZVdvcmtlclVw
ZGF0ZVZpYUNhY2hlLmg+CkBAIC0xMjYsNyArMTI1LDcgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5l
Y3Rpb246OnNldFJlZ2lzdHJhdGlvblVwZGF0ZVZpYUNhY2hlKFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXQKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0NsaWVudENvbm5lY3Rpb246OlNldFJlZ2lzdHJh
dGlvblVwZGF0ZVZpYUNhY2hlKGlkZW50aWZpZXIsIHVwZGF0ZVZpYUNhY2hlKSk7CiB9CiAKLXZv
aWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpub3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdl
KGNvbnN0IEhhc2hTZXQ8RG9jdW1lbnRJZGVudGlmaWVyPiYgY29udGV4dElkZW50aWZpZXJzLCBj
b25zdCBTZXJ2aWNlV29ya2VyRGF0YSYgbmV3Q29udHJvbGxlcikKK3ZvaWQgV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uOjpub3RpZnlDbGllbnRzT2ZDb250cm9sbGVyQ2hhbmdlKGNvbnN0IEhhc2hTZXQ8
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+JiBjb250ZXh0SWRlbnRpZmllcnMsIGNv
bnN0IFNlcnZpY2VXb3JrZXJEYXRhJiBuZXdDb250cm9sbGVyKQogewogICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6Tm90aWZ5Q2xpZW50c09mQ29udHJvbGxlckNoYW5n
ZShjb250ZXh0SWRlbnRpZmllcnMsIG5ld0NvbnRyb2xsZXIpKTsKIH0KQEAgLTEzNiwxMiArMTM1
LDEyIEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjp1cGRhdGVXb3JrZXJTdGF0ZUluQ2xp
ZW50KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHdvCiAgICAgc2VuZChNZXNzYWdlczo6V2ViU1dD
bGllbnRDb25uZWN0aW9uOjpVcGRhdGVXb3JrZXJTdGF0ZSh3b3JrZXIsIHN0YXRlKSk7CiB9CiAK
LXZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpjb250cm9sQ2xpZW50KFNlcnZpY2VXb3JrZXJD
bGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIsIFNXU2VydmVyUmVnaXN0cmF0aW9uJiBy
ZWdpc3RyYXRpb24sIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKK3ZvaWQgV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uOjpjb250cm9sQ2xpZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyIGNsaWVudElkZW50aWZpZXIsIFNXU2VydmVyUmVnaXN0cmF0aW9uJiByZWdpc3RyYXRp
b24sIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICAgICAvLyBBcyBwZXIgc3Rl
cCAxMiBvZiBodHRwczovL3czYy5naXRodWIuaW8vU2VydmljZVdvcmtlci8jb24tZmV0Y2gtcmVx
dWVzdC1hbGdvcml0aG0sIHRoZSBhY3RpdmUgc2VydmljZSB3b3JrZXIgc2hvdWxkIGJlIGNvbnRy
b2xsaW5nIHRoZSBkb2N1bWVudC4KICAgICAvLyBXZSByZWdpc3RlciBhIHRlbXBvcmFyeSBzZXJ2
aWNlIHdvcmtlciBjbGllbnQgdXNpbmcgdGhlIGlkZW50aWZpZXIgcHJvdmlkZWQgYnkgRG9jdW1l
bnRMb2FkZXIgYW5kIG5vdGlmeSBEb2N1bWVudExvYWRlciBhYm91dCBpdC4KICAgICAvLyBJZiBu
b3RpZmljYXRpb24gaXMgc3VjY2Vzc2Z1bCwgRG9jdW1lbnRMb2FkZXIgd2lsbCB1bnJlZ2lzdGVy
IHRoZSB0ZW1wb3Jhcnkgc2VydmljZSB3b3JrZXIgY2xpZW50IGp1c3QgYWZ0ZXIgdGhlIGRvY3Vt
ZW50IGlzIGNyZWF0ZWQgYW5kIHJlZ2lzdGVyZWQgYXMgYSBjbGllbnQuCi0gICAgc2VuZFdpdGhB
c3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJTV0NsaWVudENvbm5lY3Rpb246OlNldERvY3VtZW50SXND
b250cm9sbGVkIHsgY2xpZW50SWRlbnRpZmllci5jb250ZXh0SWRlbnRpZmllciwgcmVnaXN0cmF0
aW9uLmRhdGEoKSB9LCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgdGhpcywgY2xpZW50
SWRlbnRpZmllcl0oYm9vbCBpc1N1Y2Nlc3MpIHsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6OldlYlNXQ2xpZW50Q29ubmVjdGlvbjo6U2V0RG9jdW1lbnRJc0NvbnRyb2xsZWQgeyBj
bGllbnRJZGVudGlmaWVyLCByZWdpc3RyYXRpb24uZGF0YSgpIH0sIFt3ZWFrVGhpcyA9IFdlYWtQ
dHIgeyAqdGhpcyB9LCB0aGlzLCBjbGllbnRJZGVudGlmaWVyXShib29sIGlzU3VjY2Vzcykgewog
ICAgICAgICBpZiAoIXdlYWtUaGlzIHx8IGlzU3VjY2VzcykKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgdW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoY2xpZW50SWRlbnRpZmllcik7
CkBAIC0xNjcsNyArMTY2LDcgQEAgc3RkOjp1bmlxdWVfcHRyPFNlcnZpY2VXb3JrZXJGZXRjaFRh
c2s+IFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6Y3JlYXRlRmV0Y2hUYXNrKE4KICAgICAgICAgICAg
IHJldHVybiBudWxscHRyOwogCiAgICAgICAgIHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVu
dGlmaWVyID0gcmVnaXN0cmF0aW9uLT5pZGVudGlmaWVyKCk7Ci0gICAgICAgIGNvbnRyb2xDbGll
bnQoU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIgeyBsb2FkZXIuY29ubmVjdGlvblRvV2Vi
UHJvY2VzcygpLndlYlByb2Nlc3NJZGVudGlmaWVyKCksICpsb2FkZXIucGFyYW1ldGVycygpLm9w
dGlvbnMuY2xpZW50SWRlbnRpZmllciB9LCAqcmVnaXN0cmF0aW9uLCByZXF1ZXN0KTsKKyAgICAg
ICAgY29udHJvbENsaWVudCgqbG9hZGVyLnBhcmFtZXRlcnMoKS5vcHRpb25zLmNsaWVudElkZW50
aWZpZXIsICpyZWdpc3RyYXRpb24sIHJlcXVlc3QpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGlm
ICghbG9hZGVyLnBhcmFtZXRlcnMoKS5zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmll
cikKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtMjYyLDcgKzI2MSw3IEBAIHZvaWQg
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihTZXJ2aWNl
V29ya2VySWRlbnRpZmllciBkCiAgICAgV1RGOjpzd2l0Y2hPbihzb3VyY2VJZGVudGlmaWVyLCBb
Jl0oU2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikgewogICAgICAgICBpZiAoYXV0
byogc291cmNlV29ya2VyID0gc2VydmVyKCkud29ya2VyQnlJRChpZGVudGlmaWVyKSkKICAgICAg
ICAgICAgIHNvdXJjZURhdGEgPSBTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhIHsgc291cmNlV29y
a2VyLT5kYXRhKCkgfTsKLSAgICB9LCBbJl0oU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIg
aWRlbnRpZmllcikgeworICAgIH0sIFsmXShTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
ciBpZGVudGlmaWVyKSB7CiAgICAgICAgIGlmIChhdXRvIGNsaWVudERhdGEgPSBkZXN0aW5hdGlv
bldvcmtlci0+ZmluZENsaWVudEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKSkKICAgICAgICAgICAg
IHNvdXJjZURhdGEgPSBTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhIHsgKmNsaWVudERhdGEgfTsK
ICAgICB9KTsKQEAgLTI5MSwxMSArMjkwLDkgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246
OnNjaGVkdWxlSm9iSW5TZXJ2ZXIoU2VydmljZVdvcmtlckpvYkRhdGEmJiBqb2JEYXRhKQogICAg
IHNlcnZlcigpLnNjaGVkdWxlSm9iKFdURk1vdmUoam9iRGF0YSkpOwogfQogCi1VUkwgV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uOjpjbGllbnRVUkxGcm9tSWRlbnRpZmllcihEb2N1bWVudE9yV29ya2Vy
SWRlbnRpZmllciBjb250ZXh0SWRlbnRpZmllcikKK1VSTCBXZWJTV1NlcnZlckNvbm5lY3Rpb246
OmNsaWVudFVSTEZyb21JZGVudGlmaWVyKFNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXIg
Y29udGV4dElkZW50aWZpZXIpCiB7Ci0gICAgcmV0dXJuIFdURjo6c3dpdGNoT24oY29udGV4dElk
ZW50aWZpZXIsIFsmXShEb2N1bWVudElkZW50aWZpZXIgZG9jdW1lbnRJZGVudGlmaWVyKSAtPiBV
UkwgewotICAgICAgICBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBjbGllbnRJZGVudGlm
aWVyIHsgaWRlbnRpZmllcigpLCBkb2N1bWVudElkZW50aWZpZXIgfTsKLQorICAgIHJldHVybiBX
VEY6OnN3aXRjaE9uKGNvbnRleHRJZGVudGlmaWVyLCBbJl0oU2NyaXB0RXhlY3V0aW9uQ29udGV4
dElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmllcikgLT4gVVJMIHsKICAgICAgICAgYXV0byBpdGVy
YXRvciA9IG1fY2xpZW50T3JpZ2lucy5maW5kKGNsaWVudElkZW50aWZpZXIpOwogICAgICAgICBp
ZiAoaXRlcmF0b3IgPT0gbV9jbGllbnRPcmlnaW5zLmVuZCgpKQogICAgICAgICAgICAgcmV0dXJu
IHsgfTsKQEAgLTMxMyw3ICszMTAsNyBAQCBVUkwgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpjbGll
bnRVUkxGcm9tSWRlbnRpZmllcihEb2N1bWVudE9yV29ya2VySWRlbnRpZmllciBjbwogICAgIH0p
OwogfQogCi12b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6c2NoZWR1bGVVbnJlZ2lzdGVySm9i
SW5TZXJ2ZXIoU2VydmljZVdvcmtlckpvYklkZW50aWZpZXIgam9iSWRlbnRpZmllciwgU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgcmVnaXN0cmF0aW9uSWRlbnRpZmllciwgRG9j
dW1lbnRPcldvcmtlcklkZW50aWZpZXIgY29udGV4dElkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoVW5yZWdpc3RlckpvYlJlc3VsdCYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3Zv
aWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzY2hlZHVsZVVucmVnaXN0ZXJKb2JJblNlcnZlcihT
ZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllciBqb2JJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uSWRlbnRpZmllciByZWdpc3RyYXRpb25JZGVudGlmaWVyLCBTZXJ2aWNlV29ya2Vy
T3JDbGllbnRJZGVudGlmaWVyIGNvbnRleHRJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFVucmVnaXN0ZXJKb2JSZXN1bHQmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
U1dTRVJWRVJDT05ORUNUSU9OX1JFTEVBU0VfTE9HKCJTY2hlZHVsaW5nIHVucmVnaXN0ZXIgU2Vy
dmljZVdvcmtlciBqb2IgaW4gc2VydmVyIik7CiAKQEAgLTMzMSw3ICszMjgsNyBAQCB2b2lkIFdl
YlNXU2VydmVyQ29ubmVjdGlvbjo6c2NoZWR1bGVVbnJlZ2lzdGVySm9iSW5TZXJ2ZXIoU2Vydmlj
ZVdvcmtlckpvYklkZW50aQogICAgIHNlcnZlcigpLnNjaGVkdWxlVW5yZWdpc3RlckpvYihTZXJ2
aWNlV29ya2VySm9iRGF0YUlkZW50aWZpZXIgeyBpZGVudGlmaWVyKCksIGpvYklkZW50aWZpZXIg
fSwgKnJlZ2lzdHJhdGlvbiwgY29udGV4dElkZW50aWZpZXIsIFdURk1vdmUoY2xpZW50VVJMKSk7
CiB9CiAKLXZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdv
cmtlckNsaWVudChEb2N1bWVudElkZW50aWZpZXIgZGVzdGluYXRpb25Db250ZXh0SWRlbnRpZmll
ciwgY29uc3QgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmIG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKQor
dm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xp
ZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGRlc3RpbmF0aW9uQ29udGV4dElk
ZW50aWZpZXIsIGNvbnN0IE1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiBtZXNzYWdlLCBTZXJ2aWNl
V29ya2VySWRlbnRpZmllciBzb3VyY2VJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9y
aWdpbikKIHsKICAgICBhdXRvKiBzb3VyY2VTZXJ2aWNlV29ya2VyID0gc2VydmVyKCkud29ya2Vy
QnlJRChzb3VyY2VJZGVudGlmaWVyKTsKICAgICBpZiAoIXNvdXJjZVNlcnZpY2VXb3JrZXIpCkBA
IC0zODEsNyArMzc4LDcgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnJlZ2lzdGVyU2Vy
dmljZVdvcmtlckNsaWVudChTZWN1cml0eU9yaWdpbkRhdGEmJiB0b3AKICAgICB9CiB9CiAKLXZv
aWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjp1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChj
b25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYgY2xpZW50SWRlbnRpZmllcikKK3Zv
aWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjp1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChj
b25zdCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciYgY2xpZW50SWRlbnRpZmllcikK
IHsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV9jbGllbnRPcmlnaW5zLmZpbmQoY2xpZW50SWRlbnRp
Zmllcik7CiAgICAgaWYgKGl0ZXJhdG9yID09IG1fY2xpZW50T3JpZ2lucy5lbmQoKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaAppbmRleCA2OTU3YWRlZjkwZmY0M2E5NTJiMzc2
OTAwYTdkOTk5NjA2OWZjMWYyLi4yNjg1NTU0ZjlmZWNkZDQ1MWVhNmQ3Njg4MTQyNDU5OTQ4MWE3
Y2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCkBAIC05MiwxMyArOTIs
MTMgQEAgcHJpdmF0ZToKICAgICB2b2lkIGZpcmVVcGRhdGVGb3VuZEV2ZW50KFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIHNldFJl
Z2lzdHJhdGlvbkxhc3RVcGRhdGVUaW1lKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JZGVudGlmaWVyLCBXYWxsVGltZSkgZmluYWw7CiAgICAgdm9pZCBzZXRSZWdpc3RyYXRpb25V
cGRhdGVWaWFDYWNoZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmll
ciwgV2ViQ29yZTo6U2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlKSBmaW5hbDsKLSAgICB2b2lk
IG5vdGlmeUNsaWVudHNPZkNvbnRyb2xsZXJDaGFuZ2UoY29uc3QgSGFzaFNldDxXZWJDb3JlOjpE
b2N1bWVudElkZW50aWZpZXI+JiBjb250ZXh0SWRlbnRpZmllcnMsIGNvbnN0IFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJEYXRhJiBuZXdDb250cm9sbGVyKTsKKyAgICB2b2lkIG5vdGlmeUNsaWVudHNP
ZkNvbnRyb2xsZXJDaGFuZ2UoY29uc3QgSGFzaFNldDxXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllcj4mIGNvbnRleHRJZGVudGlmaWVycywgY29uc3QgV2ViQ29yZTo6U2Vy
dmljZVdvcmtlckRhdGEmIG5ld0NvbnRyb2xsZXIpOwogICAgIHZvaWQgcmVnaXN0cmF0aW9uUmVh
ZHkodWludDY0X3QgcmVnaXN0cmF0aW9uUmVhZHlSZXF1ZXN0SWRlbnRpZmllciwgV2ViQ29yZTo6
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmJikgZmluYWw7CiAKICAgICB2b2lkIHNjaGVk
dWxlSm9iSW5TZXJ2ZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGEmJik7CiAKICAgICB1
c2luZyBVbnJlZ2lzdGVySm9iUmVzdWx0ID0gRXhwZWN0ZWQ8Ym9vbCwgV2ViQ29yZTo6RXhjZXB0
aW9uRGF0YT47Ci0gICAgdm9pZCBzY2hlZHVsZVVucmVnaXN0ZXJKb2JJblNlcnZlcihXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OkRvY3VtZW50T3JXb3JrZXJJZGVudGlmaWVyLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFVucmVnaXN0ZXJKb2JSZXN1bHQmJik+JiYpOworICAgIHZv
aWQgc2NoZWR1bGVVbnJlZ2lzdGVySm9iSW5TZXJ2ZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlckpv
YklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVy
LCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFVucmVnaXN0ZXJKb2JSZXN1bHQmJik+JiYpOwogCiAgICAgdm9pZCBzdGFydEZl
dGNoKFNlcnZpY2VXb3JrZXJGZXRjaFRhc2smLCBXZWJDb3JlOjpTV1NlcnZlcldvcmtlciYpOwog
CkBAIC0xMDYsMTEgKzEwNiwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0UmVnaXN0cmF0aW9u
cyh1aW50NjRfdCByZWdpc3RyYXRpb25NYXRjaFJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwp
OwogCiAgICAgdm9pZCByZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiYgdG9wT3JpZ2luLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0
YSYmLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JZGVudGlmaWVyPiYsIFN0cmluZyYmIHVzZXJBZ2VudCk7Ci0gICAgdm9pZCB1bnJlZ2lzdGVy
U2VydmljZVdvcmtlckNsaWVudChjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRl
bnRpZmllciYpOworICAgIHZvaWQgdW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoY29uc3Qg
V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXImKTsKICAgICB2b2lkIHRl
cm1pbmF0ZVdvcmtlckZyb21DbGllbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCB3aGVuU2VydmljZVdvcmtl
cklzVGVybWluYXRlZEZvclRlc3RpbmcoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKLSAgICB2b2lkIHBvc3RNZXNzYWdlVG9T
ZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllciBkZXN0aW5hdGlv
bkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0
cyYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZVNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbikgZmluYWw7CisgICAgdm9pZCBw
b3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllciBkZXN0aW5hdGlvbkNvbnRleHRJZGVudGlmaWVyLCBjb25zdCBXZWJD
b3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyIHNvdXJjZVNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZU9yaWdpbikgZmluYWw7CiAKICAgICB2b2lkIGNvbnRleHRDb25uZWN0aW9uQ3JlYXRlZChXZWJD
b3JlOjpTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24mKSBmaW5hbDsKIApAQCAtMTI2LDkgKzEy
Niw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRQdXNoUGVybWlzc2lvblN0YXRlKFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKEV4cGVjdGVkPHVpbnQ4X3QsIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+JiYpPiYmKTsKIAog
ICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtl
cklkZW50aWZpZXIgZGVzdGluYXRpb24sIFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRz
JiYsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXImIHNvdXJj
ZSk7Ci0gICAgdm9pZCBjb250cm9sQ2xpZW50KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpTV1NlcnZlclJlZ2lzdHJhdGlvbiYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYpOworICAgIHZvaWQgY29udHJvbENsaWVudChXZWJDb3JlOjpTY3Jp
cHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6U1dTZXJ2ZXJSZWdpc3RyYXRp
b24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKIAotICAgIFVSTCBjbGllbnRV
UkxGcm9tSWRlbnRpZmllcihXZWJDb3JlOjpEb2N1bWVudE9yV29ya2VySWRlbnRpZmllcik7Cisg
ICAgVVJMIGNsaWVudFVSTEZyb21JZGVudGlmaWVyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJPckNs
aWVudElkZW50aWZpZXIpOwogCiAgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29u
bmVjdGlvbigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29udGVudENvbm5lY3Rpb24ucHRyKCk7
IH0KICAgICB1aW50NjRfdCBtZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIDA7IH0KQEAgLTEzNyw3ICsxMzcsNyBAQCBwcml2YXRlOgogCiAgICAgUmVmPElQ
Qzo6Q29ubmVjdGlvbj4gbV9jb250ZW50Q29ubmVjdGlvbjsKICAgICBSZWY8TmV0d29ya1Byb2Nl
c3M+IG1fbmV0d29ya1Byb2Nlc3M7Ci0gICAgSGFzaE1hcDxXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllciwgV2ViQ29yZTo6Q2xpZW50T3JpZ2luPiBtX2NsaWVudE9yaWdpbnM7
CisgICAgSGFzaE1hcDxXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwg
V2ViQ29yZTo6Q2xpZW50T3JpZ2luPiBtX2NsaWVudE9yaWdpbnM7CiAgICAgSGFzaE1hcDxXZWJD
b3JlOjpTZXJ2aWNlV29ya2VySm9iSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChV
bnJlZ2lzdGVySm9iUmVzdWx0JiYpPj4gbV91bnJlZ2lzdGVySm9iczsKICAgICBib29sIG1faXNU
aHJvdHRsZWFibGUgeyB0cnVlIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZl
ckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggZTFlMmYzYmY5MjVkOTI5NDE4OTk3NmNlOTRi
ODhmN2Q3ZWYxOTMwMi4uZDVjODQwMDhlZDJiZWMyMDQ2NGE4YzAxYjk3YWIwNGE5NTA2YzYxNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmlu
CkBAIC0yNSw3ICsyNSw3IEBACiBtZXNzYWdlcyAtPiBXZWJTV1NlcnZlckNvbm5lY3Rpb24gTm90
UmVmQ291bnRlZCB7CiAgICAgIyBXaGVuIHBvc3NpYmxlLCB0aGVzZSBtZXNzYWdlcyBjYW4gYmUg
aW1wbGVtZW50ZWQgZGlyZWN0bHkgYnkgV2ViQ29yZTo6U1dDbGllbnRDb25uZWN0aW9uCiAgICAg
U2NoZWR1bGVKb2JJblNlcnZlcihzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGEg
am9iRGF0YSkKLSAgICBTY2hlZHVsZVVucmVnaXN0ZXJKb2JJblNlcnZlcihXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySm9iSWRlbnRpZmllciBqb2JJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpEb2N1bWVudE9y
V29ya2VySWRlbnRpZmllciBkb2N1bWVudElkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxib29sLCBX
ZWJDb3JlOjpFeGNlcHRpb25EYXRhPiByZXN1bHQpIEFzeW5jCisgICAgU2NoZWR1bGVVbnJlZ2lz
dGVySm9iSW5TZXJ2ZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYklkZW50aWZpZXIgam9iSWRl
bnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRl
bnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciBkb2N1bWVu
dElkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxib29sLCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiBy
ZXN1bHQpIEFzeW5jCiAKICAgICBGaW5pc2hGZXRjaGluZ1NjcmlwdEluU2VydmVyKHN0cnVjdCBX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyRmV0Y2hSZXN1bHQgcmVzdWx0KQogICAgIEFkZFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25JblNlcnZlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKQpAQCAtMzksNyArMzksNyBAQCBtZXNzYWdlcyAtPiBX
ZWJTV1NlcnZlckNvbm5lY3Rpb24gTm90UmVmQ291bnRlZCB7CiAgICAgV2hlblJlZ2lzdHJhdGlv
blJlYWR5KHVpbnQ2NF90IHNlcnZpY2VSZWdpc3RyYXRpb25NYXRjaFJlcXVlc3RJZGVudGlmaWVy
LCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhIHRvcE9yaWdpbiwgVVJMIGNsaWVu
dFVSTCkKICAgICBHZXRSZWdpc3RyYXRpb25zKHVpbnQ2NF90IHNlcnZpY2VSZWdpc3RyYXRpb25N
YXRjaFJlcXVlc3RJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
IHRvcE9yaWdpbiwgVVJMIGNsaWVudFVSTCkKICAgICBSZWdpc3RlclNlcnZpY2VXb3JrZXJDbGll
bnQoc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSB0b3BPcmlnaW4sIHN0cnVjdCBX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSBkYXRhLCBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyPiBjb250cm9sbGluZ1NlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBTdHJpbmcgdXNlckFnZW50KQotICAgIFVu
cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllciBpZGVudGlmaWVyKQorICAgIFVucmVnaXN0ZXJTZXJ2aWNlV29ya2Vy
Q2xpZW50KFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGlkZW50aWZp
ZXIpCiAKICAgICBUZXJtaW5hdGVXb3JrZXJGcm9tQ2xpZW50KFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyIHdvcmtlcklkZW50aWZpZXIpIC0+ICgpIEFzeW5jCiAgICAgV2hlblNlcnZp
Y2VXb3JrZXJJc1Rlcm1pbmF0ZWRGb3JUZXN0aW5nKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyIHdvcmtlcklkZW50aWZpZXIpIC0+ICgpIEFzeW5jCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtl
ci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCmluZGV4IDg1ZWVkYzZlOTYzMmM2
ZDI2MGVjYTFiMjIwYTljNTNhODg4YzFlMmMuLjhiMjEzODUyZDBmMTE3ZGVmODE5ZDQ1MmRiN2I4
ZmNmNDllMzc1NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4
dENvbm5lY3Rpb24uY3BwCkBAIC00NCw3ICs0NCw3IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb246
OldlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYgY29ubmVjdGlvbiwgV2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwg
UmVnaXN0cmFibGVEb21haW4mJiByZWdpc3RyYWJsZURvbWFpbiwgc3RkOjpvcHRpb25hbDxTZXJ2
aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyLCBT
V1NlcnZlciYgc2VydmVyKQorV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpXZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24oTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNv
bm5lY3Rpb24sIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFJlZ2lzdHJh
YmxlRG9tYWluJiYgcmVnaXN0cmFibGVEb21haW4sIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0
aW9uQ29udGV4dElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciwgU1dTZXJ2
ZXImIHNlcnZlcikKICAgICA6IFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbihXVEZNb3ZlKHJl
Z2lzdHJhYmxlRG9tYWluKSwgc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKQogICAgICwgbV9j
b25uZWN0aW9uKGNvbm5lY3Rpb24pCiAgICAgLCBtX3NlcnZlcihzZXJ2ZXIpCkBAIC03OCwxMyAr
NzgsMTMgQEAgdWludDY0X3QgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjptZXNzYWdl
U2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgV2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNs
aWVudChjb25zdCBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciYgZGVzdGluYXRpb25JZGVu
dGlmaWVyLCBjb25zdCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYgbWVzc2FnZSwgU2VydmljZVdv
cmtlcklkZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmln
aW4pCit2b2lkIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1Nl
cnZpY2VXb3JrZXJDbGllbnQoY29uc3QgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIm
IGRlc3RpbmF0aW9uSWRlbnRpZmllciwgY29uc3QgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmIG1l
c3NhZ2UsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgc291cmNlT3JpZ2luKQogewogICAgIGlmICghbV9zZXJ2ZXIpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV9zZXJ2ZXItPmNvbm5lY3Rpb24oZGVz
dGluYXRpb25JZGVudGlmaWVyLnNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKSkKLSAgICAgICAg
Y29ubmVjdGlvbi0+cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoZGVzdGluYXRpb25J
ZGVudGlmaWVyLmNvbnRleHRJZGVudGlmaWVyLCBtZXNzYWdlLCBzb3VyY2VJZGVudGlmaWVyLCBz
b3VyY2VPcmlnaW4pOworICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gbV9zZXJ2ZXItPmNvbm5l
Y3Rpb24oZGVzdGluYXRpb25JZGVudGlmaWVyLnByb2Nlc3NJZGVudGlmaWVyKCkpKQorICAgICAg
ICBjb25uZWN0aW9uLT5wb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChkZXN0aW5hdGlv
bklkZW50aWZpZXIsIG1lc3NhZ2UsIHNvdXJjZUlkZW50aWZpZXIsIHNvdXJjZU9yaWdpbik7CiB9
CiAKIHZvaWQgV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjppbnN0YWxsU2VydmljZVdv
cmtlckNvbnRleHQoY29uc3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhJiBjb250ZXh0RGF0YSwg
Y29uc3QgU2VydmljZVdvcmtlckRhdGEmIHdvcmtlckRhdGEsIGNvbnN0IFN0cmluZyYgdXNlckFn
ZW50LCBXb3JrZXJUaHJlYWRNb2RlIHdvcmtlclRocmVhZE1vZGUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRl
eHRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgKaW5kZXggZTM3NDA3ODZhZWRjZGY3
MzRhNjcyZjM2YjEyNzk3MGQ0MTg1ZjZlMi4uNGEwYjE1MzcxZmY5NjcxNTlkZmU2NjEyNThlNDU1
NzZlNzUyMTEwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENv
bm5lY3Rpb24uaApAQCAtNTYsNyArNTYsNyBAQCBjbGFzcyBXZWJTV1NlcnZlckNvbm5lY3Rpb247
CiAKIGNsYXNzIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjogcHVibGljIFdlYkNvcmU6
OlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiwgcHVibGljIElQQzo6TWVzc2FnZVNlbmRlciwg
cHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoKLSAgICBXZWJTV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb24oTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBXZWJQYWdl
UHJveHlJZGVudGlmaWVyLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmLCBzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2Vy
UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNXU2VydmVyJik7CisgICAgV2ViU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uKE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiwgV2ViUGFnZVBy
b3h5SWRlbnRpZmllciwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiwgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtl
clBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTV1NlcnZlciYpOwogICAgIH5XZWJTV1NlcnZlclRv
Q29udGV4dENvbm5lY3Rpb24oKTsKIAogICAgIElQQzo6Q29ubmVjdGlvbiYgaXBjQ29ubmVjdGlv
bigpIGNvbnN0OwpAQCAtODIsNyArODIsNyBAQCBwcml2YXRlOgogICAgIElQQzo6Q29ubmVjdGlv
biogbWVzc2FnZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdCBmaW5hbDsKICAgICB1aW50NjRfdCBt
ZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0IGZpbmFsOwogCi0gICAgdm9pZCBwb3N0
TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllciYgZGVzdGluYXRpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpN
ZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
IHNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKTsKKyAgICB2b2lk
IHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFdlYkNvcmU6OlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyJiBkZXN0aW5hdGlvbklkZW50aWZpZXIsIGNvbnN0IFdl
YkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklk
ZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pOwog
CiAgICAgLy8gTWVzc2FnZXMgdG8gdGhlIFNXIGhvc3QgV2ViUHJvY2VzcwogICAgIHZvaWQgaW5z
dGFsbFNlcnZpY2VXb3JrZXJDb250ZXh0KGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250
ZXh0RGF0YSYsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJEYXRhJiwgY29uc3QgU3RyaW5n
JiB1c2VyQWdlbnQsIFdlYkNvcmU6OldvcmtlclRocmVhZE1vZGUpIGZpbmFsOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24ubWVzc2Fn
ZXMuaW4KaW5kZXggNTUyY2FlNWUyMjQ0MjQyZGY1MDMyYTAyODZmMGZiYWU5OTI0NjUxMi4uZmQ3
MTk0OGM1ZjM1OTk5ZjU1MmRmMWRmZDYzNTJjMTNkMmY1ZjgxZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLm1lc3NhZ2VzLmlu
CkBAIC0zMiwxMSArMzIsMTEgQEAgbWVzc2FnZXMgLT4gV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25u
ZWN0aW9uIE5vdFJlZkNvdW50ZWQgewogICAgIFNldFNlcnZpY2VXb3JrZXJIYXNQZW5kaW5nRXZl
bnRzKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgaGFz
UGVuZGluZ0V2ZW50cykKICAgICBTa2lwV2FpdGluZyhXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRl
bnRpZmllciBpZGVudGlmaWVyKSAtPiAoKSBBc3luYwogICAgIFdvcmtlclRlcm1pbmF0ZWQoV2Vi
Q29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgaWRlbnRpZmllcikKLSAgICBGaW5kQ2xpZW50
QnlJZGVudGlmaWVyKHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNl
V29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCisgICAgRmlu
ZENsaWVudEJ5SWRlbnRpZmllcih1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciwgV2ViQ29yZTo6
U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGNsaWVudElkZW50aWZpZXIpCiAgICAg
TWF0Y2hBbGwodWludDY0X3QgbWF0Y2hBbGxSZXF1ZXN0SWRlbnRpZmllciwgV2ViQ29yZTo6U2Vy
dmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIHN0cnVjdCBXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50UXVlcnlPcHRpb25zIG9wdGlvbnMpOwogICAgIENsYWlt
KFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
KSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiByZXN1bHQpIEFzeW5j
CiAgICAgU2V0U2NyaXB0UmVzb3VyY2UoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIg
aWRlbnRpZmllciwgVVJMIHNjcmlwdFVSTCwgV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRleHRE
YXRhOjpJbXBvcnRlZFNjcmlwdCBzY3JpcHQpCi0gICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3Jr
ZXJDbGllbnQoc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIGRl
c3RpbmF0aW9uLCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMgbWVzc2Fn
ZSwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc291cmNlLCBTdHJpbmcgc291cmNl
T3JpZ2luKQorICAgIFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KFdlYkNvcmU6OlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGRlc3RpbmF0aW9uLCBzdHJ1Y3QgV2ViQ29y
ZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMgbWVzc2FnZSwgV2ViQ29yZTo6U2VydmljZVdvcmtl
cklkZW50aWZpZXIgc291cmNlLCBTdHJpbmcgc291cmNlT3JpZ2luKQogICAgIERpZEZhaWxIZWFy
dEJlYXRDaGVjayhXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBpZGVudGlmaWVyKQog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3
b3JrTUROU1JlZ2lzdGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRj
L05ldHdvcmtNRE5TUmVnaXN0ZXIuY3BwCmluZGV4IDc5N2U1ODQzN2NiYmNkYTU4NmE3MmIwYzAz
MTc2OTQ1NjkxZmRlNzYuLjMyODJjYjQ5MDFkNTk3MDY5MjVmMWJkZjIzMzExMjhhMDM1YjM3MmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtN
RE5TUmVnaXN0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRj
L05ldHdvcmtNRE5TUmVnaXN0ZXIuY3BwCkBAIC01NCw3ICs1NCw3IEBAIE5ldHdvcmtNRE5TUmVn
aXN0ZXI6On5OZXR3b3JrTUROU1JlZ2lzdGVyKCkKIH0KIAogI2lmIEVOQUJMRV9NRE5TCi12b2lk
IE5ldHdvcmtNRE5TUmVnaXN0ZXI6OnVucmVnaXN0ZXJNRE5TTmFtZXMoV2ViQ29yZTo6RG9jdW1l
bnRJZGVudGlmaWVyIGRvY3VtZW50SWRlbnRpZmllcikKK3ZvaWQgTmV0d29ya01ETlNSZWdpc3Rl
cjo6dW5yZWdpc3Rlck1ETlNOYW1lcyhXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllciBkb2N1bWVudElkZW50aWZpZXIpCiB7CiAgICAgYXV0byBpdGVyYXRvciA9IG1fc2Vy
dmljZXMuZmluZChkb2N1bWVudElkZW50aWZpZXIpOwogICAgIGlmIChpdGVyYXRvciA9PSBtX3Nl
cnZpY2VzLmVuZCgpKQpAQCAtMTA0LDcgKzEwNCw3IEBAIHN0YXRpYyB2b2lkIHJlZ2lzdGVyTURO
U05hbWVDYWxsYmFjayhETlNTZXJ2aWNlUmVmLCBETlNSZWNvcmRSZWYgcmVjb3JkLCBETlNTZXJ2
CiAgICAgcmVxdWVzdC0+Y29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2ViTUROU1JlZ2lzdGVy
OjpGaW5pc2hlZFJlZ2lzdGVyaW5nTUROU05hbWUgeyByZXF1ZXN0LT5yZXF1ZXN0SWRlbnRpZmll
ciwgcmVxdWVzdC0+bmFtZSwgeyB9IH0sIDApOwogfQogCi12b2lkIE5ldHdvcmtNRE5TUmVnaXN0
ZXI6OnJlZ2lzdGVyTUROU05hbWUoTUROU1JlZ2lzdGVySWRlbnRpZmllciByZXF1ZXN0SWRlbnRp
ZmllciwgV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyIGRvY3VtZW50SWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBpcEFkZHJlc3MpCit2b2lkIE5ldHdvcmtNRE5TUmVnaXN0ZXI6OnJlZ2lzdGVy
TUROU05hbWUoTUROU1JlZ2lzdGVySWRlbnRpZmllciByZXF1ZXN0SWRlbnRpZmllciwgV2ViQ29y
ZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgZG9jdW1lbnRJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIGlwQWRkcmVzcykKIHsKICAgICBhdXRvIG5hbWUgPSBtYWtlU3RyaW5nKGNy
ZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKSwgIi5sb2NhbCIpOwogCkBAIC0xNjUsMTEgKzE2NSwx
MSBAQCB2b2lkIE5ldHdvcmtNRE5TUmVnaXN0ZXI6OnJlZ2lzdGVyTUROU05hbWUoTUROU1JlZ2lz
dGVySWRlbnRpZmllciByZXF1ZXN0SWRlbnRpZgogCiAjZWxzZQogCi12b2lkIE5ldHdvcmtNRE5T
UmVnaXN0ZXI6OnVucmVnaXN0ZXJNRE5TTmFtZXMoV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVy
KQordm9pZCBOZXR3b3JrTUROU1JlZ2lzdGVyOjp1bnJlZ2lzdGVyTUROU05hbWVzKFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKQogewogfQogCi12b2lkIE5ldHdvcmtN
RE5TUmVnaXN0ZXI6OnJlZ2lzdGVyTUROU05hbWUoTUROU1JlZ2lzdGVySWRlbnRpZmllciByZXF1
ZXN0SWRlbnRpZmllciwgV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyIGRvY3VtZW50SWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBpcEFkZHJlc3MpCit2b2lkIE5ldHdvcmtNRE5TUmVnaXN0ZXI6
OnJlZ2lzdGVyTUROU05hbWUoTUROU1JlZ2lzdGVySWRlbnRpZmllciByZXF1ZXN0SWRlbnRpZmll
ciwgV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgZG9jdW1lbnRJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIGlwQWRkcmVzcykKIHsKICAgICBNRE5TX1JFTEVBU0VfTE9H
KCJyZWdpc3Rlck1ETlNOYW1lIG5vdCBpbXBsZW1lbnRlZCIpOwogICAgIGF1dG8gbmFtZSA9IG1h
a2VTdHJpbmcoY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpLCAiLmxvY2FsIik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrTUROU1JlZ2lz
dGVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrTUROU1Jl
Z2lzdGVyLmgKaW5kZXggM2M3NTQ3MGZiNTE1OTEwMzFkNTY0YjdiMWQ5NjEyNTc3NGUzZDRkOC4u
MDEzYjE4NWU2YjQ3MjY3NTMzNmVmYjgwMmFjZmVmYmFmYjJhOGQ5YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya01ETlNSZWdpc3Rlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtNRE5TUmVnaXN0
ZXIuaApAQCAtMjksNyArMjksNyBAQAogCiAjaW5jbHVkZSAiTUROU1JlZ2lzdGVySWRlbnRpZmll
ci5oIgogI2luY2x1ZGUgIlJUQ05ldHdvcmsuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50
SWRlbnRpZmllci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIuaD4KICNpbmNsdWRlIDx3dGYvRXhwZWN0ZWQuaD4KICNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC02NSwxNCArNjUsMTQgQEAgcHVi
bGljOgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpE
ZWNvZGVyJik7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCB1bnJlZ2lzdGVyTUROU05hbWVzKFdlYkNv
cmU6OkRvY3VtZW50SWRlbnRpZmllcik7Ci0gICAgdm9pZCByZWdpc3Rlck1ETlNOYW1lKE1ETlNS
ZWdpc3RlcklkZW50aWZpZXIsIFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBpcEFkZHJlc3MpOworICAgIHZvaWQgdW5yZWdpc3Rlck1ETlNOYW1lcyhXZWJDb3JlOjpT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcik7CisgICAgdm9pZCByZWdpc3Rlck1ETlNO
YW1lKE1ETlNSZWdpc3RlcklkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGlwQWRkcmVzcyk7CiAgICAgCiAgICAgUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKCkgY29uc3Q7CiAKICAgICBOZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2VzcyYgbV9jb25uZWN0aW9uOwogI2lmIEVOQUJMRV9NRE5TCi0gICAgSGFzaE1hcDxXZWJD
b3JlOjpEb2N1bWVudElkZW50aWZpZXIsIEROU1NlcnZpY2VSZWY+IG1fc2VydmljZXM7CisgICAg
SGFzaE1hcDxXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgRE5TU2Vy
dmljZVJlZj4gbV9zZXJ2aWNlczsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya01ETlNSZWdpc3Rlci5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtNRE5TUmVnaXN0
ZXIubWVzc2FnZXMuaW4KaW5kZXggMTU4Mzk2MzNkNTUzZTAwNWNjY2I5Yjc0ZmMwYzE4ZmQxMDdk
ZjUxNC4uMWQyNzVkOWJlMjJlM2I1NjBjNDVmNDFlYmFmN2I5ZDJjNTYzZjY2OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya01ETlNSZWdpc3Rl
ci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9O
ZXR3b3JrTUROU1JlZ2lzdGVyLm1lc3NhZ2VzLmluCkBAIC0yMyw4ICsyMyw4IEBACiAjaWYgRU5B
QkxFKFdFQl9SVEMpCiAKIG1lc3NhZ2VzIC0+IE5ldHdvcmtNRE5TUmVnaXN0ZXIgTm90UmVmQ291
bnRlZCB7Ci0gICAgVW5yZWdpc3Rlck1ETlNOYW1lcyhXZWJDb3JlOjpEb2N1bWVudElkZW50aWZp
ZXIgZG9jdW1lbnRJZGVudGlmaWVyKQotICAgIFJlZ2lzdGVyTUROU05hbWUoV2ViS2l0OjpNRE5T
UmVnaXN0ZXJJZGVudGlmaWVyIHJlcXVlc3RJZGVudGlmaWVyLCBXZWJDb3JlOjpEb2N1bWVudElk
ZW50aWZpZXIgZG9jdW1lbnRJZGVudGlmaWVyLCBTdHJpbmcgaXBBZGRyZXNzKQorICAgIFVucmVn
aXN0ZXJNRE5TTmFtZXMoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIg
ZG9jdW1lbnRJZGVudGlmaWVyKQorICAgIFJlZ2lzdGVyTUROU05hbWUoV2ViS2l0OjpNRE5TUmVn
aXN0ZXJJZGVudGlmaWVyIHJlcXVlc3RJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRp
b25Db250ZXh0SWRlbnRpZmllciBkb2N1bWVudElkZW50aWZpZXIsIFN0cmluZyBpcEFkZHJlc3Mp
CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX1JUQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5CmluZGV4IGU5YjJiNDI2NDY0MDNhZWVjZDIyOGI5N2EyZmZmZmM1MDU5
OWE3NzEuLmM1ZjVmNTA5NzNjN2I0MjQ5MGM1ZGU0YmE1YThhMTEwYWE3NTIzOTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNl
L1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMjc2LDggKzI3Niw2IEBAIGRl
ZiB0eXBlc190aGF0X2Nhbm5vdF9iZV9mb3J3YXJkX2RlY2xhcmVkKCk6CiAgICAgICAgICdXZWJD
b3JlOjpEaWFnbm9zdGljTG9nZ2luZ0RvbWFpbicsCiAgICAgICAgICdXZWJDb3JlOjpEaWN0YXRp
b25Db250ZXh0JywKICAgICAgICAgJ1dlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVtQnVmZmVySWRl
bnRpZmllcicsCi0gICAgICAgICdXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXInLAotICAgICAg
ICAnV2ViQ29yZTo6RG9jdW1lbnRPcldvcmtlcklkZW50aWZpZXInLAogICAgICAgICAnV2ViQ29y
ZTo6RHJhZ0FwcGxpY2F0aW9uRmxhZ3MnLAogICAgICAgICAnV2ViQ29yZTo6RmV0Y2hJZGVudGlm
aWVyJywKICAgICAgICAgJ1dlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyJywKQEAg
LTMwMSw2ICsyOTksNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJl
ZCgpOgogICAgICAgICAnV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyJywKICAg
ICAgICAgJ1dlYkNvcmU6OlJlc291cmNlTG9hZGVySWRlbnRpZmllcicsCiAgICAgICAgICdXZWJD
b3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYkNvcmU6OlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JJ
ZGVudGlmaWVyJywKICAgICAgICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJPckNsaWVudERhdGEn
LApAQCAtNzU3LDcgKzc1Niw2IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAg
ICAnV2ViQ29yZTo6RGVzdGluYXRpb25Db2xvclNwYWNlJzogWyc8V2ViQ29yZS9Db2xvclNwYWNl
Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcklkZW50aWZp
ZXInOiBbJzxXZWJDb3JlL0Rpc3BsYXlMaXN0Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpEb2N1
bWVudE1hcmtlckxpbmVTdHlsZSc6IFsnPFdlYkNvcmUvR3JhcGhpY3NUeXBlcy5oPiddLAotICAg
ICAgICAnV2ViQ29yZTo6RG9jdW1lbnRPcldvcmtlcklkZW50aWZpZXInOiBbJzxXZWJDb3JlL1Nl
cnZpY2VXb3JrZXJUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9u
RmxhZ3MnOiBbJzxXZWJDb3JlL0RyYWdEYXRhLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpEcmFn
SGFuZGxpbmdNZXRob2QnOiBbJzxXZWJDb3JlL0RyYWdBY3Rpb25zLmg+J10sCiAgICAgICAgICdX
ZWJDb3JlOjpEcmFnT3BlcmF0aW9uJzogWyc8V2ViQ29yZS9EcmFnQWN0aW9ucy5oPiddLApAQCAt
ODE2LDEzICs4MTQsMTQgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdX
ZWJDb3JlOjpSb3V0ZVNoYXJpbmdQb2xpY3knOiBbJzxXZWJDb3JlL0F1ZGlvU2Vzc2lvbi5oPidd
LAogICAgICAgICAnV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcic6IFsnPFdl
YkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpTYW1lU2l0
ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCc6IFsnPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNz
aW9uLmg+J10sCisgICAgICAgICdXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
Zmllcic6IFsnPFdlYkNvcmUvUHJvY2Vzc1F1YWxpZmllZC5oPicsICc8V2ViQ29yZS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oPicsICc8d3RmL09iamVjdElkZW50aWZpZXIuaD4n
XSwKICAgICAgICAgJ1dlYkNvcmU6OlNjcm9sbEdyYW51bGFyaXR5JzogWyc8V2ViQ29yZS9TY3Jv
bGxUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25F
dmVudEluaXQnOiBbJzxXZWJDb3JlL1NlY3VyaXR5UG9saWN5VmlvbGF0aW9uRXZlbnQuaD4nXSwK
ICAgICAgICAgJ1dlYkNvcmU6OlNlbGVjdGlvbkRpcmVjdGlvbic6IFsnPFdlYkNvcmUvVmlzaWJs
ZVNlbGVjdGlvbi5oPiddLAogICAgICAgICAnV2ViQ29yZTo6U2VsZWN0aW9uR2VvbWV0cnknOiBb
JyJFZGl0b3JTdGF0ZS5oIiddLAogICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlckpvYklk
ZW50aWZpZXInOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5oPiddLAogICAgICAgICAn
V2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50RGF0YSc6IFsnPFdlYkNvcmUvU2VydmljZVdv
cmtlclR5cGVzLmg+JywgJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJDbGllbnREYXRhLmg+JywgJzxX
ZWJDb3JlL1NlcnZpY2VXb3JrZXJEYXRhLmg+J10sCi0gICAgICAgICdXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyT3JDbGllbnRJZGVudGlmaWVyJzogWyc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMu
aD4nLCAnPFdlYkNvcmUvU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIuaD4nXSwKKyAgICAg
ICAgJ1dlYkNvcmU6OlNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXInOiBbJzxXZWJDb3Jl
L1NlcnZpY2VXb3JrZXJUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbklkZW50aWZpZXInOiBbJzxXZWJDb3JlL1NlcnZpY2VXb3JrZXJUeXBlcy5o
PiddLAogICAgICAgICAnV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRlJzog
Wyc8V2ViQ29yZS9TZXJ2aWNlV29ya2VyVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlNl
cnZpY2VXb3JrZXJTdGF0ZSc6IFsnPFdlYkNvcmUvU2VydmljZVdvcmtlclR5cGVzLmg+J10sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCAz
OWNkNzNjZWVjOTdhNmEyNjk1MmM4Njg0YzYwNWNlZjgyYzcxMWU3Li5jMGI2ZWYzZmEzYTJlMTIw
NGM2NzdlY2Y4NmFlY2JkMTliYjY0ZDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTc1LDYgKzc1LDcgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25z
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0QnVmZmVyLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9TY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
U2Nyb2xsaW5nQ29uc3RyYWludHMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWFyY2hQb3B1cE1lbnUuaD4KQEAgLTgyLDcg
KzgzLDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NlcmlhbGl6ZWRBdHRhY2htZW50RGF0YS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvU2VyaWFsaXplZFBsYXRmb3JtRGF0YUN1ZVZhbHVlLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyQ2xpZW50RGF0YS5oPgotI2luY2x1ZGUgPFdlYkNv
cmUvU2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nl
cnZpY2VXb3JrZXJEYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZURhdGEuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1RleHRDaGVja2VyQ2xpZW50Lmg+CkBAIC0yODIyLDcgKzI4MjIsNyBAQCB2
b2lkIEFyZ3VtZW50Q29kZXI8U2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllcj46OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyLCBjbwogICAgIGlmIChpc1NlcnZpY2VXb3JrZXJJZGVudGlmaWVy
KQogICAgICAgICBlbmNvZGVyIDw8IHN0ZDo6Z2V0PFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyPihp
ZGVudGlmaWVyKTsKICAgICBlbHNlCi0gICAgICAgIGVuY29kZXIgPDwgc3RkOjpnZXQ8U2Vydmlj
ZVdvcmtlckNsaWVudElkZW50aWZpZXI+KGlkZW50aWZpZXIpOworICAgICAgICBlbmNvZGVyIDw8
IHN0ZDo6Z2V0PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPihpZGVudGlmaWVyKTsK
IH0KIAogYm9vbCBBcmd1bWVudENvZGVyPFNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXI+
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgU2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmll
ciYgaWRlbnRpZmllcikKQEAgLTI4MzgsNyArMjgzOCw3IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxT
ZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIs
IFNlCiAKICAgICAgICAgaWRlbnRpZmllciA9IFdURk1vdmUoKndvcmtlcklkZW50aWZpZXIpOwog
ICAgIH0gZWxzZSB7Ci0gICAgICAgIHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlckNsaWVudElk
ZW50aWZpZXI+IGNsaWVudElkZW50aWZpZXI7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8U2NyaXB0
RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IGNsaWVudElkZW50aWZpZXI7CiAgICAgICAgIGRl
Y29kZXIgPj4gY2xpZW50SWRlbnRpZmllcjsKICAgICAgICAgaWYgKCFjbGllbnRJZGVudGlmaWVy
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvU3lzdGVtUHJldmlld0NvbnRyb2xsZXJDb2NvYS5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1N5c3RlbVByZXZpZXdDb250cm9sbGVyQ29jb2EubW0KaW5k
ZXggYmQ0ZTZiZmI3MzE4NTA3NTk1YWM0ZjgxMDVmMDNlNzU5YjZkMWRhNy4uZGNjZDkwZGZlYzI0
MjMxMzIyMzMxMTA0YjY3YzkwYzM4MDc5MmY3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvU3lzdGVtUHJldmlld0NvbnRyb2xsZXJDb2NvYS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9TeXN0ZW1QcmV2aWV3Q29udHJvbGxlckNvY29hLm1t
CkBAIC0zMDUsNyArMzA1LDcgQEAgdm9pZCBTeXN0ZW1QcmV2aWV3Q29udHJvbGxlcjo6dHJpZ2dl
clN5c3RlbVByZXZpZXdBY3Rpb25XaXRoVGFyZ2V0Rm9yVGVzdGluZyh1aW4KIHsKICAgICBtX3N5
c3RlbVByZXZpZXdJbmZvLmlzUHJldmlldyA9IHRydWU7CiAgICAgbV9zeXN0ZW1QcmV2aWV3SW5m
by5lbGVtZW50LmVsZW1lbnRJZGVudGlmaWVyID0gbWFrZU9iamVjdElkZW50aWZpZXI8V2ViQ29y
ZTo6RWxlbWVudElkZW50aWZpZXJUeXBlPihlbGVtZW50SUQpOwotICAgIG1fc3lzdGVtUHJldmll
d0luZm8uZWxlbWVudC5kb2N1bWVudElkZW50aWZpZXIgPSBtYWtlT2JqZWN0SWRlbnRpZmllcjxX
ZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXJUeXBlPihkb2N1bWVudElEKTsKKyAgICBtX3N5c3Rl
bVByZXZpZXdJbmZvLmVsZW1lbnQuZG9jdW1lbnRJZGVudGlmaWVyID0gV2ViQ29yZTo6U2NyaXB0
RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgeyBtYWtlT2JqZWN0SWRlbnRpZmllcjxXZWJDb3Jl
OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllclR5cGU+KGRvY3VtZW50SUQpLCBtX3dl
YlBhZ2VQcm94eS5wcm9jZXNzKCkuY29yZVByb2Nlc3NJZGVudGlmaWVyKCkgfTsKICAgICBtX3N5
c3RlbVByZXZpZXdJbmZvLmVsZW1lbnQud2ViUGFnZUlkZW50aWZpZXIgPSBtYWtlT2JqZWN0SWRl
bnRpZmllcjxXZWJDb3JlOjpQYWdlSWRlbnRpZmllclR5cGU+KHBhZ2VJRCk7CiAgICAgdHJpZ2dl
clN5c3RlbVByZXZpZXdBY3Rpb24oKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IDM5ODY0MzQ5YTE5
OWRjNzA1ZTdmYjJhNTRkYjUxMTBiOGZlMDViNTEuLmIyMmJhYTJhNDc5ODg1OWZjMjgzMjg2YmFj
ODI1OTExNGYzZmU4ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTQwNSw3ICsxNDA1LDcgQEAgdm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkaWREZXN0cm95V2ViVXNlckNvbnRlbnRDb250cm9sbGVy
UHJveHkoV2ViVXNlckNvbnRlbnQKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQotdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojplc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVj
dGlvblRvTmV0d29ya1Byb2Nlc3MoUmVnaXN0cmFibGVEb21haW4mJiByZWdpc3RyYWJsZURvbWFp
biwgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gc2VydmljZVdv
cmtlclBhZ2VJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQ
cm94eTo6ZXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKFJl
Z2lzdHJhYmxlRG9tYWluJiYgcmVnaXN0cmFibGVEb21haW4sIHN0ZDo6b3B0aW9uYWw8U2NyaXB0
RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciwg
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV2ViUHJvY2Vzc1Bvb2w6OmVzdGFibGlzaFdvcmtlckNv
bnRleHRDb25uZWN0aW9uVG9OZXR3b3JrUHJvY2VzcygqdGhpcywgV1RGTW92ZShyZWdpc3RyYWJs
ZURvbWFpbiksIHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciwgc2Vzc2lvbklELCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IDk4ZDlkODBjMjRkYWE3ZWUx
ZTAzMGQxYzJmNGExMjNhNzdlYmNjZWMuLjQ0MWI4NmUxODljMmNmMTcyNDRkOGFkZTNkN2VkMDVm
Zjg3OTAwZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC0zMjIsNyArMzIyLDcgQEAgcHJpdmF0ZToKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotICAgIHZvaWQgZXN0YWJsaXNoV29ya2Vy
Q29udGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluJiYsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZp
ZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBlc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29u
bmVjdGlvblRvTmV0d29ya1Byb2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiwgc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2Vy
dmljZVdvcmtlclBhZ2VJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHdvcmtlckNvbnRleHRDb25uZWN0aW9uTm9Mb25nZXJO
ZWVkZWQoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIpOwogICAgIHZvaWQgcmVnaXN0ZXJTZXJ2
aWNlV29ya2VyQ2xpZW50UHJvY2VzcyhXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciB3ZWJQcm9j
ZXNzSWRlbnRpZmllciwgV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgc2VydmljZVdvcmtlclBy
b2Nlc3NJZGVudGlmaWVyKTsKICAgICB2b2lkIHVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50
UHJvY2VzcyhXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciB3ZWJQcm9jZXNzSWRlbnRpZmllciwg
V2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgc2VydmljZVdvcmtlclByb2Nlc3NJZGVudGlmaWVy
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCBiNGE0ZjAyMWE0OGI4ZWUzODZk
MmFkNTNmNjVkM2JkZjhhMTExOWZjLi4wMjIzYzYwNWMzNTJiNWJjN2JiMzc3M2NmZTViYTIzNmI0
OTIxOWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC01Myw3ICs1Myw3IEBA
IG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogICAgIFRl
cm1pbmF0ZVdlYlByb2Nlc3MoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgd2ViUHJvY2Vzc0lk
ZW50aWZpZXIpCiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0gICAgRXN0YWJsaXNoV29y
a2VyQ29udGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluIHJlZ2lzdHJhYmxlRG9tYWluLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJDbGllbnRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIsIFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkgQXN5bmMKKyAgICBFc3RhYmxpc2hXb3JrZXJDb250
ZXh0Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4g
cmVnaXN0cmFibGVEb21haW4sIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllciwgUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwogICAgIFdvcmtlckNvbnRleHRDb25uZWN0aW9u
Tm9Mb25nZXJOZWVkZWQoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIgaWRlbnRpZmllcikKICAg
ICBSZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnRQcm9jZXNzKFdlYkNvcmU6OlByb2Nlc3NJZGVu
dGlmaWVyIHdlYlByb2Nlc3NJZGVudGlmaWVyLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBz
ZXJ2aWNlV29ya2VyUHJvY2Vzc0lkZW50aWZpZXIpCiAgICAgVW5yZWdpc3RlclNlcnZpY2VXb3Jr
ZXJDbGllbnRQcm9jZXNzKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHdlYlByb2Nlc3NJZGVu
dGlmaWVyLCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciBzZXJ2aWNlV29ya2VyUHJvY2Vzc0lk
ZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5k
ZXggM2MzYmVmYzJhNjc0YzBkODJiZWE2NGViZTM1NDk0MGFjM2NmYTk4MC4uYWZjNmRiOTZmNjZl
N2ZhNDdkN2M1MzhjNGU3MzZhNDE2OTNkN2Y3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmNwcApAQCAtNTEyLDcgKzUxMiw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OmdldFdlYkF1dGhuUHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiB3ZWJQcm9j
ZXNzUHJvCiBib29sIFdlYlByb2Nlc3NQb29sOjpzX3VzZVNlcGFyYXRlU2VydmljZVdvcmtlclBy
b2Nlc3MgPSBmYWxzZTsKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLXZvaWQgV2ViUHJv
Y2Vzc1Bvb2w6OmVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vz
cyhOZXR3b3JrUHJvY2Vzc1Byb3h5JiBwcm94eSwgUmVnaXN0cmFibGVEb21haW4mJiByZWdpc3Ry
YWJsZURvbWFpbiwgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4g
c2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViUHJv
Y2Vzc1Bvb2w6OmVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vz
cyhOZXR3b3JrUHJvY2Vzc1Byb3h5JiBwcm94eSwgUmVnaXN0cmFibGVEb21haW4mJiByZWdpc3Ry
YWJsZURvbWFpbiwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
cj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBh
dXRvKiB3ZWJzaXRlRGF0YVN0b3JlID0gV2Vic2l0ZURhdGFTdG9yZTo6ZXhpc3RpbmdEYXRhU3Rv
cmVGb3JTZXNzaW9uSUQoc2Vzc2lvbklEKTsKICAgICBpZiAoIXdlYnNpdGVEYXRhU3RvcmUpCkBA
IC01MjgsNyArNTI4LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6ZXN0YWJsaXNoV29ya2VyQ29u
dGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKE5ldHdvcmtQcm8KIAogICAgIGlmIChzZXJ2
aWNlV29ya2VyUGFnZUlkZW50aWZpZXIpIHsKICAgICAgICAgLy8gVGhpcyBpcyBhIHNlcnZpY2Ug
d29ya2VyIGZvciBhIHNlcnZpY2Ugd29ya2VyIHBhZ2Ugc28gd2UgbmVlZCB0byBtYWtlIHN1cmUg
d2UgdXNlIHVzZSB0aGUgcGFnZSdzIFdlYlByb2Nlc3MgZm9yIHRoZSBzZXJ2aWNlIHdvcmtlci4K
LSAgICAgICAgaWYgKChzZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5ID0gV2ViUHJvY2Vzc1Byb3h5
Ojpwcm9jZXNzRm9ySWRlbnRpZmllcihzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXItPnNlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyKSkpIHsKKyAgICAgICAgaWYgKChzZXJ2aWNlV29ya2VyUHJv
Y2Vzc1Byb3h5ID0gV2ViUHJvY2Vzc1Byb3h5Ojpwcm9jZXNzRm9ySWRlbnRpZmllcihzZXJ2aWNl
V29ya2VyUGFnZUlkZW50aWZpZXItPnByb2Nlc3NJZGVudGlmaWVyKCkpKSkgewogICAgICAgICAg
ICAgc2VydmljZVdvcmtlclByb2Nlc3NQcm94eS0+ZW5hYmxlU2VydmljZVdvcmtlcnMocHJvY2Vz
c1Bvb2wtPnVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXJGb3JTZXJ2aWNlV29ya2Vycygp
KTsKICAgICAgICAgICAgIGlmIChzZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5LT5pc0luUHJvY2Vz
c0NhY2hlKCkpIHsKICAgICAgICAgICAgICAgICBwcm9jZXNzUG9vbC0+d2ViUHJvY2Vzc0NhY2hl
KCkucmVtb3ZlUHJvY2Vzcygqc2VydmljZVdvcmtlclByb2Nlc3NQcm94eSwgV2ViUHJvY2Vzc0Nh
Y2hlOjpTaG91bGRTaHV0RG93blByb2Nlc3M6Ok5vKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5oCmluZGV4IDhlODBmZGMyOWNlNWNlYTA2ZDYzYzI0ZmFjNmE0OGY0Mzg4
ZGFkYWYuLmE5NDM4YWUzZGIxYmFjNDUzNWYxZTkyZmUyMGViYzFmODg5YTcyNDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAtMzY2LDcgKzM2Niw3IEBAIHB1
YmxpYzoKIAogICAgIGJvb2wgaXNTZXJ2aWNlV29ya2VyUGFnZUlEKFdlYlBhZ2VQcm94eUlkZW50
aWZpZXIpIGNvbnN0OwogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLSAgICBzdGF0aWMgdm9p
ZCBlc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MoTmV0d29y
a1Byb2Nlc3NQcm94eSYsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYsIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQ
YWdlSWRlbnRpZmllciwgUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CisgICAgc3RhdGljIHZvaWQgZXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub05l
dHdvcmtQcm9jZXNzKE5ldHdvcmtQcm9jZXNzUHJveHkmLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiYmLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIsIFBBTDo6U2Vzc2lvbklELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgcmVtb3ZlRnJvbVNlcnZpY2VXb3Jr
ZXJQcm9jZXNzZXMoV2ViUHJvY2Vzc1Byb3h5Jik7CiAgICAgc2l6ZV90IHNlcnZpY2VXb3JrZXJQ
cm94aWVzQ291bnQoKSBjb25zdCB7IHJldHVybiBzZXJ2aWNlV29ya2VyUHJvY2Vzc2VzKCkuY29t
cHV0ZVNpemUoKTsgfQogICAgIHZvaWQgdXBkYXRlU2VydmljZVdvcmtlclVzZXJBZ2VudChjb25z
dCBTdHJpbmcmIHVzZXJBZ2VudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcAppbmRleCA5YzAwYzQ3YjdjNWNkMDI2NGYyNzAzMDJlYTdiZjYzNTQ1ODBiN2Nm
Li4xMTgxY2E3ZDY1OGI0OTQ2NTNmZjgwYTYyMjA5NTUxNDlhMzM3ODg4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTE4NTYsNyArMTg1Niw3IEBA
IHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjplbmRCYWNrZ3JvdW5kQWN0aXZpdHlGb3JGdWxsc2NyZWVu
SW5wdXQoKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi12b2lkIFdlYlBy
b2Nlc3NQcm94eTo6ZXN0YWJsaXNoU2VydmljZVdvcmtlckNvbnRleHQoY29uc3QgV2ViUHJlZmVy
ZW5jZXNTdG9yZSYgc3RvcmUsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZWdpc3RyYWJsZURv
bWFpbiwgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gc2Vydmlj
ZVdvcmtlclBhZ2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6ZXN0YWJsaXNoU2VydmljZVdvcmtl
ckNvbnRleHQoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUsIGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiByZWdpc3RyYWJsZURvbWFpbiwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRp
b25Db250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgV0VCUFJPQ0VT
U1BST1hZX1JFTEVBU0VfTE9HKExvYWRpbmcsICJlc3RhYmxpc2hTZXJ2aWNlV29ya2VyQ29udGV4
dDogU3RhcnRlZCIpOwogICAgIG1hcmtQcm9jZXNzQXNSZWNlbnRseVVzZWQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggNDI5YzNjMTA2MzFmMzRiZWFi
NTcyOTdlNjRjZjkzOTNhODNmZGEwOS4uZGE2ZGM2OGVlYmNlY2I0MjM2MjdlYzk4OWQ2YmNhYTgw
MTU3NDk3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAg
LTM1Nyw3ICszNTcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVBdWRpYmxlTWVkaWFBc3Nl
cnRpb25zKCk7CiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0gICAgdm9pZCBlc3RhYmxp
c2hTZXJ2aWNlV29ya2VyQ29udGV4dChjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiwgY29uc3Qg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBlc3RhYmxpc2hTZXJ2aWNlV29y
a2VyQ29udGV4dChjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiwgY29uc3QgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4mLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRTZXJ2aWNlV29ya2VyVXNlckFnZW50KGNv
bnN0IFN0cmluZyYpOwogICAgIHZvaWQgdXBkYXRlU2VydmljZVdvcmtlclByZWZlcmVuY2VzU3Rv
cmUoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYpOwogICAgIGJvb2wgaGFzU2VydmljZVdvcmtl
clBhZ2VQcm94eShXZWJQYWdlUHJveHlJZGVudGlmaWVyIHBhZ2VQcm94eUlEKSB7IHJldHVybiBt
X3NlcnZpY2VXb3JrZXJJbmZvcm1hdGlvbiAmJiBtX3NlcnZpY2VXb3JrZXJJbmZvcm1hdGlvbi0+
c2VydmljZVdvcmtlclBhZ2VQcm94eUlEID09IHBhZ2VQcm94eUlEOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
LmNwcAppbmRleCBhZWUyZDQ3ODI5OThiMTZkZTk4ZmRlNGZiYWFlNjQ0MDcyNjcwOGI1Li5mMDVj
NGViNmZjNGIxY2ZhMmVkNmU2Yjc0YWE1Y2U2NzY1MGVjYjMxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5j
cHAKQEAgLTMzOCwxNCArMzM4LDE0IEBAIEluamVjdGVkQnVuZGxlOjpEb2N1bWVudElEVG9VUkxN
YXAgSW5qZWN0ZWRCdW5kbGU6OmxpdmVEb2N1bWVudFVSTHMoYm9vbCBleGNsdWRlCiAgICAgRG9j
dW1lbnRJRFRvVVJMTWFwIHJlc3VsdDsKIAogICAgIGZvciAoY29uc3QgYXV0byogZG9jdW1lbnQg
OiBEb2N1bWVudDo6YWxsRG9jdW1lbnRzKCkpCi0gICAgICAgIHJlc3VsdC5hZGQoZG9jdW1lbnQt
PmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpLCBkb2N1bWVudC0+dXJsKCkuc3RyaW5nKCkpOworICAg
ICAgICByZXN1bHQuYWRkKGRvY3VtZW50LT5pZGVudGlmaWVyKCkub2JqZWN0KCkudG9VSW50NjQo
KSwgZG9jdW1lbnQtPnVybCgpLnN0cmluZygpKTsKIAogICAgIGlmIChleGNsdWRlRG9jdW1lbnRz
SW5QYWdlR3JvdXBQYWdlcykgewogICAgICAgICBQYWdlOjpmb3JFYWNoUGFnZShbJl0oUGFnZSYg
cGFnZSkgewogICAgICAgICAgICAgZm9yIChhdXRvKiBmcmFtZSA9ICZwYWdlLm1haW5GcmFtZSgp
OyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7CiAgICAgICAg
ICAgICAgICAgaWYgKCFmcmFtZS0+ZG9jdW1lbnQoKSkKICAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7Ci0gICAgICAgICAgICAgICAgcmVzdWx0LnJlbW92ZShmcmFtZS0+ZG9jdW1lbnQoKS0+
aWRlbnRpZmllcigpLnRvVUludDY0KCkpOworICAgICAgICAgICAgICAgIHJlc3VsdC5yZW1vdmUo
ZnJhbWUtPmRvY3VtZW50KCktPmlkZW50aWZpZXIoKS5vYmplY3QoKS50b1VJbnQ2NCgpKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmtNYW5hZ2VyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENOZXR3b3Jr
TWFuYWdlci5jcHAKaW5kZXggNmNiZDZkN2M0MmIyMDk0MGJlODg4NDY2NmE2NzFlYWUzNzg5MjUx
Zi4uOWNkYWViOGEzYTZjOGE5OWM2NWU1MTllNGFiN2FjZjU1Nzc1YzZkZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmtN
YW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMv
TGliV2ViUlRDTmV0d29ya01hbmFnZXIuY3BwCkBAIC0zNyw3ICszNyw3IEBACiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1MaWJXZWJSVENOZXR3b3JrTWFu
YWdlciogTGliV2ViUlRDTmV0d29ya01hbmFnZXI6OmdldE9yQ3JlYXRlKFdlYkNvcmU6OkRvY3Vt
ZW50SWRlbnRpZmllciBpZGVudGlmaWVyKQorTGliV2ViUlRDTmV0d29ya01hbmFnZXIqIExpYldl
YlJUQ05ldHdvcmtNYW5hZ2VyOjpnZXRPckNyZWF0ZShXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllciBpZGVudGlmaWVyKQogewogICAgIGF1dG8qIGRvY3VtZW50ID0gRG9j
dW1lbnQ6OmFsbERvY3VtZW50c01hcCgpLmdldChpZGVudGlmaWVyKTsKICAgICBpZiAoIWRvY3Vt
ZW50KQpAQCAtNTMsNyArNTMsNyBAQCBMaWJXZWJSVENOZXR3b3JrTWFuYWdlciogTGliV2ViUlRD
TmV0d29ya01hbmFnZXI6OmdldE9yQ3JlYXRlKFdlYkNvcmU6OkRvY3VtZW50SQogICAgIHJldHVy
biBuZXR3b3JrTWFuYWdlcjsKIH0KIAotTGliV2ViUlRDTmV0d29ya01hbmFnZXI6OkxpYldlYlJU
Q05ldHdvcmtNYW5hZ2VyKFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllciBkb2N1bWVudElkZW50
aWZpZXIpCitMaWJXZWJSVENOZXR3b3JrTWFuYWdlcjo6TGliV2ViUlRDTmV0d29ya01hbmFnZXIo
V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgZG9jdW1lbnRJZGVudGlm
aWVyKQogICAgIDogbV9kb2N1bWVudElkZW50aWZpZXIoZG9jdW1lbnRJZGVudGlmaWVyKQogewog
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmxpYldlYlJUQ05ldHdvcmsoKS5tb25pdG9yKCku
YWRkT2JzZXJ2ZXIoKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ05ldHdvcmtNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29ya01hbmFnZXIuaAppbmRl
eCAyODZkYTY3MjIxYjA1M2FmOWNhM2M0MGZiMjU2ZmJlNjZhNzkxMWEyLi4yNTQ5NDRjYjdmNGEz
OTMzOWEwMDQ0M2VkNGIzMmQ2NmEwMjY2ZWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29ya01hbmFnZXIuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDTmV0d29ya01h
bmFnZXIuaApAQCAtMjgsMjAgKzI4LDIwIEBACiAjaWYgVVNFKExJQldFQlJUQykKIAogI2luY2x1
ZGUgIldlYlJUQ01vbml0b3IuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50SWRlbnRpZmll
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTGliV2ViUlRDUHJvdmlkZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1JUQ05ldHdvcmtNYW5hZ2VyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3Mg
TGliV2ViUlRDTmV0d29ya01hbmFnZXIgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6UlRDTmV0d29y
a01hbmFnZXIsIHB1YmxpYyBydGM6Ok5ldHdvcmtNYW5hZ2VyQmFzZSwgcHVibGljIHdlYnJ0Yzo6
TWRuc1Jlc3BvbmRlckludGVyZmFjZSwgcHVibGljIFdlYlJUQ01vbml0b3I6Ok9ic2VydmVyIHsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBzdGF0aWMgTGliV2Vi
UlRDTmV0d29ya01hbmFnZXIqIGdldE9yQ3JlYXRlKFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmll
cik7CisgICAgc3RhdGljIExpYldlYlJUQ05ldHdvcmtNYW5hZ2VyKiBnZXRPckNyZWF0ZShXZWJD
b3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcik7CiAgICAgfkxpYldlYlJUQ05l
dHdvcmtNYW5hZ2VyKCk7CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgTGliV2ViUlRDTmV0d29y
a01hbmFnZXIoV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyKTsKKyAgICBleHBsaWNpdCBMaWJX
ZWJSVENOZXR3b3JrTWFuYWdlcihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
Zmllcik7CiAKICAgICAvLyBXZWJDb3JlOjpSVENOZXR3b3JrTWFuYWdlcgogICAgIHZvaWQgc2V0
SUNFQ2FuZGlkYXRlRmlsdGVyaW5nKGJvb2wgZG9GaWx0ZXJpbmcpIGZpbmFsIHsgbV91c2VNRE5T
Q2FuZGlkYXRlcyA9IGRvRmlsdGVyaW5nOyB9CkBAIC02MCw3ICs2MCw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBuZXR3b3Jrc0NoYW5nZWQoY29uc3QgVmVjdG9yPFJUQ05ldHdvcms+JiwgY29uc3Qg
UlRDTmV0d29yazo6SVBBZGRyZXNzJiwgY29uc3QgUlRDTmV0d29yazo6SVBBZGRyZXNzJikgZmlu
YWw7CiAgICAgdm9pZCBuZXR3b3JrUHJvY2Vzc0NyYXNoZWQoKSBmaW5hbDsKIAotICAgIFdlYkNv
cmU6OkRvY3VtZW50SWRlbnRpZmllciBtX2RvY3VtZW50SWRlbnRpZmllcjsKKyAgICBXZWJDb3Jl
OjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBtX2RvY3VtZW50SWRlbnRpZmllcjsK
ICAgICBib29sIG1fdXNlTUROU0NhbmRpZGF0ZXMgeyB0cnVlIH07CiAgICAgYm9vbCBtX3JlY2Vp
dmVkTmV0d29ya0xpc3QgeyBmYWxzZSB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay93ZWJydGMvTGliV2ViUlRDUHJvdmlkZXIuY3BwCmlu
ZGV4IDdmNDA2MjllNWIyYjNjNGNkN2E2Njk5OGEwYzEwNzYwOWY2ZmEzODAuLjA3MGM3M2Q4NTc2
ZWMyYjMzOGU5ZDEwOGQzZmU4Y2UxZTZkYTdkMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmNw
cApAQCAtNTUsNyArNTUsNyBAQCBwcml2YXRlOgogICAgIH0KIH07CiAKLXJ0Yzo6c2NvcGVkX3Jl
ZnB0cjx3ZWJydGM6OlBlZXJDb25uZWN0aW9uSW50ZXJmYWNlPiBMaWJXZWJSVENQcm92aWRlcjo6
Y3JlYXRlUGVlckNvbm5lY3Rpb24oRG9jdW1lbnRJZGVudGlmaWVyIGlkZW50aWZpZXIsIHdlYnJ0
Yzo6UGVlckNvbm5lY3Rpb25PYnNlcnZlciYgb2JzZXJ2ZXIsIHJ0Yzo6UGFja2V0U29ja2V0RmFj
dG9yeSogc29ja2V0RmFjdG9yeSwgd2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6UlRD
Q29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCitydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRj
OjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZT4gTGliV2ViUlRDUHJvdmlkZXI6OmNyZWF0ZVBlZXJD
b25uZWN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGlkZW50aWZpZXIsIHdl
YnJ0Yzo6UGVlckNvbm5lY3Rpb25PYnNlcnZlciYgb2JzZXJ2ZXIsIHJ0Yzo6UGFja2V0U29ja2V0
RmFjdG9yeSogc29ja2V0RmFjdG9yeSwgd2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6
UlRDQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiB7CiAjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKSAmJiBQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQogICAgIGlm
ICghbV9kaWRJbml0aWFsaXplQ2FsbGJhY2spIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0Yy9MaWJXZWJSVENQcm92aWRlci5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKaW5kZXgg
Nzk1MTdjMDg4OTNlMWY2YjUwNWU3MjllNjRlMTlkMDBjOTkwMWIzYi4uZDM4MGEwNzVkZWI5NzFl
MGZkM2I5NjM2YzVkY2E2NWQwYWZmNzcwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVyLmgKQEAgLTU0
LDcgKzU0LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U3VzcGVu
ZGFibGVTb2NrZXRGYWN0b3J5PiBjcmVhdGVTb2NrZXRGYWN0b3J5KFN0cmluZyYmIC8qIHVzZXJB
Z2VudCAqLywgYm9vbCAvKiBpc0ZpcnN0UGFydHkgKi8sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluJiYpIGZpbmFsOwogCi0gICAgcnRjOjpzY29wZWRfcmVmcHRyPHdlYnJ0Yzo6UGVlckNvbm5l
Y3Rpb25JbnRlcmZhY2U+IGNyZWF0ZVBlZXJDb25uZWN0aW9uKFdlYkNvcmU6OkRvY3VtZW50SWRl
bnRpZmllciwgd2VicnRjOjpQZWVyQ29ubmVjdGlvbk9ic2VydmVyJiwgcnRjOjpQYWNrZXRTb2Nr
ZXRGYWN0b3J5Kiwgd2VicnRjOjpQZWVyQ29ubmVjdGlvbkludGVyZmFjZTo6UlRDQ29uZmlndXJh
dGlvbiYmKSBmaW5hbDsKKyAgICBydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpQZWVyQ29ubmVj
dGlvbkludGVyZmFjZT4gY3JlYXRlUGVlckNvbm5lY3Rpb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0
aW9uQ29udGV4dElkZW50aWZpZXIsIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25PYnNlcnZlciYsIHJ0
Yzo6UGFja2V0U29ja2V0RmFjdG9yeSosIHdlYnJ0Yzo6UGVlckNvbm5lY3Rpb25JbnRlcmZhY2U6
OlJUQ0NvbmZpZ3VyYXRpb24mJikgZmluYWw7CiAKICAgICB2b2lkIGRpc2FibGVOb25Mb2NhbGhv
c3RDb25uZWN0aW9ucygpIGZpbmFsOwogICAgIHZvaWQgc3RhcnRlZE5ldHdvcmtUaHJlYWQoKSBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
Yy9XZWJNRE5TUmVnaXN0ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
d2VicnRjL1dlYk1ETlNSZWdpc3Rlci5jcHAKaW5kZXggNzYwMjA3ZWE1OWJjYTI1NDUyMmY1NmM1
OWE1MjQ1ZTU5NWE4ZGUyYi4uYzNjYWZjYWFlNmRkNmZlNGZhMmYxNmM0YmE2MGJkNWQzYjRkNDg5
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvd2VicnRjL1dl
Yk1ETlNSZWdpc3Rlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsv
d2VicnRjL1dlYk1ETlNSZWdpc3Rlci5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgdm9pZCBXZWJNRE5T
UmVnaXN0ZXI6OmZpbmlzaGVkUmVnaXN0ZXJpbmdNRE5TTmFtZShNRE5TUmVnaXN0ZXJJZGVudGlm
aWVyIGlkZW50aWYKICAgICBwZW5kaW5nUmVnaXN0cmF0aW9uLmNhbGxiYWNrKG5hbWUsIGVycm9y
KTsKIH0KIAotdm9pZCBXZWJNRE5TUmVnaXN0ZXI6OnVucmVnaXN0ZXJNRE5TTmFtZXMoRG9jdW1l
bnRJZGVudGlmaWVyIGlkZW50aWZpZXIpCit2b2lkIFdlYk1ETlNSZWdpc3Rlcjo6dW5yZWdpc3Rl
ck1ETlNOYW1lcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciBpZGVudGlmaWVyKQog
ewogICAgIGlmIChtX3JlZ2lzdGVyaW5nRG9jdW1lbnRzLnRha2UoaWRlbnRpZmllcikuaXNFbXB0
eSgpKQogICAgICAgICByZXR1cm47CkBAIC02Myw3ICs2Myw3IEBAIHZvaWQgV2ViTUROU1JlZ2lz
dGVyOjp1bnJlZ2lzdGVyTUROU05hbWVzKERvY3VtZW50SWRlbnRpZmllciBpZGVudGlmaWVyKQog
ICAgIGNvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6TmV0d29ya01ETlNSZWdpc3Rlcjo6VW5yZWdp
c3Rlck1ETlNOYW1lcyB7IGlkZW50aWZpZXIgfSwgMCk7CiB9CiAKLXZvaWQgV2ViTUROU1JlZ2lz
dGVyOjpyZWdpc3Rlck1ETlNOYW1lKERvY3VtZW50SWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIGlwQWRkcmVzcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBTdHJpbmcm
LCBzdGQ6Om9wdGlvbmFsPE1ETlNSZWdpc3RlckVycm9yPik+JiYgY2FsbGJhY2spCit2b2lkIFdl
Yk1ETlNSZWdpc3Rlcjo6cmVnaXN0ZXJNRE5TTmFtZShTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRl
bnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGlwQWRkcmVzcywgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChjb25zdCBTdHJpbmcmLCBzdGQ6Om9wdGlvbmFsPE1ETlNSZWdpc3RlckVycm9y
Pik+JiYgY2FsbGJhY2spCiB7CiAgICAgYXV0byYgbWFwID0gbV9yZWdpc3RlcmluZ0RvY3VtZW50
cy5lbnN1cmUoaWRlbnRpZmllciwgW10gewogICAgICAgICByZXR1cm4gSGFzaE1hcDxTdHJpbmcs
IFN0cmluZz4geyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvd2VicnRjL1dlYk1ETlNSZWdpc3Rlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05l
dHdvcmsvd2VicnRjL1dlYk1ETlNSZWdpc3Rlci5oCmluZGV4IDJjMGZmMGU0NjY1MTFmOTc4ZmI4
MDkyNzIwYWYwNzNkYmY1MzhmYmUuLmY5MTFmMGY1YjJkYjZhNTRmMjFhMTM4ZDM3YmNmZTdjMzll
ZjQwMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL3dlYnJ0
Yy9XZWJNRE5TUmVnaXN0ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay93ZWJydGMvV2ViTUROU1JlZ2lzdGVyLmgKQEAgLTI4LDggKzI4LDkgQEAKICNpZiBFTkFCTEUo
V0VCX1JUQykKIAogI2luY2x1ZGUgIk1ETlNSZWdpc3RlcklkZW50aWZpZXIuaCIKLSNpbmNsdWRl
IDxXZWJDb3JlL0RvY3VtZW50SWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTGliV2Vi
UlRDUHJvdmlkZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NRdWFsaWZpZWQuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmg+CiAjaW5j
bHVkZSA8d3RmL0V4cGVjdGVkLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgpAQCAtNDUsOCArNDYsOCBAQCBjbGFzcyBXZWJNRE5TUmVnaXN0ZXIg
ewogcHVibGljOgogICAgIFdlYk1ETlNSZWdpc3RlcigpID0gZGVmYXVsdDsKIAotICAgIHZvaWQg
dW5yZWdpc3Rlck1ETlNOYW1lcyhXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXIpOwotICAgIHZv
aWQgcmVnaXN0ZXJNRE5TTmFtZShXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgaXBBZGRyZXNzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFN0cmluZyYsIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TUROU1JlZ2lzdGVyRXJyb3I+KT4mJik7CisgICAgdm9pZCB1
bnJlZ2lzdGVyTUROU05hbWVzKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyKTsKKyAgICB2b2lkIHJlZ2lzdGVyTUROU05hbWUoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgaXBBZGRyZXNzLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGNvbnN0IFN0cmluZyYsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TUROU1JlZ2lz
dGVyRXJyb3I+KT4mJik7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6RGVjb2RlciYpOwogCkBAIC01NSwxMiArNTYsMTIgQEAgcHJpdmF0ZToKIAog
ICAgIHN0cnVjdCBQZW5kaW5nUmVnaXN0cmF0aW9uIHsKICAgICAgICAgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChjb25zdCBTdHJpbmcmLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1ETlNSZWdpc3Rl
ckVycm9yPik+IGNhbGxiYWNrOwotICAgICAgICBXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXIg
ZG9jdW1lbnRJZGVudGlmaWVyOworICAgICAgICBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllciBkb2N1bWVudElkZW50aWZpZXI7CiAgICAgICAgIFN0cmluZyBpcEFkZHJl
c3M7CiAgICAgfTsKICAgICBIYXNoTWFwPE1ETlNSZWdpc3RlcklkZW50aWZpZXIsIFBlbmRpbmdS
ZWdpc3RyYXRpb24+IG1fcGVuZGluZ1JlZ2lzdHJhdGlvbnM7CiAKLSAgICBIYXNoTWFwPFdlYkNv
cmU6OkRvY3VtZW50SWRlbnRpZmllciwgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4+IG1fcmVnaXN0
ZXJpbmdEb2N1bWVudHM7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllciwgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4+IG1fcmVnaXN0ZXJpbmdEb2N1
bWVudHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCmlu
ZGV4IGFkNGZiMGFiNzhjMmRkYWYyN2NkZjc0MTZkMTA2Y2I5ZGY0NzVlYTcuLjhkNmViMjY4MGIx
ZTc1NTU1NTA3NGZiNThkNTFkOTVkMmFmYTQyMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcApAQCAt
OTYsNyArOTYsNyBAQCB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6cmVtb3ZlU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbkluU2VydmVyKFNlcnZpY2VXb3JrZQogICAgICAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OlJlbW92ZVNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JblNlcnZlciB7IGlkZW50aWZpZXIgfSk7CiB9CiAKLXZvaWQgV2ViU1dDbGllbnRDb25uZWN0
aW9uOjpzY2hlZHVsZVVucmVnaXN0ZXJKb2JJblNlcnZlcihTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uSWRlbnRpZmllciByZWdpc3RyYXRpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpEb2N1bWVudE9y
V29ya2VySWRlbnRpZmllciBkb2N1bWVudElkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoRXhjZXB0aW9uT3I8Ym9vbD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlNX
Q2xpZW50Q29ubmVjdGlvbjo6c2NoZWR1bGVVbnJlZ2lzdGVySm9iSW5TZXJ2ZXIoU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgcmVnaXN0cmF0aW9uSWRlbnRpZmllciwgV2ViQ29y
ZTo6U2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciBkb2N1bWVudElkZW50aWZpZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8Ym9vbD4mJik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7CiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNv
bm5lY3Rpb246OlNjaGVkdWxlVW5yZWdpc3RlckpvYkluU2VydmVyIHsgU2VydmljZVdvcmtlckpv
YklkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFkU2FmZSgpLCByZWdpc3RyYXRpb25JZGVudGlmaWVy
LCBkb2N1bWVudElkZW50aWZpZXIgfSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildKGF1dG8mJiByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAoIXJl
c3VsdC5oYXNfdmFsdWUoKSkKQEAgLTExNSw5ICsxMTUsOSBAQCB2b2lkIFdlYlNXQ2xpZW50Q29u
bmVjdGlvbjo6cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFNlY3VyaXR5T3JpZ2lu
JiB0bwogICAgIHNlbmQoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6UmVnaXN0ZXJT
ZXJ2aWNlV29ya2VyQ2xpZW50IHsgdG9wT3JpZ2luLmRhdGEoKSwgZGF0YSwgY29udHJvbGxpbmdT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgdXNlckFnZW50IH0pOwogfQogCi12
b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6dW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQo
RG9jdW1lbnRJZGVudGlmaWVyIGNvbnRleHRJZGVudGlmaWVyKQordm9pZCBXZWJTV0NsaWVudENv
bm5lY3Rpb246OnVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRJZGVudGlmaWVyIGNvbnRleHRJZGVudGlmaWVyKQogewotICAgIHNlbmQoTWVzc2FnZXM6
OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6VW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQgeyBT
ZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciB7IHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
KCksIGNvbnRleHRJZGVudGlmaWVyIH0gfSk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2
ZXJDb25uZWN0aW9uOjpVbnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudCB7IGNvbnRleHRJZGVu
dGlmaWVyIH0pOwogfQogCiB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6ZGlkUmVzb2x2ZVJl
Z2lzdHJhdGlvblByb21pc2UoY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYga2V5
KQpAQCAtMjAwLDcgKzIwMCw3IEBAIHZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpyZWdpc3Ry
YXRpb25SZWFkeSh1aW50NjRfdCBjYWxsYmFja0lELCBTZXJ2aWNlV29ya2VyCiAgICAgICAgIGNh
bGxiYWNrKFdURk1vdmUocmVnaXN0cmF0aW9uRGF0YSkpOwogfQogCi12b2lkIFdlYlNXQ2xpZW50
Q29ubmVjdGlvbjo6c2V0RG9jdW1lbnRJc0NvbnRyb2xsZWQoRG9jdW1lbnRJZGVudGlmaWVyIGRv
Y3VtZW50SWRlbnRpZmllciwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEmJiBkYXRhLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBX
ZWJTV0NsaWVudENvbm5lY3Rpb246OnNldERvY3VtZW50SXNDb250cm9sbGVkKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyIGRvY3VtZW50SWRlbnRpZmllciwgU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbkRhdGEmJiBkYXRhLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8qIGRvY3VtZW50TG9hZGVyID0gRG9jdW1lbnRM
b2FkZXI6OmZyb21UZW1wb3JhcnlEb2N1bWVudElkZW50aWZpZXIoZG9jdW1lbnRJZGVudGlmaWVy
KTsKICAgICBib29sIHJlc3VsdCA9IGRvY3VtZW50TG9hZGVyID8gZG9jdW1lbnRMb2FkZXItPnNl
dENvbnRyb2xsaW5nU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbihXVEZNb3ZlKGRhdGEpKSA6IGZh
bHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
bGllbnRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NsaWVudENvbm5lY3Rpb24uaAppbmRleCAyYWNlZGI4NGFjMzU4YTc0NjVlYjEwYjI2YWM3ODZk
MjU4MzkwMTk5Li40NTg2ODFmOWIwYWVhYWEzOWFiZWQ0Njc5OTI5YTQyMDI1OTA4ZTRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5l
Y3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVu
dENvbm5lY3Rpb24uaApAQCAtNzQsOCArNzQsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZmluaXNo
RmV0Y2hpbmdTY3JpcHRJblNlcnZlcihjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRmV0Y2hS
ZXN1bHQmKSBmaW5hbDsKICAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgV2ViQ29y
ZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiwgY29uc3QgV2ViQ29yZTo6U2VydmljZVdvcmtl
ck9yQ2xpZW50SWRlbnRpZmllciYgc291cmNlKSBmaW5hbDsKICAgICB2b2lkIHJlZ2lzdGVyU2Vy
dmljZVdvcmtlckNsaWVudChjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wT3JpZ2lu
LCBjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYsIGNvbnN0IHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXI+JiwgY29u
c3QgU3RyaW5nJiB1c2VyQWdlbnQpIGZpbmFsOwotICAgIHZvaWQgdW5yZWdpc3RlclNlcnZpY2VX
b3JrZXJDbGllbnQoV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyKSBmaW5hbDsKLSAgICB2b2lk
IHNjaGVkdWxlVW5yZWdpc3RlckpvYkluU2VydmVyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpEb2N1bWVudE9yV29ya2VySWRlbnRpZmllciwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpFeGNlcHRpb25Pcjxib29sPiYmKT4mJikg
ZmluYWw7CisgICAgdm9pZCB1bnJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudChXZWJDb3JlOjpT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcikgZmluYWw7CisgICAgdm9pZCBzY2hlZHVs
ZVVucmVnaXN0ZXJKb2JJblNlcnZlcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
SWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpFeGNlcHRpb25Pcjxib29sPiYmKT4mJikgZmlu
YWw7CiAKICAgICB2b2lkIG1hdGNoUmVnaXN0cmF0aW9uKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwsIFJlZ2lzdHJhdGlvbkNhbGxi
YWNrJiYpIGZpbmFsOwogICAgIHZvaWQgZGlkTWF0Y2hSZWdpc3RyYXRpb24odWludDY0X3QgbWF0
Y2hSZXF1ZXN0SWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uRGF0YT4mJik7CkBAIC04Myw3ICs4Myw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCB3aGVuUmVnaXN0cmF0aW9uUmVhZHkoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xpZW50VVJMLCBXaGVuUmVnaXN0cmF0aW9uUmVhZHlD
YWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIHJlZ2lzdHJhdGlvblJlYWR5KHVpbnQ2NF90IGNh
bGxiYWNrSUQsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJiYpOwogCi0g
ICAgdm9pZCBzZXREb2N1bWVudElzQ29udHJvbGxlZChXZWJDb3JlOjpEb2N1bWVudElkZW50aWZp
ZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgc2V0RG9jdW1lbnRJc0NvbnRyb2xsZWQo
V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYpOwogCiAgICAgdm9pZCBnZXRSZWdpc3RyYXRpb25zKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YSYmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwsIEdldFJlZ2lzdHJhdGlvbnND
YWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIHdoZW5TZXJ2aWNlV29ya2VySXNUZXJtaW5hdGVk
Rm9yVGVzdGluZyhXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5p
bgppbmRleCBkMjJkNmZkNjhhMjdmYTNjYThkMTc0NWYwNjZmMmQyNzBkMWJmZmY5Li4yZjE0NmY2
YzAwMjg3Y2E2OGNjMTgzZWIyNjE1ZWMzYmIzNmJhOGU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0
aW9uLm1lc3NhZ2VzLmluCkBAIC0zMiwxNyArMzIsMTcgQEAgbWVzc2FnZXMgLT4gV2ViU1dDbGll
bnRDb25uZWN0aW9uIHsKICAgICBGaXJlVXBkYXRlRm91bmRFdmVudChXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKQogICAgIFNldFJlZ2lzdHJh
dGlvbkxhc3RVcGRhdGVUaW1lKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVu
dGlmaWVyIGlkZW50aWZpZXIsIFdhbGxUaW1lIGxhc3RVcGRhdGVUaW1lKQogICAgIFNldFJlZ2lz
dHJhdGlvblVwZGF0ZVZpYUNhY2hlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25J
ZGVudGlmaWVyIGlkZW50aWZpZXIsIGVudW06dWludDhfdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
VXBkYXRlVmlhQ2FjaGUgdXBkYXRlVmlhQ2FjaGUpOwotICAgIE5vdGlmeUNsaWVudHNPZkNvbnRy
b2xsZXJDaGFuZ2UoSGFzaFNldDxXZWJDb3JlOjpEb2N1bWVudElkZW50aWZpZXI+IGNvbnRleHRJ
ZGVudGlmaWVycywgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJEYXRhIG5ld0NvbnRyb2xs
ZXIpCisgICAgTm90aWZ5Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZShIYXNoU2V0PFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBjb250ZXh0SWRlbnRpZmllcnMsIHN0
cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRGF0YSBuZXdDb250cm9sbGVyKQogCiAgICAgU2V0
U1dPcmlnaW5UYWJsZUlzSW1wb3J0ZWQoKQogICAgIFNldFNXT3JpZ2luVGFibGVTaGFyZWRNZW1v
cnkoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSBoYW5kbGUpCi0gICAgUG9zdE1lc3Nh
Z2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoV2ViQ29yZTo6RG9jdW1lbnRJZGVudGlmaWVyIGRlc3Rp
bmF0aW9uQ29udGV4dElkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3Nh
Z2VQb3J0cyBtZXNzYWdlLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckRhdGEgc291cmNl
LCBTdHJpbmcgc291cmNlT3JpZ2luKQorICAgIFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xp
ZW50KFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyIGRlc3RpbmF0aW9u
Q29udGV4dElkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0
cyBtZXNzYWdlLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckRhdGEgc291cmNlLCBTdHJp
bmcgc291cmNlT3JpZ2luKQogCiAgICAgRGlkTWF0Y2hSZWdpc3RyYXRpb24odWludDY0X3QgbWF0
Y2hSZXF1ZXN0SWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uRGF0YT4gZGF0YSkKICAgICBEaWRHZXRSZWdpc3RyYXRpb25zKHVpbnQ2NF90
IG1hdGNoUmVxdWVzdElkZW50aWZpZXIsIFZlY3RvcjxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uRGF0YT4gcmVnaXN0cmF0aW9ucykKICAgICBSZWdpc3RyYXRpb25SZWFkeSh1aW50
NjRfdCByZWdpc3RyYXRpb25SZWFkeVJlcXVlc3RJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEgZGF0YSkKIAotICAgIFNldERvY3VtZW50SXND
b250cm9sbGVkKFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllciB0ZW1wb3JhcnlEb2N1bWVudElk
ZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YSBk
YXRhKSAtPiAoYm9vbCBpc1N1Y2Nlc3MpIEFzeW5jCisgICAgU2V0RG9jdW1lbnRJc0NvbnRyb2xs
ZWQoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgdGVtcG9yYXJ5RG9j
dW1lbnRJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bkRhdGEgZGF0YSkgLT4gKGJvb2wgaXNTdWNjZXNzKSBBc3luYwogfQogCiAjZW5kaWYgLy8gRU5B
QkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCmlu
ZGV4IDcyYWM1YTRmYjNkMmU1NmIzZjQ5NjBjYzdmNDJjNDVlZjNlNDExN2YuLmIwODU2NjdmODA4
NTE2ODZiNjlhNDZhZTA3Y2VlMDFmZThhYTNmZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbi5jcHAKQEAgLTU5LDkgKzU5LDkgQEAKICNpbmNsdWRlIDxXZWJDb3JlL01lc3NhZ2VX
aXRoTWVzc2FnZVBvcnRzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlQ29uZmlndXJhdGlvbi5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Vydmlj
ZVdvcmtlckNsaWVudERhdGEuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1NlcnZpY2VXb3JrZXJDbGll
bnRJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VyQ2xpZW50UXVl
cnlPcHRpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50
aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJBZ2VudC5oPgpAQCAtMTAwLDcgKzEwMCw3
IEBAIFJlZjxEb2N1bWVudExvYWRlcj4gU2VydmljZVdvcmtlckZyYW1lTG9hZGVyQ2xpZW50Ojpj
cmVhdGVEb2N1bWVudExvYWRlcihjb25zdCBSCiAgICAgcmV0dXJuIFdlYkRvY3VtZW50TG9hZGVy
OjpjcmVhdGUocmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEpOwogfQogCi1XZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbjo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24oUmVmPElQQzo6Q29u
bmVjdGlvbj4mJiBjb25uZWN0aW9uLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIHJlZ2lz
dHJhYmxlRG9tYWluLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJ
ZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIsIFBhZ2VHcm91cElkZW50aWZp
ZXIgcGFnZUdyb3VwSUQsIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUsIFNl
cnZpY2VXb3JrZXJJbml0aWFsaXphdGlvbkRhdGEmJiBpbml0aWFsaXphdGlvbkRhdGEpCitXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24o
UmVmPElQQzo6Q29ubmVjdGlvbj4mJiBjb25uZWN0aW9uLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiYmIHJlZ2lzdHJhYmxlRG9tYWluLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIsIFBh
Z2VHcm91cElkZW50aWZpZXIgcGFnZUdyb3VwSUQsIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2Vi
UGFnZVByb3h5SUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgV2ViUHJlZmVyZW5jZXNT
dG9yZSYgc3RvcmUsIFNlcnZpY2VXb3JrZXJJbml0aWFsaXphdGlvbkRhdGEmJiBpbml0aWFsaXph
dGlvbkRhdGEpCiAgICAgOiBtX2Nvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKFdURk1vdmUoY29u
bmVjdGlvbikpCiAgICAgLCBtX3JlZ2lzdHJhYmxlRG9tYWluKFdURk1vdmUocmVnaXN0cmFibGVE
b21haW4pKQogICAgICwgbV9zZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIoc2VydmljZVdvcmtl
clBhZ2VJZGVudGlmaWVyKQpAQCAtMjUxLDkgKzI1MSw3IEBAIHZvaWQgV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb246OnN0YXJ0RmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBz
ZXJ2CiAgICAgfQogCiAgICAgYXV0byBjbGllbnQgPSBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
Q2xpZW50OjpjcmVhdGUobV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcy5jb3B5UmVmKCksIHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hJ
ZGVudGlmaWVyLCByZXF1ZXN0LnJlcXVlc3RlcigpID09IFJlc291cmNlUmVxdWVzdDo6UmVxdWVz
dGVyOjpNYWluKTsKLSAgICBzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlm
aWVyPiBjbGllbnRJZDsKLSAgICBpZiAob3B0aW9ucy5jbGllbnRJZGVudGlmaWVyKQotICAgICAg
ICBjbGllbnRJZCA9IFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIHsgc2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIsIG9wdGlvbnMuY2xpZW50SWRlbnRpZmllci52YWx1ZSgpIH07CisgICAg
c3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gY2xpZW50SWQg
PSBvcHRpb25zLmNsaWVudElkZW50aWZpZXI7CiAKICAgICByZXF1ZXN0LnNldEhUVFBCb2R5KGZv
cm1EYXRhLnRha2VEYXRhKCkpOwogICAgIHNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS0+c3RhcnRG
ZXRjaChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyLCBXVEZNb3Zl
KGNsaWVudCksIFdURk1vdmUoY2xpZW50SWQpLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJl
ZmVycmVyKSwgV1RGTW92ZShvcHRpb25zKSk7CkBAIC0yOTQsNyArMjkyLDcgQEAgdm9pZCBXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6ZGlkU2F2ZVNjcmlwdHNUb0Rpc2soV2ViQ29yZTo6
U2VydmljZVdvcmtlckkKIH0KICNlbmRpZgogCi12b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChjb25zdCBTZXJ2aWNlV29y
a2VyQ2xpZW50SWRlbnRpZmllciYgZGVzdGluYXRpb25JZGVudGlmaWVyLCBjb25zdCBNZXNzYWdl
V2l0aE1lc3NhZ2VQb3J0cyYgbWVzc2FnZSwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc291cmNl
SWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pCit2b2lkIFdlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVudChjb25z
dCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciYgZGVzdGluYXRpb25JZGVudGlmaWVy
LCBjb25zdCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYgbWVzc2FnZSwgU2VydmljZVdvcmtlcklk
ZW50aWZpZXIgc291cmNlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pCiB7
CiAgICAgbV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViU1dT
ZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpQb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlckNsaWVu
dChkZXN0aW5hdGlvbklkZW50aWZpZXIsIG1lc3NhZ2UsIHNvdXJjZUlkZW50aWZpZXIsIHNvdXJj
ZU9yaWdpbiksIDApOwogfQpAQCAtMzI5LDcgKzMyNyw3IEBAIHZvaWQgV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb246OndvcmtlclRlcm1pbmF0ZWQoU2VydmljZVdvcmtlcklkZW50aWZpZXIg
c2VyCiAgICAgbV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2Vi
U1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpXb3JrZXJUZXJtaW5hdGVkKHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyKSwgMCk7CiB9CiAKLXZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b246OmZpbmRDbGllbnRCeUlkZW50aWZpZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZp
ZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVy
IGNsaWVudElkZW50aWZpZXIsIEZpbmRDbGllbnRCeUlkZW50aWZpZXJDYWxsYmFjayYmIGNhbGxi
YWNrKQordm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6ZmluZENsaWVudEJ5SWRl
bnRpZmllcihXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRl
bnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIgY2xpZW50SWRlbnRpZmll
ciwgRmluZENsaWVudEJ5SWRlbnRpZmllckNhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgYXV0
byByZXF1ZXN0SWRlbnRpZmllciA9ICsrbV9wcmV2aW91c1JlcXVlc3RJZGVudGlmaWVyOwogICAg
IG1fZmluZENsaWVudEJ5SWRlbnRpZmllclJlcXVlc3RzLmFkZChyZXF1ZXN0SWRlbnRpZmllciwg
V1RGTW92ZShjYWxsYmFjaykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKaW5kZXgg
OWQ4YjI3ZTBjNWJjNjAzYjYzNjQ3OGU1M2E2NjBlYzQyY2MyYjVhMy4uMGI0N2U2NmE5MTI3OThh
Mjc3NTMwOTdmM2YwZTY5NDdhMGMzYzIxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bi5oCkBAIC02Miw3ICs2Miw3IEBAIGNsYXNzIFdlYlVzZXJDb250ZW50Q29udHJvbGxlcjsKIAog
Y2xhc3MgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24gZmluYWwgOiBwdWJsaWMgV2ViQ29y
ZTo6U1dDb250ZXh0TWFuYWdlcjo6Q29ubmVjdGlvbiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2Vp
dmVyIHsKIHB1YmxpYzoKLSAgICBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbihSZWY8SVBD
OjpDb25uZWN0aW9uPiYmLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmLCBzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2Vy
UGFnZUlkZW50aWZpZXIsIFBhZ2VHcm91cElkZW50aWZpZXIsIFdlYlBhZ2VQcm94eUlkZW50aWZp
ZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiwg
U2VydmljZVdvcmtlckluaXRpYWxpemF0aW9uRGF0YSYmKTsKKyAgICBXZWJTV0NvbnRleHRNYW5h
Z2VyQ29ubmVjdGlvbihSZWY8SVBDOjpDb25uZWN0aW9uPiYmLCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiYmLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIsIFBhZ2VHcm91cElkZW50aWZp
ZXIsIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBjb25z
dCBXZWJQcmVmZXJlbmNlc1N0b3JlJiwgU2VydmljZVdvcmtlckluaXRpYWxpemF0aW9uRGF0YSYm
KTsKICAgICB+V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24oKTsKIAogICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CkBA
IC03MiwxMiArNzIsMTIgQEAgcHJpdmF0ZToKIAogICAgIC8vIFdlYkNvcmU6OlNXQ29udGV4dE1h
bmFnZXI6OkNvbm5lY3Rpb24uCiAgICAgdm9pZCBlc3RhYmxpc2hDb25uZWN0aW9uKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7Ci0gICAgdm9pZCBwb3N0TWVzc2FnZVRvU2Vydmlj
ZVdvcmtlckNsaWVudChjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmll
ciYgZGVzdGluYXRpb25JZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3Nh
Z2VQb3J0cyYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNvdXJjZUlkZW50aWZp
ZXIsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luKSBmaW5hbDsKKyAgICB2b2lkIHBvc3RNZXNz
YWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50KGNvbnN0IFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHRJZGVudGlmaWVyJiBkZXN0aW5hdGlvbklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1l
c3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIg
c291cmNlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4pIGZpbmFsOwogICAg
IHZvaWQgZGlkRmluaXNoSW5zdGFsbChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJKb2JEYXRhSWRlbnRpZmllcj4sIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBi
b29sIHdhc1N1Y2Nlc3NmdWwpIGZpbmFsOwogICAgIHZvaWQgZGlkRmluaXNoQWN0aXZhdGlvbihX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllcikgZmluYWw7CiAgICAgdm9pZCBzZXRTZXJ2
aWNlV29ya2VySGFzUGVuZGluZ0V2ZW50cyhXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciwgYm9vbCkgZmluYWw7CiAgICAgdm9pZCB3b3JrZXJUZXJtaW5hdGVkKFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyKSBmaW5hbDsKLSAgICB2b2lkIGZpbmRDbGllbnRCeUlkZW50aWZp
ZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJDbGllbnRJZGVudGlmaWVyLCBGaW5kQ2xpZW50QnlJZGVudGlmaWVyQ2FsbGJhY2smJikgZmlu
YWw7CisgICAgdm9pZCBmaW5kQ2xpZW50QnlJZGVudGlmaWVyKFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwg
RmluZENsaWVudEJ5SWRlbnRpZmllckNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgbWF0Y2hB
bGwoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJDbGllbnRRdWVyeU9wdGlvbnMmLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50
c01hdGNoQWxsQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBjbGFpbShXZWJDb3JlOjpTZXJ2
aWNlV29ya2VySWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpFeGNl
cHRpb25Pcjx2b2lkPiYmKT4mJikgZmluYWw7CiAgICAgdm9pZCBza2lwV2FpdGluZyhXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBm
aW5hbDsKQEAgLTEwOSw3ICsxMDksNyBAQCBwcml2YXRlOgogCiAgICAgUmVmPElQQzo6Q29ubmVj
dGlvbj4gbV9jb25uZWN0aW9uVG9OZXR3b3JrUHJvY2VzczsKICAgICBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiBtX3JlZ2lzdHJhYmxlRG9tYWluOwotICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6U2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXI+IG1fc2VydmljZVdvcmtlclBhZ2VJZGVu
dGlmaWVyOworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4
dElkZW50aWZpZXI+IG1fc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyOwogICAgIFBhZ2VHcm91
cElkZW50aWZpZXIgbV9wYWdlR3JvdXBJRDsKICAgICBXZWJQYWdlUHJveHlJZGVudGlmaWVyIG1f
d2ViUGFnZVByb3h5SUQ7CiAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgbV9wYWdlSUQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggNTcyZjM2ZGQwNzNlZGE2
MzU4NjdlMTVmZTg4NGQ4Yjg3NDdjMmVjYy4uOTQzMDRiNzExZmQ0ZmFlYTNiMjBlNzM5Yzk5NmE0
N2I4YzcyYWQzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAt
MTkyOCw3ICsxOTI4LDcgQEAgTGliV2ViUlRDTmV0d29yayYgV2ViUHJvY2Vzczo6bGliV2ViUlRD
TmV0d29yaygpCiB9CiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi12b2lkIFdlYlByb2Nl
c3M6OmVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0aW9uVG9OZXR3b3JrUHJvY2VzcyhQYWdl
R3JvdXBJZGVudGlmaWVyIHBhZ2VHcm91cElELCBXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBh
Z2VQcm94eUlELCBQYWdlSWRlbnRpZmllciBwYWdlSUQsIGNvbnN0IFdlYlByZWZlcmVuY2VzU3Rv
cmUmIHN0b3JlLCBSZWdpc3RyYWJsZURvbWFpbiYmIHJlZ2lzdHJhYmxlRG9tYWluLCBzdGQ6Om9w
dGlvbmFsPFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlk
ZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJbml0aWFsaXphdGlvbkRhdGEmJiBpbml0aWFsaXphdGlv
bkRhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3Zv
aWQgV2ViUHJvY2Vzczo6ZXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQ
cm9jZXNzKFBhZ2VHcm91cElkZW50aWZpZXIgcGFnZUdyb3VwSUQsIFdlYlBhZ2VQcm94eUlkZW50
aWZpZXIgd2ViUGFnZVByb3h5SUQsIFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgV2ViUHJl
ZmVyZW5jZXNTdG9yZSYgc3RvcmUsIFJlZ2lzdHJhYmxlRG9tYWluJiYgcmVnaXN0cmFibGVEb21h
aW4sIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IHNlcnZp
Y2VXb3JrZXJQYWdlSWRlbnRpZmllciwgU2VydmljZVdvcmtlckluaXRpYWxpemF0aW9uRGF0YSYm
IGluaXRpYWxpemF0aW9uRGF0YSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewogICAgIC8vIFdlIGFyZSBpbiB0aGUgU2VydmljZSBXb3JrZXIgY29udGV4
dCBwcm9jZXNzIGFuZCB0aGUgY2FsbCBiZWxvdyBlc3RhYmxpc2hlcyBvdXIgY29ubmVjdGlvbiB0
byB0aGUgTmV0d29yayBQcm9jZXNzCiAgICAgLy8gYnkgY2FsbGluZyBlbnN1cmVOZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb24uIFNXQ29udGV4dE1hbmFnZXIgbmVlZHMgdG8gdXNlIHRoZSBzYW1lIHVu
ZGVybHlpbmcgSVBDOjpDb25uZWN0aW9uIGFzIHRoZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLmgKaW5kZXggZjZjODY0MzI4MzdhMWUyZmIyOTM3ZDMxOWI2MzU0MDIxMmE4MDdkNC4u
OWFkZTNjMDA1YWYyZTIyNzFhZmNhYmZmZDY4MTUyMzY3NmVmYjcwYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oCkBAIC00NzYsNyArNDc2LDcgQEAgcHJpdmF0ZToKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotICAgIHZvaWQgZXN0YWJsaXNoV29ya2Vy
Q29udGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKFBhZ2VHcm91cElkZW50aWZpZXIsIFdl
YlBhZ2VQcm94eUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBjb25zdCBXZWJQ
cmVmZXJlbmNlc1N0b3JlJiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiwgc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcj4gc2VydmljZVdvcmtl
clBhZ2VJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySW5pdGlhbGl6YXRpb25EYXRhJiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBlc3RhYmxpc2hXb3JrZXJDb250ZXh0
Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MoUGFnZUdyb3VwSWRlbnRpZmllciwgV2ViUGFnZVBy
b3h5SWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIGNvbnN0IFdlYlByZWZlcmVu
Y2VzU3RvcmUmLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmLCBzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFn
ZUlkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJbml0aWFsaXphdGlvbkRhdGEmJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKICNlbmRpZgogCiAgICAgdm9pZCBmZXRjaFdlYnNpdGVEYXRh
KE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYnNp
dGVEYXRhJiYpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
bWVzc2FnZXMuaW4KaW5kZXggYjNlZmU1NTNhYTVhYzdjNWE4Zjk3OTJkNGFkYjg0YTg3MTgxOGQ4
NC4uNzQ5M2MzZjhmNDY1MWRkZmJkNTA0MTFlN2UyMDU2NmFkOTBkOTJmZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTEwMSw3ICsx
MDEsNyBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIE5vdFJlZkNvdW50
ZWQgewogI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0gICAgRXN0YWJsaXNo
V29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub05ldHdvcmtQcm9jZXNzKFdlYktpdDo6UGFnZUdyb3Vw
SWRlbnRpZmllciBwYWdlR3JvdXBJRCwgV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdl
YlBhZ2VQcm94eUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBwYWdlSUQsIHN0cnVjdCBXZWJL
aXQ6OldlYlByZWZlcmVuY2VzU3RvcmUgc3RvcmUsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
IGRvbWFpbiwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRp
Zmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyLCBzdHJ1Y3QgV2ViS2l0OjpTZXJ2aWNl
V29ya2VySW5pdGlhbGl6YXRpb25EYXRhIGluaXRpYWxpemF0aW9uRGF0YSkgLT4gKCkgQXN5bmMK
KyAgICBFc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvTmV0d29ya1Byb2Nlc3MoV2Vi
S2l0OjpQYWdlR3JvdXBJZGVudGlmaWVyIHBhZ2VHcm91cElELCBXZWJLaXQ6OldlYlBhZ2VQcm94
eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJ
RCwgc3RydWN0IFdlYktpdDo6V2ViUHJlZmVyZW5jZXNTdG9yZSBzdG9yZSwgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4gZG9tYWluLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIsIHN0cnVj
dCBXZWJLaXQ6OlNlcnZpY2VXb3JrZXJJbml0aWFsaXphdGlvbkRhdGEgaW5pdGlhbGl6YXRpb25E
YXRhKSAtPiAoKSBBc3luYwogI2VuZGlmCiAKICAgICBTZXRIYXNTdXNwZW5kZWRQYWdlUHJveHko
Ym9vbCBoYXNTdXNwZW5kZWRQYWdlUHJveHkpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>