<?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>161951</bug_id>
          
          <creation_ts>2016-09-14 00:15:47 -0700</creation_ts>
          <short_desc>Web Inspector: DebuggerManager.Event.Resumed introduces test flakiness</short_desc>
          <delta_ts>2017-08-29 15:09:32 -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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=176071</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>163230</blocked>
    
    <blocked>164305</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mattbaker</cc>
    
    <cc>msaboff</cc>
    
    <cc>nvasilyev</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>saam</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1229465</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-09-14 00:15:47 -0700</bug_when>
    <thetext>Summary:
DebuggerManager.Event.Resumed introduces test flakiness.

If stepping runs too slowly (such as a Debug backend), the frontend will proactively trigger a Resumed event which may completely break the expected flow of the test.

This should be made deterministic for tests, and if made deterministic can mean the Web Inspector UI can reason about JavaScript microtasks that have completed (allowing it to show the most accurate Pause Reason in the Debugger sidebar).

Steps to Reproduce:
1. shell&gt; run-webkit-tests --debug inspector/debugger/stepping

Notes:
DebuggerManager has this timeout:

    debuggerDidResume()
    {
        // Called from WebInspector.DebuggerObserver.

        // We delay clearing the state and firing events so the user interface does not flash
        // between brief steps or successive breakpoints.
        this._delayedResumeTimeout = setTimeout(this._didResumeInternal.bind(this), 50);
    }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1229466</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-09-14 00:16:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/28295767&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1237815</commentid>
    <comment_count>2</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-10-07 15:18:09 -0700</bug_when>
    <thetext>Marked tests as flaky in http://trac.webkit.org/projects/webkit/changeset/206939</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239982</commentid>
    <comment_count>3</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-10-13 15:29:15 -0700</bug_when>
    <thetext>One more flaky test that uses DebuggerManager.Event.Resumed https://trac.webkit.org/changeset/207313</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1248827</commentid>
    <comment_count>4</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-11-07 13:37:48 -0800</bug_when>
    <thetext>*** Bug 164468 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249130</commentid>
    <comment_count>5</comment_count>
      <attachid>294186</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-11-08 14:36:16 -0800</bug_when>
    <thetext>Created attachment 294186
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249134</commentid>
    <comment_count>6</comment_count>
      <attachid>294186</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-11-08 14:38:36 -0800</bug_when>
    <thetext>Comment on attachment 294186
[PATCH] Proposed Fix

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

&gt; Source/WebCore/inspector/InspectorClient.cpp:51
&gt; +    SuspendExceptionScope scope(&amp;frontendPage-&gt;inspectorController().vm());

@Mark: I didn&apos;t add an extra CatchScope and assertion that the inspector didn&apos;t produce an exception because it is possible that the inspector page does produce exceptions. We could add it and try to enforce that requirement, but I didn&apos;t think having an ASSERT would be any better then our normal debugging handling (UncaughtExceptionReporter + ability to resume using Web Inspector).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249135</commentid>
    <comment_count>7</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-11-08 14:40:29 -0800</bug_when>
    <thetext>With this change I was able to `run-webkit-tests inspector/debugger --time-out-ms=30000 --iterations=5 --force --v` on Release and Debug with no failures (other then 1 pre-existing issue). This was not possible for me before, especially with Debug builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249142</commentid>
    <comment_count>8</comment_count>
      <attachid>294186</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-11-08 15:19:35 -0800</bug_when>
    <thetext>Comment on attachment 294186
[PATCH] Proposed Fix

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

r=me, please have mlam or someone glance over JSC parts though.

&gt; LayoutTests/ChangeLog:13
&gt; +        some tests using new style and best practices.

Shouldn&apos;t we be unskipping these tests as well, so that they actually run?

&gt; LayoutTests/inspector/debugger/break-on-exception.html:56
&gt; +        expression: `setTimeout(() =&gt; { testCatch(); TestPage.dispatchEventToFrontend(&quot;AfterTestFunction&quot;)})`,

Where is this used in this test? I think we are missing an event listener.

&gt; LayoutTests/inspector/debugger/command-line-api-exception-nested-catch.html:78
&gt; +                    InspectorTest.singleFireEventListener(&quot;AfterTestFunction&quot;, resolve);

..I see here in this other test we have a listener for it.

&gt; LayoutTests/inspector/debugger/csp-exceptions.html:31
&gt; +                WebInspector.debuggerManager.resume().then(resolve, reject);

Nice.

&gt; LayoutTests/inspector/debugger/pause-reason.html:41
&gt; +                if (setup)

Please propagate &apos;setup&apos; to the &apos;setup&apos; parameter, right between &apos;description&apos; and &apos;test&apos;.

