<?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>240273</bug_id>
          
          <creation_ts>2022-05-10 01:09:47 -0700</creation_ts>
          <short_desc>Make sure calling showNotification will extend the service worker lifetime</short_desc>
          <delta_ts>2022-05-16 02:43:28 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Service Workers</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>nham</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1867866</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-05-10 01:09:47 -0700</bug_when>
    <thetext>Make sure calling showNotification will extend the service worker lifetime</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867867</commentid>
    <comment_count>1</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-05-10 01:10:17 -0700</bug_when>
    <thetext>&lt;rdar://92978482&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867869</commentid>
    <comment_count>2</comment_count>
      <attachid>459099</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-05-10 01:18:53 -0700</bug_when>
    <thetext>Created attachment 459099
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868064</commentid>
    <comment_count>3</comment_count>
      <attachid>459145</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-05-11 00:08:51 -0700</bug_when>
    <thetext>Created attachment 459145
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868071</commentid>
    <comment_count>4</comment_count>
      <attachid>459145</attachid>
    <who name="Ben Nham">nham</who>
    <bug_when>2022-05-11 00:35:14 -0700</bug_when>
    <thetext>Comment on attachment 459145
Patch

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

&gt; Source/WebCore/workers/service/ServiceWorkerRegistration.cpp:312
&gt; +    if (auto* serviceWorkerGlobalScope = dynamicDowncast&lt;ServiceWorkerGlobalScope&gt;(context)) {
&gt; +        if (auto* pushEvent = serviceWorkerGlobalScope-&gt;pushEvent()) {
&gt; +            auto&amp; globalObject = *JSC::jsCast&lt;JSDOMGlobalObject*&gt;(promise-&gt;globalObject());
&gt; +            auto&amp; jsPromise = *JSC::jsCast&lt;JSC::JSPromise*&gt;(promise-&gt;promise());
&gt; +            pushEvent-&gt;waitUntil(DOMPromise::create(globalObject, jsPromise));
&gt; +        }
&gt; +    }

How does this work if the call to showNotification occurs asynchronously? It seems like dispatchPushEvent would have cleared the saved push event from ServiceWorkerGlobalScope by then. For instance:

```
async function showPush(reg, title, delay) {
  await new Promise(resolve =&gt; self.setTimeout(resolve, delay));

  // Won&apos;t serviceWorkerGlobalScope-&gt;pushEvent() be null at this point?
  reg.showNotification(title);

  // Note that I&apos;m simulating the mistake of not actually adding the showNotification promise to waitUntil. I think this code
  // would work as expected with your patch if it was `return reg.showNotification` instead.
}

self.addEventListener(&apos;push&apos;, (event) =&gt; {
  event.waitUntil(showPushAfterDelay(self.registration, &quot;foobar&quot;, 100));
});
```

I guess this patch is only here to guard against the specific case where someone calls showNotification directly in the push event handler. This will definitely fix some of the issues we have seen in the wild, but I&apos;m not sure if it will fix all the issues. We might end up needing to add some grace period for the service worker to run after all promises related to the event have settled to support more existing websites.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868072</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-05-11 00:54:47 -0700</bug_when>
    <thetext>(In reply to Ben Nham from comment #4)
&gt; Comment on attachment 459145 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=459145&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/workers/service/ServiceWorkerRegistration.cpp:312
&gt; &gt; +    if (auto* serviceWorkerGlobalScope = dynamicDowncast&lt;ServiceWorkerGlobalScope&gt;(context)) {
&gt; &gt; +        if (auto* pushEvent = serviceWorkerGlobalScope-&gt;pushEvent()) {
&gt; &gt; +            auto&amp; globalObject = *JSC::jsCast&lt;JSDOMGlobalObject*&gt;(promise-&gt;globalObject());
&gt; &gt; +            auto&amp; jsPromise = *JSC::jsCast&lt;JSC::JSPromise*&gt;(promise-&gt;promise());
&gt; &gt; +            pushEvent-&gt;waitUntil(DOMPromise::create(globalObject, jsPromise));
&gt; &gt; +        }
&gt; &gt; +    }
&gt; 
&gt; How does this work if the call to showNotification occurs asynchronously? It
&gt; seems like dispatchPushEvent would have cleared the saved push event from
&gt; ServiceWorkerGlobalScope by then.

Right, if you call showNotification, you enter an async world and should
probably call waitUntil/do await showNotification.

&gt; I guess this patch is only here to guard against the specific case where
&gt; someone calls showNotification directly in the push event handler. This will
&gt; definitely fix some of the issues we have seen in the wild, but I&apos;m not sure
&gt; if it will fix all the issues. We might end up needing to add some grace
&gt; period for the service worker to run after all promises related to the event
&gt; have settled to support more existing websites.

This patch aligns with the spec (resolve the promise once show notifications are done).
This patch also ensures there is no race conditions in case showNotification is synchronously called.

We should probably consider extending the lifetime of the service worker in case of push events, at least if showNotification was called. In that case, there are good chances that the user will click on the notification, which will require the service worker again.
This is best dealt with as a follow-up though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1868427</commentid>
    <comment_count>6</comment_count>
      <attachid>459145</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-05-12 08:43:29 -0700</bug_when>
    <thetext>Comment on attachment 459145
Patch

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

r=me with comments

&gt; Source/WebCore/Modules/notifications/Notification.cpp:149
&gt; +    auto scope = makeScopeExit([&amp;callback] { callback(); });

I feel like using a CompletionHandlerCallingScope would be much nicer, since you could WTFMove() here.

&gt; Source/WebCore/Modules/notifications/Notification.cpp:176
&gt; +    scope.release();

And the release() here would give you your completion handler again so you can capture it in your lambda. It is less error prone.

&gt; Source/WebCore/dom/ScriptExecutionContext.cpp:769
&gt; +CompletionHandler&lt;void()&gt; ScriptExecutionContext::notificationCallback(NotificationCallbackIdentifier identifier)

Should have &quot;take&quot; in the name since it is actually modifying the underlying map.

&gt; Source/WebCore/workers/service/ServiceWorkerGlobalScope.cpp:84
&gt; +    m_pushEvent = &amp;pushEvent;

Are we sure m_pushEvent was not already initialized to a pushEvent here?

&gt; Source/WebCore/workers/service/ServiceWorkerGlobalScope.cpp:86
&gt; +    m_pushEvent = nullptr;

If so, we&apos;d lose that previous pushEvent here. Sometimes we want a &quot;stack&quot; behavior for this sort of things and restore the previous value of m_pushEvent rather than clearing it. I don&apos;t know if it applies here but if it does, we should consider using SetForScope instead.

&gt; Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.cpp:106
&gt; +    callback();

Is it really OK here to be calling the callback without we&apos;ve received the response to the IPC below? It looks weird.

&gt; Source/WebKit/UIProcess/Notifications/ServiceWorkerNotificationHandler.cpp:59
&gt; +        callback();

Given how callback is used, I&apos;d recommend a ScopeExit or a CompletionHandlerCallingScope.

&gt; Source/WebKitLegacy/mac/WebCoreSupport/WebNotificationClient.mm:71
&gt; +    callback();

You are failing to call callback() in the early return case above. I&apos;d suggest using a ScopeExit or a CompletionHanderCallingScope to avoid such bugs.

&gt; Tools/TestWebKitAPI/TestNotificationProvider.cpp:142
&gt; +bool TestNotificationProvider::hasReceivedNotification() const

I&apos;d suggest inlining those 2 in the header given that those are trivial getter / setters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869139</commentid>
    <comment_count>7</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-05-15 22:52:49 -0700</bug_when>
    <thetext>Thanks for the review.

(In reply to Chris Dumez from comment #6)
&gt; Comment on attachment 459145 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=459145&amp;action=review
&gt; 
&gt; r=me with comments
&gt; 
&gt; &gt; Source/WebCore/Modules/notifications/Notification.cpp:149
&gt; &gt; +    auto scope = makeScopeExit([&amp;callback] { callback(); });
&gt; 
&gt; I feel like using a CompletionHandlerCallingScope would be much nicer, since
&gt; you could WTFMove() here.

OK

&gt; &gt; Source/WebCore/dom/ScriptExecutionContext.cpp:769
&gt; &gt; +CompletionHandler&lt;void()&gt; ScriptExecutionContext::notificationCallback(NotificationCallbackIdentifier identifier)
&gt; 
&gt; Should have &quot;take&quot; in the name since it is actually modifying the underlying
&gt; map.

OK

&gt; &gt; Source/WebCore/workers/service/ServiceWorkerGlobalScope.cpp:84
&gt; &gt; +    m_pushEvent = &amp;pushEvent;
&gt; 
&gt; Are we sure m_pushEvent was not already initialized to a pushEvent here?

Yes, we enqueue a task for each push event.
I&apos;ll add an ASSERT.

&gt; &gt; Source/WebKit/NetworkProcess/Notifications/NetworkNotificationManager.cpp:106
&gt; &gt; +    callback();
&gt; 
&gt; Is it really OK here to be calling the callback without we&apos;ve received the
&gt; response to the IPC below? It looks weird.

AFAIK, this code is non functional (see comments in the same file).

&gt; &gt; Source/WebKit/UIProcess/Notifications/ServiceWorkerNotificationHandler.cpp:59
&gt; &gt; +        callback();
&gt; 
&gt; Given how callback is used, I&apos;d recommend a ScopeExit or a
&gt; CompletionHandlerCallingScope.

OK

&gt; &gt; Source/WebKitLegacy/mac/WebCoreSupport/WebNotificationClient.mm:71
&gt; &gt; +    callback();
&gt; 
&gt; You are failing to call callback() in the early return case above. I&apos;d
&gt; suggest using a ScopeExit or a CompletionHanderCallingScope to avoid such
&gt; bugs.

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869144</commentid>
    <comment_count>8</comment_count>
      <attachid>459401</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-05-15 23:16:41 -0700</bug_when>
    <thetext>Created attachment 459401
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869146</commentid>
    <comment_count>9</comment_count>
      <attachid>459403</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-05-15 23:21:53 -0700</bug_when>
    <thetext>Created attachment 459403
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869163</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-16 01:19:31 -0700</bug_when>
    <thetext>Committed r294225 (250583@main): &lt;https://commits.webkit.org/250583@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 459403.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459099</attachid>
            <date>2022-05-10 01:18:53 -0700</date>
            <delta_ts>2022-05-11 00:08:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240273-20220510101851.patch</filename>
            <type>text/plain</type>
            <size>40706</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzOTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2EzNDczZmY5Y2RhZjhh
MTNhYzk1YjY2M2YzYjA4NTcyOWIwNDlhMS4uMTA0Y2FlNjAwMWIwMjJmNmUxNWFiMTY3MWM5YzEz
M2FkMTE1YWFiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIyLTA1LTEwICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHN1cmUgY2FsbGlu
ZyBzaG93Tm90aWZpY2F0aW9uIHdpbGwgZXh0ZW5kIHRoZSBzZXJ2aWNlIHdvcmtlciBsaWZldGlt
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQwMjcz
CisgICAgICAgIDxyZGFyOi8vOTI5Nzg0ODI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIE5vdGlmaWNhdGlvbkNsaWVudCBBUEkgc28gdGhh
dCBzaG93IGlzIHRha2luZyBhIGNvbXBsZXRpb24gaGFuZGxlci4KKyAgICAgICAgTWFrZSB1c2Ug
b2YgdGhpcyBjb21wbGV0aW9uIGhhbmRsZXIgdG8gcmVzb2x2ZSB0aGUgcHJvbWlzZSB3aGVuIHRo
ZSBzaG93IG5vdGlmaWNhdGlvbiBzdGVwcyBhcmUgZG9uZSwgYXMgcGVyIHNwZWMuCisgICAgICAg
IFJlZ2lzdGVyIHB1c2ggZXZlbnQgdG8gU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIHdoZW4gdGhl
IGV2ZW50IGhhbmRsZXJzIGFyZSBjYWxsZWQuCisgICAgICAgIFdoZW4gU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbjo6c2hvdyBpcyBjYWxsZWQgZHVyaW5nIG9uZSBvZiB0aGUgcHVzaCBldmVudCBo
YW5kbGVycywKKyAgICAgICAgZXh0ZW5kIHRoZSBwdXNoIGV2ZW50IGxpZmV0aW1lIGJ5IGFkZGlu
ZyB0aGUgc2hvdyBub3RpZmljYXRpb24gcHJvbWlzZSB0byB0aGUgcHVzaCBldmVudC4KKworICAg
ICAgICBDb3ZlcmVkIGJ5IEFQSSB0ZXN0LgorCisgICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRp
b25zL05vdGlmaWNhdGlvbi5jcHA6CisgICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05v
dGlmaWNhdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25DbGllbnQuaDoKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHA6Cisg
ICAgICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaDoKKyAgICAgICAgKiB3b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAgKiB3b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmg6CisgICAgICAgICogd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uY3BwOgorICAgICAgICAqIHdvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmg6CisgICAgICAgICogd29ya2Vycy9z
ZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHA6CisKIDIwMjItMDUtMDkgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZTo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSBzaG91bGQgbm90IHVzZSBJT1N1
cmZhY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IGE3M2Q5ZGM3YjRhMTUxNTI0MGQzMjYxM2U4ZTlkNTA4YzVhM2Q3
MDguLjE5MmM3MzliYmFhODIwYWIxNGRlMjE1OWExYTdiMDg4OTljNTA1NzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMjItMDUtMTAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgorCisgICAgICAgIE1ha2Ugc3VyZSBjYWxsaW5nIHNob3dOb3RpZmljYXRpb24gd2lsbCBl
eHRlbmQgdGhlIHNlcnZpY2Ugd29ya2VyIGxpZmV0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDAyNzMKKyAgICAgICAgPHJkYXI6Ly85Mjk3ODQ4
Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPbiBX
ZWJQcm9jZXNzIHNpZGUsIGltcGxlbWVudCB0aGUgbmV3IE5vZmljYXRpb25DbGllbnQ6OnNob3cg
QVBJIHRoYXQgdGFrZXMgYSBjYWxsYmFjay4KKyAgICAgICAgRGVsYXkgY2FsbGluZyB0aGlzIGNh
bGxiYWNrIHVudGlsIFVJUHJvY2VzcyB0ZWxscyB1cyBzbyB0aHJvdWdoIGFzeW5jIElQQy4KKyAg
ICAgICAgT24gVUlQcm9jZXNzIHNpZGUsIHRha2UgYSBjYWxsYmFjayBhbmQgY2FsbCBpdCB3aGVu
IHRoZSBzaG93IG5vdGlmaWNhdGlvbiBzdGVwcyBhcmUgZG9uZS4KKworICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlv
bk1hbmFnZXIuaDoKKyAgICAgICAgKiBTaGFyZWQvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25N
YW5hZ2VyTWVzc2FnZUhhbmRsZXIuaDoKKyAgICAgICAgKiBTaGFyZWQvTm90aWZpY2F0aW9ucy9O
b3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIubWVzc2FnZXMuaW46CisgICAgICAgICog
VUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvU2VydmljZVdvcmtlck5vdGlmaWNhdGlvbkhhbmRsZXIu
Y3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1NlcnZpY2VXb3JrZXJOb3Rp
ZmljYXRpb25IYW5kbGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmNwcDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhl
YXBQcm94eVByb2Nlc3Nvci5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25z
L1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvTm90aWZp
Y2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuY3BwOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lmg6CisKIDIwMjItMDUt
MDkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIE1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50VGltZSBzaG91bGQgbm90IHVz
ZSBJT1N1cmZhY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggN2IwOGFhMThhYTRi
YmE2YmE5NTRhMTJkMWNjYWMyMzc0MGIxODExYy4uMjJkNjExNzA0MTM3ODE1ODQ0Y2Y0YTg1Y2Zi
NWE5YjIxODc0NGYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDIyLTA1LTEwICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAg
ICAgICBNYWtlIHN1cmUgY2FsbGluZyBzaG93Tm90aWZpY2F0aW9uIHdpbGwgZXh0ZW5kIHRoZSBz
ZXJ2aWNlIHdvcmtlciBsaWZldGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjQwMjczCisgICAgICAgIDxyZGFyOi8vOTI5Nzg0ODI+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJOb3RpZmljYXRpb25DbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJO
b3RpZmljYXRpb25DbGllbnQubW06CisKIDIwMjItMDUtMDYgIEJyZW50IEZ1bGdoYW0gIDxiZnVs
Z2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHRoZSB2aWV3cG9ydEZpdEVuYWJsZWQg
V0tQcmVmZXJlbmNlIG5vdyB0aGF0IGl0IGlzIGFsd2F5cyBvbiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKaW5kZXggM2Rh
N2RmOGRlNTkzMjUwODNjOWFhZjMzYjAwZDI3Y2I0ODc0NjRjNi4uMmQ1YmZhZGIwYmZiZTY2YjEw
MDE0ZGQwZDQ3OGExMDQwY2ZiNzdmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKQEAgLTQ5LDYgKzQ5LDcgQEAKICNp
bmNsdWRlICJXaW5kb3dGb2N1c0FsbG93ZWRJbmRpY2F0b3IuaCIKICNpbmNsdWRlIDx3dGYvQ29t
cGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2lu
Y2x1ZGUgPHd0Zi9TY29wZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTE0MywxNyAr
MTQ0LDIzIEBAIHZvaWQgTm90aWZpY2F0aW9uOjptYXJrQXNTaG93bigpCiAgICAgbV9zdGF0ZSA9
IFNob3dpbmc7CiB9CiAKLXZvaWQgTm90aWZpY2F0aW9uOjpzaG93KCkKK3ZvaWQgTm90aWZpY2F0
aW9uOjpzaG93KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjYWxsYmFjaykKIHsKKyAgICBh
dXRvIHNjb3BlID0gbWFrZVNjb3BlRXhpdChbJmNhbGxiYWNrXSB7IGNhbGxiYWNrKCk7IH0pOwor
CiAgICAgLy8gcHJldmVudCBkb3VibGUtc2hvd2luZwogICAgIGlmIChtX3N0YXRlICE9IElkbGUp
CiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8qIGNsaWVudCA9IGNsaWVudEZyb21Db250ZXh0
KCk7CisgICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBp
ZiAoIWNvbnRleHQpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIGNsaWVudCA9IGNvbnRl
eHQtPm5vdGlmaWNhdGlvbkNsaWVudCgpOwogICAgIGlmICghY2xpZW50KQogICAgICAgICByZXR1
cm47CiAKLSAgICBpZiAoY2xpZW50LT5jaGVja1Blcm1pc3Npb24oc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpKSAhPSBQZXJtaXNzaW9uOjpHcmFudGVkKSB7CisgICAgaWYgKGNsaWVudC0+Y2hlY2tQ
ZXJtaXNzaW9uKGNvbnRleHQpICE9IFBlcm1pc3Npb246OkdyYW50ZWQpIHsKICAgICAgICAgc3dp
dGNoIChtX25vdGlmaWNhdGlvblNvdXJjZSkgewogICAgICAgICBjYXNlIE5vdGlmaWNhdGlvblNv
dXJjZTo6RG9jdW1lbnQ6CiAgICAgICAgICAgICBkaXNwYXRjaEVycm9yRXZlbnQoKTsKQEAgLTE2
MywxMiArMTcwLDEyIEBAIHZvaWQgTm90aWZpY2F0aW9uOjpzaG93KCkKICAgICAgICAgICAgIC8v
IElmIHBlcm1pc3Npb24gaGFzIHNpbmNlIGJlZW4gcmV2b2tlZCwgdGhlbiBzaWxlbnRseSBmYWls
aW5nIGhlcmUgaXMgZXhwZWN0ZWQgYmVoYXZpb3IuCiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQotCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoY2xpZW50LT5zaG93KCp0
aGlzKSkKLSAgICAgICAgbV9zdGF0ZSA9IFNob3dpbmc7CisgICAgbV9zdGF0ZSA9IFNob3dpbmc7
CisgICAgc2NvcGUucmVsZWFzZSgpOworICAgIGNsaWVudC0+c2hvdygqdGhpcywgV1RGTW92ZShj
YWxsYmFjaykpOwogfQogCiB2b2lkIE5vdGlmaWNhdGlvbjo6Y2xvc2UoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oCmluZGV4IDU5
MGVjMjk4ZDFmOWNkZDUxNzYyZmUzYWI1MGM5OWQ4OWE4ODZlNDYuLmQyNDljYTkyMmZlYzk5MzAz
Yzc0OGIxZjJhY2M5MDVmZGUyMTQ5YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmgKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNs
dWRlICJOb3RpZmljYXRpb25QZXJtaXNzaW9uLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9u
Q29udGV4dElkZW50aWZpZXIuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIK
KyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvVVJMLmg+
CiAjaW5jbHVkZSA8d3RmL1VVSUQuaD4KICNpbmNsdWRlICJXcml0aW5nTW9kZS5oIgpAQCAtNzQs
NyArNzUsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5Ob3RpZmlj
YXRpb24oKTsKIAotICAgIHZvaWQgc2hvdygpOworICAgIHZvaWQgc2hvdyhDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgPSBbXSB7IH0pOwogICAgIHZvaWQgY2xvc2UoKTsKIAogICAgIGNvbnN0
IFN0cmluZyYgdGl0bGUoKSBjb25zdCB7IHJldHVybiBtX3RpdGxlOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uQ2xpZW50
LmgKaW5kZXggYThiMzBiMmYzN2FjMTdiNjYyZWZlMjYzMWViNDQxOGY0NjlmMzIzYS4uMzQ0MTA1
YzRkMjExYzE4MDU1NzIxZDYzYTg3NTZjOWMwMGJhYmVmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DbGllbnQuaApA
QCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgUGVybWlzc2lvbkhhbmRsZXIgPSBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFBlcm1pc3Npb24pPjsKIAogICAgIC8vIFJlcXVlc3RzIHRo
YXQgYSBub3RpZmljYXRpb24gYmUgc2hvd24uCi0gICAgdmlydHVhbCBib29sIHNob3coTm90aWZp
Y2F0aW9uJikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBzaG93KE5vdGlmaWNhdGlvbiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgPSAwOwogCiAgICAgLy8gUmVxdWVzdHMgdGhhdCBhIG5v
dGlmaWNhdGlvbiB0aGF0IGhhcyBhbHJlYWR5IGJlZW4gc2hvd24gYmUgY2FuY2VsZWQuCiAgICAg
dmlydHVhbCB2b2lkIGNhbmNlbChOb3RpZmljYXRpb24mKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKaW5kZXggOTcxYmJkNmUyMmRlNGE5NDZm
MjYxOGZmMjNiM2I2ZmQ4NGM4ZDE1NC4uNmMxNjY2NzlhMzZlOGE2NDcyOGYzZGE0YTdmYmY3MzEx
NDc0NTlmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0
LmNwcApAQCAtNzU1LDQgKzc1NSwxNiBAQCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpIYXNSZXNv
dXJjZUFjY2VzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpjYW5BY2Nlc3NSZXNvdQogICAgIFJF
TEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKK1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6
Ok5vdGlmaWNhdGlvbkNhbGxiYWNrSWRlbnRpZmllciBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojph
ZGROb3RpZmljYXRpb25DYWxsYmFjayhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJh
Y2spCit7CisgICAgYXV0byBpZGVudGlmaWVyID0gTm90aWZpY2F0aW9uQ2FsbGJhY2tJZGVudGlm
aWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKTsKKyAgICBtX25vdGlmaWNhdGlvbkNhbGxiYWNrcy5h
ZGQoaWRlbnRpZmllciwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIHJldHVybiBpZGVudGlmaWVy
OworfQorCitDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6
Om5vdGlmaWNhdGlvbkNhbGxiYWNrKE5vdGlmaWNhdGlvbkNhbGxiYWNrSWRlbnRpZmllciBpZGVu
dGlmaWVyKQoreworICAgIHJldHVybiBtX25vdGlmaWNhdGlvbkNhbGxiYWNrcy50YWtlKGlkZW50
aWZpZXIpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAppbmRleCBiNTczZDI0MzJiMzQ1YTQ2OWQ1MTBkMTlh
ZGNlYWM5NmYwMmE3YWJjLi5mMTJkMGZiMjZlYjlmNmNlM2U1N2VjYmY3NWFjOWJlMDJjYzZkOTJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKQEAgLTMx
Myw2ICszMTMsMTIgQEAgcHVibGljOgogICAgIGVudW0gY2xhc3MgSGFzUmVzb3VyY2VBY2Nlc3Mg
OiB1aW50OF90IHsgTm8sIFllcywgRGVmYXVsdEZvclRoaXJkUGFydHkgfTsKICAgICBXRUJDT1JF
X0VYUE9SVCBIYXNSZXNvdXJjZUFjY2VzcyBjYW5BY2Nlc3NSZXNvdXJjZShSZXNvdXJjZVR5cGUp
IGNvbnN0OwogCisgICAgZW51bSBOb3RpZmljYXRpb25DYWxsYmFja0lkZW50aWZpZXJUeXBlIHsg
fTsKKyAgICB1c2luZyBOb3RpZmljYXRpb25DYWxsYmFja0lkZW50aWZpZXIgPSBPYmplY3RJZGVu
dGlmaWVyPE5vdGlmaWNhdGlvbkNhbGxiYWNrSWRlbnRpZmllclR5cGU+OworCisgICAgV0VCQ09S
RV9FWFBPUlQgTm90aWZpY2F0aW9uQ2FsbGJhY2tJZGVudGlmaWVyIGFkZE5vdGlmaWNhdGlvbkNh
bGxiYWNrKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiBub3RpZmljYXRpb25DYWxsYmFjayhOb3RpZmljYXRp
b25DYWxsYmFja0lkZW50aWZpZXIpOworCiBwcm90ZWN0ZWQ6CiAgICAgY2xhc3MgQWRkQ29uc29s
ZU1lc3NhZ2VUYXNrIDogcHVibGljIFRhc2sgewogICAgIHB1YmxpYzoKQEAgLTM5NSw2ICs0MDEs
OCBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2hhc0xvZ2dlZEF1dGhlbnRpY2F0ZWRFbmNyeXB0
aW9uV2FybmluZyB7IGZhbHNlIH07CiAgICAgU3RvcmFnZUJsb2NraW5nUG9saWN5IG1fc3RvcmFn
ZUJsb2NraW5nUG9saWN5IHsgU3RvcmFnZUJsb2NraW5nUG9saWN5OjpBbGxvd0FsbCB9OworCisg
ICAgSGFzaE1hcDxOb3RpZmljYXRpb25DYWxsYmFja0lkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4+IG1fbm90aWZpY2F0aW9uQ2FsbGJhY2tzOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcAppbmRleCAwMmIyMzgwZWUxOGVjNzY1M2Vj
MjM4M2I2MDgzOGE2MDE3ZjUyZjJkLi4wODllZTEwZjlkOWNhZmZjMmJiNmZhMzEzMmYzNmRlNGMx
ZWY3NmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1
ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQu
aCIKICNpbmNsdWRlICJOb3RpZmljYXRpb25FdmVudC5oIgorI2luY2x1ZGUgIlB1c2hFdmVudC5o
IgogI2luY2x1ZGUgIlNXQ29udGV4dE1hbmFnZXIuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2Vy
LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckNsaWVudC5oIgpAQCAtNzgsNiArNzksMTMgQEAg
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjp+U2VydmljZVdvcmtlckdsb2JhbFNjb3BlKCkKICAg
ICBjYWxsT25NYWluVGhyZWFkKFtub3RpZmljYXRpb25DbGllbnQgPSBXVEZNb3ZlKG1fbm90aWZp
Y2F0aW9uQ2xpZW50KV0geyB9KTsKIH0KIAordm9pZCBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6
OmRpc3BhdGNoUHVzaEV2ZW50KFB1c2hFdmVudCYgcHVzaEV2ZW50KQoreworICAgIG1fcHVzaEV2
ZW50ID0gJnB1c2hFdmVudDsKKyAgICBkaXNwYXRjaEV2ZW50KHB1c2hFdmVudCk7CisgICAgbV9w
dXNoRXZlbnQgPSBudWxscHRyOworfQorCiB2b2lkIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTo6
bm90aWZ5U2VydmljZVdvcmtlclBhZ2VPZkNyZWF0aW9uSWZOZWNlc3NhcnkoKQogewogICAgIGF1
dG8gc2VydmljZVdvcmtlclBhZ2UgPSB0aGlzLT5zZXJ2aWNlV29ya2VyUGFnZSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZS5oCmluZGV4IGFmNWRkODM3ZWE2MDZmNDVkNmMzODE4MDUxNTM4M2I0Zjc0NjcxNDcu
LmM0OTRmOGRkYTUzMTA5YmMzYmRjYzcyZjJkZDFhZTI2NTM1OWM2ZTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNj
b3BlLmgKQEAgLTQwLDYgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRGVmZXJy
ZWRQcm9taXNlOwogY2xhc3MgRXh0ZW5kYWJsZUV2ZW50OwogY2xhc3MgUGFnZTsKK2NsYXNzIFB1
c2hFdmVudDsKIGNsYXNzIFNlcnZpY2VXb3JrZXJDbGllbnQ7CiBjbGFzcyBTZXJ2aWNlV29ya2Vy
Q2xpZW50czsKIGNsYXNzIFNlcnZpY2VXb3JrZXJUaHJlYWQ7CkBAIC04MSw2ICs4Miw5IEBAIHB1
YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIFBhZ2UqIHNlcnZpY2VXb3JrZXJQYWdlKCk7CiAK
KyAgICB2b2lkIGRpc3BhdGNoUHVzaEV2ZW50KFB1c2hFdmVudCYpOworICAgIFB1c2hFdmVudCog
cHVzaEV2ZW50KCkgeyByZXR1cm4gbV9wdXNoRXZlbnQuZ2V0KCk7IH0KKwogICAgIGJvb2wgaGFz
UGVuZGluZ1NpbGVudFB1c2hFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzUGVuZGluZ1NpbGVu
dFB1c2hFdmVudDsgfQogICAgIHZvaWQgc2V0SGFzUGVuZGluZ1NpbGVudFB1c2hFdmVudChib29s
IHZhbHVlKSB7IG1faGFzUGVuZGluZ1NpbGVudFB1c2hFdmVudCA9IHZhbHVlOyB9CiAKQEAgLTEx
Miw2ICsxMTYsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9oYXNQZW5kaW5nU2lsZW50UHVzaEV2
ZW50IHsgZmFsc2UgfTsKICAgICBib29sIG1faXNQcm9jZXNzaW5nVXNlckdlc3R1cmUgeyBmYWxz
ZSB9OwogICAgIFRpbWVyIG1fdXNlckdlc3R1cmVUaW1lcjsKKyAgICBSZWZQdHI8UHVzaEV2ZW50
PiBtX3B1c2hFdmVudDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uLmNwcAppbmRleCBmNWM4MTEyMjVhMTc4YmEyNDgxYjlkNWYxN2E2MmIyN2VlODU0MDNi
Li5kMjQ1ZTJmODc3NTZhOTkwNWUxYTdmODExNGZjNGQxMDY0NjljMWRmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb24uY3BwCkBAIC0zMiwxMiArMzIsMTQgQEAKICNpbmNsdWRlICJFdmVudC5oIgogI2lu
Y2x1ZGUgIkV2ZW50TG9vcC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJK
U0RPTVByb21pc2UuaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogI2luY2x1
ZGUgIkpTTm90aWZpY2F0aW9uLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5h
dmlnYXRpb25QcmVsb2FkTWFuYWdlci5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNsaWVudC5o
IgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb24uaCIKKyNpbmNsdWRlICJQdXNoRXZl
bnQuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtl
ckNvbnRhaW5lci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oIgpAQCAt
Mjc0LDQwICsyNzYsNDQgQEAgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyJiBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uOjpuYXZpZ2F0aW9uUHJlbG9hZCgpCiB9CiAKICNpZiBFTkFCTEUoTk9USUZJ
Q0FUSU9OX0VWRU5UKQotdm9pZCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjpzaG93Tm90aWZp
Y2F0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFN0cmluZyYmIHRpdGxlLCBO
b3RpZmljYXRpb25PcHRpb25zJiYgb3B0aW9ucywgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYg
cHJvbWlzZSkKK3ZvaWQgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6c2hvd05vdGlmaWNhdGlv
bihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBTdHJpbmcmJiB0aXRsZSwgTm90aWZp
Y2F0aW9uT3B0aW9ucyYmIG9wdGlvbnMsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkK
IHsKICAgICBpZiAoIW1fYWN0aXZlV29ya2VyKSB7Ci0gICAgICAgIHByb21pc2UucmVqZWN0KEV4
Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlJlZ2lzdHJhdGlvbiBkb2VzIG5vdCBoYXZlIGFuIGFjdGl2
ZSB3b3JrZXIiX3MgfSk7CisgICAgICAgIHByb21pc2UtPnJlamVjdChFeGNlcHRpb24geyBUeXBl
RXJyb3IsICJSZWdpc3RyYXRpb24gZG9lcyBub3QgaGF2ZSBhbiBhY3RpdmUgd29ya2VyIl9zIH0p
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgYXV0byogY2xpZW50ID0gY29udGV4dC5u
b3RpZmljYXRpb25DbGllbnQoKTsKICAgICBpZiAoIWNsaWVudCkgewotICAgICAgICBwcm9taXNl
LnJlamVjdChFeGNlcHRpb24geyBUeXBlRXJyb3IsICJSZWdpc3RyYXRpb24gbm90IGFjdGl2ZSJf
cyB9KTsKKyAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlJl
Z2lzdHJhdGlvbiBub3QgYWN0aXZlIl9zIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAg
ICAgaWYgKGNsaWVudC0+Y2hlY2tQZXJtaXNzaW9uKCZjb250ZXh0KSAhPSBOb3RpZmljYXRpb25Q
ZXJtaXNzaW9uOjpHcmFudGVkKSB7Ci0gICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7
IFR5cGVFcnJvciwgIlJlZ2lzdHJhdGlvbiBkb2VzIG5vdCBoYXZlIHBlcm1pc3Npb24gdG8gc2hv
dyBub3RpZmljYXRpb25zIl9zIH0pOworICAgICAgICBwcm9taXNlLT5yZWplY3QoRXhjZXB0aW9u
IHsgVHlwZUVycm9yLCAiUmVnaXN0cmF0aW9uIGRvZXMgbm90IGhhdmUgcGVybWlzc2lvbiB0byBz
aG93IG5vdGlmaWNhdGlvbnMiX3MgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBp
ZiAoY29udGV4dC5pc1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSgpKQogICAgICAgICBkb3duY2Fz
dDxTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpLnNldEhhc1BlbmRpbmdTaWxlbnRQ
dXNoRXZlbnQoZmFsc2UpOwogCi0gICAgLy8gVGhlIE5vdGlmaWNhdGlvbiBpcyBrZXB0IGFsaXZl
IGJ5IHZpcnR1ZSBvZiBiZWluZyBzaG93KCknbiBzb29uLgotICAgIC8vIEZJWE1FOiBXaGVuIGlt
cGxlbWVudGluZyBnZXROb3RpZmljYXRpb25zKCksIHN0b3JlIHRoaXMgTm90aWZpY2F0aW9uIGlu
IHRoZSByZWdpc3RyYXRpb24ncyBub3RpZmljYXRpb24gbGlzdC4KICAgICBhdXRvIG5vdGlmaWNh
dGlvblJlc3VsdCA9IE5vdGlmaWNhdGlvbjo6Y3JlYXRlRm9yU2VydmljZVdvcmtlcihjb250ZXh0
LCBXVEZNb3ZlKHRpdGxlKSwgV1RGTW92ZShvcHRpb25zKSwgbV9yZWdpc3RyYXRpb25EYXRhLnNj
b3BlVVJMKTsKICAgICBpZiAobm90aWZpY2F0aW9uUmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7Ci0g
ICAgICAgIHByb21pc2UucmVqZWN0KG5vdGlmaWNhdGlvblJlc3VsdC5yZWxlYXNlRXhjZXB0aW9u
KCkpOworICAgICAgICBwcm9taXNlLT5yZWplY3Qobm90aWZpY2F0aW9uUmVzdWx0LnJlbGVhc2VF
eGNlcHRpb24oKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIG5vdGlmaWNh
dGlvbiA9IG5vdGlmaWNhdGlvblJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKLSAgICBub3Rp
ZmljYXRpb24tPnNob3dTb29uKCk7CisgICAgaWYgKGF1dG8qIHNlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZSA9IGR5bmFtaWNEb3duY2FzdDxTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQp
KSB7CisgICAgICAgIGlmIChhdXRvKiBwdXNoRXZlbnQgPSBzZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGUtPnB1c2hFdmVudCgpKSB7CisgICAgICAgICAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqSlND
Ojpqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihwcm9taXNlLT5nbG9iYWxPYmplY3QoKSk7Cisg
ICAgICAgICAgICBhdXRvJiBqc1Byb21pc2UgPSAqSlNDOjpqc0Nhc3Q8SlNDOjpKU1Byb21pc2Uq
Pihwcm9taXNlLT5wcm9taXNlKCkpOworICAgICAgICAgICAgcHVzaEV2ZW50LT53YWl0VW50aWwo
RE9NUHJvbWlzZTo6Y3JlYXRlKGdsb2JhbE9iamVjdCwganNQcm9taXNlKSk7CisgICAgICAgIH0K
KyAgICB9CiAKLSAgICBjb250ZXh0LmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpE
T01NYW5pcHVsYXRpb24sIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oKSBtdXRhYmxlIHsK
LSAgICAgICAgcHJvbWlzZS5yZXNvbHZlKCk7CisgICAgYXV0byBub3RpZmljYXRpb24gPSBub3Rp
ZmljYXRpb25SZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCk7CisgICAgbm90aWZpY2F0aW9uLT5z
aG93KFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgcHJv
bWlzZS0+cmVzb2x2ZSgpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaAppbmRleCA2
OWZiNWUzYTcwZTVlY2MwMWNkMTNlMWEyODY1MDg0YmZhMDE1YTM5Li41YTY4NWY0ZTFhMmM3ZDRh
ODQ1YmFkZDkxMjAyYjBiODk2YTZmMzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmgKQEAgLTk5LDcg
Kzk5LDcgQEAgcHVibGljOgogICAgICAgICBTdHJpbmcgdGFnOwogICAgIH07CiAKLSAgICB2b2lk
IHNob3dOb3RpZmljYXRpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFN0cmluZyYmIHRpdGxl
LCBOb3RpZmljYXRpb25PcHRpb25zJiYsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAg
ICB2b2lkIHNob3dOb3RpZmljYXRpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFN0cmluZyYm
IHRpdGxlLCBOb3RpZmljYXRpb25PcHRpb25zJiYsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOwog
ICAgIHZvaWQgZ2V0Tm90aWZpY2F0aW9ucyhjb25zdCBHZXROb3RpZmljYXRpb25PcHRpb25zJiBm
aWx0ZXIsIERPTVByb21pc2VEZWZlcnJlZDxJRExTZXF1ZW5jZTxJRExJbnRlcmZhY2U8Tm90aWZp
Y2F0aW9uPj4+KTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCmluZGV4IDNl
M2Q0NmI3MzQ3YThiOTczOGE4OWM0YjQyOWQzMzg5ZTk2ODA2NTIuLjU5MzZmYTU0OTY1ODdhYjlm
ZThkOTg2YWMwN2VhODAxNjY5Y2Y1NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCkBA
IC0yMzEsNyArMjMxLDcgQEAgdm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkOjpxdWV1ZVRhc2tUb0Zp
cmVQdXNoRXZlbnQoc3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhfdD4KICAgICAgICAgc2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlLT5zZXRIYXNQZW5kaW5nU2lsZW50UHVzaEV2ZW50KHRydWUpOwog
CiAgICAgICAgIGF1dG8gcHVzaEV2ZW50ID0gUHVzaEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygp
LnB1c2hFdmVudCwgeyB9LCBXVEZNb3ZlKGRhdGEpLCBFeHRlbmRhYmxlRXZlbnQ6OklzVHJ1c3Rl
ZDo6WWVzKTsKLSAgICAgICAgc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLT5kaXNwYXRjaEV2ZW50
KHB1c2hFdmVudCk7CisgICAgICAgIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS0+ZGlzcGF0Y2hQ
dXNoRXZlbnQocHVzaEV2ZW50KTsKIAogICAgICAgICBwdXNoRXZlbnQtPndoZW5BbGxFeHRlbmRM
aWZldGltZVByb21pc2VzQXJlU2V0dGxlZChbc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLCBldmVu
dENyZWF0aW9uVGltZSA9IHB1c2hFdmVudC0+dGltZVN0YW1wKCksIGNhbGxiYWNrID0gV1RGTW92
ZShjYWxsYmFjayldKGF1dG8mJiBleHRlbmRMaWZldGltZVByb21pc2VzKSBtdXRhYmxlIHsKICAg
ICAgICAgICAgIGJvb2wgaGFzUmVqZWN0ZWRBbnlQcm9taXNlID0gZmFsc2U7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0d29ya05vdGlm
aWNhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAppbmRleCBjMTMzYzEwZWY0Mzkz
ODdjYThkYTgxMTViMDVhODg3Y2I3NDFmM2M5Li5lMTI3ODI3YzQ0ZWM1NjcwNGQyMDA2ZTc5ODU0
ZWFmNWI2OWEzN2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05v
dGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90aWZpY2F0aW9uTWFu
YWdlci5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lkIE5ldHdvcmtOb3RpZmljYXRpb25NYW5h
Z2VyOjpnZXRQZW5kaW5nUHVzaE1lc3NhZ2VzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYwogICAg
IHNlbmRNZXNzYWdlV2l0aFJlcGx5PFdlYlB1c2hEOjpNZXNzYWdlVHlwZTo6R2V0UGVuZGluZ1B1
c2hNZXNzYWdlcz4oV1RGTW92ZShyZXBseUhhbmRsZXIpKTsKIH0KIAotdm9pZCBOZXR3b3JrTm90
aWZpY2F0aW9uTWFuYWdlcjo6c2hvd05vdGlmaWNhdGlvbihJUEM6OkNvbm5lY3Rpb24mLCBjb25z
dCBXZWJDb3JlOjpOb3RpZmljYXRpb25EYXRhJikKK3ZvaWQgTmV0d29ya05vdGlmaWNhdGlvbk1h
bmFnZXI6OnNob3dOb3RpZmljYXRpb24oSVBDOjpDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6
Tm90aWZpY2F0aW9uRGF0YSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikKIHsKICAgICBp
ZiAoIW1fY29ubmVjdGlvbikKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5h
Z2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0d29y
a05vdGlmaWNhdGlvbk1hbmFnZXIuaAppbmRleCAyMzcyZTJkOGIwZTk1MTM2OGNmNjQ5NTUxNWFm
MTZhMTEyZmUxOTY2Li5hZDlkZGVhZWMxODEwNjBlNTM2YjM1OTc1ZTNlMmJiNTBjYTM4MjE0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0
d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuaApAQCAtNjksNyAr
NjksNyBAQCBwcml2YXRlOgogICAgIE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyKE5ldHdvcmtT
ZXNzaW9uJiwgY29uc3QgU3RyaW5nJiB3ZWJQdXNoTWFjaFNlcnZpY2VOYW1lKTsKIAogICAgIHZv
aWQgcmVxdWVzdFN5c3RlbU5vdGlmaWNhdGlvblBlcm1pc3Npb24oY29uc3QgU3RyaW5nJiBvcmln
aW5TdHJpbmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwotICAgIHZv
aWQgc2hvd05vdGlmaWNhdGlvbihJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpOb3Rp
ZmljYXRpb25EYXRhJikgZmluYWw7CisgICAgdm9pZCBzaG93Tm90aWZpY2F0aW9uKElQQzo6Q29u
bmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRhdGEmLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwogICAgIHZvaWQgY2FuY2VsTm90aWZpY2F0aW9uKGNvbnN0
IFVVSUQmIG5vdGlmaWNhdGlvbklEKSBmaW5hbDsKICAgICB2b2lkIGNsZWFyTm90aWZpY2F0aW9u
cyhjb25zdCBWZWN0b3I8VVVJRD4mIG5vdGlmaWNhdGlvbklEcykgZmluYWw7CiAgICAgdm9pZCBk
aWREZXN0cm95Tm90aWZpY2F0aW9uKGNvbnN0IFVVSUQmIG5vdGlmaWNhdGlvbklEKSBmaW5hbDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Ob3RpZmlj
YXRpb25zL05vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5oCmluZGV4IDlmOTk2YWEx
MzZmY2MxOWRmOTYzNGZmYjM5MzM2YjFlMGZhNjRmYmEuLmNjZTU0MWJkMmE5Zjc2ZjJkNTZiM2Ix
MTExYzhiZjM3YmNiYjFlYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhh
bmRsZXIuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+Tm90aWZpY2F0
aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyKCkgPSBkZWZhdWx0OwogCiAgICAgdmlydHVhbCB2b2lk
IHJlcXVlc3RTeXN0ZW1Ob3RpZmljYXRpb25QZXJtaXNzaW9uKGNvbnN0IFN0cmluZyYgc2VjdXJp
dHlPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpID0gMDsKLSAgICB2aXJ0
dWFsIHZvaWQgc2hvd05vdGlmaWNhdGlvbihJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3Jl
OjpOb3RpZmljYXRpb25EYXRhJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzaG93Tm90aWZpY2F0
aW9uKElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRhdGEmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2FuY2Vs
Tm90aWZpY2F0aW9uKGNvbnN0IFVVSUQmIG5vdGlmaWNhdGlvbklEKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGNsZWFyTm90aWZpY2F0aW9ucyhjb25zdCBWZWN0b3I8VVVJRD4mIG5vdGlmaWNhdGlv
bklEcykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWREZXN0cm95Tm90aWZpY2F0aW9uKGNvbnN0
IFVVSUQmIG5vdGlmaWNhdGlvbklEKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9u
TWFuYWdlck1lc3NhZ2VIYW5kbGVyLm1lc3NhZ2VzLmluCmluZGV4IDZhZTE5Mzc3OThhNWQzN2Mw
Y2QzYjk2ZDlmN2M1ZmJlMmY2MDM2NWIuLjViOWE3M2M3MjIyMDQwYjlhM2QzMzZmMjA5OTVkMmZl
NjlkYmJmMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VI
YW5kbGVyLm1lc3NhZ2VzLmluCkBAIC0yMiw3ICsyMiw3IEBACiAKIG1lc3NhZ2VzIC0+IE5vdGlm
aWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlciBOb3RSZWZDb3VudGVkIHsKICAgICBSZXF1ZXN0
U3lzdGVtTm90aWZpY2F0aW9uUGVybWlzc2lvbihTdHJpbmcgb3JpZ2luSWRlbnRpZmllcikgLT4g
KGJvb2wgYWxsb3dlZCkKLSAgICBTaG93Tm90aWZpY2F0aW9uKHN0cnVjdCBXZWJDb3JlOjpOb3Rp
ZmljYXRpb25EYXRhIG5vdGlmaWNhdGlvbkRhdGEpIFdhbnRzQ29ubmVjdGlvbgorICAgIFNob3dO
b3RpZmljYXRpb24oc3RydWN0IFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRhdGEgbm90aWZpY2F0aW9u
RGF0YSkgLT4gKCkgV2FudHNDb25uZWN0aW9uCiAgICAgQ2FuY2VsTm90aWZpY2F0aW9uKFVVSUQg
bm90aWZpY2F0aW9uSUQpCiAgICAgQ2xlYXJOb3RpZmljYXRpb25zKFZlY3RvcjxVVUlEPiBub3Rp
ZmljYXRpb25JRHMpCiAgICAgRGlkRGVzdHJveU5vdGlmaWNhdGlvbihVVUlEIG5vdGlmaWNhdGlv
bklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9T
ZXJ2aWNlV29ya2VyTm90aWZpY2F0aW9uSGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zL1NlcnZpY2VXb3JrZXJOb3RpZmljYXRpb25IYW5kbGVyLmNwcApp
bmRleCA4NDc0YTc5M2YwOTliZTM1MzA3YWY3OTJiOWExNjU5NzMzZDk1ODgxLi41YWEyNjYwOWM5
NDc4OTc1OGNlMGIzMzY4Zjc2NmU5OTEyZDM5ZWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1NlcnZpY2VXb3JrZXJOb3RpZmljYXRpb25IYW5kbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1NlcnZpY2VX
b3JrZXJOb3RpZmljYXRpb25IYW5kbGVyLmNwcApAQCAtNTIsMTQgKzUyLDE3IEBAIFdlYnNpdGVE
YXRhU3RvcmUqIFNlcnZpY2VXb3JrZXJOb3RpZmljYXRpb25IYW5kbGVyOjpkYXRhU3RvcmVGb3JO
b3RpZmljYXRpb25JRChjCiAgICAgcmV0dXJuIFdlYnNpdGVEYXRhU3RvcmU6OmV4aXN0aW5nRGF0
YVN0b3JlRm9yU2Vzc2lvbklEKGl0ZXJhdG9yLT52YWx1ZSk7CiB9CiAKLXZvaWQgU2VydmljZVdv
cmtlck5vdGlmaWNhdGlvbkhhbmRsZXI6OnNob3dOb3RpZmljYXRpb24oSVBDOjpDb25uZWN0aW9u
JiBjb25uZWN0aW9uLCBjb25zdCBXZWJDb3JlOjpOb3RpZmljYXRpb25EYXRhJiBkYXRhKQordm9p
ZCBTZXJ2aWNlV29ya2VyTm90aWZpY2F0aW9uSGFuZGxlcjo6c2hvd05vdGlmaWNhdGlvbihJUEM6
OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRhdGEm
IGRhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjYWxsYmFjaykKIHsKICAgICBhdXRv
KiBkYXRhU3RvcmUgPSBXZWJzaXRlRGF0YVN0b3JlOjpleGlzdGluZ0RhdGFTdG9yZUZvclNlc3Np
b25JRChkYXRhLnNvdXJjZVNlc3Npb24pOwotICAgIGlmICghZGF0YVN0b3JlKQorICAgIGlmICgh
ZGF0YVN0b3JlKSB7CisgICAgICAgIGNhbGxiYWNrKCk7CiAgICAgICAgIHJldHVybjsKKyAgICB9
CiAKICAgICBtX25vdGlmaWNhdGlvblRvU2Vzc2lvbk1hcC5hZGQoZGF0YS5ub3RpZmljYXRpb25J
RCwgZGF0YS5zb3VyY2VTZXNzaW9uKTsKICAgICBkYXRhU3RvcmUtPnNob3dTZXJ2aWNlV29ya2Vy
Tm90aWZpY2F0aW9uKGNvbm5lY3Rpb24sIGRhdGEpOworICAgIGNhbGxiYWNrKCk7CiB9CiAKIHZv
aWQgU2VydmljZVdvcmtlck5vdGlmaWNhdGlvbkhhbmRsZXI6OmNhbmNlbE5vdGlmaWNhdGlvbihj
b25zdCBVVUlEJiBub3RpZmljYXRpb25JRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvU2VydmljZVdvcmtlck5vdGlmaWNhdGlvbkhhbmRsZXIuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvU2VydmljZVdvcmtlck5vdGlm
aWNhdGlvbkhhbmRsZXIuaAppbmRleCAxNWJmOGRjMzk0OWFhYjJmMDA5ZTBjMzNhNzdmNjEwYmZh
NDliMzI4Li5jZWM4MzQ5Yzk2N2JhMmEwN2Q1ZjVmNTFlNTQ3MTMxNThhZDc0MzA1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1NlcnZpY2VXb3JrZXJO
b3RpZmljYXRpb25IYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZp
Y2F0aW9ucy9TZXJ2aWNlV29ya2VyTm90aWZpY2F0aW9uSGFuZGxlci5oCkBAIC0zOCw3ICszOCw3
IEBAIGNsYXNzIFNlcnZpY2VXb3JrZXJOb3RpZmljYXRpb25IYW5kbGVyIGZpbmFsIDogcHVibGlj
IE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlCiBwdWJsaWM6CiAgICAgc3RhdGljIFNlcnZpY2VX
b3JrZXJOb3RpZmljYXRpb25IYW5kbGVyJiBzaW5nbGV0b24oKTsKIAotICAgIHZvaWQgc2hvd05v
dGlmaWNhdGlvbihJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpOb3RpZmljYXRpb25E
YXRhJikgZmluYWw7CisgICAgdm9pZCBzaG93Tm90aWZpY2F0aW9uKElQQzo6Q29ubmVjdGlvbiYs
IGNvbnN0IFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRhdGEmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpIGZpbmFsOwogICAgIHZvaWQgY2FuY2VsTm90aWZpY2F0aW9uKGNvbnN0IFVVSUQmIG5v
dGlmaWNhdGlvbklEKSBmaW5hbDsKICAgICB2b2lkIGNsZWFyTm90aWZpY2F0aW9ucyhjb25zdCBW
ZWN0b3I8VVVJRD4mIG5vdGlmaWNhdGlvbklEcykgZmluYWw7CiAgICAgdm9pZCBkaWREZXN0cm95
Tm90aWZpY2F0aW9uKGNvbnN0IFVVSUQmIG5vdGlmaWNhdGlvbklEKSBmaW5hbDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9u
TWFuYWdlck1lc3NhZ2VIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlm
aWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmNwcAppbmRleCAx
Y2ZkMzI4ZDZmNzIzZTMwNTk5OWEzMDAxZTVhYTM1OTAxNjZkNzVkLi4yYzAzOGQ2N2FiY2Y4YmNj
MTE1NGI1ZDU2NzNmNmU3ZTk4NDFlNGUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmlj
YXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuY3BwCkBAIC00MSwxMyArNDEsMTQgQEAgdm9pZCBX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXI6OnJlcXVlc3RTeXN0ZW1Ob3RpZmlj
YXRpb25QZXJtaXNzaW9uKGMKICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQog
Ci12b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6c2hvd05vdGlmaWNh
dGlvbihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IFdlYkNvcmU6Ok5vdGlmaWNh
dGlvbkRhdGEmIGRhdGEpCit2b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxl
cjo6c2hvd05vdGlmaWNhdGlvbihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IFdl
YkNvcmU6Ok5vdGlmaWNhdGlvbkRhdGEmIGRhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjYWxsYmFjaykKIHsKICAgICBpZiAoIWRhdGEuc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblVS
TC5pc0VtcHR5KCkpIHsKLSAgICAgICAgU2VydmljZVdvcmtlck5vdGlmaWNhdGlvbkhhbmRsZXI6
OnNpbmdsZXRvbigpLnNob3dOb3RpZmljYXRpb24oY29ubmVjdGlvbiwgZGF0YSk7CisgICAgICAg
IFNlcnZpY2VXb3JrZXJOb3RpZmljYXRpb25IYW5kbGVyOjpzaW5nbGV0b24oKS5zaG93Tm90aWZp
Y2F0aW9uKGNvbm5lY3Rpb24sIGRhdGEsIFdURk1vdmUoY2FsbGJhY2spKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KICAgICBtX3dlYlBhZ2VQcm94eS5zaG93Tm90aWZpY2F0aW9uKGNvbm5lY3Rp
b24sIGRhdGEpOworICAgIGNhbGxiYWNrKCk7CiB9CiAKIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFu
YWdlck1lc3NhZ2VIYW5kbGVyOjpjYW5jZWxOb3RpZmljYXRpb24oY29uc3QgVVVJRCYgbm90aWZp
Y2F0aW9uSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhh
bmRsZXIuaAppbmRleCA1MjUwNWU5ZDI1NjA0MzZkMmI5NzFkMjFhYWJiZGUwYzRkZTNmYmRiLi43
NTQxYjM2ODMyYjQ3NjAyODhjYjcyMWNiNTI3NjUzMWQ0NmI0YWZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJN
ZXNzYWdlSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNhdGlv
bnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmgKQEAgLTM3LDcgKzM3LDcg
QEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhh
bmRsZXIoV2ViUGFnZVByb3h5Jik7CiAKICAgICB2b2lkIHJlcXVlc3RTeXN0ZW1Ob3RpZmljYXRp
b25QZXJtaXNzaW9uKGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYpIGZpbmFsOwotICAgIHZvaWQgc2hvd05vdGlmaWNhdGlvbihJUEM6OkNvbm5lY3Rpb24mLCBj
b25zdCBXZWJDb3JlOjpOb3RpZmljYXRpb25EYXRhJikgZmluYWw7CisgICAgdm9pZCBzaG93Tm90
aWZpY2F0aW9uKElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRh
dGEmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwogICAgIHZvaWQgY2FuY2Vs
Tm90aWZpY2F0aW9uKGNvbnN0IFVVSUQmIG5vdGlmaWNhdGlvbklEKSBmaW5hbDsKICAgICB2b2lk
IGNsZWFyTm90aWZpY2F0aW9ucyhjb25zdCBWZWN0b3I8VVVJRD4mIG5vdGlmaWNhdGlvbklEcykg
ZmluYWw7CiAgICAgdm9pZCBkaWREZXN0cm95Tm90aWZpY2F0aW9uKGNvbnN0IFVVSUQmIG5vdGlm
aWNhdGlvbklEKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
b3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKaW5kZXgg
MGU1M2EzZjIzMDM2NDk1MTBmNzgxZDMyOGE3ODc4NWFlNzY1ZjFkNS4uNzE3YTMzMjczZDYwMjkz
N2NmNWU5NGNhY2M2YjExMTliNzE5YzIyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdl
ci5jcHAKQEAgLTEyMywxNCArMTIzLDE0IEBAIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6
cmVtb3ZlQWxsUGVybWlzc2lvbnNGb3JUZXN0aW5nKCkKIH0KIAogI2lmIEVOQUJMRShOT1RJRklD
QVRJT05TKQotdGVtcGxhdGU8dHlwZW5hbWUgVT4gYm9vbCBXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
OjpzZW5kTm90aWZpY2F0aW9uTWVzc2FnZShVJiYgbWVzc2FnZSwgTm90aWZpY2F0aW9uJiBub3Rp
ZmljYXRpb24sIFdlYlBhZ2UqIHBhZ2UpCitzdGF0aWMgYm9vbCBzZW5kTWVzc2FnZShOb3RpZmlj
YXRpb24mIG5vdGlmaWNhdGlvbiwgV2ViUGFnZSogcGFnZSwgY29uc3QgRnVuY3Rpb248Ym9vbChz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPik+JiBzZW5kTWVzc2FnZUZ1bmN0
aW9uKQogewogICAgIGlmICghcGFnZSAmJiAhbm90aWZpY2F0aW9uLnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAjaWYgRU5BQkxFKEJVSUxUX0lOX05P
VElGSUNBVElPTlMpCiAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkuYnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFibGVkKCkpCi0gICAgICAgIHJldHVybiBtX3By
b2Nlc3MuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLnNlbmQo
V1RGTW92ZShtZXNzYWdlKSwgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc2Vzc2lvbklEKCkudG9V
SW50NjQoKSk7CisgICAgICAgIHJldHVybiBzZW5kTWVzc2FnZUZ1bmN0aW9uKHsgfSk7CiAjZW5k
aWYKIAogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXI+IHBhZ2VJZGVu
dGlmaWVyOwpAQCAtMTQzLDEyICsxNDMsMjkgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gYm9vbCBX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpzZW5kTm90aWZpY2F0aW9uTWVzc2FnZShVJiYgbWUKICAg
ICB9CiAKICAgICBBU1NFUlQocGFnZUlkZW50aWZpZXIpOworICAgIHJldHVybiBzZW5kTWVzc2Fn
ZUZ1bmN0aW9uKHBhZ2VJZGVudGlmaWVyKTsKK30KIAotICAgIHJldHVybiBtX3Byb2Nlc3MucGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChXVEZNb3ZlKG1lc3NhZ2UpLCAqcGFnZUlkZW50
aWZpZXIpOwordGVtcGxhdGU8dHlwZW5hbWUgVT4gYm9vbCBXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
OjpzZW5kTm90aWZpY2F0aW9uTWVzc2FnZShVJiYgbWVzc2FnZSwgTm90aWZpY2F0aW9uJiBub3Rp
ZmljYXRpb24sIFdlYlBhZ2UqIHBhZ2UpCit7CisgICAgcmV0dXJuIHNlbmRNZXNzYWdlKG5vdGlm
aWNhdGlvbiwgcGFnZSwgWyZdIChhdXRvIHBhZ2VJZGVudGlmaWVyKSB7CisgICAgICAgIGlmICgh
cGFnZUlkZW50aWZpZXIpCisgICAgICAgICAgICByZXR1cm4gbV9wcm9jZXNzLmVuc3VyZU5ldHdv
cmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kKFdURk1vdmUobWVzc2FnZSks
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnNlc3Npb25JRCgpLnRvVUludDY0KCkpOworICAgICAg
ICByZXR1cm4gbV9wcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoV1RGTW92
ZShtZXNzYWdlKSwgKnBhZ2VJZGVudGlmaWVyKTsKKyAgICB9KTsKK30KKwordGVtcGxhdGU8dHlw
ZW5hbWUgVT4gYm9vbCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpzZW5kTm90aWZpY2F0aW9uTWVz
c2FnZVdpdGhBc3luY1JlcGx5KFUmJiBtZXNzYWdlLCBOb3RpZmljYXRpb24mIG5vdGlmaWNhdGlv
biwgV2ViUGFnZSogcGFnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQor
eworICAgIHJldHVybiBzZW5kTWVzc2FnZShub3RpZmljYXRpb24sIHBhZ2UsIFsmXSAoYXV0byBw
YWdlSWRlbnRpZmllcikgeworICAgICAgICBpZiAoIXBhZ2VJZGVudGlmaWVyKQorICAgICAgICAg
ICAgcmV0dXJuIG1fcHJvY2Vzcy5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25u
ZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KFdURk1vdmUobWVzc2FnZSksIFdURk1vdmUoY2Fs
bGJhY2spLCBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zZXNzaW9uSUQoKS50b1VJbnQ2NCgpKTsK
KyAgICAgICAgcmV0dXJuIG1fcHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
V2l0aEFzeW5jUmVwbHkoV1RGTW92ZShtZXNzYWdlKSwgV1RGTW92ZShjYWxsYmFjayksICpwYWdl
SWRlbnRpZmllcik7CisgICAgfSk7CiB9CiAjZW5kaWYgLy8gRU5BQkxFKE5PVElGSUNBVElPTlMp
CiAKLWJvb2wgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6c2hvdyhOb3RpZmljYXRpb24mIG5vdGlm
aWNhdGlvbiwgV2ViUGFnZSogcGFnZSkKK2Jvb2wgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6c2hv
dyhOb3RpZmljYXRpb24mIG5vdGlmaWNhdGlvbiwgV2ViUGFnZSogcGFnZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQogewogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQog
ICAgIExPRyhOb3RpZmljYXRpb25zLCAiV2ViUHJvY2VzcyAlaSBnb2luZyB0byBzaG93IG5vdGlm
aWNhdGlvbiAlcyIsIGdldHBpZCgpLCBub3RpZmljYXRpb24uaWRlbnRpZmllcigpLnRvU3RyaW5n
KCkudXRmOCgpLmRhdGEoKSk7CkBAIC0xNTcsNyArMTc0LDcgQEAgYm9vbCBXZWJOb3RpZmljYXRp
b25NYW5hZ2VyOjpzaG93KE5vdGlmaWNhdGlvbiYgbm90aWZpY2F0aW9uLCBXZWJQYWdlKiBwYWdl
KQogICAgIGlmIChwYWdlICYmICFwYWdlLT5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLm5vdGlmaWNh
dGlvbnNFbmFibGVkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICghc2VuZE5v
dGlmaWNhdGlvbk1lc3NhZ2UoTWVzc2FnZXM6Ok5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFu
ZGxlcjo6U2hvd05vdGlmaWNhdGlvbihub3RpZmljYXRpb24uZGF0YSgpKSwgbm90aWZpY2F0aW9u
LCBwYWdlKSkKKyAgICBpZiAoIXNlbmROb3RpZmljYXRpb25NZXNzYWdlV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6Ok5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6U2hvd05vdGlmaWNh
dGlvbihub3RpZmljYXRpb24uZGF0YSgpKSwgbm90aWZpY2F0aW9uLCBwYWdlLCBXVEZNb3ZlKGNh
bGxiYWNrKSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICghbm90aWZpY2F0aW9u
LmlzUGVyc2lzdGVudCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Tm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmgKaW5kZXggYjIz
NTI2Yjk3NTJiZmMxNTU2ZGVlY2IyNTYxNmFhM2I3Yjc4ZGQ1NC4uN2Y1NzY0MTAyNTQ4MThjMjBk
ZjNhZGFlYTQ2ZThlMjY4OWQ1MThlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaApA
QCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NTdXBwbGVtZW50LmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25DbGllbnQuaD4KICNpbmNsdWRlIDxvcHRpb25hbD4K
KyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KQEAgLTU1LDcgKzU2LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1
cHBsZW1lbnROYW1lKCk7CiAgICAgCi0gICAgYm9vbCBzaG93KFdlYkNvcmU6Ok5vdGlmaWNhdGlv
biYsIFdlYlBhZ2UqKTsKKyAgICBib29sIHNob3coV2ViQ29yZTo6Tm90aWZpY2F0aW9uJiwgV2Vi
UGFnZSosIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBjYW5jZWwoV2Vi
Q29yZTo6Tm90aWZpY2F0aW9uJiwgV2ViUGFnZSopOwogCiAgICAgLy8gVGhpcyBjYWxsYmFjayBj
b21lcyBmcm9tIFdlYkNvcmUsIG5vdCBtZXNzYWdlZCBmcm9tIHRoZSBVSSBwcm9jZXNzLgpAQCAt
ODIsNiArODMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVtb3ZlTm90aWZpY2F0aW9uRGVj
aXNpb25zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvcmlnaW5TdHJpbmdzKTsKIAogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFU+IGJvb2wgc2VuZE5vdGlmaWNhdGlvbk1lc3NhZ2UoVSYmIG1lc3NhZ2Us
IFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiYsIFdlYlBhZ2UqKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBVPiBib29sIHNlbmROb3RpZmljYXRpb25NZXNzYWdlV2l0aEFzeW5jUmVwbHkoVSYmIG1lc3Nh
Z2UsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiYsIFdlYlBhZ2UqLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwogCiAgICAgV2ViUHJvY2VzcyYgbV9wcm9jZXNzOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3Rp
ZmljYXRpb25DbGllbnQuY3BwCmluZGV4IDY3MTExYTg0YTY1MWZiOGFmZjU3YjA5MDdmZjRiODEx
ODM0ZTE3NzEuLjFjMDE1NjkyZjI3YzQxOWEzYzM4NzE0ZjczNDg1ZGNlNjhiNGIwOWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmlj
YXRpb25DbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuY3BwCkBAIC00OCwxMSArNDgsMTkgQEAgV2ViTm90
aWZpY2F0aW9uQ2xpZW50Ojp+V2ViTm90aWZpY2F0aW9uQ2xpZW50KCkKICAgICBBU1NFUlQoaXNN
YWluUnVuTG9vcCgpKTsKIH0KIAotYm9vbCBXZWJOb3RpZmljYXRpb25DbGllbnQ6OnNob3coTm90
aWZpY2F0aW9uJiBub3RpZmljYXRpb24pCitib29sIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6c2hv
dyhOb3RpZmljYXRpb24mIG5vdGlmaWNhdGlvbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNhbGxiYWNrKQogeworICAgIGF1dG8qIGNvbnRleHQgPSBub3RpZmljYXRpb24uc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpOworICAgIEFTU0VSVChjb250ZXh0KTsKKwogICAgIGJvb2wgcmVzdWx0
OwotICAgIGNhbGxPbk1haW5SdW5Mb29wQW5kV2FpdChbJnJlc3VsdCwgcHJvdGVjdGVkTm90aWZp
Y2F0aW9uID0gUmVmIHsgbm90aWZpY2F0aW9uIH0sIHBhZ2UgPSBtX3BhZ2VdKCkgewotICAgICAg
ICByZXN1bHQgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zdXBwbGVtZW50PFdlYk5vdGlmaWNh
dGlvbk1hbmFnZXI+KCktPnNob3cocHJvdGVjdGVkTm90aWZpY2F0aW9uLmdldCgpLCBwYWdlKTsK
KyAgICBjYWxsT25NYWluUnVuTG9vcEFuZFdhaXQoWyZyZXN1bHQsIHByb3RlY3RlZE5vdGlmaWNh
dGlvbiA9IFJlZiB7IG5vdGlmaWNhdGlvbiB9LCBwYWdlID0gbV9wYWdlLCBjb250ZXh0SWRlbnRp
ZmllciA9IGNvbnRleHQtPmlkZW50aWZpZXIoKSwgY2FsbGJhY2tJZGVudGlmaWVyID0gY29udGV4
dC0+YWRkTm90aWZpY2F0aW9uQ2FsbGJhY2soV1RGTW92ZShjYWxsYmFjaykpXSgpIHsKKyAgICAg
ICAgcmVzdWx0ID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc3VwcGxlbWVudDxXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyPigpLT5zaG93KHByb3RlY3RlZE5vdGlmaWNhdGlvbi5nZXQoKSwgcGFnZSwg
W2NvbnRleHRJZGVudGlmaWVyLCBjYWxsYmFja0lkZW50aWZpZXJdIHsKKyAgICAgICAgICAgIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnBvc3RUYXNrVG8oY29udGV4dElkZW50aWZpZXIsIFtjYWxs
YmFja0lkZW50aWZpZXJdKGF1dG8mIGNvbnRleHQpIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0
byBjYWxsYmFjayA9IGNvbnRleHQubm90aWZpY2F0aW9uQ2FsbGJhY2soY2FsbGJhY2tJZGVudGlm
aWVyKSkKKyAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgICAgIH0pOwor
ICAgICAgICB9KTsKICAgICB9KTsKICAgICByZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNs
aWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlm
aWNhdGlvbkNsaWVudC5oCmluZGV4IDFiZWQ5MTg3MDdiNjgyNzE2MjA5ZTIxYzUxMThlNjlhOTNl
MzZkNzguLjg1MjllNmEyMmUyMzExODg1ZmY0Mjk2MmZhYzUwNGU0MzZkYjNiNDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRp
b25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViTm90aWZpY2F0aW9uQ2xpZW50LmgKQEAgLTM4LDE5ICszOCwxOSBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgV2ViUGFnZTsKIAotY2xhc3MgV2ViTm90aWZpY2F0aW9uQ2xpZW50IDog
cHVibGljIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudCB7CitjbGFzcyBXZWJOb3RpZmljYXRp
b25DbGllbnQgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50IHsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBXZWJOb3RpZmljYXRpb25D
bGllbnQoV2ViUGFnZSopOwogICAgIHZpcnR1YWwgfldlYk5vdGlmaWNhdGlvbkNsaWVudCgpOwog
CiBwcml2YXRlOgotICAgIGJvb2wgc2hvdyhXZWJDb3JlOjpOb3RpZmljYXRpb24mKSBvdmVycmlk
ZTsKLSAgICB2b2lkIGNhbmNlbChXZWJDb3JlOjpOb3RpZmljYXRpb24mKSBvdmVycmlkZTsKLSAg
ICB2b2lkIG5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3llZChXZWJDb3JlOjpOb3RpZmljYXRpb24m
KSBvdmVycmlkZTsKLSAgICB2b2lkIG5vdGlmaWNhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKSBv
dmVycmlkZTsKLSAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmLCBQZXJtaXNzaW9uSGFuZGxlciYmKSBvdmVycmlkZTsKLSAgICBXZWJDb3Jl
OjpOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24gY2hlY2tQZXJtaXNzaW9uKFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBvdmVycmlkZTsKKyAgICBib29sIHNob3coV2ViQ29y
ZTo6Tm90aWZpY2F0aW9uJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKKyAg
ICB2b2lkIGNhbmNlbChXZWJDb3JlOjpOb3RpZmljYXRpb24mKSBmaW5hbDsKKyAgICB2b2lkIG5v
dGlmaWNhdGlvbk9iamVjdERlc3Ryb3llZChXZWJDb3JlOjpOb3RpZmljYXRpb24mKSBmaW5hbDsK
KyAgICB2b2lkIG5vdGlmaWNhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKSBmaW5hbDsKKyAgICB2
b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBQ
ZXJtaXNzaW9uSGFuZGxlciYmKSBmaW5hbDsKKyAgICBXZWJDb3JlOjpOb3RpZmljYXRpb25DbGll
bnQ6OlBlcm1pc3Npb24gY2hlY2tQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqKSBmaW5hbDsKICAgICAKICAgICBXZWJQYWdlKiBtX3BhZ2UgeyBudWxscHRyIH07CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
Tm90aWZpY2F0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaAppbmRleCBlNTcxNTNmNWZhZTg4NjA5M2M3MWIw
NmY2ZGVlNjhkMjYxZGEwZjE1Li42MTE0NTM2Y2U3NDc5NzFmYTMzYjdlYjE2YzNkMzYzZGI2Y2Q1
MzFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJOb3RpZmljYXRpb25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaApAQCAtMzUsNyArMzUsNyBAQAogQGNs
YXNzIFdlYk5vdGlmaWNhdGlvblBvbGljeUxpc3RlbmVyOwogQGNsYXNzIFdlYlZpZXc7CiAKLWNs
YXNzIFdlYk5vdGlmaWNhdGlvbkNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpOb3RpZmljYXRpb25D
bGllbnQgeworY2xhc3MgV2ViTm90aWZpY2F0aW9uQ2xpZW50IGZpbmFsIDogcHVibGljIFdlYkNv
cmU6Ok5vdGlmaWNhdGlvbkNsaWVudCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6CiAgICAgV2ViTm90aWZpY2F0aW9uQ2xpZW50KFdlYlZpZXcgKik7CkBAIC00NSwxMiAr
NDUsMTIgQEAgcHVibGljOgogICAgIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklERm9yVGVzdGluZyhX
ZWJDb3JlOjpOb3RpZmljYXRpb24qKTsKIAogcHJpdmF0ZToKLSAgICBib29sIHNob3coV2ViQ29y
ZTo6Tm90aWZpY2F0aW9uJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjYW5jZWwoV2ViQ29yZTo6Tm90
aWZpY2F0aW9uJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBub3RpZmljYXRpb25PYmplY3REZXN0cm95
ZWQoV2ViQ29yZTo6Tm90aWZpY2F0aW9uJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBub3RpZmljYXRp
b25Db250cm9sbGVyRGVzdHJveWVkKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXF1ZXN0UGVybWlz
c2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUGVybWlzc2lvbkhhbmRsZXIm
Jikgb3ZlcnJpZGU7Ci0gICAgV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9u
IGNoZWNrUGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0Kikgb3ZlcnJp
ZGU7CisgICAgYm9vbCBzaG93KFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJikgZmluYWw7CisgICAgdm9pZCBjYW5jZWwoV2ViQ29yZTo6Tm90aWZpY2F0
aW9uJikgZmluYWw7CisgICAgdm9pZCBub3RpZmljYXRpb25PYmplY3REZXN0cm95ZWQoV2ViQ29y
ZTo6Tm90aWZpY2F0aW9uJikgZmluYWw7CisgICAgdm9pZCBub3RpZmljYXRpb25Db250cm9sbGVy
RGVzdHJveWVkKCkgZmluYWw7CisgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUGVybWlzc2lvbkhhbmRsZXImJikgZmluYWw7CisgICAg
V2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIGNoZWNrUGVybWlzc2lvbihX
ZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KikgZmluYWw7CiAKICAgICB2b2lkIHJlcXVl
c3RQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBXZWJOb3RpZmlj
YXRpb25Qb2xpY3lMaXN0ZW5lciAqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tCmlu
ZGV4IGMwYWFkMDk5M2M4Zjc3NTU5YmE5NWVkNzNlYmUwODNkMTczNWU4ODAuLjA3ZGMxNTEzMjVk
MDZkMDliNDZmMGEyOTNjNGUwMzM4MWUyOWZhOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbQorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGll
bnQubW0KQEAgLTU4LDcgKzU4LDcgQEAgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpXZWJOb3RpZmlj
YXRpb25DbGllbnQoV2ViVmlldyAqd2ViVmlldykKIHsKIH0KIAotYm9vbCBXZWJOb3RpZmljYXRp
b25DbGllbnQ6OnNob3coTm90aWZpY2F0aW9uJiBub3RpZmljYXRpb24pCitib29sIFdlYk5vdGlm
aWNhdGlvbkNsaWVudDo6c2hvdyhOb3RpZmljYXRpb24mIG5vdGlmaWNhdGlvbiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQogewogICAgIGlmICghW21fd2ViVmlldyBfbm90
aWZpY2F0aW9uUHJvdmlkZXJdKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC02OCw2ICs2OCw3
IEBAIGJvb2wgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpzaG93KE5vdGlmaWNhdGlvbiYgbm90aWZp
Y2F0aW9uKQogICAgIG1fbm90aWZpY2F0aW9uTWFwLnNldCgmbm90aWZpY2F0aW9uLCB3ZWJOb3Rp
ZmljYXRpb24pOwogCiAgICAgW1ttX3dlYlZpZXcgX25vdGlmaWNhdGlvblByb3ZpZGVyXSBzaG93
Tm90aWZpY2F0aW9uOndlYk5vdGlmaWNhdGlvbi5nZXQoKSBmcm9tV2ViVmlldzptX3dlYlZpZXdd
OworICAgIGNhbGxiYWNrKCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4MjcyYzFhZGE2YWU0ZTk5ZTRm
ODRjODBjYjU2NGU3MmMwMTIzMjdiLi43MTcyZjY3MDc4YmQ1NGVjNGRjZWZlNTI3YWI5MjRjZjFl
YjM5YjZiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMjItMDUtMTAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgorCisgICAgICAgIE1ha2Ugc3VyZSBjYWxsaW5nIHNob3dOb3RpZmljYXRpb24gd2ls
bCBleHRlbmQgdGhlIHNlcnZpY2Ugd29ya2VyIGxpZmV0aW1lCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDAyNzMKKyAgICAgICAgPHJkYXI6Ly85Mjk3
ODQ4Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdE5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcDoKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3ROb3RpZmljYXRpb25Qcm92aWRlci5oOgorICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHVzaEFQSS5tbToKKwogMjAyMi0wNS0wOCAgQW50
dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgQXZvaWQgcmVzb2x2aW5n
IHN0eWxlIGZvciBlbGVtZW50cyB0aGF0IG9ubHkgaW5oZXJpdCBjaGFuZ2VzIGZyb20gcGFyZW50
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3ROb3RpZmljYXRpb25Qcm92aWRl
ci5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3ROb3RpZmljYXRpb25Qcm92aWRlci5jcHAK
aW5kZXggN2ZjZGQ5ZThhMzYwZWM0MGEwMTFmYTljYTA2OTc0YmUwY2E5NjNkOC4uNTgyZjRmN2Y3
OGM0NzNhMzQ4YTIzNjAxYzQwMzM3MjIwMWY0NDA5ZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0Tm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdE5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcApAQCAtMTIxLDYgKzEyMSw4IEBAIHN0
YXRpYyBXS05vdGlmaWNhdGlvbk1hbmFnZXJSZWYgbm90aWZpY2F0aW9uTWFuYWdlckZvclBhZ2Uo
V0tQYWdlUmVmIHBhZ2UpCiAKIHZvaWQgVGVzdE5vdGlmaWNhdGlvblByb3ZpZGVyOjpzaG93V2Vi
Tm90aWZpY2F0aW9uKFdLUGFnZVJlZiBwYWdlLCBXS05vdGlmaWNhdGlvblJlZiBub3RpZmljYXRp
b24pCiB7CisgICAgbV9oYXNSZWNlaXZlZE5vdGlmaWNhdGlvbiA9IHRydWU7CisKICAgICBhdXRv
IG5vdGlmaWNhdGlvbk1hbmFnZXIgPSBub3RpZmljYXRpb25NYW5hZ2VyRm9yUGFnZShwYWdlKTsK
ICAgICB1aW50NjRfdCBpZGVudGlmaWVyID0gV0tOb3RpZmljYXRpb25HZXRJRChub3RpZmljYXRp
b24pOwogICAgIFdLTm90aWZpY2F0aW9uTWFuYWdlclByb3ZpZGVyRGlkU2hvd05vdGlmaWNhdGlv
bihub3RpZmljYXRpb25NYW5hZ2VyLCBpZGVudGlmaWVyKTsKQEAgLTEzNyw0ICsxMzksMTQgQEAg
dm9pZCBUZXN0Tm90aWZpY2F0aW9uUHJvdmlkZXI6OnNpbXVsYXRlTm90aWZpY2F0aW9uQ2xpY2so
KQogICAgIH0pOwogfQogCitib29sIFRlc3ROb3RpZmljYXRpb25Qcm92aWRlcjo6aGFzUmVjZWl2
ZWROb3RpZmljYXRpb24oKSBjb25zdAoreworICAgIHJldHVybiBtX2hhc1JlY2VpdmVkTm90aWZp
Y2F0aW9uOworfQorCit2b2lkIFRlc3ROb3RpZmljYXRpb25Qcm92aWRlcjo6cmVzZXRIYXNSZWNl
aXZlZE5vdGlmaWNhdGlvbigpCit7CisgICAgbV9oYXNSZWNlaXZlZE5vdGlmaWNhdGlvbiA9IGZh
bHNlOworfQorCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3ROb3RpZmljYXRpb25Qcm92aWRlci5oIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0Tm90aWZpY2F0aW9uUHJvdmlkZXIuaAppbmRleCA2YjA3YTJlNjc3MjVkNTUx
ZGE5YzViMzZkMGIwNmIzYjNmYjZkYWUxLi5kZjAyYzhkNjk2YzM0OWM2ODA2MjllMWM1M2FmZWVj
M2IxZDkyMjkwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3ROb3RpZmljYXRp
b25Qcm92aWRlci5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdE5vdGlmaWNhdGlvblBy
b3ZpZGVyLmgKQEAgLTQ3LDExICs0NywxNSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzaG93V2ViTm90
aWZpY2F0aW9uKFdLUGFnZVJlZiwgV0tOb3RpZmljYXRpb25SZWYpOwogICAgIHZvaWQgc2ltdWxh
dGVOb3RpZmljYXRpb25DbGljaygpOwogCisgICAgYm9vbCBoYXNSZWNlaXZlZE5vdGlmaWNhdGlv
bigpIGNvbnN0OworICAgIHZvaWQgcmVzZXRIYXNSZWNlaXZlZE5vdGlmaWNhdGlvbigpOworCiBw
cml2YXRlOgogICAgIFZlY3RvcjxXS05vdGlmaWNhdGlvbk1hbmFnZXJSZWY+IG1fbWFuYWdlcnM7
CiAgICAgSGFzaE1hcDxTdHJpbmcsIGJvb2w+IG1fcGVybWlzc2lvbnM7CiAgICAgV0tOb3RpZmlj
YXRpb25Qcm92aWRlclYwIG1fcHJvdmlkZXI7CiAKKyAgICBib29sIG1faGFzUmVjZWl2ZWROb3Rp
ZmljYXRpb24geyBmYWxzZSB9OwogICAgIHN0ZDo6cGFpcjxXS05vdGlmaWNhdGlvbk1hbmFnZXJS
ZWYsIHVpbnQ2NF90PiBtX3BlbmRpbmdOb3RpZmljYXRpb247CiB9OwogCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1B1c2hBUEkubW0gYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1B1c2hBUEkubW0KaW5kZXggYmY5NzQxNjJk
MGFkOGJlNDJiMDAzYTQ5NWYyYzgwODc0YjdkZjkwZS4uZGVmY2M4OTAyNDVmZTQ5NDljYjZkODIx
ZWM4ZDQ3Y2ViZmM5Njg2NiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9QdXNoQVBJLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvUHVzaEFQSS5tbQpAQCAtNjc3LDYgKzY3Nyw5IEBAIFRFU1QoUHVzaEFQSSwgZmly
ZU5vdGlmaWNhdGlvbkNsaWNrRXZlbnQpCiAKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRvbmUpOwogCisgICAgcHJvdmlkZXIucmVzZXRIYXNSZWNlaXZlZE5vdGlmaWNhdGlvbigpOwor
ICAgIGF1dG8mIHByb3ZpZGVyUmVmID0gcHJvdmlkZXI7CisKICAgICBkb25lID0gZmFsc2U7CiAg
ICAgcHVzaE1lc3NhZ2VQcm9jZXNzZWQgPSBmYWxzZTsKICAgICBwdXNoTWVzc2FnZVN1Y2Nlc3Nm
dWwgPSBmYWxzZTsKQEAgLTY4NCw2ICs2ODcsNyBAQCBURVNUKFB1c2hBUEksIGZpcmVOb3RpZmlj
YXRpb25DbGlja0V2ZW50KQogICAgIGV4cGVjdGVkTWVzc2FnZSA9ICJSZWNlaXZlZDogU3dlZXQg
UG90YXRvZXMiX3M7CiAKICAgICBbW2NvbmZpZ3VyYXRpb24gd2Vic2l0ZURhdGFTdG9yZV0gX3By
b2Nlc3NQdXNoTWVzc2FnZTptZXNzYWdlRGljdGlvbmFyeShbbWVzc2FnZSBkYXRhVXNpbmdFbmNv
ZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ10sIFtzZXJ2ZXIucmVxdWVzdCgpIFVSTF0pIGNvbXBs
ZXRpb25IYW5kbGVyOl4oYm9vbCByZXN1bHQpIHsKKyAgICAgICAgRVhQRUNUX1RSVUUocHJvdmlk
ZXJSZWYuaGFzUmVjZWl2ZWROb3RpZmljYXRpb24oKSk7CiAgICAgICAgIHB1c2hNZXNzYWdlU3Vj
Y2Vzc2Z1bCA9IHJlc3VsdDsKICAgICAgICAgcHVzaE1lc3NhZ2VQcm9jZXNzZWQgPSB0cnVlOwog
ICAgIH1dOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459145</attachid>
            <date>2022-05-11 00:08:51 -0700</date>
            <delta_ts>2022-05-15 23:16:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240273-20220511090849.patch</filename>
            <type>text/plain</type>
            <size>40935</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjk0MDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDkxZWU3ZDFiMjdmZjNk
YjQzZWFkYzkwZGRjOTY5MDA2NWZjZDBhMi4uYTVjN2U1MTBlMzVlYWIxZDQyNDAyOTkyMDQ3Mjk4
NDk4YzE2ZGNiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIyLTA1LTEwICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHN1cmUgY2FsbGlu
ZyBzaG93Tm90aWZpY2F0aW9uIHdpbGwgZXh0ZW5kIHRoZSBzZXJ2aWNlIHdvcmtlciBsaWZldGlt
ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQwMjcz
CisgICAgICAgIDxyZGFyOi8vOTI5Nzg0ODI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIE5vdGlmaWNhdGlvbkNsaWVudCBBUEkgc28gdGhh
dCBzaG93IGlzIHRha2luZyBhIGNvbXBsZXRpb24gaGFuZGxlci4KKyAgICAgICAgTWFrZSB1c2Ug
b2YgdGhpcyBjb21wbGV0aW9uIGhhbmRsZXIgdG8gcmVzb2x2ZSB0aGUgcHJvbWlzZSB3aGVuIHRo
ZSBzaG93IG5vdGlmaWNhdGlvbiBzdGVwcyBhcmUgZG9uZSwgYXMgcGVyIHNwZWMuCisgICAgICAg
IFJlZ2lzdGVyIHB1c2ggZXZlbnQgdG8gU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIHdoZW4gdGhl
IGV2ZW50IGhhbmRsZXJzIGFyZSBjYWxsZWQuCisgICAgICAgIFdoZW4gU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbjo6c2hvdyBpcyBjYWxsZWQgZHVyaW5nIG9uZSBvZiB0aGUgcHVzaCBldmVudCBo
YW5kbGVycywKKyAgICAgICAgZXh0ZW5kIHRoZSBwdXNoIGV2ZW50IGxpZmV0aW1lIGJ5IGFkZGlu
ZyB0aGUgc2hvdyBub3RpZmljYXRpb24gcHJvbWlzZSB0byB0aGUgcHVzaCBldmVudC4KKworICAg
ICAgICBDb3ZlcmVkIGJ5IEFQSSB0ZXN0LgorCisgICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRp
b25zL05vdGlmaWNhdGlvbi5jcHA6CisgICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05v
dGlmaWNhdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25DbGllbnQuaDoKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHA6Cisg
ICAgICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaDoKKyAgICAgICAgKiB3b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcDoKKyAgICAgICAgKiB3b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmg6CisgICAgICAgICogd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uY3BwOgorICAgICAgICAqIHdvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmg6CisgICAgICAgICogd29ya2Vycy9z
ZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHA6CisKIDIwMjItMDUtMTAgIEJy
ZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHRoZSB1
bm5lZWRlZCBTdHlsZVByb3BlcnRpZXNCYXNlIGFmdGVyIEJ1ZyAyNDAyNDQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
NTEzMWM2YzJiNmIxZmRhZjg0N2NmNGJhODNkOTVkZDI0NTZlMDI5OC4uZmVjZDlkNTMyM2Q5MGQ5
MjUzYjdiMzhkZGM1YjhhNzlmOTRjYjhmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAy
Mi0wNS0xMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgTWFr
ZSBzdXJlIGNhbGxpbmcgc2hvd05vdGlmaWNhdGlvbiB3aWxsIGV4dGVuZCB0aGUgc2VydmljZSB3
b3JrZXIgbGlmZXRpbWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI0MDI3MworICAgICAgICA8cmRhcjovLzkyOTc4NDgyPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE9uIFdlYlByb2Nlc3Mgc2lkZSwgaW1w
bGVtZW50IHRoZSBuZXcgTm9maWNhdGlvbkNsaWVudDo6c2hvdyBBUEkgdGhhdCB0YWtlcyBhIGNh
bGxiYWNrLgorICAgICAgICBEZWxheSBjYWxsaW5nIHRoaXMgY2FsbGJhY2sgdW50aWwgVUlQcm9j
ZXNzIHRlbGxzIHVzIHNvIHRocm91Z2ggYXN5bmMgSVBDLgorICAgICAgICBPbiBVSVByb2Nlc3Mg
c2lkZSwgdGFrZSBhIGNhbGxiYWNrIGFuZCBjYWxsIGl0IHdoZW4gdGhlIHNob3cgbm90aWZpY2F0
aW9uIHN0ZXBzIGFyZSBkb25lLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTm90aWZpY2F0
aW9ucy9OZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5jcHA6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5oOgorICAgICAg
ICAqIFNoYXJlZC9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxl
ci5oOgorICAgICAgICAqIFNoYXJlZC9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvbk1hbmFnZXJN
ZXNzYWdlSGFuZGxlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0
aW9ucy9TZXJ2aWNlV29ya2VyTm90aWZpY2F0aW9uSGFuZGxlci5jcHA6CisgICAgICAgICogVUlQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvU2VydmljZVdvcmtlck5vdGlmaWNhdGlvbkhhbmRsZXIuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2Vy
TWVzc2FnZUhhbmRsZXIuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29yLmNw
cDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFu
YWdlci5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNh
dGlvbk1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5v
dGlmaWNhdGlvbkNsaWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJOb3RpZmljYXRpb25DbGllbnQuaDoKKwogMjAyMi0wNS0xMCAgQnJlbnQgRnVsZ2hhbSAg
PGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgYWJhbmRvbmVkIENTU0RlZmVy
cmVkUGFyc2VyIGltcGxlbWVudGF0aW9uIGFuZCBmZWF0dXJlIGZsYWcKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZwppbmRleCA3YjA4YWExOGFhNGJiYTZiYTk1NGExMmQxY2NhYzIzNzQwYjE4MTFj
Li4yMmQ2MTE3MDQxMzc4MTU4NDRjZjRhODVjZmI1YTliMjE4NzQ0ZjEzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjItMDUtMTAgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2Ugc3VyZSBjYWxsaW5nIHNob3dO
b3RpZmljYXRpb24gd2lsbCBleHRlbmQgdGhlIHNlcnZpY2Ugd29ya2VyIGxpZmV0aW1lCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDAyNzMKKyAgICAg
ICAgPHJkYXI6Ly85Mjk3ODQ4Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbToKKwogMjAy
Mi0wNS0wNiAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZW1vdmUgdGhlIHZpZXdwb3J0Rml0RW5hYmxlZCBXS1ByZWZlcmVuY2Ugbm93IHRoYXQgaXQgaXMg
YWx3YXlzIG9uIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRp
b25zL05vdGlmaWNhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uLmNwcAppbmRleCAzZGE3ZGY4ZGU1OTMyNTA4M2M5YWFmMzNiMDBkMjdj
YjQ4NzQ2NGM2Li40NmU1MmQxYjNiOTMwZTMyODRjOTIwNTVjOTkxZDYwYjVkOWY3NmUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0
aW9uLmNwcApAQCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgIldpbmRvd0ZvY3VzQWxsb3dlZElu
ZGljYXRvci5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUg
PHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL1Njb3BlLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtMTQzLDE3ICsxNDQsMjMgQEAgdm9pZCBOb3RpZmljYXRpb246
Om1hcmtBc1Nob3duKCkKICAgICBtX3N0YXRlID0gU2hvd2luZzsKIH0KIAotdm9pZCBOb3RpZmlj
YXRpb246OnNob3coKQordm9pZCBOb3RpZmljYXRpb246OnNob3coQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNhbGxiYWNrKQogeworICAgIGF1dG8gc2NvcGUgPSBtYWtlU2NvcGVFeGl0KFsm
Y2FsbGJhY2tdIHsgY2FsbGJhY2soKTsgfSk7CisKICAgICAvLyBwcmV2ZW50IGRvdWJsZS1zaG93
aW5nCiAgICAgaWYgKG1fc3RhdGUgIT0gSWRsZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0
byogY2xpZW50ID0gY2xpZW50RnJvbUNvbnRleHQoKTsKKyAgICBhdXRvKiBjb250ZXh0ID0gc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIGlmICghY29udGV4dCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgYXV0byogY2xpZW50ID0gY29udGV4dC0+bm90aWZpY2F0aW9uQ2xpZW50KCk7CiAg
ICAgaWYgKCFjbGllbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChjbGllbnQtPmNoZWNr
UGVybWlzc2lvbihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpICE9IFBlcm1pc3Npb246OkdyYW50
ZWQpIHsKKyAgICBpZiAoY2xpZW50LT5jaGVja1Blcm1pc3Npb24oY29udGV4dCkgIT0gUGVybWlz
c2lvbjo6R3JhbnRlZCkgewogICAgICAgICBzd2l0Y2ggKG1fbm90aWZpY2F0aW9uU291cmNlKSB7
CiAgICAgICAgIGNhc2UgTm90aWZpY2F0aW9uU291cmNlOjpEb2N1bWVudDoKICAgICAgICAgICAg
IGRpc3BhdGNoRXJyb3JFdmVudCgpOwpAQCAtMTYzLDExICsxNzAsMTEgQEAgdm9pZCBOb3RpZmlj
YXRpb246OnNob3coKQogICAgICAgICAgICAgLy8gSWYgcGVybWlzc2lvbiBoYXMgc2luY2UgYmVl
biByZXZva2VkLCB0aGVuIHNpbGVudGx5IGZhaWxpbmcgaGVyZSBpcyBleHBlY3RlZCBiZWhhdmlv
ci4KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9Ci0KICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIGlmIChjbGllbnQtPnNob3coKnRoaXMpKQorICAgIHNjb3BlLnJlbGVhc2UoKTsK
KyAgICBpZiAoY2xpZW50LT5zaG93KCp0aGlzLCBXVEZNb3ZlKGNhbGxiYWNrKSkpCiAgICAgICAg
IG1fc3RhdGUgPSBTaG93aW5nOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmgKaW5kZXggNTkwZWMyOThkMWY5Y2RkNTE3NjJm
ZTNhYjUwYzk5ZDg5YTg4NmU0Ni4uZDI0OWNhOTIyZmVjOTkzMDNjNzQ4YjFmMmFjYzkwNWZkZTIx
NDliMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05v
dGlmaWNhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9O
b3RpZmljYXRpb24uaApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBl
cm1pc3Npb24uaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5o
IgogI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgorI2luY2x1ZGUgPHd0Zi9Db21w
bGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9VUkwuaD4KICNpbmNsdWRlIDx3dGYvVVVJ
RC5oPgogI2luY2x1ZGUgIldyaXRpbmdNb2RlLmgiCkBAIC03NCw3ICs3NSw3IEBAIHB1YmxpYzoK
IAogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgfk5vdGlmaWNhdGlvbigpOwogCi0gICAgdm9p
ZCBzaG93KCk7CisgICAgdm9pZCBzaG93KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiA9IFtd
IHsgfSk7CiAgICAgdm9pZCBjbG9zZSgpOwogCiAgICAgY29uc3QgU3RyaW5nJiB0aXRsZSgpIGNv
bnN0IHsgcmV0dXJuIG1fdGl0bGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DbGllbnQuaAppbmRleCBhOGIzMGIyZjM3
YWMxN2I2NjJlZmUyNjMxZWI0NDE4ZjQ2OWYzMjNhLi4zNDQxMDVjNGQyMTFjMTgwNTU3MjFkNjNh
ODc1NmM5YzAwYmFiZWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1
YmxpYzoKICAgICB1c2luZyBQZXJtaXNzaW9uSGFuZGxlciA9IENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoUGVybWlzc2lvbik+OwogCiAgICAgLy8gUmVxdWVzdHMgdGhhdCBhIG5vdGlmaWNhdGlvbiBi
ZSBzaG93bi4KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdyhOb3RpZmljYXRpb24mKSA9IDA7CisgICAg
dmlydHVhbCBib29sIHNob3coTm90aWZpY2F0aW9uJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKSA9IDA7CiAKICAgICAvLyBSZXF1ZXN0cyB0aGF0IGEgbm90aWZpY2F0aW9uIHRoYXQgaGFz
IGFscmVhZHkgYmVlbiBzaG93biBiZSBjYW5jZWxlZC4KICAgICB2aXJ0dWFsIHZvaWQgY2FuY2Vs
KE5vdGlmaWNhdGlvbiYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0LmNwcAppbmRleCA5NzFiYmQ2ZTIyZGU0YTk0NmYyNjE4ZmYyM2IzYjZmZDg0Yzhk
MTU0Li45NjJjNzBhODU1OGM5OGQzNzkzM2VjMzE1NTQ5NzQyNTYzMjQwNjgzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCkBAIC0xNzYsNiArMTc2
LDEwIEBAIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6On5TY3JpcHRFeGVjdXRpb25Db250ZXh0KCkK
ICAgICBtX2luU2NyaXB0RXhlY3V0aW9uQ29udGV4dERlc3RydWN0b3IgPSB0cnVlOwogI2VuZGlm
IC8vIEFTU0VSVF9FTkFCTEVECiAKKyAgICBhdXRvIGNhbGxiYWNrcyA9IFdURk1vdmUobV9ub3Rp
ZmljYXRpb25DYWxsYmFja3MpOworICAgIGZvciAoYXV0byYgY2FsbGJhY2sgOiBjYWxsYmFja3Mu
dmFsdWVzKCkpCisgICAgICAgIGNhbGxiYWNrKCk7CisKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JL
RVIpCiAgICAgc2V0QWN0aXZlU2VydmljZVdvcmtlcihudWxscHRyKTsKICNlbmRpZgpAQCAtNzU1
LDQgKzc1OSwxNiBAQCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpIYXNSZXNvdXJjZUFjY2VzcyBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OjpjYW5BY2Nlc3NSZXNvdQogICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiB9CiAKK1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6Ok5vdGlmaWNhdGlv
bkNhbGxiYWNrSWRlbnRpZmllciBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjphZGROb3RpZmljYXRp
b25DYWxsYmFjayhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spCit7CisgICAg
YXV0byBpZGVudGlmaWVyID0gTm90aWZpY2F0aW9uQ2FsbGJhY2tJZGVudGlmaWVyOjpnZW5lcmF0
ZVRocmVhZFNhZmUoKTsKKyAgICBtX25vdGlmaWNhdGlvbkNhbGxiYWNrcy5hZGQoaWRlbnRpZmll
ciwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIHJldHVybiBpZGVudGlmaWVyOworfQorCitDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6Om5vdGlmaWNhdGlv
bkNhbGxiYWNrKE5vdGlmaWNhdGlvbkNhbGxiYWNrSWRlbnRpZmllciBpZGVudGlmaWVyKQorewor
ICAgIHJldHVybiBtX25vdGlmaWNhdGlvbkNhbGxiYWNrcy50YWtlKGlkZW50aWZpZXIpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuaAppbmRleCBiNTczZDI0MzJiMzQ1YTQ2OWQ1MTBkMTlhZGNlYWM5NmYwMmE3
YWJjLi5mMTJkMGZiMjZlYjlmNmNlM2U1N2VjYmY3NWFjOWJlMDJjYzZkOTJlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKQEAgLTMxMyw2ICszMTMsMTIg
QEAgcHVibGljOgogICAgIGVudW0gY2xhc3MgSGFzUmVzb3VyY2VBY2Nlc3MgOiB1aW50OF90IHsg
Tm8sIFllcywgRGVmYXVsdEZvclRoaXJkUGFydHkgfTsKICAgICBXRUJDT1JFX0VYUE9SVCBIYXNS
ZXNvdXJjZUFjY2VzcyBjYW5BY2Nlc3NSZXNvdXJjZShSZXNvdXJjZVR5cGUpIGNvbnN0OwogCisg
ICAgZW51bSBOb3RpZmljYXRpb25DYWxsYmFja0lkZW50aWZpZXJUeXBlIHsgfTsKKyAgICB1c2lu
ZyBOb3RpZmljYXRpb25DYWxsYmFja0lkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPE5vdGlm
aWNhdGlvbkNhbGxiYWNrSWRlbnRpZmllclR5cGU+OworCisgICAgV0VCQ09SRV9FWFBPUlQgTm90
aWZpY2F0aW9uQ2FsbGJhY2tJZGVudGlmaWVyIGFkZE5vdGlmaWNhdGlvbkNhbGxiYWNrKENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiBub3RpZmljYXRpb25DYWxsYmFjayhOb3RpZmljYXRpb25DYWxsYmFja0lk
ZW50aWZpZXIpOworCiBwcm90ZWN0ZWQ6CiAgICAgY2xhc3MgQWRkQ29uc29sZU1lc3NhZ2VUYXNr
IDogcHVibGljIFRhc2sgewogICAgIHB1YmxpYzoKQEAgLTM5NSw2ICs0MDEsOCBAQCBwcml2YXRl
OgogCiAgICAgYm9vbCBtX2hhc0xvZ2dlZEF1dGhlbnRpY2F0ZWRFbmNyeXB0aW9uV2FybmluZyB7
IGZhbHNlIH07CiAgICAgU3RvcmFnZUJsb2NraW5nUG9saWN5IG1fc3RvcmFnZUJsb2NraW5nUG9s
aWN5IHsgU3RvcmFnZUJsb2NraW5nUG9saWN5OjpBbGxvd0FsbCB9OworCisgICAgSGFzaE1hcDxO
b3RpZmljYXRpb25DYWxsYmFja0lkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4+
IG1fbm90aWZpY2F0aW9uQ2FsbGJhY2tzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlLmNwcAppbmRleCAwMmIyMzgwZWUxOGVjNzY1M2VjMjM4M2I2MDgzOGE2
MDE3ZjUyZjJkLi4wODllZTEwZjlkOWNhZmZjMmJiNmZhMzEzMmYzNmRlNGMxZWY3NmQ0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkZyYW1lTG9h
ZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRl
ICJOb3RpZmljYXRpb25FdmVudC5oIgorI2luY2x1ZGUgIlB1c2hFdmVudC5oIgogI2luY2x1ZGUg
IlNXQ29udGV4dE1hbmFnZXIuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyLmgiCiAjaW5jbHVk
ZSAiU2VydmljZVdvcmtlckNsaWVudC5oIgpAQCAtNzgsNiArNzksMTMgQEAgU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlOjp+U2VydmljZVdvcmtlckdsb2JhbFNjb3BlKCkKICAgICBjYWxsT25NYWlu
VGhyZWFkKFtub3RpZmljYXRpb25DbGllbnQgPSBXVEZNb3ZlKG1fbm90aWZpY2F0aW9uQ2xpZW50
KV0geyB9KTsKIH0KIAordm9pZCBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6OmRpc3BhdGNoUHVz
aEV2ZW50KFB1c2hFdmVudCYgcHVzaEV2ZW50KQoreworICAgIG1fcHVzaEV2ZW50ID0gJnB1c2hF
dmVudDsKKyAgICBkaXNwYXRjaEV2ZW50KHB1c2hFdmVudCk7CisgICAgbV9wdXNoRXZlbnQgPSBu
dWxscHRyOworfQorCiB2b2lkIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTo6bm90aWZ5U2Vydmlj
ZVdvcmtlclBhZ2VPZkNyZWF0aW9uSWZOZWNlc3NhcnkoKQogewogICAgIGF1dG8gc2VydmljZVdv
cmtlclBhZ2UgPSB0aGlzLT5zZXJ2aWNlV29ya2VyUGFnZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oCmlu
ZGV4IGFmNWRkODM3ZWE2MDZmNDVkNmMzODE4MDUxNTM4M2I0Zjc0NjcxNDcuLmM0OTRmOGRkYTUz
MTA5YmMzYmRjYzcyZjJkZDFhZTI2NTM1OWM2ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgKQEAgLTQw
LDYgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRGVmZXJyZWRQcm9taXNlOwog
Y2xhc3MgRXh0ZW5kYWJsZUV2ZW50OwogY2xhc3MgUGFnZTsKK2NsYXNzIFB1c2hFdmVudDsKIGNs
YXNzIFNlcnZpY2VXb3JrZXJDbGllbnQ7CiBjbGFzcyBTZXJ2aWNlV29ya2VyQ2xpZW50czsKIGNs
YXNzIFNlcnZpY2VXb3JrZXJUaHJlYWQ7CkBAIC04MSw2ICs4Miw5IEBAIHB1YmxpYzoKIAogICAg
IFdFQkNPUkVfRVhQT1JUIFBhZ2UqIHNlcnZpY2VXb3JrZXJQYWdlKCk7CiAKKyAgICB2b2lkIGRp
c3BhdGNoUHVzaEV2ZW50KFB1c2hFdmVudCYpOworICAgIFB1c2hFdmVudCogcHVzaEV2ZW50KCkg
eyByZXR1cm4gbV9wdXNoRXZlbnQuZ2V0KCk7IH0KKwogICAgIGJvb2wgaGFzUGVuZGluZ1NpbGVu
dFB1c2hFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzUGVuZGluZ1NpbGVudFB1c2hFdmVudDsg
fQogICAgIHZvaWQgc2V0SGFzUGVuZGluZ1NpbGVudFB1c2hFdmVudChib29sIHZhbHVlKSB7IG1f
aGFzUGVuZGluZ1NpbGVudFB1c2hFdmVudCA9IHZhbHVlOyB9CiAKQEAgLTExMiw2ICsxMTYsNyBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9oYXNQZW5kaW5nU2lsZW50UHVzaEV2ZW50IHsgZmFsc2Ug
fTsKICAgICBib29sIG1faXNQcm9jZXNzaW5nVXNlckdlc3R1cmUgeyBmYWxzZSB9OwogICAgIFRp
bWVyIG1fdXNlckdlc3R1cmVUaW1lcjsKKyAgICBSZWZQdHI8UHVzaEV2ZW50PiBtX3B1c2hFdmVu
dDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcApp
bmRleCBmNWM4MTEyMjVhMTc4YmEyNDgxYjlkNWYxN2E2MmIyN2VlODU0MDNiLi5kMjQ1ZTJmODc3
NTZhOTkwNWUxYTdmODExNGZjNGQxMDY0NjljMWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uY3Bw
CkBAIC0zMiwxMiArMzIsMTQgQEAKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50
TG9vcC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJKU0RPTVByb21pc2Uu
aCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogI2luY2x1ZGUgIkpTTm90aWZp
Y2F0aW9uLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5hdmlnYXRpb25QcmVs
b2FkTWFuYWdlci5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkNsaWVudC5oIgogI2luY2x1ZGUg
Ik5vdGlmaWNhdGlvblBlcm1pc3Npb24uaCIKKyNpbmNsdWRlICJQdXNoRXZlbnQuaCIKICNpbmNs
dWRlICJTZXJ2aWNlV29ya2VyLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckNvbnRhaW5lci5o
IgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5oIgpAQCAtMjc0LDQwICsyNzYs
NDQgQEAgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyJiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
OjpuYXZpZ2F0aW9uUHJlbG9hZCgpCiB9CiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OX0VWRU5U
KQotdm9pZCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjpzaG93Tm90aWZpY2F0aW9uKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFN0cmluZyYmIHRpdGxlLCBOb3RpZmljYXRpb25P
cHRpb25zJiYgb3B0aW9ucywgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3Zv
aWQgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6c2hvd05vdGlmaWNhdGlvbihTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0LCBTdHJpbmcmJiB0aXRsZSwgTm90aWZpY2F0aW9uT3B0aW9u
cyYmIG9wdGlvbnMsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKIHsKICAgICBpZiAo
IW1fYWN0aXZlV29ya2VyKSB7Ci0gICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IFR5
cGVFcnJvciwgIlJlZ2lzdHJhdGlvbiBkb2VzIG5vdCBoYXZlIGFuIGFjdGl2ZSB3b3JrZXIiX3Mg
fSk7CisgICAgICAgIHByb21pc2UtPnJlamVjdChFeGNlcHRpb24geyBUeXBlRXJyb3IsICJSZWdp
c3RyYXRpb24gZG9lcyBub3QgaGF2ZSBhbiBhY3RpdmUgd29ya2VyIl9zIH0pOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCiAgICAgYXV0byogY2xpZW50ID0gY29udGV4dC5ub3RpZmljYXRpb25D
bGllbnQoKTsKICAgICBpZiAoIWNsaWVudCkgewotICAgICAgICBwcm9taXNlLnJlamVjdChFeGNl
cHRpb24geyBUeXBlRXJyb3IsICJSZWdpc3RyYXRpb24gbm90IGFjdGl2ZSJfcyB9KTsKKyAgICAg
ICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlJlZ2lzdHJhdGlvbiBu
b3QgYWN0aXZlIl9zIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKGNsaWVu
dC0+Y2hlY2tQZXJtaXNzaW9uKCZjb250ZXh0KSAhPSBOb3RpZmljYXRpb25QZXJtaXNzaW9uOjpH
cmFudGVkKSB7Ci0gICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwg
IlJlZ2lzdHJhdGlvbiBkb2VzIG5vdCBoYXZlIHBlcm1pc3Npb24gdG8gc2hvdyBub3RpZmljYXRp
b25zIl9zIH0pOworICAgICAgICBwcm9taXNlLT5yZWplY3QoRXhjZXB0aW9uIHsgVHlwZUVycm9y
LCAiUmVnaXN0cmF0aW9uIGRvZXMgbm90IGhhdmUgcGVybWlzc2lvbiB0byBzaG93IG5vdGlmaWNh
dGlvbnMiX3MgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoY29udGV4dC5p
c1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSgpKQogICAgICAgICBkb3duY2FzdDxTZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpLnNldEhhc1BlbmRpbmdTaWxlbnRQdXNoRXZlbnQoZmFs
c2UpOwogCi0gICAgLy8gVGhlIE5vdGlmaWNhdGlvbiBpcyBrZXB0IGFsaXZlIGJ5IHZpcnR1ZSBv
ZiBiZWluZyBzaG93KCknbiBzb29uLgotICAgIC8vIEZJWE1FOiBXaGVuIGltcGxlbWVudGluZyBn
ZXROb3RpZmljYXRpb25zKCksIHN0b3JlIHRoaXMgTm90aWZpY2F0aW9uIGluIHRoZSByZWdpc3Ry
YXRpb24ncyBub3RpZmljYXRpb24gbGlzdC4KICAgICBhdXRvIG5vdGlmaWNhdGlvblJlc3VsdCA9
IE5vdGlmaWNhdGlvbjo6Y3JlYXRlRm9yU2VydmljZVdvcmtlcihjb250ZXh0LCBXVEZNb3ZlKHRp
dGxlKSwgV1RGTW92ZShvcHRpb25zKSwgbV9yZWdpc3RyYXRpb25EYXRhLnNjb3BlVVJMKTsKICAg
ICBpZiAobm90aWZpY2F0aW9uUmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7Ci0gICAgICAgIHByb21p
c2UucmVqZWN0KG5vdGlmaWNhdGlvblJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOworICAgICAg
ICBwcm9taXNlLT5yZWplY3Qobm90aWZpY2F0aW9uUmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIG5vdGlmaWNhdGlvbiA9IG5vdGlm
aWNhdGlvblJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKLSAgICBub3RpZmljYXRpb24tPnNo
b3dTb29uKCk7CisgICAgaWYgKGF1dG8qIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSA9IGR5bmFt
aWNEb3duY2FzdDxTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+KGNvbnRleHQpKSB7CisgICAgICAg
IGlmIChhdXRvKiBwdXNoRXZlbnQgPSBzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUtPnB1c2hFdmVu
dCgpKSB7CisgICAgICAgICAgICBhdXRvJiBnbG9iYWxPYmplY3QgPSAqSlNDOjpqc0Nhc3Q8SlNE
T01HbG9iYWxPYmplY3QqPihwcm9taXNlLT5nbG9iYWxPYmplY3QoKSk7CisgICAgICAgICAgICBh
dXRvJiBqc1Byb21pc2UgPSAqSlNDOjpqc0Nhc3Q8SlNDOjpKU1Byb21pc2UqPihwcm9taXNlLT5w
cm9taXNlKCkpOworICAgICAgICAgICAgcHVzaEV2ZW50LT53YWl0VW50aWwoRE9NUHJvbWlzZTo6
Y3JlYXRlKGdsb2JhbE9iamVjdCwganNQcm9taXNlKSk7CisgICAgICAgIH0KKyAgICB9CiAKLSAg
ICBjb250ZXh0LmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpET01NYW5pcHVsYXRp
b24sIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgcHJv
bWlzZS5yZXNvbHZlKCk7CisgICAgYXV0byBub3RpZmljYXRpb24gPSBub3RpZmljYXRpb25SZXN1
bHQucmVsZWFzZVJldHVyblZhbHVlKCk7CisgICAgbm90aWZpY2F0aW9uLT5zaG93KFtwcm9taXNl
ID0gV1RGTW92ZShwcm9taXNlKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgcHJvbWlzZS0+cmVzb2x2
ZSgpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaAppbmRleCA2OWZiNWUzYTcwZTVl
Y2MwMWNkMTNlMWEyODY1MDg0YmZhMDE1YTM5Li41YTY4NWY0ZTFhMmM3ZDRhODQ1YmFkZDkxMjAy
YjBiODk2YTZmMzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmgKQEAgLTk5LDcgKzk5LDcgQEAgcHVi
bGljOgogICAgICAgICBTdHJpbmcgdGFnOwogICAgIH07CiAKLSAgICB2b2lkIHNob3dOb3RpZmlj
YXRpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFN0cmluZyYmIHRpdGxlLCBOb3RpZmljYXRp
b25PcHRpb25zJiYsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKyAgICB2b2lkIHNob3dO
b3RpZmljYXRpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFN0cmluZyYmIHRpdGxlLCBOb3Rp
ZmljYXRpb25PcHRpb25zJiYsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYpOwogICAgIHZvaWQgZ2V0
Tm90aWZpY2F0aW9ucyhjb25zdCBHZXROb3RpZmljYXRpb25PcHRpb25zJiBmaWx0ZXIsIERPTVBy
b21pc2VEZWZlcnJlZDxJRExTZXF1ZW5jZTxJRExJbnRlcmZhY2U8Tm90aWZpY2F0aW9uPj4+KTsK
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29u
dGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCmluZGV4IDNlM2Q0NmI3MzQ3YThi
OTczOGE4OWM0YjQyOWQzMzg5ZTk2ODA2NTIuLjU5MzZmYTU0OTY1ODdhYjlmZThkOTg2YWMwN2Vh
ODAxNjY5Y2Y1NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9j
b250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCkBAIC0yMzEsNyArMjMx
LDcgQEAgdm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkOjpxdWV1ZVRhc2tUb0ZpcmVQdXNoRXZlbnQo
c3RkOjpvcHRpb25hbDxWZWN0b3I8dWludDhfdD4KICAgICAgICAgc2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlLT5zZXRIYXNQZW5kaW5nU2lsZW50UHVzaEV2ZW50KHRydWUpOwogCiAgICAgICAgIGF1
dG8gcHVzaEV2ZW50ID0gUHVzaEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnB1c2hFdmVudCwg
eyB9LCBXVEZNb3ZlKGRhdGEpLCBFeHRlbmRhYmxlRXZlbnQ6OklzVHJ1c3RlZDo6WWVzKTsKLSAg
ICAgICAgc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLT5kaXNwYXRjaEV2ZW50KHB1c2hFdmVudCk7
CisgICAgICAgIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS0+ZGlzcGF0Y2hQdXNoRXZlbnQocHVz
aEV2ZW50KTsKIAogICAgICAgICBwdXNoRXZlbnQtPndoZW5BbGxFeHRlbmRMaWZldGltZVByb21p
c2VzQXJlU2V0dGxlZChbc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLCBldmVudENyZWF0aW9uVGlt
ZSA9IHB1c2hFdmVudC0+dGltZVN0YW1wKCksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayld
KGF1dG8mJiBleHRlbmRMaWZldGltZVByb21pc2VzKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGJv
b2wgaGFzUmVqZWN0ZWRBbnlQcm9taXNlID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlvbk1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdv
cmtOb3RpZmljYXRpb25NYW5hZ2VyLmNwcAppbmRleCBjMTMzYzEwZWY0MzkzODdjYThkYTgxMTVi
MDVhODg3Y2I3NDFmM2M5Li4yYjI2NDlhZmIzMGFlNzc4MGM4Yjc0MmI0ZWU2NmEyYzY5ZGFhNTFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMv
TmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKQEAg
LTEwMSwxMCArMTAxLDkgQEAgdm9pZCBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcjo6Z2V0UGVu
ZGluZ1B1c2hNZXNzYWdlcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGMKICAgICBzZW5kTWVzc2Fn
ZVdpdGhSZXBseTxXZWJQdXNoRDo6TWVzc2FnZVR5cGU6OkdldFBlbmRpbmdQdXNoTWVzc2FnZXM+
KFdURk1vdmUocmVwbHlIYW5kbGVyKSk7CiB9CiAKLXZvaWQgTmV0d29ya05vdGlmaWNhdGlvbk1h
bmFnZXI6OnNob3dOb3RpZmljYXRpb24oSVBDOjpDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6
Tm90aWZpY2F0aW9uRGF0YSYpCit2b2lkIE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyOjpzaG93
Tm90aWZpY2F0aW9uKElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6Ok5vdGlmaWNhdGlv
bkRhdGEmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spCiB7Ci0gICAgaWYg
KCFtX2Nvbm5lY3Rpb24pCi0gICAgICAgIHJldHVybjsKKyAgICBjYWxsYmFjaygpOwogCiAvLyAg
ICAgRklYTUU6IFdoaWxlIHdlIGRvbid0IG5vcm1hbGx5IGxhbmQgY29tbWVudGVkLW91dCBjb2Rl
IGluIHRoZSB0cmVlLAogLy8gICAgIHRoaXMgaXMgYSBuaWNlIGJvb2ttYXJrIGZvciBhIGRldmVs
b3BtZW50IG1pbGVzdG9uZTsgUm91bmR0cmlwIGNvbW11bmljYXRpb24gd2l0aCB3ZWJwdXNoZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05l
dHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05vdGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuaAppbmRleCAyMzcyZTJk
OGIwZTk1MTM2OGNmNjQ5NTUxNWFmMTZhMTEyZmUxOTY2Li5hZDlkZGVhZWMxODEwNjBlNTM2YjM1
OTc1ZTNlMmJiNTBjYTM4MjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05vdGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlv
bk1hbmFnZXIuaApAQCAtNjksNyArNjksNyBAQCBwcml2YXRlOgogICAgIE5ldHdvcmtOb3RpZmlj
YXRpb25NYW5hZ2VyKE5ldHdvcmtTZXNzaW9uJiwgY29uc3QgU3RyaW5nJiB3ZWJQdXNoTWFjaFNl
cnZpY2VOYW1lKTsKIAogICAgIHZvaWQgcmVxdWVzdFN5c3RlbU5vdGlmaWNhdGlvblBlcm1pc3Np
b24oY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYpIGZpbmFsOwotICAgIHZvaWQgc2hvd05vdGlmaWNhdGlvbihJUEM6OkNvbm5lY3Rpb24m
LCBjb25zdCBXZWJDb3JlOjpOb3RpZmljYXRpb25EYXRhJikgZmluYWw7CisgICAgdm9pZCBzaG93
Tm90aWZpY2F0aW9uKElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6Ok5vdGlmaWNhdGlv
bkRhdGEmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwogICAgIHZvaWQgY2Fu
Y2VsTm90aWZpY2F0aW9uKGNvbnN0IFVVSUQmIG5vdGlmaWNhdGlvbklEKSBmaW5hbDsKICAgICB2
b2lkIGNsZWFyTm90aWZpY2F0aW9ucyhjb25zdCBWZWN0b3I8VVVJRD4mIG5vdGlmaWNhdGlvbklE
cykgZmluYWw7CiAgICAgdm9pZCBkaWREZXN0cm95Tm90aWZpY2F0aW9uKGNvbnN0IFVVSUQmIG5v
dGlmaWNhdGlvbklEKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05v
dGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFu
ZGxlci5oCmluZGV4IDlmOTk2YWExMzZmY2MxOWRmOTYzNGZmYjM5MzM2YjFlMGZhNjRmYmEuLmNj
ZTU0MWJkMmE5Zjc2ZjJkNTZiM2IxMTExYzhiZjM3YmNiYjFlYTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VI
YW5kbGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB+Tm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyKCkgPSBkZWZhdWx0
OwogCiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTeXN0ZW1Ob3RpZmljYXRpb25QZXJtaXNzaW9u
KGNvbnN0IFN0cmluZyYgc2VjdXJpdHlPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2hvd05vdGlmaWNhdGlvbihJUEM6OkNvbm5l
Y3Rpb24mLCBjb25zdCBXZWJDb3JlOjpOb3RpZmljYXRpb25EYXRhJikgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBzaG93Tm90aWZpY2F0aW9uKElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6
Ok5vdGlmaWNhdGlvbkRhdGEmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgY2FuY2VsTm90aWZpY2F0aW9uKGNvbnN0IFVVSUQmIG5vdGlmaWNhdGlv
bklEKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyTm90aWZpY2F0aW9ucyhjb25zdCBWZWN0
b3I8VVVJRD4mIG5vdGlmaWNhdGlvbklEcykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWREZXN0
cm95Tm90aWZpY2F0aW9uKGNvbnN0IFVVSUQmIG5vdGlmaWNhdGlvbklEKSA9IDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvbk1hbmFn
ZXJNZXNzYWdlSGFuZGxlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLm1lc3NhZ2VzLmluCmlu
ZGV4IDZhZTE5Mzc3OThhNWQzN2MwY2QzYjk2ZDlmN2M1ZmJlMmY2MDM2NWIuLjViOWE3M2M3MjIy
MDQwYjlhM2QzMzZmMjA5OTVkMmZlNjlkYmJmMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLm1lc3NhZ2VzLmluCkBAIC0yMiw3ICsyMiw3IEBA
CiAKIG1lc3NhZ2VzIC0+IE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlciBOb3RSZWZD
b3VudGVkIHsKICAgICBSZXF1ZXN0U3lzdGVtTm90aWZpY2F0aW9uUGVybWlzc2lvbihTdHJpbmcg
b3JpZ2luSWRlbnRpZmllcikgLT4gKGJvb2wgYWxsb3dlZCkKLSAgICBTaG93Tm90aWZpY2F0aW9u
KHN0cnVjdCBXZWJDb3JlOjpOb3RpZmljYXRpb25EYXRhIG5vdGlmaWNhdGlvbkRhdGEpIFdhbnRz
Q29ubmVjdGlvbgorICAgIFNob3dOb3RpZmljYXRpb24oc3RydWN0IFdlYkNvcmU6Ok5vdGlmaWNh
dGlvbkRhdGEgbm90aWZpY2F0aW9uRGF0YSkgLT4gKCkgV2FudHNDb25uZWN0aW9uCiAgICAgQ2Fu
Y2VsTm90aWZpY2F0aW9uKFVVSUQgbm90aWZpY2F0aW9uSUQpCiAgICAgQ2xlYXJOb3RpZmljYXRp
b25zKFZlY3RvcjxVVUlEPiBub3RpZmljYXRpb25JRHMpCiAgICAgRGlkRGVzdHJveU5vdGlmaWNh
dGlvbihVVUlEIG5vdGlmaWNhdGlvbklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTm90aWZpY2F0aW9ucy9TZXJ2aWNlV29ya2VyTm90aWZpY2F0aW9uSGFuZGxlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1NlcnZpY2VXb3JrZXJOb3Rp
ZmljYXRpb25IYW5kbGVyLmNwcAppbmRleCA4NDc0YTc5M2YwOTliZTM1MzA3YWY3OTJiOWExNjU5
NzMzZDk1ODgxLi41YWEyNjYwOWM5NDc4OTc1OGNlMGIzMzY4Zjc2NmU5OTEyZDM5ZWNhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1NlcnZpY2VXb3Jr
ZXJOb3RpZmljYXRpb25IYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
b3RpZmljYXRpb25zL1NlcnZpY2VXb3JrZXJOb3RpZmljYXRpb25IYW5kbGVyLmNwcApAQCAtNTIs
MTQgKzUyLDE3IEBAIFdlYnNpdGVEYXRhU3RvcmUqIFNlcnZpY2VXb3JrZXJOb3RpZmljYXRpb25I
YW5kbGVyOjpkYXRhU3RvcmVGb3JOb3RpZmljYXRpb25JRChjCiAgICAgcmV0dXJuIFdlYnNpdGVE
YXRhU3RvcmU6OmV4aXN0aW5nRGF0YVN0b3JlRm9yU2Vzc2lvbklEKGl0ZXJhdG9yLT52YWx1ZSk7
CiB9CiAKLXZvaWQgU2VydmljZVdvcmtlck5vdGlmaWNhdGlvbkhhbmRsZXI6OnNob3dOb3RpZmlj
YXRpb24oSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBjb25zdCBXZWJDb3JlOjpOb3RpZmlj
YXRpb25EYXRhJiBkYXRhKQordm9pZCBTZXJ2aWNlV29ya2VyTm90aWZpY2F0aW9uSGFuZGxlcjo6
c2hvd05vdGlmaWNhdGlvbihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IFdlYkNv
cmU6Ok5vdGlmaWNhdGlvbkRhdGEmIGRhdGEsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
YWxsYmFjaykKIHsKICAgICBhdXRvKiBkYXRhU3RvcmUgPSBXZWJzaXRlRGF0YVN0b3JlOjpleGlz
dGluZ0RhdGFTdG9yZUZvclNlc3Npb25JRChkYXRhLnNvdXJjZVNlc3Npb24pOwotICAgIGlmICgh
ZGF0YVN0b3JlKQorICAgIGlmICghZGF0YVN0b3JlKSB7CisgICAgICAgIGNhbGxiYWNrKCk7CiAg
ICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBtX25vdGlmaWNhdGlvblRvU2Vzc2lvbk1hcC5h
ZGQoZGF0YS5ub3RpZmljYXRpb25JRCwgZGF0YS5zb3VyY2VTZXNzaW9uKTsKICAgICBkYXRhU3Rv
cmUtPnNob3dTZXJ2aWNlV29ya2VyTm90aWZpY2F0aW9uKGNvbm5lY3Rpb24sIGRhdGEpOworICAg
IGNhbGxiYWNrKCk7CiB9CiAKIHZvaWQgU2VydmljZVdvcmtlck5vdGlmaWNhdGlvbkhhbmRsZXI6
OmNhbmNlbE5vdGlmaWNhdGlvbihjb25zdCBVVUlEJiBub3RpZmljYXRpb25JRCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvU2VydmljZVdvcmtlck5v
dGlmaWNhdGlvbkhhbmRsZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNhdGlv
bnMvU2VydmljZVdvcmtlck5vdGlmaWNhdGlvbkhhbmRsZXIuaAppbmRleCAxNWJmOGRjMzk0OWFh
YjJmMDA5ZTBjMzNhNzdmNjEwYmZhNDliMzI4Li5jZWM4MzQ5Yzk2N2JhMmEwN2Q1ZjVmNTFlNTQ3
MTMxNThhZDc0MzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL1NlcnZpY2VXb3JrZXJOb3RpZmljYXRpb25IYW5kbGVyLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9TZXJ2aWNlV29ya2VyTm90aWZpY2F0aW9uSGFu
ZGxlci5oCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIFNlcnZpY2VXb3JrZXJOb3RpZmljYXRpb25I
YW5kbGVyIGZpbmFsIDogcHVibGljIE5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlCiBwdWJsaWM6
CiAgICAgc3RhdGljIFNlcnZpY2VXb3JrZXJOb3RpZmljYXRpb25IYW5kbGVyJiBzaW5nbGV0b24o
KTsKIAotICAgIHZvaWQgc2hvd05vdGlmaWNhdGlvbihJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBX
ZWJDb3JlOjpOb3RpZmljYXRpb25EYXRhJikgZmluYWw7CisgICAgdm9pZCBzaG93Tm90aWZpY2F0
aW9uKElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRhdGEmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwogICAgIHZvaWQgY2FuY2VsTm90aWZp
Y2F0aW9uKGNvbnN0IFVVSUQmIG5vdGlmaWNhdGlvbklEKSBmaW5hbDsKICAgICB2b2lkIGNsZWFy
Tm90aWZpY2F0aW9ucyhjb25zdCBWZWN0b3I8VVVJRD4mIG5vdGlmaWNhdGlvbklEcykgZmluYWw7
CiAgICAgdm9pZCBkaWREZXN0cm95Tm90aWZpY2F0aW9uKGNvbnN0IFVVSUQmIG5vdGlmaWNhdGlv
bklEKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNh
dGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3Nh
Z2VIYW5kbGVyLmNwcAppbmRleCAxY2ZkMzI4ZDZmNzIzZTMwNTk5OWEzMDAxZTVhYTM1OTAxNjZk
NzVkLi4yYzAzOGQ2N2FiY2Y4YmNjMTE1NGI1ZDU2NzNmNmU3ZTk4NDFlNGUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1h
bmFnZXJNZXNzYWdlSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90
aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuY3BwCkBAIC00
MSwxMyArNDEsMTQgQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXI6
OnJlcXVlc3RTeXN0ZW1Ob3RpZmljYXRpb25QZXJtaXNzaW9uKGMKICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogfQogCi12b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdl
SGFuZGxlcjo6c2hvd05vdGlmaWNhdGlvbihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNv
bnN0IFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRhdGEmIGRhdGEpCit2b2lkIFdlYk5vdGlmaWNhdGlv
bk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6c2hvd05vdGlmaWNhdGlvbihJUEM6OkNvbm5lY3Rpb24m
IGNvbm5lY3Rpb24sIGNvbnN0IFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRhdGEmIGRhdGEsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjYWxsYmFjaykKIHsKICAgICBpZiAoIWRhdGEuc2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvblVSTC5pc0VtcHR5KCkpIHsKLSAgICAgICAgU2VydmljZVdvcmtl
ck5vdGlmaWNhdGlvbkhhbmRsZXI6OnNpbmdsZXRvbigpLnNob3dOb3RpZmljYXRpb24oY29ubmVj
dGlvbiwgZGF0YSk7CisgICAgICAgIFNlcnZpY2VXb3JrZXJOb3RpZmljYXRpb25IYW5kbGVyOjpz
aW5nbGV0b24oKS5zaG93Tm90aWZpY2F0aW9uKGNvbm5lY3Rpb24sIGRhdGEsIFdURk1vdmUoY2Fs
bGJhY2spKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBtX3dlYlBhZ2VQcm94eS5zaG93
Tm90aWZpY2F0aW9uKGNvbm5lY3Rpb24sIGRhdGEpOworICAgIGNhbGxiYWNrKCk7CiB9CiAKIHZv
aWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjpjYW5jZWxOb3RpZmljYXRp
b24oY29uc3QgVVVJRCYgbm90aWZpY2F0aW9uSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFu
ZGxlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmlj
YXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaAppbmRleCA1MjUwNWU5ZDI1NjA0MzZkMmI5NzFk
MjFhYWJiZGUwYzRkZTNmYmRiLi43NTQxYjM2ODMyYjQ3NjAyODhjYjcyMWNiNTI3NjUzMWQ0NmI0
YWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5k
bGVyLmgKQEAgLTM3LDcgKzM3LDcgQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIoV2ViUGFnZVByb3h5Jik7CiAKICAgICB2b2lkIHJl
cXVlc3RTeXN0ZW1Ob3RpZmljYXRpb25QZXJtaXNzaW9uKGNvbnN0IFN0cmluZyYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFsOwotICAgIHZvaWQgc2hvd05vdGlmaWNhdGlv
bihJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpOb3RpZmljYXRpb25EYXRhJikgZmlu
YWw7CisgICAgdm9pZCBzaG93Tm90aWZpY2F0aW9uKElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdl
YkNvcmU6Ok5vdGlmaWNhdGlvbkRhdGEmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZp
bmFsOwogICAgIHZvaWQgY2FuY2VsTm90aWZpY2F0aW9uKGNvbnN0IFVVSUQmIG5vdGlmaWNhdGlv
bklEKSBmaW5hbDsKICAgICB2b2lkIGNsZWFyTm90aWZpY2F0aW9ucyhjb25zdCBWZWN0b3I8VVVJ
RD4mIG5vdGlmaWNhdGlvbklEcykgZmluYWw7CiAgICAgdm9pZCBkaWREZXN0cm95Tm90aWZpY2F0
aW9uKGNvbnN0IFVVSUQmIG5vdGlmaWNhdGlvbklEKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0
aW9uTWFuYWdlci5jcHAKaW5kZXggMGU1M2EzZjIzMDM2NDk1MTBmNzgxZDMyOGE3ODc4NWFlNzY1
ZjFkNS4uYTliNDBmMTI1OWUxYjJhMmU2NjM2MDQwZmY5NzgzNGJiODAzZWZkNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9u
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMv
V2ViTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKQEAgLTEyMywxNCArMTIzLDE0IEBAIHZvaWQgV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlcjo6cmVtb3ZlQWxsUGVybWlzc2lvbnNGb3JUZXN0aW5nKCkKIH0K
IAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQotdGVtcGxhdGU8dHlwZW5hbWUgVT4gYm9vbCBX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpzZW5kTm90aWZpY2F0aW9uTWVzc2FnZShVJiYgbWVzc2Fn
ZSwgTm90aWZpY2F0aW9uJiBub3RpZmljYXRpb24sIFdlYlBhZ2UqIHBhZ2UpCitzdGF0aWMgYm9v
bCBzZW5kTWVzc2FnZShOb3RpZmljYXRpb24mIG5vdGlmaWNhdGlvbiwgV2ViUGFnZSogcGFnZSwg
Y29uc3QgRnVuY3Rpb248Ym9vbChJUEM6OkNvbm5lY3Rpb24mLCB1aW50NjRfdCk+JiBzZW5kTWVz
c2FnZSkKIHsKICAgICBpZiAoIXBhZ2UgJiYgIW5vdGlmaWNhdGlvbi5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogI2lmIEVOQUJMRShCVUlMVF9JTl9O
T1RJRklDQVRJT05TKQogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0
dXJlcygpLmJ1aWx0SW5Ob3RpZmljYXRpb25zRW5hYmxlZCgpKQotICAgICAgICByZXR1cm4gbV9w
cm9jZXNzLmVuc3VyZU5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5k
KFdURk1vdmUobWVzc2FnZSksIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnNlc3Npb25JRCgpLnRv
VUludDY0KCkpOworICAgICAgICByZXR1cm4gc2VuZE1lc3NhZ2UoV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigpLCBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5zZXNzaW9uSUQoKS50b1VJbnQ2NCgpKTsKICNlbmRpZgogCiAg
ICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQYWdlSWRlbnRpZmllcj4gcGFnZUlkZW50aWZpZXI7
CkBAIC0xNDMsMTIgKzE0MywyNSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBib29sIFdlYk5vdGlm
aWNhdGlvbk1hbmFnZXI6OnNlbmROb3RpZmljYXRpb25NZXNzYWdlKFUmJiBtZQogICAgIH0KIAog
ICAgIEFTU0VSVChwYWdlSWRlbnRpZmllcik7CisgICAgcmV0dXJuIHNlbmRNZXNzYWdlKCpXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLCBwYWdlSWRlbnRp
Zmllci0+dG9VSW50NjQoKSk7Cit9CiAKLSAgICByZXR1cm4gbV9wcm9jZXNzLnBhcmVudFByb2Nl
c3NDb25uZWN0aW9uKCktPnNlbmQoV1RGTW92ZShtZXNzYWdlKSwgKnBhZ2VJZGVudGlmaWVyKTsK
K3RlbXBsYXRlPHR5cGVuYW1lIFU+IGJvb2wgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6c2VuZE5v
dGlmaWNhdGlvbk1lc3NhZ2UoVSYmIG1lc3NhZ2UsIE5vdGlmaWNhdGlvbiYgbm90aWZpY2F0aW9u
LCBXZWJQYWdlKiBwYWdlKQoreworICAgIHJldHVybiBzZW5kTWVzc2FnZShub3RpZmljYXRpb24s
IHBhZ2UsIFsmXSAoYXV0byYgY29ubmVjdGlvbiwgYXV0byBkZXN0aW5hdGlvbklkZW50aWZpZXIp
IHsKKyAgICAgICAgcmV0dXJuIGNvbm5lY3Rpb24uc2VuZChXVEZNb3ZlKG1lc3NhZ2UpLCBkZXN0
aW5hdGlvbklkZW50aWZpZXIpOworICAgIH0pOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBi
b29sIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OnNlbmROb3RpZmljYXRpb25NZXNzYWdlV2l0aEFz
eW5jUmVwbHkoVSYmIG1lc3NhZ2UsIE5vdGlmaWNhdGlvbiYgbm90aWZpY2F0aW9uLCBXZWJQYWdl
KiBwYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spCit7CisgICAgcmV0
dXJuIHNlbmRNZXNzYWdlKG5vdGlmaWNhdGlvbiwgcGFnZSwgWyZdIChhdXRvJiBjb25uZWN0aW9u
LCBhdXRvIGRlc3RpbmF0aW9uSWRlbnRpZmllcikgeworICAgICAgICByZXR1cm4gY29ubmVjdGlv
bi5zZW5kV2l0aEFzeW5jUmVwbHkoV1RGTW92ZShtZXNzYWdlKSwgV1RGTW92ZShjYWxsYmFjayks
IGRlc3RpbmF0aW9uSWRlbnRpZmllcik7CisgICAgfSk7CiB9CiAjZW5kaWYgLy8gRU5BQkxFKE5P
VElGSUNBVElPTlMpCiAKLWJvb2wgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6c2hvdyhOb3RpZmlj
YXRpb24mIG5vdGlmaWNhdGlvbiwgV2ViUGFnZSogcGFnZSkKK2Jvb2wgV2ViTm90aWZpY2F0aW9u
TWFuYWdlcjo6c2hvdyhOb3RpZmljYXRpb24mIG5vdGlmaWNhdGlvbiwgV2ViUGFnZSogcGFnZSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQogewogI2lmIEVOQUJMRShOT1RJ
RklDQVRJT05TKQogICAgIExPRyhOb3RpZmljYXRpb25zLCAiV2ViUHJvY2VzcyAlaSBnb2luZyB0
byBzaG93IG5vdGlmaWNhdGlvbiAlcyIsIGdldHBpZCgpLCBub3RpZmljYXRpb24uaWRlbnRpZmll
cigpLnRvU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CkBAIC0xNTcsNyArMTcwLDcgQEAgYm9vbCBX
ZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpzaG93KE5vdGlmaWNhdGlvbiYgbm90aWZpY2F0aW9uLCBX
ZWJQYWdlKiBwYWdlKQogICAgIGlmIChwYWdlICYmICFwYWdlLT5jb3JlUGFnZSgpLT5zZXR0aW5n
cygpLm5vdGlmaWNhdGlvbnNFbmFibGVkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAg
IGlmICghc2VuZE5vdGlmaWNhdGlvbk1lc3NhZ2UoTWVzc2FnZXM6Ok5vdGlmaWNhdGlvbk1hbmFn
ZXJNZXNzYWdlSGFuZGxlcjo6U2hvd05vdGlmaWNhdGlvbihub3RpZmljYXRpb24uZGF0YSgpKSwg
bm90aWZpY2F0aW9uLCBwYWdlKSkKKyAgICBpZiAoIXNlbmROb3RpZmljYXRpb25NZXNzYWdlV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6
U2hvd05vdGlmaWNhdGlvbihub3RpZmljYXRpb24uZGF0YSgpKSwgbm90aWZpY2F0aW9uLCBwYWdl
LCBXVEZNb3ZlKGNhbGxiYWNrKSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICgh
bm90aWZpY2F0aW9uLmlzUGVyc2lzdGVudCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2Vy
LmgKaW5kZXggYjIzNTI2Yjk3NTJiZmMxNTU2ZGVlY2IyNTYxNmFhM2I3Yjc4ZGQ1NC4uN2Y1NzY0
MTAyNTQ4MThjMjBkZjNhZGFlYTQ2ZThlMjY4OWQ1MThlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlv
bk1hbmFnZXIuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NTdXBwbGVt
ZW50LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25DbGllbnQuaD4KICNpbmNsdWRl
IDxvcHRpb25hbD4KKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KQEAgLTU1LDcgKzU2LDcgQEAgcHVibGljOgogCiAgICAgc3RhdGljIGNv
bnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CiAgICAgCi0gICAgYm9vbCBzaG93KFdlYkNvcmU6
Ok5vdGlmaWNhdGlvbiYsIFdlYlBhZ2UqKTsKKyAgICBib29sIHNob3coV2ViQ29yZTo6Tm90aWZp
Y2F0aW9uJiwgV2ViUGFnZSosIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9p
ZCBjYW5jZWwoV2ViQ29yZTo6Tm90aWZpY2F0aW9uJiwgV2ViUGFnZSopOwogCiAgICAgLy8gVGhp
cyBjYWxsYmFjayBjb21lcyBmcm9tIFdlYkNvcmUsIG5vdCBtZXNzYWdlZCBmcm9tIHRoZSBVSSBw
cm9jZXNzLgpAQCAtODIsNiArODMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVtb3ZlTm90
aWZpY2F0aW9uRGVjaXNpb25zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvcmlnaW5TdHJpbmdzKTsK
IAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IGJvb2wgc2VuZE5vdGlmaWNhdGlvbk1lc3NhZ2Uo
VSYmIG1lc3NhZ2UsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiYsIFdlYlBhZ2UqKTsKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBVPiBib29sIHNlbmROb3RpZmljYXRpb25NZXNzYWdlV2l0aEFzeW5jUmVw
bHkoVSYmIG1lc3NhZ2UsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiYsIFdlYlBhZ2UqLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiAgICAgV2ViUHJvY2VzcyYgbV9wcm9jZXNzOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90
aWZpY2F0aW9uQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuY3BwCmluZGV4IDY3MTExYTg0YTY1MWZiOGFmZjU3
YjA5MDdmZjRiODExODM0ZTE3NzEuLjFjMDE1NjkyZjI3YzQxOWEzYzM4NzE0ZjczNDg1ZGNlNjhi
NGIwOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJOb3RpZmljYXRpb25DbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuY3BwCkBAIC00OCwxMSArNDgs
MTkgQEAgV2ViTm90aWZpY2F0aW9uQ2xpZW50Ojp+V2ViTm90aWZpY2F0aW9uQ2xpZW50KCkKICAg
ICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKIH0KIAotYm9vbCBXZWJOb3RpZmljYXRpb25DbGll
bnQ6OnNob3coTm90aWZpY2F0aW9uJiBub3RpZmljYXRpb24pCitib29sIFdlYk5vdGlmaWNhdGlv
bkNsaWVudDo6c2hvdyhOb3RpZmljYXRpb24mIG5vdGlmaWNhdGlvbiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQogeworICAgIGF1dG8qIGNvbnRleHQgPSBub3RpZmljYXRp
b24uc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOworICAgIEFTU0VSVChjb250ZXh0KTsKKwogICAg
IGJvb2wgcmVzdWx0OwotICAgIGNhbGxPbk1haW5SdW5Mb29wQW5kV2FpdChbJnJlc3VsdCwgcHJv
dGVjdGVkTm90aWZpY2F0aW9uID0gUmVmIHsgbm90aWZpY2F0aW9uIH0sIHBhZ2UgPSBtX3BhZ2Vd
KCkgewotICAgICAgICByZXN1bHQgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5zdXBwbGVtZW50
PFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI+KCktPnNob3cocHJvdGVjdGVkTm90aWZpY2F0aW9uLmdl
dCgpLCBwYWdlKTsKKyAgICBjYWxsT25NYWluUnVuTG9vcEFuZFdhaXQoWyZyZXN1bHQsIHByb3Rl
Y3RlZE5vdGlmaWNhdGlvbiA9IFJlZiB7IG5vdGlmaWNhdGlvbiB9LCBwYWdlID0gbV9wYWdlLCBj
b250ZXh0SWRlbnRpZmllciA9IGNvbnRleHQtPmlkZW50aWZpZXIoKSwgY2FsbGJhY2tJZGVudGlm
aWVyID0gY29udGV4dC0+YWRkTm90aWZpY2F0aW9uQ2FsbGJhY2soV1RGTW92ZShjYWxsYmFjaykp
XSgpIHsKKyAgICAgICAgcmVzdWx0ID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc3VwcGxlbWVu
dDxXZWJOb3RpZmljYXRpb25NYW5hZ2VyPigpLT5zaG93KHByb3RlY3RlZE5vdGlmaWNhdGlvbi5n
ZXQoKSwgcGFnZSwgW2NvbnRleHRJZGVudGlmaWVyLCBjYWxsYmFja0lkZW50aWZpZXJdIHsKKyAg
ICAgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnBvc3RUYXNrVG8oY29udGV4dElkZW50
aWZpZXIsIFtjYWxsYmFja0lkZW50aWZpZXJdKGF1dG8mIGNvbnRleHQpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoYXV0byBjYWxsYmFjayA9IGNvbnRleHQubm90aWZpY2F0aW9uQ2FsbGJhY2soY2Fs
bGJhY2tJZGVudGlmaWVyKSkKKyAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICB9KTsKICAgICB9KTsKICAgICByZXR1cm4gcmVzdWx0OwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5v
dGlmaWNhdGlvbkNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oCmluZGV4IDFiZWQ5MTg3MDdiNjgyNzE2MjA5ZTIx
YzUxMThlNjlhOTNlMzZkNzguLjg1MjllNmEyMmUyMzExODg1ZmY0Mjk2MmZhYzUwNGU0MzZkYjNi
NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJOb3RpZmljYXRpb25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgKQEAgLTM4LDE5ICszOCwxOSBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViUGFnZTsKIAotY2xhc3MgV2ViTm90aWZpY2F0
aW9uQ2xpZW50IDogcHVibGljIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudCB7CitjbGFzcyBX
ZWJOb3RpZmljYXRpb25DbGllbnQgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6Tm90aWZpY2F0aW9u
Q2xpZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBXZWJO
b3RpZmljYXRpb25DbGllbnQoV2ViUGFnZSopOwogICAgIHZpcnR1YWwgfldlYk5vdGlmaWNhdGlv
bkNsaWVudCgpOwogCiBwcml2YXRlOgotICAgIGJvb2wgc2hvdyhXZWJDb3JlOjpOb3RpZmljYXRp
b24mKSBvdmVycmlkZTsKLSAgICB2b2lkIGNhbmNlbChXZWJDb3JlOjpOb3RpZmljYXRpb24mKSBv
dmVycmlkZTsKLSAgICB2b2lkIG5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3llZChXZWJDb3JlOjpO
b3RpZmljYXRpb24mKSBvdmVycmlkZTsKLSAgICB2b2lkIG5vdGlmaWNhdGlvbkNvbnRyb2xsZXJE
ZXN0cm95ZWQoKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBQZXJtaXNzaW9uSGFuZGxlciYmKSBvdmVycmlkZTsK
LSAgICBXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24gY2hlY2tQZXJtaXNz
aW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBvdmVycmlkZTsKKyAgICBib29s
IHNob3coV2ViQ29yZTo6Tm90aWZpY2F0aW9uJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KSBmaW5hbDsKKyAgICB2b2lkIGNhbmNlbChXZWJDb3JlOjpOb3RpZmljYXRpb24mKSBmaW5hbDsK
KyAgICB2b2lkIG5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3llZChXZWJDb3JlOjpOb3RpZmljYXRp
b24mKSBmaW5hbDsKKyAgICB2b2lkIG5vdGlmaWNhdGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKSBm
aW5hbDsKKyAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmLCBQZXJtaXNzaW9uSGFuZGxlciYmKSBmaW5hbDsKKyAgICBXZWJDb3JlOjpOb3Rp
ZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24gY2hlY2tQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqKSBmaW5hbDsKICAgICAKICAgICBXZWJQYWdlKiBtX3BhZ2UgeyBu
dWxscHRyIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaAppbmRleCBlNTcxNTNmNWZh
ZTg4NjA5M2M3MWIwNmY2ZGVlNjhkMjYxZGEwZjE1Li42MTE0NTM2Y2U3NDc5NzFmYTMzYjdlYjE2
YzNkMzYzZGI2Y2Q1MzFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaApAQCAtMzUsNyAr
MzUsNyBAQAogQGNsYXNzIFdlYk5vdGlmaWNhdGlvblBvbGljeUxpc3RlbmVyOwogQGNsYXNzIFdl
YlZpZXc7CiAKLWNsYXNzIFdlYk5vdGlmaWNhdGlvbkNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpO
b3RpZmljYXRpb25DbGllbnQgeworY2xhc3MgV2ViTm90aWZpY2F0aW9uQ2xpZW50IGZpbmFsIDog
cHVibGljIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudCB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgV2ViTm90aWZpY2F0aW9uQ2xpZW50KFdlYlZpZXcgKik7
CkBAIC00NSwxMiArNDUsMTIgQEAgcHVibGljOgogICAgIHVpbnQ2NF90IG5vdGlmaWNhdGlvbklE
Rm9yVGVzdGluZyhXZWJDb3JlOjpOb3RpZmljYXRpb24qKTsKIAogcHJpdmF0ZToKLSAgICBib29s
IHNob3coV2ViQ29yZTo6Tm90aWZpY2F0aW9uJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjYW5jZWwo
V2ViQ29yZTo6Tm90aWZpY2F0aW9uJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBub3RpZmljYXRpb25P
YmplY3REZXN0cm95ZWQoV2ViQ29yZTo6Tm90aWZpY2F0aW9uJikgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBub3RpZmljYXRpb25Db250cm9sbGVyRGVzdHJveWVkKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBy
ZXF1ZXN0UGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUGVybWlz
c2lvbkhhbmRsZXImJikgb3ZlcnJpZGU7Ci0gICAgV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50
OjpQZXJtaXNzaW9uIGNoZWNrUGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250
ZXh0Kikgb3ZlcnJpZGU7CisgICAgYm9vbCBzaG93KFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CisgICAgdm9pZCBjYW5jZWwoV2ViQ29y
ZTo6Tm90aWZpY2F0aW9uJikgZmluYWw7CisgICAgdm9pZCBub3RpZmljYXRpb25PYmplY3REZXN0
cm95ZWQoV2ViQ29yZTo6Tm90aWZpY2F0aW9uJikgZmluYWw7CisgICAgdm9pZCBub3RpZmljYXRp
b25Db250cm9sbGVyRGVzdHJveWVkKCkgZmluYWw7CisgICAgdm9pZCByZXF1ZXN0UGVybWlzc2lv
bihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUGVybWlzc2lvbkhhbmRsZXImJikg
ZmluYWw7CisgICAgV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50OjpQZXJtaXNzaW9uIGNoZWNr
UGVybWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KikgZmluYWw7CiAKICAg
ICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
LCBXZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0ZW5lciAqKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1t
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9u
Q2xpZW50Lm1tCmluZGV4IGMwYWFkMDk5M2M4Zjc3NTU5YmE5NWVkNzNlYmUwODNkMTczNWU4ODAu
LjA3ZGMxNTEzMjVkMDZkMDliNDZmMGEyOTNjNGUwMzM4MWUyOWZhOTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVu
dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJOb3Rp
ZmljYXRpb25DbGllbnQubW0KQEAgLTU4LDcgKzU4LDcgQEAgV2ViTm90aWZpY2F0aW9uQ2xpZW50
OjpXZWJOb3RpZmljYXRpb25DbGllbnQoV2ViVmlldyAqd2ViVmlldykKIHsKIH0KIAotYm9vbCBX
ZWJOb3RpZmljYXRpb25DbGllbnQ6OnNob3coTm90aWZpY2F0aW9uJiBub3RpZmljYXRpb24pCiti
b29sIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6c2hvdyhOb3RpZmljYXRpb24mIG5vdGlmaWNhdGlv
biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQogewogICAgIGlmICghW21f
d2ViVmlldyBfbm90aWZpY2F0aW9uUHJvdmlkZXJdKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBA
IC02OCw2ICs2OCw3IEBAIGJvb2wgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpzaG93KE5vdGlmaWNh
dGlvbiYgbm90aWZpY2F0aW9uKQogICAgIG1fbm90aWZpY2F0aW9uTWFwLnNldCgmbm90aWZpY2F0
aW9uLCB3ZWJOb3RpZmljYXRpb24pOwogCiAgICAgW1ttX3dlYlZpZXcgX25vdGlmaWNhdGlvblBy
b3ZpZGVyXSBzaG93Tm90aWZpY2F0aW9uOndlYk5vdGlmaWNhdGlvbi5nZXQoKSBmcm9tV2ViVmll
dzptX3dlYlZpZXddOworICAgIGNhbGxiYWNrKCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3MDI2NjVl
NDRiZWUxYzZjNzExZjY3ZjE3MGM1YzZjMTk4NDRlODVhLi4yNzY4YmNmMzUwM2ZiODMwMjkwMjQx
MTNlMDE0YjhkYzgzZGVjYjdlIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjItMDUtMTAgIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2Ugc3VyZSBjYWxsaW5nIHNob3dOb3Rp
ZmljYXRpb24gd2lsbCBleHRlbmQgdGhlIHNlcnZpY2Ugd29ya2VyIGxpZmV0aW1lCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDAyNzMKKyAgICAgICAg
PHJkYXI6Ly85Mjk3ODQ4Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdE5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcDoK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3ROb3RpZmljYXRpb25Qcm92aWRlci5oOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHVzaEFQSS5tbToKKwogMjAy
Mi0wNS0xMCAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAg
W2dpdC13ZWJraXRdIEZhaWwgcXVpY2tseSBmb3IgaW52YWxpZCBidWd6aWxsYSBjcmVkZW50aWFs
cwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0Tm90aWZpY2F0aW9uUHJvdmlk
ZXIuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0Tm90aWZpY2F0aW9uUHJvdmlkZXIuY3Bw
CmluZGV4IDdmY2RkOWU4YTM2MGVjNDBhMDExZmE5Y2EwNjk3NGJlMGNhOTYzZDguLjU4MmY0Zjdm
NzhjNDczYTM0OGEyMzYwMWM0MDMzNzIyMDFmNDQwOWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdE5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcAorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3ROb3RpZmljYXRpb25Qcm92aWRlci5jcHAKQEAgLTEyMSw2ICsxMjEsOCBAQCBz
dGF0aWMgV0tOb3RpZmljYXRpb25NYW5hZ2VyUmVmIG5vdGlmaWNhdGlvbk1hbmFnZXJGb3JQYWdl
KFdLUGFnZVJlZiBwYWdlKQogCiB2b2lkIFRlc3ROb3RpZmljYXRpb25Qcm92aWRlcjo6c2hvd1dl
Yk5vdGlmaWNhdGlvbihXS1BhZ2VSZWYgcGFnZSwgV0tOb3RpZmljYXRpb25SZWYgbm90aWZpY2F0
aW9uKQogeworICAgIG1faGFzUmVjZWl2ZWROb3RpZmljYXRpb24gPSB0cnVlOworCiAgICAgYXV0
byBub3RpZmljYXRpb25NYW5hZ2VyID0gbm90aWZpY2F0aW9uTWFuYWdlckZvclBhZ2UocGFnZSk7
CiAgICAgdWludDY0X3QgaWRlbnRpZmllciA9IFdLTm90aWZpY2F0aW9uR2V0SUQobm90aWZpY2F0
aW9uKTsKICAgICBXS05vdGlmaWNhdGlvbk1hbmFnZXJQcm92aWRlckRpZFNob3dOb3RpZmljYXRp
b24obm90aWZpY2F0aW9uTWFuYWdlciwgaWRlbnRpZmllcik7CkBAIC0xMzcsNCArMTM5LDE0IEBA
IHZvaWQgVGVzdE5vdGlmaWNhdGlvblByb3ZpZGVyOjpzaW11bGF0ZU5vdGlmaWNhdGlvbkNsaWNr
KCkKICAgICB9KTsKIH0KIAorYm9vbCBUZXN0Tm90aWZpY2F0aW9uUHJvdmlkZXI6Omhhc1JlY2Vp
dmVkTm90aWZpY2F0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9oYXNSZWNlaXZlZE5vdGlm
aWNhdGlvbjsKK30KKwordm9pZCBUZXN0Tm90aWZpY2F0aW9uUHJvdmlkZXI6OnJlc2V0SGFzUmVj
ZWl2ZWROb3RpZmljYXRpb24oKQoreworICAgIG1faGFzUmVjZWl2ZWROb3RpZmljYXRpb24gPSBm
YWxzZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0Tm90aWZpY2F0aW9uUHJvdmlkZXIuaCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdE5vdGlmaWNhdGlvblByb3ZpZGVyLmgKaW5kZXggNmIwN2EyZTY3NzI1ZDU1
MWRhOWM1YjM2ZDBiMDZiM2IzZmI2ZGFlMS4uZGYwMmM4ZDY5NmMzNDljNjgwNjI5ZTFjNTNhZmVl
YzNiMWQ5MjI5MCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0Tm90aWZpY2F0
aW9uUHJvdmlkZXIuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3ROb3RpZmljYXRpb25Q
cm92aWRlci5oCkBAIC00NywxMSArNDcsMTUgQEAgcHVibGljOgogICAgIHZvaWQgc2hvd1dlYk5v
dGlmaWNhdGlvbihXS1BhZ2VSZWYsIFdLTm90aWZpY2F0aW9uUmVmKTsKICAgICB2b2lkIHNpbXVs
YXRlTm90aWZpY2F0aW9uQ2xpY2soKTsKIAorICAgIGJvb2wgaGFzUmVjZWl2ZWROb3RpZmljYXRp
b24oKSBjb25zdDsKKyAgICB2b2lkIHJlc2V0SGFzUmVjZWl2ZWROb3RpZmljYXRpb24oKTsKKwog
cHJpdmF0ZToKICAgICBWZWN0b3I8V0tOb3RpZmljYXRpb25NYW5hZ2VyUmVmPiBtX21hbmFnZXJz
OwogICAgIEhhc2hNYXA8U3RyaW5nLCBib29sPiBtX3Blcm1pc3Npb25zOwogICAgIFdLTm90aWZp
Y2F0aW9uUHJvdmlkZXJWMCBtX3Byb3ZpZGVyOwogCisgICAgYm9vbCBtX2hhc1JlY2VpdmVkTm90
aWZpY2F0aW9uIHsgZmFsc2UgfTsKICAgICBzdGQ6OnBhaXI8V0tOb3RpZmljYXRpb25NYW5hZ2Vy
UmVmLCB1aW50NjRfdD4gbV9wZW5kaW5nTm90aWZpY2F0aW9uOwogfTsKIApkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QdXNoQVBJLm1tIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9QdXNoQVBJLm1tCmluZGV4IGJmOTc0MTYy
ZDBhZDhiZTQyYjAwM2E0OTVmMmM4MDg3NGI3ZGY5MGUuLmRlZmNjODkwMjQ1ZmU0OTQ5Y2I2ZDgy
MWVjOGQ0N2NlYmZjOTY4NjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvUHVzaEFQSS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1B1c2hBUEkubW0KQEAgLTY3Nyw2ICs2NzcsOSBAQCBURVNUKFB1c2hBUEksIGZp
cmVOb3RpZmljYXRpb25DbGlja0V2ZW50KQogCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkb25lKTsKIAorICAgIHByb3ZpZGVyLnJlc2V0SGFzUmVjZWl2ZWROb3RpZmljYXRpb24oKTsK
KyAgICBhdXRvJiBwcm92aWRlclJlZiA9IHByb3ZpZGVyOworCiAgICAgZG9uZSA9IGZhbHNlOwog
ICAgIHB1c2hNZXNzYWdlUHJvY2Vzc2VkID0gZmFsc2U7CiAgICAgcHVzaE1lc3NhZ2VTdWNjZXNz
ZnVsID0gZmFsc2U7CkBAIC02ODQsNiArNjg3LDcgQEAgVEVTVChQdXNoQVBJLCBmaXJlTm90aWZp
Y2F0aW9uQ2xpY2tFdmVudCkKICAgICBleHBlY3RlZE1lc3NhZ2UgPSAiUmVjZWl2ZWQ6IFN3ZWV0
IFBvdGF0b2VzIl9zOwogCiAgICAgW1tjb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdIF9w
cm9jZXNzUHVzaE1lc3NhZ2U6bWVzc2FnZURpY3Rpb25hcnkoW21lc3NhZ2UgZGF0YVVzaW5nRW5j
b2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddLCBbc2VydmVyLnJlcXVlc3QoKSBVUkxdKSBjb21w
bGV0aW9uSGFuZGxlcjpeKGJvb2wgcmVzdWx0KSB7CisgICAgICAgIEVYUEVDVF9UUlVFKHByb3Zp
ZGVyUmVmLmhhc1JlY2VpdmVkTm90aWZpY2F0aW9uKCkpOwogICAgICAgICBwdXNoTWVzc2FnZVN1
Y2Nlc3NmdWwgPSByZXN1bHQ7CiAgICAgICAgIHB1c2hNZXNzYWdlUHJvY2Vzc2VkID0gdHJ1ZTsK
ICAgICB9XTsK
</data>
<flag name="review"
          id="488163"
          type_id="1"
          status="+"
          setter="cdumez"
    />
    <flag name="commit-queue"
          id="488263"
          type_id="3"
          status="-"
          setter="cdumez"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459401</attachid>
            <date>2022-05-15 23:16:41 -0700</date>
            <delta_ts>2022-05-15 23:21:53 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>0001-2022-05-10-Youenn-Fablet-youenn-apple.com.patch</filename>
            <type>text/plain</type>
            <size>43402</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">RnJvbSBlOTMwMzBlYjZhZmFlYmI1NjAwNmExYTgwODZlNTFkMGU5MjgyZjA2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBZb3Vlbm4gRmFibGV0IDx5b3Vlbm5AYXBwbGUuY29tPgpEYXRl
OiBTdW4sIDE1IE1heSAyMDIyIDIwOjUxOjA0ICswMjAwClN1YmplY3Q6IFtQQVRDSF0gMjAyMi0w
NS0xMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CgogICAgICAgTWFrZSBzdXJl
IGNhbGxpbmcgc2hvd05vdGlmaWNhdGlvbiB3aWxsIGV4dGVuZCB0aGUgc2VydmljZSB3b3JrZXIg
bGlmZXRpbWUKICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
NDAyNzMKICAgICAgIDxyZGFyOi8vOTI5Nzg0ODI+CgogICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCgogICAgICAgVXBkYXRlIE5vdGlmaWNhdGlvbkNsaWVudCBBUEkgc28gdGhhdCBz
aG93IGlzIHRha2luZyBhIGNvbXBsZXRpb24gaGFuZGxlci4KICAgICAgIE1ha2UgdXNlIG9mIHRo
aXMgY29tcGxldGlvbiBoYW5kbGVyIHRvIHJlc29sdmUgdGhlIHByb21pc2Ugd2hlbiB0aGUgc2hv
dyBub3RpZmljYXRpb24gc3RlcHMgYXJlIGRvbmUsIGFzIHBlciBzcGVjLgogICAgICAgUmVnaXN0
ZXIgcHVzaCBldmVudCB0byBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgd2hlbiB0aGUgZXZlbnQg
aGFuZGxlcnMgYXJlIGNhbGxlZC4KICAgICAgIFdoZW4gU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bjo6c2hvdyBpcyBjYWxsZWQgZHVyaW5nIG9uZSBvZiB0aGUgcHVzaCBldmVudCBoYW5kbGVycywK
ICAgICAgIGV4dGVuZCB0aGUgcHVzaCBldmVudCBsaWZldGltZSBieSBhZGRpbmcgdGhlIHNob3cg
bm90aWZpY2F0aW9uIHByb21pc2UgdG8gdGhlIHB1c2ggZXZlbnQuCgogICAgICAgQ292ZXJlZCBi
eSBBUEkgdGVzdC4KCiAgICAgICAqIE1vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24u
Y3BwOgogICAgICAgKiBNb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmg6CiAgICAg
ICAqIE1vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DbGllbnQuaDoKICAgICAgICog
ZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwOgogICAgICAgKiBkb20vU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5oOgogICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2Jh
bFNjb3BlLmNwcDoKICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZS5oOgogICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bi5jcHA6CiAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
Lmg6CiAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQu
Y3BwOgoKICAgICAgIE9uIFdlYlByb2Nlc3Mgc2lkZSwgaW1wbGVtZW50IHRoZSBuZXcgTm9maWNh
dGlvbkNsaWVudDo6c2hvdyBBUEkgdGhhdCB0YWtlcyBhIGNhbGxiYWNrLgogICAgICAgRGVsYXkg
Y2FsbGluZyB0aGlzIGNhbGxiYWNrIHVudGlsIFVJUHJvY2VzcyB0ZWxscyB1cyBzbyB0aHJvdWdo
IGFzeW5jIElQQy4KICAgICAgIE9uIFVJUHJvY2VzcyBzaWRlLCB0YWtlIGEgY2FsbGJhY2sgYW5k
IGNhbGwgaXQgd2hlbiB0aGUgc2hvdyBub3RpZmljYXRpb24gc3RlcHMgYXJlIGRvbmUuCgogICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5h
Z2VyLmNwcDoKICAgICAgICogTmV0d29ya1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90
aWZpY2F0aW9uTWFuYWdlci5oOgogICAgICAgKiBTaGFyZWQvTm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaDoKICAgICAgICogU2hhcmVkL05vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLm1lc3NhZ2VzLmluOgogICAgICAg
KiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9TZXJ2aWNlV29ya2VyTm90aWZpY2F0aW9uSGFuZGxl
ci5jcHA6CiAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1NlcnZpY2VXb3JrZXJOb3Rp
ZmljYXRpb25IYW5kbGVyLmg6CiAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5v
dGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5jcHA6CiAgICAgICAqIFVJUHJvY2Vzcy9O
b3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5oOgogICAg
ICAgKiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94
eVByb2Nlc3Nvci5jcHA6CiAgICAgICAqIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyLmNwcDoKICAgICAgICogV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dl
Yk5vdGlmaWNhdGlvbk1hbmFnZXIuaDoKICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJOb3RpZmljYXRpb25DbGllbnQuY3BwOgogICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oOgotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyAgICAgICAgICAgICAgICAgICAgICB8IDI3ICsrKysrKysrKysrKysrKysrKwogLi4uL01v
ZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwICAgIHwgMTYgKysrKysrKy0tLS0K
IC4uLi9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmggICAgICB8ICAzICstCiAu
Li4vbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DbGllbnQuaCAgICAgICAgfCAgMiArLQogU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwIHwgMTYgKysrKysrKysr
KysKIFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggICB8ICA4ICsr
KysrKwogLi4uL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcCAgICAgIHwgIDkg
KysrKysrCiAuLi4vc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaCAgICAgICAgfCAg
NSArKysrCiAuLi4vc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcCAgICAgfCAy
OCArKysrKysrKysrKy0tLS0tLS0tCiAuLi4vc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uLmggICAgICAgfCAgMiArLQogLi4uL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhy
ZWFkLmNwcCAgIHwgIDIgKy0KIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICB8IDI2ICsrKysrKysrKysrKysrKysrCiAuLi4vTmV0d29ya05vdGlmaWNhdGlvbk1h
bmFnZXIuY3BwICAgICAgICAgICAgfCAgNSArKy0tCiAuLi4vTmV0d29ya05vdGlmaWNhdGlvbk1h
bmFnZXIuaCAgICAgICAgICAgICAgfCAgMiArLQogLi4uL05vdGlmaWNhdGlvbk1hbmFnZXJNZXNz
YWdlSGFuZGxlci5oICAgICAgIHwgIDIgKy0KIC4uLmlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFu
ZGxlci5tZXNzYWdlcy5pbiB8ICAyICstCiAuLi4vU2VydmljZVdvcmtlck5vdGlmaWNhdGlvbkhh
bmRsZXIuY3BwICAgICAgfCAgNSArKystCiAuLi4vU2VydmljZVdvcmtlck5vdGlmaWNhdGlvbkhh
bmRsZXIuaCAgICAgICAgfCAgMiArLQogLi4uL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdl
SGFuZGxlci5jcHAgIHwgIDUgKystLQogLi4uL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdl
SGFuZGxlci5oICAgIHwgIDIgKy0KIC4uLi9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1h
bmFnZXIuY3BwICB8IDIzICsrKysrKysrKysrLS0tLQogLi4uL05vdGlmaWNhdGlvbnMvV2ViTm90
aWZpY2F0aW9uTWFuYWdlci5oICAgIHwgIDQgKystCiAuLi4vV2ViQ29yZVN1cHBvcnQvV2ViTm90
aWZpY2F0aW9uQ2xpZW50LmNwcCAgfCAxNCArKysrKysrKy0tCiAuLi4vV2ViQ29yZVN1cHBvcnQv
V2ViTm90aWZpY2F0aW9uQ2xpZW50LmggICAgfCAxNCArKysrKy0tLS0tCiBTb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cgICAgICAgICAgICAgfCAxMSArKysrKysrKwogLi4uL1dlYkNv
cmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oICAgIHwgMTQgKysrKystLS0tLQogLi4u
L1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbSAgIHwgIDUgKysrLQogVG9v
bHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIgKysrKysrKysK
IC4uLi9UZXN0Tm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwICAgICAgICAgICAgICB8ICAyICsrCiAu
Li4vVGVzdFdlYktpdEFQSS9UZXN0Tm90aWZpY2F0aW9uUHJvdmlkZXIuaCAgfCAgNCArKysKIC4u
Li9UZXN0cy9XZWJLaXRDb2NvYS9QdXNoQVBJLm1tICAgICAgICAgICAgICB8ICA0ICsrKwogMzEg
ZmlsZXMgY2hhbmdlZCwgMjIxIGluc2VydGlvbnMoKyksIDU1IGRlbGV0aW9ucygtKQoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCAwNzliNmZiNWRhZGUuLjlkY2U4NThhM2ViOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDMwIEBACisyMDIyLTA1LTE1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKwor
ICAgICAgICBNYWtlIHN1cmUgY2FsbGluZyBzaG93Tm90aWZpY2F0aW9uIHdpbGwgZXh0ZW5kIHRo
ZSBzZXJ2aWNlIHdvcmtlciBsaWZldGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjQwMjczCisgICAgICAgIDxyZGFyOi8vOTI5Nzg0ODI+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgVXBkYXRlIE5vdGlmaWNh
dGlvbkNsaWVudCBBUEkgc28gdGhhdCBzaG93IGlzIHRha2luZyBhIGNvbXBsZXRpb24gaGFuZGxl
ci4KKyAgICAgICAgTWFrZSB1c2Ugb2YgdGhpcyBjb21wbGV0aW9uIGhhbmRsZXIgdG8gcmVzb2x2
ZSB0aGUgcHJvbWlzZSB3aGVuIHRoZSBzaG93IG5vdGlmaWNhdGlvbiBzdGVwcyBhcmUgZG9uZSwg
YXMgcGVyIHNwZWMuCisgICAgICAgIFJlZ2lzdGVyIHB1c2ggZXZlbnQgdG8gU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlIHdoZW4gdGhlIGV2ZW50IGhhbmRsZXJzIGFyZSBjYWxsZWQuCisgICAgICAg
IFdoZW4gU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6c2hvdyBpcyBjYWxsZWQgZHVyaW5nIG9u
ZSBvZiB0aGUgcHVzaCBldmVudCBoYW5kbGVycywKKyAgICAgICAgZXh0ZW5kIHRoZSBwdXNoIGV2
ZW50IGxpZmV0aW1lIGJ5IGFkZGluZyB0aGUgc2hvdyBub3RpZmljYXRpb24gcHJvbWlzZSB0byB0
aGUgcHVzaCBldmVudC4KKworICAgICAgICBDb3ZlcmVkIGJ5IEFQSSB0ZXN0LgorCisgICAgICAg
ICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHA6CisgICAgICAgICogTW9k
dWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DbGllbnQuaDoKKyAgICAgICAgKiBkb20vU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5jcHA6CisgICAgICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
aDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmNw
cDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmg6
CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uY3Bw
OgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmg6
CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5j
cHA6CisKIDIwMjItMDUtMTQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAg
ICAgICAgIEF1ZGlvIHBsYXliYWNrIHJhdGUgc3BlZCB1cCBmb3IgZmV3IHNlY29uZHMgd2hlbiB1
c2luZyBjcmVhdGVNZWRpYUVsZW1lbnRTb3VyY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKaW5kZXggM2RhN2RmOGRlNTkz
Li5kODY0ZmNiZWJiNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCkBAIC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSAi
V2luZG93Rm9jdXNBbGxvd2VkSW5kaWNhdG9yLmgiCiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25I
YW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRlIDx3
dGYvU2NvcGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xNDMsMTcgKzE0NCwyMyBA
QCB2b2lkIE5vdGlmaWNhdGlvbjo6bWFya0FzU2hvd24oKQogICAgIG1fc3RhdGUgPSBTaG93aW5n
OwogfQogCi12b2lkIE5vdGlmaWNhdGlvbjo6c2hvdygpCit2b2lkIE5vdGlmaWNhdGlvbjo6c2hv
dyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spCiB7CisgICAgQ29tcGxldGlv
bkhhbmRsZXJDYWxsaW5nU2NvcGUgc2NvcGUgeyBXVEZNb3ZlKGNhbGxiYWNrKSB9OworCiAgICAg
Ly8gcHJldmVudCBkb3VibGUtc2hvd2luZwogICAgIGlmIChtX3N0YXRlICE9IElkbGUpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIGF1dG8qIGNsaWVudCA9IGNsaWVudEZyb21Db250ZXh0KCk7Cisg
ICAgYXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBpZiAoIWNv
bnRleHQpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIGNsaWVudCA9IGNvbnRleHQtPm5v
dGlmaWNhdGlvbkNsaWVudCgpOwogICAgIGlmICghY2xpZW50KQogICAgICAgICByZXR1cm47CiAK
LSAgICBpZiAoY2xpZW50LT5jaGVja1Blcm1pc3Npb24oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
KSAhPSBQZXJtaXNzaW9uOjpHcmFudGVkKSB7CisgICAgaWYgKGNsaWVudC0+Y2hlY2tQZXJtaXNz
aW9uKGNvbnRleHQpICE9IFBlcm1pc3Npb246OkdyYW50ZWQpIHsKICAgICAgICAgc3dpdGNoICht
X25vdGlmaWNhdGlvblNvdXJjZSkgewogICAgICAgICBjYXNlIE5vdGlmaWNhdGlvblNvdXJjZTo6
RG9jdW1lbnQ6CiAgICAgICAgICAgICBkaXNwYXRjaEVycm9yRXZlbnQoKTsKQEAgLTE2MywxMSAr
MTcwLDEwIEBAIHZvaWQgTm90aWZpY2F0aW9uOjpzaG93KCkKICAgICAgICAgICAgIC8vIElmIHBl
cm1pc3Npb24gaGFzIHNpbmNlIGJlZW4gcmV2b2tlZCwgdGhlbiBzaWxlbnRseSBmYWlsaW5nIGhl
cmUgaXMgZXhwZWN0ZWQgYmVoYXZpb3IuCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQot
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoY2xpZW50LT5zaG93KCp0aGlzKSkK
KyAgICBpZiAoY2xpZW50LT5zaG93KCp0aGlzLCBzY29wZS5yZWxlYXNlKCkpKQogICAgICAgICBt
X3N0YXRlID0gU2hvd2luZzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9u
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oCmluZGV4IDU5MGVjMjk4ZDFmOS4uZDI0OWNhOTIy
ZmVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05v
dGlmaWNhdGlvbi5oCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVy
bWlzc2lvbi5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmgi
CiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisjaW5jbHVkZSA8d3RmL0NvbXBs
ZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgogI2luY2x1ZGUgPHd0Zi9VVUlE
Lmg+CiAjaW5jbHVkZSAiV3JpdGluZ01vZGUuaCIKQEAgLTc0LDcgKzc1LDcgQEAgcHVibGljOgog
CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+Tm90aWZpY2F0aW9uKCk7CiAKLSAgICB2b2lk
IHNob3coKTsKKyAgICB2b2lkIHNob3coQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmID0gW10g
eyB9KTsKICAgICB2b2lkIGNsb3NlKCk7CiAKICAgICBjb25zdCBTdHJpbmcmIHRpdGxlKCkgY29u
c3QgeyByZXR1cm4gbV90aXRsZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oCmluZGV4IGE4YjMwYjJmMzdh
Yy4uMzQ0MTA1YzRkMjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1
YmxpYzoKICAgICB1c2luZyBQZXJtaXNzaW9uSGFuZGxlciA9IENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoUGVybWlzc2lvbik+OwogCiAgICAgLy8gUmVxdWVzdHMgdGhhdCBhIG5vdGlmaWNhdGlvbiBi
ZSBzaG93bi4KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdyhOb3RpZmljYXRpb24mKSA9IDA7CisgICAg
dmlydHVhbCBib29sIHNob3coTm90aWZpY2F0aW9uJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKSA9IDA7CiAKICAgICAvLyBSZXF1ZXN0cyB0aGF0IGEgbm90aWZpY2F0aW9uIHRoYXQgaGFz
IGFscmVhZHkgYmVlbiBzaG93biBiZSBjYW5jZWxlZC4KICAgICB2aXJ0dWFsIHZvaWQgY2FuY2Vs
KE5vdGlmaWNhdGlvbiYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0LmNwcAppbmRleCA1NWM3OTY0N2IwYzkuLmZlNWY1ZGQzM2U2OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcApAQCAtMTc2LDYgKzE3
NiwxMCBAQCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojp+U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
CiAgICAgbV9pblNjcmlwdEV4ZWN1dGlvbkNvbnRleHREZXN0cnVjdG9yID0gdHJ1ZTsKICNlbmRp
ZiAvLyBBU1NFUlRfRU5BQkxFRAogCisgICAgYXV0byBjYWxsYmFja3MgPSBXVEZNb3ZlKG1fbm90
aWZpY2F0aW9uQ2FsbGJhY2tzKTsKKyAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogY2FsbGJhY2tz
LnZhbHVlcygpKQorICAgICAgICBjYWxsYmFjaygpOworCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09S
S0VSKQogICAgIHNldEFjdGl2ZVNlcnZpY2VXb3JrZXIobnVsbHB0cik7CiAjZW5kaWYKQEAgLTc2
Nyw0ICs3NzEsMTYgQEAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6SGFzUmVzb3VyY2VBY2Nlc3Mg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6Y2FuQWNjZXNzUmVzb3UKICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogfQogCitTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpOb3RpZmljYXRp
b25DYWxsYmFja0lkZW50aWZpZXIgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRkTm90aWZpY2F0
aW9uQ2FsbGJhY2soQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQoreworICAg
IGF1dG8gaWRlbnRpZmllciA9IE5vdGlmaWNhdGlvbkNhbGxiYWNrSWRlbnRpZmllcjo6Z2VuZXJh
dGVUaHJlYWRTYWZlKCk7CisgICAgbV9ub3RpZmljYXRpb25DYWxsYmFja3MuYWRkKGlkZW50aWZp
ZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICByZXR1cm4gaWRlbnRpZmllcjsKK30KKworQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojp0YWtlTm90aWZp
Y2F0aW9uQ2FsbGJhY2soTm90aWZpY2F0aW9uQ2FsbGJhY2tJZGVudGlmaWVyIGlkZW50aWZpZXIp
Cit7CisgICAgcmV0dXJuIG1fbm90aWZpY2F0aW9uQ2FsbGJhY2tzLnRha2UoaWRlbnRpZmllcik7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5oCmluZGV4IDU3MWFmZDJkNzI5Ni4uMDljYjAyMjI3NWUwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKQEAgLTMxNCw2ICsz
MTQsMTIgQEAgcHVibGljOgogICAgIGVudW0gY2xhc3MgSGFzUmVzb3VyY2VBY2Nlc3MgOiB1aW50
OF90IHsgTm8sIFllcywgRGVmYXVsdEZvclRoaXJkUGFydHkgfTsKICAgICBXRUJDT1JFX0VYUE9S
VCBIYXNSZXNvdXJjZUFjY2VzcyBjYW5BY2Nlc3NSZXNvdXJjZShSZXNvdXJjZVR5cGUpIGNvbnN0
OwogCisgICAgZW51bSBOb3RpZmljYXRpb25DYWxsYmFja0lkZW50aWZpZXJUeXBlIHsgfTsKKyAg
ICB1c2luZyBOb3RpZmljYXRpb25DYWxsYmFja0lkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVy
PE5vdGlmaWNhdGlvbkNhbGxiYWNrSWRlbnRpZmllclR5cGU+OworCisgICAgV0VCQ09SRV9FWFBP
UlQgTm90aWZpY2F0aW9uQ2FsbGJhY2tJZGVudGlmaWVyIGFkZE5vdGlmaWNhdGlvbkNhbGxiYWNr
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiB0YWtlTm90aWZpY2F0aW9uQ2FsbGJhY2soTm90aWZpY2F0aW9u
Q2FsbGJhY2tJZGVudGlmaWVyKTsKKwogcHJvdGVjdGVkOgogICAgIGNsYXNzIEFkZENvbnNvbGVN
ZXNzYWdlVGFzayA6IHB1YmxpYyBUYXNrIHsKICAgICBwdWJsaWM6CkBAIC0zOTYsNiArNDAyLDgg
QEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9oYXNMb2dnZWRBdXRoZW50aWNhdGVkRW5jcnlwdGlv
bldhcm5pbmcgeyBmYWxzZSB9OwogICAgIFN0b3JhZ2VCbG9ja2luZ1BvbGljeSBtX3N0b3JhZ2VC
bG9ja2luZ1BvbGljeSB7IFN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QWxsb3dBbGwgfTsKKworICAg
IEhhc2hNYXA8Tm90aWZpY2F0aW9uQ2FsbGJhY2tJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+PiBtX25vdGlmaWNhdGlvbkNhbGxiYWNrczsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHAKaW5kZXggMDJiMjM4MGVlMThlLi5iZDk0YWE2
MWJiZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVk
ZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5o
IgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiUHVzaEV2ZW50Lmgi
CiAjaW5jbHVkZSAiU1dDb250ZXh0TWFuYWdlci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXIu
aCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyQ2xpZW50LmgiCkBAIC03OCw2ICs3OSwxNCBAQCBT
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU6On5TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoKQogICAg
IGNhbGxPbk1haW5UaHJlYWQoW25vdGlmaWNhdGlvbkNsaWVudCA9IFdURk1vdmUobV9ub3RpZmlj
YXRpb25DbGllbnQpXSB7IH0pOwogfQogCit2b2lkIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTo6
ZGlzcGF0Y2hQdXNoRXZlbnQoUHVzaEV2ZW50JiBwdXNoRXZlbnQpCit7CisgICAgQVNTRVJUKCFt
X3B1c2hFdmVudCk7CisgICAgbV9wdXNoRXZlbnQgPSAmcHVzaEV2ZW50OworICAgIGRpc3BhdGNo
RXZlbnQocHVzaEV2ZW50KTsKKyAgICBtX3B1c2hFdmVudCA9IG51bGxwdHI7Cit9CisKIHZvaWQg
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlOjpub3RpZnlTZXJ2aWNlV29ya2VyUGFnZU9mQ3JlYXRp
b25JZk5lY2Vzc2FyeSgpCiB7CiAgICAgYXV0byBzZXJ2aWNlV29ya2VyUGFnZSA9IHRoaXMtPnNl
cnZpY2VXb3JrZXJQYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgKaW5kZXggYWY1ZGQ4MzdlYTYwLi5j
NDk0ZjhkZGE1MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgKQEAgLTQwLDYgKzQwLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogY2xhc3MgRGVmZXJyZWRQcm9taXNlOwogY2xhc3MgRXh0ZW5kYWJsZUV2
ZW50OwogY2xhc3MgUGFnZTsKK2NsYXNzIFB1c2hFdmVudDsKIGNsYXNzIFNlcnZpY2VXb3JrZXJD
bGllbnQ7CiBjbGFzcyBTZXJ2aWNlV29ya2VyQ2xpZW50czsKIGNsYXNzIFNlcnZpY2VXb3JrZXJU
aHJlYWQ7CkBAIC04MSw2ICs4Miw5IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIFBh
Z2UqIHNlcnZpY2VXb3JrZXJQYWdlKCk7CiAKKyAgICB2b2lkIGRpc3BhdGNoUHVzaEV2ZW50KFB1
c2hFdmVudCYpOworICAgIFB1c2hFdmVudCogcHVzaEV2ZW50KCkgeyByZXR1cm4gbV9wdXNoRXZl
bnQuZ2V0KCk7IH0KKwogICAgIGJvb2wgaGFzUGVuZGluZ1NpbGVudFB1c2hFdmVudCgpIGNvbnN0
IHsgcmV0dXJuIG1faGFzUGVuZGluZ1NpbGVudFB1c2hFdmVudDsgfQogICAgIHZvaWQgc2V0SGFz
UGVuZGluZ1NpbGVudFB1c2hFdmVudChib29sIHZhbHVlKSB7IG1faGFzUGVuZGluZ1NpbGVudFB1
c2hFdmVudCA9IHZhbHVlOyB9CiAKQEAgLTExMiw2ICsxMTYsNyBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV9oYXNQZW5kaW5nU2lsZW50UHVzaEV2ZW50IHsgZmFsc2UgfTsKICAgICBib29sIG1faXNQ
cm9jZXNzaW5nVXNlckdlc3R1cmUgeyBmYWxzZSB9OwogICAgIFRpbWVyIG1fdXNlckdlc3R1cmVU
aW1lcjsKKyAgICBSZWZQdHI8UHVzaEV2ZW50PiBtX3B1c2hFdmVudDsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcAppbmRleCBmNWM4MTEyMjVhMTcu
LmQyNDVlMmY4Nzc1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcApAQCAtMzIsMTIgKzMyLDE0
IEBACiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudExvb3AuaCIKICNpbmNsdWRl
ICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlLmgiCiAjaW5jbHVkZSAiSlNE
T01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJKU05vdGlmaWNhdGlvbi5oIgogI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIuaCIKICNp
bmNsdWRlICJOb3RpZmljYXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJOb3RpZmljYXRpb25QZXJt
aXNzaW9uLmgiCisjaW5jbHVkZSAiUHVzaEV2ZW50LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtl
ci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDb250YWluZXIuaCIKICNpbmNsdWRlICJTZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUuaCIKQEAgLTI3NCw0MCArMjc2LDQ0IEBAIE5hdmlnYXRpb25Q
cmVsb2FkTWFuYWdlciYgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6bmF2aWdhdGlvblByZWxv
YWQoKQogfQogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTl9FVkVOVCkKLXZvaWQgU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbjo6c2hvd05vdGlmaWNhdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0LCBTdHJpbmcmJiB0aXRsZSwgTm90aWZpY2F0aW9uT3B0aW9ucyYmIG9wdGlvbnMs
IERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCit2b2lkIFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb246OnNob3dOb3RpZmljYXRpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCwgU3RyaW5nJiYgdGl0bGUsIE5vdGlmaWNhdGlvbk9wdGlvbnMmJiBvcHRpb25zLCBSZWY8
RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiB7CiAgICAgaWYgKCFtX2FjdGl2ZVdvcmtlcikg
ewotICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBUeXBlRXJyb3IsICJSZWdpc3Ry
YXRpb24gZG9lcyBub3QgaGF2ZSBhbiBhY3RpdmUgd29ya2VyIl9zIH0pOworICAgICAgICBwcm9t
aXNlLT5yZWplY3QoRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiUmVnaXN0cmF0aW9uIGRvZXMgbm90
IGhhdmUgYW4gYWN0aXZlIHdvcmtlciJfcyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAog
ICAgIGF1dG8qIGNsaWVudCA9IGNvbnRleHQubm90aWZpY2F0aW9uQ2xpZW50KCk7CiAgICAgaWYg
KCFjbGllbnQpIHsKLSAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgVHlwZUVycm9y
LCAiUmVnaXN0cmF0aW9uIG5vdCBhY3RpdmUiX3MgfSk7CisgICAgICAgIHByb21pc2UtPnJlamVj
dChFeGNlcHRpb24geyBUeXBlRXJyb3IsICJSZWdpc3RyYXRpb24gbm90IGFjdGl2ZSJfcyB9KTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChjbGllbnQtPmNoZWNrUGVybWlzc2lv
bigmY29udGV4dCkgIT0gTm90aWZpY2F0aW9uUGVybWlzc2lvbjo6R3JhbnRlZCkgewotICAgICAg
ICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBUeXBlRXJyb3IsICJSZWdpc3RyYXRpb24gZG9l
cyBub3QgaGF2ZSBwZXJtaXNzaW9uIHRvIHNob3cgbm90aWZpY2F0aW9ucyJfcyB9KTsKKyAgICAg
ICAgcHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlJlZ2lzdHJhdGlvbiBk
b2VzIG5vdCBoYXZlIHBlcm1pc3Npb24gdG8gc2hvdyBub3RpZmljYXRpb25zIl9zIH0pOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKGNvbnRleHQuaXNTZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUoKSkKICAgICAgICAgZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3BlPihj
b250ZXh0KS5zZXRIYXNQZW5kaW5nU2lsZW50UHVzaEV2ZW50KGZhbHNlKTsKIAotICAgIC8vIFRo
ZSBOb3RpZmljYXRpb24gaXMga2VwdCBhbGl2ZSBieSB2aXJ0dWUgb2YgYmVpbmcgc2hvdygpJ24g
c29vbi4KLSAgICAvLyBGSVhNRTogV2hlbiBpbXBsZW1lbnRpbmcgZ2V0Tm90aWZpY2F0aW9ucygp
LCBzdG9yZSB0aGlzIE5vdGlmaWNhdGlvbiBpbiB0aGUgcmVnaXN0cmF0aW9uJ3Mgbm90aWZpY2F0
aW9uIGxpc3QuCiAgICAgYXV0byBub3RpZmljYXRpb25SZXN1bHQgPSBOb3RpZmljYXRpb246OmNy
ZWF0ZUZvclNlcnZpY2VXb3JrZXIoY29udGV4dCwgV1RGTW92ZSh0aXRsZSksIFdURk1vdmUob3B0
aW9ucyksIG1fcmVnaXN0cmF0aW9uRGF0YS5zY29wZVVSTCk7CiAgICAgaWYgKG5vdGlmaWNhdGlv
blJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAgICAgICBwcm9taXNlLnJlamVjdChub3RpZmlj
YXRpb25SZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKKyAgICAgICAgcHJvbWlzZS0+cmVqZWN0
KG5vdGlmaWNhdGlvblJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgYXV0byBub3RpZmljYXRpb24gPSBub3RpZmljYXRpb25SZXN1bHQucmVs
ZWFzZVJldHVyblZhbHVlKCk7Ci0gICAgbm90aWZpY2F0aW9uLT5zaG93U29vbigpOworICAgIGlm
IChhdXRvKiBzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgPSBkeW5hbWljRG93bmNhc3Q8U2Vydmlj
ZVdvcmtlckdsb2JhbFNjb3BlPihjb250ZXh0KSkgeworICAgICAgICBpZiAoYXV0byogcHVzaEV2
ZW50ID0gc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLT5wdXNoRXZlbnQoKSkgeworICAgICAgICAg
ICAgYXV0byYgZ2xvYmFsT2JqZWN0ID0gKkpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4o
cHJvbWlzZS0+Z2xvYmFsT2JqZWN0KCkpOworICAgICAgICAgICAgYXV0byYganNQcm9taXNlID0g
KkpTQzo6anNDYXN0PEpTQzo6SlNQcm9taXNlKj4ocHJvbWlzZS0+cHJvbWlzZSgpKTsKKyAgICAg
ICAgICAgIHB1c2hFdmVudC0+d2FpdFVudGlsKERPTVByb21pc2U6OmNyZWF0ZShnbG9iYWxPYmpl
Y3QsIGpzUHJvbWlzZSkpOworICAgICAgICB9CisgICAgfQogCi0gICAgY29udGV4dC5ldmVudExv
b3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6RE9NTWFuaXB1bGF0aW9uLCBbcHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSldKCkgbXV0YWJsZSB7Ci0gICAgICAgIHByb21pc2UucmVzb2x2ZSgpOwor
ICAgIGF1dG8gbm90aWZpY2F0aW9uID0gbm90aWZpY2F0aW9uUmVzdWx0LnJlbGVhc2VSZXR1cm5W
YWx1ZSgpOworICAgIG5vdGlmaWNhdGlvbi0+c2hvdyhbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlz
ZSldKCkgbXV0YWJsZSB7CisgICAgICAgIHByb21pc2UtPnJlc29sdmUoKTsKICAgICB9KTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uLmgKaW5kZXggNjlmYjVlM2E3MGU1Li41YTY4NWY0ZTFhMmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb24uaApAQCAtOTksNyArOTksNyBAQCBwdWJsaWM6CiAgICAgICAgIFN0
cmluZyB0YWc7CiAgICAgfTsKIAotICAgIHZvaWQgc2hvd05vdGlmaWNhdGlvbihTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiwgU3RyaW5nJiYgdGl0bGUsIE5vdGlmaWNhdGlvbk9wdGlvbnMmJiwgRE9N
UHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworICAgIHZvaWQgc2hvd05vdGlmaWNhdGlvbihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiwgU3RyaW5nJiYgdGl0bGUsIE5vdGlmaWNhdGlvbk9wdGlvbnMm
JiwgUmVmPERlZmVycmVkUHJvbWlzZT4mJik7CiAgICAgdm9pZCBnZXROb3RpZmljYXRpb25zKGNv
bnN0IEdldE5vdGlmaWNhdGlvbk9wdGlvbnMmIGZpbHRlciwgRE9NUHJvbWlzZURlZmVycmVkPElE
TFNlcXVlbmNlPElETEludGVyZmFjZTxOb3RpZmljYXRpb24+Pj4pOwogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3Jr
ZXJUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vy
dmljZVdvcmtlclRocmVhZC5jcHAKaW5kZXggM2UzZDQ2YjczNDdhLi41OTM2ZmE1NDk2NTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VX
b3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCkBAIC0yMzEsNyArMjMxLDcgQEAgdm9pZCBTZXJ2
aWNlV29ya2VyVGhyZWFkOjpxdWV1ZVRhc2tUb0ZpcmVQdXNoRXZlbnQoc3RkOjpvcHRpb25hbDxW
ZWN0b3I8dWludDhfdD4KICAgICAgICAgc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLT5zZXRIYXNQ
ZW5kaW5nU2lsZW50UHVzaEV2ZW50KHRydWUpOwogCiAgICAgICAgIGF1dG8gcHVzaEV2ZW50ID0g
UHVzaEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnB1c2hFdmVudCwgeyB9LCBXVEZNb3ZlKGRh
dGEpLCBFeHRlbmRhYmxlRXZlbnQ6OklzVHJ1c3RlZDo6WWVzKTsKLSAgICAgICAgc2VydmljZVdv
cmtlckdsb2JhbFNjb3BlLT5kaXNwYXRjaEV2ZW50KHB1c2hFdmVudCk7CisgICAgICAgIHNlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZS0+ZGlzcGF0Y2hQdXNoRXZlbnQocHVzaEV2ZW50KTsKIAogICAg
ICAgICBwdXNoRXZlbnQtPndoZW5BbGxFeHRlbmRMaWZldGltZVByb21pc2VzQXJlU2V0dGxlZChb
c2VydmljZVdvcmtlckdsb2JhbFNjb3BlLCBldmVudENyZWF0aW9uVGltZSA9IHB1c2hFdmVudC0+
dGltZVN0YW1wKCksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGF1dG8mJiBleHRlbmRM
aWZldGltZVByb21pc2VzKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGJvb2wgaGFzUmVqZWN0ZWRB
bnlQcm9taXNlID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc3YzVmZTI3OTJkNS4uMzJlOTllOGUxNDYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIyLTA1LTE1ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHN1cmUgY2FsbGluZyBzaG93Tm90aWZp
Y2F0aW9uIHdpbGwgZXh0ZW5kIHRoZSBzZXJ2aWNlIHdvcmtlciBsaWZldGltZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQwMjczCisgICAgICAgIDxy
ZGFyOi8vOTI5Nzg0ODI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAg
ICAgICAgT24gV2ViUHJvY2VzcyBzaWRlLCBpbXBsZW1lbnQgdGhlIG5ldyBOb2ZpY2F0aW9uQ2xp
ZW50OjpzaG93IEFQSSB0aGF0IHRha2VzIGEgY2FsbGJhY2suCisgICAgICAgIERlbGF5IGNhbGxp
bmcgdGhpcyBjYWxsYmFjayB1bnRpbCBVSVByb2Nlc3MgdGVsbHMgdXMgc28gdGhyb3VnaCBhc3lu
YyBJUEMuCisgICAgICAgIE9uIFVJUHJvY2VzcyBzaWRlLCB0YWtlIGEgY2FsbGJhY2sgYW5kIGNh
bGwgaXQgd2hlbiB0aGUgc2hvdyBub3RpZmljYXRpb24gc3RlcHMgYXJlIGRvbmUuCisKKyAgICAg
ICAgKiBOZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5h
Z2VyLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdvcmtO
b3RpZmljYXRpb25NYW5hZ2VyLmg6CisgICAgICAgICogU2hhcmVkL05vdGlmaWNhdGlvbnMvTm90
aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmg6CisgICAgICAgICogU2hhcmVkL05vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1NlcnZpY2VXb3JrZXJOb3RpZmljYXRp
b25IYW5kbGVyLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9TZXJ2aWNl
V29ya2VyTm90aWZpY2F0aW9uSGFuZGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5jcHA6CisgICAgICAg
ICogVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VI
YW5kbGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVvRnJh
bWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3IuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvTm90
aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oOgor
CiAyMDIyLTA1LTEzICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAg
ICAgICAgIEFwcGxlUGF5TG9nb1N5c3RlbUltYWdlIG5lZWRsZXNzbHkgbG9hZHMgUGFzc0tpdCBp
biBXZWJLaXQgY2hpbGQgcHJvY2Vzc2VzIG9uIGlPUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3Jr
Tm90aWZpY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggNzczNGQ1OWMxZGIxLi5hNTE5MTU3ZDU2Y2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9O
ZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmNwcApAQCAt
OTAsMTAgKzkwLDkgQEAgdm9pZCBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcjo6Z2V0UGVuZGlu
Z1B1c2hNZXNzYWdlcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGMKICAgICBzZW5kTWVzc2FnZVdp
dGhSZXBseTxXZWJQdXNoRDo6TWVzc2FnZVR5cGU6OkdldFBlbmRpbmdQdXNoTWVzc2FnZXM+KFdU
Rk1vdmUocmVwbHlIYW5kbGVyKSk7CiB9CiAKLXZvaWQgTmV0d29ya05vdGlmaWNhdGlvbk1hbmFn
ZXI6OnNob3dOb3RpZmljYXRpb24oSVBDOjpDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6Tm90
aWZpY2F0aW9uRGF0YSYpCit2b2lkIE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyOjpzaG93Tm90
aWZpY2F0aW9uKElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRh
dGEmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spCiB7Ci0gICAgaWYgKCFt
X2Nvbm5lY3Rpb24pCi0gICAgICAgIHJldHVybjsKKyAgICBjYWxsYmFjaygpOwogCiAvLyAgICAg
RklYTUU6IFdoaWxlIHdlIGRvbid0IG5vcm1hbGx5IGxhbmQgY29tbWVudGVkLW91dCBjb2RlIGlu
IHRoZSB0cmVlLAogLy8gICAgIHRoaXMgaXMgYSBuaWNlIGJvb2ttYXJrIGZvciBhIGRldmVsb3Bt
ZW50IG1pbGVzdG9uZTsgUm91bmR0cmlwIGNvbW11bmljYXRpb24gd2l0aCB3ZWJwdXNoZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdv
cmtOb3RpZmljYXRpb25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05v
dGlmaWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuaAppbmRleCA0ZmZlMDJhMjk5
OTIuLmE4MDMzZjY4NDA1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25N
YW5hZ2VyLmgKQEAgLTcwLDcgKzcwLDcgQEAgcHJpdmF0ZToKICAgICBOZXR3b3JrTm90aWZpY2F0
aW9uTWFuYWdlcihOZXR3b3JrU2Vzc2lvbiYsIGNvbnN0IFN0cmluZyYgd2ViUHVzaE1hY2hTZXJ2
aWNlTmFtZSwgV2ViUHVzaEQ6OldlYlB1c2hEYWVtb25Db25uZWN0aW9uQ29uZmlndXJhdGlvbiYm
KTsKIAogICAgIHZvaWQgcmVxdWVzdFN5c3RlbU5vdGlmaWNhdGlvblBlcm1pc3Npb24oY29uc3Qg
U3RyaW5nJiBvcmlnaW5TdHJpbmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZp
bmFsOwotICAgIHZvaWQgc2hvd05vdGlmaWNhdGlvbihJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBX
ZWJDb3JlOjpOb3RpZmljYXRpb25EYXRhJikgZmluYWw7CisgICAgdm9pZCBzaG93Tm90aWZpY2F0
aW9uKElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRhdGEmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwogICAgIHZvaWQgY2FuY2VsTm90aWZp
Y2F0aW9uKGNvbnN0IFVVSUQmIG5vdGlmaWNhdGlvbklEKSBmaW5hbDsKICAgICB2b2lkIGNsZWFy
Tm90aWZpY2F0aW9ucyhjb25zdCBWZWN0b3I8VVVJRD4mIG5vdGlmaWNhdGlvbklEcykgZmluYWw7
CiAgICAgdm9pZCBkaWREZXN0cm95Tm90aWZpY2F0aW9uKGNvbnN0IFVVSUQmIG5vdGlmaWNhdGlv
bklEKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05vdGlmaWNhdGlv
bnMvTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5oCmlu
ZGV4IDlmOTk2YWExMzZmYy4uY2NlNTQxYmQyYTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uTWFu
YWdlck1lc3NhZ2VIYW5kbGVyLmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgfk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcigpID0gZGVmYXVsdDsKIAogICAg
IHZpcnR1YWwgdm9pZCByZXF1ZXN0U3lzdGVtTm90aWZpY2F0aW9uUGVybWlzc2lvbihjb25zdCBT
dHJpbmcmIHNlY3VyaXR5T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSA9
IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNob3dOb3RpZmljYXRpb24oSVBDOjpDb25uZWN0aW9uJiwg
Y29uc3QgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGF0YSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
c2hvd05vdGlmaWNhdGlvbihJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpOb3RpZmlj
YXRpb25EYXRhJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGNhbmNlbE5vdGlmaWNhdGlvbihjb25zdCBVVUlEJiBub3RpZmljYXRpb25JRCkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBjbGVhck5vdGlmaWNhdGlvbnMoY29uc3QgVmVjdG9yPFVVSUQ+
JiBub3RpZmljYXRpb25JRHMpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRGVzdHJveU5vdGlm
aWNhdGlvbihjb25zdCBVVUlEJiBub3RpZmljYXRpb25JRCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25NYW5hZ2VyTWVzc2Fn
ZUhhbmRsZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Ob3RpZmljYXRpb25z
L05vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5tZXNzYWdlcy5pbgppbmRleCA2YWUx
OTM3Nzk4YTUuLjViOWE3M2M3MjIyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
Tm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25N
YW5hZ2VyTWVzc2FnZUhhbmRsZXIubWVzc2FnZXMuaW4KQEAgLTIyLDcgKzIyLDcgQEAKIAogbWVz
c2FnZXMgLT4gTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyIE5vdFJlZkNvdW50ZWQg
ewogICAgIFJlcXVlc3RTeXN0ZW1Ob3RpZmljYXRpb25QZXJtaXNzaW9uKFN0cmluZyBvcmlnaW5J
ZGVudGlmaWVyKSAtPiAoYm9vbCBhbGxvd2VkKQotICAgIFNob3dOb3RpZmljYXRpb24oc3RydWN0
IFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRhdGEgbm90aWZpY2F0aW9uRGF0YSkgV2FudHNDb25uZWN0
aW9uCisgICAgU2hvd05vdGlmaWNhdGlvbihzdHJ1Y3QgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGF0
YSBub3RpZmljYXRpb25EYXRhKSAtPiAoKSBXYW50c0Nvbm5lY3Rpb24KICAgICBDYW5jZWxOb3Rp
ZmljYXRpb24oVVVJRCBub3RpZmljYXRpb25JRCkKICAgICBDbGVhck5vdGlmaWNhdGlvbnMoVmVj
dG9yPFVVSUQ+IG5vdGlmaWNhdGlvbklEcykKICAgICBEaWREZXN0cm95Tm90aWZpY2F0aW9uKFVV
SUQgbm90aWZpY2F0aW9uSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
b3RpZmljYXRpb25zL1NlcnZpY2VXb3JrZXJOb3RpZmljYXRpb25IYW5kbGVyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvU2VydmljZVdvcmtlck5vdGlmaWNhdGlv
bkhhbmRsZXIuY3BwCmluZGV4IDg0NzRhNzkzZjA5OS4uODhkMGY2ZWU5NTljIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1NlcnZpY2VXb3JrZXJOb3Rp
ZmljYXRpb25IYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL1NlcnZpY2VXb3JrZXJOb3RpZmljYXRpb25IYW5kbGVyLmNwcApAQCAtMjgsNiArMjgs
NyBAQAogCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
Tm90aWZpY2F0aW9uRGF0YS5oPgorI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIApAQCAtNTIsOCArNTMsMTAgQEAgV2Vic2l0ZURhdGFTdG9yZSogU2VydmljZVdv
cmtlck5vdGlmaWNhdGlvbkhhbmRsZXI6OmRhdGFTdG9yZUZvck5vdGlmaWNhdGlvbklEKGMKICAg
ICByZXR1cm4gV2Vic2l0ZURhdGFTdG9yZTo6ZXhpc3RpbmdEYXRhU3RvcmVGb3JTZXNzaW9uSUQo
aXRlcmF0b3ItPnZhbHVlKTsKIH0KIAotdm9pZCBTZXJ2aWNlV29ya2VyTm90aWZpY2F0aW9uSGFu
ZGxlcjo6c2hvd05vdGlmaWNhdGlvbihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0
IFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRhdGEmIGRhdGEpCit2b2lkIFNlcnZpY2VXb3JrZXJOb3Rp
ZmljYXRpb25IYW5kbGVyOjpzaG93Tm90aWZpY2F0aW9uKElQQzo6Q29ubmVjdGlvbiYgY29ubmVj
dGlvbiwgY29uc3QgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGF0YSYgZGF0YSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQogeworICAgIGF1dG8gc2NvcGUgPSBtYWtlU2NvcGVF
eGl0KFsmY2FsbGJhY2tdIHsgY2FsbGJhY2soKTsgfSk7CisKICAgICBhdXRvKiBkYXRhU3RvcmUg
PSBXZWJzaXRlRGF0YVN0b3JlOjpleGlzdGluZ0RhdGFTdG9yZUZvclNlc3Npb25JRChkYXRhLnNv
dXJjZVNlc3Npb24pOwogICAgIGlmICghZGF0YVN0b3JlKQogICAgICAgICByZXR1cm47CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1NlcnZpY2VXb3Jr
ZXJOb3RpZmljYXRpb25IYW5kbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL1NlcnZpY2VXb3JrZXJOb3RpZmljYXRpb25IYW5kbGVyLmgKaW5kZXggMTViZjhkYzM5
NDlhLi5jZWM4MzQ5Yzk2N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05v
dGlmaWNhdGlvbnMvU2VydmljZVdvcmtlck5vdGlmaWNhdGlvbkhhbmRsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1NlcnZpY2VXb3JrZXJOb3RpZmljYXRp
b25IYW5kbGVyLmgKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgU2VydmljZVdvcmtlck5vdGlmaWNh
dGlvbkhhbmRsZXIgZmluYWwgOiBwdWJsaWMgTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2UKIHB1
YmxpYzoKICAgICBzdGF0aWMgU2VydmljZVdvcmtlck5vdGlmaWNhdGlvbkhhbmRsZXImIHNpbmds
ZXRvbigpOwogCi0gICAgdm9pZCBzaG93Tm90aWZpY2F0aW9uKElQQzo6Q29ubmVjdGlvbiYsIGNv
bnN0IFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRhdGEmKSBmaW5hbDsKKyAgICB2b2lkIHNob3dOb3Rp
ZmljYXRpb24oSVBDOjpDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGF0
YSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CiAgICAgdm9pZCBjYW5jZWxO
b3RpZmljYXRpb24oY29uc3QgVVVJRCYgbm90aWZpY2F0aW9uSUQpIGZpbmFsOwogICAgIHZvaWQg
Y2xlYXJOb3RpZmljYXRpb25zKGNvbnN0IFZlY3RvcjxVVUlEPiYgbm90aWZpY2F0aW9uSURzKSBm
aW5hbDsKICAgICB2b2lkIGRpZERlc3Ryb3lOb3RpZmljYXRpb24oY29uc3QgVVVJRCYgbm90aWZp
Y2F0aW9uSUQpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90
aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2Vy
TWVzc2FnZUhhbmRsZXIuY3BwCmluZGV4IDFjZmQzMjhkNmY3Mi4uMmMwMzhkNjdhYmNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNh
dGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuY3Bw
CkBAIC00MSwxMyArNDEsMTQgQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhh
bmRsZXI6OnJlcXVlc3RTeXN0ZW1Ob3RpZmljYXRpb25QZXJtaXNzaW9uKGMKICAgICBSRUxFQVNF
X0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi12b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJN
ZXNzYWdlSGFuZGxlcjo6c2hvd05vdGlmaWNhdGlvbihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rp
b24sIGNvbnN0IFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRhdGEmIGRhdGEpCit2b2lkIFdlYk5vdGlm
aWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6c2hvd05vdGlmaWNhdGlvbihJUEM6OkNvbm5l
Y3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRhdGEmIGRhdGEs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjYWxsYmFjaykKIHsKICAgICBpZiAoIWRhdGEu
c2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblVSTC5pc0VtcHR5KCkpIHsKLSAgICAgICAgU2Vydmlj
ZVdvcmtlck5vdGlmaWNhdGlvbkhhbmRsZXI6OnNpbmdsZXRvbigpLnNob3dOb3RpZmljYXRpb24o
Y29ubmVjdGlvbiwgZGF0YSk7CisgICAgICAgIFNlcnZpY2VXb3JrZXJOb3RpZmljYXRpb25IYW5k
bGVyOjpzaW5nbGV0b24oKS5zaG93Tm90aWZpY2F0aW9uKGNvbm5lY3Rpb24sIGRhdGEsIFdURk1v
dmUoY2FsbGJhY2spKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBtX3dlYlBhZ2VQcm94
eS5zaG93Tm90aWZpY2F0aW9uKGNvbm5lY3Rpb24sIGRhdGEpOworICAgIGNhbGxiYWNrKCk7CiB9
CiAKIHZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjpjYW5jZWxOb3Rp
ZmljYXRpb24oY29uc3QgVVVJRCYgbm90aWZpY2F0aW9uSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNz
YWdlSGFuZGxlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJO
b3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaAppbmRleCA1MjUwNWU5ZDI1NjAuLjc1
NDFiMzY4MzJiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZpY2F0
aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNz
YWdlSGFuZGxlci5oCkBAIC0zNyw3ICszNyw3IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyKFdlYlBhZ2VQcm94eSYpOwogCiAgICAg
dm9pZCByZXF1ZXN0U3lzdGVtTm90aWZpY2F0aW9uUGVybWlzc2lvbihjb25zdCBTdHJpbmcmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKLSAgICB2b2lkIHNob3dOb3Rp
ZmljYXRpb24oSVBDOjpDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGF0
YSYpIGZpbmFsOworICAgIHZvaWQgc2hvd05vdGlmaWNhdGlvbihJUEM6OkNvbm5lY3Rpb24mLCBj
b25zdCBXZWJDb3JlOjpOb3RpZmljYXRpb25EYXRhJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKSBmaW5hbDsKICAgICB2b2lkIGNhbmNlbE5vdGlmaWNhdGlvbihjb25zdCBVVUlEJiBub3Rp
ZmljYXRpb25JRCkgZmluYWw7CiAgICAgdm9pZCBjbGVhck5vdGlmaWNhdGlvbnMoY29uc3QgVmVj
dG9yPFVVSUQ+JiBub3RpZmljYXRpb25JRHMpIGZpbmFsOwogICAgIHZvaWQgZGlkRGVzdHJveU5v
dGlmaWNhdGlvbihjb25zdCBVVUlEJiBub3RpZmljYXRpb25JRCkgZmluYWw7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25N
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5v
dGlmaWNhdGlvbk1hbmFnZXIuY3BwCmluZGV4IDBlNTNhM2YyMzAzNi4uYTliNDBmMTI1OWUxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90aWZp
Y2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcApAQCAtMTIzLDE0ICsxMjMsMTQgQEAg
dm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpyZW1vdmVBbGxQZXJtaXNzaW9uc0ZvclRlc3Rp
bmcoKQogfQogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi10ZW1wbGF0ZTx0eXBlbmFtZSBV
PiBib29sIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OnNlbmROb3RpZmljYXRpb25NZXNzYWdlKFUm
JiBtZXNzYWdlLCBOb3RpZmljYXRpb24mIG5vdGlmaWNhdGlvbiwgV2ViUGFnZSogcGFnZSkKK3N0
YXRpYyBib29sIHNlbmRNZXNzYWdlKE5vdGlmaWNhdGlvbiYgbm90aWZpY2F0aW9uLCBXZWJQYWdl
KiBwYWdlLCBjb25zdCBGdW5jdGlvbjxib29sKElQQzo6Q29ubmVjdGlvbiYsIHVpbnQ2NF90KT4m
IHNlbmRNZXNzYWdlKQogewogICAgIGlmICghcGFnZSAmJiAhbm90aWZpY2F0aW9uLnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAjaWYgRU5BQkxFKEJV
SUxUX0lOX05PVElGSUNBVElPTlMpCiAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNo
YXJlZEZlYXR1cmVzKCkuYnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFibGVkKCkpCi0gICAgICAgIHJl
dHVybiBtX3Byb2Nlc3MuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlv
bigpLnNlbmQoV1RGTW92ZShtZXNzYWdlKSwgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc2Vzc2lv
bklEKCkudG9VSW50NjQoKSk7CisgICAgICAgIHJldHVybiBzZW5kTWVzc2FnZShXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9u
KCksIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnNlc3Npb25JRCgpLnRvVUludDY0KCkpOwogI2Vu
ZGlmCiAKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSWRl
bnRpZmllcjsKQEAgLTE0MywxMiArMTQzLDI1IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFU+IGJvb2wg
V2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6c2VuZE5vdGlmaWNhdGlvbk1lc3NhZ2UoVSYmIG1lCiAg
ICAgfQogCiAgICAgQVNTRVJUKHBhZ2VJZGVudGlmaWVyKTsKKyAgICByZXR1cm4gc2VuZE1lc3Nh
Z2UoKldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCksIHBh
Z2VJZGVudGlmaWVyLT50b1VJbnQ2NCgpKTsKK30KIAotICAgIHJldHVybiBtX3Byb2Nlc3MucGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChXVEZNb3ZlKG1lc3NhZ2UpLCAqcGFnZUlkZW50
aWZpZXIpOwordGVtcGxhdGU8dHlwZW5hbWUgVT4gYm9vbCBXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
OjpzZW5kTm90aWZpY2F0aW9uTWVzc2FnZShVJiYgbWVzc2FnZSwgTm90aWZpY2F0aW9uJiBub3Rp
ZmljYXRpb24sIFdlYlBhZ2UqIHBhZ2UpCit7CisgICAgcmV0dXJuIHNlbmRNZXNzYWdlKG5vdGlm
aWNhdGlvbiwgcGFnZSwgWyZdIChhdXRvJiBjb25uZWN0aW9uLCBhdXRvIGRlc3RpbmF0aW9uSWRl
bnRpZmllcikgeworICAgICAgICByZXR1cm4gY29ubmVjdGlvbi5zZW5kKFdURk1vdmUobWVzc2Fn
ZSksIGRlc3RpbmF0aW9uSWRlbnRpZmllcik7CisgICAgfSk7Cit9CisKK3RlbXBsYXRlPHR5cGVu
YW1lIFU+IGJvb2wgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6c2VuZE5vdGlmaWNhdGlvbk1lc3Nh
Z2VXaXRoQXN5bmNSZXBseShVJiYgbWVzc2FnZSwgTm90aWZpY2F0aW9uJiBub3RpZmljYXRpb24s
IFdlYlBhZ2UqIHBhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjYWxsYmFjaykKK3sK
KyAgICByZXR1cm4gc2VuZE1lc3NhZ2Uobm90aWZpY2F0aW9uLCBwYWdlLCBbJl0gKGF1dG8mIGNv
bm5lY3Rpb24sIGF1dG8gZGVzdGluYXRpb25JZGVudGlmaWVyKSB7CisgICAgICAgIHJldHVybiBj
b25uZWN0aW9uLnNlbmRXaXRoQXN5bmNSZXBseShXVEZNb3ZlKG1lc3NhZ2UpLCBXVEZNb3ZlKGNh
bGxiYWNrKSwgZGVzdGluYXRpb25JZGVudGlmaWVyKTsKKyAgICB9KTsKIH0KICNlbmRpZiAvLyBF
TkFCTEUoTk9USUZJQ0FUSU9OUykKIAotYm9vbCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpzaG93
KE5vdGlmaWNhdGlvbiYgbm90aWZpY2F0aW9uLCBXZWJQYWdlKiBwYWdlKQorYm9vbCBXZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyOjpzaG93KE5vdGlmaWNhdGlvbiYgbm90aWZpY2F0aW9uLCBXZWJQYWdl
KiBwYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spCiB7CiAjaWYgRU5B
QkxFKE5PVElGSUNBVElPTlMpCiAgICAgTE9HKE5vdGlmaWNhdGlvbnMsICJXZWJQcm9jZXNzICVp
IGdvaW5nIHRvIHNob3cgbm90aWZpY2F0aW9uICVzIiwgZ2V0cGlkKCksIG5vdGlmaWNhdGlvbi5p
ZGVudGlmaWVyKCkudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKQEAgLTE1Nyw3ICsxNzAsNyBA
QCBib29sIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OnNob3coTm90aWZpY2F0aW9uJiBub3RpZmlj
YXRpb24sIFdlYlBhZ2UqIHBhZ2UpCiAgICAgaWYgKHBhZ2UgJiYgIXBhZ2UtPmNvcmVQYWdlKCkt
PnNldHRpbmdzKCkubm90aWZpY2F0aW9uc0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgaWYgKCFzZW5kTm90aWZpY2F0aW9uTWVzc2FnZShNZXNzYWdlczo6Tm90aWZpY2F0
aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjpTaG93Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbi5k
YXRhKCkpLCBub3RpZmljYXRpb24sIHBhZ2UpKQorICAgIGlmICghc2VuZE5vdGlmaWNhdGlvbk1l
c3NhZ2VXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6Tm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VI
YW5kbGVyOjpTaG93Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbi5kYXRhKCkpLCBub3RpZmljYXRp
b24sIHBhZ2UsIFdURk1vdmUoY2FsbGJhY2spKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgaWYgKCFub3RpZmljYXRpb24uaXNQZXJzaXN0ZW50KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlv
bk1hbmFnZXIuaAppbmRleCBiMjM1MjZiOTc1MmIuLjdmNTc2NDEwMjU0OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFu
YWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5v
dGlmaWNhdGlvbk1hbmFnZXIuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIldlYlByb2Nl
c3NTdXBwbGVtZW50LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25DbGllbnQuaD4K
ICNpbmNsdWRlIDxvcHRpb25hbD4KKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4K
ICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTU1LDcgKzU2LDcgQEAgcHVibGljOgogCiAgICAg
c3RhdGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CiAgICAgCi0gICAgYm9vbCBzaG93
KFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiYsIFdlYlBhZ2UqKTsKKyAgICBib29sIHNob3coV2ViQ29y
ZTo6Tm90aWZpY2F0aW9uJiwgV2ViUGFnZSosIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAgICAgdm9pZCBjYW5jZWwoV2ViQ29yZTo6Tm90aWZpY2F0aW9uJiwgV2ViUGFnZSopOwogCiAg
ICAgLy8gVGhpcyBjYWxsYmFjayBjb21lcyBmcm9tIFdlYkNvcmUsIG5vdCBtZXNzYWdlZCBmcm9t
IHRoZSBVSSBwcm9jZXNzLgpAQCAtODIsNiArODMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlk
UmVtb3ZlTm90aWZpY2F0aW9uRGVjaXNpb25zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvcmlnaW5T
dHJpbmdzKTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IGJvb2wgc2VuZE5vdGlmaWNhdGlv
bk1lc3NhZ2UoVSYmIG1lc3NhZ2UsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiYsIFdlYlBhZ2UqKTsK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBib29sIHNlbmROb3RpZmljYXRpb25NZXNzYWdlV2l0
aEFzeW5jUmVwbHkoVSYmIG1lc3NhZ2UsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiYsIFdlYlBhZ2Uq
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiAgICAgV2ViUHJvY2VzcyYgbV9wcm9j
ZXNzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuY3BwCmluZGV4IDY3MTExYTg0YTY1
MS4uZDZmN2VhYzcwZTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcApAQCAt
NDgsMTEgKzQ4LDE5IEBAIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6fldlYk5vdGlmaWNhdGlvbkNs
aWVudCgpCiAgICAgQVNTRVJUKGlzTWFpblJ1bkxvb3AoKSk7CiB9CiAKLWJvb2wgV2ViTm90aWZp
Y2F0aW9uQ2xpZW50OjpzaG93KE5vdGlmaWNhdGlvbiYgbm90aWZpY2F0aW9uKQorYm9vbCBXZWJO
b3RpZmljYXRpb25DbGllbnQ6OnNob3coTm90aWZpY2F0aW9uJiBub3RpZmljYXRpb24sIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjYWxsYmFjaykKIHsKKyAgICBhdXRvKiBjb250ZXh0ID0g
bm90aWZpY2F0aW9uLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBBU1NFUlQoY29udGV4
dCk7CisKICAgICBib29sIHJlc3VsdDsKLSAgICBjYWxsT25NYWluUnVuTG9vcEFuZFdhaXQoWyZy
ZXN1bHQsIHByb3RlY3RlZE5vdGlmaWNhdGlvbiA9IFJlZiB7IG5vdGlmaWNhdGlvbiB9LCBwYWdl
ID0gbV9wYWdlXSgpIHsKLSAgICAgICAgcmVzdWx0ID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
c3VwcGxlbWVudDxXZWJOb3RpZmljYXRpb25NYW5hZ2VyPigpLT5zaG93KHByb3RlY3RlZE5vdGlm
aWNhdGlvbi5nZXQoKSwgcGFnZSk7CisgICAgY2FsbE9uTWFpblJ1bkxvb3BBbmRXYWl0KFsmcmVz
dWx0LCBwcm90ZWN0ZWROb3RpZmljYXRpb24gPSBSZWYgeyBub3RpZmljYXRpb24gfSwgcGFnZSA9
IG1fcGFnZSwgY29udGV4dElkZW50aWZpZXIgPSBjb250ZXh0LT5pZGVudGlmaWVyKCksIGNhbGxi
YWNrSWRlbnRpZmllciA9IGNvbnRleHQtPmFkZE5vdGlmaWNhdGlvbkNhbGxiYWNrKFdURk1vdmUo
Y2FsbGJhY2spKV0oKSB7CisgICAgICAgIHJlc3VsdCA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnN1cHBsZW1lbnQ8V2ViTm90aWZpY2F0aW9uTWFuYWdlcj4oKS0+c2hvdyhwcm90ZWN0ZWROb3Rp
ZmljYXRpb24uZ2V0KCksIHBhZ2UsIFtjb250ZXh0SWRlbnRpZmllciwgY2FsbGJhY2tJZGVudGlm
aWVyXSB7CisgICAgICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpwb3N0VGFza1RvKGNv
bnRleHRJZGVudGlmaWVyLCBbY2FsbGJhY2tJZGVudGlmaWVyXShhdXRvJiBjb250ZXh0KSB7Cisg
ICAgICAgICAgICAgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBjb250ZXh0LnRha2VOb3RpZmljYXRp
b25DYWxsYmFjayhjYWxsYmFja0lkZW50aWZpZXIpKQorICAgICAgICAgICAgICAgICAgICBjYWxs
YmFjaygpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOwogICAgIH0pOwogICAgIHJldHVy
biByZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgKaW5kZXggMWJlZDkxODcw
N2I2Li44NTI5ZTZhMjJlMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgKQEAgLTM4
LDE5ICszOCwxOSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViUGFnZTsKIAotY2xh
c3MgV2ViTm90aWZpY2F0aW9uQ2xpZW50IDogcHVibGljIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNs
aWVudCB7CitjbGFzcyBXZWJOb3RpZmljYXRpb25DbGllbnQgZmluYWwgOiBwdWJsaWMgV2ViQ29y
ZTo6Tm90aWZpY2F0aW9uQ2xpZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1
YmxpYzoKICAgICBXZWJOb3RpZmljYXRpb25DbGllbnQoV2ViUGFnZSopOwogICAgIHZpcnR1YWwg
fldlYk5vdGlmaWNhdGlvbkNsaWVudCgpOwogCiBwcml2YXRlOgotICAgIGJvb2wgc2hvdyhXZWJD
b3JlOjpOb3RpZmljYXRpb24mKSBvdmVycmlkZTsKLSAgICB2b2lkIGNhbmNlbChXZWJDb3JlOjpO
b3RpZmljYXRpb24mKSBvdmVycmlkZTsKLSAgICB2b2lkIG5vdGlmaWNhdGlvbk9iamVjdERlc3Ry
b3llZChXZWJDb3JlOjpOb3RpZmljYXRpb24mKSBvdmVycmlkZTsKLSAgICB2b2lkIG5vdGlmaWNh
dGlvbkNvbnRyb2xsZXJEZXN0cm95ZWQoKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlcXVlc3RQZXJt
aXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBQZXJtaXNzaW9uSGFuZGxl
ciYmKSBvdmVycmlkZTsKLSAgICBXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Np
b24gY2hlY2tQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBvdmVy
cmlkZTsKKyAgICBib29sIHNob3coV2ViQ29yZTo6Tm90aWZpY2F0aW9uJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKKyAgICB2b2lkIGNhbmNlbChXZWJDb3JlOjpOb3RpZmlj
YXRpb24mKSBmaW5hbDsKKyAgICB2b2lkIG5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3llZChXZWJD
b3JlOjpOb3RpZmljYXRpb24mKSBmaW5hbDsKKyAgICB2b2lkIG5vdGlmaWNhdGlvbkNvbnRyb2xs
ZXJEZXN0cm95ZWQoKSBmaW5hbDsKKyAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6
OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBQZXJtaXNzaW9uSGFuZGxlciYmKSBmaW5hbDsKKyAg
ICBXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24gY2hlY2tQZXJtaXNzaW9u
KFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBmaW5hbDsKICAgICAKICAgICBXZWJQ
YWdlKiBtX3BhZ2UgeyBudWxscHRyIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmlu
ZGV4IDdiMDhhYTE4YWE0Yi4uNWQ4MDhjN2ZiYjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjItMDUtMTUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgorCisgICAgICAgIE1ha2Ugc3VyZSBjYWxsaW5nIHNob3dOb3RpZmljYXRpb24g
d2lsbCBleHRlbmQgdGhlIHNlcnZpY2Ugd29ya2VyIGxpZmV0aW1lCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDAyNzMKKyAgICAgICAgPHJkYXI6Ly85
Mjk3ODQ4Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oOgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbToKKwogMjAyMi0wNS0wNiAgQnJlbnQg
RnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdGhlIHZpZXdw
b3J0Rml0RW5hYmxlZCBXS1ByZWZlcmVuY2Ugbm93IHRoYXQgaXQgaXMgYWx3YXlzIG9uIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZp
Y2F0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJOb3RpZmljYXRpb25DbGllbnQuaAppbmRleCBlNTcxNTNmNWZhZTguLjYxMTQ1MzZjZTc0NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90
aWZpY2F0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgKQEAgLTM1LDcgKzM1LDcgQEAKIEBjbGFzcyBX
ZWJOb3RpZmljYXRpb25Qb2xpY3lMaXN0ZW5lcjsKIEBjbGFzcyBXZWJWaWV3OwogCi1jbGFzcyBX
ZWJOb3RpZmljYXRpb25DbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50
IHsKK2NsYXNzIFdlYk5vdGlmaWNhdGlvbkNsaWVudCBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpO
b3RpZmljYXRpb25DbGllbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgogICAgIFdlYk5vdGlmaWNhdGlvbkNsaWVudChXZWJWaWV3ICopOwpAQCAtNDUsMTIgKzQ1LDEy
IEBAIHB1YmxpYzoKICAgICB1aW50NjRfdCBub3RpZmljYXRpb25JREZvclRlc3RpbmcoV2ViQ29y
ZTo6Tm90aWZpY2F0aW9uKik7CiAKIHByaXZhdGU6Ci0gICAgYm9vbCBzaG93KFdlYkNvcmU6Ok5v
dGlmaWNhdGlvbiYpIG92ZXJyaWRlOwotICAgIHZvaWQgY2FuY2VsKFdlYkNvcmU6Ok5vdGlmaWNh
dGlvbiYpIG92ZXJyaWRlOwotICAgIHZvaWQgbm90aWZpY2F0aW9uT2JqZWN0RGVzdHJveWVkKFdl
YkNvcmU6Ok5vdGlmaWNhdGlvbiYpIG92ZXJyaWRlOwotICAgIHZvaWQgbm90aWZpY2F0aW9uQ29u
dHJvbGxlckRlc3Ryb3llZCgpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24o
V2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFBlcm1pc3Npb25IYW5kbGVyJiYpIG92
ZXJyaWRlOwotICAgIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbiBjaGVj
a1Blcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIG92ZXJyaWRlOwor
ICAgIGJvb2wgc2hvdyhXZWJDb3JlOjpOb3RpZmljYXRpb24mLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpIGZpbmFsOworICAgIHZvaWQgY2FuY2VsKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiYp
IGZpbmFsOworICAgIHZvaWQgbm90aWZpY2F0aW9uT2JqZWN0RGVzdHJveWVkKFdlYkNvcmU6Ok5v
dGlmaWNhdGlvbiYpIGZpbmFsOworICAgIHZvaWQgbm90aWZpY2F0aW9uQ29udHJvbGxlckRlc3Ry
b3llZCgpIGZpbmFsOworICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYsIFBlcm1pc3Npb25IYW5kbGVyJiYpIGZpbmFsOworICAgIFdlYkNv
cmU6Ok5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbiBjaGVja1Blcm1pc3Npb24oV2ViQ29y
ZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIGZpbmFsOwogCiAgICAgdm9pZCByZXF1ZXN0UGVy
bWlzc2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgV2ViTm90aWZpY2F0aW9u
UG9saWN5TGlzdGVuZXIgKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbQppbmRleCBj
MGFhZDA5OTNjOGYuLmIzMWU0NmU4NDA0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5t
bQpAQCAtMzYsNiArMzYsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9TY3JpcHRFeGVjdXRpb25Db250
ZXh0Lmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogI2ltcG9ydCA8d3Rm
L0NvbXBsZXRpb25IYW5kbGVyLmg+CisjaW1wb3J0IDx3dGYvU2NvcGUuaD4KICNpbXBvcnQgPHd0
Zi9jb2NvYS9WZWN0b3JDb2NvYS5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTU4
LDggKzU5LDEwIEBAIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6V2ViTm90aWZpY2F0aW9uQ2xpZW50
KFdlYlZpZXcgKndlYlZpZXcpCiB7CiB9CiAKLWJvb2wgV2ViTm90aWZpY2F0aW9uQ2xpZW50Ojpz
aG93KE5vdGlmaWNhdGlvbiYgbm90aWZpY2F0aW9uKQorYm9vbCBXZWJOb3RpZmljYXRpb25DbGll
bnQ6OnNob3coTm90aWZpY2F0aW9uJiBub3RpZmljYXRpb24sIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjYWxsYmFjaykKIHsKKyAgICBhdXRvIHNjb3BlID0gbWFrZVNjb3BlRXhpdChbJmNh
bGxiYWNrXSB7IGNhbGxiYWNrKCk7IH0pOworCiAgICAgaWYgKCFbbV93ZWJWaWV3IF9ub3RpZmlj
YXRpb25Qcm92aWRlcl0pCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGQ4Mjk2ODFhMGI4Mi4uNDJhYThh
YzUyMGU0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMjItMDUtMTUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgorCisgICAgICAgIE1ha2Ugc3VyZSBjYWxsaW5nIHNob3dOb3RpZmljYXRpb24gd2ls
bCBleHRlbmQgdGhlIHNlcnZpY2Ugd29ya2VyIGxpZmV0aW1lCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDAyNzMKKyAgICAgICAgPHJkYXI6Ly85Mjk3
ODQ4Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdE5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcDoKKyAgICAgICAgKiBUZXN0
V2ViS2l0QVBJL1Rlc3ROb3RpZmljYXRpb25Qcm92aWRlci5oOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHVzaEFQSS5tbToKKwogMjAyMi0wNS0xMyAgSm9uYXRo
YW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgW3dlYmtpdC1wYXRjaF0g
QXBwbHkgcGF0Y2hlcyBjb21taXQgbWVzc2FnZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdE5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdE5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcAppbmRleCA3ZmNkZDllOGEzNjAuLjBiN2Y4YjVi
ZGE1YSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0Tm90aWZpY2F0aW9uUHJv
dmlkZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdE5vdGlmaWNhdGlvblByb3Zp
ZGVyLmNwcApAQCAtMTIxLDYgKzEyMSw4IEBAIHN0YXRpYyBXS05vdGlmaWNhdGlvbk1hbmFnZXJS
ZWYgbm90aWZpY2F0aW9uTWFuYWdlckZvclBhZ2UoV0tQYWdlUmVmIHBhZ2UpCiAKIHZvaWQgVGVz
dE5vdGlmaWNhdGlvblByb3ZpZGVyOjpzaG93V2ViTm90aWZpY2F0aW9uKFdLUGFnZVJlZiBwYWdl
LCBXS05vdGlmaWNhdGlvblJlZiBub3RpZmljYXRpb24pCiB7CisgICAgbV9oYXNSZWNlaXZlZE5v
dGlmaWNhdGlvbiA9IHRydWU7CisKICAgICBhdXRvIG5vdGlmaWNhdGlvbk1hbmFnZXIgPSBub3Rp
ZmljYXRpb25NYW5hZ2VyRm9yUGFnZShwYWdlKTsKICAgICB1aW50NjRfdCBpZGVudGlmaWVyID0g
V0tOb3RpZmljYXRpb25HZXRJRChub3RpZmljYXRpb24pOwogICAgIFdLTm90aWZpY2F0aW9uTWFu
YWdlclByb3ZpZGVyRGlkU2hvd05vdGlmaWNhdGlvbihub3RpZmljYXRpb25NYW5hZ2VyLCBpZGVu
dGlmaWVyKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdE5vdGlmaWNhdGlv
blByb3ZpZGVyLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3ROb3RpZmljYXRpb25Qcm92aWRl
ci5oCmluZGV4IDZiMDdhMmU2NzcyNS4uMTI4ZDA4OWQ2ODQ4IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3ROb3RpZmljYXRpb25Qcm92aWRlci5oCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdE5vdGlmaWNhdGlvblByb3ZpZGVyLmgKQEAgLTQ3LDExICs0NywxNSBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzaG93V2ViTm90aWZpY2F0aW9uKFdLUGFnZVJlZiwgV0tOb3RpZmlj
YXRpb25SZWYpOwogICAgIHZvaWQgc2ltdWxhdGVOb3RpZmljYXRpb25DbGljaygpOwogCisgICAg
Ym9vbCBoYXNSZWNlaXZlZE5vdGlmaWNhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1faGFzUmVjZWl2
ZWROb3RpZmljYXRpb247IH0KKyAgICB2b2lkIHJlc2V0SGFzUmVjZWl2ZWROb3RpZmljYXRpb24o
KSB7IG1faGFzUmVjZWl2ZWROb3RpZmljYXRpb24gPSBmYWxzZTsgfQorCiBwcml2YXRlOgogICAg
IFZlY3RvcjxXS05vdGlmaWNhdGlvbk1hbmFnZXJSZWY+IG1fbWFuYWdlcnM7CiAgICAgSGFzaE1h
cDxTdHJpbmcsIGJvb2w+IG1fcGVybWlzc2lvbnM7CiAgICAgV0tOb3RpZmljYXRpb25Qcm92aWRl
clYwIG1fcHJvdmlkZXI7CiAKKyAgICBib29sIG1faGFzUmVjZWl2ZWROb3RpZmljYXRpb24geyBm
YWxzZSB9OwogICAgIHN0ZDo6cGFpcjxXS05vdGlmaWNhdGlvbk1hbmFnZXJSZWYsIHVpbnQ2NF90
PiBtX3BlbmRpbmdOb3RpZmljYXRpb247CiB9OwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1B1c2hBUEkubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1B1c2hBUEkubW0KaW5kZXggYmY5NzQxNjJkMGFkLi5kZWZjYzg5
MDI0NWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
UHVzaEFQSS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1B1
c2hBUEkubW0KQEAgLTY3Nyw2ICs2NzcsOSBAQCBURVNUKFB1c2hBUEksIGZpcmVOb3RpZmljYXRp
b25DbGlja0V2ZW50KQogCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKIAor
ICAgIHByb3ZpZGVyLnJlc2V0SGFzUmVjZWl2ZWROb3RpZmljYXRpb24oKTsKKyAgICBhdXRvJiBw
cm92aWRlclJlZiA9IHByb3ZpZGVyOworCiAgICAgZG9uZSA9IGZhbHNlOwogICAgIHB1c2hNZXNz
YWdlUHJvY2Vzc2VkID0gZmFsc2U7CiAgICAgcHVzaE1lc3NhZ2VTdWNjZXNzZnVsID0gZmFsc2U7
CkBAIC02ODQsNiArNjg3LDcgQEAgVEVTVChQdXNoQVBJLCBmaXJlTm90aWZpY2F0aW9uQ2xpY2tF
dmVudCkKICAgICBleHBlY3RlZE1lc3NhZ2UgPSAiUmVjZWl2ZWQ6IFN3ZWV0IFBvdGF0b2VzIl9z
OwogCiAgICAgW1tjb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdIF9wcm9jZXNzUHVzaE1l
c3NhZ2U6bWVzc2FnZURpY3Rpb25hcnkoW21lc3NhZ2UgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4
U3RyaW5nRW5jb2RpbmddLCBbc2VydmVyLnJlcXVlc3QoKSBVUkxdKSBjb21wbGV0aW9uSGFuZGxl
cjpeKGJvb2wgcmVzdWx0KSB7CisgICAgICAgIEVYUEVDVF9UUlVFKHByb3ZpZGVyUmVmLmhhc1Jl
Y2VpdmVkTm90aWZpY2F0aW9uKCkpOwogICAgICAgICBwdXNoTWVzc2FnZVN1Y2Nlc3NmdWwgPSBy
ZXN1bHQ7CiAgICAgICAgIHB1c2hNZXNzYWdlUHJvY2Vzc2VkID0gdHJ1ZTsKICAgICB9XTsKLS0g
CjIuMzIuMCAoQXBwbGUgR2l0LTEzMikKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459403</attachid>
            <date>2022-05-15 23:21:53 -0700</date>
            <delta_ts>2022-05-16 02:43:28 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>0001-2022-05-10-Youenn-Fablet-youenn-apple.com.patch</filename>
            <type>text/plain</type>
            <size>43399</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">RnJvbSBiNjg4ZTllODFmYjczOGI2MTU1MDgyNGNmY2QxZTEzMGQwMjQ2MTc2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBZb3Vlbm4gRmFibGV0IDx5b3Vlbm5AYXBwbGUuY29tPgpEYXRl
OiBTdW4sIDE1IE1heSAyMDIyIDIwOjUxOjA0ICswMjAwClN1YmplY3Q6IFtQQVRDSF0gMjAyMi0w
NS0xMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CgogICAgICAgTWFrZSBzdXJl
IGNhbGxpbmcgc2hvd05vdGlmaWNhdGlvbiB3aWxsIGV4dGVuZCB0aGUgc2VydmljZSB3b3JrZXIg
bGlmZXRpbWUKICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
NDAyNzMKICAgICAgIDxyZGFyOi8vOTI5Nzg0ODI+CgogICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMg
RHVtZXouCgogICAgICAgVXBkYXRlIE5vdGlmaWNhdGlvbkNsaWVudCBBUEkgc28gdGhhdCBzaG93
IGlzIHRha2luZyBhIGNvbXBsZXRpb24gaGFuZGxlci4KICAgICAgIE1ha2UgdXNlIG9mIHRoaXMg
Y29tcGxldGlvbiBoYW5kbGVyIHRvIHJlc29sdmUgdGhlIHByb21pc2Ugd2hlbiB0aGUgc2hvdyBu
b3RpZmljYXRpb24gc3RlcHMgYXJlIGRvbmUsIGFzIHBlciBzcGVjLgogICAgICAgUmVnaXN0ZXIg
cHVzaCBldmVudCB0byBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgd2hlbiB0aGUgZXZlbnQgaGFu
ZGxlcnMgYXJlIGNhbGxlZC4KICAgICAgIFdoZW4gU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6
c2hvdyBpcyBjYWxsZWQgZHVyaW5nIG9uZSBvZiB0aGUgcHVzaCBldmVudCBoYW5kbGVycywKICAg
ICAgIGV4dGVuZCB0aGUgcHVzaCBldmVudCBsaWZldGltZSBieSBhZGRpbmcgdGhlIHNob3cgbm90
aWZpY2F0aW9uIHByb21pc2UgdG8gdGhlIHB1c2ggZXZlbnQuCgogICAgICAgQ292ZXJlZCBieSBB
UEkgdGVzdC4KCiAgICAgICAqIE1vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3Bw
OgogICAgICAgKiBNb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmg6CiAgICAgICAq
IE1vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DbGllbnQuaDoKICAgICAgICogZG9t
L1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwOgogICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9u
Q29udGV4dC5oOgogICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNj
b3BlLmNwcDoKICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZS5oOgogICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5j
cHA6CiAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmg6
CiAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3Bw
OgoKICAgICAgIE9uIFdlYlByb2Nlc3Mgc2lkZSwgaW1wbGVtZW50IHRoZSBuZXcgTm9maWNhdGlv
bkNsaWVudDo6c2hvdyBBUEkgdGhhdCB0YWtlcyBhIGNhbGxiYWNrLgogICAgICAgRGVsYXkgY2Fs
bGluZyB0aGlzIGNhbGxiYWNrIHVudGlsIFVJUHJvY2VzcyB0ZWxscyB1cyBzbyB0aHJvdWdoIGFz
eW5jIElQQy4KICAgICAgIE9uIFVJUHJvY2VzcyBzaWRlLCB0YWtlIGEgY2FsbGJhY2sgYW5kIGNh
bGwgaXQgd2hlbiB0aGUgc2hvdyBub3RpZmljYXRpb24gc3RlcHMgYXJlIGRvbmUuCgogICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2Vy
LmNwcDoKICAgICAgICogTmV0d29ya1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90aWZp
Y2F0aW9uTWFuYWdlci5oOgogICAgICAgKiBTaGFyZWQvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRp
b25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaDoKICAgICAgICogU2hhcmVkL05vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLm1lc3NhZ2VzLmluOgogICAgICAgKiBV
SVByb2Nlc3MvTm90aWZpY2F0aW9ucy9TZXJ2aWNlV29ya2VyTm90aWZpY2F0aW9uSGFuZGxlci5j
cHA6CiAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1NlcnZpY2VXb3JrZXJOb3RpZmlj
YXRpb25IYW5kbGVyLmg6CiAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlm
aWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5jcHA6CiAgICAgICAqIFVJUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5oOgogICAgICAg
KiBXZWJQcm9jZXNzL0dQVS93ZWJydGMvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXBQcm94eVBy
b2Nlc3Nvci5jcHA6CiAgICAgICAqIFdlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmlj
YXRpb25NYW5hZ2VyLmNwcDoKICAgICAgICogV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5v
dGlmaWNhdGlvbk1hbmFnZXIuaDoKICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJOb3RpZmljYXRpb25DbGllbnQuY3BwOgogICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oOgotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICB8IDI3ICsrKysrKysrKysrKysrKysrKwogLi4uL01vZHVs
ZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwICAgIHwgMTYgKysrKysrKy0tLS0KIC4u
Li9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmggICAgICB8ICAzICstCiAuLi4v
bm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25DbGllbnQuaCAgICAgICAgfCAgMiArLQogU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwIHwgMTYgKysrKysrKysrKysK
IFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggICB8ICA4ICsrKysr
KwogLi4uL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcCAgICAgIHwgIDkgKysr
KysrCiAuLi4vc2VydmljZS9TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuaCAgICAgICAgfCAgNSAr
KysrCiAuLi4vc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcCAgICAgfCAyOCAr
KysrKysrKysrKy0tLS0tLS0tCiAuLi4vc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
LmggICAgICAgfCAgMiArLQogLi4uL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFk
LmNwcCAgIHwgIDIgKy0KIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICB8IDI2ICsrKysrKysrKysrKysrKysrCiAuLi4vTmV0d29ya05vdGlmaWNhdGlvbk1hbmFn
ZXIuY3BwICAgICAgICAgICAgfCAgNSArKy0tCiAuLi4vTmV0d29ya05vdGlmaWNhdGlvbk1hbmFn
ZXIuaCAgICAgICAgICAgICAgfCAgMiArLQogLi4uL05vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdl
SGFuZGxlci5oICAgICAgIHwgIDIgKy0KIC4uLmlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxl
ci5tZXNzYWdlcy5pbiB8ICAyICstCiAuLi4vU2VydmljZVdvcmtlck5vdGlmaWNhdGlvbkhhbmRs
ZXIuY3BwICAgICAgfCAgNSArKystCiAuLi4vU2VydmljZVdvcmtlck5vdGlmaWNhdGlvbkhhbmRs
ZXIuaCAgICAgICAgfCAgMiArLQogLi4uL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFu
ZGxlci5jcHAgIHwgIDUgKystLQogLi4uL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFu
ZGxlci5oICAgIHwgIDIgKy0KIC4uLi9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFn
ZXIuY3BwICB8IDIzICsrKysrKysrKysrLS0tLQogLi4uL05vdGlmaWNhdGlvbnMvV2ViTm90aWZp
Y2F0aW9uTWFuYWdlci5oICAgIHwgIDQgKystCiAuLi4vV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZp
Y2F0aW9uQ2xpZW50LmNwcCAgfCAxNCArKysrKysrKy0tCiAuLi4vV2ViQ29yZVN1cHBvcnQvV2Vi
Tm90aWZpY2F0aW9uQ2xpZW50LmggICAgfCAxNCArKysrKy0tLS0tCiBTb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cgICAgICAgICAgICAgfCAxMSArKysrKysrKwogLi4uL1dlYkNvcmVT
dXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oICAgIHwgMTQgKysrKystLS0tLQogLi4uL1dl
YkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbSAgIHwgIDUgKysrLQogVG9vbHMv
Q2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTIgKysrKysrKysKIC4u
Li9UZXN0Tm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwICAgICAgICAgICAgICB8ICAyICsrCiAuLi4v
VGVzdFdlYktpdEFQSS9UZXN0Tm90aWZpY2F0aW9uUHJvdmlkZXIuaCAgfCAgNCArKysKIC4uLi9U
ZXN0cy9XZWJLaXRDb2NvYS9QdXNoQVBJLm1tICAgICAgICAgICAgICB8ICA0ICsrKwogMzEgZmls
ZXMgY2hhbmdlZCwgMjIxIGluc2VydGlvbnMoKyksIDU1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCAwNzliNmZiNWRhZGUuLjlkY2U4NThhM2ViOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMw
IEBACisyMDIyLTA1LTE1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAg
ICAgICBNYWtlIHN1cmUgY2FsbGluZyBzaG93Tm90aWZpY2F0aW9uIHdpbGwgZXh0ZW5kIHRoZSBz
ZXJ2aWNlIHdvcmtlciBsaWZldGltZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjQwMjczCisgICAgICAgIDxyZGFyOi8vOTI5Nzg0ODI+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgVXBkYXRlIE5vdGlmaWNhdGlv
bkNsaWVudCBBUEkgc28gdGhhdCBzaG93IGlzIHRha2luZyBhIGNvbXBsZXRpb24gaGFuZGxlci4K
KyAgICAgICAgTWFrZSB1c2Ugb2YgdGhpcyBjb21wbGV0aW9uIGhhbmRsZXIgdG8gcmVzb2x2ZSB0
aGUgcHJvbWlzZSB3aGVuIHRoZSBzaG93IG5vdGlmaWNhdGlvbiBzdGVwcyBhcmUgZG9uZSwgYXMg
cGVyIHNwZWMuCisgICAgICAgIFJlZ2lzdGVyIHB1c2ggZXZlbnQgdG8gU2VydmljZVdvcmtlckds
b2JhbFNjb3BlIHdoZW4gdGhlIGV2ZW50IGhhbmRsZXJzIGFyZSBjYWxsZWQuCisgICAgICAgIFdo
ZW4gU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6c2hvdyBpcyBjYWxsZWQgZHVyaW5nIG9uZSBv
ZiB0aGUgcHVzaCBldmVudCBoYW5kbGVycywKKyAgICAgICAgZXh0ZW5kIHRoZSBwdXNoIGV2ZW50
IGxpZmV0aW1lIGJ5IGFkZGluZyB0aGUgc2hvdyBub3RpZmljYXRpb24gcHJvbWlzZSB0byB0aGUg
cHVzaCBldmVudC4KKworICAgICAgICBDb3ZlcmVkIGJ5IEFQSSB0ZXN0LgorCisgICAgICAgICog
TW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHA6CisgICAgICAgICogTW9kdWxl
cy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvbm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb25DbGllbnQuaDoKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5jcHA6CisgICAgICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaDoK
KyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmNwcDoK
KyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmg6Cisg
ICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uY3BwOgor
ICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmg6Cisg
ICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHA6
CisKIDIwMjItMDUtMTQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAg
ICAgIEF1ZGlvIHBsYXliYWNrIHJhdGUgc3BlZCB1cCBmb3IgZmV3IHNlY29uZHMgd2hlbiB1c2lu
ZyBjcmVhdGVNZWRpYUVsZW1lbnRTb3VyY2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHAKaW5kZXggM2RhN2RmOGRlNTkzLi5k
ODY0ZmNiZWJiNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0
aW9ucy9Ob3RpZmljYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCkBAIC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSAiV2lu
ZG93Rm9jdXNBbGxvd2VkSW5kaWNhdG9yLmgiCiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5k
bGVyLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYv
U2NvcGUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xNDMsMTcgKzE0NCwyMyBAQCB2
b2lkIE5vdGlmaWNhdGlvbjo6bWFya0FzU2hvd24oKQogICAgIG1fc3RhdGUgPSBTaG93aW5nOwog
fQogCi12b2lkIE5vdGlmaWNhdGlvbjo6c2hvdygpCit2b2lkIE5vdGlmaWNhdGlvbjo6c2hvdyhD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spCiB7CisgICAgQ29tcGxldGlvbkhh
bmRsZXJDYWxsaW5nU2NvcGUgc2NvcGUgeyBXVEZNb3ZlKGNhbGxiYWNrKSB9OworCiAgICAgLy8g
cHJldmVudCBkb3VibGUtc2hvd2luZwogICAgIGlmIChtX3N0YXRlICE9IElkbGUpCiAgICAgICAg
IHJldHVybjsKIAotICAgIGF1dG8qIGNsaWVudCA9IGNsaWVudEZyb21Db250ZXh0KCk7CisgICAg
YXV0byogY29udGV4dCA9IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBpZiAoIWNvbnRl
eHQpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIGNsaWVudCA9IGNvbnRleHQtPm5vdGlm
aWNhdGlvbkNsaWVudCgpOwogICAgIGlmICghY2xpZW50KQogICAgICAgICByZXR1cm47CiAKLSAg
ICBpZiAoY2xpZW50LT5jaGVja1Blcm1pc3Npb24oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKSAh
PSBQZXJtaXNzaW9uOjpHcmFudGVkKSB7CisgICAgaWYgKGNsaWVudC0+Y2hlY2tQZXJtaXNzaW9u
KGNvbnRleHQpICE9IFBlcm1pc3Npb246OkdyYW50ZWQpIHsKICAgICAgICAgc3dpdGNoIChtX25v
dGlmaWNhdGlvblNvdXJjZSkgewogICAgICAgICBjYXNlIE5vdGlmaWNhdGlvblNvdXJjZTo6RG9j
dW1lbnQ6CiAgICAgICAgICAgICBkaXNwYXRjaEVycm9yRXZlbnQoKTsKQEAgLTE2MywxMSArMTcw
LDEwIEBAIHZvaWQgTm90aWZpY2F0aW9uOjpzaG93KCkKICAgICAgICAgICAgIC8vIElmIHBlcm1p
c3Npb24gaGFzIHNpbmNlIGJlZW4gcmV2b2tlZCwgdGhlbiBzaWxlbnRseSBmYWlsaW5nIGhlcmUg
aXMgZXhwZWN0ZWQgYmVoYXZpb3IuCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQotCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoY2xpZW50LT5zaG93KCp0aGlzKSkKKyAg
ICBpZiAoY2xpZW50LT5zaG93KCp0aGlzLCBzY29wZS5yZWxlYXNlKCkpKQogICAgICAgICBtX3N0
YXRlID0gU2hvd2luZzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9u
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvbi5oCmluZGV4IDU5MGVjMjk4ZDFmOS4uZDI0OWNhOTIyZmVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlm
aWNhdGlvbi5oCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlz
c2lvbi5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmgiCiAj
aW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCisjaW5jbHVkZSA8d3RmL0NvbXBsZXRp
b25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgogI2luY2x1ZGUgPHd0Zi9VVUlELmg+
CiAjaW5jbHVkZSAiV3JpdGluZ01vZGUuaCIKQEAgLTc0LDcgKzc1LDcgQEAgcHVibGljOgogCiAg
ICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+Tm90aWZpY2F0aW9uKCk7CiAKLSAgICB2b2lkIHNo
b3coKTsKKyAgICB2b2lkIHNob3coQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmID0gW10geyB9
KTsKICAgICB2b2lkIGNsb3NlKCk7CiAKICAgICBjb25zdCBTdHJpbmcmIHRpdGxlKCkgY29uc3Qg
eyByZXR1cm4gbV90aXRsZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9u
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oCmluZGV4IGE4YjMwYjJmMzdhYy4u
MzQ0MTA1YzRkMjExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9u
b3RpZmljYXRpb25zL05vdGlmaWNhdGlvbkNsaWVudC5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1Ymxp
YzoKICAgICB1c2luZyBQZXJtaXNzaW9uSGFuZGxlciA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
UGVybWlzc2lvbik+OwogCiAgICAgLy8gUmVxdWVzdHMgdGhhdCBhIG5vdGlmaWNhdGlvbiBiZSBz
aG93bi4KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdyhOb3RpZmljYXRpb24mKSA9IDA7CisgICAgdmly
dHVhbCBib29sIHNob3coTm90aWZpY2F0aW9uJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KSA9IDA7CiAKICAgICAvLyBSZXF1ZXN0cyB0aGF0IGEgbm90aWZpY2F0aW9uIHRoYXQgaGFzIGFs
cmVhZHkgYmVlbiBzaG93biBiZSBjYW5jZWxlZC4KICAgICB2aXJ0dWFsIHZvaWQgY2FuY2VsKE5v
dGlmaWNhdGlvbiYpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25D
b250ZXh0LmNwcAppbmRleCA1NWM3OTY0N2IwYzkuLmZlNWY1ZGQzM2U2OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcApAQCAtMTc2LDYgKzE3Niwx
MCBAQCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojp+U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpCiAg
ICAgbV9pblNjcmlwdEV4ZWN1dGlvbkNvbnRleHREZXN0cnVjdG9yID0gdHJ1ZTsKICNlbmRpZiAv
LyBBU1NFUlRfRU5BQkxFRAogCisgICAgYXV0byBjYWxsYmFja3MgPSBXVEZNb3ZlKG1fbm90aWZp
Y2F0aW9uQ2FsbGJhY2tzKTsKKyAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogY2FsbGJhY2tzLnZh
bHVlcygpKQorICAgICAgICBjYWxsYmFjaygpOworCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQogICAgIHNldEFjdGl2ZVNlcnZpY2VXb3JrZXIobnVsbHB0cik7CiAjZW5kaWYKQEAgLTc2Nyw0
ICs3NzEsMTYgQEAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6SGFzUmVzb3VyY2VBY2Nlc3MgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDo6Y2FuQWNjZXNzUmVzb3UKICAgICBSRUxFQVNFX0FTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogfQogCitTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpOb3RpZmljYXRpb25D
YWxsYmFja0lkZW50aWZpZXIgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6YWRkTm90aWZpY2F0aW9u
Q2FsbGJhY2soQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQoreworICAgIGF1
dG8gaWRlbnRpZmllciA9IE5vdGlmaWNhdGlvbkNhbGxiYWNrSWRlbnRpZmllcjo6Z2VuZXJhdGVU
aHJlYWRTYWZlKCk7CisgICAgbV9ub3RpZmljYXRpb25DYWxsYmFja3MuYWRkKGlkZW50aWZpZXIs
IFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICByZXR1cm4gaWRlbnRpZmllcjsKK30KKworQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojp0YWtlTm90aWZpY2F0
aW9uQ2FsbGJhY2soTm90aWZpY2F0aW9uQ2FsbGJhY2tJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7
CisgICAgcmV0dXJuIG1fbm90aWZpY2F0aW9uQ2FsbGJhY2tzLnRha2UoaWRlbnRpZmllcik7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oCmluZGV4IDU3MWFmZDJkNzI5Ni4uMDljYjAyMjI3NWUwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKQEAgLTMxNCw2ICszMTQs
MTIgQEAgcHVibGljOgogICAgIGVudW0gY2xhc3MgSGFzUmVzb3VyY2VBY2Nlc3MgOiB1aW50OF90
IHsgTm8sIFllcywgRGVmYXVsdEZvclRoaXJkUGFydHkgfTsKICAgICBXRUJDT1JFX0VYUE9SVCBI
YXNSZXNvdXJjZUFjY2VzcyBjYW5BY2Nlc3NSZXNvdXJjZShSZXNvdXJjZVR5cGUpIGNvbnN0Owog
CisgICAgZW51bSBOb3RpZmljYXRpb25DYWxsYmFja0lkZW50aWZpZXJUeXBlIHsgfTsKKyAgICB1
c2luZyBOb3RpZmljYXRpb25DYWxsYmFja0lkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPE5v
dGlmaWNhdGlvbkNhbGxiYWNrSWRlbnRpZmllclR5cGU+OworCisgICAgV0VCQ09SRV9FWFBPUlQg
Tm90aWZpY2F0aW9uQ2FsbGJhY2tJZGVudGlmaWVyIGFkZE5vdGlmaWNhdGlvbkNhbGxiYWNrKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiB0YWtlTm90aWZpY2F0aW9uQ2FsbGJhY2soTm90aWZpY2F0aW9uQ2Fs
bGJhY2tJZGVudGlmaWVyKTsKKwogcHJvdGVjdGVkOgogICAgIGNsYXNzIEFkZENvbnNvbGVNZXNz
YWdlVGFzayA6IHB1YmxpYyBUYXNrIHsKICAgICBwdWJsaWM6CkBAIC0zOTYsNiArNDAyLDggQEAg
cHJpdmF0ZToKIAogICAgIGJvb2wgbV9oYXNMb2dnZWRBdXRoZW50aWNhdGVkRW5jcnlwdGlvbldh
cm5pbmcgeyBmYWxzZSB9OwogICAgIFN0b3JhZ2VCbG9ja2luZ1BvbGljeSBtX3N0b3JhZ2VCbG9j
a2luZ1BvbGljeSB7IFN0b3JhZ2VCbG9ja2luZ1BvbGljeTo6QWxsb3dBbGwgfTsKKworICAgIEhh
c2hNYXA8Tm90aWZpY2F0aW9uQ2FsbGJhY2tJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+PiBtX25vdGlmaWNhdGlvbkNhbGxiYWNrczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZS5jcHAKaW5kZXggMDJiMjM4MGVlMThlLi5iZDk0YWE2MWJi
ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyR2xvYmFsU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAi
RnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgog
I2luY2x1ZGUgIk5vdGlmaWNhdGlvbkV2ZW50LmgiCisjaW5jbHVkZSAiUHVzaEV2ZW50LmgiCiAj
aW5jbHVkZSAiU1dDb250ZXh0TWFuYWdlci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXIuaCIK
ICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyQ2xpZW50LmgiCkBAIC03OCw2ICs3OSwxNCBAQCBTZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGU6On5TZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUoKQogICAgIGNh
bGxPbk1haW5UaHJlYWQoW25vdGlmaWNhdGlvbkNsaWVudCA9IFdURk1vdmUobV9ub3RpZmljYXRp
b25DbGllbnQpXSB7IH0pOwogfQogCit2b2lkIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTo6ZGlz
cGF0Y2hQdXNoRXZlbnQoUHVzaEV2ZW50JiBwdXNoRXZlbnQpCit7CisgICAgQVNTRVJUKCFtX3B1
c2hFdmVudCk7CisgICAgbV9wdXNoRXZlbnQgPSAmcHVzaEV2ZW50OworICAgIGRpc3BhdGNoRXZl
bnQocHVzaEV2ZW50KTsKKyAgICBtX3B1c2hFdmVudCA9IG51bGxwdHI7Cit9CisKIHZvaWQgU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlOjpub3RpZnlTZXJ2aWNlV29ya2VyUGFnZU9mQ3JlYXRpb25J
Zk5lY2Vzc2FyeSgpCiB7CiAgICAgYXV0byBzZXJ2aWNlV29ya2VyUGFnZSA9IHRoaXMtPnNlcnZp
Y2VXb3JrZXJQYWdlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgKaW5kZXggYWY1ZGQ4MzdlYTYwLi5jNDk0
ZjhkZGE1MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlckdsb2JhbFNjb3BlLmgKQEAgLTQwLDYgKzQwLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogY2xhc3MgRGVmZXJyZWRQcm9taXNlOwogY2xhc3MgRXh0ZW5kYWJsZUV2ZW50
OwogY2xhc3MgUGFnZTsKK2NsYXNzIFB1c2hFdmVudDsKIGNsYXNzIFNlcnZpY2VXb3JrZXJDbGll
bnQ7CiBjbGFzcyBTZXJ2aWNlV29ya2VyQ2xpZW50czsKIGNsYXNzIFNlcnZpY2VXb3JrZXJUaHJl
YWQ7CkBAIC04MSw2ICs4Miw5IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIFBhZ2Uq
IHNlcnZpY2VXb3JrZXJQYWdlKCk7CiAKKyAgICB2b2lkIGRpc3BhdGNoUHVzaEV2ZW50KFB1c2hF
dmVudCYpOworICAgIFB1c2hFdmVudCogcHVzaEV2ZW50KCkgeyByZXR1cm4gbV9wdXNoRXZlbnQu
Z2V0KCk7IH0KKwogICAgIGJvb2wgaGFzUGVuZGluZ1NpbGVudFB1c2hFdmVudCgpIGNvbnN0IHsg
cmV0dXJuIG1faGFzUGVuZGluZ1NpbGVudFB1c2hFdmVudDsgfQogICAgIHZvaWQgc2V0SGFzUGVu
ZGluZ1NpbGVudFB1c2hFdmVudChib29sIHZhbHVlKSB7IG1faGFzUGVuZGluZ1NpbGVudFB1c2hF
dmVudCA9IHZhbHVlOyB9CiAKQEAgLTExMiw2ICsxMTYsNyBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV9oYXNQZW5kaW5nU2lsZW50UHVzaEV2ZW50IHsgZmFsc2UgfTsKICAgICBib29sIG1faXNQcm9j
ZXNzaW5nVXNlckdlc3R1cmUgeyBmYWxzZSB9OwogICAgIFRpbWVyIG1fdXNlckdlc3R1cmVUaW1l
cjsKKyAgICBSZWZQdHI8UHVzaEV2ZW50PiBtX3B1c2hFdmVudDsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcAppbmRleCBmNWM4MTEyMjVhMTcuLmQy
NDVlMmY4Nzc1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcApAQCAtMzIsMTIgKzMyLDE0IEBA
CiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudExvb3AuaCIKICNpbmNsdWRlICJF
dmVudE5hbWVzLmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlLmgiCiAjaW5jbHVkZSAiSlNET01Q
cm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJKU05vdGlmaWNhdGlvbi5oIgogI2luY2x1ZGUg
IkxvZ2dpbmcuaCIKICNpbmNsdWRlICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIuaCIKICNpbmNs
dWRlICJOb3RpZmljYXRpb25DbGllbnQuaCIKICNpbmNsdWRlICJOb3RpZmljYXRpb25QZXJtaXNz
aW9uLmgiCisjaW5jbHVkZSAiUHVzaEV2ZW50LmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlci5o
IgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDb250YWluZXIuaCIKICNpbmNsdWRlICJTZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGUuaCIKQEAgLTI3NCw0MCArMjc2LDQ0IEBAIE5hdmlnYXRpb25QcmVs
b2FkTWFuYWdlciYgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjo6bmF2aWdhdGlvblByZWxvYWQo
KQogfQogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTl9FVkVOVCkKLXZvaWQgU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbjo6c2hvd05vdGlmaWNhdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBTdHJpbmcmJiB0aXRsZSwgTm90aWZpY2F0aW9uT3B0aW9ucyYmIG9wdGlvbnMsIERP
TVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCit2b2lkIFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb246OnNob3dOb3RpZmljYXRpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCwgU3RyaW5nJiYgdGl0bGUsIE5vdGlmaWNhdGlvbk9wdGlvbnMmJiBvcHRpb25zLCBSZWY8RGVm
ZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiB7CiAgICAgaWYgKCFtX2FjdGl2ZVdvcmtlcikgewot
ICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBUeXBlRXJyb3IsICJSZWdpc3RyYXRp
b24gZG9lcyBub3QgaGF2ZSBhbiBhY3RpdmUgd29ya2VyIl9zIH0pOworICAgICAgICBwcm9taXNl
LT5yZWplY3QoRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiUmVnaXN0cmF0aW9uIGRvZXMgbm90IGhh
dmUgYW4gYWN0aXZlIHdvcmtlciJfcyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAg
IGF1dG8qIGNsaWVudCA9IGNvbnRleHQubm90aWZpY2F0aW9uQ2xpZW50KCk7CiAgICAgaWYgKCFj
bGllbnQpIHsKLSAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAi
UmVnaXN0cmF0aW9uIG5vdCBhY3RpdmUiX3MgfSk7CisgICAgICAgIHByb21pc2UtPnJlamVjdChF
eGNlcHRpb24geyBUeXBlRXJyb3IsICJSZWdpc3RyYXRpb24gbm90IGFjdGl2ZSJfcyB9KTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChjbGllbnQtPmNoZWNrUGVybWlzc2lvbigm
Y29udGV4dCkgIT0gTm90aWZpY2F0aW9uUGVybWlzc2lvbjo6R3JhbnRlZCkgewotICAgICAgICBw
cm9taXNlLnJlamVjdChFeGNlcHRpb24geyBUeXBlRXJyb3IsICJSZWdpc3RyYXRpb24gZG9lcyBu
b3QgaGF2ZSBwZXJtaXNzaW9uIHRvIHNob3cgbm90aWZpY2F0aW9ucyJfcyB9KTsKKyAgICAgICAg
cHJvbWlzZS0+cmVqZWN0KEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlJlZ2lzdHJhdGlvbiBkb2Vz
IG5vdCBoYXZlIHBlcm1pc3Npb24gdG8gc2hvdyBub3RpZmljYXRpb25zIl9zIH0pOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKGNvbnRleHQuaXNTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUoKSkKICAgICAgICAgZG93bmNhc3Q8U2VydmljZVdvcmtlckdsb2JhbFNjb3BlPihjb250
ZXh0KS5zZXRIYXNQZW5kaW5nU2lsZW50UHVzaEV2ZW50KGZhbHNlKTsKIAotICAgIC8vIFRoZSBO
b3RpZmljYXRpb24gaXMga2VwdCBhbGl2ZSBieSB2aXJ0dWUgb2YgYmVpbmcgc2hvdygpJ24gc29v
bi4KLSAgICAvLyBGSVhNRTogV2hlbiBpbXBsZW1lbnRpbmcgZ2V0Tm90aWZpY2F0aW9ucygpLCBz
dG9yZSB0aGlzIE5vdGlmaWNhdGlvbiBpbiB0aGUgcmVnaXN0cmF0aW9uJ3Mgbm90aWZpY2F0aW9u
IGxpc3QuCiAgICAgYXV0byBub3RpZmljYXRpb25SZXN1bHQgPSBOb3RpZmljYXRpb246OmNyZWF0
ZUZvclNlcnZpY2VXb3JrZXIoY29udGV4dCwgV1RGTW92ZSh0aXRsZSksIFdURk1vdmUob3B0aW9u
cyksIG1fcmVnaXN0cmF0aW9uRGF0YS5zY29wZVVSTCk7CiAgICAgaWYgKG5vdGlmaWNhdGlvblJl
c3VsdC5oYXNFeGNlcHRpb24oKSkgewotICAgICAgICBwcm9taXNlLnJlamVjdChub3RpZmljYXRp
b25SZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKKyAgICAgICAgcHJvbWlzZS0+cmVqZWN0KG5v
dGlmaWNhdGlvblJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgYXV0byBub3RpZmljYXRpb24gPSBub3RpZmljYXRpb25SZXN1bHQucmVsZWFz
ZVJldHVyblZhbHVlKCk7Ci0gICAgbm90aWZpY2F0aW9uLT5zaG93U29vbigpOworICAgIGlmIChh
dXRvKiBzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgPSBkeW5hbWljRG93bmNhc3Q8U2VydmljZVdv
cmtlckdsb2JhbFNjb3BlPihjb250ZXh0KSkgeworICAgICAgICBpZiAoYXV0byogcHVzaEV2ZW50
ID0gc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLT5wdXNoRXZlbnQoKSkgeworICAgICAgICAgICAg
YXV0byYgZ2xvYmFsT2JqZWN0ID0gKkpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4ocHJv
bWlzZS0+Z2xvYmFsT2JqZWN0KCkpOworICAgICAgICAgICAgYXV0byYganNQcm9taXNlID0gKkpT
Qzo6anNDYXN0PEpTQzo6SlNQcm9taXNlKj4ocHJvbWlzZS0+cHJvbWlzZSgpKTsKKyAgICAgICAg
ICAgIHB1c2hFdmVudC0+d2FpdFVudGlsKERPTVByb21pc2U6OmNyZWF0ZShnbG9iYWxPYmplY3Qs
IGpzUHJvbWlzZSkpOworICAgICAgICB9CisgICAgfQogCi0gICAgY29udGV4dC5ldmVudExvb3Ao
KS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6RE9NTWFuaXB1bGF0aW9uLCBbcHJvbWlzZSA9IFdURk1v
dmUocHJvbWlzZSldKCkgbXV0YWJsZSB7Ci0gICAgICAgIHByb21pc2UucmVzb2x2ZSgpOworICAg
IGF1dG8gbm90aWZpY2F0aW9uID0gbm90aWZpY2F0aW9uUmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1
ZSgpOworICAgIG5vdGlmaWNhdGlvbi0+c2hvdyhbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSld
KCkgbXV0YWJsZSB7CisgICAgICAgIHByb21pc2UtPnJlc29sdmUoKTsKICAgICB9KTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uLmgKaW5kZXggNjlmYjVlM2E3MGU1Li41YTY4NWY0ZTFhMmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb24uaApAQCAtOTksNyArOTksNyBAQCBwdWJsaWM6CiAgICAgICAgIFN0cmlu
ZyB0YWc7CiAgICAgfTsKIAotICAgIHZvaWQgc2hvd05vdGlmaWNhdGlvbihTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiwgU3RyaW5nJiYgdGl0bGUsIE5vdGlmaWNhdGlvbk9wdGlvbnMmJiwgRE9NUHJv
bWlzZURlZmVycmVkPHZvaWQ+JiYpOworICAgIHZvaWQgc2hvd05vdGlmaWNhdGlvbihTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiwgU3RyaW5nJiYgdGl0bGUsIE5vdGlmaWNhdGlvbk9wdGlvbnMmJiwg
UmVmPERlZmVycmVkUHJvbWlzZT4mJik7CiAgICAgdm9pZCBnZXROb3RpZmljYXRpb25zKGNvbnN0
IEdldE5vdGlmaWNhdGlvbk9wdGlvbnMmIGZpbHRlciwgRE9NUHJvbWlzZURlZmVycmVkPElETFNl
cXVlbmNlPElETEludGVyZmFjZTxOb3RpZmljYXRpb24+Pj4pOwogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJU
aHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vydmlj
ZVdvcmtlclRocmVhZC5jcHAKaW5kZXggM2UzZDQ2YjczNDdhLi41OTM2ZmE1NDk2NTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3Jr
ZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0
L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCkBAIC0yMzEsNyArMjMxLDcgQEAgdm9pZCBTZXJ2aWNl
V29ya2VyVGhyZWFkOjpxdWV1ZVRhc2tUb0ZpcmVQdXNoRXZlbnQoc3RkOjpvcHRpb25hbDxWZWN0
b3I8dWludDhfdD4KICAgICAgICAgc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLT5zZXRIYXNQZW5k
aW5nU2lsZW50UHVzaEV2ZW50KHRydWUpOwogCiAgICAgICAgIGF1dG8gcHVzaEV2ZW50ID0gUHVz
aEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnB1c2hFdmVudCwgeyB9LCBXVEZNb3ZlKGRhdGEp
LCBFeHRlbmRhYmxlRXZlbnQ6OklzVHJ1c3RlZDo6WWVzKTsKLSAgICAgICAgc2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlLT5kaXNwYXRjaEV2ZW50KHB1c2hFdmVudCk7CisgICAgICAgIHNlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZS0+ZGlzcGF0Y2hQdXNoRXZlbnQocHVzaEV2ZW50KTsKIAogICAgICAg
ICBwdXNoRXZlbnQtPndoZW5BbGxFeHRlbmRMaWZldGltZVByb21pc2VzQXJlU2V0dGxlZChbc2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlLCBldmVudENyZWF0aW9uVGltZSA9IHB1c2hFdmVudC0+dGlt
ZVN0YW1wKCksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGF1dG8mJiBleHRlbmRMaWZl
dGltZVByb21pc2VzKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGJvb2wgaGFzUmVqZWN0ZWRBbnlQ
cm9taXNlID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc3YzVmZTI3OTJkNS4uMzJlOTllOGUxNDYxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIyLTA1LTE1ICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHN1cmUgY2FsbGluZyBzaG93Tm90aWZpY2F0
aW9uIHdpbGwgZXh0ZW5kIHRoZSBzZXJ2aWNlIHdvcmtlciBsaWZldGltZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQwMjczCisgICAgICAgIDxyZGFy
Oi8vOTI5Nzg0ODI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAg
ICAgT24gV2ViUHJvY2VzcyBzaWRlLCBpbXBsZW1lbnQgdGhlIG5ldyBOb2ZpY2F0aW9uQ2xpZW50
OjpzaG93IEFQSSB0aGF0IHRha2VzIGEgY2FsbGJhY2suCisgICAgICAgIERlbGF5IGNhbGxpbmcg
dGhpcyBjYWxsYmFjayB1bnRpbCBVSVByb2Nlc3MgdGVsbHMgdXMgc28gdGhyb3VnaCBhc3luYyBJ
UEMuCisgICAgICAgIE9uIFVJUHJvY2VzcyBzaWRlLCB0YWtlIGEgY2FsbGJhY2sgYW5kIGNhbGwg
aXQgd2hlbiB0aGUgc2hvdyBub3RpZmljYXRpb24gc3RlcHMgYXJlIGRvbmUuCisKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3Rp
ZmljYXRpb25NYW5hZ2VyLmg6CisgICAgICAgICogU2hhcmVkL05vdGlmaWNhdGlvbnMvTm90aWZp
Y2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmg6CisgICAgICAgICogU2hhcmVkL05vdGlmaWNh
dGlvbnMvTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1NlcnZpY2VXb3JrZXJOb3RpZmljYXRpb25I
YW5kbGVyLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9TZXJ2aWNlV29y
a2VyTm90aWZpY2F0aW9uSGFuZGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5jcHA6CisgICAgICAgICog
VUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5k
bGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1JlbW90ZVZpZGVvRnJhbWVP
YmplY3RIZWFwUHJveHlQcm9jZXNzb3IuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvTm90aWZp
Y2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlci5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oOgorCiAy
MDIyLTA1LTEzICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAg
ICAgIEFwcGxlUGF5TG9nb1N5c3RlbUltYWdlIG5lZWRsZXNzbHkgbG9hZHMgUGFzc0tpdCBpbiBX
ZWJLaXQgY2hpbGQgcHJvY2Vzc2VzIG9uIGlPUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3b3JrTm90
aWZpY2F0aW9uTWFuYWdlci5jcHAKaW5kZXggNzczNGQ1OWMxZGIxLi5hNTE5MTU3ZDU2Y2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTm90aWZpY2F0aW9ucy9OZXR3
b3JrTm90aWZpY2F0aW9uTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmNwcApAQCAtOTAs
MTAgKzkwLDkgQEAgdm9pZCBOZXR3b3JrTm90aWZpY2F0aW9uTWFuYWdlcjo6Z2V0UGVuZGluZ1B1
c2hNZXNzYWdlcyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGMKICAgICBzZW5kTWVzc2FnZVdpdGhS
ZXBseTxXZWJQdXNoRDo6TWVzc2FnZVR5cGU6OkdldFBlbmRpbmdQdXNoTWVzc2FnZXM+KFdURk1v
dmUocmVwbHlIYW5kbGVyKSk7CiB9CiAKLXZvaWQgTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXI6
OnNob3dOb3RpZmljYXRpb24oSVBDOjpDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6Tm90aWZp
Y2F0aW9uRGF0YSYpCit2b2lkIE5ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyOjpzaG93Tm90aWZp
Y2F0aW9uKElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRhdGEm
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spCiB7Ci0gICAgaWYgKCFtX2Nv
bm5lY3Rpb24pCi0gICAgICAgIHJldHVybjsKKyAgICBjYWxsYmFjaygpOwogCiAvLyAgICAgRklY
TUU6IFdoaWxlIHdlIGRvbid0IG5vcm1hbGx5IGxhbmQgY29tbWVudGVkLW91dCBjb2RlIGluIHRo
ZSB0cmVlLAogLy8gICAgIHRoaXMgaXMgYSBuaWNlIGJvb2ttYXJrIGZvciBhIGRldmVsb3BtZW50
IG1pbGVzdG9uZTsgUm91bmR0cmlwIGNvbW11bmljYXRpb24gd2l0aCB3ZWJwdXNoZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdvcmtO
b3RpZmljYXRpb25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05vdGlm
aWNhdGlvbnMvTmV0d29ya05vdGlmaWNhdGlvbk1hbmFnZXIuaAppbmRleCA0ZmZlMDJhMjk5OTIu
LmE4MDMzZjY4NDA1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
b3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9Ob3RpZmljYXRpb25zL05ldHdvcmtOb3RpZmljYXRpb25NYW5h
Z2VyLmgKQEAgLTcwLDcgKzcwLDcgQEAgcHJpdmF0ZToKICAgICBOZXR3b3JrTm90aWZpY2F0aW9u
TWFuYWdlcihOZXR3b3JrU2Vzc2lvbiYsIGNvbnN0IFN0cmluZyYgd2ViUHVzaE1hY2hTZXJ2aWNl
TmFtZSwgV2ViUHVzaEQ6OldlYlB1c2hEYWVtb25Db25uZWN0aW9uQ29uZmlndXJhdGlvbiYmKTsK
IAogICAgIHZvaWQgcmVxdWVzdFN5c3RlbU5vdGlmaWNhdGlvblBlcm1pc3Npb24oY29uc3QgU3Ry
aW5nJiBvcmlnaW5TdHJpbmcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGZpbmFs
OwotICAgIHZvaWQgc2hvd05vdGlmaWNhdGlvbihJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBXZWJD
b3JlOjpOb3RpZmljYXRpb25EYXRhJikgZmluYWw7CisgICAgdm9pZCBzaG93Tm90aWZpY2F0aW9u
KElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRhdGEmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwogICAgIHZvaWQgY2FuY2VsTm90aWZpY2F0
aW9uKGNvbnN0IFVVSUQmIG5vdGlmaWNhdGlvbklEKSBmaW5hbDsKICAgICB2b2lkIGNsZWFyTm90
aWZpY2F0aW9ucyhjb25zdCBWZWN0b3I8VVVJRD4mIG5vdGlmaWNhdGlvbklEcykgZmluYWw7CiAg
ICAgdm9pZCBkaWREZXN0cm95Tm90aWZpY2F0aW9uKGNvbnN0IFVVSUQmIG5vdGlmaWNhdGlvbklE
KSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05vdGlmaWNhdGlvbnMv
Tm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5oCmluZGV4
IDlmOTk2YWExMzZmYy4uY2NlNTQxYmQyYTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uTWFuYWdl
ck1lc3NhZ2VIYW5kbGVyLmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
fk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcigpID0gZGVmYXVsdDsKIAogICAgIHZp
cnR1YWwgdm9pZCByZXF1ZXN0U3lzdGVtTm90aWZpY2F0aW9uUGVybWlzc2lvbihjb25zdCBTdHJp
bmcmIHNlY3VyaXR5T3JpZ2luLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSA9IDA7
Ci0gICAgdmlydHVhbCB2b2lkIHNob3dOb3RpZmljYXRpb24oSVBDOjpDb25uZWN0aW9uJiwgY29u
c3QgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGF0YSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2hv
d05vdGlmaWNhdGlvbihJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpOb3RpZmljYXRp
b25EYXRhJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGNhbmNlbE5vdGlmaWNhdGlvbihjb25zdCBVVUlEJiBub3RpZmljYXRpb25JRCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBjbGVhck5vdGlmaWNhdGlvbnMoY29uc3QgVmVjdG9yPFVVSUQ+JiBu
b3RpZmljYXRpb25JRHMpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkRGVzdHJveU5vdGlmaWNh
dGlvbihjb25zdCBVVUlEJiBub3RpZmljYXRpb25JRCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhh
bmRsZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Ob3RpZmljYXRpb25zL05v
dGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlci5tZXNzYWdlcy5pbgppbmRleCA2YWUxOTM3
Nzk4YTUuLjViOWE3M2M3MjIyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvTm90
aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvTm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb25NYW5h
Z2VyTWVzc2FnZUhhbmRsZXIubWVzc2FnZXMuaW4KQEAgLTIyLDcgKzIyLDcgQEAKIAogbWVzc2Fn
ZXMgLT4gTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyIE5vdFJlZkNvdW50ZWQgewog
ICAgIFJlcXVlc3RTeXN0ZW1Ob3RpZmljYXRpb25QZXJtaXNzaW9uKFN0cmluZyBvcmlnaW5JZGVu
dGlmaWVyKSAtPiAoYm9vbCBhbGxvd2VkKQotICAgIFNob3dOb3RpZmljYXRpb24oc3RydWN0IFdl
YkNvcmU6Ok5vdGlmaWNhdGlvbkRhdGEgbm90aWZpY2F0aW9uRGF0YSkgV2FudHNDb25uZWN0aW9u
CisgICAgU2hvd05vdGlmaWNhdGlvbihzdHJ1Y3QgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGF0YSBu
b3RpZmljYXRpb25EYXRhKSAtPiAoKSBXYW50c0Nvbm5lY3Rpb24KICAgICBDYW5jZWxOb3RpZmlj
YXRpb24oVVVJRCBub3RpZmljYXRpb25JRCkKICAgICBDbGVhck5vdGlmaWNhdGlvbnMoVmVjdG9y
PFVVSUQ+IG5vdGlmaWNhdGlvbklEcykKICAgICBEaWREZXN0cm95Tm90aWZpY2F0aW9uKFVVSUQg
bm90aWZpY2F0aW9uSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL1NlcnZpY2VXb3JrZXJOb3RpZmljYXRpb25IYW5kbGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvU2VydmljZVdvcmtlck5vdGlmaWNhdGlvbkhh
bmRsZXIuY3BwCmluZGV4IDg0NzRhNzkzZjA5OS4uODhkMGY2ZWU5NTljIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1NlcnZpY2VXb3JrZXJOb3RpZmlj
YXRpb25IYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1NlcnZpY2VXb3JrZXJOb3RpZmljYXRpb25IYW5kbGVyLmNwcApAQCAtMjgsNiArMjgsNyBA
QAogCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTm90
aWZpY2F0aW9uRGF0YS5oPgorI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIApAQCAtNTIsOCArNTMsMTAgQEAgV2Vic2l0ZURhdGFTdG9yZSogU2VydmljZVdvcmtl
ck5vdGlmaWNhdGlvbkhhbmRsZXI6OmRhdGFTdG9yZUZvck5vdGlmaWNhdGlvbklEKGMKICAgICBy
ZXR1cm4gV2Vic2l0ZURhdGFTdG9yZTo6ZXhpc3RpbmdEYXRhU3RvcmVGb3JTZXNzaW9uSUQoaXRl
cmF0b3ItPnZhbHVlKTsKIH0KIAotdm9pZCBTZXJ2aWNlV29ya2VyTm90aWZpY2F0aW9uSGFuZGxl
cjo6c2hvd05vdGlmaWNhdGlvbihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIGNvbnN0IFdl
YkNvcmU6Ok5vdGlmaWNhdGlvbkRhdGEmIGRhdGEpCit2b2lkIFNlcnZpY2VXb3JrZXJOb3RpZmlj
YXRpb25IYW5kbGVyOjpzaG93Tm90aWZpY2F0aW9uKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlv
biwgY29uc3QgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGF0YSYgZGF0YSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQogeworICAgIGF1dG8gc2NvcGUgPSBtYWtlU2NvcGVFeGl0
KFsmY2FsbGJhY2tdIHsgY2FsbGJhY2soKTsgfSk7CisKICAgICBhdXRvKiBkYXRhU3RvcmUgPSBX
ZWJzaXRlRGF0YVN0b3JlOjpleGlzdGluZ0RhdGFTdG9yZUZvclNlc3Npb25JRChkYXRhLnNvdXJj
ZVNlc3Npb24pOwogICAgIGlmICghZGF0YVN0b3JlKQogICAgICAgICByZXR1cm47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1NlcnZpY2VXb3JrZXJO
b3RpZmljYXRpb25IYW5kbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRp
b25zL1NlcnZpY2VXb3JrZXJOb3RpZmljYXRpb25IYW5kbGVyLmgKaW5kZXggMTViZjhkYzM5NDlh
Li5jZWM4MzQ5Yzk2N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlm
aWNhdGlvbnMvU2VydmljZVdvcmtlck5vdGlmaWNhdGlvbkhhbmRsZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1NlcnZpY2VXb3JrZXJOb3RpZmljYXRpb25I
YW5kbGVyLmgKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgU2VydmljZVdvcmtlck5vdGlmaWNhdGlv
bkhhbmRsZXIgZmluYWwgOiBwdWJsaWMgTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2UKIHB1Ymxp
YzoKICAgICBzdGF0aWMgU2VydmljZVdvcmtlck5vdGlmaWNhdGlvbkhhbmRsZXImIHNpbmdsZXRv
bigpOwogCi0gICAgdm9pZCBzaG93Tm90aWZpY2F0aW9uKElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0
IFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRhdGEmKSBmaW5hbDsKKyAgICB2b2lkIHNob3dOb3RpZmlj
YXRpb24oSVBDOjpDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGF0YSYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CiAgICAgdm9pZCBjYW5jZWxOb3Rp
ZmljYXRpb24oY29uc3QgVVVJRCYgbm90aWZpY2F0aW9uSUQpIGZpbmFsOwogICAgIHZvaWQgY2xl
YXJOb3RpZmljYXRpb25zKGNvbnN0IFZlY3RvcjxVVUlEPiYgbm90aWZpY2F0aW9uSURzKSBmaW5h
bDsKICAgICB2b2lkIGRpZERlc3Ryb3lOb3RpZmljYXRpb24oY29uc3QgVVVJRCYgbm90aWZpY2F0
aW9uSUQpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZp
Y2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVz
c2FnZUhhbmRsZXIuY3BwCmluZGV4IDFjZmQzMjhkNmY3Mi4uMmMwMzhkNjdhYmNmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlv
bk1hbmFnZXJNZXNzYWdlSGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Tm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuY3BwCkBA
IC00MSwxMyArNDEsMTQgQEAgdm9pZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRs
ZXI6OnJlcXVlc3RTeXN0ZW1Ob3RpZmljYXRpb25QZXJtaXNzaW9uKGMKICAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi12b2lkIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNz
YWdlSGFuZGxlcjo6c2hvd05vdGlmaWNhdGlvbihJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24s
IGNvbnN0IFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRhdGEmIGRhdGEpCit2b2lkIFdlYk5vdGlmaWNh
dGlvbk1hbmFnZXJNZXNzYWdlSGFuZGxlcjo6c2hvd05vdGlmaWNhdGlvbihJUEM6OkNvbm5lY3Rp
b24mIGNvbm5lY3Rpb24sIGNvbnN0IFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkRhdGEmIGRhdGEsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjYWxsYmFjaykKIHsKICAgICBpZiAoIWRhdGEuc2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvblVSTC5pc0VtcHR5KCkpIHsKLSAgICAgICAgU2VydmljZVdv
cmtlck5vdGlmaWNhdGlvbkhhbmRsZXI6OnNpbmdsZXRvbigpLnNob3dOb3RpZmljYXRpb24oY29u
bmVjdGlvbiwgZGF0YSk7CisgICAgICAgIFNlcnZpY2VXb3JrZXJOb3RpZmljYXRpb25IYW5kbGVy
OjpzaW5nbGV0b24oKS5zaG93Tm90aWZpY2F0aW9uKGNvbm5lY3Rpb24sIGRhdGEsIFdURk1vdmUo
Y2FsbGJhY2spKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBtX3dlYlBhZ2VQcm94eS5z
aG93Tm90aWZpY2F0aW9uKGNvbm5lY3Rpb24sIGRhdGEpOworICAgIGNhbGxiYWNrKCk7CiB9CiAK
IHZvaWQgV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyOjpjYW5jZWxOb3RpZmlj
YXRpb24oY29uc3QgVVVJRCYgbm90aWZpY2F0aW9uSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdl
SGFuZGxlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3Rp
ZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaAppbmRleCA1MjUwNWU5ZDI1NjAuLjc1NDFi
MzY4MzJiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9u
cy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyTWVzc2FnZUhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdl
SGFuZGxlci5oCkBAIC0zNyw3ICszNyw3IEBAIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2ViTm90
aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5kbGVyKFdlYlBhZ2VQcm94eSYpOwogCiAgICAgdm9p
ZCByZXF1ZXN0U3lzdGVtTm90aWZpY2F0aW9uUGVybWlzc2lvbihjb25zdCBTdHJpbmcmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBmaW5hbDsKLSAgICB2b2lkIHNob3dOb3RpZmlj
YXRpb24oSVBDOjpDb25uZWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGF0YSYp
IGZpbmFsOworICAgIHZvaWQgc2hvd05vdGlmaWNhdGlvbihJUEM6OkNvbm5lY3Rpb24mLCBjb25z
dCBXZWJDb3JlOjpOb3RpZmljYXRpb25EYXRhJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KSBmaW5hbDsKICAgICB2b2lkIGNhbmNlbE5vdGlmaWNhdGlvbihjb25zdCBVVUlEJiBub3RpZmlj
YXRpb25JRCkgZmluYWw7CiAgICAgdm9pZCBjbGVhck5vdGlmaWNhdGlvbnMoY29uc3QgVmVjdG9y
PFVVSUQ+JiBub3RpZmljYXRpb25JRHMpIGZpbmFsOwogICAgIHZvaWQgZGlkRGVzdHJveU5vdGlm
aWNhdGlvbihjb25zdCBVVUlEJiBub3RpZmljYXRpb25JRCkgZmluYWw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlm
aWNhdGlvbk1hbmFnZXIuY3BwCmluZGV4IDBlNTNhM2YyMzAzNi4uYTliNDBmMTI1OWUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmlj
YXRpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTm90aWZpY2F0
aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyLmNwcApAQCAtMTIzLDE0ICsxMjMsMTQgQEAgdm9p
ZCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpyZW1vdmVBbGxQZXJtaXNzaW9uc0ZvclRlc3Rpbmco
KQogfQogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpCi10ZW1wbGF0ZTx0eXBlbmFtZSBVPiBi
b29sIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OnNlbmROb3RpZmljYXRpb25NZXNzYWdlKFUmJiBt
ZXNzYWdlLCBOb3RpZmljYXRpb24mIG5vdGlmaWNhdGlvbiwgV2ViUGFnZSogcGFnZSkKK3N0YXRp
YyBib29sIHNlbmRNZXNzYWdlKE5vdGlmaWNhdGlvbiYgbm90aWZpY2F0aW9uLCBXZWJQYWdlKiBw
YWdlLCBjb25zdCBGdW5jdGlvbjxib29sKElQQzo6Q29ubmVjdGlvbiYsIHVpbnQ2NF90KT4mIHNl
bmRNZXNzYWdlKQogewogICAgIGlmICghcGFnZSAmJiAhbm90aWZpY2F0aW9uLnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAjaWYgRU5BQkxFKEJVSUxU
X0lOX05PVElGSUNBVElPTlMpCiAgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJl
ZEZlYXR1cmVzKCkuYnVpbHRJbk5vdGlmaWNhdGlvbnNFbmFibGVkKCkpCi0gICAgICAgIHJldHVy
biBtX3Byb2Nlc3MuZW5zdXJlTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlvbigp
LnNlbmQoV1RGTW92ZShtZXNzYWdlKSwgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc2Vzc2lvbklE
KCkudG9VSW50NjQoKSk7CisgICAgICAgIHJldHVybiBzZW5kTWVzc2FnZShXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5lbnN1cmVOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCks
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnNlc3Npb25JRCgpLnRvVUludDY0KCkpOwogI2VuZGlm
CiAKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyPiBwYWdlSWRlbnRp
ZmllcjsKQEAgLTE0MywxMiArMTQzLDI1IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFU+IGJvb2wgV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlcjo6c2VuZE5vdGlmaWNhdGlvbk1lc3NhZ2UoVSYmIG1lCiAgICAg
fQogCiAgICAgQVNTRVJUKHBhZ2VJZGVudGlmaWVyKTsKKyAgICByZXR1cm4gc2VuZE1lc3NhZ2Uo
KldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCksIHBhZ2VJ
ZGVudGlmaWVyLT50b1VJbnQ2NCgpKTsKK30KIAotICAgIHJldHVybiBtX3Byb2Nlc3MucGFyZW50
UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChXVEZNb3ZlKG1lc3NhZ2UpLCAqcGFnZUlkZW50aWZp
ZXIpOwordGVtcGxhdGU8dHlwZW5hbWUgVT4gYm9vbCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpz
ZW5kTm90aWZpY2F0aW9uTWVzc2FnZShVJiYgbWVzc2FnZSwgTm90aWZpY2F0aW9uJiBub3RpZmlj
YXRpb24sIFdlYlBhZ2UqIHBhZ2UpCit7CisgICAgcmV0dXJuIHNlbmRNZXNzYWdlKG5vdGlmaWNh
dGlvbiwgcGFnZSwgWyZdIChhdXRvJiBjb25uZWN0aW9uLCBhdXRvIGRlc3RpbmF0aW9uSWRlbnRp
ZmllcikgeworICAgICAgICByZXR1cm4gY29ubmVjdGlvbi5zZW5kKFdURk1vdmUobWVzc2FnZSks
IGRlc3RpbmF0aW9uSWRlbnRpZmllcik7CisgICAgfSk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1l
IFU+IGJvb2wgV2ViTm90aWZpY2F0aW9uTWFuYWdlcjo6c2VuZE5vdGlmaWNhdGlvbk1lc3NhZ2VX
aXRoQXN5bmNSZXBseShVJiYgbWVzc2FnZSwgTm90aWZpY2F0aW9uJiBub3RpZmljYXRpb24sIFdl
YlBhZ2UqIHBhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjYWxsYmFjaykKK3sKKyAg
ICByZXR1cm4gc2VuZE1lc3NhZ2Uobm90aWZpY2F0aW9uLCBwYWdlLCBbJl0gKGF1dG8mIGNvbm5l
Y3Rpb24sIGF1dG8gZGVzdGluYXRpb25JZGVudGlmaWVyKSB7CisgICAgICAgIHJldHVybiBjb25u
ZWN0aW9uLnNlbmRXaXRoQXN5bmNSZXBseShXVEZNb3ZlKG1lc3NhZ2UpLCBXVEZNb3ZlKGNhbGxi
YWNrKSwgZGVzdGluYXRpb25JZGVudGlmaWVyKTsKKyAgICB9KTsKIH0KICNlbmRpZiAvLyBFTkFC
TEUoTk9USUZJQ0FUSU9OUykKIAotYm9vbCBXZWJOb3RpZmljYXRpb25NYW5hZ2VyOjpzaG93KE5v
dGlmaWNhdGlvbiYgbm90aWZpY2F0aW9uLCBXZWJQYWdlKiBwYWdlKQorYm9vbCBXZWJOb3RpZmlj
YXRpb25NYW5hZ2VyOjpzaG93KE5vdGlmaWNhdGlvbiYgbm90aWZpY2F0aW9uLCBXZWJQYWdlKiBw
YWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY2FsbGJhY2spCiB7CiAjaWYgRU5BQkxF
KE5PVElGSUNBVElPTlMpCiAgICAgTE9HKE5vdGlmaWNhdGlvbnMsICJXZWJQcm9jZXNzICVpIGdv
aW5nIHRvIHNob3cgbm90aWZpY2F0aW9uICVzIiwgZ2V0cGlkKCksIG5vdGlmaWNhdGlvbi5pZGVu
dGlmaWVyKCkudG9TdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKQEAgLTE1Nyw3ICsxNzAsNyBAQCBi
b29sIFdlYk5vdGlmaWNhdGlvbk1hbmFnZXI6OnNob3coTm90aWZpY2F0aW9uJiBub3RpZmljYXRp
b24sIFdlYlBhZ2UqIHBhZ2UpCiAgICAgaWYgKHBhZ2UgJiYgIXBhZ2UtPmNvcmVQYWdlKCktPnNl
dHRpbmdzKCkubm90aWZpY2F0aW9uc0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
Ci0gICAgaWYgKCFzZW5kTm90aWZpY2F0aW9uTWVzc2FnZShNZXNzYWdlczo6Tm90aWZpY2F0aW9u
TWFuYWdlck1lc3NhZ2VIYW5kbGVyOjpTaG93Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbi5kYXRh
KCkpLCBub3RpZmljYXRpb24sIHBhZ2UpKQorICAgIGlmICghc2VuZE5vdGlmaWNhdGlvbk1lc3Nh
Z2VXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6Tm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VIYW5k
bGVyOjpTaG93Tm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbi5kYXRhKCkpLCBub3RpZmljYXRpb24s
IHBhZ2UsIFdURk1vdmUoY2FsbGJhY2spKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
aWYgKCFub3RpZmljYXRpb24uaXNQZXJzaXN0ZW50KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXIuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1h
bmFnZXIuaAppbmRleCBiMjM1MjZiOTc1MmIuLjdmNTc2NDEwMjU0OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlm
aWNhdGlvbk1hbmFnZXIuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NT
dXBwbGVtZW50LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RpZmljYXRpb25DbGllbnQuaD4KICNp
bmNsdWRlIDxvcHRpb25hbD4KKyNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KQEAgLTU1LDcgKzU2LDcgQEAgcHVibGljOgogCiAgICAgc3Rh
dGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7CiAgICAgCi0gICAgYm9vbCBzaG93KFdl
YkNvcmU6Ok5vdGlmaWNhdGlvbiYsIFdlYlBhZ2UqKTsKKyAgICBib29sIHNob3coV2ViQ29yZTo6
Tm90aWZpY2F0aW9uJiwgV2ViUGFnZSosIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAg
ICAgdm9pZCBjYW5jZWwoV2ViQ29yZTo6Tm90aWZpY2F0aW9uJiwgV2ViUGFnZSopOwogCiAgICAg
Ly8gVGhpcyBjYWxsYmFjayBjb21lcyBmcm9tIFdlYkNvcmUsIG5vdCBtZXNzYWdlZCBmcm9tIHRo
ZSBVSSBwcm9jZXNzLgpAQCAtODIsNiArODMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVt
b3ZlTm90aWZpY2F0aW9uRGVjaXNpb25zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvcmlnaW5TdHJp
bmdzKTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFU+IGJvb2wgc2VuZE5vdGlmaWNhdGlvbk1l
c3NhZ2UoVSYmIG1lc3NhZ2UsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiYsIFdlYlBhZ2UqKTsKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiBib29sIHNlbmROb3RpZmljYXRpb25NZXNzYWdlV2l0aEFz
eW5jUmVwbHkoVSYmIG1lc3NhZ2UsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiYsIFdlYlBhZ2UqLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCiAgICAgV2ViUHJvY2VzcyYgbV9wcm9jZXNz
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuY3BwCmluZGV4IDY3MTExYTg0YTY1MS4u
ZDZmN2VhYzcwZTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcApAQCAtNDgs
MTEgKzQ4LDE5IEBAIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6fldlYk5vdGlmaWNhdGlvbkNsaWVu
dCgpCiAgICAgQVNTRVJUKGlzTWFpblJ1bkxvb3AoKSk7CiB9CiAKLWJvb2wgV2ViTm90aWZpY2F0
aW9uQ2xpZW50OjpzaG93KE5vdGlmaWNhdGlvbiYgbm90aWZpY2F0aW9uKQorYm9vbCBXZWJOb3Rp
ZmljYXRpb25DbGllbnQ6OnNob3coTm90aWZpY2F0aW9uJiBub3RpZmljYXRpb24sIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjYWxsYmFjaykKIHsKKyAgICBhdXRvKiBjb250ZXh0ID0gbm90
aWZpY2F0aW9uLnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICBBU1NFUlQoY29udGV4dCk7
CisKICAgICBib29sIHJlc3VsdDsKLSAgICBjYWxsT25NYWluUnVuTG9vcEFuZFdhaXQoWyZyZXN1
bHQsIHByb3RlY3RlZE5vdGlmaWNhdGlvbiA9IFJlZiB7IG5vdGlmaWNhdGlvbiB9LCBwYWdlID0g
bV9wYWdlXSgpIHsKLSAgICAgICAgcmVzdWx0ID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuc3Vw
cGxlbWVudDxXZWJOb3RpZmljYXRpb25NYW5hZ2VyPigpLT5zaG93KHByb3RlY3RlZE5vdGlmaWNh
dGlvbi5nZXQoKSwgcGFnZSk7CisgICAgY2FsbE9uTWFpblJ1bkxvb3BBbmRXYWl0KFsmcmVzdWx0
LCBwcm90ZWN0ZWROb3RpZmljYXRpb24gPSBSZWYgeyBub3RpZmljYXRpb24gfSwgcGFnZSA9IG1f
cGFnZSwgY29udGV4dElkZW50aWZpZXIgPSBjb250ZXh0LT5pZGVudGlmaWVyKCksIGNhbGxiYWNr
SWRlbnRpZmllciA9IGNvbnRleHQtPmFkZE5vdGlmaWNhdGlvbkNhbGxiYWNrKFdURk1vdmUoY2Fs
bGJhY2spKV0oKSB7CisgICAgICAgIHJlc3VsdCA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnN1
cHBsZW1lbnQ8V2ViTm90aWZpY2F0aW9uTWFuYWdlcj4oKS0+c2hvdyhwcm90ZWN0ZWROb3RpZmlj
YXRpb24uZ2V0KCksIHBhZ2UsIFtjb250ZXh0SWRlbnRpZmllciwgY2FsbGJhY2tJZGVudGlmaWVy
XSB7CisgICAgICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojpwb3N0VGFza1RvKGNvbnRl
eHRJZGVudGlmaWVyLCBbY2FsbGJhY2tJZGVudGlmaWVyXShhdXRvJiBjb250ZXh0KSB7CisgICAg
ICAgICAgICAgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBjb250ZXh0LnRha2VOb3RpZmljYXRpb25D
YWxsYmFjayhjYWxsYmFja0lkZW50aWZpZXIpKQorICAgICAgICAgICAgICAgICAgICBjYWxsYmFj
aygpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOwogICAgIH0pOwogICAgIHJldHVybiBy
ZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgKaW5kZXggMWJlZDkxODcwN2I2
Li44NTI5ZTZhMjJlMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJOb3RpZmljYXRpb25DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgKQEAgLTM4LDE5
ICszOCwxOSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViUGFnZTsKIAotY2xhc3Mg
V2ViTm90aWZpY2F0aW9uQ2xpZW50IDogcHVibGljIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVu
dCB7CitjbGFzcyBXZWJOb3RpZmljYXRpb25DbGllbnQgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6
Tm90aWZpY2F0aW9uQ2xpZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKICAgICBXZWJOb3RpZmljYXRpb25DbGllbnQoV2ViUGFnZSopOwogICAgIHZpcnR1YWwgfldl
Yk5vdGlmaWNhdGlvbkNsaWVudCgpOwogCiBwcml2YXRlOgotICAgIGJvb2wgc2hvdyhXZWJDb3Jl
OjpOb3RpZmljYXRpb24mKSBvdmVycmlkZTsKLSAgICB2b2lkIGNhbmNlbChXZWJDb3JlOjpOb3Rp
ZmljYXRpb24mKSBvdmVycmlkZTsKLSAgICB2b2lkIG5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3ll
ZChXZWJDb3JlOjpOb3RpZmljYXRpb24mKSBvdmVycmlkZTsKLSAgICB2b2lkIG5vdGlmaWNhdGlv
bkNvbnRyb2xsZXJEZXN0cm95ZWQoKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlcXVlc3RQZXJtaXNz
aW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBQZXJtaXNzaW9uSGFuZGxlciYm
KSBvdmVycmlkZTsKLSAgICBXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24g
Y2hlY2tQZXJtaXNzaW9uKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBvdmVycmlk
ZTsKKyAgICBib29sIHNob3coV2ViQ29yZTo6Tm90aWZpY2F0aW9uJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKSBmaW5hbDsKKyAgICB2b2lkIGNhbmNlbChXZWJDb3JlOjpOb3RpZmljYXRp
b24mKSBmaW5hbDsKKyAgICB2b2lkIG5vdGlmaWNhdGlvbk9iamVjdERlc3Ryb3llZChXZWJDb3Jl
OjpOb3RpZmljYXRpb24mKSBmaW5hbDsKKyAgICB2b2lkIG5vdGlmaWNhdGlvbkNvbnRyb2xsZXJE
ZXN0cm95ZWQoKSBmaW5hbDsKKyAgICB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFdlYkNvcmU6OlNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBQZXJtaXNzaW9uSGFuZGxlciYmKSBmaW5hbDsKKyAgICBX
ZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQ6OlBlcm1pc3Npb24gY2hlY2tQZXJtaXNzaW9uKFdl
YkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSBmaW5hbDsKICAgICAKICAgICBXZWJQYWdl
KiBtX3BhZ2UgeyBudWxscHRyIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4
IDdiMDhhYTE4YWE0Yi4uNWQ4MDhjN2ZiYjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTQgQEAKKzIwMjItMDUtMTUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgorCisgICAgICAgIE1ha2Ugc3VyZSBjYWxsaW5nIHNob3dOb3RpZmljYXRpb24gd2ls
bCBleHRlbmQgdGhlIHNlcnZpY2Ugd29ya2VyIGxpZmV0aW1lCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDAyNzMKKyAgICAgICAgPHJkYXI6Ly85Mjk3
ODQ4Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbToKKwogMjAyMi0wNS0wNiAgQnJlbnQgRnVs
Z2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgdGhlIHZpZXdwb3J0
Rml0RW5hYmxlZCBXS1ByZWZlcmVuY2Ugbm93IHRoYXQgaXQgaXMgYWx3YXlzIG9uIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0
aW9uQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJO
b3RpZmljYXRpb25DbGllbnQuaAppbmRleCBlNTcxNTNmNWZhZTguLjYxMTQ1MzZjZTc0NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZp
Y2F0aW9uQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50LmgKQEAgLTM1LDcgKzM1LDcgQEAKIEBjbGFzcyBXZWJO
b3RpZmljYXRpb25Qb2xpY3lMaXN0ZW5lcjsKIEBjbGFzcyBXZWJWaWV3OwogCi1jbGFzcyBXZWJO
b3RpZmljYXRpb25DbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50IHsK
K2NsYXNzIFdlYk5vdGlmaWNhdGlvbkNsaWVudCBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpOb3Rp
ZmljYXRpb25DbGllbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgog
ICAgIFdlYk5vdGlmaWNhdGlvbkNsaWVudChXZWJWaWV3ICopOwpAQCAtNDUsMTIgKzQ1LDEyIEBA
IHB1YmxpYzoKICAgICB1aW50NjRfdCBub3RpZmljYXRpb25JREZvclRlc3RpbmcoV2ViQ29yZTo6
Tm90aWZpY2F0aW9uKik7CiAKIHByaXZhdGU6Ci0gICAgYm9vbCBzaG93KFdlYkNvcmU6Ok5vdGlm
aWNhdGlvbiYpIG92ZXJyaWRlOwotICAgIHZvaWQgY2FuY2VsKFdlYkNvcmU6Ok5vdGlmaWNhdGlv
biYpIG92ZXJyaWRlOwotICAgIHZvaWQgbm90aWZpY2F0aW9uT2JqZWN0RGVzdHJveWVkKFdlYkNv
cmU6Ok5vdGlmaWNhdGlvbiYpIG92ZXJyaWRlOwotICAgIHZvaWQgbm90aWZpY2F0aW9uQ29udHJv
bGxlckRlc3Ryb3llZCgpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2Vi
Q29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFBlcm1pc3Npb25IYW5kbGVyJiYpIG92ZXJy
aWRlOwotICAgIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbiBjaGVja1Bl
cm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIG92ZXJyaWRlOworICAg
IGJvb2wgc2hvdyhXZWJDb3JlOjpOb3RpZmljYXRpb24mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpIGZpbmFsOworICAgIHZvaWQgY2FuY2VsKFdlYkNvcmU6Ok5vdGlmaWNhdGlvbiYpIGZp
bmFsOworICAgIHZvaWQgbm90aWZpY2F0aW9uT2JqZWN0RGVzdHJveWVkKFdlYkNvcmU6Ok5vdGlm
aWNhdGlvbiYpIGZpbmFsOworICAgIHZvaWQgbm90aWZpY2F0aW9uQ29udHJvbGxlckRlc3Ryb3ll
ZCgpIGZpbmFsOworICAgIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oV2ViQ29yZTo6U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYsIFBlcm1pc3Npb25IYW5kbGVyJiYpIGZpbmFsOworICAgIFdlYkNvcmU6
Ok5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbiBjaGVja1Blcm1pc3Npb24oV2ViQ29yZTo6
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCopIGZpbmFsOwogCiAgICAgdm9pZCByZXF1ZXN0UGVybWlz
c2lvbihXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgV2ViTm90aWZpY2F0aW9uUG9s
aWN5TGlzdGVuZXIgKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbQppbmRleCBjMGFh
ZDA5OTNjOGYuLmIzMWU0NmU4NDA0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViTm90aWZpY2F0aW9uQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYk5vdGlmaWNhdGlvbkNsaWVudC5tbQpA
QCAtMzYsNiArMzYsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9TY3JpcHRFeGVjdXRpb25Db250ZXh0
Lmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogI2ltcG9ydCA8d3RmL0Nv
bXBsZXRpb25IYW5kbGVyLmg+CisjaW1wb3J0IDx3dGYvU2NvcGUuaD4KICNpbXBvcnQgPHd0Zi9j
b2NvYS9WZWN0b3JDb2NvYS5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTU4LDgg
KzU5LDEwIEBAIFdlYk5vdGlmaWNhdGlvbkNsaWVudDo6V2ViTm90aWZpY2F0aW9uQ2xpZW50KFdl
YlZpZXcgKndlYlZpZXcpCiB7CiB9CiAKLWJvb2wgV2ViTm90aWZpY2F0aW9uQ2xpZW50OjpzaG93
KE5vdGlmaWNhdGlvbiYgbm90aWZpY2F0aW9uKQorYm9vbCBXZWJOb3RpZmljYXRpb25DbGllbnQ6
OnNob3coTm90aWZpY2F0aW9uJiBub3RpZmljYXRpb24sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjYWxsYmFjaykKIHsKKyAgICBhdXRvIHNjb3BlID0gbWFrZVNjb3BlRXhpdChbJmNhbGxi
YWNrXSB7IGNhbGxiYWNrKCk7IH0pOworCiAgICAgaWYgKCFbbV93ZWJWaWV3IF9ub3RpZmljYXRp
b25Qcm92aWRlcl0pCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGQ4Mjk2ODFhMGI4Mi4uNDJhYThhYzUy
MGU0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMjItMDUtMTUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgorCisgICAgICAgIE1ha2Ugc3VyZSBjYWxsaW5nIHNob3dOb3RpZmljYXRpb24gd2lsbCBl
eHRlbmQgdGhlIHNlcnZpY2Ugd29ya2VyIGxpZmV0aW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDAyNzMKKyAgICAgICAgPHJkYXI6Ly85Mjk3ODQ4
Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdE5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcDoKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3ROb3RpZmljYXRpb25Qcm92aWRlci5oOgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvUHVzaEFQSS5tbToKKwogMjAyMi0wNS0xMyAgSm9uYXRoYW4g
QmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgW3dlYmtpdC1wYXRjaF0gQXBw
bHkgcGF0Y2hlcyBjb21taXQgbWVzc2FnZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdE5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dE5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcAppbmRleCA3ZmNkZDllOGEzNjAuLjBiN2Y4YjViZGE1
YSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0Tm90aWZpY2F0aW9uUHJvdmlk
ZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdE5vdGlmaWNhdGlvblByb3ZpZGVy
LmNwcApAQCAtMTIxLDYgKzEyMSw4IEBAIHN0YXRpYyBXS05vdGlmaWNhdGlvbk1hbmFnZXJSZWYg
bm90aWZpY2F0aW9uTWFuYWdlckZvclBhZ2UoV0tQYWdlUmVmIHBhZ2UpCiAKIHZvaWQgVGVzdE5v
dGlmaWNhdGlvblByb3ZpZGVyOjpzaG93V2ViTm90aWZpY2F0aW9uKFdLUGFnZVJlZiBwYWdlLCBX
S05vdGlmaWNhdGlvblJlZiBub3RpZmljYXRpb24pCiB7CisgICAgbV9oYXNSZWNlaXZlZE5vdGlm
aWNhdGlvbiA9IHRydWU7CisKICAgICBhdXRvIG5vdGlmaWNhdGlvbk1hbmFnZXIgPSBub3RpZmlj
YXRpb25NYW5hZ2VyRm9yUGFnZShwYWdlKTsKICAgICB1aW50NjRfdCBpZGVudGlmaWVyID0gV0tO
b3RpZmljYXRpb25HZXRJRChub3RpZmljYXRpb24pOwogICAgIFdLTm90aWZpY2F0aW9uTWFuYWdl
clByb3ZpZGVyRGlkU2hvd05vdGlmaWNhdGlvbihub3RpZmljYXRpb25NYW5hZ2VyLCBpZGVudGlm
aWVyKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdE5vdGlmaWNhdGlvblBy
b3ZpZGVyLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3ROb3RpZmljYXRpb25Qcm92aWRlci5o
CmluZGV4IDZiMDdhMmU2NzcyNS4uMTI4ZDA4OWQ2ODQ4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3ROb3RpZmljYXRpb25Qcm92aWRlci5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdE5vdGlmaWNhdGlvblByb3ZpZGVyLmgKQEAgLTQ3LDExICs0NywxNSBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzaG93V2ViTm90aWZpY2F0aW9uKFdLUGFnZVJlZiwgV0tOb3RpZmljYXRp
b25SZWYpOwogICAgIHZvaWQgc2ltdWxhdGVOb3RpZmljYXRpb25DbGljaygpOwogCisgICAgYm9v
bCBoYXNSZWNlaXZlZE5vdGlmaWNhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1faGFzUmVjZWl2ZWRO
b3RpZmljYXRpb247IH0KKyAgICB2b2lkIHJlc2V0SGFzUmVjZWl2ZWROb3RpZmljYXRpb24oKSB7
IG1faGFzUmVjZWl2ZWROb3RpZmljYXRpb24gPSBmYWxzZTsgfQorCiBwcml2YXRlOgogICAgIFZl
Y3RvcjxXS05vdGlmaWNhdGlvbk1hbmFnZXJSZWY+IG1fbWFuYWdlcnM7CiAgICAgSGFzaE1hcDxT
dHJpbmcsIGJvb2w+IG1fcGVybWlzc2lvbnM7CiAgICAgV0tOb3RpZmljYXRpb25Qcm92aWRlclYw
IG1fcHJvdmlkZXI7CiAKKyAgICBib29sIG1faGFzUmVjZWl2ZWROb3RpZmljYXRpb24geyBmYWxz
ZSB9OwogICAgIHN0ZDo6cGFpcjxXS05vdGlmaWNhdGlvbk1hbmFnZXJSZWYsIHVpbnQ2NF90PiBt
X3BlbmRpbmdOb3RpZmljYXRpb247CiB9OwogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1B1c2hBUEkubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1B1c2hBUEkubW0KaW5kZXggYmY5NzQxNjJkMGFkLi5kZWZjYzg5MDI0
NWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHVz
aEFQSS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1B1c2hB
UEkubW0KQEAgLTY3Nyw2ICs2NzcsOSBAQCBURVNUKFB1c2hBUEksIGZpcmVOb3RpZmljYXRpb25D
bGlja0V2ZW50KQogCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKIAorICAg
IHByb3ZpZGVyLnJlc2V0SGFzUmVjZWl2ZWROb3RpZmljYXRpb24oKTsKKyAgICBhdXRvJiBwcm92
aWRlclJlZiA9IHByb3ZpZGVyOworCiAgICAgZG9uZSA9IGZhbHNlOwogICAgIHB1c2hNZXNzYWdl
UHJvY2Vzc2VkID0gZmFsc2U7CiAgICAgcHVzaE1lc3NhZ2VTdWNjZXNzZnVsID0gZmFsc2U7CkBA
IC02ODQsNiArNjg3LDcgQEAgVEVTVChQdXNoQVBJLCBmaXJlTm90aWZpY2F0aW9uQ2xpY2tFdmVu
dCkKICAgICBleHBlY3RlZE1lc3NhZ2UgPSAiUmVjZWl2ZWQ6IFN3ZWV0IFBvdGF0b2VzIl9zOwog
CiAgICAgW1tjb25maWd1cmF0aW9uIHdlYnNpdGVEYXRhU3RvcmVdIF9wcm9jZXNzUHVzaE1lc3Nh
Z2U6bWVzc2FnZURpY3Rpb25hcnkoW21lc3NhZ2UgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3Ry
aW5nRW5jb2RpbmddLCBbc2VydmVyLnJlcXVlc3QoKSBVUkxdKSBjb21wbGV0aW9uSGFuZGxlcjpe
KGJvb2wgcmVzdWx0KSB7CisgICAgICAgIEVYUEVDVF9UUlVFKHByb3ZpZGVyUmVmLmhhc1JlY2Vp
dmVkTm90aWZpY2F0aW9uKCkpOwogICAgICAgICBwdXNoTWVzc2FnZVN1Y2Nlc3NmdWwgPSByZXN1
bHQ7CiAgICAgICAgIHB1c2hNZXNzYWdlUHJvY2Vzc2VkID0gdHJ1ZTsKICAgICB9XTsKLS0gCjIu
MzIuMCAoQXBwbGUgR2l0LTEzMikKCg==
</data>
<flag name="commit-queue"
          id="488504"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>