<?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>216334</bug_id>
          
          <creation_ts>2020-09-09 16:50:27 -0700</creation_ts>
          <short_desc>[Cocoa] _WKInspectorDelegate should handle showing external resources</short_desc>
          <delta_ts>2020-09-22 09:14:13 -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>WebKit API</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          <dependson>215961</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Blaze Burg">bburg</reporter>
          <assigned_to name="Blaze Burg">bburg</assigned_to>
          <cc>bburg</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1687198</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-09-09 16:50:27 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687271</commentid>
    <comment_count>1</comment_count>
      <attachid>408411</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-09-09 21:51:27 -0700</bug_when>
    <thetext>Created attachment 408411
Patch

This patch depends on the blocking bug&apos;s patch. I&apos;ll re-spin with EWS when the other patch lands later tonight.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687720</commentid>
    <comment_count>2</comment_count>
      <attachid>408532</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-09-11 08:25:13 -0700</bug_when>
    <thetext>Created attachment 408532
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687722</commentid>
    <comment_count>3</comment_count>
      <attachid>408534</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-09-11 08:28:49 -0700</bug_when>
    <thetext>Created attachment 408534
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687763</commentid>
    <comment_count>4</comment_count>
      <attachid>408534</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-09-11 10:59:51 -0700</bug_when>
    <thetext>Comment on attachment 408534
Patch

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

r=me

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKInspectorDelegate.h:49
&gt; +- (void)inspector:(_WKInspector *)inspector showURLExternally:(NSURL *)url;

How about just `openURL`?  The idea of &quot;showing a URL&quot; seems kinda weird IMO :/

I&apos;m not sure what &quot;external&quot; means in this context either, as Web Inspector will attempt to open a new tab/window for any URL that it doesn&apos;t have a resource for (including those from the inspected domain).

&gt; Source/WebKit/UIProcess/Inspector/Cocoa/InspectorDelegate.h:72
&gt; +        bool inspectorShowURLExternally: 1;

Style: missing space before `:`

&gt; Source/WebKit/UIProcess/Inspector/mac/WKInspectorViewController.mm:232
&gt; +    // The latter code path has known issues in Safari, but is better than simply doing nothing.

NIT: I&apos;d move this right above the `loadRequest` so it&apos;s clear that that code can have issues, not this code

&gt; Source/WebKit/UIProcess/Inspector/mac/WebInspectorProxyMac.mm:240
&gt; +    URL convertedURL { url };

Is this needed?  I thought `URL` is able to implicitly convert to `NSURL *`.

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/WKInspectorDelegate.mm:47
&gt; +static RetainPtr&lt;NSURL&gt; URLToShow;

NIT: I&apos;d call this `urlToShow`</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687807</commentid>
    <comment_count>5</comment_count>
      <attachid>408534</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-09-11 14:09:57 -0700</bug_when>
    <thetext>Comment on attachment 408534
Patch

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

I&apos;m going to rename showURLExternally to openURLExternally. Also, this patch forgot about InspectorFrontendHost.openInNewTab which is how most doc links are actually opened. I&apos;ll need to add a new API test which triggers this from the IFH code path somehow.

&gt;&gt; Source/WebKit/UIProcess/API/Cocoa/_WKInspectorDelegate.h:49
&gt;&gt; +- (void)inspector:(_WKInspector *)inspector showURLExternally:(NSURL *)url;
&gt; 
&gt; How about just `openURL`?  The idea of &quot;showing a URL&quot; seems kinda weird IMO :/
&gt; 
&gt; I&apos;m not sure what &quot;external&quot; means in this context either, as Web Inspector will attempt to open a new tab/window for any URL that it doesn&apos;t have a resource for (including those from the inspected domain).

externally means outside of the Inspector view/window and outside of the inspected view.

&gt;&gt; Source/WebKit/UIProcess/Inspector/mac/WebInspectorProxyMac.mm:240
&gt;&gt; +    URL convertedURL { url };
&gt; 
&gt; Is this needed?  I thought `URL` is able to implicitly convert to `NSURL *`.

It didn&apos;t work inline for some reason (that&apos;s what I tried first)

&gt;&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/WKInspectorDelegate.mm:47
&gt;&gt; +static RetainPtr&lt;NSURL&gt; URLToShow;
&gt; 
&gt; NIT: I&apos;d call this `urlToShow`

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687980</commentid>
    <comment_count>6</comment_count>
      <attachid>408611</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-09-12 14:27:59 -0700</bug_when>
    <thetext>Created attachment 408611
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688764</commentid>
    <comment_count>7</comment_count>
      <attachid>408611</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2020-09-15 11:19:09 -0700</bug_when>
    <thetext>Comment on attachment 408611
Patch

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

&gt; Source/WebCore/inspector/InspectorFrontendClient.h:3
&gt; + * Copyright (C) 2020 Apple Inc. All rights reserved.

What exactly is the &quot;policy&quot; for adding/updating copyright comments?  As I understand it, it only gets added/updated if major modifications are made to the file, but perhaps that&apos;s incorrect?

&gt; Source/WebCore/inspector/InspectorFrontendClient.h:100
&gt; +    WEBCORE_EXPORT virtual void openURLExternally(const String&amp; url) = 0;

Why change the order?  Now it no longer matches the order of `InspectorFrontendHost` :(

&gt; Source/WebInspectorUI/UserInterface/Views/ResourceTreeElement.js:124
&gt; -        InspectorFrontendHost.openInNewTab(this._resource.url);
&gt; +        InspectorFrontendHost.openURLExternally(this._resource.url);

Can we change this to call `WI.openURL` while you&apos;re at it?

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKInspectorTesting.mm:35
&gt; +static NSString *snippetToOpenURLExternally(NSURL *url)

NIT: I&apos;d add &quot;JavaScript&quot; into this name somewhere so that it&apos;s clear that this is meant to be evaluated in the frontend

&gt; Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.mm:41
&gt; -    , m_alternativeTextUIController { makeUnique&lt;AlternativeTextUIController&gt;() }
&gt; +    , m_alternativeTextUIController { makeUnique&lt;WebCore::AlternativeTextUIController&gt;() }

o_O

&gt; Source/WebKit/UIProcess/Inspector/Cocoa/InspectorDelegate.mm:100
&gt; +    [delegate inspector:m_inspectorDelegate.m_inspector.get().get() openURLExternally:[NSURL URLWithString:url]];

Is it ever possible for the `url` to be relative?  If so, will that work with `[NSURL URLWithString:url]`?

&gt; Source/WebKit/UIProcess/Inspector/WebInspectorProxy.cpp:719
&gt; +void WebInspectorProxy::evaluateInFrontendForTesting(const String&amp; expression)

There&apos;s already a `WebInspector::evaluateScriptForTest`.  Can we hook into that (i.e. add the message and send it here)?  If so, it&apos;d be nice to share the name so it&apos;s clear to follow across processes.  If not, can we change the name enough so as to really clarify why not?

&gt; Source/WebKit/UIProcess/Inspector/mac/WKInspectorViewController.mm:236
&gt; +    // Allow the delegate to handle it if possible, otherwise try to load in the inspected page.

NIT: I&apos;d reword this comment (or split it into two comments) so that it doesn&apos;t read like the explanation comes after the thing that&apos;s being explained

e.g. `// Try to load the request in the inspected page if the delegate can&apos;t handle it.`

&gt; Source/WebKit/WebProcess/Inspector/WebInspectorUI.h:-156
&gt; -    RefPtr&lt;IPC::Connection&gt; m_backendConnection;

ooooo neat!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1689265</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-16 16:51:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/69024354&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690371</commentid>
    <comment_count>9</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-09-21 11:55:37 -0700</bug_when>
    <thetext>(In reply to Devin Rousso from comment #7)
&gt; Comment on attachment 408611 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=408611&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/InspectorFrontendClient.h:3
&gt; &gt; + * Copyright (C) 2020 Apple Inc. All rights reserved.
&gt; 
&gt; What exactly is the &quot;policy&quot; for adding/updating copyright comments?  As I
&gt; understand it, it only gets added/updated if major modifications are made to
&gt; the file, but perhaps that&apos;s incorrect?

I don&apos;t think we have a policy. In my opinion, adding a new method is enough change to update the copyright.

&gt; &gt; Source/WebCore/inspector/InspectorFrontendClient.h:100
&gt; &gt; +    WEBCORE_EXPORT virtual void openURLExternally(const String&amp; url) = 0;
&gt; 
&gt; Why change the order?  Now it no longer matches the order of
&gt; `InspectorFrontendHost` :(

Oh, oops.

&gt; &gt; Source/WebInspectorUI/UserInterface/Views/ResourceTreeElement.js:124
&gt; &gt; -        InspectorFrontendHost.openInNewTab(this._resource.url);
&gt; &gt; +        InspectorFrontendHost.openURLExternally(this._resource.url);
&gt; 
&gt; Can we change this to call `WI.openURL` while you&apos;re at it?
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/_WKInspectorTesting.mm:35
&gt; &gt; +static NSString *snippetToOpenURLExternally(NSURL *url)
&gt; 
&gt; NIT: I&apos;d add &quot;JavaScript&quot; into this name somewhere so that it&apos;s clear that
&gt; this is meant to be evaluated in the frontend
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Cocoa/PageClientImplCocoa.mm:41
&gt; &gt; -    , m_alternativeTextUIController { makeUnique&lt;AlternativeTextUIController&gt;() }
&gt; &gt; +    , m_alternativeTextUIController { makeUnique&lt;WebCore::AlternativeTextUIController&gt;() }
&gt; 
&gt; o_O
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Inspector/Cocoa/InspectorDelegate.mm:100
&gt; &gt; +    [delegate inspector:m_inspectorDelegate.m_inspector.get().get() openURLExternally:[NSURL URLWithString:url]];
&gt; 
&gt; Is it ever possible for the `url` to be relative?  If so, will that work
&gt; with `[NSURL URLWithString:url]`

I don&apos;t expect relative URLs to be opened via this API.

&gt; &gt; Source/WebKit/UIProcess/Inspector/WebInspectorProxy.cpp:719
&gt; &gt; +void WebInspectorProxy::evaluateInFrontendForTesting(const String&amp; expression)
&gt; 
&gt; There&apos;s already a `WebInspector::evaluateScriptForTest`.  Can we hook into
&gt; that (i.e. add the message and send it here)?  If so, it&apos;d be nice to share
&gt; the name so it&apos;s clear to follow across processes.  If not, can we change
&gt; the name enough so as to really clarify why not?

Currently, WebInspector::evaluateScriptForTest is a WebProcess thing sends the string to the backend to be evaluated via InspectorAgent. I&apos;m not sure of the reasons to prefer one approach or the other. In any case this should be a followup.

&gt; &gt; Source/WebKit/UIProcess/Inspector/mac/WKInspectorViewController.mm:236
&gt; &gt; +    // Allow the delegate to handle it if possible, otherwise try to load in the inspected page.
&gt; 
&gt; NIT: I&apos;d reword this comment (or split it into two comments) so that it
&gt; doesn&apos;t read like the explanation comes after the thing that&apos;s being
&gt; explained
&gt; 
&gt; e.g. `// Try to load the request in the inspected page if the delegate can&apos;t
&gt; handle it.`
&gt; 

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690375</commentid>
    <comment_count>10</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-09-21 11:57:18 -0700</bug_when>
    <thetext>I addressed the other feedback but forgot to comment, oops.

Investigating GTK failures now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690420</commentid>
    <comment_count>11</comment_count>
      <attachid>409295</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-09-21 12:17:34 -0700</bug_when>
    <thetext>Created attachment 409295
For GTK EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690591</commentid>
    <comment_count>12</comment_count>
      <attachid>409332</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2020-09-21 17:07:46 -0700</bug_when>
    <thetext>Created attachment 409332
For GTK EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690726</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-22 09:14:12 -0700</bug_when>
    <thetext>Committed r267411: &lt;https://trac.webkit.org/changeset/267411&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 409332.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408411</attachid>
            <date>2020-09-09 21:51:27 -0700</date>
            <delta_ts>2020-09-11 08:25:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216334-20200909215126.patch</filename>
            <type>text/plain</type>
            <size>24745</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2NzI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDMxOGFiMDY3ZWRmMjVlZTRl
ZDRkMzJjNmE4ZDFiZTQ0NjAzZGE4MTQuLmMxZjY0MDUxZGIwZTdhMjg5ZDQwMTcxNDBhODBiMDk0
MTA3NTk4MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMjAtMDktMDkgIEJyaWFuIEJ1
cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBfV0tJbnNwZWN0b3JEZWxl
Z2F0ZSBzaG91bGQgaGFuZGxlIHNob3dpbmcgZXh0ZXJuYWwgcmVzb3VyY2VzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTYzMzQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJLaXQgY2xpZW50cyBuZWVk
IGEgd2F5IHRvIGNvbnRyb2wgdGhlIGxvYWRpbmcgYW5kIHByZXNlbnRhdGlvbiBvZgorICAgICAg
ICBleHRlcm5hbCByZXNvdXJjZXMgdGhhdCBhcmUgbGlua2VkIGluIFdlYiBJbnNwZWN0b3IncyB1
c2VyIGludGVyZmFjZS4KKworICAgICAgICBXaGVuIGFuIGV4dGVybmFsIG5hdmlnYXRpb24gaXMg
dHJpZ2dlcmVkIHdpdGhpbiB0aGUgV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlcidzCisgICAgICAg
IFdLV2ViVmlldywgYWxsb3cgdGhlIGRlbGVnYXRlIHRvIHByZXNlbnQgdGhlIHJlcXVlc3RlZCBy
ZXNvdXJjZS4gT3RoZXJ3aXNlLCByZWRpcmVjdAorICAgICAgICB0aGUgbmF2aWdhdGlvbiB0byB0
aGUgaW5zcGVjdGVkIFdlYlZpZXcuCisKKyAgICAgICAgTmV3IEFQSSB0ZXN0OiBXS0luc3BlY3Rv
ckRlbGVnYXRlLlNob3dVUkxFeHRlcm5hbGx5LgorCisgICAgICAgICogU291cmNlc0NvY29hLnR4
dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSUluc3BlY3RvckNsaWVudC5oOgorICAgICAg
ICAoQVBJOjpJbnNwZWN0b3JDbGllbnQ6OnNob3dVUkxFeHRlcm5hbGx5KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckRlbGVnYXRlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JQcml2YXRlRm9yVGVzdGluZy5oOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9yQ2xpZW50LmguCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JUZXN0aW5nLm1tOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9yQ2xpZW50Lmgu
CisgICAgICAgICgtW19XS0luc3BlY3RvciBfdHJpZ2dlclNob3dVUkxFeHRlcm5hbGx5Rm9yVGVz
dGluZzpdKToKKyAgICAgICAgQWRkIGEgX1dLSW5zcGVjdG9yVGVzdGluZyBjYXRlZ29yeSBmb3Ig
dHJpZ2dlcmluZyBmdW5jdGlvbmFsaXR5CisgICAgICAgIGFzIG5lZWRlZCB0byBpbXBsZW1lbnQg
dGhlIFRlc3RXZWJLaXRBUEkgdGVzdCBjYXNlLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29h
L1BhZ2VDbGllbnRJbXBsQ29jb2EubW06CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9D
b2NvYS9JbnNwZWN0b3JEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3Iv
Q29jb2EvSW5zcGVjdG9yRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckRl
bGVnYXRlOjpzZXREZWxlZ2F0ZSk6CisgICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckRlbGVnYXRl
OjpJbnNwZWN0b3JDbGllbnQ6OnNob3dVUkxFeHRlcm5hbGx5KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0lu
c3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW06CisgICAgICAg
ICgtW1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uOmRlY2lzaW9uSGFuZGxlcjpdKToKKyAgICAgICAgU2VlIGlmIHRoZSBkZWxl
Z2F0ZSBjYW4gaGFuZGxlIHRoZSByZXF1ZXN0LgorCisgICAgICAgICogVUlQcm9jZXNzL0luc3Bl
Y3Rvci9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW06CisgICAgICAgICgtW1dLV2ViSW5zcGVj
dG9yUHJveHlPYmpDQWRhcHRlciBpbnNwZWN0b3JWaWV3Q29udHJvbGxlcjpzaG93VVJMRXh0ZXJu
YWxseTpdKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OnNob3dVUkxFeHRl
cm5hbGx5KToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwog
MjAyMC0wOS0wMiAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBfV0tJbnNwZWN0b3JEZWxlZ2F0ZSBzaG91bGQgYmUgYXR0YWNoZWQgdG8gX1dL
SW5zcGVjdG9yIG5vdCBXS1dlYlZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNl
c0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCAyM2VkNGYw
MmNiODE3ODJhYzFlM2ExZWZhNTRmMzY0MjAyYTcwZGQ0Li5hZjI0YWE5MjAxMmE4NDk5ZGRmZjYx
YmNjNjdmY2ZhY2YxNDZhOTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2Nv
YS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC0yNTksNiArMjU5
LDcgQEAgVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tFeHBlcmltZW50YWxGZWF0dXJlLm1tCiBVSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0ZyYW1lVHJlZU5vZGUubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLR2VvbG9jYXRpb25Qb3NpdGlvbi5tbQogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0
b3IubW0KK1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yVGVzdGluZy5tbQogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JEZWJ1Z2dhYmxlSW5mby5tbQogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tJbnNwZWN0b3JXaW5kb3cubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW50
ZXJuYWxEZWJ1Z0ZlYXR1cmUubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElJbnNwZWN0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElJbnNwZWN0b3JDbGllbnQuaAppbmRleCA5MzU0OTc0ZTc0MGZhYTdmZTI2Y2YzMTRkMzVmMmJm
ZWE2YmYzYzA5Li5mZmZhYTUyYmM3MDk1ODcwMGJlYzQ1ZTYxNWU1NGMxODY1NzE4YmJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9yQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUluc3BlY3RvckNsaWVudC5oCkBA
IC0zOCw2ICszOCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBicm93c2VyRG9tYWlu
RW5hYmxlZChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5JikgeyB9CiAgICAgdmlydHVhbCB2b2lk
IGJyb3dzZXJEb21haW5EaXNhYmxlZChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5JikgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIHNob3dVUkxFeHRlcm5hbGx5KFdlYktpdDo6V2ViSW5zcGVjdG9yUHJv
eHkmLCBXVEY6OlVSTCYpIHsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgQVBJCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRGVsZWdhdGUu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JEZWxlZ2F0
ZS5oCmluZGV4IGE4ZmEwOTBjY2U2MzJhNDM0MTlhY2EwYjI4NTQ1MDYwZTRhZDJiMTAuLmJhYmRl
ZjVlYzA5YmEyNDU5ZDBlZWMzYWM5NDMzZDM2Y2ZjNGJmYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JEZWxlZ2F0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JEZWxlZ2F0ZS5oCkBA
IC00MSw0ICs0MSwxMSBAQAogICovCiAtICh2b2lkKWluc3BlY3RvckRpZERpc2FibGVCcm93c2Vy
RG9tYWluOihfV0tJbnNwZWN0b3IgKilpbnNwZWN0b3I7CiAKKy8qISBAYWJzdHJhY3QgQ2FsbGVk
IHdoZW4gdGhlIF9XS0luc3BlY3RvciByZXF1ZXN0cyB0byBzaG93IGEgcmVzb3VyY2UgZXh0ZXJu
YWxseS4gVGhpcworICAgIGlzIHVzZWQgdG8gZGlzcGxheSBkb2N1bWVudGF0aW9uIHBhZ2VzIGFu
ZCB0byBzaG93IGV4dGVybmFsIFVSTHMgdGhhdCBhcmUgbGlua2lmaWVkLgorICAgIEBwYXJhbSBp
bnNwZWN0b3IgdGhlIGFzc29jaWF0ZWQgaW5zcGVjdG9yIGZvciB3aGljaCBhbiBleHRlcm5hbCBu
YXZpZ2F0aW9uIHNob3VsZCBiZSB0cmlnZ2VyZWQuCisgICAgQHBhcmFtIHVybCBUaGUgcmVzb3Vy
Y2UgdG8gYmUgc2hvd24uCisgKi8KKy0gKHZvaWQpaW5zcGVjdG9yOihfV0tJbnNwZWN0b3IgKilp
bnNwZWN0b3Igc2hvd1VSTEV4dGVybmFsbHk6KE5TVVJMICopdXJsOworCiBAZW5kCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yUHJpdmF0
ZUZvclRlc3RpbmcuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNw
ZWN0b3JQcml2YXRlRm9yVGVzdGluZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhlMjMyNzBjOGFhZWZiYzMyOTFi
MDE5M2RhOTAxNmM3Y2IxODFhZDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yUHJpdmF0ZUZvclRlc3RpbmcuaApAQCAtMCww
ICsxLDMwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiX1dLSW5zcGVjdG9yLmgiCisKK0BpbnRl
cmZhY2UgX1dLSW5zcGVjdG9yIChXS1Rlc3RpbmcpCistICh2b2lkKV90cmlnZ2VyU2hvd1VSTEV4
dGVybmFsbHlGb3JUZXN0aW5nOihOU1VSTCAqKXVybDsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JUZXN0aW5nLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvclRlc3RpbmcubW0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNzA5NmFmY2VlOGI4NmFiZWYzNjExZDFjOTU5MGViY2JlNDAwOTE3MwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0
b3JUZXN0aW5nLm1tCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25m
aWcuaCIKKworI2ltcG9ydCAiV0tXZWJWaWV3LmgiCisjaW1wb3J0ICJfV0tJbnNwZWN0b3JJbnRl
cm5hbC5oIgorI2ltcG9ydCAiX1dLSW5zcGVjdG9yUHJpdmF0ZUZvclRlc3RpbmcuaCIKKworQGlt
cGxlbWVudGF0aW9uIF9XS0luc3BlY3RvciAoV0tUZXN0aW5nKQorCistICh2b2lkKV90cmlnZ2Vy
U2hvd1VSTEV4dGVybmFsbHlGb3JUZXN0aW5nOihOU1VSTCAqKXVybAoreworICAgIC8vIEZvcmNl
IHRoZSBuYXZpZ2F0aW9uIHJlcXVlc3QgdG8gYmUgaGFuZGxlZCBuYXR1cmFsbHkgdGhyb3VnaCB0
aGUKKyAgICAvLyBpbnRlcm5hbCBOYXZpZ2F0aW9uRGVsZWdhdGUgb2YgV0tJbnNwZWN0b3JWaWV3
Q29udHJvbGxlci4KKyAgICBbc2VsZi5pbnNwZWN0b3JXZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VS
TFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6dXJsXV07Cit9CisKK0BlbmQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BhZ2VDbGllbnRJbXBsQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QYWdlQ2xpZW50SW1wbENvY29hLm1tCmluZGV4IGNh
ZTM2YjYxNzRiY2E4YmIwNjY1NmY4YTc3MDRlMjRhZTcwZGMwMWUuLjgwNjFiZmJkNDYyYWYwZDUx
ZGE4NmNmNGY5NTI1ZjdhN2JlM2EyOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1BhZ2VDbGllbnRJbXBsQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvUGFnZUNsaWVudEltcGxDb2NvYS5tbQpAQCAtMzgsNyArMzgsNyBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogUGFnZUNsaWVudEltcGxDb2NvYTo6UGFnZUNsaWVudEltcGxDb2Nv
YShXS1dlYlZpZXcgKndlYlZpZXcpCiAgICAgOiBtX3dlYlZpZXcgeyB3ZWJWaWV3IH0KLSAgICAs
IG1fYWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyIHsgbWFrZVVuaXF1ZTxBbHRlcm5hdGl2ZVRl
eHRVSUNvbnRyb2xsZXI+KCkgfQorICAgICwgbV9hbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXIg
eyBtYWtlVW5pcXVlPFdlYkNvcmU6OkFsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlcj4oKSB9CiB7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9Db2Nv
YS9JbnNwZWN0b3JEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9y
L0NvY29hL0luc3BlY3RvckRlbGVnYXRlLmgKaW5kZXggZmI0NzJhZTFhNjAzNjc0NTY5NDM0OTM5
YmFiNTcyYzAwZmI4NmI3Yi4uMDcxZDhmYzc0MmRlZDhkMDkzODQ5NzNiMDY2Y2IzOTY1MmQxNzZm
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0lu
c3BlY3RvckRlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9y
L0NvY29hL0luc3BlY3RvckRlbGVnYXRlLmgKQEAgLTU5LDYgKzU5LDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgLy8gQVBJOjpJbnNwZWN0b3JDbGllbnQKICAgICAgICAgdm9pZCBicm93c2VyRG9tYWlu
RW5hYmxlZChXZWJJbnNwZWN0b3JQcm94eSYpIGZpbmFsOwogICAgICAgICB2b2lkIGJyb3dzZXJE
b21haW5EaXNhYmxlZChXZWJJbnNwZWN0b3JQcm94eSYpIGZpbmFsOworICAgICAgICB2b2lkIHNo
b3dVUkxFeHRlcm5hbGx5KFdlYkluc3BlY3RvclByb3h5JiwgVVJMJikgZmluYWw7CiAKICAgICAg
ICAgSW5zcGVjdG9yRGVsZWdhdGUmIG1faW5zcGVjdG9yRGVsZWdhdGU7CiAgICAgfTsKQEAgLTY5
LDYgKzcwLDcgQEAgcHJpdmF0ZToKICAgICBzdHJ1Y3QgewogICAgICAgICBib29sIGluc3BlY3Rv
ckRpZEVuYWJsZUJyb3dzZXJEb21haW4gOiAxOwogICAgICAgICBib29sIGluc3BlY3RvckRpZERp
c2FibGVCcm93c2VyRG9tYWluIDogMTsKKyAgICAgICAgYm9vbCBpbnNwZWN0b3JTaG93VVJMRXh0
ZXJuYWxseTogMTsKICAgICB9IG1fZGVsZWdhdGVNZXRob2RzOwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckRlbGVnYXRl
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckRl
bGVnYXRlLm1tCmluZGV4IDYyMmU4NWQ2MWEyYjY0NTVjZTA5ODI0YmUzMzY2NDFkMWY5MGIwOGYu
LjQxZTMyMDc2YWJlYjY2MzY2NGNjNDg2ZjU4MTVhODAzODUyZTgxYTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JEZWxlZ2F0ZS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9y
RGVsZWdhdGUubW0KQEAgLTU2LDYgKzU2LDcgQEAgdm9pZCBJbnNwZWN0b3JEZWxlZ2F0ZTo6c2V0
RGVsZWdhdGUoaWQgPF9XS0luc3BlY3RvckRlbGVnYXRlPiBkZWxlZ2F0ZSkKIAogICAgIG1fZGVs
ZWdhdGVNZXRob2RzLmluc3BlY3RvckRpZEVuYWJsZUJyb3dzZXJEb21haW4gPSBbZGVsZWdhdGUg
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihpbnNwZWN0b3JEaWRFbmFibGVCcm93c2VyRG9t
YWluOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLmluc3BlY3RvckRpZERpc2FibGVCcm93c2Vy
RG9tYWluID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoaW5zcGVjdG9y
RGlkRGlzYWJsZUJyb3dzZXJEb21haW46KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMuaW5zcGVj
dG9yU2hvd1VSTEV4dGVybmFsbHkgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxl
Y3RvcihpbnNwZWN0b3I6c2hvd1VSTEV4dGVybmFsbHk6KV07CiB9CiAKIEluc3BlY3RvckRlbGVn
YXRlOjpJbnNwZWN0b3JDbGllbnQ6Okluc3BlY3RvckNsaWVudChJbnNwZWN0b3JEZWxlZ2F0ZSYg
ZGVsZWdhdGUpCkBAIC04OSw0ICs5MCwxNiBAQCB2b2lkIEluc3BlY3RvckRlbGVnYXRlOjpJbnNw
ZWN0b3JDbGllbnQ6OmJyb3dzZXJEb21haW5EaXNhYmxlZChXZWJJbnNwZWN0b3JQcm94eQogICAg
IFtkZWxlZ2F0ZSBpbnNwZWN0b3JEaWREaXNhYmxlQnJvd3NlckRvbWFpbjptX2luc3BlY3RvckRl
bGVnYXRlLm1faW5zcGVjdG9yLmdldCgpLmdldCgpXTsKIH0KIAordm9pZCBJbnNwZWN0b3JEZWxl
Z2F0ZTo6SW5zcGVjdG9yQ2xpZW50OjpzaG93VVJMRXh0ZXJuYWxseShXZWJJbnNwZWN0b3JQcm94
eSYsIFVSTCYgdXJsKQoreworICAgIGlmICghbV9pbnNwZWN0b3JEZWxlZ2F0ZS5tX2RlbGVnYXRl
TWV0aG9kcy5pbnNwZWN0b3JTaG93VVJMRXh0ZXJuYWxseSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgYXV0byYgZGVsZWdhdGUgPSBtX2luc3BlY3RvckRlbGVnYXRlLm1fZGVsZWdhdGU7CisgICAg
aWYgKCFkZWxlZ2F0ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgW2RlbGVnYXRlIGluc3BlY3Rv
cjptX2luc3BlY3RvckRlbGVnYXRlLm1faW5zcGVjdG9yLmdldCgpLmdldCgpIHNob3dVUkxFeHRl
cm5hbGx5OnVybF07Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yUHJveHkuaAppbmRleCAz
NmNjOWRmMTJjYmI3NWYxYzUxMmFlMDBmZTFkNTA4NmM5YWEwOWE2Li4zNTBkNGUzMDJjZGFiZmUz
YWQxNjRkNTU1MWMxN2Q1YmU4MjFmMDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yUHJveHkuaApAQCAtMTI4LDcgKzEyOCw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGluc3BlY3RlZFZpZXdGcmFtZURpZENoYW5nZShDR0Zsb2F0ID0g
MCk7CiAgICAgdm9pZCB3aW5kb3dGcmFtZURpZENoYW5nZSgpOwogICAgIHZvaWQgd2luZG93RnVs
bFNjcmVlbkRpZENoYW5nZSgpOwotICAgIE5TV2luZG93KiBpbnNwZWN0b3JXaW5kb3coKSBjb25z
dCB7IHJldHVybiBtX2luc3BlY3RvcldpbmRvdy5nZXQoKTsgfQorICAgIE5TV2luZG93ICppbnNw
ZWN0b3JXaW5kb3coKSBjb25zdCB7IHJldHVybiBtX2luc3BlY3RvcldpbmRvdy5nZXQoKTsgfQog
CiAgICAgdm9pZCBjbG9zZUZyb250ZW5kUGFnZSgpOwogICAgIHZvaWQgY2xvc2VGcm9udGVuZEFm
dGVySW5hY3Rpdml0eVRpbWVyRmlyZWQoKTsKQEAgLTEzNiw2ICsxMzYsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBhdHRhY2htZW50Vmlld0RpZENoYW5nZShOU1ZpZXcgKm9sZFZpZXcsIE5TVmlldyAq
bmV3Vmlldyk7CiAgICAgdm9pZCBhdHRhY2htZW50V2lsbE1vdmVGcm9tV2luZG93KE5TV2luZG93
ICpvbGRXaW5kb3cpOwogICAgIHZvaWQgYXR0YWNobWVudERpZE1vdmVUb1dpbmRvdyhOU1dpbmRv
dyAqbmV3V2luZG93KTsKKyAgICB2b2lkIHNob3dVUkxFeHRlcm5hbGx5KE5TVVJMICopOwogCiAg
ICAgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzaGVldFJlY3QoKSBjb25zdCB7IHJldHVybiBt
X3NoZWV0UmVjdDsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5oCmlu
ZGV4IGJhYmQzMzI1MDJhZGU5OWI2MWRjNDViOTc2OTk2NjA4YjdjOGI4MTAuLmI4YzE1NTFmNTQ1
NzNlZDk1OGE1ZjIzOTBkMmRkZWUyZmNlYmQzNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29u
dHJvbGxlci5oCkBAIC01Niw2ICs1Niw3IEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAtIChC
T09MKWluc3BlY3RvclZpZXdDb250cm9sbGVySW5zcGVjdG9ySXNVbmRlclRlc3Q6KFdLSW5zcGVj
dG9yVmlld0NvbnRyb2xsZXIgKilpbnNwZWN0b3JWaWV3Q29udHJvbGxlcjsKIC0gKHZvaWQpaW5z
cGVjdG9yVmlld0NvbnRyb2xsZXI6KFdLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgKilpbnNwZWN0
b3JWaWV3Q29udHJvbGxlciB3aWxsTW92ZVRvV2luZG93OihOU1dpbmRvdyAqKW5ld1dpbmRvdzsK
IC0gKHZvaWQpaW5zcGVjdG9yVmlld0NvbnRyb2xsZXJEaWRNb3ZlVG9XaW5kb3c6KFdLSW5zcGVj
dG9yVmlld0NvbnRyb2xsZXIgKilpbnNwZWN0b3JWaWV3Q29udHJvbGxlcjsKKy0gKHZvaWQpaW5z
cGVjdG9yVmlld0NvbnRyb2xsZXI6KFdLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgKilpbnNwZWN0
b3JWaWV3Q29udHJvbGxlciBzaG93VVJMRXh0ZXJuYWxseTooTlNVUkwgKil1cmw7CiBAZW5kCiAK
IE5TX0FTU1VNRV9OT05OVUxMX0VORApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1t
CmluZGV4IGY0MDdhZTFiZjZiNzliZGVmMmU4MmM0NThhOTk2NGY4MDQ3ZDgwZjIuLmZhZmQ2OTE2
NzY1ZGZiMTFhMWJjMmUzYTYwODYxOGI5NTkyYjFmNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmll
d0NvbnRyb2xsZXIubW0KQEAgLTIyNyw4ICsyMjcsMTQgQEAKIAogICAgIC8vIFByZXZlbnQgZXZl
cnl0aGluZyBlbHNlLgogICAgIGRlY2lzaW9uSGFuZGxlcihXS05hdmlnYXRpb25BY3Rpb25Qb2xp
Y3lDYW5jZWwpOwotICAgIAotICAgIC8vIEFuZCBpbnN0ZWFkIGxvYWQgaXQgaW4gdGhlIGluc3Bl
Y3RlZCBwYWdlLgorCisgICAgLy8gQWxsb3cgdGhlIGRlbGVnYXRlIHRvIGhhbmRsZSBpdCBpZiBw
b3NzaWJsZSwgb3RoZXJ3aXNlIHRyeSB0byBsb2FkIGluIHRoZSBpbnNwZWN0ZWQgcGFnZS4KKyAg
ICAvLyBUaGUgbGF0dGVyIGNvZGUgcGF0aCBoYXMga25vd24gaXNzdWVzIGluIFNhZmFyaSwgYnV0
IGlzIGJldHRlciB0aGFuIHNpbXBseSBkb2luZyBub3RoaW5nLgorICAgIGlmICghIV9kZWxlZ2F0
ZSAmJiBbX2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoaW5zcGVjdG9yVmll
d0NvbnRyb2xsZXI6c2hvd1VSTEV4dGVybmFsbHk6KV0pIHsKKyAgICAgICAgW19kZWxlZ2F0ZSBp
bnNwZWN0b3JWaWV3Q29udHJvbGxlcjpzZWxmIHNob3dVUkxFeHRlcm5hbGx5Om5hdmlnYXRpb25B
Y3Rpb24ucmVxdWVzdC5VUkxdOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYgKF9p
bnNwZWN0ZWRQYWdlKQogICAgICAgICBfaW5zcGVjdGVkUGFnZS0+bG9hZFJlcXVlc3QobmF2aWdh
dGlvbkFjdGlvbi5yZXF1ZXN0KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0luc3BlY3Rvci9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tCmluZGV4IGE1
NTdjODNhNGIyOGJlNTRlOWJmOWVjYjU4YmQyNTJkM2U5NzU4ZDAuLjNiNDQ1OTUyZmUxMzQyOTEx
MWE1OGE0M2EwOWU3Y2RhNTA5NDAyNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0luc3BlY3Rvci9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQpAQCAt
MTkzLDYgKzE5MywxMiBAQCBzdGF0aWMgdm9pZCoga1dpbmRvd0NvbnRlbnRMYXlvdXRPYnNlcnZl
ckNvbnRleHQgPSAma1dpbmRvd0NvbnRlbnRMYXlvdXRPYnNlcnZlcgogICAgICAgICBfaW5zcGVj
dG9yUHJveHktPmF0dGFjaG1lbnREaWRNb3ZlVG9XaW5kb3coaW5zcGVjdG9yVmlld0NvbnRyb2xs
ZXIud2ViVmlldy53aW5kb3cpOwogfQogCistICh2b2lkKWluc3BlY3RvclZpZXdDb250cm9sbGVy
OihXS0luc3BlY3RvclZpZXdDb250cm9sbGVyICopaW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgc2hv
d1VSTEV4dGVybmFsbHk6KE5TVVJMICopdXJsCit7CisgICAgaWYgKF9pbnNwZWN0b3JQcm94eSkK
KyAgICAgICAgX2luc3BlY3RvclByb3h5LT5zaG93VVJMRXh0ZXJuYWxseSh1cmwpOworfQorCiBA
ZW5kCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMjI5LDYgKzIzNSwxMiBAQCB2b2lkIFdlYklu
c3BlY3RvclByb3h5OjphdHRhY2htZW50RGlkTW92ZVRvV2luZG93KE5TV2luZG93ICpuZXdXaW5k
b3cpCiAgICAgfQogfQogCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpzaG93VVJMRXh0ZXJuYWxs
eShOU1VSTCAqdXJsKQoreworICAgIFVSTCBjb252ZXJ0ZWRVUkwgeyB1cmwgfTsKKyAgICBtX2lu
c3BlY3RvckNsaWVudC0+c2hvd1VSTEV4dGVybmFsbHkoKnRoaXMsIGNvbnZlcnRlZFVSTCk7Cit9
CisKIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnVwZGF0ZUluc3BlY3RvcldpbmRvd1RpdGxlKCkg
Y29uc3QKIHsKICAgICBpZiAoIW1faW5zcGVjdG9yV2luZG93KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjU2ODFlZDRkOWJiMjVmZDQ5
MDU5YjE5M2Y3ZDBhMjUxMzk0NjhhMy4uNTVjNDEyZTI4MDI2NzE1NWI2Njc3NjRlZDNmMjg1ZTIw
YTViNDJiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0xNDA2LDYgKzE0MDYsNyBAQAogCQk5OTU1QTZGNzFDNzk4NkU1MDBFQjZBOTMg
LyogQXV0b21hdGlvblByb3RvY29sT2JqZWN0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTk1NUE2RjMxQzc5ODY2NDAwRUI2QTkzIC8qIEF1dG9tYXRp
b25Qcm90b2NvbE9iamVjdHMuaCAqLzsgfTsKIAkJOTk3ODhBQ0IxRjQyMUREQTAwQzA4MDAwIC8q
IF9XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk3ODhBQzkxRjQyMURDQTAwQzA4MDAwIC8qIF9X
S0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk5NzlDQTU4MjM3RjQ5RjEwMDM5RUMwNSAvKiBf
V0tJbnNwZWN0b3JQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5OTc5Q0E1NzIzN0Y0OUYwMDAzOUVDMDUgLyogX1dLSW5zcGVjdG9yUHJpdmF0
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTk5
OTk2QTlGMjUwMDRCQ0MwMDRGNzU1OSAvKiBfV0tJbnNwZWN0b3JQcml2YXRlRm9yVGVzdGluZy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk5OTZBOUQy
NTAwNEJDQjAwNEY3NTU5IC8qIF9XS0luc3BlY3RvclByaXZhdGVGb3JUZXN0aW5nLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTlDM0FFMkQxREFE
QTZBRDAwQUY1QzE2IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uTWFjcm9zLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUMzQUUyQzFEQURBNkE3MDBBRjVD
MTYgLyogV2ViQXV0b21hdGlvblNlc3Npb25NYWNyb3MuaCAqLzsgfTsKIAkJOTlDODFENUExQzIw
RTdFMjAwNUM0QzgyIC8qIEF1dG9tYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5QzgxRDU1MUMyMERGQkUwMDVDNEM4MiAvKiBBdXRv
bWF0aW9uQ2xpZW50LmggKi87IH07CiAJCTk5QzgxRDVEMUMyMUYzOEIwMDVDNEM4MiAvKiBBUElB
dXRvbWF0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5OUM4MUQ1QjFDMjBFODE3MDA1QzRDODIgLyogQVBJQXV0b21hdGlvbkNsaWVudC5o
ICovOyB9OwpAQCAtNDQ3NSw2ICs0NDc2LDggQEAKIAkJOTk3ODhBQzkxRjQyMURDQTAwQzA4MDAw
IC8qIF9XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBfV0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk3ODhBQ0ExRjQyMURDQTAwQzA4MDAwIC8qIF9X
S0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IF9XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbi5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk3OUNBNTcyMzdGNDlGMDAwMzlFQzA1IC8q
IF9XS0luc3BlY3RvclByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
X1dLSW5zcGVjdG9yUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTk5
NkE5RDI1MDA0QkNCMDA0Rjc1NTkgLyogX1dLSW5zcGVjdG9yUHJpdmF0ZUZvclRlc3RpbmcuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLSW5zcGVjdG9yUHJpdmF0ZUZvclRl
c3RpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk5OTZBOUUyNTAwNEJDQjAw
NEY3NTU5IC8qIF9XS0luc3BlY3RvclRlc3RpbmcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBfV0tJbnNwZWN0b3JUZXN0aW5nLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5OUMzQUUyMzFEQUQ4RTM0MDBBRjVDMTYgLyogV2ViQXV0b21hdGlvblNl
c3Npb25NYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJB
dXRvbWF0aW9uU2Vzc2lvbk1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlD
M0FFMjYxREFEOTQ4NTAwQUY1QzE2IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uQ29jb2EubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJBdXRvbWF0aW9uU2Vzc2lv
bkNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OUMzQUUyQzFEQURBNkE3
MDBBRjVDMTYgLyogV2ViQXV0b21hdGlvblNlc3Npb25NYWNyb3MuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0b21hdGlvblNlc3Npb25NYWNyb3MuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTcyNDcsNiArNzI1MCw4IEBACiAJCQkJOTE5Nzk0MEIyM0RC
QzUwMzAwMjU3ODkyIC8qIF9XS0luc3BlY3RvckRlbGVnYXRlLmggKi8sCiAJCQkJNUNBRkRFNDQy
MTMwODQzNjAwQjFGN0UxIC8qIF9XS0luc3BlY3RvckludGVybmFsLmggKi8sCiAJCQkJOTk3OUNB
NTcyMzdGNDlGMDAwMzlFQzA1IC8qIF9XS0luc3BlY3RvclByaXZhdGUuaCAqLywKKwkJCQk5OTk5
NkE5RDI1MDA0QkNCMDA0Rjc1NTkgLyogX1dLSW5zcGVjdG9yUHJpdmF0ZUZvclRlc3RpbmcuaCAq
LywKKwkJCQk5OTk5NkE5RTI1MDA0QkNCMDA0Rjc1NTkgLyogX1dLSW5zcGVjdG9yVGVzdGluZy5t
bSAqLywKIAkJCQlBNUMwRjBBQTIwMDA2NTZFMDA1MzY1MzYgLyogX1dLSW5zcGVjdG9yV2luZG93
LmggKi8sCiAJCQkJQTVDMEYwQTkyMDAwNjU2RTAwNTM2NTM2IC8qIF9XS0luc3BlY3RvcldpbmRv
dy5tbSAqLywKIAkJCQkzMUIzNjI5NDIxNDFFQkFEMDA3QkZBNTMgLyogX1dLSW50ZXJuYWxEZWJ1
Z0ZlYXR1cmUuaCAqLywKQEAgLTEwNjEyLDYgKzEwNjE3LDcgQEAKIAkJCQk5MTk3OTQwQzIzREJD
NTAzMDAyNTc4OTIgLyogX1dLSW5zcGVjdG9yRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTVDQUZERTQ3MjEzMDg0NkEwMEIxRjdFMSAvKiBfV0tJbnNwZWN0b3JJbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTk3OUNBNTgyMzdGNDlGMTAwMzlFQzA1IC8qIF9XS0luc3BlY3RvclBy
aXZhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTk5OTk2QTlGMjUwMDRCQ0MwMDRGNzU1OSAvKiBf
V0tJbnNwZWN0b3JQcml2YXRlRm9yVGVzdGluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVDMEYw
QUIyMDAwNjU4MjAwNTM2NTM2IC8qIF9XS0luc3BlY3RvcldpbmRvdy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMzFCMzYyOTUyMTQxRUJDRDAwN0JGQTUzIC8qIF9XS0ludGVybmFsRGVidWdGZWF0dXJl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUIzNjI5NzIxNDFFQkQ5MDA3QkZBNTMgLyogX1dLSW50
ZXJuYWxEZWJ1Z0ZlYXR1cmVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZjIwYTE5ZjQwMmQ2YWI1NDMw
OWExMjc3MjhkZjhkNDM4OGFkNGIyZC4uYzY5NGQ3MzE5N2YxY2VmOGE2OTViYzdhMDgyYWM2ZTli
MjliNzUwYiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTA5LTA5ICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUu
Y29tPgorCisgICAgICAgIFtDb2NvYV0gX1dLSW5zcGVjdG9yRGVsZWdhdGUgc2hvdWxkIGhhbmRs
ZSBzaG93aW5nIGV4dGVybmFsIHJlc291cmNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2MzM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IHRlc3QgdG8gdmVyaWZ5IHRoYXQgYW4gYXR0
ZW1wdGVkIG5hdmlnYXRpb24gaW4gdGhlIFdlYiBJbnNwZWN0b3IncworICAgICAgICBXS1dlYlZp
ZXcgd2lsbCB0cmlnZ2VyIHRoZSBuZXcgZGVsZWdhdGUgLV9pbnNwZWN0b3I6c2hvd1VSTEV4dGVy
bmFsbHk6CisgICAgICAgIHdoaWNoIGNhbiBiZSBvdmVycmlkZGVuIGJ5IFdlYktpdCBjbGllbnRz
IHRvIGRlY2lkZSBob3cgdG8gbG9hZCBhbmQgcHJlc2VudAorICAgICAgICBleHRlcm5hbCBwYWdl
cy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tJbnNwZWN0
b3JEZWxlZ2F0ZS5tbToKKyAgICAgICAgKC1bSW5zcGVjdG9yRGVsZWdhdGUgaW5zcGVjdG9yOnNo
b3dVUkxFeHRlcm5hbGx5Ol0pOiBBZGRlZC4KKyAgICAgICAgKC1bVUlEZWxlZ2F0ZSBfd2ViVmll
dzpkaWRBdHRhY2hMb2NhbEluc3BlY3RvcjpdKToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICBE
cml2ZS1ieTogcmVtb3ZlIHVubmVjZXNzYXJ5IFdlYktpdF8gcHJlZml4IGZyb20gdGhlIHRlc3Qg
bmFtZS4KKwogMjAyMC0wOS0wMiAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KIAogICAg
ICAgICBXZWIgSW5zcGVjdG9yOiBfV0tJbnNwZWN0b3JEZWxlZ2F0ZSBzaG91bGQgYmUgYXR0YWNo
ZWQgdG8gX1dLSW5zcGVjdG9yIG5vdCBXS1dlYlZpZXcKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tJbnNwZWN0b3JEZWxlZ2F0ZS5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tJbnNwZWN0b3JEZWxlZ2F0ZS5tbQpp
bmRleCA5YTM3NzU0Nzk5YjBiMjdlNzBiNWIzZjQ0Nzc1OGM4MDUxYTU5NGRkLi4yMzcwMzgwZTQ1
YTQ0ZmFmYjk0NTdhYTRkYzI2Nzg1ZTlmNDU2Mjk3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9yRGVsZWdhdGUubW0KKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0luc3BlY3RvckRlbGVnYXRlLm1t
CkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZUZvclRl
c3RpbmcuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tJbnNwZWN0b3IuaD4KICNpbXBvcnQgPFdlYktp
dC9fV0tJbnNwZWN0b3JEZWxlZ2F0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L19XS0luc3BlY3RvclBy
aXZhdGVGb3JUZXN0aW5nLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKICNpZiBQTEFU
Rk9STShNQUMpCkBAIC0zOSw2ICs0MCw5IEBACiBzdGF0aWMgYm9vbCBkaWRBdHRhY2hMb2NhbElu
c3BlY3RvckNhbGxlZCA9IGZhbHNlOwogc3RhdGljIGJvb2wgYnJvd3NlckRvbWFpbkVuYWJsZWRG
b3JJbnNwZWN0b3JDYWxsZWQgPSBmYWxzZTsKIHN0YXRpYyBib29sIGJyb3dzZXJEb21haW5EaXNh
YmxlZEZvckluc3BlY3RvckNhbGxlZCA9IGZhbHNlOworc3RhdGljIGJvb2wgc2hvd1VSTEV4dGVy
bmFsbHlDYWxsZWQgPSBmYWxzZTsKK3N0YXRpYyBSZXRhaW5QdHI8aWQgPF9XS0luc3BlY3RvckRl
bGVnYXRlPj4gaW5zcGVjdG9yRGVsZWdhdGU7CitzdGF0aWMgUmV0YWluUHRyPE5TVVJMPiBVUkxU
b1Nob3c7CiAKIEBpbnRlcmZhY2UgSW5zcGVjdG9yRGVsZWdhdGUgOiBOU09iamVjdCA8X1dLSW5z
cGVjdG9yRGVsZWdhdGU+CiBAZW5kCkBAIC01OSw2ICs2MywxMiBAQCBzdGF0aWMgYm9vbCBicm93
c2VyRG9tYWluRGlzYWJsZWRGb3JJbnNwZWN0b3JDYWxsZWQgPSBmYWxzZTsKICAgICBicm93c2Vy
RG9tYWluRGlzYWJsZWRGb3JJbnNwZWN0b3JDYWxsZWQgPSB0cnVlOwogfQogCistICh2b2lkKWlu
c3BlY3RvcjooX1dLSW5zcGVjdG9yICopaW5zcGVjdG9yIHNob3dVUkxFeHRlcm5hbGx5OihOU1VS
TCAqKXVybAoreworICAgIEVYUEVDVF9TVFJFUSh1cmwuYWJzb2x1dGVTdHJpbmcuVVRGOFN0cmlu
ZywgVVJMVG9TaG93LmdldCgpLmFic29sdXRlU3RyaW5nLlVURjhTdHJpbmcpOworICAgIHNob3dV
UkxFeHRlcm5hbGx5Q2FsbGVkID0gdHJ1ZTsKK30KKwogQGVuZAogCiBAaW50ZXJmYWNlIFVJRGVs
ZWdhdGUgOiBOU09iamVjdCA8V0tVSURlbGVnYXRlPgpAQCAtNzQsNyArODQsNyBAQCBzdGF0aWMg
Ym9vbCBicm93c2VyRG9tYWluRGlzYWJsZWRGb3JJbnNwZWN0b3JDYWxsZWQgPSBmYWxzZTsKIAog
ICAgIEVYUEVDVF9FUSh3ZWJWaWV3Ll9pbnNwZWN0b3IsIGluc3BlY3Rvcik7CiAKLSAgICBhdXRv
IGluc3BlY3RvckRlbGVnYXRlID0gYWRvcHROUyhbSW5zcGVjdG9yRGVsZWdhdGUgbmV3XSk7Cisg
ICAgaW5zcGVjdG9yRGVsZWdhdGUgPSBbSW5zcGVjdG9yRGVsZWdhdGUgbmV3XTsKICAgICBbaW5z
cGVjdG9yIHNldERlbGVnYXRlOmluc3BlY3RvckRlbGVnYXRlLmdldCgpXTsKIAogICAgIGRpZEF0
dGFjaExvY2FsSW5zcGVjdG9yQ2FsbGVkID0gdHJ1ZTsKQEAgLTgyLDcgKzkyLDcgQEAgc3RhdGlj
IGJvb2wgYnJvd3NlckRvbWFpbkRpc2FibGVkRm9ySW5zcGVjdG9yQ2FsbGVkID0gZmFsc2U7CiAK
IEBlbmQKIAotVEVTVChXZWJLaXRfV0tJbnNwZWN0b3JEZWxlZ2F0ZSwgRGlkTm90aWZ5Rm9yTG9j
YWxJbnNwZWN0b3IpCitURVNUKFdLSW5zcGVjdG9yRGVsZWdhdGUsIERpZE5vdGlmeUZvckxvY2Fs
SW5zcGVjdG9yKQogewogICAgIGF1dG8gd2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtX
S1dlYlZpZXdDb25maWd1cmF0aW9uIG5ld10pOwogICAgIHdlYlZpZXdDb25maWd1cmF0aW9uLmdl
dCgpLnByZWZlcmVuY2VzLl9kZXZlbG9wZXJFeHRyYXNFbmFibGVkID0gWUVTOwpAQCAtMTAxLDQg
KzExMSwyMyBAQCBURVNUKFdlYktpdF9XS0luc3BlY3RvckRlbGVnYXRlLCBEaWROb3RpZnlGb3JM
b2NhbEluc3BlY3RvcikKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmJyb3dzZXJEb21h
aW5EaXNhYmxlZEZvckluc3BlY3RvckNhbGxlZCk7CiB9CiAKK1RFU1QoV0tJbnNwZWN0b3JEZWxl
Z2F0ZSwgU2hvd1VSTEV4dGVybmFsbHkpCit7CisgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlv
biA9IGFkb3B0TlMoW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gbmV3XSk7CisgICAgd2ViVmlld0Nv
bmZpZ3VyYXRpb24uZ2V0KCkucHJlZmVyZW5jZXMuX2RldmVsb3BlckV4dHJhc0VuYWJsZWQgPSBZ
RVM7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOndlYlZpZXdD
b25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgYXV0byB1aURlbGVnYXRlID0gYWRvcHROUyhbVUlE
ZWxlZ2F0ZSBuZXddKTsKKworICAgIFt3ZWJWaWV3IHNldFVJRGVsZWdhdGU6dWlEZWxlZ2F0ZS5n
ZXQoKV07CisgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCI8aGVhZD48dGl0bGU+VGVzdCBw
YWdlIHRvIGJlIGluc3BlY3RlZDwvdGl0bGU+PC9oZWFkPjxib2R5PjxwPkZpbGxlciBjb250ZW50
PC9wPjwvYm9keT4iIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vZXhhbXBs
ZS5jb20vIl1dOworCisgICAgW1t3ZWJWaWV3IF9pbnNwZWN0b3JdIHNob3ddOworICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkQXR0YWNoTG9jYWxJbnNwZWN0b3JDYWxsZWQpOworCisg
ICAgVVJMVG9TaG93ID0gW05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwczovL3d3dy53ZWJraXQu
b3JnLyJdOworICAgIFtbd2ViVmlldyBfaW5zcGVjdG9yXSBfdHJpZ2dlclNob3dVUkxFeHRlcm5h
bGx5Rm9yVGVzdGluZzpVUkxUb1Nob3cuZ2V0KCldOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZzaG93VVJMRXh0ZXJuYWxseUNhbGxlZCk7Cit9CisKICNlbmRpZiAvLyBQTEFURk9S
TShNQUMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408532</attachid>
            <date>2020-09-11 08:25:13 -0700</date>
            <delta_ts>2020-09-11 08:38:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216334-20200911082513.patch</filename>
            <type>text/plain</type>
            <size>24528</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2OTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUyYjQ0N2QxM2I4OGUxYzlh
NTU2NmMwZDJlMjk2YTE3MTkzNmIyN2QuLjlkNzNlYmI5ZGRiYjUxZmZkZDU3MjE3YTE1YWI0NzYx
MDNjN2NlMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMjAtMDktMTAgIEJyaWFuIEJ1
cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBfV0tJbnNwZWN0b3JEZWxl
Z2F0ZSBzaG91bGQgaGFuZGxlIHNob3dpbmcgZXh0ZXJuYWwgcmVzb3VyY2VzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTYzMzQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJLaXQgY2xpZW50cyBuZWVk
IGEgd2F5IHRvIGNvbnRyb2wgdGhlIGxvYWRpbmcgYW5kIHByZXNlbnRhdGlvbiBvZgorICAgICAg
ICBleHRlcm5hbCByZXNvdXJjZXMgdGhhdCBhcmUgbGlua2VkIGluIFdlYiBJbnNwZWN0b3IncyB1
c2VyIGludGVyZmFjZS4KKworICAgICAgICBXaGVuIGFuIGV4dGVybmFsIG5hdmlnYXRpb24gaXMg
dHJpZ2dlcmVkIHdpdGhpbiB0aGUgV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlcidzCisgICAgICAg
IFdLV2ViVmlldywgYWxsb3cgdGhlIGRlbGVnYXRlIHRvIHByZXNlbnQgdGhlIHJlcXVlc3RlZCBy
ZXNvdXJjZS4gT3RoZXJ3aXNlLCByZWRpcmVjdAorICAgICAgICB0aGUgbmF2aWdhdGlvbiB0byB0
aGUgaW5zcGVjdGVkIFdlYlZpZXcuCisKKyAgICAgICAgTmV3IEFQSSB0ZXN0OiBXS0luc3BlY3Rv
ckRlbGVnYXRlLlNob3dVUkxFeHRlcm5hbGx5LgorCisgICAgICAgICogU291cmNlc0NvY29hLnR4
dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSUluc3BlY3RvckNsaWVudC5oOgorICAgICAg
ICAoQVBJOjpJbnNwZWN0b3JDbGllbnQ6OnNob3dVUkxFeHRlcm5hbGx5KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckRlbGVnYXRlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JQcml2YXRlRm9yVGVzdGluZy5oOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9yQ2xpZW50LmguCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JUZXN0aW5nLm1tOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9yQ2xpZW50Lmgu
CisgICAgICAgICgtW19XS0luc3BlY3RvciBfdHJpZ2dlclNob3dVUkxFeHRlcm5hbGx5Rm9yVGVz
dGluZzpdKToKKyAgICAgICAgQWRkIGEgX1dLSW5zcGVjdG9yVGVzdGluZyBjYXRlZ29yeSBmb3Ig
dHJpZ2dlcmluZyBmdW5jdGlvbmFsaXR5CisgICAgICAgIGFzIG5lZWRlZCB0byBpbXBsZW1lbnQg
dGhlIFRlc3RXZWJLaXRBUEkgdGVzdCBjYXNlLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29h
L1BhZ2VDbGllbnRJbXBsQ29jb2EubW06CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9D
b2NvYS9JbnNwZWN0b3JEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3Iv
Q29jb2EvSW5zcGVjdG9yRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckRl
bGVnYXRlOjpzZXREZWxlZ2F0ZSk6CisgICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckRlbGVnYXRl
OjpJbnNwZWN0b3JDbGllbnQ6OnNob3dVUkxFeHRlcm5hbGx5KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0lu
c3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW06CisgICAgICAg
ICgtW1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uOmRlY2lzaW9uSGFuZGxlcjpdKToKKyAgICAgICAgU2VlIGlmIHRoZSBkZWxl
Z2F0ZSBjYW4gaGFuZGxlIHRoZSByZXF1ZXN0LgorCisgICAgICAgICogVUlQcm9jZXNzL0luc3Bl
Y3Rvci9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW06CisgICAgICAgICgtW1dLV2ViSW5zcGVj
dG9yUHJveHlPYmpDQWRhcHRlciBpbnNwZWN0b3JWaWV3Q29udHJvbGxlcjpzaG93VVJMRXh0ZXJu
YWxseTpdKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OnNob3dVUkxFeHRl
cm5hbGx5KToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwog
MjAyMC0wOS0xMCAgSm9vbmdodW4gUGFyayAgPGpoNzE4LnBhcmtAc2Ftc3VuZy5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZC4gUmVtb3ZlIHRoZSBidWlsZCB3YXJuaW5nIGJlbG93IHNpbmNlIHIy
NjY4ODUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMjNlZDRmMDJjYjgxNzgyYWMxZTNhMWVm
YTU0ZjM2NDIwMmE3MGRkNC4uYWYyNGFhOTIwMTJhODQ5OWRkZmY2MWJjYzY3ZmNmYWNmMTQ2YTk3
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJj
ZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtMjU5LDYgKzI1OSw3IEBAIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5tbQogVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tGcmFtZVRyZWVOb2RlLm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0dlb2xvY2F0aW9uUG9z
aXRpb24ubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tCitVSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0luc3BlY3RvclRlc3RpbmcubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
SW5zcGVjdG9yRGVidWdnYWJsZUluZm8ubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVj
dG9yV2luZG93Lm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0ludGVybmFsRGVidWdGZWF0dXJl
Lm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9y
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9yQ2xpZW50
LmgKaW5kZXggOTM1NDk3NGU3NDBmYWE3ZmUyNmNmMzE0ZDM1ZjJiZmVhNmJmM2MwOS4uZmZmYWE1
MmJjNzA5NTg3MDBiZWM0NWU2MTVlNTRjMTg2NTcxOGJiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0FQSUluc3BlY3RvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JDbGllbnQuaApAQCAtMzgsNiArMzgsNyBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgYnJvd3NlckRvbWFpbkVuYWJsZWQoV2ViS2l0OjpX
ZWJJbnNwZWN0b3JQcm94eSYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBicm93c2VyRG9tYWluRGlz
YWJsZWQoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eSYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBz
aG93VVJMRXh0ZXJuYWxseShXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5JiwgV1RGOjpVUkwmKSB7
IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckRlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRGVsZWdhdGUuaAppbmRleCA3YmM3MTFm
ZmVlN2RiNmY5MjQ1MWUzYmZlNWJhMDFjZThiMDNlODUwLi5jOWNjNGI1OTI1NDE2NWY0ZTc4NTRk
OTRmY2VkMzdkMjEzN2M4OTcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLSW5zcGVjdG9yRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRGVsZWdhdGUuaApAQCAtNDEsNCArNDEsMTEgQEAK
ICAqLwogLSAodm9pZClpbnNwZWN0b3JEaWREaXNhYmxlQnJvd3NlckRvbWFpbjooX1dLSW5zcGVj
dG9yICopaW5zcGVjdG9yOwogCisvKiEgQGFic3RyYWN0IENhbGxlZCB3aGVuIHRoZSBfV0tJbnNw
ZWN0b3IgcmVxdWVzdHMgdG8gc2hvdyBhIHJlc291cmNlIGV4dGVybmFsbHkuIFRoaXMKKyAgICBp
cyB1c2VkIHRvIGRpc3BsYXkgZG9jdW1lbnRhdGlvbiBwYWdlcyBhbmQgdG8gc2hvdyBleHRlcm5h
bCBVUkxzIHRoYXQgYXJlIGxpbmtpZmllZC4KKyAgICBAcGFyYW0gaW5zcGVjdG9yIHRoZSBhc3Nv
Y2lhdGVkIGluc3BlY3RvciBmb3Igd2hpY2ggYW4gZXh0ZXJuYWwgbmF2aWdhdGlvbiBzaG91bGQg
YmUgdHJpZ2dlcmVkLgorICAgIEBwYXJhbSB1cmwgVGhlIHJlc291cmNlIHRvIGJlIHNob3duLgor
ICovCistICh2b2lkKWluc3BlY3RvcjooX1dLSW5zcGVjdG9yICopaW5zcGVjdG9yIHNob3dVUkxF
eHRlcm5hbGx5OihOU1VSTCAqKXVybDsKKwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvclByaXZhdGVGb3JUZXN0aW5nLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yUHJpdmF0ZUZvclRl
c3RpbmcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44ZTIzMjcwYzhhYWVmYmMzMjkxYjAxOTNkYTkwMTZjN2NiMTgx
YWQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS0luc3BlY3RvclByaXZhdGVGb3JUZXN0aW5nLmgKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbXBvcnQgIl9XS0luc3BlY3Rvci5oIgorCitAaW50ZXJmYWNlIF9XS0luc3BlY3Rv
ciAoV0tUZXN0aW5nKQorLSAodm9pZClfdHJpZ2dlclNob3dVUkxFeHRlcm5hbGx5Rm9yVGVzdGlu
ZzooTlNVUkwgKil1cmw7CitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yVGVzdGluZy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JUZXN0aW5nLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwOTZhZmNl
ZThiODZhYmVmMzYxMWQxYzk1OTBlYmNiZTQwMDkxNzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yVGVzdGluZy5tbQpAQCAt
MCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpbXBvcnQg
IldLV2ViVmlldy5oIgorI2ltcG9ydCAiX1dLSW5zcGVjdG9ySW50ZXJuYWwuaCIKKyNpbXBvcnQg
Il9XS0luc3BlY3RvclByaXZhdGVGb3JUZXN0aW5nLmgiCisKK0BpbXBsZW1lbnRhdGlvbiBfV0tJ
bnNwZWN0b3IgKFdLVGVzdGluZykKKworLSAodm9pZClfdHJpZ2dlclNob3dVUkxFeHRlcm5hbGx5
Rm9yVGVzdGluZzooTlNVUkwgKil1cmwKK3sKKyAgICAvLyBGb3JjZSB0aGUgbmF2aWdhdGlvbiBy
ZXF1ZXN0IHRvIGJlIGhhbmRsZWQgbmF0dXJhbGx5IHRocm91Z2ggdGhlCisgICAgLy8gaW50ZXJu
YWwgTmF2aWdhdGlvbkRlbGVnYXRlIG9mIFdLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIuCisgICAg
W3NlbGYuaW5zcGVjdG9yV2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RX
aXRoVVJMOnVybF1dOworfQorCitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9QYWdlQ2xpZW50SW1wbENvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvUGFnZUNsaWVudEltcGxDb2NvYS5tbQppbmRleCBjYWUzNmI2MTc0YmNhOGJiMDY2
NTZmOGE3NzA0ZTI0YWU3MGRjMDFlLi44MDYxYmZiZDQ2MmFmMGQ1MWRhODZjZjRmOTUyNWY3YTdi
ZTNhMjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QYWdlQ2xp
ZW50SW1wbENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BhZ2VD
bGllbnRJbXBsQ29jb2EubW0KQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAK
IFBhZ2VDbGllbnRJbXBsQ29jb2E6OlBhZ2VDbGllbnRJbXBsQ29jb2EoV0tXZWJWaWV3ICp3ZWJW
aWV3KQogICAgIDogbV93ZWJWaWV3IHsgd2ViVmlldyB9Ci0gICAgLCBtX2FsdGVybmF0aXZlVGV4
dFVJQ29udHJvbGxlciB7IG1ha2VVbmlxdWU8QWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyPigp
IH0KKyAgICAsIG1fYWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyIHsgbWFrZVVuaXF1ZTxXZWJD
b3JlOjpBbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXI+KCkgfQogewogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRGVsZWdh
dGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JE
ZWxlZ2F0ZS5oCmluZGV4IGI5NTk5YTZiNTYxMmU2MDFkMjAzOGNmYjU3OWY1ZDk5M2ZhNjE2Yzcu
LjhhMDJjMGExYzJjNDkyNmZiOWU2MDgyZjVmYmI5MmI5NjkyMjdmMTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JEZWxlZ2F0ZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JE
ZWxlZ2F0ZS5oCkBAIC01OCw2ICs1OCw3IEBAIHByaXZhdGU6CiAgICAgICAgIC8vIEFQSTo6SW5z
cGVjdG9yQ2xpZW50CiAgICAgICAgIHZvaWQgYnJvd3NlckRvbWFpbkVuYWJsZWQoV2ViSW5zcGVj
dG9yUHJveHkmKTsKICAgICAgICAgdm9pZCBicm93c2VyRG9tYWluRGlzYWJsZWQoV2ViSW5zcGVj
dG9yUHJveHkmKTsKKyAgICAgICAgdm9pZCBzaG93VVJMRXh0ZXJuYWxseShXZWJJbnNwZWN0b3JQ
cm94eSYsIFVSTCYpOwogCiAgICAgICAgIEluc3BlY3RvckRlbGVnYXRlJiBtX2luc3BlY3RvckRl
bGVnYXRlOwogICAgIH07CkBAIC02OCw2ICs2OSw3IEBAIHByaXZhdGU6CiAgICAgc3RydWN0IHsK
ICAgICAgICAgYm9vbCBpbnNwZWN0b3JEaWRFbmFibGVCcm93c2VyRG9tYWluIDogMTsKICAgICAg
ICAgYm9vbCBpbnNwZWN0b3JEaWREaXNhYmxlQnJvd3NlckRvbWFpbiA6IDE7CisgICAgICAgIGJv
b2wgaW5zcGVjdG9yU2hvd1VSTEV4dGVybmFsbHk6IDE7CiAgICAgfSBtX2RlbGVnYXRlTWV0aG9k
czsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9D
b2NvYS9JbnNwZWN0b3JEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3Bl
Y3Rvci9Db2NvYS9JbnNwZWN0b3JEZWxlZ2F0ZS5tbQppbmRleCA0NjkwODQyMDc2OGUwYWVhZjQx
YzY5MGRlM2E5MDA3ZjMzYTZjZTA1Li4xZDIzNTBhZGQwZTgwMGNlN2JhNjExMWM3MzkxYTk4NzM2
ODgxOWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvQ29j
b2EvSW5zcGVjdG9yRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5z
cGVjdG9yL0NvY29hL0luc3BlY3RvckRlbGVnYXRlLm1tCkBAIC01NCw2ICs1NCw3IEBAIHZvaWQg
SW5zcGVjdG9yRGVsZWdhdGU6OnNldERlbGVnYXRlKGlkIDxfV0tJbnNwZWN0b3JEZWxlZ2F0ZT4g
ZGVsZWdhdGUpCiAKICAgICBtX2RlbGVnYXRlTWV0aG9kcy5pbnNwZWN0b3JEaWRFbmFibGVCcm93
c2VyRG9tYWluID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoaW5zcGVj
dG9yRGlkRW5hYmxlQnJvd3NlckRvbWFpbjopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy5pbnNw
ZWN0b3JEaWREaXNhYmxlQnJvd3NlckRvbWFpbiA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKGluc3BlY3RvckRpZERpc2FibGVCcm93c2VyRG9tYWluOildOworICAgIG1f
ZGVsZWdhdGVNZXRob2RzLmluc3BlY3RvclNob3dVUkxFeHRlcm5hbGx5ID0gW2RlbGVnYXRlIHJl
c3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoaW5zcGVjdG9yOnNob3dVUkxFeHRlcm5hbGx5Oild
OwogfQogCiBJbnNwZWN0b3JEZWxlZ2F0ZTo6SW5zcGVjdG9yQ2xpZW50OjpJbnNwZWN0b3JDbGll
bnQoSW5zcGVjdG9yRGVsZWdhdGUmIGRlbGVnYXRlKQpAQCAtODcsNCArODgsMTYgQEAgdm9pZCBJ
bnNwZWN0b3JEZWxlZ2F0ZTo6SW5zcGVjdG9yQ2xpZW50Ojpicm93c2VyRG9tYWluRGlzYWJsZWQo
V2ViSW5zcGVjdG9yUHJveHkKICAgICBbZGVsZWdhdGUgaW5zcGVjdG9yRGlkRGlzYWJsZUJyb3dz
ZXJEb21haW46bV9pbnNwZWN0b3JEZWxlZ2F0ZS5tX2luc3BlY3Rvci5nZXQoKS5nZXQoKV07CiB9
CiAKK3ZvaWQgSW5zcGVjdG9yRGVsZWdhdGU6Okluc3BlY3RvckNsaWVudDo6c2hvd1VSTEV4dGVy
bmFsbHkoV2ViSW5zcGVjdG9yUHJveHkmLCBVUkwmIHVybCkKK3sKKyAgICBpZiAoIW1faW5zcGVj
dG9yRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMuaW5zcGVjdG9yU2hvd1VSTEV4dGVybmFsbHkp
CisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8mIGRlbGVnYXRlID0gbV9pbnNwZWN0b3JEZWxl
Z2F0ZS5tX2RlbGVnYXRlOworICAgIGlmICghZGVsZWdhdGUpCisgICAgICAgIHJldHVybjsKKwor
ICAgIFtkZWxlZ2F0ZSBpbnNwZWN0b3I6bV9pbnNwZWN0b3JEZWxlZ2F0ZS5tX2luc3BlY3Rvci5n
ZXQoKS5nZXQoKSBzaG93VVJMRXh0ZXJuYWxseTp1cmxdOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJ
bnNwZWN0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYklu
c3BlY3RvclByb3h5LmgKaW5kZXggMzZjYzlkZjEyY2JiNzVmMWM1MTJhZTAwZmUxZDUwODZjOWFh
MDlhNi4uMzUwZDRlMzAyY2RhYmZlM2FkMTY0ZDU1NTFjMTdkNWJlODIxZjA5ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclByb3h5
LmgKQEAgLTEyOCw3ICsxMjgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbnNwZWN0ZWRWaWV3RnJh
bWVEaWRDaGFuZ2UoQ0dGbG9hdCA9IDApOwogICAgIHZvaWQgd2luZG93RnJhbWVEaWRDaGFuZ2Uo
KTsKICAgICB2b2lkIHdpbmRvd0Z1bGxTY3JlZW5EaWRDaGFuZ2UoKTsKLSAgICBOU1dpbmRvdyog
aW5zcGVjdG9yV2luZG93KCkgY29uc3QgeyByZXR1cm4gbV9pbnNwZWN0b3JXaW5kb3cuZ2V0KCk7
IH0KKyAgICBOU1dpbmRvdyAqaW5zcGVjdG9yV2luZG93KCkgY29uc3QgeyByZXR1cm4gbV9pbnNw
ZWN0b3JXaW5kb3cuZ2V0KCk7IH0KIAogICAgIHZvaWQgY2xvc2VGcm9udGVuZFBhZ2UoKTsKICAg
ICB2b2lkIGNsb3NlRnJvbnRlbmRBZnRlckluYWN0aXZpdHlUaW1lckZpcmVkKCk7CkBAIC0xMzYs
NiArMTM2LDcgQEAgcHVibGljOgogICAgIHZvaWQgYXR0YWNobWVudFZpZXdEaWRDaGFuZ2UoTlNW
aWV3ICpvbGRWaWV3LCBOU1ZpZXcgKm5ld1ZpZXcpOwogICAgIHZvaWQgYXR0YWNobWVudFdpbGxN
b3ZlRnJvbVdpbmRvdyhOU1dpbmRvdyAqb2xkV2luZG93KTsKICAgICB2b2lkIGF0dGFjaG1lbnRE
aWRNb3ZlVG9XaW5kb3coTlNXaW5kb3cgKm5ld1dpbmRvdyk7CisgICAgdm9pZCBzaG93VVJMRXh0
ZXJuYWxseShOU1VSTCAqKTsKIAogICAgIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc2hlZXRS
ZWN0KCkgY29uc3QgeyByZXR1cm4gbV9zaGVldFJlY3Q7IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250
cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVj
dG9yVmlld0NvbnRyb2xsZXIuaAppbmRleCBiYWJkMzMyNTAyYWRlOTliNjFkYzQ1Yjk3Njk5NjYw
OGI3YzhiODEwLi5iOGMxNTUxZjU0NTczZWQ5NThhNWYyMzkwZDJkZGVlMmZjZWJkMzYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9y
Vmlld0NvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Iv
bWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIuaApAQCAtNTYsNiArNTYsNyBAQCBOU19BU1NV
TUVfTk9OTlVMTF9CRUdJTgogLSAoQk9PTClpbnNwZWN0b3JWaWV3Q29udHJvbGxlckluc3BlY3Rv
cklzVW5kZXJUZXN0OihXS0luc3BlY3RvclZpZXdDb250cm9sbGVyICopaW5zcGVjdG9yVmlld0Nv
bnRyb2xsZXI7CiAtICh2b2lkKWluc3BlY3RvclZpZXdDb250cm9sbGVyOihXS0luc3BlY3RvclZp
ZXdDb250cm9sbGVyICopaW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgd2lsbE1vdmVUb1dpbmRvdzoo
TlNXaW5kb3cgKiluZXdXaW5kb3c7CiAtICh2b2lkKWluc3BlY3RvclZpZXdDb250cm9sbGVyRGlk
TW92ZVRvV2luZG93OihXS0luc3BlY3RvclZpZXdDb250cm9sbGVyICopaW5zcGVjdG9yVmlld0Nv
bnRyb2xsZXI7CistICh2b2lkKWluc3BlY3RvclZpZXdDb250cm9sbGVyOihXS0luc3BlY3RvclZp
ZXdDb250cm9sbGVyICopaW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgc2hvd1VSTEV4dGVybmFsbHk6
KE5TVVJMICopdXJsOwogQGVuZAogCiBOU19BU1NVTUVfTk9OTlVMTF9FTkQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29u
dHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNw
ZWN0b3JWaWV3Q29udHJvbGxlci5tbQppbmRleCBmNDA3YWUxYmY2Yjc5YmRlZjJlODJjNDU4YTk5
NjRmODA0N2Q4MGYyLi5mYWZkNjkxNjc2NWRmYjExYTFiYzJlM2E2MDg2MThiOTU5MmIxZjc5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVj
dG9yVmlld0NvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVj
dG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1tCkBAIC0yMjcsOCArMjI3LDE0IEBA
IC0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uOihXS05hdmlnYXRpCiAKICAgICAvLyBQcmV2ZW50IGV2ZXJ5dGhpbmcgZWxz
ZS4KICAgICBkZWNpc2lvbkhhbmRsZXIoV0tOYXZpZ2F0aW9uQWN0aW9uUG9saWN5Q2FuY2VsKTsK
LSAgICAKLSAgICAvLyBBbmQgaW5zdGVhZCBsb2FkIGl0IGluIHRoZSBpbnNwZWN0ZWQgcGFnZS4K
KworICAgIC8vIEFsbG93IHRoZSBkZWxlZ2F0ZSB0byBoYW5kbGUgaXQgaWYgcG9zc2libGUsIG90
aGVyd2lzZSB0cnkgdG8gbG9hZCBpbiB0aGUgaW5zcGVjdGVkIHBhZ2UuCisgICAgLy8gVGhlIGxh
dHRlciBjb2RlIHBhdGggaGFzIGtub3duIGlzc3VlcyBpbiBTYWZhcmksIGJ1dCBpcyBiZXR0ZXIg
dGhhbiBzaW1wbHkgZG9pbmcgbm90aGluZy4KKyAgICBpZiAoISFfZGVsZWdhdGUgJiYgW19kZWxl
Z2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGluc3BlY3RvclZpZXdDb250cm9sbGVy
OnNob3dVUkxFeHRlcm5hbGx5OildKSB7CisgICAgICAgIFtfZGVsZWdhdGUgaW5zcGVjdG9yVmll
d0NvbnRyb2xsZXI6c2VsZiBzaG93VVJMRXh0ZXJuYWxseTpuYXZpZ2F0aW9uQWN0aW9uLnJlcXVl
c3QuVVJMXTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmIChfaW5zcGVjdGVkUGFn
ZSkKICAgICAgICAgX2luc3BlY3RlZFBhZ2UtPmxvYWRSZXF1ZXN0KG5hdmlnYXRpb25BY3Rpb24u
cmVxdWVzdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0
b3IvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
SW5zcGVjdG9yL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQppbmRleCBhNTU3YzgzYTRiMjhi
ZTU0ZTliZjllY2I1OGJkMjUyZDNlOTc1OGQwLi4zYjQ0NTk1MmZlMTM0MjkxMTFhNThhNDNhMDll
N2NkYTUwOTQwMjVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0
b3IvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0luc3BlY3Rvci9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0KQEAgLTE5Myw2ICsxOTMs
MTIgQEAgLSAodm9pZClpbnNwZWN0b3JWaWV3Q29udHJvbGxlckRpZE1vdmVUb1dpbmRvdzooV0tJ
bnNwZWN0b3JWaWV3Q29udHJvbGxlciAqKWluc3AKICAgICAgICAgX2luc3BlY3RvclByb3h5LT5h
dHRhY2htZW50RGlkTW92ZVRvV2luZG93KGluc3BlY3RvclZpZXdDb250cm9sbGVyLndlYlZpZXcu
d2luZG93KTsKIH0KIAorLSAodm9pZClpbnNwZWN0b3JWaWV3Q29udHJvbGxlcjooV0tJbnNwZWN0
b3JWaWV3Q29udHJvbGxlciAqKWluc3BlY3RvclZpZXdDb250cm9sbGVyIHNob3dVUkxFeHRlcm5h
bGx5OihOU1VSTCAqKXVybAoreworICAgIGlmIChfaW5zcGVjdG9yUHJveHkpCisgICAgICAgIF9p
bnNwZWN0b3JQcm94eS0+c2hvd1VSTEV4dGVybmFsbHkodXJsKTsKK30KKwogQGVuZAogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKQEAgLTIyOSw2ICsyMzUsMTIgQEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94
eTo6YXR0YWNobWVudERpZE1vdmVUb1dpbmRvdyhOU1dpbmRvdyAqbmV3V2luZG93KQogICAgIH0K
IH0KIAordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6c2hvd1VSTEV4dGVybmFsbHkoTlNVUkwgKnVy
bCkKK3sKKyAgICBVUkwgY29udmVydGVkVVJMIHsgdXJsIH07CisgICAgbV9pbnNwZWN0b3JDbGll
bnQtPnNob3dVUkxFeHRlcm5hbGx5KCp0aGlzLCBjb252ZXJ0ZWRVUkwpOworfQorCiB2b2lkIFdl
Ykluc3BlY3RvclByb3h5Ojp1cGRhdGVJbnNwZWN0b3JXaW5kb3dUaXRsZSgpIGNvbnN0CiB7CiAg
ICAgaWYgKCFtX2luc3BlY3RvcldpbmRvdykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI1NjgxZWQ0ZDliYjI1ZmQ0OTA1OWIxOTNmN2Qw
YTI1MTM5NDY4YTMuLjU1YzQxMmUyODAyNjcxNTViNjY3NzY0ZWQzZjI4NWUyMGE1YjQyYmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTQwNiw2ICsxNDA2LDcgQEAKIAkJOTk1NUE2RjcxQzc5ODZFNTAwRUI2QTkzIC8qIEF1dG9tYXRp
b25Qcm90b2NvbE9iamVjdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk5NTVBNkYzMUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9uUHJvdG9jb2xP
YmplY3RzLmggKi87IH07CiAJCTk5Nzg4QUNCMUY0MjFEREEwMEMwODAwMCAvKiBfV0tBdXRvbWF0
aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk5Nzg4QUM5MUY0MjFEQ0EwMEMwODAwMCAvKiBfV0tBdXRvbWF0aW9u
U2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5OTc5Q0E1ODIzN0Y0OUYxMDAzOUVDMDUgLyogX1dLSW5zcGVjdG9y
UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTk3OUNBNTcyMzdGNDlGMDAwMzlFQzA1IC8qIF9XS0luc3BlY3RvclByaXZhdGUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5OTk5NkE5RjI1MDA0
QkNDMDA0Rjc1NTkgLyogX1dLSW5zcGVjdG9yUHJpdmF0ZUZvclRlc3RpbmcuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5OTk2QTlEMjUwMDRCQ0IwMDRG
NzU1OSAvKiBfV0tJbnNwZWN0b3JQcml2YXRlRm9yVGVzdGluZy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk5QzNBRTJEMURBREE2QUQwMEFGNUMx
NiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbk1hY3Jvcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlDM0FFMkMxREFEQTZBNzAwQUY1QzE2IC8qIFdlYkF1
dG9tYXRpb25TZXNzaW9uTWFjcm9zLmggKi87IH07CiAJCTk5QzgxRDVBMUMyMEU3RTIwMDVDNEM4
MiAvKiBBdXRvbWF0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5OUM4MUQ1NTFDMjBERkJFMDA1QzRDODIgLyogQXV0b21hdGlvbkNsaWVu
dC5oICovOyB9OwogCQk5OUM4MUQ1RDFDMjFGMzhCMDA1QzRDODIgLyogQVBJQXV0b21hdGlvbkNs
aWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlD
ODFENUIxQzIwRTgxNzAwNUM0QzgyIC8qIEFQSUF1dG9tYXRpb25DbGllbnQuaCAqLzsgfTsKQEAg
LTQ0NzUsNiArNDQ3Niw4IEBACiAJCTk5Nzg4QUM5MUY0MjFEQ0EwMEMwODAwMCAvKiBfV0tBdXRv
bWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gX1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTk5Nzg4QUNBMUY0MjFEQ0EwMEMwODAwMCAvKiBfV0tBdXRvbWF0aW9u
U2Vzc2lvbkNvbmZpZ3VyYXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBfV0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24ubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTk5NzlDQTU3MjM3RjQ5RjAwMDM5RUMwNSAvKiBfV0tJbnNwZWN0
b3JQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS0luc3BlY3Rv
clByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk5OTZBOUQyNTAwNEJD
QjAwNEY3NTU5IC8qIF9XS0luc3BlY3RvclByaXZhdGVGb3JUZXN0aW5nLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS0luc3BlY3RvclByaXZhdGVGb3JUZXN0aW5nLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTk2QTlFMjUwMDRCQ0IwMDRGNzU1OSAvKiBf
V0tJbnNwZWN0b3JUZXN0aW5nLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gX1dLSW5zcGVjdG9yVGVzdGluZy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTlDM0FFMjMxREFEOEUzNDAwQUY1QzE2IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uTWFjLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQXV0b21hdGlvblNl
c3Npb25NYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5QzNBRTI2MURBRDk0
ODUwMEFGNUMxNiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQXV0b21hdGlvblNlc3Npb25Db2NvYS5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlDM0FFMkMxREFEQTZBNzAwQUY1QzE2IC8q
IFdlYkF1dG9tYXRpb25TZXNzaW9uTWFjcm9zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYkF1dG9tYXRpb25TZXNzaW9uTWFjcm9zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC03MjQ3LDYgKzcyNTAsOCBAQAogCQkJCTkxOTc5NDBCMjNEQkM1MDMwMDI1Nzg5
MiAvKiBfV0tJbnNwZWN0b3JEZWxlZ2F0ZS5oICovLAogCQkJCTVDQUZERTQ0MjEzMDg0MzYwMEIx
RjdFMSAvKiBfV0tJbnNwZWN0b3JJbnRlcm5hbC5oICovLAogCQkJCTk5NzlDQTU3MjM3RjQ5RjAw
MDM5RUMwNSAvKiBfV0tJbnNwZWN0b3JQcml2YXRlLmggKi8sCisJCQkJOTk5OTZBOUQyNTAwNEJD
QjAwNEY3NTU5IC8qIF9XS0luc3BlY3RvclByaXZhdGVGb3JUZXN0aW5nLmggKi8sCisJCQkJOTk5
OTZBOUUyNTAwNEJDQjAwNEY3NTU5IC8qIF9XS0luc3BlY3RvclRlc3RpbmcubW0gKi8sCiAJCQkJ
QTVDMEYwQUEyMDAwNjU2RTAwNTM2NTM2IC8qIF9XS0luc3BlY3RvcldpbmRvdy5oICovLAogCQkJ
CUE1QzBGMEE5MjAwMDY1NkUwMDUzNjUzNiAvKiBfV0tJbnNwZWN0b3JXaW5kb3cubW0gKi8sCiAJ
CQkJMzFCMzYyOTQyMTQxRUJBRDAwN0JGQTUzIC8qIF9XS0ludGVybmFsRGVidWdGZWF0dXJlLmgg
Ki8sCkBAIC0xMDYxMiw2ICsxMDYxNyw3IEBACiAJCQkJOTE5Nzk0MEMyM0RCQzUwMzAwMjU3ODky
IC8qIF9XS0luc3BlY3RvckRlbGVnYXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk1Q0FGREU0NzIx
MzA4NDZBMDBCMUY3RTEgLyogX1dLSW5zcGVjdG9ySW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAog
CQkJCTk5NzlDQTU4MjM3RjQ5RjEwMDM5RUMwNSAvKiBfV0tJbnNwZWN0b3JQcml2YXRlLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5OTk5NkE5RjI1MDA0QkNDMDA0Rjc1NTkgLyogX1dLSW5zcGVjdG9y
UHJpdmF0ZUZvclRlc3RpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1QzBGMEFCMjAwMDY1ODIw
MDUzNjUzNiAvKiBfV0tJbnNwZWN0b3JXaW5kb3cuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxQjM2
Mjk1MjE0MUVCQ0QwMDdCRkE1MyAvKiBfV0tJbnRlcm5hbERlYnVnRmVhdHVyZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMzFCMzYyOTcyMTQxRUJEOTAwN0JGQTUzIC8qIF9XS0ludGVybmFsRGVidWdG
ZWF0dXJlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDk1M2MzMjI3MmE5MDg2YjY2OGQzNmIwOWZkNTg3
OGY5MTFlMTFlZjEuLjZhMzVmZjczNDE1ZTkyMTFlODI4YTdiZWQ5ZWQzNDJlZWI5YTU2MjggMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMSBAQAorMjAyMC0wOS0xMCAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAg
ICAgICBbQ29jb2FdIF9XS0luc3BlY3RvckRlbGVnYXRlIHNob3VsZCBoYW5kbGUgc2hvd2luZyBl
eHRlcm5hbCByZXNvdXJjZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxNjMzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBhIG5ldyB0ZXN0IHRvIHZlcmlmeSB0aGF0IGFuIGF0dGVtcHRlZCBuYXZp
Z2F0aW9uIGluIHRoZSBXZWIgSW5zcGVjdG9yJ3MKKyAgICAgICAgV0tXZWJWaWV3IHdpbGwgdHJp
Z2dlciB0aGUgbmV3IGRlbGVnYXRlIC1faW5zcGVjdG9yOnNob3dVUkxFeHRlcm5hbGx5OgorICAg
ICAgICB3aGljaCBjYW4gYmUgb3ZlcnJpZGRlbiBieSBXZWJLaXQgY2xpZW50cyB0byBkZWNpZGUg
aG93IHRvIGxvYWQgYW5kIHByZXNlbnQKKyAgICAgICAgZXh0ZXJuYWwgcGFnZXMuCisKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9yRGVsZWdhdGUu
bW06CisgICAgICAgICgtW0luc3BlY3RvckRlbGVnYXRlIGluc3BlY3RvcjpzaG93VVJMRXh0ZXJu
YWxseTpdKTogQWRkZWQuCisgICAgICAgICgtW1VJRGVsZWdhdGUgX3dlYlZpZXc6ZGlkQXR0YWNo
TG9jYWxJbnNwZWN0b3I6XSk6CisgICAgICAgIChURVNUKToKKyAgICAgICAgRHJpdmUtYnk6IHJl
bW92ZSB1bm5lY2Vzc2FyeSBXZWJLaXRfIHByZWZpeCBmcm9tIHRoZSB0ZXN0IG5hbWUuCisKIDIw
MjAtMDktMTAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkLCByZXZlcnRpbmcgcjI2Njg0MiBhbmQgcjI2Njg4My4KZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tJbnNwZWN0b3JEZWxlZ2F0ZS5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tJbnNwZWN0b3JEZWxlZ2F0
ZS5tbQppbmRleCAxZTNkNjk1ODVmZDUwNDY2NzE3M2UzMjQyYjczNGFmYzRkYzg2MGNiLi4yOTdh
YjlkZGRiMTQxZjk4MGRkZTVkYTE3ZWI4Y2M2OGVjNzY2YTRhIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9yRGVsZWdhdGUubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0luc3BlY3RvckRlbGVn
YXRlLm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0
ZUZvclRlc3RpbmcuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tJbnNwZWN0b3IuaD4KICNpbXBvcnQg
PFdlYktpdC9fV0tJbnNwZWN0b3JEZWxlZ2F0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L19XS0luc3Bl
Y3RvclByaXZhdGVGb3JUZXN0aW5nLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKICNp
ZiBQTEFURk9STShNQUMpCkBAIC00MSw3ICs0Miw5IEBAIEBjbGFzcyBJbnNwZWN0b3JEZWxlZ2F0
ZTsKIHN0YXRpYyBib29sIGRpZEF0dGFjaExvY2FsSW5zcGVjdG9yQ2FsbGVkID0gZmFsc2U7CiBz
dGF0aWMgYm9vbCBicm93c2VyRG9tYWluRW5hYmxlZEZvckluc3BlY3RvckNhbGxlZCA9IGZhbHNl
Owogc3RhdGljIGJvb2wgYnJvd3NlckRvbWFpbkRpc2FibGVkRm9ySW5zcGVjdG9yQ2FsbGVkID0g
ZmFsc2U7Ci1zdGF0aWMgUmV0YWluUHRyPEluc3BlY3RvckRlbGVnYXRlPiBzaGFyZWRJbnNwZWN0
b3JEZWxlZ2F0ZTsKK3N0YXRpYyBib29sIHNob3dVUkxFeHRlcm5hbGx5Q2FsbGVkID0gZmFsc2U7
CitzdGF0aWMgUmV0YWluUHRyPGlkIDxfV0tJbnNwZWN0b3JEZWxlZ2F0ZT4+IHNoYXJlZEluc3Bl
Y3RvckRlbGVnYXRlOworc3RhdGljIFJldGFpblB0cjxOU1VSTD4gVVJMVG9TaG93OwogCiBAaW50
ZXJmYWNlIEluc3BlY3RvckRlbGVnYXRlIDogTlNPYmplY3QgPF9XS0luc3BlY3RvckRlbGVnYXRl
PgogQGVuZApAQCAtNjIsNiArNjUsMTIgQEAgLSAodm9pZClpbnNwZWN0b3JEaWREaXNhYmxlQnJv
d3NlckRvbWFpbjooX1dLSW5zcGVjdG9yICopaW5zcGVjdG9yCiAgICAgYnJvd3NlckRvbWFpbkRp
c2FibGVkRm9ySW5zcGVjdG9yQ2FsbGVkID0gdHJ1ZTsKIH0KIAorLSAodm9pZClpbnNwZWN0b3I6
KF9XS0luc3BlY3RvciAqKWluc3BlY3RvciBzaG93VVJMRXh0ZXJuYWxseTooTlNVUkwgKil1cmwK
K3sKKyAgICBFWFBFQ1RfU1RSRVEodXJsLmFic29sdXRlU3RyaW5nLlVURjhTdHJpbmcsIFVSTFRv
U2hvdy5nZXQoKS5hYnNvbHV0ZVN0cmluZy5VVEY4U3RyaW5nKTsKKyAgICBzaG93VVJMRXh0ZXJu
YWxseUNhbGxlZCA9IHRydWU7Cit9CisKIEBlbmQKIAogQGludGVyZmFjZSBVSURlbGVnYXRlIDog
TlNPYmplY3QgPFdLVUlEZWxlZ2F0ZT4KQEAgLTg1LDcgKzk0LDcgQEAgLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRBdHRhY2hMb2NhbEluc3BlY3RvcjooX1dLSW5zcGVj
dG9yICopaW4KIAogQGVuZAogCi1URVNUKFdlYktpdF9XS0luc3BlY3RvckRlbGVnYXRlLCBEaWRO
b3RpZnlGb3JMb2NhbEluc3BlY3RvcikKK1RFU1QoV0tJbnNwZWN0b3JEZWxlZ2F0ZSwgRGlkTm90
aWZ5Rm9yTG9jYWxJbnNwZWN0b3IpCiB7CiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9
IGFkb3B0TlMoW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gbmV3XSk7CiAgICAgd2ViVmlld0NvbmZp
Z3VyYXRpb24uZ2V0KCkucHJlZmVyZW5jZXMuX2RldmVsb3BlckV4dHJhc0VuYWJsZWQgPSBZRVM7
CkBAIC0xMDQsNCArMTEzLDIzIEBAIFRFU1QoV2ViS2l0X1dLSW5zcGVjdG9yRGVsZWdhdGUsIERp
ZE5vdGlmeUZvckxvY2FsSW5zcGVjdG9yKQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
YnJvd3NlckRvbWFpbkRpc2FibGVkRm9ySW5zcGVjdG9yQ2FsbGVkKTsKIH0KIAorVEVTVChXS0lu
c3BlY3RvckRlbGVnYXRlLCBTaG93VVJMRXh0ZXJuYWxseSkKK3sKKyAgICBhdXRvIHdlYlZpZXdD
b25maWd1cmF0aW9uID0gYWRvcHROUyhbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBuZXddKTsKKyAg
ICB3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKS5wcmVmZXJlbmNlcy5fZGV2ZWxvcGVyRXh0cmFz
RW5hYmxlZCA9IFlFUzsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRp
b246d2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBhdXRvIHVpRGVsZWdhdGUgPSBh
ZG9wdE5TKFtVSURlbGVnYXRlIG5ld10pOworCisgICAgW3dlYlZpZXcgc2V0VUlEZWxlZ2F0ZTp1
aURlbGVnYXRlLmdldCgpXTsKKyAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpAIjxoZWFkPjx0
aXRsZT5UZXN0IHBhZ2UgdG8gYmUgaW5zcGVjdGVkPC90aXRsZT48L2hlYWQ+PGJvZHk+PHA+Rmls
bGVyIGNvbnRlbnQ8L3A+PC9ib2R5PiIgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0
dHA6Ly9leGFtcGxlLmNvbS8iXV07CisKKyAgICBbW3dlYlZpZXcgX2luc3BlY3Rvcl0gc2hvd107
CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRBdHRhY2hMb2NhbEluc3BlY3RvckNh
bGxlZCk7CisKKyAgICBVUkxUb1Nob3cgPSBbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHBzOi8v
d3d3LndlYmtpdC5vcmcvIl07CisgICAgW1t3ZWJWaWV3IF9pbnNwZWN0b3JdIF90cmlnZ2VyU2hv
d1VSTEV4dGVybmFsbHlGb3JUZXN0aW5nOlVSTFRvU2hvdy5nZXQoKV07CisKKyAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJnNob3dVUkxFeHRlcm5hbGx5Q2FsbGVkKTsKK30KKwogI2VuZGlm
IC8vIFBMQVRGT1JNKE1BQykK
</data>
<flag name="commit-queue"
          id="423965"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408534</attachid>
            <date>2020-09-11 08:28:49 -0700</date>
            <delta_ts>2020-09-12 14:27:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216334-20200911082849.patch</filename>
            <type>text/plain</type>
            <size>24641</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2OTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDUyYjQ0N2QxM2I4OGUxYzlh
NTU2NmMwZDJlMjk2YTE3MTkzNmIyN2QuLjlkNzNlYmI5ZGRiYjUxZmZkZDU3MjE3YTE1YWI0NzYx
MDNjN2NlMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMjAtMDktMTAgIEJyaWFuIEJ1
cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBfV0tJbnNwZWN0b3JEZWxl
Z2F0ZSBzaG91bGQgaGFuZGxlIHNob3dpbmcgZXh0ZXJuYWwgcmVzb3VyY2VzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTYzMzQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJLaXQgY2xpZW50cyBuZWVk
IGEgd2F5IHRvIGNvbnRyb2wgdGhlIGxvYWRpbmcgYW5kIHByZXNlbnRhdGlvbiBvZgorICAgICAg
ICBleHRlcm5hbCByZXNvdXJjZXMgdGhhdCBhcmUgbGlua2VkIGluIFdlYiBJbnNwZWN0b3IncyB1
c2VyIGludGVyZmFjZS4KKworICAgICAgICBXaGVuIGFuIGV4dGVybmFsIG5hdmlnYXRpb24gaXMg
dHJpZ2dlcmVkIHdpdGhpbiB0aGUgV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlcidzCisgICAgICAg
IFdLV2ViVmlldywgYWxsb3cgdGhlIGRlbGVnYXRlIHRvIHByZXNlbnQgdGhlIHJlcXVlc3RlZCBy
ZXNvdXJjZS4gT3RoZXJ3aXNlLCByZWRpcmVjdAorICAgICAgICB0aGUgbmF2aWdhdGlvbiB0byB0
aGUgaW5zcGVjdGVkIFdlYlZpZXcuCisKKyAgICAgICAgTmV3IEFQSSB0ZXN0OiBXS0luc3BlY3Rv
ckRlbGVnYXRlLlNob3dVUkxFeHRlcm5hbGx5LgorCisgICAgICAgICogU291cmNlc0NvY29hLnR4
dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSUluc3BlY3RvckNsaWVudC5oOgorICAgICAg
ICAoQVBJOjpJbnNwZWN0b3JDbGllbnQ6OnNob3dVUkxFeHRlcm5hbGx5KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckRlbGVnYXRlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JQcml2YXRlRm9yVGVzdGluZy5oOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9yQ2xpZW50LmguCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JUZXN0aW5nLm1tOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9yQ2xpZW50Lmgu
CisgICAgICAgICgtW19XS0luc3BlY3RvciBfdHJpZ2dlclNob3dVUkxFeHRlcm5hbGx5Rm9yVGVz
dGluZzpdKToKKyAgICAgICAgQWRkIGEgX1dLSW5zcGVjdG9yVGVzdGluZyBjYXRlZ29yeSBmb3Ig
dHJpZ2dlcmluZyBmdW5jdGlvbmFsaXR5CisgICAgICAgIGFzIG5lZWRlZCB0byBpbXBsZW1lbnQg
dGhlIFRlc3RXZWJLaXRBUEkgdGVzdCBjYXNlLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29h
L1BhZ2VDbGllbnRJbXBsQ29jb2EubW06CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9D
b2NvYS9JbnNwZWN0b3JEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3Iv
Q29jb2EvSW5zcGVjdG9yRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckRl
bGVnYXRlOjpzZXREZWxlZ2F0ZSk6CisgICAgICAgIChXZWJLaXQ6Okluc3BlY3RvckRlbGVnYXRl
OjpJbnNwZWN0b3JDbGllbnQ6OnNob3dVUkxFeHRlcm5hbGx5KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0lu
c3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW06CisgICAgICAg
ICgtW1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uOmRlY2lzaW9uSGFuZGxlcjpdKToKKyAgICAgICAgU2VlIGlmIHRoZSBkZWxl
Z2F0ZSBjYW4gaGFuZGxlIHRoZSByZXF1ZXN0LgorCisgICAgICAgICogVUlQcm9jZXNzL0luc3Bl
Y3Rvci9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW06CisgICAgICAgICgtW1dLV2ViSW5zcGVj
dG9yUHJveHlPYmpDQWRhcHRlciBpbnNwZWN0b3JWaWV3Q29udHJvbGxlcjpzaG93VVJMRXh0ZXJu
YWxseTpdKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OnNob3dVUkxFeHRl
cm5hbGx5KToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwog
MjAyMC0wOS0xMCAgSm9vbmdodW4gUGFyayAgPGpoNzE4LnBhcmtAc2Ftc3VuZy5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZC4gUmVtb3ZlIHRoZSBidWlsZCB3YXJuaW5nIGJlbG93IHNpbmNlIHIy
NjY4ODUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3Vy
Y2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMjNlZDRmMDJjYjgxNzgyYWMxZTNhMWVm
YTU0ZjM2NDIwMmE3MGRkNC4uYWYyNGFhOTIwMTJhODQ5OWRkZmY2MWJjYzY3ZmNmYWNmMTQ2YTk3
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJj
ZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtMjU5LDYgKzI1OSw3IEBAIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5tbQogVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tGcmFtZVRyZWVOb2RlLm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0dlb2xvY2F0aW9uUG9z
aXRpb24ubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tCitVSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0luc3BlY3RvclRlc3RpbmcubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
SW5zcGVjdG9yRGVidWdnYWJsZUluZm8ubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVj
dG9yV2luZG93Lm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0ludGVybmFsRGVidWdGZWF0dXJl
Lm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9y
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9yQ2xpZW50
LmgKaW5kZXggOTM1NDk3NGU3NDBmYWE3ZmUyNmNmMzE0ZDM1ZjJiZmVhNmJmM2MwOS4uMGQ3MmQ2
Mjk4ODMwMjYyODllYWU2ZDhiMGU2MDc3ZGIwZjM0NWZhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0FQSUluc3BlY3RvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JDbGllbnQuaApAQCAtMjUsNiArMjUsOCBAQAog
CiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKIG5hbWVzcGFjZSBX
ZWJLaXQgewogY2xhc3MgV2ViSW5zcGVjdG9yUHJveHk7CiB9CkBAIC0zOCw2ICs0MCw3IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBicm93c2VyRG9tYWluRW5hYmxlZChXZWJLaXQ6Oldl
Ykluc3BlY3RvclByb3h5JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGJyb3dzZXJEb21haW5EaXNh
YmxlZChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5JikgeyB9CisgICAgdmlydHVhbCB2b2lkIHNo
b3dVUkxFeHRlcm5hbGx5KFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHkmLCBXVEY6OlVSTCYpIHsg
fQogfTsKIAogfSAvLyBuYW1lc3BhY2UgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JEZWxlZ2F0ZS5oCmluZGV4IDdiYzcxMWZm
ZWU3ZGI2ZjkyNDUxZTNiZmU1YmEwMWNlOGIwM2U4NTAuLmM5Y2M0YjU5MjU0MTY1ZjRlNzg1NGQ5
NGZjZWQzN2QyMTM3Yzg5NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tJbnNwZWN0b3JEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JEZWxlZ2F0ZS5oCkBAIC00MSw0ICs0MSwxMSBAQAog
ICovCiAtICh2b2lkKWluc3BlY3RvckRpZERpc2FibGVCcm93c2VyRG9tYWluOihfV0tJbnNwZWN0
b3IgKilpbnNwZWN0b3I7CiAKKy8qISBAYWJzdHJhY3QgQ2FsbGVkIHdoZW4gdGhlIF9XS0luc3Bl
Y3RvciByZXF1ZXN0cyB0byBzaG93IGEgcmVzb3VyY2UgZXh0ZXJuYWxseS4gVGhpcworICAgIGlz
IHVzZWQgdG8gZGlzcGxheSBkb2N1bWVudGF0aW9uIHBhZ2VzIGFuZCB0byBzaG93IGV4dGVybmFs
IFVSTHMgdGhhdCBhcmUgbGlua2lmaWVkLgorICAgIEBwYXJhbSBpbnNwZWN0b3IgdGhlIGFzc29j
aWF0ZWQgaW5zcGVjdG9yIGZvciB3aGljaCBhbiBleHRlcm5hbCBuYXZpZ2F0aW9uIHNob3VsZCBi
ZSB0cmlnZ2VyZWQuCisgICAgQHBhcmFtIHVybCBUaGUgcmVzb3VyY2UgdG8gYmUgc2hvd24uCisg
Ki8KKy0gKHZvaWQpaW5zcGVjdG9yOihfV0tJbnNwZWN0b3IgKilpbnNwZWN0b3Igc2hvd1VSTEV4
dGVybmFsbHk6KE5TVVJMICopdXJsOworCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yUHJpdmF0ZUZvclRlc3RpbmcuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JQcml2YXRlRm9yVGVz
dGluZy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjhlMjMyNzBjOGFhZWZiYzMyOTFiMDE5M2RhOTAxNmM3Y2IxODFh
ZDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLSW5zcGVjdG9yUHJpdmF0ZUZvclRlc3RpbmcuaApAQCAtMCwwICsxLDMwIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2ltcG9ydCAiX1dLSW5zcGVjdG9yLmgiCisKK0BpbnRlcmZhY2UgX1dLSW5zcGVjdG9y
IChXS1Rlc3RpbmcpCistICh2b2lkKV90cmlnZ2VyU2hvd1VSTEV4dGVybmFsbHlGb3JUZXN0aW5n
OihOU1VSTCAqKXVybDsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JUZXN0aW5nLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS0luc3BlY3RvclRlc3RpbmcubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzA5NmFmY2Vl
OGI4NmFiZWYzNjExZDFjOTU5MGViY2JlNDAwOTE3MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JUZXN0aW5nLm1tCkBAIC0w
LDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2ltcG9ydCAi
V0tXZWJWaWV3LmgiCisjaW1wb3J0ICJfV0tJbnNwZWN0b3JJbnRlcm5hbC5oIgorI2ltcG9ydCAi
X1dLSW5zcGVjdG9yUHJpdmF0ZUZvclRlc3RpbmcuaCIKKworQGltcGxlbWVudGF0aW9uIF9XS0lu
c3BlY3RvciAoV0tUZXN0aW5nKQorCistICh2b2lkKV90cmlnZ2VyU2hvd1VSTEV4dGVybmFsbHlG
b3JUZXN0aW5nOihOU1VSTCAqKXVybAoreworICAgIC8vIEZvcmNlIHRoZSBuYXZpZ2F0aW9uIHJl
cXVlc3QgdG8gYmUgaGFuZGxlZCBuYXR1cmFsbHkgdGhyb3VnaCB0aGUKKyAgICAvLyBpbnRlcm5h
bCBOYXZpZ2F0aW9uRGVsZWdhdGUgb2YgV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci4KKyAgICBb
c2VsZi5pbnNwZWN0b3JXZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdp
dGhVUkw6dXJsXV07Cit9CisKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1BhZ2VDbGllbnRJbXBsQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9QYWdlQ2xpZW50SW1wbENvY29hLm1tCmluZGV4IGNhZTM2YjYxNzRiY2E4YmIwNjY1
NmY4YTc3MDRlMjRhZTcwZGMwMWUuLjgwNjFiZmJkNDYyYWYwZDUxZGE4NmNmNGY5NTI1ZjdhN2Jl
M2EyOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1BhZ2VDbGll
bnRJbXBsQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGFnZUNs
aWVudEltcGxDb2NvYS5tbQpAQCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
UGFnZUNsaWVudEltcGxDb2NvYTo6UGFnZUNsaWVudEltcGxDb2NvYShXS1dlYlZpZXcgKndlYlZp
ZXcpCiAgICAgOiBtX3dlYlZpZXcgeyB3ZWJWaWV3IH0KLSAgICAsIG1fYWx0ZXJuYXRpdmVUZXh0
VUlDb250cm9sbGVyIHsgbWFrZVVuaXF1ZTxBbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXI+KCkg
fQorICAgICwgbV9hbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXIgeyBtYWtlVW5pcXVlPFdlYkNv
cmU6OkFsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlcj4oKSB9CiB7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JEZWxlZ2F0
ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckRl
bGVnYXRlLmgKaW5kZXggYjk1OTlhNmI1NjEyZTYwMWQyMDM4Y2ZiNTc5ZjVkOTkzZmE2MTZjNy4u
OGEwMmMwYTFjMmM0OTI2ZmI5ZTYwODJmNWZiYjkyYjk2OTIyN2YxMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckRlbGVnYXRlLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckRl
bGVnYXRlLmgKQEAgLTU4LDYgKzU4LDcgQEAgcHJpdmF0ZToKICAgICAgICAgLy8gQVBJOjpJbnNw
ZWN0b3JDbGllbnQKICAgICAgICAgdm9pZCBicm93c2VyRG9tYWluRW5hYmxlZChXZWJJbnNwZWN0
b3JQcm94eSYpOwogICAgICAgICB2b2lkIGJyb3dzZXJEb21haW5EaXNhYmxlZChXZWJJbnNwZWN0
b3JQcm94eSYpOworICAgICAgICB2b2lkIHNob3dVUkxFeHRlcm5hbGx5KFdlYkluc3BlY3RvclBy
b3h5JiwgVVJMJik7CiAKICAgICAgICAgSW5zcGVjdG9yRGVsZWdhdGUmIG1faW5zcGVjdG9yRGVs
ZWdhdGU7CiAgICAgfTsKQEAgLTY4LDYgKzY5LDcgQEAgcHJpdmF0ZToKICAgICBzdHJ1Y3Qgewog
ICAgICAgICBib29sIGluc3BlY3RvckRpZEVuYWJsZUJyb3dzZXJEb21haW4gOiAxOwogICAgICAg
ICBib29sIGluc3BlY3RvckRpZERpc2FibGVCcm93c2VyRG9tYWluIDogMTsKKyAgICAgICAgYm9v
bCBpbnNwZWN0b3JTaG93VVJMRXh0ZXJuYWxseTogMTsKICAgICB9IG1fZGVsZWdhdGVNZXRob2Rz
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0Nv
Y29hL0luc3BlY3RvckRlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVj
dG9yL0NvY29hL0luc3BlY3RvckRlbGVnYXRlLm1tCmluZGV4IDQ2OTA4NDIwNzY4ZTBhZWFmNDFj
NjkwZGUzYTkwMDdmMzNhNmNlMDUuLjFkMjM1MGFkZDBlODAwY2U3YmE2MTExYzczOTFhOTg3MzY4
ODE5YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9Db2Nv
YS9JbnNwZWN0b3JEZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNw
ZWN0b3IvQ29jb2EvSW5zcGVjdG9yRGVsZWdhdGUubW0KQEAgLTU0LDYgKzU0LDcgQEAgdm9pZCBJ
bnNwZWN0b3JEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUoaWQgPF9XS0luc3BlY3RvckRlbGVnYXRlPiBk
ZWxlZ2F0ZSkKIAogICAgIG1fZGVsZWdhdGVNZXRob2RzLmluc3BlY3RvckRpZEVuYWJsZUJyb3dz
ZXJEb21haW4gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihpbnNwZWN0
b3JEaWRFbmFibGVCcm93c2VyRG9tYWluOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLmluc3Bl
Y3RvckRpZERpc2FibGVCcm93c2VyRG9tYWluID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoaW5zcGVjdG9yRGlkRGlzYWJsZUJyb3dzZXJEb21haW46KV07CisgICAgbV9k
ZWxlZ2F0ZU1ldGhvZHMuaW5zcGVjdG9yU2hvd1VSTEV4dGVybmFsbHkgPSBbZGVsZWdhdGUgcmVz
cG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihpbnNwZWN0b3I6c2hvd1VSTEV4dGVybmFsbHk6KV07
CiB9CiAKIEluc3BlY3RvckRlbGVnYXRlOjpJbnNwZWN0b3JDbGllbnQ6Okluc3BlY3RvckNsaWVu
dChJbnNwZWN0b3JEZWxlZ2F0ZSYgZGVsZWdhdGUpCkBAIC04Nyw0ICs4OCwxNiBAQCB2b2lkIElu
c3BlY3RvckRlbGVnYXRlOjpJbnNwZWN0b3JDbGllbnQ6OmJyb3dzZXJEb21haW5EaXNhYmxlZChX
ZWJJbnNwZWN0b3JQcm94eQogICAgIFtkZWxlZ2F0ZSBpbnNwZWN0b3JEaWREaXNhYmxlQnJvd3Nl
ckRvbWFpbjptX2luc3BlY3RvckRlbGVnYXRlLm1faW5zcGVjdG9yLmdldCgpLmdldCgpXTsKIH0K
IAordm9pZCBJbnNwZWN0b3JEZWxlZ2F0ZTo6SW5zcGVjdG9yQ2xpZW50OjpzaG93VVJMRXh0ZXJu
YWxseShXZWJJbnNwZWN0b3JQcm94eSYsIFVSTCYgdXJsKQoreworICAgIGlmICghbV9pbnNwZWN0
b3JEZWxlZ2F0ZS5tX2RlbGVnYXRlTWV0aG9kcy5pbnNwZWN0b3JTaG93VVJMRXh0ZXJuYWxseSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byYgZGVsZWdhdGUgPSBtX2luc3BlY3RvckRlbGVn
YXRlLm1fZGVsZWdhdGU7CisgICAgaWYgKCFkZWxlZ2F0ZSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgW2RlbGVnYXRlIGluc3BlY3RvcjptX2luc3BlY3RvckRlbGVnYXRlLm1faW5zcGVjdG9yLmdl
dCgpLmdldCgpIHNob3dVUkxFeHRlcm5hbGx5OnVybF07Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYklu
c3BlY3RvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5z
cGVjdG9yUHJveHkuaAppbmRleCAzNmNjOWRmMTJjYmI3NWYxYzUxMmFlMDBmZTFkNTA4NmM5YWEw
OWE2Li4zNTBkNGUzMDJjZGFiZmUzYWQxNjRkNTU1MWMxN2Q1YmU4MjFmMDlkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yUHJveHku
aApAQCAtMTI4LDcgKzEyOCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGluc3BlY3RlZFZpZXdGcmFt
ZURpZENoYW5nZShDR0Zsb2F0ID0gMCk7CiAgICAgdm9pZCB3aW5kb3dGcmFtZURpZENoYW5nZSgp
OwogICAgIHZvaWQgd2luZG93RnVsbFNjcmVlbkRpZENoYW5nZSgpOwotICAgIE5TV2luZG93KiBp
bnNwZWN0b3JXaW5kb3coKSBjb25zdCB7IHJldHVybiBtX2luc3BlY3RvcldpbmRvdy5nZXQoKTsg
fQorICAgIE5TV2luZG93ICppbnNwZWN0b3JXaW5kb3coKSBjb25zdCB7IHJldHVybiBtX2luc3Bl
Y3RvcldpbmRvdy5nZXQoKTsgfQogCiAgICAgdm9pZCBjbG9zZUZyb250ZW5kUGFnZSgpOwogICAg
IHZvaWQgY2xvc2VGcm9udGVuZEFmdGVySW5hY3Rpdml0eVRpbWVyRmlyZWQoKTsKQEAgLTEzNiw2
ICsxMzYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhdHRhY2htZW50Vmlld0RpZENoYW5nZShOU1Zp
ZXcgKm9sZFZpZXcsIE5TVmlldyAqbmV3Vmlldyk7CiAgICAgdm9pZCBhdHRhY2htZW50V2lsbE1v
dmVGcm9tV2luZG93KE5TV2luZG93ICpvbGRXaW5kb3cpOwogICAgIHZvaWQgYXR0YWNobWVudERp
ZE1vdmVUb1dpbmRvdyhOU1dpbmRvdyAqbmV3V2luZG93KTsKKyAgICB2b2lkIHNob3dVUkxFeHRl
cm5hbGx5KE5TVVJMICopOwogCiAgICAgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzaGVldFJl
Y3QoKSBjb25zdCB7IHJldHVybiBtX3NoZWV0UmVjdDsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRy
b2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0
b3JWaWV3Q29udHJvbGxlci5oCmluZGV4IGJhYmQzMzI1MDJhZGU5OWI2MWRjNDViOTc2OTk2NjA4
YjdjOGI4MTAuLmI4YzE1NTFmNTQ1NzNlZDk1OGE1ZjIzOTBkMmRkZWUyZmNlYmQzNjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JW
aWV3Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9t
YWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5oCkBAIC01Niw2ICs1Niw3IEBAIE5TX0FTU1VN
RV9OT05OVUxMX0JFR0lOCiAtIChCT09MKWluc3BlY3RvclZpZXdDb250cm9sbGVySW5zcGVjdG9y
SXNVbmRlclRlc3Q6KFdLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgKilpbnNwZWN0b3JWaWV3Q29u
dHJvbGxlcjsKIC0gKHZvaWQpaW5zcGVjdG9yVmlld0NvbnRyb2xsZXI6KFdLSW5zcGVjdG9yVmll
d0NvbnRyb2xsZXIgKilpbnNwZWN0b3JWaWV3Q29udHJvbGxlciB3aWxsTW92ZVRvV2luZG93OihO
U1dpbmRvdyAqKW5ld1dpbmRvdzsKIC0gKHZvaWQpaW5zcGVjdG9yVmlld0NvbnRyb2xsZXJEaWRN
b3ZlVG9XaW5kb3c6KFdLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgKilpbnNwZWN0b3JWaWV3Q29u
dHJvbGxlcjsKKy0gKHZvaWQpaW5zcGVjdG9yVmlld0NvbnRyb2xsZXI6KFdLSW5zcGVjdG9yVmll
d0NvbnRyb2xsZXIgKilpbnNwZWN0b3JWaWV3Q29udHJvbGxlciBzaG93VVJMRXh0ZXJuYWxseToo
TlNVUkwgKil1cmw7CiBAZW5kCiAKIE5TX0FTU1VNRV9OT05OVUxMX0VORApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250
cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3Bl
Y3RvclZpZXdDb250cm9sbGVyLm1tCmluZGV4IGY0MDdhZTFiZjZiNzliZGVmMmU4MmM0NThhOTk2
NGY4MDQ3ZDgwZjIuLmZhZmQ2OTE2NzY1ZGZiMTFhMWJjMmUzYTYwODYxOGI5NTkyYjFmNzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0
b3JWaWV3Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0
b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0KQEAgLTIyNyw4ICsyMjcsMTQgQEAg
LSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb246KFdLTmF2aWdhdGkKIAogICAgIC8vIFByZXZlbnQgZXZlcnl0aGluZyBlbHNl
LgogICAgIGRlY2lzaW9uSGFuZGxlcihXS05hdmlnYXRpb25BY3Rpb25Qb2xpY3lDYW5jZWwpOwot
ICAgIAotICAgIC8vIEFuZCBpbnN0ZWFkIGxvYWQgaXQgaW4gdGhlIGluc3BlY3RlZCBwYWdlLgor
CisgICAgLy8gQWxsb3cgdGhlIGRlbGVnYXRlIHRvIGhhbmRsZSBpdCBpZiBwb3NzaWJsZSwgb3Ro
ZXJ3aXNlIHRyeSB0byBsb2FkIGluIHRoZSBpbnNwZWN0ZWQgcGFnZS4KKyAgICAvLyBUaGUgbGF0
dGVyIGNvZGUgcGF0aCBoYXMga25vd24gaXNzdWVzIGluIFNhZmFyaSwgYnV0IGlzIGJldHRlciB0
aGFuIHNpbXBseSBkb2luZyBub3RoaW5nLgorICAgIGlmICghIV9kZWxlZ2F0ZSAmJiBbX2RlbGVn
YXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoaW5zcGVjdG9yVmlld0NvbnRyb2xsZXI6
c2hvd1VSTEV4dGVybmFsbHk6KV0pIHsKKyAgICAgICAgW19kZWxlZ2F0ZSBpbnNwZWN0b3JWaWV3
Q29udHJvbGxlcjpzZWxmIHNob3dVUkxFeHRlcm5hbGx5Om5hdmlnYXRpb25BY3Rpb24ucmVxdWVz
dC5VUkxdOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYgKF9pbnNwZWN0ZWRQYWdl
KQogICAgICAgICBfaW5zcGVjdGVkUGFnZS0+bG9hZFJlcXVlc3QobmF2aWdhdGlvbkFjdGlvbi5y
ZXF1ZXN0KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rv
ci9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9J
bnNwZWN0b3IvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tCmluZGV4IGE1NTdjODNhNGIyOGJl
NTRlOWJmOWVjYjU4YmQyNTJkM2U5NzU4ZDAuLjNiNDQ1OTUyZmUxMzQyOTExMWE1OGE0M2EwOWU3
Y2RhNTA5NDAyNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rv
ci9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvSW5zcGVjdG9yL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQpAQCAtMTkzLDYgKzE5Mywx
MiBAQCAtICh2b2lkKWluc3BlY3RvclZpZXdDb250cm9sbGVyRGlkTW92ZVRvV2luZG93OihXS0lu
c3BlY3RvclZpZXdDb250cm9sbGVyICopaW5zcAogICAgICAgICBfaW5zcGVjdG9yUHJveHktPmF0
dGFjaG1lbnREaWRNb3ZlVG9XaW5kb3coaW5zcGVjdG9yVmlld0NvbnRyb2xsZXIud2ViVmlldy53
aW5kb3cpOwogfQogCistICh2b2lkKWluc3BlY3RvclZpZXdDb250cm9sbGVyOihXS0luc3BlY3Rv
clZpZXdDb250cm9sbGVyICopaW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgc2hvd1VSTEV4dGVybmFs
bHk6KE5TVVJMICopdXJsCit7CisgICAgaWYgKF9pbnNwZWN0b3JQcm94eSkKKyAgICAgICAgX2lu
c3BlY3RvclByb3h5LT5zaG93VVJMRXh0ZXJuYWxseSh1cmwpOworfQorCiBAZW5kCiAKIG5hbWVz
cGFjZSBXZWJLaXQgewpAQCAtMjI5LDYgKzIzNSwxMiBAQCB2b2lkIFdlYkluc3BlY3RvclByb3h5
OjphdHRhY2htZW50RGlkTW92ZVRvV2luZG93KE5TV2luZG93ICpuZXdXaW5kb3cpCiAgICAgfQog
fQogCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpzaG93VVJMRXh0ZXJuYWxseShOU1VSTCAqdXJs
KQoreworICAgIFVSTCBjb252ZXJ0ZWRVUkwgeyB1cmwgfTsKKyAgICBtX2luc3BlY3RvckNsaWVu
dC0+c2hvd1VSTEV4dGVybmFsbHkoKnRoaXMsIGNvbnZlcnRlZFVSTCk7Cit9CisKIHZvaWQgV2Vi
SW5zcGVjdG9yUHJveHk6OnVwZGF0ZUluc3BlY3RvcldpbmRvd1RpdGxlKCkgY29uc3QKIHsKICAg
ICBpZiAoIW1faW5zcGVjdG9yV2luZG93KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjU2ODFlZDRkOWJiMjVmZDQ5MDU5YjE5M2Y3ZDBh
MjUxMzk0NjhhMy4uNTVjNDEyZTI4MDI2NzE1NWI2Njc3NjRlZDNmMjg1ZTIwYTViNDJiZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0x
NDA2LDYgKzE0MDYsNyBAQAogCQk5OTU1QTZGNzFDNzk4NkU1MDBFQjZBOTMgLyogQXV0b21hdGlv
blByb3RvY29sT2JqZWN0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTk1NUE2RjMxQzc5ODY2NDAwRUI2QTkzIC8qIEF1dG9tYXRpb25Qcm90b2NvbE9i
amVjdHMuaCAqLzsgfTsKIAkJOTk3ODhBQ0IxRjQyMUREQTAwQzA4MDAwIC8qIF9XS0F1dG9tYXRp
b25TZXNzaW9uQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTk3ODhBQzkxRjQyMURDQTAwQzA4MDAwIC8qIF9XS0F1dG9tYXRpb25T
ZXNzaW9uQ29uZmlndXJhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTk5NzlDQTU4MjM3RjQ5RjEwMDM5RUMwNSAvKiBfV0tJbnNwZWN0b3JQ
cml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
OTc5Q0E1NzIzN0Y0OUYwMDAzOUVDMDUgLyogX1dLSW5zcGVjdG9yUHJpdmF0ZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTk5OTk2QTlGMjUwMDRC
Q0MwMDRGNzU1OSAvKiBfV0tJbnNwZWN0b3JQcml2YXRlRm9yVGVzdGluZy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk5OTZBOUQyNTAwNEJDQjAwNEY3
NTU5IC8qIF9XS0luc3BlY3RvclByaXZhdGVGb3JUZXN0aW5nLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTlDM0FFMkQxREFEQTZBRDAwQUY1QzE2
IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uTWFjcm9zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUMzQUUyQzFEQURBNkE3MDBBRjVDMTYgLyogV2ViQXV0
b21hdGlvblNlc3Npb25NYWNyb3MuaCAqLzsgfTsKIAkJOTlDODFENUExQzIwRTdFMjAwNUM0Qzgy
IC8qIEF1dG9tYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk5QzgxRDU1MUMyMERGQkUwMDVDNEM4MiAvKiBBdXRvbWF0aW9uQ2xpZW50
LmggKi87IH07CiAJCTk5QzgxRDVEMUMyMUYzOEIwMDVDNEM4MiAvKiBBUElBdXRvbWF0aW9uQ2xp
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUM4
MUQ1QjFDMjBFODE3MDA1QzRDODIgLyogQVBJQXV0b21hdGlvbkNsaWVudC5oICovOyB9OwpAQCAt
NDQ3NSw2ICs0NDc2LDggQEAKIAkJOTk3ODhBQzkxRjQyMURDQTAwQzA4MDAwIC8qIF9XS0F1dG9t
YXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBfV0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTk3ODhBQ0ExRjQyMURDQTAwQzA4MDAwIC8qIF9XS0F1dG9tYXRpb25T
ZXNzaW9uQ29uZmlndXJhdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IF9XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbi5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTk3OUNBNTcyMzdGNDlGMDAwMzlFQzA1IC8qIF9XS0luc3BlY3Rv
clByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLSW5zcGVjdG9y
UHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTk5NkE5RDI1MDA0QkNC
MDA0Rjc1NTkgLyogX1dLSW5zcGVjdG9yUHJpdmF0ZUZvclRlc3RpbmcuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLSW5zcGVjdG9yUHJpdmF0ZUZvclRlc3RpbmcuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk5OTZBOUUyNTAwNEJDQjAwNEY3NTU5IC8qIF9X
S0luc3BlY3RvclRlc3RpbmcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBfV0tJbnNwZWN0b3JUZXN0aW5nLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5OUMzQUUyMzFEQUQ4RTM0MDBBRjVDMTYgLyogV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJBdXRvbWF0aW9uU2Vz
c2lvbk1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlDM0FFMjYxREFEOTQ4
NTAwQUY1QzE2IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uQ29jb2EubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OUMzQUUyQzFEQURBNkE3MDBBRjVDMTYgLyog
V2ViQXV0b21hdGlvblNlc3Npb25NYWNyb3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViQXV0b21hdGlvblNlc3Npb25NYWNyb3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTcyNDcsNiArNzI1MCw4IEBACiAJCQkJOTE5Nzk0MEIyM0RCQzUwMzAwMjU3ODky
IC8qIF9XS0luc3BlY3RvckRlbGVnYXRlLmggKi8sCiAJCQkJNUNBRkRFNDQyMTMwODQzNjAwQjFG
N0UxIC8qIF9XS0luc3BlY3RvckludGVybmFsLmggKi8sCiAJCQkJOTk3OUNBNTcyMzdGNDlGMDAw
MzlFQzA1IC8qIF9XS0luc3BlY3RvclByaXZhdGUuaCAqLywKKwkJCQk5OTk5NkE5RDI1MDA0QkNC
MDA0Rjc1NTkgLyogX1dLSW5zcGVjdG9yUHJpdmF0ZUZvclRlc3RpbmcuaCAqLywKKwkJCQk5OTk5
NkE5RTI1MDA0QkNCMDA0Rjc1NTkgLyogX1dLSW5zcGVjdG9yVGVzdGluZy5tbSAqLywKIAkJCQlB
NUMwRjBBQTIwMDA2NTZFMDA1MzY1MzYgLyogX1dLSW5zcGVjdG9yV2luZG93LmggKi8sCiAJCQkJ
QTVDMEYwQTkyMDAwNjU2RTAwNTM2NTM2IC8qIF9XS0luc3BlY3RvcldpbmRvdy5tbSAqLywKIAkJ
CQkzMUIzNjI5NDIxNDFFQkFEMDA3QkZBNTMgLyogX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUuaCAq
LywKQEAgLTEwNjEyLDYgKzEwNjE3LDcgQEAKIAkJCQk5MTk3OTQwQzIzREJDNTAzMDAyNTc4OTIg
LyogX1dLSW5zcGVjdG9yRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDQUZERTQ3MjEz
MDg0NkEwMEIxRjdFMSAvKiBfV0tJbnNwZWN0b3JJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTk3OUNBNTgyMzdGNDlGMTAwMzlFQzA1IC8qIF9XS0luc3BlY3RvclByaXZhdGUuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTk5OTk2QTlGMjUwMDRCQ0MwMDRGNzU1OSAvKiBfV0tJbnNwZWN0b3JQ
cml2YXRlRm9yVGVzdGluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVDMEYwQUIyMDAwNjU4MjAw
NTM2NTM2IC8qIF9XS0luc3BlY3RvcldpbmRvdy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFCMzYy
OTUyMTQxRUJDRDAwN0JGQTUzIC8qIF9XS0ludGVybmFsRGVidWdGZWF0dXJlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkzMUIzNjI5NzIxNDFFQkQ5MDA3QkZBNTMgLyogX1dLSW50ZXJuYWxEZWJ1Z0Zl
YXR1cmVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTUzYzMyMjcyYTkwODZiNjY4ZDM2YjA5ZmQ1ODc4
ZjkxMWUxMWVmMS4uNmEzNWZmNzM0MTVlOTIxMWU4MjhhN2JlZDllZDM0MmVlYjlhNTYyOCAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIxIEBACisyMDIwLTA5LTEwICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAg
ICAgIFtDb2NvYV0gX1dLSW5zcGVjdG9yRGVsZWdhdGUgc2hvdWxkIGhhbmRsZSBzaG93aW5nIGV4
dGVybmFsIHJlc291cmNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE2MzM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIGEgbmV3IHRlc3QgdG8gdmVyaWZ5IHRoYXQgYW4gYXR0ZW1wdGVkIG5hdmln
YXRpb24gaW4gdGhlIFdlYiBJbnNwZWN0b3IncworICAgICAgICBXS1dlYlZpZXcgd2lsbCB0cmln
Z2VyIHRoZSBuZXcgZGVsZWdhdGUgLV9pbnNwZWN0b3I6c2hvd1VSTEV4dGVybmFsbHk6CisgICAg
ICAgIHdoaWNoIGNhbiBiZSBvdmVycmlkZGVuIGJ5IFdlYktpdCBjbGllbnRzIHRvIGRlY2lkZSBo
b3cgdG8gbG9hZCBhbmQgcHJlc2VudAorICAgICAgICBleHRlcm5hbCBwYWdlcy4KKworICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tJbnNwZWN0b3JEZWxlZ2F0ZS5t
bToKKyAgICAgICAgKC1bSW5zcGVjdG9yRGVsZWdhdGUgaW5zcGVjdG9yOnNob3dVUkxFeHRlcm5h
bGx5Ol0pOiBBZGRlZC4KKyAgICAgICAgKC1bVUlEZWxlZ2F0ZSBfd2ViVmlldzpkaWRBdHRhY2hM
b2NhbEluc3BlY3RvcjpdKToKKyAgICAgICAgKFRFU1QpOgorICAgICAgICBEcml2ZS1ieTogcmVt
b3ZlIHVubmVjZXNzYXJ5IFdlYktpdF8gcHJlZml4IGZyb20gdGhlIHRlc3QgbmFtZS4KKwogMjAy
MC0wOS0xMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJldmVydGluZyByMjY2ODQyIGFuZCByMjY2ODgzLgpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0luc3BlY3RvckRlbGVnYXRlLm1tIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0luc3BlY3RvckRlbGVnYXRl
Lm1tCmluZGV4IDFlM2Q2OTU4NWZkNTA0NjY3MTczZTMyNDJiNzM0YWZjNGRjODYwY2IuLjI5N2Fi
OWRkZGIxNDFmOTgwZGRlNWRhMTdlYjhjYzY4ZWM3NjZhNGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tJbnNwZWN0b3JEZWxlZ2F0ZS5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9yRGVsZWdh
dGUubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRl
Rm9yVGVzdGluZy5oPgogI2ltcG9ydCA8V2ViS2l0L19XS0luc3BlY3Rvci5oPgogI2ltcG9ydCA8
V2ViS2l0L19XS0luc3BlY3RvckRlbGVnYXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLSW5zcGVj
dG9yUHJpdmF0ZUZvclRlc3RpbmcuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogI2lm
IFBMQVRGT1JNKE1BQykKQEAgLTQxLDcgKzQyLDkgQEAgQGNsYXNzIEluc3BlY3RvckRlbGVnYXRl
Owogc3RhdGljIGJvb2wgZGlkQXR0YWNoTG9jYWxJbnNwZWN0b3JDYWxsZWQgPSBmYWxzZTsKIHN0
YXRpYyBib29sIGJyb3dzZXJEb21haW5FbmFibGVkRm9ySW5zcGVjdG9yQ2FsbGVkID0gZmFsc2U7
CiBzdGF0aWMgYm9vbCBicm93c2VyRG9tYWluRGlzYWJsZWRGb3JJbnNwZWN0b3JDYWxsZWQgPSBm
YWxzZTsKLXN0YXRpYyBSZXRhaW5QdHI8SW5zcGVjdG9yRGVsZWdhdGU+IHNoYXJlZEluc3BlY3Rv
ckRlbGVnYXRlOworc3RhdGljIGJvb2wgc2hvd1VSTEV4dGVybmFsbHlDYWxsZWQgPSBmYWxzZTsK
K3N0YXRpYyBSZXRhaW5QdHI8aWQgPF9XS0luc3BlY3RvckRlbGVnYXRlPj4gc2hhcmVkSW5zcGVj
dG9yRGVsZWdhdGU7CitzdGF0aWMgUmV0YWluUHRyPE5TVVJMPiBVUkxUb1Nob3c7CiAKIEBpbnRl
cmZhY2UgSW5zcGVjdG9yRGVsZWdhdGUgOiBOU09iamVjdCA8X1dLSW5zcGVjdG9yRGVsZWdhdGU+
CiBAZW5kCkBAIC02Miw2ICs2NSwxMiBAQCAtICh2b2lkKWluc3BlY3RvckRpZERpc2FibGVCcm93
c2VyRG9tYWluOihfV0tJbnNwZWN0b3IgKilpbnNwZWN0b3IKICAgICBicm93c2VyRG9tYWluRGlz
YWJsZWRGb3JJbnNwZWN0b3JDYWxsZWQgPSB0cnVlOwogfQogCistICh2b2lkKWluc3BlY3Rvcjoo
X1dLSW5zcGVjdG9yICopaW5zcGVjdG9yIHNob3dVUkxFeHRlcm5hbGx5OihOU1VSTCAqKXVybAor
eworICAgIEVYUEVDVF9TVFJFUSh1cmwuYWJzb2x1dGVTdHJpbmcuVVRGOFN0cmluZywgVVJMVG9T
aG93LmdldCgpLmFic29sdXRlU3RyaW5nLlVURjhTdHJpbmcpOworICAgIHNob3dVUkxFeHRlcm5h
bGx5Q2FsbGVkID0gdHJ1ZTsKK30KKwogQGVuZAogCiBAaW50ZXJmYWNlIFVJRGVsZWdhdGUgOiBO
U09iamVjdCA8V0tVSURlbGVnYXRlPgpAQCAtODUsNyArOTQsNyBAQCAtICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEF0dGFjaExvY2FsSW5zcGVjdG9yOihfV0tJbnNwZWN0
b3IgKilpbgogCiBAZW5kCiAKLVRFU1QoV2ViS2l0X1dLSW5zcGVjdG9yRGVsZWdhdGUsIERpZE5v
dGlmeUZvckxvY2FsSW5zcGVjdG9yKQorVEVTVChXS0luc3BlY3RvckRlbGVnYXRlLCBEaWROb3Rp
ZnlGb3JMb2NhbEluc3BlY3RvcikKIHsKICAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0g
YWRvcHROUyhbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBuZXddKTsKICAgICB3ZWJWaWV3Q29uZmln
dXJhdGlvbi5nZXQoKS5wcmVmZXJlbmNlcy5fZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCA9IFlFUzsK
QEAgLTEwNCw0ICsxMTMsMjMgQEAgVEVTVChXZWJLaXRfV0tJbnNwZWN0b3JEZWxlZ2F0ZSwgRGlk
Tm90aWZ5Rm9yTG9jYWxJbnNwZWN0b3IpCiAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZi
cm93c2VyRG9tYWluRGlzYWJsZWRGb3JJbnNwZWN0b3JDYWxsZWQpOwogfQogCitURVNUKFdLSW5z
cGVjdG9yRGVsZWdhdGUsIFNob3dVUkxFeHRlcm5hbGx5KQoreworICAgIGF1dG8gd2ViVmlld0Nv
bmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIG5ld10pOworICAg
IHdlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpLnByZWZlcmVuY2VzLl9kZXZlbG9wZXJFeHRyYXNF
bmFibGVkID0gWUVTOworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlv
bjp3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIGF1dG8gdWlEZWxlZ2F0ZSA9IGFk
b3B0TlMoW1VJRGVsZWdhdGUgbmV3XSk7CisKKyAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOnVp
RGVsZWdhdGUuZ2V0KCldOworICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOkAiPGhlYWQ+PHRp
dGxlPlRlc3QgcGFnZSB0byBiZSBpbnNwZWN0ZWQ8L3RpdGxlPjwvaGVhZD48Ym9keT48cD5GaWxs
ZXIgY29udGVudDwvcD48L2JvZHk+IiBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0
cDovL2V4YW1wbGUuY29tLyJdXTsKKworICAgIFtbd2ViVmlldyBfaW5zcGVjdG9yXSBzaG93XTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZEF0dGFjaExvY2FsSW5zcGVjdG9yQ2Fs
bGVkKTsKKworICAgIFVSTFRvU2hvdyA9IFtOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cHM6Ly93
d3cud2Via2l0Lm9yZy8iXTsKKyAgICBbW3dlYlZpZXcgX2luc3BlY3Rvcl0gX3RyaWdnZXJTaG93
VVJMRXh0ZXJuYWxseUZvclRlc3Rpbmc6VVJMVG9TaG93LmdldCgpXTsKKworICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmc2hvd1VSTEV4dGVybmFsbHlDYWxsZWQpOworfQorCiAjZW5kaWYg
Ly8gUExBVEZPUk0oTUFDKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408611</attachid>
            <date>2020-09-12 14:27:59 -0700</date>
            <delta_ts>2020-09-21 12:17:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216334-20200912142759.patch</filename>
            <type>text/plain</type>
            <size>66137</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2OTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTg5NWJhOTllOTE3ZWM1
ZTUxNTA3YjU1NDMyMGIyNGNlZjI5ZDVhMi4uMDZkOTkzZWE0ZmQwNGMwNmJkZTM0NmM3MjUxZTNi
NDA4MzlhOTQ4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA5LTEyICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gX1dLSW5zcGVjdG9y
RGVsZWdhdGUgc2hvdWxkIGhhbmRsZSBzaG93aW5nIGV4dGVybmFsIHJlc291cmNlcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2MzM0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRhcHQgdG8gdGhlIHJl
bmFtZSBvZiBJbnNwZWN0b3JGcm9udGVuZEhvc3Que29wZW5Jbk5ld1RhYiA9PiBvcGVuVVJMRXh0
ZXJuYWxseX0uCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQu
aDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpvcGVuVVJM
RXh0ZXJuYWxseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudExv
Y2FsOjpvcGVuSW5OZXdUYWIpOiBEZWxldGVkLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZENsaWVudExvY2FsLmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEhvc3Q6
Om9wZW5VUkxFeHRlcm5hbGx5KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5k
SG9zdDo6b3BlbkluTmV3VGFiKTogRGVsZXRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yRnJvbnRlbmRIb3N0Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5k
SG9zdC5pZGw6CisKIDIwMjAtMDktMTEgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4K
IAogICAgICAgICBbTEZDXVtJRkNdIE1ha2UgSW5saW5lQm94ZXMgZ3JvdyB2ZXJ0aWNhbGx5IGFz
IHRoZXkgZ2FpbiBjb250ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCBjODUzZDNjZjM3
MGJhNmRjNTVmMmY4MTMwMGRmMTBkNDc5ODQwOThhLi4yMDdmNDFiYjljZWRhNGRiMWU3OTgwYjZk
N2M4NjRmZTVmYjk3OGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBA
QAorMjAyMC0wOS0xMiAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKworICAgICAgICBb
Q29jb2FdIF9XS0luc3BlY3RvckRlbGVnYXRlIHNob3VsZCBoYW5kbGUgc2hvd2luZyBleHRlcm5h
bCByZXNvdXJjZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxNjMzNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkYXB0IHRvIHRoZSByZW5hbWUgb2YgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LntvcGVuSW5O
ZXdUYWIgPT4gb3BlblVSTEV4dGVybmFsbHl9LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9C
YXNlL01haW4uanM6CisgICAgICAgICogVXNlckludGVyZmFjZS9EZWJ1Zy9VbmNhdWdodEV4Y2Vw
dGlvblJlcG9ydGVyLmpzOgorICAgICAgICAoc2hlZXRFbGVtZW50LmlubmVySFRNTC5kaXYpOgor
ICAgICAgICAqIFVzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9yRnJvbnRlbmRBUEkuanM6
CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVRyZWVFbGVtZW50LmpzOgor
ICAgICAgICAoV0kuUmVzb3VyY2VUcmVlRWxlbWVudC5wcm90b3R5cGUub25kYmxjbGljayk6CisK
IDIwMjAtMDktMTAgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAg
IFdlYiBJbnNwZWN0b3I6IG1vZGVybml6ZSBnZW5lcmF0ZWQgYmFja2VuZCBwcm90b2NvbCBjb2Rl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IDUyYjQ0N2QxM2I4OGUxYzlhNTU2NmMwZDJlMjk2YTE3MTkzNmIyN2QuLmQ4
MWI2YzA2NzgzYTA3NTU4YWJiNGFkMTNmNWRjZWU3MGZjNDhjMGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTEwIEBACisyMDIwLTA5LTEyICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisg
ICAgICAgIFtDb2NvYV0gX1dLSW5zcGVjdG9yRGVsZWdhdGUgc2hvdWxkIGhhbmRsZSBzaG93aW5n
IGV4dGVybmFsIHJlc291cmNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE2MzM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2ViS2l0IGNsaWVudHMgbmVlZCBhIHdheSB0byBjb250cm9sIHRoZSBsb2Fk
aW5nIGFuZCBwcmVzZW50YXRpb24gb2YKKyAgICAgICAgZXh0ZXJuYWwgcmVzb3VyY2VzIHRoYXQg
YXJlIGxpbmtlZCBpbiBXZWIgSW5zcGVjdG9yJ3MgdXNlciBpbnRlcmZhY2UuCisKKyAgICAgICAg
UmVuYW1lIEluc3BlY3RvckZyb250ZW5kSG9zdC5vcGVuSW5OZXdUYWIgdG8gb3BlblVSTEV4dGVy
bmFsbHkuIENoYW5nZQorICAgICAgICB0aGUgaW1wbGVtZW50YXRpb24gdG8gZm9yd2FyZCB0aGUg
cmVxdWVzdCB0byBVSVByb2Nlc3MgcmF0aGVyIHRoYW4gdGhlCisgICAgICAgIGluc3BlY3RlZCBX
ZWJQcm9jZXNzLgorCisgICAgICAgIFdoZW4gYSBuYXZpZ2F0aW9uIGlzIHRyaWdnZXJlZCBpbiBX
S0luc3BlY3RvclZpZXdDb250cm9sbGVyJ3MgV0tXZWJWaWV3LAorICAgICAgICBhbGxvdyB0aGUg
ZGVsZWdhdGUgdG8gb3BlbiB0aGUgcmVxdWVzdGVkIHJlc291cmNlLiBPdGhlcndpc2UsIHJlZGly
ZWN0CisgICAgICAgIHRoZSBuYXZpZ2F0aW9uIHRvIHRoZSBpbnNwZWN0ZWQgV2ViVmlldyBvciBv
cGVuIGl0IHVzaW5nIE5TV29ya3NwYWNlCisgICAgICAgIChmb3IgdGhlIHJlbW90ZSBjYXNlKS4K
KworICAgICAgICBOZXcgQVBJIHRlc3Q6IFdLSW5zcGVjdG9yRGVsZWdhdGUuT3BlblVSTEV4dGVy
bmFsbHkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvclByaXZh
dGVGb3JUZXN0aW5nLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
SW5zcGVjdG9yVGVzdGluZy5tbTogQWRkZWQuCisgICAgICAgIChzbmlwcGV0VG9PcGVuVVJMRXh0
ZXJuYWxseSk6CisgICAgICAgICgtW19XS0luc3BlY3RvciBfb3BlblVSTEV4dGVybmFsbHlGb3JU
ZXN0aW5nOnVzZUZyb250ZW5kQVBJOl0pOgorICAgICAgICBBZGQgc29tZSBoZWxwZXJzIGZvciB3
cml0aW5nIEFQSSB0ZXN0cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9y
Q2xpZW50Lmg6CisgICAgICAgIChBUEk6Okluc3BlY3RvckNsaWVudDo6b3BlblVSTEV4dGVybmFs
bHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRGVsZWdhdGUu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvUGFnZUNsaWVudEltcGxDb2NvYS5tbToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckRlbGVnYXRlLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JEZWxlZ2F0ZS5tbToK
KyAgICAgICAgKFdlYktpdDo6SW5zcGVjdG9yRGVsZWdhdGU6OnNldERlbGVnYXRlKToKKyAgICAg
ICAgKFdlYktpdDo6SW5zcGVjdG9yRGVsZWdhdGU6Okluc3BlY3RvckNsaWVudDo6b3BlblVSTEV4
dGVybmFsbHkpOgorICAgICAgICBBZGQgbmV3IGRlbGVnYXRlIG1ldGhvZCB0byBfV0tJbnNwZWN0
b3JEZWxlZ2F0ZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5z
cGVjdG9yUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9S
ZW1vdGVXZWJJbnNwZWN0b3JQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3Iv
UmVtb3RlV2ViSW5zcGVjdG9yUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJ
bnNwZWN0b3JQcm94eTo6b3BlblVSTEV4dGVybmFsbHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1PcGVuVVJMRXh0ZXJuYWxseSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpvcGVuSW5OZXdUYWIpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1PcGVu
SW5OZXdUYWIpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1Jl
bW90ZVdlYkluc3BlY3RvclByb3h5R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2Vi
SW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtVVJMRXh0ZXJuYWxseSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW5Jbk5ld1RhYik6IERlbGV0ZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvUmVtb3RlV2ViSW5zcGVjdG9yUHJv
eHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpwbGF0
Zm9ybU9wZW5VUkxFeHRlcm5hbGx5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5zcGVj
dG9yUHJveHk6OnBsYXRmb3JtT3BlbkluTmV3VGFiKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvSW5zcGVjdG9yL3dpbi9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eVdpbi5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW5VUkxFeHRl
cm5hbGx5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRm
b3JtT3BlbkluTmV3VGFiKTogRGVsZXRlZC4KKyAgICAgICAgUmVuYW1lIG9wZW5Jbk5ld1RhYiB0
byBvcGVuVVJMRXh0ZXJuYWxseS4gSW4gc29tZSBjYXNlcyB0aGUgY2xpZW50CisgICAgICAgIG1h
eSBub3QgY2hvb3NlIHRvIHByZXNlbnQgYSBuZXcgdGFiLCBzbyB0aGUgbmFtZSBpcyBubyBsb25n
ZXIgYWNjdXJhdGUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3Rv
clByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5z
cGVjdG9yUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3Rv
clByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6Omluc3BlY3Rv
cldpbmRvdyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpvcGVu
VVJMRXh0ZXJuYWxseSk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpldmFs
dWF0ZUluRnJvbnRlbmRGb3JUZXN0aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9y
L21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbToKKyAgICAgICAgKC1bV0tXZWJJbnNwZWN0b3JQ
cm94eU9iakNBZGFwdGVyIGluc3BlY3RvclZpZXdDb250cm9sbGVyOm9wZW5VUkxFeHRlcm5hbGx5
Ol0pOgorICAgICAgICBBZGQgc29tZSBoZWxwZXJzIGZvciB3cml0aW5nIEFQSSB0ZXN0cy4gQWRk
IGFuIElQQyBtZXNzYWdlCisgICAgICAgIGZvciBldmFsdWF0aW5nIGEgSmF2YVNjcmlwdCBleHBy
ZXNzaW9uIGluIHRoZSBmcm9udGVuZCBwYWdlLgorICAgICAgICBBbHNvLCBhZGQgYSBtZXNzYWdl
IHJlY2VpdmVyIGZvciB0aGUgT3BlblVSTEV4dGVybmFsbHkgbWVzc2FnZQorICAgICAgICB3aGlj
aCBwYXNzZXMgdGhlIHJlcXVlc3QgdG8gdGhlIEFQSSBsYXllci4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1tOgor
ICAgICAgICAoLVtXS0luc3BlY3RvclZpZXdDb250cm9sbGVyIHdlYlZpZXc6ZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvbkFjdGlvbjpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgIENhbGwgdGhl
IGRlbGVnYXRlIG1ldGhvZCBpZiBhIG5hdmlnYXRpb24gaW5zaWRlIHRoZSBpbnNwZWN0b3IgV0tX
ZWJWaWV3IGlzIGFuIGV4dGVybmFsIFVSTC4KKyAgICAgICAgU3BlY2lmaWNhbGx5IHRoZSByZXF1
ZXN0IGlzIHRvIGxvYWQgc29tZXRoaW5nIG90aGVyIHRoYW4gdGhlIFdlYiBJbnNwZWN0b3IncyBt
YWluIEhUTUwgcGFnZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3Bl
Y3Rvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rvcjo6b3BlbkluTmV3VGFiKTog
RGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3IuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3IubWVzc2FnZXMuaW46
CisgICAgICAgIE5vIG5lZWQgdG8gaGFuZGxlIHRoaXMgbWVzc2FnZSBhbnltb3JlIGluIHRoZSBp
bnNwZWN0ZWQgV2ViUHJvY2Vzcy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5zcGVjdG9yL1Jl
bW90ZVdlYkluc3BlY3RvclVJLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVt
b3RlV2ViSW5zcGVjdG9yVUkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0
b3JVSTo6b3BlblVSTEV4dGVybmFsbHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJbnNw
ZWN0b3JVSTo6b3BlbkluTmV3VGFiKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
c3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5zcGVj
dG9yL1dlYkluc3BlY3RvclVJLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6
OnVwZGF0ZUNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6Y2xv
c2VXaW5kb3cpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6b3BlblVSTEV4dGVy
bmFsbHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6ZXZhbHVhdGVJbkZyb250
ZW5kRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpvcGVuSW5O
ZXdUYWIpOiBEZWxldGVkLgorICAgICAgICBXaGVuIHdlIG5lZWQgdG8gb3BlbiB0aGUgVVJMIGV4
dGVybmFsbHksIHNlbmQgYW4gSVBDIG1lc3NhZ2UgdG8gVUlQcm9jZXNzLgorICAgICAgICBUaGUg
b2xkIGltcGxlbWVudGF0aW9uIHRyaWdnZXJlZCB0aGUgbmF2aWdhdGlvbiBmcm9tIHRoZSBpbnNw
ZWN0ZWQgV2ViUHJvY2Vzcy4KKyAgICAgICAgVGhhdCBhcHByb2FjaCBpcyBubyBsb25nZXIgZGVz
aXJhYmxlLiBSZW1vdmUgdGhlIHVubmVlZGVkIElQQyBjb25uZWN0aW9uLgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElE
aXNwYXRjaGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yRnJvbnRlbmRBUElE
aXNwYXRjaGVyOjpldmFsdWF0ZUV4cHJlc3Npb25Gb3JUZXN0aW5nKToKKyAgICAgICAgRnVsZmls
bCB0aGUgcmVxdWVzdCB0byBldmFsdWF0ZSB0aGUgZXhwcmVzc2lvbiBpbiB0aGUgZnJvbnRlbmQg
cGFnZS4KKworICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogV2ViS2l0Lnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIFNvbWUgZmlsZXMgd2VyZSBhZGRlZC4K
KworCiAyMDIwLTA5LTEwICBKb29uZ2h1biBQYXJrICA8amg3MTgucGFya0BzYW1zdW5nLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLiBSZW1vdmUgdGhlIGJ1aWxkIHdhcm5pbmcgYmVsb3cgc2lu
Y2UgcjI2Njg4NS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZENsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kQ2xpZW50LmgKaW5kZXggMTUwNjhmOTU1ZDMzOWQ1ZjJiYjVmMjZjNDg1MDUyNmExZTZm
OTZkNy4uNGY1N2RkODg2OTc2ZDVlOTc2ZjRkOTI1MzZlOTU1OTI2ZTU1M2Q4ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50LmgKQEAg
LTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtOTAs
MTQgKzkxLDEzIEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBj
aGFuZ2VTaGVldFJlY3QoY29uc3QgRmxvYXRSZWN0JikgPSAwOwogCi0gICAgV0VCQ09SRV9FWFBP
UlQgdmlydHVhbCB2b2lkIG9wZW5Jbk5ld1RhYihjb25zdCBTdHJpbmcmIHVybCkgPSAwOwotCiAg
ICAgdmlydHVhbCBib29sIGNhblNhdmUoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNhdmUoY29u
c3QgV1RGOjpTdHJpbmcmIHVybCwgY29uc3QgV1RGOjpTdHJpbmcmIGNvbnRlbnQsIGJvb2wgYmFz
ZTY0RW5jb2RlZCwgYm9vbCBmb3JjZVNhdmVBcykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBhcHBl
bmQoY29uc3QgV1RGOjpTdHJpbmcmIHVybCwgY29uc3QgV1RGOjpTdHJpbmcmIGNvbnRlbnQpID0g
MDsKIAogICAgIHZpcnR1YWwgdm9pZCBpbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NlcnRpZmljYXRlKGNvbnN0IENlcnRpZmljYXRl
SW5mbyYpID0gMDsKKyAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgb3BlblVSTEV4dGVy
bmFsbHkoY29uc3QgU3RyaW5nJiB1cmwpID0gMDsKIAogI2lmIEVOQUJMRShJTlNQRUNUT1JfVEVM
RU1FVFJZKQogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0RpYWdub3N0aWNMb2dnaW5nKCkgeyBy
ZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcAppbmRleCBiZTFhZjQzYTcxZjI2NDZjMDA3
ZDYzMTE0NWE2NTk3ODNmNDRlNTQ0Li5jY2U1OTAzNWVkZTU3MGE2NDlhMTI2NzZjMzkzMjJkNDhl
ODRkOGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHly
aWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJp
Z2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTI1MCw3ICsyNTAsNyBAQCB2b2lkIEluc3Bl
Y3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmNoYW5nZVNoZWV0UmVjdChjb25zdCBGbG9hdFJlY3Qm
IHJlY3QpCiAgICAgc2V0U2hlZXRSZWN0KHJlY3QpOwogfQogCi12b2lkIEluc3BlY3RvckZyb250
ZW5kQ2xpZW50TG9jYWw6Om9wZW5Jbk5ld1RhYihjb25zdCBTdHJpbmcmIHVybCkKK3ZvaWQgSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6b3BlblVSTEV4dGVybmFsbHkoY29uc3QgU3RyaW5n
JiB1cmwpCiB7CiAgICAgVXNlckdlc3R1cmVJbmRpY2F0b3IgaW5kaWNhdG9yIHsgUHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlIH07CiAgICAgRnJhbWUmIG1haW5GcmFtZSA9IG1faW5zcGVjdGVkUGFnZUNv
bnRyb2xsZXItPmluc3BlY3RlZFBhZ2UoKS5tYWluRnJhbWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oCmluZGV4
IDBlYzMyMGQ4OTM3ODQ1MTlhY2FhNTBhODJjZTE2YmU2MThhYjI4OGEuLjQzYTNlY2RjNzY4ZDBl
MGZlNzNhZGZhNjVlZTNhZjNlNzcxM2I4NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuaApAQCAtMSw2ICsxLDYg
QEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC03Niw3ICs3Niw3
IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNoYW5nZUF0dGFjaGVkV2luZG93
SGVpZ2h0KHVuc2lnbmVkKSBmaW5hbDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNoYW5nZUF0
dGFjaGVkV2luZG93V2lkdGgodW5zaWduZWQpIGZpbmFsOwogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgY2hhbmdlU2hlZXRSZWN0KGNvbnN0IEZsb2F0UmVjdCYpIGZpbmFsOwotICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgb3BlbkluTmV3VGFiKGNvbnN0IFN0cmluZyYgdXJsKSBmaW5hbDsKKyAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIG9wZW5VUkxFeHRlcm5hbGx5KGNvbnN0IFN0cmluZyYgdXJsKSBm
aW5hbDsKICAgICBib29sIGNhblNhdmUoKSAgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2b2lkIHNhdmUoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgYm9vbCwgYm9vbCkgb3Zl
cnJpZGUgeyB9CiAgICAgdm9pZCBhcHBlbmQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikg
b3ZlcnJpZGUgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRnJvbnRlbmRIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JG
cm9udGVuZEhvc3QuY3BwCmluZGV4IGE2YmI4NzdhMjJhMGFhODZiZjg5OTgzOWE3NWY1YWZmNmVm
OGRlMzAuLmYwNDUxZTJlNmY3MzM0Nzg3M2Y0ZTkwZDZlY2Y2ZWE1NTM3YmUwMmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNy0yMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBNYXR0IExpbGVr
IDx3ZWJraXRAbWF0dGxpbGVrLmNvbT4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTQxMywxMyArNDEz
LDEzIEBAIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpraWxsVGV4dChjb25zdCBTdHJpbmcm
IHRleHQsIGJvb2wgc2hvdWxkUHJlcGVuZFRvS2lsCiAgICAgZWRpdG9yLmFkZFRleHRUb0tpbGxS
aW5nKHRleHQsIGluc2VydGlvbk1vZGUpOwogfQogCi12b2lkIEluc3BlY3RvckZyb250ZW5kSG9z
dDo6b3BlbkluTmV3VGFiKGNvbnN0IFN0cmluZyYgdXJsKQordm9pZCBJbnNwZWN0b3JGcm9udGVu
ZEhvc3Q6Om9wZW5VUkxFeHRlcm5hbGx5KGNvbnN0IFN0cmluZyYgdXJsKQogewogICAgIGlmIChX
VEY6OnByb3RvY29sSXNKYXZhU2NyaXB0KHVybCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlm
IChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPm9wZW5Jbk5ld1RhYih1cmwpOworICAgICAg
ICBtX2NsaWVudC0+b3BlblVSTEV4dGVybmFsbHkodXJsKTsKIH0KIAogYm9vbCBJbnNwZWN0b3JG
cm9udGVuZEhvc3Q6OmNhblNhdmUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kSG9zdC5oCmluZGV4IDY3NDIyODcwNzg2YzY0NDQzYWUwMDY5NDhhY2Ew
YjkzNzFjMWNlMzMuLmUxMGI0NjZkZTUzOWQ3MzQ3Yzk1MDNiZTE2NzU1ZDcxOTZjYzFmODUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMTcgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0xMDIsNyArMTAyLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBjb3B5VGV4dChjb25zdCBT
dHJpbmcmIHRleHQpOwogICAgIHZvaWQga2lsbFRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBib29s
IHNob3VsZFByZXBlbmRUb0tpbGxSaW5nLCBib29sIHNob3VsZFN0YXJ0TmV3U2VxdWVuY2UpOwot
ICAgIHZvaWQgb3BlbkluTmV3VGFiKGNvbnN0IFN0cmluZyYgdXJsKTsKKyAgICB2b2lkIG9wZW5V
UkxFeHRlcm5hbGx5KGNvbnN0IFN0cmluZyYgdXJsKTsKICAgICBib29sIGNhblNhdmUoKTsKICAg
ICB2b2lkIHNhdmUoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgY29udGVudCwgYm9v
bCBiYXNlNjRFbmNvZGVkLCBib29sIGZvcmNlU2F2ZUFzKTsKICAgICB2b2lkIGFwcGVuZChjb25z
dCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBjb250ZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRsIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGwKaW5kZXggNDc3NTgwNDI1
NThhZDU5OWMyNjMyOGM3ZGI3ZTExODgzMWRmMGVjOC4uMmIyM2VlMjQzMzM2ZDBmYjIwZTE3Njk1
NWI4ZmFhMjAzZDRhYzI2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kSG9zdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kSG9zdC5pZGwKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA3LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDA3LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29w
eXJpZ2h0IChDKSAyMDA4IE1hdHQgTGlsZWsgPHdlYmtpdEBtYXR0bGlsZWsuY29tPgogICogQ29w
eXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgpAQCAt
NzEsNyArNzEsNyBAQAogCiAgICAgdW5kZWZpbmVkIGNvcHlUZXh0KERPTVN0cmluZyB0ZXh0KTsK
ICAgICB1bmRlZmluZWQga2lsbFRleHQoRE9NU3RyaW5nIHRleHQsIGJvb2xlYW4gc2hvdWxkUHJl
cGVuZFRvS2lsbFJpbmcsIGJvb2xlYW4gc2hvdWxkU3RhcnROZXdTZXF1ZW5jZSk7Ci0gICAgdW5k
ZWZpbmVkIG9wZW5Jbk5ld1RhYihET01TdHJpbmcgdXJsKTsKKyAgICB1bmRlZmluZWQgb3BlblVS
TEV4dGVybmFsbHkoRE9NU3RyaW5nIHVybCk7CiAgICAgYm9vbGVhbiBjYW5TYXZlKCk7CiAgICAg
dW5kZWZpbmVkIHNhdmUoRE9NU3RyaW5nIHVybCwgRE9NU3RyaW5nIGNvbnRlbnQsIGJvb2xlYW4g
YmFzZTY0RW5jb2RlZCwgYm9vbGVhbiBmb3JjZVNhdmVBcyk7CiAgICAgdW5kZWZpbmVkIGFwcGVu
ZChET01TdHJpbmcgdXJsLCBET01TdHJpbmcgY29udGVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMKaW5kZXggNWUyNDllMzE0Nzk1Zjcx
NGE0YWM0NjNjMmY2MzNiNjZiZGFkNzMwMS4uZmM1ODFhYmI0NDU5MDFmMjM1OTQ2ZDhlZTNkN2Y5
M2QxNGY4NWY1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvQmFzZS9NYWluLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0Jhc2UvTWFpbi5qcwpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMt
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTEwNjQsNyArMTA2NCw3IEBAIFdJLm9wZW5VUkwgPSBmdW5jdGlv
bih1cmwsIGZyYW1lLCBvcHRpb25zID0ge30pCiAgICAgICAgIG9wdGlvbnMuYWx3YXlzT3BlbkV4
dGVybmFsbHkgPSB3aW5kb3cuZXZlbnQgPyB3aW5kb3cuZXZlbnQubWV0YUtleSA6IGZhbHNlOwog
CiAgICAgaWYgKG9wdGlvbnMuYWx3YXlzT3BlbkV4dGVybmFsbHkpIHsKLSAgICAgICAgSW5zcGVj
dG9yRnJvbnRlbmRIb3N0Lm9wZW5Jbk5ld1RhYih1cmwpOworICAgICAgICBJbnNwZWN0b3JGcm9u
dGVuZEhvc3Qub3BlblVSTEV4dGVybmFsbHkodXJsKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IApAQCAtMTA5MSw3ICsxMDkxLDcgQEAgV0kub3BlblVSTCA9IGZ1bmN0aW9uKHVybCwgZnJhbWUs
IG9wdGlvbnMgPSB7fSkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIEluc3BlY3RvckZy
b250ZW5kSG9zdC5vcGVuSW5OZXdUYWIodXJsKTsKKyAgICBJbnNwZWN0b3JGcm9udGVuZEhvc3Qu
b3BlblVSTEV4dGVybmFsbHkodXJsKTsKIH07CiAKIFdJLmNsb3NlID0gZnVuY3Rpb24oKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvRGVidWcvVW5jYXVn
aHRFeGNlcHRpb25SZXBvcnRlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0RlYnVnL1VuY2F1Z2h0RXhjZXB0aW9uUmVwb3J0ZXIuanMKaW5kZXggMmRlYmNjODdhNTM0
MDI5YWQ4NzMzYjNkMmVhMDA5MDM0ZWI2NmYwNS4uM2E1OGM3YTJhNzJkMjU1ZTJkYzU4NGMyN2Mx
Y2MyNTQ2OTk0YmFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvRGVidWcvVW5jYXVnaHRFeGNlcHRpb25SZXBvcnRlci5qcworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9EZWJ1Zy9VbmNhdWdodEV4Y2VwdGlvblJlcG9ydGVy
LmpzCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTI5Nyw3ICsyOTcsNyBAQCAke3RvcExldmVsSXRlbXMuam9pbigiXG4iKX0KICAgICBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKHNoZWV0RWxlbWVudCk7CiAKICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidW5jYXVnaHQtZXhjZXB0aW9uLWJ1Zy1yZXBvcnQtbGluayIpLmFkZEV2ZW50
TGlzdGVuZXIoImNsaWNrIiwgKGV2ZW50KSA9PiB7Ci0gICAgICAgIEluc3BlY3RvckZyb250ZW5k
SG9zdC5vcGVuSW5OZXdUYWIocHJlZmlsbGVkQnVnUmVwb3J0TGluayk7CisgICAgICAgIEluc3Bl
Y3RvckZyb250ZW5kSG9zdC5vcGVuVVJMRXh0ZXJuYWxseShwcmVmaWxsZWRCdWdSZXBvcnRMaW5r
KTsKICAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7CiAgICAgICAgIGV2
ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JGcm9udGVuZEFQSS5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckZy
b250ZW5kQVBJLmpzCmluZGV4IGEzNGIxMDc4ZWRmODE3NzY5NTY2ZDVkNTRhN2Y1YTI2ZmRlOGI2
ZDcuLjFkMWYyODhiYjgzNGQ0ODJmNjRlMzllZjBmYmQ1Mzg2ZDg3NGRlZjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckZy
b250ZW5kQVBJLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1By
b3RvY29sL0luc3BlY3RvckZyb250ZW5kQVBJLmpzCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMywgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlVHJlZUVsZW1lbnQuanMgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZVRyZWVFbGVt
ZW50LmpzCmluZGV4IDM1MzVjN2E1NzE4ZTZhNTkzMWVhZTY4NWYyZGUwMjAzNjA4NDI5NTcuLjNj
NmNiYjQwMmEwMzkxY2U2NGYzODg4NTA2ZmFkOGI5ZTE5MGM2NWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlVHJlZUVsZW1lbnQu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3Vy
Y2VUcmVlRWxlbWVudC5qcwpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTMsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEzLTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0xMjEsNyArMTIxLDcgQEAgV0kuUmVzb3VyY2VUcmVlRWxl
bWVudCA9IGNsYXNzIFJlc291cmNlVHJlZUVsZW1lbnQgZXh0ZW5kcyBXSS5Tb3VyY2VDb2RlVHJl
ZUVsZW0KICAgICAgICAgaWYgKHRoaXMuX3Jlc291cmNlLnR5cGUgPT09IFdJLlJlc291cmNlLlR5
cGUuV2ViU29ja2V0KQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIEluc3BlY3RvckZy
b250ZW5kSG9zdC5vcGVuSW5OZXdUYWIodGhpcy5fcmVzb3VyY2UudXJsKTsKKyAgICAgICAgSW5z
cGVjdG9yRnJvbnRlbmRIb3N0Lm9wZW5VUkxFeHRlcm5hbGx5KHRoaXMuX3Jlc291cmNlLnVybCk7
CiAgICAgfQogCiAgICAgLy8gUHJvdGVjdGVkIChVc2VkIGJ5IEZyYW1lVHJlZUVsZW1lbnQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMjNlZDRmMDJjYjgxNzgyYWMxZTNhMWVmYTU0ZjM2NDIw
MmE3MGRkNC4uYWYyNGFhOTIwMTJhODQ5OWRkZmY2MWJjYzY3ZmNmYWNmMTQ2YTk3OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQv
U291cmNlc0NvY29hLnR4dApAQCAtMjU5LDYgKzI1OSw3IEBAIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLRXhwZXJpbWVudGFsRmVhdHVyZS5tbQogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tGcmFtZVRy
ZWVOb2RlLm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0dlb2xvY2F0aW9uUG9zaXRpb24ubW0K
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tCitVSVByb2Nlc3MvQVBJL0NvY29h
L19XS0luc3BlY3RvclRlc3RpbmcubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9y
RGVidWdnYWJsZUluZm8ubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yV2luZG93
Lm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0ludGVybmFsRGVidWdGZWF0dXJlLm1tCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9yQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9yQ2xpZW50LmgKaW5kZXgg
OTM1NDk3NGU3NDBmYWE3ZmUyNmNmMzE0ZDM1ZjJiZmVhNmJmM2MwOS4uY2YyMTk0ZDRmZTMwMWVi
M2RjZWRhMGJjMmM2YWU5NDY0NThjOTlmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSUluc3BlY3RvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElJbnNwZWN0b3JDbGllbnQuaApAQCAtMjUsNiArMjUsOCBAQAogCiAjcHJhZ21h
IG9uY2UKIAorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKIG5hbWVzcGFjZSBXZWJLaXQgewog
Y2xhc3MgV2ViSW5zcGVjdG9yUHJveHk7CiB9CkBAIC0zOCw2ICs0MCw3IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgdm9pZCBicm93c2VyRG9tYWluRW5hYmxlZChXZWJLaXQ6OldlYkluc3BlY3Rv
clByb3h5JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGJyb3dzZXJEb21haW5EaXNhYmxlZChXZWJL
aXQ6OldlYkluc3BlY3RvclByb3h5JikgeyB9CisgICAgdmlydHVhbCB2b2lkIG9wZW5VUkxFeHRl
cm5hbGx5KFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHkmLCBjb25zdCBXVEY6OlN0cmluZyYgdXJs
KSB7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckRlbGVnYXRlLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRGVsZWdhdGUuaAppbmRleCA3YmM3
MTFmZmVlN2RiNmY5MjQ1MWUzYmZlNWJhMDFjZThiMDNlODUwLi41NTIwMWM3ODZiODdjNmNmN2Mw
OWIyNzA4YzczNzEwYzc0OTI4MDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRGVsZWdhdGUuaApAQCAtNDEsNCArNDEsMTEg
QEAKICAqLwogLSAodm9pZClpbnNwZWN0b3JEaWREaXNhYmxlQnJvd3NlckRvbWFpbjooX1dLSW5z
cGVjdG9yICopaW5zcGVjdG9yOwogCisvKiEgQGFic3RyYWN0IENhbGxlZCB3aGVuIHRoZSBfV0tJ
bnNwZWN0b3IgcmVxdWVzdHMgdG8gc2hvdyBhIHJlc291cmNlIGV4dGVybmFsbHkuIFRoaXMKKyAg
ICBpcyB1c2VkIHRvIGRpc3BsYXkgZG9jdW1lbnRhdGlvbiBwYWdlcyBhbmQgdG8gc2hvdyBleHRl
cm5hbCBVUkxzIHRoYXQgYXJlIGxpbmtpZmllZC4KKyAgICBAcGFyYW0gaW5zcGVjdG9yIHRoZSBh
c3NvY2lhdGVkIGluc3BlY3RvciBmb3Igd2hpY2ggYW4gZXh0ZXJuYWwgbmF2aWdhdGlvbiBzaG91
bGQgYmUgdHJpZ2dlcmVkLgorICAgIEBwYXJhbSB1cmwgVGhlIHJlc291cmNlIHRvIGJlIHNob3du
LgorICovCistICh2b2lkKWluc3BlY3RvcjooX1dLSW5zcGVjdG9yICopaW5zcGVjdG9yIG9wZW5V
UkxFeHRlcm5hbGx5OihOU1VSTCAqKXVybDsKKwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvclByaXZhdGVGb3JUZXN0aW5nLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yUHJpdmF0ZUZv
clRlc3RpbmcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Y2VlODI2NDM3YmMzZmEzYzA3MmYyNDc5ZWM4YWQ2MjE1
MTA4Y2FmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0luc3BlY3RvclByaXZhdGVGb3JUZXN0aW5nLmgKQEAgLTAsMCArMSwzMCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbXBvcnQgIl9XS0luc3BlY3Rvci5oIgorCitAaW50ZXJmYWNlIF9XS0luc3Bl
Y3RvciAoV0tUZXN0aW5nKQorLSAodm9pZClfb3BlblVSTEV4dGVybmFsbHlGb3JUZXN0aW5nOihO
U1VSTCAqKXVybCB1c2VGcm9udGVuZEFQSTooQk9PTCl1c2VGcm9udGVuZEFQSTsKK0BlbmQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JU
ZXN0aW5nLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rv
clRlc3RpbmcubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTZjOWM3YzcyNGM4OWM0OGQ1ZTc2MDU5YzQ2ZGQ3N2Fh
Y2NmNWQxNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tJbnNwZWN0b3JUZXN0aW5nLm1tCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW1wb3J0ICJjb25maWcuaCIKKworI2ltcG9ydCAiV0tXZWJWaWV3LmgiCisjaW1wb3J0ICJf
V0tJbnNwZWN0b3JJbnRlcm5hbC5oIgorI2ltcG9ydCAiX1dLSW5zcGVjdG9yUHJpdmF0ZUZvclRl
c3RpbmcuaCIKKworLy8gVGhpcyBmaWxlIGV4aXN0cyB0byBjZW50cmFsaXplIGFsbCBmcmFnaWxl
IGNvZGUgdGhhdCBpcyB1c2VkIGJ5IF9XS0luc3BlY3RvciBBUEkgdGVzdHMuIFRoZSB0ZXN0cwor
Ly8gdHJpZ2dlciBXZWJJbnNwZWN0b3JVSSBiZWhhdmlvciBieSBldmFsdWF0aW5nIEphdmFTY3Jp
cHQgb3IgYnkgY2FsbGluZyBpbnRlcm5hbCBtZXRob2RzLgorCitzdGF0aWMgTlNTdHJpbmcgKnNu
aXBwZXRUb09wZW5VUkxFeHRlcm5hbGx5KE5TVVJMICp1cmwpCit7CisgICAgcmV0dXJuIFtOU1N0
cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiSW5zcGVjdG9yRnJvbnRlbmRIb3N0Lm9wZW5VUkxFeHRl
cm5hbGx5KFwiJUBcIikiLCB1cmwuYWJzb2x1dGVTdHJpbmddOworfQorCitAaW1wbGVtZW50YXRp
b24gX1dLSW5zcGVjdG9yIChXS1Rlc3RpbmcpCisKKy0gKHZvaWQpX29wZW5VUkxFeHRlcm5hbGx5
Rm9yVGVzdGluZzooTlNVUkwgKil1cmwgdXNlRnJvbnRlbmRBUEk6KEJPT0wpdXNlRnJvbnRlbmRB
UEkKK3sKKyAgICBpZiAodXNlRnJvbnRlbmRBUEkpCisgICAgICAgIF9pbnNwZWN0b3ItPmV2YWx1
YXRlSW5Gcm9udGVuZEZvclRlc3Rpbmcoc25pcHBldFRvT3BlblVSTEV4dGVybmFsbHkodXJsKSk7
CisgICAgZWxzZSB7CisgICAgICAgIC8vIEZvcmNlIHRoZSBuYXZpZ2F0aW9uIHJlcXVlc3QgdG8g
YmUgaGFuZGxlZCBuYXR1cmFsbHkgdGhyb3VnaCB0aGUKKyAgICAgICAgLy8gaW50ZXJuYWwgTmF2
aWdhdGlvbkRlbGVnYXRlIG9mIFdLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIuCisgICAgICAgIFtz
ZWxmLmluc3BlY3RvcldlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0
aFVSTDp1cmxdXTsKKyAgICB9Cit9CisKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1BhZ2VDbGllbnRJbXBsQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9QYWdlQ2xpZW50SW1wbENvY29hLm1tCmluZGV4IGNhZTM2YjYxNzRiY2E4
YmIwNjY1NmY4YTc3MDRlMjRhZTcwZGMwMWUuLjgwNjFiZmJkNDYyYWYwZDUxZGE4NmNmNGY5NTI1
ZjdhN2JlM2EyOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Bh
Z2VDbGllbnRJbXBsQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
UGFnZUNsaWVudEltcGxDb2NvYS5tbQpAQCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogUGFnZUNsaWVudEltcGxDb2NvYTo6UGFnZUNsaWVudEltcGxDb2NvYShXS1dlYlZpZXcg
KndlYlZpZXcpCiAgICAgOiBtX3dlYlZpZXcgeyB3ZWJWaWV3IH0KLSAgICAsIG1fYWx0ZXJuYXRp
dmVUZXh0VUlDb250cm9sbGVyIHsgbWFrZVVuaXF1ZTxBbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xs
ZXI+KCkgfQorICAgICwgbV9hbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXIgeyBtYWtlVW5pcXVl
PFdlYkNvcmU6OkFsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlcj4oKSB9CiB7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JE
ZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3Bl
Y3RvckRlbGVnYXRlLmgKaW5kZXggYjk1OTlhNmI1NjEyZTYwMWQyMDM4Y2ZiNTc5ZjVkOTkzZmE2
MTZjNy4uZDY0YjQ3YjI5NWIxMmJlNTc1NGUyZmU3MWQ0ZjBjNWJlOTBjM2YzZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckRlbGVn
YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3Bl
Y3RvckRlbGVnYXRlLmgKQEAgLTU4LDYgKzU4LDcgQEAgcHJpdmF0ZToKICAgICAgICAgLy8gQVBJ
OjpJbnNwZWN0b3JDbGllbnQKICAgICAgICAgdm9pZCBicm93c2VyRG9tYWluRW5hYmxlZChXZWJJ
bnNwZWN0b3JQcm94eSYpOwogICAgICAgICB2b2lkIGJyb3dzZXJEb21haW5EaXNhYmxlZChXZWJJ
bnNwZWN0b3JQcm94eSYpOworICAgICAgICB2b2lkIG9wZW5VUkxFeHRlcm5hbGx5KFdlYkluc3Bl
Y3RvclByb3h5JiwgY29uc3QgU3RyaW5nJiB1cmwpOwogCiAgICAgICAgIEluc3BlY3RvckRlbGVn
YXRlJiBtX2luc3BlY3RvckRlbGVnYXRlOwogICAgIH07CkBAIC02OCw2ICs2OSw3IEBAIHByaXZh
dGU6CiAgICAgc3RydWN0IHsKICAgICAgICAgYm9vbCBpbnNwZWN0b3JEaWRFbmFibGVCcm93c2Vy
RG9tYWluIDogMTsKICAgICAgICAgYm9vbCBpbnNwZWN0b3JEaWREaXNhYmxlQnJvd3NlckRvbWFp
biA6IDE7CisgICAgICAgIGJvb2wgaW5zcGVjdG9yT3BlblVSTEV4dGVybmFsbHkgOiAxOwogICAg
IH0gbV9kZWxlZ2F0ZU1ldGhvZHM7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRGVsZWdhdGUubW0KaW5kZXgg
NDY5MDg0MjA3NjhlMGFlYWY0MWM2OTBkZTNhOTAwN2YzM2E2Y2UwNS4uNWNlZGExODU5NDBlMDQ3
NTA3M2ZjY2YzODEyODQyMDVjMTBiZWEyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckRlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JEZWxlZ2F0ZS5tbQpAQCAt
NTQsNiArNTQsNyBAQCB2b2lkIEluc3BlY3RvckRlbGVnYXRlOjpzZXREZWxlZ2F0ZShpZCA8X1dL
SW5zcGVjdG9yRGVsZWdhdGU+IGRlbGVnYXRlKQogCiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMuaW5z
cGVjdG9yRGlkRW5hYmxlQnJvd3NlckRvbWFpbiA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKGluc3BlY3RvckRpZEVuYWJsZUJyb3dzZXJEb21haW46KV07CiAgICAgbV9k
ZWxlZ2F0ZU1ldGhvZHMuaW5zcGVjdG9yRGlkRGlzYWJsZUJyb3dzZXJEb21haW4gPSBbZGVsZWdh
dGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihpbnNwZWN0b3JEaWREaXNhYmxlQnJvd3Nl
ckRvbWFpbjopXTsKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy5pbnNwZWN0b3JPcGVuVVJMRXh0ZXJu
YWxseSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGluc3BlY3Rvcjpv
cGVuVVJMRXh0ZXJuYWxseTopXTsKIH0KIAogSW5zcGVjdG9yRGVsZWdhdGU6Okluc3BlY3RvckNs
aWVudDo6SW5zcGVjdG9yQ2xpZW50KEluc3BlY3RvckRlbGVnYXRlJiBkZWxlZ2F0ZSkKQEAgLTg3
LDQgKzg4LDE2IEBAIHZvaWQgSW5zcGVjdG9yRGVsZWdhdGU6Okluc3BlY3RvckNsaWVudDo6YnJv
d3NlckRvbWFpbkRpc2FibGVkKFdlYkluc3BlY3RvclByb3h5CiAgICAgW2RlbGVnYXRlIGluc3Bl
Y3RvckRpZERpc2FibGVCcm93c2VyRG9tYWluOm1faW5zcGVjdG9yRGVsZWdhdGUubV9pbnNwZWN0
b3IuZ2V0KCkuZ2V0KCldOwogfQogCit2b2lkIEluc3BlY3RvckRlbGVnYXRlOjpJbnNwZWN0b3JD
bGllbnQ6Om9wZW5VUkxFeHRlcm5hbGx5KFdlYkluc3BlY3RvclByb3h5JiwgY29uc3QgU3RyaW5n
JiB1cmwpCit7CisgICAgaWYgKCFtX2luc3BlY3RvckRlbGVnYXRlLm1fZGVsZWdhdGVNZXRob2Rz
Lmluc3BlY3Rvck9wZW5VUkxFeHRlcm5hbGx5KQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRv
JiBkZWxlZ2F0ZSA9IG1faW5zcGVjdG9yRGVsZWdhdGUubV9kZWxlZ2F0ZTsKKyAgICBpZiAoIWRl
bGVnYXRlKQorICAgICAgICByZXR1cm47CisKKyAgICBbZGVsZWdhdGUgaW5zcGVjdG9yOm1faW5z
cGVjdG9yRGVsZWdhdGUubV9pbnNwZWN0b3IuZ2V0KCkuZ2V0KCkgb3BlblVSTEV4dGVybmFsbHk6
W05TVVJMIFVSTFdpdGhTdHJpbmc6dXJsXV07Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYklu
c3BlY3RvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9SZW1v
dGVXZWJJbnNwZWN0b3JQcm94eS5jcHAKaW5kZXggZmQ3N2NmNTk4Yjg1NGE4NzZjMTM0YjYyOGU0
ZTAxNGVmYmJhODExOC4uZWMzMTBkOGEzMzg5MDVkMjZhOTQzZGRhNjE5N2YxMGUyOTJjODk5ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYklu
c3BlY3RvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Iv
UmVtb3RlV2ViSW5zcGVjdG9yUHJveHkuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTYtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE0OCw5ICsxNDgsOSBAQCB2b2lkIFJlbW90ZVdl
Ykluc3BlY3RvclByb3h5OjpzdGFydFdpbmRvd0RyYWcoKQogICAgIHBsYXRmb3JtU3RhcnRXaW5k
b3dEcmFnKCk7CiB9CiAKLXZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6Om9wZW5Jbk5ld1Rh
Yihjb25zdCBTdHJpbmcmIHVybCkKK3ZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6Om9wZW5V
UkxFeHRlcm5hbGx5KGNvbnN0IFN0cmluZyYgdXJsKQogewotICAgIHBsYXRmb3JtT3BlbkluTmV3
VGFiKHVybCk7CisgICAgcGxhdGZvcm1PcGVuVVJMRXh0ZXJuYWxseSh1cmwpOwogfQogCiB2b2lk
IFJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpzaG93Q2VydGlmaWNhdGUoY29uc3QgQ2VydGlmaWNh
dGVJbmZvJiBjZXJ0aWZpY2F0ZUluZm8pCkBAIC0yMDUsNyArMjA1LDcgQEAgdm9pZCBSZW1vdGVX
ZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1BcHBlbmQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJikgeyB9CiB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNldFNoZWV0
UmVjdChjb25zdCBGbG9hdFJlY3QmKSB7IH0KIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6
OnBsYXRmb3JtU2V0Rm9yY2VkQXBwZWFyYW5jZShJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6QXBw
ZWFyYW5jZSkgeyB9CiB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVN0YXJ0
V2luZG93RHJhZygpIHsgfQotdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1P
cGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJikgeyB9Cit2b2lkIFJlbW90ZVdlYkluc3BlY3RvclBy
b3h5OjpwbGF0Zm9ybU9wZW5VUkxFeHRlcm5hbGx5KGNvbnN0IFN0cmluZyYpIHsgfQogdm9pZCBS
ZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TaG93Q2VydGlmaWNhdGUoY29uc3QgQ2Vy
dGlmaWNhdGVJbmZvJikgeyB9CiB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9y
bUNsb3NlRnJvbnRlbmRQYWdlQW5kV2luZG93KCkgeyB9CiAjZW5kaWYgLy8gIUVOQUJMRShSRU1P
VEVfSU5TUEVDVE9SKSB8fCAoIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKEdUSykgJiYgIVBM
QVRGT1JNKFdJTikpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0
b3IvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0lu
c3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eS5oCmluZGV4IGQ0Yjk3ODc4Mjg3NDY5MDUx
ZWJiNzU2MDVkMTBiZGY5MzdiN2M1MzguLmRlYmEwZmVlNjI1NjQ1NjI1ZDc2Mzk2YjJiMDY1YTIx
MmJmOTM4MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9S
ZW1vdGVXZWJJbnNwZWN0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0lu
c3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEyMyw3ICsxMjMsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgc2V0U2hlZXRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwogICAg
IHZvaWQgc2V0Rm9yY2VkQXBwZWFyYW5jZShXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVu
dDo6QXBwZWFyYW5jZSk7CiAgICAgdm9pZCBzdGFydFdpbmRvd0RyYWcoKTsKLSAgICB2b2lkIG9w
ZW5Jbk5ld1RhYihjb25zdCBTdHJpbmcmIHVybCk7CisgICAgdm9pZCBvcGVuVVJMRXh0ZXJuYWxs
eShjb25zdCBTdHJpbmcmIHVybCk7CiAgICAgdm9pZCBzaG93Q2VydGlmaWNhdGUoY29uc3QgV2Vi
Q29yZTo6Q2VydGlmaWNhdGVJbmZvJik7CiAgICAgdm9pZCBzZW5kTWVzc2FnZVRvQmFja2VuZChj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpOwogCkBAIC0xNDAsNyArMTQwLDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHBsYXRmb3JtU2V0U2hlZXRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwog
ICAgIHZvaWQgcGxhdGZvcm1TZXRGb3JjZWRBcHBlYXJhbmNlKFdlYkNvcmU6Okluc3BlY3RvckZy
b250ZW5kQ2xpZW50OjpBcHBlYXJhbmNlKTsKICAgICB2b2lkIHBsYXRmb3JtU3RhcnRXaW5kb3dE
cmFnKCk7Ci0gICAgdm9pZCBwbGF0Zm9ybU9wZW5Jbk5ld1RhYihjb25zdCBTdHJpbmcmIHVybCk7
CisgICAgdm9pZCBwbGF0Zm9ybU9wZW5VUkxFeHRlcm5hbGx5KGNvbnN0IFN0cmluZyYgdXJsKTsK
ICAgICB2b2lkIHBsYXRmb3JtU2hvd0NlcnRpZmljYXRlKGNvbnN0IFdlYkNvcmU6OkNlcnRpZmlj
YXRlSW5mbyYpOwogCiAgICAgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlDbGllbnQqIG1fY2xpZW50
IHsgbnVsbHB0ciB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVj
dG9yL1JlbW90ZVdlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluCmlu
ZGV4IDY0ZjM4MTIwMmMyNjBiMDRmMmIwM2ExODQ3NzdmM2Q1NGRlMmEyOWIuLjNiZWZmZDUxYWQ5
NGJmMDU1ZTQ5NzJiNmNjZGYyOTI3NzkyNjRmMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9y
UHJveHkubWVzc2FnZXMuaW4KQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAxNi0yMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMzUsNyArMzUsNyBAQCBtZXNzYWdlcyAtPiBSZW1vdGVXZWJJbnNwZWN0b3JQcm94
eSB7CiAKICAgICBTdGFydFdpbmRvd0RyYWcoKQogCi0gICAgT3BlbkluTmV3VGFiKFN0cmluZyB1
cmwpCisgICAgT3BlblVSTEV4dGVybmFsbHkoU3RyaW5nIHVybCkKICAgICBTaG93Q2VydGlmaWNh
dGUoV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvIGNlcnRpZmljYXRlSW5mbykKIAogICAgIFNlbmRN
ZXNzYWdlVG9CYWNrZW5kKFN0cmluZyBtZXNzYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JQcm94eS5jcHAKaW5kZXggNzkyMWZi
MTM2NzAxYjhhNWZmMWY1OTcwNTZlNjAwOTM1MTFlZTJmZC4uZjVlOTAxODdjNjYxMTg5NjZhYmUw
OGFjZWFjNGE3NGQ3YWJkNDFhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
SW5zcGVjdG9yL1dlYkluc3BlY3RvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yUHJveHkuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMSBNb3Rvcm9sYSBNb2JpbGl0eSwg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTYwNSw2ICs2
MDUsMTEgQEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6c2V0Rm9yY2VkQXBwZWFyYW5jZShJbnNw
ZWN0b3JGcm9udGVuZENsaWVudDo6QXBwZWFyYW5jZQogICAgIHBsYXRmb3JtU2V0Rm9yY2VkQXBw
ZWFyYW5jZShhcHBlYXJhbmNlKTsKIH0KIAordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6b3BlblVS
TEV4dGVybmFsbHkoY29uc3QgU3RyaW5nJiB1cmwpCit7CisgICAgbV9pbnNwZWN0b3JDbGllbnQt
Pm9wZW5VUkxFeHRlcm5hbGx5KCp0aGlzLCB1cmwpOworfQorCiB2b2lkIFdlYkluc3BlY3RvclBy
b3h5OjppbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQogewogICAg
IHBsYXRmb3JtSW5zcGVjdGVkVVJMQ2hhbmdlZCh1cmxTdHJpbmcpOwpAQCAtNzExLDYgKzcxNiwx
NCBAQCBib29sIFdlYkluc3BlY3RvclByb3h5OjpzaG91bGRPcGVuQXR0YWNoZWQoKQogICAgIHJl
dHVybiBpbnNwZWN0b3JQYWdlUHJlZmVyZW5jZXMoKS5pbnNwZWN0b3JTdGFydHNBdHRhY2hlZCgp
ICYmIGNhbkF0dGFjaCgpOwogfQogCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpldmFsdWF0ZUlu
RnJvbnRlbmRGb3JUZXN0aW5nKGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbikKK3sKKyAgICBpZiAo
IW1faW5zcGVjdG9yUGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9pbnNwZWN0b3JQYWdl
LT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JVSTo6RXZhbHVhdGVJbkZyb250ZW5kRm9yVGVz
dGluZyhleHByZXNzaW9uKSk7Cit9CisKIC8vIFVuc3VwcG9ydGVkIGNvbmZpZ3VyYXRpb25zIGNh
biB1c2UgdGhlIHN0dWJzIHByb3ZpZGVkIGhlcmUuCiAKICNpZiAhUExBVEZPUk0oTUFDKSAmJiAh
UExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oV0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yUHJveHkuaAppbmRleCAzNmNjOWRmMTJj
YmI3NWYxYzUxMmFlMDBmZTFkNTA4NmM5YWEwOWE2Li5kODRmNTBhOTc1ZDdjODU0NjU1YzJjNjhi
ODY5YjcxOTEyMWZjNmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNw
ZWN0b3IvV2ViSW5zcGVjdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9J
bnNwZWN0b3IvV2ViSW5zcGVjdG9yUHJveHkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTAsIDIwMTQsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDExIE1vdG9yb2xhIE1vYmlsaXR5LCBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMTI4LDcgKzEy
OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGluc3BlY3RlZFZpZXdGcmFtZURpZENoYW5nZShDR0Zs
b2F0ID0gMCk7CiAgICAgdm9pZCB3aW5kb3dGcmFtZURpZENoYW5nZSgpOwogICAgIHZvaWQgd2lu
ZG93RnVsbFNjcmVlbkRpZENoYW5nZSgpOwotICAgIE5TV2luZG93KiBpbnNwZWN0b3JXaW5kb3co
KSBjb25zdCB7IHJldHVybiBtX2luc3BlY3RvcldpbmRvdy5nZXQoKTsgfQorICAgIE5TV2luZG93
ICppbnNwZWN0b3JXaW5kb3coKSBjb25zdCB7IHJldHVybiBtX2luc3BlY3RvcldpbmRvdy5nZXQo
KTsgfQogCiAgICAgdm9pZCBjbG9zZUZyb250ZW5kUGFnZSgpOwogICAgIHZvaWQgY2xvc2VGcm9u
dGVuZEFmdGVySW5hY3Rpdml0eVRpbWVyRmlyZWQoKTsKQEAgLTE0OCw2ICsxNDgsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzaG93Q29uc29sZSgpOwogICAgIHZvaWQgc2hvd1Jlc291cmNlcygpOwog
ICAgIHZvaWQgc2hvd01haW5SZXNvdXJjZUZvckZyYW1lKFdlYkZyYW1lUHJveHkqKTsKKyAgICB2
b2lkIG9wZW5VUkxFeHRlcm5hbGx5KGNvbnN0IFN0cmluZyYgdXJsKTsKIAogICAgIEF0dGFjaG1l
bnRTaWRlIGF0dGFjaG1lbnRTaWRlKCkgY29uc3QgeyByZXR1cm4gbV9hdHRhY2htZW50U2lkZTsg
fQogICAgIGJvb2wgaXNBdHRhY2hlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNBdHRhY2hlZDsgfQpA
QCAtMTkxLDYgKzE5Miw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgaW5p
dGlhbFdpbmRvd1dpZHRoOwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbml0aWFsV2luZG93
SGVpZ2h0OwogCisgICAgLy8gVGVzdGluZyBtZXRob2RzLgorICAgIHZvaWQgZXZhbHVhdGVJbkZy
b250ZW5kRm9yVGVzdGluZyhjb25zdCBTdHJpbmcmKTsKKwogcHJpdmF0ZToKICAgICB2b2lkIGNy
ZWF0ZUZyb250ZW5kUGFnZSgpOwogICAgIHZvaWQgY2xvc2VGcm9udGVuZFBhZ2VBbmRXaW5kb3co
KTsKQEAgLTIxNSw2ICsyMTksNyBAQCBwcml2YXRlOgogICAgIGJvb2wgcGxhdGZvcm1Jc0Zyb250
KCk7CiAgICAgdm9pZCBwbGF0Zm9ybUF0dGFjaEF2YWlsYWJpbGl0eUNoYW5nZWQoYm9vbCk7CiAg
ICAgdm9pZCBwbGF0Zm9ybVNldEZvcmNlZEFwcGVhcmFuY2UoV2ViQ29yZTo6SW5zcGVjdG9yRnJv
bnRlbmRDbGllbnQ6OkFwcGVhcmFuY2UpOworICAgIHZvaWQgcGxhdGZvcm1PcGVuVVJMRXh0ZXJu
YWxseShjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHBsYXRmb3JtSW5zcGVjdGVkVVJMQ2hhbmdl
ZChjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHBsYXRmb3JtU2hvd0NlcnRpZmljYXRlKGNvbnN0
IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYpOwogICAgIHVuc2lnbmVkIHBsYXRmb3JtSW5zcGVj
dGVkV2luZG93SGVpZ2h0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9J
bnNwZWN0b3IvV2ViSW5zcGVjdG9yUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYmIz
MWRhYzRlNDJjNmZjMTRjYmQwNWRmZGU1ZWEwYjFlMmUyOWFhYi4uZTdjYjExZjI0OTllOGI1M2I4
NzkxMzFmZTI1YzEwNmFjM2RiZWM2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5pbgpA
QCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDEwLCAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDEwLTIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw2
ICszNCw3IEBAIG1lc3NhZ2VzIC0+IFdlYkluc3BlY3RvclByb3h5IHsKICAgICBSZXNldFN0YXRl
KCkKIAogICAgIFNldEZvcmNlZEFwcGVhcmFuY2UoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRD
bGllbnQ6OkFwcGVhcmFuY2UgYXBwZWFyYW5jZSkKKyAgICBPcGVuVVJMRXh0ZXJuYWxseShTdHJp
bmcgdXJsKQogCiAgICAgSW5zcGVjdGVkVVJMQ2hhbmdlZChTdHJpbmcgdXJsU3RyaW5nKQogICAg
IFNob3dDZXJ0aWZpY2F0ZShXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNhdGVJbmZv
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL2d0ay9SZW1v
dGVXZWJJbnNwZWN0b3JQcm94eUd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNw
ZWN0b3IvZ3RrL1JlbW90ZVdlYkluc3BlY3RvclByb3h5R3RrLmNwcAppbmRleCA3NzhhMzljODE1
YmU1ZGE0YTYwNDc2ZThkNzlmMDI0Mjc4MzJmNDQzLi5lNWRhMTg0NjUyNzVhMjQ4MmEyMDBmNjhk
NWQ0YjAyYmFiMTk0ZjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNw
ZWN0b3IvZ3RrL1JlbW90ZVdlYkluc3BlY3RvclByb3h5R3RrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1JlbW90ZVdlYkluc3BlY3RvclByb3h5R3RrLmNw
cApAQCAtMTcyLDcgKzE3Miw3IEBAIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRm
b3JtU3RhcnRXaW5kb3dEcmFnKCkKIHsKIH0KIAotdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94
eTo6cGxhdGZvcm1PcGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJikKK3ZvaWQgUmVtb3RlV2ViSW5z
cGVjdG9yUHJveHk6OnBsYXRmb3JtVVJMRXh0ZXJuYWxseShjb25zdCBTdHJpbmcmKQogewogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1JlbW90
ZVdlYkluc3BlY3RvclByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVj
dG9yL21hYy9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eU1hYy5tbQppbmRleCBlYTM5ZDg5ZjA4OGUy
MTU4ZWJkMjZlYjJkZGQzYWZkYmZlMzA0ZTEzLi4yNDU0YWU5NTk0MTA3N2Q0MjQ4Y2U2YTUzN2I5
NGUxZjIwZWUwMWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0
b3IvbWFjL1JlbW90ZVdlYkluc3BlY3RvclByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNYWMubW0KQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0yNjEsNyArMjYxLDcgQEAgdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1T
dGFydFdpbmRvd0RyYWcoKQogICAgIHdlYlZpZXcoKS0+X3BhZ2UtPnN0YXJ0V2luZG93RHJhZygp
OwogfQogCi12b2lkIFJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW5Jbk5ld1Rh
Yihjb25zdCBTdHJpbmcmIHVybCkKK3ZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRm
b3JtT3BlblVSTEV4dGVybmFsbHkoY29uc3QgU3RyaW5nJiB1cmwpCiB7CiAgICAgW1tOU1dvcmtz
cGFjZSBzaGFyZWRXb3Jrc3BhY2VdIG9wZW5VUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6dXJsXV07
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dL
SW5zcGVjdG9yVmlld0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3Bl
Y3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5oCmluZGV4IGJhYmQzMzI1MDJhZGU5
OWI2MWRjNDViOTc2OTk2NjA4YjdjOGI4MTAuLjEwNzE5Mjg2NjVlNDllY2M4YTI0NzFkN2YxNDY5
YTgwY2E2YWQyOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rv
ci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5oCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU2LDYgKzU2
LDcgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIC0gKEJPT0wpaW5zcGVjdG9yVmlld0NvbnRy
b2xsZXJJbnNwZWN0b3JJc1VuZGVyVGVzdDooV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlciAqKWlu
c3BlY3RvclZpZXdDb250cm9sbGVyOwogLSAodm9pZClpbnNwZWN0b3JWaWV3Q29udHJvbGxlcjoo
V0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlciAqKWluc3BlY3RvclZpZXdDb250cm9sbGVyIHdpbGxN
b3ZlVG9XaW5kb3c6KE5TV2luZG93ICopbmV3V2luZG93OwogLSAodm9pZClpbnNwZWN0b3JWaWV3
Q29udHJvbGxlckRpZE1vdmVUb1dpbmRvdzooV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlciAqKWlu
c3BlY3RvclZpZXdDb250cm9sbGVyOworLSAodm9pZClpbnNwZWN0b3JWaWV3Q29udHJvbGxlcjoo
V0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlciAqKWluc3BlY3RvclZpZXdDb250cm9sbGVyIG9wZW5V
UkxFeHRlcm5hbGx5OihOU1VSTCAqKXVybDsKIEBlbmQKIAogTlNfQVNTVU1FX05PTk5VTExfRU5E
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5z
cGVjdG9yVmlld0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0
b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0KaW5kZXggZjQwN2FlMWJmNmI3OWJk
ZWYyZTgyYzQ1OGE5OTY0ZjgwNDdkODBmMi4uNGQwZDdjYjIyOGRlMmUzYmUzZGFjNmQ0ZjEyMDRi
YjhjNjZhNDc4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9y
L21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbQpAQCAtMjI3
LDggKzIyNywxMyBAQCAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aQogCiAgICAgLy8gUHJldmVudCBl
dmVyeXRoaW5nIGVsc2UuCiAgICAgZGVjaXNpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBv
bGljeUNhbmNlbCk7Ci0gICAgCi0gICAgLy8gQW5kIGluc3RlYWQgbG9hZCBpdCBpbiB0aGUgaW5z
cGVjdGVkIHBhZ2UuCisKKyAgICBpZiAoISFfZGVsZWdhdGUgJiYgW19kZWxlZ2F0ZSByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKGluc3BlY3RvclZpZXdDb250cm9sbGVyOm9wZW5VUkxFeHRl
cm5hbGx5OildKSB7CisgICAgICAgIFtfZGVsZWdhdGUgaW5zcGVjdG9yVmlld0NvbnRyb2xsZXI6
c2VsZiBvcGVuVVJMRXh0ZXJuYWxseTpuYXZpZ2F0aW9uQWN0aW9uLnJlcXVlc3QuVVJMXTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIEFsbG93IHRoZSBkZWxlZ2F0ZSB0byBoYW5k
bGUgaXQgaWYgcG9zc2libGUsIG90aGVyd2lzZSB0cnkgdG8gbG9hZCBpbiB0aGUgaW5zcGVjdGVk
IHBhZ2UuCiAgICAgaWYgKF9pbnNwZWN0ZWRQYWdlKQogICAgICAgICBfaW5zcGVjdGVkUGFnZS0+
bG9hZFJlcXVlc3QobmF2aWdhdGlvbkFjdGlvbi5yZXF1ZXN0KTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dlYkluc3BlY3RvclBy
b3h5TWFjLm1tCmluZGV4IGE1NTdjODNhNGIyOGJlNTRlOWJmOWVjYjU4YmQyNTJkM2U5NzU4ZDAu
LjE4ZTNiNzU0ZjlmMGUzNjNiMzY4ZjU0OGViOGE0MzBkNWM4OTliMjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XZWJJbnNwZWN0
b3JQcm94eU1hYy5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAt
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTE5Myw2ICsxOTMsMTIgQEAgLSAodm9pZClpbnNwZWN0b3JWaWV3
Q29udHJvbGxlckRpZE1vdmVUb1dpbmRvdzooV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlciAqKWlu
c3AKICAgICAgICAgX2luc3BlY3RvclByb3h5LT5hdHRhY2htZW50RGlkTW92ZVRvV2luZG93KGlu
c3BlY3RvclZpZXdDb250cm9sbGVyLndlYlZpZXcud2luZG93KTsKIH0KIAorLSAodm9pZClpbnNw
ZWN0b3JWaWV3Q29udHJvbGxlcjooV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlciAqKWluc3BlY3Rv
clZpZXdDb250cm9sbGVyIG9wZW5VUkxFeHRlcm5hbGx5OihOU1VSTCAqKXVybAoreworICAgIGlm
IChfaW5zcGVjdG9yUHJveHkpCisgICAgICAgIF9pbnNwZWN0b3JQcm94eS0+b3BlblVSTEV4dGVy
bmFsbHkodXJsLmFic29sdXRlU3RyaW5nKTsKK30KKwogQGVuZAogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci93aW4vUmVt
b3RlV2ViSW5zcGVjdG9yUHJveHlXaW4uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5z
cGVjdG9yL3dpbi9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eVdpbi5jcHAKaW5kZXggMDFmZjg2OWY2
Mjk2MGFkM2JkYzEwNjk4MWM2MjI1MjZjNjYzMGI2NC4uOTA1ODk3Nzc0ODk1NjQ4ZjZkNjk2YmY2
MTljMzhmNjljYjY0N2QyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5z
cGVjdG9yL3dpbi9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eVdpbi5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL3dpbi9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eVdpbi5j
cHAKQEAgLTEzNyw3ICsxMzcsNyBAQCB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpwbGF0
Zm9ybUFwcGVuZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSB7IH0KIHZvaWQgUmVtb3Rl
V2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0U2hlZXRSZWN0KGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYpIHsgfQogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TZXRG
b3JjZWRBcHBlYXJhbmNlKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpBcHBlYXJh
bmNlKSB7IH0KIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU3RhcnRXaW5k
b3dEcmFnKCkgeyB9Ci12b2lkIFJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW5J
bk5ld1RhYihjb25zdCBTdHJpbmcmKSB7IH0KK3ZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6
OnBsYXRmb3JtT3BlblVSTEV4dGVybmFsbHkoY29uc3QgU3RyaW5nJikgeyB9CiB2b2lkIFJlbW90
ZVdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNob3dDZXJ0aWZpY2F0ZShjb25zdCBXZWJDb3Jl
OjpDZXJ0aWZpY2F0ZUluZm8mKSB7IH0KIAogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6
cGxhdGZvcm1DbG9zZUZyb250ZW5kUGFnZUFuZFdpbmRvdygpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyNTY4MWVkNGQ5YmIyNWZkNDkw
NTliMTkzZjdkMGEyNTEzOTQ2OGEzLi41NWM0MTJlMjgwMjY3MTU1YjY2Nzc2NGVkM2YyODVlMjBh
NWI0MmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTE0MDYsNiArMTQwNiw3IEBACiAJCTk5NTVBNkY3MUM3OTg2RTUwMEVCNkE5MyAv
KiBBdXRvbWF0aW9uUHJvdG9jb2xPYmplY3RzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5OTU1QTZGMzFDNzk4NjY0MDBFQjZBOTMgLyogQXV0b21hdGlv
blByb3RvY29sT2JqZWN0cy5oICovOyB9OwogCQk5OTc4OEFDQjFGNDIxRERBMDBDMDgwMDAgLyog
X1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTc4OEFDOTFGNDIxRENBMDBDMDgwMDAgLyogX1dL
QXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTk3OUNBNTgyMzdGNDlGMTAwMzlFQzA1IC8qIF9X
S0luc3BlY3RvclByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk5NzlDQTU3MjM3RjQ5RjAwMDM5RUMwNSAvKiBfV0tJbnNwZWN0b3JQcml2YXRl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTk5
OTZBOUYyNTAwNEJDQzAwNEY3NTU5IC8qIF9XS0luc3BlY3RvclByaXZhdGVGb3JUZXN0aW5nLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTk5NkE5RDI1
MDA0QkNCMDA0Rjc1NTkgLyogX1dLSW5zcGVjdG9yUHJpdmF0ZUZvclRlc3RpbmcuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5OUMzQUUyRDFEQURB
NkFEMDBBRjVDMTYgLyogV2ViQXV0b21hdGlvblNlc3Npb25NYWNyb3MuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5QzNBRTJDMURBREE2QTcwMEFGNUMx
NiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbk1hY3Jvcy5oICovOyB9OwogCQk5OUM4MUQ1QTFDMjBF
N0UyMDA1QzRDODIgLyogQXV0b21hdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlDODFENTUxQzIwREZCRTAwNUM0QzgyIC8qIEF1dG9t
YXRpb25DbGllbnQuaCAqLzsgfTsKIAkJOTlDODFENUQxQzIxRjM4QjAwNUM0QzgyIC8qIEFQSUF1
dG9tYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk5QzgxRDVCMUMyMEU4MTcwMDVDNEM4MiAvKiBBUElBdXRvbWF0aW9uQ2xpZW50Lmgg
Ki87IH07CkBAIC00NDc1LDYgKzQ0NzYsOCBAQAogCQk5OTc4OEFDOTFGNDIxRENBMDBDMDgwMDAg
LyogX1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IF9XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbi5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTc4OEFDQTFGNDIxRENBMDBDMDgwMDAgLyogX1dL
QXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gX1dLQXV0b21hdGlvblNlc3Npb25Db25maWd1cmF0aW9uLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTc5Q0E1NzIzN0Y0OUYwMDAzOUVDMDUgLyog
X1dLSW5zcGVjdG9yUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBf
V0tJbnNwZWN0b3JQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5OTk2
QTlEMjUwMDRCQ0IwMDRGNzU1OSAvKiBfV0tJbnNwZWN0b3JQcml2YXRlRm9yVGVzdGluZy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tJbnNwZWN0b3JQcml2YXRlRm9yVGVz
dGluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTk5NkE5RTI1MDA0QkNCMDA0
Rjc1NTkgLyogX1dLSW5zcGVjdG9yVGVzdGluZy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IF9XS0luc3BlY3RvclRlc3RpbmcubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTk5QzNBRTIzMURBRDhFMzQwMEFGNUMxNiAvKiBXZWJBdXRvbWF0aW9uU2Vz
c2lvbk1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkF1
dG9tYXRpb25TZXNzaW9uTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OUMz
QUUyNjFEQUQ5NDg1MDBBRjVDMTYgLyogV2ViQXV0b21hdGlvblNlc3Npb25Db2NvYS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkF1dG9tYXRpb25TZXNzaW9u
Q29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5QzNBRTJDMURBREE2QTcw
MEFGNUMxNiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbk1hY3Jvcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJBdXRvbWF0aW9uU2Vzc2lvbk1hY3Jvcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNzI0Nyw2ICs3MjUwLDggQEAKIAkJCQk5MTk3OTQwQjIzREJD
NTAzMDAyNTc4OTIgLyogX1dLSW5zcGVjdG9yRGVsZWdhdGUuaCAqLywKIAkJCQk1Q0FGREU0NDIx
MzA4NDM2MDBCMUY3RTEgLyogX1dLSW5zcGVjdG9ySW50ZXJuYWwuaCAqLywKIAkJCQk5OTc5Q0E1
NzIzN0Y0OUYwMDAzOUVDMDUgLyogX1dLSW5zcGVjdG9yUHJpdmF0ZS5oICovLAorCQkJCTk5OTk2
QTlEMjUwMDRCQ0IwMDRGNzU1OSAvKiBfV0tJbnNwZWN0b3JQcml2YXRlRm9yVGVzdGluZy5oICov
LAorCQkJCTk5OTk2QTlFMjUwMDRCQ0IwMDRGNzU1OSAvKiBfV0tJbnNwZWN0b3JUZXN0aW5nLm1t
ICovLAogCQkJCUE1QzBGMEFBMjAwMDY1NkUwMDUzNjUzNiAvKiBfV0tJbnNwZWN0b3JXaW5kb3cu
aCAqLywKIAkJCQlBNUMwRjBBOTIwMDA2NTZFMDA1MzY1MzYgLyogX1dLSW5zcGVjdG9yV2luZG93
Lm1tICovLAogCQkJCTMxQjM2Mjk0MjE0MUVCQUQwMDdCRkE1MyAvKiBfV0tJbnRlcm5hbERlYnVn
RmVhdHVyZS5oICovLApAQCAtMTA2MTIsNiArMTA2MTcsNyBAQAogCQkJCTkxOTc5NDBDMjNEQkM1
MDMwMDI1Nzg5MiAvKiBfV0tJbnNwZWN0b3JEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NUNBRkRFNDcyMTMwODQ2QTAwQjFGN0UxIC8qIF9XS0luc3BlY3RvckludGVybmFsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5OTc5Q0E1ODIzN0Y0OUYxMDAzOUVDMDUgLyogX1dLSW5zcGVjdG9yUHJp
dmF0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTk5OTZBOUYyNTAwNEJDQzAwNEY3NTU5IC8qIF9X
S0luc3BlY3RvclByaXZhdGVGb3JUZXN0aW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUMwRjBB
QjIwMDA2NTgyMDA1MzY1MzYgLyogX1dLSW5zcGVjdG9yV2luZG93LmggaW4gSGVhZGVycyAqLywK
IAkJCQkzMUIzNjI5NTIxNDFFQkNEMDA3QkZBNTMgLyogX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTMxQjM2Mjk3MjE0MUVCRDkwMDdCRkE1MyAvKiBfV0tJbnRl
cm5hbERlYnVnRmVhdHVyZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JV
SS5jcHAKaW5kZXggNGU3MTFmYTc3ODhiN2Y5ZWZmOGI1MmEyZTMzNWE1MjZlNjMzZmYxOS4uNDdk
NmZhMzM4M2M0ZWRiYWYzMTQ4MGRkNDJiZWM1MDZmODRjODNhZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JV
SS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMTc5LDkgKzE3OSw5IEBAIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6OnJlc2V0U3Rh
dGUoKQogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9u
KCktPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpSZXNldFN0YXRlKCks
IG1fcGFnZS5pZGVudGlmaWVyKCkpOwogfQogCi12b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjpv
cGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJiB1cmwpCit2b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJ
OjpvcGVuVVJMRXh0ZXJuYWxseShjb25zdCBTdHJpbmcmIHVybCkKIHsKLSAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6T3BlbkluTmV3VGFiKHVybCksIG1fcGFnZS5pZGVudGlm
aWVyKCkpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpPcGVuVVJMRXh0
ZXJuYWxseSh1cmwpLCBtX3BhZ2UuaWRlbnRpZmllcigpKTsKIH0KIAogdm9pZCBSZW1vdGVXZWJJ
bnNwZWN0b3JVSTo6c2F2ZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBTdHJpbmcmIGNv
bnRlbnQsIGJvb2wgYmFzZTY0RW5jb2RlZCwgYm9vbCBmb3JjZVNhdmVBcykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUku
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9y
VUkuaAppbmRleCBjYTRhZjcyNTc4ZTM0ODY4ZDViZmYwYTViNWJlZTJmZDIxZjM0OGNiLi5iNDk5
ZWM1YzUzZmFjNjI3ZjVmNDdlZWZiYzRhOTAzODZjZGEwNmM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5o
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTg2LDcgKzg2LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVvcGVuKCkgb3ZlcnJpZGU7CiAgICAg
dm9pZCByZXNldFN0YXRlKCkgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIG9wZW5Jbk5ld1RhYihjb25z
dCBTdHJpbmcmIHVybCkgb3ZlcnJpZGU7CisgICAgdm9pZCBvcGVuVVJMRXh0ZXJuYWxseShjb25z
dCBTdHJpbmcmIHVybCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzYXZlKGNvbnN0IFN0cmluZyYgdXJs
LCBjb25zdCBTdHJpbmcmIGNvbnRlbnQsIGJvb2wgYmFzZTY0RW5jb2RlZCwgYm9vbCBmb3JjZVNh
dmVBcykgb3ZlcnJpZGU7CiAgICAgdm9pZCBhcHBlbmQoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0
IFN0cmluZyYgY29udGVudCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBpbnNwZWN0ZWRVUkxDaGFuZ2Vk
KGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3IuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3IuY3BwCmluZGV4IDlhMzA2MjkyYzMxMGEwMGI1MDU0
ZmMyNGU5MTJjN2UxZWRhMWIyYzUuLjViYmM2MzQ0MTcxZTU3MTYyZDU1ZDY5MGVhNGVkMjFkNTcx
YTlkOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2Vi
SW5zcGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dl
Ykluc3BlY3Rvci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEw
LCAyMDE0LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDEwLTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xNTgsMjUgKzE1OCw2IEBAIHZvaWQgV2ViSW5zcGVj
dG9yOjpjbG9zZSgpCiAgICAgY2xvc2VGcm9udGVuZENvbm5lY3Rpb24oKTsKIH0KIAotdm9pZCBX
ZWJJbnNwZWN0b3I6Om9wZW5Jbk5ld1RhYihjb25zdCBTdHJpbmcmIHVybFN0cmluZykKLXsKLSAg
ICBVc2VyR2VzdHVyZUluZGljYXRvciBpbmRpY2F0b3IgeyBQcm9jZXNzaW5nVXNlckdlc3R1cmUg
fTsKLQotICAgIFBhZ2UqIGluc3BlY3RlZFBhZ2UgPSBtX3BhZ2UtPmNvcmVQYWdlKCk7Ci0gICAg
aWYgKCFpbnNwZWN0ZWRQYWdlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBGcmFtZSYgaW5zcGVj
dGVkTWFpbkZyYW1lID0gaW5zcGVjdGVkUGFnZS0+bWFpbkZyYW1lKCk7Ci0gICAgRnJhbWVMb2Fk
UmVxdWVzdCBmcmFtZUxvYWRSZXF1ZXN0IHsgKmluc3BlY3RlZE1haW5GcmFtZS5kb2N1bWVudCgp
LCBpbnNwZWN0ZWRNYWluRnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgUmVzb3Vy
Y2VSZXF1ZXN0IHsgdXJsU3RyaW5nIH0sICJfYmxhbmsiX3MsIEluaXRpYXRlZEJ5TWFpbkZyYW1l
OjpVbmtub3duIH07Ci0KLSAgICBOYXZpZ2F0aW9uQWN0aW9uIGFjdGlvbiB7ICppbnNwZWN0ZWRN
YWluRnJhbWUuZG9jdW1lbnQoKSwgZnJhbWVMb2FkUmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwg
ZnJhbWVMb2FkUmVxdWVzdC5pbml0aWF0ZWRCeU1haW5GcmFtZSgpLCBOYXZpZ2F0aW9uVHlwZTo6
TGlua0NsaWNrZWQgfTsKLSAgICBQYWdlKiBuZXdQYWdlID0gaW5zcGVjdGVkUGFnZS0+Y2hyb21l
KCkuY3JlYXRlV2luZG93KGluc3BlY3RlZE1haW5GcmFtZSwgeyB9LCBhY3Rpb24pOwotICAgIGlm
ICghbmV3UGFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbmV3UGFnZS0+bWFpbkZyYW1lKCku
bG9hZGVyKCkubG9hZChXVEZNb3ZlKGZyYW1lTG9hZFJlcXVlc3QpKTsKLX0KLQogdm9pZCBXZWJJ
bnNwZWN0b3I6OmV2YWx1YXRlU2NyaXB0Rm9yVGVzdChjb25zdCBTdHJpbmcmIHNjcmlwdCkKIHsK
ICAgICBpZiAoIW1fcGFnZS0+Y29yZVBhZ2UoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3Rvci5oCmluZGV4IGI0NTRlZGNlNDhjYTVmNTIzZTAx
ZDAzZjFlOWEzYzhlM2M2NmYyMTMuLjFiZWRjMmUzODk1NTRmY2Q4Mjg3ZDFlMWI4ZmY2MDUwOTdm
MWIzMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2Vi
SW5zcGVjdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJ
bnNwZWN0b3IuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIw
MTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEwLTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC01NSw4ICs1NSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNo
b3coKTsKICAgICB2b2lkIGNsb3NlKCk7CiAKLSAgICB2b2lkIG9wZW5Jbk5ld1RhYihjb25zdCBT
dHJpbmcmIHVybFN0cmluZyk7Ci0KICAgICB2b2lkIGNhbkF0dGFjaFdpbmRvdyhib29sJiByZXN1
bHQpOwogCiAgICAgdm9pZCBzaG93Q29uc29sZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3IubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3Rvci5tZXNzYWdlcy5pbgppbmRl
eCBkYWY3NGI1ZTZiMDQzMGI2YjBjYTNiZTI2MGY1ZmZhYmVjZDY1NDg5Li5kMTEyNDg5MGUwOTc5
ZTA0N2ZiODc3ZGZiY2YyYjBhNGYxZWNkZDVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3Rvci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3Rvci5tZXNzYWdlcy5pbgpAQCAt
MSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDEwLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDEwLTIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSw4ICsz
MSw2IEBAIG1lc3NhZ2VzIC0+IFdlYkluc3BlY3RvciB7CiAKICAgICBTaG93TWFpblJlc291cmNl
Rm9yRnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSWRlbnRpZmllcikKIAotICAg
IE9wZW5Jbk5ld1RhYihTdHJpbmcgdXJsKQotCiAgICAgU3RhcnRQYWdlUHJvZmlsaW5nKCkKICAg
ICBTdG9wUGFnZVByb2ZpbGluZygpCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElE
aXNwYXRjaGVyLmNwcAppbmRleCBjMTg5ZTk4MjVhZDQ5NDcwZWQ2MjQzNWU4NmQ1OWRmNjBmMzhh
ZTgyLi45YzM3YjAwM2MxY2I3NzFkOWIzZjc5ZGRhNjU1MmE0OTA3ZDdlZGQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvckZyb250ZW5k
QVBJRGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rv
ci9XZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTExNSw0ICsxMTUs
OSBAQCB2b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZXZhbHVhdGVRdWV1
ZWRFeHByZXNzaW9ucygpCiAgICAgbV9xdWV1ZS5jbGVhcigpOwogfQogCit2b2lkIFdlYkluc3Bl
Y3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlcjo6ZXZhbHVhdGVFeHByZXNzaW9uRm9yVGVzdGluZyhj
b25zdCBTdHJpbmcmIGV4cHJlc3Npb24pCit7CisgICAgZXZhbHVhdGVPclF1ZXVlRXhwcmVzc2lv
bihleHByZXNzaW9uKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvckZyb250ZW5kQVBJ
RGlzcGF0Y2hlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNw
ZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaAppbmRleCBmNWM0MjRlMmQ4NzQ1NGQ5YmI5ZWUz
ZjJlYTgyMjRmNDFlNDFhNzI1Li5kYjY5MGU0YTQxNjA3YWRmMTAzNGNiOGU0NWEwZmIwZjVkNjVm
ZDY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYklu
c3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yRnJvbnRlbmRBUElEaXNwYXRjaGVyLmgKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0LCAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
NDcsNiArNDcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNwYXRjaENvbW1hbmQoY29uc3QgU3Ry
aW5nJiBjb21tYW5kLCBib29sIGFyZ3VtZW50KTsKICAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZUFz
eW5jKGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CiAKKyAgICB2b2lkIGV2YWx1YXRlRXhwcmVzc2lv
bkZvclRlc3RpbmcoY29uc3QgU3RyaW5nJik7CiBwcml2YXRlOgogICAgIHZvaWQgZXZhbHVhdGVP
clF1ZXVlRXhwcmVzc2lvbihjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIGV2YWx1YXRlUXVldWVk
RXhwcmVzc2lvbnMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNw
ZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3Bl
Y3Rvci9XZWJJbnNwZWN0b3JVSS5jcHAKaW5kZXggZTkzMzdjZDJkNmJiOTBkYjZhNjZjZWQ2NWYy
YjY3Y2Y1MmM5NWIzNC4uOTA0ZTQ3N2I4NGM2Yjc0YzdhYzI5ZTgyZGZiMjI4MTc1ZDcwNTEyYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0
b3JVSS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNw
ZWN0b3JVSS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0LTIw
MTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0
LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC04MiwxMSArODIsNiBAQCB2b2lkIFdlYkluc3BlY3RvclVJOjplc3Rh
Ymxpc2hDb25uZWN0aW9uKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgaW5zcGVjdGVkUGFnZUlkZQog
CiB2b2lkIFdlYkluc3BlY3RvclVJOjp1cGRhdGVDb25uZWN0aW9uKCkKIHsKLSAgICBpZiAobV9i
YWNrZW5kQ29ubmVjdGlvbikgewotICAgICAgICBtX2JhY2tlbmRDb25uZWN0aW9uLT5pbnZhbGlk
YXRlKCk7Ci0gICAgICAgIG1fYmFja2VuZENvbm5lY3Rpb24gPSBudWxscHRyOwotICAgIH0KLQog
I2lmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRTKQogICAgIElQQzo6Q29ubmVjdGlvbjo6U29ja2V0
UGFpciBzb2NrZXRQYWlyID0gSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVQbGF0Zm9ybUNvbm5lY3Rp
b24oKTsKICAgICBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZp
ZXIoc29ja2V0UGFpci5zZXJ2ZXIpOwpAQCAtMTEwLDExICsxMDUsNiBAQCB2b2lkIFdlYkluc3Bl
Y3RvclVJOjp1cGRhdGVDb25uZWN0aW9uKCkKICAgICByZXR1cm47CiAjZW5kaWYKIAotI2lmIFVT
RShVTklYX0RPTUFJTl9TT0NLRVRTKSB8fCBPUyhEQVJXSU4pIHx8IFBMQVRGT1JNKFdJTikKLSAg
ICBtX2JhY2tlbmRDb25uZWN0aW9uID0gSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVTZXJ2ZXJDb25u
ZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyLCAqdGhpcyk7Ci0gICAgbV9iYWNrZW5kQ29ubmVj
dGlvbi0+b3BlbigpOwotI2VuZGlmCi0KICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJl
bnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JQcm94eTo6
U2V0RnJvbnRlbmRDb25uZWN0aW9uKGNvbm5lY3Rpb25DbGllbnRQb3J0KSwgbV9pbnNwZWN0ZWRQ
YWdlSWRlbnRpZmllcik7CiB9CiAKQEAgLTE2MywxMSArMTUzLDYgQEAgdm9pZCBXZWJJbnNwZWN0
b3JVSTo6Y2xvc2VXaW5kb3coKQogewogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVu
dFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclByb3h5OjpE
aWRDbG9zZSgpLCBtX2luc3BlY3RlZFBhZ2VJZGVudGlmaWVyKTsKIAotICAgIGlmIChtX2JhY2tl
bmRDb25uZWN0aW9uKSB7Ci0gICAgICAgIG1fYmFja2VuZENvbm5lY3Rpb24tPmludmFsaWRhdGUo
KTsKLSAgICAgICAgbV9iYWNrZW5kQ29ubmVjdGlvbiA9IG51bGxwdHI7Ci0gICAgfQotCiAgICAg
aWYgKG1fZnJvbnRlbmRDb250cm9sbGVyKSB7CiAgICAgICAgIG1fZnJvbnRlbmRDb250cm9sbGVy
LT5zZXRJbnNwZWN0b3JGcm9udGVuZENsaWVudChudWxscHRyKTsKICAgICAgICAgbV9mcm9udGVu
ZENvbnRyb2xsZXIgPSBudWxscHRyOwpAQCAtMjk2LDEyICsyODEsOSBAQCB2b2lkIFdlYkluc3Bl
Y3RvclVJOjpjaGFuZ2VTaGVldFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2Fn
ZXM6OldlYkluc3BlY3RvclByb3h5OjpTZXRTaGVldFJlY3QocmVjdCksIG1faW5zcGVjdGVkUGFn
ZUlkZW50aWZpZXIpOwogfQogCi12b2lkIFdlYkluc3BlY3RvclVJOjpvcGVuSW5OZXdUYWIoY29u
c3QgU3RyaW5nJiB1cmwpCit2b2lkIFdlYkluc3BlY3RvclVJOjpvcGVuVVJMRXh0ZXJuYWxseShj
b25zdCBTdHJpbmcmIHVybCkKIHsKLSAgICBpZiAobV9iYWNrZW5kQ29ubmVjdGlvbikgewotICAg
ICAgICBtX2JhY2tlbmRDb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3I6Ok9w
ZW5Jbk5ld1RhYih1cmwpLCAwKTsKLSAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yUHJveHk6
OkJyaW5nSW5zcGVjdGVkUGFnZVRvRnJvbnQoKSwgbV9pbnNwZWN0ZWRQYWdlSWRlbnRpZmllcik7
Ci0gICAgfQorICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclByb3h5OjpPcGVuVVJMRXh0ZXJuYWxs
eSh1cmwpLCBtX2luc3BlY3RlZFBhZ2VJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0
b3JVSTo6c2F2ZShjb25zdCBXVEY6OlN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFdURjo6U3RyaW5n
JiBjb250ZW50LCBib29sIGJhc2U2NEVuY29kZWQsIGJvb2wgZm9yY2VTYXZlQXMpCkBAIC0zOTUs
NiArMzc3LDExIEBAIHZvaWQgV2ViSW5zcGVjdG9yVUk6OnNlbmRNZXNzYWdlVG9Gcm9udGVuZChj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAgbV9mcm9udGVuZEFQSURpc3BhdGNoZXIuZGlzcGF0
Y2hNZXNzYWdlQXN5bmMobWVzc2FnZSk7CiB9CiAKK3ZvaWQgV2ViSW5zcGVjdG9yVUk6OmV2YWx1
YXRlSW5Gcm9udGVuZEZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiBleHByZXNzaW9uKQoreworICAg
IG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmV2YWx1YXRlRXhwcmVzc2lvbkZvclRlc3RpbmcoZXhw
cmVzc2lvbik7Cit9CisKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OnBhZ2VQYXVzZWQoKQogewogICAg
IG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLnN1c3BlbmQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuaAppbmRleCA0YjZlYWNhNzJh
YmM3ZGIzZTVjYTdlYzZhMTEzMTg3MTdlY2VkMGRiLi4wMjZhNzEyYTA4OTlkMDQ1NWYzMTg1YWI3
OTc2YzE0MDA1ZDhlYmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5z
cGVjdG9yL1dlYkluc3BlY3RvclVJLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
c3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxNC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtODYsMTAgKzg2LDExIEBAIHB1YmxpYzoKICAg
ICB2b2lkIGRpZFNhdmUoY29uc3QgU3RyaW5nJiB1cmwpOwogICAgIHZvaWQgZGlkQXBwZW5kKGNv
bnN0IFN0cmluZyYgdXJsKTsKIAotICAgIHZvaWQgc2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0
IFN0cmluZyYpOworICAgIHZvaWQgc2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYg
bWVzc2FnZSk7CisgICAgdm9pZCBldmFsdWF0ZUluRnJvbnRlbmRGb3JUZXN0aW5nKGNvbnN0IFN0
cmluZyYgZXhwcmVzc2lvbik7CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SX1RFTEVNRVRSWSkKLSAg
ICB2b2lkIHNldERpYWdub3N0aWNMb2dnaW5nQXZhaWxhYmxlKGJvb2wgYXZhbGlhYmxlKTsKKyAg
ICB2b2lkIHNldERpYWdub3N0aWNMb2dnaW5nQXZhaWxhYmxlKGJvb2wpOwogI2VuZGlmCiAKICAg
ICAvLyBXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudApAQCAtMTI1LDcgKzEyNiw3IEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgY2hhbmdlU2hlZXRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBvcGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJiB1
cmwpIG92ZXJyaWRlOworICAgIHZvaWQgb3BlblVSTEV4dGVybmFsbHkoY29uc3QgU3RyaW5nJiB1
cmwpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBjYW5TYXZlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBz
YXZlKGNvbnN0IFdURjo6U3RyaW5nJiB1cmwsIGNvbnN0IFdURjo6U3RyaW5nJiBjb250ZW50LCBi
b29sIGJhc2U2NEVuY29kZWQsIGJvb2wgZm9yY2VTYXZlQXMpIG92ZXJyaWRlOwpAQCAtMTUzLDcg
KzE1NCw2IEBAIHByaXZhdGU6CiAgICAgV2ViUGFnZSYgbV9wYWdlOwogICAgIFdlYkluc3BlY3Rv
ckZyb250ZW5kQVBJRGlzcGF0Y2hlciBtX2Zyb250ZW5kQVBJRGlzcGF0Y2hlcjsKICAgICBSZWZQ
dHI8V2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRIb3N0PiBtX2Zyb250ZW5kSG9zdDsKLSAgICBS
ZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBtX2JhY2tlbmRDb25uZWN0aW9uOwogCiAgICAgLy8gS2Vl
cCBhIHBvaW50ZXIgdG8gdGhlIGZyb250ZW5kJ3MgaW5zcGVjdG9yIGNvbnRyb2xsZXIgcmF0aGVy
IHRoYW4gZ29pbmcgdGhyb3VnaAogICAgIC8vIGNvcmVQYWdlKCksIHNpbmNlIHdlIG1heSBuZWVk
IGl0IGFmdGVyIHRoZSBmcm9udGVuZCdzIHBhZ2UgaGFzIHN0YXJ0ZWQgZGVzdHJ1Y3Rpb24uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3Rv
clVJLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJ
bnNwZWN0b3JVSS5tZXNzYWdlcy5pbgppbmRleCA4OGEyMGY4MTBmNmZkYWU1Mjc3ZmM1NThjOTFm
NWZkY2JhOWVhNDA3Li40MzU5ZGRiOTA4OTRiMjkyOTMxNDIxN2NhOGE0MjQ2YjNhMmVlOTg3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3Rv
clVJLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yVUkubWVzc2FnZXMuaW4KQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAo
QykgMjAxNCwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdo
dCAoQykgMjAxNC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTEsNCArNTEsNSBAQCBtZXNzYWdlcyAtPiBXZWJJbnNw
ZWN0b3JVSSB7CiAgICAgRGlkQXBwZW5kKFN0cmluZyB1cmwpCiAKICAgICBTZW5kTWVzc2FnZVRv
RnJvbnRlbmQoU3RyaW5nIG1lc3NhZ2UpCisgICAgRXZhbHVhdGVJbkZyb250ZW5kRm9yVGVzdGlu
ZyhTdHJpbmcgZXhwcmVzc2lvbikKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCA5NTNjMzIyNzJhOTA4NmI2NjhkMzZiMDlmZDU4NzhmOTExZTEx
ZWYxLi41NzA0ZWQ5Y2I2OTAwNzMzODVmODg3OGQzMjBiOTk4ZTNkZjMxMzRkIDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMjAtMDktMTIgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CisKKyAgICAgICAgW0Nv
Y29hXSBfV0tJbnNwZWN0b3JEZWxlZ2F0ZSBzaG91bGQgaGFuZGxlIHNob3dpbmcgZXh0ZXJuYWwg
cmVzb3VyY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTYzMzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUZXN0IHRoZSBkZWxlZ2F0ZSB1c2luZyBXZWJLaXQgQVBJIGFuZCB1c2luZyBJbnNwZWN0b3JG
cm9udGVuZEhvc3QgQVBJLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XS0luc3BlY3RvckRlbGVnYXRlLm1tOgorICAgICAgICAoLVtJbnNwZWN0b3JEZWxlZ2F0
ZSBpbnNwZWN0b3I6b3BlblVSTEV4dGVybmFsbHk6XSk6IEFkZGVkLgorICAgICAgICAoVEVTVCk6
CisKIDIwMjAtMDktMTAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI2Njg0MiBhbmQgcjI2Njg4My4KZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tJbnNwZWN0b3JEZWxlZ2F0
ZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tJbnNwZWN0b3JE
ZWxlZ2F0ZS5tbQppbmRleCAxZTNkNjk1ODVmZDUwNDY2NzE3M2UzMjQyYjczNGFmYzRkYzg2MGNi
Li4xMGE0YWNhYTE0Y2VmYWU3ZTlmZjg1ZTJkMmY5YTMxY2Y5YTQ4Yzc3IDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9yRGVsZWdhdGUu
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0luc3BlY3Rv
ckRlbGVnYXRlLm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3
UHJpdmF0ZUZvclRlc3RpbmcuaD4KICNpbXBvcnQgPFdlYktpdC9fV0tJbnNwZWN0b3IuaD4KICNp
bXBvcnQgPFdlYktpdC9fV0tJbnNwZWN0b3JEZWxlZ2F0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L19X
S0luc3BlY3RvclByaXZhdGVGb3JUZXN0aW5nLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+
CiAKICNpZiBQTEFURk9STShNQUMpCkBAIC00MSw3ICs0Miw5IEBAIEBjbGFzcyBJbnNwZWN0b3JE
ZWxlZ2F0ZTsKIHN0YXRpYyBib29sIGRpZEF0dGFjaExvY2FsSW5zcGVjdG9yQ2FsbGVkID0gZmFs
c2U7CiBzdGF0aWMgYm9vbCBicm93c2VyRG9tYWluRW5hYmxlZEZvckluc3BlY3RvckNhbGxlZCA9
IGZhbHNlOwogc3RhdGljIGJvb2wgYnJvd3NlckRvbWFpbkRpc2FibGVkRm9ySW5zcGVjdG9yQ2Fs
bGVkID0gZmFsc2U7Ci1zdGF0aWMgUmV0YWluUHRyPEluc3BlY3RvckRlbGVnYXRlPiBzaGFyZWRJ
bnNwZWN0b3JEZWxlZ2F0ZTsKK3N0YXRpYyBib29sIG9wZW5VUkxFeHRlcm5hbGx5Q2FsbGVkID0g
ZmFsc2U7CitzdGF0aWMgUmV0YWluUHRyPGlkIDxfV0tJbnNwZWN0b3JEZWxlZ2F0ZT4+IHNoYXJl
ZEluc3BlY3RvckRlbGVnYXRlOworc3RhdGljIFJldGFpblB0cjxOU1VSTD4gdXJsVG9PcGVuOwog
CiBAaW50ZXJmYWNlIEluc3BlY3RvckRlbGVnYXRlIDogTlNPYmplY3QgPF9XS0luc3BlY3RvckRl
bGVnYXRlPgogQGVuZApAQCAtNjIsNiArNjUsMTIgQEAgLSAodm9pZClpbnNwZWN0b3JEaWREaXNh
YmxlQnJvd3NlckRvbWFpbjooX1dLSW5zcGVjdG9yICopaW5zcGVjdG9yCiAgICAgYnJvd3NlckRv
bWFpbkRpc2FibGVkRm9ySW5zcGVjdG9yQ2FsbGVkID0gdHJ1ZTsKIH0KIAorLSAodm9pZClpbnNw
ZWN0b3I6KF9XS0luc3BlY3RvciAqKWluc3BlY3RvciBvcGVuVVJMRXh0ZXJuYWxseTooTlNVUkwg
Kil1cmwKK3sKKyAgICBFWFBFQ1RfU1RSRVEodXJsLmFic29sdXRlU3RyaW5nLlVURjhTdHJpbmcs
IHVybFRvT3Blbi5nZXQoKS5hYnNvbHV0ZVN0cmluZy5VVEY4U3RyaW5nKTsKKyAgICBvcGVuVVJM
RXh0ZXJuYWxseUNhbGxlZCA9IHRydWU7Cit9CisKIEBlbmQKIAogQGludGVyZmFjZSBVSURlbGVn
YXRlIDogTlNPYmplY3QgPFdLVUlEZWxlZ2F0ZT4KQEAgLTg1LDcgKzk0LDcgQEAgLSAodm9pZClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRBdHRhY2hMb2NhbEluc3BlY3RvcjooX1dL
SW5zcGVjdG9yICopaW4KIAogQGVuZAogCi1URVNUKFdlYktpdF9XS0luc3BlY3RvckRlbGVnYXRl
LCBEaWROb3RpZnlGb3JMb2NhbEluc3BlY3RvcikKK1RFU1QoV0tJbnNwZWN0b3JEZWxlZ2F0ZSwg
RGlkTm90aWZ5Rm9yTG9jYWxJbnNwZWN0b3IpCiB7CiAgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJh
dGlvbiA9IGFkb3B0TlMoW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gbmV3XSk7CiAgICAgd2ViVmll
d0NvbmZpZ3VyYXRpb24uZ2V0KCkucHJlZmVyZW5jZXMuX2RldmVsb3BlckV4dHJhc0VuYWJsZWQg
PSBZRVM7CkBAIC0xMDQsNCArMTEzLDI4IEBAIFRFU1QoV2ViS2l0X1dLSW5zcGVjdG9yRGVsZWdh
dGUsIERpZE5vdGlmeUZvckxvY2FsSW5zcGVjdG9yKQogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmYnJvd3NlckRvbWFpbkRpc2FibGVkRm9ySW5zcGVjdG9yQ2FsbGVkKTsKIH0KIAorVEVT
VChXS0luc3BlY3RvckRlbGVnYXRlLCBTaG93VVJMRXh0ZXJuYWxseSkKK3sKKyAgICBhdXRvIHdl
YlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBuZXdd
KTsKKyAgICB3ZWJWaWV3Q29uZmlndXJhdGlvbi5nZXQoKS5wcmVmZXJlbmNlcy5fZGV2ZWxvcGVy
RXh0cmFzRW5hYmxlZCA9IFlFUzsKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgODAwLCA2MDApIGNvbmZp
Z3VyYXRpb246d2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBhdXRvIHVpRGVsZWdh
dGUgPSBhZG9wdE5TKFtVSURlbGVnYXRlIG5ld10pOworCisgICAgW3dlYlZpZXcgc2V0VUlEZWxl
Z2F0ZTp1aURlbGVnYXRlLmdldCgpXTsKKyAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpAIjxo
ZWFkPjx0aXRsZT5UZXN0IHBhZ2UgdG8gYmUgaW5zcGVjdGVkPC90aXRsZT48L2hlYWQ+PGJvZHk+
PHA+RmlsbGVyIGNvbnRlbnQ8L3A+PC9ib2R5PiIgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmlu
ZzpAImh0dHA6Ly9leGFtcGxlLmNvbS8iXV07CisKKyAgICBbW3dlYlZpZXcgX2luc3BlY3Rvcl0g
c2hvd107CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRBdHRhY2hMb2NhbEluc3Bl
Y3RvckNhbGxlZCk7CisKKyAgICB1cmxUb09wZW4gPSBbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0
dHBzOi8vd3d3LndlYmtpdC5vcmcvIl07CisKKyAgICAvLyBDaGVjayB0aGUgY2FzZSB3aGVyZSB0
aGUgbG9hZCBpcyBpbnRlcmNlcHRlZCBieSB0aGUgbmF2aWdhdGlvbiBkZWxlZ2F0ZS4KKyAgICBb
W3dlYlZpZXcgX2luc3BlY3Rvcl0gX29wZW5VUkxFeHRlcm5hbGx5Rm9yVGVzdGluZzp1cmxUb09w
ZW4uZ2V0KCkgdXNlRnJvbnRlbmRBUEk6Tk9dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmb3BlblVSTEV4dGVybmFsbHlDYWxsZWQpOworCisgICAgLy8gQ2hlY2sgdGhlIGNhc2Ugd2hl
cmUgdGhlIGZyb250ZW5kIGNhbGxzIEluc3BlY3RvckZyb250ZW5kSG9zdC5vcGVuVVJMRXh0ZXJu
YWxseSgpLgorICAgIFtbd2ViVmlldyBfaW5zcGVjdG9yXSBfb3BlblVSTEV4dGVybmFsbHlGb3JU
ZXN0aW5nOnVybFRvT3Blbi5nZXQoKSB1c2VGcm9udGVuZEFQSTpZRVNdOworICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmb3BlblVSTEV4dGVybmFsbHlDYWxsZWQpOworfQorCiAjZW5kaWYg
Ly8gUExBVEZPUk0oTUFDKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409295</attachid>
            <date>2020-09-21 12:17:34 -0700</date>
            <delta_ts>2020-09-21 17:07:45 -0700</delta_ts>
            <desc>For GTK EWS</desc>
            <filename>bug-216334-20200921121733.patch</filename>
            <type>text/plain</type>
            <size>65979</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MzQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGZkMTU1NTQ2MDAzOGVk
NTI2NmJkMTQ1MThkZGRjMGQ1OGMxYWJmYS4uM2ZhMGY5YzcyNmYwYTVkMDE2MjRkZTNlNjg5NjNm
MGNjMmYxMDU3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA5LTIxICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gX1dLSW5zcGVjdG9y
RGVsZWdhdGUgc2hvdWxkIGhhbmRsZSBzaG93aW5nIGV4dGVybmFsIHJlc291cmNlcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2MzM0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgorCisgICAgICAgIEFkYXB0IHRvIHRoZSByZW5h
bWUgb2YgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LntvcGVuSW5OZXdUYWIgPT4gb3BlblVSTEV4dGVy
bmFsbHl9LgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50Lmg6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6b3BlblVSTEV4
dGVybmFsbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2Nh
bDo6b3BlbkluTmV3VGFiKTogRGVsZXRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRMb2NhbC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZEhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRIb3N0Ojpv
cGVuVVJMRXh0ZXJuYWxseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEhv
c3Q6Om9wZW5Jbk5ld1RhYik6IERlbGV0ZWQuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckZyb250ZW5kSG9zdC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhv
c3QuaWRsOgorCiAyMDIwLTA5LTIxICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJlbW92ZSBkZWRpY2F0ZWQgSGFzaFNldDxFbGVtZW50Kj4gZm9yIERvY3Vt
ZW50VGltZWxpbmU6OnJ1bm5pbmdBbmltYXRpb25zRm9yRWxlbWVudEFyZUFsbEFjY2VsZXJhdGVk
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGE5MjQ3M2ViZTgxNmU3NGE0MDg3OTA1ZGI4
ZjAzOWE5ODBhMzM3NTkuLmUxN2IwNGMzN2ZiOTAyM2I1ZmY5MmEwZTc0ZWRiOGUzNmE4OThjMzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTA5LTIxICBC
cmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gX1dLSW5zcGVj
dG9yRGVsZWdhdGUgc2hvdWxkIGhhbmRsZSBzaG93aW5nIGV4dGVybmFsIHJlc291cmNlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2MzM0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgorCisgICAgICAgIEFkYXB0IHRvIHRoZSBy
ZW5hbWUgb2YgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LntvcGVuSW5OZXdUYWIgPT4gb3BlblVSTEV4
dGVybmFsbHl9LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9CYXNlL01haW4uanM6CisgICAg
ICAgICogVXNlckludGVyZmFjZS9EZWJ1Zy9VbmNhdWdodEV4Y2VwdGlvblJlcG9ydGVyLmpzOgor
ICAgICAgICAoc2hlZXRFbGVtZW50LmlubmVySFRNTC5kaXYpOgorICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9yRnJvbnRlbmRBUEkuanM6CisgICAgICAgICogVXNlcklu
dGVyZmFjZS9WaWV3cy9SZXNvdXJjZVRyZWVFbGVtZW50LmpzOgorICAgICAgICAoV0kuUmVzb3Vy
Y2VUcmVlRWxlbWVudC5wcm90b3R5cGUub25kYmxjbGljayk6CisKIDIwMjAtMDktMTQgIFBhdHJp
Y2sgQW5nbGUgIDxwYW5nbGVAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFN0
b3AgUmVjb3JkaW5nIGluIFRpbWVsaW5lcyB0YWIgZG9lc24ndCB3b3JrIHJlbGlhYmx5CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDRhZGZjMzM1NmEzMzk3NmU4YmE5Mzk2YmJhOTM0ZThmNGMzODhmM2EuLmRkOGZmOTQ4
MDQ5YWQ5ODQ4YWE2ZDBkYjhmNWMyOGZkY2ZhMjIyYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTEw
IEBACisyMDIwLTA5LTIxICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAg
IFtDb2NvYV0gX1dLSW5zcGVjdG9yRGVsZWdhdGUgc2hvdWxkIGhhbmRsZSBzaG93aW5nIGV4dGVy
bmFsIHJlc291cmNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE2MzM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgorCisgICAg
ICAgIFdlYktpdCBjbGllbnRzIG5lZWQgYSB3YXkgdG8gY29udHJvbCB0aGUgbG9hZGluZyBhbmQg
cHJlc2VudGF0aW9uIG9mCisgICAgICAgIGV4dGVybmFsIHJlc291cmNlcyB0aGF0IGFyZSBsaW5r
ZWQgaW4gV2ViIEluc3BlY3RvcidzIHVzZXIgaW50ZXJmYWNlLgorCisgICAgICAgIFJlbmFtZSBJ
bnNwZWN0b3JGcm9udGVuZEhvc3Qub3BlbkluTmV3VGFiIHRvIG9wZW5VUkxFeHRlcm5hbGx5LiBD
aGFuZ2UKKyAgICAgICAgdGhlIGltcGxlbWVudGF0aW9uIHRvIGZvcndhcmQgdGhlIHJlcXVlc3Qg
dG8gVUlQcm9jZXNzIHJhdGhlciB0aGFuIHRoZQorICAgICAgICBpbnNwZWN0ZWQgV2ViUHJvY2Vz
cy4KKworICAgICAgICBXaGVuIGEgbmF2aWdhdGlvbiBpcyB0cmlnZ2VyZWQgaW4gV0tJbnNwZWN0
b3JWaWV3Q29udHJvbGxlcidzIFdLV2ViVmlldywKKyAgICAgICAgYWxsb3cgdGhlIGRlbGVnYXRl
IHRvIG9wZW4gdGhlIHJlcXVlc3RlZCByZXNvdXJjZS4gT3RoZXJ3aXNlLCByZWRpcmVjdAorICAg
ICAgICB0aGUgbmF2aWdhdGlvbiB0byB0aGUgaW5zcGVjdGVkIFdlYlZpZXcgb3Igb3BlbiBpdCB1
c2luZyBOU1dvcmtzcGFjZQorICAgICAgICAoZm9yIHRoZSByZW1vdGUgY2FzZSkuCisKKyAgICAg
ICAgTmV3IEFQSSB0ZXN0OiBXS0luc3BlY3RvckRlbGVnYXRlLk9wZW5VUkxFeHRlcm5hbGx5Lgor
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JQcml2YXRlRm9yVGVz
dGluZy5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rv
clRlc3RpbmcubW06IEFkZGVkLgorICAgICAgICAoc25pcHBldFRvT3BlblVSTEV4dGVybmFsbHkp
OgorICAgICAgICAoLVtfV0tJbnNwZWN0b3IgX29wZW5VUkxFeHRlcm5hbGx5Rm9yVGVzdGluZzp1
c2VGcm9udGVuZEFQSTpdKToKKyAgICAgICAgQWRkIHNvbWUgaGVscGVycyBmb3Igd3JpdGluZyBB
UEkgdGVzdHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSUluc3BlY3RvckNsaWVudC5o
OgorICAgICAgICAoQVBJOjpJbnNwZWN0b3JDbGllbnQ6Om9wZW5VUkxFeHRlcm5hbGx5KToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckRlbGVnYXRlLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0NvY29hL1BhZ2VDbGllbnRJbXBsQ29jb2EubW06CisgICAgICAgICog
VUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JEZWxlZ2F0ZS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRGVsZWdhdGUubW06CisgICAgICAg
IChXZWJLaXQ6Okluc3BlY3RvckRlbGVnYXRlOjpzZXREZWxlZ2F0ZSk6CisgICAgICAgIChXZWJL
aXQ6Okluc3BlY3RvckRlbGVnYXRlOjpJbnNwZWN0b3JDbGllbnQ6Om9wZW5VUkxFeHRlcm5hbGx5
KToKKyAgICAgICAgQWRkIG5ldyBkZWxlZ2F0ZSBtZXRob2QgdG8gX1dLSW5zcGVjdG9yRGVsZWdh
dGUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclBy
b3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2Vi
SW5zcGVjdG9yUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdl
Ykluc3BlY3RvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9y
UHJveHk6Om9wZW5VUkxFeHRlcm5hbGx5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5z
cGVjdG9yUHJveHk6OnBsYXRmb3JtT3BlblVSTEV4dGVybmFsbHkpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6b3BlbkluTmV3VGFiKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtT3BlbkluTmV3VGFi
KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL2d0ay9SZW1vdGVXZWJJ
bnNwZWN0b3JQcm94eUd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3Rv
clByb3h5OjpwbGF0Zm9ybVVSTEV4dGVybmFsbHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVX
ZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1PcGVuSW5OZXdUYWIpOiBEZWxldGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1JlbW90ZVdlYkluc3BlY3RvclByb3h5TWFjLm1t
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1PcGVu
VVJMRXh0ZXJuYWxseSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclByb3h5
OjpwbGF0Zm9ybU9wZW5Jbk5ld1RhYik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0lu
c3BlY3Rvci93aW4vUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlXaW4uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1PcGVuVVJMRXh0ZXJuYWxseSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW5J
bk5ld1RhYik6IERlbGV0ZWQuCisgICAgICAgIFJlbmFtZSBvcGVuSW5OZXdUYWIgdG8gb3BlblVS
TEV4dGVybmFsbHkuIEluIHNvbWUgY2FzZXMgdGhlIGNsaWVudAorICAgICAgICBtYXkgbm90IGNo
b29zZSB0byBwcmVzZW50IGEgbmV3IHRhYiwgc28gdGhlIG5hbWUgaXMgbm8gbG9uZ2VyIGFjY3Vy
YXRlLgorCisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JQcm94eS5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclBy
b3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjppbnNwZWN0b3JXaW5kb3cg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6b3BlblVSTEV4dGVy
bmFsbHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6ZXZhbHVhdGVJbkZy
b250ZW5kRm9yVGVzdGluZyk6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV2Vi
SW5zcGVjdG9yUHJveHlNYWMubW06CisgICAgICAgICgtW1dLV2ViSW5zcGVjdG9yUHJveHlPYmpD
QWRhcHRlciBpbnNwZWN0b3JWaWV3Q29udHJvbGxlcjpvcGVuVVJMRXh0ZXJuYWxseTpdKToKKyAg
ICAgICAgQWRkIHNvbWUgaGVscGVycyBmb3Igd3JpdGluZyBBUEkgdGVzdHMuIEFkZCBhbiBJUEMg
bWVzc2FnZQorICAgICAgICBmb3IgZXZhbHVhdGluZyBhIEphdmFTY3JpcHQgZXhwcmVzc2lvbiBp
biB0aGUgZnJvbnRlbmQgcGFnZS4KKyAgICAgICAgQWxzbywgYWRkIGEgbWVzc2FnZSByZWNlaXZl
ciBmb3IgdGhlIE9wZW5VUkxFeHRlcm5hbGx5IG1lc3NhZ2UKKyAgICAgICAgd2hpY2ggcGFzc2Vz
IHRoZSByZXF1ZXN0IHRvIHRoZSBBUEkgbGF5ZXIuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5z
cGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbToKKyAgICAgICAg
KC1bV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlciB3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb246ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICBDYWxsIHRoZSBkZWxlZ2F0
ZSBtZXRob2QgaWYgYSBuYXZpZ2F0aW9uIGluc2lkZSB0aGUgaW5zcGVjdG9yIFdLV2ViVmlldyBp
cyBhbiBleHRlcm5hbCBVUkwuCisgICAgICAgIFNwZWNpZmljYWxseSB0aGUgcmVxdWVzdCBpcyB0
byBsb2FkIHNvbWV0aGluZyBvdGhlciB0aGFuIHRoZSBXZWIgSW5zcGVjdG9yJ3MgbWFpbiBIVE1M
IHBhZ2UuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3IuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3I6Om9wZW5Jbk5ld1RhYik6IERlbGV0ZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yLm1lc3NhZ2VzLmluOgorICAgICAg
ICBObyBuZWVkIHRvIGhhbmRsZSB0aGlzIG1lc3NhZ2UgYW55bW9yZSBpbiB0aGUgaW5zcGVjdGVk
IFdlYlByb2Nlc3MuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJ
bnNwZWN0b3JVSS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYklu
c3BlY3RvclVJLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9yVUk6Om9w
ZW5VUkxFeHRlcm5hbGx5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9yVUk6
Om9wZW5Jbk5ld1RhYik6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yVUkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0
b3IvV2ViSW5zcGVjdG9yVUkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJ
bnNwZWN0b3JVSS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjp1cGRhdGVD
b25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OmNsb3NlV2luZG93
KToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6Om9wZW5VUkxFeHRlcm5hbGx5KToK
KyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OmV2YWx1YXRlSW5Gcm9udGVuZEZvclRl
c3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6b3BlbkluTmV3VGFiKTog
RGVsZXRlZC4KKyAgICAgICAgV2hlbiB3ZSBuZWVkIHRvIG9wZW4gdGhlIFVSTCBleHRlcm5hbGx5
LCBzZW5kIGFuIElQQyBtZXNzYWdlIHRvIFVJUHJvY2Vzcy4KKyAgICAgICAgVGhlIG9sZCBpbXBs
ZW1lbnRhdGlvbiB0cmlnZ2VyZWQgdGhlIG5hdmlnYXRpb24gZnJvbSB0aGUgaW5zcGVjdGVkIFdl
YlByb2Nlc3MuCisgICAgICAgIFRoYXQgYXBwcm9hY2ggaXMgbm8gbG9uZ2VyIGRlc2lyYWJsZS4g
UmVtb3ZlIHRoZSB1bm5lZWRlZCBJUEMgY29ubmVjdGlvbi4KKworICAgICAgICAqIFdlYlByb2Nl
c3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hl
cjo6ZXZhbHVhdGVFeHByZXNzaW9uRm9yVGVzdGluZyk6CisgICAgICAgIEZ1bGZpbGwgdGhlIHJl
cXVlc3QgdG8gZXZhbHVhdGUgdGhlIGV4cHJlc3Npb24gaW4gdGhlIGZyb250ZW5kIHBhZ2UuCisK
KyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICBTb21lIGZpbGVzIHdlcmUgYWRkZWQuCisKKwogMjAy
MC0wOS0yMSAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KIAogICAg
ICAgICBBbGxvdyBhYm91dDpibGFuayBzdWJmcmFtZSBsb2FkcyBmb3Igbm9uIGFwcC1ib3VuZCB0
b3AgZnJhbWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZENsaWVudC5oCmluZGV4IDE1MDY4Zjk1NWQzMzlkNWYyYmI1ZjI2YzQ4NTA1MjZhMWU2Zjk2
ZDcuLjRmZTg4YjdlOGY4YjhiMDc0ZTE3OGQwNDU4YTEyMGJiYjVjZWY1ZDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oCkBAIC0x
LDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTkwLDgg
KzkxLDcgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGNoYW5n
ZVNoZWV0UmVjdChjb25zdCBGbG9hdFJlY3QmKSA9IDA7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2
aXJ0dWFsIHZvaWQgb3BlbkluTmV3VGFiKGNvbnN0IFN0cmluZyYgdXJsKSA9IDA7Ci0KKyAgICBX
RUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgb3BlblVSTEV4dGVybmFsbHkoY29uc3QgU3RyaW5n
JiB1cmwpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgY2FuU2F2ZSgpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgc2F2ZShjb25zdCBXVEY6OlN0cmluZyYgdXJsLCBjb25zdCBXVEY6OlN0cmluZyYgY29u
dGVudCwgYm9vbCBiYXNlNjRFbmNvZGVkLCBib29sIGZvcmNlU2F2ZUFzKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGFwcGVuZChjb25zdCBXVEY6OlN0cmluZyYgdXJsLCBjb25zdCBXVEY6OlN0cmlu
ZyYgY29udGVudCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwCmluZGV4IGJlMWFmNDNhNzFmMjY0NmMw
MDdkNjMxMTQ1YTY1OTc4M2Y0NGU1NDQuLmNjZTU5MDM1ZWRlNTcwYTY0OWExMjY3NmMzOTMyMmQ0
OGU4NGQ4ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JG
cm9udGVuZENsaWVudExvY2FsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE1LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMjUwLDcgKzI1MCw3IEBAIHZvaWQgSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6Y2hhbmdlU2hlZXRSZWN0KGNvbnN0IEZsb2F0UmVj
dCYgcmVjdCkKICAgICBzZXRTaGVldFJlY3QocmVjdCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbDo6b3BlbkluTmV3VGFiKGNvbnN0IFN0cmluZyYgdXJsKQordm9pZCBJ
bnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpvcGVuVVJMRXh0ZXJuYWxseShjb25zdCBTdHJp
bmcmIHVybCkKIHsKICAgICBVc2VyR2VzdHVyZUluZGljYXRvciBpbmRpY2F0b3IgeyBQcm9jZXNz
aW5nVXNlckdlc3R1cmUgfTsKICAgICBGcmFtZSYgbWFpbkZyYW1lID0gbV9pbnNwZWN0ZWRQYWdl
Q29udHJvbGxlci0+aW5zcGVjdGVkUGFnZSgpLm1haW5GcmFtZSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuaCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmgKaW5k
ZXggMGVjMzIwZDg5Mzc4NDUxOWFjYWE1MGE4MmNlMTZiZTYxOGFiMjg4YS4uNDNhM2VjZGM3Njhk
MGUwZmU3M2FkZmE2NWVlM2FmM2U3NzEzYjg2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oCkBAIC0xLDYgKzEs
NiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTc2LDcgKzc2
LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2hhbmdlQXR0YWNoZWRXaW5k
b3dIZWlnaHQodW5zaWduZWQpIGZpbmFsOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2hhbmdl
QXR0YWNoZWRXaW5kb3dXaWR0aCh1bnNpZ25lZCkgZmluYWw7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBjaGFuZ2VTaGVldFJlY3QoY29uc3QgRmxvYXRSZWN0JikgZmluYWw7Ci0gICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBvcGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJiB1cmwpIGZpbmFsOworICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgb3BlblVSTEV4dGVybmFsbHkoY29uc3QgU3RyaW5nJiB1cmwp
IGZpbmFsOwogICAgIGJvb2wgY2FuU2F2ZSgpICBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQog
ICAgIHZvaWQgc2F2ZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBib29sLCBib29sKSBv
dmVycmlkZSB7IH0KICAgICB2b2lkIGFwcGVuZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcm
KSBvdmVycmlkZSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JGcm9udGVuZEhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckZyb250ZW5kSG9zdC5jcHAKaW5kZXggM2NmNjhiMTBkOWQ4ZTc0N2QxNDg5N2JjOGJjODJhZjli
ZWFhYzJhNy4uODRmNzlkMThmOTI2YTBiNTE3MGE5MWUzODY4ZTEwYTBjYjg4MDcwNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IE1hdHQgTGls
ZWsgPHdlYmtpdEBtYXR0bGlsZWsuY29tPgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtNDE0LDEzICs0
MTQsMTMgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OmtpbGxUZXh0KGNvbnN0IFN0cmlu
ZyYgdGV4dCwgYm9vbCBzaG91bGRQcmVwZW5kVG9LaWwKICAgICBlZGl0b3IuYWRkVGV4dFRvS2ls
bFJpbmcodGV4dCwgaW5zZXJ0aW9uTW9kZSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRnJvbnRlbmRI
b3N0OjpvcGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJiB1cmwpCit2b2lkIEluc3BlY3RvckZyb250
ZW5kSG9zdDo6b3BlblVSTEV4dGVybmFsbHkoY29uc3QgU3RyaW5nJiB1cmwpCiB7CiAgICAgaWYg
KFdURjo6cHJvdG9jb2xJc0phdmFTY3JpcHQodXJsKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
aWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+b3BlbkluTmV3VGFiKHVybCk7CisgICAg
ICAgIG1fY2xpZW50LT5vcGVuVVJMRXh0ZXJuYWxseSh1cmwpOwogfQogCiBib29sIEluc3BlY3Rv
ckZyb250ZW5kSG9zdDo6Y2FuU2F2ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgKaW5kZXggNjc0MjI4NzA3ODZjNjQ0NDNhZTAwNjk0OGFj
YTBiOTM3MWMxY2UzMy4uZTEwYjQ2NmRlNTM5ZDczNDdjOTUwM2JlMTY3NTVkNzE5NmNjMWY4NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9z
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3Qu
aApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTEwMiw3ICsxMDIsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNvcHlUZXh0KGNvbnN0
IFN0cmluZyYgdGV4dCk7CiAgICAgdm9pZCBraWxsVGV4dChjb25zdCBTdHJpbmcmIHRleHQsIGJv
b2wgc2hvdWxkUHJlcGVuZFRvS2lsbFJpbmcsIGJvb2wgc2hvdWxkU3RhcnROZXdTZXF1ZW5jZSk7
Ci0gICAgdm9pZCBvcGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJiB1cmwpOworICAgIHZvaWQgb3Bl
blVSTEV4dGVybmFsbHkoY29uc3QgU3RyaW5nJiB1cmwpOwogICAgIGJvb2wgY2FuU2F2ZSgpOwog
ICAgIHZvaWQgc2F2ZShjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBjb250ZW50LCBi
b29sIGJhc2U2NEVuY29kZWQsIGJvb2wgZm9yY2VTYXZlQXMpOwogICAgIHZvaWQgYXBwZW5kKGNv
bnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIGNvbnRlbnQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbAppbmRleCA0Nzc1ODA0
MjU1OGFkNTk5YzI2MzI4YzdkYjdlMTE4ODMxZGYwZWM4Li4yYjIzZWUyNDMzMzZkMGZiMjBlMTc2
OTU1YjhmYWEyMDNkNGFjMjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDctMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDctMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDggTWF0dCBMaWxlayA8d2Via2l0QG1hdHRsaWxlay5jb20+CiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCkBA
IC03MSw3ICs3MSw3IEBACiAKICAgICB1bmRlZmluZWQgY29weVRleHQoRE9NU3RyaW5nIHRleHQp
OwogICAgIHVuZGVmaW5lZCBraWxsVGV4dChET01TdHJpbmcgdGV4dCwgYm9vbGVhbiBzaG91bGRQ
cmVwZW5kVG9LaWxsUmluZywgYm9vbGVhbiBzaG91bGRTdGFydE5ld1NlcXVlbmNlKTsKLSAgICB1
bmRlZmluZWQgb3BlbkluTmV3VGFiKERPTVN0cmluZyB1cmwpOworICAgIHVuZGVmaW5lZCBvcGVu
VVJMRXh0ZXJuYWxseShET01TdHJpbmcgdXJsKTsKICAgICBib29sZWFuIGNhblNhdmUoKTsKICAg
ICB1bmRlZmluZWQgc2F2ZShET01TdHJpbmcgdXJsLCBET01TdHJpbmcgY29udGVudCwgYm9vbGVh
biBiYXNlNjRFbmNvZGVkLCBib29sZWFuIGZvcmNlU2F2ZUFzKTsKICAgICB1bmRlZmluZWQgYXBw
ZW5kKERPTVN0cmluZyB1cmwsIERPTVN0cmluZyBjb250ZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwppbmRleCAyNDc1MTIxMTNlYzhj
Nzg0NTMzMTlkOGVhYjUwYjVmNDRhNDA3ODdiLi5mNjJmMDc1ZTczOGM4NjZjZGQ0ZGYyZDQ3Y2Iw
Y2VjNzNjZmFlMDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9CYXNlL01haW4uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvQmFzZS9NYWluLmpzCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
My0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMy0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMTA2MCw3ICsxMDYwLDcgQEAgV0kub3BlblVSTCA9IGZ1bmN0
aW9uKHVybCwgZnJhbWUsIG9wdGlvbnMgPSB7fSkKICAgICAgICAgb3B0aW9ucy5hbHdheXNPcGVu
RXh0ZXJuYWxseSA9IHdpbmRvdy5ldmVudCA/IHdpbmRvdy5ldmVudC5tZXRhS2V5IDogZmFsc2U7
CiAKICAgICBpZiAob3B0aW9ucy5hbHdheXNPcGVuRXh0ZXJuYWxseSkgewotICAgICAgICBJbnNw
ZWN0b3JGcm9udGVuZEhvc3Qub3BlbkluTmV3VGFiKHVybCk7CisgICAgICAgIEluc3BlY3RvckZy
b250ZW5kSG9zdC5vcGVuVVJMRXh0ZXJuYWxseSh1cmwpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC0xMDg3LDcgKzEwODcsNyBAQCBXSS5vcGVuVVJMID0gZnVuY3Rpb24odXJsLCBmcmFt
ZSwgb3B0aW9ucyA9IHt9KQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgSW5zcGVjdG9y
RnJvbnRlbmRIb3N0Lm9wZW5Jbk5ld1RhYih1cmwpOworICAgIEluc3BlY3RvckZyb250ZW5kSG9z
dC5vcGVuVVJMRXh0ZXJuYWxseSh1cmwpOwogfTsKIAogV0kuY2xvc2UgPSBmdW5jdGlvbigpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9EZWJ1Zy9VbmNh
dWdodEV4Y2VwdGlvblJlcG9ydGVyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvRGVidWcvVW5jYXVnaHRFeGNlcHRpb25SZXBvcnRlci5qcwppbmRleCAyZGViY2M4N2E1
MzQwMjlhZDg3MzNiM2QyZWEwMDkwMzRlYjY2ZjA1Li4zYTU4YzdhMmE3MmQyNTVlMmRjNTg0YzI3
YzFjYzI1NDY5OTRiYWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9EZWJ1Zy9VbmNhdWdodEV4Y2VwdGlvblJlcG9ydGVyLmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0RlYnVnL1VuY2F1Z2h0RXhjZXB0aW9uUmVwb3J0
ZXIuanMKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjk3LDcgKzI5Nyw3IEBAICR7dG9wTGV2ZWxJdGVtcy5qb2luKCJcbiIpfQogICAgIGRv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2hlZXRFbGVtZW50KTsKIAogICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ1bmNhdWdodC1leGNlcHRpb24tYnVnLXJlcG9ydC1saW5rIikuYWRkRXZl
bnRMaXN0ZW5lcigiY2xpY2siLCAoZXZlbnQpID0+IHsKLSAgICAgICAgSW5zcGVjdG9yRnJvbnRl
bmRIb3N0Lm9wZW5Jbk5ld1RhYihwcmVmaWxsZWRCdWdSZXBvcnRMaW5rKTsKKyAgICAgICAgSW5z
cGVjdG9yRnJvbnRlbmRIb3N0Lm9wZW5VUkxFeHRlcm5hbGx5KHByZWZpbGxlZEJ1Z1JlcG9ydExp
bmspOwogICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTsKICAgICAgICAg
ZXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckZyb250ZW5kQVBJLmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9y
RnJvbnRlbmRBUEkuanMKaW5kZXggYTM0YjEwNzhlZGY4MTc3Njk1NjZkNWQ1NGE3ZjVhMjZmZGU4
YjZkNy4uMWQxZjI4OGJiODM0ZDQ4MmY2NGUzOWVmMGZiZDUzODZkODc0ZGVmMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9y
RnJvbnRlbmRBUEkuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
UHJvdG9jb2wvSW5zcGVjdG9yRnJvbnRlbmRBUEkuanMKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDEzLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VUcmVlRWxlbWVudC5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlVHJlZUVs
ZW1lbnQuanMKaW5kZXggMzUzNWM3YTU3MThlNmE1OTMxZWFlNjg1ZjJkZTAyMDM2MDg0Mjk1Ny4u
ZjI1YjAzZTJkYTViYjA0ZThkMGVlZTYzMzUwMzRjNmQwZDQyMTY2MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VUcmVlRWxlbWVu
dC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNv
dXJjZVRyZWVFbGVtZW50LmpzCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMywgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEyMSw3ICsxMjEsNyBAQCBXSS5SZXNvdXJjZVRyZWVF
bGVtZW50ID0gY2xhc3MgUmVzb3VyY2VUcmVlRWxlbWVudCBleHRlbmRzIFdJLlNvdXJjZUNvZGVU
cmVlRWxlbQogICAgICAgICBpZiAodGhpcy5fcmVzb3VyY2UudHlwZSA9PT0gV0kuUmVzb3VyY2Uu
VHlwZS5XZWJTb2NrZXQpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgSW5zcGVjdG9y
RnJvbnRlbmRIb3N0Lm9wZW5Jbk5ld1RhYih0aGlzLl9yZXNvdXJjZS51cmwpOworICAgICAgICBX
SS5vcGVuVVJMKHRoaXMuX3Jlc291cmNlLnVybCk7CiAgICAgfQogCiAgICAgLy8gUHJvdGVjdGVk
IChVc2VkIGJ5IEZyYW1lVHJlZUVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMjNl
ZDRmMDJjYjgxNzgyYWMxZTNhMWVmYTU0ZjM2NDIwMmE3MGRkNC4uYWYyNGFhOTIwMTJhODQ5OWRk
ZmY2MWJjYzY3ZmNmYWNmMTQ2YTk3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
Q29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtMjU5LDYg
KzI1OSw3IEBAIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5tbQog
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tGcmFtZVRyZWVOb2RlLm1tCiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0dlb2xvY2F0aW9uUG9zaXRpb24ubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5z
cGVjdG9yLm1tCitVSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvclRlc3RpbmcubW0KIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRGVidWdnYWJsZUluZm8ubW0KIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yV2luZG93Lm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL19X
S0ludGVybmFsRGVidWdGZWF0dXJlLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJSW5zcGVjdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJSW5zcGVjdG9yQ2xpZW50LmgKaW5kZXggOTM1NDk3NGU3NDBmYWE3ZmUyNmNmMzE0ZDM1
ZjJiZmVhNmJmM2MwOS4uY2YyMTk0ZDRmZTMwMWViM2RjZWRhMGJjMmM2YWU5NDY0NThjOTlmNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUluc3BlY3RvckNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JDbGllbnQu
aApAQCAtMjUsNiArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CisKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViSW5zcGVjdG9yUHJveHk7CiB9
CkBAIC0zOCw2ICs0MCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBicm93c2VyRG9t
YWluRW5hYmxlZChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5JikgeyB9CiAgICAgdmlydHVhbCB2
b2lkIGJyb3dzZXJEb21haW5EaXNhYmxlZChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5JikgeyB9
CisgICAgdmlydHVhbCB2b2lkIG9wZW5VUkxFeHRlcm5hbGx5KFdlYktpdDo6V2ViSW5zcGVjdG9y
UHJveHkmLCBjb25zdCBXVEY6OlN0cmluZyYgdXJsKSB7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNl
IEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0lu
c3BlY3RvckRlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
SW5zcGVjdG9yRGVsZWdhdGUuaAppbmRleCA3YmM3MTFmZmVlN2RiNmY5MjQ1MWUzYmZlNWJhMDFj
ZThiMDNlODUwLi41NTIwMWM3ODZiODdjNmNmN2MwOWIyNzA4YzczNzEwYzc0OTI4MDFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRGVs
ZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVj
dG9yRGVsZWdhdGUuaApAQCAtNDEsNCArNDEsMTEgQEAKICAqLwogLSAodm9pZClpbnNwZWN0b3JE
aWREaXNhYmxlQnJvd3NlckRvbWFpbjooX1dLSW5zcGVjdG9yICopaW5zcGVjdG9yOwogCisvKiEg
QGFic3RyYWN0IENhbGxlZCB3aGVuIHRoZSBfV0tJbnNwZWN0b3IgcmVxdWVzdHMgdG8gc2hvdyBh
IHJlc291cmNlIGV4dGVybmFsbHkuIFRoaXMKKyAgICBpcyB1c2VkIHRvIGRpc3BsYXkgZG9jdW1l
bnRhdGlvbiBwYWdlcyBhbmQgdG8gc2hvdyBleHRlcm5hbCBVUkxzIHRoYXQgYXJlIGxpbmtpZmll
ZC4KKyAgICBAcGFyYW0gaW5zcGVjdG9yIHRoZSBhc3NvY2lhdGVkIGluc3BlY3RvciBmb3Igd2hp
Y2ggYW4gZXh0ZXJuYWwgbmF2aWdhdGlvbiBzaG91bGQgYmUgdHJpZ2dlcmVkLgorICAgIEBwYXJh
bSB1cmwgVGhlIHJlc291cmNlIHRvIGJlIHNob3duLgorICovCistICh2b2lkKWluc3BlY3Rvcjoo
X1dLSW5zcGVjdG9yICopaW5zcGVjdG9yIG9wZW5VUkxFeHRlcm5hbGx5OihOU1VSTCAqKXVybDsK
KwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S0luc3BlY3RvclByaXZhdGVGb3JUZXN0aW5nLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLSW5zcGVjdG9yUHJpdmF0ZUZvclRlc3RpbmcuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Y2Vl
ODI2NDM3YmMzZmEzYzA3MmYyNDc5ZWM4YWQ2MjE1MTA4Y2FmCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvclByaXZhdGVGb3JU
ZXN0aW5nLmgKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgIl9XS0luc3Bl
Y3Rvci5oIgorCitAaW50ZXJmYWNlIF9XS0luc3BlY3RvciAoV0tUZXN0aW5nKQorLSAodm9pZClf
b3BlblVSTEV4dGVybmFsbHlGb3JUZXN0aW5nOihOU1VSTCAqKXVybCB1c2VGcm9udGVuZEFQSToo
Qk9PTCl1c2VGcm9udGVuZEFQSTsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JUZXN0aW5nLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvclRlc3RpbmcubW0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjFi
ZDUyZjllMzE2YjI5ZGU2NWM4N2I3ZGU2MjEzMTVmMzkwMDRjNQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JUZXN0aW5nLm1t
CkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lt
cG9ydCAiV0tXZWJWaWV3LmgiCisjaW1wb3J0ICJfV0tJbnNwZWN0b3JJbnRlcm5hbC5oIgorI2lt
cG9ydCAiX1dLSW5zcGVjdG9yUHJpdmF0ZUZvclRlc3RpbmcuaCIKKworLy8gVGhpcyBmaWxlIGV4
aXN0cyB0byBjZW50cmFsaXplIGFsbCBmcmFnaWxlIGNvZGUgdGhhdCBpcyB1c2VkIGJ5IF9XS0lu
c3BlY3RvciBBUEkgdGVzdHMuIFRoZSB0ZXN0cworLy8gdHJpZ2dlciBXZWJJbnNwZWN0b3JVSSBi
ZWhhdmlvciBieSBldmFsdWF0aW5nIEphdmFTY3JpcHQgb3IgYnkgY2FsbGluZyBpbnRlcm5hbCBt
ZXRob2RzLgorCitzdGF0aWMgTlNTdHJpbmcgKkphdmFTY3JpcHRTbmlwcGV0VG9PcGVuVVJMRXh0
ZXJuYWxseShOU1VSTCAqdXJsKQoreworICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0aEZv
cm1hdDpAIkluc3BlY3RvckZyb250ZW5kSG9zdC5vcGVuVVJMRXh0ZXJuYWxseShcIiVAXCIpIiwg
dXJsLmFic29sdXRlU3RyaW5nXTsKK30KKworQGltcGxlbWVudGF0aW9uIF9XS0luc3BlY3RvciAo
V0tUZXN0aW5nKQorCistICh2b2lkKV9vcGVuVVJMRXh0ZXJuYWxseUZvclRlc3Rpbmc6KE5TVVJM
ICopdXJsIHVzZUZyb250ZW5kQVBJOihCT09MKXVzZUZyb250ZW5kQVBJCit7CisgICAgaWYgKHVz
ZUZyb250ZW5kQVBJKQorICAgICAgICBfaW5zcGVjdG9yLT5ldmFsdWF0ZUluRnJvbnRlbmRGb3JU
ZXN0aW5nKEphdmFTY3JpcHRTbmlwcGV0VG9PcGVuVVJMRXh0ZXJuYWxseSh1cmwpKTsKKyAgICBl
bHNlIHsKKyAgICAgICAgLy8gRm9yY2UgdGhlIG5hdmlnYXRpb24gcmVxdWVzdCB0byBiZSBoYW5k
bGVkIG5hdHVyYWxseSB0aHJvdWdoIHRoZQorICAgICAgICAvLyBpbnRlcm5hbCBOYXZpZ2F0aW9u
RGVsZWdhdGUgb2YgV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci4KKyAgICAgICAgW3NlbGYuaW5z
cGVjdG9yV2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnVy
bF1dOworICAgIH0KK30KKworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvUGFnZUNsaWVudEltcGxDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1BhZ2VDbGllbnRJbXBsQ29jb2EubW0KaW5kZXggY2FlMzZiNjE3NGJjYThiYjA2NjU2
ZjhhNzcwNGUyNGFlNzBkYzAxZS4uODA2MWJmYmQ0NjJhZjBkNTFkYTg2Y2Y0Zjk1MjVmN2E3YmUz
YTI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGFnZUNsaWVu
dEltcGxDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QYWdlQ2xp
ZW50SW1wbENvY29hLm1tCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBQ
YWdlQ2xpZW50SW1wbENvY29hOjpQYWdlQ2xpZW50SW1wbENvY29hKFdLV2ViVmlldyAqd2ViVmll
dykKICAgICA6IG1fd2ViVmlldyB7IHdlYlZpZXcgfQotICAgICwgbV9hbHRlcm5hdGl2ZVRleHRV
SUNvbnRyb2xsZXIgeyBtYWtlVW5pcXVlPEFsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlcj4oKSB9
CisgICAgLCBtX2FsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlciB7IG1ha2VVbmlxdWU8V2ViQ29y
ZTo6QWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyPigpIH0KIHsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckRlbGVnYXRl
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRGVs
ZWdhdGUuaAppbmRleCBiOTU5OWE2YjU2MTJlNjAxZDIwMzhjZmI1NzlmNWQ5OTNmYTYxNmM3Li5k
NjRiNDdiMjk1YjEyYmU1NzU0ZTJmZTcxZDRmMGM1YmU5MGMzZjNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRGVsZWdhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRGVs
ZWdhdGUuaApAQCAtNTgsNiArNTgsNyBAQCBwcml2YXRlOgogICAgICAgICAvLyBBUEk6Okluc3Bl
Y3RvckNsaWVudAogICAgICAgICB2b2lkIGJyb3dzZXJEb21haW5FbmFibGVkKFdlYkluc3BlY3Rv
clByb3h5Jik7CiAgICAgICAgIHZvaWQgYnJvd3NlckRvbWFpbkRpc2FibGVkKFdlYkluc3BlY3Rv
clByb3h5Jik7CisgICAgICAgIHZvaWQgb3BlblVSTEV4dGVybmFsbHkoV2ViSW5zcGVjdG9yUHJv
eHkmLCBjb25zdCBTdHJpbmcmIHVybCk7CiAKICAgICAgICAgSW5zcGVjdG9yRGVsZWdhdGUmIG1f
aW5zcGVjdG9yRGVsZWdhdGU7CiAgICAgfTsKQEAgLTY4LDYgKzY5LDcgQEAgcHJpdmF0ZToKICAg
ICBzdHJ1Y3QgewogICAgICAgICBib29sIGluc3BlY3RvckRpZEVuYWJsZUJyb3dzZXJEb21haW4g
OiAxOwogICAgICAgICBib29sIGluc3BlY3RvckRpZERpc2FibGVCcm93c2VyRG9tYWluIDogMTsK
KyAgICAgICAgYm9vbCBpbnNwZWN0b3JPcGVuVVJMRXh0ZXJuYWxseSA6IDE7CiAgICAgfSBtX2Rl
bGVnYXRlTWV0aG9kczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JEZWxlZ2F0ZS5tbQppbmRleCA0NjkwODQy
MDc2OGUwYWVhZjQxYzY5MGRlM2E5MDA3ZjMzYTZjZTA1Li41Y2VkYTE4NTk0MGUwNDc1MDczZmNj
ZjM4MTI4NDIwNWMxMGJlYTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9J
bnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckRlbGVnYXRlLm1tCkBAIC01NCw2ICs1
NCw3IEBAIHZvaWQgSW5zcGVjdG9yRGVsZWdhdGU6OnNldERlbGVnYXRlKGlkIDxfV0tJbnNwZWN0
b3JEZWxlZ2F0ZT4gZGVsZWdhdGUpCiAKICAgICBtX2RlbGVnYXRlTWV0aG9kcy5pbnNwZWN0b3JE
aWRFbmFibGVCcm93c2VyRG9tYWluID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3IoaW5zcGVjdG9yRGlkRW5hYmxlQnJvd3NlckRvbWFpbjopXTsKICAgICBtX2RlbGVnYXRl
TWV0aG9kcy5pbnNwZWN0b3JEaWREaXNhYmxlQnJvd3NlckRvbWFpbiA9IFtkZWxlZ2F0ZSByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGluc3BlY3RvckRpZERpc2FibGVCcm93c2VyRG9tYWlu
OildOworICAgIG1fZGVsZWdhdGVNZXRob2RzLmluc3BlY3Rvck9wZW5VUkxFeHRlcm5hbGx5ID0g
W2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoaW5zcGVjdG9yOm9wZW5VUkxF
eHRlcm5hbGx5OildOwogfQogCiBJbnNwZWN0b3JEZWxlZ2F0ZTo6SW5zcGVjdG9yQ2xpZW50OjpJ
bnNwZWN0b3JDbGllbnQoSW5zcGVjdG9yRGVsZWdhdGUmIGRlbGVnYXRlKQpAQCAtODcsNCArODgs
MTYgQEAgdm9pZCBJbnNwZWN0b3JEZWxlZ2F0ZTo6SW5zcGVjdG9yQ2xpZW50Ojpicm93c2VyRG9t
YWluRGlzYWJsZWQoV2ViSW5zcGVjdG9yUHJveHkKICAgICBbZGVsZWdhdGUgaW5zcGVjdG9yRGlk
RGlzYWJsZUJyb3dzZXJEb21haW46bV9pbnNwZWN0b3JEZWxlZ2F0ZS5tX2luc3BlY3Rvci5nZXQo
KS5nZXQoKV07CiB9CiAKK3ZvaWQgSW5zcGVjdG9yRGVsZWdhdGU6Okluc3BlY3RvckNsaWVudDo6
b3BlblVSTEV4dGVybmFsbHkoV2ViSW5zcGVjdG9yUHJveHkmLCBjb25zdCBTdHJpbmcmIHVybCkK
K3sKKyAgICBpZiAoIW1faW5zcGVjdG9yRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMuaW5zcGVj
dG9yT3BlblVSTEV4dGVybmFsbHkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8mIGRlbGVn
YXRlID0gbV9pbnNwZWN0b3JEZWxlZ2F0ZS5tX2RlbGVnYXRlOworICAgIGlmICghZGVsZWdhdGUp
CisgICAgICAgIHJldHVybjsKKworICAgIFtkZWxlZ2F0ZSBpbnNwZWN0b3I6bV9pbnNwZWN0b3JE
ZWxlZ2F0ZS5tX2luc3BlY3Rvci5nZXQoKS5nZXQoKSBvcGVuVVJMRXh0ZXJuYWxseTpbTlNVUkwg
VVJMV2l0aFN0cmluZzp1cmxdXTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9y
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYklu
c3BlY3RvclByb3h5LmNwcAppbmRleCBmZDc3Y2Y1OThiODU0YTg3NmMxMzRiNjI4ZTRlMDE0ZWZi
YmE4MTE4Li5lYzMxMGQ4YTMzODkwNWQyNmE5NDNkZGE2MTk3ZjEwZTI5MmM4OTlmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9y
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVX
ZWJJbnNwZWN0b3JQcm94eS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNi0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMTQ4LDkgKzE0OCw5IEBAIHZvaWQgUmVtb3RlV2ViSW5zcGVj
dG9yUHJveHk6OnN0YXJ0V2luZG93RHJhZygpCiAgICAgcGxhdGZvcm1TdGFydFdpbmRvd0RyYWco
KTsKIH0KIAotdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6b3BlbkluTmV3VGFiKGNvbnN0
IFN0cmluZyYgdXJsKQordm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6b3BlblVSTEV4dGVy
bmFsbHkoY29uc3QgU3RyaW5nJiB1cmwpCiB7Ci0gICAgcGxhdGZvcm1PcGVuSW5OZXdUYWIodXJs
KTsKKyAgICBwbGF0Zm9ybU9wZW5VUkxFeHRlcm5hbGx5KHVybCk7CiB9CiAKIHZvaWQgUmVtb3Rl
V2ViSW5zcGVjdG9yUHJveHk6OnNob3dDZXJ0aWZpY2F0ZShjb25zdCBDZXJ0aWZpY2F0ZUluZm8m
IGNlcnRpZmljYXRlSW5mbykKQEAgLTIwNSw3ICsyMDUsNyBAQCB2b2lkIFJlbW90ZVdlYkluc3Bl
Y3RvclByb3h5OjpwbGF0Zm9ybUFwcGVuZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSB7
IH0KIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0U2hlZXRSZWN0KGNv
bnN0IEZsb2F0UmVjdCYpIHsgfQogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZv
cm1TZXRGb3JjZWRBcHBlYXJhbmNlKEluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpBcHBlYXJhbmNl
KSB7IH0KIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU3RhcnRXaW5kb3dE
cmFnKCkgeyB9Ci12b2lkIFJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW5Jbk5l
d1RhYihjb25zdCBTdHJpbmcmKSB7IH0KK3ZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBs
YXRmb3JtT3BlblVSTEV4dGVybmFsbHkoY29uc3QgU3RyaW5nJikgeyB9CiB2b2lkIFJlbW90ZVdl
Ykluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNob3dDZXJ0aWZpY2F0ZShjb25zdCBDZXJ0aWZpY2F0
ZUluZm8mKSB7IH0KIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQ2xvc2VG
cm9udGVuZFBhZ2VBbmRXaW5kb3coKSB7IH0KICNlbmRpZiAvLyAhRU5BQkxFKFJFTU9URV9JTlNQ
RUNUT1IpIHx8ICghUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0o
V0lOKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9SZW1v
dGVXZWJJbnNwZWN0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9y
L1JlbW90ZVdlYkluc3BlY3RvclByb3h5LmgKaW5kZXggZDRiOTc4NzgyODc0NjkwNTFlYmI3NTYw
NWQxMGJkZjkzN2I3YzUzOC4uZGViYTBmZWU2MjU2NDU2MjVkNzYzOTZiMmIwNjVhMjEyYmY5Mzgw
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdl
Ykluc3BlY3RvclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9y
L1JlbW90ZVdlYkluc3BlY3RvclByb3h5LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNi0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTIzLDcgKzEyMyw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBzZXRTaGVldFJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7CiAgICAgdm9pZCBz
ZXRGb3JjZWRBcHBlYXJhbmNlKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpBcHBl
YXJhbmNlKTsKICAgICB2b2lkIHN0YXJ0V2luZG93RHJhZygpOwotICAgIHZvaWQgb3BlbkluTmV3
VGFiKGNvbnN0IFN0cmluZyYgdXJsKTsKKyAgICB2b2lkIG9wZW5VUkxFeHRlcm5hbGx5KGNvbnN0
IFN0cmluZyYgdXJsKTsKICAgICB2b2lkIHNob3dDZXJ0aWZpY2F0ZShjb25zdCBXZWJDb3JlOjpD
ZXJ0aWZpY2F0ZUluZm8mKTsKICAgICB2b2lkIHNlbmRNZXNzYWdlVG9CYWNrZW5kKGNvbnN0IFN0
cmluZyYgbWVzc2FnZSk7CiAKQEAgLTE0MCw3ICsxNDAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
cGxhdGZvcm1TZXRTaGVldFJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7CiAgICAgdm9p
ZCBwbGF0Zm9ybVNldEZvcmNlZEFwcGVhcmFuY2UoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRD
bGllbnQ6OkFwcGVhcmFuY2UpOwogICAgIHZvaWQgcGxhdGZvcm1TdGFydFdpbmRvd0RyYWcoKTsK
LSAgICB2b2lkIHBsYXRmb3JtT3BlbkluTmV3VGFiKGNvbnN0IFN0cmluZyYgdXJsKTsKKyAgICB2
b2lkIHBsYXRmb3JtT3BlblVSTEV4dGVybmFsbHkoY29uc3QgU3RyaW5nJiB1cmwpOwogICAgIHZv
aWQgcGxhdGZvcm1TaG93Q2VydGlmaWNhdGUoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZv
Jik7CiAKICAgICBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eUNsaWVudCogbV9jbGllbnQgeyBudWxs
cHRyIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvUmVt
b3RlV2ViSW5zcGVjdG9yUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNjRm
MzgxMjAyYzI2MGIwNGYyYjAzYTE4NDc3N2YzZDU0ZGUyYTI5Yi4uM2JlZmZkNTFhZDk0YmYwNTVl
NDk3MmI2Y2NkZjI5Mjc3OTI2NGYyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eS5t
ZXNzYWdlcy5pbgpAQCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE2LTIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0zNSw3ICszNSw3IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZVdlYkluc3BlY3RvclByb3h5IHsKIAog
ICAgIFN0YXJ0V2luZG93RHJhZygpCiAKLSAgICBPcGVuSW5OZXdUYWIoU3RyaW5nIHVybCkKKyAg
ICBPcGVuVVJMRXh0ZXJuYWxseShTdHJpbmcgdXJsKQogICAgIFNob3dDZXJ0aWZpY2F0ZShXZWJD
b3JlOjpDZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNhdGVJbmZvKQogCiAgICAgU2VuZE1lc3NhZ2VU
b0JhY2tlbmQoU3RyaW5nIG1lc3NhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclByb3h5LmNwcAppbmRleCA3YjJjNmEyZTQ0ODQz
MDIwOGM0NThkYjE0ZWM0ZmFhYzJiNWViYjExLi45NTg0ZmVkNDZlNGY4OTIyMGUwODk4OGNiNWZk
Y2I1YWJlMDlkMGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0
b3IvV2ViSW5zcGVjdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0lu
c3BlY3Rvci9XZWJJbnNwZWN0b3JQcm94eS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDEwLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEwLTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDExIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtNjA1LDYgKzYwNSwxMSBA
QCB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpzZXRGb3JjZWRBcHBlYXJhbmNlKEluc3BlY3RvckZy
b250ZW5kQ2xpZW50OjpBcHBlYXJhbmNlCiAgICAgcGxhdGZvcm1TZXRGb3JjZWRBcHBlYXJhbmNl
KGFwcGVhcmFuY2UpOwogfQogCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpvcGVuVVJMRXh0ZXJu
YWxseShjb25zdCBTdHJpbmcmIHVybCkKK3sKKyAgICBtX2luc3BlY3RvckNsaWVudC0+b3BlblVS
TEV4dGVybmFsbHkoKnRoaXMsIHVybCk7Cit9CisKIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6Omlu
c3BlY3RlZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiB7CiAgICAgcGxhdGZv
cm1JbnNwZWN0ZWRVUkxDaGFuZ2VkKHVybFN0cmluZyk7CkBAIC03MTEsNiArNzE2LDE0IEBAIGJv
b2wgV2ViSW5zcGVjdG9yUHJveHk6OnNob3VsZE9wZW5BdHRhY2hlZCgpCiAgICAgcmV0dXJuIGlu
c3BlY3RvclBhZ2VQcmVmZXJlbmNlcygpLmluc3BlY3RvclN0YXJ0c0F0dGFjaGVkKCkgJiYgY2Fu
QXR0YWNoKCk7CiB9CiAKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OmV2YWx1YXRlSW5Gcm9udGVu
ZEZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiBleHByZXNzaW9uKQoreworICAgIGlmICghbV9pbnNw
ZWN0b3JQYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2luc3BlY3RvclBhZ2UtPnNlbmQo
TWVzc2FnZXM6OldlYkluc3BlY3RvclVJOjpFdmFsdWF0ZUluRnJvbnRlbmRGb3JUZXN0aW5nKGV4
cHJlc3Npb24pKTsKK30KKwogLy8gVW5zdXBwb3J0ZWQgY29uZmlndXJhdGlvbnMgY2FuIHVzZSB0
aGUgc3R1YnMgcHJvdmlkZWQgaGVyZS4KIAogI2lmICFQTEFURk9STShNQUMpICYmICFQTEFURk9S
TShHVEspICYmICFQTEFURk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JQcm94eS5oCmluZGV4IDM2Y2M5ZGYxMmNiYjc1ZjFj
NTEyYWUwMGZlMWQ1MDg2YzlhYTA5YTYuLmQ4NGY1MGE5NzVkN2M4NTQ2NTVjMmM2OGI4NjliNzE5
MTIxZmM2YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9X
ZWJJbnNwZWN0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rv
ci9XZWJJbnNwZWN0b3JQcm94eS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMCwgMjAxNCwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTEgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0xMjgsNyArMTI4LDcgQEAg
cHVibGljOgogICAgIHZvaWQgaW5zcGVjdGVkVmlld0ZyYW1lRGlkQ2hhbmdlKENHRmxvYXQgPSAw
KTsKICAgICB2b2lkIHdpbmRvd0ZyYW1lRGlkQ2hhbmdlKCk7CiAgICAgdm9pZCB3aW5kb3dGdWxs
U2NyZWVuRGlkQ2hhbmdlKCk7Ci0gICAgTlNXaW5kb3cqIGluc3BlY3RvcldpbmRvdygpIGNvbnN0
IHsgcmV0dXJuIG1faW5zcGVjdG9yV2luZG93LmdldCgpOyB9CisgICAgTlNXaW5kb3cgKmluc3Bl
Y3RvcldpbmRvdygpIGNvbnN0IHsgcmV0dXJuIG1faW5zcGVjdG9yV2luZG93LmdldCgpOyB9CiAK
ICAgICB2b2lkIGNsb3NlRnJvbnRlbmRQYWdlKCk7CiAgICAgdm9pZCBjbG9zZUZyb250ZW5kQWZ0
ZXJJbmFjdGl2aXR5VGltZXJGaXJlZCgpOwpAQCAtMTQ4LDYgKzE0OCw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNob3dDb25zb2xlKCk7CiAgICAgdm9pZCBzaG93UmVzb3VyY2VzKCk7CiAgICAgdm9p
ZCBzaG93TWFpblJlc291cmNlRm9yRnJhbWUoV2ViRnJhbWVQcm94eSopOworICAgIHZvaWQgb3Bl
blVSTEV4dGVybmFsbHkoY29uc3QgU3RyaW5nJiB1cmwpOwogCiAgICAgQXR0YWNobWVudFNpZGUg
YXR0YWNobWVudFNpZGUoKSBjb25zdCB7IHJldHVybiBtX2F0dGFjaG1lbnRTaWRlOyB9CiAgICAg
Ym9vbCBpc0F0dGFjaGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0F0dGFjaGVkOyB9CkBAIC0xOTEs
NiArMTkyLDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbml0aWFsV2lu
ZG93V2lkdGg7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGluaXRpYWxXaW5kb3dIZWlnaHQ7
CiAKKyAgICAvLyBUZXN0aW5nIG1ldGhvZHMuCisgICAgdm9pZCBldmFsdWF0ZUluRnJvbnRlbmRG
b3JUZXN0aW5nKGNvbnN0IFN0cmluZyYpOworCiBwcml2YXRlOgogICAgIHZvaWQgY3JlYXRlRnJv
bnRlbmRQYWdlKCk7CiAgICAgdm9pZCBjbG9zZUZyb250ZW5kUGFnZUFuZFdpbmRvdygpOwpAQCAt
MjE1LDYgKzIxOSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBwbGF0Zm9ybUlzRnJvbnQoKTsKICAg
ICB2b2lkIHBsYXRmb3JtQXR0YWNoQXZhaWxhYmlsaXR5Q2hhbmdlZChib29sKTsKICAgICB2b2lk
IHBsYXRmb3JtU2V0Rm9yY2VkQXBwZWFyYW5jZShXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENs
aWVudDo6QXBwZWFyYW5jZSk7CisgICAgdm9pZCBwbGF0Zm9ybU9wZW5VUkxFeHRlcm5hbGx5KGNv
bnN0IFN0cmluZyYpOwogICAgIHZvaWQgcGxhdGZvcm1JbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0
IFN0cmluZyYpOwogICAgIHZvaWQgcGxhdGZvcm1TaG93Q2VydGlmaWNhdGUoY29uc3QgV2ViQ29y
ZTo6Q2VydGlmaWNhdGVJbmZvJik7CiAgICAgdW5zaWduZWQgcGxhdGZvcm1JbnNwZWN0ZWRXaW5k
b3dIZWlnaHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rv
ci9XZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0luc3BlY3Rvci9XZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5pbgppbmRleCBiYjMxZGFjNGU0
MmM2ZmMxNGNiZDA1ZGZkZTVlYTBiMWUyZTI5YWFiLi5lN2NiMTFmMjQ5OWU4YjUzYjg3OTEzMWZl
MjVjMTA2YWMzZGJlYzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNw
ZWN0b3IvV2ViSW5zcGVjdG9yUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xLDQg
KzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTAtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDYgKzM0LDcg
QEAgbWVzc2FnZXMgLT4gV2ViSW5zcGVjdG9yUHJveHkgewogICAgIFJlc2V0U3RhdGUoKQogCiAg
ICAgU2V0Rm9yY2VkQXBwZWFyYW5jZShXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6
QXBwZWFyYW5jZSBhcHBlYXJhbmNlKQorICAgIE9wZW5VUkxFeHRlcm5hbGx5KFN0cmluZyB1cmwp
CiAKICAgICBJbnNwZWN0ZWRVUkxDaGFuZ2VkKFN0cmluZyB1cmxTdHJpbmcpCiAgICAgU2hvd0Nl
cnRpZmljYXRlKFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZUluZm8pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1JlbW90ZVdlYklu
c3BlY3RvclByb3h5R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9n
dGsvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwCmluZGV4IDc3OGEzOWM4MTViZTVkYTRh
NjA0NzZlOGQ3OWYwMjQyNzgzMmY0NDMuLjkwYjJmMzAyYmYyNjYyMDgwYmY4MGE5Mjc2YjNlNzRm
Y2IyNDU1OTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9n
dGsvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0luc3BlY3Rvci9ndGsvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwCkBAIC0x
NzIsNyArMTcyLDcgQEAgdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TdGFy
dFdpbmRvd0RyYWcoKQogewogfQogCi12b2lkIFJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpwbGF0
Zm9ybU9wZW5Jbk5ld1RhYihjb25zdCBTdHJpbmcmKQordm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQ
cm94eTo6cGxhdGZvcm1TaG93VVJMRXh0ZXJuYWxseShjb25zdCBTdHJpbmcmKQogewogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1JlbW90ZVdl
Ykluc3BlY3RvclByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9y
L21hYy9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eU1hYy5tbQppbmRleCBlYTM5ZDg5ZjA4OGUyMTU4
ZWJkMjZlYjJkZGQzYWZkYmZlMzA0ZTEzLi4yNDU0YWU5NTk0MTA3N2Q0MjQ4Y2U2YTUzN2I5NGUx
ZjIwZWUwMWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Iv
bWFjL1JlbW90ZVdlYkluc3BlY3RvclByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0luc3BlY3Rvci9tYWMvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNYWMubW0KQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
NjEsNyArMjYxLDcgQEAgdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TdGFy
dFdpbmRvd0RyYWcoKQogICAgIHdlYlZpZXcoKS0+X3BhZ2UtPnN0YXJ0V2luZG93RHJhZygpOwog
fQogCi12b2lkIFJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW5Jbk5ld1RhYihj
b25zdCBTdHJpbmcmIHVybCkKK3ZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3Jt
T3BlblVSTEV4dGVybmFsbHkoY29uc3QgU3RyaW5nJiB1cmwpCiB7CiAgICAgW1tOU1dvcmtzcGFj
ZSBzaGFyZWRXb3Jrc3BhY2VdIG9wZW5VUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6dXJsXV07CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5z
cGVjdG9yVmlld0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rv
ci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5oCmluZGV4IGJhYmQzMzI1MDJhZGU5OWI2
MWRjNDViOTc2OTk2NjA4YjdjOGI4MTAuLjEwNzE5Mjg2NjVlNDllY2M4YTI0NzFkN2YxNDY5YTgw
Y2E2YWQyOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9t
YWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5oCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU2LDYgKzU2LDcg
QEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIC0gKEJPT0wpaW5zcGVjdG9yVmlld0NvbnRyb2xs
ZXJJbnNwZWN0b3JJc1VuZGVyVGVzdDooV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlciAqKWluc3Bl
Y3RvclZpZXdDb250cm9sbGVyOwogLSAodm9pZClpbnNwZWN0b3JWaWV3Q29udHJvbGxlcjooV0tJ
bnNwZWN0b3JWaWV3Q29udHJvbGxlciAqKWluc3BlY3RvclZpZXdDb250cm9sbGVyIHdpbGxNb3Zl
VG9XaW5kb3c6KE5TV2luZG93ICopbmV3V2luZG93OwogLSAodm9pZClpbnNwZWN0b3JWaWV3Q29u
dHJvbGxlckRpZE1vdmVUb1dpbmRvdzooV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlciAqKWluc3Bl
Y3RvclZpZXdDb250cm9sbGVyOworLSAodm9pZClpbnNwZWN0b3JWaWV3Q29udHJvbGxlcjooV0tJ
bnNwZWN0b3JWaWV3Q29udHJvbGxlciAqKWluc3BlY3RvclZpZXdDb250cm9sbGVyIG9wZW5VUkxF
eHRlcm5hbGx5OihOU1VSTCAqKXVybDsKIEBlbmQKIAogTlNfQVNTVU1FX05PTk5VTExfRU5ECmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVj
dG9yVmlld0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Iv
bWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0KaW5kZXggZjQwN2FlMWJmNmI3OWJkZWYy
ZTgyYzQ1OGE5OTY0ZjgwNDdkODBmMi4uMzNiNThmMmFmMzM2Y2ZhZjFhY2U0YWU4MzhlYmQyMWJk
N2RjOGFmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21h
Yy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbQpAQCAtMjI3LDgg
KzIyNywxMyBAQCAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aQogCiAgICAgLy8gUHJldmVudCBldmVy
eXRoaW5nIGVsc2UuCiAgICAgZGVjaXNpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBvbGlj
eUNhbmNlbCk7Ci0gICAgCi0gICAgLy8gQW5kIGluc3RlYWQgbG9hZCBpdCBpbiB0aGUgaW5zcGVj
dGVkIHBhZ2UuCisKKyAgICBpZiAoISFfZGVsZWdhdGUgJiYgW19kZWxlZ2F0ZSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKGluc3BlY3RvclZpZXdDb250cm9sbGVyOm9wZW5VUkxFeHRlcm5h
bGx5OildKSB7CisgICAgICAgIFtfZGVsZWdhdGUgaW5zcGVjdG9yVmlld0NvbnRyb2xsZXI6c2Vs
ZiBvcGVuVVJMRXh0ZXJuYWxseTpuYXZpZ2F0aW9uQWN0aW9uLnJlcXVlc3QuVVJMXTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIFRyeSB0byBsb2FkIHRoZSByZXF1ZXN0IGluIHRo
ZSBpbnNwZWN0ZWQgcGFnZSBpZiB0aGUgZGVsZWdhdGUgY2FuJ3QgaGFuZGxlIGl0LgogICAgIGlm
IChfaW5zcGVjdGVkUGFnZSkKICAgICAgICAgX2luc3BlY3RlZFBhZ2UtPmxvYWRSZXF1ZXN0KG5h
dmlnYXRpb25BY3Rpb24ucmVxdWVzdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQppbmRl
eCBhNTU3YzgzYTRiMjhiZTU0ZTliZjllY2I1OGJkMjUyZDNlOTc1OGQwLi4xOGUzYjc1NGY5ZjBl
MzYzYjM2OGY1NDhlYjhhNDMwZDVjODk5YjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0K
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0xOTMsNiArMTkzLDEyIEBAIC0gKHZvaWQpaW5zcGVjdG9yVmlld0NvbnRyb2xsZXJEaWRN
b3ZlVG9XaW5kb3c6KFdLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgKilpbnNwCiAgICAgICAgIF9p
bnNwZWN0b3JQcm94eS0+YXR0YWNobWVudERpZE1vdmVUb1dpbmRvdyhpbnNwZWN0b3JWaWV3Q29u
dHJvbGxlci53ZWJWaWV3LndpbmRvdyk7CiB9CiAKKy0gKHZvaWQpaW5zcGVjdG9yVmlld0NvbnRy
b2xsZXI6KFdLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgKilpbnNwZWN0b3JWaWV3Q29udHJvbGxl
ciBvcGVuVVJMRXh0ZXJuYWxseTooTlNVUkwgKil1cmwKK3sKKyAgICBpZiAoX2luc3BlY3RvclBy
b3h5KQorICAgICAgICBfaW5zcGVjdG9yUHJveHktPm9wZW5VUkxFeHRlcm5hbGx5KHVybC5hYnNv
bHV0ZVN0cmluZyk7Cit9CisKIEBlbmQKIAogbmFtZXNwYWNlIFdlYktpdCB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Ivd2luL1JlbW90ZVdlYkluc3BlY3Rv
clByb3h5V2luLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci93aW4vUmVt
b3RlV2ViSW5zcGVjdG9yUHJveHlXaW4uY3BwCmluZGV4IDAxZmY4NjlmNjI5NjBhZDNiZGMxMDY5
ODFjNjIyNTI2YzY2MzBiNjQuLjkwNTg5Nzc3NDg5NTY0OGY2ZDY5NmJmNjE5YzM4ZjY5Y2I2NDdk
MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci93aW4vUmVt
b3RlV2ViSW5zcGVjdG9yUHJveHlXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0luc3BlY3Rvci93aW4vUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlXaW4uY3BwCkBAIC0xMzcsNyAr
MTM3LDcgQEAgdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1BcHBlbmQoY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgeyB9CiB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclBy
b3h5OjpwbGF0Zm9ybVNldFNoZWV0UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSB7IH0K
IHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0Rm9yY2VkQXBwZWFyYW5j
ZShXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6QXBwZWFyYW5jZSkgeyB9CiB2b2lk
IFJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVN0YXJ0V2luZG93RHJhZygpIHsgfQot
dm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1PcGVuSW5OZXdUYWIoY29uc3Qg
U3RyaW5nJikgeyB9Cit2b2lkIFJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW5V
UkxFeHRlcm5hbGx5KGNvbnN0IFN0cmluZyYpIHsgfQogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQ
cm94eTo6cGxhdGZvcm1TaG93Q2VydGlmaWNhdGUoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJ
bmZvJikgeyB9CiAKIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQ2xvc2VG
cm9udGVuZFBhZ2VBbmRXaW5kb3coKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggZGNjZDBjOGNkODQ3NWEzNmM1NmYyMmY4ZDk3ZTU5MzYz
YzYxZWMxYS4uY2Q4NDY2NDQzNmNlOTBmODIxMmIwMGYwOTQ3N2ExNDIzNjNkODUxYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDA2
LDYgKzE0MDYsNyBAQAogCQk5OTU1QTZGNzFDNzk4NkU1MDBFQjZBOTMgLyogQXV0b21hdGlvblBy
b3RvY29sT2JqZWN0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTk1NUE2RjMxQzc5ODY2NDAwRUI2QTkzIC8qIEF1dG9tYXRpb25Qcm90b2NvbE9iamVj
dHMuaCAqLzsgfTsKIAkJOTk3ODhBQ0IxRjQyMUREQTAwQzA4MDAwIC8qIF9XS0F1dG9tYXRpb25T
ZXNzaW9uQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTk3ODhBQzkxRjQyMURDQTAwQzA4MDAwIC8qIF9XS0F1dG9tYXRpb25TZXNz
aW9uQ29uZmlndXJhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTk5NzlDQTU4MjM3RjQ5RjEwMDM5RUMwNSAvKiBfV0tJbnNwZWN0b3JQcml2
YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTc5
Q0E1NzIzN0Y0OUYwMDAzOUVDMDUgLyogX1dLSW5zcGVjdG9yUHJpdmF0ZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTk5OTk2QTlGMjUwMDRCQ0Mw
MDRGNzU1OSAvKiBfV0tJbnNwZWN0b3JQcml2YXRlRm9yVGVzdGluZy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk5OTZBOUQyNTAwNEJDQjAwNEY3NTU5
IC8qIF9XS0luc3BlY3RvclByaXZhdGVGb3JUZXN0aW5nLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTlDM0FFMkQxREFEQTZBRDAwQUY1QzE2IC8q
IFdlYkF1dG9tYXRpb25TZXNzaW9uTWFjcm9zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5OUMzQUUyQzFEQURBNkE3MDBBRjVDMTYgLyogV2ViQXV0b21h
dGlvblNlc3Npb25NYWNyb3MuaCAqLzsgfTsKIAkJOTlDODFENUExQzIwRTdFMjAwNUM0QzgyIC8q
IEF1dG9tYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk5QzgxRDU1MUMyMERGQkUwMDVDNEM4MiAvKiBBdXRvbWF0aW9uQ2xpZW50Lmgg
Ki87IH07CiAJCTk5QzgxRDVEMUMyMUYzOEIwMDVDNEM4MiAvKiBBUElBdXRvbWF0aW9uQ2xpZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUM4MUQ1
QjFDMjBFODE3MDA1QzRDODIgLyogQVBJQXV0b21hdGlvbkNsaWVudC5oICovOyB9OwpAQCAtNDQ3
OCw2ICs0NDc5LDggQEAKIAkJOTk3ODhBQzkxRjQyMURDQTAwQzA4MDAwIC8qIF9XS0F1dG9tYXRp
b25TZXNzaW9uQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBfV0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTk3ODhBQ0ExRjQyMURDQTAwQzA4MDAwIC8qIF9XS0F1dG9tYXRpb25TZXNz
aW9uQ29uZmlndXJhdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IF9XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTk3OUNBNTcyMzdGNDlGMDAwMzlFQzA1IC8qIF9XS0luc3BlY3RvclBy
aXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLSW5zcGVjdG9yUHJp
dmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTk5NkE5RDI1MDA0QkNCMDA0
Rjc1NTkgLyogX1dLSW5zcGVjdG9yUHJpdmF0ZUZvclRlc3RpbmcuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gX1dLSW5zcGVjdG9yUHJpdmF0ZUZvclRlc3RpbmcuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk5OTZBOUUyNTAwNEJDQjAwNEY3NTU5IC8qIF9XS0lu
c3BlY3RvclRlc3RpbmcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBfV0tJbnNwZWN0b3JUZXN0aW5nLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
OUMzQUUyMzFEQUQ4RTM0MDBBRjVDMTYgLyogV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJBdXRvbWF0aW9uU2Vzc2lv
bk1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlDM0FFMjYxREFEOTQ4NTAw
QUY1QzE2IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OUMzQUUyQzFEQURBNkE3MDBBRjVDMTYgLyogV2Vi
QXV0b21hdGlvblNlc3Npb25NYWNyb3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViQXV0b21hdGlvblNlc3Npb25NYWNyb3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTcyNTMsNiArNzI1Niw4IEBACiAJCQkJOTE5Nzk0MEIyM0RCQzUwMzAwMjU3ODkyIC8q
IF9XS0luc3BlY3RvckRlbGVnYXRlLmggKi8sCiAJCQkJNUNBRkRFNDQyMTMwODQzNjAwQjFGN0Ux
IC8qIF9XS0luc3BlY3RvckludGVybmFsLmggKi8sCiAJCQkJOTk3OUNBNTcyMzdGNDlGMDAwMzlF
QzA1IC8qIF9XS0luc3BlY3RvclByaXZhdGUuaCAqLywKKwkJCQk5OTk5NkE5RDI1MDA0QkNCMDA0
Rjc1NTkgLyogX1dLSW5zcGVjdG9yUHJpdmF0ZUZvclRlc3RpbmcuaCAqLywKKwkJCQk5OTk5NkE5
RTI1MDA0QkNCMDA0Rjc1NTkgLyogX1dLSW5zcGVjdG9yVGVzdGluZy5tbSAqLywKIAkJCQlBNUMw
RjBBQTIwMDA2NTZFMDA1MzY1MzYgLyogX1dLSW5zcGVjdG9yV2luZG93LmggKi8sCiAJCQkJQTVD
MEYwQTkyMDAwNjU2RTAwNTM2NTM2IC8qIF9XS0luc3BlY3RvcldpbmRvdy5tbSAqLywKIAkJCQkz
MUIzNjI5NDIxNDFFQkFEMDA3QkZBNTMgLyogX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUuaCAqLywK
QEAgLTEwNjE4LDYgKzEwNjIzLDcgQEAKIAkJCQk5MTk3OTQwQzIzREJDNTAzMDAyNTc4OTIgLyog
X1dLSW5zcGVjdG9yRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDQUZERTQ3MjEzMDg0
NkEwMEIxRjdFMSAvKiBfV0tJbnNwZWN0b3JJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTk3OUNBNTgyMzdGNDlGMTAwMzlFQzA1IC8qIF9XS0luc3BlY3RvclByaXZhdGUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTk5OTk2QTlGMjUwMDRCQ0MwMDRGNzU1OSAvKiBfV0tJbnNwZWN0b3JQcml2
YXRlRm9yVGVzdGluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVDMEYwQUIyMDAwNjU4MjAwNTM2
NTM2IC8qIF9XS0luc3BlY3RvcldpbmRvdy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFCMzYyOTUy
MTQxRUJDRDAwN0JGQTUzIC8qIF9XS0ludGVybmFsRGVidWdGZWF0dXJlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkzMUIzNjI5NzIxNDFFQkQ5MDA3QkZBNTMgLyogX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1
cmVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuY3BwCmluZGV4IDRl
NzExZmE3Nzg4YjdmOWVmZjhiNTJhMmUzMzVhNTI2ZTYzM2ZmMTkuLjQ3ZDZmYTMzODNjNGVkYmFm
MzE0ODBkZDQyYmVjNTA2Zjg0YzgzYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuY3BwCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE3OSw5ICsx
NzksOSBAQCB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjpyZXNldFN0YXRlKCkKICAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6UmVzZXRTdGF0ZSgpLCBtX3BhZ2UuaWRlbnRp
ZmllcigpKTsKIH0KIAotdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6b3BlbkluTmV3VGFiKGNv
bnN0IFN0cmluZyYgdXJsKQordm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6b3BlblVSTEV4dGVy
bmFsbHkoY29uc3QgU3RyaW5nJiB1cmwpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UmVtb3RlV2ViSW5zcGVj
dG9yUHJveHk6Ok9wZW5Jbk5ld1RhYih1cmwpLCBtX3BhZ2UuaWRlbnRpZmllcigpKTsKKyAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1l
c3NhZ2VzOjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6T3BlblVSTEV4dGVybmFsbHkodXJsKSwg
bV9wYWdlLmlkZW50aWZpZXIoKSk7CiB9CiAKIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6OnNh
dmUoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgY29uc3QgU3RyaW5nJiBjb250ZW50LCBib29sIGJh
c2U2NEVuY29kZWQsIGJvb2wgZm9yY2VTYXZlQXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmgKaW5kZXggY2E0
YWY3MjU3OGUzNDg2OGQ1YmZmMGE1YjViZWUyZmQyMWYzNDhjYi4uYjQ5OWVjNWM1M2ZhYzYyN2Y1
ZjQ3ZWVmYmM0YTkwMzg2Y2RhMDZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuaApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC04Niw3ICs4Niw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHJlb3BlbigpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVzZXRTdGF0
ZSgpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBvcGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJiB1cmwp
IG92ZXJyaWRlOworICAgIHZvaWQgb3BlblVSTEV4dGVybmFsbHkoY29uc3QgU3RyaW5nJiB1cmwp
IG92ZXJyaWRlOwogICAgIHZvaWQgc2F2ZShjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5n
JiBjb250ZW50LCBib29sIGJhc2U2NEVuY29kZWQsIGJvb2wgZm9yY2VTYXZlQXMpIG92ZXJyaWRl
OwogICAgIHZvaWQgYXBwZW5kKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIGNvbnRl
bnQpIG92ZXJyaWRlOwogICAgIHZvaWQgaW5zcGVjdGVkVVJMQ2hhbmdlZChjb25zdCBTdHJpbmcm
KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0
b3IvV2ViSW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yLmNwcAppbmRleCA5YTMwNjI5MmMzMTBhMDBiNTA1NGZjMjRlOTEyYzdlMWVk
YTFiMmM1Li41YmJjNjM0NDE3MWU1NzE2MmQ1NWQ2OTBlYTRlZDIxZDU3MWE5ZDk0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3Rvci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3IuY3Bw
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxNC0yMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMTU4LDI1ICsxNTgsNiBAQCB2b2lkIFdlYkluc3BlY3Rvcjo6Y2xvc2UoKQog
ICAgIGNsb3NlRnJvbnRlbmRDb25uZWN0aW9uKCk7CiB9CiAKLXZvaWQgV2ViSW5zcGVjdG9yOjpv
cGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCi17Ci0gICAgVXNlckdlc3R1cmVJ
bmRpY2F0b3IgaW5kaWNhdG9yIHsgUHJvY2Vzc2luZ1VzZXJHZXN0dXJlIH07Ci0KLSAgICBQYWdl
KiBpbnNwZWN0ZWRQYWdlID0gbV9wYWdlLT5jb3JlUGFnZSgpOwotICAgIGlmICghaW5zcGVjdGVk
UGFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgRnJhbWUmIGluc3BlY3RlZE1haW5GcmFtZSA9
IGluc3BlY3RlZFBhZ2UtPm1haW5GcmFtZSgpOwotICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVM
b2FkUmVxdWVzdCB7ICppbnNwZWN0ZWRNYWluRnJhbWUuZG9jdW1lbnQoKSwgaW5zcGVjdGVkTWFp
bkZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNlUmVxdWVzdCB7IHVy
bFN0cmluZyB9LCAiX2JsYW5rIl9zLCBJbml0aWF0ZWRCeU1haW5GcmFtZTo6VW5rbm93biB9Owot
Ci0gICAgTmF2aWdhdGlvbkFjdGlvbiBhY3Rpb24geyAqaW5zcGVjdGVkTWFpbkZyYW1lLmRvY3Vt
ZW50KCksIGZyYW1lTG9hZFJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIGZyYW1lTG9hZFJlcXVl
c3QuaW5pdGlhdGVkQnlNYWluRnJhbWUoKSwgTmF2aWdhdGlvblR5cGU6OkxpbmtDbGlja2VkIH07
Ci0gICAgUGFnZSogbmV3UGFnZSA9IGluc3BlY3RlZFBhZ2UtPmNocm9tZSgpLmNyZWF0ZVdpbmRv
dyhpbnNwZWN0ZWRNYWluRnJhbWUsIHsgfSwgYWN0aW9uKTsKLSAgICBpZiAoIW5ld1BhZ2UpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIG5ld1BhZ2UtPm1haW5GcmFtZSgpLmxvYWRlcigpLmxvYWQo
V1RGTW92ZShmcmFtZUxvYWRSZXF1ZXN0KSk7Ci19Ci0KIHZvaWQgV2ViSW5zcGVjdG9yOjpldmFs
dWF0ZVNjcmlwdEZvclRlc3QoY29uc3QgU3RyaW5nJiBzY3JpcHQpCiB7CiAgICAgaWYgKCFtX3Bh
Z2UtPmNvcmVQYWdlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5z
cGVjdG9yL1dlYkluc3BlY3Rvci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rv
ci9XZWJJbnNwZWN0b3IuaAppbmRleCBiNDU0ZWRjZTQ4Y2E1ZjUyM2UwMWQwM2YxZTlhM2M4ZTNj
NjZmMjEzLi4xYmVkYzJlMzg5NTU0ZmNkODI4N2QxZTFiOGZmNjA1MDk3ZjFiMzE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3Rvci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yLmgKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDE0LCAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtNTUsOCArNTUsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzaG93KCk7CiAgICAgdm9p
ZCBjbG9zZSgpOwogCi0gICAgdm9pZCBvcGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJiB1cmxTdHJp
bmcpOwotCiAgICAgdm9pZCBjYW5BdHRhY2hXaW5kb3coYm9vbCYgcmVzdWx0KTsKIAogICAgIHZv
aWQgc2hvd0NvbnNvbGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bnNwZWN0b3IvV2ViSW5zcGVjdG9yLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3IubWVzc2FnZXMuaW4KaW5kZXggZGFmNzRiNWU2YjA0
MzBiNmIwY2EzYmUyNjBmNWZmYWJlY2Q2NTQ4OS4uZDExMjQ4OTBlMDk3OWUwNDdmYjg3N2RmYmNm
MmIwYTRmMWVjZGQ1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3Bl
Y3Rvci9XZWJJbnNwZWN0b3IubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3IubWVzc2FnZXMuaW4KQEAgLTEsNCArMSw0IEBACi0j
IENvcHlyaWdodCAoQykgMjAxMCwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjIENvcHlyaWdodCAoQykgMjAxMC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzEsOCArMzEsNiBAQCBtZXNzYWdl
cyAtPiBXZWJJbnNwZWN0b3IgewogCiAgICAgU2hvd01haW5SZXNvdXJjZUZvckZyYW1lKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlkZW50aWZpZXIpCiAKLSAgICBPcGVuSW5OZXdUYWIo
U3RyaW5nIHVybCkKLQogICAgIFN0YXJ0UGFnZVByb2ZpbGluZygpCiAgICAgU3RvcFBhZ2VQcm9m
aWxpbmcoKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9y
L1dlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5jcHAK
aW5kZXggYzE4OWU5ODI1YWQ0OTQ3MGVkNjI0MzVlODZkNTlkZjYwZjM4YWU4Mi4uOWMzN2IwMDNj
MWNiNzcxZDliM2Y3OWRkYTY1NTJhNDkwN2Q3ZWRkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9y
RnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE0LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMTUsNCArMTE1LDkgQEAgdm9pZCBXZWJJ
bnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmV2YWx1YXRlUXVldWVkRXhwcmVzc2lvbnMo
KQogICAgIG1fcXVldWUuY2xlYXIoKTsKIH0KIAordm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZEFQ
SURpc3BhdGNoZXI6OmV2YWx1YXRlRXhwcmVzc2lvbkZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiBl
eHByZXNzaW9uKQoreworICAgIGV2YWx1YXRlT3JRdWV1ZUV4cHJlc3Npb24oZXhwcmVzc2lvbik7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yRnJvbnRlbmRB
UElEaXNwYXRjaGVyLmgKaW5kZXggZjVjNDI0ZTJkODc0NTRkOWJiOWVlM2YyZWE4MjI0ZjQxZTQx
YTcyNS4uZGI2OTBlNGE0MTYwN2FkZjEwMzRjYjhlNDVhMGZiMGY1ZDY1ZmQ2OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JGcm9udGVu
ZEFQSURpc3BhdGNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9y
L1dlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ3LDYgKzQ3LDcgQEAg
cHVibGljOgogICAgIHZvaWQgZGlzcGF0Y2hDb21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFuZCwg
Ym9vbCBhcmd1bWVudCk7CiAgICAgdm9pZCBkaXNwYXRjaE1lc3NhZ2VBc3luYyhjb25zdCBTdHJp
bmcmIG1lc3NhZ2UpOwogCisgICAgdm9pZCBldmFsdWF0ZUV4cHJlc3Npb25Gb3JUZXN0aW5nKGNv
bnN0IFN0cmluZyYpOwogcHJpdmF0ZToKICAgICB2b2lkIGV2YWx1YXRlT3JRdWV1ZUV4cHJlc3Np
b24oY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBldmFsdWF0ZVF1ZXVlZEV4cHJlc3Npb25zKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3Bl
Y3RvclVJLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVj
dG9yVUkuY3BwCmluZGV4IGU5MzM3Y2QyZDZiYjkwZGI2YTY2Y2VkNjVmMmI2N2NmNTJjOTViMzQu
LjkwNGU0NzdiODRjNmI3NGM3YWMyOWU4MmRmYjIyODE3NWQ3MDUxMmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtODIsMTEgKzgyLDYgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSTo6ZXN0YWJsaXNoQ29ubmVjdGlv
bihXZWJQYWdlUHJveHlJZGVudGlmaWVyIGluc3BlY3RlZFBhZ2VJZGUKIAogdm9pZCBXZWJJbnNw
ZWN0b3JVSTo6dXBkYXRlQ29ubmVjdGlvbigpCiB7Ci0gICAgaWYgKG1fYmFja2VuZENvbm5lY3Rp
b24pIHsKLSAgICAgICAgbV9iYWNrZW5kQ29ubmVjdGlvbi0+aW52YWxpZGF0ZSgpOwotICAgICAg
ICBtX2JhY2tlbmRDb25uZWN0aW9uID0gbnVsbHB0cjsKLSAgICB9Ci0KICNpZiBVU0UoVU5JWF9E
T01BSU5fU09DS0VUUykKICAgICBJUEM6OkNvbm5lY3Rpb246OlNvY2tldFBhaXIgc29ja2V0UGFp
ciA9IElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlUGxhdGZvcm1Db25uZWN0aW9uKCk7CiAgICAgSVBD
OjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKHNvY2tldFBhaXIu
c2VydmVyKTsKQEAgLTExMCwxMSArMTA1LDYgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSTo6dXBkYXRl
Q29ubmVjdGlvbigpCiAgICAgcmV0dXJuOwogI2VuZGlmCiAKLSNpZiBVU0UoVU5JWF9ET01BSU5f
U09DS0VUUykgfHwgT1MoREFSV0lOKSB8fCBQTEFURk9STShXSU4pCi0gICAgbV9iYWNrZW5kQ29u
bmVjdGlvbiA9IElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlU2VydmVyQ29ubmVjdGlvbihjb25uZWN0
aW9uSWRlbnRpZmllciwgKnRoaXMpOwotICAgIG1fYmFja2VuZENvbm5lY3Rpb24tPm9wZW4oKTsK
LSNlbmRpZgotCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yUHJveHk6OlNldEZyb250ZW5kQ29u
bmVjdGlvbihjb25uZWN0aW9uQ2xpZW50UG9ydCksIG1faW5zcGVjdGVkUGFnZUlkZW50aWZpZXIp
OwogfQogCkBAIC0xNjMsMTEgKzE1Myw2IEBAIHZvaWQgV2ViSW5zcGVjdG9yVUk6OmNsb3NlV2lu
ZG93KCkKIHsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JQcm94eTo6RGlkQ2xvc2UoKSwgbV9p
bnNwZWN0ZWRQYWdlSWRlbnRpZmllcik7CiAKLSAgICBpZiAobV9iYWNrZW5kQ29ubmVjdGlvbikg
ewotICAgICAgICBtX2JhY2tlbmRDb25uZWN0aW9uLT5pbnZhbGlkYXRlKCk7Ci0gICAgICAgIG1f
YmFja2VuZENvbm5lY3Rpb24gPSBudWxscHRyOwotICAgIH0KLQogICAgIGlmIChtX2Zyb250ZW5k
Q29udHJvbGxlcikgewogICAgICAgICBtX2Zyb250ZW5kQ29udHJvbGxlci0+c2V0SW5zcGVjdG9y
RnJvbnRlbmRDbGllbnQobnVsbHB0cik7CiAgICAgICAgIG1fZnJvbnRlbmRDb250cm9sbGVyID0g
bnVsbHB0cjsKQEAgLTI5NiwxMiArMjgxLDkgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSTo6Y2hhbmdl
U2hlZXRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0
b3JQcm94eTo6U2V0U2hlZXRSZWN0KHJlY3QpLCBtX2luc3BlY3RlZFBhZ2VJZGVudGlmaWVyKTsK
IH0KIAotdm9pZCBXZWJJbnNwZWN0b3JVSTo6b3BlbkluTmV3VGFiKGNvbnN0IFN0cmluZyYgdXJs
KQordm9pZCBXZWJJbnNwZWN0b3JVSTo6b3BlblVSTEV4dGVybmFsbHkoY29uc3QgU3RyaW5nJiB1
cmwpCiB7Ci0gICAgaWYgKG1fYmFja2VuZENvbm5lY3Rpb24pIHsKLSAgICAgICAgbV9iYWNrZW5k
Q29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yOjpPcGVuSW5OZXdUYWIodXJs
KSwgMCk7Ci0gICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclByb3h5OjpCcmluZ0luc3BlY3Rl
ZFBhZ2VUb0Zyb250KCksIG1faW5zcGVjdGVkUGFnZUlkZW50aWZpZXIpOwotICAgIH0KKyAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1l
c3NhZ2VzOjpXZWJJbnNwZWN0b3JQcm94eTo6T3BlblVSTEV4dGVybmFsbHkodXJsKSwgbV9pbnNw
ZWN0ZWRQYWdlSWRlbnRpZmllcik7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OnNhdmUoY29u
c3QgV1RGOjpTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBXVEY6OlN0cmluZyYgY29udGVudCwgYm9v
bCBiYXNlNjRFbmNvZGVkLCBib29sIGZvcmNlU2F2ZUFzKQpAQCAtMzk1LDYgKzM3NywxMSBAQCB2
b2lkIFdlYkluc3BlY3RvclVJOjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKQogICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoTWVzc2FnZUFzeW5j
KG1lc3NhZ2UpOwogfQogCit2b2lkIFdlYkluc3BlY3RvclVJOjpldmFsdWF0ZUluRnJvbnRlbmRG
b3JUZXN0aW5nKGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbikKK3sKKyAgICBtX2Zyb250ZW5kQVBJ
RGlzcGF0Y2hlci5ldmFsdWF0ZUV4cHJlc3Npb25Gb3JUZXN0aW5nKGV4cHJlc3Npb24pOworfQor
CiB2b2lkIFdlYkluc3BlY3RvclVJOjpwYWdlUGF1c2VkKCkKIHsKICAgICBtX2Zyb250ZW5kQVBJ
RGlzcGF0Y2hlci5zdXNwZW5kKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmgKaW5kZXggNGI2ZWFjYTcyYWJjN2RiM2U1Y2E3ZWM2
YTExMzE4NzE3ZWNlZDBkYi4uMDI2YTcxMmEwODk5ZDA0NTVmMzE4NWFiNzk3NmMxNDAwNWQ4ZWJh
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNw
ZWN0b3JVSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5z
cGVjdG9yVUkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQt
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTg2LDEwICs4NiwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRTYXZl
KGNvbnN0IFN0cmluZyYgdXJsKTsKICAgICB2b2lkIGRpZEFwcGVuZChjb25zdCBTdHJpbmcmIHVy
bCk7CiAKLSAgICB2b2lkIHNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmKTsKKyAg
ICB2b2lkIHNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOworICAg
IHZvaWQgZXZhbHVhdGVJbkZyb250ZW5kRm9yVGVzdGluZyhjb25zdCBTdHJpbmcmIGV4cHJlc3Np
b24pOwogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9URUxFTUVUUlkpCi0gICAgdm9pZCBzZXREaWFn
bm9zdGljTG9nZ2luZ0F2YWlsYWJsZShib29sIGF2YWxpYWJsZSk7CisgICAgdm9pZCBzZXREaWFn
bm9zdGljTG9nZ2luZ0F2YWlsYWJsZShib29sKTsKICNlbmRpZgogCiAgICAgLy8gV2ViQ29yZTo6
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQKQEAgLTEyNSw3ICsxMjYsNyBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIGNoYW5nZVNoZWV0UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBvdmVycmlk
ZTsKIAotICAgIHZvaWQgb3BlbkluTmV3VGFiKGNvbnN0IFN0cmluZyYgdXJsKSBvdmVycmlkZTsK
KyAgICB2b2lkIG9wZW5VUkxFeHRlcm5hbGx5KGNvbnN0IFN0cmluZyYgdXJsKSBvdmVycmlkZTsK
IAogICAgIGJvb2wgY2FuU2F2ZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgc2F2ZShjb25zdCBXVEY6
OlN0cmluZyYgdXJsLCBjb25zdCBXVEY6OlN0cmluZyYgY29udGVudCwgYm9vbCBiYXNlNjRFbmNv
ZGVkLCBib29sIGZvcmNlU2F2ZUFzKSBvdmVycmlkZTsKQEAgLTE1Myw3ICsxNTQsNiBAQCBwcml2
YXRlOgogICAgIFdlYlBhZ2UmIG1fcGFnZTsKICAgICBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURp
c3BhdGNoZXIgbV9mcm9udGVuZEFQSURpc3BhdGNoZXI7CiAgICAgUmVmUHRyPFdlYkNvcmU6Oklu
c3BlY3RvckZyb250ZW5kSG9zdD4gbV9mcm9udGVuZEhvc3Q7Ci0gICAgUmVmUHRyPElQQzo6Q29u
bmVjdGlvbj4gbV9iYWNrZW5kQ29ubmVjdGlvbjsKIAogICAgIC8vIEtlZXAgYSBwb2ludGVyIHRv
IHRoZSBmcm9udGVuZCdzIGluc3BlY3RvciBjb250cm9sbGVyIHJhdGhlciB0aGFuIGdvaW5nIHRo
cm91Z2gKICAgICAvLyBjb3JlUGFnZSgpLCBzaW5jZSB3ZSBtYXkgbmVlZCBpdCBhZnRlciB0aGUg
ZnJvbnRlbmQncyBwYWdlIGhhcyBzdGFydGVkIGRlc3RydWN0aW9uLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkubWVz
c2FnZXMuaW4KaW5kZXggODhhMjBmODEwZjZmZGFlNTI3N2ZjNTU4YzkxZjVmZGNiYTllYTQwNy4u
NDM1OWRkYjkwODk0YjI5MjkzMTQyMTdjYThhNDI0NmIzYTJlZTk4NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJ
Lm1lc3NhZ2VzLmluCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTQsIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTQtMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTUxLDQgKzUxLDUgQEAgbWVzc2FnZXMgLT4gV2ViSW5zcGVjdG9yVUkgewogICAg
IERpZEFwcGVuZChTdHJpbmcgdXJsKQogCiAgICAgU2VuZE1lc3NhZ2VUb0Zyb250ZW5kKFN0cmlu
ZyBtZXNzYWdlKQorICAgIEV2YWx1YXRlSW5Gcm9udGVuZEZvclRlc3RpbmcoU3RyaW5nIGV4cHJl
c3Npb24pCiB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggOThiMzZjYzdhZDc1MWFiYTEzMDk3NzczMjg0NjlhMDY0YjFjMWFlZC4uM2IyNDE1MTIy
OTBhYzMxZDA3MWJhZjRkNGY3NzA5ZDZiMGY1MDdhZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTA5LTIxICBC
cmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gX1dLSW5zcGVj
dG9yRGVsZWdhdGUgc2hvdWxkIGhhbmRsZSBzaG93aW5nIGV4dGVybmFsIHJlc291cmNlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2MzM0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgorCisgICAgICAgIFRlc3QgdGhlIGRlbGVn
YXRlIHVzaW5nIFdlYktpdCBBUEkgYW5kIHVzaW5nIEluc3BlY3RvckZyb250ZW5kSG9zdCBBUEku
CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9y
RGVsZWdhdGUubW06CisgICAgICAgICgtW0luc3BlY3RvckRlbGVnYXRlIGluc3BlY3RvcjpvcGVu
VVJMRXh0ZXJuYWxseTpdKTogQWRkZWQuCisgICAgICAgIChURVNUKToKKwogMjAyMC0wOS0yMSAg
S2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KIAogICAgICAgICBBbGxv
dyBhYm91dDpibGFuayBzdWJmcmFtZSBsb2FkcyBmb3Igbm9uIGFwcC1ib3VuZCB0b3AgZnJhbWVz
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5z
cGVjdG9yRGVsZWdhdGUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1dLSW5zcGVjdG9yRGVsZWdhdGUubW0KaW5kZXggMWUzZDY5NTg1ZmQ1MDQ2NjcxNzNlMzI0MmI3
MzRhZmM0ZGM4NjBjYi4uMTBhNGFjYWExNGNlZmFlN2U5ZmY4NWUyZDJmOWEzMWNmOWE0OGM3NyAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0luc3Bl
Y3RvckRlbGVnYXRlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvV0tJbnNwZWN0b3JEZWxlZ2F0ZS5tbQpAQCAtMzIsNiArMzIsNyBAQAogI2ltcG9ydCA8V2Vi
S2l0L1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLSW5z
cGVjdG9yLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLSW5zcGVjdG9yRGVsZWdhdGUuaD4KKyNpbXBv
cnQgPFdlYktpdC9fV0tJbnNwZWN0b3JQcml2YXRlRm9yVGVzdGluZy5oPgogI2ltcG9ydCA8d3Rm
L1JldGFpblB0ci5oPgogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtNDEsNyArNDIsOSBAQCBAY2xh
c3MgSW5zcGVjdG9yRGVsZWdhdGU7CiBzdGF0aWMgYm9vbCBkaWRBdHRhY2hMb2NhbEluc3BlY3Rv
ckNhbGxlZCA9IGZhbHNlOwogc3RhdGljIGJvb2wgYnJvd3NlckRvbWFpbkVuYWJsZWRGb3JJbnNw
ZWN0b3JDYWxsZWQgPSBmYWxzZTsKIHN0YXRpYyBib29sIGJyb3dzZXJEb21haW5EaXNhYmxlZEZv
ckluc3BlY3RvckNhbGxlZCA9IGZhbHNlOwotc3RhdGljIFJldGFpblB0cjxJbnNwZWN0b3JEZWxl
Z2F0ZT4gc2hhcmVkSW5zcGVjdG9yRGVsZWdhdGU7CitzdGF0aWMgYm9vbCBvcGVuVVJMRXh0ZXJu
YWxseUNhbGxlZCA9IGZhbHNlOworc3RhdGljIFJldGFpblB0cjxpZCA8X1dLSW5zcGVjdG9yRGVs
ZWdhdGU+PiBzaGFyZWRJbnNwZWN0b3JEZWxlZ2F0ZTsKK3N0YXRpYyBSZXRhaW5QdHI8TlNVUkw+
IHVybFRvT3BlbjsKIAogQGludGVyZmFjZSBJbnNwZWN0b3JEZWxlZ2F0ZSA6IE5TT2JqZWN0IDxf
V0tJbnNwZWN0b3JEZWxlZ2F0ZT4KIEBlbmQKQEAgLTYyLDYgKzY1LDEyIEBAIC0gKHZvaWQpaW5z
cGVjdG9yRGlkRGlzYWJsZUJyb3dzZXJEb21haW46KF9XS0luc3BlY3RvciAqKWluc3BlY3Rvcgog
ICAgIGJyb3dzZXJEb21haW5EaXNhYmxlZEZvckluc3BlY3RvckNhbGxlZCA9IHRydWU7CiB9CiAK
Ky0gKHZvaWQpaW5zcGVjdG9yOihfV0tJbnNwZWN0b3IgKilpbnNwZWN0b3Igb3BlblVSTEV4dGVy
bmFsbHk6KE5TVVJMICopdXJsCit7CisgICAgRVhQRUNUX1NUUkVRKHVybC5hYnNvbHV0ZVN0cmlu
Zy5VVEY4U3RyaW5nLCB1cmxUb09wZW4uZ2V0KCkuYWJzb2x1dGVTdHJpbmcuVVRGOFN0cmluZyk7
CisgICAgb3BlblVSTEV4dGVybmFsbHlDYWxsZWQgPSB0cnVlOworfQorCiBAZW5kCiAKIEBpbnRl
cmZhY2UgVUlEZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS1VJRGVsZWdhdGU+CkBAIC04NSw3ICs5NCw3
IEBAIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkQXR0YWNoTG9jYWxJ
bnNwZWN0b3I6KF9XS0luc3BlY3RvciAqKWluCiAKIEBlbmQKIAotVEVTVChXZWJLaXRfV0tJbnNw
ZWN0b3JEZWxlZ2F0ZSwgRGlkTm90aWZ5Rm9yTG9jYWxJbnNwZWN0b3IpCitURVNUKFdLSW5zcGVj
dG9yRGVsZWdhdGUsIERpZE5vdGlmeUZvckxvY2FsSW5zcGVjdG9yKQogewogICAgIGF1dG8gd2Vi
Vmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIG5ld10p
OwogICAgIHdlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpLnByZWZlcmVuY2VzLl9kZXZlbG9wZXJF
eHRyYXNFbmFibGVkID0gWUVTOwpAQCAtMTA0LDQgKzExMywyOCBAQCBURVNUKFdlYktpdF9XS0lu
c3BlY3RvckRlbGVnYXRlLCBEaWROb3RpZnlGb3JMb2NhbEluc3BlY3RvcikKICAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmJyb3dzZXJEb21haW5EaXNhYmxlZEZvckluc3BlY3RvckNhbGxl
ZCk7CiB9CiAKK1RFU1QoV0tJbnNwZWN0b3JEZWxlZ2F0ZSwgU2hvd1VSTEV4dGVybmFsbHkpCit7
CisgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gbmV3XSk7CisgICAgd2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCkucHJlZmVyZW5j
ZXMuX2RldmVsb3BlckV4dHJhc0VuYWJsZWQgPSBZRVM7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgw
MCwgNjAwKSBjb25maWd1cmF0aW9uOndlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAg
YXV0byB1aURlbGVnYXRlID0gYWRvcHROUyhbVUlEZWxlZ2F0ZSBuZXddKTsKKworICAgIFt3ZWJW
aWV3IHNldFVJRGVsZWdhdGU6dWlEZWxlZ2F0ZS5nZXQoKV07CisgICAgW3dlYlZpZXcgbG9hZEhU
TUxTdHJpbmc6QCI8aGVhZD48dGl0bGU+VGVzdCBwYWdlIHRvIGJlIGluc3BlY3RlZDwvdGl0bGU+
PC9oZWFkPjxib2R5PjxwPkZpbGxlciBjb250ZW50PC9wPjwvYm9keT4iIGJhc2VVUkw6W05TVVJM
IFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vZXhhbXBsZS5jb20vIl1dOworCisgICAgW1t3ZWJWaWV3
IF9pbnNwZWN0b3JdIHNob3ddOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkQXR0
YWNoTG9jYWxJbnNwZWN0b3JDYWxsZWQpOworCisgICAgdXJsVG9PcGVuID0gW05TVVJMIFVSTFdp
dGhTdHJpbmc6QCJodHRwczovL3d3dy53ZWJraXQub3JnLyJdOworCisgICAgLy8gQ2hlY2sgdGhl
IGNhc2Ugd2hlcmUgdGhlIGxvYWQgaXMgaW50ZXJjZXB0ZWQgYnkgdGhlIG5hdmlnYXRpb24gZGVs
ZWdhdGUuCisgICAgW1t3ZWJWaWV3IF9pbnNwZWN0b3JdIF9vcGVuVVJMRXh0ZXJuYWxseUZvclRl
c3Rpbmc6dXJsVG9PcGVuLmdldCgpIHVzZUZyb250ZW5kQVBJOk5PXTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJm9wZW5VUkxFeHRlcm5hbGx5Q2FsbGVkKTsKKworICAgIC8vIENoZWNr
IHRoZSBjYXNlIHdoZXJlIHRoZSBmcm9udGVuZCBjYWxscyBJbnNwZWN0b3JGcm9udGVuZEhvc3Qu
b3BlblVSTEV4dGVybmFsbHkoKS4KKyAgICBbW3dlYlZpZXcgX2luc3BlY3Rvcl0gX29wZW5VUkxF
eHRlcm5hbGx5Rm9yVGVzdGluZzp1cmxUb09wZW4uZ2V0KCkgdXNlRnJvbnRlbmRBUEk6WUVTXTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJm9wZW5VUkxFeHRlcm5hbGx5Q2FsbGVkKTsK
K30KKwogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409332</attachid>
            <date>2020-09-21 17:07:46 -0700</date>
            <delta_ts>2020-09-22 09:14:13 -0700</delta_ts>
            <desc>For GTK EWS</desc>
            <filename>bug-216334-20200921170745.patch</filename>
            <type>text/plain</type>
            <size>65979</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3MzQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGZkMTU1NTQ2MDAzOGVk
NTI2NmJkMTQ1MThkZGRjMGQ1OGMxYWJmYS4uM2ZhMGY5YzcyNmYwYTVkMDE2MjRkZTNlNjg5NjNm
MGNjMmYxMDU3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA5LTIxICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gX1dLSW5zcGVjdG9y
RGVsZWdhdGUgc2hvdWxkIGhhbmRsZSBzaG93aW5nIGV4dGVybmFsIHJlc291cmNlcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2MzM0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgorCisgICAgICAgIEFkYXB0IHRvIHRoZSByZW5h
bWUgb2YgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LntvcGVuSW5OZXdUYWIgPT4gb3BlblVSTEV4dGVy
bmFsbHl9LgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50Lmg6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6b3BlblVSTEV4
dGVybmFsbHkpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2Nh
bDo6b3BlbkluTmV3VGFiKTogRGVsZXRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRMb2NhbC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZEhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRIb3N0Ojpv
cGVuVVJMRXh0ZXJuYWxseSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEhv
c3Q6Om9wZW5Jbk5ld1RhYik6IERlbGV0ZWQuCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rv
ckZyb250ZW5kSG9zdC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhv
c3QuaWRsOgorCiAyMDIwLTA5LTIxICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJlbW92ZSBkZWRpY2F0ZWQgSGFzaFNldDxFbGVtZW50Kj4gZm9yIERvY3Vt
ZW50VGltZWxpbmU6OnJ1bm5pbmdBbmltYXRpb25zRm9yRWxlbWVudEFyZUFsbEFjY2VsZXJhdGVk
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGE5MjQ3M2ViZTgxNmU3NGE0MDg3OTA1ZGI4
ZjAzOWE5ODBhMzM3NTkuLmUxN2IwNGMzN2ZiOTAyM2I1ZmY5MmEwZTc0ZWRiOGUzNmE4OThjMzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTA5LTIxICBC
cmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gX1dLSW5zcGVj
dG9yRGVsZWdhdGUgc2hvdWxkIGhhbmRsZSBzaG93aW5nIGV4dGVybmFsIHJlc291cmNlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2MzM0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgorCisgICAgICAgIEFkYXB0IHRvIHRoZSBy
ZW5hbWUgb2YgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LntvcGVuSW5OZXdUYWIgPT4gb3BlblVSTEV4
dGVybmFsbHl9LgorCisgICAgICAgICogVXNlckludGVyZmFjZS9CYXNlL01haW4uanM6CisgICAg
ICAgICogVXNlckludGVyZmFjZS9EZWJ1Zy9VbmNhdWdodEV4Y2VwdGlvblJlcG9ydGVyLmpzOgor
ICAgICAgICAoc2hlZXRFbGVtZW50LmlubmVySFRNTC5kaXYpOgorICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9yRnJvbnRlbmRBUEkuanM6CisgICAgICAgICogVXNlcklu
dGVyZmFjZS9WaWV3cy9SZXNvdXJjZVRyZWVFbGVtZW50LmpzOgorICAgICAgICAoV0kuUmVzb3Vy
Y2VUcmVlRWxlbWVudC5wcm90b3R5cGUub25kYmxjbGljayk6CisKIDIwMjAtMDktMTQgIFBhdHJp
Y2sgQW5nbGUgIDxwYW5nbGVAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFN0
b3AgUmVjb3JkaW5nIGluIFRpbWVsaW5lcyB0YWIgZG9lc24ndCB3b3JrIHJlbGlhYmx5CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDRhZGZjMzM1NmEzMzk3NmU4YmE5Mzk2YmJhOTM0ZThmNGMzODhmM2EuLmRkOGZmOTQ4
MDQ5YWQ5ODQ4YWE2ZDBkYjhmNWMyOGZkY2ZhMjIyYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTEw
IEBACisyMDIwLTA5LTIxICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAg
IFtDb2NvYV0gX1dLSW5zcGVjdG9yRGVsZWdhdGUgc2hvdWxkIGhhbmRsZSBzaG93aW5nIGV4dGVy
bmFsIHJlc291cmNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjE2MzM0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgorCisgICAg
ICAgIFdlYktpdCBjbGllbnRzIG5lZWQgYSB3YXkgdG8gY29udHJvbCB0aGUgbG9hZGluZyBhbmQg
cHJlc2VudGF0aW9uIG9mCisgICAgICAgIGV4dGVybmFsIHJlc291cmNlcyB0aGF0IGFyZSBsaW5r
ZWQgaW4gV2ViIEluc3BlY3RvcidzIHVzZXIgaW50ZXJmYWNlLgorCisgICAgICAgIFJlbmFtZSBJ
bnNwZWN0b3JGcm9udGVuZEhvc3Qub3BlbkluTmV3VGFiIHRvIG9wZW5VUkxFeHRlcm5hbGx5LiBD
aGFuZ2UKKyAgICAgICAgdGhlIGltcGxlbWVudGF0aW9uIHRvIGZvcndhcmQgdGhlIHJlcXVlc3Qg
dG8gVUlQcm9jZXNzIHJhdGhlciB0aGFuIHRoZQorICAgICAgICBpbnNwZWN0ZWQgV2ViUHJvY2Vz
cy4KKworICAgICAgICBXaGVuIGEgbmF2aWdhdGlvbiBpcyB0cmlnZ2VyZWQgaW4gV0tJbnNwZWN0
b3JWaWV3Q29udHJvbGxlcidzIFdLV2ViVmlldywKKyAgICAgICAgYWxsb3cgdGhlIGRlbGVnYXRl
IHRvIG9wZW4gdGhlIHJlcXVlc3RlZCByZXNvdXJjZS4gT3RoZXJ3aXNlLCByZWRpcmVjdAorICAg
ICAgICB0aGUgbmF2aWdhdGlvbiB0byB0aGUgaW5zcGVjdGVkIFdlYlZpZXcgb3Igb3BlbiBpdCB1
c2luZyBOU1dvcmtzcGFjZQorICAgICAgICAoZm9yIHRoZSByZW1vdGUgY2FzZSkuCisKKyAgICAg
ICAgTmV3IEFQSSB0ZXN0OiBXS0luc3BlY3RvckRlbGVnYXRlLk9wZW5VUkxFeHRlcm5hbGx5Lgor
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JQcml2YXRlRm9yVGVz
dGluZy5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rv
clRlc3RpbmcubW06IEFkZGVkLgorICAgICAgICAoc25pcHBldFRvT3BlblVSTEV4dGVybmFsbHkp
OgorICAgICAgICAoLVtfV0tJbnNwZWN0b3IgX29wZW5VUkxFeHRlcm5hbGx5Rm9yVGVzdGluZzp1
c2VGcm9udGVuZEFQSTpdKToKKyAgICAgICAgQWRkIHNvbWUgaGVscGVycyBmb3Igd3JpdGluZyBB
UEkgdGVzdHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSUluc3BlY3RvckNsaWVudC5o
OgorICAgICAgICAoQVBJOjpJbnNwZWN0b3JDbGllbnQ6Om9wZW5VUkxFeHRlcm5hbGx5KToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckRlbGVnYXRlLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0NvY29hL1BhZ2VDbGllbnRJbXBsQ29jb2EubW06CisgICAgICAgICog
VUlQcm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JEZWxlZ2F0ZS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRGVsZWdhdGUubW06CisgICAgICAg
IChXZWJLaXQ6Okluc3BlY3RvckRlbGVnYXRlOjpzZXREZWxlZ2F0ZSk6CisgICAgICAgIChXZWJL
aXQ6Okluc3BlY3RvckRlbGVnYXRlOjpJbnNwZWN0b3JDbGllbnQ6Om9wZW5VUkxFeHRlcm5hbGx5
KToKKyAgICAgICAgQWRkIG5ldyBkZWxlZ2F0ZSBtZXRob2QgdG8gX1dLSW5zcGVjdG9yRGVsZWdh
dGUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclBy
b3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2Vi
SW5zcGVjdG9yUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdl
Ykluc3BlY3RvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9y
UHJveHk6Om9wZW5VUkxFeHRlcm5hbGx5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5z
cGVjdG9yUHJveHk6OnBsYXRmb3JtT3BlblVSTEV4dGVybmFsbHkpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6b3BlbkluTmV3VGFiKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtT3BlbkluTmV3VGFi
KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL2d0ay9SZW1vdGVXZWJJ
bnNwZWN0b3JQcm94eUd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3Rv
clByb3h5OjpwbGF0Zm9ybVVSTEV4dGVybmFsbHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVX
ZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1PcGVuSW5OZXdUYWIpOiBEZWxldGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1JlbW90ZVdlYkluc3BlY3RvclByb3h5TWFjLm1t
OgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1PcGVu
VVJMRXh0ZXJuYWxseSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclByb3h5
OjpwbGF0Zm9ybU9wZW5Jbk5ld1RhYik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0lu
c3BlY3Rvci93aW4vUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlXaW4uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1PcGVuVVJMRXh0ZXJuYWxseSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW5J
bk5ld1RhYik6IERlbGV0ZWQuCisgICAgICAgIFJlbmFtZSBvcGVuSW5OZXdUYWIgdG8gb3BlblVS
TEV4dGVybmFsbHkuIEluIHNvbWUgY2FzZXMgdGhlIGNsaWVudAorICAgICAgICBtYXkgbm90IGNo
b29zZSB0byBwcmVzZW50IGEgbmV3IHRhYiwgc28gdGhlIG5hbWUgaXMgbm8gbG9uZ2VyIGFjY3Vy
YXRlLgorCisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JQcm94eS5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclBy
b3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjppbnNwZWN0b3JXaW5kb3cg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6b3BlblVSTEV4dGVy
bmFsbHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6ZXZhbHVhdGVJbkZy
b250ZW5kRm9yVGVzdGluZyk6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV2Vi
SW5zcGVjdG9yUHJveHlNYWMubW06CisgICAgICAgICgtW1dLV2ViSW5zcGVjdG9yUHJveHlPYmpD
QWRhcHRlciBpbnNwZWN0b3JWaWV3Q29udHJvbGxlcjpvcGVuVVJMRXh0ZXJuYWxseTpdKToKKyAg
ICAgICAgQWRkIHNvbWUgaGVscGVycyBmb3Igd3JpdGluZyBBUEkgdGVzdHMuIEFkZCBhbiBJUEMg
bWVzc2FnZQorICAgICAgICBmb3IgZXZhbHVhdGluZyBhIEphdmFTY3JpcHQgZXhwcmVzc2lvbiBp
biB0aGUgZnJvbnRlbmQgcGFnZS4KKyAgICAgICAgQWxzbywgYWRkIGEgbWVzc2FnZSByZWNlaXZl
ciBmb3IgdGhlIE9wZW5VUkxFeHRlcm5hbGx5IG1lc3NhZ2UKKyAgICAgICAgd2hpY2ggcGFzc2Vz
IHRoZSByZXF1ZXN0IHRvIHRoZSBBUEkgbGF5ZXIuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5z
cGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbToKKyAgICAgICAg
KC1bV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlciB3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb246ZGVjaXNpb25IYW5kbGVyOl0pOgorICAgICAgICBDYWxsIHRoZSBkZWxlZ2F0
ZSBtZXRob2QgaWYgYSBuYXZpZ2F0aW9uIGluc2lkZSB0aGUgaW5zcGVjdG9yIFdLV2ViVmlldyBp
cyBhbiBleHRlcm5hbCBVUkwuCisgICAgICAgIFNwZWNpZmljYWxseSB0aGUgcmVxdWVzdCBpcyB0
byBsb2FkIHNvbWV0aGluZyBvdGhlciB0aGFuIHRoZSBXZWIgSW5zcGVjdG9yJ3MgbWFpbiBIVE1M
IHBhZ2UuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3IuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3I6Om9wZW5Jbk5ld1RhYik6IERlbGV0ZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yLmg6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yLm1lc3NhZ2VzLmluOgorICAgICAg
ICBObyBuZWVkIHRvIGhhbmRsZSB0aGlzIG1lc3NhZ2UgYW55bW9yZSBpbiB0aGUgaW5zcGVjdGVk
IFdlYlByb2Nlc3MuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJ
bnNwZWN0b3JVSS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYklu
c3BlY3RvclVJLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9yVUk6Om9w
ZW5VUkxFeHRlcm5hbGx5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9yVUk6
Om9wZW5Jbk5ld1RhYik6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yVUkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0
b3IvV2ViSW5zcGVjdG9yVUkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJ
bnNwZWN0b3JVSS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjp1cGRhdGVD
b25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OmNsb3NlV2luZG93
KToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6Om9wZW5VUkxFeHRlcm5hbGx5KToK
KyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OmV2YWx1YXRlSW5Gcm9udGVuZEZvclRl
c3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JVSTo6b3BlbkluTmV3VGFiKTog
RGVsZXRlZC4KKyAgICAgICAgV2hlbiB3ZSBuZWVkIHRvIG9wZW4gdGhlIFVSTCBleHRlcm5hbGx5
LCBzZW5kIGFuIElQQyBtZXNzYWdlIHRvIFVJUHJvY2Vzcy4KKyAgICAgICAgVGhlIG9sZCBpbXBs
ZW1lbnRhdGlvbiB0cmlnZ2VyZWQgdGhlIG5hdmlnYXRpb24gZnJvbSB0aGUgaW5zcGVjdGVkIFdl
YlByb2Nlc3MuCisgICAgICAgIFRoYXQgYXBwcm9hY2ggaXMgbm8gbG9uZ2VyIGRlc2lyYWJsZS4g
UmVtb3ZlIHRoZSB1bm5lZWRlZCBJUEMgY29ubmVjdGlvbi4KKworICAgICAgICAqIFdlYlByb2Nl
c3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hl
cjo6ZXZhbHVhdGVFeHByZXNzaW9uRm9yVGVzdGluZyk6CisgICAgICAgIEZ1bGZpbGwgdGhlIHJl
cXVlc3QgdG8gZXZhbHVhdGUgdGhlIGV4cHJlc3Npb24gaW4gdGhlIGZyb250ZW5kIHBhZ2UuCisK
KyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICBTb21lIGZpbGVzIHdlcmUgYWRkZWQuCisKKwogMjAy
MC0wOS0yMSAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KIAogICAg
ICAgICBBbGxvdyBhYm91dDpibGFuayBzdWJmcmFtZSBsb2FkcyBmb3Igbm9uIGFwcC1ib3VuZCB0
b3AgZnJhbWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZENsaWVudC5oCmluZGV4IDE1MDY4Zjk1NWQzMzlkNWYyYmI1ZjI2YzQ4NTA1MjZhMWU2Zjk2
ZDcuLjRmZTg4YjdlOGY4YjhiMDc0ZTE3OGQwNDU4YTEyMGJiYjVjZWY1ZDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oCkBAIC0x
LDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTkwLDgg
KzkxLDcgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGNoYW5n
ZVNoZWV0UmVjdChjb25zdCBGbG9hdFJlY3QmKSA9IDA7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2
aXJ0dWFsIHZvaWQgb3BlbkluTmV3VGFiKGNvbnN0IFN0cmluZyYgdXJsKSA9IDA7Ci0KKyAgICBX
RUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgb3BlblVSTEV4dGVybmFsbHkoY29uc3QgU3RyaW5n
JiB1cmwpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgY2FuU2F2ZSgpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgc2F2ZShjb25zdCBXVEY6OlN0cmluZyYgdXJsLCBjb25zdCBXVEY6OlN0cmluZyYgY29u
dGVudCwgYm9vbCBiYXNlNjRFbmNvZGVkLCBib29sIGZvcmNlU2F2ZUFzKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGFwcGVuZChjb25zdCBXVEY6OlN0cmluZyYgdXJsLCBjb25zdCBXVEY6OlN0cmlu
ZyYgY29udGVudCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwCmluZGV4IGJlMWFmNDNhNzFmMjY0NmMw
MDdkNjMxMTQ1YTY1OTc4M2Y0NGU1NDQuLmNjZTU5MDM1ZWRlNTcwYTY0OWExMjY3NmMzOTMyMmQ0
OGU4NGQ4ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JG
cm9udGVuZENsaWVudExvY2FsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29w
eXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE1LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMjUwLDcgKzI1MCw3IEBAIHZvaWQgSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6Y2hhbmdlU2hlZXRSZWN0KGNvbnN0IEZsb2F0UmVj
dCYgcmVjdCkKICAgICBzZXRTaGVldFJlY3QocmVjdCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbDo6b3BlbkluTmV3VGFiKGNvbnN0IFN0cmluZyYgdXJsKQordm9pZCBJ
bnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpvcGVuVVJMRXh0ZXJuYWxseShjb25zdCBTdHJp
bmcmIHVybCkKIHsKICAgICBVc2VyR2VzdHVyZUluZGljYXRvciBpbmRpY2F0b3IgeyBQcm9jZXNz
aW5nVXNlckdlc3R1cmUgfTsKICAgICBGcmFtZSYgbWFpbkZyYW1lID0gbV9pbnNwZWN0ZWRQYWdl
Q29udHJvbGxlci0+aW5zcGVjdGVkUGFnZSgpLm1haW5GcmFtZSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuaCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmgKaW5k
ZXggMGVjMzIwZDg5Mzc4NDUxOWFjYWE1MGE4MmNlMTZiZTYxOGFiMjg4YS4uNDNhM2VjZGM3Njhk
MGUwZmU3M2FkZmE2NWVlM2FmM2U3NzEzYjg2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oCkBAIC0xLDYgKzEs
NiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTc2LDcgKzc2
LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2hhbmdlQXR0YWNoZWRXaW5k
b3dIZWlnaHQodW5zaWduZWQpIGZpbmFsOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2hhbmdl
QXR0YWNoZWRXaW5kb3dXaWR0aCh1bnNpZ25lZCkgZmluYWw7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBjaGFuZ2VTaGVldFJlY3QoY29uc3QgRmxvYXRSZWN0JikgZmluYWw7Ci0gICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBvcGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJiB1cmwpIGZpbmFsOworICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgb3BlblVSTEV4dGVybmFsbHkoY29uc3QgU3RyaW5nJiB1cmwp
IGZpbmFsOwogICAgIGJvb2wgY2FuU2F2ZSgpICBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQog
ICAgIHZvaWQgc2F2ZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBib29sLCBib29sKSBv
dmVycmlkZSB7IH0KICAgICB2b2lkIGFwcGVuZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcm
KSBvdmVycmlkZSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JGcm9udGVuZEhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckZyb250ZW5kSG9zdC5jcHAKaW5kZXggM2NmNjhiMTBkOWQ4ZTc0N2QxNDg5N2JjOGJjODJhZjli
ZWFhYzJhNy4uODRmNzlkMThmOTI2YTBiNTE3MGE5MWUzODY4ZTEwYTBjYjg4MDcwNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA4IE1hdHQgTGls
ZWsgPHdlYmtpdEBtYXR0bGlsZWsuY29tPgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtNDE0LDEzICs0
MTQsMTMgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OmtpbGxUZXh0KGNvbnN0IFN0cmlu
ZyYgdGV4dCwgYm9vbCBzaG91bGRQcmVwZW5kVG9LaWwKICAgICBlZGl0b3IuYWRkVGV4dFRvS2ls
bFJpbmcodGV4dCwgaW5zZXJ0aW9uTW9kZSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yRnJvbnRlbmRI
b3N0OjpvcGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJiB1cmwpCit2b2lkIEluc3BlY3RvckZyb250
ZW5kSG9zdDo6b3BlblVSTEV4dGVybmFsbHkoY29uc3QgU3RyaW5nJiB1cmwpCiB7CiAgICAgaWYg
KFdURjo6cHJvdG9jb2xJc0phdmFTY3JpcHQodXJsKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
aWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+b3BlbkluTmV3VGFiKHVybCk7CisgICAg
ICAgIG1fY2xpZW50LT5vcGVuVVJMRXh0ZXJuYWxseSh1cmwpOwogfQogCiBib29sIEluc3BlY3Rv
ckZyb250ZW5kSG9zdDo6Y2FuU2F2ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgKaW5kZXggNjc0MjI4NzA3ODZjNjQ0NDNhZTAwNjk0OGFj
YTBiOTM3MWMxY2UzMy4uZTEwYjQ2NmRlNTM5ZDczNDdjOTUwM2JlMTY3NTVkNzE5NmNjMWY4NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9z
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3Qu
aApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTEwMiw3ICsxMDIsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNvcHlUZXh0KGNvbnN0
IFN0cmluZyYgdGV4dCk7CiAgICAgdm9pZCBraWxsVGV4dChjb25zdCBTdHJpbmcmIHRleHQsIGJv
b2wgc2hvdWxkUHJlcGVuZFRvS2lsbFJpbmcsIGJvb2wgc2hvdWxkU3RhcnROZXdTZXF1ZW5jZSk7
Ci0gICAgdm9pZCBvcGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJiB1cmwpOworICAgIHZvaWQgb3Bl
blVSTEV4dGVybmFsbHkoY29uc3QgU3RyaW5nJiB1cmwpOwogICAgIGJvb2wgY2FuU2F2ZSgpOwog
ICAgIHZvaWQgc2F2ZShjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBjb250ZW50LCBi
b29sIGJhc2U2NEVuY29kZWQsIGJvb2wgZm9yY2VTYXZlQXMpOwogICAgIHZvaWQgYXBwZW5kKGNv
bnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIGNvbnRlbnQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbAppbmRleCA0Nzc1ODA0
MjU1OGFkNTk5YzI2MzI4YzdkYjdlMTE4ODMxZGYwZWM4Li4yYjIzZWUyNDMzMzZkMGZiMjBlMTc2
OTU1YjhmYWEyMDNkNGFjMjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDctMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDctMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDggTWF0dCBMaWxlayA8d2Via2l0QG1hdHRsaWxlay5jb20+CiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCkBA
IC03MSw3ICs3MSw3IEBACiAKICAgICB1bmRlZmluZWQgY29weVRleHQoRE9NU3RyaW5nIHRleHQp
OwogICAgIHVuZGVmaW5lZCBraWxsVGV4dChET01TdHJpbmcgdGV4dCwgYm9vbGVhbiBzaG91bGRQ
cmVwZW5kVG9LaWxsUmluZywgYm9vbGVhbiBzaG91bGRTdGFydE5ld1NlcXVlbmNlKTsKLSAgICB1
bmRlZmluZWQgb3BlbkluTmV3VGFiKERPTVN0cmluZyB1cmwpOworICAgIHVuZGVmaW5lZCBvcGVu
VVJMRXh0ZXJuYWxseShET01TdHJpbmcgdXJsKTsKICAgICBib29sZWFuIGNhblNhdmUoKTsKICAg
ICB1bmRlZmluZWQgc2F2ZShET01TdHJpbmcgdXJsLCBET01TdHJpbmcgY29udGVudCwgYm9vbGVh
biBiYXNlNjRFbmNvZGVkLCBib29sZWFuIGZvcmNlU2F2ZUFzKTsKICAgICB1bmRlZmluZWQgYXBw
ZW5kKERPTVN0cmluZyB1cmwsIERPTVN0cmluZyBjb250ZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwppbmRleCAyNDc1MTIxMTNlYzhj
Nzg0NTMzMTlkOGVhYjUwYjVmNDRhNDA3ODdiLi5mNjJmMDc1ZTczOGM4NjZjZGQ0ZGYyZDQ3Y2Iw
Y2VjNzNjZmFlMDdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9CYXNlL01haW4uanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvQmFzZS9NYWluLmpzCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
My0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMy0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMTA2MCw3ICsxMDYwLDcgQEAgV0kub3BlblVSTCA9IGZ1bmN0
aW9uKHVybCwgZnJhbWUsIG9wdGlvbnMgPSB7fSkKICAgICAgICAgb3B0aW9ucy5hbHdheXNPcGVu
RXh0ZXJuYWxseSA9IHdpbmRvdy5ldmVudCA/IHdpbmRvdy5ldmVudC5tZXRhS2V5IDogZmFsc2U7
CiAKICAgICBpZiAob3B0aW9ucy5hbHdheXNPcGVuRXh0ZXJuYWxseSkgewotICAgICAgICBJbnNw
ZWN0b3JGcm9udGVuZEhvc3Qub3BlbkluTmV3VGFiKHVybCk7CisgICAgICAgIEluc3BlY3RvckZy
b250ZW5kSG9zdC5vcGVuVVJMRXh0ZXJuYWxseSh1cmwpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC0xMDg3LDcgKzEwODcsNyBAQCBXSS5vcGVuVVJMID0gZnVuY3Rpb24odXJsLCBmcmFt
ZSwgb3B0aW9ucyA9IHt9KQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgSW5zcGVjdG9y
RnJvbnRlbmRIb3N0Lm9wZW5Jbk5ld1RhYih1cmwpOworICAgIEluc3BlY3RvckZyb250ZW5kSG9z
dC5vcGVuVVJMRXh0ZXJuYWxseSh1cmwpOwogfTsKIAogV0kuY2xvc2UgPSBmdW5jdGlvbigpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9EZWJ1Zy9VbmNh
dWdodEV4Y2VwdGlvblJlcG9ydGVyLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvRGVidWcvVW5jYXVnaHRFeGNlcHRpb25SZXBvcnRlci5qcwppbmRleCAyZGViY2M4N2E1
MzQwMjlhZDg3MzNiM2QyZWEwMDkwMzRlYjY2ZjA1Li4zYTU4YzdhMmE3MmQyNTVlMmRjNTg0YzI3
YzFjYzI1NDY5OTRiYWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9EZWJ1Zy9VbmNhdWdodEV4Y2VwdGlvblJlcG9ydGVyLmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0RlYnVnL1VuY2F1Z2h0RXhjZXB0aW9uUmVwb3J0
ZXIuanMKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDIwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjk3LDcgKzI5Nyw3IEBAICR7dG9wTGV2ZWxJdGVtcy5qb2luKCJcbiIpfQogICAgIGRv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2hlZXRFbGVtZW50KTsKIAogICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ1bmNhdWdodC1leGNlcHRpb24tYnVnLXJlcG9ydC1saW5rIikuYWRkRXZl
bnRMaXN0ZW5lcigiY2xpY2siLCAoZXZlbnQpID0+IHsKLSAgICAgICAgSW5zcGVjdG9yRnJvbnRl
bmRIb3N0Lm9wZW5Jbk5ld1RhYihwcmVmaWxsZWRCdWdSZXBvcnRMaW5rKTsKKyAgICAgICAgSW5z
cGVjdG9yRnJvbnRlbmRIb3N0Lm9wZW5VUkxFeHRlcm5hbGx5KHByZWZpbGxlZEJ1Z1JlcG9ydExp
bmspOwogICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTsKICAgICAgICAg
ZXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckZyb250ZW5kQVBJLmpz
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9y
RnJvbnRlbmRBUEkuanMKaW5kZXggYTM0YjEwNzhlZGY4MTc3Njk1NjZkNWQ1NGE3ZjVhMjZmZGU4
YjZkNy4uMWQxZjI4OGJiODM0ZDQ4MmY2NGUzOWVmMGZiZDUzODZkODc0ZGVmMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9y
RnJvbnRlbmRBUEkuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
UHJvdG9jb2wvSW5zcGVjdG9yRnJvbnRlbmRBUEkuanMKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDEzLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VUcmVlRWxlbWVudC5qcyBi
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1Jlc291cmNlVHJlZUVs
ZW1lbnQuanMKaW5kZXggMzUzNWM3YTU3MThlNmE1OTMxZWFlNjg1ZjJkZTAyMDM2MDg0Mjk1Ny4u
ZjI1YjAzZTJkYTViYjA0ZThkMGVlZTYzMzUwMzRjNmQwZDQyMTY2MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VUcmVlRWxlbWVu
dC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNv
dXJjZVRyZWVFbGVtZW50LmpzCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMywgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTMtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEyMSw3ICsxMjEsNyBAQCBXSS5SZXNvdXJjZVRyZWVF
bGVtZW50ID0gY2xhc3MgUmVzb3VyY2VUcmVlRWxlbWVudCBleHRlbmRzIFdJLlNvdXJjZUNvZGVU
cmVlRWxlbQogICAgICAgICBpZiAodGhpcy5fcmVzb3VyY2UudHlwZSA9PT0gV0kuUmVzb3VyY2Uu
VHlwZS5XZWJTb2NrZXQpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgSW5zcGVjdG9y
RnJvbnRlbmRIb3N0Lm9wZW5Jbk5ld1RhYih0aGlzLl9yZXNvdXJjZS51cmwpOworICAgICAgICBX
SS5vcGVuVVJMKHRoaXMuX3Jlc291cmNlLnVybCk7CiAgICAgfQogCiAgICAgLy8gUHJvdGVjdGVk
IChVc2VkIGJ5IEZyYW1lVHJlZUVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Nv
dXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMjNl
ZDRmMDJjYjgxNzgyYWMxZTNhMWVmYTU0ZjM2NDIwMmE3MGRkNC4uYWYyNGFhOTIwMTJhODQ5OWRk
ZmY2MWJjYzY3ZmNmYWNmMTQ2YTk3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2Vz
Q29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtMjU5LDYg
KzI1OSw3IEBAIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRXhwZXJpbWVudGFsRmVhdHVyZS5tbQog
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tGcmFtZVRyZWVOb2RlLm1tCiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0dlb2xvY2F0aW9uUG9zaXRpb24ubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5z
cGVjdG9yLm1tCitVSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvclRlc3RpbmcubW0KIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRGVidWdnYWJsZUluZm8ubW0KIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yV2luZG93Lm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL19X
S0ludGVybmFsRGVidWdGZWF0dXJlLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJSW5zcGVjdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJSW5zcGVjdG9yQ2xpZW50LmgKaW5kZXggOTM1NDk3NGU3NDBmYWE3ZmUyNmNmMzE0ZDM1
ZjJiZmVhNmJmM2MwOS4uY2YyMTk0ZDRmZTMwMWViM2RjZWRhMGJjMmM2YWU5NDY0NThjOTlmNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUluc3BlY3RvckNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JDbGllbnQu
aApAQCAtMjUsNiArMjUsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CisKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViSW5zcGVjdG9yUHJveHk7CiB9
CkBAIC0zOCw2ICs0MCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBicm93c2VyRG9t
YWluRW5hYmxlZChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5JikgeyB9CiAgICAgdmlydHVhbCB2
b2lkIGJyb3dzZXJEb21haW5EaXNhYmxlZChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5JikgeyB9
CisgICAgdmlydHVhbCB2b2lkIG9wZW5VUkxFeHRlcm5hbGx5KFdlYktpdDo6V2ViSW5zcGVjdG9y
UHJveHkmLCBjb25zdCBXVEY6OlN0cmluZyYgdXJsKSB7IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNl
IEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0lu
c3BlY3RvckRlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
SW5zcGVjdG9yRGVsZWdhdGUuaAppbmRleCA3YmM3MTFmZmVlN2RiNmY5MjQ1MWUzYmZlNWJhMDFj
ZThiMDNlODUwLi41NTIwMWM3ODZiODdjNmNmN2MwOWIyNzA4YzczNzEwYzc0OTI4MDFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRGVs
ZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVj
dG9yRGVsZWdhdGUuaApAQCAtNDEsNCArNDEsMTEgQEAKICAqLwogLSAodm9pZClpbnNwZWN0b3JE
aWREaXNhYmxlQnJvd3NlckRvbWFpbjooX1dLSW5zcGVjdG9yICopaW5zcGVjdG9yOwogCisvKiEg
QGFic3RyYWN0IENhbGxlZCB3aGVuIHRoZSBfV0tJbnNwZWN0b3IgcmVxdWVzdHMgdG8gc2hvdyBh
IHJlc291cmNlIGV4dGVybmFsbHkuIFRoaXMKKyAgICBpcyB1c2VkIHRvIGRpc3BsYXkgZG9jdW1l
bnRhdGlvbiBwYWdlcyBhbmQgdG8gc2hvdyBleHRlcm5hbCBVUkxzIHRoYXQgYXJlIGxpbmtpZmll
ZC4KKyAgICBAcGFyYW0gaW5zcGVjdG9yIHRoZSBhc3NvY2lhdGVkIGluc3BlY3RvciBmb3Igd2hp
Y2ggYW4gZXh0ZXJuYWwgbmF2aWdhdGlvbiBzaG91bGQgYmUgdHJpZ2dlcmVkLgorICAgIEBwYXJh
bSB1cmwgVGhlIHJlc291cmNlIHRvIGJlIHNob3duLgorICovCistICh2b2lkKWluc3BlY3Rvcjoo
X1dLSW5zcGVjdG9yICopaW5zcGVjdG9yIG9wZW5VUkxFeHRlcm5hbGx5OihOU1VSTCAqKXVybDsK
KwogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S0luc3BlY3RvclByaXZhdGVGb3JUZXN0aW5nLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLSW5zcGVjdG9yUHJpdmF0ZUZvclRlc3RpbmcuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Y2Vl
ODI2NDM3YmMzZmEzYzA3MmYyNDc5ZWM4YWQ2MjE1MTA4Y2FmCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvclByaXZhdGVGb3JU
ZXN0aW5nLmgKQEAgLTAsMCArMSwzMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgIl9XS0luc3Bl
Y3Rvci5oIgorCitAaW50ZXJmYWNlIF9XS0luc3BlY3RvciAoV0tUZXN0aW5nKQorLSAodm9pZClf
b3BlblVSTEV4dGVybmFsbHlGb3JUZXN0aW5nOihOU1VSTCAqKXVybCB1c2VGcm9udGVuZEFQSToo
Qk9PTCl1c2VGcm9udGVuZEFQSTsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JUZXN0aW5nLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvclRlc3RpbmcubW0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjFi
ZDUyZjllMzE2YjI5ZGU2NWM4N2I3ZGU2MjEzMTVmMzkwMDRjNQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JUZXN0aW5nLm1t
CkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lt
cG9ydCAiV0tXZWJWaWV3LmgiCisjaW1wb3J0ICJfV0tJbnNwZWN0b3JJbnRlcm5hbC5oIgorI2lt
cG9ydCAiX1dLSW5zcGVjdG9yUHJpdmF0ZUZvclRlc3RpbmcuaCIKKworLy8gVGhpcyBmaWxlIGV4
aXN0cyB0byBjZW50cmFsaXplIGFsbCBmcmFnaWxlIGNvZGUgdGhhdCBpcyB1c2VkIGJ5IF9XS0lu
c3BlY3RvciBBUEkgdGVzdHMuIFRoZSB0ZXN0cworLy8gdHJpZ2dlciBXZWJJbnNwZWN0b3JVSSBi
ZWhhdmlvciBieSBldmFsdWF0aW5nIEphdmFTY3JpcHQgb3IgYnkgY2FsbGluZyBpbnRlcm5hbCBt
ZXRob2RzLgorCitzdGF0aWMgTlNTdHJpbmcgKkphdmFTY3JpcHRTbmlwcGV0VG9PcGVuVVJMRXh0
ZXJuYWxseShOU1VSTCAqdXJsKQoreworICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0aEZv
cm1hdDpAIkluc3BlY3RvckZyb250ZW5kSG9zdC5vcGVuVVJMRXh0ZXJuYWxseShcIiVAXCIpIiwg
dXJsLmFic29sdXRlU3RyaW5nXTsKK30KKworQGltcGxlbWVudGF0aW9uIF9XS0luc3BlY3RvciAo
V0tUZXN0aW5nKQorCistICh2b2lkKV9vcGVuVVJMRXh0ZXJuYWxseUZvclRlc3Rpbmc6KE5TVVJM
ICopdXJsIHVzZUZyb250ZW5kQVBJOihCT09MKXVzZUZyb250ZW5kQVBJCit7CisgICAgaWYgKHVz
ZUZyb250ZW5kQVBJKQorICAgICAgICBfaW5zcGVjdG9yLT5ldmFsdWF0ZUluRnJvbnRlbmRGb3JU
ZXN0aW5nKEphdmFTY3JpcHRTbmlwcGV0VG9PcGVuVVJMRXh0ZXJuYWxseSh1cmwpKTsKKyAgICBl
bHNlIHsKKyAgICAgICAgLy8gRm9yY2UgdGhlIG5hdmlnYXRpb24gcmVxdWVzdCB0byBiZSBoYW5k
bGVkIG5hdHVyYWxseSB0aHJvdWdoIHRoZQorICAgICAgICAvLyBpbnRlcm5hbCBOYXZpZ2F0aW9u
RGVsZWdhdGUgb2YgV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci4KKyAgICAgICAgW3NlbGYuaW5z
cGVjdG9yV2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnVy
bF1dOworICAgIH0KK30KKworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvUGFnZUNsaWVudEltcGxDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1BhZ2VDbGllbnRJbXBsQ29jb2EubW0KaW5kZXggY2FlMzZiNjE3NGJjYThiYjA2NjU2
ZjhhNzcwNGUyNGFlNzBkYzAxZS4uODA2MWJmYmQ0NjJhZjBkNTFkYTg2Y2Y0Zjk1MjVmN2E3YmUz
YTI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvUGFnZUNsaWVu
dEltcGxDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9QYWdlQ2xp
ZW50SW1wbENvY29hLm1tCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBQ
YWdlQ2xpZW50SW1wbENvY29hOjpQYWdlQ2xpZW50SW1wbENvY29hKFdLV2ViVmlldyAqd2ViVmll
dykKICAgICA6IG1fd2ViVmlldyB7IHdlYlZpZXcgfQotICAgICwgbV9hbHRlcm5hdGl2ZVRleHRV
SUNvbnRyb2xsZXIgeyBtYWtlVW5pcXVlPEFsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlcj4oKSB9
CisgICAgLCBtX2FsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlciB7IG1ha2VVbmlxdWU8V2ViQ29y
ZTo6QWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyPigpIH0KIHsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckRlbGVnYXRl
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRGVs
ZWdhdGUuaAppbmRleCBiOTU5OWE2YjU2MTJlNjAxZDIwMzhjZmI1NzlmNWQ5OTNmYTYxNmM3Li5k
NjRiNDdiMjk1YjEyYmU1NzU0ZTJmZTcxZDRmMGM1YmU5MGMzZjNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRGVsZWdhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRGVs
ZWdhdGUuaApAQCAtNTgsNiArNTgsNyBAQCBwcml2YXRlOgogICAgICAgICAvLyBBUEk6Okluc3Bl
Y3RvckNsaWVudAogICAgICAgICB2b2lkIGJyb3dzZXJEb21haW5FbmFibGVkKFdlYkluc3BlY3Rv
clByb3h5Jik7CiAgICAgICAgIHZvaWQgYnJvd3NlckRvbWFpbkRpc2FibGVkKFdlYkluc3BlY3Rv
clByb3h5Jik7CisgICAgICAgIHZvaWQgb3BlblVSTEV4dGVybmFsbHkoV2ViSW5zcGVjdG9yUHJv
eHkmLCBjb25zdCBTdHJpbmcmIHVybCk7CiAKICAgICAgICAgSW5zcGVjdG9yRGVsZWdhdGUmIG1f
aW5zcGVjdG9yRGVsZWdhdGU7CiAgICAgfTsKQEAgLTY4LDYgKzY5LDcgQEAgcHJpdmF0ZToKICAg
ICBzdHJ1Y3QgewogICAgICAgICBib29sIGluc3BlY3RvckRpZEVuYWJsZUJyb3dzZXJEb21haW4g
OiAxOwogICAgICAgICBib29sIGluc3BlY3RvckRpZERpc2FibGVCcm93c2VyRG9tYWluIDogMTsK
KyAgICAgICAgYm9vbCBpbnNwZWN0b3JPcGVuVVJMRXh0ZXJuYWxseSA6IDE7CiAgICAgfSBtX2Rl
bGVnYXRlTWV0aG9kczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0luc3BlY3Rvci9Db2NvYS9JbnNwZWN0b3JEZWxlZ2F0ZS5tbQppbmRleCA0NjkwODQy
MDc2OGUwYWVhZjQxYzY5MGRlM2E5MDA3ZjMzYTZjZTA1Li41Y2VkYTE4NTk0MGUwNDc1MDczZmNj
ZjM4MTI4NDIwNWMxMGJlYTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9J
bnNwZWN0b3IvQ29jb2EvSW5zcGVjdG9yRGVsZWdhdGUubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvSW5zcGVjdG9yL0NvY29hL0luc3BlY3RvckRlbGVnYXRlLm1tCkBAIC01NCw2ICs1
NCw3IEBAIHZvaWQgSW5zcGVjdG9yRGVsZWdhdGU6OnNldERlbGVnYXRlKGlkIDxfV0tJbnNwZWN0
b3JEZWxlZ2F0ZT4gZGVsZWdhdGUpCiAKICAgICBtX2RlbGVnYXRlTWV0aG9kcy5pbnNwZWN0b3JE
aWRFbmFibGVCcm93c2VyRG9tYWluID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3IoaW5zcGVjdG9yRGlkRW5hYmxlQnJvd3NlckRvbWFpbjopXTsKICAgICBtX2RlbGVnYXRl
TWV0aG9kcy5pbnNwZWN0b3JEaWREaXNhYmxlQnJvd3NlckRvbWFpbiA9IFtkZWxlZ2F0ZSByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGluc3BlY3RvckRpZERpc2FibGVCcm93c2VyRG9tYWlu
OildOworICAgIG1fZGVsZWdhdGVNZXRob2RzLmluc3BlY3Rvck9wZW5VUkxFeHRlcm5hbGx5ID0g
W2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoaW5zcGVjdG9yOm9wZW5VUkxF
eHRlcm5hbGx5OildOwogfQogCiBJbnNwZWN0b3JEZWxlZ2F0ZTo6SW5zcGVjdG9yQ2xpZW50OjpJ
bnNwZWN0b3JDbGllbnQoSW5zcGVjdG9yRGVsZWdhdGUmIGRlbGVnYXRlKQpAQCAtODcsNCArODgs
MTYgQEAgdm9pZCBJbnNwZWN0b3JEZWxlZ2F0ZTo6SW5zcGVjdG9yQ2xpZW50Ojpicm93c2VyRG9t
YWluRGlzYWJsZWQoV2ViSW5zcGVjdG9yUHJveHkKICAgICBbZGVsZWdhdGUgaW5zcGVjdG9yRGlk
RGlzYWJsZUJyb3dzZXJEb21haW46bV9pbnNwZWN0b3JEZWxlZ2F0ZS5tX2luc3BlY3Rvci5nZXQo
KS5nZXQoKV07CiB9CiAKK3ZvaWQgSW5zcGVjdG9yRGVsZWdhdGU6Okluc3BlY3RvckNsaWVudDo6
b3BlblVSTEV4dGVybmFsbHkoV2ViSW5zcGVjdG9yUHJveHkmLCBjb25zdCBTdHJpbmcmIHVybCkK
K3sKKyAgICBpZiAoIW1faW5zcGVjdG9yRGVsZWdhdGUubV9kZWxlZ2F0ZU1ldGhvZHMuaW5zcGVj
dG9yT3BlblVSTEV4dGVybmFsbHkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8mIGRlbGVn
YXRlID0gbV9pbnNwZWN0b3JEZWxlZ2F0ZS5tX2RlbGVnYXRlOworICAgIGlmICghZGVsZWdhdGUp
CisgICAgICAgIHJldHVybjsKKworICAgIFtkZWxlZ2F0ZSBpbnNwZWN0b3I6bV9pbnNwZWN0b3JE
ZWxlZ2F0ZS5tX2luc3BlY3Rvci5nZXQoKS5nZXQoKSBvcGVuVVJMRXh0ZXJuYWxseTpbTlNVUkwg
VVJMV2l0aFN0cmluZzp1cmxdXTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9y
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYklu
c3BlY3RvclByb3h5LmNwcAppbmRleCBmZDc3Y2Y1OThiODU0YTg3NmMxMzRiNjI4ZTRlMDE0ZWZi
YmE4MTE4Li5lYzMxMGQ4YTMzODkwNWQyNmE5NDNkZGE2MTk3ZjEwZTI5MmM4OTlmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9y
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVX
ZWJJbnNwZWN0b3JQcm94eS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNi0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMTQ4LDkgKzE0OCw5IEBAIHZvaWQgUmVtb3RlV2ViSW5zcGVj
dG9yUHJveHk6OnN0YXJ0V2luZG93RHJhZygpCiAgICAgcGxhdGZvcm1TdGFydFdpbmRvd0RyYWco
KTsKIH0KIAotdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6b3BlbkluTmV3VGFiKGNvbnN0
IFN0cmluZyYgdXJsKQordm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6b3BlblVSTEV4dGVy
bmFsbHkoY29uc3QgU3RyaW5nJiB1cmwpCiB7Ci0gICAgcGxhdGZvcm1PcGVuSW5OZXdUYWIodXJs
KTsKKyAgICBwbGF0Zm9ybU9wZW5VUkxFeHRlcm5hbGx5KHVybCk7CiB9CiAKIHZvaWQgUmVtb3Rl
V2ViSW5zcGVjdG9yUHJveHk6OnNob3dDZXJ0aWZpY2F0ZShjb25zdCBDZXJ0aWZpY2F0ZUluZm8m
IGNlcnRpZmljYXRlSW5mbykKQEAgLTIwNSw3ICsyMDUsNyBAQCB2b2lkIFJlbW90ZVdlYkluc3Bl
Y3RvclByb3h5OjpwbGF0Zm9ybUFwcGVuZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSB7
IH0KIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0U2hlZXRSZWN0KGNv
bnN0IEZsb2F0UmVjdCYpIHsgfQogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZv
cm1TZXRGb3JjZWRBcHBlYXJhbmNlKEluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpBcHBlYXJhbmNl
KSB7IH0KIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU3RhcnRXaW5kb3dE
cmFnKCkgeyB9Ci12b2lkIFJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW5Jbk5l
d1RhYihjb25zdCBTdHJpbmcmKSB7IH0KK3ZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBs
YXRmb3JtT3BlblVSTEV4dGVybmFsbHkoY29uc3QgU3RyaW5nJikgeyB9CiB2b2lkIFJlbW90ZVdl
Ykluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNob3dDZXJ0aWZpY2F0ZShjb25zdCBDZXJ0aWZpY2F0
ZUluZm8mKSB7IH0KIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQ2xvc2VG
cm9udGVuZFBhZ2VBbmRXaW5kb3coKSB7IH0KICNlbmRpZiAvLyAhRU5BQkxFKFJFTU9URV9JTlNQ
RUNUT1IpIHx8ICghUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0o
V0lOKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9SZW1v
dGVXZWJJbnNwZWN0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9y
L1JlbW90ZVdlYkluc3BlY3RvclByb3h5LmgKaW5kZXggZDRiOTc4NzgyODc0NjkwNTFlYmI3NTYw
NWQxMGJkZjkzN2I3YzUzOC4uZGViYTBmZWU2MjU2NDU2MjVkNzYzOTZiMmIwNjVhMjEyYmY5Mzgw
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdl
Ykluc3BlY3RvclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9y
L1JlbW90ZVdlYkluc3BlY3RvclByb3h5LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNi0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTIzLDcgKzEyMyw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBzZXRTaGVldFJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7CiAgICAgdm9pZCBz
ZXRGb3JjZWRBcHBlYXJhbmNlKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpBcHBl
YXJhbmNlKTsKICAgICB2b2lkIHN0YXJ0V2luZG93RHJhZygpOwotICAgIHZvaWQgb3BlbkluTmV3
VGFiKGNvbnN0IFN0cmluZyYgdXJsKTsKKyAgICB2b2lkIG9wZW5VUkxFeHRlcm5hbGx5KGNvbnN0
IFN0cmluZyYgdXJsKTsKICAgICB2b2lkIHNob3dDZXJ0aWZpY2F0ZShjb25zdCBXZWJDb3JlOjpD
ZXJ0aWZpY2F0ZUluZm8mKTsKICAgICB2b2lkIHNlbmRNZXNzYWdlVG9CYWNrZW5kKGNvbnN0IFN0
cmluZyYgbWVzc2FnZSk7CiAKQEAgLTE0MCw3ICsxNDAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
cGxhdGZvcm1TZXRTaGVldFJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7CiAgICAgdm9p
ZCBwbGF0Zm9ybVNldEZvcmNlZEFwcGVhcmFuY2UoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRD
bGllbnQ6OkFwcGVhcmFuY2UpOwogICAgIHZvaWQgcGxhdGZvcm1TdGFydFdpbmRvd0RyYWcoKTsK
LSAgICB2b2lkIHBsYXRmb3JtT3BlbkluTmV3VGFiKGNvbnN0IFN0cmluZyYgdXJsKTsKKyAgICB2
b2lkIHBsYXRmb3JtT3BlblVSTEV4dGVybmFsbHkoY29uc3QgU3RyaW5nJiB1cmwpOwogICAgIHZv
aWQgcGxhdGZvcm1TaG93Q2VydGlmaWNhdGUoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZv
Jik7CiAKICAgICBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eUNsaWVudCogbV9jbGllbnQgeyBudWxs
cHRyIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvUmVt
b3RlV2ViSW5zcGVjdG9yUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNjRm
MzgxMjAyYzI2MGIwNGYyYjAzYTE4NDc3N2YzZDU0ZGUyYTI5Yi4uM2JlZmZkNTFhZDk0YmYwNTVl
NDk3MmI2Y2NkZjI5Mjc3OTI2NGYyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eS5t
ZXNzYWdlcy5pbgpAQCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE2LTIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0zNSw3ICszNSw3IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZVdlYkluc3BlY3RvclByb3h5IHsKIAog
ICAgIFN0YXJ0V2luZG93RHJhZygpCiAKLSAgICBPcGVuSW5OZXdUYWIoU3RyaW5nIHVybCkKKyAg
ICBPcGVuVVJMRXh0ZXJuYWxseShTdHJpbmcgdXJsKQogICAgIFNob3dDZXJ0aWZpY2F0ZShXZWJD
b3JlOjpDZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNhdGVJbmZvKQogCiAgICAgU2VuZE1lc3NhZ2VU
b0JhY2tlbmQoU3RyaW5nIG1lc3NhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclByb3h5LmNwcAppbmRleCA3YjJjNmEyZTQ0ODQz
MDIwOGM0NThkYjE0ZWM0ZmFhYzJiNWViYjExLi45NTg0ZmVkNDZlNGY4OTIyMGUwODk4OGNiNWZk
Y2I1YWJlMDlkMGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0
b3IvV2ViSW5zcGVjdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0lu
c3BlY3Rvci9XZWJJbnNwZWN0b3JQcm94eS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDEwLTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDEwLTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDExIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtNjA1LDYgKzYwNSwxMSBA
QCB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpzZXRGb3JjZWRBcHBlYXJhbmNlKEluc3BlY3RvckZy
b250ZW5kQ2xpZW50OjpBcHBlYXJhbmNlCiAgICAgcGxhdGZvcm1TZXRGb3JjZWRBcHBlYXJhbmNl
KGFwcGVhcmFuY2UpOwogfQogCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpvcGVuVVJMRXh0ZXJu
YWxseShjb25zdCBTdHJpbmcmIHVybCkKK3sKKyAgICBtX2luc3BlY3RvckNsaWVudC0+b3BlblVS
TEV4dGVybmFsbHkoKnRoaXMsIHVybCk7Cit9CisKIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6Omlu
c3BlY3RlZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiB7CiAgICAgcGxhdGZv
cm1JbnNwZWN0ZWRVUkxDaGFuZ2VkKHVybFN0cmluZyk7CkBAIC03MTEsNiArNzE2LDE0IEBAIGJv
b2wgV2ViSW5zcGVjdG9yUHJveHk6OnNob3VsZE9wZW5BdHRhY2hlZCgpCiAgICAgcmV0dXJuIGlu
c3BlY3RvclBhZ2VQcmVmZXJlbmNlcygpLmluc3BlY3RvclN0YXJ0c0F0dGFjaGVkKCkgJiYgY2Fu
QXR0YWNoKCk7CiB9CiAKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OmV2YWx1YXRlSW5Gcm9udGVu
ZEZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiBleHByZXNzaW9uKQoreworICAgIGlmICghbV9pbnNw
ZWN0b3JQYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2luc3BlY3RvclBhZ2UtPnNlbmQo
TWVzc2FnZXM6OldlYkluc3BlY3RvclVJOjpFdmFsdWF0ZUluRnJvbnRlbmRGb3JUZXN0aW5nKGV4
cHJlc3Npb24pKTsKK30KKwogLy8gVW5zdXBwb3J0ZWQgY29uZmlndXJhdGlvbnMgY2FuIHVzZSB0
aGUgc3R1YnMgcHJvdmlkZWQgaGVyZS4KIAogI2lmICFQTEFURk9STShNQUMpICYmICFQTEFURk9S
TShHVEspICYmICFQTEFURk9STShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JQcm94eS5oCmluZGV4IDM2Y2M5ZGYxMmNiYjc1ZjFj
NTEyYWUwMGZlMWQ1MDg2YzlhYTA5YTYuLmQ4NGY1MGE5NzVkN2M4NTQ2NTVjMmM2OGI4NjliNzE5
MTIxZmM2YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9X
ZWJJbnNwZWN0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rv
ci9XZWJJbnNwZWN0b3JQcm94eS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMCwgMjAxNCwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTAtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTEgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0xMjgsNyArMTI4LDcgQEAg
cHVibGljOgogICAgIHZvaWQgaW5zcGVjdGVkVmlld0ZyYW1lRGlkQ2hhbmdlKENHRmxvYXQgPSAw
KTsKICAgICB2b2lkIHdpbmRvd0ZyYW1lRGlkQ2hhbmdlKCk7CiAgICAgdm9pZCB3aW5kb3dGdWxs
U2NyZWVuRGlkQ2hhbmdlKCk7Ci0gICAgTlNXaW5kb3cqIGluc3BlY3RvcldpbmRvdygpIGNvbnN0
IHsgcmV0dXJuIG1faW5zcGVjdG9yV2luZG93LmdldCgpOyB9CisgICAgTlNXaW5kb3cgKmluc3Bl
Y3RvcldpbmRvdygpIGNvbnN0IHsgcmV0dXJuIG1faW5zcGVjdG9yV2luZG93LmdldCgpOyB9CiAK
ICAgICB2b2lkIGNsb3NlRnJvbnRlbmRQYWdlKCk7CiAgICAgdm9pZCBjbG9zZUZyb250ZW5kQWZ0
ZXJJbmFjdGl2aXR5VGltZXJGaXJlZCgpOwpAQCAtMTQ4LDYgKzE0OCw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNob3dDb25zb2xlKCk7CiAgICAgdm9pZCBzaG93UmVzb3VyY2VzKCk7CiAgICAgdm9p
ZCBzaG93TWFpblJlc291cmNlRm9yRnJhbWUoV2ViRnJhbWVQcm94eSopOworICAgIHZvaWQgb3Bl
blVSTEV4dGVybmFsbHkoY29uc3QgU3RyaW5nJiB1cmwpOwogCiAgICAgQXR0YWNobWVudFNpZGUg
YXR0YWNobWVudFNpZGUoKSBjb25zdCB7IHJldHVybiBtX2F0dGFjaG1lbnRTaWRlOyB9CiAgICAg
Ym9vbCBpc0F0dGFjaGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0F0dGFjaGVkOyB9CkBAIC0xOTEs
NiArMTkyLDkgQEAgcHVibGljOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbml0aWFsV2lu
ZG93V2lkdGg7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGluaXRpYWxXaW5kb3dIZWlnaHQ7
CiAKKyAgICAvLyBUZXN0aW5nIG1ldGhvZHMuCisgICAgdm9pZCBldmFsdWF0ZUluRnJvbnRlbmRG
b3JUZXN0aW5nKGNvbnN0IFN0cmluZyYpOworCiBwcml2YXRlOgogICAgIHZvaWQgY3JlYXRlRnJv
bnRlbmRQYWdlKCk7CiAgICAgdm9pZCBjbG9zZUZyb250ZW5kUGFnZUFuZFdpbmRvdygpOwpAQCAt
MjE1LDYgKzIxOSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBwbGF0Zm9ybUlzRnJvbnQoKTsKICAg
ICB2b2lkIHBsYXRmb3JtQXR0YWNoQXZhaWxhYmlsaXR5Q2hhbmdlZChib29sKTsKICAgICB2b2lk
IHBsYXRmb3JtU2V0Rm9yY2VkQXBwZWFyYW5jZShXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENs
aWVudDo6QXBwZWFyYW5jZSk7CisgICAgdm9pZCBwbGF0Zm9ybU9wZW5VUkxFeHRlcm5hbGx5KGNv
bnN0IFN0cmluZyYpOwogICAgIHZvaWQgcGxhdGZvcm1JbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0
IFN0cmluZyYpOwogICAgIHZvaWQgcGxhdGZvcm1TaG93Q2VydGlmaWNhdGUoY29uc3QgV2ViQ29y
ZTo6Q2VydGlmaWNhdGVJbmZvJik7CiAgICAgdW5zaWduZWQgcGxhdGZvcm1JbnNwZWN0ZWRXaW5k
b3dIZWlnaHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rv
ci9XZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0luc3BlY3Rvci9XZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5pbgppbmRleCBiYjMxZGFjNGU0
MmM2ZmMxNGNiZDA1ZGZkZTVlYTBiMWUyZTI5YWFiLi5lN2NiMTFmMjQ5OWU4YjUzYjg3OTEzMWZl
MjVjMTA2YWMzZGJlYzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNw
ZWN0b3IvV2ViSW5zcGVjdG9yUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xLDQg
KzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTAtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM0LDYgKzM0LDcg
QEAgbWVzc2FnZXMgLT4gV2ViSW5zcGVjdG9yUHJveHkgewogICAgIFJlc2V0U3RhdGUoKQogCiAg
ICAgU2V0Rm9yY2VkQXBwZWFyYW5jZShXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6
QXBwZWFyYW5jZSBhcHBlYXJhbmNlKQorICAgIE9wZW5VUkxFeHRlcm5hbGx5KFN0cmluZyB1cmwp
CiAKICAgICBJbnNwZWN0ZWRVUkxDaGFuZ2VkKFN0cmluZyB1cmxTdHJpbmcpCiAgICAgU2hvd0Nl
cnRpZmljYXRlKFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZUluZm8pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1JlbW90ZVdlYklu
c3BlY3RvclByb3h5R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9n
dGsvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwCmluZGV4IDc3OGEzOWM4MTViZTVkYTRh
NjA0NzZlOGQ3OWYwMjQyNzgzMmY0NDMuLjdiYjY2MGRmNzBlZDA3YjIyNmZlZWJhZDYwM2QxMjZl
ZWNiODZjODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9n
dGsvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0luc3BlY3Rvci9ndGsvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwCkBAIC0x
NzIsNyArMTcyLDcgQEAgdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TdGFy
dFdpbmRvd0RyYWcoKQogewogfQogCi12b2lkIFJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpwbGF0
Zm9ybU9wZW5Jbk5ld1RhYihjb25zdCBTdHJpbmcmKQordm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQ
cm94eTo6cGxhdGZvcm1PcGVuVVJMRXh0ZXJuYWxseShjb25zdCBTdHJpbmcmKQogewogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1JlbW90ZVdl
Ykluc3BlY3RvclByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9y
L21hYy9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eU1hYy5tbQppbmRleCBlYTM5ZDg5ZjA4OGUyMTU4
ZWJkMjZlYjJkZGQzYWZkYmZlMzA0ZTEzLi4yNDU0YWU5NTk0MTA3N2Q0MjQ4Y2U2YTUzN2I5NGUx
ZjIwZWUwMWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Iv
bWFjL1JlbW90ZVdlYkluc3BlY3RvclByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0luc3BlY3Rvci9tYWMvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNYWMubW0KQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0y
NjEsNyArMjYxLDcgQEAgdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TdGFy
dFdpbmRvd0RyYWcoKQogICAgIHdlYlZpZXcoKS0+X3BhZ2UtPnN0YXJ0V2luZG93RHJhZygpOwog
fQogCi12b2lkIFJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW5Jbk5ld1RhYihj
b25zdCBTdHJpbmcmIHVybCkKK3ZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3Jt
T3BlblVSTEV4dGVybmFsbHkoY29uc3QgU3RyaW5nJiB1cmwpCiB7CiAgICAgW1tOU1dvcmtzcGFj
ZSBzaGFyZWRXb3Jrc3BhY2VdIG9wZW5VUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6dXJsXV07CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5z
cGVjdG9yVmlld0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rv
ci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5oCmluZGV4IGJhYmQzMzI1MDJhZGU5OWI2
MWRjNDViOTc2OTk2NjA4YjdjOGI4MTAuLjEwNzE5Mjg2NjVlNDllY2M4YTI0NzFkN2YxNDY5YTgw
Y2E2YWQyOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9t
YWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5oCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU2LDYgKzU2LDcg
QEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIC0gKEJPT0wpaW5zcGVjdG9yVmlld0NvbnRyb2xs
ZXJJbnNwZWN0b3JJc1VuZGVyVGVzdDooV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlciAqKWluc3Bl
Y3RvclZpZXdDb250cm9sbGVyOwogLSAodm9pZClpbnNwZWN0b3JWaWV3Q29udHJvbGxlcjooV0tJ
bnNwZWN0b3JWaWV3Q29udHJvbGxlciAqKWluc3BlY3RvclZpZXdDb250cm9sbGVyIHdpbGxNb3Zl
VG9XaW5kb3c6KE5TV2luZG93ICopbmV3V2luZG93OwogLSAodm9pZClpbnNwZWN0b3JWaWV3Q29u
dHJvbGxlckRpZE1vdmVUb1dpbmRvdzooV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlciAqKWluc3Bl
Y3RvclZpZXdDb250cm9sbGVyOworLSAodm9pZClpbnNwZWN0b3JWaWV3Q29udHJvbGxlcjooV0tJ
bnNwZWN0b3JWaWV3Q29udHJvbGxlciAqKWluc3BlY3RvclZpZXdDb250cm9sbGVyIG9wZW5VUkxF
eHRlcm5hbGx5OihOU1VSTCAqKXVybDsKIEBlbmQKIAogTlNfQVNTVU1FX05PTk5VTExfRU5ECmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVj
dG9yVmlld0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Iv
bWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0KaW5kZXggZjQwN2FlMWJmNmI3OWJkZWYy
ZTgyYzQ1OGE5OTY0ZjgwNDdkODBmMi4uMzNiNThmMmFmMzM2Y2ZhZjFhY2U0YWU4MzhlYmQyMWJk
N2RjOGFmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21h
Yy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbQpAQCAtMjI3LDgg
KzIyNywxMyBAQCAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aQogCiAgICAgLy8gUHJldmVudCBldmVy
eXRoaW5nIGVsc2UuCiAgICAgZGVjaXNpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBvbGlj
eUNhbmNlbCk7Ci0gICAgCi0gICAgLy8gQW5kIGluc3RlYWQgbG9hZCBpdCBpbiB0aGUgaW5zcGVj
dGVkIHBhZ2UuCisKKyAgICBpZiAoISFfZGVsZWdhdGUgJiYgW19kZWxlZ2F0ZSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKGluc3BlY3RvclZpZXdDb250cm9sbGVyOm9wZW5VUkxFeHRlcm5h
bGx5OildKSB7CisgICAgICAgIFtfZGVsZWdhdGUgaW5zcGVjdG9yVmlld0NvbnRyb2xsZXI6c2Vs
ZiBvcGVuVVJMRXh0ZXJuYWxseTpuYXZpZ2F0aW9uQWN0aW9uLnJlcXVlc3QuVVJMXTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIFRyeSB0byBsb2FkIHRoZSByZXF1ZXN0IGluIHRo
ZSBpbnNwZWN0ZWQgcGFnZSBpZiB0aGUgZGVsZWdhdGUgY2FuJ3QgaGFuZGxlIGl0LgogICAgIGlm
IChfaW5zcGVjdGVkUGFnZSkKICAgICAgICAgX2luc3BlY3RlZFBhZ2UtPmxvYWRSZXF1ZXN0KG5h
dmlnYXRpb25BY3Rpb24ucmVxdWVzdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQppbmRl
eCBhNTU3YzgzYTRiMjhiZTU0ZTliZjllY2I1OGJkMjUyZDNlOTc1OGQwLi4xOGUzYjc1NGY5ZjBl
MzYzYjM2OGY1NDhlYjhhNDMwZDVjODk5YjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0K
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0xOTMsNiArMTkzLDEyIEBAIC0gKHZvaWQpaW5zcGVjdG9yVmlld0NvbnRyb2xsZXJEaWRN
b3ZlVG9XaW5kb3c6KFdLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgKilpbnNwCiAgICAgICAgIF9p
bnNwZWN0b3JQcm94eS0+YXR0YWNobWVudERpZE1vdmVUb1dpbmRvdyhpbnNwZWN0b3JWaWV3Q29u
dHJvbGxlci53ZWJWaWV3LndpbmRvdyk7CiB9CiAKKy0gKHZvaWQpaW5zcGVjdG9yVmlld0NvbnRy
b2xsZXI6KFdLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgKilpbnNwZWN0b3JWaWV3Q29udHJvbGxl
ciBvcGVuVVJMRXh0ZXJuYWxseTooTlNVUkwgKil1cmwKK3sKKyAgICBpZiAoX2luc3BlY3RvclBy
b3h5KQorICAgICAgICBfaW5zcGVjdG9yUHJveHktPm9wZW5VUkxFeHRlcm5hbGx5KHVybC5hYnNv
bHV0ZVN0cmluZyk7Cit9CisKIEBlbmQKIAogbmFtZXNwYWNlIFdlYktpdCB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Ivd2luL1JlbW90ZVdlYkluc3BlY3Rv
clByb3h5V2luLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci93aW4vUmVt
b3RlV2ViSW5zcGVjdG9yUHJveHlXaW4uY3BwCmluZGV4IDAxZmY4NjlmNjI5NjBhZDNiZGMxMDY5
ODFjNjIyNTI2YzY2MzBiNjQuLjkwNTg5Nzc3NDg5NTY0OGY2ZDY5NmJmNjE5YzM4ZjY5Y2I2NDdk
MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci93aW4vUmVt
b3RlV2ViSW5zcGVjdG9yUHJveHlXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0luc3BlY3Rvci93aW4vUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlXaW4uY3BwCkBAIC0xMzcsNyAr
MTM3LDcgQEAgdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1BcHBlbmQoY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgeyB9CiB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclBy
b3h5OjpwbGF0Zm9ybVNldFNoZWV0UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSB7IH0K
IHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0Rm9yY2VkQXBwZWFyYW5j
ZShXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6QXBwZWFyYW5jZSkgeyB9CiB2b2lk
IFJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVN0YXJ0V2luZG93RHJhZygpIHsgfQot
dm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1PcGVuSW5OZXdUYWIoY29uc3Qg
U3RyaW5nJikgeyB9Cit2b2lkIFJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW5V
UkxFeHRlcm5hbGx5KGNvbnN0IFN0cmluZyYpIHsgfQogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQ
cm94eTo6cGxhdGZvcm1TaG93Q2VydGlmaWNhdGUoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJ
bmZvJikgeyB9CiAKIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQ2xvc2VG
cm9udGVuZFBhZ2VBbmRXaW5kb3coKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggZGNjZDBjOGNkODQ3NWEzNmM1NmYyMmY4ZDk3ZTU5MzYz
YzYxZWMxYS4uY2Q4NDY2NDQzNmNlOTBmODIxMmIwMGYwOTQ3N2ExNDIzNjNkODUxYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDA2
LDYgKzE0MDYsNyBAQAogCQk5OTU1QTZGNzFDNzk4NkU1MDBFQjZBOTMgLyogQXV0b21hdGlvblBy
b3RvY29sT2JqZWN0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTk1NUE2RjMxQzc5ODY2NDAwRUI2QTkzIC8qIEF1dG9tYXRpb25Qcm90b2NvbE9iamVj
dHMuaCAqLzsgfTsKIAkJOTk3ODhBQ0IxRjQyMUREQTAwQzA4MDAwIC8qIF9XS0F1dG9tYXRpb25T
ZXNzaW9uQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTk3ODhBQzkxRjQyMURDQTAwQzA4MDAwIC8qIF9XS0F1dG9tYXRpb25TZXNz
aW9uQ29uZmlndXJhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTk5NzlDQTU4MjM3RjQ5RjEwMDM5RUMwNSAvKiBfV0tJbnNwZWN0b3JQcml2
YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTc5
Q0E1NzIzN0Y0OUYwMDAzOUVDMDUgLyogX1dLSW5zcGVjdG9yUHJpdmF0ZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTk5OTk2QTlGMjUwMDRCQ0Mw
MDRGNzU1OSAvKiBfV0tJbnNwZWN0b3JQcml2YXRlRm9yVGVzdGluZy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk5OTZBOUQyNTAwNEJDQjAwNEY3NTU5
IC8qIF9XS0luc3BlY3RvclByaXZhdGVGb3JUZXN0aW5nLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTlDM0FFMkQxREFEQTZBRDAwQUY1QzE2IC8q
IFdlYkF1dG9tYXRpb25TZXNzaW9uTWFjcm9zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5OUMzQUUyQzFEQURBNkE3MDBBRjVDMTYgLyogV2ViQXV0b21h
dGlvblNlc3Npb25NYWNyb3MuaCAqLzsgfTsKIAkJOTlDODFENUExQzIwRTdFMjAwNUM0QzgyIC8q
IEF1dG9tYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk5QzgxRDU1MUMyMERGQkUwMDVDNEM4MiAvKiBBdXRvbWF0aW9uQ2xpZW50Lmgg
Ki87IH07CiAJCTk5QzgxRDVEMUMyMUYzOEIwMDVDNEM4MiAvKiBBUElBdXRvbWF0aW9uQ2xpZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUM4MUQ1
QjFDMjBFODE3MDA1QzRDODIgLyogQVBJQXV0b21hdGlvbkNsaWVudC5oICovOyB9OwpAQCAtNDQ3
OCw2ICs0NDc5LDggQEAKIAkJOTk3ODhBQzkxRjQyMURDQTAwQzA4MDAwIC8qIF9XS0F1dG9tYXRp
b25TZXNzaW9uQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBfV0tBdXRvbWF0aW9uU2Vzc2lvbkNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTk3ODhBQ0ExRjQyMURDQTAwQzA4MDAwIC8qIF9XS0F1dG9tYXRpb25TZXNz
aW9uQ29uZmlndXJhdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IF9XS0F1dG9tYXRpb25TZXNzaW9uQ29uZmlndXJhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTk3OUNBNTcyMzdGNDlGMDAwMzlFQzA1IC8qIF9XS0luc3BlY3RvclBy
aXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLSW5zcGVjdG9yUHJp
dmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTk5NkE5RDI1MDA0QkNCMDA0
Rjc1NTkgLyogX1dLSW5zcGVjdG9yUHJpdmF0ZUZvclRlc3RpbmcuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gX1dLSW5zcGVjdG9yUHJpdmF0ZUZvclRlc3RpbmcuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTk5OTZBOUUyNTAwNEJDQjAwNEY3NTU5IC8qIF9XS0lu
c3BlY3RvclRlc3RpbmcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBfV0tJbnNwZWN0b3JUZXN0aW5nLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
OUMzQUUyMzFEQUQ4RTM0MDBBRjVDMTYgLyogV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJBdXRvbWF0aW9uU2Vzc2lv
bk1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlDM0FFMjYxREFEOTQ4NTAw
QUY1QzE2IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OUMzQUUyQzFEQURBNkE3MDBBRjVDMTYgLyogV2Vi
QXV0b21hdGlvblNlc3Npb25NYWNyb3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViQXV0b21hdGlvblNlc3Npb25NYWNyb3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTcyNTMsNiArNzI1Niw4IEBACiAJCQkJOTE5Nzk0MEIyM0RCQzUwMzAwMjU3ODkyIC8q
IF9XS0luc3BlY3RvckRlbGVnYXRlLmggKi8sCiAJCQkJNUNBRkRFNDQyMTMwODQzNjAwQjFGN0Ux
IC8qIF9XS0luc3BlY3RvckludGVybmFsLmggKi8sCiAJCQkJOTk3OUNBNTcyMzdGNDlGMDAwMzlF
QzA1IC8qIF9XS0luc3BlY3RvclByaXZhdGUuaCAqLywKKwkJCQk5OTk5NkE5RDI1MDA0QkNCMDA0
Rjc1NTkgLyogX1dLSW5zcGVjdG9yUHJpdmF0ZUZvclRlc3RpbmcuaCAqLywKKwkJCQk5OTk5NkE5
RTI1MDA0QkNCMDA0Rjc1NTkgLyogX1dLSW5zcGVjdG9yVGVzdGluZy5tbSAqLywKIAkJCQlBNUMw
RjBBQTIwMDA2NTZFMDA1MzY1MzYgLyogX1dLSW5zcGVjdG9yV2luZG93LmggKi8sCiAJCQkJQTVD
MEYwQTkyMDAwNjU2RTAwNTM2NTM2IC8qIF9XS0luc3BlY3RvcldpbmRvdy5tbSAqLywKIAkJCQkz
MUIzNjI5NDIxNDFFQkFEMDA3QkZBNTMgLyogX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1cmUuaCAqLywK
QEAgLTEwNjE4LDYgKzEwNjIzLDcgQEAKIAkJCQk5MTk3OTQwQzIzREJDNTAzMDAyNTc4OTIgLyog
X1dLSW5zcGVjdG9yRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDQUZERTQ3MjEzMDg0
NkEwMEIxRjdFMSAvKiBfV0tJbnNwZWN0b3JJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTk3OUNBNTgyMzdGNDlGMTAwMzlFQzA1IC8qIF9XS0luc3BlY3RvclByaXZhdGUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTk5OTk2QTlGMjUwMDRCQ0MwMDRGNzU1OSAvKiBfV0tJbnNwZWN0b3JQcml2
YXRlRm9yVGVzdGluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVDMEYwQUIyMDAwNjU4MjAwNTM2
NTM2IC8qIF9XS0luc3BlY3RvcldpbmRvdy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFCMzYyOTUy
MTQxRUJDRDAwN0JGQTUzIC8qIF9XS0ludGVybmFsRGVidWdGZWF0dXJlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkzMUIzNjI5NzIxNDFFQkQ5MDA3QkZBNTMgLyogX1dLSW50ZXJuYWxEZWJ1Z0ZlYXR1
cmVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuY3BwCmluZGV4IDRl
NzExZmE3Nzg4YjdmOWVmZjhiNTJhMmUzMzVhNTI2ZTYzM2ZmMTkuLjQ3ZDZmYTMzODNjNGVkYmFm
MzE0ODBkZDQyYmVjNTA2Zjg0YzgzYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuY3BwCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE3OSw5ICsx
NzksOSBAQCB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjpyZXNldFN0YXRlKCkKICAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6UmVzZXRTdGF0ZSgpLCBtX3BhZ2UuaWRlbnRp
ZmllcigpKTsKIH0KIAotdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6b3BlbkluTmV3VGFiKGNv
bnN0IFN0cmluZyYgdXJsKQordm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6b3BlblVSTEV4dGVy
bmFsbHkoY29uc3QgU3RyaW5nJiB1cmwpCiB7Ci0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UmVtb3RlV2ViSW5zcGVj
dG9yUHJveHk6Ok9wZW5Jbk5ld1RhYih1cmwpLCBtX3BhZ2UuaWRlbnRpZmllcigpKTsKKyAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1l
c3NhZ2VzOjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6T3BlblVSTEV4dGVybmFsbHkodXJsKSwg
bV9wYWdlLmlkZW50aWZpZXIoKSk7CiB9CiAKIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6OnNh
dmUoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgY29uc3QgU3RyaW5nJiBjb250ZW50LCBib29sIGJh
c2U2NEVuY29kZWQsIGJvb2wgZm9yY2VTYXZlQXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1JlbW90ZVdlYkluc3BlY3RvclVJLmgKaW5kZXggY2E0
YWY3MjU3OGUzNDg2OGQ1YmZmMGE1YjViZWUyZmQyMWYzNDhjYi4uYjQ5OWVjNWM1M2ZhYzYyN2Y1
ZjQ3ZWVmYmM0YTkwMzg2Y2RhMDZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luc3BlY3Rvci9SZW1vdGVXZWJJbnNwZWN0b3JVSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbnNwZWN0b3IvUmVtb3RlV2ViSW5zcGVjdG9yVUkuaApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC04Niw3ICs4Niw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHJlb3BlbigpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVzZXRTdGF0
ZSgpIG92ZXJyaWRlOwogCi0gICAgdm9pZCBvcGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJiB1cmwp
IG92ZXJyaWRlOworICAgIHZvaWQgb3BlblVSTEV4dGVybmFsbHkoY29uc3QgU3RyaW5nJiB1cmwp
IG92ZXJyaWRlOwogICAgIHZvaWQgc2F2ZShjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5n
JiBjb250ZW50LCBib29sIGJhc2U2NEVuY29kZWQsIGJvb2wgZm9yY2VTYXZlQXMpIG92ZXJyaWRl
OwogICAgIHZvaWQgYXBwZW5kKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIGNvbnRl
bnQpIG92ZXJyaWRlOwogICAgIHZvaWQgaW5zcGVjdGVkVVJMQ2hhbmdlZChjb25zdCBTdHJpbmcm
KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0
b3IvV2ViSW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yLmNwcAppbmRleCA5YTMwNjI5MmMzMTBhMDBiNTA1NGZjMjRlOTEyYzdlMWVk
YTFiMmM1Li41YmJjNjM0NDE3MWU1NzE2MmQ1NWQ2OTBlYTRlZDIxZDU3MWE5ZDk0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3Rvci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3IuY3Bw
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxNC0yMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMTU4LDI1ICsxNTgsNiBAQCB2b2lkIFdlYkluc3BlY3Rvcjo6Y2xvc2UoKQog
ICAgIGNsb3NlRnJvbnRlbmRDb25uZWN0aW9uKCk7CiB9CiAKLXZvaWQgV2ViSW5zcGVjdG9yOjpv
cGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCi17Ci0gICAgVXNlckdlc3R1cmVJ
bmRpY2F0b3IgaW5kaWNhdG9yIHsgUHJvY2Vzc2luZ1VzZXJHZXN0dXJlIH07Ci0KLSAgICBQYWdl
KiBpbnNwZWN0ZWRQYWdlID0gbV9wYWdlLT5jb3JlUGFnZSgpOwotICAgIGlmICghaW5zcGVjdGVk
UGFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgRnJhbWUmIGluc3BlY3RlZE1haW5GcmFtZSA9
IGluc3BlY3RlZFBhZ2UtPm1haW5GcmFtZSgpOwotICAgIEZyYW1lTG9hZFJlcXVlc3QgZnJhbWVM
b2FkUmVxdWVzdCB7ICppbnNwZWN0ZWRNYWluRnJhbWUuZG9jdW1lbnQoKSwgaW5zcGVjdGVkTWFp
bkZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNlUmVxdWVzdCB7IHVy
bFN0cmluZyB9LCAiX2JsYW5rIl9zLCBJbml0aWF0ZWRCeU1haW5GcmFtZTo6VW5rbm93biB9Owot
Ci0gICAgTmF2aWdhdGlvbkFjdGlvbiBhY3Rpb24geyAqaW5zcGVjdGVkTWFpbkZyYW1lLmRvY3Vt
ZW50KCksIGZyYW1lTG9hZFJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIGZyYW1lTG9hZFJlcXVl
c3QuaW5pdGlhdGVkQnlNYWluRnJhbWUoKSwgTmF2aWdhdGlvblR5cGU6OkxpbmtDbGlja2VkIH07
Ci0gICAgUGFnZSogbmV3UGFnZSA9IGluc3BlY3RlZFBhZ2UtPmNocm9tZSgpLmNyZWF0ZVdpbmRv
dyhpbnNwZWN0ZWRNYWluRnJhbWUsIHsgfSwgYWN0aW9uKTsKLSAgICBpZiAoIW5ld1BhZ2UpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIG5ld1BhZ2UtPm1haW5GcmFtZSgpLmxvYWRlcigpLmxvYWQo
V1RGTW92ZShmcmFtZUxvYWRSZXF1ZXN0KSk7Ci19Ci0KIHZvaWQgV2ViSW5zcGVjdG9yOjpldmFs
dWF0ZVNjcmlwdEZvclRlc3QoY29uc3QgU3RyaW5nJiBzY3JpcHQpCiB7CiAgICAgaWYgKCFtX3Bh
Z2UtPmNvcmVQYWdlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5z
cGVjdG9yL1dlYkluc3BlY3Rvci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rv
ci9XZWJJbnNwZWN0b3IuaAppbmRleCBiNDU0ZWRjZTQ4Y2E1ZjUyM2UwMWQwM2YxZTlhM2M4ZTNj
NjZmMjEzLi4xYmVkYzJlMzg5NTU0ZmNkODI4N2QxZTFiOGZmNjA1MDk3ZjFiMzE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3Rvci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yLmgKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDE0LCAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtNTUsOCArNTUsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzaG93KCk7CiAgICAgdm9p
ZCBjbG9zZSgpOwogCi0gICAgdm9pZCBvcGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJiB1cmxTdHJp
bmcpOwotCiAgICAgdm9pZCBjYW5BdHRhY2hXaW5kb3coYm9vbCYgcmVzdWx0KTsKIAogICAgIHZv
aWQgc2hvd0NvbnNvbGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bnNwZWN0b3IvV2ViSW5zcGVjdG9yLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3IubWVzc2FnZXMuaW4KaW5kZXggZGFmNzRiNWU2YjA0
MzBiNmIwY2EzYmUyNjBmNWZmYWJlY2Q2NTQ4OS4uZDExMjQ4OTBlMDk3OWUwNDdmYjg3N2RmYmNm
MmIwYTRmMWVjZGQ1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3Bl
Y3Rvci9XZWJJbnNwZWN0b3IubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3IubWVzc2FnZXMuaW4KQEAgLTEsNCArMSw0IEBACi0j
IENvcHlyaWdodCAoQykgMjAxMCwgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjIENvcHlyaWdodCAoQykgMjAxMC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzEsOCArMzEsNiBAQCBtZXNzYWdl
cyAtPiBXZWJJbnNwZWN0b3IgewogCiAgICAgU2hvd01haW5SZXNvdXJjZUZvckZyYW1lKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlkZW50aWZpZXIpCiAKLSAgICBPcGVuSW5OZXdUYWIo
U3RyaW5nIHVybCkKLQogICAgIFN0YXJ0UGFnZVByb2ZpbGluZygpCiAgICAgU3RvcFBhZ2VQcm9m
aWxpbmcoKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9y
L1dlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5jcHAK
aW5kZXggYzE4OWU5ODI1YWQ0OTQ3MGVkNjI0MzVlODZkNTlkZjYwZjM4YWU4Mi4uOWMzN2IwMDNj
MWNiNzcxZDliM2Y3OWRkYTY1NTJhNDkwN2Q3ZWRkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9y
RnJvbnRlbmRBUElEaXNwYXRjaGVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTQsIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE0LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMTUsNCArMTE1LDkgQEAgdm9pZCBXZWJJ
bnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXI6OmV2YWx1YXRlUXVldWVkRXhwcmVzc2lvbnMo
KQogICAgIG1fcXVldWUuY2xlYXIoKTsKIH0KIAordm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZEFQ
SURpc3BhdGNoZXI6OmV2YWx1YXRlRXhwcmVzc2lvbkZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiBl
eHByZXNzaW9uKQoreworICAgIGV2YWx1YXRlT3JRdWV1ZUV4cHJlc3Npb24oZXhwcmVzc2lvbik7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JGcm9udGVuZEFQSURpc3BhdGNoZXIuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yRnJvbnRlbmRB
UElEaXNwYXRjaGVyLmgKaW5kZXggZjVjNDI0ZTJkODc0NTRkOWJiOWVlM2YyZWE4MjI0ZjQxZTQx
YTcyNS4uZGI2OTBlNGE0MTYwN2FkZjEwMzRjYjhlNDVhMGZiMGY1ZDY1ZmQ2OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JGcm9udGVu
ZEFQSURpc3BhdGNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9y
L1dlYkluc3BlY3RvckZyb250ZW5kQVBJRGlzcGF0Y2hlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNCwgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ3LDYgKzQ3LDcgQEAg
cHVibGljOgogICAgIHZvaWQgZGlzcGF0Y2hDb21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFuZCwg
Ym9vbCBhcmd1bWVudCk7CiAgICAgdm9pZCBkaXNwYXRjaE1lc3NhZ2VBc3luYyhjb25zdCBTdHJp
bmcmIG1lc3NhZ2UpOwogCisgICAgdm9pZCBldmFsdWF0ZUV4cHJlc3Npb25Gb3JUZXN0aW5nKGNv
bnN0IFN0cmluZyYpOwogcHJpdmF0ZToKICAgICB2b2lkIGV2YWx1YXRlT3JRdWV1ZUV4cHJlc3Np
b24oY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBldmFsdWF0ZVF1ZXVlZEV4cHJlc3Npb25zKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3Bl
Y3RvclVJLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVj
dG9yVUkuY3BwCmluZGV4IGU5MzM3Y2QyZDZiYjkwZGI2YTY2Y2VkNjVmMmI2N2NmNTJjOTViMzQu
LjkwNGU0NzdiODRjNmI3NGM3YWMyOWU4MmRmYjIyODE3NWQ3MDUxMmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkuY3BwCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtODIsMTEgKzgyLDYgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSTo6ZXN0YWJsaXNoQ29ubmVjdGlv
bihXZWJQYWdlUHJveHlJZGVudGlmaWVyIGluc3BlY3RlZFBhZ2VJZGUKIAogdm9pZCBXZWJJbnNw
ZWN0b3JVSTo6dXBkYXRlQ29ubmVjdGlvbigpCiB7Ci0gICAgaWYgKG1fYmFja2VuZENvbm5lY3Rp
b24pIHsKLSAgICAgICAgbV9iYWNrZW5kQ29ubmVjdGlvbi0+aW52YWxpZGF0ZSgpOwotICAgICAg
ICBtX2JhY2tlbmRDb25uZWN0aW9uID0gbnVsbHB0cjsKLSAgICB9Ci0KICNpZiBVU0UoVU5JWF9E
T01BSU5fU09DS0VUUykKICAgICBJUEM6OkNvbm5lY3Rpb246OlNvY2tldFBhaXIgc29ja2V0UGFp
ciA9IElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlUGxhdGZvcm1Db25uZWN0aW9uKCk7CiAgICAgSVBD
OjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKHNvY2tldFBhaXIu
c2VydmVyKTsKQEAgLTExMCwxMSArMTA1LDYgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSTo6dXBkYXRl
Q29ubmVjdGlvbigpCiAgICAgcmV0dXJuOwogI2VuZGlmCiAKLSNpZiBVU0UoVU5JWF9ET01BSU5f
U09DS0VUUykgfHwgT1MoREFSV0lOKSB8fCBQTEFURk9STShXSU4pCi0gICAgbV9iYWNrZW5kQ29u
bmVjdGlvbiA9IElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlU2VydmVyQ29ubmVjdGlvbihjb25uZWN0
aW9uSWRlbnRpZmllciwgKnRoaXMpOwotICAgIG1fYmFja2VuZENvbm5lY3Rpb24tPm9wZW4oKTsK
LSNlbmRpZgotCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yUHJveHk6OlNldEZyb250ZW5kQ29u
bmVjdGlvbihjb25uZWN0aW9uQ2xpZW50UG9ydCksIG1faW5zcGVjdGVkUGFnZUlkZW50aWZpZXIp
OwogfQogCkBAIC0xNjMsMTEgKzE1Myw2IEBAIHZvaWQgV2ViSW5zcGVjdG9yVUk6OmNsb3NlV2lu
ZG93KCkKIHsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JQcm94eTo6RGlkQ2xvc2UoKSwgbV9p
bnNwZWN0ZWRQYWdlSWRlbnRpZmllcik7CiAKLSAgICBpZiAobV9iYWNrZW5kQ29ubmVjdGlvbikg
ewotICAgICAgICBtX2JhY2tlbmRDb25uZWN0aW9uLT5pbnZhbGlkYXRlKCk7Ci0gICAgICAgIG1f
YmFja2VuZENvbm5lY3Rpb24gPSBudWxscHRyOwotICAgIH0KLQogICAgIGlmIChtX2Zyb250ZW5k
Q29udHJvbGxlcikgewogICAgICAgICBtX2Zyb250ZW5kQ29udHJvbGxlci0+c2V0SW5zcGVjdG9y
RnJvbnRlbmRDbGllbnQobnVsbHB0cik7CiAgICAgICAgIG1fZnJvbnRlbmRDb250cm9sbGVyID0g
bnVsbHB0cjsKQEAgLTI5NiwxMiArMjgxLDkgQEAgdm9pZCBXZWJJbnNwZWN0b3JVSTo6Y2hhbmdl
U2hlZXRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0
b3JQcm94eTo6U2V0U2hlZXRSZWN0KHJlY3QpLCBtX2luc3BlY3RlZFBhZ2VJZGVudGlmaWVyKTsK
IH0KIAotdm9pZCBXZWJJbnNwZWN0b3JVSTo6b3BlbkluTmV3VGFiKGNvbnN0IFN0cmluZyYgdXJs
KQordm9pZCBXZWJJbnNwZWN0b3JVSTo6b3BlblVSTEV4dGVybmFsbHkoY29uc3QgU3RyaW5nJiB1
cmwpCiB7Ci0gICAgaWYgKG1fYmFja2VuZENvbm5lY3Rpb24pIHsKLSAgICAgICAgbV9iYWNrZW5k
Q29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yOjpPcGVuSW5OZXdUYWIodXJs
KSwgMCk7Ci0gICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclByb3h5OjpCcmluZ0luc3BlY3Rl
ZFBhZ2VUb0Zyb250KCksIG1faW5zcGVjdGVkUGFnZUlkZW50aWZpZXIpOwotICAgIH0KKyAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1l
c3NhZ2VzOjpXZWJJbnNwZWN0b3JQcm94eTo6T3BlblVSTEV4dGVybmFsbHkodXJsKSwgbV9pbnNw
ZWN0ZWRQYWdlSWRlbnRpZmllcik7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yVUk6OnNhdmUoY29u
c3QgV1RGOjpTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBXVEY6OlN0cmluZyYgY29udGVudCwgYm9v
bCBiYXNlNjRFbmNvZGVkLCBib29sIGZvcmNlU2F2ZUFzKQpAQCAtMzk1LDYgKzM3NywxMSBAQCB2
b2lkIFdlYkluc3BlY3RvclVJOjpzZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKQogICAgIG1fZnJvbnRlbmRBUElEaXNwYXRjaGVyLmRpc3BhdGNoTWVzc2FnZUFzeW5j
KG1lc3NhZ2UpOwogfQogCit2b2lkIFdlYkluc3BlY3RvclVJOjpldmFsdWF0ZUluRnJvbnRlbmRG
b3JUZXN0aW5nKGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbikKK3sKKyAgICBtX2Zyb250ZW5kQVBJ
RGlzcGF0Y2hlci5ldmFsdWF0ZUV4cHJlc3Npb25Gb3JUZXN0aW5nKGV4cHJlc3Npb24pOworfQor
CiB2b2lkIFdlYkluc3BlY3RvclVJOjpwYWdlUGF1c2VkKCkKIHsKICAgICBtX2Zyb250ZW5kQVBJ
RGlzcGF0Y2hlci5zdXNwZW5kKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5zcGVjdG9yL1dlYkluc3BlY3RvclVJLmgKaW5kZXggNGI2ZWFjYTcyYWJjN2RiM2U1Y2E3ZWM2
YTExMzE4NzE3ZWNlZDBkYi4uMDI2YTcxMmEwODk5ZDA0NTVmMzE4NWFiNzk3NmMxNDAwNWQ4ZWJh
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNw
ZWN0b3JVSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5z
cGVjdG9yVUkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQt
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTg2LDEwICs4NiwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRTYXZl
KGNvbnN0IFN0cmluZyYgdXJsKTsKICAgICB2b2lkIGRpZEFwcGVuZChjb25zdCBTdHJpbmcmIHVy
bCk7CiAKLSAgICB2b2lkIHNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmKTsKKyAg
ICB2b2lkIHNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOworICAg
IHZvaWQgZXZhbHVhdGVJbkZyb250ZW5kRm9yVGVzdGluZyhjb25zdCBTdHJpbmcmIGV4cHJlc3Np
b24pOwogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9URUxFTUVUUlkpCi0gICAgdm9pZCBzZXREaWFn
bm9zdGljTG9nZ2luZ0F2YWlsYWJsZShib29sIGF2YWxpYWJsZSk7CisgICAgdm9pZCBzZXREaWFn
bm9zdGljTG9nZ2luZ0F2YWlsYWJsZShib29sKTsKICNlbmRpZgogCiAgICAgLy8gV2ViQ29yZTo6
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQKQEAgLTEyNSw3ICsxMjYsNyBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIGNoYW5nZVNoZWV0UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBvdmVycmlk
ZTsKIAotICAgIHZvaWQgb3BlbkluTmV3VGFiKGNvbnN0IFN0cmluZyYgdXJsKSBvdmVycmlkZTsK
KyAgICB2b2lkIG9wZW5VUkxFeHRlcm5hbGx5KGNvbnN0IFN0cmluZyYgdXJsKSBvdmVycmlkZTsK
IAogICAgIGJvb2wgY2FuU2F2ZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgc2F2ZShjb25zdCBXVEY6
OlN0cmluZyYgdXJsLCBjb25zdCBXVEY6OlN0cmluZyYgY29udGVudCwgYm9vbCBiYXNlNjRFbmNv
ZGVkLCBib29sIGZvcmNlU2F2ZUFzKSBvdmVycmlkZTsKQEAgLTE1Myw3ICsxNTQsNiBAQCBwcml2
YXRlOgogICAgIFdlYlBhZ2UmIG1fcGFnZTsKICAgICBXZWJJbnNwZWN0b3JGcm9udGVuZEFQSURp
c3BhdGNoZXIgbV9mcm9udGVuZEFQSURpc3BhdGNoZXI7CiAgICAgUmVmUHRyPFdlYkNvcmU6Oklu
c3BlY3RvckZyb250ZW5kSG9zdD4gbV9mcm9udGVuZEhvc3Q7Ci0gICAgUmVmUHRyPElQQzo6Q29u
bmVjdGlvbj4gbV9iYWNrZW5kQ29ubmVjdGlvbjsKIAogICAgIC8vIEtlZXAgYSBwb2ludGVyIHRv
IHRoZSBmcm9udGVuZCdzIGluc3BlY3RvciBjb250cm9sbGVyIHJhdGhlciB0aGFuIGdvaW5nIHRo
cm91Z2gKICAgICAvLyBjb3JlUGFnZSgpLCBzaW5jZSB3ZSBtYXkgbmVlZCBpdCBhZnRlciB0aGUg
ZnJvbnRlbmQncyBwYWdlIGhhcyBzdGFydGVkIGRlc3RydWN0aW9uLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUkubWVz
c2FnZXMuaW4KaW5kZXggODhhMjBmODEwZjZmZGFlNTI3N2ZjNTU4YzkxZjVmZGNiYTllYTQwNy4u
NDM1OWRkYjkwODk0YjI5MjkzMTQyMTdjYThhNDI0NmIzYTJlZTk4NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJ
Lm1lc3NhZ2VzLmluCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTQsIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTQtMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTUxLDQgKzUxLDUgQEAgbWVzc2FnZXMgLT4gV2ViSW5zcGVjdG9yVUkgewogICAg
IERpZEFwcGVuZChTdHJpbmcgdXJsKQogCiAgICAgU2VuZE1lc3NhZ2VUb0Zyb250ZW5kKFN0cmlu
ZyBtZXNzYWdlKQorICAgIEV2YWx1YXRlSW5Gcm9udGVuZEZvclRlc3RpbmcoU3RyaW5nIGV4cHJl
c3Npb24pCiB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggOThiMzZjYzdhZDc1MWFiYTEzMDk3NzczMjg0NjlhMDY0YjFjMWFlZC4uM2IyNDE1MTIy
OTBhYzMxZDA3MWJhZjRkNGY3NzA5ZDZiMGY1MDdhZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTA5LTIxICBC
cmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFtDb2NvYV0gX1dLSW5zcGVj
dG9yRGVsZWdhdGUgc2hvdWxkIGhhbmRsZSBzaG93aW5nIGV4dGVybmFsIHJlc291cmNlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2MzM0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgorCisgICAgICAgIFRlc3QgdGhlIGRlbGVn
YXRlIHVzaW5nIFdlYktpdCBBUEkgYW5kIHVzaW5nIEluc3BlY3RvckZyb250ZW5kSG9zdCBBUEku
CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5zcGVjdG9y
RGVsZWdhdGUubW06CisgICAgICAgICgtW0luc3BlY3RvckRlbGVnYXRlIGluc3BlY3RvcjpvcGVu
VVJMRXh0ZXJuYWxseTpdKTogQWRkZWQuCisgICAgICAgIChURVNUKToKKwogMjAyMC0wOS0yMSAg
S2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KIAogICAgICAgICBBbGxv
dyBhYm91dDpibGFuayBzdWJmcmFtZSBsb2FkcyBmb3Igbm9uIGFwcC1ib3VuZCB0b3AgZnJhbWVz
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLSW5z
cGVjdG9yRGVsZWdhdGUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1dLSW5zcGVjdG9yRGVsZWdhdGUubW0KaW5kZXggMWUzZDY5NTg1ZmQ1MDQ2NjcxNzNlMzI0MmI3
MzRhZmM0ZGM4NjBjYi4uMTBhNGFjYWExNGNlZmFlN2U5ZmY4NWUyZDJmOWEzMWNmOWE0OGM3NyAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0luc3Bl
Y3RvckRlbGVnYXRlLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvV0tJbnNwZWN0b3JEZWxlZ2F0ZS5tbQpAQCAtMzIsNiArMzIsNyBAQAogI2ltcG9ydCA8V2Vi
S2l0L1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLSW5z
cGVjdG9yLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dLSW5zcGVjdG9yRGVsZWdhdGUuaD4KKyNpbXBv
cnQgPFdlYktpdC9fV0tJbnNwZWN0b3JQcml2YXRlRm9yVGVzdGluZy5oPgogI2ltcG9ydCA8d3Rm
L1JldGFpblB0ci5oPgogCiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtNDEsNyArNDIsOSBAQCBAY2xh
c3MgSW5zcGVjdG9yRGVsZWdhdGU7CiBzdGF0aWMgYm9vbCBkaWRBdHRhY2hMb2NhbEluc3BlY3Rv
ckNhbGxlZCA9IGZhbHNlOwogc3RhdGljIGJvb2wgYnJvd3NlckRvbWFpbkVuYWJsZWRGb3JJbnNw
ZWN0b3JDYWxsZWQgPSBmYWxzZTsKIHN0YXRpYyBib29sIGJyb3dzZXJEb21haW5EaXNhYmxlZEZv
ckluc3BlY3RvckNhbGxlZCA9IGZhbHNlOwotc3RhdGljIFJldGFpblB0cjxJbnNwZWN0b3JEZWxl
Z2F0ZT4gc2hhcmVkSW5zcGVjdG9yRGVsZWdhdGU7CitzdGF0aWMgYm9vbCBvcGVuVVJMRXh0ZXJu
YWxseUNhbGxlZCA9IGZhbHNlOworc3RhdGljIFJldGFpblB0cjxpZCA8X1dLSW5zcGVjdG9yRGVs
ZWdhdGU+PiBzaGFyZWRJbnNwZWN0b3JEZWxlZ2F0ZTsKK3N0YXRpYyBSZXRhaW5QdHI8TlNVUkw+
IHVybFRvT3BlbjsKIAogQGludGVyZmFjZSBJbnNwZWN0b3JEZWxlZ2F0ZSA6IE5TT2JqZWN0IDxf
V0tJbnNwZWN0b3JEZWxlZ2F0ZT4KIEBlbmQKQEAgLTYyLDYgKzY1LDEyIEBAIC0gKHZvaWQpaW5z
cGVjdG9yRGlkRGlzYWJsZUJyb3dzZXJEb21haW46KF9XS0luc3BlY3RvciAqKWluc3BlY3Rvcgog
ICAgIGJyb3dzZXJEb21haW5EaXNhYmxlZEZvckluc3BlY3RvckNhbGxlZCA9IHRydWU7CiB9CiAK
Ky0gKHZvaWQpaW5zcGVjdG9yOihfV0tJbnNwZWN0b3IgKilpbnNwZWN0b3Igb3BlblVSTEV4dGVy
bmFsbHk6KE5TVVJMICopdXJsCit7CisgICAgRVhQRUNUX1NUUkVRKHVybC5hYnNvbHV0ZVN0cmlu
Zy5VVEY4U3RyaW5nLCB1cmxUb09wZW4uZ2V0KCkuYWJzb2x1dGVTdHJpbmcuVVRGOFN0cmluZyk7
CisgICAgb3BlblVSTEV4dGVybmFsbHlDYWxsZWQgPSB0cnVlOworfQorCiBAZW5kCiAKIEBpbnRl
cmZhY2UgVUlEZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS1VJRGVsZWdhdGU+CkBAIC04NSw3ICs5NCw3
IEBAIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkQXR0YWNoTG9jYWxJ
bnNwZWN0b3I6KF9XS0luc3BlY3RvciAqKWluCiAKIEBlbmQKIAotVEVTVChXZWJLaXRfV0tJbnNw
ZWN0b3JEZWxlZ2F0ZSwgRGlkTm90aWZ5Rm9yTG9jYWxJbnNwZWN0b3IpCitURVNUKFdLSW5zcGVj
dG9yRGVsZWdhdGUsIERpZE5vdGlmeUZvckxvY2FsSW5zcGVjdG9yKQogewogICAgIGF1dG8gd2Vi
Vmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIG5ld10p
OwogICAgIHdlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpLnByZWZlcmVuY2VzLl9kZXZlbG9wZXJF
eHRyYXNFbmFibGVkID0gWUVTOwpAQCAtMTA0LDQgKzExMywyOCBAQCBURVNUKFdlYktpdF9XS0lu
c3BlY3RvckRlbGVnYXRlLCBEaWROb3RpZnlGb3JMb2NhbEluc3BlY3RvcikKICAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmJyb3dzZXJEb21haW5EaXNhYmxlZEZvckluc3BlY3RvckNhbGxl
ZCk7CiB9CiAKK1RFU1QoV0tJbnNwZWN0b3JEZWxlZ2F0ZSwgU2hvd1VSTEV4dGVybmFsbHkpCit7
CisgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gbmV3XSk7CisgICAgd2ViVmlld0NvbmZpZ3VyYXRpb24uZ2V0KCkucHJlZmVyZW5j
ZXMuX2RldmVsb3BlckV4dHJhc0VuYWJsZWQgPSBZRVM7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgw
MCwgNjAwKSBjb25maWd1cmF0aW9uOndlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAg
YXV0byB1aURlbGVnYXRlID0gYWRvcHROUyhbVUlEZWxlZ2F0ZSBuZXddKTsKKworICAgIFt3ZWJW
aWV3IHNldFVJRGVsZWdhdGU6dWlEZWxlZ2F0ZS5nZXQoKV07CisgICAgW3dlYlZpZXcgbG9hZEhU
TUxTdHJpbmc6QCI8aGVhZD48dGl0bGU+VGVzdCBwYWdlIHRvIGJlIGluc3BlY3RlZDwvdGl0bGU+
PC9oZWFkPjxib2R5PjxwPkZpbGxlciBjb250ZW50PC9wPjwvYm9keT4iIGJhc2VVUkw6W05TVVJM
IFVSTFdpdGhTdHJpbmc6QCJodHRwOi8vZXhhbXBsZS5jb20vIl1dOworCisgICAgW1t3ZWJWaWV3
IF9pbnNwZWN0b3JdIHNob3ddOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkQXR0
YWNoTG9jYWxJbnNwZWN0b3JDYWxsZWQpOworCisgICAgdXJsVG9PcGVuID0gW05TVVJMIFVSTFdp
dGhTdHJpbmc6QCJodHRwczovL3d3dy53ZWJraXQub3JnLyJdOworCisgICAgLy8gQ2hlY2sgdGhl
IGNhc2Ugd2hlcmUgdGhlIGxvYWQgaXMgaW50ZXJjZXB0ZWQgYnkgdGhlIG5hdmlnYXRpb24gZGVs
ZWdhdGUuCisgICAgW1t3ZWJWaWV3IF9pbnNwZWN0b3JdIF9vcGVuVVJMRXh0ZXJuYWxseUZvclRl
c3Rpbmc6dXJsVG9PcGVuLmdldCgpIHVzZUZyb250ZW5kQVBJOk5PXTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJm9wZW5VUkxFeHRlcm5hbGx5Q2FsbGVkKTsKKworICAgIC8vIENoZWNr
IHRoZSBjYXNlIHdoZXJlIHRoZSBmcm9udGVuZCBjYWxscyBJbnNwZWN0b3JGcm9udGVuZEhvc3Qu
b3BlblVSTEV4dGVybmFsbHkoKS4KKyAgICBbW3dlYlZpZXcgX2luc3BlY3Rvcl0gX29wZW5VUkxF
eHRlcm5hbGx5Rm9yVGVzdGluZzp1cmxUb09wZW4uZ2V0KCkgdXNlRnJvbnRlbmRBUEk6WUVTXTsK
KyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJm9wZW5VUkxFeHRlcm5hbGx5Q2FsbGVkKTsK
K30KKwogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykK
</data>

          </attachment>
      

    </bug>

</bugzilla>