<?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>172107</bug_id>
          
          <creation_ts>2017-05-15 01:05:08 -0700</creation_ts>
          <short_desc>Add runtime flag for partial frame flattening</short_desc>
          <delta_ts>2017-06-19 00:14:04 -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>WebCore Misc.</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>171914</dependson>
          <blocked>149264</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Frédéric Wang Nélar">fred.wang</reporter>
          <assigned_to name="Frédéric Wang Nélar">fred.wang</assigned_to>
          <cc>fred.wang</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1308602</commentid>
    <comment_count>0</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2017-05-15 01:05:08 -0700</bug_when>
    <thetext>In bug 171914, the frame flattening setting is changed to a three-states enum: disabled, partially enabled and fully enabled. In order to easily test partial frame flattening, we should expose a runtime flag that would force the value of frame flattening to &quot;partially enabled&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309529</commentid>
    <comment_count>1</comment_count>
      <attachid>310369</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2017-05-17 03:21:17 -0700</bug_when>
    <thetext>Created attachment 310369
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309534</commentid>
    <comment_count>2</comment_count>
      <attachid>310372</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2017-05-17 03:22:56 -0700</bug_when>
    <thetext>Created attachment 310372
Patch (171914+172107)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309569</commentid>
    <comment_count>3</comment_count>
      <attachid>310369</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2017-05-17 05:53:01 -0700</bug_when>
    <thetext>Comment on attachment 310369
Patch

This patch applies on to of bug 171914.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310609</commentid>
    <comment_count>4</comment_count>
      <attachid>310372</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2017-05-19 08:35:42 -0700</bug_when>
    <thetext>Comment on attachment 310372
Patch (171914+172107)

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

A couple of comments, mostly about naming.

&gt; LayoutTests/ChangeLog:29
&gt; +2017-05-14 Frederic Wang  &lt;fwang@igalia.com&gt;
&gt; +
&gt; +        Add heuristic to avoid flattening &quot;fullscreen&quot; iframes
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=171914
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        This commit adjusts tests to work when frame flattening is an enum.
&gt; +        It also adds a test to check the new heuristic when &quot;partial frame flattening&quot; is enabled.
&gt; +        set-preference.html is disabled for now, as the test suite does not support overridePreference()
&gt; +        for non-boolean values (bug 128594).
&gt; +
&gt; +        * fast/forms/ios/delete-in-input-in-iframe.html: Use enum value &quot;FullyEnabled&quot;.

nit: duplicated changelog entry

&gt; LayoutTests/fast/frames/flattening/set-experimental-feature-force-partial-frame-flattening.html:11
&gt; +        internals.settings.setFrameFlattening(&quot;FullyEnabled&quot;);
&gt; +        internals.settings.setForcePartialFrameFlatteningEnabled(true);

for readers of these APIs, it might look a bit strange to see a call to &quot;enable frame flattening fully&quot; followed by a call to &quot;force enabled partial frame flattening&quot;.

&gt; LayoutTests/fast/frames/flattening/set-experimental-feature-force-partial-frame-flattening.html:22
&gt; +        test(function() { assert_false(isUnflatten(&quot;iframe0&quot;)); }, &quot;simple iframe&quot;);

nit: it seems more common to use word separators like &quot;_&quot; or &quot;-&quot;, or camel case ID strings, rather than space separated words.

&gt; Source/WebCore/page/RuntimeEnabledFeatures.h:202
&gt; +    void setForcePartialFrameFlatteningEnabled(bool isEnabled) { m_forcePartialFrameFlatteningEnabled = isEnabled; }
&gt; +    bool forcePartialFrameFlatteningEnabled() const { return m_forcePartialFrameFlatteningEnabled; }

I think a more widely used terminology for similar cases is &apos;override&apos;?

so force -&gt; override: OverrideFrameFlatteningPolicy(bool enable_by_heuristics); ?

and add a comment if this is a temporary API?