&gt; LayoutTests/inspector/debugger/paused-scopes.html:91
&gt; +            WebInspector.debuggerManager.singleFireEventListener(WebInspector.DebuggerManager.Event.Paused, (event) =&gt; {

Does this need to unpause, or do we do that automatically?

EDIT: oh, the next test assumes it&apos;s already paused. I don&apos;t like this, but it&apos;s hard to do better.

&gt; Source/JavaScriptCore/ChangeLog:8
&gt; +

Might want to put a few sentences here from the bug to describe problem &amp; solution.

&gt; Source/JavaScriptCore/ChangeLog:34
&gt; +        All places that do continueProgram should be audited. In error cases,

Maybe group this comment also with the methods above where it applies, i.e., continueToLocation.

&gt; Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.h:144
&gt; +    enum class ShouldDispatchResumed { No, WhenIdle, WhenContinued };

This read a bit awkwardly to be, but I don&apos;t have suggestions :| Maybe the member should be m_conditionToDispatchResumed or something.

&gt; Source/WebInspectorUI/UserInterface/Views/DebuggerSidebarPanel.js:-678
&gt; -        this._debuggerStepOutButtonItem.enabled = indexOfActiveCallFrame &lt; callFrames.length - 1;

I see this FIXME has annoyed you enough times to go ahead and remove it :P</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249170</commentid>
    <comment_count>9</comment_count>
      <attachid>294186</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-11-08 16:01:43 -0800</bug_when>
    <thetext>Comment on attachment 294186
[PATCH] Proposed Fix

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

LGTM.

&gt; Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.cpp:520
&gt; +        m_frontendDispatcher-&gt;resumed();

I think this deserves a comment to explain why you&apos;re treating this like a resume instead of a big step.  I don&apos;t think it is obvious from just reading this code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249215</commentid>
    <comment_count>10</comment_count>
      <attachid>294186</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2016-11-08 19:27:17 -0800</bug_when>
    <thetext>Comment on attachment 294186
[PATCH] Proposed Fix

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:8
&gt;&gt; +
&gt; 
&gt; Might want to put a few sentences here from the bug to describe problem &amp; solution.

Extra newline.

&gt; Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.cpp:529
&gt; +    m_scriptDebugServer.continueProgram();    

Nit: extra whitespace at end of this line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249216</commentid>
    <comment_count>11</comment_count>
      <attachid>294186</attachid>
    <who name="Matt Baker">mattbaker</who>
    <bug_when>2016-11-08 19:29:29 -0800</bug_when>
    <thetext>Comment on attachment 294186
[PATCH] Proposed Fix

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

&gt; Source/JavaScriptCore/inspector/agents/InspectorDebuggerAgent.cpp:948
&gt; +        m_frontendDispatcher-&gt;resumed();        

Nit: extra whitespace at end of line</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1249692</commentid>
    <comment_count>12</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-11-09 22:11:48 -0800</bug_when>
    <thetext>&lt;https://trac.webkit.org/changeset/208523&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259877</commentid>
    <comment_count>13</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-12-14 13:19:58 -0800</bug_when>
    <thetext>*** Bug 145626 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>294186</attachid>
            <date>2016-11-08 14:36:16 -0800</date>
            <delta_ts>2016-11-08 15:19:35 -0800</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>wuwu-1.patch</filename>
            <type>text/plain</type>
            <size>61936</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxYzMwZWQ3Li41NjI1MDEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTYtMTEt
MDggIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBEZWJ1Z2dlck1hbmFnZXIuRXZlbnQuUmVzdW1lZCBpbnRyb2R1Y2VzIHRlc3Qg
Zmxha2luZXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjE5NTEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4Mjk1NzY3PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJld3JpdGUgdGVzdHMgdG8gYmUg
bW9yZSBkZXRlcm1pbmlzdGljLiBGb3IgdGVzdHMgdGhhdAorICAgICAgICByZWxpZWQgb24gYSBS
ZXN1bWVkIGV2ZW50IHRvIGhhcHBlbiBhZnRlciBhIHNob3J0IGFtb3VudAorICAgICAgICBvZiB0
aW1lLCBpbnN0ZWFkIGhhdmUgdGhlIHRlc3QgZGlzcGF0Y2ggYW4gZXZlbnQgd2hlbiBpdCBpcwor
ICAgICAgICBhcHByb3ByaWF0ZSB0byBjb250aW51ZS4gVGFrZSB0aGlzIG9wcG9ydHVuaXR5IHRv
IHJld3JpdGUKKyAgICAgICAgc29tZSB0ZXN0cyB1c2luZyBuZXcgc3R5bGUgYW5kIGJlc3QgcHJh
Y3RpY2VzLgorCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLWluLWNvbnN0cnVj
dG9yLWJlZm9yZS1zdXBlci5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9icmVh
ay1vbi1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS5odG1sOgorICAgICAgICAqIGluc3BlY3Rv
ci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24uaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UuaHRt
bDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0
aW9uLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtc3ludGF4
LWVycm9yLXRvcC1sZXZlbC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9jb21t
YW5kLWxpbmUtYXBpLWV4Y2VwdGlvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9y
L2RlYnVnZ2VyL2NvbW1hbmQtbGluZS1hcGktZXhjZXB0aW9uLW5lc3RlZC1jYXRjaC5odG1sOgor
ICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9jb21tYW5kLWxpbmUtYXBpLWV4Y2VwdGlvbi5o
dG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9jc3AtZXhjZXB0aW9ucy5odG1sOgor
ICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9kaWRTYW1wbGVQcm9iZS1tdWx0aXBsZS1wcm9i
ZXMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvZXZhbHVhdGVPbkNhbGxGcmFt
ZS1Db21tYW5kTGluZUFQSS5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9ldmFs
dWF0ZU9uQ2FsbEZyYW1lLWVycm9ycy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dl
ci9wYXVzZS1yZWFzb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dl
ci9wYXVzZS1yZWFzb24uaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvcGF1c2Vk
LXNjb3Blcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3BhdXNl
ZC1zY29wZXMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2VzL2V4
Y2VwdGlvbnMuanM6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdFBhcnNlZC5o
dG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zb3VyY2VVUkwtcmVwZWF0ZWQtaWRl
bnRpY2FsLWV4ZWN1dGlvbnMuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc291
cmNlVVJMcy5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zdGVwcGluZy9zdGVw
cGluZy1wYXVzZS1pbi1pbm5lci1zdGVwLXRvLXBhcmVudC5odG1sOgorCiAyMDE2LTExLTA0ICBK
b3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3Bl
Y3RvcjogQXNzb2NpYXRlIFdvcmtlciBSZXNvdXJjZXMgd2l0aCB0aGUgV29ya2VyIGFuZCBub3Qg
dGhlIFBhZ2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVh
ay1pbi1jb25zdHJ1Y3Rvci1iZWZvcmUtc3VwZXIuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9icmVhay1pbi1jb25zdHJ1Y3Rvci1iZWZvcmUtc3VwZXIuaHRtbAppbmRleCAw
OGMwMjZmLi5iMGM0MWRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvYnJlYWstaW4tY29uc3RydWN0b3ItYmVmb3JlLXN1cGVyLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLWluLWNvbnN0cnVjdG9yLWJlZm9yZS1zdXBlci5o
dG1sCkBAIC0zNCw3ICszNCw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHN1aXRlLmFkZFRlc3RD
YXNlKHsKICAgICAgICAgbmFtZTogIlRyaWdnZXJQYXVzZUluQ29uc3RydWN0b3JCZWZvcmVTdXBl
ciIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiVHJpZ2dlciBhIHBhdXNlIGluIGEgY29uc3RydWN0
b3IgYmVmb3JlIGNhbGxpbmcgc3VwZXIgc2hvdWxkIG5vdCBjcmFzaC4iLAotICAgICAgICB0ZXN0
OiAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7
CiAgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXZhbHVhdGVJblBhZ2UoInRyaWdnZXJQYXVzZSgp
Iik7CiAKICAgICAgICAgICAgIEluc3BlY3RvclByb3RvY29sLmV2ZW50SGFuZGxlclsiRGVidWdn
ZXIucGF1c2VkIl0gPSAobWVzc2FnZU9iamVjdCkgPT4gewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9u
LXRocm93LWluLXByb21pc2UuaHRtbAppbmRleCA4ZjMxNjUwLi44ZTM2ODJmIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLXRocm93
LWluLXByb21pc2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJl
YWstb24tZXhjZXB0aW9uLXRocm93LWluLXByb21pc2UuaHRtbApAQCAtMTUsNyArMTUsNyBAQCBm
dW5jdGlvbiB0ZXN0KCkKICAgICBmdW5jdGlvbiBhZGRUZXN0Q2FzZSh7bmFtZSwgZGVzY3JpcHRp
b24sIGV4cHJlc3Npb259KSB7CiAgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKICAgICAgICAg
ICAgIG5hbWUsIGRlc2NyaXB0aW9uLAotICAgICAgICAgICAgdGVzdDogKHJlc29sdmUsIHJlamVj
dCkgPT4geworICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGV4cHJlc3Npb24pOwogICAgICAgICAg
ICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuc2luZ2xlRmlyZUV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5QYXVzZWQsIChldmVudCkgPT4g
ewogICAgICAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0RGF0YSA9IFdlYkluc3BlY3Rvci5kZWJ1
Z2dlck1hbmFnZXIuZGF0YUZvclRhcmdldChXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFj
dGl2ZUNhbGxGcmFtZS50YXJnZXQpOwpAQCAtNTksNyArNTksNyBAQCBmdW5jdGlvbiB0ZXN0KCkK
ICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CiAgICAgICAgIG5hbWU6ICJCcmVha09uQW55RXhjZXB0
aW9uLlByb21pc2UuRXhjZXB0aW9uSW5Qcm9taXNlVGhlbkFuZFJldGhyb3duSW5DYXRjaCIsCiAg
ICAgICAgIGRlc2NyaXB0aW9uOiAiQnJlYWsgb24gYW4gZXhjZXB0aW9uIHRocm93biBpbiBQcm9t
aXNlIHRoZW4gaGFuZGxlciwgYW5kIHRoZW4gYWdhaW4gd2hlbiByZXRocm93biBpbiBjYXRjaCBo
YW5kbGVyLiIsCi0gICAgICAgIHRlc3Q6IChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAg
dGVzdChyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXZhbHVh
dGVJblBhZ2UoInNldFRpbWVvdXQodGVzdFRocm93aW5nSW5Qcm9taXNlV2l0aFJldGhyb3dJbkNh
dGNoKSIpOwogCiAgICAgICAgICAgICBmdW5jdGlvbiBsb2dQYXVzZUxvY2F0aW9uKCkgewpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlv
bi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLWV4Y2VwdGlv
bi5odG1sCmluZGV4IGJkMTc0ZmEuLmE4NGYyNDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi1leGNlcHRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWstb24tZXhjZXB0aW9uLmh0bWwKQEAgLTE1LDcgKzE1
LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgZnVuY3Rpb24gYWRkVGVzdENhc2Uoe25hbWUsIGRl
c2NyaXB0aW9uLCBleHByZXNzaW9ufSkgewogICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CiAg
ICAgICAgICAgICBuYW1lLCBkZXNjcmlwdGlvbiwKLSAgICAgICAgICAgIHRlc3Q6IChyZXNvbHZl
LCByZWplY3QpID0+IHsKKyAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShleHByZXNzaW9uKTsKICAg
ICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnNpbmdsZUZpcmVFdmVu
dExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuUGF1c2VkLCAoZXZl
bnQpID0+IHsKICAgICAgICAgICAgICAgICAgICAgbGV0IHRhcmdldERhdGEgPSBXZWJJbnNwZWN0
b3IuZGVidWdnZXJNYW5hZ2VyLmRhdGFGb3JUYXJnZXQoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFu
YWdlci5hY3RpdmVDYWxsRnJhbWUudGFyZ2V0KTsKQEAgLTUzLDcgKzUzLDcgQEAgZnVuY3Rpb24g
dGVzdCgpCiAgICAgYWRkVGVzdENhc2UoewogICAgICAgICBuYW1lOiAiQnJlYWtPbkFueUV4Y2Vw
dGlvbi5DYXVnaHRFeGNlcHRpb24iLAogICAgICAgICBkZXNjcmlwdGlvbjogIkJyZWFrIG9uIGEg
Y2F1Z2h0IGV4Y2VwdGlvbi4iLAotICAgICAgICBleHByZXNzaW9uOiAic2V0VGltZW91dCh0ZXN0
Q2F0Y2gpIiwKKyAgICAgICAgZXhwcmVzc2lvbjogYHNldFRpbWVvdXQoKCkgPT4geyB0ZXN0Q2F0
Y2goKTsgVGVzdFBhZ2UuZGlzcGF0Y2hFdmVudFRvRnJvbnRlbmQoIkFmdGVyVGVzdEZ1bmN0aW9u
Iil9KWAsCiAgICAgfSk7CiAKICAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVhay1vbi11bmNhdWdo
dC1leGNlcHRpb24tdGhyb3ctaW4tcHJvbWlzZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLmh0
bWwKaW5kZXggMDNhMjJiOC4uODg5OGU3ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNl
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVuY2F1
Z2h0LWV4Y2VwdGlvbi10aHJvdy1pbi1wcm9taXNlLmh0bWwKQEAgLTIxLDcgKzIxLDcgQEAgZnVu
Y3Rpb24gdGVzdCgpCiAgICAgZnVuY3Rpb24gYWRkVGVzdENhc2Uoe25hbWUsIGRlc2NyaXB0aW9u
LCBleHByZXNzaW9ufSkgewogICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CiAgICAgICAgICAg
ICBuYW1lLCBkZXNjcmlwdGlvbiwKLSAgICAgICAgICAgIHRlc3Q6IChyZXNvbHZlLCByZWplY3Qp
ID0+IHsKKyAgICAgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5ldmFsdWF0ZUluUGFnZShleHByZXNzaW9uKTsKICAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGBzZXRUaW1lb3V0KCgpID0+IHsgVGVz
dFBhZ2UuZGlzcGF0Y2hFdmVudFRvRnJvbnRlbmQoIkFmdGVyVGVzdEZ1bmN0aW9uIik7IH0sIDUw
KWApOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWst
b24tdW5jYXVnaHQtZXhjZXB0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvYnJlYWstb24tdW5jYXVnaHQtZXhjZXB0aW9uLmh0bWwKaW5kZXggMzg5YWQ5OS4uYzRiOTk4
NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrLW9uLXVu
Y2F1Z2h0LWV4Y2VwdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9icmVhay1vbi11bmNhdWdodC1leGNlcHRpb24uaHRtbApAQCAtMTUsNyArMTUsNyBAQCBmdW5j
dGlvbiB0ZXN0KCkKICAgICBmdW5jdGlvbiBhZGRUZXN0Q2FzZSh7bmFtZSwgZGVzY3JpcHRpb24s
IGV4cHJlc3Npb259KSB7CiAgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKICAgICAgICAgICAg
IG5hbWUsIGRlc2NyaXB0aW9uLAotICAgICAgICAgICAgdGVzdDogKHJlc29sdmUsIHJlamVjdCkg
PT4geworICAgICAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGV4cHJlc3Npb24pOwogICAgICAgICAgICAg
ICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5QYXVzZWQsIChldmVudCkgPT4gewog
ICAgICAgICAgICAgICAgICAgICBsZXQgdGFyZ2V0RGF0YSA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dl
ck1hbmFnZXIuZGF0YUZvclRhcmdldChXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFjdGl2
ZUNhbGxGcmFtZS50YXJnZXQpOwpAQCAtNTMsNyArNTMsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CiAgICAgICAgIG5hbWU6ICJCcmVha09uVW5jYXVnaHRFeGNl
cHRpb24uQ2F1Z2h0RXhjZXB0aW9uIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJObyBicmVhayBv
biBhIGNhdWdodCBleGNlcHRpb24uIiwKLSAgICAgICAgdGVzdDogKHJlc29sdmUsIHJlamVjdCkg
PT4geworICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewogICAgICAgICAgICAgSW5zcGVj
dG9yVGVzdC5ldmFsdWF0ZUluUGFnZShgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAgICAg
ICAgdGVzdENhdGNoKCk7CiAgICAgICAgICAgICAgICAgVGVzdFBhZ2UuZGlzcGF0Y2hFdmVudFRv
RnJvbnRlbmQoIkFmdGVyVGVzdEZ1bmN0aW9uIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1zeW50YXgtZXJyb3ItdG9wLWxldmVsLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvYnJlYWtwb2ludC1zeW50YXgtZXJyb3It
dG9wLWxldmVsLmh0bWwKaW5kZXggYjg4NWM3ZS4uYmJhMjc1OSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2JyZWFrcG9pbnQtc3ludGF4LWVycm9yLXRvcC1sZXZl
bC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9icmVha3BvaW50LXN5
bnRheC1lcnJvci10b3AtbGV2ZWwuaHRtbApAQCAtMjAsNyArMjAsNyBAQCBmdW5jdGlvbiB0ZXN0
KCkKICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CiAgICAgICAgIG5hbWU6ICJUb3BMZXZlbFN5bnRh
eEVycm9yRG9udENyYXNoIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJNYWtlIHN1cmUgZXhjZXB0
aW9ucyBmcm9tIHRvcC1sZXZlbCBzeW50YXggZXJyb3JzIGRvbid0IGNhdXNlIHVzIHRvIGNyYXNo
LiIsCi0gICAgICAgIHRlc3Q6IChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgdGVzdChy
ZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAgICAgIEluc3BlY3RvclByb3RvY29sLmV2ZW50SGFu
ZGxlclsiRGVidWdnZXIucGF1c2VkIl0gPSBmdW5jdGlvbihtZXNzYWdlT2JqZWN0KSB7CiAgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuc2VuZENvbW1hbmQoIkRlYnVnZ2VyLnJlc3Vt
ZSIpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvY29tbWFu
ZC1saW5lLWFwaS1leGNlcHRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL2NvbW1hbmQtbGluZS1hcGktZXhjZXB0aW9uLWV4cGVjdGVkLnR4dAppbmRleCBi
YTVhOWRjLi5mM2UxMzlhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvY29tbWFuZC1saW5lLWFwaS1leGNlcHRpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9jb21tYW5kLWxpbmUtYXBpLWV4Y2VwdGlvbi1leHBlY3Rl
ZC50eHQKQEAgLTE5LDMwICsxOSwzOSBAQCBQQVNTOiAkZXhjZXB0aW9uIHNob3VsZCBiZSB1bmRl
ZmluZWQgaWYgdGhlcmUgaXMgbm8gZXhjZXB0aW9uLgogCiAtLSBSdW5uaW5nIHRlc3QgY2FzZTog
VW5jYXVnaHRUeXBlRXhjZXB0aW9uCiAkZXhjZXB0aW9uID0+IFR5cGVFcnJvcjogdW5kZWZpbmVk
IGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ1tdLngueCcpCitVbmNhdWdodCBleGNlcHRp
b24gaW4gdGVzdCBwYWdlOiBUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChl
dmFsdWF0aW5nICdbXS54LngnKSBbZXhjZXB0aW9ucy5qczo0XQogCiAtLSBSdW5uaW5nIHRlc3Qg
Y2FzZTogVW5jYXVnaHRSZWZlcmVuY2VFeGNlcHRpb24KICRleGNlcHRpb24gPT4gUmVmZXJlbmNl
RXJyb3I6IENhbid0IGZpbmQgdmFyaWFibGU6IHZhcmlhYmxlVGhhdERvZXNOb3RFeGlzdAorVW5j
YXVnaHQgZXhjZXB0aW9uIGluIHRlc3QgcGFnZTogUmVmZXJlbmNlRXJyb3I6IENhbid0IGZpbmQg
dmFyaWFibGU6IHZhcmlhYmxlVGhhdERvZXNOb3RFeGlzdCBbZXhjZXB0aW9ucy5qczoxMF0KIAog
LS0gUnVubmluZyB0ZXN0IGNhc2U6IFVuY2F1Z2h0U3ludGF4RXhjZXB0aW9uCiAkZXhjZXB0aW9u
ID0+IFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcpJworVW5jYXVnaHQgZXhjZXB0aW9u
IGluIHRlc3QgcGFnZTogU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJyknIFtleGNlcHRp
b25zLmpzOjE2XQogCiAtLSBSdW5uaW5nIHRlc3QgY2FzZTogVW5jYXVnaHRET01FeGNlcHRpb24K
ICRleGNlcHRpb24gPT4gSW5kZXhTaXplRXJyb3IgKERPTSBFeGNlcHRpb24gMSk6IFRoZSBpbmRl
eCBpcyBub3QgaW4gdGhlIGFsbG93ZWQgcmFuZ2UuCitVbmNhdWdodCBleGNlcHRpb24gaW4gdGVz
dCBwYWdlOiBJbmRleFNpemVFcnJvciAoRE9NIEV4Y2VwdGlvbiAxKTogVGhlIGluZGV4IGlzIG5v
dCBpbiB0aGUgYWxsb3dlZCByYW5nZS4gW2V4Y2VwdGlvbnMuanM6MjJdCiAKIC0tIFJ1bm5pbmcg
dGVzdCBjYXNlOiBVbmNhdWdodFN0cmluZwogJGV4Y2VwdGlvbiA9PiB0aHJvd24gc3RyaW5nCitV
bmNhdWdodCBleGNlcHRpb24gaW4gdGVzdCBwYWdlOiB0aHJvd24gc3RyaW5nIFtleGNlcHRpb25z
LmpzOjI3XQogCiAtLSBSdW5uaW5nIHRlc3QgY2FzZTogVW5jYXVnaHROdW1iZXIKICRleGNlcHRp
b24gPT4gMTIzLjQ1NgorVW5jYXVnaHQgZXhjZXB0aW9uIGluIHRlc3QgcGFnZTogMTIzLjQ1NiBb
ZXhjZXB0aW9ucy5qczozMl0KIAogLS0gUnVubmluZyB0ZXN0IGNhc2U6IFVuY2F1Z2h0TnVsbAog
JGV4Y2VwdGlvbiA9PiBudWxsCitVbmNhdWdodCBleGNlcHRpb24gaW4gdGVzdCBwYWdlOiBudWxs
IFtleGNlcHRpb25zLmpzOjM3XQogCiAtLSBSdW5uaW5nIHRlc3QgY2FzZTogVW5jYXVnaHRPYmpl
Y3QKICRleGNlcHRpb24gPT4gT2JqZWN0CitVbmNhdWdodCBleGNlcHRpb24gaW4gdGVzdCBwYWdl
OiBbb2JqZWN0IE9iamVjdF0gW2V4Y2VwdGlvbnMuanM6NDJdCiAKIC0tIFJ1bm5pbmcgdGVzdCBj
YXNlOiBVbmNhdWdodE5vZGUKICRleGNlcHRpb24gPT4gPGJvZHk+CitVbmNhdWdodCBleGNlcHRp
b24gaW4gdGVzdCBwYWdlOiBbb2JqZWN0IEhUTUxCb2R5RWxlbWVudF0gW2V4Y2VwdGlvbnMuanM6
NDddCiAKIC0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBDYXRjaFR5cGVFeGNlcHRpb24KIFBBU1M6IFBh
dXNlZCwgc3RlcHBpbmcgb3V0IHRvIGNhdGNoIGJsb2NrLi4uCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvY29tbWFuZC1saW5lLWFwaS1leGNlcHRpb24tbmVzdGVk
LWNhdGNoLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvY29tbWFuZC1saW5l
LWFwaS1leGNlcHRpb24tbmVzdGVkLWNhdGNoLmh0bWwKaW5kZXggYjY2Zjc2OC4uNGJlZWUyMyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2NvbW1hbmQtbGluZS1h
cGktZXhjZXB0aW9uLW5lc3RlZC1jYXRjaC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9jb21tYW5kLWxpbmUtYXBpLWV4Y2VwdGlvbi1uZXN0ZWQtY2F0Y2guaHRtbApA
QCAtMjgsNyArMjgsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7
CiAgICAgICAgIG5hbWU6ICJFbXB0eUJlZm9yZSIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiV2l0
aG91dCBleGNlcHRpb25zLCAkZXhjZXB0aW9uIHNob3VsZCBiZSB1bmRlZmluZWQiLAotICAgICAg
ICB0ZXN0OiAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVq
ZWN0KSB7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IucnVudGltZU1hbmFnZXIuZXZhbHVhdGVJ
bkluc3BlY3RlZFdpbmRvdygiJGV4Y2VwdGlvbiIsIHtvYmplY3RHcm91cDogInRlc3QiLCBpbmNs
dWRlQ29tbWFuZExpbmVBUEk6IHRydWUsIGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29u
c29sZTogdHJ1ZX0sIChyZXN1bHQsIHdhc1Rocm93bikgPT4gewogICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuZXhwZWN0VGhhdChyZXN1bHQuZGVzY3JpcHRpb24gPT09ICJ1bmRlZmluZWQi
LCAiJGV4Y2VwdGlvbiBzaG91bGQgYmUgdW5kZWZpbmVkIGlmIHRoZXJlIGlzIG5vIGV4Y2VwdGlv
bi4iKTsKICAgICAgICAgICAgICAgICByZXNvbHZlKCk7CkBAIC0zOSw3ICszOSw3IEBAIGZ1bmN0
aW9uIHRlc3QoKQogICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKICAgICAgICAgbmFtZTogIkNoZWNr
RXhjZXB0aW9uSW5zaWRlTmVzdGVkQ2F0Y2hCbG9ja3MiLAogICAgICAgICBkZXNjcmlwdGlvbjog
IkNoZWNrICRleGNlcHRpb24gaXMgYWx3YXlzIHRoZSBjdXJyZW50IGV4Y2VwdGlvbiBvYmplY3Qg
d2hlbiBzdGVwcGluZyB0aHJvdWdoIGNhdGNoIGJsb2Nrcy4iLAotICAgICAgICB0ZXN0OiAocmVz
b2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJzZXRUaW1lb3V0KG5lc3RlZENh
dGNoQmxvY2tzLCAwKSIpOwogCiAgICAgICAgICAgICBsZXQgcGhhc2UgPSAwOwpAQCAtNzUsOSAr
NzUsOSBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgICAgICBpZiAocGhhc2UgPT09IDQp
IHsKICAgICAgICAgICAgICAgICAgICAgZHVtcENvbW1hbmRMaW5lQVBJVmFsdWUoIk9VVEVSIDIi
KTsKICAgICAgICAgICAgICAgICAgICAgY2hlY2tJZkV4Y2VwdGlvblZhbHVlTWF0Y2hlc1Zhcmlh
YmxlKCJlMSIpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNpbmdsZUZpcmVF
dmVudExpc3RlbmVyKCJBZnRlclRlc3RGdW5jdGlvbiIsIHJlc29sdmUpOwogICAgICAgICAgICAg
ICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnJlc3VtZSgpLnRoZW4oKCkgPT4g
ewogICAgICAgICAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5y
ZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuQ2Fs
bEZyYW1lc0RpZENoYW5nZSwgbGlzdGVuZXIpOwotICAgICAgICAgICAgICAgICAgICAgICAgcmVz
b2x2ZSgpOwogICAgICAgICAgICAgICAgICAgICB9LCByZWplY3QpOwogICAgICAgICAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgfQpAQCAtODgsNyArODgsNyBAQCBmdW5jdGlv
biB0ZXN0KCkKICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CiAgICAgICAgIG5hbWU6ICJFbXB0eUFm
dGVyIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJXaXRob3V0IGV4Y2VwdGlvbnMsICRleGNlcHRp
b24gc2hvdWxkIGJlIHVuZGVmaW5lZCIsCi0gICAgICAgIHRlc3Q6IChyZXNvbHZlLCByZWplY3Qp
ID0+IHsKKyAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5ydW50aW1lTWFuYWdlci5ldmFsdWF0ZUluSW5zcGVjdGVkV2luZG93KCIkZXhjZXB0
aW9uIiwge29iamVjdEdyb3VwOiAidGVzdCIsIGluY2x1ZGVDb21tYW5kTGluZUFQSTogdHJ1ZSwg
ZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xlOiB0cnVlfSwgKHJlc3VsdCwgd2Fz
VGhyb3duKSA9PiB7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHJl
c3VsdC5kZXNjcmlwdGlvbiA9PT0gInVuZGVmaW5lZCIsICIkZXhjZXB0aW9uIHNob3VsZCBiZSB1
bmRlZmluZWQgaWYgdGhlcmUgaXMgbm8gZXhjZXB0aW9uLiIpOwogICAgICAgICAgICAgICAgIHJl
c29sdmUoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9jb21t
YW5kLWxpbmUtYXBpLWV4Y2VwdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL2NvbW1hbmQtbGluZS1hcGktZXhjZXB0aW9uLmh0bWwKaW5kZXggMGRlMDQ3OC4uYjUwNjNk
YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2NvbW1hbmQtbGlu
ZS1hcGktZXhjZXB0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L2NvbW1hbmQtbGluZS1hcGktZXhjZXB0aW9uLmh0bWwKQEAgLTQsOCArNCw4IEBACiA8c2NyaXB0
IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuL3Jlc291cmNlcy9leGNlcHRpb25zLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQ+Ci0vLyBXZSBleHBlY3QgdW5jYXVnaHQgZXhjZXB0aW9ucywgc28g
YXZvaWQgbG9ncyBmb3IgdGhlbS4KLXdpbmRvdy5vbmVycm9yID0gZnVuY3Rpb24oKXt9OworVGVz
dFBhZ2UuYWxsb3dVbmNhdWdodEV4Y2VwdGlvbnMgPSB0cnVlOworVGVzdFBhZ2UubmVlZFRvU2Fu
aXRpemVVbmNhdWdodEV4Y2VwdGlvblVSTHMgPSB0cnVlOwogCiBmdW5jdGlvbiB0ZXN0KCkKIHsK
QEAgLTE2LDcgKzE2LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgZnVuY3Rpb24gYWRkTm9FeGNl
cHRpb25UZXN0KG5hbWUpIHsKICAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoewogICAgICAgICAg
ICAgbmFtZSwgZGVzY3JpcHRpb246ICJXaXRob3V0IGV4Y2VwdGlvbnMsICRleGNlcHRpb24gc2hv
dWxkIGJlIHVuZGVmaW5lZCIsCi0gICAgICAgICAgICB0ZXN0OiAocmVzb2x2ZSwgcmVqZWN0KSA9
PiB7CisgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewogICAgICAgICAgICAgICAg
IFdlYkluc3BlY3Rvci5ydW50aW1lTWFuYWdlci5ldmFsdWF0ZUluSW5zcGVjdGVkV2luZG93KCIk
ZXhjZXB0aW9uIiwge29iamVjdEdyb3VwOiAidGVzdCIsIGluY2x1ZGVDb21tYW5kTGluZUFQSTog
dHJ1ZSwgZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11dGVDb25zb2xlOiB0cnVlfSwgKHJlc3Vs
dCwgd2FzVGhyb3duKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0VGhhdChyZXN1bHQuZGVzY3JpcHRpb24gPT09ICJ1bmRlZmluZWQiLCAiJGV4Y2VwdGlvbiBz
aG91bGQgYmUgdW5kZWZpbmVkIGlmIHRoZXJlIGlzIG5vIGV4Y2VwdGlvbi4iKTsKICAgICAgICAg
ICAgICAgICAgICAgcmVzb2x2ZSgpOwpAQCAtMjgsNyArMjgsNyBAQCBmdW5jdGlvbiB0ZXN0KCkK
ICAgICBmdW5jdGlvbiBhZGRVbmNhdWdodEV4Y2VwdGlvblRlc3QobmFtZSwgdGVzdEZ1bmN0aW9u
KSB7CiAgICAgICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKICAgICAgICAgICAgIG5hbWUsIGRlc2Ny
aXB0aW9uOiAiVHJpZ2dlciBhbiB1bmNhdWdodCBleGNlcHRpb24gYW5kIGNoZWNrICRleGNlcHRp
b24uIiwKLSAgICAgICAgICAgIHRlc3Q6IChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAg
ICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5ldmFsdWF0ZUluUGFnZShgc2V0VGltZW91dCgke3Rlc3RGdW5jdGlvbn0pYCk7CiAgICAgICAg
ICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5zaW5nbGVGaXJlRXZlbnRMaXN0
ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlBhdXNlZCwgKGV2ZW50KSA9
PiB7CiAgICAgICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5ydW50aW1lTWFuYWdlci5ldmFs
dWF0ZUluSW5zcGVjdGVkV2luZG93KCIkZXhjZXB0aW9uIiwge29iamVjdEdyb3VwOiAidGVzdCIs
IGluY2x1ZGVDb21tYW5kTGluZUFQSTogdHJ1ZSwgZG9Ob3RQYXVzZU9uRXhjZXB0aW9uc0FuZE11
dGVDb25zb2xlOiB0cnVlfSwgKHJlc3VsdCwgd2FzVGhyb3duKSA9PiB7CkBAIC00Myw3ICs0Myw3
IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIGZ1bmN0aW9uIGFkZENhdWdodEV4Y2VwdGlvblRlc3Qo
bmFtZSwgZXhwcmVzc2lvbikgewogICAgICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CiAgICAgICAg
ICAgICBuYW1lLCBkZXNjcmlwdGlvbjogIlRyaWdnZXIgYSBjYXVnaHQgZXhjZXB0aW9uIGFuZCBj
aGVjayAkZXhjZXB0aW9uLiIsCi0gICAgICAgICAgICB0ZXN0OiAocmVzb2x2ZSwgcmVqZWN0KSA9
PiB7CisgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewogICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoZXhwcmVzc2lvbik7CiAKICAgICAgICAgICAg
ICAgICBsZXQgZGlkU3RlcCA9IGZhbHNlOwpAQCAtNjcsMTAgKzY3LDEwIEBAIGZ1bmN0aW9uIHRl
c3QoKQogICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICBXZWJJbnNwZWN0b3IucnVudGltZU1hbmFnZXIuZXZhbHVhdGVJbkluc3BlY3RlZFdpbmRvdygi
JGV4Y2VwdGlvbiIsIHtvYmplY3RHcm91cDogInRlc3QiLCBpbmNsdWRlQ29tbWFuZExpbmVBUEk6
IHRydWUsIGRvTm90UGF1c2VPbkV4Y2VwdGlvbnNBbmRNdXRlQ29uc29sZTogdHJ1ZX0sIChyZXN1
bHQsIHdhc1Rocm93bikgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QubG9nKCIkZXhjZXB0aW9uID0+ICIgKyByZXN1bHQuZGVzY3JpcHRpb24pOworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2luZ2xlRmlyZUV2ZW50TGlzdGVu
ZXIoIkFmdGVyVGVzdEZ1bmN0aW9uIiwgcmVzb2x2ZSk7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKS50aGVuKCgpID0+IHsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFu
YWdlci5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZl
bnQuQ2FsbEZyYW1lc0RpZENoYW5nZSwgbGlzdGVuZXIpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXNvbHZlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgcmVq
ZWN0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaChyZWplY3QpOwogICAg
ICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgICAgICAgICAgICAgIH0KQEAgLTkxLDkgKzkxLDkgQEAgZnVuY3Rpb24gdGVzdCgp
CiAgICAgYWRkVW5jYXVnaHRFeGNlcHRpb25UZXN0KCJVbmNhdWdodE9iamVjdCIsICJ0aHJvd09i
amVjdCIpOwogICAgIGFkZFVuY2F1Z2h0RXhjZXB0aW9uVGVzdCgiVW5jYXVnaHROb2RlIiwgInRo
cm93Tm9kZSIpOwogCi0gICAgYWRkQ2F1Z2h0RXhjZXB0aW9uVGVzdCgiQ2F0Y2hUeXBlRXhjZXB0
aW9uIiwgInNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IGNhdGNoZXIodHJpZ2dlclVuY2F1Z2h0VHlw
ZUV4Y2VwdGlvbik7IH0pIik7Ci0gICAgYWRkQ2F1Z2h0RXhjZXB0aW9uVGVzdCgiQ2F0Y2hUaHJv
d25TdHJpbmciLCAic2V0VGltZW91dChmdW5jdGlvbigpIHsgY2F0Y2hlcih0aHJvd1N0cmluZyk7
IH0pIik7Ci0gICAgYWRkQ2F1Z2h0RXhjZXB0aW9uVGVzdCgiQ2F0Y2hUaHJvd25PYmplY3QiLCAi
c2V0VGltZW91dChmdW5jdGlvbigpIHsgY2F0Y2hlcih0aHJvd09iamVjdCk7IH0pIik7CisgICAg
YWRkQ2F1Z2h0RXhjZXB0aW9uVGVzdCgiQ2F0Y2hUeXBlRXhjZXB0aW9uIiwgYHNldFRpbWVvdXQo
ZnVuY3Rpb24oKSB7IGNhdGNoZXIodHJpZ2dlclVuY2F1Z2h0VHlwZUV4Y2VwdGlvbik7IFRlc3RQ
YWdlLmRpc3BhdGNoRXZlbnRUb0Zyb250ZW5kKCJBZnRlclRlc3RGdW5jdGlvbiIpOyB9KWApOwor
ICAgIGFkZENhdWdodEV4Y2VwdGlvblRlc3QoIkNhdGNoVGhyb3duU3RyaW5nIiwgYHNldFRpbWVv
dXQoZnVuY3Rpb24oKSB7IGNhdGNoZXIodGhyb3dTdHJpbmcpOyBUZXN0UGFnZS5kaXNwYXRjaEV2
ZW50VG9Gcm9udGVuZCgiQWZ0ZXJUZXN0RnVuY3Rpb24iKTsgfSlgKTsKKyAgICBhZGRDYXVnaHRF
eGNlcHRpb25UZXN0KCJDYXRjaFRocm93bk9iamVjdCIsIGBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg
eyBjYXRjaGVyKHRocm93T2JqZWN0KTsgVGVzdFBhZ2UuZGlzcGF0Y2hFdmVudFRvRnJvbnRlbmQo
IkFmdGVyVGVzdEZ1bmN0aW9uIik7IH0pYCk7CiAKICAgICBhZGROb0V4Y2VwdGlvblRlc3QoIkFm
dGVyRXhjZXB0aW9ucyIpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvY3NwLWV4Y2VwdGlvbnMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9jc3AtZXhjZXB0aW9ucy5odG1sCmluZGV4IDQ4Yzc3YWEuLjhjZDU5OTYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9jc3AtZXhjZXB0aW9ucy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9jc3AtZXhjZXB0aW9ucy5odG1sCkBAIC0y
NCwxNCArMjQsMTEgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgc3VpdGUuYWRkVGVzdENhc2Uoewog
ICAgICAgICBuYW1lOiAiVHJpZ2dlckNTUEV4Y2VwdGlvbkluc2lkZU9mU2NyaXB0IiwKICAgICAg
ICAgZGVzY3JpcHRpb246ICJUcmlnZ2VyIGEgQ1NQIEV4Y2VwdGlvbiBpbnNpZGUgb2Ygc2NyaXB0
IHNob3VsZCBwYXVzZS4iLAotICAgICAgICB0ZXN0OiAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7Cisg
ICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmV2YWx1YXRlSW5QYWdlKCJzZXRUaW1lb3V0KHRyaWdnZXJDU1BFeGNlcHRpb25JbnNpZGVTY3Jp
cHQpIik7CiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnNpbmdsZUZp
cmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuUGF1c2Vk
LCAoZXZlbnQpID0+IHsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnBhc3MoIkNTUCBF
eGNlcHRpb24gY2F1c2VkIGJ5IHNjcmlwdCBldmFsdWF0aW9uIHNob3VsZCBwYXVzZS4iKTsKLSAg
ICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnJlc3VtZSgpOwotICAg
ICAgICAgICAgfSk7Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnNp
bmdsZUZpcmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQu
UmVzdW1lZCwgKGV2ZW50KSA9PiB7Ci0gICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCkudGhlbihyZXNv
bHZlLCByZWplY3QpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KICAgICB9KTsKQEAgLTM5
LDcgKzM2LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgc3VpdGUuYWRkVGVzdENhc2UoewogICAg
ICAgICBuYW1lOiAiVHJpZ2dlckNTUEV4Y2VwdGlvbk91dHNpZGVPZlNjcmlwdCIsCiAgICAgICAg
IGRlc2NyaXB0aW9uOiAiVHJpZ2dlciBhIENTUCBFeGNlcHRpb24gb3V0c2lkZSBvZiBzY3JpcHQg
c2hvdWxkIG5vdCBwYXVzZSBvciBjcmFzaC4iLAotICAgICAgICB0ZXN0OiAocmVzb2x2ZSwgcmVq
ZWN0KSA9PiB7CisgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJzZXRUaW1lb3V0KHRyaWdnZXJDU1BFeGNlcHRp
b25PdXRzaWRlU2NyaXB0KSIpOwogICAgICAgICAgICAgbGV0IHRlbXBQYXVzZUZhaWxMaXN0ZW5l
ciA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5QYXVzZWQsIChldmVudCkgPT4gewog
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZmFpbCgiQ1NQIEV4Y2VwdGlvbiBjYXVzZWQg
b3V0c2lkZSBvZiBzY3JpcHQgZXZhbHVhdGlvbiBzaG91bGQgbm90IHBhdXNlLCBidXQgZGlkLiIp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2RpZFNhbXBsZVBy
b2JlLW11bHRpcGxlLXByb2Jlcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L2RpZFNhbXBsZVByb2JlLW11bHRpcGxlLXByb2Jlcy5odG1sCmluZGV4IGI5OTJiZDYuLmEzYTg2
MGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9kaWRTYW1wbGVQ
cm9iZS1tdWx0aXBsZS1wcm9iZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvZGlkU2FtcGxlUHJvYmUtbXVsdGlwbGUtcHJvYmVzLmh0bWwKQEAgLTM5LDcgKzM5LDEz
IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICB7CiAgICAgICAgICAgICBtZXNzYWdlOiAiU2Ft
cGxlSWRzIGZyb20gYSBhbnkgcHJvYmUgYXJlIHNlcXVlbnRpYWwgYW5kIHN0YXJ0IGNvdW50aW5n
IGZyb20gb25lLiIsCiAgICAgICAgICAgICBwcmVkaWNhdGU6IGZ1bmN0aW9uIHNhbXBsZXNIYXZl
U2VxdWVudGlhbElkcygpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gc2FtcGxlcy5ldmVyeShm
dW5jdGlvbihzYW1wbGUsIGlkeCkgeyByZXR1cm4gc2FtcGxlLnNhbXBsZUlkID09PSBpZHggKyAx
OyB9KTsKKyAgICAgICAgICAgICAgICBsZXQgaW5pdGlhbFNhbXBsZUlkID0gc2FtcGxlc1swXS5z
YW1wbGVJZDsKKyAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNhbXBsZXMubGVu
Z3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgbGV0IGV4cGVjdGVkU2FtcGxlSWQgPSBp
bml0aWFsU2FtcGxlSWQgKyBpOworICAgICAgICAgICAgICAgICAgICBpZiAoc2FtcGxlc1tpXS5z
YW1wbGVJZCAhPT0gZXhwZWN0ZWRTYW1wbGVJZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgZXJyb3I6IGR1bXBTYW1wbGVzCiAgICAg
ICAgIH0sCkBAIC01OSw3ICs2NSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgICAg
IF0KICAgICAgICAgICAgIH07CiAKLSAgICAgICAgICAgIEluc3BlY3RvclByb3RvY29sLnNlbmRD
b21tYW5kKCJEZWJ1Z2dlci5zZXRCcmVha3BvaW50Iiwge2xvY2F0aW9uOiBsb2NhdGlvbiwgb3B0
aW9uczogb3B0aW9uc30sIGZ1bmN0aW9uKHJlc3BvbnNlT2JqZWN0KSB7CisgICAgICAgICAgICBJ
bnNwZWN0b3JQcm90b2NvbC5zZW5kQ29tbWFuZCgiRGVidWdnZXIuc2V0QnJlYWtwb2ludCIsIHts
b2NhdGlvbiwgb3B0aW9uc30sIGZ1bmN0aW9uKHJlc3BvbnNlT2JqZWN0KSB7CiAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yUHJvdG9jb2wuY2hlY2tGb3JFcnJvcihyZXNwb25zZU9iamVjdCk7CiAK
ICAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3QubG9nKCJSdW5uaW5nIGJyZWFrcG9pbnRBY3Rp
b25zIHRvIHRyaWdnZXIgcHJvYmUgc2FtcGxlcy4iKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9ldmFsdWF0ZU9uQ2FsbEZyYW1lLUNvbW1hbmRMaW5lQVBJLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvZXZhbHVhdGVPbkNhbGxGcmFtZS1D
b21tYW5kTGluZUFQSS5odG1sCmluZGV4IGQ0NjU3Y2QuLmZiNzc1ODggMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9ldmFsdWF0ZU9uQ2FsbEZyYW1lLUNvbW1hbmRM
aW5lQVBJLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2V2YWx1YXRl
T25DYWxsRnJhbWUtQ29tbWFuZExpbmVBUEkuaHRtbApAQCAtNzcsNyArNzcsNyBAQCBmdW5jdGlv
biB0ZXN0KCkKICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CiAgICAgICAgIG5hbWU6ICJWYWxpZGF0
ZUNhbGxGcmFtZXMiLAogICAgICAgICBkZXNjcmlwdGlvbjogIlRlc3Q2IGV2YWx1YXRlIGNhbiBh
Y2Nlc3MgQ29tbWFuZExpbmVBUEkgbWV0aG9kcy4iLAotICAgICAgICB0ZXN0OiAocmVzb2x2ZSwg
cmVqZWN0KSA9PiB7CisgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICAgICAgICAg
ICBsZXQgdGFyZ2V0RGF0YSA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuZGF0YUZvclRh
cmdldChXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFjdGl2ZUNhbGxGcmFtZS50YXJnZXQp
OwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KFdlYkluc3BlY3Rvci5kZWJ1
Z2dlck1hbmFnZXIuYWN0aXZlQ2FsbEZyYW1lLmZ1bmN0aW9uTmFtZSA9PT0gImJhciIsICJTdHJp
Y3QgY2FsbCBmcmFtZSBpcyBgYmFyYC4iKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhw
ZWN0VGhhdCh0YXJnZXREYXRhLmNhbGxGcmFtZXNbMV0uZnVuY3Rpb25OYW1lID09PSAiZm9vIiwg
Ik5vbi1zdHJpY3QgY2FsbCBmcmFtZSBpcyBgZm9vYC4iKTsKQEAgLTk3LDcgKzk3LDcgQEAgZnVu
Y3Rpb24gdGVzdCgpCiAgICAgc3VpdGUuYWRkVGVzdENhc2UoewogICAgICAgICBuYW1lOiAiQWNj
ZXNzQ29tbWFuZExpbmVBUEkiLAogICAgICAgICBkZXNjcmlwdGlvbjogIlRlc3QgZXZhbHVhdGUg
Y2FuIGFjY2VzcyBDb21tYW5kTGluZUFQSSBtZXRob2RzLiIsCi0gICAgICAgIHRlc3Q6IChyZXNv
bHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKICAgICAg
ICAgICAgIHRlc3RFdmFsdWF0ZU9uU3RyaWN0Q2FsbEZyYW1lKCJrZXlzLnRvU3RyaW5nKCkiLCAo
cmVzdWx0VmFsdWUpID0+IHsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRo
YXQocmVzdWx0VmFsdWUuaW5jbHVkZXMoIltDb21tYW5kIExpbmUgQVBJXSIpLCAiQ29tbWFuZExp
bmVBUEkgYGtleXNgIGNhbiBiZSBhY2Nlc3NlZCBpbiB0aGUgYGJhcmAgc3RyaWN0IGNhbGwgZnJh
bWUuIik7CiAgICAgICAgICAgICB9KTsKQEAgLTExNCw3ICsxMTQsNyBAQCBmdW5jdGlvbiB0ZXN0
KCkKICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CiAgICAgICAgIG5hbWU6ICJBY2Nlc3NHbG9iYWxW
YXJpYWJsZSIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiVGVzdCBldmFsdWF0ZSBjYW4gYWNjZXNz
IGdsb2JhbCB2YXJpYWJsZXMuIiwKLSAgICAgICAgdGVzdDogKHJlc29sdmUsIHJlamVjdCkgPT4g
eworICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewogICAgICAgICAgICAgdGVzdEV2YWx1
YXRlT25TdHJpY3RDYWxsRnJhbWUoInZhckdsb2JhbFZhcmlhYmxlIiwgKHgpID0+IHsgSW5zcGVj
dG9yVGVzdC5leHBlY3RUaGF0KHggPT09IDEsICJTaG91bGQgYmUgYWJsZSB0byBhY2Nlc3MgdmFy
IGluIGdsb2JhbCBzY29wZSBpbiBzdHJpY3QgY2FsbCBmcmFtZS4iKTsgfSk7CiAgICAgICAgICAg
ICB0ZXN0RXZhbHVhdGVPblN0cmljdENhbGxGcmFtZSgibGV0R2xvYmFsVmFyaWFibGUiLCAoeCkg
PT4geyBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQoeCA9PT0gMiwgIlNob3VsZCBiZSBhYmxlIHRv
IGFjY2VzcyBsZXQgaW4gZ2xvYmFsIHNjb3BlIGluIHN0cmljdCBjYWxsIGZyYW1lLiIpOyB9KTsK
ICAgICAgICAgICAgIHRlc3RFdmFsdWF0ZU9uU3RyaWN0Q2FsbEZyYW1lKCJjb25zdEdsb2JhbFZh
cmlhYmxlIiwgKHgpID0+IHsgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHggPT09IDMsICJTaG91
bGQgYmUgYWJsZSB0byBhY2Nlc3MgY29uc3QgaW4gZ2xvYmFsIHNjb3BlIGluIHN0cmljdCBjYWxs
IGZyYW1lLiIpOyB9KTsKQEAgLTEyOCw3ICsxMjgsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBz
dWl0ZS5hZGRUZXN0Q2FzZSh7CiAgICAgICAgIG5hbWU6ICJOb1ZhcmlhYmxlc0NyZWF0ZWRPbkNh
bGxGcmFtZSIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiVGVzdCBldmFsdWF0ZSBtYXkgbm90IGNy
ZWF0ZSBuZXcgbG9jYWwgdmFyaWFibGVzLiIsCi0gICAgICAgIHRlc3Q6IChyZXNvbHZlLCByZWpl
Y3QpID0+IHsKKyAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAgICAgIHRl
c3RFdmFsdWF0ZU9uU3RyaWN0Q2FsbEZyYW1lKGAKICAgICAgICAgICAgICAgICB2YXIgY3JlYXRl
ZFZhckxvY2FsVmFyaWFibGUgPSAxOwogICAgICAgICAgICAgICAgIGxldCBjcmVhdGVkTGV0TG9j
YWxWYXJpYWJsZSA9IDI7CkBAIC0xNTIsNyArMTUyLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAg
c3VpdGUuYWRkVGVzdENhc2UoewogICAgICAgICBuYW1lOiAiTm9uU3RyaWN0QW5kU3RyaWN0RXZh
bHVhdGlvbnMiLAogICAgICAgICBkZXNjcmlwdGlvbjogIlRlc3QgZXZhbHVhdGUgY2FuIHJ1biBz
dHJpY3QgYW5kIG5vbi1zdHJpY3QgcHJvZ3JhbXMuIiwKLSAgICAgICAgdGVzdDogKHJlc29sdmUs
IHJlamVjdCkgPT4geworICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewogICAgICAgICAg
ICAgLy8gTm9uIHN0cmljdCwgdGhpcyBpcyBva2F5LgogICAgICAgICAgICAgdGVzdEV2YWx1YXRl
T25Ob25TdHJpY3RDYWxsRnJhbWUoImFyZ3VtZW50cy5jYWxsZWUubmFtZSIsIChyZXN1bHRWYWx1
ZSkgPT4gewogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZXhwZWN0VGhhdChyZXN1bHRW
YWx1ZSA9PT0gImZvbyIsICJOb24tc3RyaWN0IGV2YWx1YXRpb24uIFNob3VsZCBiZSBhYmxlIHRv
IGFjY2VzcyBhcmd1bWVudHMuY2FsbGVlLiIpOwpAQCAtMTY4LDcgKzE2OCw3IEBAIGZ1bmN0aW9u
IHRlc3QoKQogICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKICAgICAgICAgbmFtZTogIkNvbW1hbmRM
aW5lQVBJRG9lc05vdFNoYWRvd0xvY2FsVmFyaWFibGVzIiwKICAgICAgICAgZGVzY3JpcHRpb246
ICJUZXN0IENvbW1hbmRMaW5lQVBJIGRvZXMgbm90IHNoYWRvdyBsb2NhbCB2YXJpYWJsZXMuIiwK
LSAgICAgICAgdGVzdDogKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICB0ZXN0KHJlc29s
dmUsIHJlamVjdCkgewogICAgICAgICAgICAgdGVzdEV2YWx1YXRlT25Ob25TdHJpY3RDYWxsRnJh
bWUoImtleXMiLCAocmVzdWx0VmFsdWUpID0+IHsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmV4cGVjdFRoYXQocmVzdWx0VmFsdWUgPT09IDEyMywgIkxvY2FsIHZhcmlhYmxlIGBrZXlz
YCBzaG91bGQgbm90IGJlIHNoYWRvd2VkIGJ5IENvbW1hbmRMaW5lQVBJIGBrZXlzYCBmdW5jdGlv
biBpbiBjYWxsIGZyYW1lIGZvciBgZm9vYC4iKTsKICAgICAgICAgICAgICAgICByZXNvbHZlKCk7
CkBAIC0xNzksNyArMTc5LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgc3VpdGUuYWRkVGVzdENh
c2UoewogICAgICAgICBuYW1lOiAiQ29tbWFuZExpbmVBUElEb2VzTm90U2hhZG93R2xvYmFsVmFy
aWFibGVzIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJUZXN0IENvbW1hbmRMaW5lQVBJIGRvZXMg
bm90IHNoYWRvdyBnbG9iYWwgdmFyaWFibGVzLiIsCi0gICAgICAgIHRlc3Q6IChyZXNvbHZlLCBy
ZWplY3QpID0+IHsKKyAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAgICAg
IHRlc3RFdmFsdWF0ZU9uU3RyaWN0Q2FsbEZyYW1lKCJrZXlzLnRvU3RyaW5nKCkiLCAocmVzdWx0
VmFsdWUpID0+IHsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdFRoYXQocmVz
dWx0VmFsdWUuaW5jbHVkZXMoIltDb21tYW5kIExpbmUgQVBJXSIpLCAiQ29tbWFuZExpbmVBUEkg
YGtleXNgIGNhbiBiZSBhY2Nlc3NlZCBpbiB0aGUgYGJhcmAgc3RyaWN0IGNhbGwgZnJhbWUuIik7
CiAgICAgICAgICAgICB9KTsKQEAgLTIwMCw3ICsyMDAsNyBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CiAgICAgICAgIG5hbWU6ICJDb21tYW5kTGluZUFQSURvZXNO
b3RTaGFkb3dHbG9iYWxPYmplY3RQcm9wZXJ0aWVzIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJU
ZXN0IENvbW1hbmRMaW5lQVBJIGRvZXMgbm90IHNoYWRvdyBnbG9iYWwgb2JqZWN0IHByb3BlcnRp
ZXMuIiwKLSAgICAgICAgdGVzdDogKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICB0ZXN0
KHJlc29sdmUsIHJlamVjdCkgewogICAgICAgICAgICAgdGVzdEV2YWx1YXRlT25TdHJpY3RDYWxs
RnJhbWUoInZhbHVlcy50b1N0cmluZygpIiwgKHJlc3VsdFZhbHVlKSA9PiB7CiAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3RUaGF0KHJlc3VsdFZhbHVlID09PSAiW29iamVjdCBI
VE1MRGl2RWxlbWVudF0iLCAiYHZhbHVlc2Agc2hvdWxkIGJlIGB3aW5kb3cudmFsdWVzYCBhbmQg
bm90IHNoYWRvd2VkIGJ5IENvbW1hbmRMaW5lQVBJIGB2YWx1ZXNgIGZ1bmN0aW9uIGluIHN0cmlj
dCBjYWxsIGZyYW1lLiIpOwogICAgICAgICAgICAgfSk7CkBAIC0yMTMsNyArMjEzLDcgQEAgZnVu
Y3Rpb24gdGVzdCgpCiAKICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CiAgICAgICAgIG5hbWU6ICJD
b21wbGV0ZSIsCi0gICAgICAgIHRlc3Q6IChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAg
dGVzdChyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dl
ck1hbmFnZXIucmVzdW1lKCk7CiAgICAgICAgICAgICByZXNvbHZlKCk7CiAgICAgICAgIH0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9ldmFsdWF0ZU9uQ2FsbEZy
YW1lLWVycm9ycy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2V2YWx1YXRl
T25DYWxsRnJhbWUtZXJyb3JzLmh0bWwKaW5kZXggOThmNTY2MC4uZTgxMmEyZSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2V2YWx1YXRlT25DYWxsRnJhbWUtZXJy
b3JzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2V2YWx1YXRlT25D
YWxsRnJhbWUtZXJyb3JzLmh0bWwKQEAgLTE3LDcgKzE3LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAg
ICAgc3VpdGUuYWRkVGVzdENhc2UoewogICAgICAgICBuYW1lOiAiRXZhbHVhdGVPbkNhbGxGcmFt
ZU5vdFBhdXNlZCIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiVHJpZ2dlcmluZyBldmFsdWF0ZSBv
biBjYWxsIGZyYW1lIHdoZW4gbm90IHBhdXNlZCBzaG91bGQgaXNzdWUgYW4gZXJyb3IuIiwKLSAg
ICAgICAgdGVzdDogKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICB0ZXN0KHJlc29sdmUs
IHJlamVjdCkgewogICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmV2YWx1YXRlSW5QYWdlKCJ0cmln
Z2VyUGF1c2UoKSIpOwogCiAgICAgICAgICAgICBsZXQgY2FsbEZyYW1lSWRlbnRpZmllcjsKQEAg
LTQxLDcgKzQxLDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgc3VpdGUuYWRkVGVzdENhc2Uoewog
ICAgICAgICBuYW1lOiAiRXZhbHVhdGVPbkNhbGxGcmFtZUJhZENhbGxGcmFtZUlkZW50aWZpZXIi
LAogICAgICAgICBkZXNjcmlwdGlvbjogIlRyaWdnZXJpbmcgZXZhbHVhdGUgb24gY2FsbCBmcmFt
ZSB3aXRoIGEgYmFkIGNhbGwgZnJhbWUgaWRlbnRpZmllciBzaG91bGQgaXNzdWUgYW4gZXJyb3Iu
IiwKLSAgICAgICAgdGVzdDogKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICB0ZXN0KHJl
c29sdmUsIHJlamVjdCkgewogICAgICAgICAgICAgUHJvdG9jb2xUZXN0LmV2YWx1YXRlSW5QYWdl
KCJ0cmlnZ2VyUGF1c2UoKSIpOwogCiAgICAgICAgICAgICBJbnNwZWN0b3JQcm90b2NvbC5ldmVu
dEhhbmRsZXJbIkRlYnVnZ2VyLnBhdXNlZCJdID0gKG1lc3NhZ2VPYmplY3QpID0+IHsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9wYXVzZS1yZWFzb24tZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3BhdXNlLXJlYXNvbi1leHBl
Y3RlZC50eHQKaW5kZXggODhlMzMwZC4uOWUwOGZiMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL3BhdXNlLXJlYXNvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3BhdXNlLXJlYXNvbi1leHBlY3RlZC50eHQKQEAgLTIs
MjkgKzIsMzYgQEAgQ09OU09MRSBNRVNTQUdFOiBsaW5lIDg6IFR5cGVFcnJvcjogdW5kZWZpbmVk
IGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ1tdLngKIENPTlNPTEUgTUVTU0FHRTogbGlu
ZSAxODogQXNzZXJ0aW9uIG1lc3NhZ2UKIFRlc3QgdGhhdCBwYXVzaW5nIGluIGRpZmZlcmVudCB3
YXlzIHRyaWdnZXJzIGRpZmZlcmVudCBwYXVzZSByZWFzb25zLgogCisKKz09IFJ1bm5pbmcgdGVz
dCBzdWl0ZTogRGVidWdnZXIuUGF1c2VSZWFzb24KKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBEZWJ1
Z2dlci5QYXVzZVJlYXNvbi5FeGNlcHRpb24KIFBBVVNFICMxCiAgIFJFQVNPTjogZXhjZXB0aW9u
CiAgIERBVEE6IHsiZGVzY3JpcHRpb24iOiJUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4g
b2JqZWN0IChldmFsdWF0aW5nICdbXS54LngnKSJ9CitVbmNhdWdodCBleGNlcHRpb24gaW4gdGVz
dCBwYWdlOiBUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5n
ICdbXS54LngnKSBbcGF1c2UtcmVhc29ucy5qczo4XQogUkVTVU1FRAogCistLSBSdW5uaW5nIHRl
c3QgY2FzZTogRGVidWdnZXIuUGF1c2VSZWFzb24uRGVidWdnZXJTdGF0ZW1lbnQKIFBBVVNFICMy
CiAgIFJFQVNPTjogZGVidWdnZXItc3RhdGVtZW50CiAgIE5PIERBVEEKIFJFU1VNRUQKIAorLS0g
UnVubmluZyB0ZXN0IGNhc2U6IERlYnVnZ2VyLlBhdXNlUmVhc29uLkFzc2VydGlvbgogUEFVU0Ug
IzMKICAgUkVBU09OOiBhc3NlcnRpb24KICAgREFUQTogeyJtZXNzYWdlIjoiQXNzZXJ0aW9uIG1l
c3NhZ2UifQogUkVTVU1FRAogCistLSBSdW5uaW5nIHRlc3QgY2FzZTogRGVidWdnZXIuUGF1c2VS
ZWFzb24uQnJlYWtwb2ludAogUEFVU0UgIzQKICAgUkVBU09OOiBicmVha3BvaW50CiAgIERBVEE6
IHsiYnJlYWtwb2ludElkIjoicGF1c2UtcmVhc29ucy5qczozOjAifQogUkVTVU1FRAogCistLSBS
dW5uaW5nIHRlc3QgY2FzZTogRGVidWdnZXIuUGF1c2VSZWFzb24uUGF1c2VJbW1lZGlhdGVseQog
UEFVU0UgIzUKICAgUkVBU09OOiBwYXVzZS1vbi1uZXh0LXN0YXRlbWVudAogICBOTyBEQVRBCiBS
RVNVTUVECiAKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Bh
dXNlLXJlYXNvbi5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3BhdXNlLXJl
YXNvbi5odG1sCmluZGV4IGY1YjIzMTAuLmZjNDI3ZTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9wYXVzZS1yZWFzb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvcGF1c2UtcmVhc29uLmh0bWwKQEAgLTQsODcgKzQsMTAyIEBACiA8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgogPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi9yZXNvdXJjZXMvcGF1c2UtcmVhc29ucy5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0PgotLy8gV2UgZXhwZWN0IHVuY2F1Z2h0IGV4Y2VwdGlvbnMsIHNvIGF2
b2lkIGxvZ3MgZm9yIHRoZW0uCi13aW5kb3cub25lcnJvciA9IGZ1bmN0aW9uKCl7fTsKK1Rlc3RQ
YWdlLmFsbG93VW5jYXVnaHRFeGNlcHRpb25zID0gdHJ1ZTsKK1Rlc3RQYWdlLm5lZWRUb1Nhbml0
aXplVW5jYXVnaHRFeGNlcHRpb25VUkxzID0gdHJ1ZTsKIAogZnVuY3Rpb24gdGVzdCgpCiB7Ci0g
ICAgdmFyIHBhdXNlcyA9IDA7Ci0gICAgdmFyIGluZGV4ID0gMDsKLSAgICB2YXIgdGVzdENhc2Vz
ID0gWwotICAgICAgICB7IGV4cHJlc3Npb246ICJzZXRUaW1lb3V0KHRyaWdnZXJFeGNlcHRpb24s
IDApIiB9LAotICAgICAgICB7IGV4cHJlc3Npb246ICJzZXRUaW1lb3V0KHRyaWdnZXJEZWJ1Z2dl
clN0YXRlbWVudCwgMCkiIH0sCi0gICAgICAgIHsgZXhwcmVzc2lvbjogInNldFRpbWVvdXQodHJp
Z2dlckFzc2VydCwgMCkiIH0sCi0gICAgICAgIHsgZXhwcmVzc2lvbjogInNldFRpbWVvdXQodHJp
Z2dlckJyZWFrcG9pbnQsIDApIiB9LAotICAgICAgICB7IGV4cHJlc3Npb246ICJzZXRUaW1lb3V0
KGZ1bmN0aW9uKCkgeyAxKzE7IH0sIDUwKSIsIHNldHVwOiBmdW5jdGlvbigpIHsgV2ViSW5zcGVj
dG9yLmRlYnVnZ2VyTWFuYWdlci5wYXVzZSgpOyB9IH0sCi0gICAgXTsKKyAgICBXZWJJbnNwZWN0
b3IuZGVidWdnZXJNYW5hZ2VyLmFsbEV4Y2VwdGlvbnNCcmVha3BvaW50LmRpc2FibGVkID0gZmFs
c2U7CisgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hc3NlcnRpb25zQnJlYWtwb2lu
dC5kaXNhYmxlZCA9IGZhbHNlOwogCi0gICAgZnVuY3Rpb24gbmV4dFRlc3RDYXNlKCkKLSAgICB7
Ci0gICAgICAgIHZhciB0ZXN0ID0gdGVzdENhc2VzW2luZGV4KytdOwotICAgICAgICBpZiAoIXRl
c3QpIHsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7Ci0gICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRl
SW5QYWdlKHRlc3QuZXhwcmVzc2lvbik7Ci0KLSAgICAgICAgaWYgKHRlc3Quc2V0dXApCi0gICAg
ICAgICAgICB0ZXN0LnNldHVwKCk7CisgICAgZm9yIChsZXQgc2NyaXB0IG9mIFdlYkluc3BlY3Rv
ci5kZWJ1Z2dlck1hbmFnZXIuZGF0YUZvclRhcmdldChXZWJJbnNwZWN0b3IubWFpblRhcmdldCku
c2NyaXB0cykgeworICAgICAgICBpZiAoIS9wYXVzZS1yZWFzb25zXC5qcyQvLnRlc3Qoc2NyaXB0
LnVybCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgbGV0IHNvdXJjZUNvZGVMb2Nh
dGlvbiA9IHNjcmlwdC5jcmVhdGVTb3VyY2VDb2RlTG9jYXRpb24oMywgMCk7CisgICAgICAgIGxl
dCBicmVha3BvaW50ID0gbmV3IFdlYkluc3BlY3Rvci5CcmVha3BvaW50KHNvdXJjZUNvZGVMb2Nh
dGlvbik7CisgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWRkQnJlYWtwb2lu
dChicmVha3BvaW50KTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgZnVuY3Rpb24gc2Fu
aXRpemVQYXVzZURhdGEoZGF0YSkKLSAgICB7Ci0gICAgICAgIC8vIFNhbml0aXplIFJlbW90ZU9i
amVjdHMgdG8ganVzdCBvdXRwdXQgdGhlIGRlc2NyaXB0aW9uLgorICAgIGZ1bmN0aW9uIHNhbml0
aXplUGF1c2VEYXRhKGRhdGEpIHsKICAgICAgICAgaWYgKGRhdGEuZGVzY3JpcHRpb24pCiAgICAg
ICAgICAgICByZXR1cm4ge2Rlc2NyaXB0aW9uOiBkYXRhLmRlc2NyaXB0aW9ufTsKLQotICAgICAg
ICAvLyBTYW5pdGl6ZSBCcmVha3BvaW50SWRlbnRpZmllciBwYXRoLgogICAgICAgICBpZiAoZGF0
YS5icmVha3BvaW50SWQpCiAgICAgICAgICAgICByZXR1cm4ge2JyZWFrcG9pbnRJZDogZGF0YS5i
cmVha3BvaW50SWQuc3Vic3RyaW5nKGRhdGEuYnJlYWtwb2ludElkLmluZGV4T2YoInBhdXNlLXJl
YXNvbnMuanMiKSl9OwotCiAgICAgICAgIHJldHVybiBkYXRhOwogICAgIH0KIAotICAgIFdlYklu
c3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWxsRXhjZXB0aW9uc0JyZWFrcG9pbnQuZGlzYWJsZWQg
PSBmYWxzZTsKLSAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFzc2VydGlvbnNCcmVh
a3BvaW50LmRpc2FibGVkID0gZmFsc2U7CiAKLSAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5h
Z2VyLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5T
Y3JpcHRBZGRlZCwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgdmFyIHNjcmlwdE9iamVjdCA9
IGV2ZW50LmRhdGEuc2NyaXB0OwotICAgICAgICBpZiAoIS9wYXVzZS1yZWFzb25zXC5qcyQvLnRl
c3Qoc2NyaXB0T2JqZWN0LnVybCkpCi0gICAgICAgICAgICByZXR1cm47CisgICAgbGV0IHN1aXRl
ID0gSW5zcGVjdG9yVGVzdC5jcmVhdGVBc3luY1N1aXRlKCJEZWJ1Z2dlci5QYXVzZVJlYXNvbiIp
OwogCi0gICAgICAgIHZhciBzb3VyY2VDb2RlTG9jYXRpb24gPSBzY3JpcHRPYmplY3QuY3JlYXRl
U291cmNlQ29kZUxvY2F0aW9uKDMsIDApOwotICAgICAgICB2YXIgYnJlYWtwb2ludCA9IG5ldyBX
ZWJJbnNwZWN0b3IuQnJlYWtwb2ludChzb3VyY2VDb2RlTG9jYXRpb24pOwotICAgICAgICBXZWJJ
bnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEJyZWFrcG9pbnQoYnJlYWtwb2ludCk7CisgICAg
bGV0IHBhdXNlcyA9IDA7CiAKLSAgICAgICAgbmV4dFRlc3RDYXNlKCk7CisgICAgZnVuY3Rpb24g
YWRkVGVzdENhc2Uoe25hbWUsIGRlc2NyaXB0aW9uLCBleHByZXNzaW9uLCBzZXR1cH0pIHsKKyAg
ICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICAgICAgbmFtZSwgZGVzY3JpcHRpb24s
CisgICAgICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgeworICAgICAgICAgICAgICAgIGlm
IChzZXR1cCkKKyAgICAgICAgICAgICAgICAgICAgc2V0dXAoKTsKKworICAgICAgICAgICAgICAg
IGV4cHJlc3Npb24gKz0gYDtzZXRUaW1lb3V0KCgpID0+IHsgVGVzdFBhZ2UuZGlzcGF0Y2hFdmVu
dFRvRnJvbnRlbmQoIkFmdGVyVGVzdEZ1bmN0aW9uIik7IH0pYDsKKyAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKGV4cHJlc3Npb24pOworCisgICAgICAgICAgICAg
ICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlBhdXNlZCwgKGV2ZW50KSA9PiB7Cisg
ICAgICAgICAgICAgICAgICAgIGxldCB0YXJnZXREYXRhID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2Vy
TWFuYWdlci5kYXRhRm9yVGFyZ2V0KFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZl
Q2FsbEZyYW1lLnRhcmdldCk7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9n
KCJQQVVTRSAjIiArICgrK3BhdXNlcykpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZygiICBSRUFTT046ICIgKyB0YXJnZXREYXRhLnBhdXNlUmVhc29uKTsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKHRhcmdldERhdGEucGF1c2VEYXRhKQorICAgICAgICAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIiAgREFUQTogIiArIEpTT04uc3RyaW5naWZ5KHNhbml0
aXplUGF1c2VEYXRhKHRhcmdldERhdGEucGF1c2VEYXRhKSkpOworICAgICAgICAgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiICBOTyBE
QVRBIik7CisKKyAgICAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdl
ci5yZXN1bWUoKS5jYXRjaChyZWplY3QpOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKCJBZnRlclRlc3RGdW5jdGlvbiIsIHJlc29sdmUp
OworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRl
YnVnZ2VyTWFuYWdlci5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdn
ZXJNYW5hZ2VyLkV2ZW50LlJlc3VtZWQsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJSRVNVTUVEIik7CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKworICAgIGFkZFRlc3RDYXNlKHsK
KyAgICAgICAgbmFtZTogIkRlYnVnZ2VyLlBhdXNlUmVhc29uLkV4Y2VwdGlvbiIsCisgICAgICAg
IGRlc2NyaXB0aW9uOiAiUGF1c2UgZm9yIGV4Y2VwdGlvbiBzaG91bGQgaGF2ZSBleHBlY3RlZCBw
YXVzZSByZWFzb24uIiwKKyAgICAgICAgZXhwcmVzc2lvbjogYHNldFRpbWVvdXQodHJpZ2dlckV4
Y2VwdGlvbilgLAogICAgIH0pOwogCi0gICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5h
ZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuUGF1c2Vk
LCBmdW5jdGlvbihldmVudCkgewotICAgICAgICBsZXQgdGFyZ2V0RGF0YSA9IFdlYkluc3BlY3Rv
ci5kZWJ1Z2dlck1hbmFnZXIuZGF0YUZvclRhcmdldChXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5h
Z2VyLmFjdGl2ZUNhbGxGcmFtZS50YXJnZXQpOwotICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygi
UEFVU0UgIyIgKyAoKytwYXVzZXMpKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIiAgUkVB
U09OOiAiICsgdGFyZ2V0RGF0YS5wYXVzZVJlYXNvbik7Ci0gICAgICAgIGlmICh0YXJnZXREYXRh
LnBhdXNlRGF0YSkKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCIgIERBVEE6ICIgKyBK
U09OLnN0cmluZ2lmeShzYW5pdGl6ZVBhdXNlRGF0YSh0YXJnZXREYXRhLnBhdXNlRGF0YSkpKTsK
LSAgICAgICAgZWxzZQotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIiAgTk8gREFUQSIp
OworICAgIGFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkRlYnVnZ2VyLlBhdXNlUmVhc29u
LkRlYnVnZ2VyU3RhdGVtZW50IiwKKyAgICAgICAgZGVzY3JpcHRpb246ICJQYXVzZSBmb3IgZGVi
dWdnZXIgc3RhdGVtZW50IHNob3VsZCBoYXZlIGV4cGVjdGVkIHBhdXNlIHJlYXNvbi4iLAorICAg
ICAgICBleHByZXNzaW9uOiAic2V0VGltZW91dCh0cmlnZ2VyRGVidWdnZXJTdGF0ZW1lbnQpIiwK
KyAgICB9KTsKIAotICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnJlc3VtZSgp
OworICAgIGFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkRlYnVnZ2VyLlBhdXNlUmVhc29u
LkFzc2VydGlvbiIsCisgICAgICAgIGRlc2NyaXB0aW9uOiAiUGF1c2UgZm9yIGFzc2VydGlvbiBz
aG91bGQgaGF2ZSBleHBlY3RlZCBwYXVzZSByZWFzb24uIiwKKyAgICAgICAgZXhwcmVzc2lvbjog
InNldFRpbWVvdXQodHJpZ2dlckFzc2VydCkiLAogICAgIH0pOwogCi0gICAgV2ViSW5zcGVjdG9y
LmRlYnVnZ2VyTWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1h
bmFnZXIuRXZlbnQuUmVzdW1lZCwgZnVuY3Rpb24oZXZlbnQpIHsKLSAgICAgICAgSW5zcGVjdG9y
VGVzdC5sb2coIlJFU1VNRUQiKTsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIiIpOworICAg
IGFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkRlYnVnZ2VyLlBhdXNlUmVhc29uLkJyZWFr
cG9pbnQiLAorICAgICAgICBkZXNjcmlwdGlvbjogIlBhdXNlIGZvciBicmVha3BvaW50IHNob3Vs
ZCBoYXZlIGV4cGVjdGVkIHBhdXNlIHJlYXNvbi4iLAorICAgICAgICBleHByZXNzaW9uOiAic2V0
VGltZW91dCh0cmlnZ2VyQnJlYWtwb2ludCkiLAorICAgIH0pOwogCi0gICAgICAgIG5leHRUZXN0
Q2FzZSgpOworICAgIGFkZFRlc3RDYXNlKHsKKyAgICAgICAgbmFtZTogIkRlYnVnZ2VyLlBhdXNl
UmVhc29uLlBhdXNlSW1tZWRpYXRlbHkiLAorICAgICAgICBkZXNjcmlwdGlvbjogIlBhdXNlIGZv
ciBEZWJ1Z2dlci5wYXVzZSBjb21tYW5kIHNob3VsZCBoYXZlIGV4cGVjdGVkIHBhdXNlIHJlYXNv
bi4iLAorICAgICAgICBleHByZXNzaW9uOiAic2V0VGltZW91dCgoKSA9PiB7IDEgKyAxIH0pIiwK
KyAgICAgICAgc2V0dXAoKSB7IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIucGF1c2UoKTsg
fSwKICAgICB9KTsKIAotICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZSgpOworICAgIHN1aXRl
LnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+Ci0gICAgPHA+VGVzdCB0aGF0IHBhdXNpbmcgaW4gZGlmZmVyZW50
IHdheXMgdHJpZ2dlcnMgZGlmZmVyZW50IHBhdXNlIHJlYXNvbnMuPC9wPgorPHA+VGVzdCB0aGF0
IHBhdXNpbmcgaW4gZGlmZmVyZW50IHdheXMgdHJpZ2dlcnMgZGlmZmVyZW50IHBhdXNlIHJlYXNv
bnMuPC9wPgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RlYnVnZ2VyL3BhdXNlZC1zY29wZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3BhdXNlZC1zY29wZXMtZXhwZWN0ZWQudHh0CmluZGV4IGVlZGU5ZmUu
LmE3ZjI4ZTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9wYXVz
ZWQtc2NvcGVzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvcGF1c2VkLXNjb3Blcy1leHBlY3RlZC50eHQKQEAgLTMzMiwzICszMzIsNSBAQCBDQUxMRlJB
TUU6IGVudHJ5CiAgIFNDT1BFOiBOYW1lICgpIC0gVHlwZSAoR2xvYmFsKSAtIEhhc2ggKCkKIAog
CistLSBSdW5uaW5nIHRlc3QgY2FzZTogUGF1c2VkQ2FsbEZyYW1lU2NvcGUuQ29tcGxldGUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3BhdXNlZC1zY29wZXMu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9wYXVzZWQtc2NvcGVzLmh0bWwK
aW5kZXggN2RjODhhNS4uYjA3NzA5MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3BhdXNlZC1zY29wZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvcGF1c2VkLXNjb3Blcy5odG1sCkBAIC04Niw5ICs4Niw5IEBAIGZ1bmN0aW9uIHRl
c3QoKQogICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKICAgICAgICAgbmFtZTogIlBhdXNlZENhbGxG
cmFtZVNjb3BlLlRyaWdnZXJGaXJzdFBhdXNlIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJEdW1w
IENhbGxGcmFtZXMgYW5kIFNjb3BlcyB3aXRoIHRoZSBmaXJzdCBwYXVzZS4iLAotICAgICAgICB0
ZXN0OiAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0
KSB7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmV2YWx1YXRlSW5QYWdlKCJzZXRUaW1lb3V0
KGVudHJ5KSIpOwotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5zaW5n
bGVGaXJlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyLkV2ZW50LkNh
bGxGcmFtZXNEaWRDaGFuZ2UsIChldmVudCkgPT4geworICAgICAgICAgICAgV2ViSW5zcGVjdG9y
LmRlYnVnZ2VyTWFuYWdlci5zaW5nbGVGaXJlRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVi
dWdnZXJNYW5hZ2VyLkV2ZW50LlBhdXNlZCwgKGV2ZW50KSA9PiB7CiAgICAgICAgICAgICAgICAg
ZHVtcENhbGxGcmFtZXMoKS50aGVuKHJlc29sdmUsIHJlamVjdCk7CiAgICAgICAgICAgICB9KTsK
ICAgICAgICAgfQpAQCAtOTcsMTMgKzk3LDEwIEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHN1aXRl
LmFkZFRlc3RDYXNlKHsKICAgICAgICAgbmFtZTogIlBhdXNlZENhbGxGcmFtZVNjb3BlLlRyaWdn
ZXJTZWNvbmRQYXVzZSIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiRHVtcCBDYWxsRnJhbWVzIGFu
ZCBTY29wZXMgd2l0aCB0aGUgc2Vjb25kIHBhdXNlLiIsCi0gICAgICAgIHRlc3Q6IChyZXNvbHZl
LCByZWplY3QpID0+IHsKKyAgICAgICAgdGVzdChyZXNvbHZlLCByZWplY3QpIHsKICAgICAgICAg
ICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIucmVzdW1lKCk7Ci0gICAgICAgICAgICBX
ZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnNpbmdsZUZpcmVFdmVudExpc3RlbmVyKFdlYklu
c3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuQ2FsbEZyYW1lc0RpZENoYW5nZSwgKGV2ZW50
KSA9PiB7Ci0gICAgICAgICAgICAgICAgZHVtcENhbGxGcmFtZXMoKS50aGVuKCgpID0+IHsKLSAg
ICAgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5yZXN1bWUoKTsK
LSAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOwotICAgICAgICAgICAgICAgIH0sIHJlamVj
dCk7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnNpbmdsZUZpcmVF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuUGF1c2VkLCAo
ZXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICBkdW1wQ2FsbEZyYW1lcygpLnRoZW4ocmVzb2x2
ZSwgcmVqZWN0KTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAgICAgfSk7CkBAIC0xMTEs
MTcgKzEwOCwyMSBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CiAg
ICAgICAgIG5hbWU6ICJQYXVzZWRDYWxsRnJhbWVTY29wZS5UcmlnZ2VyVGhpcmRQYXVzZSIsCiAg
ICAgICAgIGRlc2NyaXB0aW9uOiAiRHVtcCBDYWxsRnJhbWVzIGFuZCBTY29wZXMgd2l0aCB0aGUg
dGhpcmQgcGF1c2UuIiwKLSAgICAgICAgdGVzdDogKHJlc29sdmUsIHJlamVjdCkgPT4geworICAg
ICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRl
YnVnZ2VyTWFuYWdlci5yZXN1bWUoKTsKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dl
ck1hbmFnZXIuc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFu
YWdlci5FdmVudC5DYWxsRnJhbWVzRGlkQ2hhbmdlLCAoZXZlbnQpID0+IHsKLSAgICAgICAgICAg
ICAgICBkdW1wQ2FsbEZyYW1lcygpLnRoZW4oKCkgPT4gewotICAgICAgICAgICAgICAgICAgICBX
ZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLnJlc3VtZSgpOwotICAgICAgICAgICAgICAgICAg
ICByZXNvbHZlKCk7Ci0gICAgICAgICAgICAgICAgfSwgcmVqZWN0KTsKKyAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuc2luZ2xlRmlyZUV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5QYXVzZWQsIChldmVudCkgPT4geworICAgICAg
ICAgICAgICAgIGR1bXBDYWxsRnJhbWVzKCkudGhlbihyZXNvbHZlLCByZWplY3QpOwogICAgICAg
ICAgICAgfSk7CiAgICAgICAgIH0KICAgICB9KTsKIAorICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsK
KyAgICAgICAgbmFtZTogIlBhdXNlZENhbGxGcmFtZVNjb3BlLkNvbXBsZXRlIiwKKyAgICAgICAg
dGVzdChyZXNvbHZlLCByZWplY3QpIHsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dl
ck1hbmFnZXIucmVzdW1lKCkudGhlbihyZXNvbHZlLCByZWplY3QpOworICAgICAgICB9CisgICAg
fSk7CisKICAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKIH0KIDwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlcy9leGNl
cHRpb25zLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Jlc291cmNlcy9leGNl
cHRpb25zLmpzCmluZGV4IGY1ZDM4ZTUuLjkzMjMzMjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9yZXNvdXJjZXMvZXhjZXB0aW9ucy5qcworKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvcmVzb3VyY2VzL2V4Y2VwdGlvbnMuanMKQEAgLTY4LDQg
KzY4LDYgQEAgZnVuY3Rpb24gbmVzdGVkQ2F0Y2hCbG9ja3MoKQogICAgICAgICB9CiAgICAgICAg
IGNvbnNvbGUubG9nKGUxKTsKICAgICB9CisKKyAgICBUZXN0UGFnZS5kaXNwYXRjaEV2ZW50VG9G
cm9udGVuZCgiQWZ0ZXJUZXN0RnVuY3Rpb24iKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRQYXJzZWQuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9zY3JpcHRQYXJzZWQuaHRtbAppbmRleCBmNjc3MTAxLi5kNGY4ZjM4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0UGFyc2VkLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdFBhcnNlZC5odG1s
CkBAIC01OSw3ICs1OSw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgc3VpdGUuYWRkVGVzdENh
c2UoewogICAgICAgICBuYW1lOiAiRW5hYmxlRGVidWdnZXJEb21haW5BbmRDaGVja0luaXRpYWxT
Y3JpcHRzIiwKLSAgICAgICAgdGVzdDogKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICB0
ZXN0KHJlc29sdmUsIHJlamVjdCkgewogCiAgICAgICAgICAgICBsZXQgaW5pdGlhbFNjcmlwdFBh
cnNlZE1lc3NhZ2VzID0gW107CiAgICAgICAgICAgICBsZXQgcmVjZWl2aW5nSW5pdGlhbFNjcmlw
dHMgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Nv
dXJjZVVSTC1yZXBlYXRlZC1pZGVudGljYWwtZXhlY3V0aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2RlYnVnZ2VyL3NvdXJjZVVSTC1yZXBlYXRlZC1pZGVudGljYWwtZXhlY3V0aW9u
cy5odG1sCmluZGV4IGMyNDNkMDIuLjIzZTkzYzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9zb3VyY2VVUkwtcmVwZWF0ZWQtaWRlbnRpY2FsLWV4ZWN1dGlvbnMu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc291cmNlVVJMLXJlcGVh
dGVkLWlkZW50aWNhbC1leGVjdXRpb25zLmh0bWwKQEAgLTM3LDcgKzM3LDcgQEAgZnVuY3Rpb24g
dGVzdCgpCiAgICAgc3VpdGUuYWRkVGVzdENhc2UoewogICAgICAgICBuYW1lOiAiQ2hlY2tGdW5j
dGlvbkNvbnN0cnVjdG9yTXVsdGlwbGVUaW1lcyIsCiAgICAgICAgIGRlc2NyaXB0aW9uOiAiVHJp
Z2dlciBtdWx0aXBsZSBGdW5jdGlvbiBjb25zdHJ1Y3RvciBjYWxscyB3aXRoIHRoZSBzYW1lIHNv
dXJjZSBhbmQgZXhwZWN0IG11bHRpcGxlIFNjcmlwdHMgYWRkZWQgd2l0aCBzb3VyY2VVUkxzLiIs
Ci0gICAgICAgIHRlc3Q6IChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgdGVzdChyZXNv
bHZlLCByZWplY3QpIHsKICAgICAgICAgICAgIGxldCBzZWVuID0gMDsKICAgICAgICAgICAgIFdl
Ykluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
RGVidWdnZXJNYW5hZ2VyLkV2ZW50LlNjcmlwdEFkZGVkLCAoZXZlbnQpID0+IHsKICAgICAgICAg
ICAgICAgICBpZiAoZXZlbnQuZGF0YS5zY3JpcHQuc291cmNlVVJMID09PSAidGVzdC1GdW5jdGlv
bi1jb25zdHJ1Y3Rvci5qcyIpCkBAIC01Myw3ICs1Myw3IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAg
IHN1aXRlLmFkZFRlc3RDYXNlKHsKICAgICAgICAgbmFtZTogIkNoZWNrUHJvZ3JhbU11bHRpcGxl
VGltZXMiLAogICAgICAgICBkZXNjcmlwdGlvbjogIlRyaWdnZXIgbXVsdGlwbGUgcHJvZ3JhbSBl
eGVjdXRpb25zIHdpdGggdGhlIHNhbWUgc291cmNlIGFuZCBleHBlY3QgbXVsdGlwbGUgU2NyaXB0
cyBhZGRlZCB3aXRoIHNvdXJjZVVSTHMuIiwKLSAgICAgICAgdGVzdDogKHJlc29sdmUsIHJlamVj
dCkgPT4geworICAgICAgICB0ZXN0KHJlc29sdmUsIHJlamVjdCkgewogICAgICAgICAgICAgbGV0
IHNlZW4gPSAwOwogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTWFuYWdlci5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1hbmFnZXIuRXZlbnQuU2NyaXB0QWRk
ZWQsIChldmVudCkgPT4gewogICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLnNjcmlwdC5z
b3VyY2VVUkwgPT09ICJ0ZXN0LXByb2dyYW0uanMiKQpAQCAtNjksNyArNjksNyBAQCBmdW5jdGlv
biB0ZXN0KCkKICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CiAgICAgICAgIG5hbWU6ICJDaGVja0V2
YWxNdWx0aXBsZVRpbWVzIiwKICAgICAgICAgZGVzY3JpcHRpb246ICJUcmlnZ2VyIGV2YWwgd2l0
aCB0aGUgc2FtZSBzb3VyY2UgYW5kIGV4cGVjdCBtdWx0aXBsZSBTY3JpcHRzIGFkZGVkIHdpdGgg
c291cmNlVVJMcy4iLAotICAgICAgICB0ZXN0OiAocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAg
ICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICAgICAgICAgICBsZXQgc2VlbiA9IDA7CiAg
ICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIo
V2ViSW5zcGVjdG9yLkRlYnVnZ2VyTWFuYWdlci5FdmVudC5TY3JpcHRBZGRlZCwgKGV2ZW50KSA9
PiB7CiAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEuc2NyaXB0LnNvdXJjZVVSTCA9PT0g
InRlc3QtZXZhbC5qcyIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvc291cmNlVVJMcy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NvdXJj
ZVVSTHMuaHRtbAppbmRleCA2Nzc1ZWI3Li45Y2MxZjhjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvc291cmNlVVJMcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9zb3VyY2VVUkxzLmh0bWwKQEAgLTMwLDcgKzMwLDcgQEAgZnVuY3Rp
b24gdGVzdCgpCiAKICAgICBzdWl0ZS5hZGRUZXN0Q2FzZSh7CiAgICAgICAgIG5hbWU6ICJUZXN0
RXhwcmVzc2lvbnNGb3JTb3VyY2VVUkwiLAotICAgICAgICB0ZXN0OiAocmVzb2x2ZSwgcmVqZWN0
KSA9PiB7CisgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICAgICAgICAgICBmb3Ig
KGxldCBleHByZXNzaW9uIG9mIGV4cHJlc3Npb25zKQogICAgICAgICAgICAgICAgIFByb3RvY29s
VGVzdC5ldmFsdWF0ZUluUGFnZShleHByZXNzaW9uKTsKIApAQCAtNTQsNyArNTQsNyBAQCBmdW5j
dGlvbiB0ZXN0KCkKIAogICAgIHN1aXRlLmFkZFRlc3RDYXNlKHsKICAgICAgICAgbmFtZTogIlRl
c3RFeHByZXNzaW9uc0ZvclNvdXJjZU1hcHBpbmdVUkwiLAotICAgICAgICB0ZXN0OiAocmVzb2x2
ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgIHRlc3QocmVzb2x2ZSwgcmVqZWN0KSB7CiAgICAgICAg
ICAgICAvLyBSZXdyaXRlIHRoZSAic291cmNlVVJMIiB0byAic291cmNlTWFwcGluZ1VSTCIgaW4g
dGhlIG9yaWdpbmFsIGV4cHJlc3Npb25zLgogICAgICAgICAgICAgZm9yIChsZXQgZXhwcmVzc2lv
biBvZiBleHByZXNzaW9ucykKICAgICAgICAgICAgICAgICBQcm90b2NvbFRlc3QuZXZhbHVhdGVJ
blBhZ2UoZXhwcmVzc2lvbi5yZXBsYWNlKC9zb3VyY2VVUkwvZywgInNvdXJjZU1hcHBpbmdVUkwi
KSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc3RlcHBpbmcv
c3RlcHBpbmctcGF1c2UtaW4taW5uZXItc3RlcC10by1wYXJlbnQuaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9zdGVwcGluZy9zdGVwcGluZy1wYXVzZS1pbi1pbm5lci1zdGVw
LXRvLXBhcmVudC5odG1sCmluZGV4IDFkNGVkYzIuLmU4ZTk2NzMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zdGVwcGluZy9zdGVwcGluZy1wYXVzZS1pbi1pbm5l
ci1zdGVwLXRvLXBhcmVudC5odG1sCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9zdGVwcGluZy9zdGVwcGluZy1wYXVzZS1pbi1pbm5lci1zdGVwLXRvLXBhcmVudC5odG1sCkBA
IC0xNiw4ICsxNiw2IEBAIGZ1bmN0aW9uIHBhdXNlKCkgewogCiBmdW5jdGlvbiB0ZXN0KCkKIHsK
LSAgICBJbnNwZWN0b3JUZXN0LmRlYnVnKCk7Ci0KICAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JU
ZXN0LmNyZWF0ZUFzeW5jU3VpdGUoIkRlYnVnZ2VyLnN0ZXBwaW5nLmlubmVyLXRvLW91dGVyIik7
CiAKICAgICB3aW5kb3cuaW5pdGlhbGl6ZVN0ZXBwaW5nVGVzdFN1aXRlKHN1aXRlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nCmluZGV4IGIxZGNiMzYuLmZkZjc1Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE2LTExLTA4ICBKb3NlcGggUGVjb3Jhcm8gIDxw
ZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogRGVidWdnZXJNYW5h
Z2VyLkV2ZW50LlJlc3VtZWQgaW50cm9kdWNlcyB0ZXN0IGZsYWtpbmVzcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYxOTUxCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8yODI5NTc2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworCisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50
Lmg6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNw
cDoKKyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6Y29udGludWVU
b0xvY2F0aW9uKToKKyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6
c3RlcE92ZXIpOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50Ojpz
dGVwSW50byk6CisgICAgICAgIChJbnNwZWN0b3I6Okluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnN0
ZXBPdXQpOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50Ojp3aWxs
U3RlcEFuZE1heUJlY29tZUlkbGUpOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JEZWJ1
Z2dlckFnZW50OjpkaWRCZWNvbWVJZGxlQWZ0ZXJTdGVwcGluZyk6CisgICAgICAgIFdoZW4gc3Rl
cHBpbmcgcmVnaXN0ZXIgYSBWTSBleGl0IG9ic2VydmVyIHNvIHRoYXQgd2UgY2FuIGlzc3VlCisg
ICAgICAgIGEgRGVidWdnZXIucmVzdW1lZCBldmVudCBpZiB0aGUgc3RlcCBjYXVzZWQgdXMgdG8g
ZXhpdCB0aGUgVk0uCisKKyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVjdG9yRGVidWdnZXJBZ2Vu
dDo6cmVzdW1lKToKKyAgICAgICAgU2V0IGEgZmxhZyB0byBpc3N1ZSBhIERlYnVnZ2VyLnJlc3Vt
ZWQgZXZlbnQgb25jZSB3ZSBicmVhayBvdXQKKyAgICAgICAgb2YgdGhlIG5lc3RlZCBydW4gbG9v
cC4KKworICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaWRQYXVz
ZSk6CisgICAgICAgIFdlIGFyZSBpc3N1aW5nIERlYnVnZ2VyLnBhdXNlZCBzbyBjbGVhciB0aGUg
c3RhdGUgdG8gaW5kaWNhdGUgdGhhdAorICAgICAgICB3ZSBubyBsb25nZXIgbmVlZCB0byBpc3N1
ZSBEZWJ1Z2dlci5yZXN1bWVkIGV2ZW50LCB3ZSBoYXZlIHBhdXNlZC4KKworICAgICAgICAoSW5z
cGVjdG9yOjpJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpkaWRDb250aW51ZSk6CisgICAgICAgIE9u
bHkgaXNzdWUgdGhlIERlYnVnZ2VyLnJlc3VtZWQgZXZlbnQgaWYgbmVlZGVkIChleHBsaWNpdGx5
IGFza2VkCisgICAgICAgIHRvIHJlc3VtZSkuCisKKyAgICAgICAgKEluc3BlY3Rvcjo6SW5zcGVj
dG9yRGVidWdnZXJBZ2VudDo6Y2xlYXJEZWJ1Z2dlckJyZWFrcG9pbnRTdGF0ZSk6CisgICAgICAg
IEFsbCBwbGFjZXMgdGhhdCBkbyBjb250aW51ZVByb2dyYW0gc2hvdWxkIGJlIGF1ZGl0ZWQuIElu
IGVycm9yIGNhc2VzLAorICAgICAgICBpZiB3ZSBhcmUgcGF1c2VkIGFuZCBjb250aW51ZSB3ZSBz
aG91bGQgcmVtZW1iZXIgdG8gc2VuZCBEZWJ1Z2dlci5yZXN1bWVkLgorCisgICAgICAgICogaW5z
cGVjdG9yL3Byb3RvY29sL0RlYnVnZ2VyLmpzb246CisgICAgICAgIENsYXJpZnkgaW4gdGhlIHBy
b3RvY29sIGRlc2NyaXB0aW9uIHRoZSBjb250cmFjdCBvZiB0aGVzZSBtZXRob2RzLgorCiAyMDE2
LTExLTA0ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAg
V2ViIEluc3BlY3RvcjogQXNzb2NpYXRlIFdvcmtlciBSZXNvdXJjZXMgd2l0aCB0aGUgV29ya2Vy
IGFuZCBub3QgdGhlIFBhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZWJ1
Z2dlci9EZWJ1Z2dlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGVidWdnZXIvRGVidWdn
ZXIuY3BwCmluZGV4IGE0M2ZhMjQuLjhiMjAyMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZWJ1Z2dlci9EZWJ1Z2dlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RlYnVnZ2VyL0RlYnVnZ2VyLmNwcApAQCAtMzQsNyArMzQsNiBAQAogI2luY2x1ZGUgIk1hcmtl
ZFNwYWNlSW5saW5lcy5oIgogI2luY2x1ZGUgIlBhcnNlci5oIgogI2luY2x1ZGUgIlByb3RlY3Qu
aCIKLSNpbmNsdWRlICJWTUVudHJ5U2NvcGUuaCIKIAogbmFtZXNwYWNlIHsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdn
ZXJBZ2VudC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JEZWJ1Z2dlckFnZW50LmNwcAppbmRleCBmNjg4MjQ5Li42NTY5MGM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9J
bnNwZWN0b3JEZWJ1Z2dlckFnZW50LmNwcApAQCAtNDc4LDYgKzQ3OCw5IEBAIHZvaWQgSW5zcGVj
dG9yRGVidWdnZXJBZ2VudDo6cmVtb3ZlQnJlYWtwb2ludChFcnJvclN0cmluZyYsIGNvbnN0IFN0
cmluZyYgYnJlYWtwCiAKIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6Y29udGludWVUb0xv
Y2F0aW9uKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgSW5zcGVjdG9yT2JqZWN0JiBs
b2NhdGlvbikKIHsKKyAgICBpZiAoIWFzc2VydFBhdXNlZChlcnJvclN0cmluZykpCisgICAgICAg
IHJldHVybjsKKwogICAgIGlmIChtX2NvbnRpbnVlVG9Mb2NhdGlvbkJyZWFrcG9pbnRJRCAhPSBK
U0M6Om5vQnJlYWtwb2ludElEKSB7CiAgICAgICAgIG1fc2NyaXB0RGVidWdTZXJ2ZXIucmVtb3Zl
QnJlYWtwb2ludChtX2NvbnRpbnVlVG9Mb2NhdGlvbkJyZWFrcG9pbnRJRCk7CiAgICAgICAgIG1f
Y29udGludWVUb0xvY2F0aW9uQnJlYWtwb2ludElEID0gSlNDOjpub0JyZWFrcG9pbnRJRDsKQEAg
LTQ5Miw2ICs0OTUsNyBAQCB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmNvbnRpbnVlVG9M
b2NhdGlvbihFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0CiAgICAgYXV0byBzY3JpcHRJ
dGVyYXRvciA9IG1fc2NyaXB0cy5maW5kKHNvdXJjZUlEKTsKICAgICBpZiAoc2NyaXB0SXRlcmF0
b3IgPT0gbV9zY3JpcHRzLmVuZCgpKSB7CiAgICAgICAgIG1fc2NyaXB0RGVidWdTZXJ2ZXIuY29u
dGludWVQcm9ncmFtKCk7CisgICAgICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5yZXN1bWVkKCk7
CiAgICAgICAgIGVycm9yU3RyaW5nID0gQVNDSUlMaXRlcmFsKCJObyBzY3JpcHQgZm9yIGlkOiAi
KSArIFN0cmluZzo6bnVtYmVyKHNvdXJjZUlEKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAg
LTUwNCw2ICs1MDgsNyBAQCB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmNvbnRpbnVlVG9M
b2NhdGlvbihFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0CiAgICAgcmVzb2x2ZUJyZWFr
cG9pbnQoc2NyaXB0LCBicmVha3BvaW50KTsKICAgICBpZiAoIWJyZWFrcG9pbnQucmVzb2x2ZWQp
IHsKICAgICAgICAgbV9zY3JpcHREZWJ1Z1NlcnZlci5jb250aW51ZVByb2dyYW0oKTsKKyAgICAg
ICAgbV9mcm9udGVuZERpc3BhdGNoZXItPnJlc3VtZWQoKTsKICAgICAgICAgZXJyb3JTdHJpbmcg
PSBBU0NJSUxpdGVyYWwoIkNvdWxkIG5vdCByZXNvbHZlIGJyZWFrcG9pbnQiKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KQEAgLTUxMiwxMiArNTE3LDE2IEBAIHZvaWQgSW5zcGVjdG9yRGVidWdn
ZXJBZ2VudDo6Y29udGludWVUb0xvY2F0aW9uKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29u
c3QKICAgICBzZXRCcmVha3BvaW50KGJyZWFrcG9pbnQsIGV4aXN0aW5nKTsKICAgICBpZiAoZXhp
c3RpbmcpIHsKICAgICAgICAgbV9zY3JpcHREZWJ1Z1NlcnZlci5jb250aW51ZVByb2dyYW0oKTsK
KyAgICAgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPnJlc3VtZWQoKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAogICAgIG1fY29udGludWVUb0xvY2F0aW9uQnJlYWtwb2ludElEID0gYnJlYWtw
b2ludC5pZDsKIAotICAgIHJlc3VtZShlcnJvclN0cmluZyk7CisgICAgLy8gVHJlYXQgdGhpcyBh
cyBhIHNlcmllcyBvZiBzdGVwcyB1bnRpbCByZWFjaGluZyB0aGUgbmV3IGJyZWFrcG9pbnQuCisg
ICAgLy8gU28gZG9uJ3QgaXNzdWUgYSByZXN1bWVkIGV2ZW50IHVubGVzcyB3ZSBleGl0IHRoZSBW
TSB3aXRob3V0IHBhdXNpbmcuCisgICAgd2lsbFN0ZXBBbmRNYXlCZWNvbWVJZGxlKCk7CisgICAg
bV9zY3JpcHREZWJ1Z1NlcnZlci5jb250aW51ZVByb2dyYW0oKTsgICAgCiB9CiAKIHZvaWQgSW5z
cGVjdG9yRGVidWdnZXJBZ2VudDo6c2VhcmNoSW5Db250ZW50KEVycm9yU3RyaW5nJiBlcnJvciwg
Y29uc3QgU3RyaW5nJiBzY3JpcHRJRFN0ciwgY29uc3QgU3RyaW5nJiBxdWVyeSwgY29uc3QgYm9v
bCogb3B0aW9uYWxDYXNlU2Vuc2l0aXZlLCBjb25zdCBib29sKiBvcHRpb25hbElzUmVnZXgsIFJl
ZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpHZW5l
cmljVHlwZXM6OlNlYXJjaE1hdGNoPj4mIHJlc3VsdHMpCkBAIC01ODgsNiArNTk3LDcgQEAgdm9p
ZCBJbnNwZWN0b3JEZWJ1Z2dlckFnZW50OjpyZXN1bWUoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5n
KQogICAgICAgICByZXR1cm47CiAKICAgICBtX3NjcmlwdERlYnVnU2VydmVyLmNvbnRpbnVlUHJv
Z3JhbSgpOworICAgIG1fc2hvdWxkRGlzcGF0Y2hSZXN1bWVkID0gU2hvdWxkRGlzcGF0Y2hSZXN1
bWVkOjpXaGVuQ29udGludWVkOwogfQogCiB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnN0
ZXBPdmVyKEVycm9yU3RyaW5nJiBlcnJvclN0cmluZykKQEAgLTU5NSw2ICs2MDUsNyBAQCB2b2lk
IEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OnN0ZXBPdmVyKEVycm9yU3RyaW5nJiBlcnJvclN0cmlu
ZykKICAgICBpZiAoIWFzc2VydFBhdXNlZChlcnJvclN0cmluZykpCiAgICAgICAgIHJldHVybjsK
IAorICAgIHdpbGxTdGVwQW5kTWF5QmVjb21lSWRsZSgpOwogICAgIG1fc2NyaXB0RGVidWdTZXJ2
ZXIuc3RlcE92ZXJTdGF0ZW1lbnQoKTsKIH0KIApAQCAtNjAzLDYgKzYxNCw3IEBAIHZvaWQgSW5z
cGVjdG9yRGVidWdnZXJBZ2VudDo6c3RlcEludG8oRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nKQog
ICAgIGlmICghYXNzZXJ0UGF1c2VkKGVycm9yU3RyaW5nKSkKICAgICAgICAgcmV0dXJuOwogCisg
ICAgd2lsbFN0ZXBBbmRNYXlCZWNvbWVJZGxlKCk7CiAgICAgbV9zY3JpcHREZWJ1Z1NlcnZlci5z
dGVwSW50b1N0YXRlbWVudCgpOwogfQogCkBAIC02MTEsOSArNjIzLDM1IEBAIHZvaWQgSW5zcGVj
dG9yRGVidWdnZXJBZ2VudDo6c3RlcE91dChFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcpCiAgICAg
aWYgKCFhc3NlcnRQYXVzZWQoZXJyb3JTdHJpbmcpKQogICAgICAgICByZXR1cm47CiAKKyAgICB3
aWxsU3RlcEFuZE1heUJlY29tZUlkbGUoKTsKICAgICBtX3NjcmlwdERlYnVnU2VydmVyLnN0ZXBP
dXRPZkZ1bmN0aW9uKCk7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6d2lsbFN0
ZXBBbmRNYXlCZWNvbWVJZGxlKCkKK3sKKyAgICAvLyBXaGVuIHN0ZXBwaW5nIHRoZSBiYWNrZW5k
IG11c3QgZXZlbnR1YWxseSB0cmlnZ2VyIGEgInBhdXNlZCIgb3IgInJlc3VtZWQiIGV2ZW50Lgor
ICAgIC8vIElmIHRoZSBzdGVwIGNhdXNlcyB1cyB0byBleGl0IHRoZSBWTSwgdGhlbiB3ZSBzaG91
bGQgaXNzdWUgInJlc3VtZWQiLgorICAgIG1fc2hvdWxkRGlzcGF0Y2hSZXN1bWVkID0gU2hvdWxk
RGlzcGF0Y2hSZXN1bWVkOjpXaGVuSWRsZTsKKworICAgIGlmICghbV9yZWdpc3RlcmVkSWRsZUNh
bGxiYWNrKSB7CisgICAgICAgIG1fcmVnaXN0ZXJlZElkbGVDYWxsYmFjayA9IHRydWU7CisgICAg
ICAgIEpTQzo6Vk0mIHZtID0gbV9zY3JpcHREZWJ1Z1NlcnZlci52bSgpOworICAgICAgICB2bS53
aGVuSWRsZShbdGhpc10oKSB7CisgICAgICAgICAgICBkaWRCZWNvbWVJZGxlQWZ0ZXJTdGVwcGlu
ZygpOworICAgICAgICB9KTsKKyAgICB9Cit9CisKK3ZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2Vu
dDo6ZGlkQmVjb21lSWRsZUFmdGVyU3RlcHBpbmcoKQoreworICAgIG1fcmVnaXN0ZXJlZElkbGVD
YWxsYmFjayA9IGZhbHNlOworCisgICAgaWYgKG1fc2hvdWxkRGlzcGF0Y2hSZXN1bWVkID09IFNo
b3VsZERpc3BhdGNoUmVzdW1lZDo6V2hlbklkbGUpCisgICAgICAgIG1fZnJvbnRlbmREaXNwYXRj
aGVyLT5yZXN1bWVkKCk7CisKKyAgICBtX3Nob3VsZERpc3BhdGNoUmVzdW1lZCA9IFNob3VsZERp
c3BhdGNoUmVzdW1lZDo6Tm87Cit9CisKIHZvaWQgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDo6c2V0
UGF1c2VPbkV4Y2VwdGlvbnMoRXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcm
IHN0cmluZ1BhdXNlU3RhdGUpCiB7CiAgICAgSlNDOjpEZWJ1Z2dlcjo6UGF1c2VPbkV4Y2VwdGlv
bnNTdGF0ZSBwYXVzZVN0YXRlOwpAQCAtODA5LDcgKzg0NywxMCBAQCB2b2lkIEluc3BlY3RvckRl
YnVnZ2VyQWdlbnQ6OmRpZFBhdXNlKEpTQzo6RXhlY1N0YXRlJiBzY3JpcHRTdGF0ZSwgSlNDOjpK
U1ZhbHVlCiAgICAgICAgIG1faGFzRXhjZXB0aW9uVmFsdWUgPSB0cnVlOwogICAgIH0KIAorICAg
IG1fc2hvdWxkRGlzcGF0Y2hSZXN1bWVkID0gU2hvdWxkRGlzcGF0Y2hSZXN1bWVkOjpObzsKKwog
ICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5wYXVzZWQoY3VycmVudENhbGxGcmFtZXMoaW5qZWN0
ZWRTY3JpcHQpLCBtX2JyZWFrUmVhc29uLCBtX2JyZWFrQXV4RGF0YSk7CisKICAgICBtX2phdmFT
Y3JpcHRQYXVzZVNjaGVkdWxlZCA9IGZhbHNlOwogCiAgICAgaWYgKG1fY29udGludWVUb0xvY2F0
aW9uQnJlYWtwb2ludElEICE9IEpTQzo6bm9CcmVha3BvaW50SUQpIHsKQEAgLTg1OSw3ICs5MDAs
OCBAQCB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmRpZENvbnRpbnVlKCkKICAgICBjbGVh
ckJyZWFrRGV0YWlscygpOwogICAgIGNsZWFyRXhjZXB0aW9uVmFsdWUoKTsKIAotICAgIG1fZnJv
bnRlbmREaXNwYXRjaGVyLT5yZXN1bWVkKCk7CisgICAgaWYgKG1fc2hvdWxkRGlzcGF0Y2hSZXN1
bWVkID09IFNob3VsZERpc3BhdGNoUmVzdW1lZDo6V2hlbkNvbnRpbnVlZCkKKyAgICAgICAgbV9m
cm9udGVuZERpc3BhdGNoZXItPnJlc3VtZWQoKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JEZWJ1Z2dl
ckFnZW50OjpicmVha1Byb2dyYW0oRGVidWdnZXJGcm9udGVuZERpc3BhdGNoZXI6OlJlYXNvbiBi
cmVha1JlYXNvbiwgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4mJiBkYXRhKQpAQCAtOTAxLDcgKzk0
MywxMCBAQCB2b2lkIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQ6OmNsZWFyRGVidWdnZXJCcmVha3Bv
aW50U3RhdGUoKQogICAgIG1famF2YVNjcmlwdFBhdXNlU2NoZWR1bGVkID0gZmFsc2U7CiAgICAg
bV9oYXNFeGNlcHRpb25WYWx1ZSA9IGZhbHNlOwogCi0gICAgbV9zY3JpcHREZWJ1Z1NlcnZlci5j
b250aW51ZVByb2dyYW0oKTsKKyAgICBpZiAoaXNQYXVzZWQoKSkgeworICAgICAgICBtX3Njcmlw
dERlYnVnU2VydmVyLmNvbnRpbnVlUHJvZ3JhbSgpOworICAgICAgICBtX2Zyb250ZW5kRGlzcGF0
Y2hlci0+cmVzdW1lZCgpOyAgICAgICAgCisgICAgfQogfQogCiB2b2lkIEluc3BlY3RvckRlYnVn
Z2VyQWdlbnQ6OmRpZENsZWFyR2xvYmFsT2JqZWN0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdlbnQuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckRlYnVnZ2VyQWdl
bnQuaAppbmRleCA5OTlhOTk5Li44YTU0YjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yRGVidWdnZXJBZ2Vu
dC5oCkBAIC0xNDEsNiArMTQxLDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBjbGVhckJyZWFrRGV0
YWlscygpOwogICAgIHZvaWQgY2xlYXJFeGNlcHRpb25WYWx1ZSgpOwogCisgICAgZW51bSBjbGFz
cyBTaG91bGREaXNwYXRjaFJlc3VtZWQgeyBObywgV2hlbklkbGUsIFdoZW5Db250aW51ZWQgfTsK
KyAgICB2b2lkIHdpbGxTdGVwQW5kTWF5QmVjb21lSWRsZSgpOworICAgIHZvaWQgZGlkQmVjb21l
SWRsZUFmdGVyU3RlcHBpbmcoKTsKKwogICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxk
QnJlYWtwb2ludFBhdXNlUmVhc29uKEpTQzo6QnJlYWtwb2ludElEKTsKICAgICBSZWZQdHI8SW5z
cGVjdG9yT2JqZWN0PiBidWlsZEV4Y2VwdGlvblBhdXNlUmVhc29uKEpTQzo6SlNWYWx1ZSBleGNl
cHRpb24sIGNvbnN0IEluamVjdGVkU2NyaXB0Jik7CiAKQEAgLTE2NSwxMSArMTY5LDEzIEBAIHBy
aXZhdGU6CiAgICAgSlNDOjpCcmVha3BvaW50SUQgbV9jb250aW51ZVRvTG9jYXRpb25CcmVha3Bv
aW50SUQ7CiAgICAgRGVidWdnZXJGcm9udGVuZERpc3BhdGNoZXI6OlJlYXNvbiBtX2JyZWFrUmVh
c29uOwogICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IG1fYnJlYWtBdXhEYXRhOworICAgIFNo
b3VsZERpc3BhdGNoUmVzdW1lZCBtX3Nob3VsZERpc3BhdGNoUmVzdW1lZCB7IFNob3VsZERpc3Bh
dGNoUmVzdW1lZDo6Tm8gfTsKICAgICBib29sIG1fZW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9v
bCBtX2phdmFTY3JpcHRQYXVzZVNjaGVkdWxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhc0V4
Y2VwdGlvblZhbHVlIHsgZmFsc2UgfTsKICAgICBib29sIG1fZGlkUGF1c2VTdG9wd2F0Y2ggeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9wYXVzZU9uQXNzZXJ0aW9uRmFpbHVyZXMgeyBmYWxzZSB9Owor
ICAgIGJvb2wgbV9yZWdpc3RlcmVkSWRsZUNhbGxiYWNrIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIEluc3BlY3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAKaW5kZXgg
YjUwMTI5Yy4uMzRlODg1MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCkBAIC00
NSw3ICs0NSw2IEBACiAjaW5jbHVkZSAiU291cmNlQ29kZS5oIgogI2luY2x1ZGUgIlR5cGVQcm9m
aWxlci5oIgogI2luY2x1ZGUgIlR5cGVQcm9maWxlckxvZy5oIgotI2luY2x1ZGUgIlZNRW50cnlT
Y29wZS5oIgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCiB1c2luZyBuYW1lc3BhY2Ug
SlNDOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2Nv
bC9EZWJ1Z2dlci5qc29uIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9wcm90b2Nv
bC9EZWJ1Z2dlci5qc29uCmluZGV4IDgyZTQyZDYuLmU1OGQyM2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvcHJvdG9jb2wvRGVidWdnZXIuanNvbgorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL3Byb3RvY29sL0RlYnVnZ2VyLmpzb24KQEAg
LTE4MSwxOSArMTgxLDE5IEBACiAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImxvY2F0aW9uIiwgIiRyZWYiOiAiTG9jYXRpb24iLCAiZGVzY3Jp
cHRpb24iOiAiTG9jYXRpb24gdG8gY29udGludWUgdG8uIiB9CiAgICAgICAgICAgICBdLAotICAg
ICAgICAgICAgImRlc2NyaXB0aW9uIjogIkNvbnRpbnVlcyBleGVjdXRpb24gdW50aWwgc3BlY2lm
aWMgbG9jYXRpb24gaXMgcmVhY2hlZC4iCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQ29u
dGludWVzIGV4ZWN1dGlvbiB1bnRpbCBzcGVjaWZpYyBsb2NhdGlvbiBpcyByZWFjaGVkLiBUaGlz
IHdpbGwgdHJpZ2dlciBlaXRoZXIgYSBEZWJ1Z2dlci5wYXVzZWQgb3IgRGVidWdnZXIucmVzdW1l
ZCBldmVudC4iCiAgICAgICAgIH0sCiAgICAgICAgIHsKICAgICAgICAgICAgICJuYW1lIjogInN0
ZXBPdmVyIiwKLSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJTdGVwcyBvdmVyIHRoZSBzdGF0
ZW1lbnQuIgorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlN0ZXBzIG92ZXIgdGhlIHN0YXRl
bWVudC4gVGhpcyB3aWxsIHRyaWdnZXIgZWl0aGVyIGEgRGVidWdnZXIucGF1c2VkIG9yIERlYnVn
Z2VyLnJlc3VtZWQgZXZlbnQuIgogICAgICAgICB9LAogICAgICAgICB7CiAgICAgICAgICAgICAi
bmFtZSI6ICJzdGVwSW50byIsCi0gICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiU3RlcHMgaW50
byB0aGUgZnVuY3Rpb24gY2FsbC4iCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiU3RlcHMg
aW50byB0aGUgZnVuY3Rpb24gY2FsbC4gVGhpcyB3aWxsIHRyaWdnZXIgZWl0aGVyIGEgRGVidWdn
ZXIucGF1c2VkIG9yIERlYnVnZ2VyLnJlc3VtZWQgZXZlbnQuIgogICAgICAgICB9LAogICAgICAg
ICB7CiAgICAgICAgICAgICAibmFtZSI6ICJzdGVwT3V0IiwKLSAgICAgICAgICAgICJkZXNjcmlw
dGlvbiI6ICJTdGVwcyBvdXQgb2YgdGhlIGZ1bmN0aW9uIGNhbGwuIgorICAgICAgICAgICAgImRl
c2NyaXB0aW9uIjogIlN0ZXBzIG91dCBvZiB0aGUgZnVuY3Rpb24gY2FsbC4gVGhpcyB3aWxsIHRy
aWdnZXIgZWl0aGVyIGEgRGVidWdnZXIucGF1c2VkIG9yIERlYnVnZ2VyLnJlc3VtZWQgZXZlbnQu
IgogICAgICAgICB9LAogICAgICAgICB7CiAgICAgICAgICAgICAibmFtZSI6ICJwYXVzZSIsCkBA
IC0yMDEsNyArMjAxLDcgQEAKICAgICAgICAgfSwKICAgICAgICAgewogICAgICAgICAgICAgIm5h
bWUiOiAicmVzdW1lIiwKLSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXN1bWVzIEphdmFT
Y3JpcHQgZXhlY3V0aW9uLiIKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXN1bWVzIEph
dmFTY3JpcHQgZXhlY3V0aW9uLiBUaGlzIHdpbGwgdHJpZ2dlciBhIERlYnVnZ2VyLnJlc3VtZWQg
ZXZlbnQuIgogICAgICAgICB9LAogICAgICAgICB7CiAgICAgICAgICAgICAibmFtZSI6ICJzZWFy
Y2hJbkNvbnRlbnQiLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGI1ZDhiNDUuLmM4YWQ2MjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMiBAQAorMjAxNi0xMS0wOCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9A
YXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IERlYnVnZ2VyTWFuYWdlci5FdmVu
dC5SZXN1bWVkIGludHJvZHVjZXMgdGVzdCBmbGFraW5lc3MKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MTk1MQorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMjgyOTU3Njc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cyB0aGF0IHdvdWxkIEFTU0VSVCBvdGhlcndp
c2UuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckNsaWVudDo6ZG9EaXNwYXRjaE1lc3NhZ2VPbkZyb250ZW5kUGFn
ZSk6CisgICAgICAgIFdoZW4gcGF1c2VkIG9uIGFuIGV4Y2VwdGlvbiBpbiB0aGUgaW5zcGVjdGVk
IHBhZ2UgYW5kIGV2YWx1YXRpbmcKKyAgICAgICAgY29tbWFuZHMgaW4gdGhlIGluc3BlY3RvciBm
cm9udGVuZCBwYWdlICh3aGljaCBldmFsdWF0ZXMgSmF2YVNjcmlwdCkKKyAgICAgICAgd2UgQVNT
RVJUIHdoZW4gZW50ZXJpbmcgdGhlIEdsb2JhbCBET00gVk0gd2l0aCBhbiBleGlzdGluZyBleGNl
cHRpb24uCisgICAgICAgIFRoaXMgbWFrZXMgaXQgc28gd2hlbiB3ZSBldmFsdWF0ZSBKYXZhU2Ny
aXB0IGluIHRoZSBmcm9udGVuZCB3ZQorICAgICAgICBzdXNwZW5kIC8gaWdub3JlIHRoZSBzdGF0
ZSBvZiB0aGUgVk0gZm9yIHRoZSBpbnNwZWN0ZWQgcGFnZSwgYW5kCisgICAgICAgIHJlc3RvcmUg
aXQgd2hlbiB3ZSByZXR1cm4gZnJvbSB0aGUgaW5zcGVjdG9yLgorCiAyMDE2LTExLTA0ICBKb3Nl
cGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogQXNzb2NpYXRlIFdvcmtlciBSZXNvdXJjZXMgd2l0aCB0aGUgV29ya2VyIGFuZCBub3QgdGhl
IFBhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDbGll
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5jcHAKaW5k
ZXggNGFlNzYzZC4uMjFlZTJiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckNsaWVudC5jcHAKQEAgLTMxLDExICszMSwxNCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkluc3BlY3RvckNsaWVudC5oIgogCisjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJv
bGxlci5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNs
dWRlICJTY3JpcHRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgor
I2luY2x1ZGUgPGludGVycHJldGVyL0ZyYW1lVHJhY2Vycy5oPgogCit1c2luZyBuYW1lc3BhY2Ug
SlNDOwogdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtNDUsNiArNDgsNyBAQCB2b2lkIEluc3BlY3RvckNsaWVudDo6ZG9EaXNwYXRjaE1lc3NhZ2VP
bkZyb250ZW5kUGFnZShQYWdlKiBmcm9udGVuZFBhZ2UsIGNvbnN0CiAgICAgaWYgKCFmcm9udGVu
ZFBhZ2UpCiAgICAgICAgIHJldHVybjsKIAorICAgIFN1c3BlbmRFeGNlcHRpb25TY29wZSBzY29w
ZSgmZnJvbnRlbmRQYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCkudm0oKSk7CiAgICAgU3RyaW5n
IGRpc3BhdGNoVG9Gcm9udGVuZCA9IG1ha2VTdHJpbmcoIkluc3BlY3RvckZyb250ZW5kQVBJLmRp
c3BhdGNoTWVzc2FnZUFzeW5jKCIsIG1lc3NhZ2UsICIpOyIpOwogICAgIGZyb250ZW5kUGFnZS0+
bWFpbkZyYW1lKCkuc2NyaXB0KCkuZXZhbHVhdGUoU2NyaXB0U291cmNlQ29kZShkaXNwYXRjaFRv
RnJvbnRlbmQpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDY3YWY1ODkuLjNjOWVh
ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDE2LTExLTA4
ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogRGVidWdnZXJNYW5hZ2VyLkV2ZW50LlJlc3VtZWQgaW50cm9kdWNlcyB0ZXN0IGZs
YWtpbmVzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTYxOTUxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yODI5NTc2Nz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJv
bGxlcnMvRGVidWdnZXJNYW5hZ2VyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2Vy
TWFuYWdlci5wcm90b3R5cGUuZGVidWdnZXJEaWRSZXN1bWUpOgorICAgICAgICBOb3csIERlYnVn
Z2VyLnJlc3VtZWQgZXZlbnRzIHJlYWxseSBtZWFuIHRoZSBkZWJ1Z2dlciByZXN1bWVkLAorICAg
ICAgICBzbyBhY3QgaW1tZWRpYXRlbHkgaW5zdGVhZCBvZiBndWVzc2luZy4gV2UgbXVzdCBzdGls
bCBndWVzcworICAgICAgICBpbiBsZWdhY3kgYmFja2VuZHMuCisKKyAgICAgICAgKiBVc2VySW50
ZXJmYWNlL1Rlc3QvVGVzdC5qczoKKyAgICAgICAgV2hlbiB0aGUgaW5zcGVjdG9yIGZyb250ZW5k
IGVuY291bnRlcnMgYW4gaXNzdWUsIGxvZyBpdC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2Uv
Vmlld3MvRGVidWdnZXJTaWRlYmFyUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVi
dWdnZXJTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9kZWJ1Z2dlckRpZFBhdXNlKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbC5wcm90b3R5cGUuX2RlYnVnZ2VyQWN0
aXZlQ2FsbEZyYW1lRGlkQ2hhbmdlKToKKyAgICAgICAgQWx3YXlzIGVuYWJsZSB0aGUgc3RlcCBv
dXQgYnV0dG9uLiBJIGRvbid0IHRoaW5rIGl0IG1ha2VzIHNlbnNlIHRvIGRpc2FibGUKKyAgICAg
ICAgaXQgc29tZXRpbWVzLCBhbmQgaWYgdGhlcmUgYXJlIGlzc3VlcyB3aXRoIHRoaXMgd2Ugc2hv
dWxkIHNvbHZlIHRoZSBpc3N1ZXMKKyAgICAgICAgaW5zdGVhZCBvZiBoaWRpbmcgdGhlbS4KKwog
MjAxNi0xMS0wNCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IEFzc29jaWF0ZSBXb3JrZXIgUmVzb3VyY2VzIHdpdGggdGhlIFdv
cmtlciBhbmQgbm90IHRoZSBQYWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Db250cm9sbGVycy9EZWJ1Z2dlck1hbmFnZXIuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9EZWJ1Z2dlck1hbmFnZXIuanMK
aW5kZXggMGZmMzFlNC4uZWYyYjEwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvRGVidWdnZXJNYW5hZ2VyLmpzCisrKyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0RlYnVnZ2VyTWFuYWdl
ci5qcwpAQCAtNjExLDkgKzYxMSwxOCBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJNYW5hZ2VyID0g
Y2xhc3MgRGVidWdnZXJNYW5hZ2VyIGV4dGVuZHMgV2ViSW5zcGVjdG9yLk9iamVjdAogICAgIHsK
ICAgICAgICAgLy8gQ2FsbGVkIGZyb20gV2ViSW5zcGVjdG9yLkRlYnVnZ2VyT2JzZXJ2ZXIuCiAK
LSAgICAgICAgLy8gV2UgZGVsYXkgY2xlYXJpbmcgdGhlIHN0YXRlIGFuZCBmaXJpbmcgZXZlbnRz
IHNvIHRoZSB1c2VyIGludGVyZmFjZSBkb2VzIG5vdCBmbGFzaAotICAgICAgICAvLyBiZXR3ZWVu
IGJyaWVmIHN0ZXBzIG9yIHN1Y2Nlc3NpdmUgYnJlYWtwb2ludHMuCi0gICAgICAgIHRoaXMuX2Rl
bGF5ZWRSZXN1bWVUaW1lb3V0ID0gc2V0VGltZW91dCh0aGlzLl9kaWRSZXN1bWVJbnRlcm5hbC5i
aW5kKHRoaXMsIHRhcmdldCksIDUwKTsKKyAgICAgICAgLy8gQ09NUEFUSUJJTElUWSAoaU9TIDEw
KTogRGVidWdnZXIucmVzdW1lZCBldmVudCB3YXMgYW1iaWd1b3VzLiBXaGVuIHN0ZXBwaW5nCisg
ICAgICAgIC8vIHdlIHdvdWxkIHJlY2VpdmUgYSBEZWJ1Z2dlci5yZXN1bWVkIGFuZCB3ZSB3b3Vs
ZCBub3Qga25vdyBpZiBpdCByZWFsbHkgbWVhbnQKKyAgICAgICAgLy8gdGhlIGJhY2tlbmQgcmVz
dW1lZCBvciB3b3VsZCBwYXVzZSBhZ2FpbiBkdWUgdG8gYSBzdGVwLiBMZWdhY3kgYmFja2VuZHMg
d2FpdAorICAgICAgICAvLyA1MG1zLCBhbmQgdHJlYXQgaXQgYXMgYSByZWFsIHJlc3VtZSBpZiB3
ZSBoYXZlbid0IHBhdXNlZCBpbiB0aGF0IHRpbWUgZnJhbWUuCisgICAgICAgIC8vIFRoaXMgZGVs
YXkgZW5zdXJlcyB0aGUgdXNlciBpbnRlcmZhY2UgZG9lcyBub3QgZmxhc2ggYmV0d2VlbiBicmll
ZiBzdGVwcworICAgICAgICAvLyBvciBzdWNjZXNzaXZlIGJyZWFrcG9pbnRzLgorICAgICAgICBp
ZiAoIURlYnVnZ2VyQWdlbnQuc2V0UGF1c2VPbkFzc2VydGlvbnMpIHsKKyAgICAgICAgICAgIHRo
aXMuX2RlbGF5ZWRSZXN1bWVUaW1lb3V0ID0gc2V0VGltZW91dCh0aGlzLl9kaWRSZXN1bWVJbnRl
cm5hbC5iaW5kKHRoaXMsIHRhcmdldCksIDUwKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorCisgICAgICAgIHRoaXMuX2RpZFJlc3VtZUludGVybmFsKHRhcmdldCk7CiAgICAgfQog
CiAgICAgcGxheUJyZWFrcG9pbnRBY3Rpb25Tb3VuZChicmVha3BvaW50QWN0aW9uSWRlbnRpZmll
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3Qv
VGVzdC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvVGVzdC5q
cwppbmRleCA3NGNiYWRiLi45Y2EyOWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9UZXN0L1Rlc3QuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVGVzdC9UZXN0LmpzCkBAIC0xMTMsMyArMTEzLDUgQEAgV2ViSW5zcGVj
dG9yLnVwZGF0ZVZpc2liaWxpdHlTdGF0ZSA9ICgpID0+IHt9Owogd2luZG93Lkluc3BlY3RvclRl
c3QgPSBuZXcgRnJvbnRlbmRUZXN0SGFybmVzcygpOwogCiBJbnNwZWN0b3JUZXN0LnJlZGlyZWN0
Q29uc29sZVRvVGVzdE91dHB1dCgpOworCitXZWJJbnNwZWN0b3IucmVwb3J0SW50ZXJuYWxFcnJv
ciA9IChlKSA9PiB7IGNvbnNvbGUuZXJyb3IoZSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0RlYnVnZ2VyU2lkZWJhclBhbmVsLmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGVidWdnZXJTaWRlYmFy
UGFuZWwuanMKaW5kZXggYTkyMjNlMy4uOTBiMTk4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGVidWdnZXJTaWRlYmFyUGFuZWwuanMKKysr
IGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvRGVidWdnZXJTaWRl
YmFyUGFuZWwuanMKQEAgLTMyOCw2ICszMjgsNyBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJTaWRl
YmFyUGFuZWwgPSBjbGFzcyBEZWJ1Z2dlclNpZGViYXJQYW5lbCBleHRlbmRzIFdlYkluc3BlYwog
ICAgICAgICB0aGlzLl9kZWJ1Z2dlclBhdXNlUmVzdW1lQnV0dG9uSXRlbS50b2dnbGVkID0gdHJ1
ZTsKICAgICAgICAgdGhpcy5fZGVidWdnZXJTdGVwT3ZlckJ1dHRvbkl0ZW0uZW5hYmxlZCA9IHRy
dWU7CiAgICAgICAgIHRoaXMuX2RlYnVnZ2VyU3RlcEludG9CdXR0b25JdGVtLmVuYWJsZWQgPSB0
cnVlOworICAgICAgICB0aGlzLl9kZWJ1Z2dlclN0ZXBPdXRCdXR0b25JdGVtLmVuYWJsZWQgPSB0
cnVlOwogCiAgICAgICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKFdlYkluc3BlY3Rvci5E
ZWJ1Z2dlclNpZGViYXJQYW5lbC5EZWJ1Z2dlclBhdXNlZFN0eWxlQ2xhc3NOYW1lKTsKICAgICB9
CkBAIC02NjksMTMgKzY3MCw2IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclNpZGViYXJQYW5lbCA9
IGNsYXNzIERlYnVnZ2VyU2lkZWJhclBhbmVsIGV4dGVuZHMgV2ViSW5zcGVjCiAKICAgICAgICAg
aWYgKHRoaXMuX2FjdGl2ZUNhbGxGcmFtZVRyZWVFbGVtZW50KQogICAgICAgICAgICAgdGhpcy5f
YWN0aXZlQ2FsbEZyYW1lVHJlZUVsZW1lbnQuaXNBY3RpdmVDYWxsRnJhbWUgPSB0cnVlOwotCi0g
ICAgICAgIC8vIEZJWE1FOiBXaGF0IGlzIHRoaXMsIGFuZCBpcyBpdCBzdGlsbCByZWxldmFudD8K
LSAgICAgICAgLy8gSXQgaXMgdXNlZnVsIHRvIHR1cm4gb2ZmIHRoZSBzdGVwIG91dCBidXR0b24g
d2hlbiB0aGVyZSBpcyBubyBjYWxsIGZyYW1lIHRvIGdvIHRocm91Z2gKLSAgICAgICAgLy8gc2lu
Y2UgdGhlcmUgbWlnaHQgYmUgY2FsbCBmcmFtZXMgaW4gdGhlIGJhY2tlbmQgdGhhdCB3ZXJlIHJl
bW92ZWQgd2hlbiBwcm9jZXNzaW5nIHRoZSBjYWxsCi0gICAgICAgIC8vIGZyYW1lIHBheWxvYWQu
Ci0gICAgICAgIGxldCBpbmRleE9mQWN0aXZlQ2FsbEZyYW1lID0gY2FsbEZyYW1lcy5pbmRleE9m
KFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1hbmFnZXIuYWN0aXZlQ2FsbEZyYW1lKTsKLSAgICAgICAg
dGhpcy5fZGVidWdnZXJTdGVwT3V0QnV0dG9uSXRlbS5lbmFibGVkID0gaW5kZXhPZkFjdGl2ZUNh
bGxGcmFtZSA8IGNhbGxGcmFtZXMubGVuZ3RoIC0gMTsKICAgICB9CiAKICAgICBfYnJlYWtwb2lu
dHNCZW5lYXRoVHJlZUVsZW1lbnQodHJlZUVsZW1lbnQpCg==
</data>
<flag name="review"
          id="316923"
          type_id="1"
          status="+"
          setter="bburg"
    />
          </attachment>
      

    </bug>

</bugzilla>