<?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>190858</bug_id>
          
          <creation_ts>2018-10-23 19:03:23 -0700</creation_ts>
          <short_desc>Web Inspector: Audit: save imported audits across WebInspector sessions</short_desc>
          <delta_ts>2018-11-04 13:51:41 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>190754</dependson>
          <blocked>191158</blocked>
    
    <blocked>191235</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1471743</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-10-23 19:03:23 -0700</bug_when>
    <thetext>We should save any audits imported by the user and automatically show them when reopening WebInspector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471768</commentid>
    <comment_count>1</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-10-23 22:24:08 -0700</bug_when>
    <thetext>*** Bug 190857 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471897</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-10-24 11:42:04 -0700</bug_when>
    <thetext>&lt;rdar://problem/45527625&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1472018</commentid>
    <comment_count>3</comment_count>
      <attachid>353079</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-10-25 01:20:30 -0700</bug_when>
    <thetext>Created attachment 353079
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1473157</commentid>
    <comment_count>4</comment_count>
      <attachid>353079</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2018-10-29 19:18:31 -0700</bug_when>
    <thetext>Comment on attachment 353079
Patch

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

This looks good to me. Very neat!

As mentioned in person:

    • I think `markObject` would be better named `associateObject`
    • Describe in the ChangeLog that you&apos;re enforcing a `toJSON` to allow for a serialization opportunity that is different from a direct structured clone
    • Handle abrupt termination, which you should be able to test by killing the NetworkProcess while Inspector is open and performance a database operation

&gt; Source/WebInspectorUI/UserInterface/Base/ObjectStore.js:14
&gt; + *     * Neither the name of Google Inc. nor the names of its

This is the wrong license, unless you&apos;re copying a Google originated file, in which case they should be listed at the top as well.

&gt; Source/WebInspectorUI/UserInterface/Base/ObjectStore.js:49
&gt; +        let levelString = inspectionLevel &gt; 1 ? &quot;-&quot; + inspectionLevel : &quot;&quot;;

Style: Let&apos;s wrap the subexpression in parenthesis to avoid any confusion.

&gt; Source/WebInspectorUI/UserInterface/Base/ObjectStore.js:91
&gt; +    markObject(object, key, value)

It is unclear to me what this means.

It seems to associate an object with a value, but it is unclear why.

&gt; Source/WebInspectorUI/UserInterface/Base/ObjectStore.js:121
&gt; +        console.assert(typeof object.toJSON === &quot;function&quot;);

Would be nice to include the object&apos;s constructor in the message. This has been helpful in finding ContentViews lacking saveToCookie/restoreFromCookie. Something like:

    console.assert(typeof object.toJSON === &quot;function&quot;, &quot;ObjectStore cannot store object without JSON serialization&quot;, object.constructor.name);

&gt; Source/WebInspectorUI/UserInterface/Base/ObjectStore.js:152
&gt; +            if (!(parts[0] in object))

This should probably be a hasOwnProperty check, it sounds like this wants to do a full key path of own properties.

&gt; Source/WebInspectorUI/UserInterface/Base/ObjectStore.js:170
&gt; +        // micro-task, so we need to do everything using event listeners instead of promises.

Typo: &quot;micro-task&quot; =&gt; &quot;microtask&quot;
https://html.spec.whatwg.org/multipage/webappapis.html#microtask

&gt; LayoutTests/ChangeLog:9
&gt; +        * inspector/model/objectStore/add-expected.txt: Added.

These could be under `inspector/unit-test/objectStore/`. They aren&apos;t really model objects.

&gt; LayoutTests/inspector/model/objectStore/add.html:12
&gt; +        InspectorTest.ObjectStore.wrapTest(name, async function() {

Style: Perhaps `async () =&gt; {` over `async function() {`, since we&apos;ve been preferring arrow functions in many places. But I could go either way here.

&gt; LayoutTests/inspector/model/objectStore/add.html:34
&gt; +        ],

Style: You could drop all these commas, we never expect anything after tests.

&gt; LayoutTests/inspector/model/objectStore/resources/objectStore-utilities.js:24
&gt; +        WI.ObjectStore.__testObjectStore = new WI.ObjectStore(&quot;__testing&quot;, options);

Assert that WI.ObjectStore.__testObjectStore doesn&apos;t already exist, since it seems tests wouldn&apos;t expect that to get clobbered:

    InspectorTest.assert(!WI.ObjectStore.__testObjectStore, &quot;__testObjectStore not cleaned up appropriately between tests&quot;);

&gt; LayoutTests/inspector/model/objectStore/resources/objectStore-utilities.js:77
&gt; +                WI.ObjectStore.__testing = true;

Is the __testing still needed? It seems to not be used anywhere.

If it is needed, then I&apos;d expect a try/catch around the contents before setting __testing to false.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1473555</commentid>
    <comment_count>5</comment_count>
      <attachid>353079</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-10-30 18:35:26 -0700</bug_when>
    <thetext>Comment on attachment 353079
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Base/ObjectStore.js:14
&gt;&gt; + *     * Neither the name of Google Inc. nor the names of its
&gt; 
&gt; This is the wrong license, unless you&apos;re copying a Google originated file, in which case they should be listed at the top as well.

Oops.  Copypasta.

&gt;&gt; LayoutTests/inspector/model/objectStore/add.html:12
&gt;&gt; +        InspectorTest.ObjectStore.wrapTest(name, async function() {
&gt; 
&gt; Style: Perhaps `async () =&gt; {` over `async function() {`, since we&apos;ve been preferring arrow functions in many places. But I could go either way here.

I think `async function` reads better.

&gt;&gt; LayoutTests/inspector/model/objectStore/add.html:34
&gt;&gt; +        ],
&gt; 
&gt; Style: You could drop all these commas, we never expect anything after tests.

I personally would rather add the comma for the sake of making a future diff cleaner.  Also, we can add `teardown` functions after tests, so that isn&apos;t necessarily true.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1473559</commentid>
    <comment_count>6</comment_count>
      <attachid>353453</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-10-30 18:42:07 -0700</bug_when>
    <thetext>Created attachment 353453
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1473633</commentid>
    <comment_count>7</comment_count>
      <attachid>353472</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-10-31 01:01:27 -0700</bug_when>
    <thetext>Created attachment 353472
Patch

Remove accidental `InspectorTest.debug()`</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1473927</commentid>
    <comment_count>8</comment_count>
      <attachid>353472</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2018-10-31 16:25:46 -0700</bug_when>
    <thetext>Comment on attachment 353472
Patch

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

r=me with a quibble about keeping object stores out of view classes.

&gt; Source/WebInspectorUI/UserInterface/Base/ObjectStore.js:150
&gt; +        while (parts.length) {

Please add a short comment here to point out the two cases of a key with a dot in it that doesn&apos;t resolve, and an actual key path in the Cocoa/multiple property access sense. It took me a while to figure out.

&gt; Source/WebInspectorUI/UserInterface/Views/AuditTabContentView.js:92
&gt; +        WI.objectStores.audits.getAll().then((results) =&gt; {

I think it&apos;s wrong that this doesn&apos;t go through AuditManager. Are we ok with the uses of the object stores spread between view and model code? This could just as easily call WI.auditManager.loadSavedAuditResults(), and then this functionality is actually testable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1473930</commentid>
    <comment_count>9</comment_count>
      <attachid>353472</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-10-31 16:29:00 -0700</bug_when>
    <thetext>Comment on attachment 353472
Patch

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

&gt;&gt; Source/WebInspectorUI/UserInterface/Views/AuditTabContentView.js:92
&gt;&gt; +        WI.objectStores.audits.getAll().then((results) =&gt; {
&gt; 
&gt; I think it&apos;s wrong that this doesn&apos;t go through AuditManager. Are we ok with the uses of the object stores spread between view and model code? This could just as easily call WI.auditManager.loadSavedAuditResults(), and then this functionality is actually testable.

The only reason I had this here was because I didn&apos;t want to eagerly load saved audits when the manager is created, as they may never be used (e.g. if the tab isn&apos;t shown).  I think wrapping this inside a` WI.AuditManager` call is fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1473940</commentid>
    <comment_count>10</comment_count>
      <attachid>353553</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2018-10-31 16:41:08 -0700</bug_when>
    <thetext>Created attachment 353553
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1473983</commentid>
    <comment_count>11</comment_count>
      <attachid>353553</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-31 18:18:15 -0700</bug_when>
    <thetext>Comment on attachment 353553
Patch

Clearing flags on attachment: 353553

Committed r237665: &lt;https://trac.webkit.org/changeset/237665&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1473984</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-31 18:18:17 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353079</attachid>
            <date>2018-10-25 01:20:30 -0700</date>
            <delta_ts>2018-10-30 18:42:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>190858.diff</filename>
            <type>text/plain</type>
            <size>69579</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDVhM2VkYTEzMGYyLi4zODBjODlmZjBmNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMTgtMTAtMjUgIERldmlu
IFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEF1
ZGl0OiBzYXZlIGltcG9ydGVkIGF1ZGl0cyBhY3Jvc3MgV2ViSW5zcGVjdG9yIHNlc3Npb25zCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA4NTgKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1NTI3NjI1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9CYXNlL09iamVjdFN0b3Jl
LmpzOiBBZGRlZC4KKyAgICAgICAgKFdJLk9iamVjdFN0b3JlKToKKyAgICAgICAgKFdJLk9iamVj
dFN0b3JlLnN1cHBvcnRlZCk6CisgICAgICAgIChXSS5PYmplY3RTdG9yZS5fb3Blbik6CisgICAg
ICAgIChXSS5PYmplY3RTdG9yZS5nZXQgX2RhdGFiYXNlTmFtZSk6CisgICAgICAgIChXSS5PYmpl
Y3RTdG9yZS5wcm90b3R5cGUubWFya09iamVjdCk6CisgICAgICAgIChXSS5PYmplY3RTdG9yZS5w
cm90b3R5cGUuYXN5bmMgZ2V0QWxsKToKKyAgICAgICAgKFdJLk9iamVjdFN0b3JlLnByb3RvdHlw
ZS5hc3luYyBhZGQpOgorICAgICAgICAoV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFzeW5jIGFk
ZE9iamVjdCk6CisgICAgICAgIChXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYXN5bmMgZGVsZXRl
KToKKyAgICAgICAgKFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hc3luYyBkZWxldGVPYmplY3Qp
OgorICAgICAgICAoV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLl9yZXNvbHZlS2V5UGF0aCk6Cisg
ICAgICAgIChXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYXN5bmMgX29wZXJhdGlvbi5saXN0ZW5l
cik6CisgICAgICAgIChXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYXN5bmMgX29wZXJhdGlvbik6
CisgICAgICAgIFdyYXBwZXIgZm9yIGEgZ2xvYmFsIGBJbmRleGVkREJgIGluc3RhbmNlIGZvciBh
bGwgb2YgV2ViSW5zcGVjdG9yIChwZXIgbGV2ZWwpLiBJbnN0YW5jZXMgb2YKKyAgICAgICAgYFdJ
Lk9iamVjdFN0b3JlYCBhcmUgYWJsZSB0byBjb250cm9sIGEgZ2l2ZW4gYElEQk9iamVjdFN0b3Jl
YCB1c2luZyBhIHByb21pc2UtYmFzZWQgQVBJLgorCisgICAgICAgICpOT1RFKjogZHVlIHRvIHRo
ZSBjb25zdHJhaW50IHRoYXQgYElEQk9iamVjdFN0b3JlYHMgYXJlIG9ubHkgYWJsZSB0byBiZSBj
cmVhdGVkIHdoZW4gdGhlCisgICAgICAgIG93bmVyIGBJbmRleGVkREJgIGlzICJ1cGdyYWRlImQs
IGFsbCBgV0kuT2JqZWN0U3RvcmVgIG11c3QgYmUgZGVjbGFyZWQgYmVmb3JlIHRoZSBkYXRhYmFz
ZQorICAgICAgICBpcyBvcGVuZWQgZm9yIHRoZSBmaXJzdCB0aW1lLiBBZGRpdGlvbmFsbHksIGFu
eSB0aW1lIGEgbmV3IGBXSS5PYmplY3RTdG9yZWAgaXMgYWRkZWQsIHRoZQorICAgICAgICBgdmVy
c2lvbmAgbmVlZHMgdG8gYmUgaW5jcmVtZW50ZWQgdG8gZW5zdXJlIHRoYXQgdGhlICJ1cGdyYWRl
IiBldmVudCBmaXJlcy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQXVk
aXRNYW5hZ2VyLmpzOgorICAgICAgICAoV0kuQXVkaXRNYW5hZ2VyLnByb3RvdHlwZS5pbXBvcnQp
OgorICAgICAgICAoV0kuQXVkaXRNYW5hZ2VyLnByb3RvdHlwZS5hZGRUZXN0KTogQWRkZWQuCisg
ICAgICAgIChXSS5BdWRpdE1hbmFnZXIucHJvdG90eXBlLnJlbW92ZVRlc3QpOiBBZGRlZC4KKyAg
ICAgICAgKFdJLkF1ZGl0TWFuYWdlci5wcm90b3R5cGUuX2FkZFRlc3QpOiBEZWxldGVkLgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9BdWRpdFRhYkNvbnRlbnRWaWV3LmpzOgorICAg
ICAgICAoV0kuQXVkaXRUYWJDb250ZW50Vmlldy5wcm90b3R5cGUuaW5pdGlhbExheW91dCk6IEFk
ZGVkLgorICAgICAgICBBdHRlbXB0IHRvIGxvYWQgc2F2ZWQgYXVkaXRzIHdoZW4gdGhlIEF1ZGl0
IHRhYiBpcyBmaXJzdCBzaG93biAobGF6eS1sb2FkKS4KKworICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvVmlld3MvQXVkaXROYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmpzOgorICAgICAgICAoV0kuQXVk
aXROYXZpZ2F0aW9uU2lkZWJhclBhbmVsLnByb3RvdHlwZS5pbml0aWFsTGF5b3V0KToKKyAgICAg
ICAgKFdJLkF1ZGl0TmF2aWdhdGlvblNpZGViYXJQYW5lbC5wcm90b3R5cGUuX2hhbmRsZUF1ZGl0
VGVzdFJlbW92ZWQpOiBBZGRlZC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVmlld3MvQXVk
aXRUcmVlRWxlbWVudC5qczoKKyAgICAgICAgKFdJLkF1ZGl0VHJlZUVsZW1lbnQucHJvdG90eXBl
Lm9uZGVsZXRlKToKKyAgICAgICAgT25seSBhbGxvdyB0b3AtbGV2ZWwgYXVkaXRzIHRvIGJlIGRl
bGV0ZWQsIGFzIHRoYXQgaXMgd2hhdCBtYXRjaGVzIHRoZSBgV0kuT2JqZWN0U3RvcmVgLgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9NYWluLmh0bWw6CisgICAgICAgICogVXNlckludGVyZmFj
ZS9UZXN0Lmh0bWw6CisKIDIwMTgtMTAtMjMgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUu
Y29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEF1ZGl0OiBjcmVhdGUgQXVkaXQgVGFiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL09iamVj
dFN0b3JlLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9PYmpl
Y3RTdG9yZS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMGZjYmRk
ZGQyMWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9CYXNlL09iamVjdFN0b3JlLmpzCkBAIC0wLDAgKzEsMjExIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9u
LgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitXSS5PYmplY3RTdG9yZSA9
IGNsYXNzIE9iamVjdFN0b3JlCit7CisgICAgY29uc3RydWN0b3IobmFtZSwgb3B0aW9ucyA9IHt9
KQorICAgIHsKKyAgICAgICAgdGhpcy5fbmFtZSA9IG5hbWU7CisgICAgICAgIHRoaXMuX29wdGlv
bnMgPSBvcHRpb25zOworICAgIH0KKworICAgIC8vIFN0YXRpYworCisgICAgc3RhdGljIHN1cHBv
cnRlZCgpCisgICAgeworICAgICAgICByZXR1cm4gKCF3aW5kb3cuSW5zcGVjdG9yVGVzdCB8fCBX
SS5PYmplY3RTdG9yZS5fX3Rlc3RPYmplY3RTdG9yZSkgJiYgd2luZG93LmluZGV4ZWREQjsKKyAg
ICB9CisKKyAgICBzdGF0aWMgZ2V0IF9kYXRhYmFzZU5hbWUoKQorICAgIHsKKyAgICAgICAgbGV0
IGluc3BlY3Rpb25MZXZlbCA9IEluc3BlY3RvckZyb250ZW5kSG9zdCA/IEluc3BlY3RvckZyb250
ZW5kSG9zdC5pbnNwZWN0aW9uTGV2ZWwoKSA6IDE7CisgICAgICAgIGxldCBsZXZlbFN0cmluZyA9
IGluc3BlY3Rpb25MZXZlbCA+IDEgPyAiLSIgKyBpbnNwZWN0aW9uTGV2ZWwgOiAiIjsKKyAgICAg
ICAgcmV0dXJuICJjb20uYXBwbGUuV2ViSW5zcGVjdG9yIiArIGxldmVsU3RyaW5nOworICAgIH0K
KworICAgIHN0YXRpYyBfb3BlbihjYWxsYmFjaykKKyAgICB7CisgICAgICAgIGlmIChXSS5PYmpl
Y3RTdG9yZS5fZGF0YWJhc2UpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKFdJLk9iamVjdFN0b3Jl
Ll9kYXRhYmFzZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBj
b25zdCB2ZXJzaW9uID0gMTsgLy8gSW5jcmVtZW50IHRoaXMgZm9yIGV2ZXJ5IGVkaXQgdG8gYFdJ
Lm9iamVjdFN0b3Jlc2AuCisKKyAgICAgICAgbGV0IGRhdGFiYXNlUmVxdWVzdCA9IGluZGV4ZWRE
Qi5vcGVuKFdJLk9iamVjdFN0b3JlLl9kYXRhYmFzZU5hbWUsIHZlcnNpb24pOworICAgICAgICBk
YXRhYmFzZVJlcXVlc3QuYWRkRXZlbnRMaXN0ZW5lcigidXBncmFkZW5lZWRlZCIsIChldmVudCkg
PT4geworICAgICAgICAgICAgbGV0IGRhdGFiYXNlID0gZGF0YWJhc2VSZXF1ZXN0LnJlc3VsdDsK
KworICAgICAgICAgICAgbGV0IG9iamVjdFN0b3JlcyA9IE9iamVjdC52YWx1ZXMoV0kub2JqZWN0
U3RvcmVzKTsKKyAgICAgICAgICAgIGlmIChXSS5PYmplY3RTdG9yZS5fX3Rlc3RPYmplY3RTdG9y
ZSkKKyAgICAgICAgICAgICAgICBvYmplY3RTdG9yZXMucHVzaChXSS5PYmplY3RTdG9yZS5fX3Rl
c3RPYmplY3RTdG9yZSk7CisKKyAgICAgICAgICAgIGxldCBleGlzdGluZ05hbWVzID0gbmV3IFNl
dDsKKyAgICAgICAgICAgIGZvciAobGV0IG9iamVjdFN0b3JlIG9mIG9iamVjdFN0b3Jlcykgewor
ICAgICAgICAgICAgICAgIGlmICghZGF0YWJhc2Uub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucyhv
YmplY3RTdG9yZS5fbmFtZSkpCisgICAgICAgICAgICAgICAgICAgIGRhdGFiYXNlLmNyZWF0ZU9i
amVjdFN0b3JlKG9iamVjdFN0b3JlLl9uYW1lLCBvYmplY3RTdG9yZS5fb3B0aW9ucyk7CisKKyAg
ICAgICAgICAgICAgICBleGlzdGluZ05hbWVzLmFkZChvYmplY3RTdG9yZS5fbmFtZSk7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIGZvciAobGV0IG9iamVjdFN0b3JlTmFtZSBvZiBkYXRh
YmFzZS5vYmplY3RTdG9yZU5hbWVzKSB7CisgICAgICAgICAgICAgICAgaWYgKCFleGlzdGluZ05h
bWVzLmhhcyhvYmplY3RTdG9yZU5hbWUpKQorICAgICAgICAgICAgICAgICAgICBkYXRhYmFzZS5k
ZWxldGVPYmplY3RTdG9yZShvYmplY3RTdG9yZU5hbWUpOworICAgICAgICAgICAgfQorICAgICAg
ICB9KTsKKyAgICAgICAgZGF0YWJhc2VSZXF1ZXN0LmFkZEV2ZW50TGlzdGVuZXIoInN1Y2Nlc3Mi
LCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgIFdJLk9iamVjdFN0b3JlLl9kYXRhYmFzZSA9IGRh
dGFiYXNlUmVxdWVzdC5yZXN1bHQ7CisgICAgICAgICAgICBjYWxsYmFjayhXSS5PYmplY3RTdG9y
ZS5fZGF0YWJhc2UpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICAvLyBQdWJsaWMKKworICAg
IG1hcmtPYmplY3Qob2JqZWN0LCBrZXksIHZhbHVlKQorICAgIHsKKyAgICAgICAgaWYgKHR5cGVv
ZiB2YWx1ZSA9PT0gIm9iamVjdCIpCisgICAgICAgICAgICB2YWx1ZSA9IHRoaXMuX3Jlc29sdmVL
ZXlQYXRoKHZhbHVlLCBrZXkpLnZhbHVlOworCisgICAgICAgIGxldCByZXNvbHZlZCA9IHRoaXMu
X3Jlc29sdmVLZXlQYXRoKG9iamVjdCwga2V5KTsKKyAgICAgICAgcmVzb2x2ZWQub2JqZWN0W3Jl
c29sdmVkLmtleV0gPSB2YWx1ZTsKKyAgICB9CisKKyAgICBhc3luYyBnZXRBbGwoLi4uYXJncykK
KyAgICB7CisgICAgICAgIGlmICghV0kuT2JqZWN0U3RvcmUuc3VwcG9ydGVkKCkpCisgICAgICAg
ICAgICByZXR1cm4gdW5kZWZpbmVkOworCisgICAgICAgIHJldHVybiB0aGlzLl9vcGVyYXRpb24o
InJlYWRvbmx5IiwgKG9iamVjdFN0b3JlKSA9PiBvYmplY3RTdG9yZS5nZXRBbGwoLi4uYXJncykp
OworICAgIH0KKworICAgIGFzeW5jIGFkZCguLi5hcmdzKQorICAgIHsKKyAgICAgICAgaWYgKCFX
SS5PYmplY3RTdG9yZS5zdXBwb3J0ZWQoKSkKKyAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7
CisKKyAgICAgICAgcmV0dXJuIHRoaXMuX29wZXJhdGlvbigicmVhZHdyaXRlIiwgKG9iamVjdFN0
b3JlKSA9PiBvYmplY3RTdG9yZS5hZGQoLi4uYXJncykpOworICAgIH0KKworICAgIGFzeW5jIGFk
ZE9iamVjdChvYmplY3QsIC4uLmFyZ3MpCisgICAgeworICAgICAgICBpZiAoIVdJLk9iamVjdFN0
b3JlLnN1cHBvcnRlZCgpKQorICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKworICAgICAg
ICBjb25zb2xlLmFzc2VydCh0eXBlb2Ygb2JqZWN0LnRvSlNPTiA9PT0gImZ1bmN0aW9uIik7Cisg
ICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCB0aGlzLmFkZChvYmplY3QudG9KU09OKCksIC4uLmFy
Z3MpOworICAgICAgICB0aGlzLm1hcmtPYmplY3Qob2JqZWN0LCBhcmdzWzBdLCByZXN1bHQpOwor
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIGFzeW5jIGRlbGV0ZSguLi5hcmdz
KQorICAgIHsKKyAgICAgICAgaWYgKCFXSS5PYmplY3RTdG9yZS5zdXBwb3J0ZWQoKSkKKyAgICAg
ICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisKKyAgICAgICAgcmV0dXJuIHRoaXMuX29wZXJhdGlv
bigicmVhZHdyaXRlIiwgKG9iamVjdFN0b3JlKSA9PiBvYmplY3RTdG9yZS5kZWxldGUoLi4uYXJn
cykpOworICAgIH0KKworICAgIGFzeW5jIGRlbGV0ZU9iamVjdChvYmplY3QsIC4uLmFyZ3MpCisg
ICAgeworICAgICAgICBpZiAoIVdJLk9iamVjdFN0b3JlLnN1cHBvcnRlZCgpKQorICAgICAgICAg
ICAgcmV0dXJuIHVuZGVmaW5lZDsKKworICAgICAgICByZXR1cm4gdGhpcy5kZWxldGUodGhpcy5f
cmVzb2x2ZUtleVBhdGgob2JqZWN0KS52YWx1ZSwgLi4uYXJncyk7CisgICAgfQorCisgICAgLy8g
UHJpdmF0ZQorCisgICAgX3Jlc29sdmVLZXlQYXRoKG9iamVjdCwga2V5UGF0aCkKKyAgICB7Cisg
ICAgICAgIGtleVBhdGggPSBrZXlQYXRoIHx8IHRoaXMuX29wdGlvbnMua2V5UGF0aCB8fCAiIjsK
KworICAgICAgICBsZXQgcGFydHMgPSBrZXlQYXRoLnNwbGl0KCIuIik7CisgICAgICAgIGxldCBr
ZXkgPSBwYXJ0cy5zcGxpY2UoLTEsIDEpOworICAgICAgICB3aGlsZSAocGFydHMubGVuZ3RoKSB7
CisgICAgICAgICAgICBpZiAoIShwYXJ0c1swXSBpbiBvYmplY3QpKQorICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgb2JqZWN0ID0gb2JqZWN0W3BhcnRzLnNoaWZ0KCldOworICAg
ICAgICB9CisKKyAgICAgICAgaWYgKHBhcnRzLmxlbmd0aCkKKyAgICAgICAgICAgIGtleSA9IHBh
cnRzLmpvaW4oIi4iKSArICIuIiArIGtleTsKKworICAgICAgICByZXR1cm4geworICAgICAgICAg
ICAgb2JqZWN0LAorICAgICAgICAgICAga2V5LAorICAgICAgICAgICAgdmFsdWU6IG9iamVjdFtr
ZXldLAorICAgICAgICB9OworICAgIH0KKworICAgIGFzeW5jIF9vcGVyYXRpb24obW9kZSwgZnVu
YykKKyAgICB7CisgICAgICAgIC8vIEluZGV4ZWREQiB0cmFuc2FjdGlvbnMgd2lsbCBhdXRvLWNs
b3NlIGlmIHRoZXJlIGFyZSBubyBhY3RpdmUgb3BlcmF0aW9ucyBhdCB0aGUgZW5kIG9mIGEKKyAg
ICAgICAgLy8gbWljcm8tdGFzaywgc28gd2UgbmVlZCB0byBkbyBldmVyeXRoaW5nIHVzaW5nIGV2
ZW50IGxpc3RlbmVycyBpbnN0ZWFkIG9mIHByb21pc2VzLgorICAgICAgICByZXR1cm4gbmV3IFBy
b21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAgV0kuT2JqZWN0U3RvcmUu
X29wZW4oKGRhdGFiYXNlKSA9PiB7CisgICAgICAgICAgICAgICAgbGV0IHRyYW5zYWN0aW9uID0g
ZGF0YWJhc2UudHJhbnNhY3Rpb24oW3RoaXMuX25hbWVdLCBtb2RlKTsKKyAgICAgICAgICAgICAg
ICBsZXQgb2JqZWN0U3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSh0aGlzLl9uYW1lKTsK
KyAgICAgICAgICAgICAgICBsZXQgcmVxdWVzdCA9IG51bGw7CisKKyAgICAgICAgICAgICAgICB0
cnkgeworICAgICAgICAgICAgICAgICAgICByZXF1ZXN0ID0gZnVuYyhvYmplY3RTdG9yZSk7Cisg
ICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgICAgICAgICByZWplY3Qo
ZSk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgICAgICBmdW5jdGlvbiBsaXN0ZW5lcihldmVudCkgeworICAgICAgICAgICAgICAg
ICAgICB0cmFuc2FjdGlvbi5yZW1vdmVFdmVudExpc3RlbmVyKCJjb21wbGV0ZSIsIGxpc3RlbmVy
KTsKKyAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcigi
ZXJyb3IiLCBsaXN0ZW5lcik7CisgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QucmVtb3ZlRXZl
bnRMaXN0ZW5lcigic3VjY2VzcyIsIGxpc3RlbmVyKTsKKyAgICAgICAgICAgICAgICAgICAgcmVx
dWVzdC5yZW1vdmVFdmVudExpc3RlbmVyKCJlcnJvciIsIGxpc3RlbmVyKTsKKworICAgICAgICAg
ICAgICAgICAgICBpZiAocmVxdWVzdC5lcnJvcikgeworICAgICAgICAgICAgICAgICAgICAgICAg
cmVqZWN0KHJlcXVlc3QuZXJyb3IpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXF1
ZXN0LnJlc3VsdCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRyYW5zYWN0
aW9uLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBsZXRlIiwgbGlzdGVuZXIsIHtvbmNlOiB0cnVlfSk7
CisgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb24uYWRkRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCBs
aXN0ZW5lciwge29uY2U6IHRydWV9KTsKKyAgICAgICAgICAgICAgICByZXF1ZXN0LmFkZEV2ZW50
TGlzdGVuZXIoInN1Y2Nlc3MiLCBsaXN0ZW5lciwge29uY2U6IHRydWV9KTsKKyAgICAgICAgICAg
ICAgICByZXF1ZXN0LmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgbGlzdGVuZXIsIHtvbmNlOiB0
cnVlfSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgfQorfTsKKworV0kuT2Jq
ZWN0U3RvcmUuX2RhdGFiYXNlID0gbnVsbDsKKworLy8gQmUgc3VyZSB0byB1cGRhdGUgdGhlIGB2
ZXJzaW9uYCBhYm92ZSB3aGVuIG1ha2luZyBjaGFuZ2VzLgorV0kub2JqZWN0U3RvcmVzID0gewor
ICAgIGF1ZGl0czogbmV3IFdJLk9iamVjdFN0b3JlKCJhdWRpdC1tYW5hZ2VyLXRlc3RzIiwge2tl
eVBhdGg6ICJfX2lkIiwgYXV0b0luY3JlbWVudDogdHJ1ZX0pLAorfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0F1ZGl0TWFuYWdl
ci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0F1
ZGl0TWFuYWdlci5qcwppbmRleCAwYjBmZjJkMTllYS4uZDQ4ZWUxYTBkM2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0F1ZGl0TWFu
YWdlci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9s
bGVycy9BdWRpdE1hbmFnZXIuanMKQEAgLTExOCw5ICsxMTgsMTAgQEAgV0kuQXVkaXRNYW5hZ2Vy
ID0gY2xhc3MgQXVkaXRNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAgICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBpZiAob2JqZWN0IGluc3RhbmNl
b2YgV0kuQXVkaXRUZXN0R3JvdXAgfHwgb2JqZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRUZXN0Q2Fz
ZSkKLSAgICAgICAgICAgICAgICB0aGlzLl9hZGRUZXN0KG9iamVjdCk7Ci0gICAgICAgICAgICBl
bHNlIGlmIChvYmplY3QgaW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RHcm91cFJlc3VsdCB8fCBvYmpl
Y3QgaW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RDYXNlUmVzdWx0KQorICAgICAgICAgICAgaWYgKG9i
amVjdCBpbnN0YW5jZW9mIFdJLkF1ZGl0VGVzdEdyb3VwIHx8IG9iamVjdCBpbnN0YW5jZW9mIFdJ
LkF1ZGl0VGVzdENhc2UpIHsKKyAgICAgICAgICAgICAgICB0aGlzLmFkZFRlc3Qob2JqZWN0KTsK
KyAgICAgICAgICAgICAgICBXSS5vYmplY3RTdG9yZXMuYXVkaXRzLmFkZE9iamVjdChvYmplY3Qp
OworICAgICAgICAgICAgfSBlbHNlIGlmIChvYmplY3QgaW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RH
cm91cFJlc3VsdCB8fCBvYmplY3QgaW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RDYXNlUmVzdWx0KQog
ICAgICAgICAgICAgICAgIHRoaXMuX2FkZFJlc3VsdChvYmplY3QpOwogICAgICAgICB9KTsKICAg
ICB9CkBAIC0xNDIsMTUgKzE0MywyNCBAQCBXSS5BdWRpdE1hbmFnZXIgPSBjbGFzcyBBdWRpdE1h
bmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAgICAgICAgfSk7CiAgICAgfQogCi0gICAgLy8gUHJp
dmF0ZQotCi0gICAgX2FkZFRlc3QodGVzdCkKKyAgICBhZGRUZXN0KHRlc3QpCiAgICAgewogICAg
ICAgICB0aGlzLl90ZXN0cy5wdXNoKHRlc3QpOwogCiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVu
dFRvTGlzdGVuZXJzKFdJLkF1ZGl0TWFuYWdlci5FdmVudC5UZXN0QWRkZWQsIHt0ZXN0fSk7CiAg
ICAgfQogCisgICAgcmVtb3ZlVGVzdCh0ZXN0KQorICAgIHsKKyAgICAgICAgdGhpcy5fdGVzdHMu
cmVtb3ZlKHRlc3QpOworCisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdJ
LkF1ZGl0TWFuYWdlci5FdmVudC5UZXN0UmVtb3ZlZCwge3Rlc3R9KTsKKworICAgICAgICBXSS5v
YmplY3RTdG9yZXMuYXVkaXRzLmRlbGV0ZU9iamVjdCh0ZXN0KTsKKyAgICB9CisKKyAgICAvLyBQ
cml2YXRlCisKICAgICBfYWRkUmVzdWx0KHJlc3VsdCkKICAgICB7CiAgICAgICAgIGlmICghcmVz
dWx0IHx8IChBcnJheS5pc0FycmF5KHJlc3VsdCkgJiYgIXJlc3VsdC5sZW5ndGgpKQpAQCAtMTc0
LDUgKzE4NCw2IEBAIFdJLkF1ZGl0TWFuYWdlci5SdW5uaW5nU3RhdGUgPSB7CiBXSS5BdWRpdE1h
bmFnZXIuRXZlbnQgPSB7CiAgICAgVGVzdEFkZGVkOiAiYXVkaXQtbWFuYWdlci10ZXN0LWFkZGVk
IiwKICAgICBUZXN0Q29tcGxldGVkOiAiYXVkaXQtbWFuYWdlci10ZXN0LWNvbXBsZXRlZCIsCisg
ICAgVGVzdFJlbW92ZWQ6ICJhdWRpdC1tYW5hZ2VyLXRlc3QtcmVtb3ZlZCIsCiAgICAgVGVzdFNj
aGVkdWxlZDogImF1ZGl0LW1hbmFnZXItdGVzdC1zY2hlZHVsZWQiLAogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbCBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbAppbmRleCAxM2QzZGU5Y2ZmZi4u
MTNiMzE3NjRjOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01haW4uaHRtbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9N
YWluLmh0bWwKQEAgLTI3OSw2ICsyNzksNyBAQAogICAgIDxzY3JpcHQgc3JjPSJCYXNlL0ltYWdl
VXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQmFzZS9Mb2FkTG9jYWxp
emVkU3RyaW5ncy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkJhc2UvTUlNRVR5cGVV
dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJCYXNlL09iamVjdFN0b3Jl
LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQmFzZS9VUkxVdGlsaXRpZXMuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJCYXNlL1V0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9IkJhc2UvU2V0dGluZy5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0Lmh0bWwgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXN0Lmh0bWwKaW5kZXggYzUyMmUzOTc4ZjAuLjAz
YjBhOTZiYWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9UZXN0Lmh0bWwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVz
dC5odG1sCkBAIC01Niw2ICs1Niw3IEBACiAgICAgPHNjcmlwdCBzcmM9IkJhc2UvRXZlbnRMaXN0
ZW5lclNldC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkJhc2UvSW1hZ2VVdGlsaXRp
ZXMuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJCYXNlL01JTUVUeXBlVXRpbGl0aWVz
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iQmFzZS9PYmplY3RTdG9yZS5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkJhc2UvVVJMVXRpbGl0aWVzLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iQmFzZS9VdGlsaXRpZXMuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgc3JjPSJCYXNlL1NldHRpbmcuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQXVkaXROYXZpZ2F0aW9uU2lkZWJhclBh
bmVsLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQXVkaXRO
YXZpZ2F0aW9uU2lkZWJhclBhbmVsLmpzCmluZGV4IDM4MTU2NDczMWY2Li5kNzc0ODI4YzYxYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQXVk
aXROYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0F1ZGl0TmF2aWdhdGlvblNpZGViYXJQYW5lbC5qcwpAQCAtOTQs
NiArOTQsNyBAQCBXSS5BdWRpdE5hdmlnYXRpb25TaWRlYmFyUGFuZWwgPSBjbGFzcyBBdWRpdE5h
dmlnYXRpb25TaWRlYmFyUGFuZWwgZXh0ZW5kcyBXSS5OYQogCiAgICAgICAgIFdJLmF1ZGl0TWFu
YWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkF1ZGl0TWFuYWdlci5FdmVudC5UZXN0QWRkZWQsIHRo
aXMuX2hhbmRsZUF1ZGl0VGVzdEFkZGVkLCB0aGlzKTsKICAgICAgICAgV0kuYXVkaXRNYW5hZ2Vy
LmFkZEV2ZW50TGlzdGVuZXIoV0kuQXVkaXRNYW5hZ2VyLkV2ZW50LlRlc3RDb21wbGV0ZWQsIHRo
aXMuX2hhbmRsZUF1ZGl0VGVzdENvbXBsZXRlZCwgdGhpcyk7CisgICAgICAgIFdJLmF1ZGl0TWFu
YWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkF1ZGl0TWFuYWdlci5FdmVudC5UZXN0UmVtb3ZlZCwg
dGhpcy5faGFuZGxlQXVkaXRUZXN0UmVtb3ZlZCwgdGhpcyk7CiAgICAgICAgIFdJLmF1ZGl0TWFu
YWdlci5hZGRFdmVudExpc3RlbmVyKFdJLkF1ZGl0TWFuYWdlci5FdmVudC5UZXN0U2NoZWR1bGVk
LCB0aGlzLl9oYW5kbGVBdWRpdFRlc3RTY2hlZHVsZWQsIHRoaXMpOwogCiAgICAgICAgIHRoaXMu
Y29udGVudFRyZWVPdXRsaW5lLmFkZEV2ZW50TGlzdGVuZXIoV0kuVHJlZU91dGxpbmUuRXZlbnQu
U2VsZWN0aW9uRGlkQ2hhbmdlLCB0aGlzLl90cmVlU2VsZWN0aW9uRGlkQ2hhbmdlLCB0aGlzKTsK
QEAgLTE1Myw2ICsxNTQsMTMgQEAgV0kuQXVkaXROYXZpZ2F0aW9uU2lkZWJhclBhbmVsID0gY2xh
c3MgQXVkaXROYXZpZ2F0aW9uU2lkZWJhclBhbmVsIGV4dGVuZHMgV0kuTmEKICAgICAgICAgdGhp
cy5fYWRkUmVzdWx0KHJlc3VsdCwgaW5kZXgpOwogICAgIH0KIAorICAgIF9oYW5kbGVBdWRpdFRl
c3RSZW1vdmVkKGV2ZW50KQorICAgIHsKKyAgICAgICAgbGV0IHt0ZXN0fSA9IGV2ZW50LmRhdGE7
CisgICAgICAgIGxldCB0cmVlRWxlbWVudCA9IHRoaXMudHJlZUVsZW1lbnRGb3JSZXByZXNlbnRl
ZE9iamVjdCh0ZXN0KTsKKyAgICAgICAgdGhpcy5jb250ZW50VHJlZU91dGxpbmUucmVtb3ZlQ2hp
bGQodHJlZUVsZW1lbnQpOworICAgIH0KKwogICAgIF9oYW5kbGVBdWRpdFRlc3RTY2hlZHVsZWQo
ZXZlbnQpCiAgICAgewogICAgICAgICB0aGlzLl91cGRhdGVTdGFydFN0b3BCdXR0b25OYXZpZ2F0
aW9uSXRlbVN0YXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9BdWRpdFRhYkNvbnRlbnRWaWV3LmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQXVkaXRUYWJDb250ZW50Vmlldy5qcwppbmRleCBjODEx
NWQzYjJkMS4uNTg0Nzk1NTMyYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0F1ZGl0VGFiQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQXVkaXRUYWJDb250ZW50Vmlldy5qcwpA
QCAtODcsNiArODcsMjYgQEAgV0kuQXVkaXRUYWJDb250ZW50VmlldyA9IGNsYXNzIEF1ZGl0VGFi
Q29udGVudFZpZXcgZXh0ZW5kcyBXSS5Db250ZW50QnJvd3NlclRhYkMKICAgICAgICAgc3VwZXIu
aGlkZGVuKCk7CiAgICAgfQogCisgICAgLy8gUHJvdGVjdGVkCisKKyAgICBpbml0aWFsTGF5b3V0
KCkKKyAgICB7CisgICAgICAgIHN1cGVyLmluaXRpYWxMYXlvdXQoKTsKKworICAgICAgICBXSS5v
YmplY3RTdG9yZXMuYXVkaXRzLmdldEFsbCgpLnRoZW4oKHJlc3VsdHMpID0+IHsKKyAgICAgICAg
ICAgIGZvciAobGV0IHBheWxvYWQgb2YgcmVzdWx0cykgeworICAgICAgICAgICAgICAgIGxldCB0
ZXN0ID0gV0kuQXVkaXRUZXN0R3JvdXAuZnJvbVBheWxvYWQocGF5bG9hZCkgfHwgV0kuQXVkaXRU
ZXN0Q2FzZS5mcm9tUGF5bG9hZChwYXlsb2FkKTsKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3Qp
CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICAgICAgY29uc3Qg
a2V5ID0gbnVsbDsKKyAgICAgICAgICAgICAgICBXSS5vYmplY3RTdG9yZXMuYXVkaXRzLm1hcmtP
YmplY3QodGVzdCwga2V5LCBwYXlsb2FkKTsKKworICAgICAgICAgICAgICAgIFdJLmF1ZGl0TWFu
YWdlci5hZGRUZXN0KHRlc3QpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9CisK
ICAgICAvLyBQcml2YXRlCiAKICAgICBfaGFuZGxlU3BhY2UoZXZlbnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BdWRpdFRyZWVFbGVtZW50
LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQXVkaXRUcmVl
RWxlbWVudC5qcwppbmRleCAyZjRmMjU5ZWI4Mi4uNTNhOTBlNzg5OWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0F1ZGl0VHJlZUVsZW1lbnQu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQXVkaXRU
cmVlRWxlbWVudC5qcwpAQCAtOTYsNiArOTYsMTkgQEAgV0kuQXVkaXRUcmVlRWxlbWVudCA9IGNs
YXNzIEF1ZGl0VHJlZUVsZW1lbnQgZXh0ZW5kcyBXSS5HZW5lcmFsVHJlZUVsZW1lbnQKICAgICAg
ICAgfQogICAgIH0KIAorICAgIG9uZGVsZXRlKCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLnJl
cHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRUZXN0Q2FzZVJlc3VsdCB8fCB0aGlz
LnJlcHJlc2VudGVkT2JqZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRUZXN0R3JvdXBSZXN1bHQpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKCEodGhpcy5wYXJlbnQgaW5z
dGFuY2VvZiBXSS5UcmVlT3V0bGluZSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICAgICAgV0kuYXVkaXRNYW5hZ2VyLnJlbW92ZVRlc3QodGhpcy5yZXByZXNlbnRlZE9iamVjdCk7
CisKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCiAgICAgcG9wdWxhdGVDb250ZXh0TWVu
dShjb250ZXh0TWVudSwgZXZlbnQpCiAgICAgewogICAgICAgICBpZiAoV0kuYXVkaXRNYW5hZ2Vy
LnJ1bm5pbmdTdGF0ZSA9PT0gV0kuQXVkaXRNYW5hZ2VyLlJ1bm5pbmdTdGF0ZS5JbmFjdGl2ZSkg
ewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDVjODJhMDRkOWYxLi5lODgyYTk2ZTE1OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBA
CisyMDE4LTEwLTI1ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBBdWRpdDogc2hvdyBtZXRhZGF0YSBmb3IgcmVzdWx0cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwODUzCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80NTUyNzYyMz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9tb2RlbC9vYmplY3RTdG9yZS9hZGQtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvbW9kZWwvb2JqZWN0U3RvcmUv
YWRkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9tb2RlbC9vYmplY3RTdG9yZS9h
ZGRPYmplY3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvbW9kZWwv
b2JqZWN0U3RvcmUvYWRkT2JqZWN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9t
b2RlbC9vYmplY3RTdG9yZS9iYXNpYy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGlu
c3BlY3Rvci9tb2RlbC9vYmplY3RTdG9yZS9iYXNpYy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvbW9kZWwvb2JqZWN0U3RvcmUvZGVsZXRlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL21vZGVsL29iamVjdFN0b3JlL2RlbGV0ZS5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBpbnNwZWN0b3IvbW9kZWwvb2JqZWN0U3RvcmUvZGVsZXRlT2JqZWN0LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL21vZGVsL29iamVjdFN0b3JlL2Rl
bGV0ZU9iamVjdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvbW9kZWwvb2JqZWN0
U3RvcmUvcmVzb3VyY2VzL29iamVjdFN0b3JlLXV0aWxpdGllcy5qczogQWRkZWQuCisgICAgICAg
IChUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyLkluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUu
VGVzdE9iamVjdCk6CisgICAgICAgIChUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyLkluc3Bl
Y3RvclRlc3QuT2JqZWN0U3RvcmUuVGVzdE9iamVjdC5wcm90b3R5cGUudG9KU09OKToKKyAgICAg
ICAgKFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIuSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9y
ZS5jcmVhdGVTdWl0ZSk6CisgICAgICAgIChUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyLklu
c3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuY3JlYXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAoVGVz
dFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplci5JbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmFkZCk6
CisgICAgICAgIChUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyLkluc3BlY3RvclRlc3QuT2Jq
ZWN0U3RvcmUuYWRkT2JqZWN0KToKKyAgICAgICAgKFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6
ZXIuSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5kZWxldGUpOgorICAgICAgICAoVGVzdFBhZ2Uu
cmVnaXN0ZXJJbml0aWFsaXplci5JbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmRlbGV0ZU9iamVj
dCk6CisgICAgICAgIChUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyLkluc3BlY3RvclRlc3Qu
T2JqZWN0U3RvcmUubG9nVmFsdWVzKToKKyAgICAgICAgKFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlh
bGl6ZXIuSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS53cmFwVGVzdCk6CisKIDIwMTgtMTAtMjMg
IERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IEF1ZGl0OiBjcmVhdGUgQXVkaXQgVGFiCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvbW9kZWwvb2JqZWN0U3RvcmUvYWRkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9tb2RlbC9vYmplY3RTdG9yZS9hZGQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xNDI2ZTBjNDNiZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9vYmplY3RTdG9yZS9hZGQtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNzggQEAKK1Rlc3RzIFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGQuCisK
KworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkCist
LSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZC5Ob1BhcmFt
ZXRlcnMKK1BBU1M6IFNob3VsZCBwcm9kdWNlIGFuIGV4Y2VwdGlvbi4KK1R5cGVFcnJvcjogTm90
IGVub3VnaCBhcmd1bWVudHMKK1tdCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RT
dG9yZS5wcm90b3R5cGUuYWRkLkJvb2xlYW4KK2FkZDogW2ZhbHNlXQorYWRkOiBbZmFsc2UsdHJ1
ZV0KK1tmYWxzZSx0cnVlXQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUu
cHJvdG90eXBlLmFkZC5OdW1iZXIKK2FkZDogWzExXQorYWRkOiBbMTEsMjJdCitbMTEsMjJdCisK
Ky0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkLlN0cmlu
ZworYWRkOiBbImZvbyJdCithZGQ6IFsiZm9vIiwiYmFyIl0KK1siZm9vIiwiYmFyIl0KKworLS0g
UnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGQuQXJyYXkKK2Fk
ZDogW1sxMV1dCithZGQ6IFtbMTFdLFsyMl1dCitbWzExXSxbMjJdXQorCistLSBSdW5uaW5nIHRl
c3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZC5OdWxsCithZGQ6IFtudWxsXQor
W251bGxdCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUu
YWRkLk9iamVjdC5XaXRob3V0S2V5UGF0aE9yQXV0b0luY3JlbWVudAorUEFTUzogU2hvdWxkIHBy
b2R1Y2UgYW4gZXhjZXB0aW9uLgorRGF0YUVycm9yOiBGYWlsZWQgdG8gc3RvcmUgcmVjb3JkIGlu
IGFuIElEQk9iamVjdFN0b3JlOiBUaGUgb2JqZWN0IHN0b3JlIHVzZXMgb3V0LW9mLWxpbmUga2V5
cyBhbmQgaGFzIG5vIGtleSBnZW5lcmF0b3IgYW5kIHRoZSBrZXkgcGFyYW1ldGVyIHdhcyBub3Qg
cHJvdmlkZWQuCitbXQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJv
dG90eXBlLmFkZC5PYmplY3QuS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVt
ZW50CitQQVNTOiBTaG91bGQgcHJvZHVjZSBhbiBleGNlcHRpb24uCitEYXRhRXJyb3I6IEZhaWxl
ZCB0byBzdG9yZSByZWNvcmQgaW4gYW4gSURCT2JqZWN0U3RvcmU6IEV2YWx1YXRpbmcgdGhlIG9i
amVjdCBzdG9yZSdzIGtleSBwYXRoIGRpZCBub3QgeWllbGQgYSB2YWx1ZS4KK1tdCisKKy0tIFJ1
bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkLk9iamVjdC5LZXlQ
YXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudAorYWRkOiBbeyJLZXlQYXRoU2V0T25P
YmplY3RXaXRob3V0QXV0b0luY3JlbWVudCI6NDIsImEiOjF9XQorYWRkOiBbeyJLZXlQYXRoU2V0
T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCI6NDIsImEiOjF9LHsiS2V5UGF0aFNldE9uT2Jq
ZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiOjk5LCJiIjoyfV0KK1t7IktleVBhdGhTZXRPbk9iamVj
dFdpdGhvdXRBdXRvSW5jcmVtZW50Ijo0MiwiYSI6MX0seyJLZXlQYXRoU2V0T25PYmplY3RXaXRo
b3V0QXV0b0luY3JlbWVudCI6OTksImIiOjJ9XQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0ku
T2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZC5PYmplY3QuS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdp
dGhBdXRvSW5jcmVtZW50CithZGQ6IFt7ImEiOjEsIktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRo
QXV0b0luY3JlbWVudCI6MX1dCithZGQ6IFt7ImEiOjEsIktleVBhdGhNaXNzaW5nT25PYmplY3RX
aXRoQXV0b0luY3JlbWVudCI6MX0seyJiIjoyLCJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1
dG9JbmNyZW1lbnQiOjJ9XQorW3siYSI6MSwiS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRv
SW5jcmVtZW50IjoxfSx7ImIiOjIsIktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3Jl
bWVudCI6Mn1dCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5
cGUuYWRkLk9iamVjdC5LZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudAorYWRkOiBb
eyJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6NDIsImEiOjF9XQorYWRkOiBb
eyJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6NDIsImEiOjF9LHsiS2V5UGF0
aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOjk5LCJiIjoyfV0KK1t7IktleVBhdGhTZXRP
bk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijo0MiwiYSI6MX0seyJLZXlQYXRoU2V0T25PYmplY3RX
aXRoQXV0b0luY3JlbWVudCI6OTksImIiOjJ9XQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0ku
T2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZC5PYmplY3QuQXV0b0luY3JlbWVudFdpdGhvdXRLZXlQ
YXRoCithZGQ6IFt7ImEiOjF9XQorYWRkOiBbeyJhIjoxfSx7ImIiOjJ9XQorW3siYSI6MX0seyJi
IjoyfV0KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5h
ZGQuT2JqZWN0LktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50LlN1YgorYWRk
OiBbeyJLZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCI6eyJTdWIiOjQyfSwi
YSI6MX1dCithZGQ6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Ijp7
IlN1YiI6NDJ9LCJhIjoxfSx7IktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50
Ijp7IlN1YiI6OTl9LCJiIjoyfV0KK1t7IktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5j
cmVtZW50Ijp7IlN1YiI6NDJ9LCJhIjoxfSx7IktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRv
SW5jcmVtZW50Ijp7IlN1YiI6OTl9LCJiIjoyfV0KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJ
Lk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGQuT2JqZWN0LktleVBhdGhNaXNzaW5nT25PYmplY3RX
aXRoQXV0b0luY3JlbWVudC5TdWIKK2FkZDogW3siYSI6MSwiS2V5UGF0aE1pc3NpbmdPbk9iamVj
dFdpdGhBdXRvSW5jcmVtZW50Ijp7IlN1YiI6MX19XQorYWRkOiBbeyJhIjoxLCJLZXlQYXRoTWlz
c2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOnsiU3ViIjoxfX0seyJiIjoyLCJLZXlQYXRo
TWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOnsiU3ViIjoyfX1dCitbeyJhIjoxLCJL
ZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOnsiU3ViIjoxfX0seyJiIjoy
LCJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOnsiU3ViIjoyfX1dCisK
Ky0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkLk9iamVj
dC5LZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudC5TdWIKK2FkZDogW3siS2V5UGF0
aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOnsiU3ViIjo0Mn0sImEiOjF9XQorYWRkOiBb
eyJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6eyJTdWIiOjQyfSwiYSI6MX0s
eyJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6eyJTdWIiOjk5fSwiYiI6Mn1d
CitbeyJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6eyJTdWIiOjQyfSwiYSI6
MX0seyJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6eyJTdWIiOjk5fSwiYiI6
Mn1dCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9vYmplY3RTdG9y
ZS9hZGQuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9vYmplY3RTdG9yZS9hZGQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNzUxNWY3N2Q3MTcK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwvb2JqZWN0U3Rv
cmUvYWRkLmh0bWwKQEAgLTAsMCArMSwxNTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9v
YmplY3RTdG9yZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRl
c3QoKQoreworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuY3JlYXRl
U3VpdGUoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGQiKTsKKworICAgIGZ1bmN0aW9uIHRl
c3RBZGQobmFtZSwge29wdGlvbnMsIHRlc3RzfSkgeworICAgICAgICBJbnNwZWN0b3JUZXN0Lk9i
amVjdFN0b3JlLndyYXBUZXN0KG5hbWUsIGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5jcmVhdGVPYmplY3RTdG9yZShvcHRpb25zKTsKKwor
ICAgICAgICAgICAgZm9yIChsZXQge3ZhbHVlLCBleHBlY3RlZH0gb2YgdGVzdHMpCisgICAgICAg
ICAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5hZGQodmFsdWUsIGV4cGVj
dGVkKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9y
ZS53cmFwVGVzdCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZC5Ob1BhcmFtZXRlcnMiLCBh
c3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgbGV0IG9iamVjdFN0b3JlID0gSW5zcGVjdG9yVGVz
dC5PYmplY3RTdG9yZS5jcmVhdGVPYmplY3RTdG9yZSgpOworCisgICAgICAgIGF3YWl0IEluc3Bl
Y3RvclRlc3QuZXhwZWN0RXhjZXB0aW9uKGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
YXdhaXQgb2JqZWN0U3RvcmUuYWRkKCk7CisgICAgICAgICAgICBhd2FpdCBvYmplY3RTdG9yZS5h
ZGQoSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDIpOworICAgICAgICB9KTsK
KyAgICB9KTsKKworICAgIHRlc3RBZGQoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGQuQm9v
bGVhbiIsIHsKKyAgICAgICAgb3B0aW9uczoge2F1dG9JbmNyZW1lbnQ6IHRydWV9LAorICAgICAg
ICB0ZXN0czogWworICAgICAgICAgICAge3ZhbHVlOiBmYWxzZSwgZXhwZWN0ZWQ6IDF9LAorICAg
ICAgICAgICAge3ZhbHVlOiB0cnVlLCBleHBlY3RlZDogMn0sCisgICAgICAgIF0sCisgICAgfSk7
CisKKyAgICB0ZXN0QWRkKCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkLk51bWJlciIsIHsK
KyAgICAgICAgb3B0aW9uczoge2F1dG9JbmNyZW1lbnQ6IHRydWV9LAorICAgICAgICB0ZXN0czog
WworICAgICAgICAgICAge3ZhbHVlOiAxMSwgZXhwZWN0ZWQ6IDF9LAorICAgICAgICAgICAge3Zh
bHVlOiAyMiwgZXhwZWN0ZWQ6IDJ9LAorICAgICAgICBdLAorICAgIH0pOworCisgICAgdGVzdEFk
ZCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZC5TdHJpbmciLCB7CisgICAgICAgIG9wdGlv
bnM6IHthdXRvSW5jcmVtZW50OiB0cnVlfSwKKyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAg
IHt2YWx1ZTogImZvbyIsIGV4cGVjdGVkOiAxfSwKKyAgICAgICAgICAgIHt2YWx1ZTogImJhciIs
IGV4cGVjdGVkOiAyfSwKKyAgICAgICAgXSwKKyAgICB9KTsKKworICAgIHRlc3RBZGQoIldJLk9i
amVjdFN0b3JlLnByb3RvdHlwZS5hZGQuQXJyYXkiLCB7CisgICAgICAgIG9wdGlvbnM6IHthdXRv
SW5jcmVtZW50OiB0cnVlfSwKKyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAgIHt2YWx1ZTog
WzExXSwgZXhwZWN0ZWQ6IDF9LAorICAgICAgICAgICAge3ZhbHVlOiBbMjJdLCBleHBlY3RlZDog
Mn0sCisgICAgICAgIF0sCisgICAgfSk7CisKKyAgICB0ZXN0QWRkKCJXSS5PYmplY3RTdG9yZS5w
cm90b3R5cGUuYWRkLk51bGwiLCB7CisgICAgICAgIG9wdGlvbnM6IHthdXRvSW5jcmVtZW50OiB0
cnVlfSwKKyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAgIHt2YWx1ZTogbnVsbCwgZXhwZWN0
ZWQ6IDF9LAorICAgICAgICBdLAorICAgIH0pOworCisgICAgSW5zcGVjdG9yVGVzdC5PYmplY3RT
dG9yZS53cmFwVGVzdCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZC5PYmplY3QuV2l0aG91
dEtleVBhdGhPckF1dG9JbmNyZW1lbnQiLCBhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgbGV0
IG9iamVjdFN0b3JlID0gSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5jcmVhdGVPYmplY3RTdG9y
ZSgpOworCisgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXhwZWN0RXhjZXB0aW9uKGFzeW5j
IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYXdhaXQgb2JqZWN0U3RvcmUuYWRkKEluc3BlY3Rv
clRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QxKTsKKyAgICAgICAgICAgIGF3YWl0IG9iamVj
dFN0b3JlLmFkZChJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0Mik7CisgICAg
ICAgIH0pOworICAgIH0pOworCisgICAgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS53cmFwVGVz
dCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZC5PYmplY3QuS2V5UGF0aE1pc3NpbmdPbk9i
amVjdFdpdGhvdXRBdXRvSW5jcmVtZW50IiwgYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgIGNv
bnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBrZXlQYXRoOiAiS2V5UGF0aE1pc3NpbmdPbk9i
amVjdFdpdGhvdXRBdXRvSW5jcmVtZW50IiwKKyAgICAgICAgfTsKKyAgICAgICAgbGV0IG9iamVj
dFN0b3JlID0gSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5jcmVhdGVPYmplY3RTdG9yZShvcHRp
b25zKTsKKworICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LmV4cGVjdEV4Y2VwdGlvbihhc3lu
YyBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGF3YWl0IG9iamVjdFN0b3JlLmFkZChJbnNwZWN0
b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MSk7CisgICAgICAgICAgICBhd2FpdCBvYmpl
Y3RTdG9yZS5hZGQoSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDIpOworICAg
ICAgICB9KTsKKyAgICB9KTsKKworICAgIHRlc3RBZGQoIldJLk9iamVjdFN0b3JlLnByb3RvdHlw
ZS5hZGQuT2JqZWN0LktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Iiwgewor
ICAgICAgICBvcHRpb25zOiB7a2V5UGF0aDogIktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRv
SW5jcmVtZW50In0sCisgICAgICAgIHRlc3RzOiBbCisgICAgICAgICAgICB7dmFsdWU6IHtLZXlQ
YXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudDogNDIsIC4uLkluc3BlY3RvclRlc3Qu
T2JqZWN0U3RvcmUuYmFzaWNPYmplY3QxfSwgZXhwZWN0ZWQ6IDQyfSwKKyAgICAgICAgICAgIHt2
YWx1ZToge0tleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50OiA5OSwgLi4uSW5z
cGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDJ9LCBleHBlY3RlZDogOTl9LAorICAg
ICAgICBdLAorICAgIH0pOworCisgICAgdGVzdEFkZCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBl
LmFkZC5PYmplY3QuS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Iiwgewor
ICAgICAgICBvcHRpb25zOiB7a2V5UGF0aDogIktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0
b0luY3JlbWVudCIsIGF1dG9JbmNyZW1lbnQ6IHRydWV9LAorICAgICAgICB0ZXN0czogWworICAg
ICAgICAgICAge3ZhbHVlOiBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MSwg
ZXhwZWN0ZWQ6IDF9LAorICAgICAgICAgICAge3ZhbHVlOiBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0
b3JlLmJhc2ljT2JqZWN0MiwgZXhwZWN0ZWQ6IDJ9LAorICAgICAgICBdLAorICAgIH0pOworCisg
ICAgdGVzdEFkZCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZC5PYmplY3QuS2V5UGF0aFNl
dE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiLCB7CisgICAgICAgIG9wdGlvbnM6IHtrZXlQYXRo
OiAiS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiLCBhdXRvSW5jcmVtZW50OiB0
cnVlfSwKKyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAgIHt2YWx1ZToge0tleVBhdGhTZXRP
bk9iamVjdFdpdGhBdXRvSW5jcmVtZW50OiA0MiwgLi4uSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9y
ZS5iYXNpY09iamVjdDF9LCBleHBlY3RlZDogNDJ9LAorICAgICAgICAgICAge3ZhbHVlOiB7S2V5
UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQ6IDk5LCAuLi5JbnNwZWN0b3JUZXN0Lk9i
amVjdFN0b3JlLmJhc2ljT2JqZWN0Mn0sIGV4cGVjdGVkOiA5OX0sCisgICAgICAgIF0sCisgICAg
fSk7CisKKyAgICB0ZXN0QWRkKCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkLk9iamVjdC5B
dXRvSW5jcmVtZW50V2l0aG91dEtleVBhdGgiLCB7CisgICAgICAgIG9wdGlvbnM6IHthdXRvSW5j
cmVtZW50OiB0cnVlfSwKKyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAgIHt2YWx1ZTogSW5z
cGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDEsIGV4cGVjdGVkOiAxfSwKKyAgICAg
ICAgICAgIHt2YWx1ZTogSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDIsIGV4
cGVjdGVkOiAyfSwKKyAgICAgICAgXSwKKyAgICB9KTsKKworICAgIHRlc3RBZGQoIldJLk9iamVj
dFN0b3JlLnByb3RvdHlwZS5hZGQuT2JqZWN0LktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRv
SW5jcmVtZW50LlN1YiIsIHsKKyAgICAgICAgb3B0aW9uczoge2tleVBhdGg6ICJLZXlQYXRoU2V0
T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudC5TdWIifSwKKyAgICAgICAgdGVzdHM6IFsKKyAg
ICAgICAgICAgIHt2YWx1ZToge0tleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50
OiB7U3ViOiA0Mn0sIC4uLkluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QxfSwg
ZXhwZWN0ZWQ6IDQyfSwKKyAgICAgICAgICAgIHt2YWx1ZToge0tleVBhdGhTZXRPbk9iamVjdFdp
dGhvdXRBdXRvSW5jcmVtZW50OiB7U3ViOiA5OX0sIC4uLkluc3BlY3RvclRlc3QuT2JqZWN0U3Rv
cmUuYmFzaWNPYmplY3QyfSwgZXhwZWN0ZWQ6IDk5fSwKKyAgICAgICAgXSwKKyAgICB9KTsKKwor
ICAgIHRlc3RBZGQoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGQuT2JqZWN0LktleVBhdGhN
aXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudC5TdWIiLCB7CisgICAgICAgIG9wdGlvbnM6
IHtrZXlQYXRoOiAiS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50LlN1YiIs
IGF1dG9JbmNyZW1lbnQ6IHRydWV9LAorICAgICAgICB0ZXN0czogWworICAgICAgICAgICAge3Zh
bHVlOiBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MSwgZXhwZWN0ZWQ6IDF9
LAorICAgICAgICAgICAge3ZhbHVlOiBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2Jq
ZWN0MiwgZXhwZWN0ZWQ6IDJ9LAorICAgICAgICBdLAorICAgIH0pOworCisgICAgdGVzdEFkZCgi
V0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZC5PYmplY3QuS2V5UGF0aFNldE9uT2JqZWN0V2l0
aEF1dG9JbmNyZW1lbnQuU3ViIiwgeworICAgICAgICBvcHRpb25zOiB7a2V5UGF0aDogIktleVBh
dGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50LlN1YiIsIGF1dG9JbmNyZW1lbnQ6IHRydWV9
LAorICAgICAgICB0ZXN0czogWworICAgICAgICAgICAge3ZhbHVlOiB7S2V5UGF0aFNldE9uT2Jq
ZWN0V2l0aEF1dG9JbmNyZW1lbnQ6IHtTdWI6IDQyfSwgLi4uSW5zcGVjdG9yVGVzdC5PYmplY3RT
dG9yZS5iYXNpY09iamVjdDF9LCBleHBlY3RlZDogNDJ9LAorICAgICAgICAgICAge3ZhbHVlOiB7
S2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQ6IHtTdWI6IDk5fSwgLi4uSW5zcGVj
dG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDJ9LCBleHBlY3RlZDogOTl9LAorICAgICAg
ICBdLAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICA8cD5UZXN0
cyBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9vYmplY3RTdG9yZS9hZGRPYmpl
Y3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL29iamVjdFN0b3Jl
L2FkZE9iamVjdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLmY3ZmNlNzY1MmFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL21vZGVsL29iamVjdFN0b3JlL2FkZE9iamVjdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1
NCBAQAorVGVzdHMgV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZE9iamVjdC4KKworCis9PSBS
dW5uaW5nIHRlc3Qgc3VpdGU6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGRPYmplY3QKKy0t
IFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkT2JqZWN0Lk5v
UGFyYW1ldGVycworUEFTUzogU2hvdWxkIHByb2R1Y2UgYW4gZXhjZXB0aW9uLgorVHlwZUVycm9y
OiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnb2JqZWN0LnRvSlNPTicp
CitbXQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFk
ZE9iamVjdC5XaXRob3V0S2V5UGF0aE9yQXV0b0luY3JlbWVudAorUEFTUzogU2hvdWxkIHByb2R1
Y2UgYW4gZXhjZXB0aW9uLgorRGF0YUVycm9yOiBGYWlsZWQgdG8gc3RvcmUgcmVjb3JkIGluIGFu
IElEQk9iamVjdFN0b3JlOiBUaGUgb2JqZWN0IHN0b3JlIHVzZXMgb3V0LW9mLWxpbmUga2V5cyBh
bmQgaGFzIG5vIGtleSBnZW5lcmF0b3IgYW5kIHRoZSBrZXkgcGFyYW1ldGVyIHdhcyBub3QgcHJv
dmlkZWQuCitbXQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90
eXBlLmFkZE9iamVjdC5LZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQK
K1BBU1M6IFNob3VsZCBwcm9kdWNlIGFuIGV4Y2VwdGlvbi4KK0RhdGFFcnJvcjogRmFpbGVkIHRv
IHN0b3JlIHJlY29yZCBpbiBhbiBJREJPYmplY3RTdG9yZTogRXZhbHVhdGluZyB0aGUgb2JqZWN0
IHN0b3JlJ3Mga2V5IHBhdGggZGlkIG5vdCB5aWVsZCBhIHZhbHVlLgorW10KKworLS0gUnVubmlu
ZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGRPYmplY3QuS2V5UGF0aFNl
dE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQKK2FkZE9iamVjdDogW3siS2V5UGF0aFNldE9u
T2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiOjQyLCJhIjoxfV0KK2FkZE9iamVjdDogW3siS2V5
UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiOjQyLCJhIjoxfSx7IktleVBhdGhT
ZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Ijo5OSwiYiI6Mn1dCitbeyJLZXlQYXRoU2V0
T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCI6NDIsImEiOjF9LHsiS2V5UGF0aFNldE9uT2Jq
ZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiOjk5LCJiIjoyfV0KKworLS0gUnVubmluZyB0ZXN0IGNh
c2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGRPYmplY3QuS2V5UGF0aE1pc3NpbmdPbk9i
amVjdFdpdGhBdXRvSW5jcmVtZW50CithZGRPYmplY3Q6IFt7ImEiOjEsIktleVBhdGhNaXNzaW5n
T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6MX1dCithZGRPYmplY3Q6IFt7ImEiOjEsIktleVBh
dGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6MX0seyJiIjoyLCJLZXlQYXRoTWlz
c2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOjJ9XQorW3siYSI6MSwiS2V5UGF0aE1pc3Np
bmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50IjoxfSx7ImIiOjIsIktleVBhdGhNaXNzaW5nT25P
YmplY3RXaXRoQXV0b0luY3JlbWVudCI6Mn1dCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5P
YmplY3RTdG9yZS5wcm90b3R5cGUuYWRkT2JqZWN0LktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRv
SW5jcmVtZW50CithZGRPYmplY3Q6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVt
ZW50Ijo0MiwiYSI6MX1dCithZGRPYmplY3Q6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRv
SW5jcmVtZW50Ijo0MiwiYSI6MX0seyJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVu
dCI6OTksImIiOjJ9XQorW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOjQy
LCJhIjoxfSx7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijo5OSwiYiI6Mn1d
CisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkT2Jq
ZWN0LkF1dG9JbmNyZW1lbnRXaXRob3V0S2V5UGF0aAorYWRkT2JqZWN0OiBbeyJhIjoxfV0KK2Fk
ZE9iamVjdDogW3siYSI6MX0seyJiIjoyfV0KK1t7ImEiOjF9LHsiYiI6Mn1dCisKKy0tIFJ1bm5p
bmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkT2JqZWN0LktleVBhdGhT
ZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50LlN1YgorYWRkT2JqZWN0OiBbeyJLZXlQYXRo
U2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCI6eyJTdWIiOjQyfSwiYSI6MX1dCithZGRP
YmplY3Q6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Ijp7IlN1YiI6
NDJ9LCJhIjoxfSx7IktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Ijp7IlN1
YiI6OTl9LCJiIjoyfV0KK1t7IktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50
Ijp7IlN1YiI6NDJ9LCJhIjoxfSx7IktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVt
ZW50Ijp7IlN1YiI6OTl9LCJiIjoyfV0KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVj
dFN0b3JlLnByb3RvdHlwZS5hZGRPYmplY3QuS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRv
SW5jcmVtZW50LlN1YgorYWRkT2JqZWN0OiBbeyJhIjoxLCJLZXlQYXRoTWlzc2luZ09uT2JqZWN0
V2l0aEF1dG9JbmNyZW1lbnQiOnsiU3ViIjoxfX1dCithZGRPYmplY3Q6IFt7ImEiOjEsIktleVBh
dGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6eyJTdWIiOjF9fSx7ImIiOjIsIktl
eVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6eyJTdWIiOjJ9fV0KK1t7ImEi
OjEsIktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6eyJTdWIiOjF9fSx7
ImIiOjIsIktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6eyJTdWIiOjJ9
fV0KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGRP
YmplY3QuS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQuU3ViCithZGRPYmplY3Q6
IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijp7IlN1YiI6NDJ9LCJhIjox
fV0KK2FkZE9iamVjdDogW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOnsi
U3ViIjo0Mn0sImEiOjF9LHsiS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOnsi
U3ViIjo5OX0sImIiOjJ9XQorW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQi
OnsiU3ViIjo0Mn0sImEiOjF9LHsiS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQi
OnsiU3ViIjo5OX0sImIiOjJ9XQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
bW9kZWwvb2JqZWN0U3RvcmUvYWRkT2JqZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
bW9kZWwvb2JqZWN0U3RvcmUvYWRkT2JqZWN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjAzNTIzZmI1ZjgyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL21vZGVsL29iamVjdFN0b3JlL2FkZE9iamVjdC5odG1sCkBAIC0wLDAgKzEs
MTEzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvb2JqZWN0U3RvcmUtdXRpbGl0aWVzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBsZXQgc3VpdGUg
PSBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmNyZWF0ZVN1aXRlKCJXSS5PYmplY3RTdG9yZS5w
cm90b3R5cGUuYWRkT2JqZWN0Iik7CisKKyAgICBmdW5jdGlvbiB0ZXN0QWRkT2JqZWN0KG5hbWUs
IHtvcHRpb25zLCB0ZXN0c30pIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS53
cmFwVGVzdChuYW1lLCBhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QuT2JqZWN0U3RvcmUuY3JlYXRlT2JqZWN0U3RvcmUob3B0aW9ucyk7CisKKyAgICAgICAgICAg
IGZvciAobGV0IHt2YWx1ZSwgZXhwZWN0ZWR9IG9mIHRlc3RzKQorICAgICAgICAgICAgICAgIGF3
YWl0IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYWRkT2JqZWN0KG5ldyBJbnNwZWN0b3JUZXN0
Lk9iamVjdFN0b3JlLlRlc3RPYmplY3QodmFsdWUpLCBleHBlY3RlZCk7CisgICAgICAgIH0pOwor
ICAgIH0KKworICAgIEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUud3JhcFRlc3QoIldJLk9iamVj
dFN0b3JlLnByb3RvdHlwZS5hZGRPYmplY3QuTm9QYXJhbWV0ZXJzIiwgYXN5bmMgZnVuY3Rpb24o
KSB7CisgICAgICAgIGxldCBvYmplY3RTdG9yZSA9IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUu
Y3JlYXRlT2JqZWN0U3RvcmUoKTsKKworICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LmV4cGVj
dEV4Y2VwdGlvbihhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGF3YWl0IG9iamVjdFN0
b3JlLmFkZE9iamVjdCgpOworICAgICAgICAgICAgYXdhaXQgb2JqZWN0U3RvcmUuYWRkT2JqZWN0
KG5ldyBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLlRlc3RPYmplY3QoSW5zcGVjdG9yVGVzdC5P
YmplY3RTdG9yZS5iYXNpY09iamVjdDIpKTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBJ
bnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLndyYXBUZXN0KCJXSS5PYmplY3RTdG9yZS5wcm90b3R5
cGUuYWRkT2JqZWN0LldpdGhvdXRLZXlQYXRoT3JBdXRvSW5jcmVtZW50IiwgYXN5bmMgZnVuY3Rp
b24oKSB7CisgICAgICAgIGxldCBvYmplY3RTdG9yZSA9IEluc3BlY3RvclRlc3QuT2JqZWN0U3Rv
cmUuY3JlYXRlT2JqZWN0U3RvcmUoKTsKKworICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LmV4
cGVjdEV4Y2VwdGlvbihhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGF3YWl0IG9iamVj
dFN0b3JlLmFkZE9iamVjdChuZXcgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5UZXN0T2JqZWN0
KEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QxKSk7CisgICAgICAgICAgICBh
d2FpdCBvYmplY3RTdG9yZS5hZGRPYmplY3QobmV3IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUu
VGVzdE9iamVjdChJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MikpOworICAg
ICAgICB9KTsKKyAgICB9KTsKKworICAgIEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUud3JhcFRl
c3QoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGRPYmplY3QuS2V5UGF0aE1pc3NpbmdPbk9i
amVjdFdpdGhvdXRBdXRvSW5jcmVtZW50IiwgYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgIGNv
bnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBrZXlQYXRoOiAiS2V5UGF0aE1pc3NpbmdPbk9i
amVjdFdpdGhvdXRBdXRvSW5jcmVtZW50IiwKKyAgICAgICAgfTsKKyAgICAgICAgbGV0IG9iamVj
dFN0b3JlID0gSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5jcmVhdGVPYmplY3RTdG9yZShvcHRp
b25zKTsKKworICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LmV4cGVjdEV4Y2VwdGlvbihhc3lu
YyBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGF3YWl0IG9iamVjdFN0b3JlLmFkZE9iamVjdChu
ZXcgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5UZXN0T2JqZWN0KEluc3BlY3RvclRlc3QuT2Jq
ZWN0U3RvcmUuYmFzaWNPYmplY3QxKSk7CisgICAgICAgICAgICBhd2FpdCBvYmplY3RTdG9yZS5h
ZGRPYmplY3QobmV3IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuVGVzdE9iamVjdChJbnNwZWN0
b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MikpOworICAgICAgICB9KTsKKyAgICB9KTsK
KworICAgIHRlc3RBZGRPYmplY3QoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGRPYmplY3Qu
S2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiLCB7CisgICAgICAgIG9wdGlv
bnM6IHtrZXlQYXRoOiAiS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQifSwK
KyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAgIHt2YWx1ZToge0tleVBhdGhTZXRPbk9iamVj
dFdpdGhvdXRBdXRvSW5jcmVtZW50OiA0MiwgLi4uSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5i
YXNpY09iamVjdDF9LCBleHBlY3RlZDogNDJ9LAorICAgICAgICAgICAge3ZhbHVlOiB7S2V5UGF0
aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQ6IDk5LCAuLi5JbnNwZWN0b3JUZXN0Lk9i
amVjdFN0b3JlLmJhc2ljT2JqZWN0Mn0sIGV4cGVjdGVkOiA5OX0sCisgICAgICAgIF0sCisgICAg
fSk7CisKKyAgICB0ZXN0QWRkT2JqZWN0KCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkT2Jq
ZWN0LktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCIsIHsKKyAgICAgICAg
b3B0aW9uczoge2tleVBhdGg6ICJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1l
bnQiLCBhdXRvSW5jcmVtZW50OiB0cnVlfSwKKyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAg
IHt2YWx1ZTogSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDEsIGV4cGVjdGVk
OiAxfSwKKyAgICAgICAgICAgIHt2YWx1ZTogSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNp
Y09iamVjdDIsIGV4cGVjdGVkOiAyfSwKKyAgICAgICAgXSwKKyAgICB9KTsKKworICAgIHRlc3RB
ZGRPYmplY3QoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGRPYmplY3QuS2V5UGF0aFNldE9u
T2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiLCB7CisgICAgICAgIG9wdGlvbnM6IHtrZXlQYXRoOiAi
S2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiLCBhdXRvSW5jcmVtZW50OiB0cnVl
fSwKKyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAgIHt2YWx1ZToge0tleVBhdGhTZXRPbk9i
amVjdFdpdGhBdXRvSW5jcmVtZW50OiA0MiwgLi4uSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5i
YXNpY09iamVjdDF9LCBleHBlY3RlZDogNDJ9LAorICAgICAgICAgICAge3ZhbHVlOiB7S2V5UGF0
aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQ6IDk5LCAuLi5JbnNwZWN0b3JUZXN0Lk9iamVj
dFN0b3JlLmJhc2ljT2JqZWN0Mn0sIGV4cGVjdGVkOiA5OX0sCisgICAgICAgIF0sCisgICAgfSk7
CisKKyAgICB0ZXN0QWRkT2JqZWN0KCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkT2JqZWN0
LkF1dG9JbmNyZW1lbnRXaXRob3V0S2V5UGF0aCIsIHsKKyAgICAgICAgb3B0aW9uczoge2F1dG9J
bmNyZW1lbnQ6IHRydWV9LAorICAgICAgICB0ZXN0czogWworICAgICAgICAgICAge3ZhbHVlOiBJ
bnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MSwgZXhwZWN0ZWQ6IDF9LAorICAg
ICAgICAgICAge3ZhbHVlOiBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0Miwg
ZXhwZWN0ZWQ6IDJ9LAorICAgICAgICBdLAorICAgIH0pOworCisgICAgdGVzdEFkZE9iamVjdCgi
V0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZE9iamVjdC5LZXlQYXRoU2V0T25PYmplY3RXaXRo
b3V0QXV0b0luY3JlbWVudC5TdWIiLCB7CisgICAgICAgIG9wdGlvbnM6IHtrZXlQYXRoOiAiS2V5
UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQuU3ViIn0sCisgICAgICAgIHRlc3Rz
OiBbCisgICAgICAgICAgICB7dmFsdWU6IHtLZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0lu
Y3JlbWVudDoge1N1YjogNDJ9LCAuLi5JbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2Jq
ZWN0MX0sIGV4cGVjdGVkOiA0Mn0sCisgICAgICAgICAgICB7dmFsdWU6IHtLZXlQYXRoU2V0T25P
YmplY3RXaXRob3V0QXV0b0luY3JlbWVudDoge1N1YjogOTl9LCAuLi5JbnNwZWN0b3JUZXN0Lk9i
amVjdFN0b3JlLmJhc2ljT2JqZWN0Mn0sIGV4cGVjdGVkOiA5OX0sCisgICAgICAgIF0sCisgICAg
fSk7CisKKyAgICB0ZXN0QWRkT2JqZWN0KCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkT2Jq
ZWN0LktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudC5TdWIiLCB7CisgICAg
ICAgIG9wdGlvbnM6IHtrZXlQYXRoOiAiS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5j
cmVtZW50LlN1YiIsIGF1dG9JbmNyZW1lbnQ6IHRydWV9LAorICAgICAgICB0ZXN0czogWworICAg
ICAgICAgICAge3ZhbHVlOiBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MSwg
ZXhwZWN0ZWQ6IDF9LAorICAgICAgICAgICAge3ZhbHVlOiBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0
b3JlLmJhc2ljT2JqZWN0MiwgZXhwZWN0ZWQ6IDJ9LAorICAgICAgICBdLAorICAgIH0pOworCisg
ICAgdGVzdEFkZE9iamVjdCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZE9iamVjdC5LZXlQ
YXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudC5TdWIiLCB7CisgICAgICAgIG9wdGlvbnM6
IHtrZXlQYXRoOiAiS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQuU3ViIiwgYXV0
b0luY3JlbWVudDogdHJ1ZX0sCisgICAgICAgIHRlc3RzOiBbCisgICAgICAgICAgICB7dmFsdWU6
IHtLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudDoge1N1YjogNDJ9LCAuLi5JbnNw
ZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MX0sIGV4cGVjdGVkOiA0Mn0sCisgICAg
ICAgICAgICB7dmFsdWU6IHtLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudDoge1N1
YjogOTl9LCAuLi5JbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0Mn0sIGV4cGVj
dGVkOiA5OX0sCisgICAgICAgIF0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNB
bmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0
KCkiPgorICAgIDxwPlRlc3RzIFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGRPYmplY3QuPC9w
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21v
ZGVsL29iamVjdFN0b3JlL2Jhc2ljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9tb2RlbC9vYmplY3RTdG9yZS9iYXNpYy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjA2YTRjNmZmNmViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL29iamVjdFN0b3JlL2Jhc2ljLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDE5IEBACitUZXN0cyBiYXNpYyBmdW5jdGlvbmFsaXR5IG9mIFdJLk9iamVjdFN0
b3JlLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogV0kuT2JqZWN0U3RvcmUKKy0tIFJ1bm5p
bmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5Jbml0aWFsbHlOdWxsCitQQVNTOiBUaGUgZGF0
YWJhc2Ugc2hvdWxkIGluaXRpYWxseSBiZSBudWxsL2Nsb3NlZC4KKworLS0gUnVubmluZyB0ZXN0
IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5fcmVzb2x2ZUtleVBhdGguRXhpc3RzCit7
Im9iamVjdCI6eyJhIjoxfSwia2V5IjpbImEiXSwidmFsdWUiOjF9CitbXQorCistLSBSdW5uaW5n
IHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLl9yZXNvbHZlS2V5UGF0aC5NaXNz
aW5nUGFydAoreyJvYmplY3QiOnsic3ViLmEiOjAsImEiOjEsImIiOjJ9LCJrZXkiOiJzdWIuYSIs
InZhbHVlIjowfQorW10KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnBy
b3RvdHlwZS5fcmVzb2x2ZUtleVBhdGguTWlzc2luZ1dob2xlCit7Im9iamVjdCI6eyJhIjoxLCJi
IjoyfSwia2V5Ijoic3ViLmEifQorW10KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL21vZGVsL29iamVjdFN0b3JlL2Jhc2ljLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
bW9kZWwvb2JqZWN0U3RvcmUvYmFzaWMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uNTQ3ZmRkYWViMzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvbW9kZWwvb2JqZWN0U3RvcmUvYmFzaWMuaHRtbApAQCAtMCwwICsxLDUyIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvb2JqZWN0U3RvcmUtdXRpbGl0aWVzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0
b3JUZXN0Lk9iamVjdFN0b3JlLmNyZWF0ZVN1aXRlKCJXSS5PYmplY3RTdG9yZSIpOworCisgICAg
SW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS53cmFwVGVzdCgiV0kuT2JqZWN0U3RvcmUuSW5pdGlh
bGx5TnVsbCIsIGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVj
dE51bGwoV0kuT2JqZWN0U3RvcmUuX2RhdGFiYXNlLCAiVGhlIGRhdGFiYXNlIHNob3VsZCBpbml0
aWFsbHkgYmUgbnVsbC9jbG9zZWQuIik7CisgICAgfSk7CisKKyAgICBJbnNwZWN0b3JUZXN0Lk9i
amVjdFN0b3JlLndyYXBUZXN0KCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuX3Jlc29sdmVLZXlQ
YXRoLkV4aXN0cyIsIGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICBjb25zdCBvcHRpb25zID0g
eworICAgICAgICAgICAga2V5UGF0aDogInN1Yi5hIiwKKyAgICAgICAgfTsKKyAgICAgICAgbGV0
IG9iamVjdFN0b3JlID0gSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5jcmVhdGVPYmplY3RTdG9y
ZShvcHRpb25zKTsKKworICAgICAgICBjb25zdCBvYmplY3QgPSB7c3ViOiB7YTogMX0sIGI6IDJ9
OworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhvYmplY3RTdG9yZS5fcmVzb2x2ZUtleVBhdGgo
b2JqZWN0KSk7CisgICAgfSk7CisKKyAgICBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLndyYXBU
ZXN0KCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuX3Jlc29sdmVLZXlQYXRoLk1pc3NpbmdQYXJ0
IiwgYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAg
ICAgICBrZXlQYXRoOiAic3ViLmEiLAorICAgICAgICB9OworICAgICAgICBsZXQgb2JqZWN0U3Rv
cmUgPSBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmNyZWF0ZU9iamVjdFN0b3JlKG9wdGlvbnMp
OworCisgICAgICAgIGNvbnN0IG9iamVjdCA9IHsic3ViLmEiOiAwLCBhOiAxLCBiOiAyfTsKKyAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2cob2JqZWN0U3RvcmUuX3Jlc29sdmVLZXlQYXRoKG9iamVj
dCkpOworICAgIH0pOworCisgICAgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS53cmFwVGVzdCgi
V0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLl9yZXNvbHZlS2V5UGF0aC5NaXNzaW5nV2hvbGUiLCBh
c3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAg
IGtleVBhdGg6ICJzdWIuYSIsCisgICAgICAgIH07CisgICAgICAgIGxldCBvYmplY3RTdG9yZSA9
IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuY3JlYXRlT2JqZWN0U3RvcmUob3B0aW9ucyk7CisK
KyAgICAgICAgY29uc3Qgb2JqZWN0ID0ge2E6IDEsIGI6IDJ9OworICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZyhvYmplY3RTdG9yZS5fcmVzb2x2ZUtleVBhdGgob2JqZWN0KSk7CisgICAgfSk7CisK
KyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxwPlRlc3RzIGJhc2ljIGZ1bmN0aW9u
YWxpdHkgb2YgV0kuT2JqZWN0U3RvcmUuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL29iamVjdFN0b3JlL2RlbGV0ZS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwvb2JqZWN0U3RvcmUvZGVsZXRlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNDQ4M2U1
Y2U1NjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwvb2Jq
ZWN0U3RvcmUvZGVsZXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwOCBAQAorVGVzdHMgV0ku
T2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZS4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6
IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBX
SS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlLk5vUGFyYW1ldGVycworYWRkOiBbeyJiIjoy
fV0KK1BBU1M6IFNob3VsZCBwcm9kdWNlIGFuIGV4Y2VwdGlvbi4KK1R5cGVFcnJvcjogTm90IGVu
b3VnaCBhcmd1bWVudHMKK1t7ImIiOjJ9XQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2Jq
ZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZS5NaXNzaW5nT2JqZWN0CithZGQ6IFt7ImIiOjJ9XQor
UEFTUzogU2hvdWxkIHByb2R1Y2UgYW4gZXhjZXB0aW9uLgorRGF0YUVycm9yOiBGYWlsZWQgdG8g
ZXhlY3V0ZSAnZGVsZXRlJyBvbiAnSURCT2JqZWN0U3RvcmUnOiBUaGUgcGFyYW1ldGVyIGlzIG5v
dCBhIHZhbGlkIGtleS4KK1t7ImIiOjJ9XQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2Jq
ZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZS5Cb29sZWFuCithZGQ6IFtmYWxzZV0KK2FkZDogW2Zh
bHNlLHRydWVdCitkZWxldGU6IFt0cnVlXQorZGVsZXRlOiBbXQorW10KKworLS0gUnVubmluZyB0
ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGUuTnVtYmVyCithZGQ6IFsx
MV0KK2FkZDogWzExLDIyXQorZGVsZXRlOiBbMjJdCitkZWxldGU6IFtdCitbXQorCistLSBSdW5u
aW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZS5TdHJpbmcKK2Fk
ZDogWyJmb28iXQorYWRkOiBbImZvbyIsImJhciJdCitkZWxldGU6IFsiYmFyIl0KK2RlbGV0ZTog
W10KK1tdCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUu
ZGVsZXRlLkFycmF5CithZGQ6IFtbMTFdXQorYWRkOiBbWzExXSxbMjJdXQorZGVsZXRlOiBbWzIy
XV0KK2RlbGV0ZTogW10KK1tdCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9y
ZS5wcm90b3R5cGUuZGVsZXRlLk51bGwKK2FkZDogW251bGxdCitkZWxldGU6IFtdCitbXQorCist
LSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZS5PYmpl
Y3QuV2l0aG91dEtleVBhdGhPckF1dG9JbmNyZW1lbnQKK1BBU1M6IFNob3VsZCBwcm9kdWNlIGFu
IGV4Y2VwdGlvbi4KK0RhdGFFcnJvcjogRmFpbGVkIHRvIHN0b3JlIHJlY29yZCBpbiBhbiBJREJP
YmplY3RTdG9yZTogVGhlIG9iamVjdCBzdG9yZSB1c2VzIG91dC1vZi1saW5lIGtleXMgYW5kIGhh
cyBubyBrZXkgZ2VuZXJhdG9yIGFuZCB0aGUga2V5IHBhcmFtZXRlciB3YXMgbm90IHByb3ZpZGVk
LgorW10KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5k
ZWxldGUuT2JqZWN0LktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudAor
UEFTUzogU2hvdWxkIHByb2R1Y2UgYW4gZXhjZXB0aW9uLgorRGF0YUVycm9yOiBGYWlsZWQgdG8g
c3RvcmUgcmVjb3JkIGluIGFuIElEQk9iamVjdFN0b3JlOiBFdmFsdWF0aW5nIHRoZSBvYmplY3Qg
c3RvcmUncyBrZXkgcGF0aCBkaWQgbm90IHlpZWxkIGEgdmFsdWUuCitbXQorCistLSBSdW5uaW5n
IHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZS5PYmplY3QuS2V5UGF0
aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQKK2FkZDogW3siS2V5UGF0aFNldE9uT2Jq
ZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiOjQyLCJhIjoxfV0KK2FkZDogW3siS2V5UGF0aFNldE9u
T2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiOjQyLCJhIjoxfSx7IktleVBhdGhTZXRPbk9iamVj
dFdpdGhvdXRBdXRvSW5jcmVtZW50Ijo5OSwiYiI6Mn1dCitkZWxldGU6IFt7IktleVBhdGhTZXRP
bk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Ijo5OSwiYiI6Mn1dCitkZWxldGU6IFtdCitbXQor
CistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZS5P
YmplY3QuS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50CithZGQ6IFt7ImEi
OjEsIktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6MX1dCithZGQ6IFt7
ImEiOjEsIktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6MX0seyJiIjoy
LCJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOjJ9XQorZGVsZXRlOiBb
eyJiIjoyLCJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOjJ9XQorZGVs
ZXRlOiBbXQorW10KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3Rv
dHlwZS5kZWxldGUuT2JqZWN0LktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Cith
ZGQ6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijo0MiwiYSI6MX1dCith
ZGQ6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijo0MiwiYSI6MX0seyJL
ZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6OTksImIiOjJ9XQorZGVsZXRlOiBb
eyJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6OTksImIiOjJ9XQorZGVsZXRl
OiBbXQorW10KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlw
ZS5kZWxldGUuT2JqZWN0LkF1dG9JbmNyZW1lbnRXaXRob3V0S2V5UGF0aAorYWRkOiBbeyJhIjox
fV0KK2FkZDogW3siYSI6MX0seyJiIjoyfV0KK2RlbGV0ZTogW3siYiI6Mn1dCitkZWxldGU6IFtd
CitbXQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRl
bGV0ZS5PYmplY3QuS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQuU3ViCith
ZGQ6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Ijp7IlN1YiI6NDJ9
LCJhIjoxfV0KK2FkZDogW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQi
OnsiU3ViIjo0Mn0sImEiOjF9LHsiS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1l
bnQiOnsiU3ViIjo5OX0sImIiOjJ9XQorZGVsZXRlOiBbeyJLZXlQYXRoU2V0T25PYmplY3RXaXRo
b3V0QXV0b0luY3JlbWVudCI6eyJTdWIiOjk5fSwiYiI6Mn1dCitkZWxldGU6IFtdCitbXQorCist
LSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZS5PYmpl
Y3QuS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50LlN1YgorYWRkOiBbeyJh
IjoxLCJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOnsiU3ViIjoxfX1d
CithZGQ6IFt7ImEiOjEsIktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6
eyJTdWIiOjF9fSx7ImIiOjIsIktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVu
dCI6eyJTdWIiOjJ9fV0KK2RlbGV0ZTogW3siYiI6MiwiS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdp
dGhBdXRvSW5jcmVtZW50Ijp7IlN1YiI6Mn19XQorZGVsZXRlOiBbXQorW10KKworLS0gUnVubmlu
ZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGUuT2JqZWN0LktleVBh
dGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50LlN1YgorYWRkOiBbeyJLZXlQYXRoU2V0T25P
YmplY3RXaXRoQXV0b0luY3JlbWVudCI6eyJTdWIiOjQyfSwiYSI6MX1dCithZGQ6IFt7IktleVBh
dGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijp7IlN1YiI6NDJ9LCJhIjoxfSx7IktleVBh
dGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijp7IlN1YiI6OTl9LCJiIjoyfV0KK2RlbGV0
ZTogW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOnsiU3ViIjo5OX0sImIi
OjJ9XQorZGVsZXRlOiBbXQorW10KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L21vZGVsL29iamVjdFN0b3JlL2RlbGV0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21v
ZGVsL29iamVjdFN0b3JlL2RlbGV0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi4xODUxMTllYWFiMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9tb2RlbC9vYmplY3RTdG9yZS9kZWxldGUuaHRtbApAQCAtMCwwICsxLDE3NSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2h0
dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL29iamVjdFN0b3JlLXV0aWxpdGllcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0gSW5zcGVj
dG9yVGVzdC5PYmplY3RTdG9yZS5jcmVhdGVTdWl0ZSgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBl
LmRlbGV0ZSIpOworCisgICAgZnVuY3Rpb24gdGVzdERlbGV0ZShuYW1lLCB7b3B0aW9ucywgdGVz
dHN9KSB7CisgICAgICAgIEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUud3JhcFRlc3QobmFtZSwg
YXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3Jl
LmNyZWF0ZU9iamVjdFN0b3JlKG9wdGlvbnMpOworCisgICAgICAgICAgICBsZXQga2V5cyA9IFtd
OworICAgICAgICAgICAgZm9yIChsZXQge3ZhbHVlLCBleHBlY3RlZH0gb2YgdGVzdHMpCisgICAg
ICAgICAgICAgICAga2V5cy5wdXNoKGF3YWl0IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYWRk
KHZhbHVlLCBleHBlY3RlZCkpOworCisgICAgICAgICAgICBmb3IgKGxldCBrZXkgb2Yga2V5cykK
KyAgICAgICAgICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmRlbGV0ZShr
ZXkpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3Jl
LndyYXBUZXN0KCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlLk5vUGFyYW1ldGVycyIs
IGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAg
ICAgYXV0b0luY3JlbWVudDogdHJ1ZSwKKyAgICAgICAgfTsKKyAgICAgICAgbGV0IG9iamVjdFN0
b3JlID0gSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5jcmVhdGVPYmplY3RTdG9yZShvcHRpb25z
KTsKKworICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmFkZChJbnNwZWN0
b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MiwgMSk7CisKKyAgICAgICAgYXdhaXQgSW5z
cGVjdG9yVGVzdC5leHBlY3RFeGNlcHRpb24oYXN5bmMgKCkgPT4geworICAgICAgICAgICAgYXdh
aXQgb2JqZWN0U3RvcmUuZGVsZXRlKCk7CisgICAgICAgICAgICBhd2FpdCBvYmplY3RTdG9yZS5k
ZWxldGUoSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDIpOworICAgICAgICB9
KTsKKyAgICB9KTsKKworICAgIEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUud3JhcFRlc3QoIldJ
Lk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGUuTWlzc2luZ09iamVjdCIsIGFzeW5jIGZ1bmN0
aW9uKCkgeworICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAgYXV0b0luY3Jl
bWVudDogdHJ1ZSwKKyAgICAgICAgfTsKKyAgICAgICAgbGV0IG9iamVjdFN0b3JlID0gSW5zcGVj
dG9yVGVzdC5PYmplY3RTdG9yZS5jcmVhdGVPYmplY3RTdG9yZShvcHRpb25zKTsKKworICAgICAg
ICBhd2FpdCBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmFkZChJbnNwZWN0b3JUZXN0Lk9iamVj
dFN0b3JlLmJhc2ljT2JqZWN0MiwgMSk7CisKKyAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5l
eHBlY3RFeGNlcHRpb24oYXN5bmMgKCkgPT4geworICAgICAgICAgICAgYXdhaXQgb2JqZWN0U3Rv
cmUuZGVsZXRlKEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QxKTsKKyAgICAg
ICAgICAgIGF3YWl0IG9iamVjdFN0b3JlLmRlbGV0ZShJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3Jl
LmJhc2ljT2JqZWN0Mik7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgdGVzdERlbGV0ZSgi
V0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZS5Cb29sZWFuIiwgeworICAgICAgICBvcHRp
b25zOiB7YXV0b0luY3JlbWVudDogdHJ1ZX0sCisgICAgICAgIHRlc3RzOiBbCisgICAgICAgICAg
ICB7dmFsdWU6IGZhbHNlLCBleHBlY3RlZDogMX0sCisgICAgICAgICAgICB7dmFsdWU6IHRydWUs
IGV4cGVjdGVkOiAyfSwKKyAgICAgICAgXSwKKyAgICB9KTsKKworICAgIHRlc3REZWxldGUoIldJ
Lk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGUuTnVtYmVyIiwgeworICAgICAgICBvcHRpb25z
OiB7YXV0b0luY3JlbWVudDogdHJ1ZX0sCisgICAgICAgIHRlc3RzOiBbCisgICAgICAgICAgICB7
dmFsdWU6IDExLCBleHBlY3RlZDogMX0sCisgICAgICAgICAgICB7dmFsdWU6IDIyLCBleHBlY3Rl
ZDogMn0sCisgICAgICAgIF0sCisgICAgfSk7CisKKyAgICB0ZXN0RGVsZXRlKCJXSS5PYmplY3RT
dG9yZS5wcm90b3R5cGUuZGVsZXRlLlN0cmluZyIsIHsKKyAgICAgICAgb3B0aW9uczoge2F1dG9J
bmNyZW1lbnQ6IHRydWV9LAorICAgICAgICB0ZXN0czogWworICAgICAgICAgICAge3ZhbHVlOiAi
Zm9vIiwgZXhwZWN0ZWQ6IDF9LAorICAgICAgICAgICAge3ZhbHVlOiAiYmFyIiwgZXhwZWN0ZWQ6
IDJ9LAorICAgICAgICBdLAorICAgIH0pOworCisgICAgdGVzdERlbGV0ZSgiV0kuT2JqZWN0U3Rv
cmUucHJvdG90eXBlLmRlbGV0ZS5BcnJheSIsIHsKKyAgICAgICAgb3B0aW9uczoge2F1dG9JbmNy
ZW1lbnQ6IHRydWV9LAorICAgICAgICB0ZXN0czogWworICAgICAgICAgICAge3ZhbHVlOiBbMTFd
LCBleHBlY3RlZDogMX0sCisgICAgICAgICAgICB7dmFsdWU6IFsyMl0sIGV4cGVjdGVkOiAyfSwK
KyAgICAgICAgXSwKKyAgICB9KTsKKworICAgIHRlc3REZWxldGUoIldJLk9iamVjdFN0b3JlLnBy
b3RvdHlwZS5kZWxldGUuTnVsbCIsIHsKKyAgICAgICAgb3B0aW9uczoge2F1dG9JbmNyZW1lbnQ6
IHRydWV9LAorICAgICAgICB0ZXN0czogWworICAgICAgICAgICAge3ZhbHVlOiBudWxsLCBleHBl
Y3RlZDogMX0sCisgICAgICAgIF0sCisgICAgfSk7CisKKyAgICBJbnNwZWN0b3JUZXN0Lk9iamVj
dFN0b3JlLndyYXBUZXN0KCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlLk9iamVjdC5X
aXRob3V0S2V5UGF0aE9yQXV0b0luY3JlbWVudCIsIGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAg
ICBsZXQgb2JqZWN0U3RvcmUgPSBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmNyZWF0ZU9iamVj
dFN0b3JlKCk7CisKKyAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5leHBlY3RFeGNlcHRpb24o
YXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBhd2FpdCBvYmplY3RTdG9yZS5hZGQoSW5z
cGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDEpOworICAgICAgICAgICAgYXdhaXQg
b2JqZWN0U3RvcmUuYWRkKEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyKTsK
KyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLndy
YXBUZXN0KCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlLk9iamVjdC5LZXlQYXRoTWlz
c2luZ09uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiLCBhc3luYyBmdW5jdGlvbigpIHsKKyAg
ICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIGtleVBhdGg6ICJLZXlQYXRoTWlz
c2luZ09uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiLAorICAgICAgICB9OworICAgICAgICBs
ZXQgb2JqZWN0U3RvcmUgPSBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmNyZWF0ZU9iamVjdFN0
b3JlKG9wdGlvbnMpOworCisgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXhwZWN0RXhjZXB0
aW9uKGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYXdhaXQgb2JqZWN0U3RvcmUuYWRk
KEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QxKTsKKyAgICAgICAgICAgIGF3
YWl0IG9iamVjdFN0b3JlLmFkZChJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0
Mik7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgdGVzdERlbGV0ZSgiV0kuT2JqZWN0U3Rv
cmUucHJvdG90eXBlLmRlbGV0ZS5PYmplY3QuS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9J
bmNyZW1lbnQiLCB7CisgICAgICAgIG9wdGlvbnM6IHtrZXlQYXRoOiAiS2V5UGF0aFNldE9uT2Jq
ZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQifSwKKyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAg
IHt2YWx1ZToge0tleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50OiA0MiwgLi4u
SW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDF9LCBleHBlY3RlZDogNDJ9LAor
ICAgICAgICAgICAge3ZhbHVlOiB7S2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1l
bnQ6IDk5LCAuLi5JbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0Mn0sIGV4cGVj
dGVkOiA5OX0sCisgICAgICAgIF0sCisgICAgfSk7CisKKyAgICB0ZXN0RGVsZXRlKCJXSS5PYmpl
Y3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlLk9iamVjdC5LZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0
aEF1dG9JbmNyZW1lbnQiLCB7CisgICAgICAgIG9wdGlvbnM6IHtrZXlQYXRoOiAiS2V5UGF0aE1p
c3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50IiwgYXV0b0luY3JlbWVudDogdHJ1ZX0sCisg
ICAgICAgIHRlc3RzOiBbCisgICAgICAgICAgICB7dmFsdWU6IEluc3BlY3RvclRlc3QuT2JqZWN0
U3RvcmUuYmFzaWNPYmplY3QxLCBleHBlY3RlZDogMX0sCisgICAgICAgICAgICB7dmFsdWU6IElu
c3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyLCBleHBlY3RlZDogMn0sCisgICAg
ICAgIF0sCisgICAgfSk7CisKKyAgICB0ZXN0RGVsZXRlKCJXSS5PYmplY3RTdG9yZS5wcm90b3R5
cGUuZGVsZXRlLk9iamVjdC5LZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCIsIHsK
KyAgICAgICAgb3B0aW9uczoge2tleVBhdGg6ICJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0lu
Y3JlbWVudCIsIGF1dG9JbmNyZW1lbnQ6IHRydWV9LAorICAgICAgICB0ZXN0czogWworICAgICAg
ICAgICAge3ZhbHVlOiB7S2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQ6IDQyLCAu
Li5JbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MX0sIGV4cGVjdGVkOiA0Mn0s
CisgICAgICAgICAgICB7dmFsdWU6IHtLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVu
dDogOTksIC4uLkluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyfSwgZXhwZWN0
ZWQ6IDk5fSwKKyAgICAgICAgXSwKKyAgICB9KTsKKworICAgIHRlc3REZWxldGUoIldJLk9iamVj
dFN0b3JlLnByb3RvdHlwZS5kZWxldGUuT2JqZWN0LkF1dG9JbmNyZW1lbnRXaXRob3V0S2V5UGF0
aCIsIHsKKyAgICAgICAgb3B0aW9uczoge2F1dG9JbmNyZW1lbnQ6IHRydWV9LAorICAgICAgICB0
ZXN0czogWworICAgICAgICAgICAge3ZhbHVlOiBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJh
c2ljT2JqZWN0MSwgZXhwZWN0ZWQ6IDF9LAorICAgICAgICAgICAge3ZhbHVlOiBJbnNwZWN0b3JU
ZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MiwgZXhwZWN0ZWQ6IDJ9LAorICAgICAgICBdLAor
ICAgIH0pOworCisgICAgdGVzdERlbGV0ZSgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0
ZS5PYmplY3QuS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQuU3ViIiwgewor
ICAgICAgICBvcHRpb25zOiB7a2V5UGF0aDogIktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRv
SW5jcmVtZW50LlN1YiJ9LAorICAgICAgICB0ZXN0czogWworICAgICAgICAgICAge3ZhbHVlOiB7
S2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQ6IHtTdWI6IDQyfSwgLi4uSW5z
cGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDF9LCBleHBlY3RlZDogNDJ9LAorICAg
ICAgICAgICAge3ZhbHVlOiB7S2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQ6
IHtTdWI6IDk5fSwgLi4uSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDJ9LCBl
eHBlY3RlZDogOTl9LAorICAgICAgICBdLAorICAgIH0pOworCisgICAgdGVzdERlbGV0ZSgiV0ku
T2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZS5PYmplY3QuS2V5UGF0aE1pc3NpbmdPbk9iamVj
dFdpdGhBdXRvSW5jcmVtZW50LlN1YiIsIHsKKyAgICAgICAgb3B0aW9uczoge2tleVBhdGg6ICJL
ZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQuU3ViIiwgYXV0b0luY3JlbWVu
dDogdHJ1ZX0sCisgICAgICAgIHRlc3RzOiBbCisgICAgICAgICAgICB7dmFsdWU6IEluc3BlY3Rv
clRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QxLCBleHBlY3RlZDogMX0sCisgICAgICAgICAg
ICB7dmFsdWU6IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyLCBleHBlY3Rl
ZDogMn0sCisgICAgICAgIF0sCisgICAgfSk7CisKKyAgICB0ZXN0RGVsZXRlKCJXSS5PYmplY3RT
dG9yZS5wcm90b3R5cGUuZGVsZXRlLk9iamVjdC5LZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0lu
Y3JlbWVudC5TdWIiLCB7CisgICAgICAgIG9wdGlvbnM6IHtrZXlQYXRoOiAiS2V5UGF0aFNldE9u
T2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQuU3ViIiwgYXV0b0luY3JlbWVudDogdHJ1ZX0sCisgICAg
ICAgIHRlc3RzOiBbCisgICAgICAgICAgICB7dmFsdWU6IHtLZXlQYXRoU2V0T25PYmplY3RXaXRo
QXV0b0luY3JlbWVudDoge1N1YjogNDJ9LCAuLi5JbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJh
c2ljT2JqZWN0MX0sIGV4cGVjdGVkOiA0Mn0sCisgICAgICAgICAgICB7dmFsdWU6IHtLZXlQYXRo
U2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudDoge1N1YjogOTl9LCAuLi5JbnNwZWN0b3JUZXN0
Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0Mn0sIGV4cGVjdGVkOiA5OX0sCisgICAgICAgIF0sCisg
ICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxwPlRlc3RzIFdJLk9i
amVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGUuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL29iamVjdFN0b3JlL2RlbGV0ZU9iamVj
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9kZWwvb2JqZWN0U3RvcmUv
ZGVsZXRlT2JqZWN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uZDlkOWFkOTYyOWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvbW9kZWwvb2JqZWN0U3RvcmUvZGVsZXRlT2JqZWN0LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDgwIEBACitUZXN0cyBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlT2JqZWN0Lgor
CisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0
ZU9iamVjdAorLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5k
ZWxldGVPYmplY3QuTm9QYXJhbWV0ZXJzCithZGQ6IFt7Il9vYmplY3QiOnsiYiI6Mn19XQorUEFT
UzogU2hvdWxkIHByb2R1Y2UgYW4gZXhjZXB0aW9uLgorVHlwZUVycm9yOiB1bmRlZmluZWQgaXMg
bm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnb2JqZWN0W2tleV0nKQorW3siX29iamVjdCI6eyJi
IjoyfX1dCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUu
ZGVsZXRlT2JqZWN0Lk1pc3NpbmdPYmplY3QKK2FkZDogW3siX29iamVjdCI6eyJiIjoyfX1dCitQ
QVNTOiBTaG91bGQgcHJvZHVjZSBhbiBleGNlcHRpb24uCitEYXRhRXJyb3I6IEZhaWxlZCB0byBl
eGVjdXRlICdkZWxldGUnIG9uICdJREJPYmplY3RTdG9yZSc6IFRoZSBwYXJhbWV0ZXIgaXMgbm90
IGEgdmFsaWQga2V5IHJhbmdlLgorW3siX29iamVjdCI6eyJiIjoyfX1dCisKKy0tIFJ1bm5pbmcg
dGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlT2JqZWN0LktleVBhdGhN
aXNzaW5nT25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudAorUEFTUzogU2hvdWxkIHByb2R1Y2Ug
YW4gZXhjZXB0aW9uLgorRGF0YUVycm9yOiBGYWlsZWQgdG8gZXhlY3V0ZSAnZGVsZXRlJyBvbiAn
SURCT2JqZWN0U3RvcmUnOiBUaGUgcGFyYW1ldGVyIGlzIG5vdCBhIHZhbGlkIGtleSByYW5nZS4K
K1tdCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVs
ZXRlT2JqZWN0LldpdGhvdXRLZXlQYXRoT3JBdXRvSW5jcmVtZW50CitQQVNTOiBTaG91bGQgcHJv
ZHVjZSBhbiBleGNlcHRpb24uCitEYXRhRXJyb3I6IEZhaWxlZCB0byBzdG9yZSByZWNvcmQgaW4g
YW4gSURCT2JqZWN0U3RvcmU6IFRoZSBvYmplY3Qgc3RvcmUgdXNlcyBvdXQtb2YtbGluZSBrZXlz
IGFuZCBoYXMgbm8ga2V5IGdlbmVyYXRvciBhbmQgdGhlIGtleSBwYXJhbWV0ZXIgd2FzIG5vdCBw
cm92aWRlZC4KK1tdCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90
b3R5cGUuZGVsZXRlT2JqZWN0LktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRob3V0QXV0b0luY3Jl
bWVudAorUEFTUzogU2hvdWxkIHByb2R1Y2UgYW4gZXhjZXB0aW9uLgorRGF0YUVycm9yOiBGYWls
ZWQgdG8gc3RvcmUgcmVjb3JkIGluIGFuIElEQk9iamVjdFN0b3JlOiBFdmFsdWF0aW5nIHRoZSBv
YmplY3Qgc3RvcmUncyBrZXkgcGF0aCBkaWQgbm90IHlpZWxkIGEgdmFsdWUuCitbXQorCistLSBS
dW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZU9iamVjdC5L
ZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudAorYWRkT2JqZWN0OiBbeyJLZXlQ
YXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCI6NDIsImEiOjF9XQorYWRkT2JqZWN0
OiBbeyJLZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCI6NDIsImEiOjF9LHsi
S2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiOjk5LCJiIjoyfV0KK2RlbGV0
ZU9iamVjdDogW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiOjk5LCJi
IjoyfV0KK2RlbGV0ZU9iamVjdDogW10KK1tdCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5P
YmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlT2JqZWN0LktleVBhdGhNaXNzaW5nT25PYmplY3RX
aXRoQXV0b0luY3JlbWVudAorYWRkT2JqZWN0OiBbeyJhIjoxLCJLZXlQYXRoTWlzc2luZ09uT2Jq
ZWN0V2l0aEF1dG9JbmNyZW1lbnQiOjF9XQorYWRkT2JqZWN0OiBbeyJhIjoxLCJLZXlQYXRoTWlz
c2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOjF9LHsiYiI6MiwiS2V5UGF0aE1pc3NpbmdP
bk9iamVjdFdpdGhBdXRvSW5jcmVtZW50IjoyfV0KK2RlbGV0ZU9iamVjdDogW3siYiI6MiwiS2V5
UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50IjoyfV0KK2RlbGV0ZU9iamVjdDog
W10KK1tdCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUu
ZGVsZXRlT2JqZWN0LktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50CithZGRPYmpl
Y3Q6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijo0MiwiYSI6MX1dCith
ZGRPYmplY3Q6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijo0MiwiYSI6
MX0seyJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6OTksImIiOjJ9XQorZGVs
ZXRlT2JqZWN0OiBbeyJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6OTksImIi
OjJ9XQorZGVsZXRlT2JqZWN0OiBbXQorW10KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9i
amVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGVPYmplY3QuQXV0b0luY3JlbWVudFdpdGhvdXRLZXlQ
YXRoCithZGRPYmplY3Q6IFt7ImEiOjF9XQorYWRkT2JqZWN0OiBbeyJhIjoxfSx7ImIiOjJ9XQor
ZGVsZXRlT2JqZWN0OiBbeyJiIjoyfV0KK2RlbGV0ZU9iamVjdDogW10KK1tdCisKKy0tIFJ1bm5p
bmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlT2JqZWN0LktleVBh
dGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50LlN1YgorYWRkT2JqZWN0OiBbeyJLZXlQ
YXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCI6eyJTdWIiOjQyfSwiYSI6MX1dCith
ZGRPYmplY3Q6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Ijp7IlN1
YiI6NDJ9LCJhIjoxfSx7IktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Ijp7
IlN1YiI6OTl9LCJiIjoyfV0KK2RlbGV0ZU9iamVjdDogW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0
aG91dEF1dG9JbmNyZW1lbnQiOnsiU3ViIjo5OX0sImIiOjJ9XQorZGVsZXRlT2JqZWN0OiBbXQor
W10KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxl
dGVPYmplY3QuS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50LlN1YgorYWRk
T2JqZWN0OiBbeyJhIjoxLCJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQi
OnsiU3ViIjoxfX1dCithZGRPYmplY3Q6IFt7ImEiOjEsIktleVBhdGhNaXNzaW5nT25PYmplY3RX
aXRoQXV0b0luY3JlbWVudCI6eyJTdWIiOjF9fSx7ImIiOjIsIktleVBhdGhNaXNzaW5nT25PYmpl
Y3RXaXRoQXV0b0luY3JlbWVudCI6eyJTdWIiOjJ9fV0KK2RlbGV0ZU9iamVjdDogW3siYiI6Miwi
S2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijp7IlN1YiI6Mn19XQorZGVs
ZXRlT2JqZWN0OiBbXQorW10KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3Jl
LnByb3RvdHlwZS5kZWxldGVPYmplY3QuS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1l
bnQuU3ViCithZGRPYmplY3Q6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50
Ijp7IlN1YiI6NDJ9LCJhIjoxfV0KK2FkZE9iamVjdDogW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0
aEF1dG9JbmNyZW1lbnQiOnsiU3ViIjo0Mn0sImEiOjF9LHsiS2V5UGF0aFNldE9uT2JqZWN0V2l0
aEF1dG9JbmNyZW1lbnQiOnsiU3ViIjo5OX0sImIiOjJ9XQorZGVsZXRlT2JqZWN0OiBbeyJLZXlQ
YXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6eyJTdWIiOjk5fSwiYiI6Mn1dCitkZWxl
dGVPYmplY3Q6IFtdCitbXQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvbW9k
ZWwvb2JqZWN0U3RvcmUvZGVsZXRlT2JqZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
bW9kZWwvb2JqZWN0U3RvcmUvZGVsZXRlT2JqZWN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjcyMjFiYmI2N2E2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL21vZGVsL29iamVjdFN0b3JlL2RlbGV0ZU9iamVjdC5odG1sCkBAIC0w
LDAgKzEsMTUxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvb2JqZWN0U3RvcmUtdXRpbGl0
aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBsZXQg
c3VpdGUgPSBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmNyZWF0ZVN1aXRlKCJXSS5PYmplY3RT
dG9yZS5wcm90b3R5cGUuZGVsZXRlT2JqZWN0Iik7CisKKyAgICBmdW5jdGlvbiB0ZXN0RGVsZXRl
T2JqZWN0KG5hbWUsIHtvcHRpb25zLCB0ZXN0c30pIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5P
YmplY3RTdG9yZS53cmFwVGVzdChuYW1lLCBhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuY3JlYXRlT2JqZWN0U3RvcmUob3B0aW9ucyk7CisK
KyAgICAgICAgICAgIGxldCBvYmplY3RzID0gW10KKyAgICAgICAgICAgIGZvciAobGV0IHt2YWx1
ZSwgZXhwZWN0ZWR9IG9mIHRlc3RzKSB7CisgICAgICAgICAgICAgICAgbGV0IG9iamVjdCA9IG5l
dyBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLlRlc3RPYmplY3QodmFsdWUpOworICAgICAgICAg
ICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYWRkT2JqZWN0KG9iamVjdCwg
ZXhwZWN0ZWQpOworICAgICAgICAgICAgICAgIG9iamVjdHMucHVzaChvYmplY3QpOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICBmb3IgKGxldCBvYmplY3Qgb2Ygb2JqZWN0cykKKyAgICAg
ICAgICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmRlbGV0ZU9iamVjdChv
YmplY3QpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0
b3JlLndyYXBUZXN0KCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlT2JqZWN0Lk5vUGFy
YW1ldGVycyIsIGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICBjb25zdCBvcHRpb25zID0gewor
ICAgICAgICAgICAgYXV0b0luY3JlbWVudDogdHJ1ZSwKKyAgICAgICAgfTsKKyAgICAgICAgbGV0
IG9iamVjdFN0b3JlID0gSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5jcmVhdGVPYmplY3RTdG9y
ZShvcHRpb25zKTsKKworICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmFk
ZChuZXcgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5UZXN0T2JqZWN0KEluc3BlY3RvclRlc3Qu
T2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyKSwgMSk7CisKKyAgICAgICAgYXdhaXQgSW5zcGVjdG9y
VGVzdC5leHBlY3RFeGNlcHRpb24oYXN5bmMgKCkgPT4geworICAgICAgICAgICAgYXdhaXQgb2Jq
ZWN0U3RvcmUuZGVsZXRlT2JqZWN0KCk7CisgICAgICAgICAgICBhd2FpdCBvYmplY3RTdG9yZS5k
ZWxldGVPYmplY3QobmV3IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuVGVzdE9iamVjdChJbnNw
ZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MikpOworICAgICAgICB9KTsKKyAgICB9
KTsKKworICAgIEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUud3JhcFRlc3QoIldJLk9iamVjdFN0
b3JlLnByb3RvdHlwZS5kZWxldGVPYmplY3QuTWlzc2luZ09iamVjdCIsIGFzeW5jIGZ1bmN0aW9u
KCkgeworICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAgYXV0b0luY3JlbWVu
dDogdHJ1ZSwKKyAgICAgICAgfTsKKyAgICAgICAgbGV0IG9iamVjdFN0b3JlID0gSW5zcGVjdG9y
VGVzdC5PYmplY3RTdG9yZS5jcmVhdGVPYmplY3RTdG9yZShvcHRpb25zKTsKKworICAgICAgICBh
d2FpdCBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmFkZChuZXcgSW5zcGVjdG9yVGVzdC5PYmpl
Y3RTdG9yZS5UZXN0T2JqZWN0KEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3Qy
KSwgMSk7CisKKyAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5leHBlY3RFeGNlcHRpb24oYXN5
bmMgKCkgPT4geworICAgICAgICAgICAgYXdhaXQgb2JqZWN0U3RvcmUuZGVsZXRlT2JqZWN0KG5l
dyBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLlRlc3RPYmplY3QoSW5zcGVjdG9yVGVzdC5PYmpl
Y3RTdG9yZS5iYXNpY09iamVjdDEpKTsKKyAgICAgICAgICAgIGF3YWl0IG9iamVjdFN0b3JlLmRl
bGV0ZU9iamVjdChuZXcgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5UZXN0T2JqZWN0KEluc3Bl
Y3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyKSk7CisgICAgICAgIH0pOworICAgIH0p
OworCisgICAgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS53cmFwVGVzdCgiV0kuT2JqZWN0U3Rv
cmUucHJvdG90eXBlLmRlbGV0ZU9iamVjdC5LZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aG91dEF1
dG9JbmNyZW1lbnQiLCBhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9
IHsKKyAgICAgICAgICAgIGtleVBhdGg6ICJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aG91dEF1
dG9JbmNyZW1lbnQiLAorICAgICAgICB9OworICAgICAgICBsZXQgb2JqZWN0U3RvcmUgPSBJbnNw
ZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmNyZWF0ZU9iamVjdFN0b3JlKG9wdGlvbnMpOworCisgICAg
ICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXhwZWN0RXhjZXB0aW9uKGFzeW5jIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgYXdhaXQgb2JqZWN0U3RvcmUuZGVsZXRlT2JqZWN0KG5ldyBJbnNwZWN0
b3JUZXN0Lk9iamVjdFN0b3JlLlRlc3RPYmplY3QoSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5i
YXNpY09iamVjdDEpKTsKKyAgICAgICAgICAgIGF3YWl0IG9iamVjdFN0b3JlLmRlbGV0ZU9iamVj
dChuZXcgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5UZXN0T2JqZWN0KEluc3BlY3RvclRlc3Qu
T2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyKSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAg
SW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS53cmFwVGVzdCgiV0kuT2JqZWN0U3RvcmUucHJvdG90
eXBlLmRlbGV0ZU9iamVjdC5XaXRob3V0S2V5UGF0aE9yQXV0b0luY3JlbWVudCIsIGFzeW5jIGZ1
bmN0aW9uKCkgeworICAgICAgICBsZXQgb2JqZWN0U3RvcmUgPSBJbnNwZWN0b3JUZXN0Lk9iamVj
dFN0b3JlLmNyZWF0ZU9iamVjdFN0b3JlKCk7CisKKyAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVz
dC5leHBlY3RFeGNlcHRpb24oYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBhd2FpdCBv
YmplY3RTdG9yZS5hZGQoSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDEpOwor
ICAgICAgICAgICAgYXdhaXQgb2JqZWN0U3RvcmUuYWRkKEluc3BlY3RvclRlc3QuT2JqZWN0U3Rv
cmUuYmFzaWNPYmplY3QyKTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBJbnNwZWN0b3JU
ZXN0Lk9iamVjdFN0b3JlLndyYXBUZXN0KCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRl
T2JqZWN0LktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCIsIGFzeW5j
IGZ1bmN0aW9uKCkgeworICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAga2V5
UGF0aDogIktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCIsCisgICAg
ICAgIH07CisgICAgICAgIGxldCBvYmplY3RTdG9yZSA9IEluc3BlY3RvclRlc3QuT2JqZWN0U3Rv
cmUuY3JlYXRlT2JqZWN0U3RvcmUob3B0aW9ucyk7CisKKyAgICAgICAgYXdhaXQgSW5zcGVjdG9y
VGVzdC5leHBlY3RFeGNlcHRpb24oYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBhd2Fp
dCBvYmplY3RTdG9yZS5hZGQoSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDEp
OworICAgICAgICAgICAgYXdhaXQgb2JqZWN0U3RvcmUuYWRkKEluc3BlY3RvclRlc3QuT2JqZWN0
U3RvcmUuYmFzaWNPYmplY3QyKTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICB0ZXN0RGVs
ZXRlT2JqZWN0KCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlT2JqZWN0LktleVBhdGhT
ZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50IiwgeworICAgICAgICBvcHRpb25zOiB7a2V5
UGF0aDogIktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50In0sCisgICAgICAg
IHRlc3RzOiBbCisgICAgICAgICAgICB7dmFsdWU6IHtLZXlQYXRoU2V0T25PYmplY3RXaXRob3V0
QXV0b0luY3JlbWVudDogNDIsIC4uLkluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmpl
Y3QxfSwgZXhwZWN0ZWQ6IDQyfSwKKyAgICAgICAgICAgIHt2YWx1ZToge0tleVBhdGhTZXRPbk9i
amVjdFdpdGhvdXRBdXRvSW5jcmVtZW50OiA5OSwgLi4uSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9y
ZS5iYXNpY09iamVjdDJ9LCBleHBlY3RlZDogOTl9LAorICAgICAgICBdLAorICAgIH0pOworCisg
ICAgdGVzdERlbGV0ZU9iamVjdCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZU9iamVj
dC5LZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiLCB7CisgICAgICAgIG9w
dGlvbnM6IHtrZXlQYXRoOiAiS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50
IiwgYXV0b0luY3JlbWVudDogdHJ1ZX0sCisgICAgICAgIHRlc3RzOiBbCisgICAgICAgICAgICB7
dmFsdWU6IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QxLCBleHBlY3RlZDog
MX0sCisgICAgICAgICAgICB7dmFsdWU6IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNP
YmplY3QyLCBleHBlY3RlZDogMn0sCisgICAgICAgIF0sCisgICAgfSk7CisKKyAgICB0ZXN0RGVs
ZXRlT2JqZWN0KCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlT2JqZWN0LktleVBhdGhT
ZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50IiwgeworICAgICAgICBvcHRpb25zOiB7a2V5UGF0
aDogIktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50IiwgYXV0b0luY3JlbWVudDog
dHJ1ZX0sCisgICAgICAgIHRlc3RzOiBbCisgICAgICAgICAgICB7dmFsdWU6IHtLZXlQYXRoU2V0
T25PYmplY3RXaXRoQXV0b0luY3JlbWVudDogNDIsIC4uLkluc3BlY3RvclRlc3QuT2JqZWN0U3Rv
cmUuYmFzaWNPYmplY3QxfSwgZXhwZWN0ZWQ6IDQyfSwKKyAgICAgICAgICAgIHt2YWx1ZToge0tl
eVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50OiA5OSwgLi4uSW5zcGVjdG9yVGVzdC5P
YmplY3RTdG9yZS5iYXNpY09iamVjdDJ9LCBleHBlY3RlZDogOTl9LAorICAgICAgICBdLAorICAg
IH0pOworCisgICAgdGVzdERlbGV0ZU9iamVjdCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRl
bGV0ZU9iamVjdC5BdXRvSW5jcmVtZW50V2l0aG91dEtleVBhdGgiLCB7CisgICAgICAgIG9wdGlv
bnM6IHthdXRvSW5jcmVtZW50OiB0cnVlfSwKKyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAg
IHt2YWx1ZTogSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDEsIGV4cGVjdGVk
OiAxfSwKKyAgICAgICAgICAgIHt2YWx1ZTogSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNp
Y09iamVjdDIsIGV4cGVjdGVkOiAyfSwKKyAgICAgICAgXSwKKyAgICB9KTsKKworICAgIHRlc3RE
ZWxldGVPYmplY3QoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGVPYmplY3QuS2V5UGF0
aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQuU3ViIiwgeworICAgICAgICBvcHRpb25z
OiB7a2V5UGF0aDogIktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50LlN1YiJ9
LAorICAgICAgICB0ZXN0czogWworICAgICAgICAgICAge3ZhbHVlOiB7S2V5UGF0aFNldE9uT2Jq
ZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQ6IHtTdWI6IDQyfSwgLi4uSW5zcGVjdG9yVGVzdC5PYmpl
Y3RTdG9yZS5iYXNpY09iamVjdDF9LCBleHBlY3RlZDogNDJ9LAorICAgICAgICAgICAge3ZhbHVl
OiB7S2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQ6IHtTdWI6IDk5fSwgLi4u
SW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDJ9LCBleHBlY3RlZDogOTl9LAor
ICAgICAgICBdLAorICAgIH0pOworCisgICAgdGVzdERlbGV0ZU9iamVjdCgiV0kuT2JqZWN0U3Rv
cmUucHJvdG90eXBlLmRlbGV0ZU9iamVjdC5LZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9J
bmNyZW1lbnQuU3ViIiwgeworICAgICAgICBvcHRpb25zOiB7a2V5UGF0aDogIktleVBhdGhNaXNz
aW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudC5TdWIiLCBhdXRvSW5jcmVtZW50OiB0cnVlfSwK
KyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAgIHt2YWx1ZTogSW5zcGVjdG9yVGVzdC5PYmpl
Y3RTdG9yZS5iYXNpY09iamVjdDEsIGV4cGVjdGVkOiAxfSwKKyAgICAgICAgICAgIHt2YWx1ZTog
SW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDIsIGV4cGVjdGVkOiAyfSwKKyAg
ICAgICAgXSwKKyAgICB9KTsKKworICAgIHRlc3REZWxldGVPYmplY3QoIldJLk9iamVjdFN0b3Jl
LnByb3RvdHlwZS5kZWxldGVPYmplY3QuS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1l
bnQuU3ViIiwgeworICAgICAgICBvcHRpb25zOiB7a2V5UGF0aDogIktleVBhdGhTZXRPbk9iamVj
dFdpdGhBdXRvSW5jcmVtZW50LlN1YiIsIGF1dG9JbmNyZW1lbnQ6IHRydWV9LAorICAgICAgICB0
ZXN0czogWworICAgICAgICAgICAge3ZhbHVlOiB7S2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9J
bmNyZW1lbnQ6IHtTdWI6IDQyfSwgLi4uSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09i
amVjdDF9LCBleHBlY3RlZDogNDJ9LAorICAgICAgICAgICAge3ZhbHVlOiB7S2V5UGF0aFNldE9u
T2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQ6IHtTdWI6IDk5fSwgLi4uSW5zcGVjdG9yVGVzdC5PYmpl
Y3RTdG9yZS5iYXNpY09iamVjdDJ9LCBleHBlY3RlZDogOTl9LAorICAgICAgICBdLAorICAgIH0p
OworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICA8cD5UZXN0cyBXSS5PYmplY3RT
dG9yZS5wcm90b3R5cGUuZGVsZXRlT2JqZWN0LjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9tb2RlbC9vYmplY3RTdG9yZS9yZXNvdXJjZXMv
b2JqZWN0U3RvcmUtdXRpbGl0aWVzLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL29i
amVjdFN0b3JlL3Jlc291cmNlcy9vYmplY3RTdG9yZS11dGlsaXRpZXMuanMKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQ0NWU3NWUzYzNlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL21vZGVsL29iamVjdFN0b3JlL3Jlc291cmNlcy9vYmpl
Y3RTdG9yZS11dGlsaXRpZXMuanMKQEAgLTAsMCArMSw5NSBAQAorVGVzdFBhZ2UucmVnaXN0ZXJJ
bml0aWFsaXplcigoKSA9PiB7CisgICAgbGV0IHN1aXRlID0gbnVsbDsKKworICAgIEluc3BlY3Rv
clRlc3QuT2JqZWN0U3RvcmUgPSB7fTsKKworICAgIEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUu
VGVzdE9iamVjdCA9IGNsYXNzIFRlc3RPYmplY3QgeworICAgICAgICBjb25zdHJ1Y3RvcihvYmpl
Y3QpIHsKKyAgICAgICAgICAgIHRoaXMuX29iamVjdCA9IG9iamVjdDsKKyAgICAgICAgfQorICAg
ICAgICB0b0pTT04oKSB7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fb2JqZWN0OworICAgICAg
ICB9CisgICAgfTsKKworICAgIEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3Qx
ID0ge2E6IDF9OworICAgIEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyID0g
e2I6IDJ9OworCisgICAgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5jcmVhdGVTdWl0ZSA9IGZ1
bmN0aW9uKG5hbWUpIHsKKyAgICAgICAgc3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5j
U3VpdGUobmFtZSk7CisgICAgICAgIHJldHVybiBzdWl0ZTsKKyAgICB9OworCisgICAgSW5zcGVj
dG9yVGVzdC5PYmplY3RTdG9yZS5jcmVhdGVPYmplY3RTdG9yZSA9IGZ1bmN0aW9uKG9wdGlvbnMg
PSB7fSkgeworICAgICAgICBXSS5PYmplY3RTdG9yZS5fX3Rlc3RPYmplY3RTdG9yZSA9IG5ldyBX
SS5PYmplY3RTdG9yZSgiX190ZXN0aW5nIiwgb3B0aW9ucyk7CisgICAgICAgIHJldHVybiBXSS5P
YmplY3RTdG9yZS5fX3Rlc3RPYmplY3RTdG9yZTsKKyAgICB9OworCisgICAgSW5zcGVjdG9yVGVz
dC5PYmplY3RTdG9yZS5hZGQgPSBhc3luYyBmdW5jdGlvbih2YWx1ZSwgZXhwZWN0ZWQpIHsKKyAg
ICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IFdJLk9iamVjdFN0b3JlLl9fdGVzdE9iamVjdFN0b3Jl
LmFkZCh2YWx1ZSk7CisgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KHJlc3VsdCA9PT0gZXhw
ZWN0ZWQsIGB0aGUga2V5IG9mIHRoZSBhZGRlZCBpdGVtIHNob3VsZCBiZSAke2V4cGVjdGVkfSwg
YnV0IGlzIGFjdHVhbGx5ICR7cmVzdWx0fWApOworCisgICAgICAgIGF3YWl0IEluc3BlY3RvclRl
c3QuT2JqZWN0U3RvcmUubG9nVmFsdWVzKCJhZGQ6ICIpOworICAgICAgICByZXR1cm4gcmVzdWx0
OworICAgIH07CisKKyAgICBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmFkZE9iamVjdCA9IGFz
eW5jIGZ1bmN0aW9uKG9iamVjdCwgZXhwZWN0ZWQpIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IGF3
YWl0IFdJLk9iamVjdFN0b3JlLl9fdGVzdE9iamVjdFN0b3JlLmFkZE9iamVjdChvYmplY3QpOwor
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChyZXN1bHQgPT09IGV4cGVjdGVkLCBgdGhlIGtl
eSBvZiB0aGUgYWRkZWQgaXRlbSBzaG91bGQgYmUgJHtleHBlY3RlZH0sIGJ1dCBpcyBhY3R1YWxs
eSAke3Jlc3VsdH1gKTsKKworICAgICAgICBsZXQgcmVzb2x2ZWQgPSBXSS5PYmplY3RTdG9yZS5f
X3Rlc3RPYmplY3RTdG9yZS5fcmVzb2x2ZUtleVBhdGgob2JqZWN0KTsKKyAgICAgICAgSW5zcGVj
dG9yVGVzdC5hc3NlcnQocmVzb2x2ZWQudmFsdWUgPT09IGV4cGVjdGVkLCBgdGhlIHJlc29sdmVk
IGtleVBhdGggb24gdGhlIG9iamVjdCBzaG91bGQgZXF1YWwgJHtleHBlY3RlZH0sIGJ1dCBpcyBh
Y3R1YWxseSAke3Jlc29sdmVkLnZhbHVlfWApOworCisgICAgICAgIGF3YWl0IEluc3BlY3RvclRl
c3QuT2JqZWN0U3RvcmUubG9nVmFsdWVzKCJhZGRPYmplY3Q6ICIpOworICAgICAgICByZXR1cm4g
cmVzdWx0OworICAgIH07CisKKyAgICBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmRlbGV0ZSA9
IGFzeW5jIGZ1bmN0aW9uKHZhbHVlKSB7CisgICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBXSS5P
YmplY3RTdG9yZS5fX3Rlc3RPYmplY3RTdG9yZS5kZWxldGUodmFsdWUpOworICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFzc2VydChyZXN1bHQgPT09IHVuZGVmaW5lZCwgYGRlbGV0ZSBzaG91bGRuJ3Qg
cmV0dXJuIGFueXRoaW5nYCk7CisKKyAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5PYmplY3RT
dG9yZS5sb2dWYWx1ZXMoImRlbGV0ZTogIik7CisgICAgfTsKKworICAgIEluc3BlY3RvclRlc3Qu
T2JqZWN0U3RvcmUuZGVsZXRlT2JqZWN0ID0gYXN5bmMgZnVuY3Rpb24ob2JqZWN0KSB7CisgICAg
ICAgIGxldCByZXNvbHZlZCA9IFdJLk9iamVjdFN0b3JlLl9fdGVzdE9iamVjdFN0b3JlLl9yZXNv
bHZlS2V5UGF0aChvYmplY3QpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChyZXNvbHZl
ZC5rZXkgaW4gcmVzb2x2ZWQub2JqZWN0LCBgdGhlIHJlc29sdmVkIGtleVBhdGggb24gdGhlIG9i
amVjdCBzaG91bGQgZXhpc3RgKTsKKworICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgV0kuT2Jq
ZWN0U3RvcmUuX190ZXN0T2JqZWN0U3RvcmUuZGVsZXRlT2JqZWN0KG9iamVjdCk7CisgICAgICAg
IEluc3BlY3RvclRlc3QuYXNzZXJ0KHJlc3VsdCA9PT0gdW5kZWZpbmVkLCBgZGVsZXRlT2JqZWN0
IHNob3VsZG4ndCByZXR1cm4gYW55dGhpbmdgKTsKKworICAgICAgICBhd2FpdCBJbnNwZWN0b3JU
ZXN0Lk9iamVjdFN0b3JlLmxvZ1ZhbHVlcygiZGVsZXRlT2JqZWN0OiAiKTsKKyAgICB9OworCisg
ICAgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5sb2dWYWx1ZXMgPSBhc3luYyBmdW5jdGlvbihw
cmVmaXgpIHsKKyAgICAgICAgaWYgKCFXSS5PYmplY3RTdG9yZS5fX3Rlc3RPYmplY3RTdG9yZSkK
KyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBwcmVmaXggPSBwcmVmaXggfHwgIiI7Cisg
ICAgICAgIGxldCByZXN1bHRzID0gYXdhaXQgV0kuT2JqZWN0U3RvcmUuX190ZXN0T2JqZWN0U3Rv
cmUuZ2V0QWxsKCk7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKHByZWZpeCArIEpTT04uc3Ry
aW5naWZ5KHJlc3VsdHMpKTsKKyAgICB9OworCisgICAgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9y
ZS53cmFwVGVzdCA9IGZ1bmN0aW9uKG5hbWUsIGZ1bmMpIHsKKyAgICAgICAgc3VpdGUuYWRkVGVz
dENhc2UoeworICAgICAgICAgICAgbmFtZSwKKyAgICAgICAgICAgIGFzeW5jIHRlc3QoKSB7Cisg
ICAgICAgICAgICAgICAgV0kuT2JqZWN0U3RvcmUuX190ZXN0aW5nID0gdHJ1ZTsKKworICAgICAg
ICAgICAgICAgIGF3YWl0IGZ1bmMoKTsKKyAgICAgICAgICAgICAgICBhd2FpdCBJbnNwZWN0b3JU
ZXN0Lk9iamVjdFN0b3JlLmxvZ1ZhbHVlcygpOworCisgICAgICAgICAgICAgICAgZGVsZXRlIFdJ
Lk9iamVjdFN0b3JlLl9fdGVzdE9iamVjdFN0b3JlOworCisgICAgICAgICAgICAgICAgaWYgKFdJ
Lk9iamVjdFN0b3JlLl9kYXRhYmFzZSkgeworICAgICAgICAgICAgICAgICAgICBXSS5PYmplY3RT
dG9yZS5fZGF0YWJhc2UuY2xvc2UoKTsKKyAgICAgICAgICAgICAgICAgICAgV0kuT2JqZWN0U3Rv
cmUuX2RhdGFiYXNlID0gbnVsbDsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAg
ICBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoV0kuT2JqZWN0U3RvcmUuX2RhdGFiYXNlTmFtZSk7
CisKKyAgICAgICAgICAgICAgICBXSS5PYmplY3RTdG9yZS5fX3Rlc3RpbmcgPSBmYWxzZTsKKyAg
ICAgICAgICAgIH0sCisgICAgICAgIH0pOworICAgIH07Cit9KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353453</attachid>
            <date>2018-10-30 18:42:07 -0700</date>
            <delta_ts>2018-10-31 01:01:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190858-20181030184206.patch</filename>
            <type>text/plain</type>
            <size>71177</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGRmNGVmNDMxNDM4YjRhYzJjYmZkNGQxMjZmNWE1
YzUzNTJkOWRjOGEuLjAyNjJjZjIxNzk4YzYwNzQ4MWM3ZTdjZDdiYmMwZmRlNDM3MDk2NzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDE4LTEwLTMwICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBB
dWRpdDogc2F2ZSBpbXBvcnRlZCBhdWRpdHMgYWNyb3NzIFdlYkluc3BlY3RvciBzZXNzaW9ucwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwODU4Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTUyNzYyNT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQmFzZS9PYmplY3RTdG9y
ZS5qczogQWRkZWQuCisgICAgICAgIChXSS5PYmplY3RTdG9yZSk6CisgICAgICAgIChXSS5PYmpl
Y3RTdG9yZS5zdXBwb3J0ZWQpOgorICAgICAgICAoV0kuT2JqZWN0U3RvcmUuX29wZW4pOgorICAg
ICAgICAoV0kuT2JqZWN0U3RvcmUuZ2V0IF9kYXRhYmFzZU5hbWUpOgorICAgICAgICAoV0kuT2Jq
ZWN0U3RvcmUucHJvdG90eXBlLmFzc29jaWF0ZU9iamVjdCk6CisgICAgICAgIChXSS5PYmplY3RT
dG9yZS5wcm90b3R5cGUuYXN5bmMgZ2V0QWxsKToKKyAgICAgICAgKFdJLk9iamVjdFN0b3JlLnBy
b3RvdHlwZS5hc3luYyBhZGQpOgorICAgICAgICAoV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFz
eW5jIGFkZE9iamVjdCk6CisgICAgICAgIChXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYXN5bmMg
ZGVsZXRlKToKKyAgICAgICAgKFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hc3luYyBkZWxldGVP
YmplY3QpOgorICAgICAgICAoV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLl9yZXNvbHZlS2V5UGF0
aCk6CisgICAgICAgIChXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYXN5bmMgX29wZXJhdGlvbi5s
aXN0ZW5lcik6CisgICAgICAgIChXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYXN5bmMgX29wZXJh
dGlvbik6CisgICAgICAgIFdyYXBwZXIgZm9yIGEgZ2xvYmFsIGBJbmRleGVkREJgIGluc3RhbmNl
IGZvciBhbGwgb2YgV2ViSW5zcGVjdG9yIChwZXIgbGV2ZWwpLiBJbnN0YW5jZXMgb2YKKyAgICAg
ICAgYFdJLk9iamVjdFN0b3JlYCBhcmUgYWJsZSB0byBjb250cm9sIGEgZ2l2ZW4gYElEQk9iamVj
dFN0b3JlYCB1c2luZyBhIHByb21pc2UtYmFzZWQgQVBJLgorCisgICAgICAgICpOT1RFKjogZHVl
IHRvIHRoZSBjb25zdHJhaW50IHRoYXQgYElEQk9iamVjdFN0b3JlYHMgYXJlIG9ubHkgYWJsZSB0
byBiZSBjcmVhdGVkIHdoZW4gdGhlCisgICAgICAgIG93bmVyIGBJbmRleGVkREJgIGlzICJ1cGdy
YWRlImQsIGFsbCBgV0kuT2JqZWN0U3RvcmVgIG11c3QgYmUgZGVjbGFyZWQgYmVmb3JlIHRoZSBk
YXRhYmFzZQorICAgICAgICBpcyBvcGVuZWQgZm9yIHRoZSBmaXJzdCB0aW1lLiBBZGRpdGlvbmFs
bHksIGFueSB0aW1lIGEgbmV3IGBXSS5PYmplY3RTdG9yZWAgaXMgYWRkZWQsIHRoZQorICAgICAg
ICBgdmVyc2lvbmAgbmVlZHMgdG8gYmUgaW5jcmVtZW50ZWQgdG8gZW5zdXJlIHRoYXQgdGhlICJ1
cGdyYWRlIiBldmVudCBmaXJlcy4KKworICAgICAgICBUbyB1c2UgYW55IG9mIHRoZSBgKk9iamVj
dGAgZnVuY3Rpb25zLCBvbmUgbXVzdCBpbXBsZW1lbnQgYSBgdG9KU09OYCBvbiB0aGUgb2JqZWN0
IHByb3ZpZGVkLgorICAgICAgICBUaGlzIGlzIHNvIHRoYXQgYFdJLk9iamVjdFN0b3JlYCBpcyBh
YmxlIHRvIGFkZCB0aGUgcmVzdWx0aW5nIGlkZW50aWZpZXIgdmFsdWUgdG8gdGhlIG93bmVyCisg
ICAgICAgIG9iamVjdCB3aGlsZSBzdG9yaW5nIGl0cyBgdG9KU09OYCB2YWx1ZSBpbiB0aGUgSW5k
ZXhlZERCIChlLmcuIGZvciBvYmplY3RzIHRoYXQgaGF2ZSBjeWNsZXMpLgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9Db250cm9sbGVycy9BdWRpdE1hbmFnZXIuanM6CisgICAgICAgIChXSS5B
dWRpdE1hbmFnZXIucHJvdG90eXBlLmltcG9ydCk6CisgICAgICAgIChXSS5BdWRpdE1hbmFnZXIu
cHJvdG90eXBlLmFkZFRlc3QpOiBBZGRlZC4KKyAgICAgICAgKFdJLkF1ZGl0TWFuYWdlci5wcm90
b3R5cGUucmVtb3ZlVGVzdCk6IEFkZGVkLgorICAgICAgICAoV0kuQXVkaXRNYW5hZ2VyLnByb3Rv
dHlwZS5fYWRkVGVzdCk6IERlbGV0ZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdz
L0F1ZGl0VGFiQ29udGVudFZpZXcuanM6CisgICAgICAgIChXSS5BdWRpdFRhYkNvbnRlbnRWaWV3
LnByb3RvdHlwZS5pbml0aWFsTGF5b3V0KTogQWRkZWQuCisgICAgICAgIEF0dGVtcHQgdG8gbG9h
ZCBzYXZlZCBhdWRpdHMgd2hlbiB0aGUgQXVkaXQgdGFiIGlzIGZpcnN0IHNob3duIChsYXp5LWxv
YWQpLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9BdWRpdE5hdmlnYXRpb25TaWRl
YmFyUGFuZWwuanM6CisgICAgICAgIChXSS5BdWRpdE5hdmlnYXRpb25TaWRlYmFyUGFuZWwucHJv
dG90eXBlLmluaXRpYWxMYXlvdXQpOgorICAgICAgICAoV0kuQXVkaXROYXZpZ2F0aW9uU2lkZWJh
clBhbmVsLnByb3RvdHlwZS5faGFuZGxlQXVkaXRUZXN0UmVtb3ZlZCk6IEFkZGVkLgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9WaWV3cy9BdWRpdFRyZWVFbGVtZW50LmpzOgorICAgICAgICAo
V0kuQXVkaXRUcmVlRWxlbWVudC5wcm90b3R5cGUub25kZWxldGUpOgorICAgICAgICBPbmx5IGFs
bG93IHRvcC1sZXZlbCBhdWRpdHMgdG8gYmUgZGVsZXRlZCwgYXMgdGhhdCBpcyB3aGF0IG1hdGNo
ZXMgdGhlIGBXSS5PYmplY3RTdG9yZWAuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01haW4u
aHRtbDoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Rlc3QuaHRtbDoKKwogMjAxOC0xMC0zMCAg
RGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogQXVkaXQ6IGNyZWF0ZSBBdWRpdCBUYWIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvT2JqZWN0U3RvcmUuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9CYXNlL09iamVjdFN0b3JlLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI3YmY4
OTMxYjY2MDhiMDFjNmNiY2ViYWE1NzZhZWJmMGY4MjliZjEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL09iamVjdFN0b3JlLmpzCkBA
IC0wLDAgKzEsMjEwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV0kuT2JqZWN0U3RvcmUgPSBjbGFzcyBPYmpl
Y3RTdG9yZQoreworICAgIGNvbnN0cnVjdG9yKG5hbWUsIG9wdGlvbnMgPSB7fSkKKyAgICB7Cisg
ICAgICAgIHRoaXMuX25hbWUgPSBuYW1lOworICAgICAgICB0aGlzLl9vcHRpb25zID0gb3B0aW9u
czsKKyAgICB9CisKKyAgICAvLyBTdGF0aWMKKworICAgIHN0YXRpYyBzdXBwb3J0ZWQoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuICghd2luZG93Lkluc3BlY3RvclRlc3QgfHwgV0kuT2JqZWN0U3Rv
cmUuX190ZXN0T2JqZWN0U3RvcmUpICYmIHdpbmRvdy5pbmRleGVkREI7CisgICAgfQorCisgICAg
c3RhdGljIGdldCBfZGF0YWJhc2VOYW1lKCkKKyAgICB7CisgICAgICAgIGxldCBpbnNwZWN0aW9u
TGV2ZWwgPSBJbnNwZWN0b3JGcm9udGVuZEhvc3QgPyBJbnNwZWN0b3JGcm9udGVuZEhvc3QuaW5z
cGVjdGlvbkxldmVsKCkgOiAxOworICAgICAgICBsZXQgbGV2ZWxTdHJpbmcgPSAoaW5zcGVjdGlv
bkxldmVsID4gMSkgPyAiLSIgKyBpbnNwZWN0aW9uTGV2ZWwgOiAiIjsKKyAgICAgICAgcmV0dXJu
ICJjb20uYXBwbGUuV2ViSW5zcGVjdG9yIiArIGxldmVsU3RyaW5nOworICAgIH0KKworICAgIHN0
YXRpYyBfb3BlbihjYWxsYmFjaykKKyAgICB7CisgICAgICAgIGlmIChXSS5PYmplY3RTdG9yZS5f
ZGF0YWJhc2UpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKFdJLk9iamVjdFN0b3JlLl9kYXRhYmFz
ZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBjb25zdCB2ZXJz
aW9uID0gMTsgLy8gSW5jcmVtZW50IHRoaXMgZm9yIGV2ZXJ5IGVkaXQgdG8gYFdJLm9iamVjdFN0
b3Jlc2AuCisKKyAgICAgICAgbGV0IGRhdGFiYXNlUmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKFdJ
Lk9iamVjdFN0b3JlLl9kYXRhYmFzZU5hbWUsIHZlcnNpb24pOworICAgICAgICBkYXRhYmFzZVJl
cXVlc3QuYWRkRXZlbnRMaXN0ZW5lcigidXBncmFkZW5lZWRlZCIsIChldmVudCkgPT4geworICAg
ICAgICAgICAgbGV0IGRhdGFiYXNlID0gZGF0YWJhc2VSZXF1ZXN0LnJlc3VsdDsKKworICAgICAg
ICAgICAgbGV0IG9iamVjdFN0b3JlcyA9IE9iamVjdC52YWx1ZXMoV0kub2JqZWN0U3RvcmVzKTsK
KyAgICAgICAgICAgIGlmIChXSS5PYmplY3RTdG9yZS5fX3Rlc3RPYmplY3RTdG9yZSkKKyAgICAg
ICAgICAgICAgICBvYmplY3RTdG9yZXMucHVzaChXSS5PYmplY3RTdG9yZS5fX3Rlc3RPYmplY3RT
dG9yZSk7CisKKyAgICAgICAgICAgIGxldCBleGlzdGluZ05hbWVzID0gbmV3IFNldDsKKyAgICAg
ICAgICAgIGZvciAobGV0IG9iamVjdFN0b3JlIG9mIG9iamVjdFN0b3JlcykgeworICAgICAgICAg
ICAgICAgIGlmICghZGF0YWJhc2Uub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucyhvYmplY3RTdG9y
ZS5fbmFtZSkpCisgICAgICAgICAgICAgICAgICAgIGRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3Jl
KG9iamVjdFN0b3JlLl9uYW1lLCBvYmplY3RTdG9yZS5fb3B0aW9ucyk7CisKKyAgICAgICAgICAg
ICAgICBleGlzdGluZ05hbWVzLmFkZChvYmplY3RTdG9yZS5fbmFtZSk7CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIGZvciAobGV0IG9iamVjdFN0b3JlTmFtZSBvZiBkYXRhYmFzZS5vYmpl
Y3RTdG9yZU5hbWVzKSB7CisgICAgICAgICAgICAgICAgaWYgKCFleGlzdGluZ05hbWVzLmhhcyhv
YmplY3RTdG9yZU5hbWUpKQorICAgICAgICAgICAgICAgICAgICBkYXRhYmFzZS5kZWxldGVPYmpl
Y3RTdG9yZShvYmplY3RTdG9yZU5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAg
ICAgICAgZGF0YWJhc2VSZXF1ZXN0LmFkZEV2ZW50TGlzdGVuZXIoInN1Y2Nlc3MiLCAoc3VjY2Vz
c0V2ZW50KSA9PiB7CisgICAgICAgICAgICBXSS5PYmplY3RTdG9yZS5fZGF0YWJhc2UgPSBkYXRh
YmFzZVJlcXVlc3QucmVzdWx0OworICAgICAgICAgICAgV0kuT2JqZWN0U3RvcmUuX2RhdGFiYXNl
LmFkZEV2ZW50TGlzdGVuZXIoImNsb3NlIiwgKGNsb3NlRXZlbnQpID0+IHsKKyAgICAgICAgICAg
ICAgICBXSS5PYmplY3RTdG9yZS5fZGF0YWJhc2UgPSBudWxsOworICAgICAgICAgICAgfSk7CisK
KyAgICAgICAgICAgIGNhbGxiYWNrKFdJLk9iamVjdFN0b3JlLl9kYXRhYmFzZSk7CisgICAgICAg
IH0pOworICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgYXNzb2NpYXRlT2JqZWN0KG9iamVj
dCwga2V5LCB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICJvYmpl
Y3QiKQorICAgICAgICAgICAgdmFsdWUgPSB0aGlzLl9yZXNvbHZlS2V5UGF0aCh2YWx1ZSwga2V5
KS52YWx1ZTsKKworICAgICAgICBsZXQgcmVzb2x2ZWQgPSB0aGlzLl9yZXNvbHZlS2V5UGF0aChv
YmplY3QsIGtleSk7CisgICAgICAgIHJlc29sdmVkLm9iamVjdFtyZXNvbHZlZC5rZXldID0gdmFs
dWU7CisgICAgfQorCisgICAgYXN5bmMgZ2V0QWxsKC4uLmFyZ3MpCisgICAgeworICAgICAgICBp
ZiAoIVdJLk9iamVjdFN0b3JlLnN1cHBvcnRlZCgpKQorICAgICAgICAgICAgcmV0dXJuIHVuZGVm
aW5lZDsKKworICAgICAgICByZXR1cm4gdGhpcy5fb3BlcmF0aW9uKCJyZWFkb25seSIsIChvYmpl
Y3RTdG9yZSkgPT4gb2JqZWN0U3RvcmUuZ2V0QWxsKC4uLmFyZ3MpKTsKKyAgICB9CisKKyAgICBh
c3luYyBhZGQoLi4uYXJncykKKyAgICB7CisgICAgICAgIGlmICghV0kuT2JqZWN0U3RvcmUuc3Vw
cG9ydGVkKCkpCisgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworCisgICAgICAgIHJldHVy
biB0aGlzLl9vcGVyYXRpb24oInJlYWR3cml0ZSIsIChvYmplY3RTdG9yZSkgPT4gb2JqZWN0U3Rv
cmUuYWRkKC4uLmFyZ3MpKTsKKyAgICB9CisKKyAgICBhc3luYyBhZGRPYmplY3Qob2JqZWN0LCAu
Li5hcmdzKQorICAgIHsKKyAgICAgICAgaWYgKCFXSS5PYmplY3RTdG9yZS5zdXBwb3J0ZWQoKSkK
KyAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisKKyAgICAgICAgY29uc29sZS5hc3NlcnQo
dHlwZW9mIG9iamVjdC50b0pTT04gPT09ICJmdW5jdGlvbiIsICJPYmplY3RTdG9yZSBjYW5ub3Qg
c3RvcmUgYW4gb2JqZWN0IHdpdGhvdXQgSlNPTiBzZXJpYWxpemF0aW9uIiwgb2JqZWN0LmNvbnN0
cnVjdG9yLm5hbWUpOworICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgdGhpcy5hZGQob2JqZWN0
LnRvSlNPTigpLCAuLi5hcmdzKTsKKyAgICAgICAgdGhpcy5hc3NvY2lhdGVPYmplY3Qob2JqZWN0
LCBhcmdzWzBdLCByZXN1bHQpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAg
IGFzeW5jIGRlbGV0ZSguLi5hcmdzKQorICAgIHsKKyAgICAgICAgaWYgKCFXSS5PYmplY3RTdG9y
ZS5zdXBwb3J0ZWQoKSkKKyAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisKKyAgICAgICAg
cmV0dXJuIHRoaXMuX29wZXJhdGlvbigicmVhZHdyaXRlIiwgKG9iamVjdFN0b3JlKSA9PiBvYmpl
Y3RTdG9yZS5kZWxldGUoLi4uYXJncykpOworICAgIH0KKworICAgIGFzeW5jIGRlbGV0ZU9iamVj
dChvYmplY3QsIC4uLmFyZ3MpCisgICAgeworICAgICAgICBpZiAoIVdJLk9iamVjdFN0b3JlLnN1
cHBvcnRlZCgpKQorICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKworICAgICAgICByZXR1
cm4gdGhpcy5kZWxldGUodGhpcy5fcmVzb2x2ZUtleVBhdGgob2JqZWN0KS52YWx1ZSwgLi4uYXJn
cyk7CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX3Jlc29sdmVLZXlQYXRoKG9iamVj
dCwga2V5UGF0aCkKKyAgICB7CisgICAgICAgIGtleVBhdGggPSBrZXlQYXRoIHx8IHRoaXMuX29w
dGlvbnMua2V5UGF0aCB8fCAiIjsKKworICAgICAgICBsZXQgcGFydHMgPSBrZXlQYXRoLnNwbGl0
KCIuIik7CisgICAgICAgIGxldCBrZXkgPSBwYXJ0cy5zcGxpY2UoLTEsIDEpOworICAgICAgICB3
aGlsZSAocGFydHMubGVuZ3RoKSB7CisgICAgICAgICAgICBpZiAoIW9iamVjdC5oYXNPd25Qcm9w
ZXJ0eShwYXJ0c1swXSkpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBvYmpl
Y3QgPSBvYmplY3RbcGFydHMuc2hpZnQoKV07CisgICAgICAgIH0KKworICAgICAgICBpZiAocGFy
dHMubGVuZ3RoKQorICAgICAgICAgICAga2V5ID0gcGFydHMuam9pbigiLiIpICsgIi4iICsga2V5
OworCisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBvYmplY3QsCisgICAgICAgICAgICBr
ZXksCisgICAgICAgICAgICB2YWx1ZTogb2JqZWN0W2tleV0sCisgICAgICAgIH07CisgICAgfQor
CisgICAgYXN5bmMgX29wZXJhdGlvbihtb2RlLCBmdW5jKQorICAgIHsKKyAgICAgICAgLy8gSW5k
ZXhlZERCIHRyYW5zYWN0aW9ucyB3aWxsIGF1dG8tY2xvc2UgaWYgdGhlcmUgYXJlIG5vIGFjdGl2
ZSBvcGVyYXRpb25zIGF0IHRoZSBlbmQgb2YgYQorICAgICAgICAvLyBtaWNyb3Rhc2ssIHNvIHdl
IG5lZWQgdG8gZG8gZXZlcnl0aGluZyB1c2luZyBldmVudCBsaXN0ZW5lcnMgaW5zdGVhZCBvZiBw
cm9taXNlcy4KKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+
IHsKKyAgICAgICAgICAgIFdJLk9iamVjdFN0b3JlLl9vcGVuKChkYXRhYmFzZSkgPT4geworICAg
ICAgICAgICAgICAgIGxldCB0cmFuc2FjdGlvbiA9IGRhdGFiYXNlLnRyYW5zYWN0aW9uKFt0aGlz
Ll9uYW1lXSwgbW9kZSk7CisgICAgICAgICAgICAgICAgbGV0IG9iamVjdFN0b3JlID0gdHJhbnNh
Y3Rpb24ub2JqZWN0U3RvcmUodGhpcy5fbmFtZSk7CisgICAgICAgICAgICAgICAgbGV0IHJlcXVl
c3QgPSBudWxsOworCisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAg
cmVxdWVzdCA9IGZ1bmMob2JqZWN0U3RvcmUpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUp
IHsKKyAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGUpOworICAgICAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZnVuY3Rpb24gbGlz
dGVuZXIoZXZlbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb24ucmVtb3ZlRXZl
bnRMaXN0ZW5lcigiY29tcGxldGUiLCBsaXN0ZW5lcik7CisgICAgICAgICAgICAgICAgICAgIHRy
YW5zYWN0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoImVycm9yIiwgbGlzdGVuZXIpOworICAgICAg
ICAgICAgICAgICAgICByZXF1ZXN0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInN1Y2Nlc3MiLCBsaXN0
ZW5lcik7CisgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigi
ZXJyb3IiLCBsaXN0ZW5lcik7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJlcXVlc3QuZXJy
b3IpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChyZXF1ZXN0LmVycm9yKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVxdWVzdC5yZXN1bHQpOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbi5hZGRFdmVudExpc3RlbmVyKCJjb21w
bGV0ZSIsIGxpc3RlbmVyLCB7b25jZTogdHJ1ZX0pOworICAgICAgICAgICAgICAgIHRyYW5zYWN0
aW9uLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgbGlzdGVuZXIsIHtvbmNlOiB0cnVlfSk7Cisg
ICAgICAgICAgICAgICAgcmVxdWVzdC5hZGRFdmVudExpc3RlbmVyKCJzdWNjZXNzIiwgbGlzdGVu
ZXIsIHtvbmNlOiB0cnVlfSk7CisgICAgICAgICAgICAgICAgcmVxdWVzdC5hZGRFdmVudExpc3Rl
bmVyKCJlcnJvciIsIGxpc3RlbmVyLCB7b25jZTogdHJ1ZX0pOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0pOworICAgIH0KK307CisKK1dJLk9iamVjdFN0b3JlLl9kYXRhYmFzZSA9IG51bGw7
CisKKy8vIEJlIHN1cmUgdG8gdXBkYXRlIHRoZSBgdmVyc2lvbmAgYWJvdmUgd2hlbiBtYWtpbmcg
Y2hhbmdlcy4KK1dJLm9iamVjdFN0b3JlcyA9IHsKKyAgICBhdWRpdHM6IG5ldyBXSS5PYmplY3RT
dG9yZSgiYXVkaXQtbWFuYWdlci10ZXN0cyIsIHtrZXlQYXRoOiAiX19pZCIsIGF1dG9JbmNyZW1l
bnQ6IHRydWV9KSwKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Db250cm9sbGVycy9BdWRpdE1hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9BdWRpdE1hbmFnZXIuanMKaW5kZXggZTBkZWZh
MGI0ODEwMDQ4OGFlYjA2YmE5ZDU5NDIwYjczZjk1NmQ1NS4uYmE3Njk3ZTE1YTRiMzFlNTM1YjYx
NmZkZGFlZjFjZjc1MDFkN2EwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQXVkaXRNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0F1ZGl0TWFuYWdlci5qcwpAQCAt
MTE2LDkgKzExNiwxMCBAQCBXSS5BdWRpdE1hbmFnZXIgPSBjbGFzcyBBdWRpdE1hbmFnZXIgZXh0
ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKLSAgICAg
ICAgICAgIGlmIChvYmplY3QgaW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RCYXNlKQotICAgICAgICAg
ICAgICAgIHRoaXMuX2FkZFRlc3Qob2JqZWN0KTsKLSAgICAgICAgICAgIGVsc2UgaWYgKG9iamVj
dCBpbnN0YW5jZW9mIFdJLkF1ZGl0VGVzdFJlc3VsdEJhc2UpCisgICAgICAgICAgICBpZiAob2Jq
ZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRUZXN0QmFzZSkgeworICAgICAgICAgICAgICAgIHRoaXMu
YWRkVGVzdChvYmplY3QpOworICAgICAgICAgICAgICAgIFdJLm9iamVjdFN0b3Jlcy5hdWRpdHMu
YWRkT2JqZWN0KG9iamVjdCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG9iamVjdCBpbnN0YW5j
ZW9mIFdJLkF1ZGl0VGVzdFJlc3VsdEJhc2UpCiAgICAgICAgICAgICAgICAgdGhpcy5fYWRkUmVz
dWx0KG9iamVjdCk7CiAgICAgICAgIH0pOwogICAgIH0KQEAgLTE0MCwxNSArMTQxLDI0IEBAIFdJ
LkF1ZGl0TWFuYWdlciA9IGNsYXNzIEF1ZGl0TWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAg
ICAgICB9KTsKICAgICB9CiAKLSAgICAvLyBQcml2YXRlCi0KLSAgICBfYWRkVGVzdCh0ZXN0KQor
ICAgIGFkZFRlc3QodGVzdCkKICAgICB7CiAgICAgICAgIHRoaXMuX3Rlc3RzLnB1c2godGVzdCk7
CiAKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQXVkaXRNYW5hZ2Vy
LkV2ZW50LlRlc3RBZGRlZCwge3Rlc3R9KTsKICAgICB9CiAKKyAgICByZW1vdmVUZXN0KHRlc3Qp
CisgICAgeworICAgICAgICB0aGlzLl90ZXN0cy5yZW1vdmUodGVzdCk7CisKKyAgICAgICAgdGhp
cy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQXVkaXRNYW5hZ2VyLkV2ZW50LlRlc3RSZW1v
dmVkLCB7dGVzdH0pOworCisgICAgICAgIFdJLm9iamVjdFN0b3Jlcy5hdWRpdHMuZGVsZXRlT2Jq
ZWN0KHRlc3QpOworICAgIH0KKworICAgIC8vIFByaXZhdGUKKwogICAgIF9hZGRSZXN1bHQocmVz
dWx0KQogICAgIHsKICAgICAgICAgaWYgKCFyZXN1bHQgfHwgKEFycmF5LmlzQXJyYXkocmVzdWx0
KSAmJiAhcmVzdWx0Lmxlbmd0aCkpCkBAIC0xNzIsNSArMTgyLDYgQEAgV0kuQXVkaXRNYW5hZ2Vy
LlJ1bm5pbmdTdGF0ZSA9IHsKIFdJLkF1ZGl0TWFuYWdlci5FdmVudCA9IHsKICAgICBUZXN0QWRk
ZWQ6ICJhdWRpdC1tYW5hZ2VyLXRlc3QtYWRkZWQiLAogICAgIFRlc3RDb21wbGV0ZWQ6ICJhdWRp
dC1tYW5hZ2VyLXRlc3QtY29tcGxldGVkIiwKKyAgICBUZXN0UmVtb3ZlZDogImF1ZGl0LW1hbmFn
ZXItdGVzdC1yZW1vdmVkIiwKICAgICBUZXN0U2NoZWR1bGVkOiAiYXVkaXQtbWFuYWdlci10ZXN0
LXNjaGVkdWxlZCIsCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTWFpbi5odG1sIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TWFpbi5odG1sCmluZGV4IGZmNzZjYTU4ZGM1MDE5ZDM0ZWM1MzY1YjQ1Y2JjZTk2MGY1NWM2M2Qu
LjkxM2U1ZDgzNjRkNzJjODlhZGVkYzhiOGQ3OGE4YWE2NjQ4ZmYzOWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbAorKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKQEAgLTI3OSw2ICsyNzksNyBA
QAogICAgIDxzY3JpcHQgc3JjPSJCYXNlL0ltYWdlVXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0iQmFzZS9Mb2FkTG9jYWxpemVkU3RyaW5ncy5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9IkJhc2UvTUlNRVR5cGVVdGlsaXRpZXMuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSJCYXNlL09iamVjdFN0b3JlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iQmFzZS9VUkxVdGlsaXRpZXMuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJC
YXNlL1V0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkJhc2UvU2V0dGlu
Zy5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9UZXN0Lmh0bWwgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9U
ZXN0Lmh0bWwKaW5kZXggNzVkYzBiMjIzZmE4YzIyNDUzNmZjYzhjYjFlMjU3MTEzMWYyZTVlOS4u
MTQ1ZDgyMzRhMzA5YTJhZThhOGQ1MDUwMWQ5YzU1ZGU5NjI4MTBmMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC5odG1sCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbApAQCAtNTYsNiArNTYsNyBAQAog
ICAgIDxzY3JpcHQgc3JjPSJCYXNlL0V2ZW50TGlzdGVuZXJTZXQuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgc3JjPSJCYXNlL0ltYWdlVXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iQmFzZS9NSU1FVHlwZVV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9IkJhc2UvT2JqZWN0U3RvcmUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJC
YXNlL1VSTFV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkJhc2UvVXRp
bGl0aWVzLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQmFzZS9TZXR0aW5nLmpzIj48
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0F1ZGl0TmF2aWdhdGlvblNpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0F1ZGl0TmF2aWdhdGlvblNpZGViYXJQYW5lbC5qcwpp
bmRleCAxZGY4YTk5ZjQ5OThiOTk3YTcxNDlmMDYxOTJhNDA4ODA0NGYzNzllLi44MjYzOTZlZDhk
YTJmZDNlNmY5NTVhMjc5ZTljMjQ0MDA0ZTg1ZDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BdWRpdE5hdmlnYXRpb25TaWRlYmFyUGFuZWwu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQXVkaXRO
YXZpZ2F0aW9uU2lkZWJhclBhbmVsLmpzCkBAIC05MCw2ICs5MCw3IEBAIFdJLkF1ZGl0TmF2aWdh
dGlvblNpZGViYXJQYW5lbCA9IGNsYXNzIEF1ZGl0TmF2aWdhdGlvblNpZGViYXJQYW5lbCBleHRl
bmRzIFdJLk5hCiAKICAgICAgICAgV0kuYXVkaXRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0ku
QXVkaXRNYW5hZ2VyLkV2ZW50LlRlc3RBZGRlZCwgdGhpcy5faGFuZGxlQXVkaXRUZXN0QWRkZWQs
IHRoaXMpOwogICAgICAgICBXSS5hdWRpdE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5BdWRp
dE1hbmFnZXIuRXZlbnQuVGVzdENvbXBsZXRlZCwgdGhpcy5faGFuZGxlQXVkaXRUZXN0Q29tcGxl
dGVkLCB0aGlzKTsKKyAgICAgICAgV0kuYXVkaXRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0ku
QXVkaXRNYW5hZ2VyLkV2ZW50LlRlc3RSZW1vdmVkLCB0aGlzLl9oYW5kbGVBdWRpdFRlc3RSZW1v
dmVkLCB0aGlzKTsKICAgICAgICAgV0kuYXVkaXRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0ku
QXVkaXRNYW5hZ2VyLkV2ZW50LlRlc3RTY2hlZHVsZWQsIHRoaXMuX2hhbmRsZUF1ZGl0VGVzdFNj
aGVkdWxlZCwgdGhpcyk7CiAKICAgICAgICAgdGhpcy5jb250ZW50VHJlZU91dGxpbmUuYWRkRXZl
bnRMaXN0ZW5lcihXSS5UcmVlT3V0bGluZS5FdmVudC5TZWxlY3Rpb25EaWRDaGFuZ2UsIHRoaXMu
X3RyZWVTZWxlY3Rpb25EaWRDaGFuZ2UsIHRoaXMpOwpAQCAtMTQ3LDYgKzE0OCwxMyBAQCBXSS5B
dWRpdE5hdmlnYXRpb25TaWRlYmFyUGFuZWwgPSBjbGFzcyBBdWRpdE5hdmlnYXRpb25TaWRlYmFy
UGFuZWwgZXh0ZW5kcyBXSS5OYQogICAgICAgICB0aGlzLl9hZGRSZXN1bHQocmVzdWx0LCBpbmRl
eCk7CiAgICAgfQogCisgICAgX2hhbmRsZUF1ZGl0VGVzdFJlbW92ZWQoZXZlbnQpCisgICAgewor
ICAgICAgICBsZXQge3Rlc3R9ID0gZXZlbnQuZGF0YTsKKyAgICAgICAgbGV0IHRyZWVFbGVtZW50
ID0gdGhpcy50cmVlRWxlbWVudEZvclJlcHJlc2VudGVkT2JqZWN0KHRlc3QpOworICAgICAgICB0
aGlzLmNvbnRlbnRUcmVlT3V0bGluZS5yZW1vdmVDaGlsZCh0cmVlRWxlbWVudCk7CisgICAgfQor
CiAgICAgX2hhbmRsZUF1ZGl0VGVzdFNjaGVkdWxlZChldmVudCkKICAgICB7CiAgICAgICAgIHRo
aXMuX3VwZGF0ZVN0YXJ0U3RvcEJ1dHRvbk5hdmlnYXRpb25JdGVtU3RhdGUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0F1ZGl0VGFiQ29u
dGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9B
dWRpdFRhYkNvbnRlbnRWaWV3LmpzCmluZGV4IDI5ZjQ4MWFjYTYxNDEwMjlkNTg4Njk3NTBhNDU1
MmFiZTIwOTVmMWEuLmRkMDU2ODZlYzRkZjRmZGU4ODU4ZTE5OTcxNTFiY2MxYTE0NThmY2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0F1ZGl0
VGFiQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvQXVkaXRUYWJDb250ZW50Vmlldy5qcwpAQCAtODMsNiArODMsMjYgQEAgV0kuQXVk
aXRUYWJDb250ZW50VmlldyA9IGNsYXNzIEF1ZGl0VGFiQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5D
b250ZW50QnJvd3NlclRhYkMKICAgICAgICAgc3VwZXIuaGlkZGVuKCk7CiAgICAgfQogCisgICAg
Ly8gUHJvdGVjdGVkCisKKyAgICBpbml0aWFsTGF5b3V0KCkKKyAgICB7CisgICAgICAgIHN1cGVy
LmluaXRpYWxMYXlvdXQoKTsKKworICAgICAgICBXSS5vYmplY3RTdG9yZXMuYXVkaXRzLmdldEFs
bCgpLnRoZW4oKHJlc3VsdHMpID0+IHsKKyAgICAgICAgICAgIGZvciAobGV0IHBheWxvYWQgb2Yg
cmVzdWx0cykgeworICAgICAgICAgICAgICAgIGxldCB0ZXN0ID0gV0kuQXVkaXRUZXN0R3JvdXAu
ZnJvbVBheWxvYWQocGF5bG9hZCkgfHwgV0kuQXVkaXRUZXN0Q2FzZS5mcm9tUGF5bG9hZChwYXls
b2FkKTsKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3QpCisgICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlOworCisgICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gbnVsbDsKKyAgICAgICAgICAg
ICAgICBXSS5vYmplY3RTdG9yZXMuYXVkaXRzLmFzc29jaWF0ZU9iamVjdCh0ZXN0LCBrZXksIHBh
eWxvYWQpOworCisgICAgICAgICAgICAgICAgV0kuYXVkaXRNYW5hZ2VyLmFkZFRlc3QodGVzdCk7
CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKwogICAgIC8vIFByaXZhdGUKIAog
ICAgIF9oYW5kbGVTcGFjZShldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0F1ZGl0VHJlZUVsZW1lbnQuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BdWRpdFRyZWVFbGVtZW50LmpzCmluZGV4IGY2
ODVmNmU3MWMyNDAyYmQ3NWNkMjFkMDE1ZjFjNTA0ZTBmMzIyNDYuLjkzNzk3OTBiOTFiY2Q4YmVj
OWMxZWUzNjgzY2I4NzkzYTJiMGQwNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0F1ZGl0VHJlZUVsZW1lbnQuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQXVkaXRUcmVlRWxlbWVudC5qcwpAQCAt
OTgsNiArOTgsMTkgQEAgV0kuQXVkaXRUcmVlRWxlbWVudCA9IGNsYXNzIEF1ZGl0VHJlZUVsZW1l
bnQgZXh0ZW5kcyBXSS5HZW5lcmFsVHJlZUVsZW1lbnQKICAgICAgICAgfQogICAgIH0KIAorICAg
IG9uZGVsZXRlKCkKKyAgICB7CisgICAgICAgIGlmICghKHRoaXMucmVwcmVzZW50ZWRPYmplY3Qg
aW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RCYXNlKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgICAgICBpZiAoISh0aGlzLnBhcmVudCBpbnN0YW5jZW9mIFdJLlRyZWVPdXRsaW5lKSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBXSS5hdWRpdE1hbmFnZXIucmVt
b3ZlVGVzdCh0aGlzLnJlcHJlc2VudGVkT2JqZWN0KTsKKworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CisKICAgICBwb3B1bGF0ZUNvbnRleHRNZW51KGNvbnRleHRNZW51LCBldmVudCkKICAg
ICB7CiAgICAgICAgIGlmIChXSS5hdWRpdE1hbmFnZXIucnVubmluZ1N0YXRlID09PSBXSS5BdWRp
dE1hbmFnZXIuUnVubmluZ1N0YXRlLkluYWN0aXZlKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZWJhODdiMDA3NWU4YTMy
ZmE2MTAwZTlmMGYxZTEzMjFkNzdlNzNiMC4uZWYzNzY0ZDQ5Y2YzYzE4NTJmYzI4ZTJkMjFiNjcx
N2MxMGM4OWUyYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE4LTEwLTMwICBEZXZpbiBSb3Vz
c28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBBdWRpdDog
c2F2ZSBpbXBvcnRlZCBhdWRpdHMgYWNyb3NzIFdlYkluc3BlY3RvciBzZXNzaW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwODU4CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80NTUyNzYyNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci91bml0LXRlc3RzL29iamVjdFN0b3JlL2Fk
ZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci91bml0LXRlc3RzL29i
amVjdFN0b3JlL2FkZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdW5pdC10ZXN0
cy9vYmplY3RTdG9yZS9hZGRPYmplY3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvdW5pdC10ZXN0cy9vYmplY3RTdG9yZS9hZGRPYmplY3QuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL3VuaXQtdGVzdHMvb2JqZWN0U3RvcmUvYmFzaWMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdW5pdC10ZXN0cy9vYmplY3RTdG9yZS9i
YXNpYy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdW5pdC10ZXN0cy9vYmplY3RT
dG9yZS9kZWxldGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdW5p
dC10ZXN0cy9vYmplY3RTdG9yZS9kZWxldGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVj
dG9yL3VuaXQtdGVzdHMvb2JqZWN0U3RvcmUvZGVsZXRlT2JqZWN0LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3VuaXQtdGVzdHMvb2JqZWN0U3RvcmUvZGVsZXRlT2Jq
ZWN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci91bml0LXRlc3RzL29iamVjdFN0
b3JlL3Jlc291cmNlcy9vYmplY3RTdG9yZS11dGlsaXRpZXMuanM6IEFkZGVkLgorICAgICAgICAo
VGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplci5JbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLlRl
c3RPYmplY3QpOgorICAgICAgICAoVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplci5JbnNwZWN0
b3JUZXN0Lk9iamVjdFN0b3JlLlRlc3RPYmplY3QucHJvdG90eXBlLnRvSlNPTik6CisgICAgICAg
IChUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyLkluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUu
Y3JlYXRlU3VpdGUpOgorICAgICAgICAoVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplci5JbnNw
ZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmNyZWF0ZU9iamVjdFN0b3JlKToKKyAgICAgICAgKFRlc3RQ
YWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIuSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5hZGQpOgor
ICAgICAgICAoVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplci5JbnNwZWN0b3JUZXN0Lk9iamVj
dFN0b3JlLmFkZE9iamVjdCk6CisgICAgICAgIChUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVy
Lkluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuZGVsZXRlKToKKyAgICAgICAgKFRlc3RQYWdlLnJl
Z2lzdGVySW5pdGlhbGl6ZXIuSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5kZWxldGVPYmplY3Qp
OgorICAgICAgICAoVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplci5JbnNwZWN0b3JUZXN0Lk9i
amVjdFN0b3JlLmxvZ1ZhbHVlcyk6CisgICAgICAgIChUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxp
emVyLkluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUud3JhcFRlc3QpOgorCiAyMDE4LTEwLTMwICBE
ZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9y
OiBBdWRpdDogY3JlYXRlIEF1ZGl0IFRhYgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL3VuaXQtdGVzdHMvb2JqZWN0U3RvcmUvYWRkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci91bml0LXRlc3RzL29iamVjdFN0b3JlL2FkZC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTQyNmUwYzQzYmQ2Mjg5ZGY2MjJlZTQ1YmNkMDIzYWJkMGRlM2Y2MwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL29iamVjdFN0b3JlL2Fk
ZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3OCBAQAorVGVzdHMgV0kuT2JqZWN0U3RvcmUucHJv
dG90eXBlLmFkZC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFdJLk9iamVjdFN0b3JlLnBy
b3RvdHlwZS5hZGQKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5
cGUuYWRkLk5vUGFyYW1ldGVycworUEFTUzogU2hvdWxkIHByb2R1Y2UgYW4gZXhjZXB0aW9uLgor
VHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cworW10KKworLS0gUnVubmluZyB0ZXN0IGNh
c2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGQuQm9vbGVhbgorYWRkOiBbZmFsc2VdCith
ZGQ6IFtmYWxzZSx0cnVlXQorW2ZhbHNlLHRydWVdCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBX
SS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkLk51bWJlcgorYWRkOiBbMTFdCithZGQ6IFsxMSwy
Ml0KK1sxMSwyMl0KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3Rv
dHlwZS5hZGQuU3RyaW5nCithZGQ6IFsiZm9vIl0KK2FkZDogWyJmb28iLCJiYXIiXQorWyJmb28i
LCJiYXIiXQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBl
LmFkZC5BcnJheQorYWRkOiBbWzExXV0KK2FkZDogW1sxMV0sWzIyXV0KK1tbMTFdLFsyMl1dCisK
Ky0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkLk51bGwK
K2FkZDogW251bGxdCitbbnVsbF0KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0
b3JlLnByb3RvdHlwZS5hZGQuT2JqZWN0LldpdGhvdXRLZXlQYXRoT3JBdXRvSW5jcmVtZW50CitQ
QVNTOiBTaG91bGQgcHJvZHVjZSBhbiBleGNlcHRpb24uCitEYXRhRXJyb3I6IEZhaWxlZCB0byBz
dG9yZSByZWNvcmQgaW4gYW4gSURCT2JqZWN0U3RvcmU6IFRoZSBvYmplY3Qgc3RvcmUgdXNlcyBv
dXQtb2YtbGluZSBrZXlzIGFuZCBoYXMgbm8ga2V5IGdlbmVyYXRvciBhbmQgdGhlIGtleSBwYXJh
bWV0ZXIgd2FzIG5vdCBwcm92aWRlZC4KK1tdCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5P
YmplY3RTdG9yZS5wcm90b3R5cGUuYWRkLk9iamVjdC5LZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0
aG91dEF1dG9JbmNyZW1lbnQKK1BBU1M6IFNob3VsZCBwcm9kdWNlIGFuIGV4Y2VwdGlvbi4KK0Rh
dGFFcnJvcjogRmFpbGVkIHRvIHN0b3JlIHJlY29yZCBpbiBhbiBJREJPYmplY3RTdG9yZTogRXZh
bHVhdGluZyB0aGUgb2JqZWN0IHN0b3JlJ3Mga2V5IHBhdGggZGlkIG5vdCB5aWVsZCBhIHZhbHVl
LgorW10KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5h
ZGQuT2JqZWN0LktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50CithZGQ6IFt7
IktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Ijo0MiwiYSI6MX1dCithZGQ6
IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Ijo0MiwiYSI6MX0seyJL
ZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCI6OTksImIiOjJ9XQorW3siS2V5
UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiOjQyLCJhIjoxfSx7IktleVBhdGhT
ZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Ijo5OSwiYiI6Mn1dCisKKy0tIFJ1bm5pbmcg
dGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkLk9iamVjdC5LZXlQYXRoTWlz
c2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQKK2FkZDogW3siYSI6MSwiS2V5UGF0aE1pc3Np
bmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50IjoxfV0KK2FkZDogW3siYSI6MSwiS2V5UGF0aE1p
c3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50IjoxfSx7ImIiOjIsIktleVBhdGhNaXNzaW5n
T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6Mn1dCitbeyJhIjoxLCJLZXlQYXRoTWlzc2luZ09u
T2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOjF9LHsiYiI6MiwiS2V5UGF0aE1pc3NpbmdPbk9iamVj
dFdpdGhBdXRvSW5jcmVtZW50IjoyfV0KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVj
dFN0b3JlLnByb3RvdHlwZS5hZGQuT2JqZWN0LktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5j
cmVtZW50CithZGQ6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijo0Miwi
YSI6MX1dCithZGQ6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijo0Miwi
YSI6MX0seyJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6OTksImIiOjJ9XQor
W3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOjQyLCJhIjoxfSx7IktleVBh
dGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijo5OSwiYiI6Mn1dCisKKy0tIFJ1bm5pbmcg
dGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkLk9iamVjdC5BdXRvSW5jcmVt
ZW50V2l0aG91dEtleVBhdGgKK2FkZDogW3siYSI6MX1dCithZGQ6IFt7ImEiOjF9LHsiYiI6Mn1d
CitbeyJhIjoxfSx7ImIiOjJ9XQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3Rv
cmUucHJvdG90eXBlLmFkZC5PYmplY3QuS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNy
ZW1lbnQuU3ViCithZGQ6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50
Ijp7IlN1YiI6NDJ9LCJhIjoxfV0KK2FkZDogW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1
dG9JbmNyZW1lbnQiOnsiU3ViIjo0Mn0sImEiOjF9LHsiS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91
dEF1dG9JbmNyZW1lbnQiOnsiU3ViIjo5OX0sImIiOjJ9XQorW3siS2V5UGF0aFNldE9uT2JqZWN0
V2l0aG91dEF1dG9JbmNyZW1lbnQiOnsiU3ViIjo0Mn0sImEiOjF9LHsiS2V5UGF0aFNldE9uT2Jq
ZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiOnsiU3ViIjo5OX0sImIiOjJ9XQorCistLSBSdW5uaW5n
IHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZC5PYmplY3QuS2V5UGF0aE1p
c3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50LlN1YgorYWRkOiBbeyJhIjoxLCJLZXlQYXRo
TWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOnsiU3ViIjoxfX1dCithZGQ6IFt7ImEi
OjEsIktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6eyJTdWIiOjF9fSx7
ImIiOjIsIktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6eyJTdWIiOjJ9
fV0KK1t7ImEiOjEsIktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6eyJT
dWIiOjF9fSx7ImIiOjIsIktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6
eyJTdWIiOjJ9fV0KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3Rv
dHlwZS5hZGQuT2JqZWN0LktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50LlN1Ygor
YWRkOiBbeyJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6eyJTdWIiOjQyfSwi
YSI6MX1dCithZGQ6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijp7IlN1
YiI6NDJ9LCJhIjoxfSx7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijp7IlN1
YiI6OTl9LCJiIjoyfV0KK1t7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijp7
IlN1YiI6NDJ9LCJhIjoxfSx7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijp7
IlN1YiI6OTl9LCJiIjoyfV0KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Vu
aXQtdGVzdHMvb2JqZWN0U3RvcmUvYWRkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5p
dC10ZXN0cy9vYmplY3RTdG9yZS9hZGQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZTViMmU2ODY1ZDRjYmFk
ZWNjOTU0MjBlYjg0NmMzNzEwY2JjYjUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL3VuaXQtdGVzdHMvb2JqZWN0U3RvcmUvYWRkLmh0bWwKQEAgLTAsMCArMSwxNTQg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9vYmplY3RTdG9yZS11dGlsaXRpZXMuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIEluc3BlY3RvclRlc3Qu
ZGVidWcoKTsKKworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuY3Jl
YXRlU3VpdGUoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGQiKTsKKworICAgIGZ1bmN0aW9u
IHRlc3RBZGQobmFtZSwge29wdGlvbnMsIHRlc3RzfSkgeworICAgICAgICBJbnNwZWN0b3JUZXN0
Lk9iamVjdFN0b3JlLndyYXBUZXN0KG5hbWUsIGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5jcmVhdGVPYmplY3RTdG9yZShvcHRpb25zKTsK
KworICAgICAgICAgICAgZm9yIChsZXQge3ZhbHVlLCBleHBlY3RlZH0gb2YgdGVzdHMpCisgICAg
ICAgICAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5hZGQodmFsdWUsIGV4
cGVjdGVkKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgSW5zcGVjdG9yVGVzdC5PYmplY3RT
dG9yZS53cmFwVGVzdCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZC5Ob1BhcmFtZXRlcnMi
LCBhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgbGV0IG9iamVjdFN0b3JlID0gSW5zcGVjdG9y
VGVzdC5PYmplY3RTdG9yZS5jcmVhdGVPYmplY3RTdG9yZSgpOworCisgICAgICAgIGF3YWl0IElu
c3BlY3RvclRlc3QuZXhwZWN0RXhjZXB0aW9uKGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgYXdhaXQgb2JqZWN0U3RvcmUuYWRkKCk7CisgICAgICAgICAgICBhd2FpdCBvYmplY3RTdG9y
ZS5hZGQoSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDIpOworICAgICAgICB9
KTsKKyAgICB9KTsKKworICAgIHRlc3RBZGQoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGQu
Qm9vbGVhbiIsIHsKKyAgICAgICAgb3B0aW9uczoge2F1dG9JbmNyZW1lbnQ6IHRydWV9LAorICAg
ICAgICB0ZXN0czogWworICAgICAgICAgICAge3ZhbHVlOiBmYWxzZSwgZXhwZWN0ZWQ6IDF9LAor
ICAgICAgICAgICAge3ZhbHVlOiB0cnVlLCBleHBlY3RlZDogMn0sCisgICAgICAgIF0sCisgICAg
fSk7CisKKyAgICB0ZXN0QWRkKCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkLk51bWJlciIs
IHsKKyAgICAgICAgb3B0aW9uczoge2F1dG9JbmNyZW1lbnQ6IHRydWV9LAorICAgICAgICB0ZXN0
czogWworICAgICAgICAgICAge3ZhbHVlOiAxMSwgZXhwZWN0ZWQ6IDF9LAorICAgICAgICAgICAg
e3ZhbHVlOiAyMiwgZXhwZWN0ZWQ6IDJ9LAorICAgICAgICBdLAorICAgIH0pOworCisgICAgdGVz
dEFkZCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZC5TdHJpbmciLCB7CisgICAgICAgIG9w
dGlvbnM6IHthdXRvSW5jcmVtZW50OiB0cnVlfSwKKyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAg
ICAgIHt2YWx1ZTogImZvbyIsIGV4cGVjdGVkOiAxfSwKKyAgICAgICAgICAgIHt2YWx1ZTogImJh
ciIsIGV4cGVjdGVkOiAyfSwKKyAgICAgICAgXSwKKyAgICB9KTsKKworICAgIHRlc3RBZGQoIldJ
Lk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGQuQXJyYXkiLCB7CisgICAgICAgIG9wdGlvbnM6IHth
dXRvSW5jcmVtZW50OiB0cnVlfSwKKyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAgIHt2YWx1
ZTogWzExXSwgZXhwZWN0ZWQ6IDF9LAorICAgICAgICAgICAge3ZhbHVlOiBbMjJdLCBleHBlY3Rl
ZDogMn0sCisgICAgICAgIF0sCisgICAgfSk7CisKKyAgICB0ZXN0QWRkKCJXSS5PYmplY3RTdG9y
ZS5wcm90b3R5cGUuYWRkLk51bGwiLCB7CisgICAgICAgIG9wdGlvbnM6IHthdXRvSW5jcmVtZW50
OiB0cnVlfSwKKyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAgIHt2YWx1ZTogbnVsbCwgZXhw
ZWN0ZWQ6IDF9LAorICAgICAgICBdLAorICAgIH0pOworCisgICAgSW5zcGVjdG9yVGVzdC5PYmpl
Y3RTdG9yZS53cmFwVGVzdCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZC5PYmplY3QuV2l0
aG91dEtleVBhdGhPckF1dG9JbmNyZW1lbnQiLCBhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAg
bGV0IG9iamVjdFN0b3JlID0gSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5jcmVhdGVPYmplY3RT
dG9yZSgpOworCisgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXhwZWN0RXhjZXB0aW9uKGFz
eW5jIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYXdhaXQgb2JqZWN0U3RvcmUuYWRkKEluc3Bl
Y3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QxKTsKKyAgICAgICAgICAgIGF3YWl0IG9i
amVjdFN0b3JlLmFkZChJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0Mik7Cisg
ICAgICAgIH0pOworICAgIH0pOworCisgICAgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS53cmFw
VGVzdCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZC5PYmplY3QuS2V5UGF0aE1pc3NpbmdP
bk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50IiwgYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAg
IGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBrZXlQYXRoOiAiS2V5UGF0aE1pc3NpbmdP
bk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50IiwKKyAgICAgICAgfTsKKyAgICAgICAgbGV0IG9i
amVjdFN0b3JlID0gSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5jcmVhdGVPYmplY3RTdG9yZShv
cHRpb25zKTsKKworICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LmV4cGVjdEV4Y2VwdGlvbihh
c3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGF3YWl0IG9iamVjdFN0b3JlLmFkZChJbnNw
ZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MSk7CisgICAgICAgICAgICBhd2FpdCBv
YmplY3RTdG9yZS5hZGQoSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDIpOwor
ICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIHRlc3RBZGQoIldJLk9iamVjdFN0b3JlLnByb3Rv
dHlwZS5hZGQuT2JqZWN0LktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Iiwg
eworICAgICAgICBvcHRpb25zOiB7a2V5UGF0aDogIktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRB
dXRvSW5jcmVtZW50In0sCisgICAgICAgIHRlc3RzOiBbCisgICAgICAgICAgICB7dmFsdWU6IHtL
ZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudDogNDIsIC4uLkluc3BlY3RvclRl
c3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QxfSwgZXhwZWN0ZWQ6IDQyfSwKKyAgICAgICAgICAg
IHt2YWx1ZToge0tleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50OiA5OSwgLi4u
SW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDJ9LCBleHBlY3RlZDogOTl9LAor
ICAgICAgICBdLAorICAgIH0pOworCisgICAgdGVzdEFkZCgiV0kuT2JqZWN0U3RvcmUucHJvdG90
eXBlLmFkZC5PYmplY3QuS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Iiwg
eworICAgICAgICBvcHRpb25zOiB7a2V5UGF0aDogIktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRo
QXV0b0luY3JlbWVudCIsIGF1dG9JbmNyZW1lbnQ6IHRydWV9LAorICAgICAgICB0ZXN0czogWwor
ICAgICAgICAgICAge3ZhbHVlOiBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0
MSwgZXhwZWN0ZWQ6IDF9LAorICAgICAgICAgICAge3ZhbHVlOiBJbnNwZWN0b3JUZXN0Lk9iamVj
dFN0b3JlLmJhc2ljT2JqZWN0MiwgZXhwZWN0ZWQ6IDJ9LAorICAgICAgICBdLAorICAgIH0pOwor
CisgICAgdGVzdEFkZCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZC5PYmplY3QuS2V5UGF0
aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiLCB7CisgICAgICAgIG9wdGlvbnM6IHtrZXlQ
YXRoOiAiS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiLCBhdXRvSW5jcmVtZW50
OiB0cnVlfSwKKyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAgIHt2YWx1ZToge0tleVBhdGhT
ZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50OiA0MiwgLi4uSW5zcGVjdG9yVGVzdC5PYmplY3RT
dG9yZS5iYXNpY09iamVjdDF9LCBleHBlY3RlZDogNDJ9LAorICAgICAgICAgICAge3ZhbHVlOiB7
S2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQ6IDk5LCAuLi5JbnNwZWN0b3JUZXN0
Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0Mn0sIGV4cGVjdGVkOiA5OX0sCisgICAgICAgIF0sCisg
ICAgfSk7CisKKyAgICB0ZXN0QWRkKCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkLk9iamVj
dC5BdXRvSW5jcmVtZW50V2l0aG91dEtleVBhdGgiLCB7CisgICAgICAgIG9wdGlvbnM6IHthdXRv
SW5jcmVtZW50OiB0cnVlfSwKKyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAgIHt2YWx1ZTog
SW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDEsIGV4cGVjdGVkOiAxfSwKKyAg
ICAgICAgICAgIHt2YWx1ZTogSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDIs
IGV4cGVjdGVkOiAyfSwKKyAgICAgICAgXSwKKyAgICB9KTsKKworICAgIHRlc3RBZGQoIldJLk9i
amVjdFN0b3JlLnByb3RvdHlwZS5hZGQuT2JqZWN0LktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRB
dXRvSW5jcmVtZW50LlN1YiIsIHsKKyAgICAgICAgb3B0aW9uczoge2tleVBhdGg6ICJLZXlQYXRo
U2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudC5TdWIifSwKKyAgICAgICAgdGVzdHM6IFsK
KyAgICAgICAgICAgIHt2YWx1ZToge0tleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVt
ZW50OiB7U3ViOiA0Mn0sIC4uLkluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3Qx
fSwgZXhwZWN0ZWQ6IDQyfSwKKyAgICAgICAgICAgIHt2YWx1ZToge0tleVBhdGhTZXRPbk9iamVj
dFdpdGhvdXRBdXRvSW5jcmVtZW50OiB7U3ViOiA5OX0sIC4uLkluc3BlY3RvclRlc3QuT2JqZWN0
U3RvcmUuYmFzaWNPYmplY3QyfSwgZXhwZWN0ZWQ6IDk5fSwKKyAgICAgICAgXSwKKyAgICB9KTsK
KworICAgIHRlc3RBZGQoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGQuT2JqZWN0LktleVBh
dGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudC5TdWIiLCB7CisgICAgICAgIG9wdGlv
bnM6IHtrZXlQYXRoOiAiS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50LlN1
YiIsIGF1dG9JbmNyZW1lbnQ6IHRydWV9LAorICAgICAgICB0ZXN0czogWworICAgICAgICAgICAg
e3ZhbHVlOiBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MSwgZXhwZWN0ZWQ6
IDF9LAorICAgICAgICAgICAge3ZhbHVlOiBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2lj
T2JqZWN0MiwgZXhwZWN0ZWQ6IDJ9LAorICAgICAgICBdLAorICAgIH0pOworCisgICAgdGVzdEFk
ZCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZC5PYmplY3QuS2V5UGF0aFNldE9uT2JqZWN0
V2l0aEF1dG9JbmNyZW1lbnQuU3ViIiwgeworICAgICAgICBvcHRpb25zOiB7a2V5UGF0aDogIktl
eVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50LlN1YiIsIGF1dG9JbmNyZW1lbnQ6IHRy
dWV9LAorICAgICAgICB0ZXN0czogWworICAgICAgICAgICAge3ZhbHVlOiB7S2V5UGF0aFNldE9u
T2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQ6IHtTdWI6IDQyfSwgLi4uSW5zcGVjdG9yVGVzdC5PYmpl
Y3RTdG9yZS5iYXNpY09iamVjdDF9LCBleHBlY3RlZDogNDJ9LAorICAgICAgICAgICAge3ZhbHVl
OiB7S2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQ6IHtTdWI6IDk5fSwgLi4uSW5z
cGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDJ9LCBleHBlY3RlZDogOTl9LAorICAg
ICAgICBdLAorICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9
Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICA8cD5U
ZXN0cyBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL29iamVjdFN0b3Jl
L2FkZE9iamVjdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0
cy9vYmplY3RTdG9yZS9hZGRPYmplY3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3ZmNlNzY1
MmFiMjE2YWI2ODQyNDE4M2I4MTVjODk4Y2NlODNkNWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9vYmplY3RTdG9yZS9hZGRPYmplY3QtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNTQgQEAKK1Rlc3RzIFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5h
ZGRPYmplY3QuCisKKworPT0gUnVubmluZyB0ZXN0IHN1aXRlOiBXSS5PYmplY3RTdG9yZS5wcm90
b3R5cGUuYWRkT2JqZWN0CistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJv
dG90eXBlLmFkZE9iamVjdC5Ob1BhcmFtZXRlcnMKK1BBU1M6IFNob3VsZCBwcm9kdWNlIGFuIGV4
Y2VwdGlvbi4KK1R5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRp
bmcgJ29iamVjdC50b0pTT04nKQorW10KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVj
dFN0b3JlLnByb3RvdHlwZS5hZGRPYmplY3QuV2l0aG91dEtleVBhdGhPckF1dG9JbmNyZW1lbnQK
K1BBU1M6IFNob3VsZCBwcm9kdWNlIGFuIGV4Y2VwdGlvbi4KK0RhdGFFcnJvcjogRmFpbGVkIHRv
IHN0b3JlIHJlY29yZCBpbiBhbiBJREJPYmplY3RTdG9yZTogVGhlIG9iamVjdCBzdG9yZSB1c2Vz
IG91dC1vZi1saW5lIGtleXMgYW5kIGhhcyBubyBrZXkgZ2VuZXJhdG9yIGFuZCB0aGUga2V5IHBh
cmFtZXRlciB3YXMgbm90IHByb3ZpZGVkLgorW10KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJ
Lk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGRPYmplY3QuS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdp
dGhvdXRBdXRvSW5jcmVtZW50CitQQVNTOiBTaG91bGQgcHJvZHVjZSBhbiBleGNlcHRpb24uCitE
YXRhRXJyb3I6IEZhaWxlZCB0byBzdG9yZSByZWNvcmQgaW4gYW4gSURCT2JqZWN0U3RvcmU6IEV2
YWx1YXRpbmcgdGhlIG9iamVjdCBzdG9yZSdzIGtleSBwYXRoIGRpZCBub3QgeWllbGQgYSB2YWx1
ZS4KK1tdCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUu
YWRkT2JqZWN0LktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50CithZGRPYmpl
Y3Q6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Ijo0MiwiYSI6MX1d
CithZGRPYmplY3Q6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Ijo0
MiwiYSI6MX0seyJLZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCI6OTksImIi
OjJ9XQorW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiOjQyLCJhIjox
fSx7IktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Ijo5OSwiYiI6Mn1dCisK
Ky0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkT2JqZWN0
LktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudAorYWRkT2JqZWN0OiBbeyJh
IjoxLCJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOjF9XQorYWRkT2Jq
ZWN0OiBbeyJhIjoxLCJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOjF9
LHsiYiI6MiwiS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50IjoyfV0KK1t7
ImEiOjEsIktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6MX0seyJiIjoy
LCJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOjJ9XQorCistLSBSdW5u
aW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZE9iamVjdC5LZXlQYXRo
U2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudAorYWRkT2JqZWN0OiBbeyJLZXlQYXRoU2V0T25P
YmplY3RXaXRoQXV0b0luY3JlbWVudCI6NDIsImEiOjF9XQorYWRkT2JqZWN0OiBbeyJLZXlQYXRo
U2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6NDIsImEiOjF9LHsiS2V5UGF0aFNldE9uT2Jq
ZWN0V2l0aEF1dG9JbmNyZW1lbnQiOjk5LCJiIjoyfV0KK1t7IktleVBhdGhTZXRPbk9iamVjdFdp
dGhBdXRvSW5jcmVtZW50Ijo0MiwiYSI6MX0seyJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0lu
Y3JlbWVudCI6OTksImIiOjJ9XQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3Rv
cmUucHJvdG90eXBlLmFkZE9iamVjdC5BdXRvSW5jcmVtZW50V2l0aG91dEtleVBhdGgKK2FkZE9i
amVjdDogW3siYSI6MX1dCithZGRPYmplY3Q6IFt7ImEiOjF9LHsiYiI6Mn1dCitbeyJhIjoxfSx7
ImIiOjJ9XQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBl
LmFkZE9iamVjdC5LZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudC5TdWIKK2Fk
ZE9iamVjdDogW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiOnsiU3Vi
Ijo0Mn0sImEiOjF9XQorYWRkT2JqZWN0OiBbeyJLZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0
b0luY3JlbWVudCI6eyJTdWIiOjQyfSwiYSI6MX0seyJLZXlQYXRoU2V0T25PYmplY3RXaXRob3V0
QXV0b0luY3JlbWVudCI6eyJTdWIiOjk5fSwiYiI6Mn1dCitbeyJLZXlQYXRoU2V0T25PYmplY3RX
aXRob3V0QXV0b0luY3JlbWVudCI6eyJTdWIiOjQyfSwiYSI6MX0seyJLZXlQYXRoU2V0T25PYmpl
Y3RXaXRob3V0QXV0b0luY3JlbWVudCI6eyJTdWIiOjk5fSwiYiI6Mn1dCisKKy0tIFJ1bm5pbmcg
dGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkT2JqZWN0LktleVBhdGhNaXNz
aW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudC5TdWIKK2FkZE9iamVjdDogW3siYSI6MSwiS2V5
UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijp7IlN1YiI6MX19XQorYWRkT2Jq
ZWN0OiBbeyJhIjoxLCJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOnsi
U3ViIjoxfX0seyJiIjoyLCJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQi
OnsiU3ViIjoyfX1dCitbeyJhIjoxLCJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNy
ZW1lbnQiOnsiU3ViIjoxfX0seyJiIjoyLCJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9J
bmNyZW1lbnQiOnsiU3ViIjoyfX1dCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RT
dG9yZS5wcm90b3R5cGUuYWRkT2JqZWN0LktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVt
ZW50LlN1YgorYWRkT2JqZWN0OiBbeyJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVu
dCI6eyJTdWIiOjQyfSwiYSI6MX1dCithZGRPYmplY3Q6IFt7IktleVBhdGhTZXRPbk9iamVjdFdp
dGhBdXRvSW5jcmVtZW50Ijp7IlN1YiI6NDJ9LCJhIjoxfSx7IktleVBhdGhTZXRPbk9iamVjdFdp
dGhBdXRvSW5jcmVtZW50Ijp7IlN1YiI6OTl9LCJiIjoyfV0KK1t7IktleVBhdGhTZXRPbk9iamVj
dFdpdGhBdXRvSW5jcmVtZW50Ijp7IlN1YiI6NDJ9LCJhIjoxfSx7IktleVBhdGhTZXRPbk9iamVj
dFdpdGhBdXRvSW5jcmVtZW50Ijp7IlN1YiI6OTl9LCJiIjoyfV0KKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvb2JqZWN0U3RvcmUvYWRkT2JqZWN0Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9vYmplY3RTdG9yZS9hZGRPYmplY3Qu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wMzUyM2ZiNWY4MjFhNjNlYTc4MDAwNzNjNzUxMWI4ZDQyYmE4NWRl
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvb2Jq
ZWN0U3RvcmUvYWRkT2JqZWN0Lmh0bWwKQEAgLTAsMCArMSwxMTMgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9vYmplY3RTdG9yZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
K2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuT2JqZWN0
U3RvcmUuY3JlYXRlU3VpdGUoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGRPYmplY3QiKTsK
KworICAgIGZ1bmN0aW9uIHRlc3RBZGRPYmplY3QobmFtZSwge29wdGlvbnMsIHRlc3RzfSkgewor
ICAgICAgICBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLndyYXBUZXN0KG5hbWUsIGFzeW5jIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5jcmVhdGVP
YmplY3RTdG9yZShvcHRpb25zKTsKKworICAgICAgICAgICAgZm9yIChsZXQge3ZhbHVlLCBleHBl
Y3RlZH0gb2YgdGVzdHMpCisgICAgICAgICAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5PYmpl
Y3RTdG9yZS5hZGRPYmplY3QobmV3IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuVGVzdE9iamVj
dCh2YWx1ZSksIGV4cGVjdGVkKTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgSW5zcGVjdG9y
VGVzdC5PYmplY3RTdG9yZS53cmFwVGVzdCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZE9i
amVjdC5Ob1BhcmFtZXRlcnMiLCBhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgbGV0IG9iamVj
dFN0b3JlID0gSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5jcmVhdGVPYmplY3RTdG9yZSgpOwor
CisgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXhwZWN0RXhjZXB0aW9uKGFzeW5jIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgYXdhaXQgb2JqZWN0U3RvcmUuYWRkT2JqZWN0KCk7CisgICAg
ICAgICAgICBhd2FpdCBvYmplY3RTdG9yZS5hZGRPYmplY3QobmV3IEluc3BlY3RvclRlc3QuT2Jq
ZWN0U3RvcmUuVGVzdE9iamVjdChJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0
MikpOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIEluc3BlY3RvclRlc3QuT2JqZWN0U3Rv
cmUud3JhcFRlc3QoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGRPYmplY3QuV2l0aG91dEtl
eVBhdGhPckF1dG9JbmNyZW1lbnQiLCBhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgbGV0IG9i
amVjdFN0b3JlID0gSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5jcmVhdGVPYmplY3RTdG9yZSgp
OworCisgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXhwZWN0RXhjZXB0aW9uKGFzeW5jIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgYXdhaXQgb2JqZWN0U3RvcmUuYWRkT2JqZWN0KG5ldyBJ
bnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLlRlc3RPYmplY3QoSW5zcGVjdG9yVGVzdC5PYmplY3RT
dG9yZS5iYXNpY09iamVjdDEpKTsKKyAgICAgICAgICAgIGF3YWl0IG9iamVjdFN0b3JlLmFkZE9i
amVjdChuZXcgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5UZXN0T2JqZWN0KEluc3BlY3RvclRl
c3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyKSk7CisgICAgICAgIH0pOworICAgIH0pOworCisg
ICAgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS53cmFwVGVzdCgiV0kuT2JqZWN0U3RvcmUucHJv
dG90eXBlLmFkZE9iamVjdC5LZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1l
bnQiLCBhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAg
ICAgICAgIGtleVBhdGg6ICJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1l
bnQiLAorICAgICAgICB9OworICAgICAgICBsZXQgb2JqZWN0U3RvcmUgPSBJbnNwZWN0b3JUZXN0
Lk9iamVjdFN0b3JlLmNyZWF0ZU9iamVjdFN0b3JlKG9wdGlvbnMpOworCisgICAgICAgIGF3YWl0
IEluc3BlY3RvclRlc3QuZXhwZWN0RXhjZXB0aW9uKGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgYXdhaXQgb2JqZWN0U3RvcmUuYWRkT2JqZWN0KG5ldyBJbnNwZWN0b3JUZXN0Lk9iamVj
dFN0b3JlLlRlc3RPYmplY3QoSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDEp
KTsKKyAgICAgICAgICAgIGF3YWl0IG9iamVjdFN0b3JlLmFkZE9iamVjdChuZXcgSW5zcGVjdG9y
VGVzdC5PYmplY3RTdG9yZS5UZXN0T2JqZWN0KEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFz
aWNPYmplY3QyKSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgdGVzdEFkZE9iamVjdCgi
V0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZE9iamVjdC5LZXlQYXRoU2V0T25PYmplY3RXaXRo
b3V0QXV0b0luY3JlbWVudCIsIHsKKyAgICAgICAgb3B0aW9uczoge2tleVBhdGg6ICJLZXlQYXRo
U2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCJ9LAorICAgICAgICB0ZXN0czogWworICAg
ICAgICAgICAge3ZhbHVlOiB7S2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQ6
IDQyLCAuLi5JbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MX0sIGV4cGVjdGVk
OiA0Mn0sCisgICAgICAgICAgICB7dmFsdWU6IHtLZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0
b0luY3JlbWVudDogOTksIC4uLkluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3Qy
fSwgZXhwZWN0ZWQ6IDk5fSwKKyAgICAgICAgXSwKKyAgICB9KTsKKworICAgIHRlc3RBZGRPYmpl
Y3QoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGRPYmplY3QuS2V5UGF0aE1pc3NpbmdPbk9i
amVjdFdpdGhBdXRvSW5jcmVtZW50IiwgeworICAgICAgICBvcHRpb25zOiB7a2V5UGF0aDogIktl
eVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCIsIGF1dG9JbmNyZW1lbnQ6IHRy
dWV9LAorICAgICAgICB0ZXN0czogWworICAgICAgICAgICAge3ZhbHVlOiBJbnNwZWN0b3JUZXN0
Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MSwgZXhwZWN0ZWQ6IDF9LAorICAgICAgICAgICAge3Zh
bHVlOiBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MiwgZXhwZWN0ZWQ6IDJ9
LAorICAgICAgICBdLAorICAgIH0pOworCisgICAgdGVzdEFkZE9iamVjdCgiV0kuT2JqZWN0U3Rv
cmUucHJvdG90eXBlLmFkZE9iamVjdC5LZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVu
dCIsIHsKKyAgICAgICAgb3B0aW9uczoge2tleVBhdGg6ICJLZXlQYXRoU2V0T25PYmplY3RXaXRo
QXV0b0luY3JlbWVudCIsIGF1dG9JbmNyZW1lbnQ6IHRydWV9LAorICAgICAgICB0ZXN0czogWwor
ICAgICAgICAgICAge3ZhbHVlOiB7S2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQ6
IDQyLCAuLi5JbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MX0sIGV4cGVjdGVk
OiA0Mn0sCisgICAgICAgICAgICB7dmFsdWU6IHtLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0lu
Y3JlbWVudDogOTksIC4uLkluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyfSwg
ZXhwZWN0ZWQ6IDk5fSwKKyAgICAgICAgXSwKKyAgICB9KTsKKworICAgIHRlc3RBZGRPYmplY3Qo
IldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGRPYmplY3QuQXV0b0luY3JlbWVudFdpdGhvdXRL
ZXlQYXRoIiwgeworICAgICAgICBvcHRpb25zOiB7YXV0b0luY3JlbWVudDogdHJ1ZX0sCisgICAg
ICAgIHRlc3RzOiBbCisgICAgICAgICAgICB7dmFsdWU6IEluc3BlY3RvclRlc3QuT2JqZWN0U3Rv
cmUuYmFzaWNPYmplY3QxLCBleHBlY3RlZDogMX0sCisgICAgICAgICAgICB7dmFsdWU6IEluc3Bl
Y3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyLCBleHBlY3RlZDogMn0sCisgICAgICAg
IF0sCisgICAgfSk7CisKKyAgICB0ZXN0QWRkT2JqZWN0KCJXSS5PYmplY3RTdG9yZS5wcm90b3R5
cGUuYWRkT2JqZWN0LktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50LlN1YiIs
IHsKKyAgICAgICAgb3B0aW9uczoge2tleVBhdGg6ICJLZXlQYXRoU2V0T25PYmplY3RXaXRob3V0
QXV0b0luY3JlbWVudC5TdWIifSwKKyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAgIHt2YWx1
ZToge0tleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50OiB7U3ViOiA0Mn0sIC4u
Lkluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QxfSwgZXhwZWN0ZWQ6IDQyfSwK
KyAgICAgICAgICAgIHt2YWx1ZToge0tleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVt
ZW50OiB7U3ViOiA5OX0sIC4uLkluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3Qy
fSwgZXhwZWN0ZWQ6IDk5fSwKKyAgICAgICAgXSwKKyAgICB9KTsKKworICAgIHRlc3RBZGRPYmpl
Y3QoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGRPYmplY3QuS2V5UGF0aE1pc3NpbmdPbk9i
amVjdFdpdGhBdXRvSW5jcmVtZW50LlN1YiIsIHsKKyAgICAgICAgb3B0aW9uczoge2tleVBhdGg6
ICJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQuU3ViIiwgYXV0b0luY3Jl
bWVudDogdHJ1ZX0sCisgICAgICAgIHRlc3RzOiBbCisgICAgICAgICAgICB7dmFsdWU6IEluc3Bl
Y3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QxLCBleHBlY3RlZDogMX0sCisgICAgICAg
ICAgICB7dmFsdWU6IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyLCBleHBl
Y3RlZDogMn0sCisgICAgICAgIF0sCisgICAgfSk7CisKKyAgICB0ZXN0QWRkT2JqZWN0KCJXSS5P
YmplY3RTdG9yZS5wcm90b3R5cGUuYWRkT2JqZWN0LktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRv
SW5jcmVtZW50LlN1YiIsIHsKKyAgICAgICAgb3B0aW9uczoge2tleVBhdGg6ICJLZXlQYXRoU2V0
T25PYmplY3RXaXRoQXV0b0luY3JlbWVudC5TdWIiLCBhdXRvSW5jcmVtZW50OiB0cnVlfSwKKyAg
ICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAgIHt2YWx1ZToge0tleVBhdGhTZXRPbk9iamVjdFdp
dGhBdXRvSW5jcmVtZW50OiB7U3ViOiA0Mn0sIC4uLkluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUu
YmFzaWNPYmplY3QxfSwgZXhwZWN0ZWQ6IDQyfSwKKyAgICAgICAgICAgIHt2YWx1ZToge0tleVBh
dGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50OiB7U3ViOiA5OX0sIC4uLkluc3BlY3RvclRl
c3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyfSwgZXhwZWN0ZWQ6IDk5fSwKKyAgICAgICAgXSwK
KyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPHA+VGVzdHMgV0ku
T2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZE9iamVjdC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9vYmplY3RTdG9yZS9i
YXNpYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9vYmpl
Y3RTdG9yZS9iYXNpYy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDZhNGM2ZmY2ZWJlYTFjMDlj
ODU5MmYzMTI4NGI4ZTMxZmI4NjY4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci91bml0LXRlc3RzL29iamVjdFN0b3JlL2Jhc2ljLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDE5IEBACitUZXN0cyBiYXNpYyBmdW5jdGlvbmFsaXR5IG9mIFdJLk9iamVjdFN0b3JlLgor
CisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogV0kuT2JqZWN0U3RvcmUKKy0tIFJ1bm5pbmcgdGVz
dCBjYXNlOiBXSS5PYmplY3RTdG9yZS5Jbml0aWFsbHlOdWxsCitQQVNTOiBUaGUgZGF0YWJhc2Ug
c2hvdWxkIGluaXRpYWxseSBiZSBudWxsL2Nsb3NlZC4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6
IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5fcmVzb2x2ZUtleVBhdGguRXhpc3RzCit7Im9iamVj
dCI6eyJhIjoxfSwia2V5IjpbImEiXSwidmFsdWUiOjF9CitbXQorCistLSBSdW5uaW5nIHRlc3Qg
Y2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLl9yZXNvbHZlS2V5UGF0aC5NaXNzaW5nUGFy
dAoreyJvYmplY3QiOnsic3ViLmEiOjAsImEiOjEsImIiOjJ9LCJrZXkiOiJzdWIuYSIsInZhbHVl
IjowfQorW10KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlw
ZS5fcmVzb2x2ZUtleVBhdGguTWlzc2luZ1dob2xlCit7Im9iamVjdCI6eyJhIjoxLCJiIjoyfSwi
a2V5Ijoic3ViLmEifQorW10KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Vu
aXQtdGVzdHMvb2JqZWN0U3RvcmUvYmFzaWMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91
bml0LXRlc3RzL29iamVjdFN0b3JlL2Jhc2ljLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTQ3ZmRkYWViMzlm
OTNiMTllZjRmYjU3NGUwMGJmNjc3YWY3YmFjOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci91bml0LXRlc3RzL29iamVjdFN0b3JlL2Jhc2ljLmh0bWwKQEAgLTAsMCAr
MSw1MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL29iamVjdFN0b3JlLXV0aWxpdGllcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRl
ID0gSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5jcmVhdGVTdWl0ZSgiV0kuT2JqZWN0U3RvcmUi
KTsKKworICAgIEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUud3JhcFRlc3QoIldJLk9iamVjdFN0
b3JlLkluaXRpYWxseU51bGwiLCBhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgSW5zcGVjdG9y
VGVzdC5leHBlY3ROdWxsKFdJLk9iamVjdFN0b3JlLl9kYXRhYmFzZSwgIlRoZSBkYXRhYmFzZSBz
aG91bGQgaW5pdGlhbGx5IGJlIG51bGwvY2xvc2VkLiIpOworICAgIH0pOworCisgICAgSW5zcGVj
dG9yVGVzdC5PYmplY3RTdG9yZS53cmFwVGVzdCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLl9y
ZXNvbHZlS2V5UGF0aC5FeGlzdHMiLCBhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgY29uc3Qg
b3B0aW9ucyA9IHsKKyAgICAgICAgICAgIGtleVBhdGg6ICJzdWIuYSIsCisgICAgICAgIH07Cisg
ICAgICAgIGxldCBvYmplY3RTdG9yZSA9IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuY3JlYXRl
T2JqZWN0U3RvcmUob3B0aW9ucyk7CisKKyAgICAgICAgY29uc3Qgb2JqZWN0ID0ge3N1Yjoge2E6
IDF9LCBiOiAyfTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2cob2JqZWN0U3RvcmUuX3Jlc29s
dmVLZXlQYXRoKG9iamVjdCkpOworICAgIH0pOworCisgICAgSW5zcGVjdG9yVGVzdC5PYmplY3RT
dG9yZS53cmFwVGVzdCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLl9yZXNvbHZlS2V5UGF0aC5N
aXNzaW5nUGFydCIsIGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICBjb25zdCBvcHRpb25zID0g
eworICAgICAgICAgICAga2V5UGF0aDogInN1Yi5hIiwKKyAgICAgICAgfTsKKyAgICAgICAgbGV0
IG9iamVjdFN0b3JlID0gSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5jcmVhdGVPYmplY3RTdG9y
ZShvcHRpb25zKTsKKworICAgICAgICBjb25zdCBvYmplY3QgPSB7InN1Yi5hIjogMCwgYTogMSwg
YjogMn07CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKG9iamVjdFN0b3JlLl9yZXNvbHZlS2V5
UGF0aChvYmplY3QpKTsKKyAgICB9KTsKKworICAgIEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUu
d3JhcFRlc3QoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5fcmVzb2x2ZUtleVBhdGguTWlzc2lu
Z1dob2xlIiwgYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7Cisg
ICAgICAgICAgICBrZXlQYXRoOiAic3ViLmEiLAorICAgICAgICB9OworICAgICAgICBsZXQgb2Jq
ZWN0U3RvcmUgPSBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmNyZWF0ZU9iamVjdFN0b3JlKG9w
dGlvbnMpOworCisgICAgICAgIGNvbnN0IG9iamVjdCA9IHthOiAxLCBiOiAyfTsKKyAgICAgICAg
SW5zcGVjdG9yVGVzdC5sb2cob2JqZWN0U3RvcmUuX3Jlc29sdmVLZXlQYXRoKG9iamVjdCkpOwor
ICAgIH0pOworCisgICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICA8cD5UZXN0cyBiYXNp
YyBmdW5jdGlvbmFsaXR5IG9mIFdJLk9iamVjdFN0b3JlLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL29iamVjdFN0b3Jl
L2RlbGV0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9v
YmplY3RTdG9yZS9kZWxldGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0ODNlNWNlNTYwNmEz
Mjg0ZjYyNjkyYzdjMmJiNzg2OTYzYjE2OTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9vYmplY3RTdG9yZS9kZWxldGUtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTA4IEBACitUZXN0cyBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlLgor
CisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0
ZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGUu
Tm9QYXJhbWV0ZXJzCithZGQ6IFt7ImIiOjJ9XQorUEFTUzogU2hvdWxkIHByb2R1Y2UgYW4gZXhj
ZXB0aW9uLgorVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cworW3siYiI6Mn1dCisKKy0t
IFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlLk1pc3Np
bmdPYmplY3QKK2FkZDogW3siYiI6Mn1dCitQQVNTOiBTaG91bGQgcHJvZHVjZSBhbiBleGNlcHRp
b24uCitEYXRhRXJyb3I6IEZhaWxlZCB0byBleGVjdXRlICdkZWxldGUnIG9uICdJREJPYmplY3RT
dG9yZSc6IFRoZSBwYXJhbWV0ZXIgaXMgbm90IGEgdmFsaWQga2V5LgorW3siYiI6Mn1dCisKKy0t
IFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlLkJvb2xl
YW4KK2FkZDogW2ZhbHNlXQorYWRkOiBbZmFsc2UsdHJ1ZV0KK2RlbGV0ZTogW3RydWVdCitkZWxl
dGU6IFtdCitbXQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90
eXBlLmRlbGV0ZS5OdW1iZXIKK2FkZDogWzExXQorYWRkOiBbMTEsMjJdCitkZWxldGU6IFsyMl0K
K2RlbGV0ZTogW10KK1tdCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5w
cm90b3R5cGUuZGVsZXRlLlN0cmluZworYWRkOiBbImZvbyJdCithZGQ6IFsiZm9vIiwiYmFyIl0K
K2RlbGV0ZTogWyJiYXIiXQorZGVsZXRlOiBbXQorW10KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6
IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGUuQXJyYXkKK2FkZDogW1sxMV1dCithZGQ6
IFtbMTFdLFsyMl1dCitkZWxldGU6IFtbMjJdXQorZGVsZXRlOiBbXQorW10KKworLS0gUnVubmlu
ZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGUuTnVsbAorYWRkOiBb
bnVsbF0KK2RlbGV0ZTogW10KK1tdCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RT
dG9yZS5wcm90b3R5cGUuZGVsZXRlLk9iamVjdC5XaXRob3V0S2V5UGF0aE9yQXV0b0luY3JlbWVu
dAorUEFTUzogU2hvdWxkIHByb2R1Y2UgYW4gZXhjZXB0aW9uLgorRGF0YUVycm9yOiBGYWlsZWQg
dG8gc3RvcmUgcmVjb3JkIGluIGFuIElEQk9iamVjdFN0b3JlOiBUaGUgb2JqZWN0IHN0b3JlIHVz
ZXMgb3V0LW9mLWxpbmUga2V5cyBhbmQgaGFzIG5vIGtleSBnZW5lcmF0b3IgYW5kIHRoZSBrZXkg
cGFyYW1ldGVyIHdhcyBub3QgcHJvdmlkZWQuCitbXQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTog
V0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZS5PYmplY3QuS2V5UGF0aE1pc3NpbmdPbk9i
amVjdFdpdGhvdXRBdXRvSW5jcmVtZW50CitQQVNTOiBTaG91bGQgcHJvZHVjZSBhbiBleGNlcHRp
b24uCitEYXRhRXJyb3I6IEZhaWxlZCB0byBzdG9yZSByZWNvcmQgaW4gYW4gSURCT2JqZWN0U3Rv
cmU6IEV2YWx1YXRpbmcgdGhlIG9iamVjdCBzdG9yZSdzIGtleSBwYXRoIGRpZCBub3QgeWllbGQg
YSB2YWx1ZS4KK1tdCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90
b3R5cGUuZGVsZXRlLk9iamVjdC5LZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVu
dAorYWRkOiBbeyJLZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCI6NDIsImEi
OjF9XQorYWRkOiBbeyJLZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCI6NDIs
ImEiOjF9LHsiS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiOjk5LCJiIjoy
fV0KK2RlbGV0ZTogW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiOjk5
LCJiIjoyfV0KK2RlbGV0ZTogW10KK1tdCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmpl
Y3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlLk9iamVjdC5LZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0
aEF1dG9JbmNyZW1lbnQKK2FkZDogW3siYSI6MSwiS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhB
dXRvSW5jcmVtZW50IjoxfV0KK2FkZDogW3siYSI6MSwiS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdp
dGhBdXRvSW5jcmVtZW50IjoxfSx7ImIiOjIsIktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0
b0luY3JlbWVudCI6Mn1dCitkZWxldGU6IFt7ImIiOjIsIktleVBhdGhNaXNzaW5nT25PYmplY3RX
aXRoQXV0b0luY3JlbWVudCI6Mn1dCitkZWxldGU6IFtdCitbXQorCistLSBSdW5uaW5nIHRlc3Qg
Y2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZS5PYmplY3QuS2V5UGF0aFNldE9u
T2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQKK2FkZDogW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1
dG9JbmNyZW1lbnQiOjQyLCJhIjoxfV0KK2FkZDogW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1
dG9JbmNyZW1lbnQiOjQyLCJhIjoxfSx7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVt
ZW50Ijo5OSwiYiI6Mn1dCitkZWxldGU6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5j
cmVtZW50Ijo5OSwiYiI6Mn1dCitkZWxldGU6IFtdCitbXQorCistLSBSdW5uaW5nIHRlc3QgY2Fz
ZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZS5PYmplY3QuQXV0b0luY3JlbWVudFdp
dGhvdXRLZXlQYXRoCithZGQ6IFt7ImEiOjF9XQorYWRkOiBbeyJhIjoxfSx7ImIiOjJ9XQorZGVs
ZXRlOiBbeyJiIjoyfV0KK2RlbGV0ZTogW10KK1tdCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBX
SS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlLk9iamVjdC5LZXlQYXRoU2V0T25PYmplY3RX
aXRob3V0QXV0b0luY3JlbWVudC5TdWIKK2FkZDogW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91
dEF1dG9JbmNyZW1lbnQiOnsiU3ViIjo0Mn0sImEiOjF9XQorYWRkOiBbeyJLZXlQYXRoU2V0T25P
YmplY3RXaXRob3V0QXV0b0luY3JlbWVudCI6eyJTdWIiOjQyfSwiYSI6MX0seyJLZXlQYXRoU2V0
T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCI6eyJTdWIiOjk5fSwiYiI6Mn1dCitkZWxldGU6
IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Ijp7IlN1YiI6OTl9LCJi
IjoyfV0KK2RlbGV0ZTogW10KK1tdCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RT
dG9yZS5wcm90b3R5cGUuZGVsZXRlLk9iamVjdC5LZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1
dG9JbmNyZW1lbnQuU3ViCithZGQ6IFt7ImEiOjEsIktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRo
QXV0b0luY3JlbWVudCI6eyJTdWIiOjF9fV0KK2FkZDogW3siYSI6MSwiS2V5UGF0aE1pc3NpbmdP
bk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijp7IlN1YiI6MX19LHsiYiI6MiwiS2V5UGF0aE1pc3Np
bmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijp7IlN1YiI6Mn19XQorZGVsZXRlOiBbeyJiIjoy
LCJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOnsiU3ViIjoyfX1dCitk
ZWxldGU6IFtdCitbXQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJv
dG90eXBlLmRlbGV0ZS5PYmplY3QuS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQu
U3ViCithZGQ6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijp7IlN1YiI6
NDJ9LCJhIjoxfV0KK2FkZDogW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQi
OnsiU3ViIjo0Mn0sImEiOjF9LHsiS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQi
OnsiU3ViIjo5OX0sImIiOjJ9XQorZGVsZXRlOiBbeyJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0
b0luY3JlbWVudCI6eyJTdWIiOjk5fSwiYiI6Mn1dCitkZWxldGU6IFtdCitbXQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9vYmplY3RTdG9yZS9kZWxldGUu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL29iamVjdFN0b3JlL2RlbGV0
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjE4NTExOWVhYWIwZDFlNjVhNDAwMWViZjNhOTU2YmUyYTFiYzhk
YzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9v
YmplY3RTdG9yZS9kZWxldGUuaHRtbApAQCAtMCwwICsxLDE3NSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL29iamVjdFN0b3JlLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
ZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5PYmplY3RT
dG9yZS5jcmVhdGVTdWl0ZSgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZSIpOworCisg
ICAgZnVuY3Rpb24gdGVzdERlbGV0ZShuYW1lLCB7b3B0aW9ucywgdGVzdHN9KSB7CisgICAgICAg
IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUud3JhcFRlc3QobmFtZSwgYXN5bmMgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmNyZWF0ZU9iamVjdFN0
b3JlKG9wdGlvbnMpOworCisgICAgICAgICAgICBsZXQga2V5cyA9IFtdOworICAgICAgICAgICAg
Zm9yIChsZXQge3ZhbHVlLCBleHBlY3RlZH0gb2YgdGVzdHMpCisgICAgICAgICAgICAgICAga2V5
cy5wdXNoKGF3YWl0IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYWRkKHZhbHVlLCBleHBlY3Rl
ZCkpOworCisgICAgICAgICAgICBmb3IgKGxldCBrZXkgb2Yga2V5cykKKyAgICAgICAgICAgICAg
ICBhd2FpdCBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmRlbGV0ZShrZXkpOworICAgICAgICB9
KTsKKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLndyYXBUZXN0KCJXSS5P
YmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlLk5vUGFyYW1ldGVycyIsIGFzeW5jIGZ1bmN0aW9u
KCkgeworICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAgYXV0b0luY3JlbWVu
dDogdHJ1ZSwKKyAgICAgICAgfTsKKyAgICAgICAgbGV0IG9iamVjdFN0b3JlID0gSW5zcGVjdG9y
VGVzdC5PYmplY3RTdG9yZS5jcmVhdGVPYmplY3RTdG9yZShvcHRpb25zKTsKKworICAgICAgICBh
d2FpdCBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmFkZChJbnNwZWN0b3JUZXN0Lk9iamVjdFN0
b3JlLmJhc2ljT2JqZWN0MiwgMSk7CisKKyAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5leHBl
Y3RFeGNlcHRpb24oYXN5bmMgKCkgPT4geworICAgICAgICAgICAgYXdhaXQgb2JqZWN0U3RvcmUu
ZGVsZXRlKCk7CisgICAgICAgICAgICBhd2FpdCBvYmplY3RTdG9yZS5kZWxldGUoSW5zcGVjdG9y
VGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDIpOworICAgICAgICB9KTsKKyAgICB9KTsKKwor
ICAgIEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUud3JhcFRlc3QoIldJLk9iamVjdFN0b3JlLnBy
b3RvdHlwZS5kZWxldGUuTWlzc2luZ09iamVjdCIsIGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAg
ICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAgYXV0b0luY3JlbWVudDogdHJ1ZSwKKyAg
ICAgICAgfTsKKyAgICAgICAgbGV0IG9iamVjdFN0b3JlID0gSW5zcGVjdG9yVGVzdC5PYmplY3RT
dG9yZS5jcmVhdGVPYmplY3RTdG9yZShvcHRpb25zKTsKKworICAgICAgICBhd2FpdCBJbnNwZWN0
b3JUZXN0Lk9iamVjdFN0b3JlLmFkZChJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2Jq
ZWN0MiwgMSk7CisKKyAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5leHBlY3RFeGNlcHRpb24o
YXN5bmMgKCkgPT4geworICAgICAgICAgICAgYXdhaXQgb2JqZWN0U3RvcmUuZGVsZXRlKEluc3Bl
Y3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QxKTsKKyAgICAgICAgICAgIGF3YWl0IG9i
amVjdFN0b3JlLmRlbGV0ZShJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0Mik7
CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgdGVzdERlbGV0ZSgiV0kuT2JqZWN0U3RvcmUu
cHJvdG90eXBlLmRlbGV0ZS5Cb29sZWFuIiwgeworICAgICAgICBvcHRpb25zOiB7YXV0b0luY3Jl
bWVudDogdHJ1ZX0sCisgICAgICAgIHRlc3RzOiBbCisgICAgICAgICAgICB7dmFsdWU6IGZhbHNl
LCBleHBlY3RlZDogMX0sCisgICAgICAgICAgICB7dmFsdWU6IHRydWUsIGV4cGVjdGVkOiAyfSwK
KyAgICAgICAgXSwKKyAgICB9KTsKKworICAgIHRlc3REZWxldGUoIldJLk9iamVjdFN0b3JlLnBy
b3RvdHlwZS5kZWxldGUuTnVtYmVyIiwgeworICAgICAgICBvcHRpb25zOiB7YXV0b0luY3JlbWVu
dDogdHJ1ZX0sCisgICAgICAgIHRlc3RzOiBbCisgICAgICAgICAgICB7dmFsdWU6IDExLCBleHBl
Y3RlZDogMX0sCisgICAgICAgICAgICB7dmFsdWU6IDIyLCBleHBlY3RlZDogMn0sCisgICAgICAg
IF0sCisgICAgfSk7CisKKyAgICB0ZXN0RGVsZXRlKCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUu
ZGVsZXRlLlN0cmluZyIsIHsKKyAgICAgICAgb3B0aW9uczoge2F1dG9JbmNyZW1lbnQ6IHRydWV9
LAorICAgICAgICB0ZXN0czogWworICAgICAgICAgICAge3ZhbHVlOiAiZm9vIiwgZXhwZWN0ZWQ6
IDF9LAorICAgICAgICAgICAge3ZhbHVlOiAiYmFyIiwgZXhwZWN0ZWQ6IDJ9LAorICAgICAgICBd
LAorICAgIH0pOworCisgICAgdGVzdERlbGV0ZSgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRl
bGV0ZS5BcnJheSIsIHsKKyAgICAgICAgb3B0aW9uczoge2F1dG9JbmNyZW1lbnQ6IHRydWV9LAor
ICAgICAgICB0ZXN0czogWworICAgICAgICAgICAge3ZhbHVlOiBbMTFdLCBleHBlY3RlZDogMX0s
CisgICAgICAgICAgICB7dmFsdWU6IFsyMl0sIGV4cGVjdGVkOiAyfSwKKyAgICAgICAgXSwKKyAg
ICB9KTsKKworICAgIHRlc3REZWxldGUoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGUu
TnVsbCIsIHsKKyAgICAgICAgb3B0aW9uczoge2F1dG9JbmNyZW1lbnQ6IHRydWV9LAorICAgICAg
ICB0ZXN0czogWworICAgICAgICAgICAge3ZhbHVlOiBudWxsLCBleHBlY3RlZDogMX0sCisgICAg
ICAgIF0sCisgICAgfSk7CisKKyAgICBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLndyYXBUZXN0
KCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlLk9iamVjdC5XaXRob3V0S2V5UGF0aE9y
QXV0b0luY3JlbWVudCIsIGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICBsZXQgb2JqZWN0U3Rv
cmUgPSBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmNyZWF0ZU9iamVjdFN0b3JlKCk7CisKKyAg
ICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5leHBlY3RFeGNlcHRpb24oYXN5bmMgZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICBhd2FpdCBvYmplY3RTdG9yZS5hZGQoSW5zcGVjdG9yVGVzdC5PYmpl
Y3RTdG9yZS5iYXNpY09iamVjdDEpOworICAgICAgICAgICAgYXdhaXQgb2JqZWN0U3RvcmUuYWRk
KEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyKTsKKyAgICAgICAgfSk7Cisg
ICAgfSk7CisKKyAgICBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLndyYXBUZXN0KCJXSS5PYmpl
Y3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlLk9iamVjdC5LZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0
aG91dEF1dG9JbmNyZW1lbnQiLCBhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgY29uc3Qgb3B0
aW9ucyA9IHsKKyAgICAgICAgICAgIGtleVBhdGg6ICJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0
aG91dEF1dG9JbmNyZW1lbnQiLAorICAgICAgICB9OworICAgICAgICBsZXQgb2JqZWN0U3RvcmUg
PSBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmNyZWF0ZU9iamVjdFN0b3JlKG9wdGlvbnMpOwor
CisgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXhwZWN0RXhjZXB0aW9uKGFzeW5jIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgYXdhaXQgb2JqZWN0U3RvcmUuYWRkKEluc3BlY3RvclRlc3Qu
T2JqZWN0U3RvcmUuYmFzaWNPYmplY3QxKTsKKyAgICAgICAgICAgIGF3YWl0IG9iamVjdFN0b3Jl
LmFkZChJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0Mik7CisgICAgICAgIH0p
OworICAgIH0pOworCisgICAgdGVzdERlbGV0ZSgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRl
bGV0ZS5PYmplY3QuS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiLCB7Cisg
ICAgICAgIG9wdGlvbnM6IHtrZXlQYXRoOiAiS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9J
bmNyZW1lbnQifSwKKyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAgIHt2YWx1ZToge0tleVBh
dGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50OiA0MiwgLi4uSW5zcGVjdG9yVGVzdC5P
YmplY3RTdG9yZS5iYXNpY09iamVjdDF9LCBleHBlY3RlZDogNDJ9LAorICAgICAgICAgICAge3Zh
bHVlOiB7S2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQ6IDk5LCAuLi5JbnNw
ZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0Mn0sIGV4cGVjdGVkOiA5OX0sCisgICAg
ICAgIF0sCisgICAgfSk7CisKKyAgICB0ZXN0RGVsZXRlKCJXSS5PYmplY3RTdG9yZS5wcm90b3R5
cGUuZGVsZXRlLk9iamVjdC5LZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQi
LCB7CisgICAgICAgIG9wdGlvbnM6IHtrZXlQYXRoOiAiS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdp
dGhBdXRvSW5jcmVtZW50IiwgYXV0b0luY3JlbWVudDogdHJ1ZX0sCisgICAgICAgIHRlc3RzOiBb
CisgICAgICAgICAgICB7dmFsdWU6IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmpl
Y3QxLCBleHBlY3RlZDogMX0sCisgICAgICAgICAgICB7dmFsdWU6IEluc3BlY3RvclRlc3QuT2Jq
ZWN0U3RvcmUuYmFzaWNPYmplY3QyLCBleHBlY3RlZDogMn0sCisgICAgICAgIF0sCisgICAgfSk7
CisKKyAgICB0ZXN0RGVsZXRlKCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlLk9iamVj
dC5LZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCIsIHsKKyAgICAgICAgb3B0aW9u
czoge2tleVBhdGg6ICJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCIsIGF1dG9J
bmNyZW1lbnQ6IHRydWV9LAorICAgICAgICB0ZXN0czogWworICAgICAgICAgICAge3ZhbHVlOiB7
S2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQ6IDQyLCAuLi5JbnNwZWN0b3JUZXN0
Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MX0sIGV4cGVjdGVkOiA0Mn0sCisgICAgICAgICAgICB7
dmFsdWU6IHtLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudDogOTksIC4uLkluc3Bl
Y3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyfSwgZXhwZWN0ZWQ6IDk5fSwKKyAgICAg
ICAgXSwKKyAgICB9KTsKKworICAgIHRlc3REZWxldGUoIldJLk9iamVjdFN0b3JlLnByb3RvdHlw
ZS5kZWxldGUuT2JqZWN0LkF1dG9JbmNyZW1lbnRXaXRob3V0S2V5UGF0aCIsIHsKKyAgICAgICAg
b3B0aW9uczoge2F1dG9JbmNyZW1lbnQ6IHRydWV9LAorICAgICAgICB0ZXN0czogWworICAgICAg
ICAgICAge3ZhbHVlOiBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MSwgZXhw
ZWN0ZWQ6IDF9LAorICAgICAgICAgICAge3ZhbHVlOiBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3Jl
LmJhc2ljT2JqZWN0MiwgZXhwZWN0ZWQ6IDJ9LAorICAgICAgICBdLAorICAgIH0pOworCisgICAg
dGVzdERlbGV0ZSgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZS5PYmplY3QuS2V5UGF0
aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQuU3ViIiwgeworICAgICAgICBvcHRpb25z
OiB7a2V5UGF0aDogIktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50LlN1YiJ9
LAorICAgICAgICB0ZXN0czogWworICAgICAgICAgICAge3ZhbHVlOiB7S2V5UGF0aFNldE9uT2Jq
ZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQ6IHtTdWI6IDQyfSwgLi4uSW5zcGVjdG9yVGVzdC5PYmpl
Y3RTdG9yZS5iYXNpY09iamVjdDF9LCBleHBlY3RlZDogNDJ9LAorICAgICAgICAgICAge3ZhbHVl
OiB7S2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQ6IHtTdWI6IDk5fSwgLi4u
SW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDJ9LCBleHBlY3RlZDogOTl9LAor
ICAgICAgICBdLAorICAgIH0pOworCisgICAgdGVzdERlbGV0ZSgiV0kuT2JqZWN0U3RvcmUucHJv
dG90eXBlLmRlbGV0ZS5PYmplY3QuS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVt
ZW50LlN1YiIsIHsKKyAgICAgICAgb3B0aW9uczoge2tleVBhdGg6ICJLZXlQYXRoTWlzc2luZ09u
T2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQuU3ViIiwgYXV0b0luY3JlbWVudDogdHJ1ZX0sCisgICAg
ICAgIHRlc3RzOiBbCisgICAgICAgICAgICB7dmFsdWU6IEluc3BlY3RvclRlc3QuT2JqZWN0U3Rv
cmUuYmFzaWNPYmplY3QxLCBleHBlY3RlZDogMX0sCisgICAgICAgICAgICB7dmFsdWU6IEluc3Bl
Y3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyLCBleHBlY3RlZDogMn0sCisgICAgICAg
IF0sCisgICAgfSk7CisKKyAgICB0ZXN0RGVsZXRlKCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUu
ZGVsZXRlLk9iamVjdC5LZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudC5TdWIiLCB7
CisgICAgICAgIG9wdGlvbnM6IHtrZXlQYXRoOiAiS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9J
bmNyZW1lbnQuU3ViIiwgYXV0b0luY3JlbWVudDogdHJ1ZX0sCisgICAgICAgIHRlc3RzOiBbCisg
ICAgICAgICAgICB7dmFsdWU6IHtLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudDog
e1N1YjogNDJ9LCAuLi5JbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MX0sIGV4
cGVjdGVkOiA0Mn0sCisgICAgICAgICAgICB7dmFsdWU6IHtLZXlQYXRoU2V0T25PYmplY3RXaXRo
QXV0b0luY3JlbWVudDoge1N1YjogOTl9LCAuLi5JbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJh
c2ljT2JqZWN0Mn0sIGV4cGVjdGVkOiA5OX0sCisgICAgICAgIF0sCisgICAgfSk7CisKKyAgICBz
dWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxwPlRlc3RzIFdJLk9iamVjdFN0b3JlLnByb3Rv
dHlwZS5kZWxldGUuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvb2JqZWN0U3RvcmUvZGVsZXRlT2JqZWN0LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL29iamVjdFN0b3JlL2RlbGV0
ZU9iamVjdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDlkOWFkOTYyOWM3NmFkYTBmMDA2MGRm
NzBlMjIzZTYyZjA2N2ExZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci91bml0LXRlc3RzL29iamVjdFN0b3JlL2RlbGV0ZU9iamVjdC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw4MCBAQAorVGVzdHMgV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZU9iamVjdC4K
KworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxl
dGVPYmplY3QKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUu
ZGVsZXRlT2JqZWN0Lk5vUGFyYW1ldGVycworYWRkOiBbeyJfb2JqZWN0Ijp7ImIiOjJ9fV0KK1BB
U1M6IFNob3VsZCBwcm9kdWNlIGFuIGV4Y2VwdGlvbi4KK1R5cGVFcnJvcjogdW5kZWZpbmVkIGlz
IG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ29iamVjdFtrZXldJykKK1t7Il9vYmplY3QiOnsi
YiI6Mn19XQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBl
LmRlbGV0ZU9iamVjdC5NaXNzaW5nT2JqZWN0CithZGQ6IFt7Il9vYmplY3QiOnsiYiI6Mn19XQor
UEFTUzogU2hvdWxkIHByb2R1Y2UgYW4gZXhjZXB0aW9uLgorRGF0YUVycm9yOiBGYWlsZWQgdG8g
ZXhlY3V0ZSAnZGVsZXRlJyBvbiAnSURCT2JqZWN0U3RvcmUnOiBUaGUgcGFyYW1ldGVyIGlzIG5v
dCBhIHZhbGlkIGtleSByYW5nZS4KK1t7Il9vYmplY3QiOnsiYiI6Mn19XQorCistLSBSdW5uaW5n
IHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZU9iamVjdC5LZXlQYXRo
TWlzc2luZ09uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQKK1BBU1M6IFNob3VsZCBwcm9kdWNl
IGFuIGV4Y2VwdGlvbi4KK0RhdGFFcnJvcjogRmFpbGVkIHRvIGV4ZWN1dGUgJ2RlbGV0ZScgb24g
J0lEQk9iamVjdFN0b3JlJzogVGhlIHBhcmFtZXRlciBpcyBub3QgYSB2YWxpZCBrZXkgcmFuZ2Uu
CitbXQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRl
bGV0ZU9iamVjdC5XaXRob3V0S2V5UGF0aE9yQXV0b0luY3JlbWVudAorUEFTUzogU2hvdWxkIHBy
b2R1Y2UgYW4gZXhjZXB0aW9uLgorRGF0YUVycm9yOiBGYWlsZWQgdG8gc3RvcmUgcmVjb3JkIGlu
IGFuIElEQk9iamVjdFN0b3JlOiBUaGUgb2JqZWN0IHN0b3JlIHVzZXMgb3V0LW9mLWxpbmUga2V5
cyBhbmQgaGFzIG5vIGtleSBnZW5lcmF0b3IgYW5kIHRoZSBrZXkgcGFyYW1ldGVyIHdhcyBub3Qg
cHJvdmlkZWQuCitbXQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJv
dG90eXBlLmRlbGV0ZU9iamVjdC5LZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aG91dEF1dG9JbmNy
ZW1lbnQKK1BBU1M6IFNob3VsZCBwcm9kdWNlIGFuIGV4Y2VwdGlvbi4KK0RhdGFFcnJvcjogRmFp
bGVkIHRvIHN0b3JlIHJlY29yZCBpbiBhbiBJREJPYmplY3RTdG9yZTogRXZhbHVhdGluZyB0aGUg
b2JqZWN0IHN0b3JlJ3Mga2V5IHBhdGggZGlkIG5vdCB5aWVsZCBhIHZhbHVlLgorW10KKworLS0g
UnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGVPYmplY3Qu
S2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQKK2FkZE9iamVjdDogW3siS2V5
UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiOjQyLCJhIjoxfV0KK2FkZE9iamVj
dDogW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiOjQyLCJhIjoxfSx7
IktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Ijo5OSwiYiI6Mn1dCitkZWxl
dGVPYmplY3Q6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Ijo5OSwi
YiI6Mn1dCitkZWxldGVPYmplY3Q6IFtdCitbXQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0ku
T2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZU9iamVjdC5LZXlQYXRoTWlzc2luZ09uT2JqZWN0
V2l0aEF1dG9JbmNyZW1lbnQKK2FkZE9iamVjdDogW3siYSI6MSwiS2V5UGF0aE1pc3NpbmdPbk9i
amVjdFdpdGhBdXRvSW5jcmVtZW50IjoxfV0KK2FkZE9iamVjdDogW3siYSI6MSwiS2V5UGF0aE1p
c3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50IjoxfSx7ImIiOjIsIktleVBhdGhNaXNzaW5n
T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6Mn1dCitkZWxldGVPYmplY3Q6IFt7ImIiOjIsIktl
eVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6Mn1dCitkZWxldGVPYmplY3Q6
IFtdCitbXQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBl
LmRlbGV0ZU9iamVjdC5LZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudAorYWRkT2Jq
ZWN0OiBbeyJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6NDIsImEiOjF9XQor
YWRkT2JqZWN0OiBbeyJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6NDIsImEi
OjF9LHsiS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOjk5LCJiIjoyfV0KK2Rl
bGV0ZU9iamVjdDogW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOjk5LCJi
IjoyfV0KK2RlbGV0ZU9iamVjdDogW10KK1tdCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5P
YmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlT2JqZWN0LkF1dG9JbmNyZW1lbnRXaXRob3V0S2V5
UGF0aAorYWRkT2JqZWN0OiBbeyJhIjoxfV0KK2FkZE9iamVjdDogW3siYSI6MX0seyJiIjoyfV0K
K2RlbGV0ZU9iamVjdDogW3siYiI6Mn1dCitkZWxldGVPYmplY3Q6IFtdCitbXQorCistLSBSdW5u
aW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZU9iamVjdC5LZXlQ
YXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudC5TdWIKK2FkZE9iamVjdDogW3siS2V5
UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiOnsiU3ViIjo0Mn0sImEiOjF9XQor
YWRkT2JqZWN0OiBbeyJLZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCI6eyJT
dWIiOjQyfSwiYSI6MX0seyJLZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCI6
eyJTdWIiOjk5fSwiYiI6Mn1dCitkZWxldGVPYmplY3Q6IFt7IktleVBhdGhTZXRPbk9iamVjdFdp
dGhvdXRBdXRvSW5jcmVtZW50Ijp7IlN1YiI6OTl9LCJiIjoyfV0KK2RlbGV0ZU9iamVjdDogW10K
K1tdCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVs
ZXRlT2JqZWN0LktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudC5TdWIKK2Fk
ZE9iamVjdDogW3siYSI6MSwiS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50
Ijp7IlN1YiI6MX19XQorYWRkT2JqZWN0OiBbeyJhIjoxLCJLZXlQYXRoTWlzc2luZ09uT2JqZWN0
V2l0aEF1dG9JbmNyZW1lbnQiOnsiU3ViIjoxfX0seyJiIjoyLCJLZXlQYXRoTWlzc2luZ09uT2Jq
ZWN0V2l0aEF1dG9JbmNyZW1lbnQiOnsiU3ViIjoyfX1dCitkZWxldGVPYmplY3Q6IFt7ImIiOjIs
IktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6eyJTdWIiOjJ9fV0KK2Rl
bGV0ZU9iamVjdDogW10KK1tdCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9y
ZS5wcm90b3R5cGUuZGVsZXRlT2JqZWN0LktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVt
ZW50LlN1YgorYWRkT2JqZWN0OiBbeyJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVu
dCI6eyJTdWIiOjQyfSwiYSI6MX1dCithZGRPYmplY3Q6IFt7IktleVBhdGhTZXRPbk9iamVjdFdp
dGhBdXRvSW5jcmVtZW50Ijp7IlN1YiI6NDJ9LCJhIjoxfSx7IktleVBhdGhTZXRPbk9iamVjdFdp
dGhBdXRvSW5jcmVtZW50Ijp7IlN1YiI6OTl9LCJiIjoyfV0KK2RlbGV0ZU9iamVjdDogW3siS2V5
UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOnsiU3ViIjo5OX0sImIiOjJ9XQorZGVs
ZXRlT2JqZWN0OiBbXQorW10KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Vu
aXQtdGVzdHMvb2JqZWN0U3RvcmUvZGVsZXRlT2JqZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvdW5pdC10ZXN0cy9vYmplY3RTdG9yZS9kZWxldGVPYmplY3QuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43MjIxYmJiNjdhNjViYzQwNjVjYmM5NGNkOTM1MmU2MTY0ZDI3NmZjCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvb2JqZWN0U3RvcmUvZGVsZXRl
T2JqZWN0Lmh0bWwKQEAgLTAsMCArMSwxNTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJj
ZXMvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9v
YmplY3RTdG9yZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRl
c3QoKQoreworICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuY3JlYXRl
U3VpdGUoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGVPYmplY3QiKTsKKworICAgIGZ1
bmN0aW9uIHRlc3REZWxldGVPYmplY3QobmFtZSwge29wdGlvbnMsIHRlc3RzfSkgeworICAgICAg
ICBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLndyYXBUZXN0KG5hbWUsIGFzeW5jIGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5jcmVhdGVPYmplY3RT
dG9yZShvcHRpb25zKTsKKworICAgICAgICAgICAgbGV0IG9iamVjdHMgPSBbXQorICAgICAgICAg
ICAgZm9yIChsZXQge3ZhbHVlLCBleHBlY3RlZH0gb2YgdGVzdHMpIHsKKyAgICAgICAgICAgICAg
ICBsZXQgb2JqZWN0ID0gbmV3IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuVGVzdE9iamVjdCh2
YWx1ZSk7CisgICAgICAgICAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5h
ZGRPYmplY3Qob2JqZWN0LCBleHBlY3RlZCk7CisgICAgICAgICAgICAgICAgb2JqZWN0cy5wdXNo
KG9iamVjdCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZvciAobGV0IG9iamVjdCBv
ZiBvYmplY3RzKQorICAgICAgICAgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuT2JqZWN0U3Rv
cmUuZGVsZXRlT2JqZWN0KG9iamVjdCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIEluc3Bl
Y3RvclRlc3QuT2JqZWN0U3RvcmUud3JhcFRlc3QoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5k
ZWxldGVPYmplY3QuTm9QYXJhbWV0ZXJzIiwgYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgIGNv
bnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBhdXRvSW5jcmVtZW50OiB0cnVlLAorICAgICAg
ICB9OworICAgICAgICBsZXQgb2JqZWN0U3RvcmUgPSBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3Jl
LmNyZWF0ZU9iamVjdFN0b3JlKG9wdGlvbnMpOworCisgICAgICAgIGF3YWl0IEluc3BlY3RvclRl
c3QuT2JqZWN0U3RvcmUuYWRkKG5ldyBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLlRlc3RPYmpl
Y3QoSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDIpLCAxKTsKKworICAgICAg
ICBhd2FpdCBJbnNwZWN0b3JUZXN0LmV4cGVjdEV4Y2VwdGlvbihhc3luYyAoKSA9PiB7CisgICAg
ICAgICAgICBhd2FpdCBvYmplY3RTdG9yZS5kZWxldGVPYmplY3QoKTsKKyAgICAgICAgICAgIGF3
YWl0IG9iamVjdFN0b3JlLmRlbGV0ZU9iamVjdChuZXcgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9y
ZS5UZXN0T2JqZWN0KEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyKSk7Cisg
ICAgICAgIH0pOworICAgIH0pOworCisgICAgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS53cmFw
VGVzdCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZU9iamVjdC5NaXNzaW5nT2JqZWN0
IiwgYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAg
ICAgICBhdXRvSW5jcmVtZW50OiB0cnVlLAorICAgICAgICB9OworICAgICAgICBsZXQgb2JqZWN0
U3RvcmUgPSBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmNyZWF0ZU9iamVjdFN0b3JlKG9wdGlv
bnMpOworCisgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYWRkKG5ldyBJ
bnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLlRlc3RPYmplY3QoSW5zcGVjdG9yVGVzdC5PYmplY3RT
dG9yZS5iYXNpY09iamVjdDIpLCAxKTsKKworICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LmV4
cGVjdEV4Y2VwdGlvbihhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBhd2FpdCBvYmplY3RTdG9y
ZS5kZWxldGVPYmplY3QobmV3IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuVGVzdE9iamVjdChJ
bnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MSkpOworICAgICAgICAgICAgYXdh
aXQgb2JqZWN0U3RvcmUuZGVsZXRlT2JqZWN0KG5ldyBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3Jl
LlRlc3RPYmplY3QoSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDIpKTsKKyAg
ICAgICAgfSk7CisgICAgfSk7CisKKyAgICBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLndyYXBU
ZXN0KCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlT2JqZWN0LktleVBhdGhNaXNzaW5n
T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCIsIGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAg
ICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAga2V5UGF0aDogIktleVBhdGhNaXNzaW5n
T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCIsCisgICAgICAgIH07CisgICAgICAgIGxldCBv
YmplY3RTdG9yZSA9IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuY3JlYXRlT2JqZWN0U3RvcmUo
b3B0aW9ucyk7CisKKyAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5leHBlY3RFeGNlcHRpb24o
YXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBhd2FpdCBvYmplY3RTdG9yZS5kZWxldGVP
YmplY3QobmV3IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuVGVzdE9iamVjdChJbnNwZWN0b3JU
ZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MSkpOworICAgICAgICAgICAgYXdhaXQgb2JqZWN0
U3RvcmUuZGVsZXRlT2JqZWN0KG5ldyBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLlRlc3RPYmpl
Y3QoSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDIpKTsKKyAgICAgICAgfSk7
CisgICAgfSk7CisKKyAgICBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLndyYXBUZXN0KCJXSS5P
YmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlT2JqZWN0LldpdGhvdXRLZXlQYXRoT3JBdXRvSW5j
cmVtZW50IiwgYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgIGxldCBvYmplY3RTdG9yZSA9IElu
c3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuY3JlYXRlT2JqZWN0U3RvcmUoKTsKKworICAgICAgICBh
d2FpdCBJbnNwZWN0b3JUZXN0LmV4cGVjdEV4Y2VwdGlvbihhc3luYyBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgIGF3YWl0IG9iamVjdFN0b3JlLmFkZChJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3Jl
LmJhc2ljT2JqZWN0MSk7CisgICAgICAgICAgICBhd2FpdCBvYmplY3RTdG9yZS5hZGQoSW5zcGVj
dG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDIpOworICAgICAgICB9KTsKKyAgICB9KTsK
KworICAgIEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUud3JhcFRlc3QoIldJLk9iamVjdFN0b3Jl
LnByb3RvdHlwZS5kZWxldGVPYmplY3QuS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhvdXRBdXRv
SW5jcmVtZW50IiwgYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7
CisgICAgICAgICAgICBrZXlQYXRoOiAiS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhvdXRBdXRv
SW5jcmVtZW50IiwKKyAgICAgICAgfTsKKyAgICAgICAgbGV0IG9iamVjdFN0b3JlID0gSW5zcGVj
dG9yVGVzdC5PYmplY3RTdG9yZS5jcmVhdGVPYmplY3RTdG9yZShvcHRpb25zKTsKKworICAgICAg
ICBhd2FpdCBJbnNwZWN0b3JUZXN0LmV4cGVjdEV4Y2VwdGlvbihhc3luYyBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgIGF3YWl0IG9iamVjdFN0b3JlLmFkZChJbnNwZWN0b3JUZXN0Lk9iamVjdFN0
b3JlLmJhc2ljT2JqZWN0MSk7CisgICAgICAgICAgICBhd2FpdCBvYmplY3RTdG9yZS5hZGQoSW5z
cGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDIpOworICAgICAgICB9KTsKKyAgICB9
KTsKKworICAgIHRlc3REZWxldGVPYmplY3QoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxl
dGVPYmplY3QuS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiLCB7CisgICAg
ICAgIG9wdGlvbnM6IHtrZXlQYXRoOiAiS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNy
ZW1lbnQifSwKKyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAgIHt2YWx1ZToge0tleVBhdGhT
ZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50OiA0MiwgLi4uSW5zcGVjdG9yVGVzdC5PYmpl
Y3RTdG9yZS5iYXNpY09iamVjdDF9LCBleHBlY3RlZDogNDJ9LAorICAgICAgICAgICAge3ZhbHVl
OiB7S2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQ6IDk5LCAuLi5JbnNwZWN0
b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0Mn0sIGV4cGVjdGVkOiA5OX0sCisgICAgICAg
IF0sCisgICAgfSk7CisKKyAgICB0ZXN0RGVsZXRlT2JqZWN0KCJXSS5PYmplY3RTdG9yZS5wcm90
b3R5cGUuZGVsZXRlT2JqZWN0LktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVu
dCIsIHsKKyAgICAgICAgb3B0aW9uczoge2tleVBhdGg6ICJLZXlQYXRoTWlzc2luZ09uT2JqZWN0
V2l0aEF1dG9JbmNyZW1lbnQiLCBhdXRvSW5jcmVtZW50OiB0cnVlfSwKKyAgICAgICAgdGVzdHM6
IFsKKyAgICAgICAgICAgIHt2YWx1ZTogSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09i
amVjdDEsIGV4cGVjdGVkOiAxfSwKKyAgICAgICAgICAgIHt2YWx1ZTogSW5zcGVjdG9yVGVzdC5P
YmplY3RTdG9yZS5iYXNpY09iamVjdDIsIGV4cGVjdGVkOiAyfSwKKyAgICAgICAgXSwKKyAgICB9
KTsKKworICAgIHRlc3REZWxldGVPYmplY3QoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxl
dGVPYmplY3QuS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiLCB7CisgICAgICAg
IG9wdGlvbnM6IHtrZXlQYXRoOiAiS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQi
LCBhdXRvSW5jcmVtZW50OiB0cnVlfSwKKyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAgIHt2
YWx1ZToge0tleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50OiA0MiwgLi4uSW5zcGVj
dG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDF9LCBleHBlY3RlZDogNDJ9LAorICAgICAg
ICAgICAge3ZhbHVlOiB7S2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQ6IDk5LCAu
Li5JbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0Mn0sIGV4cGVjdGVkOiA5OX0s
CisgICAgICAgIF0sCisgICAgfSk7CisKKyAgICB0ZXN0RGVsZXRlT2JqZWN0KCJXSS5PYmplY3RT
dG9yZS5wcm90b3R5cGUuZGVsZXRlT2JqZWN0LkF1dG9JbmNyZW1lbnRXaXRob3V0S2V5UGF0aCIs
IHsKKyAgICAgICAgb3B0aW9uczoge2F1dG9JbmNyZW1lbnQ6IHRydWV9LAorICAgICAgICB0ZXN0
czogWworICAgICAgICAgICAge3ZhbHVlOiBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2lj
T2JqZWN0MSwgZXhwZWN0ZWQ6IDF9LAorICAgICAgICAgICAge3ZhbHVlOiBJbnNwZWN0b3JUZXN0
Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MiwgZXhwZWN0ZWQ6IDJ9LAorICAgICAgICBdLAorICAg
IH0pOworCisgICAgdGVzdERlbGV0ZU9iamVjdCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRl
bGV0ZU9iamVjdC5LZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudC5TdWIiLCB7
CisgICAgICAgIG9wdGlvbnM6IHtrZXlQYXRoOiAiS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1
dG9JbmNyZW1lbnQuU3ViIn0sCisgICAgICAgIHRlc3RzOiBbCisgICAgICAgICAgICB7dmFsdWU6
IHtLZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudDoge1N1YjogNDJ9LCAuLi5J
bnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MX0sIGV4cGVjdGVkOiA0Mn0sCisg
ICAgICAgICAgICB7dmFsdWU6IHtLZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVu
dDoge1N1YjogOTl9LCAuLi5JbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0Mn0s
IGV4cGVjdGVkOiA5OX0sCisgICAgICAgIF0sCisgICAgfSk7CisKKyAgICB0ZXN0RGVsZXRlT2Jq
ZWN0KCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlT2JqZWN0LktleVBhdGhNaXNzaW5n
T25PYmplY3RXaXRoQXV0b0luY3JlbWVudC5TdWIiLCB7CisgICAgICAgIG9wdGlvbnM6IHtrZXlQ
YXRoOiAiS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50LlN1YiIsIGF1dG9J
bmNyZW1lbnQ6IHRydWV9LAorICAgICAgICB0ZXN0czogWworICAgICAgICAgICAge3ZhbHVlOiBJ
bnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MSwgZXhwZWN0ZWQ6IDF9LAorICAg
ICAgICAgICAge3ZhbHVlOiBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0Miwg
ZXhwZWN0ZWQ6IDJ9LAorICAgICAgICBdLAorICAgIH0pOworCisgICAgdGVzdERlbGV0ZU9iamVj
dCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZU9iamVjdC5LZXlQYXRoU2V0T25PYmpl
Y3RXaXRoQXV0b0luY3JlbWVudC5TdWIiLCB7CisgICAgICAgIG9wdGlvbnM6IHtrZXlQYXRoOiAi
S2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQuU3ViIiwgYXV0b0luY3JlbWVudDog
dHJ1ZX0sCisgICAgICAgIHRlc3RzOiBbCisgICAgICAgICAgICB7dmFsdWU6IHtLZXlQYXRoU2V0
T25PYmplY3RXaXRoQXV0b0luY3JlbWVudDoge1N1YjogNDJ9LCAuLi5JbnNwZWN0b3JUZXN0Lk9i
amVjdFN0b3JlLmJhc2ljT2JqZWN0MX0sIGV4cGVjdGVkOiA0Mn0sCisgICAgICAgICAgICB7dmFs
dWU6IHtLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudDoge1N1YjogOTl9LCAuLi5J
bnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0Mn0sIGV4cGVjdGVkOiA5OX0sCisg
ICAgICAgIF0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsK
K30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxw
PlRlc3RzIFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGVPYmplY3QuPC9wPgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMv
b2JqZWN0U3RvcmUvcmVzb3VyY2VzL29iamVjdFN0b3JlLXV0aWxpdGllcy5qcyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci91bml0LXRlc3RzL29iamVjdFN0b3JlL3Jlc291cmNlcy9vYmplY3RTdG9y
ZS11dGlsaXRpZXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTk0NzgwMGQ4MjhiNzVmYTQ1ODExNDI2YmIxNzQz
NTgyYjJiZDQ5NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0
LXRlc3RzL29iamVjdFN0b3JlL3Jlc291cmNlcy9vYmplY3RTdG9yZS11dGlsaXRpZXMuanMKQEAg
LTAsMCArMSw5MyBAQAorVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CisgICAg
bGV0IHN1aXRlID0gbnVsbDsKKworICAgIEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUgPSB7fTsK
KworICAgIEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuVGVzdE9iamVjdCA9IGNsYXNzIFRlc3RP
YmplY3QgeworICAgICAgICBjb25zdHJ1Y3RvcihvYmplY3QpIHsKKyAgICAgICAgICAgIHRoaXMu
X29iamVjdCA9IG9iamVjdDsKKyAgICAgICAgfQorICAgICAgICB0b0pTT04oKSB7CisgICAgICAg
ICAgICByZXR1cm4gdGhpcy5fb2JqZWN0OworICAgICAgICB9CisgICAgfTsKKworICAgIEluc3Bl
Y3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QxID0ge2E6IDF9OworICAgIEluc3BlY3Rv
clRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyID0ge2I6IDJ9OworCisgICAgSW5zcGVjdG9y
VGVzdC5PYmplY3RTdG9yZS5jcmVhdGVTdWl0ZSA9IGZ1bmN0aW9uKG5hbWUpIHsKKyAgICAgICAg
c3VpdGUgPSBJbnNwZWN0b3JUZXN0LmNyZWF0ZUFzeW5jU3VpdGUobmFtZSk7CisgICAgICAgIHJl
dHVybiBzdWl0ZTsKKyAgICB9OworCisgICAgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5jcmVh
dGVPYmplY3RTdG9yZSA9IGZ1bmN0aW9uKG9wdGlvbnMgPSB7fSkgeworICAgICAgICBXSS5PYmpl
Y3RTdG9yZS5fX3Rlc3RPYmplY3RTdG9yZSA9IG5ldyBXSS5PYmplY3RTdG9yZSgiX190ZXN0aW5n
Iiwgb3B0aW9ucyk7CisgICAgICAgIHJldHVybiBXSS5PYmplY3RTdG9yZS5fX3Rlc3RPYmplY3RT
dG9yZTsKKyAgICB9OworCisgICAgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5hZGQgPSBhc3lu
YyBmdW5jdGlvbih2YWx1ZSwgZXhwZWN0ZWQpIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0
IFdJLk9iamVjdFN0b3JlLl9fdGVzdE9iamVjdFN0b3JlLmFkZCh2YWx1ZSk7CisgICAgICAgIElu
c3BlY3RvclRlc3QuYXNzZXJ0KHJlc3VsdCA9PT0gZXhwZWN0ZWQsIGB0aGUga2V5IG9mIHRoZSBh
ZGRlZCBpdGVtIHNob3VsZCBiZSAke2V4cGVjdGVkfSwgYnV0IGlzIGFjdHVhbGx5ICR7cmVzdWx0
fWApOworCisgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUubG9nVmFsdWVz
KCJhZGQ6ICIpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH07CisKKyAgICBJbnNwZWN0
b3JUZXN0Lk9iamVjdFN0b3JlLmFkZE9iamVjdCA9IGFzeW5jIGZ1bmN0aW9uKG9iamVjdCwgZXhw
ZWN0ZWQpIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IFdJLk9iamVjdFN0b3JlLl9fdGVz
dE9iamVjdFN0b3JlLmFkZE9iamVjdChvYmplY3QpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFz
c2VydChyZXN1bHQgPT09IGV4cGVjdGVkLCBgdGhlIGtleSBvZiB0aGUgYWRkZWQgaXRlbSBzaG91
bGQgYmUgJHtleHBlY3RlZH0sIGJ1dCBpcyBhY3R1YWxseSAke3Jlc3VsdH1gKTsKKworICAgICAg
ICBsZXQgcmVzb2x2ZWQgPSBXSS5PYmplY3RTdG9yZS5fX3Rlc3RPYmplY3RTdG9yZS5fcmVzb2x2
ZUtleVBhdGgob2JqZWN0KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQocmVzb2x2ZWQu
dmFsdWUgPT09IGV4cGVjdGVkLCBgdGhlIHJlc29sdmVkIGtleVBhdGggb24gdGhlIG9iamVjdCBz
aG91bGQgZXF1YWwgJHtleHBlY3RlZH0sIGJ1dCBpcyBhY3R1YWxseSAke3Jlc29sdmVkLnZhbHVl
fWApOworCisgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUubG9nVmFsdWVz
KCJhZGRPYmplY3Q6ICIpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH07CisKKyAgICBJ
bnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmRlbGV0ZSA9IGFzeW5jIGZ1bmN0aW9uKHZhbHVlKSB7
CisgICAgICAgIGxldCByZXN1bHQgPSBhd2FpdCBXSS5PYmplY3RTdG9yZS5fX3Rlc3RPYmplY3RT
dG9yZS5kZWxldGUodmFsdWUpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChyZXN1bHQg
PT09IHVuZGVmaW5lZCwgYGRlbGV0ZSBzaG91bGRuJ3QgcmV0dXJuIGFueXRoaW5nYCk7CisKKyAg
ICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5sb2dWYWx1ZXMoImRlbGV0ZTog
Iik7CisgICAgfTsKKworICAgIEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuZGVsZXRlT2JqZWN0
ID0gYXN5bmMgZnVuY3Rpb24ob2JqZWN0KSB7CisgICAgICAgIGxldCByZXNvbHZlZCA9IFdJLk9i
amVjdFN0b3JlLl9fdGVzdE9iamVjdFN0b3JlLl9yZXNvbHZlS2V5UGF0aChvYmplY3QpOworICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChyZXNvbHZlZC5rZXkgaW4gcmVzb2x2ZWQub2JqZWN0
LCBgdGhlIHJlc29sdmVkIGtleVBhdGggb24gdGhlIG9iamVjdCBzaG91bGQgZXhpc3RgKTsKKwor
ICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgV0kuT2JqZWN0U3RvcmUuX190ZXN0T2JqZWN0U3Rv
cmUuZGVsZXRlT2JqZWN0KG9iamVjdCk7CisgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KHJl
c3VsdCA9PT0gdW5kZWZpbmVkLCBgZGVsZXRlT2JqZWN0IHNob3VsZG4ndCByZXR1cm4gYW55dGhp
bmdgKTsKKworICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmxvZ1ZhbHVl
cygiZGVsZXRlT2JqZWN0OiAiKTsKKyAgICB9OworCisgICAgSW5zcGVjdG9yVGVzdC5PYmplY3RT
dG9yZS5sb2dWYWx1ZXMgPSBhc3luYyBmdW5jdGlvbihwcmVmaXgpIHsKKyAgICAgICAgaWYgKCFX
SS5PYmplY3RTdG9yZS5fX3Rlc3RPYmplY3RTdG9yZSkKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICBwcmVmaXggPSBwcmVmaXggfHwgIiI7CisgICAgICAgIGxldCByZXN1bHRzID0gYXdh
aXQgV0kuT2JqZWN0U3RvcmUuX190ZXN0T2JqZWN0U3RvcmUuZ2V0QWxsKCk7CisgICAgICAgIElu
c3BlY3RvclRlc3QubG9nKHByZWZpeCArIEpTT04uc3RyaW5naWZ5KHJlc3VsdHMpKTsKKyAgICB9
OworCisgICAgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS53cmFwVGVzdCA9IGZ1bmN0aW9uKG5h
bWUsIGZ1bmMpIHsKKyAgICAgICAgc3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICAgICAgbmFt
ZSwKKyAgICAgICAgICAgIGFzeW5jIHRlc3QoKSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hc3NlcnQoIVdJLk9iamVjdFN0b3JlLl9fdGVzdE9iamVjdFN0b3JlLCAiX190ZXN0T2Jq
ZWN0U3RvcmUgc2hvdWxkIGJlIGRlbGV0ZWQgYWZ0ZXIgZWFjaCB0ZXN0Iik7CisKKyAgICAgICAg
ICAgICAgICBhd2FpdCBmdW5jKCk7CisgICAgICAgICAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVz
dC5PYmplY3RTdG9yZS5sb2dWYWx1ZXMoKTsKKworICAgICAgICAgICAgICAgIGRlbGV0ZSBXSS5P
YmplY3RTdG9yZS5fX3Rlc3RPYmplY3RTdG9yZTsKKworICAgICAgICAgICAgICAgIGlmIChXSS5P
YmplY3RTdG9yZS5fZGF0YWJhc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgV0kuT2JqZWN0U3Rv
cmUuX2RhdGFiYXNlLmNsb3NlKCk7CisgICAgICAgICAgICAgICAgICAgIFdJLk9iamVjdFN0b3Jl
Ll9kYXRhYmFzZSA9IG51bGw7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAg
aW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKFdJLk9iamVjdFN0b3JlLl9kYXRhYmFzZU5hbWUpOwor
ICAgICAgICAgICAgfSwKKyAgICAgICAgfSk7CisgICAgfTsKK30pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353472</attachid>
            <date>2018-10-31 01:01:27 -0700</date>
            <delta_ts>2018-10-31 16:41:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190858-20181031010126.patch</filename>
            <type>text/plain</type>
            <size>71156</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGRmNGVmNDMxNDM4YjRhYzJjYmZkNGQxMjZmNWE1
YzUzNTJkOWRjOGEuLmRlODFlZGVmNTM0NzE2MGFmZTc2ZWZiNzM5OTdlZDk3YzUxMTY2ZDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDE4LTEwLTMxICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBB
dWRpdDogc2F2ZSBpbXBvcnRlZCBhdWRpdHMgYWNyb3NzIFdlYkluc3BlY3RvciBzZXNzaW9ucwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwODU4Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTUyNzYyNT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQmFzZS9PYmplY3RTdG9y
ZS5qczogQWRkZWQuCisgICAgICAgIChXSS5PYmplY3RTdG9yZSk6CisgICAgICAgIChXSS5PYmpl
Y3RTdG9yZS5zdXBwb3J0ZWQpOgorICAgICAgICAoV0kuT2JqZWN0U3RvcmUuX29wZW4pOgorICAg
ICAgICAoV0kuT2JqZWN0U3RvcmUuZ2V0IF9kYXRhYmFzZU5hbWUpOgorICAgICAgICAoV0kuT2Jq
ZWN0U3RvcmUucHJvdG90eXBlLmFzc29jaWF0ZU9iamVjdCk6CisgICAgICAgIChXSS5PYmplY3RT
dG9yZS5wcm90b3R5cGUuYXN5bmMgZ2V0QWxsKToKKyAgICAgICAgKFdJLk9iamVjdFN0b3JlLnBy
b3RvdHlwZS5hc3luYyBhZGQpOgorICAgICAgICAoV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFz
eW5jIGFkZE9iamVjdCk6CisgICAgICAgIChXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYXN5bmMg
ZGVsZXRlKToKKyAgICAgICAgKFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hc3luYyBkZWxldGVP
YmplY3QpOgorICAgICAgICAoV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLl9yZXNvbHZlS2V5UGF0
aCk6CisgICAgICAgIChXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYXN5bmMgX29wZXJhdGlvbi5s
aXN0ZW5lcik6CisgICAgICAgIChXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYXN5bmMgX29wZXJh
dGlvbik6CisgICAgICAgIFdyYXBwZXIgZm9yIGEgZ2xvYmFsIGBJbmRleGVkREJgIGluc3RhbmNl
IGZvciBhbGwgb2YgV2ViSW5zcGVjdG9yIChwZXIgbGV2ZWwpLiBJbnN0YW5jZXMgb2YKKyAgICAg
ICAgYFdJLk9iamVjdFN0b3JlYCBhcmUgYWJsZSB0byBjb250cm9sIGEgZ2l2ZW4gYElEQk9iamVj
dFN0b3JlYCB1c2luZyBhIHByb21pc2UtYmFzZWQgQVBJLgorCisgICAgICAgICpOT1RFKjogZHVl
IHRvIHRoZSBjb25zdHJhaW50IHRoYXQgYElEQk9iamVjdFN0b3JlYHMgYXJlIG9ubHkgYWJsZSB0
byBiZSBjcmVhdGVkIHdoZW4gdGhlCisgICAgICAgIG93bmVyIGBJbmRleGVkREJgIGlzICJ1cGdy
YWRlImQsIGFsbCBgV0kuT2JqZWN0U3RvcmVgIG11c3QgYmUgZGVjbGFyZWQgYmVmb3JlIHRoZSBk
YXRhYmFzZQorICAgICAgICBpcyBvcGVuZWQgZm9yIHRoZSBmaXJzdCB0aW1lLiBBZGRpdGlvbmFs
bHksIGFueSB0aW1lIGEgbmV3IGBXSS5PYmplY3RTdG9yZWAgaXMgYWRkZWQsIHRoZQorICAgICAg
ICBgdmVyc2lvbmAgbmVlZHMgdG8gYmUgaW5jcmVtZW50ZWQgdG8gZW5zdXJlIHRoYXQgdGhlICJ1
cGdyYWRlIiBldmVudCBmaXJlcy4KKworICAgICAgICBUbyB1c2UgYW55IG9mIHRoZSBgKk9iamVj
dGAgZnVuY3Rpb25zLCBvbmUgbXVzdCBpbXBsZW1lbnQgYSBgdG9KU09OYCBvbiB0aGUgb2JqZWN0
IHByb3ZpZGVkLgorICAgICAgICBUaGlzIGlzIHNvIHRoYXQgYFdJLk9iamVjdFN0b3JlYCBpcyBh
YmxlIHRvIGFkZCB0aGUgcmVzdWx0aW5nIGlkZW50aWZpZXIgdmFsdWUgdG8gdGhlIG93bmVyCisg
ICAgICAgIG9iamVjdCB3aGlsZSBzdG9yaW5nIGl0cyBgdG9KU09OYCB2YWx1ZSBpbiB0aGUgSW5k
ZXhlZERCIChlLmcuIGZvciBvYmplY3RzIHRoYXQgaGF2ZSBjeWNsZXMpLgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9Db250cm9sbGVycy9BdWRpdE1hbmFnZXIuanM6CisgICAgICAgIChXSS5B
dWRpdE1hbmFnZXIucHJvdG90eXBlLmltcG9ydCk6CisgICAgICAgIChXSS5BdWRpdE1hbmFnZXIu
cHJvdG90eXBlLmFkZFRlc3QpOiBBZGRlZC4KKyAgICAgICAgKFdJLkF1ZGl0TWFuYWdlci5wcm90
b3R5cGUucmVtb3ZlVGVzdCk6IEFkZGVkLgorICAgICAgICAoV0kuQXVkaXRNYW5hZ2VyLnByb3Rv
dHlwZS5fYWRkVGVzdCk6IERlbGV0ZWQuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdz
L0F1ZGl0VGFiQ29udGVudFZpZXcuanM6CisgICAgICAgIChXSS5BdWRpdFRhYkNvbnRlbnRWaWV3
LnByb3RvdHlwZS5pbml0aWFsTGF5b3V0KTogQWRkZWQuCisgICAgICAgIEF0dGVtcHQgdG8gbG9h
ZCBzYXZlZCBhdWRpdHMgd2hlbiB0aGUgQXVkaXQgdGFiIGlzIGZpcnN0IHNob3duIChsYXp5LWxv
YWQpLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9BdWRpdE5hdmlnYXRpb25TaWRl
YmFyUGFuZWwuanM6CisgICAgICAgIChXSS5BdWRpdE5hdmlnYXRpb25TaWRlYmFyUGFuZWwucHJv
dG90eXBlLmluaXRpYWxMYXlvdXQpOgorICAgICAgICAoV0kuQXVkaXROYXZpZ2F0aW9uU2lkZWJh
clBhbmVsLnByb3RvdHlwZS5faGFuZGxlQXVkaXRUZXN0UmVtb3ZlZCk6IEFkZGVkLgorCisgICAg
ICAgICogVXNlckludGVyZmFjZS9WaWV3cy9BdWRpdFRyZWVFbGVtZW50LmpzOgorICAgICAgICAo
V0kuQXVkaXRUcmVlRWxlbWVudC5wcm90b3R5cGUub25kZWxldGUpOgorICAgICAgICBPbmx5IGFs
bG93IHRvcC1sZXZlbCBhdWRpdHMgdG8gYmUgZGVsZXRlZCwgYXMgdGhhdCBpcyB3aGF0IG1hdGNo
ZXMgdGhlIGBXSS5PYmplY3RTdG9yZWAuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01haW4u
aHRtbDoKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1Rlc3QuaHRtbDoKKwogMjAxOC0xMC0zMCAg
RGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogQXVkaXQ6IGNyZWF0ZSBBdWRpdCBUYWIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvT2JqZWN0U3RvcmUuanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9CYXNlL09iamVjdFN0b3JlLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI3YmY4
OTMxYjY2MDhiMDFjNmNiY2ViYWE1NzZhZWJmMGY4MjliZjEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL09iamVjdFN0b3JlLmpzCkBA
IC0wLDAgKzEsMjEwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworV0kuT2JqZWN0U3RvcmUgPSBjbGFzcyBPYmpl
Y3RTdG9yZQoreworICAgIGNvbnN0cnVjdG9yKG5hbWUsIG9wdGlvbnMgPSB7fSkKKyAgICB7Cisg
ICAgICAgIHRoaXMuX25hbWUgPSBuYW1lOworICAgICAgICB0aGlzLl9vcHRpb25zID0gb3B0aW9u
czsKKyAgICB9CisKKyAgICAvLyBTdGF0aWMKKworICAgIHN0YXRpYyBzdXBwb3J0ZWQoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuICghd2luZG93Lkluc3BlY3RvclRlc3QgfHwgV0kuT2JqZWN0U3Rv
cmUuX190ZXN0T2JqZWN0U3RvcmUpICYmIHdpbmRvdy5pbmRleGVkREI7CisgICAgfQorCisgICAg
c3RhdGljIGdldCBfZGF0YWJhc2VOYW1lKCkKKyAgICB7CisgICAgICAgIGxldCBpbnNwZWN0aW9u
TGV2ZWwgPSBJbnNwZWN0b3JGcm9udGVuZEhvc3QgPyBJbnNwZWN0b3JGcm9udGVuZEhvc3QuaW5z
cGVjdGlvbkxldmVsKCkgOiAxOworICAgICAgICBsZXQgbGV2ZWxTdHJpbmcgPSAoaW5zcGVjdGlv
bkxldmVsID4gMSkgPyAiLSIgKyBpbnNwZWN0aW9uTGV2ZWwgOiAiIjsKKyAgICAgICAgcmV0dXJu
ICJjb20uYXBwbGUuV2ViSW5zcGVjdG9yIiArIGxldmVsU3RyaW5nOworICAgIH0KKworICAgIHN0
YXRpYyBfb3BlbihjYWxsYmFjaykKKyAgICB7CisgICAgICAgIGlmIChXSS5PYmplY3RTdG9yZS5f
ZGF0YWJhc2UpIHsKKyAgICAgICAgICAgIGNhbGxiYWNrKFdJLk9iamVjdFN0b3JlLl9kYXRhYmFz
ZSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBjb25zdCB2ZXJz
aW9uID0gMTsgLy8gSW5jcmVtZW50IHRoaXMgZm9yIGV2ZXJ5IGVkaXQgdG8gYFdJLm9iamVjdFN0
b3Jlc2AuCisKKyAgICAgICAgbGV0IGRhdGFiYXNlUmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKFdJ
Lk9iamVjdFN0b3JlLl9kYXRhYmFzZU5hbWUsIHZlcnNpb24pOworICAgICAgICBkYXRhYmFzZVJl
cXVlc3QuYWRkRXZlbnRMaXN0ZW5lcigidXBncmFkZW5lZWRlZCIsIChldmVudCkgPT4geworICAg
ICAgICAgICAgbGV0IGRhdGFiYXNlID0gZGF0YWJhc2VSZXF1ZXN0LnJlc3VsdDsKKworICAgICAg
ICAgICAgbGV0IG9iamVjdFN0b3JlcyA9IE9iamVjdC52YWx1ZXMoV0kub2JqZWN0U3RvcmVzKTsK
KyAgICAgICAgICAgIGlmIChXSS5PYmplY3RTdG9yZS5fX3Rlc3RPYmplY3RTdG9yZSkKKyAgICAg
ICAgICAgICAgICBvYmplY3RTdG9yZXMucHVzaChXSS5PYmplY3RTdG9yZS5fX3Rlc3RPYmplY3RT
dG9yZSk7CisKKyAgICAgICAgICAgIGxldCBleGlzdGluZ05hbWVzID0gbmV3IFNldDsKKyAgICAg
ICAgICAgIGZvciAobGV0IG9iamVjdFN0b3JlIG9mIG9iamVjdFN0b3JlcykgeworICAgICAgICAg
ICAgICAgIGlmICghZGF0YWJhc2Uub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucyhvYmplY3RTdG9y
ZS5fbmFtZSkpCisgICAgICAgICAgICAgICAgICAgIGRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3Jl
KG9iamVjdFN0b3JlLl9uYW1lLCBvYmplY3RTdG9yZS5fb3B0aW9ucyk7CisKKyAgICAgICAgICAg
ICAgICBleGlzdGluZ05hbWVzLmFkZChvYmplY3RTdG9yZS5fbmFtZSk7CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIGZvciAobGV0IG9iamVjdFN0b3JlTmFtZSBvZiBkYXRhYmFzZS5vYmpl
Y3RTdG9yZU5hbWVzKSB7CisgICAgICAgICAgICAgICAgaWYgKCFleGlzdGluZ05hbWVzLmhhcyhv
YmplY3RTdG9yZU5hbWUpKQorICAgICAgICAgICAgICAgICAgICBkYXRhYmFzZS5kZWxldGVPYmpl
Y3RTdG9yZShvYmplY3RTdG9yZU5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAg
ICAgICAgZGF0YWJhc2VSZXF1ZXN0LmFkZEV2ZW50TGlzdGVuZXIoInN1Y2Nlc3MiLCAoc3VjY2Vz
c0V2ZW50KSA9PiB7CisgICAgICAgICAgICBXSS5PYmplY3RTdG9yZS5fZGF0YWJhc2UgPSBkYXRh
YmFzZVJlcXVlc3QucmVzdWx0OworICAgICAgICAgICAgV0kuT2JqZWN0U3RvcmUuX2RhdGFiYXNl
LmFkZEV2ZW50TGlzdGVuZXIoImNsb3NlIiwgKGNsb3NlRXZlbnQpID0+IHsKKyAgICAgICAgICAg
ICAgICBXSS5PYmplY3RTdG9yZS5fZGF0YWJhc2UgPSBudWxsOworICAgICAgICAgICAgfSk7CisK
KyAgICAgICAgICAgIGNhbGxiYWNrKFdJLk9iamVjdFN0b3JlLl9kYXRhYmFzZSk7CisgICAgICAg
IH0pOworICAgIH0KKworICAgIC8vIFB1YmxpYworCisgICAgYXNzb2NpYXRlT2JqZWN0KG9iamVj
dCwga2V5LCB2YWx1ZSkKKyAgICB7CisgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICJvYmpl
Y3QiKQorICAgICAgICAgICAgdmFsdWUgPSB0aGlzLl9yZXNvbHZlS2V5UGF0aCh2YWx1ZSwga2V5
KS52YWx1ZTsKKworICAgICAgICBsZXQgcmVzb2x2ZWQgPSB0aGlzLl9yZXNvbHZlS2V5UGF0aChv
YmplY3QsIGtleSk7CisgICAgICAgIHJlc29sdmVkLm9iamVjdFtyZXNvbHZlZC5rZXldID0gdmFs
dWU7CisgICAgfQorCisgICAgYXN5bmMgZ2V0QWxsKC4uLmFyZ3MpCisgICAgeworICAgICAgICBp
ZiAoIVdJLk9iamVjdFN0b3JlLnN1cHBvcnRlZCgpKQorICAgICAgICAgICAgcmV0dXJuIHVuZGVm
aW5lZDsKKworICAgICAgICByZXR1cm4gdGhpcy5fb3BlcmF0aW9uKCJyZWFkb25seSIsIChvYmpl
Y3RTdG9yZSkgPT4gb2JqZWN0U3RvcmUuZ2V0QWxsKC4uLmFyZ3MpKTsKKyAgICB9CisKKyAgICBh
c3luYyBhZGQoLi4uYXJncykKKyAgICB7CisgICAgICAgIGlmICghV0kuT2JqZWN0U3RvcmUuc3Vw
cG9ydGVkKCkpCisgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworCisgICAgICAgIHJldHVy
biB0aGlzLl9vcGVyYXRpb24oInJlYWR3cml0ZSIsIChvYmplY3RTdG9yZSkgPT4gb2JqZWN0U3Rv
cmUuYWRkKC4uLmFyZ3MpKTsKKyAgICB9CisKKyAgICBhc3luYyBhZGRPYmplY3Qob2JqZWN0LCAu
Li5hcmdzKQorICAgIHsKKyAgICAgICAgaWYgKCFXSS5PYmplY3RTdG9yZS5zdXBwb3J0ZWQoKSkK
KyAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisKKyAgICAgICAgY29uc29sZS5hc3NlcnQo
dHlwZW9mIG9iamVjdC50b0pTT04gPT09ICJmdW5jdGlvbiIsICJPYmplY3RTdG9yZSBjYW5ub3Qg
c3RvcmUgYW4gb2JqZWN0IHdpdGhvdXQgSlNPTiBzZXJpYWxpemF0aW9uIiwgb2JqZWN0LmNvbnN0
cnVjdG9yLm5hbWUpOworICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgdGhpcy5hZGQob2JqZWN0
LnRvSlNPTigpLCAuLi5hcmdzKTsKKyAgICAgICAgdGhpcy5hc3NvY2lhdGVPYmplY3Qob2JqZWN0
LCBhcmdzWzBdLCByZXN1bHQpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAg
IGFzeW5jIGRlbGV0ZSguLi5hcmdzKQorICAgIHsKKyAgICAgICAgaWYgKCFXSS5PYmplY3RTdG9y
ZS5zdXBwb3J0ZWQoKSkKKyAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisKKyAgICAgICAg
cmV0dXJuIHRoaXMuX29wZXJhdGlvbigicmVhZHdyaXRlIiwgKG9iamVjdFN0b3JlKSA9PiBvYmpl
Y3RTdG9yZS5kZWxldGUoLi4uYXJncykpOworICAgIH0KKworICAgIGFzeW5jIGRlbGV0ZU9iamVj
dChvYmplY3QsIC4uLmFyZ3MpCisgICAgeworICAgICAgICBpZiAoIVdJLk9iamVjdFN0b3JlLnN1
cHBvcnRlZCgpKQorICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKworICAgICAgICByZXR1
cm4gdGhpcy5kZWxldGUodGhpcy5fcmVzb2x2ZUtleVBhdGgob2JqZWN0KS52YWx1ZSwgLi4uYXJn
cyk7CisgICAgfQorCisgICAgLy8gUHJpdmF0ZQorCisgICAgX3Jlc29sdmVLZXlQYXRoKG9iamVj
dCwga2V5UGF0aCkKKyAgICB7CisgICAgICAgIGtleVBhdGggPSBrZXlQYXRoIHx8IHRoaXMuX29w
dGlvbnMua2V5UGF0aCB8fCAiIjsKKworICAgICAgICBsZXQgcGFydHMgPSBrZXlQYXRoLnNwbGl0
KCIuIik7CisgICAgICAgIGxldCBrZXkgPSBwYXJ0cy5zcGxpY2UoLTEsIDEpOworICAgICAgICB3
aGlsZSAocGFydHMubGVuZ3RoKSB7CisgICAgICAgICAgICBpZiAoIW9iamVjdC5oYXNPd25Qcm9w
ZXJ0eShwYXJ0c1swXSkpCisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBvYmpl
Y3QgPSBvYmplY3RbcGFydHMuc2hpZnQoKV07CisgICAgICAgIH0KKworICAgICAgICBpZiAocGFy
dHMubGVuZ3RoKQorICAgICAgICAgICAga2V5ID0gcGFydHMuam9pbigiLiIpICsgIi4iICsga2V5
OworCisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBvYmplY3QsCisgICAgICAgICAgICBr
ZXksCisgICAgICAgICAgICB2YWx1ZTogb2JqZWN0W2tleV0sCisgICAgICAgIH07CisgICAgfQor
CisgICAgYXN5bmMgX29wZXJhdGlvbihtb2RlLCBmdW5jKQorICAgIHsKKyAgICAgICAgLy8gSW5k
ZXhlZERCIHRyYW5zYWN0aW9ucyB3aWxsIGF1dG8tY2xvc2UgaWYgdGhlcmUgYXJlIG5vIGFjdGl2
ZSBvcGVyYXRpb25zIGF0IHRoZSBlbmQgb2YgYQorICAgICAgICAvLyBtaWNyb3Rhc2ssIHNvIHdl
IG5lZWQgdG8gZG8gZXZlcnl0aGluZyB1c2luZyBldmVudCBsaXN0ZW5lcnMgaW5zdGVhZCBvZiBw
cm9taXNlcy4KKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+
IHsKKyAgICAgICAgICAgIFdJLk9iamVjdFN0b3JlLl9vcGVuKChkYXRhYmFzZSkgPT4geworICAg
ICAgICAgICAgICAgIGxldCB0cmFuc2FjdGlvbiA9IGRhdGFiYXNlLnRyYW5zYWN0aW9uKFt0aGlz
Ll9uYW1lXSwgbW9kZSk7CisgICAgICAgICAgICAgICAgbGV0IG9iamVjdFN0b3JlID0gdHJhbnNh
Y3Rpb24ub2JqZWN0U3RvcmUodGhpcy5fbmFtZSk7CisgICAgICAgICAgICAgICAgbGV0IHJlcXVl
c3QgPSBudWxsOworCisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAg
cmVxdWVzdCA9IGZ1bmMob2JqZWN0U3RvcmUpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUp
IHsKKyAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGUpOworICAgICAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgZnVuY3Rpb24gbGlz
dGVuZXIoZXZlbnQpIHsKKyAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb24ucmVtb3ZlRXZl
bnRMaXN0ZW5lcigiY29tcGxldGUiLCBsaXN0ZW5lcik7CisgICAgICAgICAgICAgICAgICAgIHRy
YW5zYWN0aW9uLnJlbW92ZUV2ZW50TGlzdGVuZXIoImVycm9yIiwgbGlzdGVuZXIpOworICAgICAg
ICAgICAgICAgICAgICByZXF1ZXN0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInN1Y2Nlc3MiLCBsaXN0
ZW5lcik7CisgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigi
ZXJyb3IiLCBsaXN0ZW5lcik7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJlcXVlc3QuZXJy
b3IpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChyZXF1ZXN0LmVycm9yKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICAgICAgICAgIHJlc29sdmUocmVxdWVzdC5yZXN1bHQpOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICB0cmFuc2FjdGlvbi5hZGRFdmVudExpc3RlbmVyKCJjb21w
bGV0ZSIsIGxpc3RlbmVyLCB7b25jZTogdHJ1ZX0pOworICAgICAgICAgICAgICAgIHRyYW5zYWN0
aW9uLmFkZEV2ZW50TGlzdGVuZXIoImVycm9yIiwgbGlzdGVuZXIsIHtvbmNlOiB0cnVlfSk7Cisg
ICAgICAgICAgICAgICAgcmVxdWVzdC5hZGRFdmVudExpc3RlbmVyKCJzdWNjZXNzIiwgbGlzdGVu
ZXIsIHtvbmNlOiB0cnVlfSk7CisgICAgICAgICAgICAgICAgcmVxdWVzdC5hZGRFdmVudExpc3Rl
bmVyKCJlcnJvciIsIGxpc3RlbmVyLCB7b25jZTogdHJ1ZX0pOworICAgICAgICAgICAgfSk7Cisg
ICAgICAgIH0pOworICAgIH0KK307CisKK1dJLk9iamVjdFN0b3JlLl9kYXRhYmFzZSA9IG51bGw7
CisKKy8vIEJlIHN1cmUgdG8gdXBkYXRlIHRoZSBgdmVyc2lvbmAgYWJvdmUgd2hlbiBtYWtpbmcg
Y2hhbmdlcy4KK1dJLm9iamVjdFN0b3JlcyA9IHsKKyAgICBhdWRpdHM6IG5ldyBXSS5PYmplY3RT
dG9yZSgiYXVkaXQtbWFuYWdlci10ZXN0cyIsIHtrZXlQYXRoOiAiX19pZCIsIGF1dG9JbmNyZW1l
bnQ6IHRydWV9KSwKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Db250cm9sbGVycy9BdWRpdE1hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy9BdWRpdE1hbmFnZXIuanMKaW5kZXggZTBkZWZh
MGI0ODEwMDQ4OGFlYjA2YmE5ZDU5NDIwYjczZjk1NmQ1NS4uYmE3Njk3ZTE1YTRiMzFlNTM1YjYx
NmZkZGFlZjFjZjc1MDFkN2EwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvQXVkaXRNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzL0F1ZGl0TWFuYWdlci5qcwpAQCAt
MTE2LDkgKzExNiwxMCBAQCBXSS5BdWRpdE1hbmFnZXIgPSBjbGFzcyBBdWRpdE1hbmFnZXIgZXh0
ZW5kcyBXSS5PYmplY3QKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKLSAgICAg
ICAgICAgIGlmIChvYmplY3QgaW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RCYXNlKQotICAgICAgICAg
ICAgICAgIHRoaXMuX2FkZFRlc3Qob2JqZWN0KTsKLSAgICAgICAgICAgIGVsc2UgaWYgKG9iamVj
dCBpbnN0YW5jZW9mIFdJLkF1ZGl0VGVzdFJlc3VsdEJhc2UpCisgICAgICAgICAgICBpZiAob2Jq
ZWN0IGluc3RhbmNlb2YgV0kuQXVkaXRUZXN0QmFzZSkgeworICAgICAgICAgICAgICAgIHRoaXMu
YWRkVGVzdChvYmplY3QpOworICAgICAgICAgICAgICAgIFdJLm9iamVjdFN0b3Jlcy5hdWRpdHMu
YWRkT2JqZWN0KG9iamVjdCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG9iamVjdCBpbnN0YW5j
ZW9mIFdJLkF1ZGl0VGVzdFJlc3VsdEJhc2UpCiAgICAgICAgICAgICAgICAgdGhpcy5fYWRkUmVz
dWx0KG9iamVjdCk7CiAgICAgICAgIH0pOwogICAgIH0KQEAgLTE0MCwxNSArMTQxLDI0IEBAIFdJ
LkF1ZGl0TWFuYWdlciA9IGNsYXNzIEF1ZGl0TWFuYWdlciBleHRlbmRzIFdJLk9iamVjdAogICAg
ICAgICB9KTsKICAgICB9CiAKLSAgICAvLyBQcml2YXRlCi0KLSAgICBfYWRkVGVzdCh0ZXN0KQor
ICAgIGFkZFRlc3QodGVzdCkKICAgICB7CiAgICAgICAgIHRoaXMuX3Rlc3RzLnB1c2godGVzdCk7
CiAKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQXVkaXRNYW5hZ2Vy
LkV2ZW50LlRlc3RBZGRlZCwge3Rlc3R9KTsKICAgICB9CiAKKyAgICByZW1vdmVUZXN0KHRlc3Qp
CisgICAgeworICAgICAgICB0aGlzLl90ZXN0cy5yZW1vdmUodGVzdCk7CisKKyAgICAgICAgdGhp
cy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV0kuQXVkaXRNYW5hZ2VyLkV2ZW50LlRlc3RSZW1v
dmVkLCB7dGVzdH0pOworCisgICAgICAgIFdJLm9iamVjdFN0b3Jlcy5hdWRpdHMuZGVsZXRlT2Jq
ZWN0KHRlc3QpOworICAgIH0KKworICAgIC8vIFByaXZhdGUKKwogICAgIF9hZGRSZXN1bHQocmVz
dWx0KQogICAgIHsKICAgICAgICAgaWYgKCFyZXN1bHQgfHwgKEFycmF5LmlzQXJyYXkocmVzdWx0
KSAmJiAhcmVzdWx0Lmxlbmd0aCkpCkBAIC0xNzIsNSArMTgyLDYgQEAgV0kuQXVkaXRNYW5hZ2Vy
LlJ1bm5pbmdTdGF0ZSA9IHsKIFdJLkF1ZGl0TWFuYWdlci5FdmVudCA9IHsKICAgICBUZXN0QWRk
ZWQ6ICJhdWRpdC1tYW5hZ2VyLXRlc3QtYWRkZWQiLAogICAgIFRlc3RDb21wbGV0ZWQ6ICJhdWRp
dC1tYW5hZ2VyLXRlc3QtY29tcGxldGVkIiwKKyAgICBUZXN0UmVtb3ZlZDogImF1ZGl0LW1hbmFn
ZXItdGVzdC1yZW1vdmVkIiwKICAgICBUZXN0U2NoZWR1bGVkOiAiYXVkaXQtbWFuYWdlci10ZXN0
LXNjaGVkdWxlZCIsCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvTWFpbi5odG1sIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TWFpbi5odG1sCmluZGV4IGZmNzZjYTU4ZGM1MDE5ZDM0ZWM1MzY1YjQ1Y2JjZTk2MGY1NWM2M2Qu
LjkxM2U1ZDgzNjRkNzJjODlhZGVkYzhiOGQ3OGE4YWE2NjQ4ZmYzOWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbAorKysgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKQEAgLTI3OSw2ICsyNzksNyBA
QAogICAgIDxzY3JpcHQgc3JjPSJCYXNlL0ltYWdlVXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0iQmFzZS9Mb2FkTG9jYWxpemVkU3RyaW5ncy5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCBzcmM9IkJhc2UvTUlNRVR5cGVVdGlsaXRpZXMuanMiPjwvc2NyaXB0PgorICAg
IDxzY3JpcHQgc3JjPSJCYXNlL09iamVjdFN0b3JlLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iQmFzZS9VUkxVdGlsaXRpZXMuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJC
YXNlL1V0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkJhc2UvU2V0dGlu
Zy5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9UZXN0Lmh0bWwgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9U
ZXN0Lmh0bWwKaW5kZXggNzVkYzBiMjIzZmE4YzIyNDUzNmZjYzhjYjFlMjU3MTEzMWYyZTVlOS4u
MTQ1ZDgyMzRhMzA5YTJhZThhOGQ1MDUwMWQ5YzU1ZGU5NjI4MTBmMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC5odG1sCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbApAQCAtNTYsNiArNTYsNyBAQAog
ICAgIDxzY3JpcHQgc3JjPSJCYXNlL0V2ZW50TGlzdGVuZXJTZXQuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgc3JjPSJCYXNlL0ltYWdlVXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iQmFzZS9NSU1FVHlwZVV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9IkJhc2UvT2JqZWN0U3RvcmUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJC
YXNlL1VSTFV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkJhc2UvVXRp
bGl0aWVzLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQmFzZS9TZXR0aW5nLmpzIj48
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0F1ZGl0TmF2aWdhdGlvblNpZGViYXJQYW5lbC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0F1ZGl0TmF2aWdhdGlvblNpZGViYXJQYW5lbC5qcwpp
bmRleCAxZGY4YTk5ZjQ5OThiOTk3YTcxNDlmMDYxOTJhNDA4ODA0NGYzNzllLi44MjYzOTZlZDhk
YTJmZDNlNmY5NTVhMjc5ZTljMjQ0MDA0ZTg1ZDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BdWRpdE5hdmlnYXRpb25TaWRlYmFyUGFuZWwu
anMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQXVkaXRO
YXZpZ2F0aW9uU2lkZWJhclBhbmVsLmpzCkBAIC05MCw2ICs5MCw3IEBAIFdJLkF1ZGl0TmF2aWdh
dGlvblNpZGViYXJQYW5lbCA9IGNsYXNzIEF1ZGl0TmF2aWdhdGlvblNpZGViYXJQYW5lbCBleHRl
bmRzIFdJLk5hCiAKICAgICAgICAgV0kuYXVkaXRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0ku
QXVkaXRNYW5hZ2VyLkV2ZW50LlRlc3RBZGRlZCwgdGhpcy5faGFuZGxlQXVkaXRUZXN0QWRkZWQs
IHRoaXMpOwogICAgICAgICBXSS5hdWRpdE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcihXSS5BdWRp
dE1hbmFnZXIuRXZlbnQuVGVzdENvbXBsZXRlZCwgdGhpcy5faGFuZGxlQXVkaXRUZXN0Q29tcGxl
dGVkLCB0aGlzKTsKKyAgICAgICAgV0kuYXVkaXRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0ku
QXVkaXRNYW5hZ2VyLkV2ZW50LlRlc3RSZW1vdmVkLCB0aGlzLl9oYW5kbGVBdWRpdFRlc3RSZW1v
dmVkLCB0aGlzKTsKICAgICAgICAgV0kuYXVkaXRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoV0ku
QXVkaXRNYW5hZ2VyLkV2ZW50LlRlc3RTY2hlZHVsZWQsIHRoaXMuX2hhbmRsZUF1ZGl0VGVzdFNj
aGVkdWxlZCwgdGhpcyk7CiAKICAgICAgICAgdGhpcy5jb250ZW50VHJlZU91dGxpbmUuYWRkRXZl
bnRMaXN0ZW5lcihXSS5UcmVlT3V0bGluZS5FdmVudC5TZWxlY3Rpb25EaWRDaGFuZ2UsIHRoaXMu
X3RyZWVTZWxlY3Rpb25EaWRDaGFuZ2UsIHRoaXMpOwpAQCAtMTQ3LDYgKzE0OCwxMyBAQCBXSS5B
dWRpdE5hdmlnYXRpb25TaWRlYmFyUGFuZWwgPSBjbGFzcyBBdWRpdE5hdmlnYXRpb25TaWRlYmFy
UGFuZWwgZXh0ZW5kcyBXSS5OYQogICAgICAgICB0aGlzLl9hZGRSZXN1bHQocmVzdWx0LCBpbmRl
eCk7CiAgICAgfQogCisgICAgX2hhbmRsZUF1ZGl0VGVzdFJlbW92ZWQoZXZlbnQpCisgICAgewor
ICAgICAgICBsZXQge3Rlc3R9ID0gZXZlbnQuZGF0YTsKKyAgICAgICAgbGV0IHRyZWVFbGVtZW50
ID0gdGhpcy50cmVlRWxlbWVudEZvclJlcHJlc2VudGVkT2JqZWN0KHRlc3QpOworICAgICAgICB0
aGlzLmNvbnRlbnRUcmVlT3V0bGluZS5yZW1vdmVDaGlsZCh0cmVlRWxlbWVudCk7CisgICAgfQor
CiAgICAgX2hhbmRsZUF1ZGl0VGVzdFNjaGVkdWxlZChldmVudCkKICAgICB7CiAgICAgICAgIHRo
aXMuX3VwZGF0ZVN0YXJ0U3RvcEJ1dHRvbk5hdmlnYXRpb25JdGVtU3RhdGUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0F1ZGl0VGFiQ29u
dGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9B
dWRpdFRhYkNvbnRlbnRWaWV3LmpzCmluZGV4IDI5ZjQ4MWFjYTYxNDEwMjlkNTg4Njk3NTBhNDU1
MmFiZTIwOTVmMWEuLmRkMDU2ODZlYzRkZjRmZGU4ODU4ZTE5OTcxNTFiY2MxYTE0NThmY2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0F1ZGl0
VGFiQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvVmlld3MvQXVkaXRUYWJDb250ZW50Vmlldy5qcwpAQCAtODMsNiArODMsMjYgQEAgV0kuQXVk
aXRUYWJDb250ZW50VmlldyA9IGNsYXNzIEF1ZGl0VGFiQ29udGVudFZpZXcgZXh0ZW5kcyBXSS5D
b250ZW50QnJvd3NlclRhYkMKICAgICAgICAgc3VwZXIuaGlkZGVuKCk7CiAgICAgfQogCisgICAg
Ly8gUHJvdGVjdGVkCisKKyAgICBpbml0aWFsTGF5b3V0KCkKKyAgICB7CisgICAgICAgIHN1cGVy
LmluaXRpYWxMYXlvdXQoKTsKKworICAgICAgICBXSS5vYmplY3RTdG9yZXMuYXVkaXRzLmdldEFs
bCgpLnRoZW4oKHJlc3VsdHMpID0+IHsKKyAgICAgICAgICAgIGZvciAobGV0IHBheWxvYWQgb2Yg
cmVzdWx0cykgeworICAgICAgICAgICAgICAgIGxldCB0ZXN0ID0gV0kuQXVkaXRUZXN0R3JvdXAu
ZnJvbVBheWxvYWQocGF5bG9hZCkgfHwgV0kuQXVkaXRUZXN0Q2FzZS5mcm9tUGF5bG9hZChwYXls
b2FkKTsKKyAgICAgICAgICAgICAgICBpZiAoIXRlc3QpCisgICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlOworCisgICAgICAgICAgICAgICAgY29uc3Qga2V5ID0gbnVsbDsKKyAgICAgICAgICAg
ICAgICBXSS5vYmplY3RTdG9yZXMuYXVkaXRzLmFzc29jaWF0ZU9iamVjdCh0ZXN0LCBrZXksIHBh
eWxvYWQpOworCisgICAgICAgICAgICAgICAgV0kuYXVkaXRNYW5hZ2VyLmFkZFRlc3QodGVzdCk7
CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH0KKwogICAgIC8vIFByaXZhdGUKIAog
ICAgIF9oYW5kbGVTcGFjZShldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0F1ZGl0VHJlZUVsZW1lbnQuanMgYi9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BdWRpdFRyZWVFbGVtZW50LmpzCmluZGV4IGY2
ODVmNmU3MWMyNDAyYmQ3NWNkMjFkMDE1ZjFjNTA0ZTBmMzIyNDYuLjkzNzk3OTBiOTFiY2Q4YmVj
OWMxZWUzNjgzY2I4NzkzYTJiMGQwNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0F1ZGl0VHJlZUVsZW1lbnQuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQXVkaXRUcmVlRWxlbWVudC5qcwpAQCAt
OTgsNiArOTgsMTkgQEAgV0kuQXVkaXRUcmVlRWxlbWVudCA9IGNsYXNzIEF1ZGl0VHJlZUVsZW1l
bnQgZXh0ZW5kcyBXSS5HZW5lcmFsVHJlZUVsZW1lbnQKICAgICAgICAgfQogICAgIH0KIAorICAg
IG9uZGVsZXRlKCkKKyAgICB7CisgICAgICAgIGlmICghKHRoaXMucmVwcmVzZW50ZWRPYmplY3Qg
aW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RCYXNlKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgICAgICBpZiAoISh0aGlzLnBhcmVudCBpbnN0YW5jZW9mIFdJLlRyZWVPdXRsaW5lKSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBXSS5hdWRpdE1hbmFnZXIucmVt
b3ZlVGVzdCh0aGlzLnJlcHJlc2VudGVkT2JqZWN0KTsKKworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CisKICAgICBwb3B1bGF0ZUNvbnRleHRNZW51KGNvbnRleHRNZW51LCBldmVudCkKICAg
ICB7CiAgICAgICAgIGlmIChXSS5hdWRpdE1hbmFnZXIucnVubmluZ1N0YXRlID09PSBXSS5BdWRp
dE1hbmFnZXIuUnVubmluZ1N0YXRlLkluYWN0aXZlKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2JiNjQzYjljM2M2YTFm
ZjJmYzJhODIzMzA2Mzk0NjAyMDhlOWJiNy4uZGRjZDI3OGU0NGRiMThkMjI3YzY3MmY5ODI3Yjdl
OGMwYTU5ZWQ1NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE4LTEwLTMxICBEZXZpbiBSb3Vz
c28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBBdWRpdDog
c2F2ZSBpbXBvcnRlZCBhdWRpdHMgYWNyb3NzIFdlYkluc3BlY3RvciBzZXNzaW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwODU4CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80NTUyNzYyNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci91bml0LXRlc3RzL29iamVjdFN0b3JlL2Fk
ZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci91bml0LXRlc3RzL29i
amVjdFN0b3JlL2FkZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdW5pdC10ZXN0
cy9vYmplY3RTdG9yZS9hZGRPYmplY3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBp
bnNwZWN0b3IvdW5pdC10ZXN0cy9vYmplY3RTdG9yZS9hZGRPYmplY3QuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL3VuaXQtdGVzdHMvb2JqZWN0U3RvcmUvYmFzaWMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdW5pdC10ZXN0cy9vYmplY3RTdG9yZS9i
YXNpYy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdW5pdC10ZXN0cy9vYmplY3RT
dG9yZS9kZWxldGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdW5p
dC10ZXN0cy9vYmplY3RTdG9yZS9kZWxldGUuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVj
dG9yL3VuaXQtdGVzdHMvb2JqZWN0U3RvcmUvZGVsZXRlT2JqZWN0LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3VuaXQtdGVzdHMvb2JqZWN0U3RvcmUvZGVsZXRlT2Jq
ZWN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci91bml0LXRlc3RzL29iamVjdFN0
b3JlL3Jlc291cmNlcy9vYmplY3RTdG9yZS11dGlsaXRpZXMuanM6IEFkZGVkLgorICAgICAgICAo
VGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplci5JbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLlRl
c3RPYmplY3QpOgorICAgICAgICAoVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplci5JbnNwZWN0
b3JUZXN0Lk9iamVjdFN0b3JlLlRlc3RPYmplY3QucHJvdG90eXBlLnRvSlNPTik6CisgICAgICAg
IChUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVyLkluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUu
Y3JlYXRlU3VpdGUpOgorICAgICAgICAoVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplci5JbnNw
ZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmNyZWF0ZU9iamVjdFN0b3JlKToKKyAgICAgICAgKFRlc3RQ
YWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIuSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5hZGQpOgor
ICAgICAgICAoVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplci5JbnNwZWN0b3JUZXN0Lk9iamVj
dFN0b3JlLmFkZE9iamVjdCk6CisgICAgICAgIChUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxpemVy
Lkluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuZGVsZXRlKToKKyAgICAgICAgKFRlc3RQYWdlLnJl
Z2lzdGVySW5pdGlhbGl6ZXIuSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5kZWxldGVPYmplY3Qp
OgorICAgICAgICAoVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplci5JbnNwZWN0b3JUZXN0Lk9i
amVjdFN0b3JlLmxvZ1ZhbHVlcyk6CisgICAgICAgIChUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxp
emVyLkluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUud3JhcFRlc3QpOgorCiAyMDE4LTEwLTMwICBE
YXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgWFNMVFByb2Nlc3Nv
ciBzaG91bGQgbGltaXQgbWF4IHRyYW5zZm9ybSBkZXB0aApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvb2JqZWN0U3RvcmUvYWRkLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL29iamVjdFN0b3JlL2FkZC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMTQyNmUwYzQzYmQ2Mjg5ZGY2MjJlZTQ1YmNkMDIzYWJkMGRlM2Y2Mwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL29iamVj
dFN0b3JlL2FkZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3OCBAQAorVGVzdHMgV0kuT2JqZWN0
U3RvcmUucHJvdG90eXBlLmFkZC4KKworCis9PSBSdW5uaW5nIHRlc3Qgc3VpdGU6IFdJLk9iamVj
dFN0b3JlLnByb3RvdHlwZS5hZGQKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9y
ZS5wcm90b3R5cGUuYWRkLk5vUGFyYW1ldGVycworUEFTUzogU2hvdWxkIHByb2R1Y2UgYW4gZXhj
ZXB0aW9uLgorVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cworW10KKworLS0gUnVubmlu
ZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGQuQm9vbGVhbgorYWRkOiBb
ZmFsc2VdCithZGQ6IFtmYWxzZSx0cnVlXQorW2ZhbHNlLHRydWVdCisKKy0tIFJ1bm5pbmcgdGVz
dCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkLk51bWJlcgorYWRkOiBbMTFdCith
ZGQ6IFsxMSwyMl0KK1sxMSwyMl0KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0
b3JlLnByb3RvdHlwZS5hZGQuU3RyaW5nCithZGQ6IFsiZm9vIl0KK2FkZDogWyJmb28iLCJiYXIi
XQorWyJmb28iLCJiYXIiXQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUu
cHJvdG90eXBlLmFkZC5BcnJheQorYWRkOiBbWzExXV0KK2FkZDogW1sxMV0sWzIyXV0KK1tbMTFd
LFsyMl1dCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUu
YWRkLk51bGwKK2FkZDogW251bGxdCitbbnVsbF0KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJ
Lk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGQuT2JqZWN0LldpdGhvdXRLZXlQYXRoT3JBdXRvSW5j
cmVtZW50CitQQVNTOiBTaG91bGQgcHJvZHVjZSBhbiBleGNlcHRpb24uCitEYXRhRXJyb3I6IEZh
aWxlZCB0byBzdG9yZSByZWNvcmQgaW4gYW4gSURCT2JqZWN0U3RvcmU6IFRoZSBvYmplY3Qgc3Rv
cmUgdXNlcyBvdXQtb2YtbGluZSBrZXlzIGFuZCBoYXMgbm8ga2V5IGdlbmVyYXRvciBhbmQgdGhl
IGtleSBwYXJhbWV0ZXIgd2FzIG5vdCBwcm92aWRlZC4KK1tdCisKKy0tIFJ1bm5pbmcgdGVzdCBj
YXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkLk9iamVjdC5LZXlQYXRoTWlzc2luZ09u
T2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQKK1BBU1M6IFNob3VsZCBwcm9kdWNlIGFuIGV4Y2Vw
dGlvbi4KK0RhdGFFcnJvcjogRmFpbGVkIHRvIHN0b3JlIHJlY29yZCBpbiBhbiBJREJPYmplY3RT
dG9yZTogRXZhbHVhdGluZyB0aGUgb2JqZWN0IHN0b3JlJ3Mga2V5IHBhdGggZGlkIG5vdCB5aWVs
ZCBhIHZhbHVlLgorW10KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnBy
b3RvdHlwZS5hZGQuT2JqZWN0LktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50
CithZGQ6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Ijo0MiwiYSI6
MX1dCithZGQ6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Ijo0Miwi
YSI6MX0seyJLZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCI6OTksImIiOjJ9
XQorW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiOjQyLCJhIjoxfSx7
IktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Ijo5OSwiYiI6Mn1dCisKKy0t
IFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkLk9iamVjdC5L
ZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQKK2FkZDogW3siYSI6MSwiS2V5
UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50IjoxfV0KK2FkZDogW3siYSI6MSwi
S2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50IjoxfSx7ImIiOjIsIktleVBh
dGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6Mn1dCitbeyJhIjoxLCJLZXlQYXRo
TWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOjF9LHsiYiI6MiwiS2V5UGF0aE1pc3Np
bmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50IjoyfV0KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6
IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGQuT2JqZWN0LktleVBhdGhTZXRPbk9iamVjdFdp
dGhBdXRvSW5jcmVtZW50CithZGQ6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVt
ZW50Ijo0MiwiYSI6MX1dCithZGQ6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVt
ZW50Ijo0MiwiYSI6MX0seyJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6OTks
ImIiOjJ9XQorW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOjQyLCJhIjox
fSx7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijo5OSwiYiI6Mn1dCisKKy0t
IFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkLk9iamVjdC5B
dXRvSW5jcmVtZW50V2l0aG91dEtleVBhdGgKK2FkZDogW3siYSI6MX1dCithZGQ6IFt7ImEiOjF9
LHsiYiI6Mn1dCitbeyJhIjoxfSx7ImIiOjJ9XQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0ku
T2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZC5PYmplY3QuS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91
dEF1dG9JbmNyZW1lbnQuU3ViCithZGQ6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRv
SW5jcmVtZW50Ijp7IlN1YiI6NDJ9LCJhIjoxfV0KK2FkZDogW3siS2V5UGF0aFNldE9uT2JqZWN0
V2l0aG91dEF1dG9JbmNyZW1lbnQiOnsiU3ViIjo0Mn0sImEiOjF9LHsiS2V5UGF0aFNldE9uT2Jq
ZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiOnsiU3ViIjo5OX0sImIiOjJ9XQorW3siS2V5UGF0aFNl
dE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiOnsiU3ViIjo0Mn0sImEiOjF9LHsiS2V5UGF0
aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiOnsiU3ViIjo5OX0sImIiOjJ9XQorCist
LSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZC5PYmplY3Qu
S2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50LlN1YgorYWRkOiBbeyJhIjox
LCJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOnsiU3ViIjoxfX1dCith
ZGQ6IFt7ImEiOjEsIktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6eyJT
dWIiOjF9fSx7ImIiOjIsIktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6
eyJTdWIiOjJ9fV0KK1t7ImEiOjEsIktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3Jl
bWVudCI6eyJTdWIiOjF9fSx7ImIiOjIsIktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0lu
Y3JlbWVudCI6eyJTdWIiOjJ9fV0KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0
b3JlLnByb3RvdHlwZS5hZGQuT2JqZWN0LktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVt
ZW50LlN1YgorYWRkOiBbeyJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6eyJT
dWIiOjQyfSwiYSI6MX1dCithZGQ6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVt
ZW50Ijp7IlN1YiI6NDJ9LCJhIjoxfSx7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVt
ZW50Ijp7IlN1YiI6OTl9LCJiIjoyfV0KK1t7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5j
cmVtZW50Ijp7IlN1YiI6NDJ9LCJhIjoxfSx7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5j
cmVtZW50Ijp7IlN1YiI6OTl9LCJiIjoyfV0KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3VuaXQtdGVzdHMvb2JqZWN0U3RvcmUvYWRkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvdW5pdC10ZXN0cy9vYmplY3RTdG9yZS9hZGQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NTE1Zjc3
ZDcxNzA0MWRmOWJjZDJlMmFkZmE4ZWY4NzMzOTk1MzA1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvb2JqZWN0U3RvcmUvYWRkLmh0bWwKQEAgLTAs
MCArMSwxNTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3Qu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9vYmplY3RTdG9yZS11dGlsaXRp
ZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGxldCBz
dWl0ZSA9IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuY3JlYXRlU3VpdGUoIldJLk9iamVjdFN0
b3JlLnByb3RvdHlwZS5hZGQiKTsKKworICAgIGZ1bmN0aW9uIHRlc3RBZGQobmFtZSwge29wdGlv
bnMsIHRlc3RzfSkgeworICAgICAgICBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLndyYXBUZXN0
KG5hbWUsIGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5PYmpl
Y3RTdG9yZS5jcmVhdGVPYmplY3RTdG9yZShvcHRpb25zKTsKKworICAgICAgICAgICAgZm9yIChs
ZXQge3ZhbHVlLCBleHBlY3RlZH0gb2YgdGVzdHMpCisgICAgICAgICAgICAgICAgYXdhaXQgSW5z
cGVjdG9yVGVzdC5PYmplY3RTdG9yZS5hZGQodmFsdWUsIGV4cGVjdGVkKTsKKyAgICAgICAgfSk7
CisgICAgfQorCisgICAgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS53cmFwVGVzdCgiV0kuT2Jq
ZWN0U3RvcmUucHJvdG90eXBlLmFkZC5Ob1BhcmFtZXRlcnMiLCBhc3luYyBmdW5jdGlvbigpIHsK
KyAgICAgICAgbGV0IG9iamVjdFN0b3JlID0gSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5jcmVh
dGVPYmplY3RTdG9yZSgpOworCisgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXhwZWN0RXhj
ZXB0aW9uKGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYXdhaXQgb2JqZWN0U3RvcmUu
YWRkKCk7CisgICAgICAgICAgICBhd2FpdCBvYmplY3RTdG9yZS5hZGQoSW5zcGVjdG9yVGVzdC5P
YmplY3RTdG9yZS5iYXNpY09iamVjdDIpOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIHRl
c3RBZGQoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGQuQm9vbGVhbiIsIHsKKyAgICAgICAg
b3B0aW9uczoge2F1dG9JbmNyZW1lbnQ6IHRydWV9LAorICAgICAgICB0ZXN0czogWworICAgICAg
ICAgICAge3ZhbHVlOiBmYWxzZSwgZXhwZWN0ZWQ6IDF9LAorICAgICAgICAgICAge3ZhbHVlOiB0
cnVlLCBleHBlY3RlZDogMn0sCisgICAgICAgIF0sCisgICAgfSk7CisKKyAgICB0ZXN0QWRkKCJX
SS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkLk51bWJlciIsIHsKKyAgICAgICAgb3B0aW9uczog
e2F1dG9JbmNyZW1lbnQ6IHRydWV9LAorICAgICAgICB0ZXN0czogWworICAgICAgICAgICAge3Zh
bHVlOiAxMSwgZXhwZWN0ZWQ6IDF9LAorICAgICAgICAgICAge3ZhbHVlOiAyMiwgZXhwZWN0ZWQ6
IDJ9LAorICAgICAgICBdLAorICAgIH0pOworCisgICAgdGVzdEFkZCgiV0kuT2JqZWN0U3RvcmUu
cHJvdG90eXBlLmFkZC5TdHJpbmciLCB7CisgICAgICAgIG9wdGlvbnM6IHthdXRvSW5jcmVtZW50
OiB0cnVlfSwKKyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAgIHt2YWx1ZTogImZvbyIsIGV4
cGVjdGVkOiAxfSwKKyAgICAgICAgICAgIHt2YWx1ZTogImJhciIsIGV4cGVjdGVkOiAyfSwKKyAg
ICAgICAgXSwKKyAgICB9KTsKKworICAgIHRlc3RBZGQoIldJLk9iamVjdFN0b3JlLnByb3RvdHlw
ZS5hZGQuQXJyYXkiLCB7CisgICAgICAgIG9wdGlvbnM6IHthdXRvSW5jcmVtZW50OiB0cnVlfSwK
KyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAgIHt2YWx1ZTogWzExXSwgZXhwZWN0ZWQ6IDF9
LAorICAgICAgICAgICAge3ZhbHVlOiBbMjJdLCBleHBlY3RlZDogMn0sCisgICAgICAgIF0sCisg
ICAgfSk7CisKKyAgICB0ZXN0QWRkKCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkLk51bGwi
LCB7CisgICAgICAgIG9wdGlvbnM6IHthdXRvSW5jcmVtZW50OiB0cnVlfSwKKyAgICAgICAgdGVz
dHM6IFsKKyAgICAgICAgICAgIHt2YWx1ZTogbnVsbCwgZXhwZWN0ZWQ6IDF9LAorICAgICAgICBd
LAorICAgIH0pOworCisgICAgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS53cmFwVGVzdCgiV0ku
T2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZC5PYmplY3QuV2l0aG91dEtleVBhdGhPckF1dG9JbmNy
ZW1lbnQiLCBhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgbGV0IG9iamVjdFN0b3JlID0gSW5z
cGVjdG9yVGVzdC5PYmplY3RTdG9yZS5jcmVhdGVPYmplY3RTdG9yZSgpOworCisgICAgICAgIGF3
YWl0IEluc3BlY3RvclRlc3QuZXhwZWN0RXhjZXB0aW9uKGFzeW5jIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgYXdhaXQgb2JqZWN0U3RvcmUuYWRkKEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUu
YmFzaWNPYmplY3QxKTsKKyAgICAgICAgICAgIGF3YWl0IG9iamVjdFN0b3JlLmFkZChJbnNwZWN0
b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0Mik7CisgICAgICAgIH0pOworICAgIH0pOwor
CisgICAgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS53cmFwVGVzdCgiV0kuT2JqZWN0U3RvcmUu
cHJvdG90eXBlLmFkZC5PYmplY3QuS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhvdXRBdXRvSW5j
cmVtZW50IiwgYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7Cisg
ICAgICAgICAgICBrZXlQYXRoOiAiS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhvdXRBdXRvSW5j
cmVtZW50IiwKKyAgICAgICAgfTsKKyAgICAgICAgbGV0IG9iamVjdFN0b3JlID0gSW5zcGVjdG9y
VGVzdC5PYmplY3RTdG9yZS5jcmVhdGVPYmplY3RTdG9yZShvcHRpb25zKTsKKworICAgICAgICBh
d2FpdCBJbnNwZWN0b3JUZXN0LmV4cGVjdEV4Y2VwdGlvbihhc3luYyBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgIGF3YWl0IG9iamVjdFN0b3JlLmFkZChJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3Jl
LmJhc2ljT2JqZWN0MSk7CisgICAgICAgICAgICBhd2FpdCBvYmplY3RTdG9yZS5hZGQoSW5zcGVj
dG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDIpOworICAgICAgICB9KTsKKyAgICB9KTsK
KworICAgIHRlc3RBZGQoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGQuT2JqZWN0LktleVBh
dGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50IiwgeworICAgICAgICBvcHRpb25zOiB7
a2V5UGF0aDogIktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50In0sCisgICAg
ICAgIHRlc3RzOiBbCisgICAgICAgICAgICB7dmFsdWU6IHtLZXlQYXRoU2V0T25PYmplY3RXaXRo
b3V0QXV0b0luY3JlbWVudDogNDIsIC4uLkluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNP
YmplY3QxfSwgZXhwZWN0ZWQ6IDQyfSwKKyAgICAgICAgICAgIHt2YWx1ZToge0tleVBhdGhTZXRP
bk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50OiA5OSwgLi4uSW5zcGVjdG9yVGVzdC5PYmplY3RT
dG9yZS5iYXNpY09iamVjdDJ9LCBleHBlY3RlZDogOTl9LAorICAgICAgICBdLAorICAgIH0pOwor
CisgICAgdGVzdEFkZCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZC5PYmplY3QuS2V5UGF0
aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50IiwgeworICAgICAgICBvcHRpb25zOiB7
a2V5UGF0aDogIktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCIsIGF1dG9J
bmNyZW1lbnQ6IHRydWV9LAorICAgICAgICB0ZXN0czogWworICAgICAgICAgICAge3ZhbHVlOiBJ
bnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MSwgZXhwZWN0ZWQ6IDF9LAorICAg
ICAgICAgICAge3ZhbHVlOiBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0Miwg
ZXhwZWN0ZWQ6IDJ9LAorICAgICAgICBdLAorICAgIH0pOworCisgICAgdGVzdEFkZCgiV0kuT2Jq
ZWN0U3RvcmUucHJvdG90eXBlLmFkZC5PYmplY3QuS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9J
bmNyZW1lbnQiLCB7CisgICAgICAgIG9wdGlvbnM6IHtrZXlQYXRoOiAiS2V5UGF0aFNldE9uT2Jq
ZWN0V2l0aEF1dG9JbmNyZW1lbnQiLCBhdXRvSW5jcmVtZW50OiB0cnVlfSwKKyAgICAgICAgdGVz
dHM6IFsKKyAgICAgICAgICAgIHt2YWx1ZToge0tleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5j
cmVtZW50OiA0MiwgLi4uSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDF9LCBl
eHBlY3RlZDogNDJ9LAorICAgICAgICAgICAge3ZhbHVlOiB7S2V5UGF0aFNldE9uT2JqZWN0V2l0
aEF1dG9JbmNyZW1lbnQ6IDk5LCAuLi5JbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2Jq
ZWN0Mn0sIGV4cGVjdGVkOiA5OX0sCisgICAgICAgIF0sCisgICAgfSk7CisKKyAgICB0ZXN0QWRk
KCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkLk9iamVjdC5BdXRvSW5jcmVtZW50V2l0aG91
dEtleVBhdGgiLCB7CisgICAgICAgIG9wdGlvbnM6IHthdXRvSW5jcmVtZW50OiB0cnVlfSwKKyAg
ICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAgIHt2YWx1ZTogSW5zcGVjdG9yVGVzdC5PYmplY3RT
dG9yZS5iYXNpY09iamVjdDEsIGV4cGVjdGVkOiAxfSwKKyAgICAgICAgICAgIHt2YWx1ZTogSW5z
cGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDIsIGV4cGVjdGVkOiAyfSwKKyAgICAg
ICAgXSwKKyAgICB9KTsKKworICAgIHRlc3RBZGQoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5h
ZGQuT2JqZWN0LktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50LlN1YiIsIHsK
KyAgICAgICAgb3B0aW9uczoge2tleVBhdGg6ICJLZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0
b0luY3JlbWVudC5TdWIifSwKKyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAgIHt2YWx1ZTog
e0tleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50OiB7U3ViOiA0Mn0sIC4uLklu
c3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QxfSwgZXhwZWN0ZWQ6IDQyfSwKKyAg
ICAgICAgICAgIHt2YWx1ZToge0tleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50
OiB7U3ViOiA5OX0sIC4uLkluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyfSwg
ZXhwZWN0ZWQ6IDk5fSwKKyAgICAgICAgXSwKKyAgICB9KTsKKworICAgIHRlc3RBZGQoIldJLk9i
amVjdFN0b3JlLnByb3RvdHlwZS5hZGQuT2JqZWN0LktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRo
QXV0b0luY3JlbWVudC5TdWIiLCB7CisgICAgICAgIG9wdGlvbnM6IHtrZXlQYXRoOiAiS2V5UGF0
aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50LlN1YiIsIGF1dG9JbmNyZW1lbnQ6IHRy
dWV9LAorICAgICAgICB0ZXN0czogWworICAgICAgICAgICAge3ZhbHVlOiBJbnNwZWN0b3JUZXN0
Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MSwgZXhwZWN0ZWQ6IDF9LAorICAgICAgICAgICAge3Zh
bHVlOiBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MiwgZXhwZWN0ZWQ6IDJ9
LAorICAgICAgICBdLAorICAgIH0pOworCisgICAgdGVzdEFkZCgiV0kuT2JqZWN0U3RvcmUucHJv
dG90eXBlLmFkZC5PYmplY3QuS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQuU3Vi
IiwgeworICAgICAgICBvcHRpb25zOiB7a2V5UGF0aDogIktleVBhdGhTZXRPbk9iamVjdFdpdGhB
dXRvSW5jcmVtZW50LlN1YiIsIGF1dG9JbmNyZW1lbnQ6IHRydWV9LAorICAgICAgICB0ZXN0czog
WworICAgICAgICAgICAge3ZhbHVlOiB7S2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1l
bnQ6IHtTdWI6IDQyfSwgLi4uSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDF9
LCBleHBlY3RlZDogNDJ9LAorICAgICAgICAgICAge3ZhbHVlOiB7S2V5UGF0aFNldE9uT2JqZWN0
V2l0aEF1dG9JbmNyZW1lbnQ6IHtTdWI6IDk5fSwgLi4uSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9y
ZS5iYXNpY09iamVjdDJ9LCBleHBlY3RlZDogOTl9LAorICAgICAgICBdLAorICAgIH0pOworCisg
ICAgc3VpdGUucnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKyAgICA8cD5UZXN0cyBXSS5PYmplY3RTdG9yZS5w
cm90b3R5cGUuYWRkLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci91bml0LXRlc3RzL29iamVjdFN0b3JlL2FkZE9iamVjdC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9vYmplY3RTdG9yZS9hZGRPYmpl
Y3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3ZmNlNzY1MmFiMjE2YWI2ODQyNDE4M2I4MTVj
ODk4Y2NlODNkNWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5p
dC10ZXN0cy9vYmplY3RTdG9yZS9hZGRPYmplY3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNTQg
QEAKK1Rlc3RzIFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGRPYmplY3QuCisKKworPT0gUnVu
bmluZyB0ZXN0IHN1aXRlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkT2JqZWN0CistLSBS
dW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZE9iamVjdC5Ob1Bh
cmFtZXRlcnMKK1BBU1M6IFNob3VsZCBwcm9kdWNlIGFuIGV4Y2VwdGlvbi4KK1R5cGVFcnJvcjog
dW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ29iamVjdC50b0pTT04nKQor
W10KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGRP
YmplY3QuV2l0aG91dEtleVBhdGhPckF1dG9JbmNyZW1lbnQKK1BBU1M6IFNob3VsZCBwcm9kdWNl
IGFuIGV4Y2VwdGlvbi4KK0RhdGFFcnJvcjogRmFpbGVkIHRvIHN0b3JlIHJlY29yZCBpbiBhbiBJ
REJPYmplY3RTdG9yZTogVGhlIG9iamVjdCBzdG9yZSB1c2VzIG91dC1vZi1saW5lIGtleXMgYW5k
IGhhcyBubyBrZXkgZ2VuZXJhdG9yIGFuZCB0aGUga2V5IHBhcmFtZXRlciB3YXMgbm90IHByb3Zp
ZGVkLgorW10KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlw
ZS5hZGRPYmplY3QuS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50CitQ
QVNTOiBTaG91bGQgcHJvZHVjZSBhbiBleGNlcHRpb24uCitEYXRhRXJyb3I6IEZhaWxlZCB0byBz
dG9yZSByZWNvcmQgaW4gYW4gSURCT2JqZWN0U3RvcmU6IEV2YWx1YXRpbmcgdGhlIG9iamVjdCBz
dG9yZSdzIGtleSBwYXRoIGRpZCBub3QgeWllbGQgYSB2YWx1ZS4KK1tdCisKKy0tIFJ1bm5pbmcg
dGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkT2JqZWN0LktleVBhdGhTZXRP
bk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50CithZGRPYmplY3Q6IFt7IktleVBhdGhTZXRPbk9i
amVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Ijo0MiwiYSI6MX1dCithZGRPYmplY3Q6IFt7IktleVBh
dGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Ijo0MiwiYSI6MX0seyJLZXlQYXRoU2V0
T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCI6OTksImIiOjJ9XQorW3siS2V5UGF0aFNldE9u
T2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiOjQyLCJhIjoxfSx7IktleVBhdGhTZXRPbk9iamVj
dFdpdGhvdXRBdXRvSW5jcmVtZW50Ijo5OSwiYiI6Mn1dCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNl
OiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkT2JqZWN0LktleVBhdGhNaXNzaW5nT25PYmpl
Y3RXaXRoQXV0b0luY3JlbWVudAorYWRkT2JqZWN0OiBbeyJhIjoxLCJLZXlQYXRoTWlzc2luZ09u
T2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOjF9XQorYWRkT2JqZWN0OiBbeyJhIjoxLCJLZXlQYXRo
TWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOjF9LHsiYiI6MiwiS2V5UGF0aE1pc3Np
bmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50IjoyfV0KK1t7ImEiOjEsIktleVBhdGhNaXNzaW5n
T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6MX0seyJiIjoyLCJLZXlQYXRoTWlzc2luZ09uT2Jq
ZWN0V2l0aEF1dG9JbmNyZW1lbnQiOjJ9XQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2Jq
ZWN0U3RvcmUucHJvdG90eXBlLmFkZE9iamVjdC5LZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0lu
Y3JlbWVudAorYWRkT2JqZWN0OiBbeyJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVu
dCI6NDIsImEiOjF9XQorYWRkT2JqZWN0OiBbeyJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0lu
Y3JlbWVudCI6NDIsImEiOjF9LHsiS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQi
Ojk5LCJiIjoyfV0KK1t7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijo0Miwi
YSI6MX0seyJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6OTksImIiOjJ9XQor
CistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZE9iamVj
dC5BdXRvSW5jcmVtZW50V2l0aG91dEtleVBhdGgKK2FkZE9iamVjdDogW3siYSI6MX1dCithZGRP
YmplY3Q6IFt7ImEiOjF9LHsiYiI6Mn1dCitbeyJhIjoxfSx7ImIiOjJ9XQorCistLSBSdW5uaW5n
IHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZE9iamVjdC5LZXlQYXRoU2V0
T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudC5TdWIKK2FkZE9iamVjdDogW3siS2V5UGF0aFNl
dE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiOnsiU3ViIjo0Mn0sImEiOjF9XQorYWRkT2Jq
ZWN0OiBbeyJLZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCI6eyJTdWIiOjQy
fSwiYSI6MX0seyJLZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCI6eyJTdWIi
Ojk5fSwiYiI6Mn1dCitbeyJLZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCI6
eyJTdWIiOjQyfSwiYSI6MX0seyJLZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVu
dCI6eyJTdWIiOjk5fSwiYiI6Mn1dCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RT
dG9yZS5wcm90b3R5cGUuYWRkT2JqZWN0LktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0lu
Y3JlbWVudC5TdWIKK2FkZE9iamVjdDogW3siYSI6MSwiS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdp
dGhBdXRvSW5jcmVtZW50Ijp7IlN1YiI6MX19XQorYWRkT2JqZWN0OiBbeyJhIjoxLCJLZXlQYXRo
TWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOnsiU3ViIjoxfX0seyJiIjoyLCJLZXlQ
YXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOnsiU3ViIjoyfX1dCitbeyJhIjox
LCJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOnsiU3ViIjoxfX0seyJi
IjoyLCJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOnsiU3ViIjoyfX1d
CisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkT2Jq
ZWN0LktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50LlN1YgorYWRkT2JqZWN0OiBb
eyJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6eyJTdWIiOjQyfSwiYSI6MX1d
CithZGRPYmplY3Q6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijp7IlN1
YiI6NDJ9LCJhIjoxfSx7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijp7IlN1
YiI6OTl9LCJiIjoyfV0KK1t7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijp7
IlN1YiI6NDJ9LCJhIjoxfSx7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijp7
IlN1YiI6OTl9LCJiIjoyfV0KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3Vu
aXQtdGVzdHMvb2JqZWN0U3RvcmUvYWRkT2JqZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3IvdW5pdC10ZXN0cy9vYmplY3RTdG9yZS9hZGRPYmplY3QuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMzUy
M2ZiNWY4MjFhNjNlYTc4MDAwNzNjNzUxMWI4ZDQyYmE4NWRlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvb2JqZWN0U3RvcmUvYWRkT2JqZWN0Lmh0
bWwKQEAgLTAsMCArMSwxMTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVj
dG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9vYmplY3RTdG9y
ZS11dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQorewor
ICAgIGxldCBzdWl0ZSA9IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuY3JlYXRlU3VpdGUoIldJ
Lk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGRPYmplY3QiKTsKKworICAgIGZ1bmN0aW9uIHRlc3RB
ZGRPYmplY3QobmFtZSwge29wdGlvbnMsIHRlc3RzfSkgeworICAgICAgICBJbnNwZWN0b3JUZXN0
Lk9iamVjdFN0b3JlLndyYXBUZXN0KG5hbWUsIGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5jcmVhdGVPYmplY3RTdG9yZShvcHRpb25zKTsK
KworICAgICAgICAgICAgZm9yIChsZXQge3ZhbHVlLCBleHBlY3RlZH0gb2YgdGVzdHMpCisgICAg
ICAgICAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5hZGRPYmplY3QobmV3
IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuVGVzdE9iamVjdCh2YWx1ZSksIGV4cGVjdGVkKTsK
KyAgICAgICAgfSk7CisgICAgfQorCisgICAgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS53cmFw
VGVzdCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZE9iamVjdC5Ob1BhcmFtZXRlcnMiLCBh
c3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgbGV0IG9iamVjdFN0b3JlID0gSW5zcGVjdG9yVGVz
dC5PYmplY3RTdG9yZS5jcmVhdGVPYmplY3RTdG9yZSgpOworCisgICAgICAgIGF3YWl0IEluc3Bl
Y3RvclRlc3QuZXhwZWN0RXhjZXB0aW9uKGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
YXdhaXQgb2JqZWN0U3RvcmUuYWRkT2JqZWN0KCk7CisgICAgICAgICAgICBhd2FpdCBvYmplY3RT
dG9yZS5hZGRPYmplY3QobmV3IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuVGVzdE9iamVjdChJ
bnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MikpOworICAgICAgICB9KTsKKyAg
ICB9KTsKKworICAgIEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUud3JhcFRlc3QoIldJLk9iamVj
dFN0b3JlLnByb3RvdHlwZS5hZGRPYmplY3QuV2l0aG91dEtleVBhdGhPckF1dG9JbmNyZW1lbnQi
LCBhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgbGV0IG9iamVjdFN0b3JlID0gSW5zcGVjdG9y
VGVzdC5PYmplY3RTdG9yZS5jcmVhdGVPYmplY3RTdG9yZSgpOworCisgICAgICAgIGF3YWl0IElu
c3BlY3RvclRlc3QuZXhwZWN0RXhjZXB0aW9uKGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgYXdhaXQgb2JqZWN0U3RvcmUuYWRkT2JqZWN0KG5ldyBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0
b3JlLlRlc3RPYmplY3QoSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDEpKTsK
KyAgICAgICAgICAgIGF3YWl0IG9iamVjdFN0b3JlLmFkZE9iamVjdChuZXcgSW5zcGVjdG9yVGVz
dC5PYmplY3RTdG9yZS5UZXN0T2JqZWN0KEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNP
YmplY3QyKSk7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgSW5zcGVjdG9yVGVzdC5PYmpl
Y3RTdG9yZS53cmFwVGVzdCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZE9iamVjdC5LZXlQ
YXRoTWlzc2luZ09uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiLCBhc3luYyBmdW5jdGlvbigp
IHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIGtleVBhdGg6ICJLZXlQ
YXRoTWlzc2luZ09uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiLAorICAgICAgICB9OworICAg
ICAgICBsZXQgb2JqZWN0U3RvcmUgPSBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmNyZWF0ZU9i
amVjdFN0b3JlKG9wdGlvbnMpOworCisgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXhwZWN0
RXhjZXB0aW9uKGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYXdhaXQgb2JqZWN0U3Rv
cmUuYWRkT2JqZWN0KG5ldyBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLlRlc3RPYmplY3QoSW5z
cGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDEpKTsKKyAgICAgICAgICAgIGF3YWl0
IG9iamVjdFN0b3JlLmFkZE9iamVjdChuZXcgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5UZXN0
T2JqZWN0KEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyKSk7CisgICAgICAg
IH0pOworICAgIH0pOworCisgICAgdGVzdEFkZE9iamVjdCgiV0kuT2JqZWN0U3RvcmUucHJvdG90
eXBlLmFkZE9iamVjdC5LZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCIsIHsK
KyAgICAgICAgb3B0aW9uczoge2tleVBhdGg6ICJLZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0
b0luY3JlbWVudCJ9LAorICAgICAgICB0ZXN0czogWworICAgICAgICAgICAge3ZhbHVlOiB7S2V5
UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQ6IDQyLCAuLi5JbnNwZWN0b3JUZXN0
Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MX0sIGV4cGVjdGVkOiA0Mn0sCisgICAgICAgICAgICB7
dmFsdWU6IHtLZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudDogOTksIC4uLklu
c3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyfSwgZXhwZWN0ZWQ6IDk5fSwKKyAg
ICAgICAgXSwKKyAgICB9KTsKKworICAgIHRlc3RBZGRPYmplY3QoIldJLk9iamVjdFN0b3JlLnBy
b3RvdHlwZS5hZGRPYmplY3QuS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50
IiwgeworICAgICAgICBvcHRpb25zOiB7a2V5UGF0aDogIktleVBhdGhNaXNzaW5nT25PYmplY3RX
aXRoQXV0b0luY3JlbWVudCIsIGF1dG9JbmNyZW1lbnQ6IHRydWV9LAorICAgICAgICB0ZXN0czog
WworICAgICAgICAgICAge3ZhbHVlOiBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2Jq
ZWN0MSwgZXhwZWN0ZWQ6IDF9LAorICAgICAgICAgICAge3ZhbHVlOiBJbnNwZWN0b3JUZXN0Lk9i
amVjdFN0b3JlLmJhc2ljT2JqZWN0MiwgZXhwZWN0ZWQ6IDJ9LAorICAgICAgICBdLAorICAgIH0p
OworCisgICAgdGVzdEFkZE9iamVjdCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZE9iamVj
dC5LZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCIsIHsKKyAgICAgICAgb3B0aW9u
czoge2tleVBhdGg6ICJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCIsIGF1dG9J
bmNyZW1lbnQ6IHRydWV9LAorICAgICAgICB0ZXN0czogWworICAgICAgICAgICAge3ZhbHVlOiB7
S2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQ6IDQyLCAuLi5JbnNwZWN0b3JUZXN0
Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MX0sIGV4cGVjdGVkOiA0Mn0sCisgICAgICAgICAgICB7
dmFsdWU6IHtLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudDogOTksIC4uLkluc3Bl
Y3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyfSwgZXhwZWN0ZWQ6IDk5fSwKKyAgICAg
ICAgXSwKKyAgICB9KTsKKworICAgIHRlc3RBZGRPYmplY3QoIldJLk9iamVjdFN0b3JlLnByb3Rv
dHlwZS5hZGRPYmplY3QuQXV0b0luY3JlbWVudFdpdGhvdXRLZXlQYXRoIiwgeworICAgICAgICBv
cHRpb25zOiB7YXV0b0luY3JlbWVudDogdHJ1ZX0sCisgICAgICAgIHRlc3RzOiBbCisgICAgICAg
ICAgICB7dmFsdWU6IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QxLCBleHBl
Y3RlZDogMX0sCisgICAgICAgICAgICB7dmFsdWU6IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUu
YmFzaWNPYmplY3QyLCBleHBlY3RlZDogMn0sCisgICAgICAgIF0sCisgICAgfSk7CisKKyAgICB0
ZXN0QWRkT2JqZWN0KCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkT2JqZWN0LktleVBhdGhT
ZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50LlN1YiIsIHsKKyAgICAgICAgb3B0aW9uczog
e2tleVBhdGg6ICJLZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudC5TdWIifSwK
KyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAgIHt2YWx1ZToge0tleVBhdGhTZXRPbk9iamVj
dFdpdGhvdXRBdXRvSW5jcmVtZW50OiB7U3ViOiA0Mn0sIC4uLkluc3BlY3RvclRlc3QuT2JqZWN0
U3RvcmUuYmFzaWNPYmplY3QxfSwgZXhwZWN0ZWQ6IDQyfSwKKyAgICAgICAgICAgIHt2YWx1ZTog
e0tleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50OiB7U3ViOiA5OX0sIC4uLklu
c3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyfSwgZXhwZWN0ZWQ6IDk5fSwKKyAg
ICAgICAgXSwKKyAgICB9KTsKKworICAgIHRlc3RBZGRPYmplY3QoIldJLk9iamVjdFN0b3JlLnBy
b3RvdHlwZS5hZGRPYmplY3QuS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50
LlN1YiIsIHsKKyAgICAgICAgb3B0aW9uczoge2tleVBhdGg6ICJLZXlQYXRoTWlzc2luZ09uT2Jq
ZWN0V2l0aEF1dG9JbmNyZW1lbnQuU3ViIiwgYXV0b0luY3JlbWVudDogdHJ1ZX0sCisgICAgICAg
IHRlc3RzOiBbCisgICAgICAgICAgICB7dmFsdWU6IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUu
YmFzaWNPYmplY3QxLCBleHBlY3RlZDogMX0sCisgICAgICAgICAgICB7dmFsdWU6IEluc3BlY3Rv
clRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyLCBleHBlY3RlZDogMn0sCisgICAgICAgIF0s
CisgICAgfSk7CisKKyAgICB0ZXN0QWRkT2JqZWN0KCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUu
YWRkT2JqZWN0LktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50LlN1YiIsIHsKKyAg
ICAgICAgb3B0aW9uczoge2tleVBhdGg6ICJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3Jl
bWVudC5TdWIiLCBhdXRvSW5jcmVtZW50OiB0cnVlfSwKKyAgICAgICAgdGVzdHM6IFsKKyAgICAg
ICAgICAgIHt2YWx1ZToge0tleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50OiB7U3Vi
OiA0Mn0sIC4uLkluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QxfSwgZXhwZWN0
ZWQ6IDQyfSwKKyAgICAgICAgICAgIHt2YWx1ZToge0tleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRv
SW5jcmVtZW50OiB7U3ViOiA5OX0sIC4uLkluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNP
YmplY3QyfSwgZXhwZWN0ZWQ6IDk5fSwKKyAgICAgICAgXSwKKyAgICB9KTsKKworICAgIHN1aXRl
LnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBv
bmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPHA+VGVzdHMgV0kuT2JqZWN0U3RvcmUucHJvdG90eXBl
LmFkZE9iamVjdC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9vYmplY3RTdG9yZS9iYXNpYy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9vYmplY3RTdG9yZS9iYXNpYy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMDZhNGM2ZmY2ZWJlYTFjMDljODU5MmYzMTI4NGI4ZTMxZmI4NjY4
ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL29i
amVjdFN0b3JlL2Jhc2ljLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE5IEBACitUZXN0cyBiYXNp
YyBmdW5jdGlvbmFsaXR5IG9mIFdJLk9iamVjdFN0b3JlLgorCisKKz09IFJ1bm5pbmcgdGVzdCBz
dWl0ZTogV0kuT2JqZWN0U3RvcmUKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9y
ZS5Jbml0aWFsbHlOdWxsCitQQVNTOiBUaGUgZGF0YWJhc2Ugc2hvdWxkIGluaXRpYWxseSBiZSBu
dWxsL2Nsb3NlZC4KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3Rv
dHlwZS5fcmVzb2x2ZUtleVBhdGguRXhpc3RzCit7Im9iamVjdCI6eyJhIjoxfSwia2V5IjpbImEi
XSwidmFsdWUiOjF9CitbXQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUu
cHJvdG90eXBlLl9yZXNvbHZlS2V5UGF0aC5NaXNzaW5nUGFydAoreyJvYmplY3QiOnsic3ViLmEi
OjAsImEiOjEsImIiOjJ9LCJrZXkiOiJzdWIuYSIsInZhbHVlIjowfQorW10KKworLS0gUnVubmlu
ZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5fcmVzb2x2ZUtleVBhdGguTWlz
c2luZ1dob2xlCit7Im9iamVjdCI6eyJhIjoxLCJiIjoyfSwia2V5Ijoic3ViLmEifQorW10KKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvb2JqZWN0U3RvcmUv
YmFzaWMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL29iamVjdFN0b3Jl
L2Jhc2ljLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTQ3ZmRkYWViMzlmOTNiMTllZjRmYjU3NGUwMGJmNjc3
YWY3YmFjOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRl
c3RzL29iamVjdFN0b3JlL2Jhc2ljLmh0bWwKQEAgLTAsMCArMSw1MiBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL2h0dHAvdGVzdHMvaW5z
cGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0icmVzb3VyY2VzL29iamVjdFN0b3JlLXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5PYmpl
Y3RTdG9yZS5jcmVhdGVTdWl0ZSgiV0kuT2JqZWN0U3RvcmUiKTsKKworICAgIEluc3BlY3RvclRl
c3QuT2JqZWN0U3RvcmUud3JhcFRlc3QoIldJLk9iamVjdFN0b3JlLkluaXRpYWxseU51bGwiLCBh
c3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5leHBlY3ROdWxsKFdJLk9i
amVjdFN0b3JlLl9kYXRhYmFzZSwgIlRoZSBkYXRhYmFzZSBzaG91bGQgaW5pdGlhbGx5IGJlIG51
bGwvY2xvc2VkLiIpOworICAgIH0pOworCisgICAgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS53
cmFwVGVzdCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLl9yZXNvbHZlS2V5UGF0aC5FeGlzdHMi
LCBhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAg
ICAgIGtleVBhdGg6ICJzdWIuYSIsCisgICAgICAgIH07CisgICAgICAgIGxldCBvYmplY3RTdG9y
ZSA9IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuY3JlYXRlT2JqZWN0U3RvcmUob3B0aW9ucyk7
CisKKyAgICAgICAgY29uc3Qgb2JqZWN0ID0ge3N1Yjoge2E6IDF9LCBiOiAyfTsKKyAgICAgICAg
SW5zcGVjdG9yVGVzdC5sb2cob2JqZWN0U3RvcmUuX3Jlc29sdmVLZXlQYXRoKG9iamVjdCkpOwor
ICAgIH0pOworCisgICAgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS53cmFwVGVzdCgiV0kuT2Jq
ZWN0U3RvcmUucHJvdG90eXBlLl9yZXNvbHZlS2V5UGF0aC5NaXNzaW5nUGFydCIsIGFzeW5jIGZ1
bmN0aW9uKCkgeworICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAga2V5UGF0
aDogInN1Yi5hIiwKKyAgICAgICAgfTsKKyAgICAgICAgbGV0IG9iamVjdFN0b3JlID0gSW5zcGVj
dG9yVGVzdC5PYmplY3RTdG9yZS5jcmVhdGVPYmplY3RTdG9yZShvcHRpb25zKTsKKworICAgICAg
ICBjb25zdCBvYmplY3QgPSB7InN1Yi5hIjogMCwgYTogMSwgYjogMn07CisgICAgICAgIEluc3Bl
Y3RvclRlc3QubG9nKG9iamVjdFN0b3JlLl9yZXNvbHZlS2V5UGF0aChvYmplY3QpKTsKKyAgICB9
KTsKKworICAgIEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUud3JhcFRlc3QoIldJLk9iamVjdFN0
b3JlLnByb3RvdHlwZS5fcmVzb2x2ZUtleVBhdGguTWlzc2luZ1dob2xlIiwgYXN5bmMgZnVuY3Rp
b24oKSB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBrZXlQYXRoOiAi
c3ViLmEiLAorICAgICAgICB9OworICAgICAgICBsZXQgb2JqZWN0U3RvcmUgPSBJbnNwZWN0b3JU
ZXN0Lk9iamVjdFN0b3JlLmNyZWF0ZU9iamVjdFN0b3JlKG9wdGlvbnMpOworCisgICAgICAgIGNv
bnN0IG9iamVjdCA9IHthOiAxLCBiOiAyfTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2cob2Jq
ZWN0U3RvcmUuX3Jlc29sdmVLZXlQYXRoKG9iamVjdCkpOworICAgIH0pOworCisgICAgc3VpdGUu
cnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KKyAgICA8cD5UZXN0cyBiYXNpYyBmdW5jdGlvbmFsaXR5IG9mIFdJ
Lk9iamVjdFN0b3JlLjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2luc3BlY3Rvci91bml0LXRlc3RzL29iamVjdFN0b3JlL2RlbGV0ZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9vYmplY3RTdG9yZS9kZWxldGUtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0ODNlNWNlNTYwNmEzMjg0ZjYyNjkyYzdjMmJiNzg2OTYz
YjE2OTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0
cy9vYmplY3RTdG9yZS9kZWxldGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTA4IEBACitUZXN0
cyBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlLgorCisKKz09IFJ1bm5pbmcgdGVzdCBz
dWl0ZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZQorLS0gUnVubmluZyB0ZXN0IGNh
c2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGUuTm9QYXJhbWV0ZXJzCithZGQ6IFt7
ImIiOjJ9XQorUEFTUzogU2hvdWxkIHByb2R1Y2UgYW4gZXhjZXB0aW9uLgorVHlwZUVycm9yOiBO
b3QgZW5vdWdoIGFyZ3VtZW50cworW3siYiI6Mn1dCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBX
SS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlLk1pc3NpbmdPYmplY3QKK2FkZDogW3siYiI6
Mn1dCitQQVNTOiBTaG91bGQgcHJvZHVjZSBhbiBleGNlcHRpb24uCitEYXRhRXJyb3I6IEZhaWxl
ZCB0byBleGVjdXRlICdkZWxldGUnIG9uICdJREJPYmplY3RTdG9yZSc6IFRoZSBwYXJhbWV0ZXIg
aXMgbm90IGEgdmFsaWQga2V5LgorW3siYiI6Mn1dCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBX
SS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlLkJvb2xlYW4KK2FkZDogW2ZhbHNlXQorYWRk
OiBbZmFsc2UsdHJ1ZV0KK2RlbGV0ZTogW3RydWVdCitkZWxldGU6IFtdCitbXQorCistLSBSdW5u
aW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZS5OdW1iZXIKK2Fk
ZDogWzExXQorYWRkOiBbMTEsMjJdCitkZWxldGU6IFsyMl0KK2RlbGV0ZTogW10KK1tdCisKKy0t
IFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlLlN0cmlu
ZworYWRkOiBbImZvbyJdCithZGQ6IFsiZm9vIiwiYmFyIl0KK2RlbGV0ZTogWyJiYXIiXQorZGVs
ZXRlOiBbXQorW10KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3Rv
dHlwZS5kZWxldGUuQXJyYXkKK2FkZDogW1sxMV1dCithZGQ6IFtbMTFdLFsyMl1dCitkZWxldGU6
IFtbMjJdXQorZGVsZXRlOiBbXQorW10KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVj
dFN0b3JlLnByb3RvdHlwZS5kZWxldGUuTnVsbAorYWRkOiBbbnVsbF0KK2RlbGV0ZTogW10KK1td
CisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRl
Lk9iamVjdC5XaXRob3V0S2V5UGF0aE9yQXV0b0luY3JlbWVudAorUEFTUzogU2hvdWxkIHByb2R1
Y2UgYW4gZXhjZXB0aW9uLgorRGF0YUVycm9yOiBGYWlsZWQgdG8gc3RvcmUgcmVjb3JkIGluIGFu
IElEQk9iamVjdFN0b3JlOiBUaGUgb2JqZWN0IHN0b3JlIHVzZXMgb3V0LW9mLWxpbmUga2V5cyBh
bmQgaGFzIG5vIGtleSBnZW5lcmF0b3IgYW5kIHRoZSBrZXkgcGFyYW1ldGVyIHdhcyBub3QgcHJv
dmlkZWQuCitbXQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90
eXBlLmRlbGV0ZS5PYmplY3QuS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVt
ZW50CitQQVNTOiBTaG91bGQgcHJvZHVjZSBhbiBleGNlcHRpb24uCitEYXRhRXJyb3I6IEZhaWxl
ZCB0byBzdG9yZSByZWNvcmQgaW4gYW4gSURCT2JqZWN0U3RvcmU6IEV2YWx1YXRpbmcgdGhlIG9i
amVjdCBzdG9yZSdzIGtleSBwYXRoIGRpZCBub3QgeWllbGQgYSB2YWx1ZS4KK1tdCisKKy0tIFJ1
bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlLk9iamVjdC5L
ZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudAorYWRkOiBbeyJLZXlQYXRoU2V0
T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCI6NDIsImEiOjF9XQorYWRkOiBbeyJLZXlQYXRo
U2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCI6NDIsImEiOjF9LHsiS2V5UGF0aFNldE9u
T2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiOjk5LCJiIjoyfV0KK2RlbGV0ZTogW3siS2V5UGF0
aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiOjk5LCJiIjoyfV0KK2RlbGV0ZTogW10K
K1tdCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVs
ZXRlLk9iamVjdC5LZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQKK2FkZDog
W3siYSI6MSwiS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50IjoxfV0KK2Fk
ZDogW3siYSI6MSwiS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50IjoxfSx7
ImIiOjIsIktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6Mn1dCitkZWxl
dGU6IFt7ImIiOjIsIktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6Mn1d
CitkZWxldGU6IFtdCitbXQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUu
cHJvdG90eXBlLmRlbGV0ZS5PYmplY3QuS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1l
bnQKK2FkZDogW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOjQyLCJhIjox
fV0KK2FkZDogW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOjQyLCJhIjox
fSx7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijo5OSwiYiI6Mn1dCitkZWxl
dGU6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijo5OSwiYiI6Mn1dCitk
ZWxldGU6IFtdCitbXQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJv
dG90eXBlLmRlbGV0ZS5PYmplY3QuQXV0b0luY3JlbWVudFdpdGhvdXRLZXlQYXRoCithZGQ6IFt7
ImEiOjF9XQorYWRkOiBbeyJhIjoxfSx7ImIiOjJ9XQorZGVsZXRlOiBbeyJiIjoyfV0KK2RlbGV0
ZTogW10KK1tdCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5
cGUuZGVsZXRlLk9iamVjdC5LZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudC5T
dWIKK2FkZDogW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiOnsiU3Vi
Ijo0Mn0sImEiOjF9XQorYWRkOiBbeyJLZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3Jl
bWVudCI6eyJTdWIiOjQyfSwiYSI6MX0seyJLZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0lu
Y3JlbWVudCI6eyJTdWIiOjk5fSwiYiI6Mn1dCitkZWxldGU6IFt7IktleVBhdGhTZXRPbk9iamVj
dFdpdGhvdXRBdXRvSW5jcmVtZW50Ijp7IlN1YiI6OTl9LCJiIjoyfV0KK2RlbGV0ZTogW10KK1td
CisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRl
Lk9iamVjdC5LZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQuU3ViCithZGQ6
IFt7ImEiOjEsIktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6eyJTdWIi
OjF9fV0KK2FkZDogW3siYSI6MSwiS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVt
ZW50Ijp7IlN1YiI6MX19LHsiYiI6MiwiS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5j
cmVtZW50Ijp7IlN1YiI6Mn19XQorZGVsZXRlOiBbeyJiIjoyLCJLZXlQYXRoTWlzc2luZ09uT2Jq
ZWN0V2l0aEF1dG9JbmNyZW1lbnQiOnsiU3ViIjoyfX1dCitkZWxldGU6IFtdCitbXQorCistLSBS
dW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZS5PYmplY3Qu
S2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQuU3ViCithZGQ6IFt7IktleVBhdGhT
ZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijp7IlN1YiI6NDJ9LCJhIjoxfV0KK2FkZDogW3si
S2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOnsiU3ViIjo0Mn0sImEiOjF9LHsi
S2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOnsiU3ViIjo5OX0sImIiOjJ9XQor
ZGVsZXRlOiBbeyJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6eyJTdWIiOjk5
fSwiYiI6Mn1dCitkZWxldGU6IFtdCitbXQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvdW5pdC10ZXN0cy9vYmplY3RTdG9yZS9kZWxldGUuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci91bml0LXRlc3RzL29iamVjdFN0b3JlL2RlbGV0ZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE4
NTExOWVhYWIwZDFlNjVhNDAwMWViZjNhOTU2YmUyYTFiYzhkYzIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9vYmplY3RTdG9yZS9kZWxldGUuaHRt
bApAQCAtMCwwICsxLDE3NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0
b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL29iamVjdFN0b3Jl
LXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7Cisg
ICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5jcmVhdGVTdWl0ZSgiV0ku
T2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZSIpOworCisgICAgZnVuY3Rpb24gdGVzdERlbGV0
ZShuYW1lLCB7b3B0aW9ucywgdGVzdHN9KSB7CisgICAgICAgIEluc3BlY3RvclRlc3QuT2JqZWN0
U3RvcmUud3JhcFRlc3QobmFtZSwgYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmNyZWF0ZU9iamVjdFN0b3JlKG9wdGlvbnMpOworCisgICAg
ICAgICAgICBsZXQga2V5cyA9IFtdOworICAgICAgICAgICAgZm9yIChsZXQge3ZhbHVlLCBleHBl
Y3RlZH0gb2YgdGVzdHMpCisgICAgICAgICAgICAgICAga2V5cy5wdXNoKGF3YWl0IEluc3BlY3Rv
clRlc3QuT2JqZWN0U3RvcmUuYWRkKHZhbHVlLCBleHBlY3RlZCkpOworCisgICAgICAgICAgICBm
b3IgKGxldCBrZXkgb2Yga2V5cykKKyAgICAgICAgICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0
Lk9iamVjdFN0b3JlLmRlbGV0ZShrZXkpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBJbnNw
ZWN0b3JUZXN0Lk9iamVjdFN0b3JlLndyYXBUZXN0KCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUu
ZGVsZXRlLk5vUGFyYW1ldGVycyIsIGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICBjb25zdCBv
cHRpb25zID0geworICAgICAgICAgICAgYXV0b0luY3JlbWVudDogdHJ1ZSwKKyAgICAgICAgfTsK
KyAgICAgICAgbGV0IG9iamVjdFN0b3JlID0gSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5jcmVh
dGVPYmplY3RTdG9yZShvcHRpb25zKTsKKworICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0Lk9i
amVjdFN0b3JlLmFkZChJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MiwgMSk7
CisKKyAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5leHBlY3RFeGNlcHRpb24oYXN5bmMgKCkg
PT4geworICAgICAgICAgICAgYXdhaXQgb2JqZWN0U3RvcmUuZGVsZXRlKCk7CisgICAgICAgICAg
ICBhd2FpdCBvYmplY3RTdG9yZS5kZWxldGUoSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNp
Y09iamVjdDIpOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIEluc3BlY3RvclRlc3QuT2Jq
ZWN0U3RvcmUud3JhcFRlc3QoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGUuTWlzc2lu
Z09iamVjdCIsIGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICBjb25zdCBvcHRpb25zID0gewor
ICAgICAgICAgICAgYXV0b0luY3JlbWVudDogdHJ1ZSwKKyAgICAgICAgfTsKKyAgICAgICAgbGV0
IG9iamVjdFN0b3JlID0gSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5jcmVhdGVPYmplY3RTdG9y
ZShvcHRpb25zKTsKKworICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmFk
ZChJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MiwgMSk7CisKKyAgICAgICAg
YXdhaXQgSW5zcGVjdG9yVGVzdC5leHBlY3RFeGNlcHRpb24oYXN5bmMgKCkgPT4geworICAgICAg
ICAgICAgYXdhaXQgb2JqZWN0U3RvcmUuZGVsZXRlKEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUu
YmFzaWNPYmplY3QxKTsKKyAgICAgICAgICAgIGF3YWl0IG9iamVjdFN0b3JlLmRlbGV0ZShJbnNw
ZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0Mik7CisgICAgICAgIH0pOworICAgIH0p
OworCisgICAgdGVzdERlbGV0ZSgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZS5Cb29s
ZWFuIiwgeworICAgICAgICBvcHRpb25zOiB7YXV0b0luY3JlbWVudDogdHJ1ZX0sCisgICAgICAg
IHRlc3RzOiBbCisgICAgICAgICAgICB7dmFsdWU6IGZhbHNlLCBleHBlY3RlZDogMX0sCisgICAg
ICAgICAgICB7dmFsdWU6IHRydWUsIGV4cGVjdGVkOiAyfSwKKyAgICAgICAgXSwKKyAgICB9KTsK
KworICAgIHRlc3REZWxldGUoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGUuTnVtYmVy
IiwgeworICAgICAgICBvcHRpb25zOiB7YXV0b0luY3JlbWVudDogdHJ1ZX0sCisgICAgICAgIHRl
c3RzOiBbCisgICAgICAgICAgICB7dmFsdWU6IDExLCBleHBlY3RlZDogMX0sCisgICAgICAgICAg
ICB7dmFsdWU6IDIyLCBleHBlY3RlZDogMn0sCisgICAgICAgIF0sCisgICAgfSk7CisKKyAgICB0
ZXN0RGVsZXRlKCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlLlN0cmluZyIsIHsKKyAg
ICAgICAgb3B0aW9uczoge2F1dG9JbmNyZW1lbnQ6IHRydWV9LAorICAgICAgICB0ZXN0czogWwor
ICAgICAgICAgICAge3ZhbHVlOiAiZm9vIiwgZXhwZWN0ZWQ6IDF9LAorICAgICAgICAgICAge3Zh
bHVlOiAiYmFyIiwgZXhwZWN0ZWQ6IDJ9LAorICAgICAgICBdLAorICAgIH0pOworCisgICAgdGVz
dERlbGV0ZSgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZS5BcnJheSIsIHsKKyAgICAg
ICAgb3B0aW9uczoge2F1dG9JbmNyZW1lbnQ6IHRydWV9LAorICAgICAgICB0ZXN0czogWworICAg
ICAgICAgICAge3ZhbHVlOiBbMTFdLCBleHBlY3RlZDogMX0sCisgICAgICAgICAgICB7dmFsdWU6
IFsyMl0sIGV4cGVjdGVkOiAyfSwKKyAgICAgICAgXSwKKyAgICB9KTsKKworICAgIHRlc3REZWxl
dGUoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGUuTnVsbCIsIHsKKyAgICAgICAgb3B0
aW9uczoge2F1dG9JbmNyZW1lbnQ6IHRydWV9LAorICAgICAgICB0ZXN0czogWworICAgICAgICAg
ICAge3ZhbHVlOiBudWxsLCBleHBlY3RlZDogMX0sCisgICAgICAgIF0sCisgICAgfSk7CisKKyAg
ICBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLndyYXBUZXN0KCJXSS5PYmplY3RTdG9yZS5wcm90
b3R5cGUuZGVsZXRlLk9iamVjdC5XaXRob3V0S2V5UGF0aE9yQXV0b0luY3JlbWVudCIsIGFzeW5j
IGZ1bmN0aW9uKCkgeworICAgICAgICBsZXQgb2JqZWN0U3RvcmUgPSBJbnNwZWN0b3JUZXN0Lk9i
amVjdFN0b3JlLmNyZWF0ZU9iamVjdFN0b3JlKCk7CisKKyAgICAgICAgYXdhaXQgSW5zcGVjdG9y
VGVzdC5leHBlY3RFeGNlcHRpb24oYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBhd2Fp
dCBvYmplY3RTdG9yZS5hZGQoSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDEp
OworICAgICAgICAgICAgYXdhaXQgb2JqZWN0U3RvcmUuYWRkKEluc3BlY3RvclRlc3QuT2JqZWN0
U3RvcmUuYmFzaWNPYmplY3QyKTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBJbnNwZWN0
b3JUZXN0Lk9iamVjdFN0b3JlLndyYXBUZXN0KCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVs
ZXRlLk9iamVjdC5LZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiLCBh
c3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAg
IGtleVBhdGg6ICJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiLAor
ICAgICAgICB9OworICAgICAgICBsZXQgb2JqZWN0U3RvcmUgPSBJbnNwZWN0b3JUZXN0Lk9iamVj
dFN0b3JlLmNyZWF0ZU9iamVjdFN0b3JlKG9wdGlvbnMpOworCisgICAgICAgIGF3YWl0IEluc3Bl
Y3RvclRlc3QuZXhwZWN0RXhjZXB0aW9uKGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
YXdhaXQgb2JqZWN0U3RvcmUuYWRkKEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmpl
Y3QxKTsKKyAgICAgICAgICAgIGF3YWl0IG9iamVjdFN0b3JlLmFkZChJbnNwZWN0b3JUZXN0Lk9i
amVjdFN0b3JlLmJhc2ljT2JqZWN0Mik7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgdGVz
dERlbGV0ZSgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZS5PYmplY3QuS2V5UGF0aFNl
dE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiLCB7CisgICAgICAgIG9wdGlvbnM6IHtrZXlQ
YXRoOiAiS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQifSwKKyAgICAgICAg
dGVzdHM6IFsKKyAgICAgICAgICAgIHt2YWx1ZToge0tleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRB
dXRvSW5jcmVtZW50OiA0MiwgLi4uSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVj
dDF9LCBleHBlY3RlZDogNDJ9LAorICAgICAgICAgICAge3ZhbHVlOiB7S2V5UGF0aFNldE9uT2Jq
ZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQ6IDk5LCAuLi5JbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3Jl
LmJhc2ljT2JqZWN0Mn0sIGV4cGVjdGVkOiA5OX0sCisgICAgICAgIF0sCisgICAgfSk7CisKKyAg
ICB0ZXN0RGVsZXRlKCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlLk9iamVjdC5LZXlQ
YXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiLCB7CisgICAgICAgIG9wdGlvbnM6
IHtrZXlQYXRoOiAiS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50IiwgYXV0
b0luY3JlbWVudDogdHJ1ZX0sCisgICAgICAgIHRlc3RzOiBbCisgICAgICAgICAgICB7dmFsdWU6
IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QxLCBleHBlY3RlZDogMX0sCisg
ICAgICAgICAgICB7dmFsdWU6IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3Qy
LCBleHBlY3RlZDogMn0sCisgICAgICAgIF0sCisgICAgfSk7CisKKyAgICB0ZXN0RGVsZXRlKCJX
SS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlLk9iamVjdC5LZXlQYXRoU2V0T25PYmplY3RX
aXRoQXV0b0luY3JlbWVudCIsIHsKKyAgICAgICAgb3B0aW9uczoge2tleVBhdGg6ICJLZXlQYXRo
U2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCIsIGF1dG9JbmNyZW1lbnQ6IHRydWV9LAorICAg
ICAgICB0ZXN0czogWworICAgICAgICAgICAge3ZhbHVlOiB7S2V5UGF0aFNldE9uT2JqZWN0V2l0
aEF1dG9JbmNyZW1lbnQ6IDQyLCAuLi5JbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2Jq
ZWN0MX0sIGV4cGVjdGVkOiA0Mn0sCisgICAgICAgICAgICB7dmFsdWU6IHtLZXlQYXRoU2V0T25P
YmplY3RXaXRoQXV0b0luY3JlbWVudDogOTksIC4uLkluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUu
YmFzaWNPYmplY3QyfSwgZXhwZWN0ZWQ6IDk5fSwKKyAgICAgICAgXSwKKyAgICB9KTsKKworICAg
IHRlc3REZWxldGUoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGUuT2JqZWN0LkF1dG9J
bmNyZW1lbnRXaXRob3V0S2V5UGF0aCIsIHsKKyAgICAgICAgb3B0aW9uczoge2F1dG9JbmNyZW1l
bnQ6IHRydWV9LAorICAgICAgICB0ZXN0czogWworICAgICAgICAgICAge3ZhbHVlOiBJbnNwZWN0
b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MSwgZXhwZWN0ZWQ6IDF9LAorICAgICAgICAg
ICAge3ZhbHVlOiBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MiwgZXhwZWN0
ZWQ6IDJ9LAorICAgICAgICBdLAorICAgIH0pOworCisgICAgdGVzdERlbGV0ZSgiV0kuT2JqZWN0
U3RvcmUucHJvdG90eXBlLmRlbGV0ZS5PYmplY3QuS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1
dG9JbmNyZW1lbnQuU3ViIiwgeworICAgICAgICBvcHRpb25zOiB7a2V5UGF0aDogIktleVBhdGhT
ZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50LlN1YiJ9LAorICAgICAgICB0ZXN0czogWwor
ICAgICAgICAgICAge3ZhbHVlOiB7S2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1l
bnQ6IHtTdWI6IDQyfSwgLi4uSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDF9
LCBleHBlY3RlZDogNDJ9LAorICAgICAgICAgICAge3ZhbHVlOiB7S2V5UGF0aFNldE9uT2JqZWN0
V2l0aG91dEF1dG9JbmNyZW1lbnQ6IHtTdWI6IDk5fSwgLi4uSW5zcGVjdG9yVGVzdC5PYmplY3RT
dG9yZS5iYXNpY09iamVjdDJ9LCBleHBlY3RlZDogOTl9LAorICAgICAgICBdLAorICAgIH0pOwor
CisgICAgdGVzdERlbGV0ZSgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZS5PYmplY3Qu
S2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50LlN1YiIsIHsKKyAgICAgICAg
b3B0aW9uczoge2tleVBhdGg6ICJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1l
bnQuU3ViIiwgYXV0b0luY3JlbWVudDogdHJ1ZX0sCisgICAgICAgIHRlc3RzOiBbCisgICAgICAg
ICAgICB7dmFsdWU6IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QxLCBleHBl
Y3RlZDogMX0sCisgICAgICAgICAgICB7dmFsdWU6IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUu
YmFzaWNPYmplY3QyLCBleHBlY3RlZDogMn0sCisgICAgICAgIF0sCisgICAgfSk7CisKKyAgICB0
ZXN0RGVsZXRlKCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlLk9iamVjdC5LZXlQYXRo
U2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudC5TdWIiLCB7CisgICAgICAgIG9wdGlvbnM6IHtr
ZXlQYXRoOiAiS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQuU3ViIiwgYXV0b0lu
Y3JlbWVudDogdHJ1ZX0sCisgICAgICAgIHRlc3RzOiBbCisgICAgICAgICAgICB7dmFsdWU6IHtL
ZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudDoge1N1YjogNDJ9LCAuLi5JbnNwZWN0
b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MX0sIGV4cGVjdGVkOiA0Mn0sCisgICAgICAg
ICAgICB7dmFsdWU6IHtLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudDoge1N1Yjog
OTl9LCAuLi5JbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0Mn0sIGV4cGVjdGVk
OiA5OX0sCisgICAgICAgIF0sCisgICAgfSk7CisKKyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRG
aW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCki
PgorICAgIDxwPlRlc3RzIFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGUuPC9wPgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVz
dHMvb2JqZWN0U3RvcmUvZGVsZXRlT2JqZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci91bml0LXRlc3RzL29iamVjdFN0b3JlL2RlbGV0ZU9iamVjdC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDlkOWFkOTYyOWM3NmFkYTBmMDA2MGRmNzBlMjIzZTYyZjA2N2ExZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL29iamVjdFN0
b3JlL2RlbGV0ZU9iamVjdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4MCBAQAorVGVzdHMgV0ku
T2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZU9iamVjdC4KKworCis9PSBSdW5uaW5nIHRlc3Qg
c3VpdGU6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGVPYmplY3QKKy0tIFJ1bm5pbmcg
dGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlT2JqZWN0Lk5vUGFyYW1l
dGVycworYWRkOiBbeyJfb2JqZWN0Ijp7ImIiOjJ9fV0KK1BBU1M6IFNob3VsZCBwcm9kdWNlIGFu
IGV4Y2VwdGlvbi4KK1R5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1
YXRpbmcgJ29iamVjdFtrZXldJykKK1t7Il9vYmplY3QiOnsiYiI6Mn19XQorCistLSBSdW5uaW5n
IHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZU9iamVjdC5NaXNzaW5n
T2JqZWN0CithZGQ6IFt7Il9vYmplY3QiOnsiYiI6Mn19XQorUEFTUzogU2hvdWxkIHByb2R1Y2Ug
YW4gZXhjZXB0aW9uLgorRGF0YUVycm9yOiBGYWlsZWQgdG8gZXhlY3V0ZSAnZGVsZXRlJyBvbiAn
SURCT2JqZWN0U3RvcmUnOiBUaGUgcGFyYW1ldGVyIGlzIG5vdCBhIHZhbGlkIGtleSByYW5nZS4K
K1t7Il9vYmplY3QiOnsiYiI6Mn19XQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0
U3RvcmUucHJvdG90eXBlLmRlbGV0ZU9iamVjdC5LZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aG91
dEF1dG9JbmNyZW1lbnQKK1BBU1M6IFNob3VsZCBwcm9kdWNlIGFuIGV4Y2VwdGlvbi4KK0RhdGFF
cnJvcjogRmFpbGVkIHRvIGV4ZWN1dGUgJ2RlbGV0ZScgb24gJ0lEQk9iamVjdFN0b3JlJzogVGhl
IHBhcmFtZXRlciBpcyBub3QgYSB2YWxpZCBrZXkgcmFuZ2UuCitbXQorCistLSBSdW5uaW5nIHRl
c3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZU9iamVjdC5XaXRob3V0S2V5
UGF0aE9yQXV0b0luY3JlbWVudAorUEFTUzogU2hvdWxkIHByb2R1Y2UgYW4gZXhjZXB0aW9uLgor
RGF0YUVycm9yOiBGYWlsZWQgdG8gc3RvcmUgcmVjb3JkIGluIGFuIElEQk9iamVjdFN0b3JlOiBU
aGUgb2JqZWN0IHN0b3JlIHVzZXMgb3V0LW9mLWxpbmUga2V5cyBhbmQgaGFzIG5vIGtleSBnZW5l
cmF0b3IgYW5kIHRoZSBrZXkgcGFyYW1ldGVyIHdhcyBub3QgcHJvdmlkZWQuCitbXQorCistLSBS
dW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZU9iamVjdC5L
ZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQKK1BBU1M6IFNob3VsZCBw
cm9kdWNlIGFuIGV4Y2VwdGlvbi4KK0RhdGFFcnJvcjogRmFpbGVkIHRvIHN0b3JlIHJlY29yZCBp
biBhbiBJREJPYmplY3RTdG9yZTogRXZhbHVhdGluZyB0aGUgb2JqZWN0IHN0b3JlJ3Mga2V5IHBh
dGggZGlkIG5vdCB5aWVsZCBhIHZhbHVlLgorW10KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJ
Lk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGVPYmplY3QuS2V5UGF0aFNldE9uT2JqZWN0V2l0
aG91dEF1dG9JbmNyZW1lbnQKK2FkZE9iamVjdDogW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91
dEF1dG9JbmNyZW1lbnQiOjQyLCJhIjoxfV0KK2FkZE9iamVjdDogW3siS2V5UGF0aFNldE9uT2Jq
ZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiOjQyLCJhIjoxfSx7IktleVBhdGhTZXRPbk9iamVjdFdp
dGhvdXRBdXRvSW5jcmVtZW50Ijo5OSwiYiI6Mn1dCitkZWxldGVPYmplY3Q6IFt7IktleVBhdGhT
ZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Ijo5OSwiYiI6Mn1dCitkZWxldGVPYmplY3Q6
IFtdCitbXQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBl
LmRlbGV0ZU9iamVjdC5LZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQKK2Fk
ZE9iamVjdDogW3siYSI6MSwiS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50
IjoxfV0KK2FkZE9iamVjdDogW3siYSI6MSwiS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRv
SW5jcmVtZW50IjoxfSx7ImIiOjIsIktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3Jl
bWVudCI6Mn1dCitkZWxldGVPYmplY3Q6IFt7ImIiOjIsIktleVBhdGhNaXNzaW5nT25PYmplY3RX
aXRoQXV0b0luY3JlbWVudCI6Mn1dCitkZWxldGVPYmplY3Q6IFtdCitbXQorCistLSBSdW5uaW5n
IHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZU9iamVjdC5LZXlQYXRo
U2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudAorYWRkT2JqZWN0OiBbeyJLZXlQYXRoU2V0T25P
YmplY3RXaXRoQXV0b0luY3JlbWVudCI6NDIsImEiOjF9XQorYWRkT2JqZWN0OiBbeyJLZXlQYXRo
U2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6NDIsImEiOjF9LHsiS2V5UGF0aFNldE9uT2Jq
ZWN0V2l0aEF1dG9JbmNyZW1lbnQiOjk5LCJiIjoyfV0KK2RlbGV0ZU9iamVjdDogW3siS2V5UGF0
aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOjk5LCJiIjoyfV0KK2RlbGV0ZU9iamVjdDog
W10KK1tdCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUu
ZGVsZXRlT2JqZWN0LkF1dG9JbmNyZW1lbnRXaXRob3V0S2V5UGF0aAorYWRkT2JqZWN0OiBbeyJh
IjoxfV0KK2FkZE9iamVjdDogW3siYSI6MX0seyJiIjoyfV0KK2RlbGV0ZU9iamVjdDogW3siYiI6
Mn1dCitkZWxldGVPYmplY3Q6IFtdCitbXQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2Jq
ZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZU9iamVjdC5LZXlQYXRoU2V0T25PYmplY3RXaXRob3V0
QXV0b0luY3JlbWVudC5TdWIKK2FkZE9iamVjdDogW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91
dEF1dG9JbmNyZW1lbnQiOnsiU3ViIjo0Mn0sImEiOjF9XQorYWRkT2JqZWN0OiBbeyJLZXlQYXRo
U2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCI6eyJTdWIiOjQyfSwiYSI6MX0seyJLZXlQ
YXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCI6eyJTdWIiOjk5fSwiYiI6Mn1dCitk
ZWxldGVPYmplY3Q6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Ijp7
IlN1YiI6OTl9LCJiIjoyfV0KK2RlbGV0ZU9iamVjdDogW10KK1tdCisKKy0tIFJ1bm5pbmcgdGVz
dCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlT2JqZWN0LktleVBhdGhNaXNz
aW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudC5TdWIKK2FkZE9iamVjdDogW3siYSI6MSwiS2V5
UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijp7IlN1YiI6MX19XQorYWRkT2Jq
ZWN0OiBbeyJhIjoxLCJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOnsi
U3ViIjoxfX0seyJiIjoyLCJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQi
OnsiU3ViIjoyfX1dCitkZWxldGVPYmplY3Q6IFt7ImIiOjIsIktleVBhdGhNaXNzaW5nT25PYmpl
Y3RXaXRoQXV0b0luY3JlbWVudCI6eyJTdWIiOjJ9fV0KK2RlbGV0ZU9iamVjdDogW10KK1tdCisK
Ky0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlT2Jq
ZWN0LktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50LlN1YgorYWRkT2JqZWN0OiBb
eyJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6eyJTdWIiOjQyfSwiYSI6MX1d
CithZGRPYmplY3Q6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijp7IlN1
YiI6NDJ9LCJhIjoxfSx7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijp7IlN1
YiI6OTl9LCJiIjoyfV0KK2RlbGV0ZU9iamVjdDogW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1
dG9JbmNyZW1lbnQiOnsiU3ViIjo5OX0sImIiOjJ9XQorZGVsZXRlT2JqZWN0OiBbXQorW10KKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvb2JqZWN0U3RvcmUv
ZGVsZXRlT2JqZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9vYmpl
Y3RTdG9yZS9kZWxldGVPYmplY3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MjIxYmJiNjdhNjViYzQwNjVj
YmM5NGNkOTM1MmU2MTY0ZDI3NmZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3VuaXQtdGVzdHMvb2JqZWN0U3RvcmUvZGVsZXRlT2JqZWN0Lmh0bWwKQEAgLTAsMCAr
MSwxNTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9yZXNvdXJjZXMvaW5zcGVjdG9yLXRlc3QuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9vYmplY3RTdG9yZS11dGlsaXRpZXMu
anMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGxldCBzdWl0
ZSA9IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuY3JlYXRlU3VpdGUoIldJLk9iamVjdFN0b3Jl
LnByb3RvdHlwZS5kZWxldGVPYmplY3QiKTsKKworICAgIGZ1bmN0aW9uIHRlc3REZWxldGVPYmpl
Y3QobmFtZSwge29wdGlvbnMsIHRlc3RzfSkgeworICAgICAgICBJbnNwZWN0b3JUZXN0Lk9iamVj
dFN0b3JlLndyYXBUZXN0KG5hbWUsIGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5PYmplY3RTdG9yZS5jcmVhdGVPYmplY3RTdG9yZShvcHRpb25zKTsKKworICAg
ICAgICAgICAgbGV0IG9iamVjdHMgPSBbXQorICAgICAgICAgICAgZm9yIChsZXQge3ZhbHVlLCBl
eHBlY3RlZH0gb2YgdGVzdHMpIHsKKyAgICAgICAgICAgICAgICBsZXQgb2JqZWN0ID0gbmV3IElu
c3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuVGVzdE9iamVjdCh2YWx1ZSk7CisgICAgICAgICAgICAg
ICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5hZGRPYmplY3Qob2JqZWN0LCBleHBl
Y3RlZCk7CisgICAgICAgICAgICAgICAgb2JqZWN0cy5wdXNoKG9iamVjdCk7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGZvciAobGV0IG9iamVjdCBvZiBvYmplY3RzKQorICAgICAgICAg
ICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuZGVsZXRlT2JqZWN0KG9iamVj
dCk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUu
d3JhcFRlc3QoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGVPYmplY3QuTm9QYXJhbWV0
ZXJzIiwgYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAg
ICAgICAgICBhdXRvSW5jcmVtZW50OiB0cnVlLAorICAgICAgICB9OworICAgICAgICBsZXQgb2Jq
ZWN0U3RvcmUgPSBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmNyZWF0ZU9iamVjdFN0b3JlKG9w
dGlvbnMpOworCisgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYWRkKG5l
dyBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLlRlc3RPYmplY3QoSW5zcGVjdG9yVGVzdC5PYmpl
Y3RTdG9yZS5iYXNpY09iamVjdDIpLCAxKTsKKworICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0
LmV4cGVjdEV4Y2VwdGlvbihhc3luYyAoKSA9PiB7CisgICAgICAgICAgICBhd2FpdCBvYmplY3RT
dG9yZS5kZWxldGVPYmplY3QoKTsKKyAgICAgICAgICAgIGF3YWl0IG9iamVjdFN0b3JlLmRlbGV0
ZU9iamVjdChuZXcgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5UZXN0T2JqZWN0KEluc3BlY3Rv
clRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyKSk7CisgICAgICAgIH0pOworICAgIH0pOwor
CisgICAgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS53cmFwVGVzdCgiV0kuT2JqZWN0U3RvcmUu
cHJvdG90eXBlLmRlbGV0ZU9iamVjdC5NaXNzaW5nT2JqZWN0IiwgYXN5bmMgZnVuY3Rpb24oKSB7
CisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBhdXRvSW5jcmVtZW50OiB0
cnVlLAorICAgICAgICB9OworICAgICAgICBsZXQgb2JqZWN0U3RvcmUgPSBJbnNwZWN0b3JUZXN0
Lk9iamVjdFN0b3JlLmNyZWF0ZU9iamVjdFN0b3JlKG9wdGlvbnMpOworCisgICAgICAgIGF3YWl0
IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYWRkKG5ldyBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0
b3JlLlRlc3RPYmplY3QoSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDIpLCAx
KTsKKworICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LmV4cGVjdEV4Y2VwdGlvbihhc3luYyAo
KSA9PiB7CisgICAgICAgICAgICBhd2FpdCBvYmplY3RTdG9yZS5kZWxldGVPYmplY3QobmV3IElu
c3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuVGVzdE9iamVjdChJbnNwZWN0b3JUZXN0Lk9iamVjdFN0
b3JlLmJhc2ljT2JqZWN0MSkpOworICAgICAgICAgICAgYXdhaXQgb2JqZWN0U3RvcmUuZGVsZXRl
T2JqZWN0KG5ldyBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLlRlc3RPYmplY3QoSW5zcGVjdG9y
VGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDIpKTsKKyAgICAgICAgfSk7CisgICAgfSk7CisK
KyAgICBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLndyYXBUZXN0KCJXSS5PYmplY3RTdG9yZS5w
cm90b3R5cGUuZGVsZXRlT2JqZWN0LktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRob3V0QXV0b0lu
Y3JlbWVudCIsIGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICBjb25zdCBvcHRpb25zID0gewor
ICAgICAgICAgICAga2V5UGF0aDogIktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRob3V0QXV0b0lu
Y3JlbWVudCIsCisgICAgICAgIH07CisgICAgICAgIGxldCBvYmplY3RTdG9yZSA9IEluc3BlY3Rv
clRlc3QuT2JqZWN0U3RvcmUuY3JlYXRlT2JqZWN0U3RvcmUob3B0aW9ucyk7CisKKyAgICAgICAg
YXdhaXQgSW5zcGVjdG9yVGVzdC5leHBlY3RFeGNlcHRpb24oYXN5bmMgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICBhd2FpdCBvYmplY3RTdG9yZS5kZWxldGVPYmplY3QobmV3IEluc3BlY3RvclRl
c3QuT2JqZWN0U3RvcmUuVGVzdE9iamVjdChJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2lj
T2JqZWN0MSkpOworICAgICAgICAgICAgYXdhaXQgb2JqZWN0U3RvcmUuZGVsZXRlT2JqZWN0KG5l
dyBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLlRlc3RPYmplY3QoSW5zcGVjdG9yVGVzdC5PYmpl
Y3RTdG9yZS5iYXNpY09iamVjdDIpKTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBJbnNw
ZWN0b3JUZXN0Lk9iamVjdFN0b3JlLndyYXBUZXN0KCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUu
ZGVsZXRlT2JqZWN0LldpdGhvdXRLZXlQYXRoT3JBdXRvSW5jcmVtZW50IiwgYXN5bmMgZnVuY3Rp
b24oKSB7CisgICAgICAgIGxldCBvYmplY3RTdG9yZSA9IEluc3BlY3RvclRlc3QuT2JqZWN0U3Rv
cmUuY3JlYXRlT2JqZWN0U3RvcmUoKTsKKworICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LmV4
cGVjdEV4Y2VwdGlvbihhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGF3YWl0IG9iamVj
dFN0b3JlLmFkZChJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MSk7CisgICAg
ICAgICAgICBhd2FpdCBvYmplY3RTdG9yZS5hZGQoSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5i
YXNpY09iamVjdDIpOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIEluc3BlY3RvclRlc3Qu
T2JqZWN0U3RvcmUud3JhcFRlc3QoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGVPYmpl
Y3QuS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50IiwgYXN5bmMgZnVu
Y3Rpb24oKSB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBrZXlQYXRo
OiAiS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50IiwKKyAgICAgICAg
fTsKKyAgICAgICAgbGV0IG9iamVjdFN0b3JlID0gSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5j
cmVhdGVPYmplY3RTdG9yZShvcHRpb25zKTsKKworICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0
LmV4cGVjdEV4Y2VwdGlvbihhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGF3YWl0IG9i
amVjdFN0b3JlLmFkZChJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MSk7Cisg
ICAgICAgICAgICBhd2FpdCBvYmplY3RTdG9yZS5hZGQoSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9y
ZS5iYXNpY09iamVjdDIpOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIHRlc3REZWxldGVP
YmplY3QoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGVPYmplY3QuS2V5UGF0aFNldE9u
T2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiLCB7CisgICAgICAgIG9wdGlvbnM6IHtrZXlQYXRo
OiAiS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQifSwKKyAgICAgICAgdGVz
dHM6IFsKKyAgICAgICAgICAgIHt2YWx1ZToge0tleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRv
SW5jcmVtZW50OiA0MiwgLi4uSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDF9
LCBleHBlY3RlZDogNDJ9LAorICAgICAgICAgICAge3ZhbHVlOiB7S2V5UGF0aFNldE9uT2JqZWN0
V2l0aG91dEF1dG9JbmNyZW1lbnQ6IDk5LCAuLi5JbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJh
c2ljT2JqZWN0Mn0sIGV4cGVjdGVkOiA5OX0sCisgICAgICAgIF0sCisgICAgfSk7CisKKyAgICB0
ZXN0RGVsZXRlT2JqZWN0KCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlT2JqZWN0Lktl
eVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCIsIHsKKyAgICAgICAgb3B0aW9u
czoge2tleVBhdGg6ICJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiLCBh
dXRvSW5jcmVtZW50OiB0cnVlfSwKKyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAgIHt2YWx1
ZTogSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDEsIGV4cGVjdGVkOiAxfSwK
KyAgICAgICAgICAgIHt2YWx1ZTogSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVj
dDIsIGV4cGVjdGVkOiAyfSwKKyAgICAgICAgXSwKKyAgICB9KTsKKworICAgIHRlc3REZWxldGVP
YmplY3QoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGVPYmplY3QuS2V5UGF0aFNldE9u
T2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiLCB7CisgICAgICAgIG9wdGlvbnM6IHtrZXlQYXRoOiAi
S2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiLCBhdXRvSW5jcmVtZW50OiB0cnVl
fSwKKyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAgIHt2YWx1ZToge0tleVBhdGhTZXRPbk9i
amVjdFdpdGhBdXRvSW5jcmVtZW50OiA0MiwgLi4uSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5i
YXNpY09iamVjdDF9LCBleHBlY3RlZDogNDJ9LAorICAgICAgICAgICAge3ZhbHVlOiB7S2V5UGF0
aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQ6IDk5LCAuLi5JbnNwZWN0b3JUZXN0Lk9iamVj
dFN0b3JlLmJhc2ljT2JqZWN0Mn0sIGV4cGVjdGVkOiA5OX0sCisgICAgICAgIF0sCisgICAgfSk7
CisKKyAgICB0ZXN0RGVsZXRlT2JqZWN0KCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRl
T2JqZWN0LkF1dG9JbmNyZW1lbnRXaXRob3V0S2V5UGF0aCIsIHsKKyAgICAgICAgb3B0aW9uczog
e2F1dG9JbmNyZW1lbnQ6IHRydWV9LAorICAgICAgICB0ZXN0czogWworICAgICAgICAgICAge3Zh
bHVlOiBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MSwgZXhwZWN0ZWQ6IDF9
LAorICAgICAgICAgICAge3ZhbHVlOiBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2Jq
ZWN0MiwgZXhwZWN0ZWQ6IDJ9LAorICAgICAgICBdLAorICAgIH0pOworCisgICAgdGVzdERlbGV0
ZU9iamVjdCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZU9iamVjdC5LZXlQYXRoU2V0
T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudC5TdWIiLCB7CisgICAgICAgIG9wdGlvbnM6IHtr
ZXlQYXRoOiAiS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQuU3ViIn0sCisg
ICAgICAgIHRlc3RzOiBbCisgICAgICAgICAgICB7dmFsdWU6IHtLZXlQYXRoU2V0T25PYmplY3RX
aXRob3V0QXV0b0luY3JlbWVudDoge1N1YjogNDJ9LCAuLi5JbnNwZWN0b3JUZXN0Lk9iamVjdFN0
b3JlLmJhc2ljT2JqZWN0MX0sIGV4cGVjdGVkOiA0Mn0sCisgICAgICAgICAgICB7dmFsdWU6IHtL
ZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudDoge1N1YjogOTl9LCAuLi5JbnNw
ZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0Mn0sIGV4cGVjdGVkOiA5OX0sCisgICAg
ICAgIF0sCisgICAgfSk7CisKKyAgICB0ZXN0RGVsZXRlT2JqZWN0KCJXSS5PYmplY3RTdG9yZS5w
cm90b3R5cGUuZGVsZXRlT2JqZWN0LktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3Jl
bWVudC5TdWIiLCB7CisgICAgICAgIG9wdGlvbnM6IHtrZXlQYXRoOiAiS2V5UGF0aE1pc3NpbmdP
bk9iamVjdFdpdGhBdXRvSW5jcmVtZW50LlN1YiIsIGF1dG9JbmNyZW1lbnQ6IHRydWV9LAorICAg
ICAgICB0ZXN0czogWworICAgICAgICAgICAge3ZhbHVlOiBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0
b3JlLmJhc2ljT2JqZWN0MSwgZXhwZWN0ZWQ6IDF9LAorICAgICAgICAgICAge3ZhbHVlOiBJbnNw
ZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MiwgZXhwZWN0ZWQ6IDJ9LAorICAgICAg
ICBdLAorICAgIH0pOworCisgICAgdGVzdERlbGV0ZU9iamVjdCgiV0kuT2JqZWN0U3RvcmUucHJv
dG90eXBlLmRlbGV0ZU9iamVjdC5LZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudC5T
dWIiLCB7CisgICAgICAgIG9wdGlvbnM6IHtrZXlQYXRoOiAiS2V5UGF0aFNldE9uT2JqZWN0V2l0
aEF1dG9JbmNyZW1lbnQuU3ViIiwgYXV0b0luY3JlbWVudDogdHJ1ZX0sCisgICAgICAgIHRlc3Rz
OiBbCisgICAgICAgICAgICB7dmFsdWU6IHtLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3Jl
bWVudDoge1N1YjogNDJ9LCAuLi5JbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0
MX0sIGV4cGVjdGVkOiA0Mn0sCisgICAgICAgICAgICB7dmFsdWU6IHtLZXlQYXRoU2V0T25PYmpl
Y3RXaXRoQXV0b0luY3JlbWVudDoge1N1YjogOTl9LCAuLi5JbnNwZWN0b3JUZXN0Lk9iamVjdFN0
b3JlLmJhc2ljT2JqZWN0Mn0sIGV4cGVjdGVkOiA5OX0sCisgICAgICAgIF0sCisgICAgfSk7CisK
KyAgICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxwPlRlc3RzIFdJLk9iamVjdFN0b3Jl
LnByb3RvdHlwZS5kZWxldGVPYmplY3QuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvb2JqZWN0U3RvcmUvcmVzb3VyY2Vz
L29iamVjdFN0b3JlLXV0aWxpdGllcy5qcyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRl
c3RzL29iamVjdFN0b3JlL3Jlc291cmNlcy9vYmplY3RTdG9yZS11dGlsaXRpZXMuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTk0NzgwMGQ4MjhiNzVmYTQ1ODExNDI2YmIxNzQzNTgyYjJiZDQ5NQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL29iamVjdFN0b3JlL3Jl
c291cmNlcy9vYmplY3RTdG9yZS11dGlsaXRpZXMuanMKQEAgLTAsMCArMSw5MyBAQAorVGVzdFBh
Z2UucmVnaXN0ZXJJbml0aWFsaXplcigoKSA9PiB7CisgICAgbGV0IHN1aXRlID0gbnVsbDsKKwor
ICAgIEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUgPSB7fTsKKworICAgIEluc3BlY3RvclRlc3Qu
T2JqZWN0U3RvcmUuVGVzdE9iamVjdCA9IGNsYXNzIFRlc3RPYmplY3QgeworICAgICAgICBjb25z
dHJ1Y3RvcihvYmplY3QpIHsKKyAgICAgICAgICAgIHRoaXMuX29iamVjdCA9IG9iamVjdDsKKyAg
ICAgICAgfQorICAgICAgICB0b0pTT04oKSB7CisgICAgICAgICAgICByZXR1cm4gdGhpcy5fb2Jq
ZWN0OworICAgICAgICB9CisgICAgfTsKKworICAgIEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUu
YmFzaWNPYmplY3QxID0ge2E6IDF9OworICAgIEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFz
aWNPYmplY3QyID0ge2I6IDJ9OworCisgICAgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5jcmVh
dGVTdWl0ZSA9IGZ1bmN0aW9uKG5hbWUpIHsKKyAgICAgICAgc3VpdGUgPSBJbnNwZWN0b3JUZXN0
LmNyZWF0ZUFzeW5jU3VpdGUobmFtZSk7CisgICAgICAgIHJldHVybiBzdWl0ZTsKKyAgICB9Owor
CisgICAgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5jcmVhdGVPYmplY3RTdG9yZSA9IGZ1bmN0
aW9uKG9wdGlvbnMgPSB7fSkgeworICAgICAgICBXSS5PYmplY3RTdG9yZS5fX3Rlc3RPYmplY3RT
dG9yZSA9IG5ldyBXSS5PYmplY3RTdG9yZSgiX190ZXN0aW5nIiwgb3B0aW9ucyk7CisgICAgICAg
IHJldHVybiBXSS5PYmplY3RTdG9yZS5fX3Rlc3RPYmplY3RTdG9yZTsKKyAgICB9OworCisgICAg
SW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5hZGQgPSBhc3luYyBmdW5jdGlvbih2YWx1ZSwgZXhw
ZWN0ZWQpIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IFdJLk9iamVjdFN0b3JlLl9fdGVz
dE9iamVjdFN0b3JlLmFkZCh2YWx1ZSk7CisgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KHJl
c3VsdCA9PT0gZXhwZWN0ZWQsIGB0aGUga2V5IG9mIHRoZSBhZGRlZCBpdGVtIHNob3VsZCBiZSAk
e2V4cGVjdGVkfSwgYnV0IGlzIGFjdHVhbGx5ICR7cmVzdWx0fWApOworCisgICAgICAgIGF3YWl0
IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUubG9nVmFsdWVzKCJhZGQ6ICIpOworICAgICAgICBy
ZXR1cm4gcmVzdWx0OworICAgIH07CisKKyAgICBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmFk
ZE9iamVjdCA9IGFzeW5jIGZ1bmN0aW9uKG9iamVjdCwgZXhwZWN0ZWQpIHsKKyAgICAgICAgbGV0
IHJlc3VsdCA9IGF3YWl0IFdJLk9iamVjdFN0b3JlLl9fdGVzdE9iamVjdFN0b3JlLmFkZE9iamVj
dChvYmplY3QpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChyZXN1bHQgPT09IGV4cGVj
dGVkLCBgdGhlIGtleSBvZiB0aGUgYWRkZWQgaXRlbSBzaG91bGQgYmUgJHtleHBlY3RlZH0sIGJ1
dCBpcyBhY3R1YWxseSAke3Jlc3VsdH1gKTsKKworICAgICAgICBsZXQgcmVzb2x2ZWQgPSBXSS5P
YmplY3RTdG9yZS5fX3Rlc3RPYmplY3RTdG9yZS5fcmVzb2x2ZUtleVBhdGgob2JqZWN0KTsKKyAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQocmVzb2x2ZWQudmFsdWUgPT09IGV4cGVjdGVkLCBg
dGhlIHJlc29sdmVkIGtleVBhdGggb24gdGhlIG9iamVjdCBzaG91bGQgZXF1YWwgJHtleHBlY3Rl
ZH0sIGJ1dCBpcyBhY3R1YWxseSAke3Jlc29sdmVkLnZhbHVlfWApOworCisgICAgICAgIGF3YWl0
IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUubG9nVmFsdWVzKCJhZGRPYmplY3Q6ICIpOworICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgIH07CisKKyAgICBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0
b3JlLmRlbGV0ZSA9IGFzeW5jIGZ1bmN0aW9uKHZhbHVlKSB7CisgICAgICAgIGxldCByZXN1bHQg
PSBhd2FpdCBXSS5PYmplY3RTdG9yZS5fX3Rlc3RPYmplY3RTdG9yZS5kZWxldGUodmFsdWUpOwor
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChyZXN1bHQgPT09IHVuZGVmaW5lZCwgYGRlbGV0
ZSBzaG91bGRuJ3QgcmV0dXJuIGFueXRoaW5nYCk7CisKKyAgICAgICAgYXdhaXQgSW5zcGVjdG9y
VGVzdC5PYmplY3RTdG9yZS5sb2dWYWx1ZXMoImRlbGV0ZTogIik7CisgICAgfTsKKworICAgIElu
c3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuZGVsZXRlT2JqZWN0ID0gYXN5bmMgZnVuY3Rpb24ob2Jq
ZWN0KSB7CisgICAgICAgIGxldCByZXNvbHZlZCA9IFdJLk9iamVjdFN0b3JlLl9fdGVzdE9iamVj
dFN0b3JlLl9yZXNvbHZlS2V5UGF0aChvYmplY3QpOworICAgICAgICBJbnNwZWN0b3JUZXN0LmFz
c2VydChyZXNvbHZlZC5rZXkgaW4gcmVzb2x2ZWQub2JqZWN0LCBgdGhlIHJlc29sdmVkIGtleVBh
dGggb24gdGhlIG9iamVjdCBzaG91bGQgZXhpc3RgKTsKKworICAgICAgICBsZXQgcmVzdWx0ID0g
YXdhaXQgV0kuT2JqZWN0U3RvcmUuX190ZXN0T2JqZWN0U3RvcmUuZGVsZXRlT2JqZWN0KG9iamVj
dCk7CisgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KHJlc3VsdCA9PT0gdW5kZWZpbmVkLCBg
ZGVsZXRlT2JqZWN0IHNob3VsZG4ndCByZXR1cm4gYW55dGhpbmdgKTsKKworICAgICAgICBhd2Fp
dCBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmxvZ1ZhbHVlcygiZGVsZXRlT2JqZWN0OiAiKTsK
KyAgICB9OworCisgICAgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5sb2dWYWx1ZXMgPSBhc3lu
YyBmdW5jdGlvbihwcmVmaXgpIHsKKyAgICAgICAgaWYgKCFXSS5PYmplY3RTdG9yZS5fX3Rlc3RP
YmplY3RTdG9yZSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBwcmVmaXggPSBwcmVm
aXggfHwgIiI7CisgICAgICAgIGxldCByZXN1bHRzID0gYXdhaXQgV0kuT2JqZWN0U3RvcmUuX190
ZXN0T2JqZWN0U3RvcmUuZ2V0QWxsKCk7CisgICAgICAgIEluc3BlY3RvclRlc3QubG9nKHByZWZp
eCArIEpTT04uc3RyaW5naWZ5KHJlc3VsdHMpKTsKKyAgICB9OworCisgICAgSW5zcGVjdG9yVGVz
dC5PYmplY3RTdG9yZS53cmFwVGVzdCA9IGZ1bmN0aW9uKG5hbWUsIGZ1bmMpIHsKKyAgICAgICAg
c3VpdGUuYWRkVGVzdENhc2UoeworICAgICAgICAgICAgbmFtZSwKKyAgICAgICAgICAgIGFzeW5j
IHRlc3QoKSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQoIVdJLk9iamVj
dFN0b3JlLl9fdGVzdE9iamVjdFN0b3JlLCAiX190ZXN0T2JqZWN0U3RvcmUgc2hvdWxkIGJlIGRl
bGV0ZWQgYWZ0ZXIgZWFjaCB0ZXN0Iik7CisKKyAgICAgICAgICAgICAgICBhd2FpdCBmdW5jKCk7
CisgICAgICAgICAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5sb2dWYWx1
ZXMoKTsKKworICAgICAgICAgICAgICAgIGRlbGV0ZSBXSS5PYmplY3RTdG9yZS5fX3Rlc3RPYmpl
Y3RTdG9yZTsKKworICAgICAgICAgICAgICAgIGlmIChXSS5PYmplY3RTdG9yZS5fZGF0YWJhc2Up
IHsKKyAgICAgICAgICAgICAgICAgICAgV0kuT2JqZWN0U3RvcmUuX2RhdGFiYXNlLmNsb3NlKCk7
CisgICAgICAgICAgICAgICAgICAgIFdJLk9iamVjdFN0b3JlLl9kYXRhYmFzZSA9IG51bGw7Cisg
ICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgaW5kZXhlZERCLmRlbGV0ZURhdGFi
YXNlKFdJLk9iamVjdFN0b3JlLl9kYXRhYmFzZU5hbWUpOworICAgICAgICAgICAgfSwKKyAgICAg
ICAgfSk7CisgICAgfTsKK30pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353553</attachid>
            <date>2018-10-31 16:41:08 -0700</date>
            <delta_ts>2018-10-31 18:18:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190858-20181031164107.patch</filename>
            <type>text/plain</type>
            <size>70984</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGUzZGFkMzNkM2JiODhlMDRlNWI2YTlmODQ2MjU5
MDQxZDFlMzVlMzMuLmI4Yzg2OWQyYWZjZjM3MDM0OGQxNDc3MzFmMDYxYWUwMWEyMjk1OTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDE4LTEwLTMxICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBB
dWRpdDogc2F2ZSBpbXBvcnRlZCBhdWRpdHMgYWNyb3NzIFdlYkluc3BlY3RvciBzZXNzaW9ucwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkwODU4Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTUyNzYyNT4KKworICAgICAgICBSZXZpZXdlZCBieSBC
cmlhbiBCdXJnLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9CYXNlL09iamVjdFN0b3JlLmpz
OiBBZGRlZC4KKyAgICAgICAgKFdJLk9iamVjdFN0b3JlKToKKyAgICAgICAgKFdJLk9iamVjdFN0
b3JlLnN1cHBvcnRlZCk6CisgICAgICAgIChXSS5PYmplY3RTdG9yZS5fb3Blbik6CisgICAgICAg
IChXSS5PYmplY3RTdG9yZS5nZXQgX2RhdGFiYXNlTmFtZSk6CisgICAgICAgIChXSS5PYmplY3RT
dG9yZS5wcm90b3R5cGUuYXNzb2NpYXRlT2JqZWN0KToKKyAgICAgICAgKFdJLk9iamVjdFN0b3Jl
LnByb3RvdHlwZS5hc3luYyBnZXRBbGwpOgorICAgICAgICAoV0kuT2JqZWN0U3RvcmUucHJvdG90
eXBlLmFzeW5jIGFkZCk6CisgICAgICAgIChXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYXN5bmMg
YWRkT2JqZWN0KToKKyAgICAgICAgKFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hc3luYyBkZWxl
dGUpOgorICAgICAgICAoV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFzeW5jIGRlbGV0ZU9iamVj
dCk6CisgICAgICAgIChXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuX3Jlc29sdmVLZXlQYXRoKToK
KyAgICAgICAgKFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hc3luYyBfb3BlcmF0aW9uLmxpc3Rl
bmVyKToKKyAgICAgICAgKFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hc3luYyBfb3BlcmF0aW9u
KToKKyAgICAgICAgV3JhcHBlciBmb3IgYSBnbG9iYWwgYEluZGV4ZWREQmAgaW5zdGFuY2UgZm9y
IGFsbCBvZiBXZWJJbnNwZWN0b3IgKHBlciBsZXZlbCkuIEluc3RhbmNlcyBvZgorICAgICAgICBg
V0kuT2JqZWN0U3RvcmVgIGFyZSBhYmxlIHRvIGNvbnRyb2wgYSBnaXZlbiBgSURCT2JqZWN0U3Rv
cmVgIHVzaW5nIGEgcHJvbWlzZS1iYXNlZCBBUEkuCisKKyAgICAgICAgKk5PVEUqOiBkdWUgdG8g
dGhlIGNvbnN0cmFpbnQgdGhhdCBgSURCT2JqZWN0U3RvcmVgcyBhcmUgb25seSBhYmxlIHRvIGJl
IGNyZWF0ZWQgd2hlbiB0aGUKKyAgICAgICAgb3duZXIgYEluZGV4ZWREQmAgaXMgInVwZ3JhZGUi
ZCwgYWxsIGBXSS5PYmplY3RTdG9yZWAgbXVzdCBiZSBkZWNsYXJlZCBiZWZvcmUgdGhlIGRhdGFi
YXNlCisgICAgICAgIGlzIG9wZW5lZCBmb3IgdGhlIGZpcnN0IHRpbWUuIEFkZGl0aW9uYWxseSwg
YW55IHRpbWUgYSBuZXcgYFdJLk9iamVjdFN0b3JlYCBpcyBhZGRlZCwgdGhlCisgICAgICAgIGB2
ZXJzaW9uYCBuZWVkcyB0byBiZSBpbmNyZW1lbnRlZCB0byBlbnN1cmUgdGhhdCB0aGUgInVwZ3Jh
ZGUiIGV2ZW50IGZpcmVzLgorCisgICAgICAgIFRvIHVzZSBhbnkgb2YgdGhlIGAqT2JqZWN0YCBm
dW5jdGlvbnMsIG9uZSBtdXN0IGltcGxlbWVudCBhIGB0b0pTT05gIG9uIHRoZSBvYmplY3QgcHJv
dmlkZWQuCisgICAgICAgIFRoaXMgaXMgc28gdGhhdCBgV0kuT2JqZWN0U3RvcmVgIGlzIGFibGUg
dG8gYWRkIHRoZSByZXN1bHRpbmcgaWRlbnRpZmllciB2YWx1ZSB0byB0aGUgb3duZXIKKyAgICAg
ICAgb2JqZWN0IHdoaWxlIHN0b3JpbmcgaXRzIGB0b0pTT05gIHZhbHVlIGluIHRoZSBJbmRleGVk
REIgKGUuZy4gZm9yIG9iamVjdHMgdGhhdCBoYXZlIGN5Y2xlcykuCisKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL0NvbnRyb2xsZXJzL0F1ZGl0TWFuYWdlci5qczoKKyAgICAgICAgKFdJLkF1ZGl0
TWFuYWdlci5wcm90b3R5cGUuaW1wb3J0KToKKyAgICAgICAgKFdJLkF1ZGl0TWFuYWdlci5wcm90
b3R5cGUubG9hZFN0b3JlZFRlc3RzKTogQWRkZWQuCisgICAgICAgIChXSS5BdWRpdE1hbmFnZXIu
cHJvdG90eXBlLnJlbW92ZVRlc3QpOiBBZGRlZC4KKyAgICAgICAgKFdJLkF1ZGl0TWFuYWdlci5w
cm90b3R5cGUuX2FkZFRlc3QpOgorCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9BdWRp
dFRhYkNvbnRlbnRWaWV3LmpzOgorICAgICAgICAoV0kuQXVkaXRUYWJDb250ZW50Vmlldy5wcm90
b3R5cGUuaW5pdGlhbExheW91dCk6IEFkZGVkLgorICAgICAgICBBdHRlbXB0IHRvIGxvYWQgc3Rv
cmVkIGF1ZGl0cyB3aGVuIHRoZSBBdWRpdCB0YWIgaXMgZmlyc3Qgc2hvd24gKGxhenktbG9hZCku
CisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0F1ZGl0TmF2aWdhdGlvblNpZGViYXJQ
YW5lbC5qczoKKyAgICAgICAgKFdJLkF1ZGl0TmF2aWdhdGlvblNpZGViYXJQYW5lbC5wcm90b3R5
cGUuaW5pdGlhbExheW91dCk6CisgICAgICAgIChXSS5BdWRpdE5hdmlnYXRpb25TaWRlYmFyUGFu
ZWwucHJvdG90eXBlLl9oYW5kbGVBdWRpdFRlc3RSZW1vdmVkKTogQWRkZWQuCisKKyAgICAgICAg
KiBVc2VySW50ZXJmYWNlL1ZpZXdzL0F1ZGl0VHJlZUVsZW1lbnQuanM6CisgICAgICAgIChXSS5B
dWRpdFRyZWVFbGVtZW50LnByb3RvdHlwZS5vbmRlbGV0ZSk6CisgICAgICAgIE9ubHkgYWxsb3cg
dG9wLWxldmVsIGF1ZGl0cyB0byBiZSBkZWxldGVkLCBhcyB0aGF0IGlzIHdoYXQgbWF0Y2hlcyB0
aGUgYFdJLk9iamVjdFN0b3JlYC4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTWFpbi5odG1s
OgorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVGVzdC5odG1sOgorCiAyMDE4LTEwLTMxICBOaWtp
dGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFN0eWxlczogaW1wbGVtZW50IGNvcHlpbmcgYW5kIGRlbGV0aW9uIG9mIG11bHRpcGxlIHBy
b3BlcnRpZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0Jhc2UvT2JqZWN0U3RvcmUuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9CYXNlL09iamVjdFN0b3JlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI3YmY4OTMxYjY2MDhiMDFjNmNiY2Vi
YWE1NzZhZWJmMGY4MjliZjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9CYXNlL09iamVjdFN0b3JlLmpzCkBAIC0wLDAgKzEsMjEwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworV0kuT2JqZWN0U3RvcmUgPSBjbGFzcyBPYmplY3RTdG9yZQoreworICAgIGNv
bnN0cnVjdG9yKG5hbWUsIG9wdGlvbnMgPSB7fSkKKyAgICB7CisgICAgICAgIHRoaXMuX25hbWUg
PSBuYW1lOworICAgICAgICB0aGlzLl9vcHRpb25zID0gb3B0aW9uczsKKyAgICB9CisKKyAgICAv
LyBTdGF0aWMKKworICAgIHN0YXRpYyBzdXBwb3J0ZWQoKQorICAgIHsKKyAgICAgICAgcmV0dXJu
ICghd2luZG93Lkluc3BlY3RvclRlc3QgfHwgV0kuT2JqZWN0U3RvcmUuX190ZXN0T2JqZWN0U3Rv
cmUpICYmIHdpbmRvdy5pbmRleGVkREI7CisgICAgfQorCisgICAgc3RhdGljIGdldCBfZGF0YWJh
c2VOYW1lKCkKKyAgICB7CisgICAgICAgIGxldCBpbnNwZWN0aW9uTGV2ZWwgPSBJbnNwZWN0b3JG
cm9udGVuZEhvc3QgPyBJbnNwZWN0b3JGcm9udGVuZEhvc3QuaW5zcGVjdGlvbkxldmVsKCkgOiAx
OworICAgICAgICBsZXQgbGV2ZWxTdHJpbmcgPSAoaW5zcGVjdGlvbkxldmVsID4gMSkgPyAiLSIg
KyBpbnNwZWN0aW9uTGV2ZWwgOiAiIjsKKyAgICAgICAgcmV0dXJuICJjb20uYXBwbGUuV2ViSW5z
cGVjdG9yIiArIGxldmVsU3RyaW5nOworICAgIH0KKworICAgIHN0YXRpYyBfb3BlbihjYWxsYmFj
aykKKyAgICB7CisgICAgICAgIGlmIChXSS5PYmplY3RTdG9yZS5fZGF0YWJhc2UpIHsKKyAgICAg
ICAgICAgIGNhbGxiYWNrKFdJLk9iamVjdFN0b3JlLl9kYXRhYmFzZSk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBjb25zdCB2ZXJzaW9uID0gMTsgLy8gSW5jcmVt
ZW50IHRoaXMgZm9yIGV2ZXJ5IGVkaXQgdG8gYFdJLm9iamVjdFN0b3Jlc2AuCisKKyAgICAgICAg
bGV0IGRhdGFiYXNlUmVxdWVzdCA9IGluZGV4ZWREQi5vcGVuKFdJLk9iamVjdFN0b3JlLl9kYXRh
YmFzZU5hbWUsIHZlcnNpb24pOworICAgICAgICBkYXRhYmFzZVJlcXVlc3QuYWRkRXZlbnRMaXN0
ZW5lcigidXBncmFkZW5lZWRlZCIsIChldmVudCkgPT4geworICAgICAgICAgICAgbGV0IGRhdGFi
YXNlID0gZGF0YWJhc2VSZXF1ZXN0LnJlc3VsdDsKKworICAgICAgICAgICAgbGV0IG9iamVjdFN0
b3JlcyA9IE9iamVjdC52YWx1ZXMoV0kub2JqZWN0U3RvcmVzKTsKKyAgICAgICAgICAgIGlmIChX
SS5PYmplY3RTdG9yZS5fX3Rlc3RPYmplY3RTdG9yZSkKKyAgICAgICAgICAgICAgICBvYmplY3RT
dG9yZXMucHVzaChXSS5PYmplY3RTdG9yZS5fX3Rlc3RPYmplY3RTdG9yZSk7CisKKyAgICAgICAg
ICAgIGxldCBleGlzdGluZ05hbWVzID0gbmV3IFNldDsKKyAgICAgICAgICAgIGZvciAobGV0IG9i
amVjdFN0b3JlIG9mIG9iamVjdFN0b3JlcykgeworICAgICAgICAgICAgICAgIGlmICghZGF0YWJh
c2Uub2JqZWN0U3RvcmVOYW1lcy5jb250YWlucyhvYmplY3RTdG9yZS5fbmFtZSkpCisgICAgICAg
ICAgICAgICAgICAgIGRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKG9iamVjdFN0b3JlLl9uYW1l
LCBvYmplY3RTdG9yZS5fb3B0aW9ucyk7CisKKyAgICAgICAgICAgICAgICBleGlzdGluZ05hbWVz
LmFkZChvYmplY3RTdG9yZS5fbmFtZSk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZv
ciAobGV0IG9iamVjdFN0b3JlTmFtZSBvZiBkYXRhYmFzZS5vYmplY3RTdG9yZU5hbWVzKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKCFleGlzdGluZ05hbWVzLmhhcyhvYmplY3RTdG9yZU5hbWUpKQor
ICAgICAgICAgICAgICAgICAgICBkYXRhYmFzZS5kZWxldGVPYmplY3RTdG9yZShvYmplY3RTdG9y
ZU5hbWUpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgZGF0YWJhc2VSZXF1
ZXN0LmFkZEV2ZW50TGlzdGVuZXIoInN1Y2Nlc3MiLCAoc3VjY2Vzc0V2ZW50KSA9PiB7CisgICAg
ICAgICAgICBXSS5PYmplY3RTdG9yZS5fZGF0YWJhc2UgPSBkYXRhYmFzZVJlcXVlc3QucmVzdWx0
OworICAgICAgICAgICAgV0kuT2JqZWN0U3RvcmUuX2RhdGFiYXNlLmFkZEV2ZW50TGlzdGVuZXIo
ImNsb3NlIiwgKGNsb3NlRXZlbnQpID0+IHsKKyAgICAgICAgICAgICAgICBXSS5PYmplY3RTdG9y
ZS5fZGF0YWJhc2UgPSBudWxsOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGNhbGxi
YWNrKFdJLk9iamVjdFN0b3JlLl9kYXRhYmFzZSk7CisgICAgICAgIH0pOworICAgIH0KKworICAg
IC8vIFB1YmxpYworCisgICAgYXNzb2NpYXRlT2JqZWN0KG9iamVjdCwga2V5LCB2YWx1ZSkKKyAg
ICB7CisgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICJvYmplY3QiKQorICAgICAgICAgICAg
dmFsdWUgPSB0aGlzLl9yZXNvbHZlS2V5UGF0aCh2YWx1ZSwga2V5KS52YWx1ZTsKKworICAgICAg
ICBsZXQgcmVzb2x2ZWQgPSB0aGlzLl9yZXNvbHZlS2V5UGF0aChvYmplY3QsIGtleSk7CisgICAg
ICAgIHJlc29sdmVkLm9iamVjdFtyZXNvbHZlZC5rZXldID0gdmFsdWU7CisgICAgfQorCisgICAg
YXN5bmMgZ2V0QWxsKC4uLmFyZ3MpCisgICAgeworICAgICAgICBpZiAoIVdJLk9iamVjdFN0b3Jl
LnN1cHBvcnRlZCgpKQorICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKworICAgICAgICBy
ZXR1cm4gdGhpcy5fb3BlcmF0aW9uKCJyZWFkb25seSIsIChvYmplY3RTdG9yZSkgPT4gb2JqZWN0
U3RvcmUuZ2V0QWxsKC4uLmFyZ3MpKTsKKyAgICB9CisKKyAgICBhc3luYyBhZGQoLi4uYXJncykK
KyAgICB7CisgICAgICAgIGlmICghV0kuT2JqZWN0U3RvcmUuc3VwcG9ydGVkKCkpCisgICAgICAg
ICAgICByZXR1cm4gdW5kZWZpbmVkOworCisgICAgICAgIHJldHVybiB0aGlzLl9vcGVyYXRpb24o
InJlYWR3cml0ZSIsIChvYmplY3RTdG9yZSkgPT4gb2JqZWN0U3RvcmUuYWRkKC4uLmFyZ3MpKTsK
KyAgICB9CisKKyAgICBhc3luYyBhZGRPYmplY3Qob2JqZWN0LCAuLi5hcmdzKQorICAgIHsKKyAg
ICAgICAgaWYgKCFXSS5PYmplY3RTdG9yZS5zdXBwb3J0ZWQoKSkKKyAgICAgICAgICAgIHJldHVy
biB1bmRlZmluZWQ7CisKKyAgICAgICAgY29uc29sZS5hc3NlcnQodHlwZW9mIG9iamVjdC50b0pT
T04gPT09ICJmdW5jdGlvbiIsICJPYmplY3RTdG9yZSBjYW5ub3Qgc3RvcmUgYW4gb2JqZWN0IHdp
dGhvdXQgSlNPTiBzZXJpYWxpemF0aW9uIiwgb2JqZWN0LmNvbnN0cnVjdG9yLm5hbWUpOworICAg
ICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgdGhpcy5hZGQob2JqZWN0LnRvSlNPTigpLCAuLi5hcmdz
KTsKKyAgICAgICAgdGhpcy5hc3NvY2lhdGVPYmplY3Qob2JqZWN0LCBhcmdzWzBdLCByZXN1bHQp
OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKworICAgIGFzeW5jIGRlbGV0ZSguLi5h
cmdzKQorICAgIHsKKyAgICAgICAgaWYgKCFXSS5PYmplY3RTdG9yZS5zdXBwb3J0ZWQoKSkKKyAg
ICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7CisKKyAgICAgICAgcmV0dXJuIHRoaXMuX29wZXJh
dGlvbigicmVhZHdyaXRlIiwgKG9iamVjdFN0b3JlKSA9PiBvYmplY3RTdG9yZS5kZWxldGUoLi4u
YXJncykpOworICAgIH0KKworICAgIGFzeW5jIGRlbGV0ZU9iamVjdChvYmplY3QsIC4uLmFyZ3Mp
CisgICAgeworICAgICAgICBpZiAoIVdJLk9iamVjdFN0b3JlLnN1cHBvcnRlZCgpKQorICAgICAg
ICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKworICAgICAgICByZXR1cm4gdGhpcy5kZWxldGUodGhp
cy5fcmVzb2x2ZUtleVBhdGgob2JqZWN0KS52YWx1ZSwgLi4uYXJncyk7CisgICAgfQorCisgICAg
Ly8gUHJpdmF0ZQorCisgICAgX3Jlc29sdmVLZXlQYXRoKG9iamVjdCwga2V5UGF0aCkKKyAgICB7
CisgICAgICAgIGtleVBhdGggPSBrZXlQYXRoIHx8IHRoaXMuX29wdGlvbnMua2V5UGF0aCB8fCAi
IjsKKworICAgICAgICBsZXQgcGFydHMgPSBrZXlQYXRoLnNwbGl0KCIuIik7CisgICAgICAgIGxl
dCBrZXkgPSBwYXJ0cy5zcGxpY2UoLTEsIDEpOworICAgICAgICB3aGlsZSAocGFydHMubGVuZ3Ro
KSB7CisgICAgICAgICAgICBpZiAoIW9iamVjdC5oYXNPd25Qcm9wZXJ0eShwYXJ0c1swXSkpCisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBvYmplY3QgPSBvYmplY3RbcGFydHMu
c2hpZnQoKV07CisgICAgICAgIH0KKworICAgICAgICBpZiAocGFydHMubGVuZ3RoKQorICAgICAg
ICAgICAga2V5ID0gcGFydHMuam9pbigiLiIpICsgIi4iICsga2V5OworCisgICAgICAgIHJldHVy
biB7CisgICAgICAgICAgICBvYmplY3QsCisgICAgICAgICAgICBrZXksCisgICAgICAgICAgICB2
YWx1ZTogb2JqZWN0W2tleV0sCisgICAgICAgIH07CisgICAgfQorCisgICAgYXN5bmMgX29wZXJh
dGlvbihtb2RlLCBmdW5jKQorICAgIHsKKyAgICAgICAgLy8gSW5kZXhlZERCIHRyYW5zYWN0aW9u
cyB3aWxsIGF1dG8tY2xvc2UgaWYgdGhlcmUgYXJlIG5vIGFjdGl2ZSBvcGVyYXRpb25zIGF0IHRo
ZSBlbmQgb2YgYQorICAgICAgICAvLyBtaWNyb3Rhc2ssIHNvIHdlIG5lZWQgdG8gZG8gZXZlcnl0
aGluZyB1c2luZyBldmVudCBsaXN0ZW5lcnMgaW5zdGVhZCBvZiBwcm9taXNlcy4KKyAgICAgICAg
cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAgICAgIFdJ
Lk9iamVjdFN0b3JlLl9vcGVuKChkYXRhYmFzZSkgPT4geworICAgICAgICAgICAgICAgIGxldCB0
cmFuc2FjdGlvbiA9IGRhdGFiYXNlLnRyYW5zYWN0aW9uKFt0aGlzLl9uYW1lXSwgbW9kZSk7Cisg
ICAgICAgICAgICAgICAgbGV0IG9iamVjdFN0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUo
dGhpcy5fbmFtZSk7CisgICAgICAgICAgICAgICAgbGV0IHJlcXVlc3QgPSBudWxsOworCisgICAg
ICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgcmVxdWVzdCA9IGZ1bmMob2Jq
ZWN0U3RvcmUpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgICAg
ICAgICAgcmVqZWN0KGUpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAgICAgZnVuY3Rpb24gbGlzdGVuZXIoZXZlbnQpIHsKKyAg
ICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb24ucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY29tcGxl
dGUiLCBsaXN0ZW5lcik7CisgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLnJlbW92ZUV2
ZW50TGlzdGVuZXIoImVycm9yIiwgbGlzdGVuZXIpOworICAgICAgICAgICAgICAgICAgICByZXF1
ZXN0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInN1Y2Nlc3MiLCBsaXN0ZW5lcik7CisgICAgICAgICAg
ICAgICAgICAgIHJlcXVlc3QucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZXJyb3IiLCBsaXN0ZW5lcik7
CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKHJlcXVlc3QuZXJyb3IpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJlamVjdChyZXF1ZXN0LmVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAg
IHJlc29sdmUocmVxdWVzdC5yZXN1bHQpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB0cmFuc2FjdGlvbi5hZGRFdmVudExpc3RlbmVyKCJjb21wbGV0ZSIsIGxpc3RlbmVyLCB7
b25jZTogdHJ1ZX0pOworICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uLmFkZEV2ZW50TGlzdGVu
ZXIoImVycm9yIiwgbGlzdGVuZXIsIHtvbmNlOiB0cnVlfSk7CisgICAgICAgICAgICAgICAgcmVx
dWVzdC5hZGRFdmVudExpc3RlbmVyKCJzdWNjZXNzIiwgbGlzdGVuZXIsIHtvbmNlOiB0cnVlfSk7
CisgICAgICAgICAgICAgICAgcmVxdWVzdC5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsIGxpc3Rl
bmVyLCB7b25jZTogdHJ1ZX0pOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgIH0K
K307CisKK1dJLk9iamVjdFN0b3JlLl9kYXRhYmFzZSA9IG51bGw7CisKKy8vIEJlIHN1cmUgdG8g
dXBkYXRlIHRoZSBgdmVyc2lvbmAgYWJvdmUgd2hlbiBtYWtpbmcgY2hhbmdlcy4KK1dJLm9iamVj
dFN0b3JlcyA9IHsKKyAgICBhdWRpdHM6IG5ldyBXSS5PYmplY3RTdG9yZSgiYXVkaXQtbWFuYWdl
ci10ZXN0cyIsIHtrZXlQYXRoOiAiX19pZCIsIGF1dG9JbmNyZW1lbnQ6IHRydWV9KSwKK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVy
cy9BdWRpdE1hbmFnZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9D
b250cm9sbGVycy9BdWRpdE1hbmFnZXIuanMKaW5kZXggN2RkMTljYjQ4ZTA3MGIxNjI4YmM1MTYz
YjdlM2UyMjlmNTI5MzEzZi4uZGY3M2I1NzMyMjk1OTMxYjMyZjNkMTU3YWQzYjE3MDE3ODg4Yzhk
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJv
bGxlcnMvQXVkaXRNYW5hZ2VyLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL0NvbnRyb2xsZXJzL0F1ZGl0TWFuYWdlci5qcwpAQCAtMTE2LDkgKzExNiwxMCBAQCBX
SS5BdWRpdE1hbmFnZXIgPSBjbGFzcyBBdWRpdE1hbmFnZXIgZXh0ZW5kcyBXSS5PYmplY3QKICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGlmIChvYmplY3Qg
aW5zdGFuY2VvZiBXSS5BdWRpdFRlc3RCYXNlKQorICAgICAgICAgICAgaWYgKG9iamVjdCBpbnN0
YW5jZW9mIFdJLkF1ZGl0VGVzdEJhc2UpIHsKICAgICAgICAgICAgICAgICB0aGlzLl9hZGRUZXN0
KG9iamVjdCk7Ci0gICAgICAgICAgICBlbHNlIGlmIChvYmplY3QgaW5zdGFuY2VvZiBXSS5BdWRp
dFRlc3RSZXN1bHRCYXNlKQorICAgICAgICAgICAgICAgIFdJLm9iamVjdFN0b3Jlcy5hdWRpdHMu
YWRkT2JqZWN0KG9iamVjdCk7CisgICAgICAgICAgICB9IGVsc2UgaWYgKG9iamVjdCBpbnN0YW5j
ZW9mIFdJLkF1ZGl0VGVzdFJlc3VsdEJhc2UpCiAgICAgICAgICAgICAgICAgdGhpcy5fYWRkUmVz
dWx0KG9iamVjdCk7CiAgICAgICAgIH0pOwogICAgIH0KQEAgLTE0MCw2ICsxNDEsMzEgQEAgV0ku
QXVkaXRNYW5hZ2VyID0gY2xhc3MgQXVkaXRNYW5hZ2VyIGV4dGVuZHMgV0kuT2JqZWN0CiAgICAg
ICAgIH0pOwogICAgIH0KIAorICAgIGxvYWRTdG9yZWRUZXN0cygpCisgICAgeworICAgICAgICBX
SS5vYmplY3RTdG9yZXMuYXVkaXRzLmdldEFsbCgpLnRoZW4oYXN5bmMgKHRlc3RzKSA9PiB7Cisg
ICAgICAgICAgICBmb3IgKGxldCBwYXlsb2FkIG9mIHRlc3RzKSB7CisgICAgICAgICAgICAgICAg
bGV0IHRlc3QgPSBhd2FpdCBXSS5BdWRpdFRlc3RHcm91cC5mcm9tUGF5bG9hZChwYXlsb2FkKSB8
fCBhd2FpdCBXSS5BdWRpdFRlc3RDYXNlLmZyb21QYXlsb2FkKHBheWxvYWQpOworICAgICAgICAg
ICAgICAgIGlmICghdGVzdCkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAg
ICAgICAgICAgICBjb25zdCBrZXkgPSBudWxsOworICAgICAgICAgICAgICAgIFdJLm9iamVjdFN0
b3Jlcy5hdWRpdHMuYXNzb2NpYXRlT2JqZWN0KHRlc3QsIGtleSwgcGF5bG9hZCk7CisKKyAgICAg
ICAgICAgICAgICB0aGlzLl9hZGRUZXN0KHRlc3QpOworICAgICAgICAgICAgfQorICAgICAgICB9
KTsKKyAgICB9CisKKyAgICByZW1vdmVUZXN0KHRlc3QpCisgICAgeworICAgICAgICB0aGlzLl90
ZXN0cy5yZW1vdmUodGVzdCk7CisKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5l
cnMoV0kuQXVkaXRNYW5hZ2VyLkV2ZW50LlRlc3RSZW1vdmVkLCB7dGVzdH0pOworCisgICAgICAg
IFdJLm9iamVjdFN0b3Jlcy5hdWRpdHMuZGVsZXRlT2JqZWN0KHRlc3QpOworICAgIH0KKwogICAg
IC8vIFByaXZhdGUKIAogICAgIF9hZGRUZXN0KHRlc3QpCkBAIC0xNzIsNSArMTk4LDYgQEAgV0ku
QXVkaXRNYW5hZ2VyLlJ1bm5pbmdTdGF0ZSA9IHsKIFdJLkF1ZGl0TWFuYWdlci5FdmVudCA9IHsK
ICAgICBUZXN0QWRkZWQ6ICJhdWRpdC1tYW5hZ2VyLXRlc3QtYWRkZWQiLAogICAgIFRlc3RDb21w
bGV0ZWQ6ICJhdWRpdC1tYW5hZ2VyLXRlc3QtY29tcGxldGVkIiwKKyAgICBUZXN0UmVtb3ZlZDog
ImF1ZGl0LW1hbmFnZXItdGVzdC1yZW1vdmVkIiwKICAgICBUZXN0U2NoZWR1bGVkOiAiYXVkaXQt
bWFuYWdlci10ZXN0LXNjaGVkdWxlZCIsCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvTWFpbi5odG1sCmluZGV4IGZmNzZjYTU4ZGM1MDE5ZDM0ZWM1MzY1YjQ1Y2Jj
ZTk2MGY1NWM2M2QuLjkxM2U1ZDgzNjRkNzJjODlhZGVkYzhiOGQ3OGE4YWE2NjQ4ZmYzOWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbAor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKQEAgLTI3
OSw2ICsyNzksNyBAQAogICAgIDxzY3JpcHQgc3JjPSJCYXNlL0ltYWdlVXRpbGl0aWVzLmpzIj48
L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQmFzZS9Mb2FkTG9jYWxpemVkU3RyaW5ncy5qcyI+
PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkJhc2UvTUlNRVR5cGVVdGlsaXRpZXMuanMiPjwv
c2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJCYXNlL09iamVjdFN0b3JlLmpzIj48L3NjcmlwdD4K
ICAgICA8c2NyaXB0IHNyYz0iQmFzZS9VUkxVdGlsaXRpZXMuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgc3JjPSJCYXNlL1V0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
IkJhc2UvU2V0dGluZy5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9UZXN0Lmh0bWwgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9UZXN0Lmh0bWwKaW5kZXggNzVkYzBiMjIzZmE4YzIyNDUzNmZjYzhjYjFlMjU3
MTEzMWYyZTVlOS4uMTQ1ZDgyMzRhMzA5YTJhZThhOGQ1MDUwMWQ5YzU1ZGU5NjI4MTBmMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC5odG1sCisr
KyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbApAQCAtNTYs
NiArNTYsNyBAQAogICAgIDxzY3JpcHQgc3JjPSJCYXNlL0V2ZW50TGlzdGVuZXJTZXQuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJCYXNlL0ltYWdlVXRpbGl0aWVzLmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHNyYz0iQmFzZS9NSU1FVHlwZVV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9IkJhc2UvT2JqZWN0U3RvcmUuanMiPjwvc2NyaXB0PgogICAgIDxz
Y3JpcHQgc3JjPSJCYXNlL1VSTFV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBz
cmM9IkJhc2UvVXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iQmFzZS9T
ZXR0aW5nLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0F1ZGl0TmF2aWdhdGlvblNpZGViYXJQYW5lbC5qcyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0F1ZGl0TmF2aWdhdGlvblNpZGVi
YXJQYW5lbC5qcwppbmRleCAxZGY4YTk5ZjQ5OThiOTk3YTcxNDlmMDYxOTJhNDA4ODA0NGYzNzll
Li44MjYzOTZlZDhkYTJmZDNlNmY5NTVhMjc5ZTljMjQ0MDA0ZTg1ZDczIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9BdWRpdE5hdmlnYXRpb25T
aWRlYmFyUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvQXVkaXROYXZpZ2F0aW9uU2lkZWJhclBhbmVsLmpzCkBAIC05MCw2ICs5MCw3IEBAIFdJ
LkF1ZGl0TmF2aWdhdGlvblNpZGViYXJQYW5lbCA9IGNsYXNzIEF1ZGl0TmF2aWdhdGlvblNpZGVi
YXJQYW5lbCBleHRlbmRzIFdJLk5hCiAKICAgICAgICAgV0kuYXVkaXRNYW5hZ2VyLmFkZEV2ZW50
TGlzdGVuZXIoV0kuQXVkaXRNYW5hZ2VyLkV2ZW50LlRlc3RBZGRlZCwgdGhpcy5faGFuZGxlQXVk
aXRUZXN0QWRkZWQsIHRoaXMpOwogICAgICAgICBXSS5hdWRpdE1hbmFnZXIuYWRkRXZlbnRMaXN0
ZW5lcihXSS5BdWRpdE1hbmFnZXIuRXZlbnQuVGVzdENvbXBsZXRlZCwgdGhpcy5faGFuZGxlQXVk
aXRUZXN0Q29tcGxldGVkLCB0aGlzKTsKKyAgICAgICAgV0kuYXVkaXRNYW5hZ2VyLmFkZEV2ZW50
TGlzdGVuZXIoV0kuQXVkaXRNYW5hZ2VyLkV2ZW50LlRlc3RSZW1vdmVkLCB0aGlzLl9oYW5kbGVB
dWRpdFRlc3RSZW1vdmVkLCB0aGlzKTsKICAgICAgICAgV0kuYXVkaXRNYW5hZ2VyLmFkZEV2ZW50
TGlzdGVuZXIoV0kuQXVkaXRNYW5hZ2VyLkV2ZW50LlRlc3RTY2hlZHVsZWQsIHRoaXMuX2hhbmRs
ZUF1ZGl0VGVzdFNjaGVkdWxlZCwgdGhpcyk7CiAKICAgICAgICAgdGhpcy5jb250ZW50VHJlZU91
dGxpbmUuYWRkRXZlbnRMaXN0ZW5lcihXSS5UcmVlT3V0bGluZS5FdmVudC5TZWxlY3Rpb25EaWRD
aGFuZ2UsIHRoaXMuX3RyZWVTZWxlY3Rpb25EaWRDaGFuZ2UsIHRoaXMpOwpAQCAtMTQ3LDYgKzE0
OCwxMyBAQCBXSS5BdWRpdE5hdmlnYXRpb25TaWRlYmFyUGFuZWwgPSBjbGFzcyBBdWRpdE5hdmln
YXRpb25TaWRlYmFyUGFuZWwgZXh0ZW5kcyBXSS5OYQogICAgICAgICB0aGlzLl9hZGRSZXN1bHQo
cmVzdWx0LCBpbmRleCk7CiAgICAgfQogCisgICAgX2hhbmRsZUF1ZGl0VGVzdFJlbW92ZWQoZXZl
bnQpCisgICAgeworICAgICAgICBsZXQge3Rlc3R9ID0gZXZlbnQuZGF0YTsKKyAgICAgICAgbGV0
IHRyZWVFbGVtZW50ID0gdGhpcy50cmVlRWxlbWVudEZvclJlcHJlc2VudGVkT2JqZWN0KHRlc3Qp
OworICAgICAgICB0aGlzLmNvbnRlbnRUcmVlT3V0bGluZS5yZW1vdmVDaGlsZCh0cmVlRWxlbWVu
dCk7CisgICAgfQorCiAgICAgX2hhbmRsZUF1ZGl0VGVzdFNjaGVkdWxlZChldmVudCkKICAgICB7
CiAgICAgICAgIHRoaXMuX3VwZGF0ZVN0YXJ0U3RvcEJ1dHRvbk5hdmlnYXRpb25JdGVtU3RhdGUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0F1ZGl0VGFiQ29udGVudFZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy9BdWRpdFRhYkNvbnRlbnRWaWV3LmpzCmluZGV4IDI5ZjQ4MWFjYTYxNDEwMjlk
NTg4Njk3NTBhNDU1MmFiZTIwOTVmMWEuLjhmNTRiMTczMTNlMTE5ZWVlZmQxZjdkMjRhNTQ2N2Yz
YzAzNDg1NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL0F1ZGl0VGFiQ29udGVudFZpZXcuanMKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvQXVkaXRUYWJDb250ZW50Vmlldy5qcwpAQCAtODMsNiArODMs
MTUgQEAgV0kuQXVkaXRUYWJDb250ZW50VmlldyA9IGNsYXNzIEF1ZGl0VGFiQ29udGVudFZpZXcg
ZXh0ZW5kcyBXSS5Db250ZW50QnJvd3NlclRhYkMKICAgICAgICAgc3VwZXIuaGlkZGVuKCk7CiAg
ICAgfQogCisgICAgLy8gUHJvdGVjdGVkCisKKyAgICBpbml0aWFsTGF5b3V0KCkKKyAgICB7Cisg
ICAgICAgIHN1cGVyLmluaXRpYWxMYXlvdXQoKTsKKworICAgICAgICBXSS5hdWRpdE1hbmFnZXIu
bG9hZFN0b3JlZFRlc3RzKCk7CisgICAgfQorCiAgICAgLy8gUHJpdmF0ZQogCiAgICAgX2hhbmRs
ZVNwYWNlKGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvQXVkaXRUcmVlRWxlbWVudC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0F1ZGl0VHJlZUVsZW1lbnQuanMKaW5kZXggZjY4NWY2ZTcxYzI0
MDJiZDc1Y2QyMWQwMTVmMWM1MDRlMGYzMjI0Ni4uOTM3OTc5MGI5MWJjZDhiZWM5YzFlZTM2ODNj
Yjg3OTNhMmIwZDA0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvVmlld3MvQXVkaXRUcmVlRWxlbWVudC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9BdWRpdFRyZWVFbGVtZW50LmpzCkBAIC05OCw2ICs5OCwx
OSBAQCBXSS5BdWRpdFRyZWVFbGVtZW50ID0gY2xhc3MgQXVkaXRUcmVlRWxlbWVudCBleHRlbmRz
IFdJLkdlbmVyYWxUcmVlRWxlbWVudAogICAgICAgICB9CiAgICAgfQogCisgICAgb25kZWxldGUo
KQorICAgIHsKKyAgICAgICAgaWYgKCEodGhpcy5yZXByZXNlbnRlZE9iamVjdCBpbnN0YW5jZW9m
IFdJLkF1ZGl0VGVzdEJhc2UpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAg
IGlmICghKHRoaXMucGFyZW50IGluc3RhbmNlb2YgV0kuVHJlZU91dGxpbmUpKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIFdJLmF1ZGl0TWFuYWdlci5yZW1vdmVUZXN0KHRo
aXMucmVwcmVzZW50ZWRPYmplY3QpOworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKwog
ICAgIHBvcHVsYXRlQ29udGV4dE1lbnUoY29udGV4dE1lbnUsIGV2ZW50KQogICAgIHsKICAgICAg
ICAgaWYgKFdJLmF1ZGl0TWFuYWdlci5ydW5uaW5nU3RhdGUgPT09IFdJLkF1ZGl0TWFuYWdlci5S
dW5uaW5nU3RhdGUuSW5hY3RpdmUpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3N2Q4ODIyOWYxODRmMGEzZjczNjIyZGJj
Y2RkMWQ3ODQzZDFlMmYxLi5kNWM5MTM0YTU1MGZjMDZhMWEyZWZjOGQyZTY0MTY3NDcwNmU5YjI0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTgtMTAtMzEgIERldmluIFJvdXNzbyAgPGRyb3Vz
c29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IEF1ZGl0OiBzYXZlIGltcG9y
dGVkIGF1ZGl0cyBhY3Jvc3MgV2ViSW5zcGVjdG9yIHNlc3Npb25zCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA4NTgKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzQ1NTI3NjI1PgorCisgICAgICAgIFJldmlld2VkIGJ5IEJyaWFuIEJ1cmcuCisKKyAg
ICAgICAgKiBpbnNwZWN0b3IvdW5pdC10ZXN0cy9vYmplY3RTdG9yZS9hZGQtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdW5pdC10ZXN0cy9vYmplY3RTdG9yZS9hZGQu
aHRtbDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL3VuaXQtdGVzdHMvb2JqZWN0U3RvcmUv
YWRkT2JqZWN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL3VuaXQt
dGVzdHMvb2JqZWN0U3RvcmUvYWRkT2JqZWN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3Bl
Y3Rvci91bml0LXRlc3RzL29iamVjdFN0b3JlL2Jhc2ljLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL3VuaXQtdGVzdHMvb2JqZWN0U3RvcmUvYmFzaWMuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaW5zcGVjdG9yL3VuaXQtdGVzdHMvb2JqZWN0U3RvcmUvZGVsZXRlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9yL3VuaXQtdGVzdHMvb2JqZWN0
U3RvcmUvZGVsZXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci91bml0LXRlc3Rz
L29iamVjdFN0b3JlL2RlbGV0ZU9iamVjdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGluc3BlY3Rvci91bml0LXRlc3RzL29iamVjdFN0b3JlL2RlbGV0ZU9iamVjdC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvdW5pdC10ZXN0cy9vYmplY3RTdG9yZS9yZXNvdXJjZXMv
b2JqZWN0U3RvcmUtdXRpbGl0aWVzLmpzOiBBZGRlZC4KKyAgICAgICAgKFRlc3RQYWdlLnJlZ2lz
dGVySW5pdGlhbGl6ZXIuSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5UZXN0T2JqZWN0KToKKyAg
ICAgICAgKFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIuSW5zcGVjdG9yVGVzdC5PYmplY3RT
dG9yZS5UZXN0T2JqZWN0LnByb3RvdHlwZS50b0pTT04pOgorICAgICAgICAoVGVzdFBhZ2UucmVn
aXN0ZXJJbml0aWFsaXplci5JbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmNyZWF0ZVN1aXRlKToK
KyAgICAgICAgKFRlc3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIuSW5zcGVjdG9yVGVzdC5PYmpl
Y3RTdG9yZS5jcmVhdGVPYmplY3RTdG9yZSk6CisgICAgICAgIChUZXN0UGFnZS5yZWdpc3Rlcklu
aXRpYWxpemVyLkluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYWRkKToKKyAgICAgICAgKFRlc3RQ
YWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIuSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5hZGRPYmpl
Y3QpOgorICAgICAgICAoVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplci5JbnNwZWN0b3JUZXN0
Lk9iamVjdFN0b3JlLmRlbGV0ZSk6CisgICAgICAgIChUZXN0UGFnZS5yZWdpc3RlckluaXRpYWxp
emVyLkluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuZGVsZXRlT2JqZWN0KToKKyAgICAgICAgKFRl
c3RQYWdlLnJlZ2lzdGVySW5pdGlhbGl6ZXIuSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5sb2dW
YWx1ZXMpOgorICAgICAgICAoVGVzdFBhZ2UucmVnaXN0ZXJJbml0aWFsaXplci5JbnNwZWN0b3JU
ZXN0Lk9iamVjdFN0b3JlLndyYXBUZXN0KToKKwogMjAxOC0xMC0zMSAgQWxpY2lhIEJveWEgR2Fy
Y8OtYSAgPGFib3lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW01TRV0gVXNlIHRvbGVyYW5jZSB3
aGVuIGdyb3dpbmcgdGhlIGNvZGVkIGZyYW1lIGdyb3VwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9vYmplY3RTdG9yZS9hZGQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvb2JqZWN0U3RvcmUvYWRkLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xNDI2ZTBjNDNiZDYyODlkZjYyMmVlNDViY2QwMjNhYmQwZGUzZjYzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvb2JqZWN0
U3RvcmUvYWRkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDc4IEBACitUZXN0cyBXSS5PYmplY3RT
dG9yZS5wcm90b3R5cGUuYWRkLgorCisKKz09IFJ1bm5pbmcgdGVzdCBzdWl0ZTogV0kuT2JqZWN0
U3RvcmUucHJvdG90eXBlLmFkZAorLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3Jl
LnByb3RvdHlwZS5hZGQuTm9QYXJhbWV0ZXJzCitQQVNTOiBTaG91bGQgcHJvZHVjZSBhbiBleGNl
cHRpb24uCitUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzCitbXQorCistLSBSdW5uaW5n
IHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZC5Cb29sZWFuCithZGQ6IFtm
YWxzZV0KK2FkZDogW2ZhbHNlLHRydWVdCitbZmFsc2UsdHJ1ZV0KKworLS0gUnVubmluZyB0ZXN0
IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGQuTnVtYmVyCithZGQ6IFsxMV0KK2Fk
ZDogWzExLDIyXQorWzExLDIyXQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3Rv
cmUucHJvdG90eXBlLmFkZC5TdHJpbmcKK2FkZDogWyJmb28iXQorYWRkOiBbImZvbyIsImJhciJd
CitbImZvbyIsImJhciJdCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5w
cm90b3R5cGUuYWRkLkFycmF5CithZGQ6IFtbMTFdXQorYWRkOiBbWzExXSxbMjJdXQorW1sxMV0s
WzIyXV0KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5h
ZGQuTnVsbAorYWRkOiBbbnVsbF0KK1tudWxsXQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0ku
T2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZC5PYmplY3QuV2l0aG91dEtleVBhdGhPckF1dG9JbmNy
ZW1lbnQKK1BBU1M6IFNob3VsZCBwcm9kdWNlIGFuIGV4Y2VwdGlvbi4KK0RhdGFFcnJvcjogRmFp
bGVkIHRvIHN0b3JlIHJlY29yZCBpbiBhbiBJREJPYmplY3RTdG9yZTogVGhlIG9iamVjdCBzdG9y
ZSB1c2VzIG91dC1vZi1saW5lIGtleXMgYW5kIGhhcyBubyBrZXkgZ2VuZXJhdG9yIGFuZCB0aGUg
a2V5IHBhcmFtZXRlciB3YXMgbm90IHByb3ZpZGVkLgorW10KKworLS0gUnVubmluZyB0ZXN0IGNh
c2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGQuT2JqZWN0LktleVBhdGhNaXNzaW5nT25P
YmplY3RXaXRob3V0QXV0b0luY3JlbWVudAorUEFTUzogU2hvdWxkIHByb2R1Y2UgYW4gZXhjZXB0
aW9uLgorRGF0YUVycm9yOiBGYWlsZWQgdG8gc3RvcmUgcmVjb3JkIGluIGFuIElEQk9iamVjdFN0
b3JlOiBFdmFsdWF0aW5nIHRoZSBvYmplY3Qgc3RvcmUncyBrZXkgcGF0aCBkaWQgbm90IHlpZWxk
IGEgdmFsdWUuCitbXQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJv
dG90eXBlLmFkZC5PYmplY3QuS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQK
K2FkZDogW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiOjQyLCJhIjox
fV0KK2FkZDogW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiOjQyLCJh
IjoxfSx7IktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Ijo5OSwiYiI6Mn1d
CitbeyJLZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCI6NDIsImEiOjF9LHsi
S2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiOjk5LCJiIjoyfV0KKworLS0g
UnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGQuT2JqZWN0Lktl
eVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudAorYWRkOiBbeyJhIjoxLCJLZXlQ
YXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOjF9XQorYWRkOiBbeyJhIjoxLCJL
ZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOjF9LHsiYiI6MiwiS2V5UGF0
aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50IjoyfV0KK1t7ImEiOjEsIktleVBhdGhN
aXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6MX0seyJiIjoyLCJLZXlQYXRoTWlzc2lu
Z09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOjJ9XQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTog
V0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZC5PYmplY3QuS2V5UGF0aFNldE9uT2JqZWN0V2l0
aEF1dG9JbmNyZW1lbnQKK2FkZDogW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1l
bnQiOjQyLCJhIjoxfV0KK2FkZDogW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1l
bnQiOjQyLCJhIjoxfSx7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijo5OSwi
YiI6Mn1dCitbeyJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6NDIsImEiOjF9
LHsiS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOjk5LCJiIjoyfV0KKworLS0g
UnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGQuT2JqZWN0LkF1
dG9JbmNyZW1lbnRXaXRob3V0S2V5UGF0aAorYWRkOiBbeyJhIjoxfV0KK2FkZDogW3siYSI6MX0s
eyJiIjoyfV0KK1t7ImEiOjF9LHsiYiI6Mn1dCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5P
YmplY3RTdG9yZS5wcm90b3R5cGUuYWRkLk9iamVjdC5LZXlQYXRoU2V0T25PYmplY3RXaXRob3V0
QXV0b0luY3JlbWVudC5TdWIKK2FkZDogW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9J
bmNyZW1lbnQiOnsiU3ViIjo0Mn0sImEiOjF9XQorYWRkOiBbeyJLZXlQYXRoU2V0T25PYmplY3RX
aXRob3V0QXV0b0luY3JlbWVudCI6eyJTdWIiOjQyfSwiYSI6MX0seyJLZXlQYXRoU2V0T25PYmpl
Y3RXaXRob3V0QXV0b0luY3JlbWVudCI6eyJTdWIiOjk5fSwiYiI6Mn1dCitbeyJLZXlQYXRoU2V0
T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCI6eyJTdWIiOjQyfSwiYSI6MX0seyJLZXlQYXRo
U2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCI6eyJTdWIiOjk5fSwiYiI6Mn1dCisKKy0t
IFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkLk9iamVjdC5L
ZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQuU3ViCithZGQ6IFt7ImEiOjEs
IktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6eyJTdWIiOjF9fV0KK2Fk
ZDogW3siYSI6MSwiS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijp7IlN1
YiI6MX19LHsiYiI6MiwiS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijp7
IlN1YiI6Mn19XQorW3siYSI6MSwiS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVt
ZW50Ijp7IlN1YiI6MX19LHsiYiI6MiwiS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5j
cmVtZW50Ijp7IlN1YiI6Mn19XQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3Rv
cmUucHJvdG90eXBlLmFkZC5PYmplY3QuS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1l
bnQuU3ViCithZGQ6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijp7IlN1
YiI6NDJ9LCJhIjoxfV0KK2FkZDogW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1l
bnQiOnsiU3ViIjo0Mn0sImEiOjF9LHsiS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1l
bnQiOnsiU3ViIjo5OX0sImIiOjJ9XQorW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNy
ZW1lbnQiOnsiU3ViIjo0Mn0sImEiOjF9LHsiS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNy
ZW1lbnQiOnsiU3ViIjo5OX0sImIiOjJ9XQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvdW5pdC10ZXN0cy9vYmplY3RTdG9yZS9hZGQuaHRtbCBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci91bml0LXRlc3RzL29iamVjdFN0b3JlL2FkZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1MTVmNzdk
NzE3MDQxZGY5YmNkMmUyYWRmYThlZjg3MzM5OTUzMDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9vYmplY3RTdG9yZS9hZGQuaHRtbApAQCAtMCww
ICsxLDE1MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL29iamVjdFN0b3JlLXV0aWxpdGll
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1
aXRlID0gSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5jcmVhdGVTdWl0ZSgiV0kuT2JqZWN0U3Rv
cmUucHJvdG90eXBlLmFkZCIpOworCisgICAgZnVuY3Rpb24gdGVzdEFkZChuYW1lLCB7b3B0aW9u
cywgdGVzdHN9KSB7CisgICAgICAgIEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUud3JhcFRlc3Qo
bmFtZSwgYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0Lk9iamVj
dFN0b3JlLmNyZWF0ZU9iamVjdFN0b3JlKG9wdGlvbnMpOworCisgICAgICAgICAgICBmb3IgKGxl
dCB7dmFsdWUsIGV4cGVjdGVkfSBvZiB0ZXN0cykKKyAgICAgICAgICAgICAgICBhd2FpdCBJbnNw
ZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmFkZCh2YWx1ZSwgZXhwZWN0ZWQpOworICAgICAgICB9KTsK
KyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLndyYXBUZXN0KCJXSS5PYmpl
Y3RTdG9yZS5wcm90b3R5cGUuYWRkLk5vUGFyYW1ldGVycyIsIGFzeW5jIGZ1bmN0aW9uKCkgewor
ICAgICAgICBsZXQgb2JqZWN0U3RvcmUgPSBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmNyZWF0
ZU9iamVjdFN0b3JlKCk7CisKKyAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5leHBlY3RFeGNl
cHRpb24oYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBhd2FpdCBvYmplY3RTdG9yZS5h
ZGQoKTsKKyAgICAgICAgICAgIGF3YWl0IG9iamVjdFN0b3JlLmFkZChJbnNwZWN0b3JUZXN0Lk9i
amVjdFN0b3JlLmJhc2ljT2JqZWN0Mik7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgdGVz
dEFkZCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZC5Cb29sZWFuIiwgeworICAgICAgICBv
cHRpb25zOiB7YXV0b0luY3JlbWVudDogdHJ1ZX0sCisgICAgICAgIHRlc3RzOiBbCisgICAgICAg
ICAgICB7dmFsdWU6IGZhbHNlLCBleHBlY3RlZDogMX0sCisgICAgICAgICAgICB7dmFsdWU6IHRy
dWUsIGV4cGVjdGVkOiAyfSwKKyAgICAgICAgXSwKKyAgICB9KTsKKworICAgIHRlc3RBZGQoIldJ
Lk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGQuTnVtYmVyIiwgeworICAgICAgICBvcHRpb25zOiB7
YXV0b0luY3JlbWVudDogdHJ1ZX0sCisgICAgICAgIHRlc3RzOiBbCisgICAgICAgICAgICB7dmFs
dWU6IDExLCBleHBlY3RlZDogMX0sCisgICAgICAgICAgICB7dmFsdWU6IDIyLCBleHBlY3RlZDog
Mn0sCisgICAgICAgIF0sCisgICAgfSk7CisKKyAgICB0ZXN0QWRkKCJXSS5PYmplY3RTdG9yZS5w
cm90b3R5cGUuYWRkLlN0cmluZyIsIHsKKyAgICAgICAgb3B0aW9uczoge2F1dG9JbmNyZW1lbnQ6
IHRydWV9LAorICAgICAgICB0ZXN0czogWworICAgICAgICAgICAge3ZhbHVlOiAiZm9vIiwgZXhw
ZWN0ZWQ6IDF9LAorICAgICAgICAgICAge3ZhbHVlOiAiYmFyIiwgZXhwZWN0ZWQ6IDJ9LAorICAg
ICAgICBdLAorICAgIH0pOworCisgICAgdGVzdEFkZCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBl
LmFkZC5BcnJheSIsIHsKKyAgICAgICAgb3B0aW9uczoge2F1dG9JbmNyZW1lbnQ6IHRydWV9LAor
ICAgICAgICB0ZXN0czogWworICAgICAgICAgICAge3ZhbHVlOiBbMTFdLCBleHBlY3RlZDogMX0s
CisgICAgICAgICAgICB7dmFsdWU6IFsyMl0sIGV4cGVjdGVkOiAyfSwKKyAgICAgICAgXSwKKyAg
ICB9KTsKKworICAgIHRlc3RBZGQoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGQuTnVsbCIs
IHsKKyAgICAgICAgb3B0aW9uczoge2F1dG9JbmNyZW1lbnQ6IHRydWV9LAorICAgICAgICB0ZXN0
czogWworICAgICAgICAgICAge3ZhbHVlOiBudWxsLCBleHBlY3RlZDogMX0sCisgICAgICAgIF0s
CisgICAgfSk7CisKKyAgICBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLndyYXBUZXN0KCJXSS5P
YmplY3RTdG9yZS5wcm90b3R5cGUuYWRkLk9iamVjdC5XaXRob3V0S2V5UGF0aE9yQXV0b0luY3Jl
bWVudCIsIGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICBsZXQgb2JqZWN0U3RvcmUgPSBJbnNw
ZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmNyZWF0ZU9iamVjdFN0b3JlKCk7CisKKyAgICAgICAgYXdh
aXQgSW5zcGVjdG9yVGVzdC5leHBlY3RFeGNlcHRpb24oYXN5bmMgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICBhd2FpdCBvYmplY3RTdG9yZS5hZGQoSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5i
YXNpY09iamVjdDEpOworICAgICAgICAgICAgYXdhaXQgb2JqZWN0U3RvcmUuYWRkKEluc3BlY3Rv
clRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyKTsKKyAgICAgICAgfSk7CisgICAgfSk7CisK
KyAgICBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLndyYXBUZXN0KCJXSS5PYmplY3RTdG9yZS5w
cm90b3R5cGUuYWRkLk9iamVjdC5LZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aG91dEF1dG9JbmNy
ZW1lbnQiLCBhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAg
ICAgICAgICAgIGtleVBhdGg6ICJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aG91dEF1dG9JbmNy
ZW1lbnQiLAorICAgICAgICB9OworICAgICAgICBsZXQgb2JqZWN0U3RvcmUgPSBJbnNwZWN0b3JU
ZXN0Lk9iamVjdFN0b3JlLmNyZWF0ZU9iamVjdFN0b3JlKG9wdGlvbnMpOworCisgICAgICAgIGF3
YWl0IEluc3BlY3RvclRlc3QuZXhwZWN0RXhjZXB0aW9uKGFzeW5jIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgYXdhaXQgb2JqZWN0U3RvcmUuYWRkKEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUu
YmFzaWNPYmplY3QxKTsKKyAgICAgICAgICAgIGF3YWl0IG9iamVjdFN0b3JlLmFkZChJbnNwZWN0
b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0Mik7CisgICAgICAgIH0pOworICAgIH0pOwor
CisgICAgdGVzdEFkZCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZC5PYmplY3QuS2V5UGF0
aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiLCB7CisgICAgICAgIG9wdGlvbnM6IHtr
ZXlQYXRoOiAiS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQifSwKKyAgICAg
ICAgdGVzdHM6IFsKKyAgICAgICAgICAgIHt2YWx1ZToge0tleVBhdGhTZXRPbk9iamVjdFdpdGhv
dXRBdXRvSW5jcmVtZW50OiA0MiwgLi4uSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09i
amVjdDF9LCBleHBlY3RlZDogNDJ9LAorICAgICAgICAgICAge3ZhbHVlOiB7S2V5UGF0aFNldE9u
T2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQ6IDk5LCAuLi5JbnNwZWN0b3JUZXN0Lk9iamVjdFN0
b3JlLmJhc2ljT2JqZWN0Mn0sIGV4cGVjdGVkOiA5OX0sCisgICAgICAgIF0sCisgICAgfSk7CisK
KyAgICB0ZXN0QWRkKCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkLk9iamVjdC5LZXlQYXRo
TWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiLCB7CisgICAgICAgIG9wdGlvbnM6IHtr
ZXlQYXRoOiAiS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50IiwgYXV0b0lu
Y3JlbWVudDogdHJ1ZX0sCisgICAgICAgIHRlc3RzOiBbCisgICAgICAgICAgICB7dmFsdWU6IElu
c3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QxLCBleHBlY3RlZDogMX0sCisgICAg
ICAgICAgICB7dmFsdWU6IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyLCBl
eHBlY3RlZDogMn0sCisgICAgICAgIF0sCisgICAgfSk7CisKKyAgICB0ZXN0QWRkKCJXSS5PYmpl
Y3RTdG9yZS5wcm90b3R5cGUuYWRkLk9iamVjdC5LZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0lu
Y3JlbWVudCIsIHsKKyAgICAgICAgb3B0aW9uczoge2tleVBhdGg6ICJLZXlQYXRoU2V0T25PYmpl
Y3RXaXRoQXV0b0luY3JlbWVudCIsIGF1dG9JbmNyZW1lbnQ6IHRydWV9LAorICAgICAgICB0ZXN0
czogWworICAgICAgICAgICAge3ZhbHVlOiB7S2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNy
ZW1lbnQ6IDQyLCAuLi5JbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MX0sIGV4
cGVjdGVkOiA0Mn0sCisgICAgICAgICAgICB7dmFsdWU6IHtLZXlQYXRoU2V0T25PYmplY3RXaXRo
QXV0b0luY3JlbWVudDogOTksIC4uLkluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmpl
Y3QyfSwgZXhwZWN0ZWQ6IDk5fSwKKyAgICAgICAgXSwKKyAgICB9KTsKKworICAgIHRlc3RBZGQo
IldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGQuT2JqZWN0LkF1dG9JbmNyZW1lbnRXaXRob3V0
S2V5UGF0aCIsIHsKKyAgICAgICAgb3B0aW9uczoge2F1dG9JbmNyZW1lbnQ6IHRydWV9LAorICAg
ICAgICB0ZXN0czogWworICAgICAgICAgICAge3ZhbHVlOiBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0
b3JlLmJhc2ljT2JqZWN0MSwgZXhwZWN0ZWQ6IDF9LAorICAgICAgICAgICAge3ZhbHVlOiBJbnNw
ZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MiwgZXhwZWN0ZWQ6IDJ9LAorICAgICAg
ICBdLAorICAgIH0pOworCisgICAgdGVzdEFkZCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFk
ZC5PYmplY3QuS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQuU3ViIiwgewor
ICAgICAgICBvcHRpb25zOiB7a2V5UGF0aDogIktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRv
SW5jcmVtZW50LlN1YiJ9LAorICAgICAgICB0ZXN0czogWworICAgICAgICAgICAge3ZhbHVlOiB7
S2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQ6IHtTdWI6IDQyfSwgLi4uSW5z
cGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDF9LCBleHBlY3RlZDogNDJ9LAorICAg
ICAgICAgICAge3ZhbHVlOiB7S2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQ6
IHtTdWI6IDk5fSwgLi4uSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDJ9LCBl
eHBlY3RlZDogOTl9LAorICAgICAgICBdLAorICAgIH0pOworCisgICAgdGVzdEFkZCgiV0kuT2Jq
ZWN0U3RvcmUucHJvdG90eXBlLmFkZC5PYmplY3QuS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhB
dXRvSW5jcmVtZW50LlN1YiIsIHsKKyAgICAgICAgb3B0aW9uczoge2tleVBhdGg6ICJLZXlQYXRo
TWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQuU3ViIiwgYXV0b0luY3JlbWVudDogdHJ1
ZX0sCisgICAgICAgIHRlc3RzOiBbCisgICAgICAgICAgICB7dmFsdWU6IEluc3BlY3RvclRlc3Qu
T2JqZWN0U3RvcmUuYmFzaWNPYmplY3QxLCBleHBlY3RlZDogMX0sCisgICAgICAgICAgICB7dmFs
dWU6IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyLCBleHBlY3RlZDogMn0s
CisgICAgICAgIF0sCisgICAgfSk7CisKKyAgICB0ZXN0QWRkKCJXSS5PYmplY3RTdG9yZS5wcm90
b3R5cGUuYWRkLk9iamVjdC5LZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudC5TdWIi
LCB7CisgICAgICAgIG9wdGlvbnM6IHtrZXlQYXRoOiAiS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1
dG9JbmNyZW1lbnQuU3ViIiwgYXV0b0luY3JlbWVudDogdHJ1ZX0sCisgICAgICAgIHRlc3RzOiBb
CisgICAgICAgICAgICB7dmFsdWU6IHtLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVu
dDoge1N1YjogNDJ9LCAuLi5JbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MX0s
IGV4cGVjdGVkOiA0Mn0sCisgICAgICAgICAgICB7dmFsdWU6IHtLZXlQYXRoU2V0T25PYmplY3RX
aXRoQXV0b0luY3JlbWVudDoge1N1YjogOTl9LCAuLi5JbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3Jl
LmJhc2ljT2JqZWN0Mn0sIGV4cGVjdGVkOiA5OX0sCisgICAgICAgIF0sCisgICAgfSk7CisKKyAg
ICBzdWl0ZS5ydW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDxwPlRlc3RzIFdJLk9iamVjdFN0b3JlLnBy
b3RvdHlwZS5hZGQuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvb2JqZWN0U3RvcmUvYWRkT2JqZWN0LWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL29iamVjdFN0b3JlL2FkZE9iamVj
dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjdmY2U3NjUyYWIyMTZhYjY4NDI0MTgzYjgxNWM4
OThjY2U4M2Q1ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0
LXRlc3RzL29iamVjdFN0b3JlL2FkZE9iamVjdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1NCBA
QAorVGVzdHMgV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZE9iamVjdC4KKworCis9PSBSdW5u
aW5nIHRlc3Qgc3VpdGU6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGRPYmplY3QKKy0tIFJ1
bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkT2JqZWN0Lk5vUGFy
YW1ldGVycworUEFTUzogU2hvdWxkIHByb2R1Y2UgYW4gZXhjZXB0aW9uLgorVHlwZUVycm9yOiB1
bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnb2JqZWN0LnRvSlNPTicpCitb
XQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZE9i
amVjdC5XaXRob3V0S2V5UGF0aE9yQXV0b0luY3JlbWVudAorUEFTUzogU2hvdWxkIHByb2R1Y2Ug
YW4gZXhjZXB0aW9uLgorRGF0YUVycm9yOiBGYWlsZWQgdG8gc3RvcmUgcmVjb3JkIGluIGFuIElE
Qk9iamVjdFN0b3JlOiBUaGUgb2JqZWN0IHN0b3JlIHVzZXMgb3V0LW9mLWxpbmUga2V5cyBhbmQg
aGFzIG5vIGtleSBnZW5lcmF0b3IgYW5kIHRoZSBrZXkgcGFyYW1ldGVyIHdhcyBub3QgcHJvdmlk
ZWQuCitbXQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBl
LmFkZE9iamVjdC5LZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQKK1BB
U1M6IFNob3VsZCBwcm9kdWNlIGFuIGV4Y2VwdGlvbi4KK0RhdGFFcnJvcjogRmFpbGVkIHRvIHN0
b3JlIHJlY29yZCBpbiBhbiBJREJPYmplY3RTdG9yZTogRXZhbHVhdGluZyB0aGUgb2JqZWN0IHN0
b3JlJ3Mga2V5IHBhdGggZGlkIG5vdCB5aWVsZCBhIHZhbHVlLgorW10KKworLS0gUnVubmluZyB0
ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGRPYmplY3QuS2V5UGF0aFNldE9u
T2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQKK2FkZE9iamVjdDogW3siS2V5UGF0aFNldE9uT2Jq
ZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiOjQyLCJhIjoxfV0KK2FkZE9iamVjdDogW3siS2V5UGF0
aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiOjQyLCJhIjoxfSx7IktleVBhdGhTZXRP
bk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Ijo5OSwiYiI6Mn1dCitbeyJLZXlQYXRoU2V0T25P
YmplY3RXaXRob3V0QXV0b0luY3JlbWVudCI6NDIsImEiOjF9LHsiS2V5UGF0aFNldE9uT2JqZWN0
V2l0aG91dEF1dG9JbmNyZW1lbnQiOjk5LCJiIjoyfV0KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6
IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGRPYmplY3QuS2V5UGF0aE1pc3NpbmdPbk9iamVj
dFdpdGhBdXRvSW5jcmVtZW50CithZGRPYmplY3Q6IFt7ImEiOjEsIktleVBhdGhNaXNzaW5nT25P
YmplY3RXaXRoQXV0b0luY3JlbWVudCI6MX1dCithZGRPYmplY3Q6IFt7ImEiOjEsIktleVBhdGhN
aXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6MX0seyJiIjoyLCJLZXlQYXRoTWlzc2lu
Z09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOjJ9XQorW3siYSI6MSwiS2V5UGF0aE1pc3NpbmdP
bk9iamVjdFdpdGhBdXRvSW5jcmVtZW50IjoxfSx7ImIiOjIsIktleVBhdGhNaXNzaW5nT25PYmpl
Y3RXaXRoQXV0b0luY3JlbWVudCI6Mn1dCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmpl
Y3RTdG9yZS5wcm90b3R5cGUuYWRkT2JqZWN0LktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5j
cmVtZW50CithZGRPYmplY3Q6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50
Ijo0MiwiYSI6MX1dCithZGRPYmplY3Q6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5j
cmVtZW50Ijo0MiwiYSI6MX0seyJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6
OTksImIiOjJ9XQorW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOjQyLCJh
IjoxfSx7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijo5OSwiYiI6Mn1dCisK
Ky0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkT2JqZWN0
LkF1dG9JbmNyZW1lbnRXaXRob3V0S2V5UGF0aAorYWRkT2JqZWN0OiBbeyJhIjoxfV0KK2FkZE9i
amVjdDogW3siYSI6MX0seyJiIjoyfV0KK1t7ImEiOjF9LHsiYiI6Mn1dCisKKy0tIFJ1bm5pbmcg
dGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkT2JqZWN0LktleVBhdGhTZXRP
bk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50LlN1YgorYWRkT2JqZWN0OiBbeyJLZXlQYXRoU2V0
T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCI6eyJTdWIiOjQyfSwiYSI6MX1dCithZGRPYmpl
Y3Q6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Ijp7IlN1YiI6NDJ9
LCJhIjoxfSx7IktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Ijp7IlN1YiI6
OTl9LCJiIjoyfV0KK1t7IktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Ijp7
IlN1YiI6NDJ9LCJhIjoxfSx7IktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50
Ijp7IlN1YiI6OTl9LCJiIjoyfV0KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0
b3JlLnByb3RvdHlwZS5hZGRPYmplY3QuS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5j
cmVtZW50LlN1YgorYWRkT2JqZWN0OiBbeyJhIjoxLCJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0
aEF1dG9JbmNyZW1lbnQiOnsiU3ViIjoxfX1dCithZGRPYmplY3Q6IFt7ImEiOjEsIktleVBhdGhN
aXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6eyJTdWIiOjF9fSx7ImIiOjIsIktleVBh
dGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6eyJTdWIiOjJ9fV0KK1t7ImEiOjEs
IktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6eyJTdWIiOjF9fSx7ImIi
OjIsIktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6eyJTdWIiOjJ9fV0K
KworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGRPYmpl
Y3QuS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQuU3ViCithZGRPYmplY3Q6IFt7
IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijp7IlN1YiI6NDJ9LCJhIjoxfV0K
K2FkZE9iamVjdDogW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOnsiU3Vi
Ijo0Mn0sImEiOjF9LHsiS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOnsiU3Vi
Ijo5OX0sImIiOjJ9XQorW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOnsi
U3ViIjo0Mn0sImEiOjF9LHsiS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOnsi
U3ViIjo5OX0sImIiOjJ9XQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5p
dC10ZXN0cy9vYmplY3RTdG9yZS9hZGRPYmplY3QuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci91bml0LXRlc3RzL29iamVjdFN0b3JlL2FkZE9iamVjdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzNTIz
ZmI1ZjgyMWE2M2VhNzgwMDA3M2M3NTExYjhkNDJiYTg1ZGUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9vYmplY3RTdG9yZS9hZGRPYmplY3QuaHRt
bApAQCAtMCwwICsxLDExMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0
b3ItdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL29iamVjdFN0b3Jl
LXV0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7Cisg
ICAgbGV0IHN1aXRlID0gSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5jcmVhdGVTdWl0ZSgiV0ku
T2JqZWN0U3RvcmUucHJvdG90eXBlLmFkZE9iamVjdCIpOworCisgICAgZnVuY3Rpb24gdGVzdEFk
ZE9iamVjdChuYW1lLCB7b3B0aW9ucywgdGVzdHN9KSB7CisgICAgICAgIEluc3BlY3RvclRlc3Qu
T2JqZWN0U3RvcmUud3JhcFRlc3QobmFtZSwgYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmNyZWF0ZU9iamVjdFN0b3JlKG9wdGlvbnMpOwor
CisgICAgICAgICAgICBmb3IgKGxldCB7dmFsdWUsIGV4cGVjdGVkfSBvZiB0ZXN0cykKKyAgICAg
ICAgICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmFkZE9iamVjdChuZXcg
SW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5UZXN0T2JqZWN0KHZhbHVlKSwgZXhwZWN0ZWQpOwor
ICAgICAgICB9KTsKKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLndyYXBU
ZXN0KCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkT2JqZWN0Lk5vUGFyYW1ldGVycyIsIGFz
eW5jIGZ1bmN0aW9uKCkgeworICAgICAgICBsZXQgb2JqZWN0U3RvcmUgPSBJbnNwZWN0b3JUZXN0
Lk9iamVjdFN0b3JlLmNyZWF0ZU9iamVjdFN0b3JlKCk7CisKKyAgICAgICAgYXdhaXQgSW5zcGVj
dG9yVGVzdC5leHBlY3RFeGNlcHRpb24oYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBh
d2FpdCBvYmplY3RTdG9yZS5hZGRPYmplY3QoKTsKKyAgICAgICAgICAgIGF3YWl0IG9iamVjdFN0
b3JlLmFkZE9iamVjdChuZXcgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5UZXN0T2JqZWN0KElu
c3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyKSk7CisgICAgICAgIH0pOworICAg
IH0pOworCisgICAgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS53cmFwVGVzdCgiV0kuT2JqZWN0
U3RvcmUucHJvdG90eXBlLmFkZE9iamVjdC5XaXRob3V0S2V5UGF0aE9yQXV0b0luY3JlbWVudCIs
IGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICBsZXQgb2JqZWN0U3RvcmUgPSBJbnNwZWN0b3JU
ZXN0Lk9iamVjdFN0b3JlLmNyZWF0ZU9iamVjdFN0b3JlKCk7CisKKyAgICAgICAgYXdhaXQgSW5z
cGVjdG9yVGVzdC5leHBlY3RFeGNlcHRpb24oYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICBhd2FpdCBvYmplY3RTdG9yZS5hZGRPYmplY3QobmV3IEluc3BlY3RvclRlc3QuT2JqZWN0U3Rv
cmUuVGVzdE9iamVjdChJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MSkpOwor
ICAgICAgICAgICAgYXdhaXQgb2JqZWN0U3RvcmUuYWRkT2JqZWN0KG5ldyBJbnNwZWN0b3JUZXN0
Lk9iamVjdFN0b3JlLlRlc3RPYmplY3QoSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09i
amVjdDIpKTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICBJbnNwZWN0b3JUZXN0Lk9iamVj
dFN0b3JlLndyYXBUZXN0KCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkT2JqZWN0LktleVBh
dGhNaXNzaW5nT25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCIsIGFzeW5jIGZ1bmN0aW9uKCkg
eworICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAga2V5UGF0aDogIktleVBh
dGhNaXNzaW5nT25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCIsCisgICAgICAgIH07CisgICAg
ICAgIGxldCBvYmplY3RTdG9yZSA9IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuY3JlYXRlT2Jq
ZWN0U3RvcmUob3B0aW9ucyk7CisKKyAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5leHBlY3RF
eGNlcHRpb24oYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBhd2FpdCBvYmplY3RTdG9y
ZS5hZGRPYmplY3QobmV3IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuVGVzdE9iamVjdChJbnNw
ZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MSkpOworICAgICAgICAgICAgYXdhaXQg
b2JqZWN0U3RvcmUuYWRkT2JqZWN0KG5ldyBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLlRlc3RP
YmplY3QoSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDIpKTsKKyAgICAgICAg
fSk7CisgICAgfSk7CisKKyAgICB0ZXN0QWRkT2JqZWN0KCJXSS5PYmplY3RTdG9yZS5wcm90b3R5
cGUuYWRkT2JqZWN0LktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Iiwgewor
ICAgICAgICBvcHRpb25zOiB7a2V5UGF0aDogIktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRv
SW5jcmVtZW50In0sCisgICAgICAgIHRlc3RzOiBbCisgICAgICAgICAgICB7dmFsdWU6IHtLZXlQ
YXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudDogNDIsIC4uLkluc3BlY3RvclRlc3Qu
T2JqZWN0U3RvcmUuYmFzaWNPYmplY3QxfSwgZXhwZWN0ZWQ6IDQyfSwKKyAgICAgICAgICAgIHt2
YWx1ZToge0tleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50OiA5OSwgLi4uSW5z
cGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDJ9LCBleHBlY3RlZDogOTl9LAorICAg
ICAgICBdLAorICAgIH0pOworCisgICAgdGVzdEFkZE9iamVjdCgiV0kuT2JqZWN0U3RvcmUucHJv
dG90eXBlLmFkZE9iamVjdC5LZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQi
LCB7CisgICAgICAgIG9wdGlvbnM6IHtrZXlQYXRoOiAiS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdp
dGhBdXRvSW5jcmVtZW50IiwgYXV0b0luY3JlbWVudDogdHJ1ZX0sCisgICAgICAgIHRlc3RzOiBb
CisgICAgICAgICAgICB7dmFsdWU6IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmpl
Y3QxLCBleHBlY3RlZDogMX0sCisgICAgICAgICAgICB7dmFsdWU6IEluc3BlY3RvclRlc3QuT2Jq
ZWN0U3RvcmUuYmFzaWNPYmplY3QyLCBleHBlY3RlZDogMn0sCisgICAgICAgIF0sCisgICAgfSk7
CisKKyAgICB0ZXN0QWRkT2JqZWN0KCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuYWRkT2JqZWN0
LktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50IiwgeworICAgICAgICBvcHRpb25z
OiB7a2V5UGF0aDogIktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50IiwgYXV0b0lu
Y3JlbWVudDogdHJ1ZX0sCisgICAgICAgIHRlc3RzOiBbCisgICAgICAgICAgICB7dmFsdWU6IHtL
ZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudDogNDIsIC4uLkluc3BlY3RvclRlc3Qu
T2JqZWN0U3RvcmUuYmFzaWNPYmplY3QxfSwgZXhwZWN0ZWQ6IDQyfSwKKyAgICAgICAgICAgIHt2
YWx1ZToge0tleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50OiA5OSwgLi4uSW5zcGVj
dG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDJ9LCBleHBlY3RlZDogOTl9LAorICAgICAg
ICBdLAorICAgIH0pOworCisgICAgdGVzdEFkZE9iamVjdCgiV0kuT2JqZWN0U3RvcmUucHJvdG90
eXBlLmFkZE9iamVjdC5BdXRvSW5jcmVtZW50V2l0aG91dEtleVBhdGgiLCB7CisgICAgICAgIG9w
dGlvbnM6IHthdXRvSW5jcmVtZW50OiB0cnVlfSwKKyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAg
ICAgIHt2YWx1ZTogSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDEsIGV4cGVj
dGVkOiAxfSwKKyAgICAgICAgICAgIHt2YWx1ZTogSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5i
YXNpY09iamVjdDIsIGV4cGVjdGVkOiAyfSwKKyAgICAgICAgXSwKKyAgICB9KTsKKworICAgIHRl
c3RBZGRPYmplY3QoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5hZGRPYmplY3QuS2V5UGF0aFNl
dE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQuU3ViIiwgeworICAgICAgICBvcHRpb25zOiB7
a2V5UGF0aDogIktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50LlN1YiJ9LAor
ICAgICAgICB0ZXN0czogWworICAgICAgICAgICAge3ZhbHVlOiB7S2V5UGF0aFNldE9uT2JqZWN0
V2l0aG91dEF1dG9JbmNyZW1lbnQ6IHtTdWI6IDQyfSwgLi4uSW5zcGVjdG9yVGVzdC5PYmplY3RT
dG9yZS5iYXNpY09iamVjdDF9LCBleHBlY3RlZDogNDJ9LAorICAgICAgICAgICAge3ZhbHVlOiB7
S2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQ6IHtTdWI6IDk5fSwgLi4uSW5z
cGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDJ9LCBleHBlY3RlZDogOTl9LAorICAg
ICAgICBdLAorICAgIH0pOworCisgICAgdGVzdEFkZE9iamVjdCgiV0kuT2JqZWN0U3RvcmUucHJv
dG90eXBlLmFkZE9iamVjdC5LZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQu
U3ViIiwgeworICAgICAgICBvcHRpb25zOiB7a2V5UGF0aDogIktleVBhdGhNaXNzaW5nT25PYmpl
Y3RXaXRoQXV0b0luY3JlbWVudC5TdWIiLCBhdXRvSW5jcmVtZW50OiB0cnVlfSwKKyAgICAgICAg
dGVzdHM6IFsKKyAgICAgICAgICAgIHt2YWx1ZTogSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5i
YXNpY09iamVjdDEsIGV4cGVjdGVkOiAxfSwKKyAgICAgICAgICAgIHt2YWx1ZTogSW5zcGVjdG9y
VGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDIsIGV4cGVjdGVkOiAyfSwKKyAgICAgICAgXSwK
KyAgICB9KTsKKworICAgIHRlc3RBZGRPYmplY3QoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5h
ZGRPYmplY3QuS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQuU3ViIiwgeworICAg
ICAgICBvcHRpb25zOiB7a2V5UGF0aDogIktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVt
ZW50LlN1YiIsIGF1dG9JbmNyZW1lbnQ6IHRydWV9LAorICAgICAgICB0ZXN0czogWworICAgICAg
ICAgICAge3ZhbHVlOiB7S2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQ6IHtTdWI6
IDQyfSwgLi4uSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDF9LCBleHBlY3Rl
ZDogNDJ9LAorICAgICAgICAgICAge3ZhbHVlOiB7S2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9J
bmNyZW1lbnQ6IHtTdWI6IDk5fSwgLi4uSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09i
amVjdDJ9LCBleHBlY3RlZDogOTl9LAorICAgICAgICBdLAorICAgIH0pOworCisgICAgc3VpdGUu
cnVuVGVzdENhc2VzQW5kRmluaXNoKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KKyAgICA8cD5UZXN0cyBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUu
YWRkT2JqZWN0LjwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci91bml0LXRlc3RzL29iamVjdFN0b3JlL2Jhc2ljLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL29iamVjdFN0b3JlL2Jhc2ljLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wNmE0YzZmZjZlYmVhMWMwOWM4NTkyZjMxMjg0YjhlMzFmYjg2Njhm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvb2Jq
ZWN0U3RvcmUvYmFzaWMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTkgQEAKK1Rlc3RzIGJhc2lj
IGZ1bmN0aW9uYWxpdHkgb2YgV0kuT2JqZWN0U3RvcmUuCisKKworPT0gUnVubmluZyB0ZXN0IHN1
aXRlOiBXSS5PYmplY3RTdG9yZQorLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3Jl
LkluaXRpYWxseU51bGwKK1BBU1M6IFRoZSBkYXRhYmFzZSBzaG91bGQgaW5pdGlhbGx5IGJlIG51
bGwvY2xvc2VkLgorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90
eXBlLl9yZXNvbHZlS2V5UGF0aC5FeGlzdHMKK3sib2JqZWN0Ijp7ImEiOjF9LCJrZXkiOlsiYSJd
LCJ2YWx1ZSI6MX0KK1tdCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5w
cm90b3R5cGUuX3Jlc29sdmVLZXlQYXRoLk1pc3NpbmdQYXJ0Cit7Im9iamVjdCI6eyJzdWIuYSI6
MCwiYSI6MSwiYiI6Mn0sImtleSI6InN1Yi5hIiwidmFsdWUiOjB9CitbXQorCistLSBSdW5uaW5n
IHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLl9yZXNvbHZlS2V5UGF0aC5NaXNz
aW5nV2hvbGUKK3sib2JqZWN0Ijp7ImEiOjEsImIiOjJ9LCJrZXkiOiJzdWIuYSJ9CitbXQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9vYmplY3RTdG9yZS9i
YXNpYy5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvb2JqZWN0U3RvcmUv
YmFzaWMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NDdmZGRhZWIzOWY5M2IxOWVmNGZiNTc0ZTAwYmY2Nzdh
ZjdiYWM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVz
dHMvb2JqZWN0U3RvcmUvYmFzaWMuaHRtbApAQCAtMCwwICsxLDUyIEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vaHR0cC90ZXN0cy9pbnNw
ZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvb2JqZWN0U3RvcmUtdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0Lk9iamVj
dFN0b3JlLmNyZWF0ZVN1aXRlKCJXSS5PYmplY3RTdG9yZSIpOworCisgICAgSW5zcGVjdG9yVGVz
dC5PYmplY3RTdG9yZS53cmFwVGVzdCgiV0kuT2JqZWN0U3RvcmUuSW5pdGlhbGx5TnVsbCIsIGFz
eW5jIGZ1bmN0aW9uKCkgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmV4cGVjdE51bGwoV0kuT2Jq
ZWN0U3RvcmUuX2RhdGFiYXNlLCAiVGhlIGRhdGFiYXNlIHNob3VsZCBpbml0aWFsbHkgYmUgbnVs
bC9jbG9zZWQuIik7CisgICAgfSk7CisKKyAgICBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLndy
YXBUZXN0KCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuX3Jlc29sdmVLZXlQYXRoLkV4aXN0cyIs
IGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAg
ICAga2V5UGF0aDogInN1Yi5hIiwKKyAgICAgICAgfTsKKyAgICAgICAgbGV0IG9iamVjdFN0b3Jl
ID0gSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5jcmVhdGVPYmplY3RTdG9yZShvcHRpb25zKTsK
KworICAgICAgICBjb25zdCBvYmplY3QgPSB7c3ViOiB7YTogMX0sIGI6IDJ9OworICAgICAgICBJ
bnNwZWN0b3JUZXN0LmxvZyhvYmplY3RTdG9yZS5fcmVzb2x2ZUtleVBhdGgob2JqZWN0KSk7Cisg
ICAgfSk7CisKKyAgICBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLndyYXBUZXN0KCJXSS5PYmpl
Y3RTdG9yZS5wcm90b3R5cGUuX3Jlc29sdmVLZXlQYXRoLk1pc3NpbmdQYXJ0IiwgYXN5bmMgZnVu
Y3Rpb24oKSB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBrZXlQYXRo
OiAic3ViLmEiLAorICAgICAgICB9OworICAgICAgICBsZXQgb2JqZWN0U3RvcmUgPSBJbnNwZWN0
b3JUZXN0Lk9iamVjdFN0b3JlLmNyZWF0ZU9iamVjdFN0b3JlKG9wdGlvbnMpOworCisgICAgICAg
IGNvbnN0IG9iamVjdCA9IHsic3ViLmEiOiAwLCBhOiAxLCBiOiAyfTsKKyAgICAgICAgSW5zcGVj
dG9yVGVzdC5sb2cob2JqZWN0U3RvcmUuX3Jlc29sdmVLZXlQYXRoKG9iamVjdCkpOworICAgIH0p
OworCisgICAgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS53cmFwVGVzdCgiV0kuT2JqZWN0U3Rv
cmUucHJvdG90eXBlLl9yZXNvbHZlS2V5UGF0aC5NaXNzaW5nV2hvbGUiLCBhc3luYyBmdW5jdGlv
bigpIHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIGtleVBhdGg6ICJz
dWIuYSIsCisgICAgICAgIH07CisgICAgICAgIGxldCBvYmplY3RTdG9yZSA9IEluc3BlY3RvclRl
c3QuT2JqZWN0U3RvcmUuY3JlYXRlT2JqZWN0U3RvcmUob3B0aW9ucyk7CisKKyAgICAgICAgY29u
c3Qgb2JqZWN0ID0ge2E6IDEsIGI6IDJ9OworICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZyhvYmpl
Y3RTdG9yZS5fcmVzb2x2ZUtleVBhdGgob2JqZWN0KSk7CisgICAgfSk7CisKKyAgICBzdWl0ZS5y
dW5UZXN0Q2FzZXNBbmRGaW5pc2goKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgorICAgIDxwPlRlc3RzIGJhc2ljIGZ1bmN0aW9uYWxpdHkgb2YgV0ku
T2JqZWN0U3RvcmUuPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvb2JqZWN0U3RvcmUvZGVsZXRlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL29iamVjdFN0b3JlL2RlbGV0ZS1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNDQ4M2U1Y2U1NjA2YTMyODRmNjI2OTJjN2MyYmI3ODY5NjNi
MTY5MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3Rz
L29iamVjdFN0b3JlL2RlbGV0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMDggQEAKK1Rlc3Rz
IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGUuCisKKworPT0gUnVubmluZyB0ZXN0IHN1
aXRlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlCistLSBSdW5uaW5nIHRlc3QgY2Fz
ZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZS5Ob1BhcmFtZXRlcnMKK2FkZDogW3si
YiI6Mn1dCitQQVNTOiBTaG91bGQgcHJvZHVjZSBhbiBleGNlcHRpb24uCitUeXBlRXJyb3I6IE5v
dCBlbm91Z2ggYXJndW1lbnRzCitbeyJiIjoyfV0KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJ
Lk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGUuTWlzc2luZ09iamVjdAorYWRkOiBbeyJiIjoy
fV0KK1BBU1M6IFNob3VsZCBwcm9kdWNlIGFuIGV4Y2VwdGlvbi4KK0RhdGFFcnJvcjogRmFpbGVk
IHRvIGV4ZWN1dGUgJ2RlbGV0ZScgb24gJ0lEQk9iamVjdFN0b3JlJzogVGhlIHBhcmFtZXRlciBp
cyBub3QgYSB2YWxpZCBrZXkuCitbeyJiIjoyfV0KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJ
Lk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGUuQm9vbGVhbgorYWRkOiBbZmFsc2VdCithZGQ6
IFtmYWxzZSx0cnVlXQorZGVsZXRlOiBbdHJ1ZV0KK2RlbGV0ZTogW10KK1tdCisKKy0tIFJ1bm5p
bmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlLk51bWJlcgorYWRk
OiBbMTFdCithZGQ6IFsxMSwyMl0KK2RlbGV0ZTogWzIyXQorZGVsZXRlOiBbXQorW10KKworLS0g
UnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGUuU3RyaW5n
CithZGQ6IFsiZm9vIl0KK2FkZDogWyJmb28iLCJiYXIiXQorZGVsZXRlOiBbImJhciJdCitkZWxl
dGU6IFtdCitbXQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0U3RvcmUucHJvdG90
eXBlLmRlbGV0ZS5BcnJheQorYWRkOiBbWzExXV0KK2FkZDogW1sxMV0sWzIyXV0KK2RlbGV0ZTog
W1syMl1dCitkZWxldGU6IFtdCitbXQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0kuT2JqZWN0
U3RvcmUucHJvdG90eXBlLmRlbGV0ZS5OdWxsCithZGQ6IFtudWxsXQorZGVsZXRlOiBbXQorW10K
KworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGUu
T2JqZWN0LldpdGhvdXRLZXlQYXRoT3JBdXRvSW5jcmVtZW50CitQQVNTOiBTaG91bGQgcHJvZHVj
ZSBhbiBleGNlcHRpb24uCitEYXRhRXJyb3I6IEZhaWxlZCB0byBzdG9yZSByZWNvcmQgaW4gYW4g
SURCT2JqZWN0U3RvcmU6IFRoZSBvYmplY3Qgc3RvcmUgdXNlcyBvdXQtb2YtbGluZSBrZXlzIGFu
ZCBoYXMgbm8ga2V5IGdlbmVyYXRvciBhbmQgdGhlIGtleSBwYXJhbWV0ZXIgd2FzIG5vdCBwcm92
aWRlZC4KK1tdCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5
cGUuZGVsZXRlLk9iamVjdC5LZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1l
bnQKK1BBU1M6IFNob3VsZCBwcm9kdWNlIGFuIGV4Y2VwdGlvbi4KK0RhdGFFcnJvcjogRmFpbGVk
IHRvIHN0b3JlIHJlY29yZCBpbiBhbiBJREJPYmplY3RTdG9yZTogRXZhbHVhdGluZyB0aGUgb2Jq
ZWN0IHN0b3JlJ3Mga2V5IHBhdGggZGlkIG5vdCB5aWVsZCBhIHZhbHVlLgorW10KKworLS0gUnVu
bmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGUuT2JqZWN0Lktl
eVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50CithZGQ6IFt7IktleVBhdGhTZXRP
bk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Ijo0MiwiYSI6MX1dCithZGQ6IFt7IktleVBhdGhT
ZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Ijo0MiwiYSI6MX0seyJLZXlQYXRoU2V0T25P
YmplY3RXaXRob3V0QXV0b0luY3JlbWVudCI6OTksImIiOjJ9XQorZGVsZXRlOiBbeyJLZXlQYXRo
U2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCI6OTksImIiOjJ9XQorZGVsZXRlOiBbXQor
W10KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxl
dGUuT2JqZWN0LktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudAorYWRkOiBb
eyJhIjoxLCJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOjF9XQorYWRk
OiBbeyJhIjoxLCJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOjF9LHsi
YiI6MiwiS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50IjoyfV0KK2RlbGV0
ZTogW3siYiI6MiwiS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50IjoyfV0K
K2RlbGV0ZTogW10KK1tdCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5w
cm90b3R5cGUuZGVsZXRlLk9iamVjdC5LZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVu
dAorYWRkOiBbeyJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6NDIsImEiOjF9
XQorYWRkOiBbeyJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6NDIsImEiOjF9
LHsiS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOjk5LCJiIjoyfV0KK2RlbGV0
ZTogW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOjk5LCJiIjoyfV0KK2Rl
bGV0ZTogW10KK1tdCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90
b3R5cGUuZGVsZXRlLk9iamVjdC5BdXRvSW5jcmVtZW50V2l0aG91dEtleVBhdGgKK2FkZDogW3si
YSI6MX1dCithZGQ6IFt7ImEiOjF9LHsiYiI6Mn1dCitkZWxldGU6IFt7ImIiOjJ9XQorZGVsZXRl
OiBbXQorW10KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlw
ZS5kZWxldGUuT2JqZWN0LktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50LlN1
YgorYWRkOiBbeyJLZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCI6eyJTdWIi
OjQyfSwiYSI6MX1dCithZGQ6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVt
ZW50Ijp7IlN1YiI6NDJ9LCJhIjoxfSx7IktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5j
cmVtZW50Ijp7IlN1YiI6OTl9LCJiIjoyfV0KK2RlbGV0ZTogW3siS2V5UGF0aFNldE9uT2JqZWN0
V2l0aG91dEF1dG9JbmNyZW1lbnQiOnsiU3ViIjo5OX0sImIiOjJ9XQorZGVsZXRlOiBbXQorW10K
KworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGUu
T2JqZWN0LktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudC5TdWIKK2FkZDog
W3siYSI6MSwiS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijp7IlN1YiI6
MX19XQorYWRkOiBbeyJhIjoxLCJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1l
bnQiOnsiU3ViIjoxfX0seyJiIjoyLCJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNy
ZW1lbnQiOnsiU3ViIjoyfX1dCitkZWxldGU6IFt7ImIiOjIsIktleVBhdGhNaXNzaW5nT25PYmpl
Y3RXaXRoQXV0b0luY3JlbWVudCI6eyJTdWIiOjJ9fV0KK2RlbGV0ZTogW10KK1tdCisKKy0tIFJ1
bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlLk9iamVjdC5L
ZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudC5TdWIKK2FkZDogW3siS2V5UGF0aFNl
dE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOnsiU3ViIjo0Mn0sImEiOjF9XQorYWRkOiBbeyJL
ZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6eyJTdWIiOjQyfSwiYSI6MX0seyJL
ZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6eyJTdWIiOjk5fSwiYiI6Mn1dCitk
ZWxldGU6IFt7IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijp7IlN1YiI6OTl9
LCJiIjoyfV0KK2RlbGV0ZTogW10KK1tdCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci91bml0LXRlc3RzL29iamVjdFN0b3JlL2RlbGV0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3VuaXQtdGVzdHMvb2JqZWN0U3RvcmUvZGVsZXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTg1
MTE5ZWFhYjBkMWU2NWE0MDAxZWJmM2E5NTZiZTJhMWJjOGRjMgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL29iamVjdFN0b3JlL2RlbGV0ZS5odG1s
CkBAIC0wLDAgKzEsMTc1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvcmVzb3VyY2VzL2luc3BlY3Rv
ci10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvb2JqZWN0U3RvcmUt
dXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAg
ICBsZXQgc3VpdGUgPSBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmNyZWF0ZVN1aXRlKCJXSS5P
YmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlIik7CisKKyAgICBmdW5jdGlvbiB0ZXN0RGVsZXRl
KG5hbWUsIHtvcHRpb25zLCB0ZXN0c30pIHsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5PYmplY3RT
dG9yZS53cmFwVGVzdChuYW1lLCBhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuT2JqZWN0U3RvcmUuY3JlYXRlT2JqZWN0U3RvcmUob3B0aW9ucyk7CisKKyAgICAg
ICAgICAgIGxldCBrZXlzID0gW107CisgICAgICAgICAgICBmb3IgKGxldCB7dmFsdWUsIGV4cGVj
dGVkfSBvZiB0ZXN0cykKKyAgICAgICAgICAgICAgICBrZXlzLnB1c2goYXdhaXQgSW5zcGVjdG9y
VGVzdC5PYmplY3RTdG9yZS5hZGQodmFsdWUsIGV4cGVjdGVkKSk7CisKKyAgICAgICAgICAgIGZv
ciAobGV0IGtleSBvZiBrZXlzKQorICAgICAgICAgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3Qu
T2JqZWN0U3RvcmUuZGVsZXRlKGtleSk7CisgICAgICAgIH0pOworICAgIH0KKworICAgIEluc3Bl
Y3RvclRlc3QuT2JqZWN0U3RvcmUud3JhcFRlc3QoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5k
ZWxldGUuTm9QYXJhbWV0ZXJzIiwgYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgIGNvbnN0IG9w
dGlvbnMgPSB7CisgICAgICAgICAgICBhdXRvSW5jcmVtZW50OiB0cnVlLAorICAgICAgICB9Owor
ICAgICAgICBsZXQgb2JqZWN0U3RvcmUgPSBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmNyZWF0
ZU9iamVjdFN0b3JlKG9wdGlvbnMpOworCisgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuT2Jq
ZWN0U3RvcmUuYWRkKEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyLCAxKTsK
KworICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0LmV4cGVjdEV4Y2VwdGlvbihhc3luYyAoKSA9
PiB7CisgICAgICAgICAgICBhd2FpdCBvYmplY3RTdG9yZS5kZWxldGUoKTsKKyAgICAgICAgICAg
IGF3YWl0IG9iamVjdFN0b3JlLmRlbGV0ZShJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2lj
T2JqZWN0Mik7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgSW5zcGVjdG9yVGVzdC5PYmpl
Y3RTdG9yZS53cmFwVGVzdCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZS5NaXNzaW5n
T2JqZWN0IiwgYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7Cisg
ICAgICAgICAgICBhdXRvSW5jcmVtZW50OiB0cnVlLAorICAgICAgICB9OworICAgICAgICBsZXQg
b2JqZWN0U3RvcmUgPSBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmNyZWF0ZU9iamVjdFN0b3Jl
KG9wdGlvbnMpOworCisgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYWRk
KEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyLCAxKTsKKworICAgICAgICBh
d2FpdCBJbnNwZWN0b3JUZXN0LmV4cGVjdEV4Y2VwdGlvbihhc3luYyAoKSA9PiB7CisgICAgICAg
ICAgICBhd2FpdCBvYmplY3RTdG9yZS5kZWxldGUoSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5i
YXNpY09iamVjdDEpOworICAgICAgICAgICAgYXdhaXQgb2JqZWN0U3RvcmUuZGVsZXRlKEluc3Bl
Y3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyKTsKKyAgICAgICAgfSk7CisgICAgfSk7
CisKKyAgICB0ZXN0RGVsZXRlKCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlLkJvb2xl
YW4iLCB7CisgICAgICAgIG9wdGlvbnM6IHthdXRvSW5jcmVtZW50OiB0cnVlfSwKKyAgICAgICAg
dGVzdHM6IFsKKyAgICAgICAgICAgIHt2YWx1ZTogZmFsc2UsIGV4cGVjdGVkOiAxfSwKKyAgICAg
ICAgICAgIHt2YWx1ZTogdHJ1ZSwgZXhwZWN0ZWQ6IDJ9LAorICAgICAgICBdLAorICAgIH0pOwor
CisgICAgdGVzdERlbGV0ZSgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZS5OdW1iZXIi
LCB7CisgICAgICAgIG9wdGlvbnM6IHthdXRvSW5jcmVtZW50OiB0cnVlfSwKKyAgICAgICAgdGVz
dHM6IFsKKyAgICAgICAgICAgIHt2YWx1ZTogMTEsIGV4cGVjdGVkOiAxfSwKKyAgICAgICAgICAg
IHt2YWx1ZTogMjIsIGV4cGVjdGVkOiAyfSwKKyAgICAgICAgXSwKKyAgICB9KTsKKworICAgIHRl
c3REZWxldGUoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGUuU3RyaW5nIiwgeworICAg
ICAgICBvcHRpb25zOiB7YXV0b0luY3JlbWVudDogdHJ1ZX0sCisgICAgICAgIHRlc3RzOiBbCisg
ICAgICAgICAgICB7dmFsdWU6ICJmb28iLCBleHBlY3RlZDogMX0sCisgICAgICAgICAgICB7dmFs
dWU6ICJiYXIiLCBleHBlY3RlZDogMn0sCisgICAgICAgIF0sCisgICAgfSk7CisKKyAgICB0ZXN0
RGVsZXRlKCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlLkFycmF5IiwgeworICAgICAg
ICBvcHRpb25zOiB7YXV0b0luY3JlbWVudDogdHJ1ZX0sCisgICAgICAgIHRlc3RzOiBbCisgICAg
ICAgICAgICB7dmFsdWU6IFsxMV0sIGV4cGVjdGVkOiAxfSwKKyAgICAgICAgICAgIHt2YWx1ZTog
WzIyXSwgZXhwZWN0ZWQ6IDJ9LAorICAgICAgICBdLAorICAgIH0pOworCisgICAgdGVzdERlbGV0
ZSgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZS5OdWxsIiwgeworICAgICAgICBvcHRp
b25zOiB7YXV0b0luY3JlbWVudDogdHJ1ZX0sCisgICAgICAgIHRlc3RzOiBbCisgICAgICAgICAg
ICB7dmFsdWU6IG51bGwsIGV4cGVjdGVkOiAxfSwKKyAgICAgICAgXSwKKyAgICB9KTsKKworICAg
IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUud3JhcFRlc3QoIldJLk9iamVjdFN0b3JlLnByb3Rv
dHlwZS5kZWxldGUuT2JqZWN0LldpdGhvdXRLZXlQYXRoT3JBdXRvSW5jcmVtZW50IiwgYXN5bmMg
ZnVuY3Rpb24oKSB7CisgICAgICAgIGxldCBvYmplY3RTdG9yZSA9IEluc3BlY3RvclRlc3QuT2Jq
ZWN0U3RvcmUuY3JlYXRlT2JqZWN0U3RvcmUoKTsKKworICAgICAgICBhd2FpdCBJbnNwZWN0b3JU
ZXN0LmV4cGVjdEV4Y2VwdGlvbihhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGF3YWl0
IG9iamVjdFN0b3JlLmFkZChJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MSk7
CisgICAgICAgICAgICBhd2FpdCBvYmplY3RTdG9yZS5hZGQoSW5zcGVjdG9yVGVzdC5PYmplY3RT
dG9yZS5iYXNpY09iamVjdDIpOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIEluc3BlY3Rv
clRlc3QuT2JqZWN0U3RvcmUud3JhcFRlc3QoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxl
dGUuT2JqZWN0LktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCIsIGFz
eW5jIGZ1bmN0aW9uKCkgeworICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAg
a2V5UGF0aDogIktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCIsCisg
ICAgICAgIH07CisgICAgICAgIGxldCBvYmplY3RTdG9yZSA9IEluc3BlY3RvclRlc3QuT2JqZWN0
U3RvcmUuY3JlYXRlT2JqZWN0U3RvcmUob3B0aW9ucyk7CisKKyAgICAgICAgYXdhaXQgSW5zcGVj
dG9yVGVzdC5leHBlY3RFeGNlcHRpb24oYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBh
d2FpdCBvYmplY3RTdG9yZS5hZGQoSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVj
dDEpOworICAgICAgICAgICAgYXdhaXQgb2JqZWN0U3RvcmUuYWRkKEluc3BlY3RvclRlc3QuT2Jq
ZWN0U3RvcmUuYmFzaWNPYmplY3QyKTsKKyAgICAgICAgfSk7CisgICAgfSk7CisKKyAgICB0ZXN0
RGVsZXRlKCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlLk9iamVjdC5LZXlQYXRoU2V0
T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCIsIHsKKyAgICAgICAgb3B0aW9uczoge2tleVBh
dGg6ICJLZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCJ9LAorICAgICAgICB0
ZXN0czogWworICAgICAgICAgICAge3ZhbHVlOiB7S2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1
dG9JbmNyZW1lbnQ6IDQyLCAuLi5JbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0
MX0sIGV4cGVjdGVkOiA0Mn0sCisgICAgICAgICAgICB7dmFsdWU6IHtLZXlQYXRoU2V0T25PYmpl
Y3RXaXRob3V0QXV0b0luY3JlbWVudDogOTksIC4uLkluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUu
YmFzaWNPYmplY3QyfSwgZXhwZWN0ZWQ6IDk5fSwKKyAgICAgICAgXSwKKyAgICB9KTsKKworICAg
IHRlc3REZWxldGUoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGUuT2JqZWN0LktleVBh
dGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCIsIHsKKyAgICAgICAgb3B0aW9uczog
e2tleVBhdGg6ICJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiLCBhdXRv
SW5jcmVtZW50OiB0cnVlfSwKKyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAgIHt2YWx1ZTog
SW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDEsIGV4cGVjdGVkOiAxfSwKKyAg
ICAgICAgICAgIHt2YWx1ZTogSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDIs
IGV4cGVjdGVkOiAyfSwKKyAgICAgICAgXSwKKyAgICB9KTsKKworICAgIHRlc3REZWxldGUoIldJ
Lk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGUuT2JqZWN0LktleVBhdGhTZXRPbk9iamVjdFdp
dGhBdXRvSW5jcmVtZW50IiwgeworICAgICAgICBvcHRpb25zOiB7a2V5UGF0aDogIktleVBhdGhT
ZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50IiwgYXV0b0luY3JlbWVudDogdHJ1ZX0sCisgICAg
ICAgIHRlc3RzOiBbCisgICAgICAgICAgICB7dmFsdWU6IHtLZXlQYXRoU2V0T25PYmplY3RXaXRo
QXV0b0luY3JlbWVudDogNDIsIC4uLkluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmpl
Y3QxfSwgZXhwZWN0ZWQ6IDQyfSwKKyAgICAgICAgICAgIHt2YWx1ZToge0tleVBhdGhTZXRPbk9i
amVjdFdpdGhBdXRvSW5jcmVtZW50OiA5OSwgLi4uSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5i
YXNpY09iamVjdDJ9LCBleHBlY3RlZDogOTl9LAorICAgICAgICBdLAorICAgIH0pOworCisgICAg
dGVzdERlbGV0ZSgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZS5PYmplY3QuQXV0b0lu
Y3JlbWVudFdpdGhvdXRLZXlQYXRoIiwgeworICAgICAgICBvcHRpb25zOiB7YXV0b0luY3JlbWVu
dDogdHJ1ZX0sCisgICAgICAgIHRlc3RzOiBbCisgICAgICAgICAgICB7dmFsdWU6IEluc3BlY3Rv
clRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QxLCBleHBlY3RlZDogMX0sCisgICAgICAgICAg
ICB7dmFsdWU6IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyLCBleHBlY3Rl
ZDogMn0sCisgICAgICAgIF0sCisgICAgfSk7CisKKyAgICB0ZXN0RGVsZXRlKCJXSS5PYmplY3RT
dG9yZS5wcm90b3R5cGUuZGVsZXRlLk9iamVjdC5LZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0
b0luY3JlbWVudC5TdWIiLCB7CisgICAgICAgIG9wdGlvbnM6IHtrZXlQYXRoOiAiS2V5UGF0aFNl
dE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQuU3ViIn0sCisgICAgICAgIHRlc3RzOiBbCisg
ICAgICAgICAgICB7dmFsdWU6IHtLZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVu
dDoge1N1YjogNDJ9LCAuLi5JbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MX0s
IGV4cGVjdGVkOiA0Mn0sCisgICAgICAgICAgICB7dmFsdWU6IHtLZXlQYXRoU2V0T25PYmplY3RX
aXRob3V0QXV0b0luY3JlbWVudDoge1N1YjogOTl9LCAuLi5JbnNwZWN0b3JUZXN0Lk9iamVjdFN0
b3JlLmJhc2ljT2JqZWN0Mn0sIGV4cGVjdGVkOiA5OX0sCisgICAgICAgIF0sCisgICAgfSk7CisK
KyAgICB0ZXN0RGVsZXRlKCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlLk9iamVjdC5L
ZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQuU3ViIiwgeworICAgICAgICBv
cHRpb25zOiB7a2V5UGF0aDogIktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVu
dC5TdWIiLCBhdXRvSW5jcmVtZW50OiB0cnVlfSwKKyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAg
ICAgIHt2YWx1ZTogSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDEsIGV4cGVj
dGVkOiAxfSwKKyAgICAgICAgICAgIHt2YWx1ZTogSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5i
YXNpY09iamVjdDIsIGV4cGVjdGVkOiAyfSwKKyAgICAgICAgXSwKKyAgICB9KTsKKworICAgIHRl
c3REZWxldGUoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGUuT2JqZWN0LktleVBhdGhT
ZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50LlN1YiIsIHsKKyAgICAgICAgb3B0aW9uczoge2tl
eVBhdGg6ICJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudC5TdWIiLCBhdXRvSW5j
cmVtZW50OiB0cnVlfSwKKyAgICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAgIHt2YWx1ZToge0tl
eVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50OiB7U3ViOiA0Mn0sIC4uLkluc3BlY3Rv
clRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QxfSwgZXhwZWN0ZWQ6IDQyfSwKKyAgICAgICAg
ICAgIHt2YWx1ZToge0tleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50OiB7U3ViOiA5
OX0sIC4uLkluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyfSwgZXhwZWN0ZWQ6
IDk5fSwKKyAgICAgICAgXSwKKyAgICB9KTsKKworICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZp
bmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+
CisgICAgPHA+VGVzdHMgV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZS48L3A+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0
cy9vYmplY3RTdG9yZS9kZWxldGVPYmplY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL3VuaXQtdGVzdHMvb2JqZWN0U3RvcmUvZGVsZXRlT2JqZWN0LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kOWQ5YWQ5NjI5Yzc2YWRhMGYwMDYwZGY3MGUyMjNlNjJmMDY3YTFmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvb2JqZWN0U3Rv
cmUvZGVsZXRlT2JqZWN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDgwIEBACitUZXN0cyBXSS5P
YmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlT2JqZWN0LgorCisKKz09IFJ1bm5pbmcgdGVzdCBz
dWl0ZTogV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZU9iamVjdAorLS0gUnVubmluZyB0
ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGVPYmplY3QuTm9QYXJhbWV0
ZXJzCithZGQ6IFt7Il9vYmplY3QiOnsiYiI6Mn19XQorUEFTUzogU2hvdWxkIHByb2R1Y2UgYW4g
ZXhjZXB0aW9uLgorVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVh
dGluZyAnb2JqZWN0W2tleV0nKQorW3siX29iamVjdCI6eyJiIjoyfX1dCisKKy0tIFJ1bm5pbmcg
dGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlT2JqZWN0Lk1pc3NpbmdP
YmplY3QKK2FkZDogW3siX29iamVjdCI6eyJiIjoyfX1dCitQQVNTOiBTaG91bGQgcHJvZHVjZSBh
biBleGNlcHRpb24uCitEYXRhRXJyb3I6IEZhaWxlZCB0byBleGVjdXRlICdkZWxldGUnIG9uICdJ
REJPYmplY3RTdG9yZSc6IFRoZSBwYXJhbWV0ZXIgaXMgbm90IGEgdmFsaWQga2V5IHJhbmdlLgor
W3siX29iamVjdCI6eyJiIjoyfX1dCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RT
dG9yZS5wcm90b3R5cGUuZGVsZXRlT2JqZWN0LktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRob3V0
QXV0b0luY3JlbWVudAorUEFTUzogU2hvdWxkIHByb2R1Y2UgYW4gZXhjZXB0aW9uLgorRGF0YUVy
cm9yOiBGYWlsZWQgdG8gZXhlY3V0ZSAnZGVsZXRlJyBvbiAnSURCT2JqZWN0U3RvcmUnOiBUaGUg
cGFyYW1ldGVyIGlzIG5vdCBhIHZhbGlkIGtleSByYW5nZS4KK1tdCisKKy0tIFJ1bm5pbmcgdGVz
dCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlT2JqZWN0LldpdGhvdXRLZXlQ
YXRoT3JBdXRvSW5jcmVtZW50CitQQVNTOiBTaG91bGQgcHJvZHVjZSBhbiBleGNlcHRpb24uCitE
YXRhRXJyb3I6IEZhaWxlZCB0byBzdG9yZSByZWNvcmQgaW4gYW4gSURCT2JqZWN0U3RvcmU6IFRo
ZSBvYmplY3Qgc3RvcmUgdXNlcyBvdXQtb2YtbGluZSBrZXlzIGFuZCBoYXMgbm8ga2V5IGdlbmVy
YXRvciBhbmQgdGhlIGtleSBwYXJhbWV0ZXIgd2FzIG5vdCBwcm92aWRlZC4KK1tdCisKKy0tIFJ1
bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlT2JqZWN0Lktl
eVBhdGhNaXNzaW5nT25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudAorUEFTUzogU2hvdWxkIHBy
b2R1Y2UgYW4gZXhjZXB0aW9uLgorRGF0YUVycm9yOiBGYWlsZWQgdG8gc3RvcmUgcmVjb3JkIGlu
IGFuIElEQk9iamVjdFN0b3JlOiBFdmFsdWF0aW5nIHRoZSBvYmplY3Qgc3RvcmUncyBrZXkgcGF0
aCBkaWQgbm90IHlpZWxkIGEgdmFsdWUuCitbXQorCistLSBSdW5uaW5nIHRlc3QgY2FzZTogV0ku
T2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZU9iamVjdC5LZXlQYXRoU2V0T25PYmplY3RXaXRo
b3V0QXV0b0luY3JlbWVudAorYWRkT2JqZWN0OiBbeyJLZXlQYXRoU2V0T25PYmplY3RXaXRob3V0
QXV0b0luY3JlbWVudCI6NDIsImEiOjF9XQorYWRkT2JqZWN0OiBbeyJLZXlQYXRoU2V0T25PYmpl
Y3RXaXRob3V0QXV0b0luY3JlbWVudCI6NDIsImEiOjF9LHsiS2V5UGF0aFNldE9uT2JqZWN0V2l0
aG91dEF1dG9JbmNyZW1lbnQiOjk5LCJiIjoyfV0KK2RlbGV0ZU9iamVjdDogW3siS2V5UGF0aFNl
dE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiOjk5LCJiIjoyfV0KK2RlbGV0ZU9iamVjdDog
W10KK1tdCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUu
ZGVsZXRlT2JqZWN0LktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudAorYWRk
T2JqZWN0OiBbeyJhIjoxLCJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQi
OjF9XQorYWRkT2JqZWN0OiBbeyJhIjoxLCJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9J
bmNyZW1lbnQiOjF9LHsiYiI6MiwiS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVt
ZW50IjoyfV0KK2RlbGV0ZU9iamVjdDogW3siYiI6MiwiS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdp
dGhBdXRvSW5jcmVtZW50IjoyfV0KK2RlbGV0ZU9iamVjdDogW10KK1tdCisKKy0tIFJ1bm5pbmcg
dGVzdCBjYXNlOiBXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlT2JqZWN0LktleVBhdGhT
ZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50CithZGRPYmplY3Q6IFt7IktleVBhdGhTZXRPbk9i
amVjdFdpdGhBdXRvSW5jcmVtZW50Ijo0MiwiYSI6MX1dCithZGRPYmplY3Q6IFt7IktleVBhdGhT
ZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijo0MiwiYSI6MX0seyJLZXlQYXRoU2V0T25PYmpl
Y3RXaXRoQXV0b0luY3JlbWVudCI6OTksImIiOjJ9XQorZGVsZXRlT2JqZWN0OiBbeyJLZXlQYXRo
U2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6OTksImIiOjJ9XQorZGVsZXRlT2JqZWN0OiBb
XQorW10KKworLS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5k
ZWxldGVPYmplY3QuQXV0b0luY3JlbWVudFdpdGhvdXRLZXlQYXRoCithZGRPYmplY3Q6IFt7ImEi
OjF9XQorYWRkT2JqZWN0OiBbeyJhIjoxfSx7ImIiOjJ9XQorZGVsZXRlT2JqZWN0OiBbeyJiIjoy
fV0KK2RlbGV0ZU9iamVjdDogW10KK1tdCisKKy0tIFJ1bm5pbmcgdGVzdCBjYXNlOiBXSS5PYmpl
Y3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlT2JqZWN0LktleVBhdGhTZXRPbk9iamVjdFdpdGhvdXRB
dXRvSW5jcmVtZW50LlN1YgorYWRkT2JqZWN0OiBbeyJLZXlQYXRoU2V0T25PYmplY3RXaXRob3V0
QXV0b0luY3JlbWVudCI6eyJTdWIiOjQyfSwiYSI6MX1dCithZGRPYmplY3Q6IFt7IktleVBhdGhT
ZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Ijp7IlN1YiI6NDJ9LCJhIjoxfSx7IktleVBh
dGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50Ijp7IlN1YiI6OTl9LCJiIjoyfV0KK2Rl
bGV0ZU9iamVjdDogW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiOnsi
U3ViIjo5OX0sImIiOjJ9XQorZGVsZXRlT2JqZWN0OiBbXQorW10KKworLS0gUnVubmluZyB0ZXN0
IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGVPYmplY3QuS2V5UGF0aE1pc3Np
bmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50LlN1YgorYWRkT2JqZWN0OiBbeyJhIjoxLCJLZXlQ
YXRoTWlzc2luZ09uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOnsiU3ViIjoxfX1dCithZGRPYmpl
Y3Q6IFt7ImEiOjEsIktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6eyJT
dWIiOjF9fSx7ImIiOjIsIktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCI6
eyJTdWIiOjJ9fV0KK2RlbGV0ZU9iamVjdDogW3siYiI6MiwiS2V5UGF0aE1pc3NpbmdPbk9iamVj
dFdpdGhBdXRvSW5jcmVtZW50Ijp7IlN1YiI6Mn19XQorZGVsZXRlT2JqZWN0OiBbXQorW10KKwor
LS0gUnVubmluZyB0ZXN0IGNhc2U6IFdJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGVPYmpl
Y3QuS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQuU3ViCithZGRPYmplY3Q6IFt7
IktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50Ijp7IlN1YiI6NDJ9LCJhIjoxfV0K
K2FkZE9iamVjdDogW3siS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOnsiU3Vi
Ijo0Mn0sImEiOjF9LHsiS2V5UGF0aFNldE9uT2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQiOnsiU3Vi
Ijo5OX0sImIiOjJ9XQorZGVsZXRlT2JqZWN0OiBbeyJLZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0
b0luY3JlbWVudCI6eyJTdWIiOjk5fSwiYiI6Mn1dCitkZWxldGVPYmplY3Q6IFtdCitbXQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9vYmplY3RTdG9yZS9k
ZWxldGVPYmplY3QuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci91bml0LXRlc3RzL29iamVj
dFN0b3JlL2RlbGV0ZU9iamVjdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcyMjFiYmI2N2E2NWJjNDA2NWNi
Yzk0Y2Q5MzUyZTYxNjRkMjc2ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvdW5pdC10ZXN0cy9vYmplY3RTdG9yZS9kZWxldGVPYmplY3QuaHRtbApAQCAtMCwwICsx
LDE1MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL3Jlc291cmNlcy9pbnNwZWN0b3ItdGVzdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL29iamVjdFN0b3JlLXV0aWxpdGllcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdCgpCit7CisgICAgbGV0IHN1aXRl
ID0gSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5jcmVhdGVTdWl0ZSgiV0kuT2JqZWN0U3RvcmUu
cHJvdG90eXBlLmRlbGV0ZU9iamVjdCIpOworCisgICAgZnVuY3Rpb24gdGVzdERlbGV0ZU9iamVj
dChuYW1lLCB7b3B0aW9ucywgdGVzdHN9KSB7CisgICAgICAgIEluc3BlY3RvclRlc3QuT2JqZWN0
U3RvcmUud3JhcFRlc3QobmFtZSwgYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmNyZWF0ZU9iamVjdFN0b3JlKG9wdGlvbnMpOworCisgICAg
ICAgICAgICBsZXQgb2JqZWN0cyA9IFtdCisgICAgICAgICAgICBmb3IgKGxldCB7dmFsdWUsIGV4
cGVjdGVkfSBvZiB0ZXN0cykgeworICAgICAgICAgICAgICAgIGxldCBvYmplY3QgPSBuZXcgSW5z
cGVjdG9yVGVzdC5PYmplY3RTdG9yZS5UZXN0T2JqZWN0KHZhbHVlKTsKKyAgICAgICAgICAgICAg
ICBhd2FpdCBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmFkZE9iamVjdChvYmplY3QsIGV4cGVj
dGVkKTsKKyAgICAgICAgICAgICAgICBvYmplY3RzLnB1c2gob2JqZWN0KTsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgZm9yIChsZXQgb2JqZWN0IG9mIG9iamVjdHMpCisgICAgICAgICAg
ICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5kZWxldGVPYmplY3Qob2JqZWN0
KTsKKyAgICAgICAgfSk7CisgICAgfQorCisgICAgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS53
cmFwVGVzdCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZU9iamVjdC5Ob1BhcmFtZXRl
cnMiLCBhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAg
ICAgICAgIGF1dG9JbmNyZW1lbnQ6IHRydWUsCisgICAgICAgIH07CisgICAgICAgIGxldCBvYmpl
Y3RTdG9yZSA9IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuY3JlYXRlT2JqZWN0U3RvcmUob3B0
aW9ucyk7CisKKyAgICAgICAgYXdhaXQgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5hZGQobmV3
IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuVGVzdE9iamVjdChJbnNwZWN0b3JUZXN0Lk9iamVj
dFN0b3JlLmJhc2ljT2JqZWN0MiksIDEpOworCisgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3Qu
ZXhwZWN0RXhjZXB0aW9uKGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgIGF3YWl0IG9iamVjdFN0
b3JlLmRlbGV0ZU9iamVjdCgpOworICAgICAgICAgICAgYXdhaXQgb2JqZWN0U3RvcmUuZGVsZXRl
T2JqZWN0KG5ldyBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLlRlc3RPYmplY3QoSW5zcGVjdG9y
VGVzdC5PYmplY3RTdG9yZS5iYXNpY09iamVjdDIpKTsKKyAgICAgICAgfSk7CisgICAgfSk7CisK
KyAgICBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLndyYXBUZXN0KCJXSS5PYmplY3RTdG9yZS5w
cm90b3R5cGUuZGVsZXRlT2JqZWN0Lk1pc3NpbmdPYmplY3QiLCBhc3luYyBmdW5jdGlvbigpIHsK
KyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIGF1dG9JbmNyZW1lbnQ6IHRy
dWUsCisgICAgICAgIH07CisgICAgICAgIGxldCBvYmplY3RTdG9yZSA9IEluc3BlY3RvclRlc3Qu
T2JqZWN0U3RvcmUuY3JlYXRlT2JqZWN0U3RvcmUob3B0aW9ucyk7CisKKyAgICAgICAgYXdhaXQg
SW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5hZGQobmV3IEluc3BlY3RvclRlc3QuT2JqZWN0U3Rv
cmUuVGVzdE9iamVjdChJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MiksIDEp
OworCisgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXhwZWN0RXhjZXB0aW9uKGFzeW5jICgp
ID0+IHsKKyAgICAgICAgICAgIGF3YWl0IG9iamVjdFN0b3JlLmRlbGV0ZU9iamVjdChuZXcgSW5z
cGVjdG9yVGVzdC5PYmplY3RTdG9yZS5UZXN0T2JqZWN0KEluc3BlY3RvclRlc3QuT2JqZWN0U3Rv
cmUuYmFzaWNPYmplY3QxKSk7CisgICAgICAgICAgICBhd2FpdCBvYmplY3RTdG9yZS5kZWxldGVP
YmplY3QobmV3IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuVGVzdE9iamVjdChJbnNwZWN0b3JU
ZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MikpOworICAgICAgICB9KTsKKyAgICB9KTsKKwor
ICAgIEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUud3JhcFRlc3QoIldJLk9iamVjdFN0b3JlLnBy
b3RvdHlwZS5kZWxldGVPYmplY3QuS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhvdXRBdXRvSW5j
cmVtZW50IiwgYXN5bmMgZnVuY3Rpb24oKSB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7Cisg
ICAgICAgICAgICBrZXlQYXRoOiAiS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhvdXRBdXRvSW5j
cmVtZW50IiwKKyAgICAgICAgfTsKKyAgICAgICAgbGV0IG9iamVjdFN0b3JlID0gSW5zcGVjdG9y
VGVzdC5PYmplY3RTdG9yZS5jcmVhdGVPYmplY3RTdG9yZShvcHRpb25zKTsKKworICAgICAgICBh
d2FpdCBJbnNwZWN0b3JUZXN0LmV4cGVjdEV4Y2VwdGlvbihhc3luYyBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgIGF3YWl0IG9iamVjdFN0b3JlLmRlbGV0ZU9iamVjdChuZXcgSW5zcGVjdG9yVGVz
dC5PYmplY3RTdG9yZS5UZXN0T2JqZWN0KEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNP
YmplY3QxKSk7CisgICAgICAgICAgICBhd2FpdCBvYmplY3RTdG9yZS5kZWxldGVPYmplY3QobmV3
IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuVGVzdE9iamVjdChJbnNwZWN0b3JUZXN0Lk9iamVj
dFN0b3JlLmJhc2ljT2JqZWN0MikpOworICAgICAgICB9KTsKKyAgICB9KTsKKworICAgIEluc3Bl
Y3RvclRlc3QuT2JqZWN0U3RvcmUud3JhcFRlc3QoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5k
ZWxldGVPYmplY3QuV2l0aG91dEtleVBhdGhPckF1dG9JbmNyZW1lbnQiLCBhc3luYyBmdW5jdGlv
bigpIHsKKyAgICAgICAgbGV0IG9iamVjdFN0b3JlID0gSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9y
ZS5jcmVhdGVPYmplY3RTdG9yZSgpOworCisgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3QuZXhw
ZWN0RXhjZXB0aW9uKGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYXdhaXQgb2JqZWN0
U3RvcmUuYWRkKEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QxKTsKKyAgICAg
ICAgICAgIGF3YWl0IG9iamVjdFN0b3JlLmFkZChJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJh
c2ljT2JqZWN0Mik7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgSW5zcGVjdG9yVGVzdC5P
YmplY3RTdG9yZS53cmFwVGVzdCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZU9iamVj
dC5LZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiLCBhc3luYyBmdW5j
dGlvbigpIHsKKyAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIGtleVBhdGg6
ICJLZXlQYXRoTWlzc2luZ09uT2JqZWN0V2l0aG91dEF1dG9JbmNyZW1lbnQiLAorICAgICAgICB9
OworICAgICAgICBsZXQgb2JqZWN0U3RvcmUgPSBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmNy
ZWF0ZU9iamVjdFN0b3JlKG9wdGlvbnMpOworCisgICAgICAgIGF3YWl0IEluc3BlY3RvclRlc3Qu
ZXhwZWN0RXhjZXB0aW9uKGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYXdhaXQgb2Jq
ZWN0U3RvcmUuYWRkKEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QxKTsKKyAg
ICAgICAgICAgIGF3YWl0IG9iamVjdFN0b3JlLmFkZChJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3Jl
LmJhc2ljT2JqZWN0Mik7CisgICAgICAgIH0pOworICAgIH0pOworCisgICAgdGVzdERlbGV0ZU9i
amVjdCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZU9iamVjdC5LZXlQYXRoU2V0T25P
YmplY3RXaXRob3V0QXV0b0luY3JlbWVudCIsIHsKKyAgICAgICAgb3B0aW9uczoge2tleVBhdGg6
ICJLZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudCJ9LAorICAgICAgICB0ZXN0
czogWworICAgICAgICAgICAge3ZhbHVlOiB7S2V5UGF0aFNldE9uT2JqZWN0V2l0aG91dEF1dG9J
bmNyZW1lbnQ6IDQyLCAuLi5JbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MX0s
IGV4cGVjdGVkOiA0Mn0sCisgICAgICAgICAgICB7dmFsdWU6IHtLZXlQYXRoU2V0T25PYmplY3RX
aXRob3V0QXV0b0luY3JlbWVudDogOTksIC4uLkluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFz
aWNPYmplY3QyfSwgZXhwZWN0ZWQ6IDk5fSwKKyAgICAgICAgXSwKKyAgICB9KTsKKworICAgIHRl
c3REZWxldGVPYmplY3QoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGVPYmplY3QuS2V5
UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50IiwgeworICAgICAgICBvcHRpb25z
OiB7a2V5UGF0aDogIktleVBhdGhNaXNzaW5nT25PYmplY3RXaXRoQXV0b0luY3JlbWVudCIsIGF1
dG9JbmNyZW1lbnQ6IHRydWV9LAorICAgICAgICB0ZXN0czogWworICAgICAgICAgICAge3ZhbHVl
OiBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0MSwgZXhwZWN0ZWQ6IDF9LAor
ICAgICAgICAgICAge3ZhbHVlOiBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJhc2ljT2JqZWN0
MiwgZXhwZWN0ZWQ6IDJ9LAorICAgICAgICBdLAorICAgIH0pOworCisgICAgdGVzdERlbGV0ZU9i
amVjdCgiV0kuT2JqZWN0U3RvcmUucHJvdG90eXBlLmRlbGV0ZU9iamVjdC5LZXlQYXRoU2V0T25P
YmplY3RXaXRoQXV0b0luY3JlbWVudCIsIHsKKyAgICAgICAgb3B0aW9uczoge2tleVBhdGg6ICJL
ZXlQYXRoU2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudCIsIGF1dG9JbmNyZW1lbnQ6IHRydWV9
LAorICAgICAgICB0ZXN0czogWworICAgICAgICAgICAge3ZhbHVlOiB7S2V5UGF0aFNldE9uT2Jq
ZWN0V2l0aEF1dG9JbmNyZW1lbnQ6IDQyLCAuLi5JbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmJh
c2ljT2JqZWN0MX0sIGV4cGVjdGVkOiA0Mn0sCisgICAgICAgICAgICB7dmFsdWU6IHtLZXlQYXRo
U2V0T25PYmplY3RXaXRoQXV0b0luY3JlbWVudDogOTksIC4uLkluc3BlY3RvclRlc3QuT2JqZWN0
U3RvcmUuYmFzaWNPYmplY3QyfSwgZXhwZWN0ZWQ6IDk5fSwKKyAgICAgICAgXSwKKyAgICB9KTsK
KworICAgIHRlc3REZWxldGVPYmplY3QoIldJLk9iamVjdFN0b3JlLnByb3RvdHlwZS5kZWxldGVP
YmplY3QuQXV0b0luY3JlbWVudFdpdGhvdXRLZXlQYXRoIiwgeworICAgICAgICBvcHRpb25zOiB7
YXV0b0luY3JlbWVudDogdHJ1ZX0sCisgICAgICAgIHRlc3RzOiBbCisgICAgICAgICAgICB7dmFs
dWU6IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QxLCBleHBlY3RlZDogMX0s
CisgICAgICAgICAgICB7dmFsdWU6IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmpl
Y3QyLCBleHBlY3RlZDogMn0sCisgICAgICAgIF0sCisgICAgfSk7CisKKyAgICB0ZXN0RGVsZXRl
T2JqZWN0KCJXSS5PYmplY3RTdG9yZS5wcm90b3R5cGUuZGVsZXRlT2JqZWN0LktleVBhdGhTZXRP
bk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50LlN1YiIsIHsKKyAgICAgICAgb3B0aW9uczoge2tl
eVBhdGg6ICJLZXlQYXRoU2V0T25PYmplY3RXaXRob3V0QXV0b0luY3JlbWVudC5TdWIifSwKKyAg
ICAgICAgdGVzdHM6IFsKKyAgICAgICAgICAgIHt2YWx1ZToge0tleVBhdGhTZXRPbk9iamVjdFdp
dGhvdXRBdXRvSW5jcmVtZW50OiB7U3ViOiA0Mn0sIC4uLkluc3BlY3RvclRlc3QuT2JqZWN0U3Rv
cmUuYmFzaWNPYmplY3QxfSwgZXhwZWN0ZWQ6IDQyfSwKKyAgICAgICAgICAgIHt2YWx1ZToge0tl
eVBhdGhTZXRPbk9iamVjdFdpdGhvdXRBdXRvSW5jcmVtZW50OiB7U3ViOiA5OX0sIC4uLkluc3Bl
Y3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyfSwgZXhwZWN0ZWQ6IDk5fSwKKyAgICAg
ICAgXSwKKyAgICB9KTsKKworICAgIHRlc3REZWxldGVPYmplY3QoIldJLk9iamVjdFN0b3JlLnBy
b3RvdHlwZS5kZWxldGVPYmplY3QuS2V5UGF0aE1pc3NpbmdPbk9iamVjdFdpdGhBdXRvSW5jcmVt
ZW50LlN1YiIsIHsKKyAgICAgICAgb3B0aW9uczoge2tleVBhdGg6ICJLZXlQYXRoTWlzc2luZ09u
T2JqZWN0V2l0aEF1dG9JbmNyZW1lbnQuU3ViIiwgYXV0b0luY3JlbWVudDogdHJ1ZX0sCisgICAg
ICAgIHRlc3RzOiBbCisgICAgICAgICAgICB7dmFsdWU6IEluc3BlY3RvclRlc3QuT2JqZWN0U3Rv
cmUuYmFzaWNPYmplY3QxLCBleHBlY3RlZDogMX0sCisgICAgICAgICAgICB7dmFsdWU6IEluc3Bl
Y3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3QyLCBleHBlY3RlZDogMn0sCisgICAgICAg
IF0sCisgICAgfSk7CisKKyAgICB0ZXN0RGVsZXRlT2JqZWN0KCJXSS5PYmplY3RTdG9yZS5wcm90
b3R5cGUuZGVsZXRlT2JqZWN0LktleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVtZW50LlN1
YiIsIHsKKyAgICAgICAgb3B0aW9uczoge2tleVBhdGg6ICJLZXlQYXRoU2V0T25PYmplY3RXaXRo
QXV0b0luY3JlbWVudC5TdWIiLCBhdXRvSW5jcmVtZW50OiB0cnVlfSwKKyAgICAgICAgdGVzdHM6
IFsKKyAgICAgICAgICAgIHt2YWx1ZToge0tleVBhdGhTZXRPbk9iamVjdFdpdGhBdXRvSW5jcmVt
ZW50OiB7U3ViOiA0Mn0sIC4uLkluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYmFzaWNPYmplY3Qx
fSwgZXhwZWN0ZWQ6IDQyfSwKKyAgICAgICAgICAgIHt2YWx1ZToge0tleVBhdGhTZXRPbk9iamVj
dFdpdGhBdXRvSW5jcmVtZW50OiB7U3ViOiA5OX0sIC4uLkluc3BlY3RvclRlc3QuT2JqZWN0U3Rv
cmUuYmFzaWNPYmplY3QyfSwgZXhwZWN0ZWQ6IDk5fSwKKyAgICAgICAgXSwKKyAgICB9KTsKKwor
ICAgIHN1aXRlLnJ1blRlc3RDYXNlc0FuZEZpbmlzaCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPHA+VGVzdHMgV0kuT2JqZWN0U3RvcmUu
cHJvdG90eXBlLmRlbGV0ZU9iamVjdC48L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvdW5pdC10ZXN0cy9vYmplY3RTdG9yZS9yZXNvdXJjZXMv
b2JqZWN0U3RvcmUtdXRpbGl0aWVzLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVz
dHMvb2JqZWN0U3RvcmUvcmVzb3VyY2VzL29iamVjdFN0b3JlLXV0aWxpdGllcy5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xOTQ3ODAwZDgyOGI3NWZhNDU4MTE0MjZiYjE3NDM1ODJiMmJkNDk1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3VuaXQtdGVzdHMvb2JqZWN0U3RvcmUvcmVz
b3VyY2VzL29iamVjdFN0b3JlLXV0aWxpdGllcy5qcwpAQCAtMCwwICsxLDkzIEBACitUZXN0UGFn
ZS5yZWdpc3RlckluaXRpYWxpemVyKCgpID0+IHsKKyAgICBsZXQgc3VpdGUgPSBudWxsOworCisg
ICAgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZSA9IHt9OworCisgICAgSW5zcGVjdG9yVGVzdC5P
YmplY3RTdG9yZS5UZXN0T2JqZWN0ID0gY2xhc3MgVGVzdE9iamVjdCB7CisgICAgICAgIGNvbnN0
cnVjdG9yKG9iamVjdCkgeworICAgICAgICAgICAgdGhpcy5fb2JqZWN0ID0gb2JqZWN0OworICAg
ICAgICB9CisgICAgICAgIHRvSlNPTigpIHsKKyAgICAgICAgICAgIHJldHVybiB0aGlzLl9vYmpl
Y3Q7CisgICAgICAgIH0KKyAgICB9OworCisgICAgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5i
YXNpY09iamVjdDEgPSB7YTogMX07CisgICAgSW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5iYXNp
Y09iamVjdDIgPSB7YjogMn07CisKKyAgICBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmNyZWF0
ZVN1aXRlID0gZnVuY3Rpb24obmFtZSkgeworICAgICAgICBzdWl0ZSA9IEluc3BlY3RvclRlc3Qu
Y3JlYXRlQXN5bmNTdWl0ZShuYW1lKTsKKyAgICAgICAgcmV0dXJuIHN1aXRlOworICAgIH07CisK
KyAgICBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmNyZWF0ZU9iamVjdFN0b3JlID0gZnVuY3Rp
b24ob3B0aW9ucyA9IHt9KSB7CisgICAgICAgIFdJLk9iamVjdFN0b3JlLl9fdGVzdE9iamVjdFN0
b3JlID0gbmV3IFdJLk9iamVjdFN0b3JlKCJfX3Rlc3RpbmciLCBvcHRpb25zKTsKKyAgICAgICAg
cmV0dXJuIFdJLk9iamVjdFN0b3JlLl9fdGVzdE9iamVjdFN0b3JlOworICAgIH07CisKKyAgICBJ
bnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmFkZCA9IGFzeW5jIGZ1bmN0aW9uKHZhbHVlLCBleHBl
Y3RlZCkgeworICAgICAgICBsZXQgcmVzdWx0ID0gYXdhaXQgV0kuT2JqZWN0U3RvcmUuX190ZXN0
T2JqZWN0U3RvcmUuYWRkKHZhbHVlKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQocmVz
dWx0ID09PSBleHBlY3RlZCwgYHRoZSBrZXkgb2YgdGhlIGFkZGVkIGl0ZW0gc2hvdWxkIGJlICR7
ZXhwZWN0ZWR9LCBidXQgaXMgYWN0dWFsbHkgJHtyZXN1bHR9YCk7CisKKyAgICAgICAgYXdhaXQg
SW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5sb2dWYWx1ZXMoImFkZDogIik7CisgICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgfTsKKworICAgIEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUuYWRk
T2JqZWN0ID0gYXN5bmMgZnVuY3Rpb24ob2JqZWN0LCBleHBlY3RlZCkgeworICAgICAgICBsZXQg
cmVzdWx0ID0gYXdhaXQgV0kuT2JqZWN0U3RvcmUuX190ZXN0T2JqZWN0U3RvcmUuYWRkT2JqZWN0
KG9iamVjdCk7CisgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KHJlc3VsdCA9PT0gZXhwZWN0
ZWQsIGB0aGUga2V5IG9mIHRoZSBhZGRlZCBpdGVtIHNob3VsZCBiZSAke2V4cGVjdGVkfSwgYnV0
IGlzIGFjdHVhbGx5ICR7cmVzdWx0fWApOworCisgICAgICAgIGxldCByZXNvbHZlZCA9IFdJLk9i
amVjdFN0b3JlLl9fdGVzdE9iamVjdFN0b3JlLl9yZXNvbHZlS2V5UGF0aChvYmplY3QpOworICAg
ICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydChyZXNvbHZlZC52YWx1ZSA9PT0gZXhwZWN0ZWQsIGB0
aGUgcmVzb2x2ZWQga2V5UGF0aCBvbiB0aGUgb2JqZWN0IHNob3VsZCBlcXVhbCAke2V4cGVjdGVk
fSwgYnV0IGlzIGFjdHVhbGx5ICR7cmVzb2x2ZWQudmFsdWV9YCk7CisKKyAgICAgICAgYXdhaXQg
SW5zcGVjdG9yVGVzdC5PYmplY3RTdG9yZS5sb2dWYWx1ZXMoImFkZE9iamVjdDogIik7CisgICAg
ICAgIHJldHVybiByZXN1bHQ7CisgICAgfTsKKworICAgIEluc3BlY3RvclRlc3QuT2JqZWN0U3Rv
cmUuZGVsZXRlID0gYXN5bmMgZnVuY3Rpb24odmFsdWUpIHsKKyAgICAgICAgbGV0IHJlc3VsdCA9
IGF3YWl0IFdJLk9iamVjdFN0b3JlLl9fdGVzdE9iamVjdFN0b3JlLmRlbGV0ZSh2YWx1ZSk7Cisg
ICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0KHJlc3VsdCA9PT0gdW5kZWZpbmVkLCBgZGVsZXRl
IHNob3VsZG4ndCByZXR1cm4gYW55dGhpbmdgKTsKKworICAgICAgICBhd2FpdCBJbnNwZWN0b3JU
ZXN0Lk9iamVjdFN0b3JlLmxvZ1ZhbHVlcygiZGVsZXRlOiAiKTsKKyAgICB9OworCisgICAgSW5z
cGVjdG9yVGVzdC5PYmplY3RTdG9yZS5kZWxldGVPYmplY3QgPSBhc3luYyBmdW5jdGlvbihvYmpl
Y3QpIHsKKyAgICAgICAgbGV0IHJlc29sdmVkID0gV0kuT2JqZWN0U3RvcmUuX190ZXN0T2JqZWN0
U3RvcmUuX3Jlc29sdmVLZXlQYXRoKG9iamVjdCk7CisgICAgICAgIEluc3BlY3RvclRlc3QuYXNz
ZXJ0KHJlc29sdmVkLmtleSBpbiByZXNvbHZlZC5vYmplY3QsIGB0aGUgcmVzb2x2ZWQga2V5UGF0
aCBvbiB0aGUgb2JqZWN0IHNob3VsZCBleGlzdGApOworCisgICAgICAgIGxldCByZXN1bHQgPSBh
d2FpdCBXSS5PYmplY3RTdG9yZS5fX3Rlc3RPYmplY3RTdG9yZS5kZWxldGVPYmplY3Qob2JqZWN0
KTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnQocmVzdWx0ID09PSB1bmRlZmluZWQsIGBk
ZWxldGVPYmplY3Qgc2hvdWxkbid0IHJldHVybiBhbnl0aGluZ2ApOworCisgICAgICAgIGF3YWl0
IEluc3BlY3RvclRlc3QuT2JqZWN0U3RvcmUubG9nVmFsdWVzKCJkZWxldGVPYmplY3Q6ICIpOwor
ICAgIH07CisKKyAgICBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmxvZ1ZhbHVlcyA9IGFzeW5j
IGZ1bmN0aW9uKHByZWZpeCkgeworICAgICAgICBpZiAoIVdJLk9iamVjdFN0b3JlLl9fdGVzdE9i
amVjdFN0b3JlKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHByZWZpeCA9IHByZWZp
eCB8fCAiIjsKKyAgICAgICAgbGV0IHJlc3VsdHMgPSBhd2FpdCBXSS5PYmplY3RTdG9yZS5fX3Rl
c3RPYmplY3RTdG9yZS5nZXRBbGwoKTsKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2cocHJlZml4
ICsgSlNPTi5zdHJpbmdpZnkocmVzdWx0cykpOworICAgIH07CisKKyAgICBJbnNwZWN0b3JUZXN0
Lk9iamVjdFN0b3JlLndyYXBUZXN0ID0gZnVuY3Rpb24obmFtZSwgZnVuYykgeworICAgICAgICBz
dWl0ZS5hZGRUZXN0Q2FzZSh7CisgICAgICAgICAgICBuYW1lLAorICAgICAgICAgICAgYXN5bmMg
dGVzdCgpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydCghV0kuT2JqZWN0
U3RvcmUuX190ZXN0T2JqZWN0U3RvcmUsICJfX3Rlc3RPYmplY3RTdG9yZSBzaG91bGQgYmUgZGVs
ZXRlZCBhZnRlciBlYWNoIHRlc3QiKTsKKworICAgICAgICAgICAgICAgIGF3YWl0IGZ1bmMoKTsK
KyAgICAgICAgICAgICAgICBhd2FpdCBJbnNwZWN0b3JUZXN0Lk9iamVjdFN0b3JlLmxvZ1ZhbHVl
cygpOworCisgICAgICAgICAgICAgICAgZGVsZXRlIFdJLk9iamVjdFN0b3JlLl9fdGVzdE9iamVj
dFN0b3JlOworCisgICAgICAgICAgICAgICAgaWYgKFdJLk9iamVjdFN0b3JlLl9kYXRhYmFzZSkg
eworICAgICAgICAgICAgICAgICAgICBXSS5PYmplY3RTdG9yZS5fZGF0YWJhc2UuY2xvc2UoKTsK
KyAgICAgICAgICAgICAgICAgICAgV0kuT2JqZWN0U3RvcmUuX2RhdGFiYXNlID0gbnVsbDsKKyAg
ICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBpbmRleGVkREIuZGVsZXRlRGF0YWJh
c2UoV0kuT2JqZWN0U3RvcmUuX2RhdGFiYXNlTmFtZSk7CisgICAgICAgICAgICB9LAorICAgICAg
ICB9KTsKKyAgICB9OworfSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>