&gt; Source/WebCore/page/Settings.h:91
&gt; +enum FrameFlattening {

what about FrameFlatteningPolicy { FullyEnabled, PartiallyEnabled, Disabled };

e.g.:

settings-&gt;SetFrameFlatenningPolicy(FullyEnabled);

too verbose?

&gt; Source/WebCore/page/Settings.h:335
&gt; +    WEBCORE_EXPORT FrameFlattening actualFrameFlattening();

... and name the getter frameFlatteningPolicy?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319623</commentid>
    <comment_count>5</comment_count>
      <attachid>310369</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-06-15 10:50:10 -0700</bug_when>
    <thetext>Comment on attachment 310369
Patch

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

&gt; Source/WebCore/ChangeLog:10
&gt; +        In bug 171914, the frame flattening setting is changed to a three-states enum: disabled,
&gt; +        partially enabled and fully enabled. In order to easily test partial frame flattening, this
&gt; +        commit introduce a runtime flag forcing frame flattening to &quot;partially enabled&quot;.

Why can&apos;t the tests just change the Settting? I don&apos;t see the new for a runtime enabled feature for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1319873</commentid>
    <comment_count>6</comment_count>
      <attachid>310369</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2017-06-15 23:47:59 -0700</bug_when>
    <thetext>Comment on attachment 310369
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:10
&gt;&gt; +        commit introduce a runtime flag forcing frame flattening to &quot;partially enabled&quot;.
&gt; 
&gt; Why can&apos;t the tests just change the Settting? I don&apos;t see the new for a runtime enabled feature for this.

I think the idea was to have this feature for developers and beta testers to easily experiment the feature. I see runtime flags appear in a menu on macOS (and safari tech preview) but I&apos;m not sure how it would work on iOS?

Anyway, maybe I did not understand your comment here:
https://bugs.webkit.org/show_bug.cgi?id=171914#c3
&quot;It would be nice to have this an an Experimental Feature (in the WebKit2 sense, like WebGPU).&quot;
What did you mean?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1320618</commentid>
    <comment_count>7</comment_count>
      <attachid>310369</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2017-06-19 00:13:48 -0700</bug_when>
    <thetext>Comment on attachment 310369
Patch

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

&gt;&gt;&gt; Source/WebCore/ChangeLog:10
&gt;&gt;&gt; +        commit introduce a runtime flag forcing frame flattening to &quot;partially enabled&quot;.
&gt;&gt; 
&gt;&gt; Why can&apos;t the tests just change the Settting? I don&apos;t see the new for a runtime enabled feature for this.
&gt; 
&gt; I think the idea was to have this feature for developers and beta testers to easily experiment the feature. I see runtime flags appear in a menu on macOS (and safari tech preview) but I&apos;m not sure how it would work on iOS?
&gt; 
&gt; Anyway, maybe I did not understand your comment here:
&gt; https://bugs.webkit.org/show_bug.cgi?id=171914#c3
&gt; &quot;It would be nice to have this an an Experimental Feature (in the WebKit2 sense, like WebGPU).&quot;
&gt; What did you mean?

After discussion with Simon, it seems we do not want &quot;runtime flag&quot; (deprecated) just &quot;experimental feature&quot; (similar to SpringTimingFunctionEnabled). So I&apos;m going to WONTFIX this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310369</attachid>
            <date>2017-05-17 03:21:17 -0700</date>
            <delta_ts>2017-06-19 00:12:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Bug-172107-Add-runtime-flag-for-partial-frame-flatte.patch</filename>
            <type>text/plain</type>
            <size>32781</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">RnJvbSBlOTZhNThlNTA4N2M4YWI1NzUzYjQzN2UyNWRiMjBmYzI0NGZkOTMxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGcmVkZXJpYyBXYW5nIDxmcmVkLndhbmdAZnJlZS5mcj4KRGF0
ZTogV2VkLCAxNyBNYXkgMjAxNyAxMjoxOTo0MCArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIEJ1ZyAx
NzIxMDcgLSBBZGQgcnVudGltZSBmbGFnIGZvciBwYXJ0aWFsIGZyYW1lIGZsYXR0ZW5pbmcKCi0t
LQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAx
NiArKysrKysrKysrCiAuLi51cmUtZm9yY2UtcGFydGlhbC1mcmFtZS1mbGF0dGVuaW5nLWV4cGVj
dGVkLnR4dCB8ICA2ICsrKysKIC4uLnRhbC1mZWF0dXJlLWZvcmNlLXBhcnRpYWwtZnJhbWUtZmxh
dHRlbmluZy5odG1sIHwgMzQgKysrKysrKysrKysrKysrKysrKysKIC4uLi9mbGF0dGVuaW5nL3Nl
dC1wcmVmZXJlbmNlLXBhcnRpYWwtZXhwZWN0ZWQudHh0IHwgIDYgKysrKwogLi4uL2ZyYW1lcy9m
bGF0dGVuaW5nL3NldC1wcmVmZXJlbmNlLXBhcnRpYWwuaHRtbCAgfCAzNCArKysrKysrKysrKysr
KysrKysrKwogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAzNyArKysrKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5jcHAgICAgICAgICAgICAgICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9wYWdlL1J1
bnRpbWVFbmFibGVkRmVhdHVyZXMuaCAgICAgICB8ICA1ICsrKwogU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5ncy5jcHAgICAgICAgICAgICAgICAgICAgfCAgNiArKysrCiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmggICAgICAgICAgICAgICAgICAgICB8ICAyICsrCiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuY3BwICAgICAgICB8ICAyICstCiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySUZyYW1lLmNwcCAgICAgICAgICB8ICA0ICstLQogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwICAgICAgICAgICAgfCAgMiArLQog
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcCAgICAgICAgfCAgNyAr
KysrCiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaCAgICAgICAgICB8
ICAyICsrCiBTb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsICAgICAg
ICB8ICAxICsKIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgIHwgMTggKysrKysrKysrKysKIC4uLi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5j
ZUtleXNQcml2YXRlLmggIHwgIDEgKwogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVm
ZXJlbmNlcy5tbSAgICAgICAgfCAxMSArKysrKysrCiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oICB8ICAzICsrCiBTb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0gICAgICAgICAgICAgICB8ICAyICsrCiBTb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE2ICsrKysrKysrKysKIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmggIHwgIDEgKwogLi4uL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwICAgfCAgMyArKwogLi4u
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCAgfCAgMiArLQog
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwICAgICAgfCAgMiAr
KwogVG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAx
NyArKysrKysrKysrCiBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0g
ICAgICAgICB8ICAyICsrCiAuLi4vSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwICAg
ICAgICAgICAgICB8ICAyICsrCiAuLi4vV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmNwcCB8ICA3ICsrKysKIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5oIHwgIDEgKwogMzEgZmlsZXMgY2hhbmdlZCwgMjQ4IGluc2VydGlv
bnMoKyksIDYgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvZmFz
dC9mcmFtZXMvZmxhdHRlbmluZy9zZXQtZXhwZXJpbWVudGFsLWZlYXR1cmUtZm9yY2UtcGFydGlh
bC1mcmFtZS1mbGF0dGVuaW5nLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91
dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvc2V0LWV4cGVyaW1lbnRhbC1mZWF0dXJlLWZv
cmNlLXBhcnRpYWwtZnJhbWUtZmxhdHRlbmluZy5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvc2V0LXByZWZlcmVu
Y2UtcGFydGlhbC1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9zZXQtcHJlZmVyZW5jZS1wYXJ0aWFs
Lmh0bWwKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggYzMwZjVhZTIwZGIuLjBiYjhmYjAxOTAzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTkgQEAKKzIwMTctMDUtMTcgIEZyZWRlcmljIFdhbmcgIDxmd2FuZ0BpZ2FsaWEuY29tPgorCisg
ICAgICAgIEFkZCBydW50aW1lIGZsYWcgZm9yIHBhcnRpYWwgZnJhbWUgZmxhdHRlbmluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMTA3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3RzIGZv
ciB0aGUgImZvcmNlIHBhcnRpYWwgZnJhbWUgZmxhdHRlbmluZyIgcnVudGltZSBmbGFnLgorICAg
ICAgICBUaGlzIGlzIHZlcmlmaWVkIHVzaW5nIGJvdGggdGVzdFJ1bm5lci5vdmVycmlkZVByZWZl
cmVuY2UgYW5kIHRoZSBpbnRlcm5hbHMuc2V0dGluZ3Mgc2V0dGVyLgorICAgICAgICBUaGVzZSB0
ZXN0cyBjb3ZlciB0aGUgY2FzZXMgd2hlbiB0aGUgZnJhbWUgZmxhdHRlbmluZyBzZXR0aW5ncyBp
cyBmdWxseSBlbmFibGVkIG9yIGRpc2FibGVkLgorCisgICAgICAgICogZmFzdC9mcmFtZXMvZmxh
dHRlbmluZy9zZXQtZXhwZXJpbWVudGFsLWZlYXR1cmUtZm9yY2UtcGFydGlhbC1mcmFtZS1mbGF0
dGVuaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mcmFtZXMvZmxhdHRl
bmluZy9zZXQtZXhwZXJpbWVudGFsLWZlYXR1cmUtZm9yY2UtcGFydGlhbC1mcmFtZS1mbGF0dGVu
aW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L2ZyYW1lcy9mbGF0
dGVuaW5nL3NldC1wcmVmZXJlbmNlLXBhcnRpYWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9zZXQtcHJlZmVyZW5jZS1w
YXJ0aWFsLmh0bWw6IEFkZGVkLgorCiAyMDE3LTA1LTE0IEZyZWRlcmljIFdhbmcgIDxmd2FuZ0Bp
Z2FsaWEuY29tPgogCiAgICAgICAgIEFkZCBoZXVyaXN0aWMgdG8gYXZvaWQgZmxhdHRlbmluZyAi
ZnVsbHNjcmVlbiIgaWZyYW1lcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMv
ZmxhdHRlbmluZy9zZXQtZXhwZXJpbWVudGFsLWZlYXR1cmUtZm9yY2UtcGFydGlhbC1mcmFtZS1m
bGF0dGVuaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5p
bmcvc2V0LWV4cGVyaW1lbnRhbC1mZWF0dXJlLWZvcmNlLXBhcnRpYWwtZnJhbWUtZmxhdHRlbmlu
Zy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjFm
OWMyMGRiOWNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZmxh
dHRlbmluZy9zZXQtZXhwZXJpbWVudGFsLWZlYXR1cmUtZm9yY2UtcGFydGlhbC1mcmFtZS1mbGF0
dGVuaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKyAgCisKK1BBU1Mgc2ltcGxlIGlm
cmFtZSAKK1BBU1MgZnVsbHNjcmVlbiBpZnJhbWUgCitQQVNTIG5vbi1zY3JvbGxpbmcgaWZyYW1l
IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL3NldC1l
eHBlcmltZW50YWwtZmVhdHVyZS1mb3JjZS1wYXJ0aWFsLWZyYW1lLWZsYXR0ZW5pbmcuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvc2V0LWV4cGVyaW1lbnRhbC1mZWF0
dXJlLWZvcmNlLXBhcnRpYWwtZnJhbWUtZmxhdHRlbmluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yNzBkZWVjZDcxYwotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvc2V0LWV4cGVyaW1lbnRhbC1mZWF0dXJl
LWZvcmNlLXBhcnRpYWwtZnJhbWUtZmxhdHRlbmluZy5odG1sCkBAIC0wLDAgKzEsMzQgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+VGhpcyB0ZXN0cyBzZXR0
aW5nIHRoZSBydW50aW1lIGVuYWJsZWQgZmVhdHVyZSAiZm9yY2UgcGFydGlhbCBmcmFtZSBmbGF0
dGVuaW5nIjwvdGl0bGU+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiLz4KKyAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAg
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEZyYW1lRmxhdHRlbmluZygiRnVsbHlFbmFibGVkIik7
CisgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRGb3JjZVBhcnRpYWxGcmFtZUZsYXR0ZW5p
bmdFbmFibGVkKHRydWUpOworICAgICAgfQorCisgICAgICBzZXR1cCh7ZXhwbGljaXRfZG9uZTog
dHJ1ZX0pOworICAgICAgZnVuY3Rpb24gaXNVbmZsYXR0ZW4oaWQpIHsKKyAgICAgICAgdmFyIGlm
cmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKKyAgICAgICAgdmFyIGlmcmFtZUJv
eCA9IGlmcmFtZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgICAgdmFyIGlubmVyRGl2
Qm94ID0gaWZyYW1lLmNvbnRlbnREb2N1bWVudC5ib2R5LmZpcnN0RWxlbWVudENoaWxkLmdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICByZXR1cm4gaWZyYW1lQm94LndpZHRoIDwgaW5u
ZXJEaXZCb3gud2lkdGggJiYgaWZyYW1lQm94LmhlaWdodCA8IGlubmVyRGl2Qm94LmhlaWdodDsK
KyAgICAgIH0KKyAgICAgIGZ1bmN0aW9uIHN0YXJ0KCkgeworICAgICAgICB0ZXN0KGZ1bmN0aW9u
KCkgeyBhc3NlcnRfZmFsc2UoaXNVbmZsYXR0ZW4oImlmcmFtZTAiKSk7IH0sICJzaW1wbGUgaWZy
YW1lIik7CisgICAgICAgIHRlc3QoZnVuY3Rpb24oKSB7IGFzc2VydF90cnVlKGlzVW5mbGF0dGVu
KCJpZnJhbWUxIikpOyB9LCAiZnVsbHNjcmVlbiBpZnJhbWUiKTsKKyAgICAgICAgdGVzdChmdW5j
dGlvbigpIHsgYXNzZXJ0X3RydWUoaXNVbmZsYXR0ZW4oImlmcmFtZTIiKSk7IH0sICJub24tc2Ny
b2xsaW5nIGlmcmFtZSIpOworICAgICAgICBkb25lKCk7CisgICAgICB9CisgICAgPC9zY3JpcHQ+
CisgIDwvaGVhZD4KKyAgPGJvZHkgb25sb2FkPSJzdGFydCgpIj4KKyAgICA8aWZyYW1lIGlkPSJp
ZnJhbWUwIiBzdHlsZT0iYmFja2dyb3VuZDogYmx1ZTsgd2lkdGg6IDUwcHg7IGhlaWdodDogNTBw
eDsiIHNjcm9sbGluZz0ieWVzIiBzcmNkb2M9IiZsdDtkaXYgc3R5bGU9J3dpZHRoOiAxMDAwcHg7
IGhlaWdodDogMTAwMHB4OycmZ3Q7Jmx0Oy9kaXYmZ3Q7Ij48L2lmcmFtZT4KKyAgICA8aWZyYW1l
IGlkPSJpZnJhbWUxIiBzdHlsZT0iYmFja2dyb3VuZDogY3lhbjsgcG9zaXRpb246IGFic29sdXRl
OyB3aWR0aDogMTAwdnc7IGhlaWdodDogMTAwdmg7IiBzY3JvbGxpbmc9InllcyIgc3JjZG9jPSIm
bHQ7ZGl2IHN0eWxlPSd3aWR0aDogMTAwMHB4OyBoZWlnaHQ6IDEwMDBweDsnJmd0OyZsdDsvZGl2
Jmd0OyI+PC9pZnJhbWU+CisgICAgPGlmcmFtZSBpZD0iaWZyYW1lMiIgc3R5bGU9ImJhY2tncm91
bmQ6IHllbGxvdzsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4OyIgc2Nyb2xsaW5nPSJubyIg
c3JjZG9jPSImbHQ7ZGl2IHN0eWxlPSd3aWR0aDogMTAwMHB4OyBoZWlnaHQ6IDEwMDBweDsnJmd0
OyZsdDsvZGl2Jmd0OyI+PC9pZnJhbWU+CisgIDwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL3NldC1wcmVm
ZXJlbmNlLXBhcnRpYWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zh
c3QvZnJhbWVzL2ZsYXR0ZW5pbmcvc2V0LXByZWZlcmVuY2UtcGFydGlhbC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjFmOWMyMGRiOWNkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZnJhbWVzL2ZsYXR0
ZW5pbmcvc2V0LXByZWZlcmVuY2UtcGFydGlhbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBA
CisgIAorCitQQVNTIHNpbXBsZSBpZnJhbWUgCitQQVNTIGZ1bGxzY3JlZW4gaWZyYW1lIAorUEFT
UyBub24tc2Nyb2xsaW5nIGlmcmFtZSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvc2V0LXByZWZlcmVuY2UtcGFydGlhbC5odG1s
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvc2V0LXBy
ZWZlcmVuY2UtcGFydGlhbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi4zNWJkMzU3ZDA4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL3NldC1wcmVmZXJlbmNlLXBhcnRpYWwuaHRtbApA
QCAtMCwwICsxLDM0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHRp
dGxlPlRoaXMgdGVzdHMgc2V0dGluZyB0aGUgcnVudGltZSBlbmFibGVkIGZlYXR1cmUgImZvcmNl
IHBhcnRpYWwgZnJhbWUgZmxhdHRlbmluZyI8L3RpdGxlPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0
Zi04Ii8+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzICYmIHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRl
c3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRGb3JjZVBhcnRpYWxGcmFtZUZsYXR0
ZW5pbmdFbmFibGVkIiwgIjEiKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEZyYW1l
RmxhdHRlbmluZygiRGlzYWJsZWQiKTsKKyAgICAgIH0KKworICAgICAgc2V0dXAoe2V4cGxpY2l0
X2RvbmU6IHRydWV9KTsKKyAgICAgIGZ1bmN0aW9uIGlzVW5mbGF0dGVuKGlkKSB7CisgICAgICAg
IHZhciBpZnJhbWUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CisgICAgICAgIHZhciBp
ZnJhbWVCb3ggPSBpZnJhbWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgICAgIHZhciBp
bm5lckRpdkJveCA9IGlmcmFtZS5jb250ZW50RG9jdW1lbnQuYm9keS5maXJzdEVsZW1lbnRDaGls
ZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICAgICAgcmV0dXJuIGlmcmFtZUJveC53aWR0
aCA8IGlubmVyRGl2Qm94LndpZHRoICYmIGlmcmFtZUJveC5oZWlnaHQgPCBpbm5lckRpdkJveC5o
ZWlnaHQ7CisgICAgICB9CisgICAgICBmdW5jdGlvbiBzdGFydCgpIHsKKyAgICAgICAgdGVzdChm
dW5jdGlvbigpIHsgYXNzZXJ0X2ZhbHNlKGlzVW5mbGF0dGVuKCJpZnJhbWUwIikpOyB9LCAic2lt
cGxlIGlmcmFtZSIpOworICAgICAgICB0ZXN0KGZ1bmN0aW9uKCkgeyBhc3NlcnRfdHJ1ZShpc1Vu
ZmxhdHRlbigiaWZyYW1lMSIpKTsgfSwgImZ1bGxzY3JlZW4gaWZyYW1lIik7CisgICAgICAgIHRl
c3QoZnVuY3Rpb24oKSB7IGFzc2VydF90cnVlKGlzVW5mbGF0dGVuKCJpZnJhbWUyIikpOyB9LCAi
bm9uLXNjcm9sbGluZyBpZnJhbWUiKTsKKyAgICAgICAgZG9uZSgpOworICAgICAgfQorICAgIDwv
c2NyaXB0PgorICA8L2hlYWQ+CisgIDxib2R5IG9ubG9hZD0ic3RhcnQoKSI+CisgICAgPGlmcmFt
ZSBpZD0iaWZyYW1lMCIgc3R5bGU9ImJhY2tncm91bmQ6IGJsdWU7IHdpZHRoOiA1MHB4OyBoZWln
aHQ6IDUwcHg7IiBzY3JvbGxpbmc9InllcyIgc3JjZG9jPSImbHQ7ZGl2IHN0eWxlPSd3aWR0aDog
MTAwMHB4OyBoZWlnaHQ6IDEwMDBweDsnJmd0OyZsdDsvZGl2Jmd0OyI+PC9pZnJhbWU+CisgICAg
PGlmcmFtZSBpZD0iaWZyYW1lMSIgc3R5bGU9ImJhY2tncm91bmQ6IGN5YW47IHBvc2l0aW9uOiBh
YnNvbHV0ZTsgd2lkdGg6IDEwMHZ3OyBoZWlnaHQ6IDEwMHZoOyIgc2Nyb2xsaW5nPSJ5ZXMiIHNy
Y2RvYz0iJmx0O2RpdiBzdHlsZT0nd2lkdGg6IDEwMDBweDsgaGVpZ2h0OiAxMDAwcHg7JyZndDsm
bHQ7L2RpdiZndDsiPjwvaWZyYW1lPgorICAgIDxpZnJhbWUgaWQ9ImlmcmFtZTIiIHN0eWxlPSJi
YWNrZ3JvdW5kOiB5ZWxsb3c7IHdpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsiIHNjcm9sbGlu
Zz0ibm8iIHNyY2RvYz0iJmx0O2RpdiBzdHlsZT0nd2lkdGg6IDEwMDBweDsgaGVpZ2h0OiAxMDAw
cHg7JyZndDsmbHQ7L2RpdiZndDsiPjwvaWZyYW1lPgorICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggMzk3MWFiM2Y5ZWUuLjBiMDRmYjVmYjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NDAgQEAKKzIwMTctMDUtMTcgIEZyZWRlcmljIFdhbmcgIDxmd2FuZ0BpZ2FsaWEuY29tPgorCisg
ICAgICAgIEFkZCBydW50aW1lIGZsYWcgZm9yIHBhcnRpYWwgZnJhbWUgZmxhdHRlbmluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMTA3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gYnVnIDE3MTkx
NCwgdGhlIGZyYW1lIGZsYXR0ZW5pbmcgc2V0dGluZyBpcyBjaGFuZ2VkIHRvIGEgdGhyZWUtc3Rh
dGVzIGVudW06IGRpc2FibGVkLAorICAgICAgICBwYXJ0aWFsbHkgZW5hYmxlZCBhbmQgZnVsbHkg
ZW5hYmxlZC4gSW4gb3JkZXIgdG8gZWFzaWx5IHRlc3QgcGFydGlhbCBmcmFtZSBmbGF0dGVuaW5n
LCB0aGlzCisgICAgICAgIGNvbW1pdCBpbnRyb2R1Y2UgYSBydW50aW1lIGZsYWcgZm9yY2luZyBm
cmFtZSBmbGF0dGVuaW5nIHRvICJwYXJ0aWFsbHkgZW5hYmxlZCIuCisKKyAgICAgICAgVGVzdHM6
IGZhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvc2V0LWV4cGVyaW1lbnRhbC1mZWF0dXJlLWZvcmNlLXBh
cnRpYWwtZnJhbWUtZmxhdHRlbmluZy5odG1sCisgICAgICAgICAgICAgICBwbGF0Zm9ybS9tYWMv
ZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9zZXQtcHJlZmVyZW5jZS1wYXJ0aWFsLmh0bWwKKworICAg
ICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6
ZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCk6IFVzZSBhY3R1YWxGcmFtZUZsYXR0ZW5pbmcuCisgICAg
ICAgICogcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6IERlZmluZSAiRm9yY2VQYXJ0aWFs
RnJhbWVGbGF0dGVuaW5nIiBtZW1iZXJzIChib29sZWFuIHdpdGgKKyAgICAgICAgaXRzIHNldHRl
ciBhbmQgZ2V0dGVyKS4KKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OnNldEZvcmNlUGFydGlhbEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6Zm9yY2VQYXJ0aWFsRnJhbWVGbGF0dGVuaW5nRW5h
YmxlZCk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
ZXR0aW5nczo6YWN0dWFsRnJhbWVGbGF0dGVuaW5nKTogTmV3IGZ1bmN0aW9uIHRvIGdldCB0aGUg
ZnJhbWUgZmxhdHRlbmluZyB2YWx1ZSwKKyAgICAgICAgZm9yY2luZyB0byBGcmFtZUZsYXR0ZW5p
bmdQYXJ0aWFsbHlFbmFibGVkIHdoZW4gdGhlICJGb3JjZVBhcnRpYWxGcmFtZUZsYXR0ZW5pbmci
IGlzIGVuYWJsZWQuCisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOiBEZWNsYXJlIGFjdHVhbEZy
YW1lRmxhdHRlbmluZy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRnJhbWVTZXQ6OmZsYXR0ZW5GcmFtZVNldCk6IFVzZSBh
Y3R1YWxGcmFtZUZsYXR0ZW5pbmcuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklGcmFtZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJRnJhbWU6OmZsYXR0ZW5GcmFtZSk6IERpdHRv
LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lRmxhdHRlbmluZ0xheW91dERpc2FsbG93ZXI6OkZyYW1lRmxhdHRlbmluZ0xheW91dERp
c2FsbG93ZXIpOiBEaXR0by4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3Bw
OiBBZGQgc2V0dGVyIGFuZCBiYWNrdXAgZm9yICJGb3JjZVBhcnRpYWxGcmFtZUZsYXR0ZW5pbmci
LgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpCYWNrdXApOgor
ICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpyZXN0b3JlVG8pOgor
ICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6c2V0Rm9yY2VQYXJ0aWFsRnJhbWVG
bGF0dGVuaW5nRW5hYmxlZCk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmg6
IERlY2xhcmUgIkZvcmNlUGFydGlhbEZyYW1lRmxhdHRlbmluZyIgbWVtYmVycy4KKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsOiBFeHBvc2UgInNldEZvcmNlUGFydGlhbEZy
YW1lRmxhdHRlbmluZ0VuYWJsZWQiIGZ1bmN0aW9uLgorCiAyMDE3LTA1LTE0IEZyZWRlcmljIFdh
bmcgIDxmd2FuZ0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEFkZCBoZXVyaXN0aWMgdG8gYXZvaWQg
ZmxhdHRlbmluZyAiZnVsbHNjcmVlbiIgaWZyYW1lcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3Bw
CmluZGV4IDRiZDllNzQ0MTUxLi40YjgxMzYyOTc5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmNwcApAQCAtNTY3LDcgKzU2Nyw3IEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRNYXJnaW5IZWlnaHQo
TGF5b3V0VW5pdCBoKQogCiBib29sIEZyYW1lVmlldzo6ZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCgp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIGZyYW1lKCkuc2V0dGluZ3MoKS5mcmFtZUZsYXR0ZW5pbmco
KSAhPSBGcmFtZUZsYXR0ZW5pbmdEaXNhYmxlZDsKKyAgICByZXR1cm4gZnJhbWUoKS5zZXR0aW5n
cygpLmFjdHVhbEZyYW1lRmxhdHRlbmluZygpICE9IEZyYW1lRmxhdHRlbmluZ0Rpc2FibGVkOwog
fQogCiBib29sIEZyYW1lVmlldzo6aXNGcmFtZUZsYXR0ZW5pbmdWYWxpZEZvclRoaXNGcmFtZSgp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVh
dHVyZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCmlu
ZGV4IDYxODExZTRkMjA2Li5jYmM5ZDE0ZmMxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9S
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKQEAgLTE5OCw2ICsxOTgsOSBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBzdWJ0bGVDcnlwdG9FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc1N1YnRsZUNyeXB0
b0VuYWJsZWQ7IH0KICNlbmRpZgogCisgICAgdm9pZCBzZXRGb3JjZVBhcnRpYWxGcmFtZUZsYXR0
ZW5pbmdFbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1fZm9yY2VQYXJ0aWFsRnJhbWVGbGF0dGVu
aW5nRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQorICAgIGJvb2wgZm9yY2VQYXJ0aWFsRnJhbWVGbGF0
dGVuaW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9yY2VQYXJ0aWFsRnJhbWVGbGF0dGVu
aW5nRW5hYmxlZDsgfQorCiAjaWYgRU5BQkxFKFZJREVPKQogICAgIGJvb2wgYXVkaW9FbmFibGVk
KCkgY29uc3Q7CiAgICAgYm9vbCBodG1sTWVkaWFFbGVtZW50RW5hYmxlZCgpIGNvbnN0OwpAQCAt
MzI1LDYgKzMyOCw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzU3VidGxlQ3J5cHRvRW5hYmxl
ZCB7IHRydWUgfTsKICNlbmRpZgogCisgICAgYm9vbCBtX2ZvcmNlUGFydGlhbEZyYW1lRmxhdHRl
bmluZ0VuYWJsZWQgeyBmYWxzZSB9OworCiAgICAgZnJpZW5kIGNsYXNzIFdURjo6TmV2ZXJEZXN0
cm95ZWQ8UnVudGltZUVuYWJsZWRGZWF0dXJlcz47CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
Y3BwCmluZGV4IDBlYWY1MjZlYjk5Li5kZjIzNzEzZmYzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFn
ZUNhY2hlLmgiCiAjaW5jbHVkZSAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmgiCisjaW5jbHVk
ZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlN0b3JhZ2VNYXAuaCIKICNp
bmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CkBAIC00MjUs
NiArNDI2LDExIEBAIHZvaWQgU2V0dGluZ3M6OnNldEZvcmNlUGVuZGluZ1dlYkdMUG9saWN5KGJv
b2wgZm9yY2VkKQogICAgIG1fZm9yY2VQZW5kaW5nV2ViR0xQb2xpY3kgPSBmb3JjZWQ7CiB9CiAK
K0ZyYW1lRmxhdHRlbmluZyBTZXR0aW5nczo6YWN0dWFsRnJhbWVGbGF0dGVuaW5nKCkKK3sKKyAg
ICByZXR1cm4gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5mb3JjZVBh
cnRpYWxGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKCkgPyBGcmFtZUZsYXR0ZW5pbmdQYXJ0aWFsbHlF
bmFibGVkIDogZnJhbWVGbGF0dGVuaW5nKCk7Cit9CisKIHZvaWQgU2V0dGluZ3M6OnNldFBsdWdp
bnNFbmFibGVkKGJvb2wgYXJlUGx1Z2luc0VuYWJsZWQpCiB7CiAgICAgaWYgKG1fYXJlUGx1Z2lu
c0VuYWJsZWQgPT0gYXJlUGx1Z2luc0VuYWJsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKaW5kZXgg
Mzc4NzZlMjE1OWIuLjJmODhjNDY3ZmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCkBAIC0zMzIs
NiArMzMyLDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Rm9yY2VQZW5k
aW5nV2ViR0xQb2xpY3koYm9vbCk7CiAgICAgYm9vbCBpc0ZvcmNlUGVuZGluZ1dlYkdMUG9saWN5
KCkgY29uc3QgeyByZXR1cm4gbV9mb3JjZVBlbmRpbmdXZWJHTFBvbGljeTsgfQogCisgICAgV0VC
Q09SRV9FWFBPUlQgRnJhbWVGbGF0dGVuaW5nIGFjdHVhbEZyYW1lRmxhdHRlbmluZygpOworCiAg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGUo
Ym9vbCk7CiAgICAgc3RhdGljIGJvb2wgYWxsb3dzQW55U1NMQ2VydGlmaWNhdGUoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lU2V0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHAKaW5kZXggYTEwZjZiZjFm
MjguLjI0NGY4ZjIyNjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRnJhbWVTZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFt
ZVNldC5jcHAKQEAgLTY1MSw3ICs2NTEsNyBAQCB2b2lkIFJlbmRlckZyYW1lU2V0Ojpwb3NpdGlv
bkZyYW1lc1dpdGhGbGF0dGVuaW5nKCkKIAogYm9vbCBSZW5kZXJGcmFtZVNldDo6ZmxhdHRlbkZy
YW1lU2V0KCkgY29uc3QKIHsKLSAgICByZXR1cm4gc2V0dGluZ3MoKS5mcmFtZUZsYXR0ZW5pbmco
KSAhPSBGcmFtZUZsYXR0ZW5pbmdEaXNhYmxlZDsKKyAgICByZXR1cm4gc2V0dGluZ3MoKS5hY3R1
YWxGcmFtZUZsYXR0ZW5pbmcoKSAhPSBGcmFtZUZsYXR0ZW5pbmdEaXNhYmxlZDsKIH0KIAogdm9p
ZCBSZW5kZXJGcmFtZVNldDo6c3RhcnRSZXNpemluZyhHcmlkQXhpcyYgYXhpcywgaW50IHBvc2l0
aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklGcmFtZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySUZyYW1lLmNwcAppbmRleCA4Yzky
MjZjMWU5Yi4uNzAyOGI2OTYyMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJ
RnJhbWUuY3BwCkBAIC03MSw3ICs3MSw3IEBAIFJlbmRlclZpZXcqIFJlbmRlcklGcmFtZTo6Y29u
dGVudFJvb3RSZW5kZXJlcigpIGNvbnN0CiAKIGJvb2wgUmVuZGVySUZyYW1lOjpmbGF0dGVuRnJh
bWUoKSBjb25zdAogewotICAgIGlmIChzZXR0aW5ncygpLmZyYW1lRmxhdHRlbmluZygpID09IEZy
YW1lRmxhdHRlbmluZ0Rpc2FibGVkKQorICAgIGlmIChzZXR0aW5ncygpLmFjdHVhbEZyYW1lRmxh
dHRlbmluZygpID09IEZyYW1lRmxhdHRlbmluZ0Rpc2FibGVkKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICBpZiAoc3R5bGUoKS53aWR0aCgpLmlzRml4ZWQoKSAmJiBzdHlsZSgpLmhlaWdo
dCgpLmlzRml4ZWQoKSkgewpAQCAtODIsNyArODIsNyBAQCBib29sIFJlbmRlcklGcmFtZTo6Zmxh
dHRlbkZyYW1lKCkgY29uc3QKICAgICAgICAgaWYgKHN0eWxlKCkud2lkdGgoKS52YWx1ZSgpIDw9
IDAgfHwgc3R5bGUoKS5oZWlnaHQoKS52YWx1ZSgpIDw9IDApCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICAgICAgaWYgKHNldHRpbmdzKCkuZnJhbWVGbGF0dGVuaW5nKCkgPT0gRnJh
bWVGbGF0dGVuaW5nUGFydGlhbGx5RW5hYmxlZCkgeworICAgICAgICBpZiAoc2V0dGluZ3MoKS5h
Y3R1YWxGcmFtZUZsYXR0ZW5pbmcoKSA9PSBGcmFtZUZsYXR0ZW5pbmdQYXJ0aWFsbHlFbmFibGVk
KSB7CiAgICAgICAgICAgICAvLyBTb21lIGF1dGhvcnMgaW1wbGVtZW50IGZ1bGxzY3JlZW4gcG9w
dXBzIGFzIG91dC1vZi1mbG93IGlmcmFtZXMgd2l0aCBzaXplIHNldCB0byBmdWxsIHZpZXdwb3J0
ICh1c2luZyB2dy92aCB1bml0cykuCiAgICAgICAgICAgICAvLyBEbyBub3QgZmxhdHRlbiBzdWNo
IGlmcmFtZXMgb3IgdGhleSBjb3VsZCBiZWNvbWUgbGFyZ2VyIHRoYW4gdGhlIHZpZXdwb3J0Lgog
ICAgICAgICAgICAgaWYgKHN0eWxlKCkuaGFzT3V0T2ZGbG93UG9zaXRpb24oKSAmJiBzdHlsZSgp
Lmhhc1ZpZXdwb3J0VW5pdHMoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNw
cAppbmRleCA1MjNiYzZhNjIxYi4uODQ1NzNkZGJkOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVmlldy5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
c3RydWN0IEZyYW1lRmxhdHRlbmluZ0xheW91dERpc2FsbG93ZXIgewogICAgIEZyYW1lRmxhdHRl
bmluZ0xheW91dERpc2FsbG93ZXIoRnJhbWVWaWV3JiBmcmFtZVZpZXcpCiAgICAgICAgIDogbV9m
cmFtZVZpZXcoZnJhbWVWaWV3KQotICAgICAgICAsIG1fZGlzYWxsb3dMYXlvdXQoZnJhbWVWaWV3
LmZyYW1lKCkuc2V0dGluZ3MoKS5mcmFtZUZsYXR0ZW5pbmcoKSAhPSBGcmFtZUZsYXR0ZW5pbmdE
aXNhYmxlZCkKKyAgICAgICAgLCBtX2Rpc2FsbG93TGF5b3V0KGZyYW1lVmlldy5mcmFtZSgpLnNl
dHRpbmdzKCkuYWN0dWFsRnJhbWVGbGF0dGVuaW5nKCkgIT0gRnJhbWVGbGF0dGVuaW5nRGlzYWJs
ZWQpCiAgICAgewogICAgICAgICBpZiAobV9kaXNhbGxvd0xheW91dCkKICAgICAgICAgICAgIG1f
ZnJhbWVWaWV3LnN0YXJ0RGlzYWxsb3dpbmdMYXlvdXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCmluZGV4IDYyNmUzZmZkMzNkLi44MDZlYjllMDFhZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCkBAIC0xMDks
NiArMTA5LDcgQEAgSW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpCYWNrdXAoU2V0dGluZ3MmIHNl
dHRpbmdzKQogI2lmIEVOQUJMRShXRUJHUFUpCiAgICAgLCBtX3dlYkdQVUVuYWJsZWQoUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJHUFVFbmFibGVkKCkpCiAjZW5k
aWYKKyAgICAsIG1fZm9yY2VQYXJ0aWFsRnJhbWVGbGF0dGVuaW5nRW5hYmxlZChSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmZvcmNlUGFydGlhbEZyYW1lRmxhdHRlbmlu
Z0VuYWJsZWQoKSkKIHsKIH0KIApAQCAtMTk4LDYgKzE5OSw3IEBAIHZvaWQgSW50ZXJuYWxTZXR0
aW5nczo6QmFja3VwOjpyZXN0b3JlVG8oU2V0dGluZ3MmIHNldHRpbmdzKQogI2lmIEVOQUJMRShX
RUJHUFUpCiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRX
ZWJHUFVFbmFibGVkKG1fd2ViR1BVRW5hYmxlZCk7CiAjZW5kaWYKKyAgICBSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldEZvcmNlUGFydGlhbEZyYW1lRmxhdHRlbmlu
Z0VuYWJsZWQobV9mb3JjZVBhcnRpYWxGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKTsKIH0KIAogY2xh
c3MgSW50ZXJuYWxTZXR0aW5nc1dyYXBwZXIgOiBwdWJsaWMgU3VwcGxlbWVudDxQYWdlPiB7CkBA
IC03MTMsNiArNzE1LDExIEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0V2ViR1BVRW5hYmxl
ZChib29sIGVuYWJsZWQpCiAjZW5kaWYKIH0KIAordm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRG
b3JjZVBhcnRpYWxGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldEZvcmNlUGFydGlhbEZy
YW1lRmxhdHRlbmluZ0VuYWJsZWQoZW5hYmxlZCk7Cit9CisKIGJvb2wgSW50ZXJuYWxTZXR0aW5n
czo6c2hvdWxkRGlzcGF0Y2hSZXF1ZXN0QW5pbWF0aW9uRnJhbWVFdmVudHMoKQogewogICAgIHJl
dHVybiBzZXR0aW5ncygpLnNob3VsZERpc3BhdGNoUmVxdWVzdEFuaW1hdGlvbkZyYW1lRXZlbnRz
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3Mu
aCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCmluZGV4IDJjMjY5
MDBlN2NkLi41MWYzMzFiMTA3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmgKQEAgLTEyMCw2ICsxMjAsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgc2V0
Q1NTR3JpZExheW91dEVuYWJsZWQoYm9vbCk7CiAgICAgc3RhdGljIHZvaWQgc2V0V2ViR0wyRW5h
YmxlZChib29sKTsKICAgICBzdGF0aWMgdm9pZCBzZXRXZWJHUFVFbmFibGVkKGJvb2wpOworICAg
IHN0YXRpYyB2b2lkIHNldEZvcmNlUGFydGlhbEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoYm9vbCk7
CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgSW50ZXJuYWxTZXR0aW5ncyhQYWdlKik7CkBAIC0x
OTgsNiArMTk5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCBtX2Nzc0dyaWRMYXlvdXRFbmFi
bGVkOwogICAgICAgICBib29sIG1fd2ViR0wyRW5hYmxlZDsKICAgICAgICAgYm9vbCBtX3dlYkdQ
VUVuYWJsZWQ7CisgICAgICAgIGJvb2wgbV9mb3JjZVBhcnRpYWxGcmFtZUZsYXR0ZW5pbmdFbmFi
bGVkOwogICAgIH07CiAKICAgICBQYWdlKiBtX3BhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmlkbAppbmRleCAyZGYzNTMwZmE3NC4uNGM5ZjY4NjA2ZjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKKysr
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbApAQCAtODksNiAr
ODksNyBAQCBlbnVtIEZyYW1lRmxhdHRlbmluZ1ZhbHVlIHsgIkRpc2FibGVkIiwgIlBhcnRpYWxs
eUVuYWJsZWQiLCAiRnVsbHlFbmFibGVkIiB9OwogICAgIHZvaWQgc2V0Q1NTR3JpZExheW91dEVu
YWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKICAgICB2b2lkIHNldFdlYkdMMkVuYWJsZWQoYm9vbGVh
biBlbmFibGVkKTsKICAgICB2b2lkIHNldFdlYkdQVUVuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsK
KyAgICB2b2lkIHNldEZvcmNlUGFydGlhbEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoYm9vbGVhbiBl
bmFibGVkKTsKIAogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gRE9NU3RyaW5nIHVzZXJJbnRlcmZh
Y2VEaXJlY3Rpb25Qb2xpY3koKTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHZvaWQgc2V0VXNl
ckludGVyZmFjZURpcmVjdGlvblBvbGljeShET01TdHJpbmcgcG9saWN5KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZwppbmRleCA2Njk4YzczNTEzMS4uY2QyZjQyNzIyYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxNy0wNS0xNyAgRnJlZGVyaWMgV2FuZyAgPGZ3YW5nQGlnYWxpYS5jb20+
CisKKyAgICAgICAgQWRkIHJ1bnRpbWUgZmxhZyBmb3IgcGFydGlhbCBmcmFtZSBmbGF0dGVuaW5n
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIxMDcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFbnN1cmUg
dGhlIG1hYyBhbmQgaU9TIHByZWZlcmVuY2VzIGhhbmRsZSAiRm9yY2VQYXJ0aWFsRnJhbWVGbGF0
dGVuaW5nRW5hYmxlZCIuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJp
dmF0ZS5oOiBEZWZpbmUga2V5IGZvdCB0aGUgbmV3IGZsYWcuCisgICAgICAgICogV2ViVmlldy9X
ZWJQcmVmZXJlbmNlcy5tbTogRGlzYWJsZSB0aGUgZmxhZyBieSBkZWZhdWx0IGFuZCBkZWZpbmUg
Z2V0dGVyICYgc2V0dGVyLgorICAgICAgICAoK1tXZWJQcmVmZXJlbmNlcyBpbml0aWFsaXplXSk6
CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIGZvcmNlUGFydGlhbEZyYW1lRmxhdHRlbmluZ0Vu
YWJsZWRdKToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgc2V0Rm9yY2VQYXJ0aWFsRnJhbWVG
bGF0dGVuaW5nRW5hYmxlZDpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJp
dmF0ZS5oOiBEZWNsYXJlIHNldHRlciBhbmQgZ2V0dGVyLgorICAgICAgICAqIFdlYlZpZXcvV2Vi
Vmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfcHJlZmVyZW5jZXNDaGFuZ2VkOl0pOiBFbnN1
cmUgdGhlIFdlYlZpZXcgcHJvcGVybHkgc2V0cyB0aGUgcnVudGltZSBmbGFnLgorCiAyMDE3LTA1
LTE0IEZyZWRlcmljIFdhbmcgIDxmd2FuZ0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEFkZCBoZXVy
aXN0aWMgdG8gYXZvaWQgZmxhdHRlbmluZyAiZnVsbHNjcmVlbiIgaWZyYW1lcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5k
ZXggYWJiOWVkZWUyODUuLjk0NWVjNWUwN2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTExNyw2ICsxMTcsNyBA
QAogI2RlZmluZSBXZWJLaXRGb3JjZVdlYkdMVXNlc0xvd1Bvd2VyUHJlZmVyZW5jZUtleSBAIldl
YktpdEZvcmNlV2ViR0xVc2VzTG93UG93ZXIiCiAjZGVmaW5lIFdlYktpdEFjY2VsZXJhdGVkMmRD
YW52YXNFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdEFjY2VsZXJhdGVkMmRDYW52YXNFbmFi
bGVkIgogI2RlZmluZSBXZWJLaXRGcmFtZUZsYXR0ZW5pbmdQcmVmZXJlbmNlS2V5IEAiV2ViS2l0
RnJhbWVGbGF0dGVuaW5nIgorI2RlZmluZSBXZWJLaXRGb3JjZVBhcnRpYWxGcmFtZUZsYXR0ZW5p
bmdFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdEZvcmNlUGFydGlhbEZyYW1lRmxhdHRlbmlu
Z0VuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZFByZWZlcmVu
Y2VLZXkgQCJXZWJLaXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdFBh
Z2luYXRlRHVyaW5nTGF5b3V0RW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRQYWdpbmF0ZUR1
cmluZ0xheW91dEVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdEROU1ByZWZldGNoaW5nRW5hYmxlZFBy
ZWZlcmVuY2VLZXkgQCJXZWJLaXRETlNQcmVmZXRjaGluZ0VuYWJsZWQiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCAwZWU0YmU2MWNhZS4uOGZiMWEz
ZWRkMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5j
ZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQpA
QCAtNTI0LDYgKzUyNCw3IEBAICsgKHZvaWQpaW5pdGlhbGl6ZQogI2Vsc2UKICAgICAgICAgW05T
TnVtYmVyIG51bWJlcldpdGhVbnNpZ25lZEludDpGcmFtZUZsYXR0ZW5pbmdEaXNhYmxlZF0sIFdl
YktpdEZyYW1lRmxhdHRlbmluZ1ByZWZlcmVuY2VLZXksCiAjZW5kaWYKKyAgICAgICAgW05TTnVt
YmVyIG51bWJlcldpdGhCb29sOk5PXSwgICBXZWJLaXRGb3JjZVBhcnRpYWxGcmFtZUZsYXR0ZW5p
bmdFbmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29s
Ok5PXSwgICBXZWJLaXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAg
ICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCAgV2ViS2l0RE5TUHJlZmV0Y2hpbmdF
bmFibGVkUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOk5P
XSwgICBXZWJLaXRGdWxsU2NyZWVuRW5hYmxlZFByZWZlcmVuY2VLZXksCkBAIC0yMTE1LDYgKzIx
MTYsMTYgQEAgLSAodm9pZClzZXRGcmFtZUZsYXR0ZW5pbmc6KHVuc2lnbmVkKWZsYXR0ZW5pbmcK
ICAgICBbc2VsZiBfc2V0VW5zaWduZWRJbnRWYWx1ZTpmbGF0dGVuaW5nIGZvcktleTpXZWJLaXRG
cmFtZUZsYXR0ZW5pbmdQcmVmZXJlbmNlS2V5XTsKIH0KIAorLSAoQk9PTClmb3JjZVBhcnRpYWxG
cmFtZUZsYXR0ZW5pbmdFbmFibGVkCit7CisgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JL
ZXk6V2ViS2l0Rm9yY2VQYXJ0aWFsRnJhbWVGbGF0dGVuaW5nRW5hYmxlZFByZWZlcmVuY2VLZXld
OworfQorCistICh2b2lkKXNldEZvcmNlUGFydGlhbEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQ6KEJP
T0wpZW5hYmxlZAoreworICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZW5hYmxlZCBmb3JLZXk6V2Vi
S2l0Rm9yY2VQYXJ0aWFsRnJhbWVGbGF0dGVuaW5nRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQor
CiAtIChCT09MKWlzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkCiB7CiAgICAgcmV0dXJuIFtzZWxm
IF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkUHJlZmVyZW5j
ZUtleV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1By
aXZhdGUuaAppbmRleCBlY2ZjNGQxMjFmMC4uMDEyMGFlYzBmODYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtMTYyLDYgKzE2
Miw5IEBAIGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXNDYWNoZU1vZGVsQ2hhbmdlZElu
dGVybmFsTm90aWZpY2F0aW9uOwogLSAodW5zaWduZWQpZnJhbWVGbGF0dGVuaW5nOwogLSAodm9p
ZClzZXRGcmFtZUZsYXR0ZW5pbmc6KHVuc2lnbmVkKWZsYWc7CiAKKy0gKEJPT0wpZm9yY2VQYXJ0
aWFsRnJhbWVGbGF0dGVuaW5nRW5hYmxlZDsKKy0gKHZvaWQpc2V0Rm9yY2VQYXJ0aWFsRnJhbWVG
bGF0dGVuaW5nRW5hYmxlZDooQk9PTCllbmFibGVkOworCiAtIChCT09MKWlzU3BhdGlhbE5hdmln
YXRpb25FbmFibGVkOwogLSAodm9pZClzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQ6KEJPT0wp
ZmxhZzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDUwMjNmN2ExZmQ5
Li44NWYwNDg1NGJjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMzA0
OCw2ICszMDQ4LDggQEAgLSAodm9pZClfcHJlZmVyZW5jZXNDaGFuZ2VkOihXZWJQcmVmZXJlbmNl
cyAqKXByZWZlcmVuY2VzCiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVy
ZXMoKS5zZXRTdWJ0bGVDcnlwdG9FbmFibGVkKFtwcmVmZXJlbmNlcyBzdWJ0bGVDcnlwdG9FbmFi
bGVkXSk7CiAjZW5kaWYKIAorICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkuc2V0Rm9yY2VQYXJ0aWFsRnJhbWVGbGF0dGVuaW5nRW5hYmxlZChbcHJlZmVyZW5jZXMg
Zm9yY2VQYXJ0aWFsRnJhbWVGbGF0dGVuaW5nRW5hYmxlZF0pOworCiAgICAgUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRVc2VyVGltaW5nRW5hYmxlZChwcmVmZXJl
bmNlcy51c2VyVGltaW5nRW5hYmxlZCk7CiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hh
cmVkRmVhdHVyZXMoKS5zZXRSZXNvdXJjZVRpbWluZ0VuYWJsZWQocHJlZmVyZW5jZXMucmVzb3Vy
Y2VUaW1pbmdFbmFibGVkKTsKICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0
dXJlcygpLnNldExpbmtQcmVsb2FkRW5hYmxlZChwcmVmZXJlbmNlcy5saW5rUHJlbG9hZEVuYWJs
ZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IDg4OWUyYjU3MWI2Li5iM2RkZmVmOWY5ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE5IEBACisyMDE3LTA1LTE3ICBGcmVkZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlh
LmNvbT4KKworICAgICAgICBBZGQgcnVudGltZSBmbGFnIGZvciBwYXJ0aWFsIGZyYW1lIGZsYXR0
ZW5pbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
MjEwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
U2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaDogQWRkIHJ1bnRpbWUgZmxhZyAiRm9y
Y2VQYXJ0aWFsRnJhbWVGbGF0dGVuaW5nRW5hYmxlZCIuCisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVj
dGVkQnVuZGxlOjpvdmVycmlkZUJvb2xQcmVmZXJlbmNlRm9yVGVzdFJ1bm5lcik6IEVuc3VyZSB0
aGUgcnVudGltZSBmbGFnIGlzCisgICAgICAgIHVwZGF0ZWQgd2hlbiB0aGUgcHJlZmVyZW5jZSBp
cyBvdmVycmlkZW4uCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRz
U2l6ZUNoYW5nZWQpOiBVc2UgYWN0dWFsRnJhbWVGbGF0dGVuaW5nLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBk
YXRlUHJlZmVyZW5jZXMpOiBFbnN1cmUgdGhlIFdlYlBhZ2UgcHJvcGVybHkgc2V0cyB0aGUgcnVu
dGltZSBmbGFnLgorCiAyMDE3LTA1LTE0IEZyZWRlcmljIFdhbmcgIDxmd2FuZ0BpZ2FsaWEuY29t
PgogCiAgICAgICAgIEFkZCBoZXVyaXN0aWMgdG8gYXZvaWQgZmxhdHRlbmluZyAiZnVsbHNjcmVl
biIgaWZyYW1lcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVu
Y2VzRGVmaW5pdGlvbnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0Rl
ZmluaXRpb25zLmgKaW5kZXggNjQ3Yzc0MmI4NWEuLjAzNjI3YTMxNjhiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKQEAgLTM1OCw2
ICszNTgsNyBAQAogICAgIG1hY3JvKFdlYkFuaW1hdGlvbnNFbmFibGVkLCB3ZWJBbmltYXRpb25z
RW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UsICJXZWIgQW5pbWF0aW9ucyIsICJXZWIgQW5pbWF0
aW9ucyBwcm90b3R5cGUiKSBcCiAgICAgbWFjcm8oV2ViR0wyRW5hYmxlZCwgd2ViR0wyRW5hYmxl
ZCwgQm9vbCwgYm9vbCwgZmFsc2UsICJXZWJHTCAyLjAiLCAiV2ViR0wgMiBwcm90b3R5cGUiKSBc
CiAgICAgbWFjcm8oV2ViR1BVRW5hYmxlZCwgd2ViR1BVRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFs
c2UsICJXZWJHUFUiLCAiV2ViR1BVIHByb3RvdHlwZSIpIFwKKyAgICBtYWNybyhGb3JjZVBhcnRp
YWxGcmFtZUZsYXR0ZW5pbmdFbmFibGVkLCBmb3JjZVBhcnRpYWxGcmFtZUZsYXR0ZW5pbmdFbmFi
bGVkLCBCb29sLCBib29sLCBmYWxzZSwgIlBhcnRpYWwgRnJhbWUgRmxhdHRlbmluZyIsICJGb3Jj
ZSBwYXJ0aWFsIGZyYW1lIGZsYXR0ZW5pbmciKSBcCiAgICAgXAogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IDYyYmJjNzg4OWU1Li45YWU3YmEyMWM3YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTIyOSw2ICsyMjksOSBAQCB2b2lkIEluamVjdGVk
QnVuZGxlOjpvdmVycmlkZUJvb2xQcmVmZXJlbmNlRm9yVGVzdFJ1bm5lcihXZWJQYWdlR3JvdXBQ
cm94eSogcGFnZQogICAgICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJl
cygpLnNldFdlYlJUQ0xlZ2FjeUFQSUVuYWJsZWQoZW5hYmxlZCk7CiAjZW5kaWYKIAorICAgIGlm
IChwcmVmZXJlbmNlID09ICJXZWJLaXRGb3JjZVBhcnRpYWxGcmFtZUZsYXR0ZW5pbmdFbmFibGVk
IikKKyAgICAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRG
b3JjZVBhcnRpYWxGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKGVuYWJsZWQpOworCiAgICAgLy8gTWFw
IHRoZSBuYW1lcyB1c2VkIGluIExheW91dFRlc3RzIHdpdGggdGhlIG5hbWVzIHVzZWQgaW4gV2Vi
Q29yZTo6U2V0dGluZ3MgYW5kIFdlYlByZWZlcmVuY2VzU3RvcmUuCiAjZGVmaW5lIEZPUl9FQUNI
X09WRVJSSURFX0JPT0xfUFJFRkVSRU5DRShtYWNybykgXAogICAgIG1hY3JvKFdlYktpdEFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkLCBBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCwg
YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApp
bmRleCA3MzBkMGQzMDYzYi4uOWY0NTcwN2UzOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
QEAgLTU2Miw3ICs1NjIsNyBAQCBQbGF0Zm9ybVBhZ2VDbGllbnQgV2ViQ2hyb21lQ2xpZW50Ojpw
bGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdAogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y29udGVu
dHNTaXplQ2hhbmdlZChGcmFtZSYgZnJhbWUsIGNvbnN0IEludFNpemUmIHNpemUpIGNvbnN0CiB7
Ci0gICAgaWYgKG1fcGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLmZyYW1lRmxhdHRlbmluZygp
ID09IEZyYW1lRmxhdHRlbmluZ0Rpc2FibGVkKSB7CisgICAgaWYgKG1fcGFnZS5jb3JlUGFnZSgp
LT5zZXR0aW5ncygpLmFjdHVhbEZyYW1lRmxhdHRlbmluZygpID09IEZyYW1lRmxhdHRlbmluZ0Rp
c2FibGVkKSB7CiAgICAgICAgIFdlYkZyYW1lKiBsYXJnZXN0RnJhbWUgPSBmaW5kTGFyZ2VzdEZy
YW1lSW5GcmFtZVNldChtX3BhZ2UpOwogICAgICAgICBpZiAobGFyZ2VzdEZyYW1lICE9IG1fY2Fj
aGVkRnJhbWVTZXRMYXJnZXN0RnJhbWUuZ2V0KCkpIHsKICAgICAgICAgICAgIG1fY2FjaGVkRnJh
bWVTZXRMYXJnZXN0RnJhbWUgPSBsYXJnZXN0RnJhbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZmNkNTJjYzYxYzIuLjA4M2Q1Y2YzNmI4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBA
IC0zMzY3LDYgKzMzNjcsOCBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0
IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQogICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OnNoYXJlZEZlYXR1cmVzKCkuc2V0U3VidGxlQ3J5cHRvRW5hYmxlZChzdG9yZS5nZXRCb29sVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnN1YnRsZUNyeXB0b0VuYWJsZWRLZXkoKSkpOwog
I2VuZGlmCiAKKyAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNl
dEZvcmNlUGFydGlhbEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9y
S2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpmb3JjZVBhcnRpYWxGcmFtZUZsYXR0ZW5pbmdFbmFibGVk
S2V5KCkpKTsKKwogICAgIHBsYXRmb3JtUHJlZmVyZW5jZXNEaWRDaGFuZ2Uoc3RvcmUpOwogCiAg
ICAgaWYgKG1fZHJhd2luZ0FyZWEpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggZmJmZmMxNmYwODUuLjhhZDY5MzliZjhjIDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MTctMDUtMTcgIEZyZWRlcmljIFdhbmcgIDxmd2FuZ0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFk
ZCBydW50aW1lIGZsYWcgZm9yIHBhcnRpYWwgZnJhbWUgZmxhdHRlbmluZworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyMTA3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5zdXJlIHRoYXQgdGVzdHMgcnVu
IHdpdGggdGhlICJmb3JjZSBwYXJ0aWFsIGZyYW1lIGZsYXR0ZW5pbmciIGRpc2FibGVkIGJ5IGRl
ZmF1bHQuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06
CisgICAgICAgIChyZXNldFdlYlByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKTogU2V0IGRl
ZmF1bHQgdmFsdWUgdG8gZGlzYWJsZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVu
ZGxlOjpiZWdpblRlc3RpbmcpOiBTZXQgZGVmYXVsdCB2YWx1ZSB0byBkaXNhYmxlZC4KKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOiBEZWZp
bmUgc2V0dGVyLgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzZXRGb3JjZVBhcnRpYWxGcmFt
ZUZsYXR0ZW5pbmdFbmFibGVkKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuaDogRGl0dG8uCisKIDIwMTctMDUtMTQgRnJlZGVyaWMgV2FuZyAg
PGZ3YW5nQGlnYWxpYS5jb20+CiAKICAgICAgICAgQWRkIGhldXJpc3RpYyB0byBhdm9pZCBmbGF0
dGVuaW5nICJmdWxsc2NyZWVuIiBpZnJhbWVzCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVt
cFJlbmRlclRyZWUubW0KaW5kZXggZjMzYmZkN2I2YjEuLjU3MjMwNzIwNWIwIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC05NjAsNiArOTYwLDggQEAg
c3RhdGljIHZvaWQgcmVzZXRXZWJQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcygpCiAKICAg
ICBbcHJlZmVyZW5jZXMgc2V0TGFyZ2VJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkOk5PXTsKIAor
ICAgIFtwcmVmZXJlbmNlcyBzZXRGb3JjZVBhcnRpYWxGcmFtZUZsYXR0ZW5pbmdFbmFibGVkOk5P
XTsKKwogICAgIFtXZWJQcmVmZXJlbmNlcyBfY2xlYXJOZXR3b3JrTG9hZGVyU2Vzc2lvbl07CiAg
ICAgW1dlYlByZWZlcmVuY2VzIF9zZXRDdXJyZW50TmV0d29ya0xvYWRlclNlc3Npb25Db29raWVB
Y2NlcHRQb2xpY3k6TlNIVFRQQ29va2llQWNjZXB0UG9saWN5T25seUZyb21NYWluRG9jdW1lbnRE
b21haW5dOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCBmOWY1ZWJjMDM4OS4uOWZlYzY2ZDk5YjAg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGUuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC0zMzksNiArMzM5LDggQEAgdm9pZCBJbmplY3RlZEJ1bmRs
ZTo6YmVnaW5UZXN0aW5nKFdLRGljdGlvbmFyeVJlZiBzZXR0aW5ncykKIAogICAgIG1fdGVzdFJ1
bm5lci0+c2V0U3VidGxlQ3J5cHRvRW5hYmxlZCh0cnVlKTsKIAorICAgIG1fdGVzdFJ1bm5lci0+
c2V0Rm9yY2VQYXJ0aWFsRnJhbWVGbGF0dGVuaW5nRW5hYmxlZChmYWxzZSk7CisKICAgICBpZiAo
bV90aW1lb3V0ID4gMCkKICAgICAgICAgbV90ZXN0UnVubmVyLT5zZXRDdXN0b21UaW1lb3V0KG1f
dGltZW91dCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDFlODgzYzUyN2FhLi5jY2YxM2UzYmE4ZCAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNw
cAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
Y3BwCkBAIC0zNzMsNiArMzczLDEzIEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0V2ViUlRDTGVnYWN5
QVBJRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgV0tCdW5kbGVPdmVycmlkZUJvb2xQcmVmZXJl
bmNlRm9yVGVzdFJ1bm5lcihpbmplY3RlZEJ1bmRsZS5idW5kbGUoKSwgaW5qZWN0ZWRCdW5kbGUu
cGFnZUdyb3VwKCksIGtleS5nZXQoKSwgZW5hYmxlZCk7CiB9CiAKK3ZvaWQgVGVzdFJ1bm5lcjo6
c2V0Rm9yY2VQYXJ0aWFsRnJhbWVGbGF0dGVuaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCit7Cisg
ICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGtleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZygiV2ViS2l0Rm9yY2VQYXJ0aWFsRnJhbWVGbGF0dGVuaW5nRW5hYmxlZCIp
KTsKKyAgICBhdXRvJiBpbmplY3RlZEJ1bmRsZSA9IEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24o
KTsKKyAgICBXS0J1bmRsZU92ZXJyaWRlQm9vbFByZWZlcmVuY2VGb3JUZXN0UnVubmVyKGluamVj
dGVkQnVuZGxlLmJ1bmRsZSgpLCBpbmplY3RlZEJ1bmRsZS5wYWdlR3JvdXAoKSwga2V5LmdldCgp
LCBlbmFibGVkKTsKK30KKwogdm9pZCBUZXN0UnVubmVyOjpzZXRNb2Rlcm5NZWRpYUNvbnRyb2xz
RW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGtl
eShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiV2ViS2l0TW9kZXJuTWVk
aWFDb250cm9sc0VuYWJsZWQiKSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IDk3OTA4MWE5Y2M0Li5jYmQ5YTVjYmM5NCAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmgKQEAgLTEzMCw2ICsxMzAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTdWJ0bGVDcnlw
dG9FbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0TWVkaWFEZXZpY2VzRW5hYmxlZChib29sKTsK
ICAgICB2b2lkIHNldFdlYlJUQ0xlZ2FjeUFQSUVuYWJsZWQoYm9vbCk7CisgICAgdm9pZCBzZXRG
b3JjZVBhcnRpYWxGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKGJvb2wpOwogCiAgICAgLy8gU3BlY2lh
bCBET00gZnVuY3Rpb25zLgogICAgIHZvaWQgY2xlYXJCYWNrRm9yd2FyZExpc3QoKTsKLS0gCjIu
MTEuMAoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310372</attachid>
            <date>2017-05-17 03:22:56 -0700</date>
            <delta_ts>2017-05-17 03:22:56 -0700</delta_ts>
            <desc>Patch (171914+172107)</desc>
            <filename>a.patch</filename>
            <type>text/plain</type>
            <size>82918</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjYzhhNjIxZWRkOS4uMGJiOGZiMDE5MDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MiBAQAor
MjAxNy0wNS0xNyAgRnJlZGVyaWMgV2FuZyAgPGZ3YW5nQGlnYWxpYS5jb20+CisKKyAgICAgICAg
QWRkIHJ1bnRpbWUgZmxhZyBmb3IgcGFydGlhbCBmcmFtZSBmbGF0dGVuaW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIxMDcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdHMgZm9yIHRoZSAi
Zm9yY2UgcGFydGlhbCBmcmFtZSBmbGF0dGVuaW5nIiBydW50aW1lIGZsYWcuCisgICAgICAgIFRo
aXMgaXMgdmVyaWZpZWQgdXNpbmcgYm90aCB0ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5jZSBh
bmQgdGhlIGludGVybmFscy5zZXR0aW5ncyBzZXR0ZXIuCisgICAgICAgIFRoZXNlIHRlc3RzIGNv
dmVyIHRoZSBjYXNlcyB3aGVuIHRoZSBmcmFtZSBmbGF0dGVuaW5nIHNldHRpbmdzIGlzIGZ1bGx5
IGVuYWJsZWQgb3IgZGlzYWJsZWQuCisKKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9mbGF0dGVuaW5n
L3NldC1leHBlcmltZW50YWwtZmVhdHVyZS1mb3JjZS1wYXJ0aWFsLWZyYW1lLWZsYXR0ZW5pbmct
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL3Nl
dC1leHBlcmltZW50YWwtZmVhdHVyZS1mb3JjZS1wYXJ0aWFsLWZyYW1lLWZsYXR0ZW5pbmcuaHRt
bDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcv
c2V0LXByZWZlcmVuY2UtcGFydGlhbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL21hYy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL3NldC1wcmVmZXJlbmNlLXBhcnRpYWwu
aHRtbDogQWRkZWQuCisKKzIwMTctMDUtMTQgRnJlZGVyaWMgV2FuZyAgPGZ3YW5nQGlnYWxpYS5j
b20+CisKKyAgICAgICAgQWRkIGhldXJpc3RpYyB0byBhdm9pZCBmbGF0dGVuaW5nICJmdWxsc2Ny
ZWVuIiBpZnJhbWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzE5MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGlzIGNvbW1pdCBhZGp1c3RzIHRlc3RzIHRvIHdvcmsgd2hlbiBmcmFtZSBmbGF0dGVu
aW5nIGlzIGFuIGVudW0uCisgICAgICAgIEl0IGFsc28gYWRkcyBhIHRlc3QgdG8gY2hlY2sgdGhl
IG5ldyBoZXVyaXN0aWMgd2hlbiAicGFydGlhbCBmcmFtZSBmbGF0dGVuaW5nIiBpcyBlbmFibGVk
LgorICAgICAgICBzZXQtcHJlZmVyZW5jZS5odG1sIGlzIGRpc2FibGVkIGZvciBub3csIGFzIHRo
ZSB0ZXN0IHN1aXRlIGRvZXMgbm90IHN1cHBvcnQgb3ZlcnJpZGVQcmVmZXJlbmNlKCkKKyAgICAg
ICAgZm9yIG5vbi1ib29sZWFuIHZhbHVlcyAoYnVnIDEyODU5NCkuCisKKyAgICAgICAgKiBmYXN0
L2Zvcm1zL2lvcy9kZWxldGUtaW4taW5wdXQtaW4taWZyYW1lLmh0bWw6IFVzZSBlbnVtIHZhbHVl
ICJGdWxseUVuYWJsZWQiLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW9zL2ZvY3VzLWlucHV0LWlu
LWlmcmFtZS5odG1sOiBEaXR0by4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lvcy9wcm9ncmFtbWF0
aWMtZm9jdXMtaW5wdXQtaW4taWZyYW1lLmh0bWw6IERpdHRvLgorICAgICAgICAqIGZhc3QvZm9y
bXMvaW9zL3R5cGluZy1pbi1pbnB1dC1pbi1pZnJhbWUuaHRtbDogRGl0dG8uCisgICAgICAgICog
ZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9jcmFzaC1yZW1vdmUtaWZyYW1lLWR1cmluZy1vYmplY3Qt
YmVmb3JlbG9hZC5odG1sOiBEaXR0by4KKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9mbGF0dGVuaW5n
L2NyYXNoLXN2Zy1kb2N1bWVudC5odG1sOiBEaXR0by4KKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9m
bGF0dGVuaW5nL2NyYXNoLXdoZW4tc2libGluZy1pZnJhbWUtaXMtZGVzdHJveWVkLXdpdGgtc3Vi
dHJlZS1sYXlvdXRyb290Lmh0bWw6IERpdHRvLgorICAgICAgICAqIGZhc3QvZnJhbWVzL2ZsYXR0
ZW5pbmcvZnJhbWVzZXQtZmxhdHRlbmluZy1hZHZhbmNlZC5odG1sOiBEaXR0by4KKyAgICAgICAg
KiBmYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2ZyYW1lc2V0LWZsYXR0ZW5pbmctZ3JpZC5odG1sOiBE
aXR0by4KKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2ZyYW1lc2V0LWZsYXR0ZW5p
bmctc2ltcGxlLmh0bWw6IERpdHRvLgorICAgICAgICAqIGZhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcv
ZnJhbWVzZXQtZmxhdHRlbmluZy1zdWJmcmFtZS1yZXNpemUuaHRtbDogRGl0dG8uCisgICAgICAg
ICogZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9mcmFtZXNldC1mbGF0dGVuaW5nLXN1YmZyYW1lc2V0
cy5odG1sOiBEaXR0by4KKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2hpdHRlc3Qt
aWZyYW1lLXdoaWxlLXN0eWxlLWNoYW5nZXMtY3Jhc2guaHRtbDogRGl0dG8uCisgICAgICAgIEJl
IHN1cmUgdG8gdXNlIHNpbmdsZSBxdW90ZXMgZm9yIHRoZSBpbmxpbmUgaWZyYW1lIHBhZ2UuCisg
ICAgICAgICogZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9pZnJhbWUtZmxhdHRlbmluZy1jcmFzaC5o
dG1sOiBVc2UgZW51bSB2YWx1ZSAiRnVsbHlFbmFibGVkIi4KKyAgICAgICAgKiBmYXN0L2ZyYW1l
cy9mbGF0dGVuaW5nL2lmcmFtZS1mbGF0dGVuaW5nLWZpeGVkLWhlaWdodC5odG1sOiBEaXR0by4K
KyAgICAgICAgKiBmYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2lmcmFtZS1mbGF0dGVuaW5nLWZpeGVk
LXdpZHRoLWFuZC1oZWlnaHQtbm8tc2Nyb2xsaW5nLXdpdGgtanMtZm9yY2VkLWxheW91dC5odG1s
OiBEaXR0by4KKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2lmcmFtZS1mbGF0dGVu
aW5nLWZpeGVkLXdpZHRoLWFuZC1oZWlnaHQtbm8tc2Nyb2xsaW5nLmh0bWw6IERpdHRvLgorICAg
ICAgICAqIGZhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvaWZyYW1lLWZsYXR0ZW5pbmctZml4ZWQtd2lk
dGgtYW5kLWhlaWdodC16ZXJvLXNpemUuaHRtbDogRGl0dG8uCisgICAgICAgICogZmFzdC9mcmFt
ZXMvZmxhdHRlbmluZy9pZnJhbWUtZmxhdHRlbmluZy1maXhlZC13aWR0aC1hbmQtaGVpZ2h0Lmh0
bWw6IERpdHRvLgorICAgICAgICAqIGZhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvaWZyYW1lLWZsYXR0
ZW5pbmctZml4ZWQtd2lkdGguaHRtbDogRGl0dG8uCisgICAgICAgICogZmFzdC9mcmFtZXMvZmxh
dHRlbmluZy9pZnJhbWUtZmxhdHRlbmluZy1mdWxsc2NyZWVuLmh0bWw6IEFkZGVkLiBDaGVjayB0
aGUgbmV3IGhldXJpc3RpYy4KKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2lmcmFt
ZS1mbGF0dGVuaW5nLWZ1bGxzY3JlZW4tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2lmcmFtZS1mbGF0dGVuaW5nLWluc2lkZS1mbGV4Ym94LXdp
dGgtZGVsYXllZC1zY3JvbGwtdXBkYXRlLmh0bWw6IFVzZSBlbnVtIHZhbHVlICJGdWxseUVuYWJs
ZWQiLgorICAgICAgICAqIGZhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvaWZyYW1lLWZsYXR0ZW5pbmct
bmVzdGVkLmh0bWw6IERpdHRvLgorICAgICAgICAqIGZhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvaWZy
YW1lLWZsYXR0ZW5pbmctb2Zmc2NyZWVuLmh0bWw6IERpdHRvLgorICAgICAgICAqIGZhc3QvZnJh
bWVzL2ZsYXR0ZW5pbmcvaWZyYW1lLWZsYXR0ZW5pbmctb3V0LW9mLXZpZXctYW5kLXNjcm9sbC5o
dG1sOiBEaXR0by4KKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2lmcmFtZS1mbGF0
dGVuaW5nLW91dC1vZi12aWV3LXNjcm9sbC1hbmQtcmVsYXlvdXQuaHRtbDogRGl0dG8uCisgICAg
ICAgICogZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9pZnJhbWUtZmxhdHRlbmluZy1vdXQtb2Ytdmll
dy5odG1sOiBEaXR0by4KKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2lmcmFtZS1m
bGF0dGVuaW5nLXJlc2l6ZS1ldmVudC1jb3VudC5odG1sOiBEaXR0by4KKyAgICAgICAgKiBmYXN0
L2ZyYW1lcy9mbGF0dGVuaW5nL2lmcmFtZS1mbGF0dGVuaW5nLXNlbGVjdGlvbi1jcmFzaC5odG1s
OiBEaXR0by4KKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2lmcmFtZS1mbGF0dGVu
aW5nLXNpbXBsZS5odG1sOiBEaXR0by4KKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9mbGF0dGVuaW5n
L2lmcmFtZS10aW55Lmh0bWw6IERpdHRvLgorICAgICAgICAqIGZhc3QvZnJhbWVzL2ZsYXR0ZW5p
bmcvc2Nyb2xsYWJsZS1mbGV4Ym94LWluc2lkZS1pZnJhbWUtd2l0aC16ZXJvLWhlaWdodC1hbmQt
bmVlZHMtZnVsbC1yZXBhaW50LWNyYXNoLmh0bWw6IERpdHRvLgorICAgICAgICAqIGZhc3QvZnJh
bWVzL2ZsYXR0ZW5pbmcvc2Nyb2xsYWJsZS1mbGV4Ym94LWluc2lkZS1pZnJhbWUtd2l0aC16ZXJv
LWhlaWdodC1hc3NlcnRpb24tZmFpbHVyZS5odG1sOiBEaXR0by4KKyAgICAgICAgKiBmYXN0L2Zy
YW1lcy9mbGF0dGVuaW5nL3Njcm9sbGluZy1pbi1vYmplY3QuaHRtbDogRGl0dG8uCisgICAgICAg
ICogZmFzdC9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUtZmxhdHRlbmluZy1zaW1wbGUu
aHRtbDogRGl0dG8uCisgICAgICAgICogaHR0cC90ZXN0cy9taXNjL2lmcmFtZS1mbGF0dGVuaW5n
LTNsZXZlbC1uZXN0aW5nLXdpdGgtYmxvY2tpbmctcmVzb3VyY2UuaHRtbDogRGl0dG8uCisgICAg
ICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6IERpc2FibGUgdGhpcyBkdWUgdG8g
bGltaXRhdGlvbiBpbiB0aGUgdGVzdCBpbmZyYXN0cnVjdHVyZS4KKyAgICAgICAgKiBwbHVnaW5z
L2ZyYW1lc2V0LXdpdGgtcGx1Z2luLWZyYW1lLmh0bWw6IFVzZSBlbnVtIHZhbHVlICJGdWxseUVu
YWJsZWQiLgorCiAyMDE3LTA1LTEyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUu
Y29tPgogCiAgICAgICAgIFRoZSByZWN0cyByZXR1cm5lZCBieSBFbGVtZW50L1JhbmdlLmdldENs
aWVudFJlY3RzKCkgc2hvdWxkIG5vdCBiZSByb3VuZGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2lvcy9kZWxldGUtaW4taW5wdXQtaW4taWZyYW1lLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2lvcy9kZWxldGUtaW4taW5wdXQtaW4taWZyYW1lLmh0bWwKaW5kZXgg
NzgzMDY5MDViNGMuLjMzNTJjN2QyODUzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2lvcy9kZWxldGUtaW4taW5wdXQtaW4taWZyYW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9pb3MvZGVsZXRlLWluLWlucHV0LWluLWlmcmFtZS5odG1sCkBAIC0yMCw3ICsy
MCw3IEBACiAgICAgfQogCiAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKHRydWUpOworICAgICAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0RnJhbWVGbGF0dGVuaW5nKCJGdWxseUVuYWJsZWQiKQogCiAg
ICAgZnVuY3Rpb24gZ2V0VHlwaW5nVUlTY3JpcHQoKQogICAgIHsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvaW9zL2ZvY3VzLWlucHV0LWluLWlmcmFtZS5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9pb3MvZm9jdXMtaW5wdXQtaW4taWZyYW1lLmh0bWwKaW5kZXggYzM3
MTJkZWYwYWUuLjgzOTgxNTE2YTI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2lvcy9mb2N1cy1pbnB1dC1pbi1pZnJhbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL2lvcy9mb2N1cy1pbnB1dC1pbi1pZnJhbWUuaHRtbApAQCAtMjAsNyArMjAsNyBAQAogICAg
IH0KIAogICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICBpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEZyYW1lRmxhdHRlbmluZygiRnVsbHlFbmFibGVkIikKICAgICAKICAgICBmdW5j
dGlvbiBidXR0b25DbGlja2VkKCkKICAgICB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2lvcy9wcm9ncmFtbWF0aWMtZm9jdXMtaW5wdXQtaW4taWZyYW1lLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9wcm9ncmFtbWF0aWMtZm9jdXMtaW5wdXQtaW4taWZyYW1l
Lmh0bWwKaW5kZXggNmVkYjVmYTQ1MzkuLjQyMDAwNGViNTc0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2lvcy9wcm9ncmFtbWF0aWMtZm9jdXMtaW5wdXQtaW4taWZyYW1lLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3MvcHJvZ3JhbW1hdGljLWZvY3VzLWlu
cHV0LWluLWlmcmFtZS5odG1sCkBAIC0xOSw3ICsxOSw3IEBACiAgICAgfQogICAgIAogICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RnJhbWVG
bGF0dGVuaW5nRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEZy
YW1lRmxhdHRlbmluZygiRnVsbHlFbmFibGVkIikKICAgICAKICAgICBmdW5jdGlvbiBwYWdlRGlk
U2Nyb2xsKCkKICAgICB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy90
eXBpbmctaW4taW5wdXQtaW4taWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lv
cy90eXBpbmctaW4taW5wdXQtaW4taWZyYW1lLmh0bWwKaW5kZXggM2FlOWYwYjFjYWQuLmM0ZDQx
MjM3YTJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy90eXBpbmctaW4t
aW5wdXQtaW4taWZyYW1lLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3MvdHlw
aW5nLWluLWlucHV0LWluLWlmcmFtZS5odG1sCkBAIC0yMCw3ICsyMCw3IEBACiAgICAgfQogCiAg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRG
cmFtZUZsYXR0ZW5pbmdFbmFibGVkKHRydWUpOworICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0RnJhbWVGbGF0dGVuaW5nKCJGdWxseUVuYWJsZWQiKQogCiAgICAgZnVuY3Rpb24gZ2V0VHlw
aW5nVUlTY3JpcHQoKQogICAgIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVz
L2ZsYXR0ZW5pbmcvY3Jhc2gtcmVtb3ZlLWlmcmFtZS1kdXJpbmctb2JqZWN0LWJlZm9yZWxvYWQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvY3Jhc2gtcmVtb3ZlLWlm
cmFtZS1kdXJpbmctb2JqZWN0LWJlZm9yZWxvYWQuaHRtbAppbmRleCBiMzhkYTU3YzM0Zi4uMTMx
OTEwM2IxYjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcv
Y3Jhc2gtcmVtb3ZlLWlmcmFtZS1kdXJpbmctb2JqZWN0LWJlZm9yZWxvYWQuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2NyYXNoLXJlbW92ZS1pZnJhbWUtZHVy
aW5nLW9iamVjdC1iZWZvcmVsb2FkLmh0bWwKQEAgLTQsNyArNCw3IEBACiBpZiAod2luZG93LnRl
c3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwogICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgIHdpbmRvdy5pbnRlcm5h
bHMuc2V0dGluZ3Muc2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZCh0cnVlKTsKKyAgICB3aW5kb3cu
aW50ZXJuYWxzLnNldHRpbmdzLnNldEZyYW1lRmxhdHRlbmluZygiRnVsbHlFbmFibGVkIikKIH0K
IAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVu
aW5nL2NyYXNoLXN2Zy1kb2N1bWVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZmxh
dHRlbmluZy9jcmFzaC1zdmctZG9jdW1lbnQuaHRtbAppbmRleCA4NDAwZTQzZGFlZi4uZTljNTA5
ZjlmODQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvY3Jh
c2gtc3ZnLWRvY3VtZW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZmxhdHRl
bmluZy9jcmFzaC1zdmctZG9jdW1lbnQuaHRtbApAQCAtMiw3ICsyLDcgQEAKIDxzY3JpcHQ+CiAK
IGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQodHJ1ZSk7CisgICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldEZyYW1lRmxhdHRlbmluZygiRnVsbHlFbmFibGVkIikKICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
cmFtZXMvZmxhdHRlbmluZy9jcmFzaC13aGVuLXNpYmxpbmctaWZyYW1lLWlzLWRlc3Ryb3llZC13
aXRoLXN1YnRyZWUtbGF5b3V0cm9vdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZmxh
dHRlbmluZy9jcmFzaC13aGVuLXNpYmxpbmctaWZyYW1lLWlzLWRlc3Ryb3llZC13aXRoLXN1YnRy
ZWUtbGF5b3V0cm9vdC5odG1sCmluZGV4IDMxZWEzOWFmZmNlLi5iZDEwMmY4MzdhNiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9jcmFzaC13aGVuLXNpYmxp
bmctaWZyYW1lLWlzLWRlc3Ryb3llZC13aXRoLXN1YnRyZWUtbGF5b3V0cm9vdC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvY3Jhc2gtd2hlbi1zaWJsaW5nLWlm
cmFtZS1pcy1kZXN0cm95ZWQtd2l0aC1zdWJ0cmVlLWxheW91dHJvb3QuaHRtbApAQCAtOSw3ICs5
LDcgQEAKICAgfQogCiAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXR0
aW5ncy5zZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKHRydWUpOworICAgIGludGVybmFscy5zZXR0
aW5ncy5zZXRGcmFtZUZsYXR0ZW5pbmcoIkZ1bGx5RW5hYmxlZCIpCiAKICAgd2luZG93Lm9ubG9h
ZCA9IGZ1bmN0aW9uKCkgewogICAgIGlmIChsb2NhdGlvbi5oYXNoID09ICIjMSIpIHsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvZnJhbWVzZXQtZmxhdHRl
bmluZy1hZHZhbmNlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9m
cmFtZXNldC1mbGF0dGVuaW5nLWFkdmFuY2VkLmh0bWwKaW5kZXggYjg4MzJhZGFiMmQuLmEwZjNm
Yzg2ZmUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2Zy
YW1lc2V0LWZsYXR0ZW5pbmctYWR2YW5jZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zy
YW1lcy9mbGF0dGVuaW5nL2ZyYW1lc2V0LWZsYXR0ZW5pbmctYWR2YW5jZWQuaHRtbApAQCAtNCw3
ICs0LDcgQEAKICAgICAgICAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIHsKICAgICAgICAgICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICAgICAgICAgIGludGVybmFscy5zZXR0aW5n
cy5zZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKHRydWUpOworICAgICAgICAgICAgICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRGcmFtZUZsYXR0ZW5pbmcoIkZ1bGx5RW5hYmxlZCIpCiAgICAgICAg
ICAgICAvLyBGb3JjZSBzeW5jaHJvbm91cyBsYXlvdXQuCiAgICAgICAgICAgICBkb2N1bWVudC5i
b2R5Lm9mZnNldEhlaWdodDsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9mcmFtZXMvZmxhdHRlbmluZy9mcmFtZXNldC1mbGF0dGVuaW5nLWdyaWQuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvZnJhbWVzZXQtZmxhdHRlbmluZy1ncmlkLmh0
bWwKaW5kZXggOTM0NjJmZjI4ZjcuLjU5OGMxOWFiMmEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2ZyYW1lc2V0LWZsYXR0ZW5pbmctZ3JpZC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvZnJhbWVzZXQtZmxhdHRlbmlu
Zy1ncmlkLmh0bWwKQEAgLTQsNyArNCw3IEBACiAgICAgZnVuY3Rpb24gdGVzdCgpCiAgICAgewog
ICAgICAgICBpZiAod2luZG93LmludGVybmFscykKLSAgICAgICAgICAgIGludGVybmFscy5zZXR0
aW5ncy5zZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKHRydWUpOworICAgICAgICAgICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldEZyYW1lRmxhdHRlbmluZygiRnVsbHlFbmFibGVkIikKICAgICAgICAg
Ly8gRm9yY2Ugc3luY2hyb25vdXMgbGF5b3V0LgogICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNl
dEhlaWdodDsKICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mbGF0
dGVuaW5nL2ZyYW1lc2V0LWZsYXR0ZW5pbmctc2ltcGxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2ZyYW1lcy9mbGF0dGVuaW5nL2ZyYW1lc2V0LWZsYXR0ZW5pbmctc2ltcGxlLmh0bWwKaW5kZXgg
NTlkNTdkNDc2MjIuLjUwYzVjYTAzYjVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zy
YW1lcy9mbGF0dGVuaW5nL2ZyYW1lc2V0LWZsYXR0ZW5pbmctc2ltcGxlLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9mcmFtZXNldC1mbGF0dGVuaW5nLXNpbXBs
ZS5odG1sCkBAIC0zLDcgKzMsNyBAQAogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij4KICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsK
ICAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgICAgICAgICAgaW50
ZXJuYWxzLnNldHRpbmdzLnNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQodHJ1ZSk7CisgICAgICAg
ICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RnJhbWVGbGF0dGVuaW5nKCJGdWxseUVuYWJsZWQi
KQogICAgICAgICB9CiAKICAgICAgICAgZnVuY3Rpb24gdGVzdCgpCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2ZyYW1lc2V0LWZsYXR0ZW5pbmctc3ViZnJh
bWUtcmVzaXplLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2ZyYW1l
c2V0LWZsYXR0ZW5pbmctc3ViZnJhbWUtcmVzaXplLmh0bWwKaW5kZXggYWMzM2UwMTgyNmYuLmNl
OWQ4MGNiMzc3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5n
L2ZyYW1lc2V0LWZsYXR0ZW5pbmctc3ViZnJhbWUtcmVzaXplLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9mcmFtZXNldC1mbGF0dGVuaW5nLXN1YmZyYW1lLXJl
c2l6ZS5odG1sCkBAIC0zLDcgKzMsNyBAQAogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij4KICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMp
IHsKICAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgICAgICAgICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQodHJ1ZSk7CisgICAg
ICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RnJhbWVGbGF0dGVuaW5nKCJGdWxseUVuYWJs
ZWQiKQogICAgICAgICB9CiAKICAgICAgICAgZnVuY3Rpb24gdGVzdCgpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2ZyYW1lc2V0LWZsYXR0ZW5pbmctc3Vi
ZnJhbWVzZXRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2ZyYW1l
c2V0LWZsYXR0ZW5pbmctc3ViZnJhbWVzZXRzLmh0bWwKaW5kZXggZDY2OTY1Mzk2MTAuLmQ0YjFm
OWUyYWUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2Zy
YW1lc2V0LWZsYXR0ZW5pbmctc3ViZnJhbWVzZXRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9mcmFtZXMvZmxhdHRlbmluZy9mcmFtZXNldC1mbGF0dGVuaW5nLXN1YmZyYW1lc2V0cy5odG1s
CkBAIC00LDcgKzQsNyBAQAogICAgICAgICBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgewogICAg
ICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgICAgICAgICAgaW50ZXJuYWxz
LnNldHRpbmdzLnNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQodHJ1ZSk7CisgICAgICAgICAgICAg
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEZyYW1lRmxhdHRlbmluZygiRnVsbHlFbmFibGVkIikK
ICAgICAgICAgICAgIC8vIEZvcmNlIHN5bmNocm9ub3VzIGxheW91dC4KICAgICAgICAgICAgIGRv
Y3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0OwogICAgICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2hpdHRlc3QtaWZyYW1lLXdoaWxlLXN0eWxlLWNo
YW5nZXMtY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvaGl0
dGVzdC1pZnJhbWUtd2hpbGUtc3R5bGUtY2hhbmdlcy1jcmFzaC5odG1sCmluZGV4IGIwY2FlYWJm
ZmJlLi43NzUzMWNlNmJmNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZmxh
dHRlbmluZy9oaXR0ZXN0LWlmcmFtZS13aGlsZS1zdHlsZS1jaGFuZ2VzLWNyYXNoLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9oaXR0ZXN0LWlmcmFtZS13aGls
ZS1zdHlsZS1jaGFuZ2VzLWNyYXNoLmh0bWwKQEAgLTksNyArOSw3IEBAIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgewogfQogCiBpZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0RnJhbWVGbGF0dGVuaW5nKCJGdWxseUVuYWJsZWQiKQogCiBmdW5jdGlvbiBydW5U
ZXN0KCkgewogICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2lmcmFtZS1mbGF0dGVuaW5nLWNyYXNoLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2lmcmFtZS1mbGF0dGVuaW5nLWNy
YXNoLmh0bWwKaW5kZXggZmMxMTRkYWE2NDEuLjY2YjkxODg3Y2JlIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2lmcmFtZS1mbGF0dGVuaW5nLWNyYXNoLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9pZnJhbWUtZmxhdHRl
bmluZy1jcmFzaC5odG1sCkBAIC00LDcgKzQsNyBAQAogICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIgJiYgd2luZG93LmludGVybmFscykgewogICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CiAgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAg
ICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKHRydWUp
OworICAgICAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEZyYW1lRmxhdHRlbmluZygiRnVs
bHlFbmFibGVkIikKICAgICAgICAgfQogICAgIDwvc2NyaXB0PgogPC9oZWFkPgpAQCAtMjAsNyAr
MjAsNyBAQAogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQotICAgICAgICAgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRGcmFtZUZsYXR0
ZW5pbmdFbmFibGVkKHRydWUpOworICAgICAgICAgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5z
ZXRGcmFtZUZsYXR0ZW5pbmcoJ0Z1bGx5RW5hYmxlZCcpCiAgICAgICAgIH0KICAgICA8L3Njcmlw
dD4KICAgICA8Ym9keSBvbnJlc2l6ZT0ndGVzdDIoKTsnPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9pZnJhbWUtZmxhdHRlbmluZy1maXhlZC1oZWlnaHQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvaWZyYW1lLWZsYXR0ZW5p
bmctZml4ZWQtaGVpZ2h0Lmh0bWwKaW5kZXggZmIxYTQ1ZWY1YzEuLjZmMmY1MjJkYmM4IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2lmcmFtZS1mbGF0dGVu
aW5nLWZpeGVkLWhlaWdodC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0
ZW5pbmcvaWZyYW1lLWZsYXR0ZW5pbmctZml4ZWQtaGVpZ2h0Lmh0bWwKQEAgLTQsNyArNCw3IEBA
CiAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAod2lu
ZG93LmludGVybmFscykKLSAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RnJh
bWVGbGF0dGVuaW5nRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0RnJhbWVGbGF0dGVuaW5nKCJGdWxseUVuYWJsZWQiKQogICAgICAgICAgICAgLy8g
Rm9yY2Ugc3luY2hyb25vdXMgbGF5b3V0LgogICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZz
ZXRIZWlnaHQ7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVz
L2ZsYXR0ZW5pbmcvaWZyYW1lLWZsYXR0ZW5pbmctZml4ZWQtd2lkdGgtYW5kLWhlaWdodC1uby1z
Y3JvbGxpbmctd2l0aC1qcy1mb3JjZWQtbGF5b3V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zy
YW1lcy9mbGF0dGVuaW5nL2lmcmFtZS1mbGF0dGVuaW5nLWZpeGVkLXdpZHRoLWFuZC1oZWlnaHQt
bm8tc2Nyb2xsaW5nLXdpdGgtanMtZm9yY2VkLWxheW91dC5odG1sCmluZGV4IDEwYmZjZWYxODgw
Li5jZGRlZDhmMWU0OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZmxhdHRl
bmluZy9pZnJhbWUtZmxhdHRlbmluZy1maXhlZC13aWR0aC1hbmQtaGVpZ2h0LW5vLXNjcm9sbGlu
Zy13aXRoLWpzLWZvcmNlZC1sYXlvdXQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1l
cy9mbGF0dGVuaW5nL2lmcmFtZS1mbGF0dGVuaW5nLWZpeGVkLXdpZHRoLWFuZC1oZWlnaHQtbm8t
c2Nyb2xsaW5nLXdpdGgtanMtZm9yY2VkLWxheW91dC5odG1sCkBAIC02LDcgKzYsNyBAQAogICAg
ICAgICB7CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVy
bmFscykgewogICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgICAg
ICAgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKHRy
dWUpOworICAgICAgICAgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRGcmFtZUZsYXR0ZW5p
bmcoIkZ1bGx5RW5hYmxlZCIpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICA8L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvaWZyYW1l
LWZsYXR0ZW5pbmctZml4ZWQtd2lkdGgtYW5kLWhlaWdodC1uby1zY3JvbGxpbmcuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvaWZyYW1lLWZsYXR0ZW5pbmctZml4ZWQt
d2lkdGgtYW5kLWhlaWdodC1uby1zY3JvbGxpbmcuaHRtbAppbmRleCBjZTYxYmIzYWViZC4uMWJl
OWEwM2ZhZmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcv
aWZyYW1lLWZsYXR0ZW5pbmctZml4ZWQtd2lkdGgtYW5kLWhlaWdodC1uby1zY3JvbGxpbmcuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2lmcmFtZS1mbGF0dGVu
aW5nLWZpeGVkLXdpZHRoLWFuZC1oZWlnaHQtbm8tc2Nyb2xsaW5nLmh0bWwKQEAgLTQsNyArNCw3
IEBACiAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAo
d2luZG93LmludGVybmFscykKLSAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
RnJhbWVGbGF0dGVuaW5nRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0RnJhbWVGbGF0dGVuaW5nKCJGdWxseUVuYWJsZWQiKQogICAgICAgICAgICAg
Ly8gRm9yY2Ugc3luY2hyb25vdXMgbGF5b3V0LgogICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5v
ZmZzZXRIZWlnaHQ7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJh
bWVzL2ZsYXR0ZW5pbmcvaWZyYW1lLWZsYXR0ZW5pbmctZml4ZWQtd2lkdGgtYW5kLWhlaWdodC16
ZXJvLXNpemUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvaWZyYW1l
LWZsYXR0ZW5pbmctZml4ZWQtd2lkdGgtYW5kLWhlaWdodC16ZXJvLXNpemUuaHRtbAppbmRleCAz
M2JjMWI4NTAzOS4uODgyNWJmNGUxNGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJh
bWVzL2ZsYXR0ZW5pbmcvaWZyYW1lLWZsYXR0ZW5pbmctZml4ZWQtd2lkdGgtYW5kLWhlaWdodC16
ZXJvLXNpemUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2lm
cmFtZS1mbGF0dGVuaW5nLWZpeGVkLXdpZHRoLWFuZC1oZWlnaHQtemVyby1zaXplLmh0bWwKQEAg
LTYsNyArNiw3IEBACiAgICAgICAgIHsKICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
ciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7Ci0gICAgICAgICAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEZyYW1lRmxh
dHRlbmluZ0VuYWJsZWQodHJ1ZSk7CisgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldEZyYW1lRmxhdHRlbmluZygiRnVsbHlFbmFibGVkIikKICAgICAgICAgICAgIH0KIAogICAg
ICAgICAgICAgLy8gRm9yY2Ugc3luY2hyb25vdXMgbGF5b3V0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9pZnJhbWUtZmxhdHRlbmluZy1maXhlZC13aWR0
aC1hbmQtaGVpZ2h0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2lm
cmFtZS1mbGF0dGVuaW5nLWZpeGVkLXdpZHRoLWFuZC1oZWlnaHQuaHRtbAppbmRleCAwODgzYzAw
Y2Q4Yy4uNTQzZDRlMWNmMjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2Zs
YXR0ZW5pbmcvaWZyYW1lLWZsYXR0ZW5pbmctZml4ZWQtd2lkdGgtYW5kLWhlaWdodC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvaWZyYW1lLWZsYXR0ZW5pbmct
Zml4ZWQtd2lkdGgtYW5kLWhlaWdodC5odG1sCkBAIC0zLDcgKzMsNyBAQAogICAgIDxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYm
IHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOwotICAgICAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEZyYW1lRmxhdHRlbmluZ0Vu
YWJsZWQodHJ1ZSk7CisgICAgICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RnJhbWVGbGF0
dGVuaW5nKCJGdWxseUVuYWJsZWQiKQogICAgICAgICB9CiAKICAgICAgICAgZnVuY3Rpb24gdGVz
dCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2lmcmFt
ZS1mbGF0dGVuaW5nLWZpeGVkLXdpZHRoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9m
bGF0dGVuaW5nL2lmcmFtZS1mbGF0dGVuaW5nLWZpeGVkLXdpZHRoLmh0bWwKaW5kZXggM2VlZjA1
M2I4ODkuLjRiMGFjZDcyNzA3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9m
bGF0dGVuaW5nL2lmcmFtZS1mbGF0dGVuaW5nLWZpeGVkLXdpZHRoLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9pZnJhbWUtZmxhdHRlbmluZy1maXhlZC13aWR0
aC5odG1sCkBAIC00LDcgKzQsNyBAQAogICAgICAgICBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAg
ewogICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgICAgICAgICAgaW50
ZXJuYWxzLnNldHRpbmdzLnNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQodHJ1ZSk7CisgICAgICAg
ICAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEZyYW1lRmxhdHRlbmluZygiRnVsbHlFbmFi
bGVkIikKICAgICAgICAgICAgIC8vIEZvcmNlIHN5bmNocm9ub3VzIGxheW91dC4KICAgICAgICAg
ICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0OwogICAgICAgICB9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2lmcmFtZS1mbGF0dGVuaW5nLWZ1bGxz
Y3JlZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9p
ZnJhbWUtZmxhdHRlbmluZy1mdWxsc2NyZWVuLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uN2MwNjcwZmIyZGEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2lmcmFtZS1mbGF0dGVuaW5nLWZ1bGxz
Y3JlZW4tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorICAgIAorCitQQVNTIHNpbXBsZSBp
ZnJhbWUgCitQQVNTIG91dC1vZi1mbG93IGlmcmFtZSAKK1BBU1MgaWZyYW1lIHdpdGggdncvdmgg
dW5pdHMgCitQQVNTIGZ1bGxzY3JlZW4gaWZyYW1lIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2lmcmFtZS1mbGF0dGVuaW5nLWZ1bGxzY3JlZW4uaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvaWZyYW1lLWZsYXR0ZW5pbmct
ZnVsbHNjcmVlbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44
NjE3NzgwMWI4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2Zs
YXR0ZW5pbmcvaWZyYW1lLWZsYXR0ZW5pbmctZnVsbHNjcmVlbi5odG1sCkBAIC0wLDAgKzEsMzgg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8dGl0bGU+VGhpcyB0ZXN0
cyB0aGF0ICJmdWxsc2NyZWVuIiBpZnJhbWVzIGFyZSBub3QgZmxhdHRlbjwvdGl0bGU+CisgICAg
PG1ldGEgY2hhcnNldD0idXRmLTgiLz4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0Pgor
ICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0
dGluZ3Muc2V0RnJhbWVGbGF0dGVuaW5nKCJQYXJ0aWFsbHlFbmFibGVkIik7CisKKyAgICAgIHNl
dHVwKHtleHBsaWNpdF9kb25lOiB0cnVlfSk7CisgICAgICBmdW5jdGlvbiBpc1VuZmxhdHRlbihp
ZCkgeworICAgICAgICB2YXIgaWZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwor
ICAgICAgICB2YXIgaWZyYW1lQm94ID0gaWZyYW1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwor
ICAgICAgICB2YXIgaW5uZXJEaXZCb3ggPSBpZnJhbWUuY29udGVudERvY3VtZW50LmJvZHkuZmly
c3RFbGVtZW50Q2hpbGQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgICAgIHJldHVybiBp
ZnJhbWVCb3gud2lkdGggPCBpbm5lckRpdkJveC53aWR0aCAmJiBpZnJhbWVCb3guaGVpZ2h0IDwg
aW5uZXJEaXZCb3guaGVpZ2h0OworICAgICAgfQorICAgICAgZnVuY3Rpb24gc3RhcnQoKSB7Cisg
ICAgICAgIHRlc3QoZnVuY3Rpb24oKSB7IGFzc2VydF90cnVlKCFpc1VuZmxhdHRlbigiaWZyYW1l
MCIpKTsgfSwgInNpbXBsZSBpZnJhbWUiKTsKKyAgICAgICAgdGVzdChmdW5jdGlvbigpIHsgYXNz
ZXJ0X3RydWUoIWlzVW5mbGF0dGVuKCJpZnJhbWUxIikpOyB9LCAib3V0LW9mLWZsb3cgaWZyYW1l
Iik7CisgICAgICAgIHRlc3QoZnVuY3Rpb24oKSB7IGFzc2VydF90cnVlKCFpc1VuZmxhdHRlbigi
aWZyYW1lMiIpKTsgfSwgImlmcmFtZSB3aXRoIHZ3L3ZoIHVuaXRzIik7CisgICAgICAgIHRlc3Qo
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgYXNzZXJ0X3RydWUoaXNVbmZsYXR0ZW4oImlmcmFtZTMi
KSwgInBvc2l0aW9uOiBhYnNvbHV0ZSIpOworICAgICAgICAgIGFzc2VydF90cnVlKGlzVW5mbGF0
dGVuKCJpZnJhbWU0IiksICJwb3NpdGlvbjogZml4ZWQiKTsKKyAgICAgICAgfSwgImZ1bGxzY3Jl
ZW4gaWZyYW1lIik7CisgICAgICAgIGRvbmUoKTsKKyAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAg
PC9oZWFkPgorICA8Ym9keSBvbmxvYWQ9InN0YXJ0KCkiPgorICAgIDxpZnJhbWUgaWQ9ImlmcmFt
ZTAiIHN0eWxlPSJiYWNrZ3JvdW5kOiBibHVlOyB3aWR0aDogNTBweDsgaGVpZ2h0OiA1MHB4OyIg
c2Nyb2xsaW5nPSJ5ZXMiIHNyY2RvYz0iJmx0O2RpdiBzdHlsZT0nd2lkdGg6IDEwMDBweDsgaGVp
Z2h0OiAxMDAwcHg7JyZndDsmbHQ7L2RpdiZndDsiPjwvaWZyYW1lPgorICAgIDxpZnJhbWUgaWQ9
ImlmcmFtZTEiIHN0eWxlPSJiYWNrZ3JvdW5kOiBwdXJwbGU7IHBvc2l0aW9uOiBhYnNvbHV0ZTsi
IHNjcm9sbGluZz0ieWVzIiBzcmNkb2M9IiZsdDtkaXYgc3R5bGU9J3dpZHRoOiAxMDAwcHg7IGhl
aWdodDogMTAwMHB4OycmZ3Q7Jmx0Oy9kaXYmZ3Q7Ij48L2lmcmFtZT4KKyAgICA8aWZyYW1lIGlk
PSJpZnJhbWUyIiBzdHlsZT0iYmFja2dyb3VuZDogYnJvd247IHdpZHRoOiAxMDB2dzsgaGVpZ2h0
OiAxMDB2aDsiIHNjcm9sbGluZz0ieWVzIiBzcmNkb2M9IiZsdDtkaXYgc3R5bGU9J3dpZHRoOiAx
MDAwcHg7IGhlaWdodDogMTAwMHB4OycmZ3Q7Jmx0Oy9kaXYmZ3Q7Ij48L2lmcmFtZT4KKyAgICA8
aWZyYW1lIGlkPSJpZnJhbWUzIiBzdHlsZT0iYmFja2dyb3VuZDogY3lhbjsgcG9zaXRpb246IGFi
c29sdXRlOyB3aWR0aDogMTAwdnc7IGhlaWdodDogMTAwdmg7IiBzY3JvbGxpbmc9InllcyIgc3Jj
ZG9jPSImbHQ7ZGl2IHN0eWxlPSd3aWR0aDogMTAwMHB4OyBoZWlnaHQ6IDEwMDBweDsnJmd0OyZs
dDsvZGl2Jmd0OyI+PC9pZnJhbWU+CisgICAgPGlmcmFtZSBpZD0iaWZyYW1lNCIgc3R5bGU9ImJh
Y2tncm91bmQ6IHllbGxvdzsgcG9zaXRpb246IGZpeGVkOyB3aWR0aDogMTAwdnc7IGhlaWdodDog
MTAwdmg7IiBzY3JvbGxpbmc9InllcyIgc3JjZG9jPSImbHQ7ZGl2IHN0eWxlPSd3aWR0aDogMTAw
MHB4OyBoZWlnaHQ6IDEwMDBweDsnJmd0OyZsdDsvZGl2Jmd0OyI+PC9pZnJhbWU+CisgIDwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5p
bmcvaWZyYW1lLWZsYXR0ZW5pbmctaW5zaWRlLWZsZXhib3gtd2l0aC1kZWxheWVkLXNjcm9sbC11
cGRhdGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvaWZyYW1lLWZs
YXR0ZW5pbmctaW5zaWRlLWZsZXhib3gtd2l0aC1kZWxheWVkLXNjcm9sbC11cGRhdGUuaHRtbApp
bmRleCA1MWNkZWQ2MjM2Zi4uODhiNWM0YTlmODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZnJhbWVzL2ZsYXR0ZW5pbmcvaWZyYW1lLWZsYXR0ZW5pbmctaW5zaWRlLWZsZXhib3gtd2l0
aC1kZWxheWVkLXNjcm9sbC11cGRhdGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1l
cy9mbGF0dGVuaW5nL2lmcmFtZS1mbGF0dGVuaW5nLWluc2lkZS1mbGV4Ym94LXdpdGgtZGVsYXll
ZC1zY3JvbGwtdXBkYXRlLmh0bWwKQEAgLTE0LDcgKzE0LDcgQEAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CiB9CiAKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXR0aW5n
cy5zZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKHRydWUpOworICAgIGludGVybmFscy5zZXR0aW5n
cy5zZXRGcmFtZUZsYXR0ZW5pbmcoIkZ1bGx5RW5hYmxlZCIpCiAKIGZ1bmN0aW9uIHJ1blRlc3Qo
KQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9pZnJh
bWUtZmxhdHRlbmluZy1uZXN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0
ZW5pbmcvaWZyYW1lLWZsYXR0ZW5pbmctbmVzdGVkLmh0bWwKaW5kZXggZTNjMTJhZGM3ZDguLmIx
ODBhOGYwNmVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5n
L2lmcmFtZS1mbGF0dGVuaW5nLW5lc3RlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJh
bWVzL2ZsYXR0ZW5pbmcvaWZyYW1lLWZsYXR0ZW5pbmctbmVzdGVkLmh0bWwKQEAgLTEwLDcgKzEw
LDcgQEAKICAgICAgICAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIHsKICAgICAgICAgICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKQotICAgICAgICAgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5z
ZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKHRydWUpOworICAgICAgICAgICAgICAgIGludGVybmFs
cy5zZXR0aW5ncy5zZXRGcmFtZUZsYXR0ZW5pbmcoIkZ1bGx5RW5hYmxlZCIpCiAgICAgICAgICAg
ICAvLyBGb3JjZSBzeW5jaHJvbm91cyBsYXlvdXQuCiAgICAgICAgICAgICBkb2N1bWVudC5ib2R5
Lm9mZnNldEhlaWdodDsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
cmFtZXMvZmxhdHRlbmluZy9pZnJhbWUtZmxhdHRlbmluZy1vZmZzY3JlZW4uaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvaWZyYW1lLWZsYXR0ZW5pbmctb2Zmc2NyZWVu
Lmh0bWwKaW5kZXggZDBjOGFmYjI0NGQuLjcxYzU3ZDQwZTEyIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2lmcmFtZS1mbGF0dGVuaW5nLW9mZnNjcmVlbi5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvaWZyYW1lLWZsYXR0
ZW5pbmctb2Zmc2NyZWVuLmh0bWwKQEAgLTQsNyArNCw3IEBACiAgICAgICAgIGZ1bmN0aW9uIHRl
c3QoKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykKLSAgICAg
ICAgICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZCh0
cnVlKTsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RnJhbWVGbGF0dGVu
aW5nKCJGdWxseUVuYWJsZWQiKQogICAgICAgICAgICAgLy8gRm9yY2Ugc3luY2hyb25vdXMgbGF5
b3V0LgogICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQ7CiAgICAgICAgIH0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvaWZyYW1lLWZs
YXR0ZW5pbmctb3V0LW9mLXZpZXctYW5kLXNjcm9sbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9m
cmFtZXMvZmxhdHRlbmluZy9pZnJhbWUtZmxhdHRlbmluZy1vdXQtb2Ytdmlldy1hbmQtc2Nyb2xs
Lmh0bWwKaW5kZXggZWY2MzhiOWYwNTguLjU4MzMyM2M4ZmVhIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2lmcmFtZS1mbGF0dGVuaW5nLW91dC1vZi12aWV3
LWFuZC1zY3JvbGwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5n
L2lmcmFtZS1mbGF0dGVuaW5nLW91dC1vZi12aWV3LWFuZC1zY3JvbGwuaHRtbApAQCAtMyw3ICsz
LDcgQEAKICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgICAgICAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5z
ZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKHRydWUpOworICAgICAgICAgICAgaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEZyYW1lRmxhdHRlbmluZygiRnVsbHlFbmFibGVkIikKICAgICAgICAgfQogCiAg
ICAgICAgIGZ1bmN0aW9uIHRlc3QoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFt
ZXMvZmxhdHRlbmluZy9pZnJhbWUtZmxhdHRlbmluZy1vdXQtb2Ytdmlldy1zY3JvbGwtYW5kLXJl
bGF5b3V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2lmcmFtZS1m
bGF0dGVuaW5nLW91dC1vZi12aWV3LXNjcm9sbC1hbmQtcmVsYXlvdXQuaHRtbAppbmRleCAyOGFl
ZTY3MzRlMy4uZTU4Mjc0MmRiMzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVz
L2ZsYXR0ZW5pbmcvaWZyYW1lLWZsYXR0ZW5pbmctb3V0LW9mLXZpZXctc2Nyb2xsLWFuZC1yZWxh
eW91dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvaWZyYW1l
LWZsYXR0ZW5pbmctb3V0LW9mLXZpZXctc2Nyb2xsLWFuZC1yZWxheW91dC5odG1sCkBAIC0zLDcg
KzMsNyBAQAogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICAgICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgICAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQodHJ1ZSk7CisgICAgICAgICAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0RnJhbWVGbGF0dGVuaW5nKCJGdWxseUVuYWJsZWQiKQogICAgICAgICB9CiAK
ICAgICAgICAgZnVuY3Rpb24gdGVzdCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zy
YW1lcy9mbGF0dGVuaW5nL2lmcmFtZS1mbGF0dGVuaW5nLW91dC1vZi12aWV3Lmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2lmcmFtZS1mbGF0dGVuaW5nLW91dC1vZi12
aWV3Lmh0bWwKaW5kZXggNGU4MDc0NmI0NDguLmQzNjlmODJmMTAxIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2lmcmFtZS1mbGF0dGVuaW5nLW91dC1vZi12
aWV3Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9pZnJhbWUt
ZmxhdHRlbmluZy1vdXQtb2Ytdmlldy5odG1sCkBAIC00LDcgKzQsNyBAQAogICAgICAgICBmdW5j
dGlvbiB0ZXN0KCkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
Ci0gICAgICAgICAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEZyYW1lRmxhdHRlbmluZ0Vu
YWJsZWQodHJ1ZSk7CisgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEZyYW1l
RmxhdHRlbmluZygiRnVsbHlFbmFibGVkIikKICAgICAgICAgICAgIC8vIEZvcmNlIHN5bmNocm9u
b3VzIGxheW91dC4KICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0OwogICAg
ICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2lm
cmFtZS1mbGF0dGVuaW5nLXJlc2l6ZS1ldmVudC1jb3VudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9mcmFtZXMvZmxhdHRlbmluZy9pZnJhbWUtZmxhdHRlbmluZy1yZXNpemUtZXZlbnQtY291bnQu
aHRtbAppbmRleCBmNTU0Nzg3OTMwZi4uMjU5ZDY2ODY4ZTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvaWZyYW1lLWZsYXR0ZW5pbmctcmVzaXplLWV2ZW50
LWNvdW50Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9pZnJh
bWUtZmxhdHRlbmluZy1yZXNpemUtZXZlbnQtY291bnQuaHRtbApAQCAtMyw3ICszLDcgQEAKIDxo
ZWFkPgogPHNjcmlwdD4KIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXR0
aW5ncy5zZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKHRydWUpOworICAgIGludGVybmFscy5zZXR0
aW5ncy5zZXRGcmFtZUZsYXR0ZW5pbmcoIkZ1bGx5RW5hYmxlZCIpCiAgIAogaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2lmcmFtZS1mbGF0dGVuaW5nLXNlbGVj
dGlvbi1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9pZnJh
bWUtZmxhdHRlbmluZy1zZWxlY3Rpb24tY3Jhc2guaHRtbAppbmRleCBjODhhMTEyZWExYS4uOWE5
MDM4NTc3ZjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcv
aWZyYW1lLWZsYXR0ZW5pbmctc2VsZWN0aW9uLWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9pZnJhbWUtZmxhdHRlbmluZy1zZWxlY3Rpb24tY3Jhc2gu
aHRtbApAQCAtNCw3ICs0LDcgQEAKICAgICAgICAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICAgICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgICAgICAgICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQodHJ1ZSk7CisgICAgICAgICAg
ICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEZyYW1lRmxhdHRlbmluZygiRnVsbHlFbmFibGVk
IikKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgLy8gRm9yY2Ugc3luY2hyb25vdXMgbGF5
b3V0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9pZnJh
bWUtZmxhdHRlbmluZy1zaW1wbGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0
ZW5pbmcvaWZyYW1lLWZsYXR0ZW5pbmctc2ltcGxlLmh0bWwKaW5kZXggMjcxYjg3NzMwYjEuLjY5
MGI1N2Y3YjE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5n
L2lmcmFtZS1mbGF0dGVuaW5nLXNpbXBsZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJh
bWVzL2ZsYXR0ZW5pbmcvaWZyYW1lLWZsYXR0ZW5pbmctc2ltcGxlLmh0bWwKQEAgLTQsNyArNCw3
IEBACiAgICAgICAgIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAo
d2luZG93LmludGVybmFscykKLSAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
RnJhbWVGbGF0dGVuaW5nRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0RnJhbWVGbGF0dGVuaW5nKCJGdWxseUVuYWJsZWQiKQogICAgICAgICAgICAg
Ly8gRm9yY2Ugc3luY2hyb25vdXMgbGF5b3V0LgogICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5v
ZmZzZXRIZWlnaHQ7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJh
bWVzL2ZsYXR0ZW5pbmcvaWZyYW1lLXRpbnkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVz
L2ZsYXR0ZW5pbmcvaWZyYW1lLXRpbnkuaHRtbAppbmRleCA2MzM3MjJhZDYzNC4uODk2YmQ5ZmU4
MTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvaWZyYW1l
LXRpbnkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2lmcmFt
ZS10aW55Lmh0bWwKQEAgLTYsNyArNiw3IEBACiBkZXNjcmlwdGlvbigiVGVzdCB0aGF0IGZyYW1l
IGZsYXR0ZW5pbmcgaXMgbm90IHVzZWQgZm9yIHRpbnkgZnJhbWVzLiBUaGlzIHRlc3QgcmVxdWly
ZXMgRFJUIG9yIHVzZXIgYWdlbnQgd2l0aCBmbGF0dGVuaW5nIGVuYWJsZWQuIik7CiAKIGlmICh3
aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRGcmFtZUZsYXR0ZW5p
bmdFbmFibGVkKHRydWUpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRGcmFtZUZsYXR0ZW5p
bmcoIkZ1bGx5RW5hYmxlZCIpCiAKIGZ1bmN0aW9uIGNoZWNrUmVzdWx0KGZyYW1lTmFtZSwgZXhw
ZWN0ZWRXaWR0aCwgZXhwZWN0ZWRIZWlnaHQpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2ZyYW1lcy9mbGF0dGVuaW5nL3Njcm9sbGFibGUtZmxleGJveC1pbnNpZGUtaWZyYW1lLXdp
dGgtemVyby1oZWlnaHQtYW5kLW5lZWRzLWZ1bGwtcmVwYWludC1jcmFzaC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9zY3JvbGxhYmxlLWZsZXhib3gtaW5zaWRlLWlm
cmFtZS13aXRoLXplcm8taGVpZ2h0LWFuZC1uZWVkcy1mdWxsLXJlcGFpbnQtY3Jhc2guaHRtbApp
bmRleCBhZjJmMjBjZDM1ZC4uNzMyNDY4MmFhMzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZnJhbWVzL2ZsYXR0ZW5pbmcvc2Nyb2xsYWJsZS1mbGV4Ym94LWluc2lkZS1pZnJhbWUtd2l0
aC16ZXJvLWhlaWdodC1hbmQtbmVlZHMtZnVsbC1yZXBhaW50LWNyYXNoLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9zY3JvbGxhYmxlLWZsZXhib3gtaW5zaWRl
LWlmcmFtZS13aXRoLXplcm8taGVpZ2h0LWFuZC1uZWVkcy1mdWxsLXJlcGFpbnQtY3Jhc2guaHRt
bApAQCAtOCw3ICs4LDcgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiB9CiAKIGlmICh3aW5k
b3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRGcmFtZUZsYXR0ZW5pbmdF
bmFibGVkKHRydWUpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRGcmFtZUZsYXR0ZW5pbmco
IkZ1bGx5RW5hYmxlZCIpCiAKIGZ1bmN0aW9uIGRvbmUoKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9zY3JvbGxhYmxlLWZsZXhib3gtaW5zaWRlLWlm
cmFtZS13aXRoLXplcm8taGVpZ2h0LWFzc2VydGlvbi1mYWlsdXJlLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL3Njcm9sbGFibGUtZmxleGJveC1pbnNpZGUtaWZyYW1l
LXdpdGgtemVyby1oZWlnaHQtYXNzZXJ0aW9uLWZhaWx1cmUuaHRtbAppbmRleCA2ZjhjZGNlY2Ni
Ni4uYjFlMzJlMzE0NDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0
ZW5pbmcvc2Nyb2xsYWJsZS1mbGV4Ym94LWluc2lkZS1pZnJhbWUtd2l0aC16ZXJvLWhlaWdodC1h
c3NlcnRpb24tZmFpbHVyZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0
ZW5pbmcvc2Nyb2xsYWJsZS1mbGV4Ym94LWluc2lkZS1pZnJhbWUtd2l0aC16ZXJvLWhlaWdodC1h
c3NlcnRpb24tZmFpbHVyZS5odG1sCkBAIC04LDcgKzgsNyBAQCBpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKIH0KIAogaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldEZyYW1lRmxhdHRlbmluZygiRnVsbHlFbmFibGVkIikKIAogZnVuY3Rpb24gZG9uZSgpCiB7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL3Njcm9sbGlu
Zy1pbi1vYmplY3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvc2Ny
b2xsaW5nLWluLW9iamVjdC5odG1sCmluZGV4IDk4NDE4ZmZkZWU0Li5kYjY4MDRhYWVkZiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9zY3JvbGxpbmctaW4t
b2JqZWN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9zY3Jv
bGxpbmctaW4tb2JqZWN0Lmh0bWwKQEAgLTMsNyArMyw3IEBACiAgICAgICAgIDxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAm
JiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7Ci0gICAgICAgICAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEZyYW1lRmxh
dHRlbmluZ0VuYWJsZWQodHJ1ZSk7CisgICAgICAgICAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldEZyYW1lRmxhdHRlbmluZygiRnVsbHlFbmFibGVkIikKICAgICAgICAgICAgIH0KIAogICAg
ICAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2ZyYW1lcy9mbGF0dGVuaW5nL3NldC1leHBlcmltZW50YWwtZmVhdHVyZS1mb3JjZS1wYXJ0aWFs
LWZyYW1lLWZsYXR0ZW5pbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMv
ZmxhdHRlbmluZy9zZXQtZXhwZXJpbWVudGFsLWZlYXR1cmUtZm9yY2UtcGFydGlhbC1mcmFtZS1m
bGF0dGVuaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uMWY5YzIwZGI5Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zy
YW1lcy9mbGF0dGVuaW5nL3NldC1leHBlcmltZW50YWwtZmVhdHVyZS1mb3JjZS1wYXJ0aWFsLWZy
YW1lLWZsYXR0ZW5pbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorICAKKworUEFTUyBz
aW1wbGUgaWZyYW1lIAorUEFTUyBmdWxsc2NyZWVuIGlmcmFtZSAKK1BBU1Mgbm9uLXNjcm9sbGlu
ZyBpZnJhbWUgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5p
bmcvc2V0LWV4cGVyaW1lbnRhbC1mZWF0dXJlLWZvcmNlLXBhcnRpYWwtZnJhbWUtZmxhdHRlbmlu
Zy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9zZXQtZXhwZXJpbWVu
dGFsLWZlYXR1cmUtZm9yY2UtcGFydGlhbC1mcmFtZS1mbGF0dGVuaW5nLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjI3MGRlZWNkNzFjCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9zZXQtZXhwZXJpbWVudGFs
LWZlYXR1cmUtZm9yY2UtcGFydGlhbC1mcmFtZS1mbGF0dGVuaW5nLmh0bWwKQEAgLTAsMCArMSwz
NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDx0aXRsZT5UaGlzIHRl
c3RzIHNldHRpbmcgdGhlIHJ1bnRpbWUgZW5hYmxlZCBmZWF0dXJlICJmb3JjZSBwYXJ0aWFsIGZy
YW1lIGZsYXR0ZW5pbmciPC90aXRsZT4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCIvPgorICAg
IDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICBpZiAod2luZG93LmludGVybmFscykg
eworICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RnJhbWVGbGF0dGVuaW5nKCJGdWxseUVu
YWJsZWQiKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEZvcmNlUGFydGlhbEZyYW1l
RmxhdHRlbmluZ0VuYWJsZWQodHJ1ZSk7CisgICAgICB9CisKKyAgICAgIHNldHVwKHtleHBsaWNp
dF9kb25lOiB0cnVlfSk7CisgICAgICBmdW5jdGlvbiBpc1VuZmxhdHRlbihpZCkgeworICAgICAg
ICB2YXIgaWZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOworICAgICAgICB2YXIg
aWZyYW1lQm94ID0gaWZyYW1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICB2YXIg
aW5uZXJEaXZCb3ggPSBpZnJhbWUuY29udGVudERvY3VtZW50LmJvZHkuZmlyc3RFbGVtZW50Q2hp
bGQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CisgICAgICAgIHJldHVybiBpZnJhbWVCb3gud2lk
dGggPCBpbm5lckRpdkJveC53aWR0aCAmJiBpZnJhbWVCb3guaGVpZ2h0IDwgaW5uZXJEaXZCb3gu
aGVpZ2h0OworICAgICAgfQorICAgICAgZnVuY3Rpb24gc3RhcnQoKSB7CisgICAgICAgIHRlc3Qo
ZnVuY3Rpb24oKSB7IGFzc2VydF9mYWxzZShpc1VuZmxhdHRlbigiaWZyYW1lMCIpKTsgfSwgInNp
bXBsZSBpZnJhbWUiKTsKKyAgICAgICAgdGVzdChmdW5jdGlvbigpIHsgYXNzZXJ0X3RydWUoaXNV
bmZsYXR0ZW4oImlmcmFtZTEiKSk7IH0sICJmdWxsc2NyZWVuIGlmcmFtZSIpOworICAgICAgICB0
ZXN0KGZ1bmN0aW9uKCkgeyBhc3NlcnRfdHJ1ZShpc1VuZmxhdHRlbigiaWZyYW1lMiIpKTsgfSwg
Im5vbi1zY3JvbGxpbmcgaWZyYW1lIik7CisgICAgICAgIGRvbmUoKTsKKyAgICAgIH0KKyAgICA8
L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keSBvbmxvYWQ9InN0YXJ0KCkiPgorICAgIDxpZnJh
bWUgaWQ9ImlmcmFtZTAiIHN0eWxlPSJiYWNrZ3JvdW5kOiBibHVlOyB3aWR0aDogNTBweDsgaGVp
Z2h0OiA1MHB4OyIgc2Nyb2xsaW5nPSJ5ZXMiIHNyY2RvYz0iJmx0O2RpdiBzdHlsZT0nd2lkdGg6
IDEwMDBweDsgaGVpZ2h0OiAxMDAwcHg7JyZndDsmbHQ7L2RpdiZndDsiPjwvaWZyYW1lPgorICAg
IDxpZnJhbWUgaWQ9ImlmcmFtZTEiIHN0eWxlPSJiYWNrZ3JvdW5kOiBjeWFuOyBwb3NpdGlvbjog
YWJzb2x1dGU7IHdpZHRoOiAxMDB2dzsgaGVpZ2h0OiAxMDB2aDsiIHNjcm9sbGluZz0ieWVzIiBz
cmNkb2M9IiZsdDtkaXYgc3R5bGU9J3dpZHRoOiAxMDAwcHg7IGhlaWdodDogMTAwMHB4OycmZ3Q7
Jmx0Oy9kaXYmZ3Q7Ij48L2lmcmFtZT4KKyAgICA8aWZyYW1lIGlkPSJpZnJhbWUyIiBzdHlsZT0i
YmFja2dyb3VuZDogeWVsbG93OyB3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwcHg7IiBzY3JvbGxp
bmc9Im5vIiBzcmNkb2M9IiZsdDtkaXYgc3R5bGU9J3dpZHRoOiAxMDAwcHg7IGhlaWdodDogMTAw
MHB4OycmZ3Q7Jmx0Oy9kaXYmZ3Q7Ij48L2lmcmFtZT4KKyAgPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zcGF0aWFsLW5hdmlnYXRpb24vc25hdi1pZnJhbWUt
ZmxhdHRlbmluZy1zaW1wbGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qvc3BhdGlhbC1uYXZpZ2F0
aW9uL3NuYXYtaWZyYW1lLWZsYXR0ZW5pbmctc2ltcGxlLmh0bWwKaW5kZXggMDNiYTgzNWEzNWMu
LjRlN2MzZTkyYmYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3NwYXRpYWwtbmF2aWdh
dGlvbi9zbmF2LWlmcmFtZS1mbGF0dGVuaW5nLXNpbXBsZS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3Qvc3BhdGlhbC1uYXZpZ2F0aW9uL3NuYXYtaWZyYW1lLWZsYXR0ZW5pbmctc2ltcGxlLmh0
bWwKQEAgLTM4LDcgKzM4LDcgQEAKICAgICBmdW5jdGlvbiBydW5UZXN0KCkKICAgICB7CiAgICAg
ICBpZiAod2luZG93LmludGVybmFscykKLSAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEZy
YW1lRmxhdHRlbmluZ0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5z
ZXRGcmFtZUZsYXR0ZW5pbmcoIkZ1bGx5RW5hYmxlZCIpCiAKICAgICAgIC8vIHN0YXJ0aW5nIHRo
ZSB0ZXN0IGl0c2VsZjogZ2V0IHRvIGEga25vd24gcGxhY2UuCiAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgic3RhcnQiKS5mb2N1cygpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9taXNjL2lmcmFtZS1mbGF0dGVuaW5nLTNsZXZlbC1uZXN0aW5nLXdpdGgtYmxvY2tp
bmctcmVzb3VyY2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9pZnJhbWUtZmxh
dHRlbmluZy0zbGV2ZWwtbmVzdGluZy13aXRoLWJsb2NraW5nLXJlc291cmNlLmh0bWwKaW5kZXgg
YmE5ZGRjZWRhMWQuLjQ4MTI1MjFmZTJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21pc2MvaWZyYW1lLWZsYXR0ZW5pbmctM2xldmVsLW5lc3Rpbmctd2l0aC1ibG9ja2luZy1y
ZXNvdXJjZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9pZnJhbWUtZmxh
dHRlbmluZy0zbGV2ZWwtbmVzdGluZy13aXRoLWJsb2NraW5nLXJlc291cmNlLmh0bWwKQEAgLTQs
NyArNCw3IEBACiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJu
YWxzKSB7CiAgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICAgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICAgICAgaW50ZXJuYWxzLnNldHRp
bmdzLnNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQodHJ1ZSk7CisgICAgICAgICAgICBpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0RnJhbWVGbGF0dGVuaW5nKCJGdWxseUVuYWJsZWQiKQogICAgICAgICB9
CiAgICAgPC9zY3JpcHQ+CiAgICAgPHN0eWxlPmJvZHkgeyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVl
bjsgfTwvc3R5bGU+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmlu
ZGV4IDAxMWU0MWU0NmVkLi5lM2I3ZjZhODNjNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTUwMyw2ICs1MDMsOSBAQCB3ZWJraXQub3JnL2IvMTEyNTMy
IGZhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvZnJhbWVzZXQtZmxhdHRlbmluZy1zdWJmcmFtZXNldHMu
aHRtbAogd2Via2l0Lm9yZy9iLzEwNjE4NSBmYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL2lmcmFtZS1m
bGF0dGVuaW5nLWZpeGVkLWhlaWdodC5odG1sIFsgRmFpbHVyZSBQYXNzIF0KIHdlYmtpdC5vcmcv
Yi8xMDYxODUgZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9mcmFtZXNldC1mbGF0dGVuaW5nLWdyaWQu
aHRtbCBbIEZhaWx1cmUgUGFzcyBdCiAKKyMgRnJhbWVGbGF0dGVuaW5nIGVudW0gcHJlZmVyZW5j
ZXMgY2FuIG5vdCBiZSBvdmVycmlkZGVuLgord2Via2l0Lm9yZy9iLzEyODU5NCBwbGF0Zm9ybS9t
YWMvZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9zZXQtcHJlZmVyZW5jZS5odG1sIFsgRmFpbHVyZSBd
CisKIHdlYmtpdC5vcmcvYi83Mzc2NiBjc3MzL3VuaWNvZGUtYmlkaS1pc29sYXRlLWFoYXJvbi1m
YWlsaW5nLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIAogIyBGYWlsaW5nIHJlZiB0ZXN0cwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5p
bmcvc2V0LXByZWZlcmVuY2UtcGFydGlhbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9zZXQtcHJlZmVyZW5jZS1wYXJ0aWFsLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMWY5YzIw
ZGI5Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9m
cmFtZXMvZmxhdHRlbmluZy9zZXQtcHJlZmVyZW5jZS1wYXJ0aWFsLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDYgQEAKKyAgCisKK1BBU1Mgc2ltcGxlIGlmcmFtZSAKK1BBU1MgZnVsbHNjcmVlbiBp
ZnJhbWUgCitQQVNTIG5vbi1zY3JvbGxpbmcgaWZyYW1lIAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9zZXQtcHJlZmVyZW5jZS1w
YXJ0aWFsLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9mcmFtZXMvZmxhdHRl
bmluZy9zZXQtcHJlZmVyZW5jZS1wYXJ0aWFsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjM1YmQzNTdkMDhkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvc2V0LXByZWZlcmVuY2UtcGFy
dGlhbC5odG1sCkBAIC0wLDAgKzEsMzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKyAgICA8dGl0bGU+VGhpcyB0ZXN0cyBzZXR0aW5nIHRoZSBydW50aW1lIGVuYWJsZWQgZmVh
dHVyZSAiZm9yY2UgcGFydGlhbCBmcmFtZSBmbGF0dGVuaW5nIjwvdGl0bGU+CisgICAgPG1ldGEg
Y2hhcnNldD0idXRmLTgiLz4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICA8c2Ny
aXB0PgorICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMgJiYgd2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICAgICAgdGVzdFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdEZvcmNlUGFydGlh
bEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQiLCAiMSIpOworICAgICAgICBpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0RnJhbWVGbGF0dGVuaW5nKCJEaXNhYmxlZCIpOworICAgICAgfQorCisgICAgICBzZXR1
cCh7ZXhwbGljaXRfZG9uZTogdHJ1ZX0pOworICAgICAgZnVuY3Rpb24gaXNVbmZsYXR0ZW4oaWQp
IHsKKyAgICAgICAgdmFyIGlmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKKyAg
ICAgICAgdmFyIGlmcmFtZUJveCA9IGlmcmFtZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAg
ICAgICAgdmFyIGlubmVyRGl2Qm94ID0gaWZyYW1lLmNvbnRlbnREb2N1bWVudC5ib2R5LmZpcnN0
RWxlbWVudENoaWxkLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgICAgICByZXR1cm4gaWZy
YW1lQm94LndpZHRoIDwgaW5uZXJEaXZCb3gud2lkdGggJiYgaWZyYW1lQm94LmhlaWdodCA8IGlu
bmVyRGl2Qm94LmhlaWdodDsKKyAgICAgIH0KKyAgICAgIGZ1bmN0aW9uIHN0YXJ0KCkgeworICAg
ICAgICB0ZXN0KGZ1bmN0aW9uKCkgeyBhc3NlcnRfZmFsc2UoaXNVbmZsYXR0ZW4oImlmcmFtZTAi
KSk7IH0sICJzaW1wbGUgaWZyYW1lIik7CisgICAgICAgIHRlc3QoZnVuY3Rpb24oKSB7IGFzc2Vy
dF90cnVlKGlzVW5mbGF0dGVuKCJpZnJhbWUxIikpOyB9LCAiZnVsbHNjcmVlbiBpZnJhbWUiKTsK
KyAgICAgICAgdGVzdChmdW5jdGlvbigpIHsgYXNzZXJ0X3RydWUoaXNVbmZsYXR0ZW4oImlmcmFt
ZTIiKSk7IH0sICJub24tc2Nyb2xsaW5nIGlmcmFtZSIpOworICAgICAgICBkb25lKCk7CisgICAg
ICB9CisgICAgPC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAgPGJvZHkgb25sb2FkPSJzdGFydCgpIj4K
KyAgICA8aWZyYW1lIGlkPSJpZnJhbWUwIiBzdHlsZT0iYmFja2dyb3VuZDogYmx1ZTsgd2lkdGg6
IDUwcHg7IGhlaWdodDogNTBweDsiIHNjcm9sbGluZz0ieWVzIiBzcmNkb2M9IiZsdDtkaXYgc3R5
bGU9J3dpZHRoOiAxMDAwcHg7IGhlaWdodDogMTAwMHB4OycmZ3Q7Jmx0Oy9kaXYmZ3Q7Ij48L2lm
cmFtZT4KKyAgICA8aWZyYW1lIGlkPSJpZnJhbWUxIiBzdHlsZT0iYmFja2dyb3VuZDogY3lhbjsg
cG9zaXRpb246IGFic29sdXRlOyB3aWR0aDogMTAwdnc7IGhlaWdodDogMTAwdmg7IiBzY3JvbGxp
bmc9InllcyIgc3JjZG9jPSImbHQ7ZGl2IHN0eWxlPSd3aWR0aDogMTAwMHB4OyBoZWlnaHQ6IDEw
MDBweDsnJmd0OyZsdDsvZGl2Jmd0OyI+PC9pZnJhbWU+CisgICAgPGlmcmFtZSBpZD0iaWZyYW1l
MiIgc3R5bGU9ImJhY2tncm91bmQ6IHllbGxvdzsgd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4
OyIgc2Nyb2xsaW5nPSJubyIgc3JjZG9jPSImbHQ7ZGl2IHN0eWxlPSd3aWR0aDogMTAwMHB4OyBo
ZWlnaHQ6IDEwMDBweDsnJmd0OyZsdDsvZGl2Jmd0OyI+PC9pZnJhbWU+CisgIDwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsdWdpbnMvZnJhbWVzZXQtd2l0aC1wbHVn
aW4tZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL3BsdWdpbnMvZnJhbWVzZXQtd2l0aC1wbHVnaW4t
ZnJhbWUuaHRtbAppbmRleCAxZjM4ZTdhNjUyZi4uYTQyNTZkNzlkOTUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsdWdpbnMvZnJhbWVzZXQtd2l0aC1wbHVnaW4tZnJhbWUuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9wbHVnaW5zL2ZyYW1lc2V0LXdpdGgtcGx1Z2luLWZyYW1lLmh0bWwKQEAgLTMs
NyArMyw3IEBACiAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMp
IHsKICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOwotICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RnJhbWVGbGF0
dGVuaW5nRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEZyYW1l
RmxhdHRlbmluZygiRnVsbHlFbmFibGVkIikKICAgICAgICAgdGVzdFJ1bm5lci5vdmVycmlkZVBy
ZWZlcmVuY2UoIldlYktpdFVzZXNQYWdlQ2FjaGVQcmVmZXJlbmNlS2V5IiwgMSk7CiAgICAgICAg
IHRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRQYWdlQ2FjaGVTdXBwb3J0c1Bs
dWdpbnNQcmVmZXJlbmNlS2V5IiwgMSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGU0YjM3MDYwOWQ0
Li4wYjA0ZmI1ZmI5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc3IEBACisyMDE3LTA1LTE3ICBG
cmVkZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgcnVudGltZSBm
bGFnIGZvciBwYXJ0aWFsIGZyYW1lIGZsYXR0ZW5pbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MjEwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIGJ1ZyAxNzE5MTQsIHRoZSBmcmFtZSBmbGF0dGVu
aW5nIHNldHRpbmcgaXMgY2hhbmdlZCB0byBhIHRocmVlLXN0YXRlcyBlbnVtOiBkaXNhYmxlZCwK
KyAgICAgICAgcGFydGlhbGx5IGVuYWJsZWQgYW5kIGZ1bGx5IGVuYWJsZWQuIEluIG9yZGVyIHRv
IGVhc2lseSB0ZXN0IHBhcnRpYWwgZnJhbWUgZmxhdHRlbmluZywgdGhpcworICAgICAgICBjb21t
aXQgaW50cm9kdWNlIGEgcnVudGltZSBmbGFnIGZvcmNpbmcgZnJhbWUgZmxhdHRlbmluZyB0byAi
cGFydGlhbGx5IGVuYWJsZWQiLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2ZyYW1lcy9mbGF0dGVu
aW5nL3NldC1leHBlcmltZW50YWwtZmVhdHVyZS1mb3JjZS1wYXJ0aWFsLWZyYW1lLWZsYXR0ZW5p
bmcuaHRtbAorICAgICAgICAgICAgICAgcGxhdGZvcm0vbWFjL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5p
bmcvc2V0LXByZWZlcmVuY2UtcGFydGlhbC5odG1sCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmll
dy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmZyYW1lRmxhdHRlbmluZ0VuYWJs
ZWQpOiBVc2UgYWN0dWFsRnJhbWVGbGF0dGVuaW5nLgorICAgICAgICAqIHBhZ2UvUnVudGltZUVu
YWJsZWRGZWF0dXJlcy5oOiBEZWZpbmUgIkZvcmNlUGFydGlhbEZyYW1lRmxhdHRlbmluZyIgbWVt
YmVycyAoYm9vbGVhbiB3aXRoCisgICAgICAgIGl0cyBzZXR0ZXIgYW5kIGdldHRlcikuCisgICAg
ICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRGb3JjZVBhcnRpYWxGcmFt
ZUZsYXR0ZW5pbmdFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OmZvcmNlUGFydGlhbEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQpOgorICAgICAgICAqIHBh
Z2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OmFjdHVhbEZyYW1l
RmxhdHRlbmluZyk6IE5ldyBmdW5jdGlvbiB0byBnZXQgdGhlIGZyYW1lIGZsYXR0ZW5pbmcgdmFs
dWUsCisgICAgICAgIGZvcmNpbmcgdG8gRnJhbWVGbGF0dGVuaW5nUGFydGlhbGx5RW5hYmxlZCB3
aGVuIHRoZSAiRm9yY2VQYXJ0aWFsRnJhbWVGbGF0dGVuaW5nIiBpcyBlbmFibGVkLgorICAgICAg
ICAqIHBhZ2UvU2V0dGluZ3MuaDogRGVjbGFyZSBhY3R1YWxGcmFtZUZsYXR0ZW5pbmcuCisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckZyYW1lU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckZyYW1lU2V0OjpmbGF0dGVuRnJhbWVTZXQpOiBVc2UgYWN0dWFsRnJhbWVGbGF0dGVuaW5n
LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVySUZyYW1lOjpmbGF0dGVuRnJhbWUpOiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUZsYXR0ZW5pbmdMYXlv
dXREaXNhbGxvd2VyOjpGcmFtZUZsYXR0ZW5pbmdMYXlvdXREaXNhbGxvd2VyKTogRGl0dG8uCisg
ICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcDogQWRkIHNldHRlciBhbmQgYmFj
a3VwIGZvciAiRm9yY2VQYXJ0aWFsRnJhbWVGbGF0dGVuaW5nIi4KKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6QmFja3VwKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
dGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6cmVzdG9yZVRvKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
dGVybmFsU2V0dGluZ3M6OnNldEZvcmNlUGFydGlhbEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQpOgor
ICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oOiBEZWNsYXJlICJGb3JjZVBhcnRp
YWxGcmFtZUZsYXR0ZW5pbmciIG1lbWJlcnMuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmlkbDogRXhwb3NlICJzZXRGb3JjZVBhcnRpYWxGcmFtZUZsYXR0ZW5pbmdFbmFibGVk
IiBmdW5jdGlvbi4KKworMjAxNy0wNS0xNCBGcmVkZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNv
bT4KKworICAgICAgICBBZGQgaGV1cmlzdGljIHRvIGF2b2lkIGZsYXR0ZW5pbmcgImZ1bGxzY3Jl
ZW4iIGlmcmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE3MTkxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFNvbWUgYXV0aG9ycyBpbXBsZW1lbnQgZnVsbHNjcmVlbiBwb3B1cHMgYXMgb3V0LW9mLWZs
b3cgaWZyYW1lcyB3aXRoIHNpemUgc2V0IHRvIGZ1bGwgdmlld3BvcnQgKHVzaW5nIHZ3L3ZoIENT
UyB1bml0cykuCisgICAgICAgIFdoZW4gaWZyYW1lIGZsYXR0ZW5pbmcgaXMgZW5hYmxlZCwgc3Vj
aCBpZnJhbWVzIG1heSB1bmV4cGVjdGVkbHkgYmVjb21lIGxhcmdlciB0aGFuIHRoZSB2aWV3cG9y
dC4KKyAgICAgICAgVGhpcyBjb21taXQgYWRkcyBhIHNpbXBsZSBoZXVyaXN0aWMgdG8gYXZvaWQg
ZnJhbWUgZmxhdHRlbmluZyBpbiB0aGF0IGNhc2UuCisgICAgICAgIEl0IGlzIGV4cGVyaW1lbnRl
ZCBieSBpbnRyb2R1Y2luZyBhICJwYXJ0aWFsbHkgZW5hYmxlZCIgc3RhdGUgZm9yIHRoZSBmcmFt
ZSBmbGF0dGVuaW5nIHNldHRpbmcuCisgICAgICAgIFRoZSBkZWZhdWx0IGZyYW1lIGZsYXR0ZW5p
bmcgaXMgc3RpbGwgZWl0aGVyIGRpc2FibGVkIG9yIChmdWxseSkgZW5hYmxlZCBvbiBhbGwgcGxh
dGZvcm1zLgorICAgICAgICBJbnRlcm5hbFNldHRpbmdzIGlzIGFsc28gYWRqdXN0ZWQgc28gdGhh
dCB0aGUgdGVzdHMgY2FuIHN0aWxsIHNldCB0aGUgZnJhbWUgZmxhdHRlbmluZyBzZXR0aW5nLgor
CisgICAgICAgIFRlc3Q6IGZhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvaWZyYW1lLWZsYXR0ZW5pbmct
ZnVsbHNjcmVlbi5odG1sCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZVZpZXc6OmZyYW1lRmxhdHRlbmluZ0VuYWJsZWQpOiBVc2UgdGhlIGZy
YW1lIGZsYXR0ZW5pbmcgZW51bSBzZXR0aW5nLgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDog
RGVmaW5lIGEgZnJhbWUgZmxhdHRlbmluZyBlbnVtIHRoYXQgaW5jbHVkZXMgYSAicGFydGlhbGx5
IGVuYWJsZWQiIHN0YXRlLgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaW46IFJlZGVmaW5lIGZy
YW1lIGZsYXR0ZW5pbmcgdXNpbmcgdGhhdCBlbnVtLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJGcmFtZVNldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGcmFtZVNldDo6ZmxhdHRl
bkZyYW1lU2V0KTogVXNlIHRoZSBmcmFtZSBmbGF0dGVuaW5nIGVudW0gc2V0dGluZy4KKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVySUZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
cklGcmFtZTo6ZmxhdHRlbkZyYW1lKTogQWRkIGEgY29tbWVudCBmb3IgdGhlIGV4aXN0aW5nICJ6
ZXJvIHNpemUiIGhldXJpc3RpYy4KKyAgICAgICAgQWRkIGEgaGV1cmlzdGljIHdoZW4gcGFydGlh
bCBmcmFtZSBmbGF0dGVuaW5nIGlzIGVuYWJsZWQgc2V0dGluZyBpcyBlbmFibGVkLgorICAgICAg
ICBUaGVyZSBpcyBub3QgYSBzdHJpY3QgY29tcGFyaXNvbiBhZ2FpbnN0IHRoZSB2aWV3cG9ydCBz
aXplIHNpbmNlIGF1dGhvcnMgbWF5IG5vdCBleGFjdGx5IHVzZSAxMDB2dy8xMDB2aC4KKyAgICAg
ICAgQW55d2F5LCBpdCBpcyBoYXJkIHRvIGRvIHN1Y2ggY29tcGFyaXNvbiB1c2luZyB0aGUgcmVz
b2x2ZWQgd2lkdGggJiBoZWlnaHQgb24gUmVuZGVyU3R5bGUuCisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVGbGF0dGVuaW5nTGF5b3V0
RGlzYWxsb3dlcjo6RnJhbWVGbGF0dGVuaW5nTGF5b3V0RGlzYWxsb3dlcik6IFVzZSB0aGUgZnJh
bWUgZmxhdHRlbmluZyBlbnVtIHNldHRpbmcuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6
QmFja3VwKTogQWRkIGJhY2t1cCBmb3IgZnJhbWUgZmxhdHRlbmluZy4KKyAgICAgICAgKFdlYkNv
cmU6OkludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6cmVzdG9yZVRvKTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjppbnRlcm5hbFNldHRpbmdzVG9XZWJDb3JlVmFsdWUpOiBIZWxwZXIgZnVuY3Rp
b24gdG8gY2FzdCB0aGUgZnJhbWUgZmxhdHRlbmluZyB2YWx1ZXMuCisgICAgICAgIChXZWJDb3Jl
OjpJbnRlcm5hbFNldHRpbmdzOjpzZXRGcmFtZUZsYXR0ZW5pbmcpOiBSZWRlZmluZSBzZXRGcmFt
ZUZsYXR0ZW5pbmcgdG8gYWNjZXB0IGFuIGVudW0uCisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmg6IERlZmluZSBuZXcgZW51bSAmIHNldHRlciBmb3IgZnJhbWUgZmxhdHRlbmlu
ZyBhcyB3ZWxsIGFzIGEgYmFja3VwIHZhbHVlLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxT
ZXR0aW5ncy5pZGw6IERlZmluZSBuZXcgZW51bSAmIHNldHRlciBmb3IgZnJhbWUgZmxhdHRlbmlu
Zy4KKwogMjAxNy0wNS0xMiAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFtXZWJJRExdIFJlbW92ZSBuZWVkIGZvciBjdXN0b20gYmluZGluZyBmb3IgV29ya2VyIGNvbnN0
cnVjdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggMmFmNmNkN2FhN2MuLjRiODEz
NjI5Nzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC01NjcsNyArNTY3LDcgQEAg
dm9pZCBGcmFtZVZpZXc6OnNldE1hcmdpbkhlaWdodChMYXlvdXRVbml0IGgpCiAKIGJvb2wgRnJh
bWVWaWV3OjpmcmFtZUZsYXR0ZW5pbmdFbmFibGVkKCkgY29uc3QKIHsKLSAgICByZXR1cm4gZnJh
bWUoKS5zZXR0aW5ncygpLmZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoKTsKKyAgICByZXR1cm4gZnJh
bWUoKS5zZXR0aW5ncygpLmFjdHVhbEZyYW1lRmxhdHRlbmluZygpICE9IEZyYW1lRmxhdHRlbmlu
Z0Rpc2FibGVkOwogfQogCiBib29sIEZyYW1lVmlldzo6aXNGcmFtZUZsYXR0ZW5pbmdWYWxpZEZv
clRoaXNGcmFtZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1J1bnRp
bWVFbmFibGVkRmVhdHVyZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRG
ZWF0dXJlcy5oCmluZGV4IDYxODExZTRkMjA2Li5jYmM5ZDE0ZmMxYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKQEAgLTE5OCw2ICsxOTgsOSBAQCBw
dWJsaWM6CiAgICAgYm9vbCBzdWJ0bGVDcnlwdG9FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9p
c1N1YnRsZUNyeXB0b0VuYWJsZWQ7IH0KICNlbmRpZgogCisgICAgdm9pZCBzZXRGb3JjZVBhcnRp
YWxGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1fZm9yY2VQYXJ0aWFs
RnJhbWVGbGF0dGVuaW5nRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQorICAgIGJvb2wgZm9yY2VQYXJ0
aWFsRnJhbWVGbGF0dGVuaW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9yY2VQYXJ0aWFs
RnJhbWVGbGF0dGVuaW5nRW5hYmxlZDsgfQorCiAjaWYgRU5BQkxFKFZJREVPKQogICAgIGJvb2wg
YXVkaW9FbmFibGVkKCkgY29uc3Q7CiAgICAgYm9vbCBodG1sTWVkaWFFbGVtZW50RW5hYmxlZCgp
IGNvbnN0OwpAQCAtMzI1LDYgKzMyOCw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzU3VidGxl
Q3J5cHRvRW5hYmxlZCB7IHRydWUgfTsKICNlbmRpZgogCisgICAgYm9vbCBtX2ZvcmNlUGFydGlh
bEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQgeyBmYWxzZSB9OworCiAgICAgZnJpZW5kIGNsYXNzIFdU
Rjo6TmV2ZXJEZXN0cm95ZWQ8UnVudGltZUVuYWJsZWRGZWF0dXJlcz47CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MuY3BwCmluZGV4IDBlYWY1MjZlYjk5Li5kZjIzNzEzZmYzZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAj
aW5jbHVkZSAiUGFnZUNhY2hlLmgiCiAjaW5jbHVkZSAiUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tz
LmgiCisjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlN0b3Jh
Z2VNYXAuaCIKICNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVk
Lmg+CkBAIC00MjUsNiArNDI2LDExIEBAIHZvaWQgU2V0dGluZ3M6OnNldEZvcmNlUGVuZGluZ1dl
YkdMUG9saWN5KGJvb2wgZm9yY2VkKQogICAgIG1fZm9yY2VQZW5kaW5nV2ViR0xQb2xpY3kgPSBm
b3JjZWQ7CiB9CiAKK0ZyYW1lRmxhdHRlbmluZyBTZXR0aW5nczo6YWN0dWFsRnJhbWVGbGF0dGVu
aW5nKCkKK3sKKyAgICByZXR1cm4gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVy
ZXMoKS5mb3JjZVBhcnRpYWxGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKCkgPyBGcmFtZUZsYXR0ZW5p
bmdQYXJ0aWFsbHlFbmFibGVkIDogZnJhbWVGbGF0dGVuaW5nKCk7Cit9CisKIHZvaWQgU2V0dGlu
Z3M6OnNldFBsdWdpbnNFbmFibGVkKGJvb2wgYXJlUGx1Z2luc0VuYWJsZWQpCiB7CiAgICAgaWYg
KG1fYXJlUGx1Z2luc0VuYWJsZWQgPT0gYXJlUGx1Z2luc0VuYWJsZWQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmgKaW5kZXggNTk0OGRiZTE5MzIuLjJmODhjNDY3ZmM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5oCkBAIC04OCw2ICs4OCwxMiBAQCBlbnVtIFBERkltYWdlQ2FjaGluZ1BvbGljeSB7CiAjZW5k
aWYKIH07CiAKK2VudW0gRnJhbWVGbGF0dGVuaW5nIHsKKyAgICBGcmFtZUZsYXR0ZW5pbmdEaXNh
YmxlZCwKKyAgICBGcmFtZUZsYXR0ZW5pbmdQYXJ0aWFsbHlFbmFibGVkLAorICAgIEZyYW1lRmxh
dHRlbmluZ0Z1bGx5RW5hYmxlZAorfTsKKwogdHlwZWRlZiB1bnNpZ25lZCBEZWJ1Z092ZXJsYXlS
ZWdpb25zOwogCiBjbGFzcyBTZXR0aW5ncyA6IHB1YmxpYyBSZWZDb3VudGVkPFNldHRpbmdzPiB7
CkBAIC0zMjYsNiArMzMyLDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
Rm9yY2VQZW5kaW5nV2ViR0xQb2xpY3koYm9vbCk7CiAgICAgYm9vbCBpc0ZvcmNlUGVuZGluZ1dl
YkdMUG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9mb3JjZVBlbmRpbmdXZWJHTFBvbGljeTsgfQog
CisgICAgV0VCQ09SRV9FWFBPUlQgRnJhbWVGbGF0dGVuaW5nIGFjdHVhbEZyYW1lRmxhdHRlbmlu
ZygpOworCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgc2V0QWxsb3dzQW55U1NMQ2Vy
dGlmaWNhdGUoYm9vbCk7CiAgICAgc3RhdGljIGJvb2wgYWxsb3dzQW55U1NMQ2VydGlmaWNhdGUo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbiBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KaW5kZXggY2Y1MTNlNDM3MmMuLjVhYzc4MzRjYWEw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KQEAgLTE3NCw3ICsxNzQsNyBAQCBzbmFwc2hvdEFs
bFBsdWdJbnMgaW5pdGlhbD1mYWxzZQogYXV0b3N0YXJ0T3JpZ2luUGx1Z0luU25hcHNob3R0aW5n
RW5hYmxlZCBpbml0aWFsPXRydWUKIHByaW1hcnlQbHVnSW5TbmFwc2hvdERldGVjdGlvbkVuYWJs
ZWQgaW5pdGlhbD10cnVlCiBtYXhpbXVtUGx1Z0luU25hcHNob3RBdHRlbXB0cyB0eXBlPXVuc2ln
bmVkLCBpbml0aWFsPTIwCi1mcmFtZUZsYXR0ZW5pbmdFbmFibGVkIGluaXRpYWw9ZmFsc2UKK2Zy
YW1lRmxhdHRlbmluZyB0eXBlPUZyYW1lRmxhdHRlbmluZywgaW5pdGlhbD1GcmFtZUZsYXR0ZW5p
bmdEaXNhYmxlZAogCiB3ZWJTZWN1cml0eUVuYWJsZWQgaW5pdGlhbD10cnVlCiBzcGF0aWFsTmF2
aWdhdGlvbkVuYWJsZWQgaW5pdGlhbD1mYWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZyYW1lU2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGcmFtZVNldC5jcHAKaW5kZXggMDUyYTMyYzdjZTAuLjI0NGY4ZjIyNjJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVTZXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZVNldC5jcHAKQEAgLTY1MSw3ICs2NTEs
NyBAQCB2b2lkIFJlbmRlckZyYW1lU2V0Ojpwb3NpdGlvbkZyYW1lc1dpdGhGbGF0dGVuaW5nKCkK
IAogYm9vbCBSZW5kZXJGcmFtZVNldDo6ZmxhdHRlbkZyYW1lU2V0KCkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gc2V0dGluZ3MoKS5mcmFtZUZsYXR0ZW5pbmdFbmFibGVkKCk7CisgICAgcmV0dXJuIHNl
dHRpbmdzKCkuYWN0dWFsRnJhbWVGbGF0dGVuaW5nKCkgIT0gRnJhbWVGbGF0dGVuaW5nRGlzYWJs
ZWQ7CiB9CiAKIHZvaWQgUmVuZGVyRnJhbWVTZXQ6OnN0YXJ0UmVzaXppbmcoR3JpZEF4aXMmIGF4
aXMsIGludCBwb3NpdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJJRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklGcmFtZS5j
cHAKaW5kZXggZWE3MzdhNGY5MzQuLjcwMjhiNjk2MjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySUZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySUZyYW1lLmNwcApAQCAtNzEsMTUgKzcxLDIzIEBAIFJlbmRlclZpZXcqIFJl
bmRlcklGcmFtZTo6Y29udGVudFJvb3RSZW5kZXJlcigpIGNvbnN0CiAKIGJvb2wgUmVuZGVySUZy
YW1lOjpmbGF0dGVuRnJhbWUoKSBjb25zdAogewotICAgIGlmICghc2V0dGluZ3MoKS5mcmFtZUZs
YXR0ZW5pbmdFbmFibGVkKCkpCisgICAgaWYgKHNldHRpbmdzKCkuYWN0dWFsRnJhbWVGbGF0dGVu
aW5nKCkgPT0gRnJhbWVGbGF0dGVuaW5nRGlzYWJsZWQpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIGlmIChzdHlsZSgpLndpZHRoKCkuaXNGaXhlZCgpICYmIHN0eWxlKCkuaGVpZ2h0KCku
aXNGaXhlZCgpKSB7CiAgICAgICAgIC8vIERvIG5vdCBmbGF0dGVuIGlmcmFtZXMgd2l0aCBzY3Jv
bGxpbmc9Im5vIi4KICAgICAgICAgaWYgKGlmcmFtZUVsZW1lbnQoKS5zY3JvbGxpbmdNb2RlKCkg
PT0gU2Nyb2xsYmFyQWx3YXlzT2ZmKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICAvLyBEbyBub3QgZmxhdHRlbiBpZnJhbWVzIHRoYXQgaGF2ZSB6ZXJvIHNpemUsIGFzIGZsYXR0
ZW5pbmcgbWlnaHQgbWFrZSB0aGVtIHZpc2libGUuCiAgICAgICAgIGlmIChzdHlsZSgpLndpZHRo
KCkudmFsdWUoKSA8PSAwIHx8IHN0eWxlKCkuaGVpZ2h0KCkudmFsdWUoKSA8PSAwKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlmIChzZXR0aW5ncygpLmFjdHVhbEZyYW1l
RmxhdHRlbmluZygpID09IEZyYW1lRmxhdHRlbmluZ1BhcnRpYWxseUVuYWJsZWQpIHsKKyAgICAg
ICAgICAgIC8vIFNvbWUgYXV0aG9ycyBpbXBsZW1lbnQgZnVsbHNjcmVlbiBwb3B1cHMgYXMgb3V0
LW9mLWZsb3cgaWZyYW1lcyB3aXRoIHNpemUgc2V0IHRvIGZ1bGwgdmlld3BvcnQgKHVzaW5nIHZ3
L3ZoIHVuaXRzKS4KKyAgICAgICAgICAgIC8vIERvIG5vdCBmbGF0dGVuIHN1Y2ggaWZyYW1lcyBv
ciB0aGV5IGNvdWxkIGJlY29tZSBsYXJnZXIgdGhhbiB0aGUgdmlld3BvcnQuCisgICAgICAgICAg
ICBpZiAoc3R5bGUoKS5oYXNPdXRPZkZsb3dQb3NpdGlvbigpICYmIHN0eWxlKCkuaGFzVmlld3Bv
cnRVbml0cygpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQogICAg
IH0KIAogICAgIC8vIERvIG5vdCBmbGF0dGVuIG9mZnNjcmVlbiBpbm5lciBmcmFtZXMgZHVyaW5n
IGZyYW1lIGZsYXR0ZW5pbmcsIGFzIGZsYXR0ZW5pbmcgbWlnaHQgbWFrZSB0aGVtIHZpc2libGUu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5kZXggYjZkYWU0YzgzZDUu
Ljg0NTczZGRiZDkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Vmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCkBA
IC02MSw3ICs2MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0cnVjdCBGcmFtZUZsYXR0ZW5p
bmdMYXlvdXREaXNhbGxvd2VyIHsKICAgICBGcmFtZUZsYXR0ZW5pbmdMYXlvdXREaXNhbGxvd2Vy
KEZyYW1lVmlldyYgZnJhbWVWaWV3KQogICAgICAgICA6IG1fZnJhbWVWaWV3KGZyYW1lVmlldykK
LSAgICAgICAgLCBtX2Rpc2FsbG93TGF5b3V0KGZyYW1lVmlldy5mcmFtZSgpLnNldHRpbmdzKCku
ZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCgpKQorICAgICAgICAsIG1fZGlzYWxsb3dMYXlvdXQoZnJh
bWVWaWV3LmZyYW1lKCkuc2V0dGluZ3MoKS5hY3R1YWxGcmFtZUZsYXR0ZW5pbmcoKSAhPSBGcmFt
ZUZsYXR0ZW5pbmdEaXNhYmxlZCkKICAgICB7CiAgICAgICAgIGlmIChtX2Rpc2FsbG93TGF5b3V0
KQogICAgICAgICAgICAgbV9mcmFtZVZpZXcuc3RhcnREaXNhbGxvd2luZ0xheW91dCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKaW5kZXggN2FjZjUwNTkz
MWUuLjgwNmViOWUwMWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0
aW5ncy5jcHAKQEAgLTk4LDYgKzk4LDcgQEAgSW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpCYWNr
dXAoU2V0dGluZ3MmIHNldHRpbmdzKQogICAgICwgbV9mb3JjZWRDb2xvcnNBcmVJbnZlcnRlZEFj
Y2Vzc2liaWxpdHlWYWx1ZShzZXR0aW5ncy5mb3JjZWRDb2xvcnNBcmVJbnZlcnRlZEFjY2Vzc2li
aWxpdHlWYWx1ZSgpKQogICAgICwgbV9mb3JjZWREaXNwbGF5SXNNb25vY2hyb21lQWNjZXNzaWJp
bGl0eVZhbHVlKHNldHRpbmdzLmZvcmNlZERpc3BsYXlJc01vbm9jaHJvbWVBY2Nlc3NpYmlsaXR5
VmFsdWUoKSkKICAgICAsIG1fZm9yY2VkUHJlZmVyc1JlZHVjZWRNb3Rpb25BY2Nlc3NpYmlsaXR5
VmFsdWUoc2V0dGluZ3MuZm9yY2VkUHJlZmVyc1JlZHVjZWRNb3Rpb25BY2Nlc3NpYmlsaXR5VmFs
dWUoKSkKKyAgICAsIG1fZnJhbWVGbGF0dGVuaW5nKHNldHRpbmdzLmZyYW1lRmxhdHRlbmluZygp
KQogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpCiAgICAgLCBtX2luZGV4
ZWREQldvcmtlcnNFbmFibGVkKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVz
KCkuaW5kZXhlZERCV29ya2Vyc0VuYWJsZWQoKSkKICNlbmRpZgpAQCAtMTA4LDYgKzEwOSw3IEBA
IEludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6QmFja3VwKFNldHRpbmdzJiBzZXR0aW5ncykKICNp
ZiBFTkFCTEUoV0VCR1BVKQogICAgICwgbV93ZWJHUFVFbmFibGVkKFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViR1BVRW5hYmxlZCgpKQogI2VuZGlmCisgICAgLCBt
X2ZvcmNlUGFydGlhbEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoUnVudGltZUVuYWJsZWRGZWF0dXJl
czo6c2hhcmVkRmVhdHVyZXMoKS5mb3JjZVBhcnRpYWxGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKCkp
CiB7CiB9CiAKQEAgLTE4NSw2ICsxODcsNyBAQCB2b2lkIEludGVybmFsU2V0dGluZ3M6OkJhY2t1
cDo6cmVzdG9yZVRvKFNldHRpbmdzJiBzZXR0aW5ncykKICAgICBzZXR0aW5ncy5zZXRGb3JjZWRE
aXNwbGF5SXNNb25vY2hyb21lQWNjZXNzaWJpbGl0eVZhbHVlKG1fZm9yY2VkRGlzcGxheUlzTW9u
b2Nocm9tZUFjY2Vzc2liaWxpdHlWYWx1ZSk7CiAgICAgc2V0dGluZ3Muc2V0Rm9yY2VkUHJlZmVy
c1JlZHVjZWRNb3Rpb25BY2Nlc3NpYmlsaXR5VmFsdWUobV9mb3JjZWRQcmVmZXJzUmVkdWNlZE1v
dGlvbkFjY2Vzc2liaWxpdHlWYWx1ZSk7CiAgICAgU2V0dGluZ3M6OnNldEFsbG93c0FueVNTTENl
cnRpZmljYXRlKGZhbHNlKTsKKyAgICBzZXR0aW5ncy5zZXRGcmFtZUZsYXR0ZW5pbmcobV9mcmFt
ZUZsYXR0ZW5pbmcpOwogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUykK
ICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldEluZGV4ZWRE
QldvcmtlcnNFbmFibGVkKG1faW5kZXhlZERCV29ya2Vyc0VuYWJsZWQpOwpAQCAtMTk2LDYgKzE5
OSw3IEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpyZXN0b3JlVG8oU2V0dGluZ3Mm
IHNldHRpbmdzKQogI2lmIEVOQUJMRShXRUJHUFUpCiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJl
czo6c2hhcmVkRmVhdHVyZXMoKS5zZXRXZWJHUFVFbmFibGVkKG1fd2ViR1BVRW5hYmxlZCk7CiAj
ZW5kaWYKKyAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldEZv
cmNlUGFydGlhbEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQobV9mb3JjZVBhcnRpYWxGcmFtZUZsYXR0
ZW5pbmdFbmFibGVkKTsKIH0KIAogY2xhc3MgSW50ZXJuYWxTZXR0aW5nc1dyYXBwZXIgOiBwdWJs
aWMgU3VwcGxlbWVudDxQYWdlPiB7CkBAIC03MTEsNiArNzE1LDExIEBAIHZvaWQgSW50ZXJuYWxT
ZXR0aW5nczo6c2V0V2ViR1BVRW5hYmxlZChib29sIGVuYWJsZWQpCiAjZW5kaWYKIH0KIAordm9p
ZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRGb3JjZVBhcnRpYWxGcmFtZUZsYXR0ZW5pbmdFbmFibGVk
KGJvb2wgZW5hYmxlZCkKK3sKKyAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0
dXJlcygpLnNldEZvcmNlUGFydGlhbEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoZW5hYmxlZCk7Cit9
CisKIGJvb2wgSW50ZXJuYWxTZXR0aW5nczo6c2hvdWxkRGlzcGF0Y2hSZXF1ZXN0QW5pbWF0aW9u
RnJhbWVFdmVudHMoKQogewogICAgIHJldHVybiBzZXR0aW5ncygpLnNob3VsZERpc3BhdGNoUmVx
dWVzdEFuaW1hdGlvbkZyYW1lRXZlbnRzKCk7CkBAIC03NzksNiArNzg4LDI5IEBAIEV4Y2VwdGlv
bk9yPHZvaWQ+IEludGVybmFsU2V0dGluZ3M6OnNldFN5c3RlbUxheW91dERpcmVjdGlvbihjb25z
dCBTdHJpbmcmIGRpcmVjCiAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOVkFMSURfQUNDRVNTX0VS
UiB9OwogfQogCitzdGF0aWMgRnJhbWVGbGF0dGVuaW5nIGludGVybmFsU2V0dGluZ3NUb1dlYkNv
cmVWYWx1ZShJbnRlcm5hbFNldHRpbmdzOjpGcmFtZUZsYXR0ZW5pbmdWYWx1ZSB2YWx1ZSkKK3sK
KyAgICBzd2l0Y2ggKHZhbHVlKSB7CisgICAgY2FzZSBJbnRlcm5hbFNldHRpbmdzOjpGcmFtZUZs
YXR0ZW5pbmdWYWx1ZTo6RGlzYWJsZWQ6CisgICAgICAgIHJldHVybiBGcmFtZUZsYXR0ZW5pbmdE
aXNhYmxlZDsKKyAgICBjYXNlIEludGVybmFsU2V0dGluZ3M6OkZyYW1lRmxhdHRlbmluZ1ZhbHVl
OjpQYXJ0aWFsbHlFbmFibGVkOgorICAgICAgICByZXR1cm4gRnJhbWVGbGF0dGVuaW5nUGFydGlh
bGx5RW5hYmxlZDsKKyAgICBjYXNlIEludGVybmFsU2V0dGluZ3M6OkZyYW1lRmxhdHRlbmluZ1Zh
bHVlOjpGdWxseUVuYWJsZWQ6CisgICAgICAgIHJldHVybiBGcmFtZUZsYXR0ZW5pbmdGdWxseUVu
YWJsZWQ7CisgICAgfQorCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIEZy
YW1lRmxhdHRlbmluZ0Rpc2FibGVkOworfQorCitFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNl
dHRpbmdzOjpzZXRGcmFtZUZsYXR0ZW5pbmcoY29uc3QgRnJhbWVGbGF0dGVuaW5nVmFsdWUmIGZy
YW1lRmxhdHRlbmluZykKK3sKKyAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IElOVkFMSURfQUNDRVNTX0VSUiB9OworICAgIHNldHRpbmdzKCkuc2V0RnJhbWVGbGF0
dGVuaW5nKGludGVybmFsU2V0dGluZ3NUb1dlYkNvcmVWYWx1ZShmcmFtZUZsYXR0ZW5pbmcpKTsK
KyAgICByZXR1cm4geyB9OworfQorCiB2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldEFsbG93c0Fu
eVNTTENlcnRpZmljYXRlKGJvb2wgYWxsb3dzQW55Q2VydGlmaWNhdGUpCiB7CiAgICAgU2V0dGlu
Z3M6OnNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKGFsbG93c0FueUNlcnRpZmljYXRlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKaW5kZXggMTllNWJkZTE1YmQu
LjUxZjMzMWIxMDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
U2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3Mu
aApAQCAtOTUsNiArOTUsOSBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VXNl
ckludGVyZmFjZURpcmVjdGlvblBvbGljeShjb25zdCBTdHJpbmcmKTsKICAgICBFeGNlcHRpb25P
cjxTdHJpbmc+IHN5c3RlbUxheW91dERpcmVjdGlvbigpOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNldFN5c3RlbUxheW91dERpcmVjdGlvbihjb25zdCBTdHJpbmcmKTsKKworICAgIGVudW0gY2xh
c3MgRnJhbWVGbGF0dGVuaW5nVmFsdWUgeyBEaXNhYmxlZCwgUGFydGlhbGx5RW5hYmxlZCwgRnVs
bHlFbmFibGVkIH07CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0RnJhbWVGbGF0dGVuaW5nKGNv
bnN0IEZyYW1lRmxhdHRlbmluZ1ZhbHVlJik7CiAgICAgCiAgICAgc3RhdGljIHZvaWQgc2V0QWxs
b3dzQW55U1NMQ2VydGlmaWNhdGUoYm9vbCk7CiAKQEAgLTExNyw2ICsxMjAsNyBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIHZvaWQgc2V0Q1NTR3JpZExheW91dEVuYWJsZWQoYm9vbCk7CiAgICAgc3Rh
dGljIHZvaWQgc2V0V2ViR0wyRW5hYmxlZChib29sKTsKICAgICBzdGF0aWMgdm9pZCBzZXRXZWJH
UFVFbmFibGVkKGJvb2wpOworICAgIHN0YXRpYyB2b2lkIHNldEZvcmNlUGFydGlhbEZyYW1lRmxh
dHRlbmluZ0VuYWJsZWQoYm9vbCk7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgSW50ZXJuYWxT
ZXR0aW5ncyhQYWdlKik7CkBAIC0xODgsMTIgKzE5MiwxNCBAQCBwcml2YXRlOgogICAgICAgICBT
ZXR0aW5nczo6Rm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlIG1fZm9yY2VkQ29sb3JzQXJlSW52ZXJ0
ZWRBY2Nlc3NpYmlsaXR5VmFsdWU7CiAgICAgICAgIFNldHRpbmdzOjpGb3JjZWRBY2Nlc3NpYmls
aXR5VmFsdWUgbV9mb3JjZWREaXNwbGF5SXNNb25vY2hyb21lQWNjZXNzaWJpbGl0eVZhbHVlOwog
ICAgICAgICBTZXR0aW5nczo6Rm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlIG1fZm9yY2VkUHJlZmVy
c1JlZHVjZWRNb3Rpb25BY2Nlc3NpYmlsaXR5VmFsdWU7CisgICAgICAgIEZyYW1lRmxhdHRlbmlu
ZyBtX2ZyYW1lRmxhdHRlbmluZzsKIAogICAgICAgICAvLyBSdW50aW1lIGVuYWJsZWQgc2V0dGlu
Z3MuCiAgICAgICAgIGJvb2wgbV9pbmRleGVkREJXb3JrZXJzRW5hYmxlZDsKICAgICAgICAgYm9v
bCBtX2Nzc0dyaWRMYXlvdXRFbmFibGVkOwogICAgICAgICBib29sIG1fd2ViR0wyRW5hYmxlZDsK
ICAgICAgICAgYm9vbCBtX3dlYkdQVUVuYWJsZWQ7CisgICAgICAgIGJvb2wgbV9mb3JjZVBhcnRp
YWxGcmFtZUZsYXR0ZW5pbmdFbmFibGVkOwogICAgIH07CiAKICAgICBQYWdlKiBtX3BhZ2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAppbmRleCBlZjUzZDlm
OTFkNS4uNGM5ZjY4NjA2ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmlkbApAQCAtMjUsNiArMjUsNyBAQAogICovCiAKIGVudW0gRm9yY2VkQWNjZXNzaWJp
bGl0eVZhbHVlIHsgInN5c3RlbSIsICJvbiIsICJvZmYiIH07CitlbnVtIEZyYW1lRmxhdHRlbmlu
Z1ZhbHVlIHsgIkRpc2FibGVkIiwgIlBhcnRpYWxseUVuYWJsZWQiLCAiRnVsbHlFbmFibGVkIiB9
OwogCiBbCiAgICAgTm9JbnRlcmZhY2VPYmplY3QsCkBAIC04MSwxMiArODIsMTQgQEAgZW51bSBG
b3JjZWRBY2Nlc3NpYmlsaXR5VmFsdWUgeyAic3lzdGVtIiwgIm9uIiwgIm9mZiIgfTsKICAgICBb
TWF5VGhyb3dFeGNlcHRpb25dIHZvaWQgc2V0QWxsb3dzSW5saW5lTWVkaWFQbGF5YmFjayhib29s
ZWFuIGFsbG93cyk7CiAgICAgW01heVRocm93RXhjZXB0aW9uXSB2b2lkIHNldEFsbG93c0lubGlu
ZU1lZGlhUGxheWJhY2tBZnRlckZ1bGxzY3JlZW4oYm9vbGVhbiBhbGxvd3MpOwogICAgIFtNYXlU
aHJvd0V4Y2VwdGlvbl0gdm9pZCBzZXRJbmxpbmVNZWRpYVBsYXliYWNrUmVxdWlyZXNQbGF5c0lu
bGluZUF0dHJpYnV0ZShib29sZWFuIHJlcXVpcmVzKTsKKyAgICBbTWF5VGhyb3dFeGNlcHRpb25d
IHZvaWQgc2V0RnJhbWVGbGF0dGVuaW5nKEZyYW1lRmxhdHRlbmluZ1ZhbHVlIGZyYW1lRmxhdHRl
bmluZyk7CiAKICAgICAvLyBSdW50aW1lRW5hYmxlZEZlYXR1cmVzLgogICAgIHZvaWQgc2V0SW5k
ZXhlZERCV29ya2Vyc0VuYWJsZWQoYm9vbGVhbiBlbmFibGVkKTsKICAgICB2b2lkIHNldENTU0dy
aWRMYXlvdXRFbmFibGVkKGJvb2xlYW4gZW5hYmxlZCk7CiAgICAgdm9pZCBzZXRXZWJHTDJFbmFi
bGVkKGJvb2xlYW4gZW5hYmxlZCk7CiAgICAgdm9pZCBzZXRXZWJHUFVFbmFibGVkKGJvb2xlYW4g
ZW5hYmxlZCk7CisgICAgdm9pZCBzZXRGb3JjZVBhcnRpYWxGcmFtZUZsYXR0ZW5pbmdFbmFibGVk
KGJvb2xlYW4gZW5hYmxlZCk7CiAKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIERPTVN0cmluZyB1
c2VySW50ZXJmYWNlRGlyZWN0aW9uUG9saWN5KCk7CiAgICAgW01heVRocm93RXhjZXB0aW9uXSB2
b2lkIHNldFVzZXJJbnRlcmZhY2VEaXJlY3Rpb25Qb2xpY3koRE9NU3RyaW5nIHBvbGljeSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKaW5kZXggYzAxZjI1ZDdjYWMuLmNkMmY0MjcyMmMxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTctMDUtMTcgIEZyZWRlcmljIFdhbmcgIDxmd2FuZ0Bp
Z2FsaWEuY29tPgorCisgICAgICAgIEFkZCBydW50aW1lIGZsYWcgZm9yIHBhcnRpYWwgZnJhbWUg
ZmxhdHRlbmluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTcyMTA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgRW5zdXJlIHRoZSBtYWMgYW5kIGlPUyBwcmVmZXJlbmNlcyBoYW5kbGUgIkZvcmNlUGFydGlh
bEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQiLgorCisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJl
bmNlS2V5c1ByaXZhdGUuaDogRGVmaW5lIGtleSBmb3QgdGhlIG5ldyBmbGFnLgorICAgICAgICAq
IFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06IERpc2FibGUgdGhlIGZsYWcgYnkgZGVmYXVsdCBh
bmQgZGVmaW5lIGdldHRlciAmIHNldHRlci4KKyAgICAgICAgKCtbV2ViUHJlZmVyZW5jZXMgaW5p
dGlhbGl6ZV0pOgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBmb3JjZVBhcnRpYWxGcmFtZUZs
YXR0ZW5pbmdFbmFibGVkXSk6CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHNldEZvcmNlUGFy
dGlhbEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQ6XSk6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVm
ZXJlbmNlc1ByaXZhdGUuaDogRGVjbGFyZSBzZXR0ZXIgYW5kIGdldHRlci4KKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZlcmVuY2VzQ2hhbmdl
ZDpdKTogRW5zdXJlIHRoZSBXZWJWaWV3IHByb3Blcmx5IHNldHMgdGhlIHJ1bnRpbWUgZmxhZy4K
KworMjAxNy0wNS0xNCBGcmVkZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KKworICAgICAg
ICBBZGQgaGV1cmlzdGljIHRvIGF2b2lkIGZsYXR0ZW5pbmcgImZ1bGxzY3JlZW4iIGlmcmFtZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTkxNAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY29t
bWl0IGFkanVzdHMgdGhlIG1hYy9pb3MgcHJlZmVyZW5jZSBpbnRlcmZhY2UgdG8gdHJlYXQgZnJh
bWUgZmxhdHRlbmluZyBhcyBhbiBlbnVtLgorCisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJl
bmNlS2V5c1ByaXZhdGUuaDogUmVuYW1lIHRoZSBrZXkuCisgICAgICAgICogV2ViVmlldy9XZWJQ
cmVmZXJlbmNlcy5tbToKKyAgICAgICAgKCtbV2ViUHJlZmVyZW5jZXMgaW5pdGlhbGl6ZV0pOiBI
YW5kbGUgZnJhbWUgZmxhdHRlbmluZyBhcyBhbiBlbnVtLgorICAgICAgICAoLVtXZWJQcmVmZXJl
bmNlcyBmcmFtZUZsYXR0ZW5pbmddKTogRGl0dG8uCisgICAgICAgICgtW1dlYlByZWZlcmVuY2Vz
IHNldEZyYW1lRmxhdHRlbmluZzpdKTogRGl0dG8uCisgICAgICAgICogV2ViVmlldy9XZWJQcmVm
ZXJlbmNlc1ByaXZhdGUuaDogRGl0dG8uCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgor
ICAgICAgICAoLVtXZWJWaWV3IF9wcmVmZXJlbmNlc0NoYW5nZWQ6XSk6IERpdHRvLgorICAgICAg
ICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmg6IEFkZCBuZXcgZW51bSBkZWZpbml0
aW9uLgorCiAyMDE3LTA1LTEyICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgRHJvcCB1c2VzIG9mIFBhc3NSZWZQdHIgaW4gV2ViS2l0L21hYwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXgg
YTFhYTJkZTk3NjEuLjk0NWVjNWUwN2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTExNiw3ICsxMTYsOCBAQAog
I2RlZmluZSBXZWJLaXRGb3JjZVNvZnR3YXJlV2ViR0xSZW5kZXJpbmdQcmVmZXJlbmNlS2V5IEAi
V2ViS2l0Rm9yY2VTb2Z0d2FyZVdlYkdMUmVuZGVyaW5nIgogI2RlZmluZSBXZWJLaXRGb3JjZVdl
YkdMVXNlc0xvd1Bvd2VyUHJlZmVyZW5jZUtleSBAIldlYktpdEZvcmNlV2ViR0xVc2VzTG93UG93
ZXIiCiAjZGVmaW5lIFdlYktpdEFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkUHJlZmVyZW5jZUtl
eSBAIldlYktpdEFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkIgotI2RlZmluZSBXZWJLaXRGcmFt
ZUZsYXR0ZW5pbmdFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdEZyYW1lRmxhdHRlbmluZ0Vu
YWJsZWQiCisjZGVmaW5lIFdlYktpdEZyYW1lRmxhdHRlbmluZ1ByZWZlcmVuY2VLZXkgQCJXZWJL
aXRGcmFtZUZsYXR0ZW5pbmciCisjZGVmaW5lIFdlYktpdEZvcmNlUGFydGlhbEZyYW1lRmxhdHRl
bmluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0Rm9yY2VQYXJ0aWFsRnJhbWVGbGF0dGVu
aW5nRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkUHJlZmVy
ZW5jZUtleSBAIldlYktpdFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0
UGFnaW5hdGVEdXJpbmdMYXlvdXRFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFBhZ2luYXRl
RHVyaW5nTGF5b3V0RW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0RE5TUHJlZmV0Y2hpbmdFbmFibGVk
UHJlZmVyZW5jZUtleSBAIldlYktpdEROU1ByZWZldGNoaW5nRW5hYmxlZCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IDc3NDlhYzY3NDczLi44ZmIx
YTNlZGQwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1t
CkBAIC01MjAsMTAgKzUyMCwxMSBAQCArICh2b2lkKWluaXRpYWxpemUKICAgICAgICAgW05TTnVt
YmVyIG51bWJlcldpdGhCb29sOllFU10sICBXZWJLaXRMYXJnZUltYWdlQXN5bmNEZWNvZGluZ0Vu
YWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6WUVT
XSwgIFdlYktpdEFuaW1hdGVkSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZFByZWZlcmVuY2VLZXks
CiAjaWYgUExBVEZPUk0oSU9TKQotICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6WUVT
XSwgIFdlYktpdEZyYW1lRmxhdHRlbmluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5LAorICAgICAgICBb
TlNOdW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVkSW50OkZyYW1lRmxhdHRlbmluZ0Z1bGx5RW5hYmxl
ZF0sIFdlYktpdEZyYW1lRmxhdHRlbmluZ1ByZWZlcmVuY2VLZXksCiAjZWxzZQotICAgICAgICBb
TlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCAgIFdlYktpdEZyYW1lRmxhdHRlbmluZ0VuYWJs
ZWRQcmVmZXJlbmNlS2V5LAorICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVkSW50
OkZyYW1lRmxhdHRlbmluZ0Rpc2FibGVkXSwgV2ViS2l0RnJhbWVGbGF0dGVuaW5nUHJlZmVyZW5j
ZUtleSwKICNlbmRpZgorICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCAgIFdl
YktpdEZvcmNlUGFydGlhbEZyYW1lRmxhdHRlbmluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAg
ICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCAgIFdlYktpdFNwYXRpYWxOYXZpZ2F0
aW9uRW5hYmxlZFByZWZlcmVuY2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9v
bDpOT10sICBXZWJLaXRETlNQcmVmZXRjaGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAg
ICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCAgIFdlYktpdEZ1bGxTY3JlZW5FbmFibGVk
UHJlZmVyZW5jZUtleSwKQEAgLTIxMDUsMTQgKzIxMDYsMjQgQEAgLSAodm9pZClzZXREaXNrSW1h
Z2VDYWNoZUVuYWJsZWQ6KEJPT0wpZW5hYmxlZAogICAgIC8vIFN0YWdpbmcuIENhbiBiZSByZW1v
dmVkIG9uY2UgdGhlcmUgYXJlIG5vIG1vcmUgY2FsbGVycy4KIH0KIAotLSAoQk9PTClpc0ZyYW1l
RmxhdHRlbmluZ0VuYWJsZWQKKy0gKHVuc2lnbmVkKWZyYW1lRmxhdHRlbmluZwogewotICAgIHJl
dHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5OldlYktpdEZyYW1lRmxhdHRlbmluZ0VuYWJsZWRQ
cmVmZXJlbmNlS2V5XTsKKyAgICByZXR1cm4gW3NlbGYgX3Vuc2lnbmVkSW50VmFsdWVGb3JLZXk6
V2ViS2l0RnJhbWVGbGF0dGVuaW5nUHJlZmVyZW5jZUtleV07CiB9CiAKLS0gKHZvaWQpc2V0RnJh
bWVGbGF0dGVuaW5nRW5hYmxlZDooQk9PTClmbGFnCistICh2b2lkKXNldEZyYW1lRmxhdHRlbmlu
ZzoodW5zaWduZWQpZmxhdHRlbmluZwogewotICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBm
b3JLZXk6V2ViS2l0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZFByZWZlcmVuY2VLZXldOworICAgIFtz
ZWxmIF9zZXRVbnNpZ25lZEludFZhbHVlOmZsYXR0ZW5pbmcgZm9yS2V5OldlYktpdEZyYW1lRmxh
dHRlbmluZ1ByZWZlcmVuY2VLZXldOworfQorCistIChCT09MKWZvcmNlUGFydGlhbEZyYW1lRmxh
dHRlbmluZ0VuYWJsZWQKK3sKKyAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJL
aXRGb3JjZVBhcnRpYWxGcmFtZUZsYXR0ZW5pbmdFbmFibGVkUHJlZmVyZW5jZUtleV07Cit9CisK
Ky0gKHZvaWQpc2V0Rm9yY2VQYXJ0aWFsRnJhbWVGbGF0dGVuaW5nRW5hYmxlZDooQk9PTCllbmFi
bGVkCit7CisgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTplbmFibGVkIGZvcktleTpXZWJLaXRGb3Jj
ZVBhcnRpYWxGcmFtZUZsYXR0ZW5pbmdFbmFibGVkUHJlZmVyZW5jZUtleV07CiB9CiAKIC0gKEJP
T0wpaXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IGVmNWVmYzk1MmY5Li4wMTIwYWVj
MGY4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNl
c1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2Vz
UHJpdmF0ZS5oCkBAIC01Niw2ICs1NiwxMiBAQCB0eXBlZGVmIGVudW0gewogICAgIFdlYktpdEph
dmFTY3JpcHRSdW50aW1lRmxhZ3NBbGxFbmFibGVkID0gMAogfSBXZWJLaXRKYXZhU2NyaXB0UnVu
dGltZUZsYWdzOwogCit0eXBlZGVmIGVudW0geworICAgIFdlYktpdEZyYW1lRmxhdHRlbmluZ0Rp
c2FibGVkLAorICAgIFdlYktpdEZyYW1lRmxhdHRlbmluZ1BhcnRpYWxseUVuYWJsZWQsCisgICAg
V2ViS2l0RnJhbWVGbGF0dGVuaW5nRnVsbHlFbmFibGVkCit9IFdlYktpdEZyYW1lRmxhdHRlbmlu
ZzsKKwogZXh0ZXJuIE5TU3RyaW5nICpXZWJQcmVmZXJlbmNlc0NoYW5nZWROb3RpZmljYXRpb247
CiBleHRlcm4gTlNTdHJpbmcgKldlYlByZWZlcmVuY2VzUmVtb3ZlZE5vdGlmaWNhdGlvbjsKIGV4
dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXNDaGFuZ2VkSW50ZXJuYWxOb3RpZmljYXRpb247
CkBAIC0xNTMsOCArMTU5LDExIEBAIGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXNDYWNo
ZU1vZGVsQ2hhbmdlZEludGVybmFsTm90aWZpY2F0aW9uOwogLSAoQk9PTClleHBlcmltZW50YWxO
b3RpZmljYXRpb25zRW5hYmxlZDsKIC0gKHZvaWQpc2V0RXhwZXJpbWVudGFsTm90aWZpY2F0aW9u
c0VuYWJsZWQ6KEJPT0wpbm90aWZpY2F0aW9uc0VuYWJsZWQ7CiAKLS0gKEJPT0wpaXNGcmFtZUZs
YXR0ZW5pbmdFbmFibGVkOwotLSAodm9pZClzZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkOihCT09M
KWZsYWc7CistICh1bnNpZ25lZClmcmFtZUZsYXR0ZW5pbmc7CistICh2b2lkKXNldEZyYW1lRmxh
dHRlbmluZzoodW5zaWduZWQpZmxhZzsKKworLSAoQk9PTClmb3JjZVBhcnRpYWxGcmFtZUZsYXR0
ZW5pbmdFbmFibGVkOworLSAodm9pZClzZXRGb3JjZVBhcnRpYWxGcmFtZUZsYXR0ZW5pbmdFbmFi
bGVkOihCT09MKWVuYWJsZWQ7CiAKIC0gKEJPT0wpaXNTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQ7
CiAtICh2b2lkKXNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZDooQk9PTClmbGFnOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IGIzNGI2MjFkMTYxLi44NWYwNDg1NGJjYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMjgzMiw3ICsyODMyLDcgQEAg
LSAodm9pZClfcHJlZmVyZW5jZXNDaGFuZ2VkOihXZWJQcmVmZXJlbmNlcyAqKXByZWZlcmVuY2Vz
CiAgICAgc2V0dGluZ3Muc2V0QWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQoW3ByZWZlcmVuY2Vz
IGFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkXSk7CiAgICAgc2V0dGluZ3Muc2V0TG9hZERlZmVy
cmluZ0VuYWJsZWQoc2hvdWxkRW5hYmxlTG9hZERlZmVycmluZygpKTsKICAgICBzZXR0aW5ncy5z
ZXRXaW5kb3dGb2N1c1Jlc3RyaWN0ZWQoc2hvdWxkUmVzdHJpY3RXaW5kb3dGb2N1cygpKTsKLSAg
ICBzZXR0aW5ncy5zZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKFtwcmVmZXJlbmNlcyBpc0ZyYW1l
RmxhdHRlbmluZ0VuYWJsZWRdKTsKKyAgICBzZXR0aW5ncy5zZXRGcmFtZUZsYXR0ZW5pbmcoKGNv
bnN0IFdlYkNvcmU6OkZyYW1lRmxhdHRlbmluZylbcHJlZmVyZW5jZXMgZnJhbWVGbGF0dGVuaW5n
XSk7CiAgICAgc2V0dGluZ3Muc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKFtwcmVmZXJlbmNl
cyBpc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZF0pOwogICAgIHNldHRpbmdzLnNldFBhZ2luYXRl
RHVyaW5nTGF5b3V0RW5hYmxlZChbcHJlZmVyZW5jZXMgcGFnaW5hdGVEdXJpbmdMYXlvdXRFbmFi
bGVkXSk7CiAKQEAgLTMwNDgsNiArMzA0OCw4IEBAIC0gKHZvaWQpX3ByZWZlcmVuY2VzQ2hhbmdl
ZDooV2ViUHJlZmVyZW5jZXMgKilwcmVmZXJlbmNlcwogICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0U3VidGxlQ3J5cHRvRW5hYmxlZChbcHJlZmVyZW5jZXMg
c3VidGxlQ3J5cHRvRW5hYmxlZF0pOwogI2VuZGlmCiAKKyAgICBSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldEZvcmNlUGFydGlhbEZyYW1lRmxhdHRlbmluZ0VuYWJs
ZWQoW3ByZWZlcmVuY2VzIGZvcmNlUGFydGlhbEZyYW1lRmxhdHRlbmluZ0VuYWJsZWRdKTsKKwog
ICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0VXNlclRpbWlu
Z0VuYWJsZWQocHJlZmVyZW5jZXMudXNlclRpbWluZ0VuYWJsZWQpOwogICAgIFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0UmVzb3VyY2VUaW1pbmdFbmFibGVkKHBy
ZWZlcmVuY2VzLnJlc291cmNlVGltaW5nRW5hYmxlZCk7CiAgICAgUnVudGltZUVuYWJsZWRGZWF0
dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRMaW5rUHJlbG9hZEVuYWJsZWQocHJlZmVyZW5jZXMu
bGlua1ByZWxvYWRFbmFibGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCA2ZjBkYzUwOGYxNS4uNTRk
NmYwNjVmMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNy0wNS0xNCBG
cmVkZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgaGV1cmlzdGlj
IHRvIGF2b2lkIGZsYXR0ZW5pbmcgImZ1bGxzY3JlZW4iIGlmcmFtZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTkxNAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY29tbWl0IGFqdXN0cyB0aGUg
d2luZG93IHBvcnQgdG8gaW50ZXJuYWxseSB1c2UgdGhlIG5ldyBwcmVmZXJlbmNlIHR5cGUgZm9y
IGZyYW1lIGZsYXR0ZW5pbmcuCisgICAgICAgIEhvd2V2ZXIsIHRoZSAicGFydGlhbCBmcmFtZSBm
bGF0dGVuaW5nIiB2YWx1ZSBpcyBub3QgZXhwb3NlZCB5ZXQuCisKKyAgICAgICAgKiBXZWJWaWV3
LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZCk6IFVzZSB0
aGUgbmV3IHR5cGUgZm9yIGZyYW1lIGZsYXR0ZW5pbmcuCisKIDIwMTctMDUtMTEgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBEcm9wIHJlbWFpbmluZyB1c2VzIG9m
IFBhc3NSZWZQdHIgaW4gV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2Vi
Vmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAppbmRleCBhYTM5ZDU3ZTE0
Mi4uNTY1YmU5MzlmNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCkBAIC01NDUzLDcgKzU0NTMsNyBA
QCBIUkVTVUxUIFdlYlZpZXc6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChJV2ViTm90aWZpY2F0
aW9uKiBub3RpZmljYXRpb24pCiAgICAgaHIgPSBwcmVmc1ByaXZhdGUtPmlzRnJhbWVGbGF0dGVu
aW5nRW5hYmxlZCgmZW5hYmxlZCk7CiAgICAgaWYgKEZBSUxFRChocikpCiAgICAgICAgIHJldHVy
biBocjsKLSAgICBzZXR0aW5ncy5zZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKGVuYWJsZWQpOwor
ICAgIHNldHRpbmdzLnNldEZyYW1lRmxhdHRlbmluZyhlbmFibGVkID8gRnJhbWVGbGF0dGVuaW5n
RnVsbHlFbmFibGVkIDogRnJhbWVGbGF0dGVuaW5nRGlzYWJsZWQpOwogCiAgICAgaHIgPSBwcmVm
c1ByaXZhdGUtPmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKCZlbmFibGVkKTsKICAgICBp
ZiAoRkFJTEVEKGhyKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBiMGU4YjA4NGI4MC4uYjNkZGZlZjlmOWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw0NSBAQAorMjAxNy0wNS0xNyAgRnJlZGVyaWMgV2FuZyAgPGZ3
YW5nQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHJ1bnRpbWUgZmxhZyBmb3IgcGFydGlhbCBm
cmFtZSBmbGF0dGVuaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNzIxMDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmg6IEFkZCBydW50aW1l
IGZsYWcgIkZvcmNlUGFydGlhbEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQiLgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpJbmplY3RlZEJ1bmRsZTo6b3ZlcnJpZGVCb29sUHJlZmVyZW5jZUZvclRlc3RSdW5uZXIp
OiBFbnN1cmUgdGhlIHJ1bnRpbWUgZmxhZyBpcworICAgICAgICB1cGRhdGVkIHdoZW4gdGhlIHBy
ZWZlcmVuY2UgaXMgb3ZlcnJpZGVuLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50
Ojpjb250ZW50c1NpemVDaGFuZ2VkKTogVXNlIGFjdHVhbEZyYW1lRmxhdHRlbmluZy4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKTogRW5zdXJlIHRoZSBXZWJQYWdlIHByb3Blcmx5IHNl
dHMgdGhlIHJ1bnRpbWUgZmxhZy4KKworMjAxNy0wNS0xNCBGcmVkZXJpYyBXYW5nICA8ZndhbmdA
aWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgaGV1cmlzdGljIHRvIGF2b2lkIGZsYXR0ZW5pbmcg
ImZ1bGxzY3JlZW4iIGlmcmFtZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3MTkxNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoaXMgY29tbWl0IGFqdXN0cyB0aGUgcHJlZmVyZW5jZSBBUEkgdG8gaW50
ZXJuYWxseSB0cmVhdCBmcmFtZSBmbGF0dGVuaW5nIGFzIGFuIGVudW0uCisgICAgICAgIEhvd2V2
ZXIsIHRoZSAicGFydGlhbCBmcmFtZSBmbGF0dGVuaW5nIiB2YWx1ZSBpcyBub3QgZXhwb3NlZCB0
byBHVEssIEMgb3IgSW5qZWN0ZWRCdW5kbGUgQVBJcyB5ZXQuCisKKyAgICAgICAgKiBTaGFyZWQv
V2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oOiBEZWZpbmUgZnJhbWUgZmxhdHRlbmluZyBhcyBh
biBlbnVtLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoKKyAg
ICAgICAgKFdLUHJlZmVyZW5jZXNTZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKTogVHJlYXQgZnJh
bWUgZmxhdHRlbmluZyBhcyBhbiBlbnVtLgorICAgICAgICAoV0tQcmVmZXJlbmNlc0dldEZyYW1l
RmxhdHRlbmluZ0VuYWJsZWQpOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRTZXR0aW5ncy5jcHA6CisgICAgICAgICh3ZWJraXRfc2V0dGluZ3NfZ2V0X2VuYWJsZV9m
cmFtZV9mbGF0dGVuaW5nKTogRGl0dG8uCisgICAgICAgICh3ZWJraXRfc2V0dGluZ3Nfc2V0X2Vu
YWJsZV9mcmFtZV9mbGF0dGVuaW5nKTogRGl0dG8uCisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVk
QnVuZGxlOjpvdmVycmlkZUJvb2xQcmVmZXJlbmNlRm9yVGVzdFJ1bm5lcik6IERvIG5vdCBoYW5k
bGUgZnJhbWUgZmxhdHRlbmluZyBzaW5jZSBpdCBpcyBhbiBlbnVtLgorICAgICAgICBGb3Igbm93
LCB0aGlzIGJyZWFrcyBvbmUgdGVzdCBjaGVja2luZyBwcmVmZXJlbmNlIG92ZXJyaWRpbmcgYmVj
YXVzZSBvZiBidWcgMTI4NTk0LgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZTo6c2V0
RnJhbWVGbGF0dGVuaW5nRW5hYmxlZCk6IFRyZWF0IGZyYW1lIGZsYXR0ZW5pbmcgYXMgYW4gZW51
bS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdl
ZCk6IFVzZSBlbnVtIHZhbHVlLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMpOiBEaXR0
by4KKwogMjAxNy0wNS0xMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAg
ICAgIERyb3AgcmVtYWluaW5nIHVzZXMgb2YgUGFzc1JlZlB0ciBpbiBXZWJLaXQyL1dlYlByb2Nl
c3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmlu
aXRpb25zLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9u
cy5oCmluZGV4IGY1MjI2YWY1OTUxLi4wMzYyN2EzMTY4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCkBAIC02MCw3ICs2MCw3IEBA
CiAjaWYgUExBVEZPUk0oSU9TKQogI2RlZmluZSBERUZBVUxUX0FMTE9XU19QSUNUVVJFX0lOX1BJ
Q1RVUkVfTUVESUFfUExBWUJBQ0sgdHJ1ZQogI2RlZmluZSBERUZBVUxUX0JBQ0tTUEFDRV9LRVlf
TkFWSUdBVElPTl9FTkFCTEVEIGZhbHNlCi0jZGVmaW5lIERFRkFVTFRfRlJBTUVfRkxBVFRFTklO
R19FTkFCTEVEIHRydWUKKyNkZWZpbmUgREVGQVVMVF9GUkFNRV9GTEFUVEVOSU5HIEZyYW1lRmxh
dHRlbmluZ0Z1bGx5RW5hYmxlZAogI2RlZmluZSBERUZBVUxUX1NIT1VMRF9QUklOVF9CQUNLR1JP
VU5EUyB0cnVlCiAjZGVmaW5lIERFRkFVTFRfVEVYVF9BUkVBU19BUkVfUkVTSVpBQkxFIGZhbHNl
CiAjZGVmaW5lIERFRkFVTFRfSkFWQVNDUklQVF9DQU5fT1BFTl9XSU5ET1dTX0FVVE9NQVRJQ0FM
TFkgZmFsc2UKQEAgLTc3LDcgKzc3LDcgQEAKICNlbHNlCiAjZGVmaW5lIERFRkFVTFRfQUxMT1dT
X1BJQ1RVUkVfSU5fUElDVFVSRV9NRURJQV9QTEFZQkFDSyBmYWxzZQogI2RlZmluZSBERUZBVUxU
X0JBQ0tTUEFDRV9LRVlfTkFWSUdBVElPTl9FTkFCTEVEIHRydWUKLSNkZWZpbmUgREVGQVVMVF9G
UkFNRV9GTEFUVEVOSU5HX0VOQUJMRUQgZmFsc2UKKyNkZWZpbmUgREVGQVVMVF9GUkFNRV9GTEFU
VEVOSU5HIEZyYW1lRmxhdHRlbmluZ0Rpc2FibGVkCiAjZGVmaW5lIERFRkFVTFRfU0hPVUxEX1BS
SU5UX0JBQ0tHUk9VTkRTIGZhbHNlCiAjZGVmaW5lIERFRkFVTFRfVEVYVF9BUkVBU19BUkVfUkVT
SVpBQkxFIHRydWUKICNkZWZpbmUgREVGQVVMVF9KQVZBU0NSSVBUX0NBTl9PUEVOX1dJTkRPV1Nf
QVVUT01BVElDQUxMWSB0cnVlCkBAIC0xMzMsNyArMTMzLDYgQEAKICAgICBtYWNybyhMb2NhbFN0
b3JhZ2VFbmFibGVkLCBsb2NhbFN0b3JhZ2VFbmFibGVkLCBCb29sLCBib29sLCB0cnVlLCAiIiwg
IiIpIFwKICAgICBtYWNybyhEYXRhYmFzZXNFbmFibGVkLCBkYXRhYmFzZXNFbmFibGVkLCBCb29s
LCBib29sLCB0cnVlLCAiIiwgIiIpIFwKICAgICBtYWNybyhYU1NBdWRpdG9yRW5hYmxlZCwgeHNz
QXVkaXRvckVuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUsICIiLCAiIikgXAotICAgIG1hY3JvKEZy
YW1lRmxhdHRlbmluZ0VuYWJsZWQsIGZyYW1lRmxhdHRlbmluZ0VuYWJsZWQsIEJvb2wsIGJvb2ws
IERFRkFVTFRfRlJBTUVfRkxBVFRFTklOR19FTkFCTEVELCAiIiwgIiIpIFwKICAgICBtYWNybyhQ
cml2YXRlQnJvd3NpbmdFbmFibGVkLCBwcml2YXRlQnJvd3NpbmdFbmFibGVkLCBCb29sLCBib29s
LCBmYWxzZSwgIiIsICIiKSBcCiAgICAgbWFjcm8oVGV4dEFyZWFzQXJlUmVzaXphYmxlLCB0ZXh0
QXJlYXNBcmVSZXNpemFibGUsIEJvb2wsIGJvb2wsIERFRkFVTFRfVEVYVF9BUkVBU19BUkVfUkVT
SVpBQkxFLCAiIiwgIiIpIFwKICAgICBtYWNybyhKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRv
bWF0aWNhbGx5LCBqYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5LCBCb29sLCBi
b29sLCBERUZBVUxUX0pBVkFTQ1JJUFRfQ0FOX09QRU5fV0lORE9XU19BVVRPTUFUSUNBTExZLCAi
IiwgIiIpIFwKQEAgLTMwMyw2ICszMDIsNyBAQAogICAgIG1hY3JvKERhdGFEZXRlY3RvclR5cGVz
LCBkYXRhRGV0ZWN0b3JUeXBlcywgVUludDMyLCB1aW50MzJfdCwgMCwgIiIsICIiKSBcCiAgICAg
bWFjcm8oVXNlckludGVyZmFjZURpcmVjdGlvblBvbGljeSwgdXNlckludGVyZmFjZURpcmVjdGlv
blBvbGljeSwgVUludDMyLCB1aW50MzJfdCwgMCwgIiIsICIiKSBcCiAgICAgbWFjcm8oU3lzdGVt
TGF5b3V0RGlyZWN0aW9uLCBzeXN0ZW1MYXlvdXREaXJlY3Rpb24sIFVJbnQzMiwgdWludDMyX3Qs
IDAsICIiLCAiIikgXAorICAgIG1hY3JvKEZyYW1lRmxhdHRlbmluZywgZnJhbWVGbGF0dGVuaW5n
LCBVSW50MzIsIHVpbnQzMl90LCBERUZBVUxUX0ZSQU1FX0ZMQVRURU5JTkcsICIiLCAiIikgXAog
ICAgIFwKIAogI2RlZmluZSBGT1JfRUFDSF9XRUJLSVRfREVCVUdfQk9PTF9QUkVGRVJFTkNFKG1h
Y3JvKSBcCkBAIC0zNTgsNiArMzU4LDcgQEAKICAgICBtYWNybyhXZWJBbmltYXRpb25zRW5hYmxl
ZCwgd2ViQW5pbWF0aW9uc0VuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlLCAiV2ViIEFuaW1hdGlv
bnMiLCAiV2ViIEFuaW1hdGlvbnMgcHJvdG90eXBlIikgXAogICAgIG1hY3JvKFdlYkdMMkVuYWJs
ZWQsIHdlYkdMMkVuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlLCAiV2ViR0wgMi4wIiwgIldlYkdM
IDIgcHJvdG90eXBlIikgXAogICAgIG1hY3JvKFdlYkdQVUVuYWJsZWQsIHdlYkdQVUVuYWJsZWQs
IEJvb2wsIGJvb2wsIGZhbHNlLCAiV2ViR1BVIiwgIldlYkdQVSBwcm90b3R5cGUiKSBcCisgICAg
bWFjcm8oRm9yY2VQYXJ0aWFsRnJhbWVGbGF0dGVuaW5nRW5hYmxlZCwgZm9yY2VQYXJ0aWFsRnJh
bWVGbGF0dGVuaW5nRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UsICJQYXJ0aWFsIEZyYW1lIEZs
YXR0ZW5pbmciLCAiRm9yY2UgcGFydGlhbCBmcmFtZSBmbGF0dGVuaW5nIikgXAogICAgIFwKIAog
I2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLUHJlZmVyZW5jZXMuY3BwCmluZGV4IDk1NDJlMGY2ZDRjLi5mZmY1N2M5ZDU0NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcApAQCAt
MTQ0LDEyICsxNDQsMTQgQEAgYm9vbCBXS1ByZWZlcmVuY2VzR2V0WFNTQXVkaXRvckVuYWJsZWQo
V0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKIAogdm9pZCBXS1ByZWZlcmVuY2VzU2V0
RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBi
b29sIGZyYW1lRmxhdHRlbmluZ0VuYWJsZWQpCiB7Ci0gICAgdG9JbXBsKHByZWZlcmVuY2VzUmVm
KS0+c2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChmcmFtZUZsYXR0ZW5pbmdFbmFibGVkKTsKKyAg
ICAvLyBGSVhNRTogRXhwb3NlIEZyYW1lRmxhdHRlbmluZ1BhcnRpYWxseUVuYWJsZWQuCisgICAg
dG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0RnJhbWVGbGF0dGVuaW5nKGZyYW1lRmxhdHRlbmlu
Z0VuYWJsZWQgPyBXZWJDb3JlOjpGcmFtZUZsYXR0ZW5pbmdGdWxseUVuYWJsZWQgOiBXZWJDb3Jl
OjpGcmFtZUZsYXR0ZW5pbmdEaXNhYmxlZCk7CiB9CiAKIGJvb2wgV0tQcmVmZXJlbmNlc0dldEZy
YW1lRmxhdHRlbmluZ0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKIHsK
LSAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+ZnJhbWVGbGF0dGVuaW5nRW5hYmxl
ZCgpOworICAgIC8vIEZJWE1FOiBFeHBvc2UgRnJhbWVGbGF0dGVuaW5nUGFydGlhbGx5RW5hYmxl
ZC4KKyAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+ZnJhbWVGbGF0dGVuaW5nKCkg
IT0gV2ViQ29yZTo6RnJhbWVGbGF0dGVuaW5nRGlzYWJsZWQ7CiB9CiAKIHZvaWQgV0tQcmVmZXJl
bmNlc1NldFBsdWdpbnNFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYsIGJv
b2wgcGx1Z2luc0VuYWJsZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRTZXR0aW5ncy5jcHAKaW5kZXggOWNjN2I1YzA0YzMuLjgzMzI3M2E4MGExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRTZXR0aW5n
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0U2V0dGlu
Z3MuY3BwCkBAIC0xNjA4LDcgKzE2MDgsOCBAQCBnYm9vbGVhbiB3ZWJraXRfc2V0dGluZ3NfZ2V0
X2VuYWJsZV9mcmFtZV9mbGF0dGVuaW5nKFdlYktpdFNldHRpbmdzKiBzZXR0aW5ncykKIHsKICAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfU0VUVElOR1Moc2V0dGluZ3MpLCBGQUxT
RSk7CiAKLSAgICByZXR1cm4gc2V0dGluZ3MtPnByaXYtPnByZWZlcmVuY2VzLT5mcmFtZUZsYXR0
ZW5pbmdFbmFibGVkKCk7CisgICAgLy8gRklYTUU6IEV4cG9zZSBGcmFtZUZsYXR0ZW5pbmdQYXJ0
aWFsbHlFbmFibGVkLgorICAgIHJldHVybiBzZXR0aW5ncy0+cHJpdi0+cHJlZmVyZW5jZXMtPmZy
YW1lRmxhdHRlbmluZygpICE9IFdlYkNvcmU6OkZyYW1lRmxhdHRlbmluZ0Rpc2FibGVkOwogfQog
CiAvKioKQEAgLTE2MjMsMTEgKzE2MjQsMTIgQEAgdm9pZCB3ZWJraXRfc2V0dGluZ3Nfc2V0X2Vu
YWJsZV9mcmFtZV9mbGF0dGVuaW5nKFdlYktpdFNldHRpbmdzKiBzZXR0aW5ncywgZ2Jvb2wKICAg
ICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19TRVRUSU5HUyhzZXR0aW5ncykpOwogCiAgICAg
V2ViS2l0U2V0dGluZ3NQcml2YXRlKiBwcml2ID0gc2V0dGluZ3MtPnByaXY7Ci0gICAgYm9vbCBj
dXJyZW50VmFsdWUgPSBwcml2LT5wcmVmZXJlbmNlcy0+ZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCgp
OworICAgIGJvb2wgY3VycmVudFZhbHVlID0gcHJpdi0+cHJlZmVyZW5jZXMtPmZyYW1lRmxhdHRl
bmluZygpICE9IFdlYkNvcmU6OkZyYW1lRmxhdHRlbmluZ0Rpc2FibGVkOwogICAgIGlmIChjdXJy
ZW50VmFsdWUgPT0gZW5hYmxlZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcHJpdi0+cHJlZmVy
ZW5jZXMtPnNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoZW5hYmxlZCk7CisgICAgLy8gRklYTUU6
IEV4cG9zZSBGcmFtZUZsYXR0ZW5pbmdQYXJ0aWFsbHlFbmFibGVkLgorICAgIHByaXYtPnByZWZl
cmVuY2VzLT5zZXRGcmFtZUZsYXR0ZW5pbmcoZW5hYmxlZCA/IFdlYkNvcmU6OkZyYW1lRmxhdHRl
bmluZ0Z1bGx5RW5hYmxlZCA6IFdlYkNvcmU6OkZyYW1lRmxhdHRlbmluZ0Rpc2FibGVkKTsKICAg
ICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qoc2V0dGluZ3MpLCAiZW5hYmxlLWZyYW1lLWZsYXR0
ZW5pbmciKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAppbmRleCA2MWQ5Y2MwN2M4ZS4uOWFl
N2JhMjFjN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC0yMjksMTEgKzIyOSwxMyBAQCB2
b2lkIEluamVjdGVkQnVuZGxlOjpvdmVycmlkZUJvb2xQcmVmZXJlbmNlRm9yVGVzdFJ1bm5lcihX
ZWJQYWdlR3JvdXBQcm94eSogcGFnZQogICAgICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpz
aGFyZWRGZWF0dXJlcygpLnNldFdlYlJUQ0xlZ2FjeUFQSUVuYWJsZWQoZW5hYmxlZCk7CiAjZW5k
aWYKIAorICAgIGlmIChwcmVmZXJlbmNlID09ICJXZWJLaXRGb3JjZVBhcnRpYWxGcmFtZUZsYXR0
ZW5pbmdFbmFibGVkIikKKyAgICAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVh
dHVyZXMoKS5zZXRGb3JjZVBhcnRpYWxGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKGVuYWJsZWQpOwor
CiAgICAgLy8gTWFwIHRoZSBuYW1lcyB1c2VkIGluIExheW91dFRlc3RzIHdpdGggdGhlIG5hbWVz
IHVzZWQgaW4gV2ViQ29yZTo6U2V0dGluZ3MgYW5kIFdlYlByZWZlcmVuY2VzU3RvcmUuCiAjZGVm
aW5lIEZPUl9FQUNIX09WRVJSSURFX0JPT0xfUFJFRkVSRU5DRShtYWNybykgXAogICAgIG1hY3Jv
KFdlYktpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkLCBBY2NlbGVyYXRlZENvbXBvc2l0
aW5nRW5hYmxlZCwgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQpIFwKICAgICBtYWNybyhX
ZWJLaXRDYW52YXNVc2VzQWNjZWxlcmF0ZWREcmF3aW5nLCBDYW52YXNVc2VzQWNjZWxlcmF0ZWRE
cmF3aW5nLCBjYW52YXNVc2VzQWNjZWxlcmF0ZWREcmF3aW5nKSBcCi0gICAgbWFjcm8oV2ViS2l0
RnJhbWVGbGF0dGVuaW5nRW5hYmxlZCwgRnJhbWVGbGF0dGVuaW5nRW5hYmxlZCwgZnJhbWVGbGF0
dGVuaW5nRW5hYmxlZCkgXAogICAgIG1hY3JvKFdlYktpdEphdmFFbmFibGVkLCBKYXZhRW5hYmxl
ZCwgamF2YUVuYWJsZWQpIFwKICAgICBtYWNybyhXZWJLaXRKYXZhU2NyaXB0RW5hYmxlZCwgU2Ny
aXB0RW5hYmxlZCwgamF2YVNjcmlwdEVuYWJsZWQpIFwKICAgICBtYWNybyhXZWJLaXRMb2FkU2l0
ZUljb25zS2V5LCBMb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nU2V0dGluZywgbG9h
ZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1ByZWZlcmVuY2UpIFwKQEAgLTMwMSw3ICsz
MDMsNyBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpzZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKFdl
YlBhZ2VHcm91cFByb3h5KiBwYWdlR3JvdXAsIGJvbwogewogICAgIGNvbnN0IEhhc2hTZXQ8UGFn
ZSo+JiBwYWdlcyA9IFBhZ2VHcm91cDo6cGFnZUdyb3VwKHBhZ2VHcm91cC0+aWRlbnRpZmllcigp
KS0+cGFnZXMoKTsKICAgICBmb3IgKEhhc2hTZXQ8UGFnZSo+OjppdGVyYXRvciBpdGVyID0gcGFn
ZXMuYmVnaW4oKTsgaXRlciAhPSBwYWdlcy5lbmQoKTsgKytpdGVyKQotICAgICAgICAoKml0ZXIp
LT5zZXR0aW5ncygpLnNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoZW5hYmxlZCk7CisgICAgICAg
ICgqaXRlciktPnNldHRpbmdzKCkuc2V0RnJhbWVGbGF0dGVuaW5nKGVuYWJsZWQgPyBGcmFtZUZs
YXR0ZW5pbmdGdWxseUVuYWJsZWQgOiBGcmFtZUZsYXR0ZW5pbmdEaXNhYmxlZCk7CiB9CiAKIHZv
aWQgSW5qZWN0ZWRCdW5kbGU6OnNldEphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoV2ViUGFn
ZUdyb3VwUHJveHkqIHBhZ2VHcm91cCwgYm9vbCBlbmFibGVkKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwCmluZGV4IDg2ZjYwMTNmY2Q1Li45ZjQ1NzA3ZTM4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcApAQCAtNTYyLDcgKzU2Miw3IEBAIFBsYXRmb3JtUGFnZUNsaWVudCBXZWJDaHJvbWVDbGll
bnQ6OnBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpj
b250ZW50c1NpemVDaGFuZ2VkKEZyYW1lJiBmcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29u
c3QKIHsKLSAgICBpZiAoIW1fcGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLmZyYW1lRmxhdHRl
bmluZ0VuYWJsZWQoKSkgeworICAgIGlmIChtX3BhZ2UuY29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5h
Y3R1YWxGcmFtZUZsYXR0ZW5pbmcoKSA9PSBGcmFtZUZsYXR0ZW5pbmdEaXNhYmxlZCkgewogICAg
ICAgICBXZWJGcmFtZSogbGFyZ2VzdEZyYW1lID0gZmluZExhcmdlc3RGcmFtZUluRnJhbWVTZXQo
bV9wYWdlKTsKICAgICAgICAgaWYgKGxhcmdlc3RGcmFtZSAhPSBtX2NhY2hlZEZyYW1lU2V0TGFy
Z2VzdEZyYW1lLmdldCgpKSB7CiAgICAgICAgICAgICBtX2NhY2hlZEZyYW1lU2V0TGFyZ2VzdEZy
YW1lID0gbGFyZ2VzdEZyYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCmluZGV4IDVjNmQ5OTBkMjM0Li4wODNkNWNmMzZiOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMzA1NCw3ICszMDU0
LDcgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNl
c1N0b3JlJiBzdG9yZSkKICAgICBzZXR0aW5ncy5zZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNo
ZUVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpvZmZs
aW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWRLZXkoKSkpOwogICAgIHNldHRpbmdzLnNldExv
Y2FsU3RvcmFnZUVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2Vz
S2V5Ojpsb2NhbFN0b3JhZ2VFbmFibGVkS2V5KCkpKTsKICAgICBzZXR0aW5ncy5zZXRYU1NBdWRp
dG9yRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6Onhz
c0F1ZGl0b3JFbmFibGVkS2V5KCkpKTsKLSAgICBzZXR0aW5ncy5zZXRGcmFtZUZsYXR0ZW5pbmdF
bmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6ZnJhbWVG
bGF0dGVuaW5nRW5hYmxlZEtleSgpKSk7CisgICAgc2V0dGluZ3Muc2V0RnJhbWVGbGF0dGVuaW5n
KHN0YXRpY19jYXN0PFdlYkNvcmU6OkZyYW1lRmxhdHRlbmluZz4oc3RvcmUuZ2V0VUludDMyVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmZyYW1lRmxhdHRlbmluZ0tleSgpKSkpOwogICAg
IGlmIChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnByaXZhdGVC
cm93c2luZ0VuYWJsZWRLZXkoKSkgJiYgIXVzZXNFcGhlbWVyYWxTZXNzaW9uKCkpCiAgICAgICAg
IHNldFNlc3Npb25JRChTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSk7CiAgICAg
ZWxzZSBpZiAoIXN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6cHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZEtleSgpKSAmJiBzZXNzaW9uSUQoKSA9PSBTZXNzaW9uSUQ6Omxl
Z2FjeVByaXZhdGVTZXNzaW9uSUQoKSkKQEAgLTMzNjcsNiArMzM2Nyw4IEBAIHZvaWQgV2ViUGFn
ZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAg
ICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRTdWJ0bGVDcnlw
dG9FbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6c3Vi
dGxlQ3J5cHRvRW5hYmxlZEtleSgpKSk7CiAjZW5kaWYKIAorICAgIFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0Rm9yY2VQYXJ0aWFsRnJhbWVGbGF0dGVuaW5nRW5h
YmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmZvcmNlUGFy
dGlhbEZyYW1lRmxhdHRlbmluZ0VuYWJsZWRLZXkoKSkpOworCiAgICAgcGxhdGZvcm1QcmVmZXJl
bmNlc0RpZENoYW5nZShzdG9yZSk7CiAKICAgICBpZiAobV9kcmF3aW5nQXJlYSkKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxMGZlYTAxMDg1Yi4u
OGFkNjkzOWJmOGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxNy0wNS0xNyAgRnJlZGVyaWMgV2FuZyAgPGZ3YW5n
QGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHJ1bnRpbWUgZmxhZyBmb3IgcGFydGlhbCBmcmFt
ZSBmbGF0dGVuaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzIxMDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBFbnN1cmUgdGhhdCB0ZXN0cyBydW4gd2l0aCB0aGUgImZvcmNlIHBhcnRpYWwgZnJhbWUg
ZmxhdHRlbmluZyIgZGlzYWJsZWQgYnkgZGVmYXVsdC4KKworICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAgICAgKHJlc2V0V2ViUHJlZmVyZW5jZXNU
b0NvbnNpc3RlbnRWYWx1ZXMpOiBTZXQgZGVmYXVsdCB2YWx1ZSB0byBkaXNhYmxlZC4KKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDoK
KyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OmJlZ2luVGVzdGluZyk6IFNldCBkZWZhdWx0
IHZhbHVlIHRvIGRpc2FibGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5jcHA6IERlZmluZSBzZXR0ZXIuCisgICAgICAgIChXVFI6OlRlc3RS
dW5uZXI6OnNldEZvcmNlUGFydGlhbEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQpOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOiBEaXR0by4KKwor
MjAxNy0wNS0xNCBGcmVkZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KKworICAgICAgICBB
ZGQgaGV1cmlzdGljIHRvIGF2b2lkIGZsYXR0ZW5pbmcgImZ1bGxzY3JlZW4iIGlmcmFtZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTkxNAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAgICAgICAocmVzZXRXZWJQcmVmZXJlbmNl
c1RvQ29uc2lzdGVudFZhbHVlcyk6IFVzZSBXZWJLaXRGcmFtZUZsYXR0ZW5pbmdEaXNhYmxlZC4K
KwogMjAxNy0wNS0xMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFJlbmFtZSBXS0NvbnRlbnRFeHRlbnNpb24gdG8gV0tDb250ZW50UnVsZUxp
c3QKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5t
bSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCBiNGU2
ODc2NzBjNy4uNTcyMzA3MjA1YjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJl
bmRlclRyZWUubW0KQEAgLTkwMyw3ICs5MDMsNyBAQCBzdGF0aWMgdm9pZCByZXNldFdlYlByZWZl
cmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKCkKICAgICBbcHJlZmVyZW5jZXMgc2V0SmF2YVNjcmlw
dFJ1bnRpbWVGbGFnczpXZWJLaXRKYXZhU2NyaXB0UnVudGltZUZsYWdzQWxsRW5hYmxlZF07CiAg
ICAgW3ByZWZlcmVuY2VzIHNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseTpZRVNdOwogICAgIFtw
cmVmZXJlbmNlcyBzZXRMb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nUHJlZmVyZW5j
ZTpOT107Ci0gICAgW3ByZWZlcmVuY2VzIHNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQ6Tk9dOwor
ICAgIFtwcmVmZXJlbmNlcyBzZXRGcmFtZUZsYXR0ZW5pbmc6Tk9dOwogICAgIFtwcmVmZXJlbmNl
cyBzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQ6Tk9dOwogICAgIFtwcmVmZXJlbmNlcyBzZXRN
ZXRhUmVmcmVzaEVuYWJsZWQ6WUVTXTsKIApAQCAtOTYwLDYgKzk2MCw4IEBAIHN0YXRpYyB2b2lk
IHJlc2V0V2ViUHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMoKQogCiAgICAgW3ByZWZlcmVu
Y2VzIHNldExhcmdlSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZDpOT107CiAKKyAgICBbcHJlZmVy
ZW5jZXMgc2V0Rm9yY2VQYXJ0aWFsRnJhbWVGbGF0dGVuaW5nRW5hYmxlZDpOT107CisKICAgICBb
V2ViUHJlZmVyZW5jZXMgX2NsZWFyTmV0d29ya0xvYWRlclNlc3Npb25dOwogICAgIFtXZWJQcmVm
ZXJlbmNlcyBfc2V0Q3VycmVudE5ldHdvcmtMb2FkZXJTZXNzaW9uQ29va2llQWNjZXB0UG9saWN5
Ok5TSFRUUENvb2tpZUFjY2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluXTsKIH0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5jcHAKaW5kZXggZjlmNWViYzAzODkuLjlmZWM2NmQ5OWIwIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNw
cAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlLmNwcApAQCAtMzM5LDYgKzMzOSw4IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OmJlZ2luVGVz
dGluZyhXS0RpY3Rpb25hcnlSZWYgc2V0dGluZ3MpCiAKICAgICBtX3Rlc3RSdW5uZXItPnNldFN1
YnRsZUNyeXB0b0VuYWJsZWQodHJ1ZSk7CiAKKyAgICBtX3Rlc3RSdW5uZXItPnNldEZvcmNlUGFy
dGlhbEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoZmFsc2UpOworCiAgICAgaWYgKG1fdGltZW91dCA+
IDApCiAgICAgICAgIG1fdGVzdFJ1bm5lci0+c2V0Q3VzdG9tVGltZW91dChtX3RpbWVvdXQpOwog
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmNwcAppbmRleCAxZTg4M2M1MjdhYS4uY2NmMTNlM2JhOGQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtMzcz
LDYgKzM3MywxMyBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFdlYlJUQ0xlZ2FjeUFQSUVuYWJsZWQo
Ym9vbCBlbmFibGVkKQogICAgIFdLQnVuZGxlT3ZlcnJpZGVCb29sUHJlZmVyZW5jZUZvclRlc3RS
dW5uZXIoaW5qZWN0ZWRCdW5kbGUuYnVuZGxlKCksIGluamVjdGVkQnVuZGxlLnBhZ2VHcm91cCgp
LCBrZXkuZ2V0KCksIGVuYWJsZWQpOwogfQogCit2b2lkIFRlc3RSdW5uZXI6OnNldEZvcmNlUGFy
dGlhbEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQoreworICAgIFdLUmV0YWlu
UHRyPFdLU3RyaW5nUmVmPiBrZXkoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJp
bmcoIldlYktpdEZvcmNlUGFydGlhbEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQiKSk7CisgICAgYXV0
byYgaW5qZWN0ZWRCdW5kbGUgPSBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCk7CisgICAgV0tC
dW5kbGVPdmVycmlkZUJvb2xQcmVmZXJlbmNlRm9yVGVzdFJ1bm5lcihpbmplY3RlZEJ1bmRsZS5i
dW5kbGUoKSwgaW5qZWN0ZWRCdW5kbGUucGFnZUdyb3VwKCksIGtleS5nZXQoKSwgZW5hYmxlZCk7
Cit9CisKIHZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWQoYm9v
bCBlbmFibGVkKQogewogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBrZXkoQWRvcHRXSywg
V0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIldlYktpdE1vZGVybk1lZGlhQ29udHJvbHNF
bmFibGVkIikpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuaAppbmRleCA5NzkwODFhOWNjNC4uY2JkOWE1Y2JjOTQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC0x
MzAsNiArMTMwLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U3VidGxlQ3J5cHRvRW5hYmxlZChi
b29sKTsKICAgICB2b2lkIHNldE1lZGlhRGV2aWNlc0VuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBz
ZXRXZWJSVENMZWdhY3lBUElFbmFibGVkKGJvb2wpOworICAgIHZvaWQgc2V0Rm9yY2VQYXJ0aWFs
RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChib29sKTsKIAogICAgIC8vIFNwZWNpYWwgRE9NIGZ1bmN0
aW9ucy4KICAgICB2b2lkIGNsZWFyQmFja0ZvcndhcmRMaXN0KCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>