<?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>148713</bug_id>
          
          <creation_ts>2015-09-02 09:56:10 -0700</creation_ts>
          <short_desc>Import W3C IndexedDB tests</short_desc>
          <delta_ts>2016-03-16 14:25:58 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>Safari 9</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>ap</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1122836</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-09-02 09:56:10 -0700</bug_when>
    <thetext>Import W3C IndexedDB tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122870</commentid>
    <comment_count>1</comment_count>
      <attachid>260427</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-09-02 12:17:24 -0700</bug_when>
    <thetext>Created attachment 260427
Patch v1

Checks in all the tests with whatever results they generated, including &quot;failing&quot; results.

Going through the results will be a followup task.

Only a handful crash/assert/timeout, which is great.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122871</commentid>
    <comment_count>2</comment_count>
      <attachid>260427</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-09-02 12:18:43 -0700</bug_when>
    <thetext>Comment on attachment 260427
Patch v1

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1122894</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-09-02 13:39:35 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/189264</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123076</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-09-02 23:33:08 -0700</bug_when>
    <thetext>*** Bug 148712 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1123533</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-09-04 12:12:59 -0700</bug_when>
    <thetext>Skipped the tests on ios-simulator-wk1 in r189368.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124634</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-09-09 09:42:55 -0700</bug_when>
    <thetext>These tests appear super flaky, failing and timing out. Brady, shat should we do?

https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#tests=imported%2Fw3c%2Findexeddb</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124646</commentid>
    <comment_count>7</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-09-09 11:21:24 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; These tests appear super flaky, failing and timing out. Brady, shat should
&gt; we do?
&gt; 
&gt; https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.
&gt; html#tests=imported%2Fw3c%2Findexeddb

All of them?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124912</commentid>
    <comment_count>8</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-09-10 09:27:17 -0700</bug_when>
    <thetext>Marked more flaky tests in https://trac.webkit.org/changeset/189569</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175354</commentid>
    <comment_count>9</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-03-16 08:13:35 -0700</bug_when>
    <thetext>Is there any reason why these tests were not imported within LayoutTests/imported/w3c/web-platform-tests/IndexedDB?
Should we consider moving them there?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175356</commentid>
    <comment_count>10</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-03-16 08:38:20 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; Is there any reason why these tests were not imported within
&gt; LayoutTests/imported/w3c/web-platform-tests/IndexedDB?

No reason. Thought if they *should* have been imported there, there was no indication.

Why is it preferable that they be there?

&gt; Should we consider moving them there?

We can consider it. What about considering canvas, css, or fonts? Do they belong there as well?

Is there a benefit to moving them there?

If there&apos;s no benefit, I don&apos;t see why we would bother with the churn involved just to move the,.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175362</commentid>
    <comment_count>11</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-03-16 08:59:51 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; Is there any reason why these tests were not imported within
&gt; &gt; LayoutTests/imported/w3c/web-platform-tests/IndexedDB?
&gt; 
&gt; No reason. Thought if they *should* have been imported there, there was no
&gt; indication.
&gt; Why is it preferable that they be there?

WPT tests are supposed to be served using wptserve which happens only for tests inside LayoutTests/imported/w3c/web-platform-tests/.

Also LayoutTests/imported/w3c/web-platform-tests/ is supposed to be synced regularly with W3C repository. Tooling (import-w3c-tests script) makes reimporting the tests a bit easier if in LayoutTests/imported/w3c/web-platform-tests/.

As a side note, LayoutTests/imported/w3c/web-platform-tests/ is not the place for tests that should remain specific to WebKit, like IDB private tests.

&gt; &gt; Should we consider moving them there?
&gt; 
&gt; We can consider it. What about considering canvas, css, or fonts? Do they
&gt; belong there as well?

I guess it would be good to have canvas and fonts be moved to web-platform-tests folder to keep them in sync with W3C test suites.

As of CSS, it might be good to use the same principle. Note that CSS is in a different repository and should be imported in LayoutTests/imported/w3c/csswg-test. import-w3c-tests script should already be supporting this repository. Also I think CSS tests are scattered in various places.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175365</commentid>
    <comment_count>12</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-03-16 09:15:53 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; (In reply to comment #9)
&gt; &gt; &gt; Is there any reason why these tests were not imported within
&gt; &gt; &gt; LayoutTests/imported/w3c/web-platform-tests/IndexedDB?
&gt; &gt; 
&gt; &gt; No reason. Thought if they *should* have been imported there, there was no
&gt; &gt; indication.
&gt; &gt; Why is it preferable that they be there?
&gt; 
&gt; WPT tests are supposed to be served using wptserve which happens only for
&gt; tests inside LayoutTests/imported/w3c/web-platform-tests/.
&gt; 
&gt; Also LayoutTests/imported/w3c/web-platform-tests/ is supposed to be synced
&gt; regularly with W3C repository. Tooling (import-w3c-tests script) makes
&gt; reimporting the tests a bit easier if in
&gt; LayoutTests/imported/w3c/web-platform-tests/.
&gt; 
&gt; As a side note, LayoutTests/imported/w3c/web-platform-tests/ is not the
&gt; place for tests that should remain specific to WebKit, like IDB private
&gt; tests.

This is all news to me.

None of the original reviewer for the import or many other reviewers as I&apos;ve tweaked tests and results in the directory have known about this, either.

Where is this documented?

There is a major hiccup with this plan going forward; There is a manual copy of each test for private browsing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175370</commentid>
    <comment_count>13</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-03-16 09:27:20 -0700</bug_when>
    <thetext>&gt; None of the original reviewer for the import or many other reviewers as I&apos;ve
&gt; tweaked tests and results in the directory have known about this, either.
&gt; 
&gt; Where is this documented?

Topic was discussed at 2015 March contributor meeting.
There is also http://trac.webkit.org/wiki/WebKitW3CTesting

&gt; There is a major hiccup with this plan going forward; There is a manual copy
&gt; of each test for private browsing.

Wouldn&apos;t it be easier if the private browsing tests were in their own &quot;private&quot; folder, without adding any &apos;-private&apos; prefix?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175372</commentid>
    <comment_count>14</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-03-16 09:39:56 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; &gt; There is a major hiccup with this plan going forward; There is a manual copy
&gt; &gt; of each test for private browsing.
&gt; 
&gt; Wouldn&apos;t it be easier if the private browsing tests were in their own
&gt; &quot;private&quot; folder, without adding any &apos;-private&apos; prefix?

The filename/path of the private browsing variant of the tests is not the problem.

The problem is that the private browsing variants of the tests require modifications to the imported w3c test.

In other words, we can&apos;t just mechanically reimport the tests without also making new private browsing copies.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175375</commentid>
    <comment_count>15</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-03-16 09:56:17 -0700</bug_when>
    <thetext>Can we have the import script make the private copy?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175377</commentid>
    <comment_count>16</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-03-16 10:00:10 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; &gt; There is a major hiccup with this plan going forward; There is a manual copy
&gt; &gt; &gt; of each test for private browsing.
&gt; &gt; 
&gt; &gt; Wouldn&apos;t it be easier if the private browsing tests were in their own
&gt; &gt; &quot;private&quot; folder, without adding any &apos;-private&apos; prefix?
&gt; 
&gt; The filename/path of the private browsing variant of the tests is not the
&gt; problem.
&gt; 
&gt; The problem is that the private browsing variants of the tests require
&gt; modifications to the imported w3c test.
&gt; 
&gt; In other words, we can&apos;t just mechanically reimport the tests without also
&gt; making new private browsing copies.

Quickly checking the first three IDB tests, private and regular versions are the same. How much are private tests from regular tests? Can these changes be upstreamed to WPT?

Also, why not moving the regular IDB tests to web-platform-tests folder?
The private tests could be synced with the web-platform-tests one from time to time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175378</commentid>
    <comment_count>17</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-03-16 10:01:08 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; Can we have the import script make the private copy?

It seems private copies include some changes that regular ones do not have.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175379</commentid>
    <comment_count>18</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-03-16 10:05:55 -0700</bug_when>
    <thetext>I believe that there is special magic enabling private browsing based on file name. We should remove this magic, and have the private copies explicitly enable the mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175382</commentid>
    <comment_count>19</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-03-16 10:16:51 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; I believe that there is special magic enabling private browsing based on
&gt; file name. We should remove this magic, and have the private copies
&gt; explicitly enable the mode.

When I was commenting this morning, I thought that the imported tests were different (e.g., private browsing was explicitly enabled)

But, indeed, I can see by inspection that&apos;s not the case.

So that&apos;s yet another thing that has to be done here if we were to move these tests, a task for which I&apos;m still not quite convinced of the value...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175383</commentid>
    <comment_count>20</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-03-16 10:18:05 -0700</bug_when>
    <thetext>If it&apos;s truly valuable to move these, I&apos;m not going to stand in the way. But I won&apos;t be doing it myself - I still have actual test failures to clean up, which is way more important IMHO.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175469</commentid>
    <comment_count>21</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2016-03-16 13:20:36 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; If it&apos;s truly valuable to move these, I&apos;m not going to stand in the way. But
&gt; I won&apos;t be doing it myself - I still have actual test failures to clean up,
&gt; which is way more important IMHO.

Goal is just about that, getting more/better tests for free and hopefully less test failures over time ;)

I&apos;ll take care of moving regular tests.

I am unsure about the best way to handle private tests.
If more and more regular tests are also run as private, there might be a better way than duplicating test files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175481</commentid>
    <comment_count>22</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-03-16 13:37:28 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; (In reply to comment #20)
&gt; &gt; If it&apos;s truly valuable to move these, I&apos;m not going to stand in the way. But
&gt; &gt; I won&apos;t be doing it myself - I still have actual test failures to clean up,
&gt; &gt; which is way more important IMHO.
&gt; 
&gt; Goal is just about that, getting more/better tests for free and hopefully
&gt; less test failures over time ;)
&gt; 
&gt; I&apos;ll take care of moving regular tests.
&gt; 
&gt; I am unsure about the best way to handle private tests.
&gt; If more and more regular tests are also run as private, there might be a
&gt; better way than duplicating test files.

The &quot;running regular tests as private&quot; concept is not global to all tests; It is specifically about indexed database tests. And this is because whether you&apos;re in private browsing or not you get a different backend... both of which need to be tested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1175498</commentid>
    <comment_count>23</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-03-16 14:25:58 -0700</bug_when>
    <thetext>Right, I think that the import script should duplicate IndexedDB tests, modifying one copy to enable private browsing.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260427</attachid>
            <date>2015-09-02 12:17:24 -0700</date>
            <delta_ts>2015-09-02 12:18:43 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>643772</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5OTAzZTAwLi5lNzExODBjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTUtMDkt
MDIgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIEltcG9ydCBX
M0MgSW5kZXhlZERCIHRlc3RzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQ4NzEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAg
ICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2sy
L1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTUtMDgtMjggIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFy
ICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBMYXlvdXQgVGVzdCBzdHJlYW1zL3Jl
ZmVyZW5jZS1pbXBsZW1lbnRhdGlvbi9yZWFkYWJsZS1zdHJlYW0uaHRtbCBpcyBmbGFreQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNDc2YTZjZC4uMDViNWI3MCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTE0IEBACisyMDE1LTA5LTAyICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBvcnQgVzNDIEluZGV4
ZWREQiB0ZXN0cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0ODcxMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogaW5kZXhlZGRiL2Fib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVu
ZWVkZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2Nsb3NlLWluLXVwZ3JhZGVu
ZWVkZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvY2xvc2UtaW4t
dXBncmFkZW5lZWRlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvY3Vyc29yLW92
ZXJsb2Fkcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9jdXJzb3It
b3ZlcmxvYWRzLmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYl93ZWJ3b3JrZXJz
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYl93ZWJ3b3JrZXJz
Lmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvci1hZHZhbmNlLWNvbnRp
bnVlLWFzeW5jLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1
cnNvci1hZHZhbmNlLWNvbnRpbnVlLWFzeW5jLmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhl
ZGRiL2lkYmN1cnNvci1hZHZhbmNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5k
ZXhlZGRiL2lkYmN1cnNvci1hZHZhbmNlLWludmFsaWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yLWFkdmFuY2UtaW52YWxpZC5odG06IEFkZGVkLgor
ICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3ItYWR2YW5jZS5odG06IEFkZGVkLgorICAgICAg
ICAqIGluZGV4ZWRkYi9pZGJjdXJzb3ItY29udGludWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yLWNvbnRpbnVlLmh0bTogQWRkZWQuCisgICAgICAg
ICogaW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yLWRpcmVjdGlvbi1pbmRleC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0aW9uLWluZGV4LWtl
eXJhbmdlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNv
ci1kaXJlY3Rpb24taW5kZXgta2V5cmFuZ2UuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVk
ZGIvaWRiY3Vyc29yLWRpcmVjdGlvbi1pbmRleC5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4
ZWRkYi9pZGJjdXJzb3ItZGlyZWN0aW9uLW9iamVjdHN0b3JlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24tb2JqZWN0c3RvcmUta2V5
cmFuZ2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29y
LWRpcmVjdGlvbi1vYmplY3RzdG9yZS1rZXlyYW5nZS5odG06IEFkZGVkLgorICAgICAgICAqIGlu
ZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0aW9uLW9iamVjdHN0b3JlLmh0bTogQWRkZWQuCisgICAg
ICAgICogaW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24uaHRtOiBBZGRlZC4KKyAgICAgICAg
KiBpbmRleGVkZGIvaWRiY3Vyc29yLWtleS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGluZGV4ZWRkYi9pZGJjdXJzb3Ita2V5Lmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRi
L2lkYmN1cnNvci1wcmltYXJ5a2V5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5k
ZXhlZGRiL2lkYmN1cnNvci1wcmltYXJ5a2V5Lmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhl
ZGRiL2lkYmN1cnNvci1yZXVzZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRl
eGVkZGIvaWRiY3Vyc29yLXJldXNlZC5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9p
ZGJjdXJzb3Itc291cmNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRi
L2lkYmN1cnNvci1zb3VyY2UuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vy
c29yX2FkdmFuY2VfaW5kZXgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVk
ZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXguaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVk
ZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Mi5odG06IEFkZGVkLgorICAgICAg
ICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgzLmh0bTogQWRk
ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4NS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRl
eDUuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5k
ZXg2LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9h
ZHZhbmNlX2luZGV4Ni5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3Jf
YWR2YW5jZV9pbmRleDctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIv
aWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg3Lmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRi
L2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4OC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGluZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDguaHRtOiBBZGRlZC4KKyAgICAgICAg
KiBpbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg5LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4OS5odG06IEFkZGVk
LgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9v
YmplY3RzdG9yZS5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfYWR2
YW5jZV9vYmplY3RzdG9yZTItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVk
ZGIvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmUyLmh0bTogQWRkZWQuCisgICAgICAgICog
aW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlMy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTMu
aHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0
c3RvcmU0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNv
cl9hZHZhbmNlX29iamVjdHN0b3JlNC5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9p
ZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmU1Lmh0bTogQWRkZWQu
CisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXgu
aHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4
Mi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfY29u
dGludWVfaW5kZXgyLmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9j
b250aW51ZV9pbmRleDMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIv
aWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4My5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRk
Yi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDQuaHRtOiBBZGRlZC4KKyAgICAg
ICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4NS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg1Lmh0bTog
QWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDYtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVl
X2luZGV4Ni5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfY29udGlu
dWVfaW5kZXg3LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1
cnNvcl9jb250aW51ZV9pbmRleDcuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRi
Y3Vyc29yX2NvbnRpbnVlX2luZGV4OC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGlu
ZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg4Lmh0bTogQWRkZWQuCisgICAgICAgICog
aW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbnZhbGlkLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbnZhbGlkLmh0bTogQWRk
ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfY29udGlu
dWVfb2JqZWN0c3RvcmUuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29y
X2NvbnRpbnVlX29iamVjdHN0b3JlMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGlu
ZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmUyLmh0bTogQWRkZWQuCisgICAg
ICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVj
dHN0b3JlMy5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfY29udGlu
dWVfb2JqZWN0c3RvcmU0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRi
L2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTQuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBp
bmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlNS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmU1
Lmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmpl
Y3RzdG9yZTYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vy
c29yX2NvbnRpbnVlX29iamVjdHN0b3JlNi5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRk
Yi9pZGJjdXJzb3JfZGVsZXRlX2luZGV4LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXguaHRtOiBBZGRlZC4KKyAgICAgICAgKiBp
bmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDIuaHRtOiBBZGRlZC4KKyAg
ICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDMtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDMuaHRtOiBB
ZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDQtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRl
eDQuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRl
eDUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2Rl
bGV0ZV9pbmRleDUuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2Rl
bGV0ZV9vYmplY3RzdG9yZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRk
Yi9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3JlLmh0bTogQWRkZWQuCisgICAgICAgICogaW5k
ZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmUyLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmUyLmh0bTog
QWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmUz
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxl
dGVfb2JqZWN0c3RvcmUzLmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNv
cl9kZWxldGVfb2JqZWN0c3RvcmU0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5k
ZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmU0Lmh0bTogQWRkZWQuCisgICAgICAg
ICogaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmU1LWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmU1
Lmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmctZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX2l0ZXJhdGlu
Zy5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nX2lu
ZGV4LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9p
dGVyYXRpbmdfaW5kZXguaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29y
X2l0ZXJhdGluZ19pbmRleDItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVk
ZGIvaWRiY3Vyc29yX2l0ZXJhdGluZ19pbmRleDIuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRl
eGVkZGIvaWRiY3Vyc29yX2l0ZXJhdGluZ19vYmplY3RzdG9yZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nX29iamVjdHN0b3JlLmh0
bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmdfb2JqZWN0
c3RvcmUyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNv
cl9pdGVyYXRpbmdfb2JqZWN0c3RvcmUyLmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRi
L2lkYmN1cnNvcl91cGRhdGVfaW5kZXgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBp
bmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleC5odG06IEFkZGVkLgorICAgICAgICAqIGlu
ZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4Mi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4Mi5odG06IEFkZGVkLgorICAg
ICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4My1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4My5odG06IEFk
ZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4NC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4
NC5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4
NS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfdXBk
YXRlX2luZGV4NS5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJjdXJzb3JfdXBk
YXRlX2luZGV4Ni1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJj
dXJzb3JfdXBkYXRlX2luZGV4Ni5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJj
dXJzb3JfdXBkYXRlX2luZGV4Ny1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4
ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4Ny5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4
ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmUuaHRtOiBBZGRl
ZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTItZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9v
YmplY3RzdG9yZTIuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX3Vw
ZGF0ZV9vYmplY3RzdG9yZTMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVk
ZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTMuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBp
bmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTQuaHRt
OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9y
ZTUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX3Vw
ZGF0ZV9vYmplY3RzdG9yZTUuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vy
c29yX3VwZGF0ZV9vYmplY3RzdG9yZTYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBp
bmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTYuaHRtOiBBZGRlZC4KKyAgICAg
ICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTctZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9y
ZTcuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmpl
Y3RzdG9yZTgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiY3Vy
c29yX3VwZGF0ZV9vYmplY3RzdG9yZTguaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIv
aWRiZGF0YWJhc2VfY2xvc2UtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVk
ZGIvaWRiZGF0YWJhc2VfY2xvc2UuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRi
ZGF0YWJhc2VfY2xvc2UyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRi
L2lkYmRhdGFiYXNlX2Nsb3NlMi5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJk
YXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZS1jcmVhdGVJbmRleC1lbXB0eW5hbWUtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0
U3RvcmUtY3JlYXRlSW5kZXgtZW1wdHluYW1lLmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhl
ZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlLmh0bTogQWRk
ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMTAt
MTAwMGVuZHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZGF0
YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUxMC0xMDAwZW5kcy5odG06IEFkZGVkLgorICAgICAgICAq
IGluZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTEwLWVtcHR5bmFtZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVP
YmplY3RTdG9yZTEwLWVtcHR5bmFtZS5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9p
ZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTExLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMTEuaHRtOiBBZGRl
ZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUyLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0
ZU9iamVjdFN0b3JlMi5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJkYXRhYmFz
ZV9jcmVhdGVPYmplY3RTdG9yZTMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRl
eGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUzLmh0bTogQWRkZWQuCisgICAgICAg
ICogaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9y
ZTQuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2Jq
ZWN0U3RvcmU1LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmRh
dGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNS5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRk
Yi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBpbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU2Lmh0bTogQWRk
ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVh
dGVPYmplY3RTdG9yZTcuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZGF0YWJh
c2VfY3JlYXRlT2JqZWN0U3RvcmU4LXBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBpbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU4LXBhcmFtZXRl
cnMuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2Jq
ZWN0U3RvcmU5LWludmFsaWRwYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlOS1pbnZhbGlkcGFyYW1l
dGVycy5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJkYXRhYmFzZV9kZWxldGVP
YmplY3RTdG9yZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJk
YXRhYmFzZV9kZWxldGVPYmplY3RTdG9yZS5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRk
Yi9pZGJkYXRhYmFzZV9kZWxldGVPYmplY3RTdG9yZTItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBpbmRleGVkZGIvaWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmUyLmh0bTogQWRk
ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlMy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJkYXRhYmFzZV9kZWxl
dGVPYmplY3RTdG9yZTMuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZGF0YWJh
c2VfZGVsZXRlT2JqZWN0U3RvcmU0LW5vdF9yZXVzZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBpbmRleGVkZGIvaWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmU0LW5vdF9yZXVz
ZWQuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rp
b24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZGF0YWJhc2Vf
dHJhbnNhY3Rpb24uaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZGF0YWJhc2Vf
dHJhbnNhY3Rpb24yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lk
YmRhdGFiYXNlX3RyYW5zYWN0aW9uMi5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9p
ZGJkYXRhYmFzZV90cmFuc2FjdGlvbjMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBp
bmRleGVkZGIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb24zLmh0bTogQWRkZWQuCisgICAgICAgICog
aW5kZXhlZGRiL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uNC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGluZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjQuaHRtOiBBZGRlZC4K
KyAgICAgICAgKiBpbmRleGVkZGIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb241LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uNS5o
dG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJmYWN0b3J5X2NtcC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJmYWN0b3J5X2NtcC5odG06IEFkZGVk
LgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJmYWN0b3J5X2NtcDItZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZmFjdG9yeV9jbXAyLmh0bTogQWRkZWQuCisgICAg
ICAgICogaW5kZXhlZGRiL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2UtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZS5odG06
IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlMi1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJmYWN0b3J5X2RlbGV0
ZURhdGFiYXNlMi5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJmYWN0b3J5X2Rl
bGV0ZURhdGFiYXNlMy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9p
ZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlMy5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRk
Yi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlNC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGluZGV4ZWRkYi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlNC5odG06IEFkZGVkLgorICAg
ICAgICAqIGluZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW4tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBpbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuLmh0bTogQWRkZWQuCisgICAgICAgICog
aW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjEwLmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhl
ZGRiL2lkYmZhY3Rvcnlfb3BlbjExLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5k
ZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjExLmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRi
L2lkYmZhY3Rvcnlfb3BlbjEyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhl
ZGRiL2lkYmZhY3Rvcnlfb3BlbjEyLmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lk
YmZhY3Rvcnlfb3BlbjItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIv
aWRiZmFjdG9yeV9vcGVuMi5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJmYWN0
b3J5X29wZW4zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmZh
Y3Rvcnlfb3BlbjMuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZmFjdG9yeV9v
cGVuNC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJmYWN0b3J5
X29wZW40Lmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVu
NS5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW42LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjYuaHRt
OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuNy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW43Lmh0bTogQWRk
ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjgtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuOC5odG06IEFkZGVkLgor
ICAgICAgICAqIGluZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW45LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjkuaHRtOiBBZGRlZC4KKyAgICAg
ICAgKiBpbmRleGVkZGIvaWRiaW5kZXgtbXVsdGllbnRyeS1hcnJheWtleXBhdGgtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiaW5kZXgtbXVsdGllbnRyeS1hcnJh
eWtleXBhdGguaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiaW5kZXgtbXVsdGll
bnRyeS1iaWctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiaW5k
ZXgtbXVsdGllbnRyeS1iaWcuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiaW5k
ZXgtbXVsdGllbnRyeS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9p
ZGJpbmRleC1tdWx0aWVudHJ5Lmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmlu
ZGV4X2NvdW50LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmlu
ZGV4X2NvdW50Lmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmluZGV4X2NvdW50
Mi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJpbmRleF9jb3Vu
dDIuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiaW5kZXhfY291bnQzLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmluZGV4X2NvdW50My5odG06
IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJpbmRleF9jb3VudDQtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiaW5kZXhfY291bnQ0Lmh0bTogQWRkZWQu
CisgICAgICAgICogaW5kZXhlZGRiL2lkYmluZGV4X2dldC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGluZGV4ZWRkYi9pZGJpbmRleF9nZXQuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBp
bmRleGVkZGIvaWRiaW5kZXhfZ2V0Mi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGlu
ZGV4ZWRkYi9pZGJpbmRleF9nZXQyLmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lk
YmluZGV4X2dldDMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRi
aW5kZXhfZ2V0My5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJpbmRleF9nZXQ0
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmluZGV4X2dldDQu
aHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiaW5kZXhfZ2V0NS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJpbmRleF9nZXQ1Lmh0bTogQWRkZWQu
CisgICAgICAgICogaW5kZXhlZGRiL2lkYmluZGV4X2dldDYtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBpbmRleGVkZGIvaWRiaW5kZXhfZ2V0Ni5odG06IEFkZGVkLgorICAgICAgICAq
IGluZGV4ZWRkYi9pZGJpbmRleF9nZXQ3LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aW5kZXhlZGRiL2lkYmluZGV4X2dldDcuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIv
aWRiaW5kZXhfZ2V0S2V5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRi
L2lkYmluZGV4X2dldEtleS5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJpbmRl
eF9nZXRLZXkyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmlu
ZGV4X2dldEtleTIuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiaW5kZXhfZ2V0
S2V5My1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJpbmRleF9n
ZXRLZXkzLmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTQt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5
NC5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXk1LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTUuaHRt
OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5Ni1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXk2Lmh0bTogQWRk
ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTctZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5Ny5odG06IEFkZGVkLgor
ICAgICAgICAqIGluZGV4ZWRkYi9pZGJpbmRleF9pbmRleE5hbWVzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmluZGV4X2luZGV4TmFtZXMuaHRtOiBBZGRlZC4K
KyAgICAgICAgKiBpbmRleGVkZGIvaWRiaW5kZXhfb3BlbkN1cnNvci1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJpbmRleF9vcGVuQ3Vyc29yLmh0bTogQWRkZWQu
CisgICAgICAgICogaW5kZXhlZGRiL2lkYmluZGV4X29wZW5DdXJzb3IyLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmluZGV4X29wZW5DdXJzb3IyLmh0bTogQWRk
ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYmluZGV4X29wZW5LZXlDdXJzb3ItZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRiaW5kZXhfb3BlbktleUN1cnNvci5o
dG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJpbmRleF9vcGVuS2V5Q3Vyc29yMi1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJpbmRleF9vcGVuS2V5
Q3Vyc29yMi5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJpbmRleF9vcGVuS2V5
Q3Vyc29yMy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJpbmRl
eF9vcGVuS2V5Q3Vyc29yMy5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJrZXly
YW5nZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJrZXlyYW5n
ZS5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJrZXlyYW5nZV9pbmNvcnJlY3Qt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRia2V5cmFuZ2VfaW5j
b3JyZWN0Lmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2Fk
ZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9hZGQuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRk
MTAtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfYWRkMTAuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
YWRkMTEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfYWRkMTEuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfYWRkMTItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfYWRkMTIuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfYWRkMTMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfYWRkMTMuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfYWRkMTQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfYWRkMTQuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfYWRkMTUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfYWRkMTUuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfYWRkMTYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMTYuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfYWRkMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGlu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQyLmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX2FkZDMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBp
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMy5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4
ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDQuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkNS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ1Lmh0bTogQWRkZWQuCisgICAgICAgICogaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkNi5odG06IEFkZGVkLgorICAgICAgICAqIGlu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ3LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDcuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBp
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkOC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ4Lmh0bTogQWRkZWQuCisgICAgICAgICog
aW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkOS5odG06IEFkZGVkLgorICAgICAgICAq
IGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jbGVhci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jbGVhci5odG06IEFkZGVkLgorICAgICAg
ICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jbGVhcjItZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY2xlYXIyLmh0bTogQWRkZWQuCisg
ICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NsZWFyMy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jbGVhcjMuaHRtOiBBZGRl
ZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY2xlYXI0LWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NsZWFyNC5odG06
IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jb3VudC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jb3VudC5o
dG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jb3VudDItZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY291
bnQyLmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NvdW50
My1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9jb3VudDMuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
Y291bnQ0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX2NvdW50NC5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9jcmVhdGVJbmRleC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleC5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4
ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDEwLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTAuaHRtOiBBZGRl
ZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVh
dGVJbmRleDExLmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3Jl
X2NyZWF0ZUluZGV4MTItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMi5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4
ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDEzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTMuaHRtOiBBZGRl
ZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgyLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0
ZUluZGV4Mi5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9j
cmVhdGVJbmRleDMtdXNhYmxlLXJpZ2h0LWF3YXktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgzLXVzYWJsZS1yaWdodC1h
d2F5Lmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0
ZUluZGV4NC1kZWxldGVJbmRleC1ldmVudF9vcmRlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDQtZGVsZXRlSW5kZXgt
ZXZlbnRfb3JkZXIuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfY3JlYXRlSW5kZXg1LWVtcHR5a2V5cGF0aC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDUtZW1wdHlrZXlwYXRoLmh0
bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4
Ni1ldmVudF9vcmRlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDYtZXZlbnRfb3JkZXIuaHRtOiBBZGRlZC4KKyAgICAg
ICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg3LWV2ZW50X29yZGVyLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2Ny
ZWF0ZUluZGV4Ny1ldmVudF9vcmRlci5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDgtdmFsaWRfa2V5cy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDgtdmFsaWRf
a2V5cy5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVh
dGVJbmRleDktZW1wdHluYW1lLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4OS1lbXB0eW5hbWUuaHRtOiBBZGRlZC4KKyAg
ICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZS5odG06IEFkZGVk
LgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGUyLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTIuaHRt
OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlMy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxl
dGUzLmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0
ZTQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfZGVsZXRlNC5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9kZWxldGU1LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX2RlbGV0ZTUuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfZGVsZXRlNi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9kZWxldGU2Lmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX2RlbGV0ZTctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBp
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlNy5odG06IEFkZGVkLgorICAgICAgICAqIGlu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGVJbmRleC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGVJbmRleC5odG06IEFkZGVk
LgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGVkLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZWQuaHRt
OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0LWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldC5odG06
IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQyLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDIuaHRt
OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0My1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQzLmh0
bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDQtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0NC5o
dG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQ1LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDUu
aHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0Ni1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQ2
Lmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDctZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0
Ny5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9pbmRleC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9p
bmRleC5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9vcGVu
Q3Vyc29yLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX29wZW5DdXJzb3IuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfb3BlbkN1cnNvcl9pbnZhbGlkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX29wZW5DdXJzb3JfaW52YWxpZC5odG06IEFkZGVk
LgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0Lmh0bTogQWRkZWQu
CisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDEwLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDEwLmh0bTogQWRk
ZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDExLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDExLmh0bTog
QWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDEyLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDEyLmh0
bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDEzLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDEz
Lmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDE0LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1
dDE0Lmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDE1
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3Jl
X3B1dDE1Lmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1
dDE2LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX3B1dDE2Lmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0b3Jl
X3B1dDItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfcHV0Mi5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9wdXQzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX3B1dDMuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfcHV0NC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9wdXQ0Lmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX3B1dDUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfcHV0NS5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9wdXQ2LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX3B1dDYuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfcHV0Ny1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9wdXQ3Lmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX3B1dDgtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfcHV0OC5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9wdXQ5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX3B1dDkuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRidHJh
bnNhY3Rpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaWRidHJh
bnNhY3Rpb24tb25jb21wbGV0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4
ZWRkYi9pZGJ0cmFuc2FjdGlvbi1vbmNvbXBsZXRlLmh0bTogQWRkZWQuCisgICAgICAgICogaW5k
ZXhlZGRiL2lkYnRyYW5zYWN0aW9uLmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2lk
YnRyYW5zYWN0aW9uX2Fib3J0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhl
ZGRiL2lkYnRyYW5zYWN0aW9uX2Fib3J0Lmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRi
L2lkYnZlcnNpb25jaGFuZ2VldmVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGlu
ZGV4ZWRkYi9pZGJ2ZXJzaW9uY2hhbmdlZXZlbnQuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRl
eGVkZGIvaWRid29ya2VyLmpzOiBBZGRlZC4KKyAgICAgICAgKE1lc3NhZ2VIYW5kbGVyLm9wZW5f
cnEub251cGdyYWRlbmVlZGVkKToKKyAgICAgICAgKE1lc3NhZ2VIYW5kbGVyLm9wZW5fcnEub25z
dWNjZXNzLmRiLmUudGFyZ2V0LnJlc3VsdC5kYi5vbmVycm9yKToKKyAgICAgICAgKE1lc3NhZ2VI
YW5kbGVyLm9wZW5fcnEub25zdWNjZXNzLmRiLnRyYW5zYWN0aW9uLm9iamVjdFN0b3JlLmdldCBv
bnN1Y2Nlc3MpOgorICAgICAgICAoTWVzc2FnZUhhbmRsZXIub3Blbl9ycS5vbmVycm9yKToKKyAg
ICAgICAgKE1lc3NhZ2VIYW5kbGVyLm9wZW5fcnEub25ibG9ja2VkKToKKyAgICAgICAgKiBpbmRl
eGVkZGIvaW5kZXhfc29ydF9vcmRlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGlu
ZGV4ZWRkYi9pbmRleF9zb3J0X29yZGVyLmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRi
L2ludGVyZmFjZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaW50
ZXJmYWNlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvaW50ZXJmYWNlcy5pZGw6
IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9pbnRlcmZhY2VzLndvcmtlci5qczogQWRkZWQu
CisgICAgICAgIChyZXF1ZXN0Lm9ubG9hZCk6CisgICAgICAgICogaW5kZXhlZGRiL2tleV9pbnZh
bGlkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2tleV9pbnZhbGlk
Lmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2tleV92YWxpZC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBpbmRleGVkZGIva2V5Z2VuZXJhdG9yLWNvbnN0cmFpbnRlcnJvci1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9rZXlnZW5lcmF0b3ItY29uc3RyYWlu
dGVycm9yLmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2tleWdlbmVyYXRvci1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9rZXlnZW5lcmF0b3Itb3ZlcmZs
b3ctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIva2V5Z2VuZXJhdG9y
LW92ZXJmbG93Lmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2tleWdlbmVyYXRvci5o
dG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9rZXlvcmRlci1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9rZXlvcmRlci5odG06IEFkZGVkLgorICAgICAgICAq
IGluZGV4ZWRkYi9rZXlwYXRoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhl
ZGRiL2tleXBhdGguaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIva2V5cGF0aF9pbnZh
bGlkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2tleXBhdGhfaW52
YWxpZC5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9rZXlwYXRoX21heHNpemUtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIva2V5cGF0aF9tYXhzaXplLmh0
bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL2xpc3Rfb3JkZXJpbmctZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvbGlzdF9vcmRlcmluZy5odG06IEFkZGVkLgor
ICAgICAgICAqIGluZGV4ZWRkYi9vYmplY3RzdG9yZV9rZXlvcmRlci1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9vYmplY3RzdG9yZV9rZXlvcmRlci5odG06IEFkZGVk
LgorICAgICAgICAqIGluZGV4ZWRkYi9yZXF1ZXN0X2J1YmJsZS1hbmQtY2FwdHVyZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9yZXF1ZXN0X2J1YmJsZS1hbmQtY2Fw
dHVyZS5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9zdHJpbmctbGlzdC1vcmRlcmlu
Zy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9zdHJpbmctbGlzdC1v
cmRlcmluZy5odG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi9zdXBwb3J0LmpzOiBBZGRl
ZC4KKyAgICAgICAgKGZhaWwpOgorICAgICAgICAoLik6CisgICAgICAgICguYXV0b19mYWlsKToK
KyAgICAgICAgKGNyZWF0ZWRiX2Zvcl9tdWx0aXBsZV90ZXN0cyk6CisgICAgICAgIChhc3NlcnRf
a2V5X2VxdWFscyk6CisgICAgICAgICogaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWNyZWF0ZV9pbl92
ZXJzaW9uY2hhbmdlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL3Ry
YW5zYWN0aW9uLWNyZWF0ZV9pbl92ZXJzaW9uY2hhbmdlLmh0bTogQWRkZWQuCisgICAgICAgICog
aW5kZXhlZGRiL3RyYW5zYWN0aW9uLWxpZmV0aW1lLWJsb2NrZWQtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBpbmRleGVkZGIvdHJhbnNhY3Rpb24tbGlmZXRpbWUtYmxvY2tlZC5odG06
IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi90cmFuc2FjdGlvbi1saWZldGltZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi90cmFuc2FjdGlvbi1saWZldGltZS5o
dG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi90cmFuc2FjdGlvbi1yZXF1ZXN0cXVldWUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvdHJhbnNhY3Rpb24tcmVx
dWVzdHF1ZXVlLmh0bTogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL3RyYW5zYWN0aW9uX2J1
YmJsZS1hbmQtY2FwdHVyZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRk
Yi90cmFuc2FjdGlvbl9idWJibGUtYW5kLWNhcHR1cmUuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBp
bmRleGVkZGIvdmFsdWUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIv
dmFsdWUuaHRtOiBBZGRlZC4KKyAgICAgICAgKiBpbmRleGVkZGIvdmFsdWVfcmVjdXJzaXZlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5kZXhlZGRiL3ZhbHVlX3JlY3Vyc2l2ZS5o
dG06IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi93cml0ZXItc3RhcnZhdGlvbi1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluZGV4ZWRkYi93cml0ZXItc3RhcnZhdGlvbi5odG06
IEFkZGVkLgorCiAyMDE1LTA0LTEzICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29t
PgogCiAgICAgICAgIGltcG9ydGVkL3czYy9jYW52YXMvMmQudGV4dC5tZWFzdXJlLndpZHRoLmVt
cHR5Lmh0bWwgaXMgZmxha3kKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvYWJvcnQtaW4taW5pdGlhbC11cGdyYWRl
bmVlZGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41
ZTdiNjY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMyBAQAorCitGQUlMIFRlc3QgdGhhdCBhbiBhYm9ydCBpbiB0aGUgaW5pdGlhbCB1cGdyYWRl
bmVlZGVkIHNldHMgdmVyc2lvbiBiYWNrIHRvIDAgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHVu
ZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3QgKG9iamVjdCkgb2JqZWN0ICJbb2JqZWN0IElEQkRh
dGFiYXNlXSIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDY2YjYxOQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvYWJvcnQtaW4taW5pdGlhbC11
cGdyYWRlbmVlZGVkLmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8IS0t
IFN1Ym1pdHRlZCBmcm9tIFRlc3RUV0YgUGFyaXMgLS0+Cis8dGl0bGU+VGVzdCB0aGF0IGFuIGFi
b3J0IGluIHRoZSBpbml0aWFsIHVwZ3JhZGVuZWVkZWQgc2V0cyB2ZXJzaW9uIGJhY2sgdG8gMDwv
dGl0bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNj
cmlwdD4KKwordmFyIGRiLCBvcGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdCgpLCB1bmRlZmlu
ZWQsIDIpOworCitvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICBk
YiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICBhc3NlcnRfZXF1YWxzKGRiLnZlcnNpb24sIDIpOwor
ICAgIHRyYW5zYWN0aW9uID0gZS50YXJnZXQudHJhbnNhY3Rpb247CisgICAgdHJhbnNhY3Rpb24u
b25jb21wbGV0ZSA9IGZhaWwodGhpcywgInVuZXhwZWN0ZWQgdHJhbnNhY3Rpb24uY29tcGxldGUi
KTsKKyAgICB0cmFuc2FjdGlvbi5vbmFib3J0ID0gZnVuY3Rpb24oZSkgeworICAgICAgICBhc3Nl
cnRfZXF1YWxzKGUudGFyZ2V0LmRiLnZlcnNpb24sIDApOworICAgIH0KKyAgICBkYi5vbmFib3J0
ID0gZnVuY3Rpb24oKSB7fQorCisgICAgdHJhbnNhY3Rpb24uYWJvcnQoKTsKK30KKworb3Blbl9y
cS5vbmVycm9yID0gZnVuY3Rpb24oZSkgeworICAgIGFzc2VydF9lcXVhbHMob3Blbl9ycSwgZS50
YXJnZXQpOworICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCB1bmRlZmluZWQpOwor
ICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQuZXJyb3IubmFtZSwgIkFib3J0RXJyb3IiKTsKKyAg
ICBhc3NlcnRfZXF1YWxzKGRiLnZlcnNpb24sIDApOworICAgIGFzc2VydF9lcXVhbHMob3Blbl9y
cS50cmFuc2FjdGlvbiwgbnVsbCk7CisgICAgdGhpcy5kb25lKCk7Cit9Cis8L3NjcmlwdD4KKwor
PGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2Nsb3NlLWluLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9jbG9zZS1pbi11cGdyYWRlbmVlZGVkLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MGU3MmJkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9jbG9zZS1pbi11
cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBXaGVuIGRi
LmNsb3NlIGlzIGNhbGxlZCBpbiB1cGdyYWRlbmVlZGVkLCB0aGUgZGIgaXMgY2xlYW5lZCB1cCBv
biByZWZyZXNoIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2Nsb3NlLWluLXVwZ3JhZGVuZWVkZWQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvY2xvc2UtaW4tdXBncmFkZW5lZWRlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjJlMDBiNGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2Nsb3NlLWluLXVwZ3JhZGVuZWVkZWQuaHRtbApAQCAt
MCwwICsxLDM5IEBACis8IWRvY3R5cGUgaHRtbD4KKzwhLS0gU3VibWl0dGVkIGZyb20gVGVzdFRX
RiBQYXJpcyAtLT4KKzx0aXRsZT5XaGVuIGRiLmNsb3NlIGlzIGNhbGxlZCBpbiB1cGdyYWRlbmVl
ZGVkLCB0aGUgZGIgaXMgY2xlYW5lZCB1cCBvbiByZWZyZXNoPC90aXRsZT4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCit2YXIgb3Blbl9y
cSA9IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoKSkKK3ZhciBzYXdUcmFuc2FjdGlvbkNvbXBsZXRlID0g
ZmFsc2UKKworb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgZGIg
PSBlLnRhcmdldC5yZXN1bHQKKyAgICBhc3NlcnRfZXF1YWxzKGRiLnZlcnNpb24sIDEpCisKKyAg
ICBkYi5jcmVhdGVPYmplY3RTdG9yZSgnb3MnKQorICAgIGRiLmNsb3NlKCkKKworICAgIGUudGFy
Z2V0LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBmdW5jdGlvbigpIHsgc2F3VHJhbnNhY3Rpb25D
b21wbGV0ZSA9IHRydWUgfQorfQorCitvcGVuX3JxLm9uZXJyb3IgPSBmdW5jdGlvbihlKSB7Cisg
ICAgYXNzZXJ0X3RydWUoc2F3VHJhbnNhY3Rpb25Db21wbGV0ZSwgInNhdyB0cmFuc2FjdGlvbi5j
b21wbGV0ZSIpCisKKyAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LmVycm9yLm5hbWUsICdBYm9y
dEVycm9yJykKKyAgICBhc3NlcnRfZXF1YWxzKGUucmVzdWx0LCB1bmRlZmluZWQpCisKKyAgICBh
c3NlcnRfdHJ1ZSghIWRiKQorICAgIGFzc2VydF9lcXVhbHMoZGIudmVyc2lvbiwgMSkKKyAgICBh
c3NlcnRfZXF1YWxzKGRiLm9iamVjdFN0b3JlTmFtZXMubGVuZ3RoLCAxKQorICAgIGFzc2VydF90
aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7IGRiLnRyYW5zYWN0aW9uKCdv
cycpIH0pCisKKyAgICB0aGlzLmRvbmUoKQorfQorCis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+
PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2N1
cnNvci1vdmVybG9hZHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9jdXJzb3Itb3ZlcmxvYWRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4yMzg5OTlhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9jdXJzb3Itb3ZlcmxvYWRzLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKKworUEFTUyBWYWxpZGF0ZSB0aGUgb3ZlcmxvYWRzIG9mIElEQk9iamVjdFN0
b3JlLm9wZW5DdXJzb3IoKSwgSURCSW5kZXgub3BlbkN1cnNvcigpIGFuZCBJREJJbmRleC5vcGVu
S2V5Q3Vyc29yKCkgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvY3Vyc29yLW92ZXJsb2Fkcy5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2N1cnNvci1vdmVybG9hZHMuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjg2YjE2OWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2N1cnNvci1vdmVybG9hZHMuaHRtCkBAIC0wLDAgKzEsODggQEAKKzwhLS0K
K1Rlc3QgY29udmVydGVkIGZyb20gV2ViS2l0OgoraHR0cDovL3RyYWMud2Via2l0Lm9yZy9icm93
c2VyL3RydW5rL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1vdmVybG9hZHMu
aHRtbAorLS0+CisKKzwhRE9DVFlQRSBodG1sPgorPCEtLSBTdWJtaXR0ZWQgZnJvbSBUZXN0VFdG
IFBhcmlzIC0tPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5WYWxpZGF0ZSB0aGUgb3Zl
cmxvYWRzIG9mIElEQk9iamVjdFN0b3JlLm9wZW5DdXJzb3IoKSwgSURCSW5kZXgub3BlbkN1cnNv
cigpIGFuZCBJREJJbmRleC5vcGVuS2V5Q3Vyc29yKCk8L3RpdGxlPgorPGxpbmsgcmVsPWF1dGhv
ciBocmVmPSJtYWlsdG86cm9tYWluLmh1ZXRAZ21haWwuY29tIiB0aXRsZT0iUm9tYWluIEh1ZXQi
PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlw
dD4KKworICAgIHZhciBkYiwgdHJhbnMsIHN0b3JlLCBpbmRleDsKKyAgICB2YXIgdCA9IGFzeW5j
X3Rlc3QoKTsKKworICAgIHZhciByZXF1ZXN0ID0gY3JlYXRlZGIodCk7CisgICAgcmVxdWVzdC5v
bnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gcmVxdWVzdC5yZXN1
bHQ7CisgICAgICAgIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJyk7CisgICAg
ICAgIGluZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoJ2luZGV4JywgJ3ZhbHVlJyk7CisgICAgICAg
IHN0b3JlLnB1dCh7dmFsdWU6IDB9LCAwKTsKKyAgICAgICAgdHJhbnMgPSByZXF1ZXN0LnRyYW5z
YWN0aW9uOworICAgICAgICB0cmFucy5vbmNvbXBsZXRlID0gdmVyaWZ5T3ZlcmxvYWRzOworICAg
IH07CisKKyAgICBmdW5jdGlvbiB2ZXJpZnlPdmVybG9hZHMoKSB7CisgICAgICAgIHRyYW5zID0g
ZGIudHJhbnNhY3Rpb24oJ3N0b3JlJyk7CisgICAgICAgIHN0b3JlID0gdHJhbnMub2JqZWN0U3Rv
cmUoJ3N0b3JlJyk7CisgICAgICAgIGluZGV4ID0gc3RvcmUuaW5kZXgoJ2luZGV4Jyk7CisKKyAg
ICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oInN0b3JlLm9wZW5DdXJzb3IoKSIsICJuZXh0Iik7
CisgICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJzdG9yZS5vcGVuQ3Vyc29yKDApIiwgIm5l
eHQiKTsKKyAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oInN0b3JlLm9wZW5DdXJzb3IoMCwg
J25leHQnKSIsICJuZXh0Iik7CisgICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJzdG9yZS5v
cGVuQ3Vyc29yKDAsICduZXh0dW5pcXVlJykiLCAibmV4dHVuaXF1ZSIpOworICAgICAgICBjaGVj
a0N1cnNvckRpcmVjdGlvbigic3RvcmUub3BlbkN1cnNvcigwLCAncHJldicpIiwgInByZXYiKTsK
KyAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oInN0b3JlLm9wZW5DdXJzb3IoMCwgJ3ByZXZ1
bmlxdWUnKSIsICJwcmV2dW5pcXVlIik7CisKKyAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24o
InN0b3JlLm9wZW5DdXJzb3IoSURCS2V5UmFuZ2Uub25seSgwKSkiLCAibmV4dCIpOworICAgICAg
ICBjaGVja0N1cnNvckRpcmVjdGlvbigic3RvcmUub3BlbkN1cnNvcihJREJLZXlSYW5nZS5vbmx5
KDApLCAnbmV4dCcpIiwgIm5leHQiKTsKKyAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oInN0
b3JlLm9wZW5DdXJzb3IoSURCS2V5UmFuZ2Uub25seSgwKSwgJ25leHR1bmlxdWUnKSIsICJuZXh0
dW5pcXVlIik7CisgICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJzdG9yZS5vcGVuQ3Vyc29y
KElEQktleVJhbmdlLm9ubHkoMCksICdwcmV2JykiLCAicHJldiIpOworICAgICAgICBjaGVja0N1
cnNvckRpcmVjdGlvbigic3RvcmUub3BlbkN1cnNvcihJREJLZXlSYW5nZS5vbmx5KDApLCAncHJl
dnVuaXF1ZScpIiwgInByZXZ1bmlxdWUiKTsKKworICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlv
bigiaW5kZXgub3BlbkN1cnNvcigpIiwgIm5leHQiKTsKKyAgICAgICAgY2hlY2tDdXJzb3JEaXJl
Y3Rpb24oImluZGV4Lm9wZW5DdXJzb3IoMCkiLCAibmV4dCIpOworICAgICAgICBjaGVja0N1cnNv
ckRpcmVjdGlvbigiaW5kZXgub3BlbkN1cnNvcigwLCAnbmV4dCcpIiwgIm5leHQiKTsKKyAgICAg
ICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oImluZGV4Lm9wZW5DdXJzb3IoMCwgJ25leHR1bmlxdWUn
KSIsICJuZXh0dW5pcXVlIik7CisgICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJpbmRleC5v
cGVuQ3Vyc29yKDAsICdwcmV2JykiLCAicHJldiIpOworICAgICAgICBjaGVja0N1cnNvckRpcmVj
dGlvbigiaW5kZXgub3BlbkN1cnNvcigwLCAncHJldnVuaXF1ZScpIiwgInByZXZ1bmlxdWUiKTsK
KworICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigiaW5kZXgub3BlbkN1cnNvcihJREJLZXlS
YW5nZS5vbmx5KDApKSIsICJuZXh0Iik7CisgICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJp
bmRleC5vcGVuQ3Vyc29yKElEQktleVJhbmdlLm9ubHkoMCksICduZXh0JykiLCAibmV4dCIpOwor
ICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigiaW5kZXgub3BlbkN1cnNvcihJREJLZXlSYW5n
ZS5vbmx5KDApLCAnbmV4dHVuaXF1ZScpIiwgIm5leHR1bmlxdWUiKTsKKyAgICAgICAgY2hlY2tD
dXJzb3JEaXJlY3Rpb24oImluZGV4Lm9wZW5DdXJzb3IoSURCS2V5UmFuZ2Uub25seSgwKSwgJ3By
ZXYnKSIsICJwcmV2Iik7CisgICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJpbmRleC5vcGVu
Q3Vyc29yKElEQktleVJhbmdlLm9ubHkoMCksICdwcmV2dW5pcXVlJykiLCAicHJldnVuaXF1ZSIp
OworCisgICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJpbmRleC5vcGVuS2V5Q3Vyc29yKCki
LCAibmV4dCIpOworICAgICAgICBjaGVja0N1cnNvckRpcmVjdGlvbigiaW5kZXgub3BlbktleUN1
cnNvcigwKSIsICJuZXh0Iik7CisgICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJpbmRleC5v
cGVuS2V5Q3Vyc29yKDAsICduZXh0JykiLCAibmV4dCIpOworICAgICAgICBjaGVja0N1cnNvckRp
cmVjdGlvbigiaW5kZXgub3BlbktleUN1cnNvcigwLCAnbmV4dHVuaXF1ZScpIiwgIm5leHR1bmlx
dWUiKTsKKyAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oImluZGV4Lm9wZW5LZXlDdXJzb3Io
MCwgJ3ByZXYnKSIsICJwcmV2Iik7CisgICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJpbmRl
eC5vcGVuS2V5Q3Vyc29yKDAsICdwcmV2dW5pcXVlJykiLCAicHJldnVuaXF1ZSIpOworCisgICAg
ICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJpbmRleC5vcGVuS2V5Q3Vyc29yKElEQktleVJhbmdl
Lm9ubHkoMCkpIiwgIm5leHQiKTsKKyAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oImluZGV4
Lm9wZW5LZXlDdXJzb3IoSURCS2V5UmFuZ2Uub25seSgwKSwgJ25leHQnKSIsICJuZXh0Iik7Cisg
ICAgICAgIGNoZWNrQ3Vyc29yRGlyZWN0aW9uKCJpbmRleC5vcGVuS2V5Q3Vyc29yKElEQktleVJh
bmdlLm9ubHkoMCksICduZXh0dW5pcXVlJykiLCAibmV4dHVuaXF1ZSIpOworICAgICAgICBjaGVj
a0N1cnNvckRpcmVjdGlvbigiaW5kZXgub3BlbktleUN1cnNvcihJREJLZXlSYW5nZS5vbmx5KDAp
LCAncHJldicpIiwgInByZXYiKTsKKyAgICAgICAgY2hlY2tDdXJzb3JEaXJlY3Rpb24oImluZGV4
Lm9wZW5LZXlDdXJzb3IoSURCS2V5UmFuZ2Uub25seSgwKSwgJ3ByZXZ1bmlxdWUnKSIsICJwcmV2
dW5pcXVlIik7CisKKyAgICAgICAgdC5kb25lKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gY2hl
Y2tDdXJzb3JEaXJlY3Rpb24oc3RhdGVtZW50LCBkaXJlY3Rpb24pIHsKKyAgICAgICAgcmVxdWVz
dCA9IGV2YWwoc3RhdGVtZW50KTsKKyAgICAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlv
bihldmVudCkgeworICAgICAgICAgICAgYXNzZXJ0X25vdF9lcXVhbHMoZXZlbnQudGFyZ2V0LnJl
c3VsdCwgbnVsbCwgIkNoZWNrIHRoZSByZXN1bHQgaXMgbm90IG51bGwiKQorICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhldmVudC50YXJnZXQucmVzdWx0LmRpcmVjdGlvbiwgZGlyZWN0aW9uLCAi
Q2hlY2sgdGhlIHJlc3VsdCBkaXJlY3Rpb24iKTsKKyAgICAgICAgfTsKKyAgICB9CisKKzwvc2Ny
aXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiX3dlYndvcmtlcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJfd2Vid29ya2Vycy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmJhOWYwMQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiX3dlYndvcmtlcnMtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitGQUlMIEluZGV4ZWREQiBpbnNpZGUgb2YgYSBX
ZWJXb3JrZXIgIGFzc2VydF9lcXVhbHM6IHdvcmtlciBoYXMgaWRiIG9iamVjdCBleHBlY3RlZCB0
cnVlIGJ1dCBnb3QgZmFsc2UKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJfd2Vid29ya2Vycy5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYl93ZWJ3b3JrZXJzLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5kYjJmYWZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJfd2Vid29ya2Vycy5odG0KQEAgLTAsMCArMSwzMyBAQAorPCFET0NU
WVBFIGh0bWw+Cis8dGl0bGU+SW5kZXhlZERCIGluc2lkZSBvZiBhIFdlYldvcmtlciA8L3RpdGxl
PgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cu
bWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2Ny
aXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwgY291bnQgPSAwLAorICAgICAgdCA9IGFzeW5j
X3Rlc3QoKTsKKworICAgIHQuc3RlcChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIHdvcmtlciA9
IG5ldyBXb3JrZXIoImlkYndvcmtlci5qcyIpOworICAgICAgICB3b3JrZXIub25tZXNzYWdlID0g
dC5zdGVwX2Z1bmMoZnVuY3Rpb24gKGUpIHsKKyAgICAgICAgICAgIHN3aXRjaChjb3VudCkgewor
ICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhlLmRhdGEsIHRydWUsICd3b3JrZXIgaGFzIGlkYiBvYmplY3QnKQorICAgICAgICAgICAgICAg
ICAgICBicmVhaworCisgICAgICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGUuZGF0YSwgInRlc3QiLCAiZ2V0KDEpIGluIHdvcmtlciIpCisgICAg
ICAgICAgICAgICAgICAgIHQuZG9uZSgpCisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNv
dW50KysKKyAgICAgICAgfSk7CisKKyAgICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKDEpOworICAg
IH0pCisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItYWR2YW5jZS1jb250aW51
ZS1hc3luYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvci1hZHZhbmNlLWNvbnRpbnVlLWFzeW5jLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42YzA0ZWE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItYWR2YW5jZS1jb250aW51
ZS1hc3luYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisKK1BBU1MgSURCQ3Vyc29yIGFz
eW5jbmVzcyAtIGFkdmFuY2UgCitQQVNTIElEQkN1cnNvciBhc3luY25lc3MgLSBjb250aW51ZSAK
K1BBU1MgSURCQ3Vyc29yIGFzeW5jbmVzcyAtIGZyZXNoIGFkdmFuY2Ugc3RpbGwgYXN5bmMgCitQ
QVNTIElEQkN1cnNvciBhc3luY25lc3MgLSBmcmVzaCBjb250aW51ZSBzdGlsbCBhc3luYyAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3It
YWR2YW5jZS1jb250aW51ZS1hc3luYy5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmN1cnNvci1hZHZhbmNlLWNvbnRpbnVlLWFzeW5jLmh0bQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOTRlZDllCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItYWR2YW5jZS1jb250aW51ZS1h
c3luYy5odG0KQEAgLTAsMCArMSwxODYgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1
cnNvciBhc3luY25lc3M8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpv
ZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKKyAgICB2YXIg
ZGIsIG9wZW47CisKKyAgICBzZXR1cChmdW5jdGlvbigpIHsKKyAgICAgICAgb3BlbiA9IGluZGV4
ZWREQi5vcGVuKCd0ZXN0ZGItJyArIG5ldyBEYXRlKCkuZ2V0VGltZSgpKTsKKyAgICAgICAgb3Bl
bi5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBkYiA9IGUudGFy
Z2V0LnJlc3VsdDsKKyAgICAgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCJ0ZXN0Iik7CisgICAgICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAi
Iik7CisKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZCgiZGF0YSIsICAxKTsKKyAgICAgICAgICAg
IG9ialN0b3JlLmFkZCgiZGF0YTIiLCAyKTsKKyAgICAgICAgfTsKKyAgICB9LAorICAgIHsgZXhw
bGljaXRfZG9uZTogdHJ1ZSB9KTsKKworCisgICAgb3Blbi5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigp
IHsKKworCisgICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gYWR2YW5jZSIp
LnN0ZXAoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsKKyAgICAgICAg
ICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5v
cGVuQ3Vyc29yKCk7CisKKyAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5j
KGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWUudGFyZ2V0LnJlc3VsdCkgewor
ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCAyLCAnY291bnQnKTsKKyAg
ICAgICAgICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFy
Z2V0LnJlc3VsdDsKKworICAgICAgICAgICAgICAgIHN3aXRjaChjb3VudCkgeworICAgICAgICAg
ICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGN1cnNvci52YWx1ZSwgImRhdGEiKQorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhjdXJzb3Iua2V5LCAxKQorICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yLmFkdmFu
Y2UoMSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVl
LCAiZGF0YSIpCisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5r
ZXksIDEpCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworCisgICAgICAgICAgICAgICAg
ICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29y
LnZhbHVlLCAiZGF0YTIiKQorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhj
dXJzb3Iua2V5LCAyKQorICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAiZGF0
YTIiKQorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iua2V5LCAy
KQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKworICAgICAgICAgICAgICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiVW5leHBl
Y3RlZCBjb3VudDogIiArIGNvdW50KQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
ICAgIGNvdW50Kys7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHJxLm9uZXJyb3IgPSBm
YWlsKHRoaXMsICJ1bmV4cGVjdGVkIGVycm9yIikKKyAgICAgICAgfSk7CisKKworICAgICAgICBh
c3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtIGNvbnRpbnVlIikuc3RlcChmdW5jdGlvbihl
KSB7CisgICAgICAgICAgICB2YXIgY291bnQgPSAwOworICAgICAgICAgICAgdmFyIHJxID0gZGIu
dHJhbnNhY3Rpb24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLmluZGV4KCJpbmRleCIpLm9w
ZW5DdXJzb3IoKTsKKworICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMo
ZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIGlmICghZS50YXJnZXQucmVzdWx0KSB7Cisg
ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQsIDIsICdjb3VudCcpOworICAg
ICAgICAgICAgICAgICAgICB0aGlzLmRvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJn
ZXQucmVzdWx0OworCisgICAgICAgICAgICAgICAgc3dpdGNoKGNvdW50KSB7CisgICAgICAgICAg
ICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
Y3Vyc29yLnZhbHVlLCAiZGF0YSIpCisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGN1cnNvci5rZXksICAgImRhdGEiKQorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwgMSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1
cnNvci5jb250aW51ZSgiZGF0YTIiKQorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhjdXJzb3IudmFsdWUsICJkYXRhIikKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoY3Vyc29yLmtleSwgICAiZGF0YSIpCisgICAgICAgICAgICAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCAxKQorICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWsKKworICAgICAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwgImRhdGEyIikKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLmtleSwgICAiZGF0YTIiKQorICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwgMikKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpCisgICAgICAgICAgICAgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwgImRhdGEyIikKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLmtleSwgICAiZGF0YTIiKQorICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwgMikKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVs
dDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoIlVuZXhwZWN0ZWQg
Y291bnQ6ICIgKyBjb3VudCkKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBj
b3VudCsrOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBycS5vbmVycm9yID0gZmFpbCh0
aGlzLCAidW5leHBlY3RlZCBlcnJvciIpCisgICAgICAgIH0pOworCisKKyAgICAgICAgYXN5bmNf
dGVzdChkb2N1bWVudC50aXRsZSArICIgLSBmcmVzaCBhZHZhbmNlIHN0aWxsIGFzeW5jIikuc3Rl
cChmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY291bnQgPSAwOworICAgICAgICAgICAg
dmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLmluZGV4
KCJpbmRleCIpLm9wZW5DdXJzb3IoKTsKKworICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdGhp
cy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIGlmICghZS50YXJnZXQu
cmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQsIDIsICdj
b3VudCcpOworICAgICAgICAgICAgICAgICAgICB0aGlzLmRvbmUoKTsKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB2YXIgY3Vy
c29yID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgICAgIGN1cnNvci5hZHZhbmNlKDEp
CisKKyAgICAgICAgICAgICAgICBzd2l0Y2goY291bnQpIHsKKyAgICAgICAgICAgICAgICAgICAg
Y2FzZSAwOgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFs
dWUsICJkYXRhIikKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29y
LmtleSwgICAiZGF0YSIpCisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1
cnNvci5wcmltYXJ5S2V5LCAxKQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKworICAg
ICAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGN1cnNvci52YWx1ZSwgImRhdGEyIikKKyAgICAgICAgICAgICAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoY3Vyc29yLmtleSwgICAiZGF0YTIiKQorICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwgMikKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrCisKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoIlVuZXhwZWN0ZWQgY291bnQ6ICIgKyBjb3Vu
dCkKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICBycS5vbmVycm9yID0gZmFpbCh0aGlzLCAidW5leHBlY3Rl
ZCBlcnJvciIpCisgICAgICAgIH0pOworCisKKyAgICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50
aXRsZSArICIgLSBmcmVzaCBjb250aW51ZSBzdGlsbCBhc3luYyIpLnN0ZXAoZnVuY3Rpb24oZSkg
eworICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsKKyAgICAgICAgICAgIHZhciBycSA9IGRiLnRy
YW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5vcGVuQ3Vyc29yKCk7CisKKyAg
ICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgICAgICAgICBpZiAoIWUudGFyZ2V0LnJlc3VsdCkgeworICAgICAgICAgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGNvdW50LCAyLCAnY291bnQnKTsKKyAgICAgICAgICAgICAgICAgICAg
dGhpcy5kb25lKCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAg
ICAgICAgICAgICBjdXJzb3IuY29udGludWUoKQorCisgICAgICAgICAgICAgICAgc3dpdGNoKGNv
dW50KSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAiZGF0YSIpCisgICAgICAgICAgICAgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5rZXksIDEpCisgICAgICAgICAgICAgICAgICAg
ICAgICBicmVhaworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAiZGF0YTIiKQorICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iua2V5LCAyKQorICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWsKKworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiVW5leHBlY3RlZCBjb3VudDogIiAr
IGNvdW50KQorICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGNvdW50Kys7Cisg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHJxLm9uZXJyb3IgPSBmYWlsKHRoaXMsICJ1bmV4
cGVjdGVkIGVycm9yIikKKyAgICAgICAgfSk7CisKKyAgICAgICAgLy8gU3RvcCBibG9ja2luZyB0
aGUgdGVzdGluZyBzeXN0ZW0gZnJvbSBoZXJlb24KKyAgICAgICAgZG9uZSgpOworICAgIH0KKwor
PC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItYWR2YW5jZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1hZHZhbmNlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNGZjY2NiCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3ItYWR2YW5jZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACisKK0ZBSUwgSURCQ3Vyc29y
LmFkdmFuY2UoKSAtIGFkdmFuY2VzIGFzc2VydF91bnJlYWNoZWQ6IHVuZXhwZWN0ZWQgZXJyb3Ig
KFVua25vd25FcnJvcikgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCitGQUlMIElEQkN1cnNvci5h
ZHZhbmNlKCkgLSBhZHZhbmNlcyBiYWNrd2FyZHMgYXNzZXJ0X3VucmVhY2hlZDogdW5leHBlY3Rl
ZCBlcnJvciAoVW5rbm93bkVycm9yKSBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKK0ZBSUwgSURC
Q3Vyc29yLmFkdmFuY2UoKSAtIHNraXAgZmFyIGZvcndhcmQgYXNzZXJ0X3VucmVhY2hlZDogdW5l
eHBlY3RlZCBlcnJvciAoVW5rbm93bkVycm9yKSBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKK1BB
U1MgSURCQ3Vyc29yLmFkdmFuY2UoKSAtIHdpdGhpbiByYW5nZSAKK1BBU1MgSURCQ3Vyc29yLmFk
dmFuY2UoKSAtIHdpdGhpbiBzaW5nbGUga2V5IHJhbmdlIAorUEFTUyBJREJDdXJzb3IuYWR2YW5j
ZSgpIC0gd2l0aGluIHNpbmdsZSBrZXkgcmFuZ2UsIHdpdGggc2V2ZXJhbCByZXN1bHRzIAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1h
ZHZhbmNlLWludmFsaWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJjdXJzb3ItYWR2YW5jZS1pbnZhbGlkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OTE2YjU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItYWR2YW5jZS1pbnZhbGlk
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKKworUEFTUyBJREJDdXJzb3IuYWR2YW5jZSgp
IC0gaW52YWxpZCAtIGF0dGVtcHQgdG8gY2FsbCBhZHZhbmNlIHR3aWNlIAorUEFTUyBJREJDdXJz
b3IuYWR2YW5jZSgpIC0gaW52YWxpZCAtIHBhc3Mgc29tZXRoaW5nIG90aGVyIHRoYW4gbnVtYmVy
IAorUEFTUyBJREJDdXJzb3IuYWR2YW5jZSgpIC0gaW52YWxpZCAtIHBhc3MgbnVsbC91bmRlZmlu
ZWQgCitQQVNTIElEQkN1cnNvci5hZHZhbmNlKCkgLSBpbnZhbGlkIC0gbWlzc2luZyBhcmd1bWVu
dCAKK1BBU1MgSURCQ3Vyc29yLmFkdmFuY2UoKSAtIGludmFsaWQgLSBwYXNzIG5lZ2F0aXZlIG51
bWJlcnMgCitQQVNTIElEQkN1cnNvci5hZHZhbmNlKCkgLSBpbnZhbGlkIC0gZ290IHZhbHVlIG5v
dCBzZXQgb24gZXhjZXB0aW9uIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1hZHZhbmNlLWludmFsaWQuaHRtIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItYWR2YW5jZS1pbnZhbGlkLmh0bQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMjUwNGI5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItYWR2YW5jZS1p
bnZhbGlkLmh0bQpAQCAtMCwwICsxLDE4OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURC
Q3Vyc29yLmFkdmFuY2UoKSAtIGludmFsaWQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhy
ZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4K
KzxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3
LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJDdXJzb3ItYWR2YW5jZS12b2lkLXVuc2ln
bmVkLWxvbmctY291bnQiPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iSWYgdGhlIHZhbHVlIGZv
ciBjb3VudCBpcyAwICh6ZXJvKSBvciBhIG5lZ2F0aXZlIG51bWJlciwgdGhpcyBtZXRob2QgbXVz
dCB0aHJvdyBhIEphdmFTY3JpcHQgVHlwZUVycm9yIGV4Y2VwdGlvbi4iPgorPGxpbmsgcmVsPWFz
c2VydCB0aXRsZT0iVHlwZUVycm9yIFRoZSB2YWx1ZSBwYXNzZWQgaW50byB0aGUgY291bnQgcGFy
YW1ldGVyIHdhcyB6ZXJvIG9yIGEgbmVnYXRpdmUgbnVtYmVyLiI+Cis8bGluayByZWw9YXNzZXJ0
IHRpdGxlPSJJbnZhbGlkU3RhdGVFcnJvciBUaGUgY3Vyc29yIGlzIGN1cnJlbnRseSBiZWluZyBp
dGVyYXRlZCwgb3IgaGFzIGl0ZXJhdGVkIHBhc3QgaXRzIGVuZC4iPgorPGxpbmsgcmVsPWFzc2Vy
dCB0aXRsZT0iQ2FsbGluZyB0aGlzIG1ldGhvZCBtb3JlIHRoYW4gb25jZSBiZWZvcmUgbmV3IGN1
cnNvciBkYXRhIGhhcyBiZWVuIGxvYWRlZCBpcyBub3QgYWxsb3dlZCBhbmQgcmVzdWx0cyBpbiBh
IERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yIGJlaW5nIHRocm93bi4gRm9y
IGV4YW1wbGUsIGNhbGxpbmcgYWR2YW5jZSgpIHR3aWNlIGZyb20gdGhlIHNhbWUgb25zdWNjZXNz
IGhhbmRsZXIgcmVzdWx0cyBpbiBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVy
cm9yIGJlaW5nIHRocm93biBvbiB0aGUgc2Vjb25kIGNhbGwuIj4KKzxsaW5rIHJlbD1hc3NlcnQg
dGl0bGU9IkJlZm9yZSB0aGlzIG1ldGhvZCByZXR1cm5zLCB1bmxlc3MgYW4gZXhjZXB0aW9uIHdh
cyB0aHJvd24sIGl0IHNldHMgdGhlIGdvdCB2YWx1ZSBmbGFnIG9uIHRoZSBjdXJzb3IgdG8gZmFs
c2UuIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxz
Y3JpcHQ+CisKKyAgICB2YXIgZGIsIG9wZW47CisKKyAgICBzZXR1cChmdW5jdGlvbigpIHsKKyAg
ICAgICAgb3BlbiA9IGluZGV4ZWREQi5vcGVuKCd0ZXN0ZGItJyArIG5ldyBEYXRlKCkuZ2V0VGlt
ZSgpKTsKKyAgICAgICAgb3Blbi5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAg
ICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIHZhciBvYmpTdG9yZSA9
IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iik7CisgICAgICAgICAgICBvYmpTdG9yZS5jcmVh
dGVJbmRleCgiaW5kZXgiLCAiIik7CisKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZCgiZGF0YSIs
ICAxKTsKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZCgiZGF0YTIiLCAyKTsKKyAgICAgICAgfTsK
KyAgICB9LAorICAgIHsgZXhwbGljaXRfZG9uZTogdHJ1ZSB9KTsKKworCisgICAgb3Blbi5vbnN1
Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKworICAgICAgICBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxl
ICsgIiAtIGF0dGVtcHQgdG8gY2FsbCBhZHZhbmNlIHR3aWNlIikuc3RlcChmdW5jdGlvbihlKSB7
CisgICAgICAgICAgICB2YXIgY291bnQgPSAwOworICAgICAgICAgICAgdmFyIHJxID0gZGIudHJh
bnNhY3Rpb24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLmluZGV4KCJpbmRleCIpLm9wZW5D
dXJzb3IoKTsKKworICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZSkgeworICAgICAgICAgICAgICAgIGlmICghZS50YXJnZXQucmVzdWx0KSB7CisgICAg
ICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQsIDIsICdjb3VudCcpOworICAgICAg
ICAgICAgICAgICAgICB0aGlzLmRvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQu
cmVzdWx0OworCisgICAgICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMSk7CisKKyAgICAgICAg
ICAgICAgICAvLyBTZWNvbmQgdHJ5CisgICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygnSW52
YWxpZFN0YXRlRXJyb3InLAorICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgY3Vyc29y
LmFkdmFuY2UoMSk7IH0sICdzZWNvbmQgYWR2YW5jZScpOworCisgICAgICAgICAgICAgICAgYXNz
ZXJ0X3Rocm93cygnSW52YWxpZFN0YXRlRXJyb3InLAorICAgICAgICAgICAgICAgICAgICBmdW5j
dGlvbigpIHsgY3Vyc29yLmFkdmFuY2UoMyk7IH0sICd0aGlyZCBhZHZhbmNlJyk7CisKKyAgICAg
ICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBycS5vbmVy
cm9yID0gZmFpbCh0aGlzLCAidW5leHBlY3RlZCBlcnJvciIpCisgICAgICAgIH0pOworCisKKyAg
ICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSBwYXNzIHNvbWV0aGluZyBvdGhl
ciB0aGFuIG51bWJlciIpLnN0ZXAoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIHJxID0g
ZGIudHJhbnNhY3Rpb24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLmluZGV4KCJpbmRleCIp
Lm9wZW5DdXJzb3IoKTsKKworICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1
bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5y
ZXN1bHQ7CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogIlR5cGVFcnJv
ciIgfSwKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZhbmNlKGRv
Y3VtZW50KTsgfSk7CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogIlR5
cGVFcnJvciIgfSwKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZh
bmNlKHt9KTsgfSk7CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogIlR5
cGVFcnJvciIgfSwKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZh
bmNlKFtdKTsgfSk7CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogIlR5
cGVFcnJvciIgfSwKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZh
bmNlKCIiKTsgfSk7CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogIlR5
cGVFcnJvciIgfSwKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5hZHZh
bmNlKCIxIDIiKTsgfSk7CisKKyAgICAgICAgICAgICAgICB0aGlzLmRvbmUoKTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgcnEub25lcnJvciA9IGZhaWwodGhpcywgInVuZXhwZWN0ZWQg
ZXJyb3IiKQorICAgICAgICB9KTsKKworCisgICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0
bGUgKyAiIC0gcGFzcyBudWxsL3VuZGVmaW5lZCIpLnN0ZXAoZnVuY3Rpb24oZSkgeworICAgICAg
ICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIp
LmluZGV4KCJpbmRleCIpLm9wZW5DdXJzb3IoKTsKKworICAgICAgICAgICAgcnEub25zdWNjZXNz
ID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIHZhciBjdXJz
b3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsg
bmFtZTogIlR5cGVFcnJvciIgfSwKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1
cnNvci5hZHZhbmNlKG51bGwpOyB9KTsKKworICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3Mo
eyBuYW1lOiAiVHlwZUVycm9yIiB9LAorICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsg
Y3Vyc29yLmFkdmFuY2UodW5kZWZpbmVkKTsgfSk7CisKKyAgICAgICAgICAgICAgICB2YXIgbXl2
YXIgPSBudWxsOworICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoeyBuYW1lOiAiVHlwZUVy
cm9yIiB9LAorICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgY3Vyc29yLmFkdmFuY2Uo
bXl2YXIpOyB9KTsKKworICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgpOworICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICBycS5vbmVycm9yID0gZmFpbCh0aGlzLCAidW5leHBlY3RlZCBlcnJv
ciIpCisgICAgICAgIH0pOworCisKKyAgICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSAr
ICIgLSBtaXNzaW5nIGFyZ3VtZW50Iikuc3RlcChmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2
YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpLm9iamVjdFN0b3JlKCJ0ZXN0IikuaW5kZXgo
ImluZGV4Iikub3BlbkN1cnNvcigpOworCisgICAgICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0aGlz
LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUu
dGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoeyBuYW1lOiAi
VHlwZUVycm9yIiB9LAorICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgY3Vyc29yLmFk
dmFuY2UoKTsgfSk7CisKKyAgICAgICAgICAgICAgICB0aGlzLmRvbmUoKTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICAgICAgcnEub25lcnJvciA9IGZhaWwodGhpcywgInVuZXhwZWN0ZWQgZXJy
b3IiKQorICAgICAgICB9KTsKKworCisgICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUg
KyAiIC0gcGFzcyBuZWdhdGl2ZSBudW1iZXJzIikuc3RlcChmdW5jdGlvbihlKSB7CisgICAgICAg
ICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpLm9iamVjdFN0b3JlKCJ0ZXN0Iiku
aW5kZXgoImluZGV4Iikub3BlbkN1cnNvcigpOworCisgICAgICAgICAgICBycS5vbnN1Y2Nlc3Mg
PSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgdmFyIGN1cnNv
ciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoeyBu
YW1lOiAiVHlwZUVycm9yIiB9LAorICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgY3Vy
c29yLmFkdmFuY2UoLTEpOyB9KTsKKworICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoeyBu
YW1lOiAiVHlwZUVycm9yIiB9LAorICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgY3Vy
c29yLmFkdmFuY2UoTmFOKTsgfSk7CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKHsg
bmFtZTogIlR5cGVFcnJvciIgfSwKKyAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1
cnNvci5hZHZhbmNlKDApOyB9KTsKKworICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoeyBu
YW1lOiAiVHlwZUVycm9yIiB9LAorICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgY3Vy
c29yLmFkdmFuY2UoLTApOyB9KTsKKworICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoeyBu
YW1lOiAiVHlwZUVycm9yIiB9LAorICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgY3Vy
c29yLmFkdmFuY2UoSW5maW5pdHkpOyB9KTsKKworICAgICAgICAgICAgICAgIGFzc2VydF90aHJv
d3MoeyBuYW1lOiAiVHlwZUVycm9yIiB9LAorICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigp
IHsgY3Vyc29yLmFkdmFuY2UoLUluZmluaXR5KTsgfSk7CisKKyAgICAgICAgICAgICAgICB2YXIg
bXl2YXIgPSAtOTk5OTk5OworICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3MoeyBuYW1lOiAi
VHlwZUVycm9yIiB9LAorICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgY3Vyc29yLmFk
dmFuY2UobXl2YXIpOyB9KTsKKworICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgpOworICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICBycS5vbmVycm9yID0gZmFpbCh0aGlzLCAidW5leHBlY3Rl
ZCBlcnJvciIpCisgICAgICAgIH0pOworCisKKyAgICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50
aXRsZSArICIgLSBnb3QgdmFsdWUgbm90IHNldCBvbiBleGNlcHRpb24iKS5zdGVwKGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgICAgIHZhciBjb3VudCA9IDA7CisgICAgICAgICAgICB2YXIgcnEgPSBk
Yi50cmFuc2FjdGlvbigidGVzdCIpLm9iamVjdFN0b3JlKCJ0ZXN0IikuaW5kZXgoImluZGV4Iiku
b3BlbkN1cnNvcigpOworCisgICAgICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVu
YyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJl
c3VsdDsKKyAgICAgICAgICAgICAgICBpZiAoIWN1cnNvcikKKyAgICAgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQsIDIsICJjb3VudCBydW5zIik7
CisgICAgICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgpOworICAgICAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93
cyh7IG5hbWU6ICJUeXBlRXJyb3IiIH0sCisgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkg
eyBjdXJzb3IuYWR2YW5jZSgwKTsgfSk7CisKKyAgICAgICAgICAgICAgICBjdXJzb3IuYWR2YW5j
ZSgxKTsKKyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICBycS5vbmVycm9yID0gZmFpbCh0aGlzLCAidW5leHBlY3RlZCBlcnJvciIpCisgICAgICAg
IH0pOworCisKKyAgICAgICAgLy8gU3RvcCBibG9ja2luZyB0aGUgdGVzdGluZyBzeXN0ZW0gZnJv
bSBoZXJlb24KKyAgICAgICAgZG9uZSgpOworICAgIH0KKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9
bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJjdXJzb3ItYWR2YW5jZS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvci1hZHZhbmNlLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5hM2JmZDg0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJjdXJzb3ItYWR2YW5jZS5odG0KQEAgLTAsMCArMSwyNDMgQEAKKzwhRE9D
VFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci5hZHZhbmNlKCk8L3RpdGxlPgorPGxpbmsgcmVs
PSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hy
dGhlIE9tZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+
CisKKzxzY3JpcHQ+CisKKyAgICB2YXIgZGIsIG9wZW47CisKKyAgICBzZXR1cChmdW5jdGlvbigp
IHsKKyAgICAgICAgb3BlbiA9IGluZGV4ZWREQi5vcGVuKCJ0ZXN0ZGItIiArIG5ldyBEYXRlKCku
Z2V0VGltZSgpKTsKKyAgICAgICAgb3Blbi5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7
CisgICAgICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIHZhciBvYmpT
dG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iik7CisgICAgICAgICAgICBvYmpTdG9y
ZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiIik7CisKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZCgi
Y3VwY2FrZSIsIDUpOworICAgICAgICAgICAgb2JqU3RvcmUuYWRkKCJwYW5jYWtlIiwgMyk7IC8v
IFllcywgaXQgaXMgaW50ZW5kZWQKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZCgicGllIiwgICAg
IDEpOworICAgICAgICAgICAgb2JqU3RvcmUuYWRkKCJwaWUiLCAgICAgNCk7CisgICAgICAgICAg
ICBvYmpTdG9yZS5hZGQoInRhY28iLCAgICAyKTsKKyAgICAgICAgfTsKKyAgICB9LAorICAgIHsg
ZXhwbGljaXRfZG9uZTogdHJ1ZSB9KTsKKworCisgICAgb3Blbi5vbnN1Y2Nlc3MgPSBmdW5jdGlv
bigpIHsKKworICAgICAgICBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtIGFkdmFuY2Vz
Iikuc3RlcChmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY291bnQgPSAwOworICAgICAg
ICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIp
LmluZGV4KCJpbmRleCIpLm9wZW5DdXJzb3IoKTsKKworICAgICAgICAgICAgcnEub25zdWNjZXNz
ID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIGlmICghZS50
YXJnZXQucmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQs
IDMsICJjb3VudCIpOworICAgICAgICAgICAgICAgICAgICB0aGlzLmRvbmUoKTsKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB2
YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICAgICAgc3dpdGNoKGNv
dW50KSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAiY3VwY2FrZSIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwgNSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBjYXNlIDE6Cisg
ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwgInBpZSIp
OworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtl
eSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAg
ICAgICBjYXNlIDI6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNv
ci52YWx1ZSwgInRhY28iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
Y3Vyc29yLnByaW1hcnlLZXksIDIpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisK
KyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGFz
c2VydF91bnJlYWNoZWQoIlVuZXhwZWN0ZWQgY291bnQ6ICIgKyBjb3VudCk7CisgICAgICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgICAgICBjdXJz
b3IuYWR2YW5jZSgyKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgcnEub25lcnJvciA9
IGZhaWwodGhpcywgInVuZXhwZWN0ZWQgZXJyb3IiKQorICAgICAgICB9KTsKKworICAgICAgICBh
c3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtIGFkdmFuY2VzIGJhY2t3YXJkcyIpLnN0ZXAo
ZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsKKyAgICAgICAgICAgIHZh
ciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRleCgi
aW5kZXgiKS5vcGVuQ3Vyc29yKG51bGwsICJwcmV2Iik7CisKKyAgICAgICAgICAgIHJxLm9uc3Vj
Y2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICBpZiAo
IWUudGFyZ2V0LnJlc3VsdCkgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNv
dW50LCAzLCAiY291bnQiKTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAg
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgICAgIHN3aXRj
aChjb3VudCkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwgInRhY28iKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIDIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgor
ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJwaWUi
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlL
ZXksIDEpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAg
ICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJz
b3IudmFsdWUsICJjdXBjYWtlIik7CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGN1cnNvci5wcmltYXJ5S2V5LCA1KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworCisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAg
ICBhc3NlcnRfdW5yZWFjaGVkKCJVbmV4cGVjdGVkIGNvdW50OiAiICsgY291bnQpOworICAgICAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgICAgICAgICAg
Y3Vyc29yLmFkdmFuY2UoMik7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHJxLm9uZXJy
b3IgPSBmYWlsKHRoaXMsICJ1bmV4cGVjdGVkIGVycm9yIikKKyAgICAgICAgfSk7CisKKyAgICAg
ICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSBza2lwIGZhciBmb3J3YXJkIikuc3Rl
cChmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY291bnQgPSAwOworICAgICAgICAgICAg
dmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLmluZGV4
KCJpbmRleCIpCisgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAg
ICAgICAgIHJxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgICAgICAgICBpZiAoIWUudGFyZ2V0LnJlc3VsdCkgeworICAgICAgICAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGNvdW50LCAxLCAiY291bnQiKTsKKyAgICAgICAgICAgICAgICAgICAgdGhp
cy5kb25lKCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAg
ICAgICAgICAgIHN3aXRjaChjb3VudCkgeworICAgICAgICAgICAgICAgICAgICBjYXNlIDA6Cisg
ICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwgImN1cGNh
a2UiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1h
cnlLZXksIDUpOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAg
ICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF91bnJlYWNo
ZWQoIlVuZXhwZWN0ZWQgY291bnQ6ICIgKyBjb3VudCk7CisgICAgICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgICAgICBjdXJzb3IuYWR2YW5jZSgx
MDAwMDApOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBycS5vbmVycm9yID0gZmFpbCh0
aGlzLCAidW5leHBlY3RlZCBlcnJvciIpCisgICAgICAgIH0pOworCisKKyAgICAgICAgYXN5bmNf
dGVzdChkb2N1bWVudC50aXRsZSArICIgLSB3aXRoaW4gcmFuZ2UiKS5zdGVwKGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgICAgIHZhciBjb3VudCA9IDA7CisgICAgICAgICAgICB2YXIgcnEgPSBkYi50
cmFuc2FjdGlvbigidGVzdCIpLm9iamVjdFN0b3JlKCJ0ZXN0IikuaW5kZXgoImluZGV4IikKKyAg
ICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoSURCS2V5UmFuZ2UubG93ZXJCb3VuZCgi
Y3VwY2FrZSIsIHRydWUpKTsKKworICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdGhpcy5zdGVw
X2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIGlmICghZS50YXJnZXQucmVzdWx0
KSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQsIDIsICJjb3VudCIp
OworICAgICAgICAgICAgICAgICAgICB0aGlzLmRvbmUoKTsKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB2YXIgY3Vyc29yID0g
ZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICAgICAgc3dpdGNoKGNvdW50KSB7CisgICAg
ICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoY3Vyc29yLnZhbHVlLCAicGFuY2FrZSIpOworICAgICAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwgMyk7CisgICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwgInBpZSIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwgNCk7CisgICAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiVW5leHBlY3RlZCBj
b3VudDogIiArIGNvdW50KTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBj
b3VudCsrOworICAgICAgICAgICAgICAgIGN1cnNvci5hZHZhbmNlKDIpOworICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICBycS5vbmVycm9yID0gZmFpbCh0aGlzLCAidW5leHBlY3RlZCBlcnJv
ciIpCisgICAgICAgIH0pOworCisKKyAgICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSAr
ICIgLSB3aXRoaW4gc2luZ2xlIGtleSByYW5nZSIpLnN0ZXAoZnVuY3Rpb24oZSkgeworICAgICAg
ICAgICAgdmFyIGNvdW50ID0gMDsKKyAgICAgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9u
KCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRleCgiaW5kZXgiKQorICAgICAgICAgICAg
ICAgICAgICAgICAub3BlbkN1cnNvcigicGFuY2FrZSIpOworCisgICAgICAgICAgICBycS5vbnN1
Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgaWYg
KCFlLnRhcmdldC5yZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhj
b3VudCwgMSwgImNvdW50Iik7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgpOworICAg
ICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgICAgICBzd2l0
Y2goY291bnQpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJwYW5jYWtlIik7CisgICAgICAg
ICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCAzKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJVbmV4cGVjdGVk
IGNvdW50OiAiICsgY291bnQpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAg
IGNvdW50Kys7CisgICAgICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMSk7CisgICAgICAgICAg
ICB9KTsKKyAgICAgICAgICAgIHJxLm9uZXJyb3IgPSBmYWlsKHRoaXMsICJ1bmV4cGVjdGVkIGVy
cm9yIikKKyAgICAgICAgfSk7CisKKworICAgICAgICBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxl
ICsgIiAtIHdpdGhpbiBzaW5nbGUga2V5IHJhbmdlLCB3aXRoIHNldmVyYWwgcmVzdWx0cyIpLnN0
ZXAoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsKKyAgICAgICAgICAg
IHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRl
eCgiaW5kZXgiKQorICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigicGllIik7CisK
KyAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgICAgICAgICBpZiAoIWUudGFyZ2V0LnJlc3VsdCkgeworICAgICAgICAgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCAyLCAiY291bnQiKTsKKyAgICAgICAgICAgICAgICAg
ICAgdGhpcy5kb25lKCk7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKwor
ICAgICAgICAgICAgICAgIHN3aXRjaChjb3VudCkgeworICAgICAgICAgICAgICAgICAgICBjYXNl
IDA6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZSwg
InBpZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJp
bWFyeUtleSwgMSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAg
ICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGN1cnNvci52YWx1ZSwgInBpZSIpOworICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhjdXJzb3IucHJpbWFyeUtleSwgNCk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVh
azsKKworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0X3VucmVhY2hlZCgiVW5leHBlY3RlZCBjb3VudDogIiArIGNvdW50KTsKKyAgICAg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAg
IGN1cnNvci5hZHZhbmNlKDEpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBycS5vbmVy
cm9yID0gZmFpbCh0aGlzLCAidW5leHBlY3RlZCBlcnJvciIpCisgICAgICAgIH0pOworCisKKyAg
ICAgICAgLy8gU3RvcCBibG9ja2luZyB0aGUgdGVzdGluZyBzeXN0ZW0gZnJvbSBoZXJlb24KKyAg
ICAgICAgZG9uZSgpOworICAgIH0KKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNv
ci1jb250aW51ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvci1jb250aW51ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMWIwOWFlMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWNvbnRpbnVlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDggQEAKKworUEFTUyBJREJDdXJzb3IuY29udGludWUoKSAtIGNvbnRpbnVlcyAKK1BB
U1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSB3aXRoIGdpdmVuIGtleSAKK1BBU1MgSURCQ3Vyc29y
LmNvbnRpbnVlKCkgLSBza2lwIGZhciBmb3J3YXJkIAorUEFTUyBJREJDdXJzb3IuY29udGludWUo
KSAtIHdpdGhpbiByYW5nZSAKK1BBU1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSB3aXRoaW4gc2lu
Z2xlIGtleSByYW5nZSAKK1BBU1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSB3aXRoaW4gc2luZ2xl
IGtleSByYW5nZSwgd2l0aCBzZXZlcmFsIHJlc3VsdHMgCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWNvbnRpbnVlLmh0bSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWNvbnRpbnVlLmh0bQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYWMxMjg1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItY29udGludWUu
aHRtCkBAIC0wLDAgKzEsMjQwIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3Iu
Y29udGludWUoKTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5o
b0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPGxpbmsgcmVsPWhlbHAg
aHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZp
ZXcuaHRtbCN3aWRsLUlEQkN1cnNvci1jb250aW51ZS12b2lkLWFueS1rZXkiPgorPGxpbmsgcmVs
PWFzc2VydCB0aXRsZT0iVGhlIG5leHQga2V5IHRvIHBvc2l0aW9uIHRoaXMgY3Vyc29yIGF0Ij4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+
CisKKyAgICB2YXIgZGIsIG9wZW47CisgICAgdmFyIHN0b3JlID0gWyB7IHZhbHVlOiAiY3VwY2Fr
ZSIsIGtleTogNSB9LAorICAgICAgICAgICAgICAgICAgeyB2YWx1ZTogInBhbmNha2UiLCBrZXk6
IDMgfSwKKyAgICAgICAgICAgICAgICAgIHsgdmFsdWU6ICJwaWUiLCAgICAga2V5OiAxIH0sCisg
ICAgICAgICAgICAgICAgICB7IHZhbHVlOiAicGllIiwgICAgIGtleTogNCB9LAorICAgICAgICAg
ICAgICAgICAgeyB2YWx1ZTogInRhY28iLCAgICBrZXk6IDIgfSBdOworCisgICAgc2V0dXAoZnVu
Y3Rpb24oKSB7CisgICAgICAgIG9wZW4gPSBpbmRleGVkREIub3BlbigndGVzdGRiLScgKyBuZXcg
RGF0ZSgpLmdldFRpbWUoKSk7CisgICAgICAgIG9wZW4ub251cGdyYWRlbmVlZGVkID0gZnVuY3Rp
b24oZSkgeworICAgICAgICAgICAgdmFyIG9zLCBpOworICAgICAgICAgICAgZGIgPSBlLnRhcmdl
dC5yZXN1bHQ7CisgICAgICAgICAgICBvcyA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iik7
CisgICAgICAgICAgICBvcy5jcmVhdGVJbmRleCgiaW5kZXgiLCAiIik7CisKKyAgICAgICAgICAg
IGZvciAoaSA9IDA7IGkgPCBzdG9yZS5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgICAgICBvcy5h
ZGQoc3RvcmVbaV0udmFsdWUsIHN0b3JlW2ldLmtleSk7CisgICAgICAgIH07CisgICAgfSwKKyAg
ICB7IGV4cGxpY2l0X2RvbmU6IHRydWUgfSk7CisKKworICAgIG9wZW4ub25zdWNjZXNzID0gZnVu
Y3Rpb24oKSB7CisKKworICAgICAgICBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtIGNv
bnRpbnVlcyIpLnN0ZXAoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsK
KyAgICAgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUo
InRlc3QiKS5pbmRleCgiaW5kZXgiKS5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgICAgIHJxLm9u
c3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICBp
ZiAoIWUudGFyZ2V0LnJlc3VsdCkgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGNvdW50LCA1LCAnY291bnQnKTsKKyAgICAgICAgICAgICAgICAgICAgdGhpcy5kb25lKCk7Cisg
ICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCBzdG9yZVtjb3VudF0udmFsdWUpOworICAgICAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIHN0b3JlW2NvdW50XS5rZXkp
OworCisgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisKKyAgICAgICAgICAgICAg
ICBjb3VudCsrOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBycS5vbmVycm9yID0gZmFp
bCh0aGlzLCAidW5leHBlY3RlZCBlcnJvciIpCisgICAgICAgIH0pOworCisKKyAgICAgICAgYXN5
bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSB3aXRoIGdpdmVuIGtleSIpLnN0ZXAoZnVuY3Rp
b24oZSkgeworICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsKKyAgICAgICAgICAgIHZhciBycSA9
IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRleCgiaW5kZXgi
KS5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9m
dW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWUudGFyZ2V0LnJlc3VsdCkg
eworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCAzLCAnY291bnQnKTsK
KyAgICAgICAgICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUu
dGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgICAgIHN3aXRjaChjb3VudCkgeworICAgICAg
ICAgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGN1cnNvci52YWx1ZSwgImN1cGNha2UiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIDUpOworICAgICAgICAgICAgICAgICAgICAg
ICAgY3Vyc29yLmNvbnRpbnVlKCJwaWUiKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OworCisgICAgICAgICAgICAgICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAicGllIik7CisgICAgICAgICAgICAgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCAxKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGN1cnNvci5jb250aW51ZSgidGFjbyIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAyOgorICAgICAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJ0YWNvIik7CisgICAgICAgICAg
ICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCAyKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoIlVuZXhwZWN0ZWQgY291bnQ6ICIgKyBjb3Vu
dCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgY291bnQrKzsKKyAgICAg
ICAgICAgIH0pOworICAgICAgICAgICAgcnEub25lcnJvciA9IGZhaWwodGhpcywgInVuZXhwZWN0
ZWQgZXJyb3IiKQorICAgICAgICB9KTsKKworCisgICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1lbnQu
dGl0bGUgKyAiIC0gc2tpcCBmYXIgZm9yd2FyZCIpLnN0ZXAoZnVuY3Rpb24oZSkgeworICAgICAg
ICAgICAgdmFyIGNvdW50ID0gMDsKKyAgICAgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9u
KCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRleCgiaW5kZXgiKQorICAgICAgICAgICAg
ICAgICAgICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0
aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgaWYgKCFlLnRhcmdl
dC5yZXN1bHQpIHsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgMSwg
J2NvdW50Jyk7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgpOworICAgICAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHZhciBj
dXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgICAgICBzd2l0Y2goY291bnQp
IHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJjdXBjYWtlIik7CisgICAgICAgICAgICAgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCA1KTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJVbmV4cGVjdGVkIGNvdW50OiAi
ICsgY291bnQpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIGNvdW50Kys7
CisgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKFtdKTsgLy8gQXJyYXlzIGFyZSBhbHdh
eXMgYmlnZ2VyIHRoYW4gc3RyaW5ncworCisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHJx
Lm9uZXJyb3IgPSBmYWlsKHRoaXMsICJ1bmV4cGVjdGVkIGVycm9yMiIpCisgICAgICAgIH0pOwor
CisKKyAgICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSB3aXRoaW4gcmFuZ2Ui
KS5zdGVwKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjb3VudCA9IDA7CisgICAgICAg
ICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpLm9iamVjdFN0b3JlKCJ0ZXN0Iiku
aW5kZXgoImluZGV4IikKKyAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoSURCS2V5
UmFuZ2UubG93ZXJCb3VuZCgiY3VwY2FrZSIsIHRydWUpKTsKKworICAgICAgICAgICAgcnEub25z
dWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIGlm
ICghZS50YXJnZXQucmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
Y291bnQsIDIsICdjb3VudCcpOworICAgICAgICAgICAgICAgICAgICB0aGlzLmRvbmUoKTsKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICAgICAgc3dp
dGNoKGNvdW50KSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAicGFuY2FrZSIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwgMyk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoInBpZSIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgorICAg
ICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJwaWUiKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXks
IDEpOworICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCJ6enoiKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICAgICAgICAgIGRlZmF1
bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJVbmV4cGVjdGVk
IGNvdW50OiAiICsgY291bnQpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAg
IGNvdW50Kys7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHJxLm9uZXJyb3IgPSBmYWls
KHRoaXMsICJ1bmV4cGVjdGVkIGVycm9yMSIpCisgICAgICAgIH0pOworCisKKyAgICAgICAgYXN5
bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSB3aXRoaW4gc2luZ2xlIGtleSByYW5nZSIpLnN0
ZXAoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGNvdW50ID0gMDsKKyAgICAgICAgICAg
IHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3QiKS5pbmRl
eCgiaW5kZXgiKQorICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigicGFuY2FrZSIp
OworCisgICAgICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihl
KSB7CisgICAgICAgICAgICAgICAgaWYgKCFlLnRhcmdldC5yZXN1bHQpIHsKKyAgICAgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgMSwgJ2NvdW50Jyk7CisgICAgICAgICAgICAg
ICAgICAgIHRoaXMuZG9uZSgpOworICAgICAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7
CisKKyAgICAgICAgICAgICAgICBzd2l0Y2goY291bnQpIHsKKyAgICAgICAgICAgICAgICAgICAg
Y2FzZSAwOgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFs
dWUsICJwYW5jYWtlIik7CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1
cnNvci5wcmltYXJ5S2V5LCAzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvci5jb250
aW51ZSgicGllIik7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAg
ICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVh
Y2hlZCgiVW5leHBlY3RlZCBjb3VudDogIiArIGNvdW50KTsKKyAgICAgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBy
cS5vbmVycm9yID0gZmFpbCh0aGlzLCAidW5leHBlY3RlZCBlcnJvcjEiKQorICAgICAgICB9KTsK
KworCisgICAgICAgIGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gd2l0aGluIHNpbmds
ZSBrZXkgcmFuZ2UsIHdpdGggc2V2ZXJhbCByZXN1bHRzIikuc3RlcChmdW5jdGlvbihlKSB7Cisg
ICAgICAgICAgICB2YXIgY291bnQgPSAwOworICAgICAgICAgICAgdmFyIHJxID0gZGIudHJhbnNh
Y3Rpb24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLmluZGV4KCJpbmRleCIpCisgICAgICAg
ICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCJwaWUiKTsKKworICAgICAgICAgICAgcnEub25z
dWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIGlm
ICghZS50YXJnZXQucmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
Y291bnQsIDIsICdjb3VudCcpOworICAgICAgICAgICAgICAgICAgICB0aGlzLmRvbmUoKTsKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICAgICAgc3dp
dGNoKGNvdW50KSB7CisgICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAicGllIik7CisgICAgICAgICAg
ICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCAxKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJwaWUiKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnByaW1hcnlLZXksIDQpOworICAg
ICAgICAgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgiVW5leHBlY3RlZCBjb3VudDogIiArIGNv
dW50KTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICBjb3VudCsrOworICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICBycS5vbmVycm9yID0gZmFpbCh0aGlzLCAidW5leHBl
Y3RlZCBlcnJvcjEiKQorICAgICAgICB9KTsKKworCisgICAgICAgIC8vIFN0b3AgYmxvY2tpbmcg
dGhlIHRlc3Rpbmcgc3lzdGVtIGZyb20gaGVyZW9uCisgICAgICAgIGRvbmUoKTsKKyAgICB9CisK
Kzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0aW9uLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWRpcmVjdGlv
bi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWNhODQ4
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiY3Vyc29yLWRpcmVjdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACisKK1BBU1Mg
SURCQ3Vyc29yLmRpcmVjdGlvbiAtIHVuZGVmaW5lZCAKK1BBU1MgSURCQ3Vyc29yLmRpcmVjdGlv
biAtIG5leHQgCitQQVNTIElEQkN1cnNvci5kaXJlY3Rpb24gLSBwcmV2IAorUEFTUyBJREJDdXJz
b3IuZGlyZWN0aW9uIC0gbmV4dHVuaXF1ZSAKK1BBU1MgSURCQ3Vyc29yLmRpcmVjdGlvbiAtIHBy
ZXZ1bmlxdWUgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yLWRpcmVjdGlvbi1pbmRleC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24taW5kZXgtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYzYmM5YzkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1k
aXJlY3Rpb24taW5kZXgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorCitQQVNTIElEQkN1
cnNvciBkaXJlY3Rpb24gLSBpbmRleCAtIG5leHQgCitQQVNTIElEQkN1cnNvciBkaXJlY3Rpb24g
LSBpbmRleCAtIHByZXYgCitQQVNTIElEQkN1cnNvciBkaXJlY3Rpb24gLSBpbmRleCAtIG5leHR1
bmlxdWUgCitQQVNTIElEQkN1cnNvciBkaXJlY3Rpb24gLSBpbmRleCAtIHByZXZ1bmlxdWUgCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
LWRpcmVjdGlvbi1pbmRleC1rZXlyYW5nZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24taW5kZXgta2V5cmFuZ2UtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3OGFmMzIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1
cnNvci1kaXJlY3Rpb24taW5kZXgta2V5cmFuZ2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBA
QAorCitQQVNTIElEQkN1cnNvciBkaXJlY3Rpb24gLSBpbmRleCB3aXRoIGtleXJhbmdlIC0gbmV4
dCAKK1BBU1MgSURCQ3Vyc29yIGRpcmVjdGlvbiAtIGluZGV4IHdpdGgga2V5cmFuZ2UgLSBwcmV2
IAorUEFTUyBJREJDdXJzb3IgZGlyZWN0aW9uIC0gaW5kZXggd2l0aCBrZXlyYW5nZSAtIG5leHR1
bmlxdWUgCitQQVNTIElEQkN1cnNvciBkaXJlY3Rpb24gLSBpbmRleCB3aXRoIGtleXJhbmdlIC0g
cHJldnVuaXF1ZSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJjdXJzb3ItZGlyZWN0aW9uLWluZGV4LWtleXJhbmdlLmh0bSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWRpcmVjdGlvbi1pbmRleC1rZXlyYW5n
ZS5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWI5MTZjNwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
LWRpcmVjdGlvbi1pbmRleC1rZXlyYW5nZS5odG0KQEAgLTAsMCArMSw4MiBAQAorPCFET0NUWVBF
IGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yIGRpcmVjdGlvbiAtIGluZGV4IHdpdGgga2V5cmFuZ2U8
L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29t
IiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0dHA6
Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjY3Vy
c29yLWl0ZXJhdGlvbi1vcGVyYXRpb24iPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0nSWYgZGly
ZWN0aW9uIGlzICJuZXh0IiwgbGV0IGZvdW5kIHJlY29yZCBiZSB0aGUgZmlyc3QgcmVjb3JkIGlu
IHJlY29yZHMgd2hpY2ggc2F0aXNmeSBhbGwgb2YgdGhlIGZvbGxvd2luZyByZXF1aXJlbWVudHMn
PgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iSWYgcG9zaXRpb24gaXMgZGVmaW5lZCwgYW5kIHNv
dXJjZSBpcyBhbiBpbmRleCwgdGhlIHJlY29yZCdzIGtleSBpcyBlcXVhbCB0byBwb3NpdGlvbiBh
bmQgdGhlIHJlY29yZCdzIHZhbHVlIGlzIGdyZWF0ZXIgdGhhbiBvYmplY3Qgc3RvcmUgcG9zaXRp
b24gb3IgdGhlIHJlY29yZCdzIGtleSBpcyBncmVhdGVyIHRoYW4gcG9zaXRpb24uIj4KKzxsaW5r
IHJlbD1hc3NlcnQgdGl0bGU9J0lmIGRpcmVjdGlvbiBpcyAicHJldiIsIGxldCBmb3VuZCByZWNv
cmQgYmUgdGhlIGxhc3QgcmVjb3JkIGluIHJlY29yZHMgd2hpY2ggc2F0aXNmeSBhbGwgb2YgdGhl
IGZvbGxvd2luZyByZXF1aXJlbWVudHMnPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iSWYgcG9z
aXRpb24gaXMgZGVmaW5lZCwgYW5kIHNvdXJjZSBpcyBhbiBpbmRleCwgdGhlIHJlY29yZCdzIGtl
eSBpcyBlcXVhbCB0byBwb3NpdGlvbiBhbmQgdGhlIHJlY29yZCdzIHZhbHVlIGlzIGxlc3MgdGhh
biBvYmplY3Qgc3RvcmUgcG9zaXRpb24gb3IgdGhlIHJlY29yZCdzIGtleSBpcyBsZXNzIHRoYW4g
cG9zaXRpb24uIj4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IklmIHJhbmdlIGlzIGRlZmluZWQs
IHRoZSByZWNvcmQncyBrZXkgaXMgaW4gcmFuZ2UuIj4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9
IklmIHRlbXAgcmVjb3JkIGlzIGRlZmluZWQsIGxldCBmb3VuZCByZWNvcmQgYmUgdGhlIGZpcnN0
IHJlY29yZCBpbiByZWNvcmRzIHdob3NlIGtleSBpcyBlcXVhbCB0byB0ZW1wIHJlY29yZCdzIGtl
eS4iPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0icmVjb3JkcyBpcyBhbHdheXMgc29ydGVkIGlu
IGFzY2VuZGluZyBrZXkgb3JkZXIuIEluIHRoZSBjYXNlIG9mIHNvdXJjZSBiZWluZyBhbiBpbmRl
eCwgcmVjb3JkcyBpcyBzZWNvbmRhcmlseSBzb3J0ZWQgaW4gYXNjZW5kaW5nIHZhbHVlIG9yZGVy
LiI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2Ny
aXB0PgorICAgIHZhciByZWNvcmRzID0gWyAxMzM3LCAiQWxpY2UiLCAiQm9iIiwgIkJvYiIsICJH
cmVnIiwgIsOFa2UiLCBbIkFubmUiXSBdOworICAgIHZhciBkaXJlY3Rpb25zID0gWyJuZXh0Iiwg
InByZXYiLCAibmV4dHVuaXF1ZSIsICJwcmV2dW5pcXVlIl07CisgICAgdmFyIHRlc3RzID0ge307
CisKKyAgICBkaXJlY3Rpb25zLmZvckVhY2goZnVuY3Rpb24oZGlyKSB7CisgICAgICAgIHRlc3Rz
W2Rpcl0gPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgJyAtICcgKyBkaXIpOworICAgIH0p
OworCisgICAgdmFyIG9wZW5fcnEgPSBpbmRleGVkREIub3BlbigidGVzdGRiLSIgKyBuZXcgRGF0
ZSgpLmdldFRpbWUoKSArIE1hdGgucmFuZG9tKCkpOworCisgICAgb3Blbl9ycS5vbnVwZ3JhZGVu
ZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGUudGFyZ2V0LnJl
c3VsdC5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIpOworICAgICAgICBvYmpTdG9yZS5jcmVhdGVJ
bmRleCgiaWR4IiwgIm5hbWUiKTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29y
ZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQoeyBuYW1lOiByZWNvcmRz
W2ldIH0sIGkpOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgdmFyIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICBkYi5vbmVycm9y
ID0gZmFpbF9oZWxwZXIoImRiLm9uZXJyb3IiKTsKKworCisgICAgICAgIC8vIFRoZSB0ZXN0cwor
ICAgICAgICB0ZXN0ZGlyKCduZXh0JywgICAgICAgWydBbGljZToxJywgJ0JvYjoyJywgJ0JvYjoz
JywgJ0dyZWc6NCddKTsKKyAgICAgICAgdGVzdGRpcigncHJldicsICAgICAgIFsnR3JlZzo0Jywg
ICdCb2I6MycsICdCb2I6MicsICdBbGljZToxJ10pOworICAgICAgICB0ZXN0ZGlyKCduZXh0dW5p
cXVlJywgWydBbGljZToxJywgJ0JvYjoyJywgJ0dyZWc6NCddKTsKKyAgICAgICAgdGVzdGRpcign
cHJldnVuaXF1ZScsIFsnR3JlZzo0JywgICdCb2I6MicsICdBbGljZToxJ10pOworCisKKyAgICAg
ICAgLy8gVGVzdCBmdW5jdGlvbgorICAgICAgICBmdW5jdGlvbiB0ZXN0ZGlyKGRpciwgZXhwZWN0
KSB7CisgICAgICAgICAgICB2YXIgY291bnQgPSAwOworICAgICAgICAgICAgdmFyIHQgPSB0ZXN0
c1tkaXJdOworICAgICAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKS5vYmpl
Y3RTdG9yZSgidGVzdCIpLmluZGV4KCJpZHgiKS5vcGVuQ3Vyc29yKElEQktleVJhbmdlLmJvdW5k
KCJBQSIsICJaWiIpLCBkaXIpOworICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1
bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5y
ZXN1bHQ7CisgICAgICAgICAgICAgICAgaWYgKCFjdXJzb3IpIHsKKyAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgZXhwZWN0Lmxlbmd0aCwgImN1cnNvciBydW5zIik7Cisg
ICAgICAgICAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZS5uYW1lICsgIjoiICsgY3Vyc29yLnBy
aW1hcnlLZXksIGV4cGVjdFtjb3VudF0sICJjdXJzb3IudmFsdWUiKTsKKyAgICAgICAgICAgICAg
ICBjb3VudCsrOworICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICBycS5vbmVycm9yID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkg
eworICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKKyAgICAgICAgICAgICAgICBl
LnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoInJx
Lm9uZXJyb3IgLSAiICsgZS5tZXNzYWdlKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9Cisg
ICAgfTsKKworICAgIC8vIEZhaWwgaGFuZGxpbmcKKyAgICBmdW5jdGlvbiBmYWlsX2hlbHBlcihu
YW1lKSB7CisgICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGRpcmVjdGlv
bnMuZm9yRWFjaChmdW5jdGlvbihkaXIpIHsKKyAgICAgICAgICAgICAgICB0ZXN0c1tkaXJdLnN0
ZXAoZnVuY3Rpb24oKSB7IGFzc2VydF91bnJlYWNoZWQobmFtZSk7IH0pOworICAgICAgICAgICAg
fSk7CisgICAgICAgIH07CisgICAgfQorICAgIG9wZW5fcnEub25ibG9ja2VkID0gZmFpbF9oZWxw
ZXIoJ29wZW5fcnEub25ibG9ja2VkJyk7CisgICAgb3Blbl9ycS5vbmVycm9yID0gZmFpbF9oZWxw
ZXIoJ29wZW5fcnEub25lcnJvcicpOworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPiA8L2Rpdj4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
LWRpcmVjdGlvbi1pbmRleC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvci1kaXJlY3Rpb24taW5kZXguaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjhlMDI4ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24taW5kZXguaHRtCkBAIC0wLDAgKzEs
ODEgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvciBkaXJlY3Rpb24gLSBpbmRl
eDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5j
b20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0
cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNj
dXJzb3ItaXRlcmF0aW9uLW9wZXJhdGlvbiI+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxlPSdJZiBk
aXJlY3Rpb24gaXMgIm5leHQiLCBsZXQgZm91bmQgcmVjb3JkIGJlIHRoZSBmaXJzdCByZWNvcmQg
aW4gcmVjb3JkcyB3aGljaCBzYXRpc2Z5IGFsbCBvZiB0aGUgZm9sbG93aW5nIHJlcXVpcmVtZW50
cyc+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxlPSJJZiBwb3NpdGlvbiBpcyBkZWZpbmVkLCBhbmQg
c291cmNlIGlzIGFuIG9iamVjdCBzdG9yZSwgdGhlIHJlY29yZCdzIGtleSBpcyBncmVhdGVyIHRo
YW4gcG9zaXRpb24uIj4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9J0lmIGRpcmVjdGlvbiBpcyAi
cHJldiIsIGxldCBmb3VuZCByZWNvcmQgYmUgdGhlIGxhc3QgcmVjb3JkIGluIHJlY29yZHMgd2hp
Y2ggc2F0aXNmeSBhbGwgb2YgdGhlIGZvbGxvd2luZyByZXF1aXJlbWVudHMnPgorPGxpbmsgcmVs
PWFzc2VydCB0aXRsZT0iSWYgcG9zaXRpb24gaXMgZGVmaW5lZCwgYW5kIHNvdXJjZSBpcyBhbiBv
YmplY3Qgc3RvcmUsIHRoZSByZWNvcmQncyBrZXkgaXMgbGVzcyB0aGFuIHBvc2l0aW9uLiI+Cis8
bGluayByZWw9YXNzZXJ0IHRpdGxlPSJTZXQgY3Vyc29yJ3MgcG9zaXRpb24gdG8gZm91bmQgcmVj
b3JkJ3Mga2V5LiBJZiBzb3VyY2UgaXMgYW4gaW5kZXgsIHNldCBjdXJzb3IncyBvYmplY3Qgc3Rv
cmUgcG9zaXRpb24gdG8gZm91bmQgcmVjb3JkJ3MgdmFsdWUuIj4KKzxsaW5rIHJlbD1hc3NlcnQg
dGl0bGU9IlNldCBjdXJzb3IncyBrZXkgdG8gZm91bmQgcmVjb3JkJ3Mga2V5LiI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZh
ciByZWNvcmRzID0gWyAiQWxpY2UiLCAiQm9iIiwgIkJvYiIsICJHcmVnIiBdOworICAgIHZhciBk
aXJlY3Rpb25zID0gWyJuZXh0IiwgInByZXYiLCAibmV4dHVuaXF1ZSIsICJwcmV2dW5pcXVlIl07
CisgICAgdmFyIHRlc3RzID0ge307CisKKyAgICBkaXJlY3Rpb25zLmZvckVhY2goZnVuY3Rpb24o
ZGlyKSB7CisgICAgICAgIHRlc3RzW2Rpcl0gPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsg
JyAtICcgKyBkaXIpOworICAgIH0pOworCisgICAgdmFyIG9wZW5fcnEgPSBpbmRleGVkREIub3Bl
bigidGVzdGRiLSIgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKSArIE1hdGgucmFuZG9tKCkpOworCisg
ICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBv
YmpTdG9yZSA9IGUudGFyZ2V0LnJlc3VsdC5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIpOworICAg
ICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaWR4IiwgIm5hbWUiKTsKKworICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmpTdG9y
ZS5hZGQoeyBuYW1lOiByZWNvcmRzW2ldIH0sIGkpOworICAgIH07CisKKyAgICBvcGVuX3JxLm9u
c3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIGRiID0gZS50YXJnZXQucmVzdWx0
OworICAgICAgICBkYi5vbmVycm9yID0gZmFpbF9oZWxwZXIoImRiLm9uZXJyb3IiKTsKKworCisg
ICAgICAgIC8vIFRoZSB0ZXN0cworICAgICAgICB0ZXN0ZGlyKCduZXh0JywgICAgICAgWydBbGlj
ZTowJywgJ0JvYjoxJywgJ0JvYjoyJywgJ0dyZWc6MyddKTsKKyAgICAgICAgdGVzdGRpcigncHJl
dicsICAgICAgIFsnR3JlZzozJywgICdCb2I6MicsICdCb2I6MScsICdBbGljZTowJ10pOworICAg
ICAgICB0ZXN0ZGlyKCduZXh0dW5pcXVlJywgWydBbGljZTowJywgJ0JvYjoxJywgJ0dyZWc6Mydd
KTsKKyAgICAgICAgdGVzdGRpcigncHJldnVuaXF1ZScsIFsnR3JlZzozJywgICdCb2I6MScsICdB
bGljZTowJ10pOworCisKKyAgICAgICAgLy8gVGVzdCBmdW5jdGlvbgorICAgICAgICBmdW5jdGlv
biB0ZXN0ZGlyKGRpciwgZXhwZWN0KSB7CisgICAgICAgICAgICB2YXIgY291bnQgPSAwOworICAg
ICAgICAgICAgdmFyIHQgPSB0ZXN0c1tkaXJdOworICAgICAgICAgICAgdmFyIHJxID0gZGIudHJh
bnNhY3Rpb24oInRlc3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLmluZGV4KCJpZHgiKS5vcGVuQ3Vy
c29yKHVuZGVmaW5lZCwgZGlyKTsKKyAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9m
dW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQu
cmVzdWx0OworICAgICAgICAgICAgICAgIGlmICghY3Vyc29yKSB7CisgICAgICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoY291bnQsIGV4cGVjdC5sZW5ndGgsICJjdXJzb3IgcnVucyIpOwor
ICAgICAgICAgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUubmFtZSArICI6IiArIGN1cnNvci5w
cmltYXJ5S2V5LCBleHBlY3RbY291bnRdLCAiY3Vyc29yLnZhbHVlIik7CisgICAgICAgICAgICAg
ICAgY291bnQrKzsKKyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgcnEub25lcnJvciA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAgICAgICAg
ZS5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJy
cS5vbmVycm9yIC0gIiArIGUubWVzc2FnZSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQor
ICAgIH07CisKKyAgICAvLyBGYWlsIGhhbmRsaW5nCisgICAgZnVuY3Rpb24gZmFpbF9oZWxwZXIo
bmFtZSkgeworICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBkaXJlY3Rp
b25zLmZvckVhY2goZnVuY3Rpb24oZGlyKSB7CisgICAgICAgICAgICAgICAgdGVzdHNbZGlyXS5z
dGVwKGZ1bmN0aW9uKCkgeyBhc3NlcnRfdW5yZWFjaGVkKG5hbWUpOyB9KTsKKyAgICAgICAgICAg
IH0pOworICAgICAgICB9OworICAgIH0KKyAgICBvcGVuX3JxLm9uYmxvY2tlZCA9IGZhaWxfaGVs
cGVyKCdvcGVuX3JxLm9uYmxvY2tlZCcpOworICAgIG9wZW5fcnEub25lcnJvciA9IGZhaWxfaGVs
cGVyKCdvcGVuX3JxLm9uZXJyb3InKTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz4gPC9kaXY+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNv
ci1kaXJlY3Rpb24tb2JqZWN0c3RvcmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0aW9uLW9iamVjdHN0b3JlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NTYwMjhjCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3It
ZGlyZWN0aW9uLW9iamVjdHN0b3JlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKworUEFT
UyBJREJDdXJzb3IgZGlyZWN0aW9uIC0gb2JqZWN0IHN0b3JlIC0gbmV4dCAKK1BBU1MgSURCQ3Vy
c29yIGRpcmVjdGlvbiAtIG9iamVjdCBzdG9yZSAtIHByZXYgCitQQVNTIElEQkN1cnNvciBkaXJl
Y3Rpb24gLSBvYmplY3Qgc3RvcmUgLSBuZXh0dW5pcXVlIAorUEFTUyBJREJDdXJzb3IgZGlyZWN0
aW9uIC0gb2JqZWN0IHN0b3JlIC0gcHJldnVuaXF1ZSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0aW9uLW9iamVjdHN0b3Jl
LWtleXJhbmdlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yLWRpcmVjdGlvbi1vYmplY3RzdG9yZS1rZXlyYW5nZS1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQzODgxYQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWRpcmVj
dGlvbi1vYmplY3RzdG9yZS1rZXlyYW5nZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACisK
K1BBU1MgSURCQ3Vyc29yIGRpcmVjdGlvbiAtIG9iamVjdCBzdG9yZSB3aXRoIGtleXJhbmdlIC0g
bmV4dCAKK1BBU1MgSURCQ3Vyc29yIGRpcmVjdGlvbiAtIG9iamVjdCBzdG9yZSB3aXRoIGtleXJh
bmdlIC0gcHJldiAKK1BBU1MgSURCQ3Vyc29yIGRpcmVjdGlvbiAtIG9iamVjdCBzdG9yZSB3aXRo
IGtleXJhbmdlIC0gbmV4dHVuaXF1ZSAKK1BBU1MgSURCQ3Vyc29yIGRpcmVjdGlvbiAtIG9iamVj
dCBzdG9yZSB3aXRoIGtleXJhbmdlIC0gcHJldnVuaXF1ZSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0aW9uLW9iamVjdHN0
b3JlLWtleXJhbmdlLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yLWRpcmVjdGlvbi1vYmplY3RzdG9yZS1rZXlyYW5nZS5odG0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uOWFlN2VmNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWRpcmVjdGlvbi1vYmplY3RzdG9y
ZS1rZXlyYW5nZS5odG0KQEAgLTAsMCArMSw3NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+
SURCQ3Vyc29yIGRpcmVjdGlvbiAtIG9iamVjdCBzdG9yZSB3aXRoIGtleXJhbmdlPC90aXRsZT4K
KzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9
Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8bGluayByZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53
My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI2N1cnNvci1pdGVy
YXRpb24tb3BlcmF0aW9uIj4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9J0lmIGRpcmVjdGlvbiBp
cyAibmV4dCIsIGxldCBmb3VuZCByZWNvcmQgYmUgdGhlIGZpcnN0IHJlY29yZCBpbiByZWNvcmRz
IHdoaWNoIHNhdGlzZnkgYWxsIG9mIHRoZSBmb2xsb3dpbmcgcmVxdWlyZW1lbnRzJz4KKzxsaW5r
IHJlbD1hc3NlcnQgdGl0bGU9J0lmIGRpcmVjdGlvbiBpcyAicHJldiIsIGxldCBmb3VuZCByZWNv
cmQgYmUgdGhlIGxhc3QgcmVjb3JkIGluIHJlY29yZHMgd2hpY2ggc2F0aXNmeSBhbGwgb2YgdGhl
IGZvbGxvd2luZyByZXF1aXJlbWVudHMnPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iSWYgcmFu
Z2UgaXMgZGVmaW5lZCwgdGhlIHJlY29yZCdzIGtleSBpcyBpbiByYW5nZS4iPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIg
cmVjb3JkcyA9IFsgMTMzNywgIkFsaWNlIiwgIkJvYiIsICJHcmVnIiwgIsOFa2UiLCBbIkFubmUi
XSBdOworICAgIHZhciBkaXJlY3Rpb25zID0gWyJuZXh0IiwgInByZXYiLCAibmV4dHVuaXF1ZSIs
ICJwcmV2dW5pcXVlIl07CisgICAgdmFyIHRlc3RzID0ge307CisKKyAgICBkaXJlY3Rpb25zLmZv
ckVhY2goZnVuY3Rpb24oZGlyKSB7CisgICAgICAgIHRlc3RzW2Rpcl0gPSBhc3luY190ZXN0KGRv
Y3VtZW50LnRpdGxlICsgJyAtICcgKyBkaXIpOworICAgIH0pOworCisgICAgdmFyIG9wZW5fcnEg
PSBpbmRleGVkREIub3BlbigidGVzdGRiLSIgKyBuZXcgRGF0ZSgpLmdldFRpbWUoKSArIE1hdGgu
cmFuZG9tKCkpOworCisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7
CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGUudGFyZ2V0LnJlc3VsdC5jcmVhdGVPYmplY3RTdG9y
ZSgidGVzdCIpOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7
IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldLCByZWNvcmRzW2ldKTsK
KyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAg
IHZhciBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgZGIub25lcnJvciA9IGZhaWxfaGVs
cGVyKCJkYi5vbmVycm9yIik7CisKKworICAgICAgICAvLyBUaGUgdGVzdHMKKyAgICAgICAgdGVz
dGRpcignbmV4dCcsICAgICAgIFsnQWxpY2UnLCAnQm9iJywgJ0dyZWcnXSk7CisgICAgICAgIHRl
c3RkaXIoJ3ByZXYnLCAgICAgICBbJ0dyZWcnLCAnQm9iJywgJ0FsaWNlJ10pOworICAgICAgICB0
ZXN0ZGlyKCduZXh0dW5pcXVlJywgWydBbGljZScsICdCb2InLCAnR3JlZyddKTsKKyAgICAgICAg
dGVzdGRpcigncHJldnVuaXF1ZScsIFsnR3JlZycsICdCb2InLCAnQWxpY2UnXSk7CisKKworICAg
ICAgICAvLyBUZXN0IGZ1bmN0aW9uCisgICAgICAgIGZ1bmN0aW9uIHRlc3RkaXIoZGlyLCBleHBl
Y3QpIHsKKyAgICAgICAgICAgIHZhciBjb3VudCA9IDA7CisgICAgICAgICAgICB2YXIgdCA9IHRl
c3RzW2Rpcl07CisgICAgICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpLm9i
amVjdFN0b3JlKCJ0ZXN0Iikub3BlbkN1cnNvcihJREJLZXlSYW5nZS5ib3VuZCgiQUEiLCAiWloi
KSwgZGlyKTsKKyAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworICAg
ICAgICAgICAgICAgIGlmICghY3Vyc29yKSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoY291bnQsIGV4cGVjdC5sZW5ndGgsICJjdXJzb3IgcnVucyIpOworICAgICAgICAgICAg
ICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsIGV4cGVjdFtjb3VudF0sICJjdXJzb3IudmFsdWUiKTsK
KyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51
ZSgpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICBycS5vbmVycm9yID0gdC5zdGVwX2Z1
bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKKyAg
ICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICAgICAgICAgIGFzc2Vy
dF91bnJlYWNoZWQoInJxLm9uZXJyb3IgLSAiICsgZS5tZXNzYWdlKTsKKyAgICAgICAgICAgIH0p
OworICAgICAgICB9CisgICAgfTsKKworICAgIC8vIEZhaWwgaGFuZGxpbmcKKyAgICBmdW5jdGlv
biBmYWlsX2hlbHBlcihuYW1lKSB7CisgICAgICAgIHJldHVybiBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgIGRpcmVjdGlvbnMuZm9yRWFjaChmdW5jdGlvbihkaXIpIHsKKyAgICAgICAgICAgICAg
ICB0ZXN0c1tkaXJdLnN0ZXAoZnVuY3Rpb24oKSB7IGFzc2VydF91bnJlYWNoZWQobmFtZSk7IH0p
OworICAgICAgICAgICAgfSk7CisgICAgICAgIH07CisgICAgfQorICAgIG9wZW5fcnEub25ibG9j
a2VkID0gZmFpbF9oZWxwZXIoJ29wZW5fcnEub25ibG9ja2VkJyk7CisgICAgb3Blbl9ycS5vbmVy
cm9yID0gZmFpbF9oZWxwZXIoJ29wZW5fcnEub25lcnJvcicpOworPC9zY3JpcHQ+CisKKzxkaXYg
aWQ9bG9nPiA8L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yLWRpcmVjdGlvbi1vYmplY3RzdG9yZS5odG0gYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24tb2JqZWN0c3RvcmUuaHRt
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5Zjk4MTUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1kaXJl
Y3Rpb24tb2JqZWN0c3RvcmUuaHRtCkBAIC0wLDAgKzEsODAgQEAKKzwhRE9DVFlQRSBodG1sPgor
PHRpdGxlPklEQkN1cnNvciBkaXJlY3Rpb24gLSBvYmplY3Qgc3RvcmU8L3RpdGxlPgorPGxpbmsg
cmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBI
w7hydGhlIE9tZGFsIj4KKzxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9yZy9o
Zy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjY3Vyc29yLWl0ZXJhdGlvbi1v
cGVyYXRpb24iPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0nSWYgZGlyZWN0aW9uIGlzICJuZXh0
IiwgbGV0IGZvdW5kIHJlY29yZCBiZSB0aGUgZmlyc3QgcmVjb3JkIGluIHJlY29yZHMgd2hpY2gg
c2F0aXNmeSBhbGwgb2YgdGhlIGZvbGxvd2luZyByZXF1aXJlbWVudHMnPgorPGxpbmsgcmVsPWFz
c2VydCB0aXRsZT0iSWYgcG9zaXRpb24gaXMgZGVmaW5lZCwgYW5kIHNvdXJjZSBpcyBhbiBvYmpl
Y3Qgc3RvcmUsIHRoZSByZWNvcmQncyBrZXkgaXMgZ3JlYXRlciB0aGFuIHBvc2l0aW9uLiI+Cis8
bGluayByZWw9YXNzZXJ0IHRpdGxlPSdJZiBkaXJlY3Rpb24gaXMgInByZXYiLCBsZXQgZm91bmQg
cmVjb3JkIGJlIHRoZSBsYXN0IHJlY29yZCBpbiByZWNvcmRzIHdoaWNoIHNhdGlzZnkgYWxsIG9m
IHRoZSBmb2xsb3dpbmcgcmVxdWlyZW1lbnRzJz4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9Iklm
IHBvc2l0aW9uIGlzIGRlZmluZWQsIGFuZCBzb3VyY2UgaXMgYW4gb2JqZWN0IHN0b3JlLCB0aGUg
cmVjb3JkJ3Mga2V5IGlzIGxlc3MgdGhhbiBwb3NpdGlvbi4iPgorPGxpbmsgcmVsPWFzc2VydCB0
aXRsZT0iU2V0IGN1cnNvcidzIHBvc2l0aW9uIHRvIGZvdW5kIHJlY29yZCdzIGtleS4gSWYgc291
cmNlIGlzIGFuIGluZGV4LCBzZXQgY3Vyc29yJ3Mgb2JqZWN0IHN0b3JlIHBvc2l0aW9uIHRvIGZv
dW5kIHJlY29yZCdzIHZhbHVlLiI+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxlPSJTZXQgY3Vyc29y
J3Mga2V5IHRvIGZvdW5kIHJlY29yZCdzIGtleS4iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJz
dXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgcmVjb3JkcyA9IFsgIkFs
aWNlIiwgIkJvYiIsICJHcmVnIiBdOworICAgIHZhciBkaXJlY3Rpb25zID0gWyJuZXh0IiwgInBy
ZXYiLCAibmV4dHVuaXF1ZSIsICJwcmV2dW5pcXVlIl07CisgICAgdmFyIHRlc3RzID0ge307CisK
KyAgICBkaXJlY3Rpb25zLmZvckVhY2goZnVuY3Rpb24oZGlyKSB7CisgICAgICAgIHRlc3RzW2Rp
cl0gPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgJyAtICcgKyBkaXIpOworICAgIH0pOwor
CisgICAgdmFyIG9wZW5fcnEgPSBpbmRleGVkREIub3BlbigidGVzdGRiLSIgKyBuZXcgRGF0ZSgp
LmdldFRpbWUoKSArIE1hdGgucmFuZG9tKCkpOworCisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVk
ZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGUudGFyZ2V0LnJlc3Vs
dC5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIpOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRz
W2ldLCByZWNvcmRzW2ldKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5j
dGlvbihlKSB7CisgICAgICAgIHZhciBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgZGIu
b25lcnJvciA9IGZhaWxfaGVscGVyKCJkYi5vbmVycm9yIik7CisKKworICAgICAgICAvLyBUaGUg
dGVzdHMKKyAgICAgICAgdGVzdGRpcignbmV4dCcsICAgICAgIFsnQWxpY2UnLCAnQm9iJywgJ0dy
ZWcnXSk7CisgICAgICAgIHRlc3RkaXIoJ3ByZXYnLCAgICAgICBbJ0dyZWcnLCAnQm9iJywgJ0Fs
aWNlJ10pOworICAgICAgICB0ZXN0ZGlyKCduZXh0dW5pcXVlJywgWydBbGljZScsICdCb2InLCAn
R3JlZyddKTsKKyAgICAgICAgdGVzdGRpcigncHJldnVuaXF1ZScsIFsnR3JlZycsICdCb2InLCAn
QWxpY2UnXSk7CisKKworICAgICAgICAvLyBUZXN0IGZ1bmN0aW9uCisgICAgICAgIGZ1bmN0aW9u
IHRlc3RkaXIoZGlyLCBleHBlY3QpIHsKKyAgICAgICAgICAgIHZhciBjb3VudCA9IDA7CisgICAg
ICAgICAgICB2YXIgdCA9IHRlc3RzW2Rpcl07CisgICAgICAgICAgICB2YXIgcnEgPSBkYi50cmFu
c2FjdGlvbigidGVzdCIpLm9iamVjdFN0b3JlKCJ0ZXN0Iikub3BlbkN1cnNvcih1bmRlZmluZWQs
IGRpcik7CisgICAgICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihl
KSB7CisgICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAg
ICAgICAgICAgICBpZiAoIWN1cnNvcikgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKGNvdW50LCBleHBlY3QubGVuZ3RoLCAiY3Vyc29yIHJ1bnMiKTsKKyAgICAgICAgICAgICAg
ICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoY3Vyc29yLnZhbHVlLCBleHBlY3RbY291bnRdLCAiY3Vyc29yLnZhbHVlIik7Cisg
ICAgICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUo
KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgcnEub25lcnJvciA9IHQuc3RlcF9mdW5j
KGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAg
ICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRf
dW5yZWFjaGVkKCJycS5vbmVycm9yIC0gIiArIGUubWVzc2FnZSk7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfQorICAgIH07CisKKyAgICAvLyBGYWlsIGhhbmRsaW5nCisgICAgZnVuY3Rpb24g
ZmFpbF9oZWxwZXIobmFtZSkgeworICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICBkaXJlY3Rpb25zLmZvckVhY2goZnVuY3Rpb24oZGlyKSB7CisgICAgICAgICAgICAgICAg
dGVzdHNbZGlyXS5zdGVwKGZ1bmN0aW9uKCkgeyBhc3NlcnRfdW5yZWFjaGVkKG5hbWUpOyB9KTsK
KyAgICAgICAgICAgIH0pOworICAgICAgICB9OworICAgIH0KKyAgICBvcGVuX3JxLm9uYmxvY2tl
ZCA9IGZhaWxfaGVscGVyKCdvcGVuX3JxLm9uYmxvY2tlZCcpOworICAgIG9wZW5fcnEub25lcnJv
ciA9IGZhaWxfaGVscGVyKCdvcGVuX3JxLm9uZXJyb3InKTsKKzwvc2NyaXB0PgorCis8ZGl2IGlk
PWxvZz4gPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvci1kaXJlY3Rpb24uaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0aW9uLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi44MTg5ZDU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItZGlyZWN0aW9uLmh0bQpAQCAtMCwwICsxLDczIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3IuZGlyZWN0aW9uPC90aXRsZT4KKzxs
aW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9k
aW4gSMO4cnRoZSBPbWRhbCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwv
c2NyaXB0PgorCis8c2NyaXB0PgorCisgICAgZnVuY3Rpb24gY3Vyc29yX2RpcmVjdGlvbihjb25z
dGFudCwgZGlyKQorICAgIHsKKyAgICAgICAgdmFyIGRiLAorICAgICAgICAgIHQgPSBhc3luY190
ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtICIgKyBkaXIpLAorICAgICAgICAgIGV4cGVjdGVkID0g
ZGlyID8gZGlyIDogIm5leHQiOworCisgICAgICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7
CisKKyAgICAgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAg
ICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIHZhciBvYmpTdG9yZSA9
IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iik7CisKKyAgICAgICAgICAgIG9ialN0b3JlLmFk
ZCgiZGF0YSIsICJrZXkiKTsKKyAgICAgICAgfTsKKworICAgICAgICBvcGVuX3JxLm9uc3VjY2Vz
cyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3JfcnEs
IGNvdW50ID0gMDsKKyAgICAgICAgICAgIHZhciBvcyA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikK
KyAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0Iik7CisgICAgICAgICAg
ICBpZiAoZGlyKQorICAgICAgICAgICAgICAgIGN1cnNvcl9ycSA9IG9zLm9wZW5DdXJzb3IodW5k
ZWZpbmVkLCBkaXIpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGN1cnNvcl9y
cSA9IG9zLm9wZW5DdXJzb3IoKTsKKworICAgICAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9
IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICB2YXIgY3Vyc29yID0g
ZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iu
ZGlyZWN0aW9uLCBjb25zdGFudCwgJ2RpcmVjdGlvbiBjb25zdGFudCcpOworICAgICAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLmRpcmVjdGlvbiwgZXhwZWN0ZWQsICdkaXJlY3Rpb24n
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfcmVhZG9ubHkoY3Vyc29yLCAnZGlyZWN0aW9uJyk7
CisKKyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAgIGlmIChjb3VudCA+
PSAyKQorICAgICAgICAgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAgIH0pOworCisg
ICAgICAgICAgICB2YXIgY3Vyc29yX3JxMiA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcih1bmRlZmluZWQsIGNvbnN0YW50KTsKKwor
ICAgICAgICAgICAgY3Vyc29yX3JxMi5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihl
KSB7CisgICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAg
ICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLmRpcmVjdGlvbiwgY29uc3RhbnQsICdk
aXJlY3Rpb24gY29uc3RhbnQgKHNlY29uZCB0cnkpJyk7CisgICAgICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhjdXJzb3IuZGlyZWN0aW9uLCBleHBlY3RlZCwgJ2RpcmVjdGlvbiAoc2Vjb25kIHRy
eSknKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfcmVhZG9ubHkoY3Vyc29yLCAnZGlyZWN0aW9u
Jyk7CisKKyAgICAgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgICAgIGlmIChjb3Vu
dCA+PSAyKQorICAgICAgICAgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAgIH0pOwor
CisgICAgICAgIH0pOworICAgIH0KKworICAgIGN1cnNvcl9kaXJlY3Rpb24oIm5leHQiKTsKKyAg
ICBjdXJzb3JfZGlyZWN0aW9uKCJuZXh0IiwgICAgICAgIm5leHQiKTsKKyAgICBjdXJzb3JfZGly
ZWN0aW9uKCJwcmV2IiwgICAgICAgInByZXYiKTsKKyAgICBjdXJzb3JfZGlyZWN0aW9uKCJuZXh0
dW5pcXVlIiwgIm5leHR1bmlxdWUiKTsKKyAgICBjdXJzb3JfZGlyZWN0aW9uKCJwcmV2dW5pcXVl
IiwgInByZXZ1bmlxdWUiKTsKKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1r
ZXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJj
dXJzb3Ita2V5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4xZTEzYzEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJjdXJzb3Ita2V5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKworUEFT
UyBJREJDdXJzb3Iua2V5IC0gMSAKK1BBU1MgSURCQ3Vyc29yLmtleSAtIGtleSAKK1BBU1MgSURC
Q3Vyc29yLmtleSAtIG15LGtleSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Ita2V5Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiY3Vyc29yLWtleS5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uZWNiMjgyNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLWtleS5odG0KQEAgLTAsMCArMSw1NyBAQAorPCFET0NU
WVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yLmtleTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhv
ciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21k
YWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNj
cmlwdD4KKworICAgIGZ1bmN0aW9uIGN1cnNvcl9rZXkoa2V5KQorICAgIHsKKyAgICAgICAgdmFy
IGRiLAorICAgICAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtICIgKyBr
ZXkpOworCisgICAgICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgICAgIG9wZW5f
cnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgZGIgPSBlLnRh
cmdldC5yZXN1bHQ7CisgICAgICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RT
dG9yZSgidGVzdCIpOworCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQoImRhdGEiLCBrZXkpOwor
ICAgICAgICB9OworCisgICAgICAgIG9wZW5fcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0
ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAg
ICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAg
ICAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJkYXRhIiwgInByZXF1aXNpdGUgY3Vyc29y
LnZhbHVlIik7CisKKyAgICAgICAgICAgICAgICBhc3NlcnRfa2V5X2VxdWFscyhjdXJzb3Iua2V5
LCBrZXksICdrZXknKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfcmVhZG9ubHkoY3Vyc29yLCAn
a2V5Jyk7CisKKyAgICAgICAgICAgICAgICBpZiAoa2V5IGluc3RhbmNlb2YgQXJyYXkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgY3Vyc29yLmtleS5wdXNoKCJuZXciKTsKKyAgICAgICAgICAgICAg
ICAgICAga2V5LnB1c2goIm5ldyIpOworCisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9rZXlf
ZXF1YWxzKGN1cnNvci5rZXksIGtleSwgJ2tleSBhZnRlciBhcnJheSBwdXNoJyk7CisKKyAgICAg
ICAgICAgICAgICAgICAgLy8gQnV0IHdlIGNhbiBub3QgY2hhbmdlIGtleSAobGlrZSByZWFkb25s
eSwganVzdCBhIGJpdCBkaWZmZXJlbnQpCisgICAgICAgICAgICAgICAgICAgIGN1cnNvci5rZXkg
PSAxMDsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2tleV9lcXVhbHMoY3Vyc29yLmtleSwg
a2V5LCAna2V5IGFmdGVyIGFzc2lnbm1lbnQnKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9
CisKKyAgICBjdXJzb3Jfa2V5KDEpOworICAgIGN1cnNvcl9rZXkoImtleSIpOworICAgIGN1cnNv
cl9rZXkoWyJteSIsICJrZXkiXSk7CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3ItcHJpbWFyeWtleS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmN1cnNvci1wcmltYXJ5a2V5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4wYjA1YjZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3ItcHJpbWFyeWtleS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw1IEBACisKK1BBU1MgSURCQ3Vyc29yLnByaW1hcnlLZXkgLSAxIAorUEFT
UyBJREJDdXJzb3IucHJpbWFyeUtleSAtIGtleSAKK1BBU1MgSURCQ3Vyc29yLnByaW1hcnlLZXkg
LSBteSxrZXkgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yLXByaW1hcnlrZXkuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJjdXJzb3ItcHJpbWFyeWtleS5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMzA3MjgzOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLXByaW1hcnlrZXkuaHRtCkBAIC0wLDAgKzEsNjEg
QEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci5wcmltYXJ5S2V5PC90aXRsZT4K
KzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9
Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMi
Pjwvc2NyaXB0PgorCis8c2NyaXB0PgorCisgICAgZnVuY3Rpb24gY3Vyc29yX3ByaW1hcnlrZXko
a2V5KQorICAgIHsKKyAgICAgICAgdmFyIGRiLAorICAgICAgICAgIHQgPSBhc3luY190ZXN0KGRv
Y3VtZW50LnRpdGxlICsgIiAtICIgKyBrZXkpOworCisgICAgICAgIHZhciBvcGVuX3JxID0gY3Jl
YXRlZGIodCk7CisgICAgICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkg
eworICAgICAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICB2YXIgb2Jq
U3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIpOworICAgICAgICAgICAgb2JqU3Rv
cmUuY3JlYXRlSW5kZXgoImluZGV4IiwgIiIpOworCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQo
ImRhdGEiLCBrZXkpOworICAgICAgICB9OworCisgICAgICAgIG9wZW5fcnEub25zdWNjZXNzID0g
dC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRi
LnRyYW5zYWN0aW9uKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmpl
Y3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXgoImlu
ZGV4IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAg
ICAgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7
CisgICAgICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLCAiZGF0YSIsICJwcmVxdWlzaXRl
IGN1cnNvci52YWx1ZSIpOworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLmtl
eSwgImRhdGEiLCAicHJlcXVpc2l0ZSBjdXJzb3Iua2V5Iik7CisKKyAgICAgICAgICAgICAgICBh
c3NlcnRfa2V5X2VxdWFscyhjdXJzb3IucHJpbWFyeUtleSwga2V5LCAncHJpbWFyeUtleScpOwor
ICAgICAgICAgICAgICAgIGFzc2VydF9yZWFkb25seShjdXJzb3IsICdwcmltYXJ5S2V5Jyk7CisK
KyAgICAgICAgICAgICAgICBpZiAoa2V5IGluc3RhbmNlb2YgQXJyYXkpIHsKKyAgICAgICAgICAg
ICAgICAgICAgY3Vyc29yLnByaW1hcnlLZXkucHVzaCgibmV3Iik7CisgICAgICAgICAgICAgICAg
ICAgIGtleS5wdXNoKCJuZXciKTsKKworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfa2V5X2Vx
dWFscyhjdXJzb3IucHJpbWFyeUtleSwga2V5LCAncHJpbWFyeUtleSBhZnRlciBhcnJheSBwdXNo
Jyk7CisKKyAgICAgICAgICAgICAgICAgICAgLy8gQnV0IHdlIGNhbiBub3QgY2hhbmdlIGtleSAo
bGlrZSByZWFkb25seSwganVzdCBhIGJpdCBkaWZmZXJlbnQpCisgICAgICAgICAgICAgICAgICAg
IGN1cnNvci5rZXkgPSAxMDsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2tleV9lcXVhbHMo
Y3Vyc29yLnByaW1hcnlLZXksIGtleSwgJ2tleSBhZnRlciBhc3NpZ25tZW50Jyk7CisgICAgICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICB9KTsK
KyAgICAgICAgfSk7CisgICAgfQorCisgICAgY3Vyc29yX3ByaW1hcnlrZXkoMSk7CisgICAgY3Vy
c29yX3ByaW1hcnlrZXkoImtleSIpOworICAgIGN1cnNvcl9wcmltYXJ5a2V5KFsibXkiLCAia2V5
Il0pOworCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLXJldXNlZC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1yZXVz
ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc1ODMz
ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvci1yZXVzZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElE
QkN1cnNvciBpcyByZXVzZWQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiY3Vyc29yLXJldXNlZC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1yZXVzZWQuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjdmOWM4YmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1yZXVzZWQuaHRtCkBAIC0wLDAgKzEsNjkgQEAK
KzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvciBpcyByZXVzZWQ8L3RpdGxlPgorPGxp
bmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2Rp
biBIw7hydGhlIE9tZGFsIj4KKzxtZXRhIHJlbD1oZWxwIGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9y
Zy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJDdXJzb3It
Y29udGludWUtdm9pZC1hbnkta2V5Ij4KKzxtZXRhIHJlbD1hc3NlcnQgdGl0bGU9Ik90aGVyd2lz
ZSB0aGlzIG1ldGhvZCBydW5zIHRoZSBzdGVwcyBmb3IgYXN5bmNocm9ub3VzbHkgZXhlY3V0aW5n
IGEgcmVxdWVzdC4gSG93ZXZlciwgdGhlIHN0ZXBzIGFyZSBzbGlnaHRseSBtb2RpZmllZCBzdWNo
IHRoYXQgaW5zdGVhZCBvZiBjcmVhdGluZyBhIG5ldyBJREJSZXF1ZXN0LCBpdCByZXVzZXMgdGhl
IHJlcXVlc3Qgb3JpZ2luYWxseSBjcmVhdGVkIHdoZW4gdGhpcyBjdXJzb3Igd2FzIGNyZWF0ZWQu
IFRoZSBkb25lIGZsYWcgb24gdGhlIHJlcXVlc3QgaXMgc2V0IHRvIGZhbHNlIGJlZm9yZSB0aGUg
cmVxdWVzdCBpcyByZXR1cm5lZC4gVGhlIHN0ZXBzIGFyZSBydW4gd2l0aCB0aGUgY3Vyc29yJ3Mg
c291cmNlIGFzIHNvdXJjZSBhbmQgdGhlIHN0ZXBzIGZvciBpdGVyYXRpbmcgYSBjdXJzb3IgYXMg
b3BlcmF0aW9uLCB1c2luZyB0aGlzIGN1cnNvciBhcyBjdXJzb3IgYW5kIHRoZSBrZXkgcGFyYW1l
dGVyIGFzIGtleS4iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3Njcmlw
dD4KKworPHNjcmlwdD4KKworICAgICAgICB2YXIgZGIKKyAgICAgICAgdmFyIG9wZW5fcnEgPSBj
cmVhdGVkYihhc3luY190ZXN0KCkpCisKKyAgICAgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQg
PSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdAorICAgICAg
ICAgICAgdmFyIG9zID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiKQorCisgICAgICAgICAg
ICBvcy5hZGQoImRhdGEiLCAgImsiKQorICAgICAgICAgICAgb3MuYWRkKCJkYXRhMiIsICJrMiIp
CisgICAgICAgIH0KKworICAgICAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgICAgIHZhciBjdXJzb3IKKyAgICAgICAgICAgIHZhciBjb3VudCA9IDAKKyAgICAg
ICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0Iikub2JqZWN0U3RvcmUoInRlc3Qi
KS5vcGVuQ3Vyc29yKCkKKworICAgICAgICAgICAgcnEub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1
bmMoZnVuY3Rpb24oZSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBzd2l0Y2goY291
bnQpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBjYXNlIDA6CisgICAg
ICAgICAgICAgICAgICAgICAgICBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQKKworICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUsICJkYXRhIiwgInByZXF1
aXNpdGUgY3Vyc29yLnZhbHVlIikKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvci5jdXN0
b21fY3Vyc29yX3ZhbHVlID0gMQorICAgICAgICAgICAgICAgICAgICAgICAgZS50YXJnZXQuY3Vz
dG9tX3JlcXVlc3RfdmFsdWUgPSAyCisKKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnNvci5j
b250aW51ZSgpCisgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworCisgICAgICAgICAgICAg
ICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vy
c29yLnZhbHVlLCAiZGF0YTIiLCAicHJlcXVpc2l0ZSBjdXJzb3IudmFsdWUiKQorICAgICAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IuY3VzdG9tX2N1cnNvcl92YWx1ZSwg
MSwgImN1c3RvbSBjdXJzb3IgdmFsdWUiKQorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhlLnRhcmdldC5jdXN0b21fcmVxdWVzdF92YWx1ZSwgMiwgImN1c3RvbSByZXF1ZXN0
IHZhbHVlIikKKworICAgICAgICAgICAgICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisKKyAgICAgICAgICAgICAgICAgICAgY2FzZSAy
OgorICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKCEhZS50YXJnZXQucmVzdWx0
LCAiZ290IGN1cnNvciIpCisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1
cnNvci5jdXN0b21fY3Vyc29yX3ZhbHVlLCAxLCAiY3VzdG9tIGN1cnNvciB2YWx1ZSIpCisgICAg
ICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LmN1c3RvbV9yZXF1ZXN0
X3ZhbHVlLCAyLCAiY3VzdG9tIHJlcXVlc3QgdmFsdWUiKQorICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgY291bnQrKworICAg
ICAgICAgICAgfSkKKworICAgICAgICAgICAgcnEudHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IHRo
aXMuc3RlcF9mdW5jKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
Y291bnQsIDMsICJjdXJzb3IgY2FsbGJhY2sgcnVucyIpCisgICAgICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhycS5jdXN0b21fcmVxdWVzdF92YWx1ZSwgMiwgInZhcmlhYmxlIHBsYWNlZCBvbiBv
bGQgSURCUmVxdWVzdCIpCisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IuY3Vz
dG9tX2N1cnNvcl92YWx1ZSwgMSwgImN1c3RvbSBjdXJzb3IgdmFsdWUgKHRyYW5zYWN0aW9uLmNv
bXBsZXRlKSIpCisgICAgICAgICAgICAgICAgdGhpcy5kb25lKCkKKyAgICAgICAgICAgIH0pCisg
ICAgICAgIH0KKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvci1zb3VyY2UtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3It
c291cmNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5m
ODMxYjNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJjdXJzb3Itc291cmNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworUEFT
UyBJREJDdXJzb3Iuc291cmNlIC0gSURCT2JqZWN0U3RvcmUgCitQQVNTIElEQkN1cnNvci5zb3Vy
Y2UgLSBJREJJbmRleCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJjdXJzb3Itc291cmNlLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiY3Vyc29yLXNvdXJjZS5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uODBkZTFjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiY3Vyc29yLXNvdXJjZS5odG0KQEAgLTAsMCArMSw2OCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yLnNvdXJjZTwvdGl0bGU+Cis8bGluayByZWw9
ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0
aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4K
KworPHNjcmlwdD4KKyAgICBzZXR1cCh7IGV4cGxpY2l0X2RvbmU6IHRydWUgfSk7CisKKyAgICB2
YXIgZGI7CisgICAgdmFyIG9wZW5fcnEgPSBpbmRleGVkREIub3BlbigndGVzdGRiLScgKyBuZXcg
RGF0ZSgpLmdldFRpbWUoKSk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlv
bihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3Rv
cmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgibXlfb2JqZWN0c3RvcmUiKTsKKyAgICAgICAgb2Jq
U3RvcmUuY3JlYXRlSW5kZXgoIm15X2luZGV4IiwgIiIpOworCisgICAgICAgIG9ialN0b3JlLmFk
ZCgiZGF0YSIsICAxKTsKKyAgICAgICAgb2JqU3RvcmUuYWRkKCJkYXRhMiIsIDIpOworICAgIH07
CisKKyAgICBmdW5jdGlvbiBjdXJzb3Jfc291cmNlKG5hbWUsIHN0cmluZ2lmaWVkX29iamVjdCwg
Y3Vyc29yX3JxKSB7CisgICAgICAgIHZhciBjdXJzb3I7CisKKyAgICAgICAgY3Vyc29yX3JxLm9u
c3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGlmICgh
ZS50YXJnZXQucmVzdWx0KSB7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgYXNz
ZXJ0X3JlYWRvbmx5KGN1cnNvciwgJ3NvdXJjZScpOworCisgICAgICAgICAgICAvLyBEaXJlY3Qg
dHJ5CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3Iuc291cmNlIGluc3RhbmNlb2YgT2Jq
ZWN0LCAic291cmNlIGlzb2JqZWN0Iik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNv
ci5zb3VyY2UgKyAiIiwgc3RyaW5naWZpZWRfb2JqZWN0LCAic291cmNlIik7CisgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGN1cnNvci5zb3VyY2UubmFtZSwgbmFtZSwgIm5hbWUiKTsKKworICAg
ICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgIH0pOworCisgICAgICAgIGN1cnNv
cl9ycS50cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkg
eworICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgICB9KTsKKworICAgICAgICBjdXJz
b3JfcnEudHJhbnNhY3Rpb24ub25lcnJvciA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoIlRyYW5zYWN0aW9uIGdvdCBlcnJvci4gIiAr
IChlLnRhcmdldC5lcnJvciA/IGUudGFyZ2V0LmVycm9yLm5hbWUgOiAidW5rbm93biIpKTsKKyAg
ICAgICAgfSk7CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsK
KyAgICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICcgLSBJREJPYmplY3RTdG9yZScp
LnN0ZXAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBjdXJzb3Jfc291cmNlLmNhbGwodGhpcywg
Im15X29iamVjdHN0b3JlIiwgIltvYmplY3QgSURCT2JqZWN0U3RvcmVdIiwgZGIudHJhbnNhY3Rp
b24oIm15X29iamVjdHN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoIm15X29iamVjdHN0b3JlIikKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1
cnNvcigpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgYXN5bmNfdGVzdChkb2N1bWVudC50aXRs
ZSArICcgLSBJREJJbmRleCcpLnN0ZXAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBjdXJzb3Jf
c291cmNlLmNhbGwodGhpcywgIm15X2luZGV4IiwgIltvYmplY3QgSURCSW5kZXhdIiwgZGIudHJh
bnNhY3Rpb24oIm15X29iamVjdHN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoIm15X29iamVjdHN0b3JlIikKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXgoIm15X2lu
ZGV4IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAu
b3BlbkN1cnNvcigpKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZG9uZSgpOworICAgIH07CisK
Kzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZh
bmNlX2luZGV4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li43NmQ3ZDkzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
IEBACisKK1BBU1MgSURCQ3Vyc29yLmFkdmFuY2UoKSAtIGluZGV4IC0gaXRlcmF0ZSBjdXJzb3Ig
bnVtYmVyIG9mIHRpbWVzIHNwZWNpZmllZCBieSBjb3VudCAgCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXguaHRt
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9p
bmRleC5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmMxZjI0NgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vy
c29yX2FkdmFuY2VfaW5kZXguaHRtCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgor
PHRpdGxlPklEQkN1cnNvci5hZHZhbmNlKCkgLSBpbmRleCAtIGl0ZXJhdGUgY3Vyc29yIG51bWJl
ciBvZiB0aW1lcyBzcGVjaWZpZWQgYnkgY291bnQgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAg
dmFyIGRiLAorICAgICAgY291bnQgPSAwLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAg
IHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9
LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4
S2V5XzEiIH0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzIiLCBpS2V5
OiAiaW5kZXhLZXlfMiIgfSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlf
MyIsIGlLZXk6ICJpbmRleEtleV8zIiB9XTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIo
dCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAg
IGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmpl
Y3RTdG9yZSgidGVzdCIsIHtrZXlQYXRoOiJwS2V5In0pOworICAgICAgICBzdG9yZS5jcmVhdGVJ
bmRleCgiaWR4IiwgImlLZXkiKTsKKworICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgcmVjb3Jk
cy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgc3RvcmUuYWRkKHJlY29yZHNbaV0pOworICAg
ICAgICB9CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24gKGUpIHsK
KyAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgLmluZGV4KCJpZHgiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1
cnNvcigpOworCisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5j
dGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworICAg
ICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yKTsKKworICAg
ICAgICAgICAgc3dpdGNoKGNvdW50KSB7CisgICAgICAgICAgICAgICAgY2FzZSAwOgorICAgICAg
ICAgICAgICAgICAgICBjb3VudCArPSAzOworICAgICAgICAgICAgICAgICAgICBjdXJzb3IuYWR2
YW5jZSgzKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2Fz
ZSAzOgorICAgICAgICAgICAgICAgICAgICB2YXIgcmVjb3JkID0gY3Vyc29yLnZhbHVlOworICAg
ICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlY29yZC5wS2V5LCByZWNvcmRzW2NvdW50
XS5wS2V5LCAicmVjb3JkLnBLZXkiKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhyZWNvcmQuaUtleSwgcmVjb3Jkc1tjb3VudF0uaUtleSwgInJlY29yZC5pS2V5Iik7CisgICAg
ICAgICAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFj
aGVkKCJ1bmV4cGVjdGVkIGNvdW50Iik7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+
PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmN1cnNvcl9hZHZhbmNlX2luZGV4Mi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Mi1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTFkZTE3YwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2Vf
aW5kZXgyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IuYWR2
YW5jZSgpIC0gYXR0ZW1wdCB0byBwYXNzIGEgY291bnQgcGFyYW1ldGVyIHRoYXQgaXMgbm90IGEg
bnVtYmVyIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Mi5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Mi5odG0KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMDhmYjA1ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgyLmh0bQpAQCAt
MCwwICsxLDQ3IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3IuYWR2YW5jZSgp
IC0gYXR0ZW1wdCB0byBwYXNzIGEgY291bnQgcGFyYW1ldGVyIHRoYXQgaXMgbm90IGEgbnVtYmVy
PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNv
bSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8bGluayByZWw9aGVscCBocmVmPSJodHRw
Oi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dp
ZGwtSURCQ3Vyc29yLWFkdmFuY2Utdm9pZC11bnNpZ25lZC1sb25nLWNvdW50Ij4KKzxsaW5rIHJl
bD1hc3NlcnQgdGl0bGU9IlRoZSB2YWx1ZSBwYXNzZWQgaW50byB0aGUgY291bnQgcGFyYW1ldGVy
IHdhcyB6ZXJvIG9yIGEgbmVnYXRpdmUgbnVtYmVyLiI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCisgICAgdmFyIGRiLAorICAgICAg
dCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pLAorICAgICAg
cmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0s
CisgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5kZXhL
ZXlfMSIgfSBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3Jx
Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5y
ZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0
Iiwge2tleVBhdGg6InBLZXkifSk7CisKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImlu
ZGV4IiwgImlLZXkiKTsKKworICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5n
dGg7IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICB9Owor
CisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBjdXJz
b3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAg
IC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5pbmRleCgi
aW5kZXgiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOworCisgICAg
ICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAg
ICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICBhc3Nl
cnRfdHJ1ZShjdXJzb3IgIT0gbnVsbCwgImN1cnNvciBleGlzdCIpOworICAgICAgICAgICAgYXNz
ZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksCisgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7
IGN1cnNvci5hZHZhbmNlKGRvY3VtZW50KTsgfSk7CisKKyAgICAgICAgICAgIHQuZG9uZSgpOwor
ICAgICAgICB9KTsKKyAgICB9OworCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
X2FkdmFuY2VfaW5kZXgzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMTZhZjMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDMt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci5hZHZhbmNlKCkg
LSBpbmRleCAtIGF0dGVtcHQgdG8gYWR2YW5jZSBiYWNrd2FyZHMgCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXgz
Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFu
Y2VfaW5kZXgzLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOGExYWVm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3JfYWR2YW5jZV9pbmRleDMuaHRtCkBAIC0wLDAgKzEsNDcgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPHRpdGxlPklEQkN1cnNvci5hZHZhbmNlKCkgLSBpbmRleCAtIGF0dGVtcHQgdG8gYWR2
YW5jZSBiYWNrd2FyZHM8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpv
ZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxsaW5rIHJlbD1o
ZWxwIGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092
ZXJ2aWV3Lmh0bWwjd2lkbC1JREJDdXJzb3ItYWR2YW5jZS12b2lkLXVuc2lnbmVkLWxvbmctY291
bnQiPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iVGhlIHZhbHVlIHBhc3NlZCBpbnRvIHRoZSBj
b3VudCBwYXJhbWV0ZXIgd2FzIHplcm8gb3IgYSBuZWdhdGl2ZSBudW1iZXIuIj4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KKworICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KGRvY3Vt
ZW50LnRpdGxlLCB7dGltZW91dDogMTAwMDB9KSwKKyAgICAgIHJlY29yZHMgPSBbIHsgcEtleTog
InByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAorICAgICAgICAgICAgICAgICAg
eyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH0gXTsKKworICAgIHZh
ciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBm
dW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIg
b2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDoicEtleSIg
fSk7CisKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlLZXkiKTsKKwor
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAgICAg
ICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25z
dWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNh
Y3Rpb24oInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRl
c3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXgoImluZGV4IikKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IodW5kZWZpbmVkLCAibmV4dCIpOworCisgICAg
ICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAg
ICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICBhc3Nl
cnRfdHJ1ZShjdXJzb3IgIT0gbnVsbCwgImN1cnNvciBleGlzdCIpOworICAgICAgICAgICAgYXNz
ZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksCisgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7
IGN1cnNvci5hZHZhbmNlKC0xKTsgfSk7CisKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAg
ICB9KTsKKyAgICB9OworCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFu
Y2VfaW5kZXg1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg1LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5kYzA5OTE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDUtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitGQUlMIElEQkN1cnNvci5hZHZhbmNlKCkgLSBpbmRl
eCAtIGl0ZXJhdGUgdG8gdGhlIG5leHQgcmVjb3JkIGFzc2VydF91bnJlYWNoZWQ6IHVuZXhwZWN0
ZWQgZGIuZXJyb3IgKFVua25vd25FcnJvcikgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2Fk
dmFuY2VfaW5kZXg1Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yX2FkdmFuY2VfaW5kZXg1Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi44MDY4OGYzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDUuaHRtCkBAIC0wLDAgKzEsNTUgQEAK
KzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci5hZHZhbmNlKCkgLSBpbmRleCAtIGl0
ZXJhdGUgdG8gdGhlIG5leHQgcmVjb3JkPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVm
PSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8
bGluayByZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1m
aWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCQ3Vyc29yLWFkdmFuY2Utdm9pZC11bnNpZ25l
ZC1sb25nLWNvdW50Ij4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IlRoZSBvcGVyYXRpb24gcnVu
cyB0aGUgc3RlcHMgZm9yIGl0ZXJhdGluZyBhIGN1cnNvciBjb3VudCBudW1iZXIgb2YgdGltZXMg
d2l0aCBudWxsIGFzIGtleSBhbmQgdGhpcyBjdXJzb3IgYXMgY3Vyc29yLiI+Cis8bGluayByZWw9
YXNzZXJ0IHRpdGxlPSJUaGUgbnVtYmVyIG9mIGFkdmFuY2VzIGZvcndhcmQgdGhlIGN1cnNvciBz
aG91bGQgbWFrZS4iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3Njcmlw
dD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICBjb3VudCA9IDAsCisgICAgICB0ID0g
YXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSksCisgICAgICByZWNv
cmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCAgIGlLZXk6ICJpbmRleEtleV8wIiB9LAor
ICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgICBpS2V5OiAiaW5kZXhL
ZXlfMSIgfSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMS0yIiwgaUtl
eTogImluZGV4S2V5XzEiIH0gXSwKKyAgICAgIGV4cGVjdGVkID0gWyB7IHBLZXk6ICJwcmltYXJ5
S2V5XzAiLCAgIGlLZXk6ICJpbmRleEtleV8wIiB9LAorICAgICAgICAgICAgICAgICAgIHsgcEtl
eTogInByaW1hcnlLZXlfMS0yIiwgaUtleTogImluZGV4S2V5XzEiIH0gXTsKKworICAgIHZhciBv
cGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0CisgICAgICAgIHZhciBvYmpT
dG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiJwS2V5IiB9KQor
CisgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5IikKKworICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBv
YmpTdG9yZS5hZGQocmVjb3Jkc1tpXSkKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3Mg
PSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigi
dGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIC5pbmRleCgiaW5kZXgiKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3Mg
PSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50
YXJnZXQucmVzdWx0OworICAgICAgICAgICAgaWYgKCFjdXJzb3IpIHsKKyAgICAgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGNvdW50LCBleHBlY3RlZC5sZW5ndGgsICJjdXJzb3IgcnVuIGNvdW50
IikKKyAgICAgICAgICAgICAgICB0LmRvbmUoKQorICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICB2YXIgcmVjb3JkID0gY3Vyc29yLnZhbHVlOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhy
ZWNvcmQucEtleSwgZXhwZWN0ZWRbY291bnRdLnBLZXksICJwcmltYXJ5IGtleSIpOworICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhyZWNvcmQuaUtleSwgZXhwZWN0ZWRbY291bnRdLmlLZXksICJp
bmRleCBrZXkiKTsKKworICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMik7CisgICAgICAgICAg
ICBjb3VudCsrOworICAgICAgICB9KTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9Imxv
ZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Ni1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Ni1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDc1MjExZgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFu
Y2VfaW5kZXg2LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3Iu
YWR2YW5jZSgpIC0gaW5kZXggLSB0aHJvdyBUeXBlRXJyb3IgCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg2Lmh0
bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2Vf
aW5kZXg2Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NGQ2NTNjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJj
dXJzb3JfYWR2YW5jZV9pbmRleDYuaHRtCkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1s
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQkN1cnNvci5hZHZhbmNlKCkgLSBp
bmRleCAtIHRocm93IFR5cGVFcnJvcjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9
IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhy
ZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmll
dy5odG1sI3dpZGwtSURCQ3Vyc29yLWFkdmFuY2Utdm9pZC11bnNpZ25lZC1sb25nLWNvdW50Ij4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJs
b2ciPjwvZGl2PgorPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0
KCksCisgICAgICAgIHJlY29yZHMgPSBbeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImlu
ZGV4S2V5XzAiIH0sCisgICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwg
aUtleTogImluZGV4S2V5XzEiIH1dOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsK
KyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAg
ICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNy
ZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHtrZXlQYXRoIDogInBLZXkifSk7CisgICAgICAgIG9i
alN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7CisgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgb2JqU3RvcmUuYWRk
KHJlY29yZHNbaV0pOworICAgICAgICB9CisgICAgICAgIHZhciBycSA9IG9ialN0b3JlLmluZGV4
KCJpbmRleCIpLm9wZW5DdXJzb3IoKTsKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1
bmMoZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBldmVudC50YXJn
ZXQucmVzdWx0OworICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURC
Q3Vyc29yKTsKKworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1
bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGN1cnNvci5hZHZhbmNlKDApOworICAgICAgICAg
ICAgfSwgIkNhbGxpbmcgYWR2YW5jZSgpIHdpdGggY291bnQgYXJndW1lbnQgMCBzaG91bGQgdGhy
b3cgVHlwZUVycm9yLiIpOworCisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7Cisg
ICAgfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg3LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMmE0NDdiCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3JfYWR2YW5jZV9pbmRleDctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElE
QkN1cnNvci5hZHZhbmNlKCkgLSBpbmRleCAtIHRocm93IFRyYW5zYWN0aW9uSW5hY3RpdmVFcnJv
ciAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJj
dXJzb3JfYWR2YW5jZV9pbmRleDcuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRleDcuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjYxN2NkYTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4Ny5odG0KQEAgLTAsMCAr
MSwzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+
SURCQ3Vyc29yLmFkdmFuY2UoKSAtIGluZGV4IC0gdGhyb3cgVHJhbnNhY3Rpb25JbmFjdGl2ZUVy
cm9yPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6
Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLncz
Lm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJDdXJz
b3ItYWR2YW5jZS12b2lkLXVuc2lnbmVkLWxvbmctY291bnQiPgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0
PgorICAgIHZhciBkYiwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgICAgcmVjb3Jk
cyA9IFt7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKKyAgICAg
ICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5kZXhLZXlfMSIg
fV07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdy
YWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgIGRiID0gZXZlbnQudGFyZ2V0
LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0
b3JlIiwge2tleVBhdGggOiAicEtleSJ9KTsKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgo
ImluZGV4IiwgImlLZXkiKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxl
bmd0aDsgaSsrKSB7CisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAg
ICAgIH0KKyAgICAgICAgdmFyIHJxID0gb2JqU3RvcmUuaW5kZXgoImluZGV4Iikub3BlbkN1cnNv
cigpOworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVudCkg
eworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAg
ICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3IpOworCisgICAgICAg
ICAgICBldmVudC50YXJnZXQudHJhbnNhY3Rpb24uYWJvcnQoKTsKKyAgICAgICAgICAgIGFzc2Vy
dF90aHJvd3MoIlRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgIGN1cnNvci5hZHZhbmNlKDEpOworICAgICAgICAgICAgfSwgIkNhbGxpbmcgYWR2
YW5jZSgpIHNob3VsZCB0aHJvd3MgYW4gZXhjZXB0aW9uIFRyYW5zYWN0aW9uSW5hY3RpdmVFcnJv
ciB3aGVuIHRoZSB0cmFuc2FjdGlvbiBpcyBub3QgYWN0aXZlLiIpOworCisgICAgICAgICAgICB0
LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9pbmRl
eDgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJj
dXJzb3JfYWR2YW5jZV9pbmRleDgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmQ4MmIxNGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4OC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLmFkdmFuY2UoKSAtIGluZGV4IC0gdGhy
b3cgSW52YWxpZFN0YXRlRXJyb3IgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg4Lmh0bSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg4Lmh0bQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xY2RlOWFmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9p
bmRleDguaHRtCkBAIC0wLDAgKzEsMzggQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgorPHRpdGxlPklEQkN1cnNvci5hZHZhbmNlKCkgLSBpbmRleCAtIHRocm93IElu
dmFsaWRTdGF0ZUVycm9yPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwi
IGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwj
d2lkbC1JREJDdXJzb3ItYWR2YW5jZS12b2lkLXVuc2lnbmVkLWxvbmctY291bnQiPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9k
aXY+Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAg
ICAgICAgcmVjb3JkcyA9IFt7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlf
MCIgfSwKKyAgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAi
aW5kZXhLZXlfMSIgfV07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9w
ZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgIGRiID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoInN0b3JlIiwge2tleVBhdGggOiAicEtleSJ9KTsKKyAgICAgICAgb2JqU3RvcmUu
Y3JlYXRlSW5kZXgoImluZGV4IiwgImlLZXkiKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCByZWNvcmRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jk
c1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgdmFyIHJxID0gb2JqU3RvcmUuaW5kZXgoImluZGV4
Iikub3BlbkN1cnNvcigpOworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5j
dGlvbihldmVudCkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1
bHQ7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3Ip
OworCisgICAgICAgICAgICBjdXJzb3IuYWR2YW5jZSgxKTsKKyAgICAgICAgICAgIGFzc2VydF90
aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAg
Y3Vyc29yLmFkdmFuY2UoMSk7CisgICAgICAgICAgICB9LCAiQ2FsbGluZyBhZHZhbmNlKCkgc2hv
dWxkIHRocm93IERPTUV4Y2VwdGlvbiB3aGVuIHRoZSBjdXJzb3IgaXMgY3VycmVudGx5IGJlaW5n
IGl0ZXJhdGVkLiIpOworCisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAg
fQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg5LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNmJiMjdhCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Jf
YWR2YW5jZV9pbmRleDktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorCitGQUlMIElEQkN1
cnNvci5hZHZhbmNlKCkgLSBpbmRleCAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yIGNhdXNlZCBi
eSBvYmplY3Qgc3RvcmUgYmVlbiBkZWxldGVkIGFzc2VydF90aHJvd3M6IElmIHRoZSBjdXJzb3In
cyBzb3VyY2Ugb3IgZWZmZWN0aXZlIG9iamVjdCBzdG9yZSBoYXMgYmVlbiBkZWxldGVkLCB0aGUg
aW1wbGVtZW50YXRpb24gTVVTVCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRT
dGF0ZUVycm9yIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgY3Vyc29y
LmFkdmFuY2UoMSk7CisgICAgICAgIC4uLiIgZGlkIG5vdCB0aHJvdworCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX2luZGV4
OS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZh
bmNlX2luZGV4OS5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDkxYzFi
YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiY3Vyc29yX2FkdmFuY2VfaW5kZXg5Lmh0bQpAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJDdXJzb3IuYWR2YW5jZSgp
IC0gaW5kZXggLSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciBjYXVzZWQgYnkgb2JqZWN0IHN0b3Jl
IGJlZW4gZGVsZXRlZDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBo
cmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBv
cnQuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFy
IGRiLAorICAgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgICByZWNvcmRzID0gW3sgcEtl
eTogInByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAorICAgICAgICAgICAgICAg
ICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9XTsKKworICAg
IHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQg
PSBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0Owor
ICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7a2V5
UGF0aCA6ICJwS2V5In0pOworICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAi
aUtleSIpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKysp
IHsKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICAgICAgfQorICAg
ICAgICB2YXIgcnEgPSBvYmpTdG9yZS5pbmRleCgiaW5kZXgiKS5vcGVuQ3Vyc29yKCk7CisgICAg
ICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAg
ICAgICB2YXIgY3Vyc29yID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGFzc2Vy
dF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvciwgImN1cnNvciBleGlzdCIpOworCisg
ICAgICAgICAgICBkYi5kZWxldGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKyAgICAgICAgICAgIGFz
c2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgY3Vyc29yLmFkdmFuY2UoMSk7CisgICAgICAgICAgICB9LCAiSWYgdGhlIGN1cnNvcidz
IHNvdXJjZSBvciBlZmZlY3RpdmUgb2JqZWN0IHN0b3JlIGhhcyBiZWVuIGRlbGV0ZWQsIHRoZSBp
bXBsZW1lbnRhdGlvbiBNVVNUIHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgSW52YWxpZFN0
YXRlRXJyb3IiKTsKKworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH0K
Kzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmUt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxMDM1ODQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAK
KworUEFTUyAgSURCQ3Vyc29yLmFkdmFuY2UoKSAtIG9iamVjdCBzdG9yZSAtIGl0ZXJhdGUgY3Vy
c29yIG51bWJlciBvZiB0aW1lcyBzcGVjaWZpZWQgYnkgY291bnQgIAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVj
dHN0b3JlLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
X2FkdmFuY2Vfb2JqZWN0c3RvcmUuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmIwNjNjMmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlLmh0bQpAQCAtMCwwICsxLDU0
IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT4gSURCQ3Vyc29yLmFkdmFuY2UoKSAtIG9iamVj
dCBzdG9yZSAtIGl0ZXJhdGUgY3Vyc29yIG51bWJlciBvZiB0aW1lcyBzcGVjaWZpZWQgYnkgY291
bnQgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJo
dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQu
anM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgY291bnQgPSAwLAor
ICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1h
cnlLZXlfMCIgfSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIgfSwK
KyAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMiIgfSwKKyAgICAgICAgICAg
ICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMyIgfV07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNy
ZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewor
ICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIHN0b3JlID0gZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7a2V5UGF0aDoicEtleSJ9KTsKKworICAgICAgICBmb3Io
dmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgc3RvcmUu
YWRkKHJlY29yZHNbaV0pOworICAgICAgICB9CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNj
ZXNzID0gZnVuY3Rpb24gKGUpIHsKKyAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0
aW9uKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0
IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKKworICAgICAgICBj
dXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAg
ICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGFzc2VydF90cnVl
KGN1cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvcik7CisKKyAgICAgICAgICAgIHN3aXRjaChjb3Vu
dCkgeworICAgICAgICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICAgICAgY291bnQg
Kz0gMzsKKyAgICAgICAgICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMyk7CisgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGNhc2UgMzoKKyAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3IudmFsdWUucEtleSwgcmVjb3Jkc1tjb3VudF0ucEtl
eSwgImN1cnNvci52YWx1ZS5wS2V5Iik7CisgICAgICAgICAgICAgICAgICAgIHQuZG9uZSgpOwor
ICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKCJ1bmV4cGVjdGVkIGNvdW50Iik7Cisg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAg
ICB9CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz4gPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0
b3JlMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uZjZhNzA4NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmUy
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IuYWR2YW5jZSgp
IC0gb2JqZWN0IHN0b3JlIC0gdGhyb3cgVHlwZUVycm9yIAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3Jl
Mi5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZh
bmNlX29iamVjdHN0b3JlMi5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NWFjZjdmZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmUyLmh0bQpAQCAtMCwwICsxLDQwIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJDdXJz
b3IuYWR2YW5jZSgpIC0gb2JqZWN0IHN0b3JlIC0gdGhyb3cgVHlwZUVycm9yPC90aXRsZT4KKzxs
aW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29t
Ij4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVk
REIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJDdXJzb3ItYWR2YW5jZS12b2lk
LXVuc2lnbmVkLWxvbmctY291bnQiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorICAgIHZhciBkYiwK
KyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgICAgcmVjb3JkcyA9IFt7IHBLZXk6ICJw
cmltYXJ5S2V5XzAifSwKKyAgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEi
fV07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdy
YWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgIGRiID0gZXZlbnQudGFyZ2V0
LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0
b3JlIiwge2tleVBhdGg6InBLZXkifSk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVj
b3Jkcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0p
OworICAgICAgICB9CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAo
ZXZlbnQpIHsKKyAgICAgICAgdmFyIHR4biA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIsICJyZWFk
d3JpdGUiKTsKKyAgICAgICAgdmFyIHJxID0gdHhuLm9iamVjdFN0b3JlKCJzdG9yZSIpLm9wZW5D
dXJzb3IoKTsKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZl
bnQpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OworICAg
ICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yKTsKKworICAg
ICAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgIGN1cnNvci5hZHZhbmNlKDApOworICAgICAgICAgICAgfSwgIkNhbGxpbmcg
YWR2YW5jZSgpIHdpdGggY291bnQgYXJndW1lbnQgMCBzaG91bGQgdGhyb3cgVHlwZUVycm9yLiIp
OworCisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vy
c29yX2FkdmFuY2Vfb2JqZWN0c3RvcmUzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmUzLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mY2IwZGViCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Jf
YWR2YW5jZV9vYmplY3RzdG9yZTMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNT
IElEQkN1cnNvci5hZHZhbmNlKCkgLSBvYmplY3Qgc3RvcmUgLSB0aHJvdyBUcmFuc2FjdGlvbklu
YWN0aXZlRXJyb3IgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmUzLmh0bSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmUzLmh0bQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OGI1Nzc1Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5j
ZV9vYmplY3RzdG9yZTMuaHRtCkBAIC0wLDAgKzEsNDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQkN1cnNvci5hZHZhbmNlKCkgLSBvYmplY3Qg
c3RvcmUgLSB0aHJvdyBUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3I8L3RpdGxlPgorPGxpbmsgcmVs
PSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxp
bmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXct
ZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkN1cnNvci1hZHZhbmNlLXZvaWQtdW5zaWdu
ZWQtbG9uZy1jb3VudCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2Ny
aXB0PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAg
ICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgICByZWNvcmRzID0gW3sgcEtleTogInByaW1hcnlL
ZXlfMCJ9LAorICAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSJ9XTsKKwor
ICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVk
ZWQgPSBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0
OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7
a2V5UGF0aDoicEtleSJ9KTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxl
bmd0aDsgaSsrKSB7CisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAg
ICAgIH0KKyAgICB9CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChldmVudCkg
eworICAgICAgICB2YXIgdHhuID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIiwgInJlYWR3cml0ZSIp
OworICAgICAgICB2YXIgcnEgPSB0eG4ub2JqZWN0U3RvcmUoInN0b3JlIikub3BlbkN1cnNvcigp
OworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVudCkgewor
ICAgICAgICAgICAgdmFyIGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAg
ICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3IpOworCisgICAgICAgICAg
ICBldmVudC50YXJnZXQudHJhbnNhY3Rpb24uYWJvcnQoKTsKKyAgICAgICAgICAgIGFzc2VydF90
aHJvd3MoIlRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAg
ICAgICAgIGN1cnNvci5hZHZhbmNlKDEpOworICAgICAgICAgICAgfSwgIkNhbGxpbmcgYWR2YW5j
ZSgpIHNob3VsZCB0aHJvd3MgYW4gZXhjZXB0aW9uIFRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvciB3
aGVuIHRoZSB0cmFuc2FjdGlvbiBpcyBub3QgYWN0aXZlIik7CisKKyAgICAgICAgICAgIHQuZG9u
ZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0
b3JlNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlNC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uMjdhZDc5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2Vfb2JqZWN0c3RvcmU0
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IuYWR2YW5jZSgp
IC0gb2JqZWN0IHN0b3JlIC0gdGhyb3cgSW52YWxpZFN0YXRlRXJyb3IgCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2FkdmFuY2Vfb2Jq
ZWN0c3RvcmU0Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vy
c29yX2FkdmFuY2Vfb2JqZWN0c3RvcmU0Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5kYWJmOGU4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTQuaHRtCkBAIC0wLDAg
KzEsNDEgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxl
PklEQkN1cnNvci5hZHZhbmNlKCkgLSBvYmplY3Qgc3RvcmUgLSB0aHJvdyBJbnZhbGlkU3RhdGVF
cnJvcjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRw
Oi8vd3d3LmludGVsLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53
My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCQ3Vy
c29yLWFkdmFuY2Utdm9pZC11bnNpZ25lZC1sb25nLWNvdW50Ij4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlw
dD4KKyAgICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICAgIHJlY29y
ZHMgPSBbeyBwS2V5OiAicHJpbWFyeUtleV8wIn0sCisgICAgICAgICAgICAgICAgICAgeyBwS2V5
OiAicHJpbWFyeUtleV8xIn1dOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAg
ICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICBk
YiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0
ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHtrZXlQYXRoOiJwS2V5In0pOworICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIG9ialN0b3Jl
LmFkZChyZWNvcmRzW2ldKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIG9wZW5fcnEub25zdWNj
ZXNzID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgIHZhciB0eG4gPSBkYi50cmFuc2FjdGlv
bigic3RvcmUiLCAicmVhZHdyaXRlIik7CisgICAgICAgIHZhciBycSA9IHR4bi5vYmplY3RTdG9y
ZSgic3RvcmUiKS5vcGVuQ3Vyc29yKCk7CisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9m
dW5jKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZXZlbnQudGFy
Z2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElE
QkN1cnNvcik7CisKKyAgICAgICAgICAgIGN1cnNvci5hZHZhbmNlKDEpOworICAgICAgICAgICAg
YXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICBjdXJzb3IuYWR2YW5jZSgxKTsKKyAgICAgICAgICAgIH0sICJDYWxsaW5nIGFkdmFu
Y2UoKSBzaG91bGQgdGhyb3cgRE9NRXhjZXB0aW9uIHdoZW4gdGhlIGN1cnNvciBpcyBjdXJyZW50
bHkgYmVpbmcgaXRlcmF0ZWQuIik7CisKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9
KTsKKyAgICB9Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9vYmplY3RzdG9yZTUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfYWR2YW5jZV9v
YmplY3RzdG9yZTUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjljOTIwOGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlNS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw1IEBACisKK0ZBSUwgSURCQ3Vyc29yLmFkdmFuY2UoKSAtIG9iamVjdCBzdG9yZSAt
IHRocm93IEludmFsaWRTdGF0ZUVycm9yIGNhdXNlZCBieSBvYmplY3Qgc3RvcmUgYmVlbiBkZWxl
dGVkIGFzc2VydF90aHJvd3M6IElmIHRoZSBjdXJzb3IncyBzb3VyY2Ugb3IgZWZmZWN0aXZlIG9i
amVjdCBzdG9yZSBoYXMgYmVlbiBkZWxldGVkLCB0aGUgaW1wbGVtZW50YXRpb24gTVVTVCB0aHJv
dyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yIGZ1bmN0aW9uICJmdW5j
dGlvbiAoKSB7CisgICAgICAgICAgICAgICAgY3Vyc29yLmFkdmFuY2UoMSk7CisgICAgICAgIC4u
LiIgZGlkIG5vdCB0aHJvdworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlNS5odG0gYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9hZHZhbmNlX29iamVjdHN0b3JlNS5o
dG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmY2MWY2ZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2Fk
dmFuY2Vfb2JqZWN0c3RvcmU1Lmh0bQpAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJDdXJzb3IuYWR2YW5jZSgpIC0gb2Jq
ZWN0IHN0b3JlIC0gdGhyb3cgSW52YWxpZFN0YXRlRXJyb3IgY2F1c2VkIGJ5IG9iamVjdCBzdG9y
ZSBiZWVuIGRlbGV0ZWQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIg
aHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBw
b3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorICAgIHZh
ciBkYiwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgICAgcmVjb3JkcyA9IFt7IHBL
ZXk6ICJwcmltYXJ5S2V5XzAifSwKKyAgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5
S2V5XzEifV07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEu
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgIGRiID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoInN0b3JlIiwge2tleVBhdGg6InBLZXkifSk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29y
ZHNbaV0pOworICAgICAgICB9CisgICAgICAgIHZhciBycSA9IG9ialN0b3JlLm9wZW5DdXJzb3Io
KTsKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsK
KyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICAg
ICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yLCAiY3Vyc29yIGV4aXN0
Iik7CisKKyAgICAgICAgICAgIGRiLmRlbGV0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOworICAgICAg
ICAgICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICBjdXJzb3IuYWR2YW5jZSgxKTsKKyAgICAgICAgICAgIH0sICJJZiB0aGUg
Y3Vyc29yJ3Mgc291cmNlIG9yIGVmZmVjdGl2ZSBvYmplY3Qgc3RvcmUgaGFzIGJlZW4gZGVsZXRl
ZCwgdGhlIGltcGxlbWVudGF0aW9uIE1VU1QgdGhyb3cgYSBET01FeGNlcHRpb24gb2YgdHlwZSBJ
bnZhbGlkU3RhdGVFcnJvciIpOworCisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7
CisgICAgfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNGEwMDVlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJj
dXJzb3JfY29udGludWVfaW5kZXgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNT
IElEQkN1cnNvci5jb250aW51ZSgpIC0gaW5kZXggLSBpdGVyYXRlIHRvIHRoZSBuZXh0IHJlY29y
ZCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJj
dXJzb3JfY29udGludWVfaW5kZXguaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXguaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjBhODJlMjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleC5odG0KQEAgLTAsMCAr
MSw1MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBp
bmRleCAtIGl0ZXJhdGUgdG8gdGhlIG5leHQgcmVjb3JkPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0
aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgor
PGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXct
ZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkN1cnNvci1jb250aW51ZS12b2lkLWFueS1r
ZXkiPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iT3RoZXJ3aXNlIHRoaXMgbWV0aG9kIHJ1bnMg
dGhlIHN0ZXBzIGZvciBhc3luY2hyb25vdXNseSBleGVjdXRpbmcgYSByZXF1ZXN0LiI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAg
IHZhciBkYiwKKyAgICAgIGNvdW50ID0gMCwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAg
ICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCAgIGlLZXk6ICJpbmRleEtleV8w
IiB9LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgICBpS2V5OiAi
aW5kZXhLZXlfMSIgfSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMS0y
IiwgaUtleTogImluZGV4S2V5XzEiIH0gXTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIo
dCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAg
IGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVP
YmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDoicEtleSIgfSk7CisKKyAgICAgICAgb2JqU3Rv
cmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlLZXkiKTsKKworICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVj
b3Jkc1tpXSk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkg
eworICAgICAgICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAuaW5kZXgoImluZGV4IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9w
ZW5DdXJzb3IoKTsKKworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMo
ZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsK
KyAgICAgICAgICAgIGlmICghY3Vyc29yKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhjb3VudCwgcmVjb3Jkcy5sZW5ndGgsICJjdXJzb3IgcnVuIGNvdW50Iik7CisgICAgICAgICAg
ICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHZhciByZWNvcmQg
PSBjdXJzb3IudmFsdWU7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJlY29yZC5wS2V5LCBy
ZWNvcmRzW2NvdW50XS5wS2V5LCAicHJpbWFyeSBrZXkiKTsKKyAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMocmVjb3JkLmlLZXksIHJlY29yZHNbY291bnRdLmlLZXksICJpbmRleCBrZXkiKTsKKwor
ICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgICAgICBjb3VudCsrOworICAg
ICAgICB9KTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250
aW51ZV9pbmRleDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXgyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi45ZTE3MzEwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXgyLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IuY29udGludWUoKSAt
IGluZGV4IC0gYXR0ZW1wdCB0byBwYXNzIGEga2V5IHBhcmFtZXRlciB0aGF0IGlzIG5vdCBhIHZh
bGlkIGtleSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJjdXJzb3JfY29udGludWVfaW5kZXgyLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4Mi5odG0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uM2E4ODk4YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4Mi5odG0K
QEAgLTAsMCArMSw0OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yLmNvbnRp
bnVlKCkgLSBpbmRleCAtIGF0dGVtcHQgdG8gcGFzcyBhIGtleSBwYXJhbWV0ZXIgdGhhdCBpcyBu
b3QgYSB2YWxpZCBrZXk8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3Nv
ZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8bGluayByZWw9aGVscCBocmVm
PSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5o
dG1sI3dpZGwtSURCQ3Vyc29yLWNvbnRpbnVlLXZvaWQtYW55LWtleSI+Cis8bGluayByZWw9YXNz
ZXJ0IHRpdGxlPSJJZiB0aGUga2V5IHBhcmFtZXRlciBpcyBzcGVjaWZpZWQgYW5kIGZ1bGZpbGxz
IGFueSBvZiB0aGVzZSBjb25kaXRpb25zIHRoaXMgbWV0aG9kIG11c3QgdGhyb3cgYSBET01FeGNl
cHRpb24gb2YgdHlwZSBEYXRhRXJyb3IiPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iVGhlIHBh
cmFtZXRlciBpcyBub3QgYSB2YWxpZCBrZXkuIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3Vw
cG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKKyAgICB2YXIgZGIsCisgICAgICB0ID0g
YXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwg
aUtleTogImluZGV4S2V5XzAiIH0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5
S2V5XzEiLCBpS2V5OiAiaW5kZXhLZXlfMSIgfSBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVh
dGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNy
ZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iiwge2tleVBhdGg6InBLZXkifSk7CisKKyAgICAgICAgb2Jq
U3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlLZXkiKTsKKworICAgICAgICBmb3IodmFyIGkg
PSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChy
ZWNvcmRzW2ldKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihl
KSB7CisgICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIC5pbmRleCgiaW5kZXgiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAu
b3BlbkN1cnNvcigpOworCisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVu
YyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0
OworCisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLAorICAgICAgICAgICAg
ICAgIGZ1bmN0aW9uKCkgeyBjdXJzb3IuY29udGludWUoZG9jdW1lbnQpOyB9KTsKKworICAgICAg
ICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yV2l0aFZhbHVlLCAi
Y3Vyc29yIik7CisKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9Owor
Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4My1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9j
b250aW51ZV9pbmRleDMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmQ1MGQ5ZjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci5jb250aW51ZSgpIC0gaW5kZXggLSBhdHRlbXB0
IHRvIGl0ZXJhdGUgdG8gdGhlIHByZXZpb3VzIHJlY29yZCB3aGVuIHRoZSBkaXJlY3Rpb24gaXMg
c2V0IGZvciB0aGUgbmV4dCByZWNvcmQgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDMuaHRtIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXgzLmh0
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NWVlZmEzCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29u
dGludWVfaW5kZXgzLmh0bQpAQCAtMCwwICsxLDU0IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRs
ZT5JREJDdXJzb3IuY29udGludWUoKSAtIGluZGV4IC0gYXR0ZW1wdCB0byBpdGVyYXRlIHRvIHRo
ZSBwcmV2aW91cyByZWNvcmQgd2hlbiB0aGUgZGlyZWN0aW9uIGlzIHNldCBmb3IgdGhlIG5leHQg
cmVjb3JkIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJl
Zj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0dHA6
Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lk
bC1JREJDdXJzb3ItY29udGludWUtdm9pZC1hbnkta2V5Ij4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0
bGU9IlRoZSBwYXJhbWV0ZXIgaXMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoaXMgY3Vyc29yJ3Mg
cG9zaXRpb24gYW5kIHRoaXMgY3Vyc29yJ3MgZGlyZWN0aW9uIGlzICduZXh0JyBvciAnbmV4dHVu
aXF1ZScuIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisK
KzxzY3JpcHQ+CisKKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAg
cmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0s
CisgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5kZXhL
ZXlfMSIgfSBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3Jx
Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5y
ZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0
Iiwge2tleVBhdGg6InBLZXkifSk7CisKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImlu
ZGV4IiwgImlLZXkiKTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVu
Z3RoOyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgfTsK
KworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgY291
bnQgPSAwOworICAgICAgICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAuaW5kZXgoImluZGV4IikKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgLm9wZW5DdXJzb3IodW5kZWZpbmVkLCAibmV4dCIpOyAvLyBYWFg6IEZ4IGhhcyBpc3N1ZSB3
aXRoICJ1bmRlZmluZWQiCisKKyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9m
dW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1
bHQ7CisgICAgICAgICAgICBpZiAoIWN1cnNvcikgeworICAgICAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoY291bnQsIDIsICJyYW4gbnVtYmVyIG9mIHRpbWVzIik7CisgICAgICAgICAgICAgICAg
dC5kb25lKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC8vIEZpcnN0IHRpbWUgY2hl
Y2tzIGtleSBlcXVhbCwgc2Vjb25kIHRpbWUgY2hlY2tzIGtleSBsZXNzIHRoYW4KKyAgICAgICAg
ICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsCisgICAgICAgICAgICAgICAgZnVuY3Rpb24o
KSB7IGN1cnNvci5jb250aW51ZShyZWNvcmRzWzBdLmlLZXkpOyB9KTsKKworICAgICAgICAgICAg
Y3Vyc29yLmNvbnRpbnVlKCk7CisKKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgIH0pOwor
ICAgIH07CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5k
ZXg0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yX2NvbnRpbnVlX2luZGV4NC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uNzE0MDY5YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4NC1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBpbmRleCAt
IGF0dGVtcHQgdG8gaXRlcmF0ZSB0byB0aGUgbmV4dCByZWNvcmQgd2hlbiB0aGUgZGlyZWN0aW9u
IGlzIHNldCBmb3IgdGhlIHByZXZpb3VzIHJlY29yZCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg0Lmh0bSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2lu
ZGV4NC5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDQxNmM5ZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vy
c29yX2NvbnRpbnVlX2luZGV4NC5odG0KQEAgLTAsMCArMSw2NSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8dGl0bGU+SURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBpbmRleCAtIGF0dGVtcHQgdG8gaXRlcmF0
ZSB0byB0aGUgbmV4dCByZWNvcmQgd2hlbiB0aGUgZGlyZWN0aW9uIGlzIHNldCBmb3IgdGhlIHBy
ZXZpb3VzIHJlY29yZDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29m
dCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxsaW5rIHJlbD1oZWxwIGhyZWY9
Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0
bWwjd2lkbC1JREJDdXJzb3ItY29udGludWUtdm9pZC1hbnkta2V5Ij4KKzxsaW5rIHJlbD1hc3Nl
cnQgdGl0bGU9IlRoZSBwYXJhbWV0ZXIgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoaXMg
Y3Vyc29yJ3MgcG9zaXRpb24gYW5kIHRoaXMgY3Vyc29yJ3MgZGlyZWN0aW9uIGlzICdwcmV2JyBv
ciAncHJldnVuaXF1ZScuIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9z
Y3JpcHQ+CisKKzxzY3JpcHQ+CisKKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgp
LAorICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4
S2V5XzAiIH0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5
OiAiaW5kZXhLZXlfMSIgfSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlf
MiIsIGlLZXk6ICJpbmRleEtleV8yIiB9IF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRi
KHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAg
ICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRl
T2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJwS2V5IiB9KTsKKworICAgICAgICBvYmpT
dG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaUtleSIpOworCisgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChy
ZWNvcmRzW2ldKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihl
KSB7CisgICAgICAgIHZhciBjb3VudCA9IDAsCisgICAgICAgICAgY3Vyc29yX3JxID0gZGIudHJh
bnNhY3Rpb24oInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0
ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgIC5pbmRleCgiaW5kZXgiKQorICAgICAgICAg
ICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IodW5kZWZpbmVkLCAicHJldiIpOyAvLyBYWFggRngg
aXNzdWVzIHcgdW5kZWZpbmVkCisKKyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3Rl
cF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5y
ZXN1bHQsCisgICAgICAgICAgICAgIHJlY29yZCA9IGN1cnNvci52YWx1ZTsKKworICAgICAgICAg
ICAgc3dpdGNoKGNvdW50KSB7CisgICAgICAgICAgICBjYXNlIDA6CisgICAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhyZWNvcmQucEtleSwgcmVjb3Jkc1syXS5wS2V5LCAiZmlyc3QgcEtleSIp
OworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVjb3JkLmlLZXksIHJlY29yZHNbMl0u
aUtleSwgImZpcnN0IGlLZXkiKTsKKyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgY2FzZSAxOgorICAgICAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMocmVjb3JkLnBLZXksIHJlY29yZHNbMV0ucEtleSwgInNlY29u
ZCBwS2V5Iik7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWNvcmQuaUtleSwgcmVj
b3Jkc1sxXS5pS2V5LCAic2Vjb25kIGlLZXkiKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhy
b3dzKCJEYXRhRXJyb3IiLAorICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgY3Vyc29y
LmNvbnRpbnVlKCJpbmRleEtleV8yIik7IH0pOworICAgICAgICAgICAgICAgIHQuZG9uZSgpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgICAgIGFzc2VydF91bnJlYWNoZWQoIlVuZXhwZWN0ZWQgY291bnQgdmFsdWU6ICIgKyBjb3Vu
dCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgIH0pOwor
ICAgIH07CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5k
ZXg1LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yX2NvbnRpbnVlX2luZGV4NS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uZGIxYTNlZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4NS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwzIEBACisKK0ZBSUwgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBpbmRleCAt
IGl0ZXJhdGUgdXNpbmcgJ3ByZXZ1bmlxdWUnIERhdGFFcnJvcjogRE9NIElEQkRhdGFiYXNlIEV4
Y2VwdGlvbiAwCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4NS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDUuaHRtCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI2NzJhYzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDUuaHRt
CkBAIC0wLDAgKzEsNjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci5jb250
aW51ZSgpIC0gaW5kZXggLSBpdGVyYXRlIHVzaW5nICdwcmV2dW5pcXVlJzwvdGl0bGU+Cis8bGlu
ayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGlu
IEjDuHJ0aGUgT21kYWwiPgorPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3Jn
L2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNjdXJzb3ItaXRlcmF0aW9u
LW9wZXJhdGlvbiI+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxlPSdJZiBkaXJlY3Rpb24gaXMgInBy
ZXZ1bmlxdWUiLCBsZXQgdGVtcCByZWNvcmQgYmUgdGhlIGxhc3QgcmVjb3JkIGluIHJlY29yZHMg
d2hpY2ggc2F0aXNmeSBhbGwgb2YgdGhlIGZvbGxvd2luZyByZXF1aXJlbWVudHM6Jz4KKzxsaW5r
IHJlbD1hc3NlcnQgdGl0bGU9IklmIHBvc2l0aW9uIGlzIGRlZmluZWQsIHRoZSByZWNvcmQncyBr
ZXkgaXMgbGVzcyB0aGFuIHBvc2l0aW9uLiI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBv
cnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCisgICAgdmFyIGRiLAorICAgICAgdCA9IGFz
eW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pLAorICAgICAgcmVjb3Jk
cyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgICBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKKyAg
ICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsICAgaUtleTogImluZGV4S2V5
XzEiIH0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEtMiIsIGlLZXk6
ICJpbmRleEtleV8xIiB9LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8y
IiwgICBpS2V5OiAiaW5kZXhLZXlfMiIgfSBdLAorCisgICAgICBleHBlY3RlZCA9IFsgeyBwS2V5
OiAicHJpbWFyeUtleV8yIiwgICBpS2V5OiAiaW5kZXhLZXlfMiIgfSwKKyAgICAgICAgICAgICAg
ICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgICBpS2V5OiAiaW5kZXhLZXlfMSIgfSwKKyAgICAg
ICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgICBpS2V5OiAiaW5kZXhLZXlfMCIg
fSBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBn
cmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7
CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBr
ZXlQYXRoOiAicEtleSIgfSk7CisKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4
IiwgImlLZXkiKTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3Ro
OyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgfTsKKwor
ICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgY291bnQg
PSAwLAorICAgICAgICAgIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKKyAgICAg
ICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAg
ICAgICAgICAuaW5kZXgoImluZGV4IikKKyAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vy
c29yKHVuZGVmaW5lZCwgJ3ByZXZ1bmlxdWUnKTsKKworICAgICAgICBjdXJzb3JfcnEub25zdWNj
ZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgaWYgKCFlLnRhcmdl
dC5yZXN1bHQpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCBleHBlY3Rl
ZC5sZW5ndGgsICdjb3VudCcpOworICAgICAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBl
LnRhcmdldC5yZXN1bHQsCisgICAgICAgICAgICAgIHJlY29yZCA9IGN1cnNvci52YWx1ZTsKKwor
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWNvcmQucEtleSwgZXhwZWN0ZWRbY291bnRdLnBL
ZXksICJwS2V5ICMiICsgY291bnQpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWNvcmQu
aUtleSwgZXhwZWN0ZWRbY291bnRdLmlLZXksICJpS2V5ICMiICsgY291bnQpOworCisgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5rZXksICBleHBlY3RlZFtjb3VudF0uaUtleSwgImN1
cnNvci5rZXkgIyIgKyBjb3VudCk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5w
cmltYXJ5S2V5LCBleHBlY3RlZFtjb3VudF0ucEtleSwgImN1cnNvci5wcmltYXJ5S2V5ICMiICsg
Y291bnQpOworCisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAgICAgY3Vyc29yLmNvbnRp
bnVlKGV4cGVjdGVkW2NvdW50XSA/IGV4cGVjdGVkW2NvdW50XS5pS2V5IDogdW5kZWZpbmVkKTsK
KyAgICAgICAgfSk7CisgICAgfTsKKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNv
cl9jb250aW51ZV9pbmRleDYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg2LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZTc2ZjZjCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5k
ZXg2LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworRkFJTCBJREJDdXJzb3IuY29udGlu
dWUoKSAtIGluZGV4IC0gaXRlcmF0ZSB1c2luZyBuZXh0dW5pcXVlIERhdGFFcnJvcjogRE9NIElE
QkRhdGFiYXNlIEV4Y2VwdGlvbiAwCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2luZGV4Ni5odG0gYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDYuaHRtCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4OWU1NGIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51
ZV9pbmRleDYuaHRtCkBAIC0wLDAgKzEsNjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklE
QkN1cnNvci5jb250aW51ZSgpIC0gaW5kZXggLSBpdGVyYXRlIHVzaW5nIG5leHR1bmlxdWU8L3Rp
dGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0
aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0dHA6Ly9k
dmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjY3Vyc29y
LWl0ZXJhdGlvbi1vcGVyYXRpb24iPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0nSWYgZGlyZWN0
aW9uIGlzICJuZXh0dW5pcXVlIiwgbGV0IGZvdW5kIHJlY29yZCBiZSB0aGUgZmlyc3QgcmVjb3Jk
IGluIHJlY29yZHMgd2hpY2ggc2F0aXNmeSBhbGwgb2YgdGhlIGZvbGxvd2luZyByZXF1aXJlbWVu
dHM6Jz4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IklmIHBvc2l0aW9uIGlzIGRlZmluZWQsIHRo
ZSByZWNvcmQncyBrZXkgaXMgZ3JlYXRlciB0aGFuIHBvc2l0aW9uLiI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCisgICAgdmFyIGRi
LAorICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0p
LAorICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgICBpS2V5OiAiaW5k
ZXhLZXlfMCIgfSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsICAg
aUtleTogImluZGV4S2V5XzEiIH0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5
S2V5XzEtMiIsIGlLZXk6ICJpbmRleEtleV8xIiB9LAorICAgICAgICAgICAgICAgICAgeyBwS2V5
OiAicHJpbWFyeUtleV8yIiwgICBpS2V5OiAiaW5kZXhLZXlfMiIgfSBdLAorCisgICAgICBleHBl
Y3RlZCA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgICBpS2V5OiAiaW5kZXhLZXlfMCIgfSwK
KyAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgICBpS2V5OiAiaW5kZXhL
ZXlfMSIgfSwKKyAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8yIiwgICBpS2V5
OiAiaW5kZXhLZXlfMiIgfSBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAg
ICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBl
LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAicEtleSIgfSk7CisKKyAgICAgICAgb2JqU3RvcmUuY3Jl
YXRlSW5kZXgoImluZGV4IiwgImlLZXkiKTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tp
XSk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAg
ICAgICB2YXIgY291bnQgPSAwLAorICAgICAgICAgIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9u
KCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisg
ICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXgoImluZGV4IikKKyAgICAgICAgICAgICAgICAg
ICAgICAgIC5vcGVuQ3Vyc29yKHVuZGVmaW5lZCwgIm5leHR1bmlxdWUiKTsKKworICAgICAgICBj
dXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAg
ICAgaWYgKCFlLnRhcmdldC5yZXN1bHQpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGNvdW50LCBleHBlY3RlZC5sZW5ndGgsICdjb3VudCcpOworICAgICAgICAgICAgICAgIHQuZG9u
ZSgpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQsCisgICAgICAgICAgICAgIHJlY29yZCA9IGN1
cnNvci52YWx1ZTsKKworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhyZWNvcmQucEtleSwgZXhw
ZWN0ZWRbY291bnRdLnBLZXksICJwS2V5ICMiICsgY291bnQpOworICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhyZWNvcmQuaUtleSwgZXhwZWN0ZWRbY291bnRdLmlLZXksICJpS2V5ICMiICsgY291
bnQpOworCisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci5rZXksICBleHBlY3RlZFtj
b3VudF0uaUtleSwgImN1cnNvci5rZXkgIyIgKyBjb3VudCk7CisgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGN1cnNvci5wcmltYXJ5S2V5LCBleHBlY3RlZFtjb3VudF0ucEtleSwgImN1cnNvci5w
cmltYXJ5S2V5ICMiICsgY291bnQpOworCisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICAg
ICAgY3Vyc29yLmNvbnRpbnVlKGV4cGVjdGVkW2NvdW50XSA/IGV4cGVjdGVkW2NvdW50XS5pS2V5
IDogdW5kZWZpbmVkKTsKKyAgICAgICAgfSk7CisgICAgfTsKKworPC9zY3JpcHQ+CisKKzxkaXYg
aWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg3LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMzAwMjk5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3JfY29udGludWVfaW5kZXg3LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJ
REJDdXJzb3IuY29udGludWUoKSAtIGluZGV4IC0gdGhyb3cgVHJhbnNhY3Rpb25JbmFjdGl2ZUVy
cm9yIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmN1cnNvcl9jb250aW51ZV9pbmRleDcuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg3Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi41YWU2MDk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg3Lmh0bQpAQCAt
MCwwICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0
aXRsZT5JREJDdXJzb3IuY29udGludWUoKSAtIGluZGV4IC0gdGhyb3cgVHJhbnNhY3Rpb25JbmFj
dGl2ZUVycm9yPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9
Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KKworICAgIHZhciBk
YiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJw
cmltYXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKKyAgICAgICAgICAgICAgICAgIHsg
cEtleTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9IF07CisKKyAgICB2YXIg
b3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVu
Y3Rpb24gKGV2ZW50KSB7CisgICAgICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAg
ICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwge2tleVBhdGgg
OiAicEtleSJ9KTsKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlLZXki
KTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKSB7Cisg
ICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgICAgIH0KKyAgICAgICAg
dmFyIHJxID0gb2JqU3RvcmUuaW5kZXgoImluZGV4Iikub3BlbkN1cnNvcigpOworICAgICAgICBy
cS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAg
dmFyIGN1cnNvciA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBhc3NlcnRfdHJ1
ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3IpOworCisgICAgICAgICAgICBldmVudC50YXJn
ZXQudHJhbnNhY3Rpb24uYWJvcnQoKTsKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIlRyYW5z
YWN0aW9uSW5hY3RpdmVFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGN1cnNv
ci5jb250aW51ZSgpOworICAgICAgICAgICAgfSwgIkNhbGxpbmcgY29udGludWUoKSBzaG91bGQg
dGhyb3dzIGFuIGV4Y2VwdGlvbiBUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3Igd2hlbiB0aGUgdHJh
bnNhY3Rpb24gaXMgbm90IGFjdGl2ZS4iKTsKKworICAgICAgICAgICAgdC5kb25lKCk7CisgICAg
ICAgIH0pOworICAgIH0KKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDgtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVf
aW5kZXg4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44
NDUxNDZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW5kZXg4LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUg
QEAKKworRkFJTCBJREJDdXJzb3IuY29udGludWUoKSAtIGluZGV4IC0gdGhyb3cgSW52YWxpZFN0
YXRlRXJyb3IgY2F1c2VkIGJ5IG9iamVjdCBzdG9yZSBiZWVuIGRlbGV0ZWQgYXNzZXJ0X3Rocm93
czogSWYgdGhlIGN1cnNvcidzIHNvdXJjZSBvciBlZmZlY3RpdmUgb2JqZWN0IHN0b3JlIGhhcyBi
ZWVuIGRlbGV0ZWQsIHRoZSBpbXBsZW1lbnRhdGlvbiBNVVNUIHRocm93IGEgRE9NRXhjZXB0aW9u
IG9mIHR5cGUgSW52YWxpZFN0YXRlRXJyb3IgZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAgICAgLi4uIiBkaWQgbm90IHRocm93
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vy
c29yX2NvbnRpbnVlX2luZGV4OC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDguaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjZlZTU3ZjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbmRleDguaHRtCkBAIC0wLDAg
KzEsMzggQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxl
PklEQkN1cnNvci5jb250aW51ZSgpIC0gaW5kZXggLSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciBj
YXVzZWQgYnkgb2JqZWN0IHN0b3JlIGJlZW4gZGVsZXRlZDwvdGl0bGU+Cis8bGluayByZWw9ImF1
dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48L2Rp
dj4KKzxzY3JpcHQ+CisKKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAg
ICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAi
IH0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5k
ZXhLZXlfMSIgfSBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVu
X3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICBkYiA9IGV2
ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVj
dFN0b3JlKCJzdG9yZSIsIHtrZXlQYXRoIDogInBLZXkifSk7CisgICAgICAgIG9ialN0b3JlLmNy
ZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
cmVjb3Jkcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNb
aV0pOworICAgICAgICB9CisgICAgICAgIHZhciBycSA9IG9ialN0b3JlLmluZGV4KCJpbmRleCIp
Lm9wZW5DdXJzb3IoKTsKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rp
b24oZXZlbnQpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0
OworICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yKTsK
KworICAgICAgICAgICAgZGIuZGVsZXRlT2JqZWN0U3RvcmUoInN0b3JlIik7CisgICAgICAgICAg
ICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAgfSwgIklmIHRoZSBjdXJz
b3IncyBzb3VyY2Ugb3IgZWZmZWN0aXZlIG9iamVjdCBzdG9yZSBoYXMgYmVlbiBkZWxldGVkLCB0
aGUgaW1wbGVtZW50YXRpb24gTVVTVCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFs
aWRTdGF0ZUVycm9yIik7CisKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAg
ICB9CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfaW52YWxpZC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9pbnZhbGlkLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNzQ3MTE5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJj
dXJzb3JfY29udGludWVfaW52YWxpZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK0ZB
SUwgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBhdHRlbXB0IHRvIGNhbGwgY29udGludWUgdHdvIHRp
bWVzIERhdGFFcnJvcjogRE9NIElEQkRhdGFiYXNlIEV4Y2VwdGlvbiAwCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2lu
dmFsaWQuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Jf
Y29udGludWVfaW52YWxpZC5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NjU3YTZhMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX2ludmFsaWQuaHRtCkBAIC0wLDAgKzEsNTQgQEAKKzwh
RE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci5jb250aW51ZSgpIC0gYXR0ZW1wdCB0byBj
YWxsIGNvbnRpbnVlIHR3byB0aW1lczwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0i
bWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKwor
ICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91
dDogMTAwMDB9KTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9y
cS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQu
cmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVz
dCIpOworCisgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICIiKTsKKworICAg
ICAgICBvYmpTdG9yZS5hZGQoImRhdGEiLCAgMSk7CisgICAgICAgIG9ialN0b3JlLmFkZCgiZGF0
YTIiLCAyKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7
CisgICAgICAgIHZhciBjb3VudCA9IDA7CisgICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFu
c2FjdGlvbigidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgi
dGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5pbmRleCgiaW5kZXgiKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAgIGN1cnNvcl9ycS5v
bnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBpZiAoIWUu
dGFyZ2V0LnJlc3VsdCkgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQsIDIs
ICdjb3VudCcpOworICAgICAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5y
ZXN1bHQ7CisKKyAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSh1bmRlZmluZWQpOworCisgICAg
ICAgICAgICAvLyBTZWNvbmQgdHJ5CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlk
U3RhdGVFcnJvcicsCisgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5jb250aW51
ZSgpOyB9LCAnc2Vjb25kIGNvbnRpbnVlJyk7CisKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3Mo
J0ludmFsaWRTdGF0ZUVycm9yJywKKyAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgY3Vyc29y
LmNvbnRpbnVlKDMpOyB9LCAndGhpcmQgY29udGludWUnKTsKKworICAgICAgICAgICAgY291bnQr
KzsKKyAgICAgICAgfSk7CisgICAgfTsKKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9k
aXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1
cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTRjNmE2OQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
X2NvbnRpbnVlX29iamVjdHN0b3JlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFT
UyBJREJDdXJzb3IuY29udGludWUoKSAtIG9iamVjdCBzdG9yZSAtIGl0ZXJhdGUgdG8gdGhlIG5l
eHQgcmVjb3JkIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZS5odG0gYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZS5odG0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzdlNzgxNgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVl
X29iamVjdHN0b3JlLmh0bQpAQCAtMCwwICsxLDQ2IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRs
ZT5JREJDdXJzb3IuY29udGludWUoKSAtIG9iamVjdCBzdG9yZSAtIGl0ZXJhdGUgdG8gdGhlIG5l
eHQgcmVjb3JkPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBo
cmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1
cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgY291bnQg
PSAwLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZHMgPSBbIHsgcEtleTog
InByaW1hcnlLZXlfMCIgfSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlf
MSIgfSBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9u
dXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1
bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iiwg
e2F1dG9JbmNyZW1lbnQ6dHJ1ZSwga2V5UGF0aDoicEtleSJ9KTsKKworICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5h
ZGQocmVjb3Jkc1tpXSk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rp
b24oZSkgeworICAgICAgICB2YXIgc3RvcmUgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCisgICAg
ICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0Iik7CisKKyAgICAgICAgY3Vyc29y
X3JxID0gc3RvcmUub3BlbkN1cnNvcigpOworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0g
dC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFy
Z2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGlmICghY3Vyc29yKSB7CisgICAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhjb3VudCwgcmVjb3Jkcy5sZW5ndGgsICJjdXJzb3IgcnVuIGNvdW50Iik7
CisgICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IHZhciByZWNvcmQgPSBjdXJzb3IudmFsdWU7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJl
Y29yZC5wS2V5LCByZWNvcmRzW2NvdW50XS5wS2V5LCAicHJpbWFyeSBrZXkiKTsKKyAgICAgICAg
ICAgIGFzc2VydF9lcXVhbHMocmVjb3JkLmlLZXksIHJlY29yZHNbY291bnRdLmlLZXksICJpbmRl
eCBrZXkiKTsKKworICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgICAgICBj
b3VudCsrOworICAgICAgICB9KTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPiA8
L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTItZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhOWM2YjUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1
cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAor
CitQQVNTIElEQkN1cnNvci5jb250aW51ZSgpIC0gb2JqZWN0IHN0b3JlIC0gYXR0ZW1wdCB0byBw
YXNzIGEga2V5IHBhcmFtZXRlciBpcyBub3QgYSB2YWxpZCBrZXkgIAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmpl
Y3RzdG9yZTIuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3JfY29udGludWVfb2JqZWN0c3RvcmUyLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi40NGU0MzhmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmUyLmh0bQpAQCAtMCww
ICsxLDQwIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3IuY29udGludWUoKSAt
IG9iamVjdCBzdG9yZSAtIGF0dGVtcHQgdG8gcGFzcyBhIGtleSBwYXJhbWV0ZXIgaXMgbm90IGEg
dmFsaWQga2V5IDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIg
aHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
c3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9
IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIg
fSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIgfSBdOworCisgICAg
dmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9
IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZh
ciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iiwge2tleVBhdGg6InBLZXki
fSk7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQor
ICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOworICAgIH07CisKKyAgICBvcGVu
X3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRi
LnRyYW5zYWN0aW9uKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0
b3JlKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKKwor
ICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewor
ICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAg
YXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yLCAiY3Vyc29yIGV4aXN0cyIp
OworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwKKyAgICAgICAgICAgICAg
ICBmdW5jdGlvbigpIHsgY3Vyc29yLmNvbnRpbnVlKGRvY3VtZW50KTsgfSk7CisKKyAgICAgICAg
ICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9
ImxvZyI+IDwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmUzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0
b3JlMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjY4
MDgwMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlMy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBvYmplY3Qgc3RvcmUgLSBhdHRl
bXB0IHRvIGl0ZXJhdGUgdG8gdGhlIHByZXZpb3VzIHJlY29yZCB3aGVuIHRoZSBkaXJlY3Rpb24g
aXMgc2V0IGZvciB0aGUgbmV4dCByZWNvcmQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlMy5odG0g
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9v
YmplY3RzdG9yZTMuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4MDQy
ZTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTMuaHRtCkBAIC0wLDAgKzEsNDAgQEAKKzwh
RE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci5jb250aW51ZSgpIC0gb2JqZWN0IHN0b3Jl
IC0gYXR0ZW1wdCB0byBpdGVyYXRlIHRvIHRoZSBwcmV2aW91cyByZWNvcmQgd2hlbiB0aGUgZGly
ZWN0aW9uIGlzIHNldCBmb3IgdGhlIG5leHQgcmVjb3JkPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0
aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4K
KyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkcyA9IFsg
eyBwS2V5OiAicHJpbWFyeUtleV8wIiB9LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJp
bWFyeUtleV8xIiB9IF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9w
ZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFy
Z2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUo
InRlc3QiLCB7a2V5UGF0aDoicEtleSJ9KTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tp
XSk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAg
ICAgICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAub3BlbkN1cnNvcih1bmRlZmluZWQsICJuZXh0Iik7CisKKyAgICAgICAgY3Vyc29yX3Jx
Lm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBj
dXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNv
ciBpbnN0YW5jZW9mIElEQkN1cnNvciwgImN1cnNvciBleGlzdCIpOworICAgICAgICAgICAgYXNz
ZXJ0X3Rocm93cygiRGF0YUVycm9yIiwKKyAgICAgICAgICAgICAgICBmdW5jdGlvbigpIHsgY3Vy
c29yLmNvbnRpbnVlKHJlY29yZHNbMF0ucEtleSk7IH0pOworCisgICAgICAgICAgICB0LmRvbmUo
KTsKKyAgICAgICAgfSk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPiA8L2Rp
dj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vy
c29yX2NvbnRpbnVlX29iamVjdHN0b3JlNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTQtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE1ZjMxYjUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNv
cl9jb250aW51ZV9vYmplY3RzdG9yZTQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQ
QVNTIElEQkN1cnNvci5jb250aW51ZSgpIC0gb2JqZWN0IHN0b3JlIC0gYXR0ZW1wdCB0byBpdGVy
YXRlIHRvIHRoZSBuZXh0IHJlY29yZCB3aGVuIHRoZSBkaXJlY3Rpb24gaXMgc2V0IGZvciB0aGUg
cHJldmlvdXMgcmVjb3JkICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmU0Lmh0bSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3Jl
NC5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjBkOTFkOQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
X2NvbnRpbnVlX29iamVjdHN0b3JlNC5odG0KQEAgLTAsMCArMSw1NyBAQAorPCFET0NUWVBFIGh0
bWw+Cis8dGl0bGU+SURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBvYmplY3Qgc3RvcmUgLSBhdHRlbXB0
IHRvIGl0ZXJhdGUgdG8gdGhlIG5leHQgcmVjb3JkIHdoZW4gdGhlIGRpcmVjdGlvbiBpcyBzZXQg
Zm9yIHRoZSBwcmV2aW91cyByZWNvcmQgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRs
ZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIg
ZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAi
cHJpbWFyeUtleV8wIiB9LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8x
IiB9LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8yIiB9IF07CisKKyAg
ICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVk
ID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAg
dmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJw
S2V5IiB9KTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBp
KyspCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgfTsKKworICAg
IG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgY291bnQgPSAw
LAorICAgICAgICAgIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IikKKyAgICAgICAg
ICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAg
ICAgICAub3BlbkN1cnNvcihudWxsLCAicHJldiIpOworCisgICAgICAgIGN1cnNvcl9ycS5vbnN1
Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY3Vyc29y
ID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgIT0g
bnVsbCwgImN1cnNvciBleGlzdCIpOworCisgICAgICAgICAgICBzd2l0Y2goY291bnQpIHsKKyAg
ICAgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52
YWx1ZS5wS2V5LCByZWNvcmRzWzJdLnBLZXksICJmaXJzdCBjdXJzb3IgcGtleSIpOworICAgICAg
ICAgICAgICAgIGN1cnNvci5jb250aW51ZShyZWNvcmRzWzFdLnBLZXkpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhjdXJzb3IudmFsdWUucEtleSwgcmVjb3Jkc1sxXS5wS2V5LCAic2Vjb25kIGN1cnNv
ciBwa2V5Iik7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwKKyAg
ICAgICAgICAgICAgICAgICAgZnVuY3Rpb24oKSB7IGN1cnNvci5jb250aW51ZShyZWNvcmRzWzJd
LnBLZXkpOyB9KTsKKyAgICAgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBhc3NlcnRfdW5y
ZWFjaGVkKCJVbmV4cGVjdGVkIGNvdW50IHZhbHVlOiAiICsgY291bnQpOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICB9KTsKKyAgICB9OworPC9zY3JpcHQ+
CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGlu
dWVfb2JqZWN0c3RvcmU1LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5lOWExYTg3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmU1LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IuY29udGludWUoKSAtIG9iamVjdCBz
dG9yZSAtIHRocm93IFRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvciAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0
c3RvcmU1Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
X2NvbnRpbnVlX29iamVjdHN0b3JlNS5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMDI2MzE1YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiY3Vyc29yX2NvbnRpbnVlX29iamVjdHN0b3JlNS5odG0KQEAgLTAsMCAr
MSw0MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+
SURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBvYmplY3Qgc3RvcmUgLSB0aHJvdyBUcmFuc2FjdGlvbklu
YWN0aXZlRXJyb3I8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJl
Zj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0
LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+IDwvZGl2PgorPHNjcmlwdD4KKyAgICB2YXIg
ZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAi
cHJpbWFyeUtleV8wIiB9LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8x
IiB9IF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251
cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3Vs
dDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7
a2V5UGF0aDoicEtleSJ9KTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMu
bGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAg
fTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIg
Y3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub3Bl
bkN1cnNvcigpOworCisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhm
dW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0Owor
ICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yLCAiY3Vy
c29yIGV4aXN0cyIpOworCisgICAgICAgICAgICBlLnRhcmdldC50cmFuc2FjdGlvbi5hYm9ydCgp
OworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yIiwg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAg
ICAgICB9LCAiQ2FsbGluZyBjb250aW51ZSgpIHNob3VsZCB0aHJvd3MgYW4gZXhjZXB0aW9uIFRy
YW5zYWN0aW9uSW5hY3RpdmVFcnJvciB3aGVuIHRoZSB0cmFuc2FjdGlvbiBpcyBub3QgYWN0aXZl
LiIpOworCisKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9OworPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmU2LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNzNlY2E3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJj
dXJzb3JfY29udGludWVfb2JqZWN0c3RvcmU2LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAK
KworRkFJTCBJREJDdXJzb3IuY29udGludWUoKSAtIG9iamVjdCBzdG9yZSAtIHRocm93IEludmFs
aWRTdGF0ZUVycm9yIGNhdXNlZCBieSBvYmplY3Qgc3RvcmUgYmVlbiBkZWxldGVkIGFzc2VydF90
aHJvd3M6IElmIHRoZSBjdXJzb3IncyBzb3VyY2Ugb3IgZWZmZWN0aXZlIG9iamVjdCBzdG9yZSBo
YXMgYmVlbiBkZWxldGVkLCB0aGUgaW1wbGVtZW50YXRpb24gTVVTVCB0aHJvdyBhIERPTUV4Y2Vw
dGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yIGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Cisg
ICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgIC4uLiIgZGlkIG5vdCB0
aHJvdworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmN1cnNvcl9jb250aW51ZV9vYmplY3RzdG9yZTYuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfb2JqZWN0c3RvcmU2Lmh0bQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNTY5NTU5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfY29udGludWVfb2Jq
ZWN0c3RvcmU2Lmh0bQpAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJDdXJzb3IuY29udGludWUoKSAtIG9iamVjdCBzdG9y
ZSAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yIGNhdXNlZCBieSBvYmplY3Qgc3RvcmUgYmVlbiBk
ZWxldGVkPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0
dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+
PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPiA8L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFyIGRiLAor
ICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1h
cnlLZXlfMCIgfSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIgfSBd
OworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFk
ZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7Cisg
ICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iiwge2tleVBh
dGg6InBLZXkifSk7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0
aDsgaSsrKQorICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOworCisgICAgICAg
IHZhciBjdXJzb3JfcnEgPSBvYmpTdG9yZS5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgY3Vyc29y
X3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZh
ciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJz
b3IgaW5zdGFuY2VvZiBJREJDdXJzb3IsICJjdXJzb3IgZXhpc3RzIik7CisKKyAgICAgICAgICAg
IGRiLmRlbGV0ZU9iamVjdFN0b3JlKCJ0ZXN0Iik7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dz
KCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGN1cnNv
ci5jb250aW51ZSgpOworICAgICAgICAgICAgfSwgIklmIHRoZSBjdXJzb3IncyBzb3VyY2Ugb3Ig
ZWZmZWN0aXZlIG9iamVjdCBzdG9yZSBoYXMgYmVlbiBkZWxldGVkLCB0aGUgaW1wbGVtZW50YXRp
b24gTVVTVCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yIik7
CisKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
X2RlbGV0ZV9pbmRleC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM5ODVmOWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXgtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci5kZWxldGUoKSAtIGluZGV4
IC0gcmVtb3ZlIGEgcmVjb3JkIGZyb20gdGhlIG9iamVjdCBzdG9yZSAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX2luZGV4
Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0
ZV9pbmRleC5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmUzMGFjZgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yX2RlbGV0ZV9pbmRleC5odG0KQEAgLTAsMCArMSw2OSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8dGl0bGU+SURCQ3Vyc29yLmRlbGV0ZSgpIC0gaW5kZXggLSByZW1vdmUgYSByZWNvcmQgZnJv
bSB0aGUgb2JqZWN0IHN0b3JlPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWlj
cm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKworICAgIHZhciBkYiwK
KyAgICAgIGNvdW50ID0gMCwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmRz
ID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKKyAgICAg
ICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9
IF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdy
YWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsK
KworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsg
a2V5UGF0aDogInBLZXkiIH0pOworICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgi
LCAiaUtleSIpOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7
IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICB9OworCisg
ICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhDdXJzb3JEZWxldGVSZWNvcmQpOwor
CisKKyAgICBmdW5jdGlvbiBDdXJzb3JEZWxldGVSZWNvcmQoZSkgeworICAgICAgICB2YXIgdHhu
ID0gZGIudHJhbnNhY3Rpb24oInRlc3QiLCAicmVhZHdyaXRlIiksCisgICAgICAgICAgY3Vyc29y
X3JxID0gdHhuLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAu
aW5kZXgoImluZGV4IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOwor
CisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7
CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAg
ICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3IsICJjdXJzb3IgZXhpc3Qi
KTsKKyAgICAgICAgICAgIGN1cnNvci5kZWxldGUoKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAg
dHhuLm9uY29tcGxldGUgPSB0LnN0ZXBfZnVuYyhWZXJpZnlSZWNvcmRXYXNEZWxldGVkKTsKKyAg
ICB9CisKKworICAgIGZ1bmN0aW9uIFZlcmlmeVJlY29yZFdhc0RlbGV0ZWQoZSkgeworICAgICAg
ICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAub3BlbkN1cnNvcigpOworCisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBf
ZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVz
dWx0OworCisgICAgICAgICAgICBpZiAoIWN1cnNvcikgeworICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoY291bnQsIDEsICdjb3VudCcpOworICAgICAgICAgICAgICAgIHQuZG9uZSgpOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZS5w
S2V5LCByZWNvcmRzWzFdLnBLZXkpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjdXJzb3Iu
dmFsdWUuaUtleSwgcmVjb3Jkc1sxXS5pS2V5KTsKKyAgICAgICAgICAgIGN1cnNvci5jb250aW51
ZSgpOworICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgfSk7CisgICAgfQorCis8L3Njcmlw
dD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX2luZGV4
Mi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmZiYWNl
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiY3Vyc29yX2RlbGV0ZV9pbmRleDItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQ
QVNTIElEQkN1cnNvci5kZWxldGUoKSAtIGluZGV4IC0gYXR0ZW1wdCB0byByZW1vdmUgYSByZWNv
cmQgaW4gYSByZWFkLW9ubHkgdHJhbnNhY3Rpb24gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9pbmRleDIuaHRtIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX2luZGV4Mi5o
dG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTMzZjkxMgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2Rl
bGV0ZV9pbmRleDIuaHRtCkBAIC0wLDAgKzEsNDIgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxl
PklEQkN1cnNvci5kZWxldGUoKSAtIGluZGV4IC0gYXR0ZW1wdCB0byByZW1vdmUgYSByZWNvcmQg
aW4gYSByZWFkLW9ubHkgdHJhbnNhY3Rpb248L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZh
ciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmRzID0gWyB7IHBLZXk6
ICJwcmltYXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKKyAgICAgICAgICAgICAgICAg
IHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9IF07CisKKyAgICB2
YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0g
ZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICB2
YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogInBL
ZXkiIH0pOworICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaUtleSIpOwor
CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAgICAg
ICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5v
bnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFu
c2FjdGlvbigidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgi
dGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5pbmRleCgiaW5kZXgiKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAgIGN1cnNvcl9ycS5v
bnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY3Vy
c29yID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3Ig
aW5zdGFuY2VvZiBJREJDdXJzb3IsICJjdXJzb3IgZXhpc3QiKTsKKyAgICAgICAgICAgIGFzc2Vy
dF90aHJvd3MoJ1JlYWRPbmx5RXJyb3InLCBmdW5jdGlvbigpIHsgY3Vyc29yLmRlbGV0ZSgpOyB9
KTsKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKzwvc2NyaXB0
PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX2luZGV4My1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXgz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xNmJmMTcy
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3JfZGVsZXRlX2luZGV4My1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BB
U1MgSURCQ3Vyc29yLmRlbGV0ZSgpIC0gaW5kZXggLSBhdHRlbXB0IHRvIHJlbW92ZSBhIHJlY29y
ZCBpbiBhbiBpbmFjdGl2ZSB0cmFuc2FjdGlvbiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX2luZGV4My5odG0gYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXgzLmh0
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMWMzMDQ0Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVs
ZXRlX2luZGV4My5odG0KQEAgLTAsMCArMSw0MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+
SURCQ3Vyc29yLmRlbGV0ZSgpIC0gaW5kZXggLSBhdHRlbXB0IHRvIHJlbW92ZSBhIHJlY29yZCBp
biBhbiBpbmFjdGl2ZSB0cmFuc2FjdGlvbjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0
bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKKyAgICB2
YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5
OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0sCisgICAgICAgICAgICAgICAg
ICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5kZXhLZXlfMSIgfSBdOworCisgICAg
dmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9
IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZh
ciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAicEtl
eSIgfSk7CisgICAgICAgIHZhciBpbmRleCA9IG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIs
ICJpS2V5Iik7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsg
aSsrKQorICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOworCisgICAgICAgIHZh
ciBjdXJzb3JfcnEgPSBpbmRleC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgY3Vyc29yX3JxLm9u
c3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJz
b3IgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5z
dGFuY2VvZiBJREJDdXJzb3IsICJjdXJzb3IgZXhpc3QiKTsKKyAgICAgICAgICAgIHdpbmRvdy5j
dXJzb3IgPSBjdXJzb3I7CisgICAgICAgIH0pOworCisgICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0
aW9uLm9uY29tcGxldGUgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBh
c3NlcnRfdGhyb3dzKCdUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3InLCBmdW5jdGlvbigpIHsgd2lu
ZG93LmN1cnNvci5kZWxldGUoKTsgfSkKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9
KTsKKyAgICB9CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX2lu
ZGV4NC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmN1cnNvcl9kZWxldGVfaW5kZXg0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi42NTlkNzBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX2luZGV4NC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw1IEBACisKK0ZBSUwgSURCQ3Vyc29yLmRlbGV0ZSgpIC0gaW5kZXggLSB0aHJv
dyBJbnZhbGlkU3RhdGVFcnJvciBjYXVzZWQgYnkgb2JqZWN0IHN0b3JlIGJlZW4gZGVsZXRlZCBh
c3NlcnRfdGhyb3dzOiBJZiB0aGUgY3Vyc29yJ3Mgc291cmNlIG9yIGVmZmVjdGl2ZSBvYmplY3Qg
c3RvcmUgaGFzIGJlZW4gZGVsZXRlZCwgdGhlIGltcGxlbWVudGF0aW9uIE1VU1QgdGhyb3cgYSBE
T01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvciBmdW5jdGlvbiAiZnVuY3Rpb24g
KCkgeworICAgICAgICAgICAgICAgIGN1cnNvci5kZWxldGUoKTsKKyAgICAgICAgICAgIH0iIGRp
ZCBub3QgdGhyb3cKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX2luZGV4NC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXg0Lmh0bQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5mZjZlNTc2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX2luZGV4NC5odG0KQEAg
LTAsMCArMSwzOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8
dGl0bGU+SURCQ3Vyc29yLmRlbGV0ZSgpIC0gaW5kZXggLSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJv
ciBjYXVzZWQgYnkgb2JqZWN0IHN0b3JlIGJlZW4gZGVsZXRlZDwvdGl0bGU+Cis8bGluayByZWw9
ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48
L2Rpdj4KKzxzY3JpcHQ+CisKKyAgICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCks
CisgICAgICAgIHJlY29yZHMgPSBbeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4
S2V5XzAiIH0sCisgICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtl
eTogImluZGV4S2V5XzEiIH1dOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAg
ICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgeworICAgICAgICBk
YiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0
ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHtrZXlQYXRoIDogInBLZXkifSk7CisgICAgICAgIG9ialN0
b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7CisgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJl
Y29yZHNbaV0pOworICAgICAgICB9CisgICAgICAgIHZhciBycSA9IG9ialN0b3JlLmluZGV4KCJp
bmRleCIpLm9wZW5DdXJzb3IoKTsKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMo
ZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBldmVudC50YXJnZXQu
cmVzdWx0OworICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vy
c29yLCAiY3Vyc29yIGV4aXN0Iik7CisKKyAgICAgICAgICAgIGRiLmRlbGV0ZU9iamVjdFN0b3Jl
KCJzdG9yZSIpOworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3Ii
LCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBjdXJzb3IuZGVsZXRlKCk7CisgICAgICAg
ICAgICB9LCAiSWYgdGhlIGN1cnNvcidzIHNvdXJjZSBvciBlZmZlY3RpdmUgb2JqZWN0IHN0b3Jl
IGhhcyBiZWVuIGRlbGV0ZWQsIHRoZSBpbXBsZW1lbnRhdGlvbiBNVVNUIHRocm93IGEgRE9NRXhj
ZXB0aW9uIG9mIHR5cGUgSW52YWxpZFN0YXRlRXJyb3IiKTsKKworICAgICAgICAgICAgdC5kb25l
KCk7CisgICAgICAgIH0pOworICAgIH0KKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXg1LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2Rl
bGV0ZV9pbmRleDUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmQ2OWFhYWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfaW5kZXg1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDMgQEAKKworUEFTUyBJREJDdXJzb3IuZGVsZXRlKCkgLSBpbmRleCAtIHRocm93IEludmFsaWRT
dGF0ZUVycm9yIHdoZW4gdGhlIGN1cnNvciBpcyBiZWluZyBpdGVyYXRlZCAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX2lu
ZGV4NS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9k
ZWxldGVfaW5kZXg1Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ZmMw
ZTI5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJjdXJzb3JfZGVsZXRlX2luZGV4NS5odG0KQEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCQ3Vyc29yLmRlbGV0ZSgp
IC0gaW5kZXggLSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHRoZSBjdXJzb3IgaXMgYmVp
bmcgaXRlcmF0ZWQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJl
Zj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRs
LUlEQkN1cnNvci1kZWxldGUtSURCUmVxdWVzdCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1
cHBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAg
dmFyIGRiLAorICAgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgICByZWNvcmRzID0gW3sg
cEtleTogInByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAorICAgICAgICAgICAg
ICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9XTsKKwor
ICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVk
ZWQgPSBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0
OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7
a2V5UGF0aCA6ICJwS2V5In0pOworICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgi
LCAiaUtleSIpOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBp
KyspIHsKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICAgICAgfQor
CisgICAgICAgIHZhciBycSA9IG9ialN0b3JlLmluZGV4KCJpbmRleCIpLm9wZW5DdXJzb3IoKTsK
KyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZXZlbnQpIHsKKyAg
ICAgICAgICAgIHZhciBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICAgICAg
YXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yLCAiY3Vyc29yIGV4aXN0Iik7
CisKKyAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAgYXNzZXJ0X3Ro
cm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBj
dXJzb3IuZGVsZXRlKCk7CisgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgdC5kb25lKCk7
CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Jf
ZGVsZXRlX29iamVjdHN0b3JlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5lYzY2MGZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3JlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IuZGVsZXRlKCkgLSBvYmplY3Qgc3Rv
cmUgLSByZW1vdmUgYSByZWNvcmQgZnJvbSB0aGUgb2JqZWN0IHN0b3JlICAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29i
amVjdHN0b3JlLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vy
c29yX2RlbGV0ZV9vYmplY3RzdG9yZS5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZWMyYWQ0NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZS5odG0KQEAgLTAsMCArMSw2
NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yLmRlbGV0ZSgpIC0gb2JqZWN0
IHN0b3JlIC0gcmVtb3ZlIGEgcmVjb3JkIGZyb20gdGhlIG9iamVjdCBzdG9yZSA8L3RpdGxlPgor
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWlj
cm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0
PgorCis8c2NyaXB0PgorCisgICAgdmFyIGRiLAorICAgICAgY291bnQgPSAwLAorICAgICAgdCA9
IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIg
fSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIgfSBdOworCisgICAg
dmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9
IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAg
dmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJw
S2V5IiB9KTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBp
KyspCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgfTsKKworICAg
IG9wZW5fcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoQ3Vyc29yRGVsZXRlUmVjb3JkKTsKKwor
CisgICAgZnVuY3Rpb24gQ3Vyc29yRGVsZXRlUmVjb3JkKGUpIHsKKyAgICAgICAgdmFyIHR4biA9
IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IiwgInJlYWR3cml0ZSIpLAorICAgICAgICAgIGN1cnNvcl9y
cSA9IHR4bi5vYmplY3RTdG9yZSgidGVzdCIpLm9wZW5DdXJzb3IoKTsKKworICAgICAgICBjdXJz
b3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAg
dmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgYXNzZXJ0X3RydWUo
Y3Vyc29yICE9IG51bGwsICJjdXJzb3IgZXhpc3QiKTsKKyAgICAgICAgICAgIGN1cnNvci5kZWxl
dGUoKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgdHhuLm9uY29tcGxldGUgPSB0LnN0ZXBfZnVu
YyhWZXJpZnlSZWNvcmRXYXNEZWxldGVkKTsKKyAgICB9CisKKworICAgIGZ1bmN0aW9uIFZlcmlm
eVJlY29yZFdhc0RlbGV0ZWQoZSkgeworICAgICAgICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNh
Y3Rpb24oInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRl
c3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAg
IGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAg
ICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICBpZiAoIWN1
cnNvcikgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQsIDEsICdjb3VudCcp
OworICAgICAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZS5wS2V5LCByZWNvcmRzWzFdLnBLZXkpOworICAg
ICAgICAgICAgY291bnQrKzsKKyAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAg
ICB9KTsKKyAgICB9CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRl
X29iamVjdHN0b3JlMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmUyLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNGNiNmI3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29iamVj
dHN0b3JlMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLmRl
bGV0ZSgpIC0gb2JqZWN0IHN0b3JlIC0gYXR0ZW1wdCB0byByZW1vdmUgYSByZWNvcmQgaW4gYSBy
ZWFkLW9ubHkgdHJhbnNhY3Rpb24gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTIuaHRtIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3Jl
Mi5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2M1N2U5OQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
X2RlbGV0ZV9vYmplY3RzdG9yZTIuaHRtCkBAIC0wLDAgKzEsNDAgQEAKKzwhRE9DVFlQRSBodG1s
PgorPHRpdGxlPklEQkN1cnNvci5kZWxldGUoKSAtIG9iamVjdCBzdG9yZSAtIGF0dGVtcHQgdG8g
cmVtb3ZlIGEgcmVjb3JkIGluIGEgcmVhZC1vbmx5IHRyYW5zYWN0aW9uPC90aXRsZT4KKzxsaW5r
IHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29m
dC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKwor
PHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVj
b3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAiIH0sCisg
ICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5kZXhLZXlf
MSIgfSBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9u
dXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1
bHQ7CisKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3Qi
LCB7IGtleVBhdGg6ICJwS2V5IiB9KTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJl
Y29yZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7
CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAg
ICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAub3BlbkN1cnNvcigpOworCisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBf
ZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVz
dWx0OworCisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgIT0gbnVsbCwgImN1cnNvciBl
eGlzdCIpOworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygnUmVhZE9ubHlFcnJvcicsIGZ1bmN0
aW9uKCkgeyBjdXJzb3IuZGVsZXRlKCk7IH0pOworICAgICAgICAgICAgdC5kb25lKCk7CisgICAg
ICAgIH0pOworICAgIH0KKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxl
dGVfb2JqZWN0c3RvcmUzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTMtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE2YmYxNzIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfb2Jq
ZWN0c3RvcmUzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3Iu
ZGVsZXRlKCkgLSBpbmRleCAtIGF0dGVtcHQgdG8gcmVtb3ZlIGEgcmVjb3JkIGluIGFuIGluYWN0
aXZlIHRyYW5zYWN0aW9uIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmUzLmh0bSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTMuaHRt
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyZmQ4MjAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxl
dGVfb2JqZWN0c3RvcmUzLmh0bQpAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0
aXRsZT5JREJDdXJzb3IuZGVsZXRlKCkgLSBpbmRleCAtIGF0dGVtcHQgdG8gcmVtb3ZlIGEgcmVj
b3JkIGluIGFuIGluYWN0aXZlIHRyYW5zYWN0aW9uPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKwor
ICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmRzID0gWyB7
IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKKyAgICAgICAgICAg
ICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9IF07CisK
KyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVl
ZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAg
ICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6
ICJwS2V5IiB9KTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3Ro
OyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisKKyAgICAgICAg
dmFyIGN1cnNvcl9ycSA9IG9ialN0b3JlLm9wZW5DdXJzb3IoKTsKKworICAgICAgICBjdXJzb3Jf
cnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFy
IGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNv
ciBpbnN0YW5jZW9mIElEQkN1cnNvciwgImN1cnNvciBleGlzdCIpOworICAgICAgICAgICAgd2lu
ZG93LmN1cnNvciA9IGN1cnNvcjsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZS50YXJnZXQudHJh
bnNhY3Rpb24ub25jb21wbGV0ZSA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
ICAgIGFzc2VydF90aHJvd3MoJ1RyYW5zYWN0aW9uSW5hY3RpdmVFcnJvcicsIGZ1bmN0aW9uKCkg
eyB3aW5kb3cuY3Vyc29yLmRlbGV0ZSgpOyB9KQorICAgICAgICAgICAgdC5kb25lKCk7CisgICAg
ICAgIH0pOworICAgIH0KKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxl
dGVfb2JqZWN0c3RvcmU0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTQtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNmODI5NWQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfb2Jq
ZWN0c3RvcmU0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKworRkFJTCBJREJDdXJzb3Iu
ZGVsZXRlKCkgLSBvYmplY3Qgc3RvcmUgLSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciBjYXVzZWQg
Ynkgb2JqZWN0IHN0b3JlIGJlZW4gZGVsZXRlZCBhc3NlcnRfdGhyb3dzOiBJZiB0aGUgY3Vyc29y
J3Mgc291cmNlIG9yIGVmZmVjdGl2ZSBvYmplY3Qgc3RvcmUgaGFzIGJlZW4gZGVsZXRlZCwgdGhl
IGltcGxlbWVudGF0aW9uIE1VU1QgdGhyb3cgYSBET01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlk
U3RhdGVFcnJvciBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIGN1cnNv
ci5kZWxldGUoKTsKKyAgICAgICAgICAgIH0iIGRpZCBub3QgdGhyb3cKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29iamVj
dHN0b3JlNC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNv
cl9kZWxldGVfb2JqZWN0c3RvcmU0Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5iOTc3NWM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3JlNC5odG0KQEAgLTAsMCArMSwz
NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURC
Q3Vyc29yLmRlbGV0ZSgpIC0gb2JqZWN0IHN0b3JlIC0gdGhyb3cgSW52YWxpZFN0YXRlRXJyb3Ig
Y2F1c2VkIGJ5IG9iamVjdCBzdG9yZSBiZWVuIGRlbGV0ZWQ8L3RpdGxlPgorPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9k
aXY+Cis8c2NyaXB0PgorCisgICAgdmFyIGRiLAorICAgICAgICB0ID0gYXN5bmNfdGVzdCgpLAor
ICAgICAgICByZWNvcmRzID0gW3sgcEtleTogInByaW1hcnlLZXlfMCJ9LAorICAgICAgICAgICAg
ICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSJ9XTsKKworICAgIHZhciBvcGVuX3JxID0gY3Jl
YXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbiAoZXZlbnQp
IHsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3Rv
cmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7a2V5UGF0aDoicEtleSJ9KTsKKyAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKSB7CisgICAgICAg
ICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgICAgIH0KKyAgICAgICAgdmFyIHJx
ID0gb2JqU3RvcmUub3BlbkN1cnNvcigpOworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBf
ZnVuYyhmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGV2ZW50LnRh
cmdldC5yZXN1bHQ7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJ
REJDdXJzb3IsICJjdXJzb3IgZXhpc3QiKTsKKworICAgICAgICAgICAgZGIuZGVsZXRlT2JqZWN0
U3RvcmUoInN0b3JlIik7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVF
cnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGN1cnNvci5kZWxldGUoKTsKKyAg
ICAgICAgICAgIH0sICJJZiB0aGUgY3Vyc29yJ3Mgc291cmNlIG9yIGVmZmVjdGl2ZSBvYmplY3Qg
c3RvcmUgaGFzIGJlZW4gZGVsZXRlZCwgdGhlIGltcGxlbWVudGF0aW9uIE1VU1QgdGhyb3cgYSBE
T01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvciIpOworCisgICAgICAgICAgICB0
LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3Rz
dG9yZTUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3JlNS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uMjBmOWVkNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2RlbGV0ZV9vYmplY3RzdG9yZTUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci5kZWxldGUoKSAt
IG9iamVjdCBzdG9yZSAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yIHdoZW4gdGhlIGN1cnNvciBp
cyBiZWluZyBpdGVyYXRlZCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVsZXRlX29iamVjdHN0b3JlNS5odG0gYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9kZWxldGVfb2JqZWN0c3RvcmU1Lmh0
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43N2ZhNWYyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfZGVs
ZXRlX29iamVjdHN0b3JlNS5odG0KQEAgLTAsMCArMSw0MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCQ3Vyc29yLmRlbGV0ZSgpIC0gb2JqZWN0
IHN0b3JlIC0gdGhyb3cgSW52YWxpZFN0YXRlRXJyb3Igd2hlbiB0aGUgY3Vyc29yIGlzIGJlaW5n
IGl0ZXJhdGVkPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9
Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9k
dmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1J
REJDdXJzb3ItZGVsZXRlLUlEQlJlcXVlc3QiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBw
b3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorICAgIHZh
ciBkYiwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgICAgcmVjb3JkcyA9IFt7IHBL
ZXk6ICJwcmltYXJ5S2V5XzAifSwKKyAgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5
S2V5XzEifV07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEu
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgIGRiID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoInN0b3JlIiwge2tleVBhdGg6InBLZXkifSk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29y
ZHNbaV0pOworICAgICAgICB9CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5j
dGlvbiAoZXZlbnQpIHsKKyAgICAgICAgdmFyIHR4biA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIs
ICJyZWFkd3JpdGUiKTsKKyAgICAgICAgdmFyIHJxID0gdHhuLm9iamVjdFN0b3JlKCJzdG9yZSIp
Lm9wZW5DdXJzb3IoKTsKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rp
b24oZXZlbnQpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBldmVudC50YXJnZXQucmVzdWx0
OworICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29yLCAi
Y3Vyc29yIGV4aXN0Iik7CisKKyAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAg
ICAgICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgICAgICBjdXJzb3IuZGVsZXRlKCk7CisgICAgICAgICAgICB9KTsKKworICAgICAg
ICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRp
bmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJj
dXJzb3JfaXRlcmF0aW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4zODNlZDlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDMgQEAKKworUEFTUyBJREJDdXJzb3IuY29udGludWUoKSAtIG9iamVjdHN0b3JlIC0gZGVsZXRl
IG5leHQgZWxlbWVudCwgYW5kIGl0ZXJhdGUgdG8gaXQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2l0ZXJhdGluZy5odG0gYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmcuaHRtCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI1MzRiY2MKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRp
bmcuaHRtCkBAIC0wLDAgKzEsMTEwIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJz
b3IuY29udGludWUoKSAtIG9iamVjdHN0b3JlIC0gZGVsZXRlIG5leHQgZWxlbWVudCwgYW5kIGl0
ZXJhdGUgdG8gaXQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGlu
aG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAor
ICAgICAgY291bnQgPSAwLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0
aW1lb3V0OiAxMDAwMH0pOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBv
cGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRh
cmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCJ0ZXN0IiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IDUwMDsgaSsrKQorICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHsga2V5OiBpLCB2YWw6ICJ2
YWxfIitpIH0pOworCisgICAgICAgIHZhciBycSA9IG9ialN0b3JlLmFkZCh7IGtleTogNTAwLCB2
YWw6ICJ2YWxfNTAwIiB9KTsKKworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSA5OTk7IGkgPiA1MDA7IGktLSkK
KyAgICAgICAgICAgICAgICBvYmpTdG9yZS5hZGQoeyBrZXk6IGksIHZhbDogInZhbF8iK2kgfSk7
CisgICAgICAgIH0pOworCisgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCdpbmRleCcsIFsn
a2V5JywgJ3ZhbCddKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlv
bihlKSB7CisgICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIsICJy
ZWFkd3JpdGUiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3Qi
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAgIGN1
cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAg
ICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0LAorICAgICAgICAgICAgICBzdG9yZSA9IGUu
dGFyZ2V0LnNvdXJjZTsKKyAgICAgICAgICAgIGlmICghY3Vyc29yKSB7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgOTk3LCAiY3Vyc29yIHJ1biBjb3VudCIpOworCisgICAg
ICAgICAgICAgICAgdmFyIHJxID0gZS50YXJnZXQuc291cmNlLmNvdW50KCk7CisgICAgICAgICAg
ICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgOTk1LCAib2JqZWN0IGNv
dW50Iik7CisgICAgICAgICAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
c3dpdGNoIChjdXJzb3Iua2V5KSB7CisgICAgICAgICAgICAgICAgY2FzZSAxMDoKKyAgICAgICAg
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgY3Vyc29yLmtleSwgImNvdW50Iik7Cisg
ICAgICAgICAgICAgICAgICAgIHN0b3JlLmRlbGV0ZSgxMSk7CisgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworCisgICAgICAgICAgICAgICAgY2FzZSAxMjoKKyAgICAgICAgICAgICAgICBjYXNl
IDQ5OToKKyAgICAgICAgICAgICAgICBjYXNlIDUwMDoKKyAgICAgICAgICAgICAgICBjYXNlIDUw
MToKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgY3Vyc29yLmtleSAt
IDEsICJjb3VudCIpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAg
ICAgIC8vIERlbGV0ZSB0aGUgbmV4dCBrZXkKKyAgICAgICAgICAgICAgICBjYXNlIDUxMDoKKyAg
ICAgICAgICAgICAgICAgICAgc3RvcmUuZGVsZXRlKDUxMSk7CisgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworCisgICAgICAgICAgICAgICAgLy8gRGVsZXRlIHJhbmRvbWx5CisgICAgICAgICAg
ICAgICAgY2FzZSA1MTI6CisgICAgICAgICAgICAgICAgICAgIHN0b3JlLmRlbGV0ZSg2MTEpOwor
ICAgICAgICAgICAgICAgICAgICBzdG9yZS5kZWxldGUoNDk5KTsKKyAgICAgICAgICAgICAgICAg
ICAgc3RvcmUuZGVsZXRlKDUwMCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAg
ICAgICAgICAgICAgLy8gRGVsZXRlIGFuZCBhZGQgYSBuZXcga2V5CisgICAgICAgICAgICAgICAg
Y2FzZSA1MjA6CisgICAgICAgICAgICAgICAgICAgIHN0b3JlLmRlbGV0ZSg1MjEpOworICAgICAg
ICAgICAgICAgICAgICBzdG9yZS5hZGQoeyBrZXk6IDUyMSwgdmFsOiAibmV3In0pOworICAgICAg
ICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgICAgIGNhc2UgNTIxOgorICAgICAg
ICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGN1cnNvci52YWx1ZS52YWwsICJuZXciKTsKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAvLyBXZSBzaG91bGQg
b25seSBiZSBoZXJlIG9uY2UgYWx0aG91Z2ggd2UncmUgYmFzaWNhbGx5IG1ha2luZyB0aGUgaW5k
ZXgKKyAgICAgICAgICAgICAgICAvLyAiaGVhdmllciIgd2l0aCBpdHMgbmV3IGtleS4KKyAgICAg
ICAgICAgICAgICBjYXNlIDUzMDoKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhj
dXJzb3IudmFsdWUudmFsLCAidmFsXzUzMCIpOworICAgICAgICAgICAgICAgICAgICBjdXJzb3Iu
dXBkYXRlKHsga2V5OiA1MzAsIHZhbDogInZhbF81MzEiIH0pCisKKyAgICAgICAgICAgICAgICAg
ICAgc3RvcmUuZ2V0KDUzMCkub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewor
ICAgICAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQudmFs
LCAidmFsXzUzMSIpOworICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7CisKKyAgICAgICAgICAgICAgICAvLyBTaG91bGRuJ3QgaGFwcGVuLgorICAgICAg
ICAgICAgICAgIGNhc2UgMTE6CisgICAgICAgICAgICAgICAgY2FzZSA1MTE6CisgICAgICAgICAg
ICAgICAgY2FzZSA2MTE6CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoY3Vy
c29yLmtleSArICIgc2hvdWxkIGJlIGRlbGV0ZWQgYW5kIG5ldmVyIHJ1biIpOworICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgY3Vyc29yLmNv
bnRpbnVlKCk7CisgICAgICAgICAgICBjb3VudCsrOworICAgICAgICB9KTsKKyAgICB9OworPC9z
Y3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+IDwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nX2luZGV4LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2l0ZXJh
dGluZ19pbmRleC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZWEwZjYzZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiY3Vyc29yX2l0ZXJhdGluZ19pbmRleC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBpbmRleCAtIGRlbGV0ZSBuZXh0
IGVsZW1lbnQsIGFuZCBpdGVyYXRlIHRvIGl0IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmdfaW5kZXguaHRtIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nX2luZGV4
Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNjMwM2NjCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Jf
aXRlcmF0aW5nX2luZGV4Lmh0bQpAQCAtMCwwICsxLDUzIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0
aXRsZT5JREJDdXJzb3IuY29udGludWUoKSAtIGluZGV4IC0gZGVsZXRlIG5leHQgZWxlbWVudCwg
YW5kIGl0ZXJhdGUgdG8gaXQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0
bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFy
IGRiLAorICAgICAgY291bnQgPSAwLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0
bGUsIHt0aW1lb3V0OiAxMDAwMH0pLAorICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFy
eUtleV8wIiwgb2JqOiB7IGlLZXk6ICJpS2V5XzAiIH19LAorICAgICAgICAgICAgICAgICAgeyBw
S2V5OiAicHJpbWFyeUtleV8xIiwgb2JqOiB7IGlLZXk6ICJpS2V5XzEiIH19LAorICAgICAgICAg
ICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8yIiwgb2JqOiB7IGlLZXk6ICJpS2V5XzIiIH19
IF0sCisKKyAgICAgIGV4cGVjdGVkID0gWyBbICJwcmltYXJ5S2V5XzIiLCAiaUtleV8yIiBdLAor
ICAgICAgICAgICAgICAgICAgIFsgInByaW1hcnlLZXlfMCIsICJpS2V5XzAiIF0gXTsKKworICAg
IHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQg
PSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2
YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHtrZXlQYXRoOlsicEtl
eSIsICJvYmouaUtleSJdfSk7CisgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIs
IFsgInBLZXkiLCAib2JqLmlLZXkiIF0pOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
cmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ld
KTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAg
ICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIsICJyZWFkd3JpdGUiKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAuaW5kZXgoImluZGV4IikKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgLm9wZW5DdXJzb3IobnVsbCwgInByZXYiKTsKKworICAgICAgICBjdXJzb3JfcnEub25zdWNj
ZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9
IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGlmICghY3Vyc29yKSB7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudCwgMiwgImN1cnNvciBydW4gY291bnQiKTsKKyAgICAg
ICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKGNv
dW50ID09PSAwKSB7CisgICAgICAgICAgICAgICAgZS50YXJnZXQuc291cmNlLm9iamVjdFN0b3Jl
LmRlbGV0ZShbInByaW1hcnlLZXlfMSIsICJpS2V5XzEiXSk7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGN1cnNvci5rZXksIGV4cGVjdGVkW2NvdW50XSwg
InByaW1hcnkga2V5Iik7CisKKyAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAg
ICAgICAgY291bnQrKzsKKyAgICAgICAgfSk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlk
PSJsb2ciPiA8L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yX2l0ZXJhdGluZ19pbmRleDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nX2luZGV4Mi1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTQ3ODBiMgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vy
c29yX2l0ZXJhdGluZ19pbmRleDItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNT
IElEQkN1cnNvci5jb250aW51ZSgpIC0gaW5kZXggLSBhZGQgbmV4dCBlbGVtZW50LCBhbmQgaXRl
cmF0ZSB0byBpdCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nX2luZGV4Mi5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmdfaW5kZXgyLmh0bQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41NzU0YzdjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfaXRlcmF0aW5nX2luZGV4
Mi5odG0KQEAgLTAsMCArMSw1MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29y
LmNvbnRpbnVlKCkgLSBpbmRleCAtIGFkZCBuZXh0IGVsZW1lbnQsIGFuZCBpdGVyYXRlIHRvIGl0
PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNv
bSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1
cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIGNvdW50
ID0gMCwKKyAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDogMTAw
MDB9KSwKKyAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIsIG9iajogeyBp
S2V5OiAiaUtleV8wIiB9fSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlf
MiIsIG9iajogeyBpS2V5OiAiaUtleV8yIiB9fSBdLAorCisgICAgICBleHBlY3RlZCA9IFsgWyAi
cHJpbWFyeUtleV8yIiwgImlLZXlfMiIgXSwKKyAgICAgICAgICAgICAgICAgICBbICJwcmltYXJ5
S2V5XzEiLCAiaUtleV8xIiBdLAorICAgICAgICAgICAgICAgICAgIFsgInByaW1hcnlLZXlfMCIs
ICJpS2V5XzAiIF0gXTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Bl
bl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJn
ZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgi
dGVzdCIsIHtrZXlQYXRoOiJwS2V5In0pOworICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgi
aW5kZXgiLCBbICJwS2V5IiwgIm9iai5pS2V5IiBdKTsKKworICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVj
b3Jkc1tpXSk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkg
eworICAgICAgICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiLCAicmVhZHdy
aXRlIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIC5vcGVuQ3Vyc29yKG51bGwsICJwcmV2Iik7CisKKyAgICAgICAgY3Vyc29yX3Jx
Lm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBj
dXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBpZiAoIWN1cnNvcikgeworICAg
ICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQsIDMsICJjdXJzb3IgcnVuIGNvdW50Iik7
CisgICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IGlmIChjb3VudCA9PT0gMCkgeworICAgICAgICAgICAgICAgIGUudGFyZ2V0LnNvdXJjZS5vYmpl
Y3RTdG9yZS5hZGQoeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgb2JqOiB7IGlLZXk6ICJpS2V5XzEi
IH0gfSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGN1
cnNvci5rZXksIGV4cGVjdGVkW2NvdW50XSwgInByaW1hcnkga2V5Iik7CisKKyAgICAgICAgICAg
IGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAgY291bnQrKzsKKyAgICAgICAgfSk7Cisg
ICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPiA8L2Rpdj4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2l0ZXJhdGluZ19vYmpl
Y3RzdG9yZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvcl9pdGVyYXRpbmdfb2JqZWN0c3RvcmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4M2VkOWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmdfb2JqZWN0
c3RvcmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci5jb250
aW51ZSgpIC0gb2JqZWN0c3RvcmUgLSBkZWxldGUgbmV4dCBlbGVtZW50LCBhbmQgaXRlcmF0ZSB0
byBpdCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJjdXJzb3JfaXRlcmF0aW5nX29iamVjdHN0b3JlLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2l0ZXJhdGluZ19vYmplY3RzdG9yZS5odG0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGJkM2M2MwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2l0ZXJhdGluZ19v
YmplY3RzdG9yZS5odG0KQEAgLTAsMCArMSw1MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+
SURCQ3Vyc29yLmNvbnRpbnVlKCkgLSBvYmplY3RzdG9yZSAtIGRlbGV0ZSBuZXh0IGVsZW1lbnQs
IGFuZCBpdGVyYXRlIHRvIGl0PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWls
dG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZh
ciBkYiwKKyAgICAgIGNvdW50ID0gMCwKKyAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRp
dGxlLCB7dGltZW91dDogMTAwMDB9KSwKKyAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1h
cnlLZXlfMCIgfSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIgfSwK
KyAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMiIgfSBdLAorICAgICAgZXhw
ZWN0ZWRfcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiB9LAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8yIiB9XTsKKworICAgIHZhciBvcGVu
X3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlv
bihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3Rv
cmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHtrZXlQYXRoOiJwS2V5In0pOworCisg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAgICAgICAg
ICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1
Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2Fj
dGlvbigidGVzdCIsICJyZWFkd3JpdGUiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub2Jq
ZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigp
OworCisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihl
KSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAg
ICAgaWYgKCFjdXJzb3IpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGNvdW50LCAy
LCAiY3Vyc29yIHJ1biBjb3VudCIpOworICAgICAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICB2YXIgcmVjb3JkID0gY3Vyc29yLnZhbHVlOworICAgICAg
ICAgICAgaWYgKHJlY29yZC5wS2V5ID09ICJwcmltYXJ5S2V5XzAiKSB7CisgICAgICAgICAgICAg
ICBlLnRhcmdldC5zb3VyY2UuZGVsZXRlKCJwcmltYXJ5S2V5XzEiKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVjb3JkLnBLZXksIGV4cGVjdGVkX3JlY29yZHNb
Y291bnRdLnBLZXksICJwcmltYXJ5IGtleSIpOworCisgICAgICAgICAgICBjdXJzb3IuY29udGlu
dWUoKTsKKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgIH0pOworICAgIH07Cis8L3Njcmlw
dD4KKworPGRpdiBpZD0ibG9nIj4gPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmdfb2JqZWN0c3RvcmUyLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2l0
ZXJhdGluZ19vYmplY3RzdG9yZTItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjYyOGI3OTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl9pdGVyYXRpbmdfb2JqZWN0c3RvcmUyLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IuY29udGludWUoKSAtIG9i
amVjdHN0b3JlIC0gYWRkIG5leHQgZWxlbWVudCwgYW5kIGl0ZXJhdGUgdG8gaXQgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2l0ZXJh
dGluZ19vYmplY3RzdG9yZTIuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJjdXJzb3JfaXRlcmF0aW5nX29iamVjdHN0b3JlMi5odG0KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMGYxZDlmMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX2l0ZXJhdGluZ19vYmplY3RzdG9yZTIu
aHRtCkBAIC0wLDAgKzEsNTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci5j
b250aW51ZSgpIC0gb2JqZWN0c3RvcmUgLSBhZGQgbmV4dCBlbGVtZW50LCBhbmQgaXRlcmF0ZSB0
byBpdDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVy
YS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICBj
b3VudCA9IDAsCisgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6
IDEwMDAwfSksCisgICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiIH0sCisg
ICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzIiIH0gXSwKKyAgICAgIGV4cGVj
dGVkX3JlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIgfSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIgfSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMiIgfSBdOworCisgICAgdmFyIG9wZW5fcnEg
PSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9
IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iiwge2tleVBhdGg6InBLZXkifSk7CisKKyAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAg
b2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2Vz
cyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9u
KCJ0ZXN0IiwgInJlYWR3cml0ZSIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RT
dG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisK
KyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBp
ZiAoIWN1cnNvcikgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY291bnQsIDMsICJj
dXJzb3IgcnVuIGNvdW50Iik7CisgICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIHZhciByZWNvcmQgPSBjdXJzb3IudmFsdWU7CisgICAgICAgICAg
ICBpZiAocmVjb3JkLnBLZXkgPT0gInByaW1hcnlLZXlfMCIpIHsKKyAgICAgICAgICAgICAgIGUu
dGFyZ2V0LnNvdXJjZS5hZGQoeyBwS2V5OiAicHJpbWFyeUtleV8xIiB9KTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocmVjb3JkLnBLZXksIGV4cGVjdGVkX3JlY29y
ZHNbY291bnRdLnBLZXksICJwcmltYXJ5IGtleSIpOworCisgICAgICAgICAgICBjdXJzb3IuY29u
dGludWUoKTsKKyAgICAgICAgICAgIGNvdW50Kys7CisgICAgICAgIH0pOworICAgIH07Cis8L3Nj
cmlwdD4KKworPGRpdiBpZD0ibG9nIj4gPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5kZXgtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2lu
ZGV4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YmJh
ZjM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKwor
UEFTUyBJREJDdXJzb3IudXBkYXRlKCkgLSBpbmRleCAtIG1vZGlmeSBhIHJlY29yZCBpbiB0aGUg
b2JqZWN0IHN0b3JlICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleC5odG0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uNjEzZmY4NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleC5odG0KQEAg
LTAsMCArMSw2NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yLnVwZGF0ZSgp
IC0gaW5kZXggLSBtb2RpZnkgYSByZWNvcmQgaW4gdGhlIG9iamVjdCBzdG9yZSA8L3RpdGxlPgor
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWlj
cm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0
PgorCis8c2NyaXB0PgorCisgICAgdmFyIGRiLAorICAgICAgY291bnQgPSAwLAorICAgICAgdCA9
IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIs
IGlLZXk6ICJpbmRleEtleV8wIiB9LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFy
eUtleV8xIiwgaUtleTogImluZGV4S2V5XzEiIH0gXTsKKworICAgIHZhciBvcGVuX3JxID0gY3Jl
YXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Cisg
ICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAicEtleSIgfSk7CisgICAgICAg
IG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7CisKKyAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb2JqU3RvcmUu
YWRkKHJlY29yZHNbaV0pOworCisgICAgICAgIC8vIFhYWDogR2Vja28gZG9lc24ndCBsaWtlIHRo
aXMKKyAgICAgICAgLy9lLnRhcmdldC50cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gdC5zdGVwX2Z1
bmMoQ3Vyc29yVXBkYXRlUmVjb3JkKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3Mg
PSBDdXJzb3JVcGRhdGVSZWNvcmQ7CisKKworICAgIGZ1bmN0aW9uIEN1cnNvclVwZGF0ZVJlY29y
ZChlKSB7CisgICAgICAgIHZhciB0eG4gPSBkYi50cmFuc2FjdGlvbigidGVzdCIsICJyZWFkd3Jp
dGUiKSwKKyAgICAgICAgICBjdXJzb3JfcnEgPSB0eG4ub2JqZWN0U3RvcmUoInRlc3QiKQorICAg
ICAgICAgICAgICAgICAgICAgICAgIC5pbmRleCgiaW5kZXgiKQorICAgICAgICAgICAgICAgICAg
ICAgICAgIC5vcGVuQ3Vyc29yKCk7CisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0
ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQu
cmVzdWx0OworCisgICAgICAgICAgICBjdXJzb3IudmFsdWUuaUtleSArPSAiX3VwZGF0ZWQiOwor
ICAgICAgICAgICAgY3Vyc29yLnVwZGF0ZShjdXJzb3IudmFsdWUpOworICAgICAgICB9KTsKKwor
ICAgICAgICB0eG4ub25jb21wbGV0ZSA9IHQuc3RlcF9mdW5jKFZlcmlmeVJlY29yZFdhc1VwZGF0
ZWQpOworICAgIH0KKworCisgICAgZnVuY3Rpb24gVmVyaWZ5UmVjb3JkV2FzVXBkYXRlZChlKSB7
CisgICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9
IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRh
cmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoY3Vyc29yLnZhbHVlLmlL
ZXksIHJlY29yZHNbMF0uaUtleSArICJfdXBkYXRlZCIpOworICAgICAgICAgICAgdC5kb25lKCk7
CisgICAgICAgIH0pOworICAgIH0KKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNv
cl91cGRhdGVfaW5kZXgyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkzM2M3ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5kZXgyLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJzb3IudXBkYXRlKCkgLSBp
bmRleCAtIGF0dGVtcHQgdG8gbW9kaWZ5IGEgcmVjb3JkIGluIGEgcmVhZC1vbmx5IHRyYW5zYWN0
aW9uIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmN1cnNvcl91cGRhdGVfaW5kZXgyLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDIuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjdkMDAwMWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5kZXgyLmh0bQpAQCAtMCwwICsx
LDQwIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3IudXBkYXRlKCkgLSBpbmRl
eCAtIGF0dGVtcHQgdG8gbW9kaWZ5IGEgcmVjb3JkIGluIGEgcmVhZC1vbmx5IHRyYW5zYWN0aW9u
PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRw
Oi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0Lmpz
Ij48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVz
dCgpLAorICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImlu
ZGV4S2V5XzAiIH0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBp
S2V5OiAiaW5kZXhLZXlfMSIgfSBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsK
KyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIg
PSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJwS2V5IiB9KTsKKyAgICAgICAgb2JqU3RvcmUu
Y3JlYXRlSW5kZXgoImluZGV4IiwgImlLZXkiKTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jk
c1tpXSk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewor
ICAgICAgICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAuaW5kZXgoImluZGV4IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5D
dXJzb3IoKTsKKworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKyAg
ICAgICAgICAgIGFzc2VydF90aHJvd3MoJ1JlYWRPbmx5RXJyb3InLCBmdW5jdGlvbigpIHsgY3Vy
c29yLnVwZGF0ZShjdXJzb3IudmFsdWUpOyB9KTsKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAg
ICAgICB9KTsKKyAgICB9CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBk
YXRlX2luZGV4My1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5kZXgzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi4yOTkzMzI3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4My1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLnVwZGF0ZSgpIC0gaW5kZXgg
LSBhdHRlbXB0IHRvIG1vZGlmeSBhIHJlY29yZCBpbiBhbiBpbmFjdGl2ZSB0cmFuc2FjdGlvbiAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3JfdXBkYXRlX2luZGV4My5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvcl91cGRhdGVfaW5kZXgzLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4wZGU2NmNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4My5odG0KQEAgLTAsMCArMSw0MSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yLnVwZGF0ZSgpIC0gaW5kZXggLSBh
dHRlbXB0IHRvIG1vZGlmeSBhIHJlY29yZCBpbiBhbiBpbmFjdGl2ZSB0cmFuc2FjdGlvbjwvdGl0
bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3
dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9z
Y3JpcHQ+CisKKzxzY3JpcHQ+CisKKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgp
LAorICAgICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4
S2V5XzAiIH0sCisgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5
OiAiaW5kZXhLZXlfMSIgfSBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAg
ICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBl
LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAicEtleSIgfSk7CisgICAgICAgIHZhciBpbmRleCA9IG9i
alN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7CisKKyAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb2JqU3RvcmUuYWRk
KHJlY29yZHNbaV0pOworCisgICAgICAgIHZhciBjdXJzb3JfcnEgPSBpbmRleC5vcGVuQ3Vyc29y
KCk7CisKKyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAg
ICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJREJDdXJzb3IsICJjdXJzb3IgZXhp
c3QiKTsKKyAgICAgICAgICAgIHdpbmRvdy5jdXJzb3IgPSBjdXJzb3I7CisgICAgICAgICAgICB3
aW5kb3cucmVjb3JkID0gY3Vyc29yLnZhbHVlOworICAgICAgICB9KTsKKworICAgICAgICBlLnRh
cmdldC50cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewor
ICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygnVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yJywgZnVu
Y3Rpb24oKSB7IHdpbmRvdy5jdXJzb3IudXBkYXRlKHdpbmRvdy5yZWNvcmQpOyB9KQorICAgICAg
ICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworPC9zY3JpcHQ+CisKKzxkaXYg
aWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5kZXg0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDQtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ0NDg5MmEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91
cGRhdGVfaW5kZXg0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJDdXJz
b3IudXBkYXRlKCkgLSBpbmRleCAtIGF0dGVtcHQgdG8gbW9kaWZ5IGEgcmVjb3JkIHdoZW4gb2Jq
ZWN0IHN0b3JlIGJlZW4gZGVsZXRlZCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4NC5odG0gYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5kZXg0Lmh0bQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYWQyOTQ1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2lu
ZGV4NC5odG0KQEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+Cis8dGl0bGU+SURCQ3Vyc29yLnVwZGF0ZSgpIC0gaW5kZXggLSBhdHRlbXB0IHRv
IG1vZGlmeSBhIHJlY29yZCB3aGVuIG9iamVjdCBzdG9yZSBiZWVuIGRlbGV0ZWQ8L3RpdGxlPgor
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5j
b20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXYg
aWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorCisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5j
X3Rlc3QoKSwKKyAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIsIGlLZXk6
ICJpbmRleEtleV8wIiB9LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8x
IiwgaUtleTogImluZGV4S2V5XzEiIH0gXTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIo
dCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbiAoZXZlbnQpIHsKKyAg
ICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBk
Yi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7a2V5UGF0aCA6ICJwS2V5In0pOworICAgICAg
ICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaUtleSIpOworICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgIG9ialN0b3Jl
LmFkZChyZWNvcmRzW2ldKTsKKyAgICAgICAgfQorICAgICAgICB2YXIgcnEgPSBvYmpTdG9yZS5p
bmRleCgiaW5kZXgiKS5vcGVuQ3Vyc29yKCk7CisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3Rl
cF9mdW5jKGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9m
IElEQkN1cnNvcik7CisKKyAgICAgICAgICAgIGRiLmRlbGV0ZU9iamVjdFN0b3JlKCJzdG9yZSIp
OworICAgICAgICAgICAgY3Vyc29yLnZhbHVlLmlLZXkgKz0gIl91cGRhdGVkIjsKKyAgICAgICAg
ICAgIGFzc2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgY3Vyc29yLnVwZGF0ZShjdXJzb3IudmFsdWUpOworICAgICAgICAgICAgfSwg
IklmIHRoZSBjdXJzb3IncyBzb3VyY2Ugb3IgZWZmZWN0aXZlIG9iamVjdCBzdG9yZSBoYXMgYmVl
biBkZWxldGVkLCB0aGUgaW1wbGVtZW50YXRpb24gTVVTVCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBv
ZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yIik7CisKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAg
ICAgICB9KTsKKyAgICB9CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4NS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5k
ZXg1LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MjA5
YTU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4NS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisK
K1BBU1MgSURCQ3Vyc29yLnVwZGF0ZSgpIC0gaW5kZXggLSB0aHJvdyBEYXRhQ2xvbmVFcnJvciAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3JfdXBkYXRlX2luZGV4NS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvcl91cGRhdGVfaW5kZXg1Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5jODI1M2U1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4NS5odG0KQEAgLTAsMCArMSw0NSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCQ3Vyc29yLnVwZGF0ZSgpIC0gaW5kZXggLSB0
aHJvdyBEYXRhQ2xvbmVFcnJvcjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Iklu
dGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5o
dG1sI3dpZGwtSURCQ3Vyc29yLXVwZGF0ZS1JREJSZXF1ZXN0LWFueS12YWx1ZSI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48L2Rp
dj4KKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAg
ICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlf
MCIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8xIiwgaUtleTog
ImluZGV4S2V5XzEiIH0gXTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAg
b3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50
YXJnZXQucmVzdWx0OworCisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAicEtleSIgfSk7CisgICAgICAgIG9ialN0b3JlLmNyZWF0
ZUluZGV4KCJpbmRleCIsICJpS2V5Iik7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBy
ZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0p
OworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IiwgInJlYWR3cml0ZSIpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIC5pbmRleCgiaW5kZXgiKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAub3BlbkN1cnNvcigpOworCisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBf
ZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVz
dWx0OworICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURCQ3Vyc29y
KTsKKworICAgICAgICAgICAgdmFyIHJlY29yZCA9IGN1cnNvci52YWx1ZTsKKyAgICAgICAgICAg
IHJlY29yZC5kYXRhID0gZG9jdW1lbnQ7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCdEYXRh
Q2xvbmVFcnJvcicsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGN1cnNvci51cGRhdGUo
cmVjb3JkKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAg
IH0pOworICAgIH0KKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5kZXg2LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDYt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0MDE1YTEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmN1cnNvcl91cGRhdGVfaW5kZXg2LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFT
UyBJREJDdXJzb3IudXBkYXRlKCkgLSBpbmRleCAtIG5vIGFyZ3VtZW50IAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfaW5k
ZXg2Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3Vw
ZGF0ZV9pbmRleDYuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyMjhk
NzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvcl91cGRhdGVfaW5kZXg2Lmh0bQpAQCAtMCwwICsxLDQxIEBACis8IURPQ1RZUEUg
aHRtbD4KKzx0aXRsZT5JREJDdXJzb3IudXBkYXRlKCkgLSBpbmRleCAtIG5vIGFyZ3VtZW50PC90
aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cu
aW50ZWwuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9o
Zy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJDdXJzb3ItdXBk
YXRlLUlEQlJlcXVlc3QtYW55LXZhbHVlIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KKyAgICB2YXIg
ZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICAgIHJlY29yZHMgPSBbIHsgcEtl
eTogInByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9LAorICAgICAgICAgICAgICAg
ICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5kZXhLZXlfMSIgfSBdOworCisg
ICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRl
ZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAg
ICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6
ICJwS2V5IiB9KTsKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlLZXki
KTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisg
ICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgfTsKKworICAgIG9wZW5f
cnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgY3Vyc29yX3JxID0gZGIu
dHJhbnNhY3Rpb24oInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3Rv
cmUoInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAuaW5kZXgoImluZGV4IikKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKKworICAgICAgICBjdXJzb3Jf
cnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFy
IGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNv
ciBpbnN0YW5jZW9mIElEQkN1cnNvcik7CisKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3MobmV3
IFR5cGVFcnJvcigpLCBmdW5jdGlvbigpIHsgY3Vyc29yLnVwZGF0ZSgpOyB9KTsKKyAgICAgICAg
ICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2lu
ZGV4Ny1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmN1cnNvcl91cGRhdGVfaW5kZXg3LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi41YTZiZGFhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4Ny1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLnVwZGF0ZSgpIC0gaW5kZXggLSB0aHJv
dyBEYXRhRXJyb3IgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDcuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX2luZGV4Ny5odG0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uNzI3MGViZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9pbmRleDcuaHRtCkBA
IC0wLDAgKzEsNDEgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci51cGRhdGUo
KSAtIGluZGV4IC0gdGhyb3cgRGF0YUVycm9yPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0
aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5rIHJlbD0iaGVs
cCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092
ZXJ2aWV3Lmh0bWwjd2lkbC1JREJDdXJzb3ItdXBkYXRlLUlEQlJlcXVlc3QtYW55LXZhbHVlIj4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJs
b2ciPjwvZGl2PgorPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0
KCksCisgICAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIsIGlLZXk6ICJp
bmRleEtleV8wIiB9LAorICAgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEi
LCBpS2V5OiAiaW5kZXhLZXlfMSIgfSBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0
KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
ZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRl
T2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJwS2V5IiB9KTsKKyAgICAgICAgb2JqU3Rv
cmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImlLZXkiKTsKKworICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVj
b3Jkc1tpXSk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkg
eworICAgICAgICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiLCAicmVhZHdy
aXRlIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgY3Vyc29yX3JxLm9uc3VjY2VzcyA9
IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRh
cmdldC5yZXN1bHQ7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShjdXJzb3IgaW5zdGFuY2VvZiBJ
REJDdXJzb3IpOworCisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCdEYXRhRXJyb3InLCBmdW5j
dGlvbigpIHsgY3Vyc29yLnVwZGF0ZShudWxsKTsgfSk7CisgICAgICAgICAgICB0LmRvbmUoKTsK
KyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91
cGRhdGVfb2JqZWN0c3RvcmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjMwNGIwNjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci51cGRhdGUoKSAtIG9iamVjdHN0b3Jl
IC0gbW9kaWZ5IGEgcmVjb3JkIGluIHRoZSBvYmplY3Qgc3RvcmUgIAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0
c3RvcmUuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Jf
dXBkYXRlX29iamVjdHN0b3JlLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4yOGIxMzdjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlLmh0bQpAQCAtMCwwICsxLDYwIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3IudXBkYXRlKCkgLSBvYmplY3RzdG9y
ZSAtIG1vZGlmeSBhIHJlY29yZCBpbiB0aGUgb2JqZWN0IHN0b3JlIDwvdGl0bGU+Cis8bGluayBy
ZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQu
Y29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxz
Y3JpcHQ+CisKKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVj
b3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiB9LAorICAgICAgICAgICAgICAgICAgeyBw
S2V5OiAicHJpbWFyeUtleV8xIiB9IF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQp
OworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBk
YiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJwS2V5IiB9KTsKKworICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5h
ZGQocmVjb3Jkc1tpXSk7CisKKyAgICAgICAgLy8gWFhYOiBHZWNrbyBkb2Vzbid0IGxpa2UgdGhp
cworICAgICAgICAvL2UudGFyZ2V0LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSB0LnN0ZXBfZnVu
YyhDdXJzb3JVcGRhdGVSZWNvcmQpOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9
IEN1cnNvclVwZGF0ZVJlY29yZDsKKworCisgICAgZnVuY3Rpb24gQ3Vyc29yVXBkYXRlUmVjb3Jk
KGUpIHsKKyAgICAgICAgdmFyIHR4biA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0IiwgInJlYWR3cml0
ZSIpLAorICAgICAgICAgIGN1cnNvcl9ycSA9IHR4bi5vYmplY3RTdG9yZSgidGVzdCIpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKKyAgICAgICAgY3Vyc29yX3JxLm9u
c3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJz
b3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgIGN1cnNvci52YWx1ZS5kYXRhID0g
Ik5ldyBpbmZvcm1hdGlvbiEiOworICAgICAgICAgICAgY3Vyc29yLnVwZGF0ZShjdXJzb3IudmFs
dWUpOworICAgICAgICB9KTsKKworICAgICAgICB0eG4ub25jb21wbGV0ZSA9IHQuc3RlcF9mdW5j
KFZlcmlmeVJlY29yZFdhc1VwZGF0ZWQpOworICAgIH0KKworCisgICAgZnVuY3Rpb24gVmVyaWZ5
UmVjb3JkV2FzVXBkYXRlZChlKSB7CisgICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2Fj
dGlvbigidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVz
dCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAg
Y3Vyc29yX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
ICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMoY3Vyc29yLnZhbHVlLmRhdGEsICJOZXcgaW5mb3JtYXRpb24hIik7CisgICAgICAgICAg
ICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCis8L3NjcmlwdD4KKworPGRpdiBpZD0i
bG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlMi1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTgzN2E1NQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
Y3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAor
CitQQVNTIElEQkN1cnNvci51cGRhdGUoKSAtIG9iamVjdCBzdG9yZSAtIGF0dGVtcHQgdG8gbW9k
aWZ5IGEgcmVjb3JkIGluIGEgcmVhZC1vbmx5IHRyYW5zYWN0aW9uIAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0
c3RvcmUyLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29y
X3VwZGF0ZV9vYmplY3RzdG9yZTIuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjZlYTkzNTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmUyLmh0bQpAQCAtMCwwICsxLDM4
IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3IudXBkYXRlKCkgLSBvYmplY3Qg
c3RvcmUgLSBhdHRlbXB0IHRvIG1vZGlmeSBhIHJlY29yZCBpbiBhIHJlYWQtb25seSB0cmFuc2Fj
dGlvbjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0i
aHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9y
dC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5j
X3Rlc3QoKSwKKyAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIsIGlLZXk6
ICJpbmRleEtleV8wIiB9LAorICAgICAgICAgICAgICAgICAgeyBwS2V5OiAicHJpbWFyeUtleV8x
IiwgaUtleTogImluZGV4S2V5XzEiIH0gXTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIo
dCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAg
IGRiID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0
ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAicEtleSIgfSk7CisKKyAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgb2JqU3Rv
cmUuYWRkKHJlY29yZHNbaV0pOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIGN1cnNvcl9ycSA9IGRiLnRyYW5zYWN0aW9uKCJ0ZXN0
IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKKworICAgICAgICBjdXJzb3JfcnEu
b25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1
cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3MoJ1JlYWRP
bmx5RXJyb3InLCBmdW5jdGlvbigpIHsgY3Vyc29yLnVwZGF0ZShjdXJzb3IudmFsdWUpOyB9KTsK
KyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKzwvc2NyaXB0Pgor
Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlMy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2Jq
ZWN0c3RvcmUzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5mMzZiMWY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlMy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLnVwZGF0ZSgpIC0gb2JqZWN0IHN0b3JlIC0gYXR0
ZW1wdCB0byBtb2RpZnkgYSByZWNvcmQgaW4gYW4gaW5hY3RpdmUgdHJhbnNhY3Rpb24gCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3Vw
ZGF0ZV9vYmplY3RzdG9yZTMuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlMy5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uZDI4NWQ3NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTMuaHRtCkBA
IC0wLDAgKzEsNDAgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci51cGRhdGUo
KSAtIG9iamVjdCBzdG9yZSAtIGF0dGVtcHQgdG8gbW9kaWZ5IGEgcmVjb3JkIGluIGFuIGluYWN0
aXZlIHRyYW5zYWN0aW9uPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9z
b2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKworICAgIHZhciBkYiwKKyAg
ICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5
S2V5XzAiLCBpS2V5OiAiaW5kZXhLZXlfMCIgfSwKKyAgICAgICAgICAgICAgICAgIHsgcEtleTog
InByaW1hcnlLZXlfMSIsIGlLZXk6ICJpbmRleEtleV8xIiB9IF07CisKKyAgICB2YXIgb3Blbl9y
cSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3Jl
ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJwS2V5IiB9KTsKKwor
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAgICAg
ICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisKKyAgICAgICAgdmFyIGN1cnNvcl9ycSA9
IG9ialN0b3JlLm9wZW5DdXJzb3IoKTsKKworICAgICAgICBjdXJzb3JfcnEub25zdWNjZXNzID0g
dC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFy
Z2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBpbnN0YW5jZW9mIElE
QkN1cnNvciwgImN1cnNvciBleGlzdCIpOworICAgICAgICAgICAgd2luZG93LmN1cnNvciA9IGN1
cnNvcjsKKyAgICAgICAgICAgIHdpbmRvdy5yZWNvcmQgPSBjdXJzb3IudmFsdWU7CisgICAgICAg
IH0pOworCisgICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSB0LnN0ZXBf
ZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCdUcmFuc2FjdGlv
bkluYWN0aXZlRXJyb3InLCBmdW5jdGlvbigpIHsgd2luZG93LmN1cnNvci51cGRhdGUod2luZG93
LnJlY29yZCk7IH0pCisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQor
Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJz
b3JfdXBkYXRlX29iamVjdHN0b3JlNC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uYzM4M2IyZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTQtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkN1cnNvci51cGRhdGUoKSAtIGluZGV4
IC0gbW9kaWZ5IGEgcmVjb3JkIGluIHRoZSBvYmplY3Qgc3RvcmUgCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3Rz
dG9yZTQuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3Jf
dXBkYXRlX29iamVjdHN0b3JlNC5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZDU1NzE4YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTQuaHRtCkBAIC0wLDAgKzEsMzkg
QEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci51cGRhdGUoKSAtIGluZGV4IC0g
bW9kaWZ5IGEgcmVjb3JkIGluIHRoZSBvYmplY3Qgc3RvcmUgPC90aXRsZT4KKzxsaW5rIHJlbD0i
YXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRo
ZSBPbWRhbCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0Pgor
Cis8c2NyaXB0PgorCisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQu
dGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pCisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQp
OworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBk
YiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoInRlc3QiKTsKKworICAgICAgICBvYmpTdG9yZS5hZGQoImRhdGEiLCAia2V5Iik7
CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24o
ZSkgeworICAgICAgICB2YXIgdHhuID0gZGIudHJhbnNhY3Rpb24oInRlc3QiLCAicmVhZHdyaXRl
IiksCisgICAgICAgICAgY3Vyc29yX3JxID0gdHhuLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAgIGN1cnNvcl9ycS5v
bnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY3Vy
c29yID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICBjdXJzb3IudmFsdWUgPSAibmV3
IGRhdGEhIjsKKyAgICAgICAgICAgIGN1cnNvci51cGRhdGUoY3Vyc29yLnZhbHVlKS5vbnN1Y2Nl
c3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhlLnRhcmdldC5yZXN1bHQsICJrZXkiKTsKKyAgICAgICAgICAgICAgICB0LmRvbmUoKTsK
KyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9KTsKKworPC9zY3JpcHQ+CisKKzxk
aXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU1LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3Rz
dG9yZTUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZm
ZWRiMzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDMgQEAKKworUEFTUyBJREJDdXJzb3IudXBkYXRlKCkgLSBvYmplY3Qgc3RvcmUgLSBhdHRlbXB0
IHRvICBtb2RpZnkgYSByZWNvcmQgd2hlbiBvYmplY3Qgc3RvcmUgYmVlbiBkZWxldGVkIAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91
cGRhdGVfb2JqZWN0c3RvcmU1Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTUuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjM5NjRkYjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU1Lmh0bQpA
QCAtMCwwICsxLDQxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
Kzx0aXRsZT5JREJDdXJzb3IudXBkYXRlKCkgLSBvYmplY3Qgc3RvcmUgLSBhdHRlbXB0IHRvICBt
b2RpZnkgYSByZWNvcmQgd2hlbiBvYmplY3Qgc3RvcmUgYmVlbiBkZWxldGVkPC90aXRsZT4KKzxs
aW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29t
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlk
PSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KKworICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190
ZXN0KCksCisgICAgICByZWNvcmRzID0gWyB7IHBLZXk6ICJwcmltYXJ5S2V5XzAiIH0sCisgICAg
ICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiIH0gXTsKKworICAgIHZhciBvcGVu
X3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlv
bihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3Rv
cmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHtrZXlQYXRoOiJwS2V5In0pOworCisg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAgICAgICAg
ICAgIG9ialN0b3JlLmFkZChyZWNvcmRzW2ldKTsKKworICAgICAgICB2YXIgY3Vyc29yX3JxID0g
b2JqU3RvcmUub3BlbkN1cnNvcigpOworCisgICAgICAgIGN1cnNvcl9ycS5vbnN1Y2Nlc3MgPSB0
LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJn
ZXQucmVzdWx0OworICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29yIGluc3RhbmNlb2YgSURC
Q3Vyc29yLCAiY3Vyc29yIGV4aXN0cyIpOworCisgICAgICAgICAgICBkYi5kZWxldGVPYmplY3RT
dG9yZSgidGVzdCIpOworICAgICAgICAgICAgY3Vyc29yLnZhbHVlICs9ICJfdXBkYXRlZCI7Cisg
ICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgIGN1cnNvci51cGRhdGUoY3Vyc29yLnZhbHVlKTsKKyAgICAgICAg
ICAgIH0sICJJZiB0aGUgY3Vyc29yJ3Mgc291cmNlIG9yIGVmZmVjdGl2ZSBvYmplY3Qgc3RvcmUg
aGFzIGJlZW4gZGVsZXRlZCwgdGhlIGltcGxlbWVudGF0aW9uIE1VU1QgdGhyb3cgYSBET01FeGNl
cHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvciIpOworCisKKyAgICAgICAgICAgIHQuZG9u
ZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3Jl
Ni1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1
cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5iYjY3MjFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3JlNi1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLnVwZGF0ZSgpIC0gb2Jq
ZWN0IHN0b3JlIC0gdGhyb3cgRGF0YUNsb25lRXJyb3IgCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTYu
aHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRl
X29iamVjdHN0b3JlNi5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDQ4
MjM0YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTYuaHRtCkBAIC0wLDAgKzEsNDMgQEAKKzwh
RE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci51cGRhdGUoKSAtIG9iamVjdCBzdG9yZSAt
IHRocm93IERhdGFDbG9uZUVycm9yPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0i
SW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJl
Zj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3
Lmh0bWwjd2lkbC1JREJDdXJzb3ItdXBkYXRlLUlEQlJlcXVlc3QtYW55LXZhbHVlIj4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwv
ZGl2PgorPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCksCisg
ICAgICAgIHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtl
eV8wIiB9LAorICAgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5
OiAiaW5kZXhLZXlfMSIgfSBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAg
ICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBl
LnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0
U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJwS2V5IiB9KTsKKworICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQo
cmVjb3Jkc1tpXSk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24o
ZSkgeworICAgICAgICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiLCAicmVh
ZHdyaXRlIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKKworICAgICAgICBjdXJz
b3JfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAg
dmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGN1
cnNvciBpbnN0YW5jZW9mIElEQkN1cnNvcik7CisKKyAgICAgICAgICAgIHZhciByZWNvcmQgPSBj
dXJzb3IudmFsdWU7CisgICAgICAgICAgICByZWNvcmQuZGF0YSA9IGRvY3VtZW50OworICAgICAg
ICAgICAgYXNzZXJ0X3Rocm93cygnRGF0YUNsb25lRXJyb3InLCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICBjdXJzb3IudXBkYXRlKHJlY29yZCk7CisgICAgICAgICAgICB9KTsKKyAgICAg
ICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRl
X29iamVjdHN0b3JlNy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU3LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YmU4ZGUxCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVj
dHN0b3JlNy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLnVw
ZGF0ZSgpIC0gb2JqZWN0IHN0b3JlIC0gbm8gYXJndW1lbnQgCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9y
ZTcuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBk
YXRlX29iamVjdHN0b3JlNy5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
ZGI5ODA2MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiY3Vyc29yX3VwZGF0ZV9vYmplY3RzdG9yZTcuaHRtCkBAIC0wLDAgKzEsMzkgQEAK
KzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkN1cnNvci51cGRhdGUoKSAtIG9iamVjdCBzdG9y
ZSAtIG5vIGFyZ3VtZW50PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwi
IGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwj
d2lkbC1JREJDdXJzb3ItdXBkYXRlLUlEQlJlcXVlc3QtYW55LXZhbHVlIj4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2Pgor
PHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICAg
IHJlY29yZHMgPSBbIHsgcEtleTogInByaW1hcnlLZXlfMCIsIGlLZXk6ICJpbmRleEtleV8wIiB9
LAorICAgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEiLCBpS2V5OiAiaW5k
ZXhLZXlfMSIgfSBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVu
X3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdl
dC5yZXN1bHQ7CisKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUo
InRlc3QiLCB7IGtleVBhdGg6ICJwS2V5IiB9KTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jk
c1tpXSk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewor
ICAgICAgICB2YXIgY3Vyc29yX3JxID0gZGIudHJhbnNhY3Rpb24oInRlc3QiLCAicmVhZHdyaXRl
IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0IikKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKKworICAgICAgICBjdXJzb3JfcnEu
b25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIGN1
cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGN1cnNvciBp
bnN0YW5jZW9mIElEQkN1cnNvcik7CisKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3MobmV3IFR5
cGVFcnJvcigpLCBmdW5jdGlvbigpIHsgY3Vyc29yLnVwZGF0ZSgpOyB9KTsKKyAgICAgICAgICAg
IHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVj
dHN0b3JlOC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYzQ2ODU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJjdXJzb3JfdXBkYXRlX29iamVjdHN0b3Jl
OC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCQ3Vyc29yLnVwZGF0ZSgp
IC0gb2JqZWN0IHN0b3JlIC0gdGhyb3cgRGF0YUVycm9yIAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU4
Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiY3Vyc29yX3VwZGF0
ZV9vYmplY3RzdG9yZTguaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0
OGM1NDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmN1cnNvcl91cGRhdGVfb2JqZWN0c3RvcmU4Lmh0bQpAQCAtMCwwICsxLDM5IEBACis8
IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJDdXJzb3IudXBkYXRlKCkgLSBvYmplY3Qgc3RvcmUg
LSB0aHJvdyBEYXRhRXJyb3I8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRl
bCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJo
dHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRt
bCN3aWRsLUlEQkN1cnNvci11cGRhdGUtSURCUmVxdWVzdC1hbnktdmFsdWUiPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+
Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAg
ICAgcmVjb3JkcyA9IFsgeyBwS2V5OiAicHJpbWFyeUtleV8wIiwgaUtleTogImluZGV4S2V5XzAi
IH0sCisgICAgICAgICAgICAgICAgICAgIHsgcEtleTogInByaW1hcnlLZXlfMSIsIGlLZXk6ICJp
bmRleEtleV8xIiB9IF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9w
ZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFy
Z2V0LnJlc3VsdDsKKworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9y
ZSgidGVzdCIsIHsga2V5UGF0aDogInBLZXkiIH0pOworCisgICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZChyZWNv
cmRzW2ldKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7
CisgICAgICAgIHZhciBjdXJzb3JfcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIsICJyZWFkd3Jp
dGUiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAgIGN1cnNvcl9y
cS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIg
Y3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAgYXNzZXJ0X3RydWUoY3Vyc29y
IGluc3RhbmNlb2YgSURCQ3Vyc29yKTsKKworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygnRGF0
YUVycm9yJywgZnVuY3Rpb24oKSB7IGN1cnNvci51cGRhdGUobnVsbCk7IH0pOworICAgICAgICAg
ICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2Nsb3NlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJh
c2VfY2xvc2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjljZTE5YjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmRhdGFiYXNlX2Nsb3NlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKwor
UEFTUyBJREJEYXRhYmFzZS5jbG9zZSgpIC0gdW5ibG9jayB0aGUgdmVyc2lvbiBjaGFuZ2UgdHJh
bnNhY3Rpb24gY3JlYXRlZCBieSBhbiBvcGVuIGRhdGFiYXNlIHJlcXVlc3QgCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY2xvc2Uu
aHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jbG9z
ZS5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2JlZWI3ZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJh
c2VfY2xvc2UuaHRtCkBAIC0wLDAgKzEsNDMgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklE
QkRhdGFiYXNlLmNsb3NlKCkgLSB1bmJsb2NrIHRoZSB2ZXJzaW9uIGNoYW5nZSB0cmFuc2FjdGlv
biBjcmVhdGVkIGJ5IGFuIG9wZW4gZGF0YWJhc2UgcmVxdWVzdDwvdGl0bGU+Cis8bGluayByZWw9
ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29t
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3Jp
cHQ+Cit2YXIgZGI7Cit2YXIgdmVyc2lvbmNoYW5nZV9maXJlZDsKK3ZhciBibG9ja2VkX2ZpcmVk
OwordmFyIHVwZ3JhZGVuZWVkZWRfZmlyZWQ7Cit2YXIgdCA9IGFzeW5jX3Rlc3QoKTsKK3ZhciBv
cGVuX3JxID0gY3JlYXRlZGIodCk7Cit2YXIgY291bnRlciA9IDA7CisKK29wZW5fcnEub251cGdy
YWRlbmVlZGVkID0gZnVuY3Rpb24oKSB7fQorb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihl
KSB7CisgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgZGIub252ZXJzaW9uY2hhbmdlID0g
dC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICB2ZXJzaW9uY2hhbmdlX2ZpcmVkID0g
Y291bnRlcisrOworICAgIH0pOworICAgIHZhciBycSA9IHdpbmRvdy5pbmRleGVkREIub3Blbihk
Yi5uYW1lLCBkYi52ZXJzaW9uICsgMSk7CisgICAgcnEub25ibG9ja2VkID0gdC5zdGVwX2Z1bmMo
ZnVuY3Rpb24gKGUpIHsKKyAgICAgICAgYmxvY2tlZF9maXJlZCA9IGNvdW50ZXIrKzsKKyAgICAg
ICAgZGIuY2xvc2UoKTsKKyAgICB9KTsKKyAgICBycS5vbnVwZ3JhZGVuZWVkZWQgPSB0LnN0ZXBf
ZnVuYyhmdW5jdGlvbiAoZSkgeworICAgICAgICB1cGdyYWRlbmVlZGVkX2ZpcmVkID0gY291bnRl
cisrOworICAgIH0pOworICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uIChl
KSB7CisgICAgICAgIGFzc2VydF9lcXVhbHModmVyc2lvbmNoYW5nZV9maXJlZCwgMCwgJ3ZlcnNp
b25jaGFuZ2UgZXZlbnQgZmlyZWQgIycpCisgICAgICAgIGFzc2VydF9lcXVhbHMoYmxvY2tlZF9m
aXJlZCwgMSwgJ2Jsb2NrIGV2ZW50IGZpcmVkICMnKQorICAgICAgICBhc3NlcnRfZXF1YWxzKHVw
Z3JhZGVuZWVkZWRfZmlyZWQsIDIsICdzZWNvbmQgdXBncmFkZW5lZWRlZCBldmVudCBmaXJlZCAj
JykKKworICAgICAgICB0LmRvbmUoKTsKKyAgICB9KTsKKyAgICBycS5vbmVycm9yID0gZmFpbCh0
LCAnVW5leHBlY3RlZCBkYXRhYmFzZSBkZWxldGlvbiBlcnJvcicpOworfTsKKworPC9zY3JpcHQ+
CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2Nsb3NlMi1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2Nsb3NlMi1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDk5MmNlMwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2Vf
Y2xvc2UyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworRkFJTCBJREJEYXRhYmFzZS5j
bG9zZSgpIC0gdW5ibG9jayB0aGUgZGVsZXRlIGRhdGFiYXNlIHJlcXVlc3QgYXNzZXJ0X3VucmVh
Y2hlZDogVW5leHBlY3RlZCBkYXRhYmFzZSBkZWxldGlvbiBlcnJvciAoVW5rbm93bkVycm9yKSBS
ZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jbG9zZTIuaHRtIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jbG9zZTIuaHRtCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZlY2E3NWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2Nsb3NlMi5odG0KQEAgLTAs
MCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCRGF0YWJhc2UuY2xvc2UoKSAt
IHVuYmxvY2sgdGhlIGRlbGV0ZSBkYXRhYmFzZSByZXF1ZXN0PC90aXRsZT4KKzxsaW5rIHJlbD0i
YXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20i
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlw
dD4KKwordmFyIGRiOwordmFyIGJsb2NrZWRfZmlyZWQgPSBmYWxzZTsKK3ZhciB2ZXJzaW9uY2hh
bmdlX2ZpcmVkID0gZmFsc2U7Cit2YXIgdCA9IGFzeW5jX3Rlc3QoKTsKK3ZhciBvcGVuX3JxID0g
Y3JlYXRlZGIodCk7CisKK29wZW5fcnEub251cGdyYWRlbmVlZGVkID0gdC5zdGVwX2Z1bmMoZnVu
Y3Rpb24oKSB7fSk7CitvcGVuX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUp
IHsKKyAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgIGRiLm9udmVyc2lvbmNoYW5nZSA9
IHQuc3RlcF9mdW5jKGZ1bmN0aW9uIChlKSB7CisgICAgICB2ZXJzaW9uY2hhbmdlX2ZpcmVkID0g
dHJ1ZTsKKyAgICB9KTsKKworICAgIHZhciBycSA9IHdpbmRvdy5pbmRleGVkREIuZGVsZXRlRGF0
YWJhc2UoZGIubmFtZSk7CisgICAgcnEub25ibG9ja2VkID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24g
KGUpIHsKKyAgICAgICAgYmxvY2tlZF9maXJlZCA9IHRydWU7CisgICAgICAgIGRiLmNsb3NlKCk7
CisgICAgfSk7CisgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24gKGUpIHsK
KyAgICAgICAgYXNzZXJ0X3RydWUodmVyc2lvbmNoYW5nZV9maXJlZCwgInZlcnNpb25jaGFuZ2Ug
ZXZlbnQgZmlyZWQiKQorICAgICAgICBhc3NlcnRfdHJ1ZShibG9ja2VkX2ZpcmVkLCAiYmxvY2sg
ZXZlbnQgZmlyZWQiKQorICAgICAgICB0LmRvbmUoKTsKKyAgICB9KTsKKyAgICBycS5vbmVycm9y
ID0gZmFpbCh0LCAnVW5leHBlY3RlZCBkYXRhYmFzZSBkZWxldGlvbiBlcnJvcicpOworfSk7CisK
Kzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZS1j
cmVhdGVJbmRleC1lbXB0eW5hbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZS1jcmVhdGVJbmRleC1l
bXB0eW5hbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjI4Y2I2MDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlLWNyZWF0ZUluZGV4LWVtcHR5bmFt
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCRGF0YWJhc2UuY3JlYXRl
T2JqZWN0U3RvcmUoKSBhbmQgSURCT2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoKSAtIGJvdGggd2l0
aCBlbXB0eSBuYW1lIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlLWNyZWF0ZUluZGV4LWVtcHR5bmFt
ZS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2Ny
ZWF0ZU9iamVjdFN0b3JlLWNyZWF0ZUluZGV4LWVtcHR5bmFtZS5odG0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uMTU5N2MyZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUt
Y3JlYXRlSW5kZXgtZW1wdHluYW1lLmh0bQpAQCAtMCwwICsxLDQ1IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+SURCRGF0YWJhc2UuY3JlYXRlT2JqZWN0
U3RvcmUoKSBhbmQgSURCT2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoKSAtIGJvdGggd2l0aCBlbXB0
eSBuYW1lPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9w
ZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIKKworICAgIHZh
ciBvcGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdCgpKQorICAgIG9wZW5fcnEub251cGdyYWRl
bmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdAorICAg
ICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgiIikKKworICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IDU7IGkrKykKKyAgICAgICAgICAgIHN0b3JlLmFkZCh7IGlkeDogIm9i
amVjdF8iICsgaSB9LCBpKQorCisgICAgICAgIHN0b3JlLmNyZWF0ZUluZGV4KCIiLCAiaWR4IikK
KworICAgICAgICBzdG9yZS5nZXQoNCkKKyAgICAgICAgICAgICAub25zdWNjZXNzID0gdGhpcy5z
dGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdl
dC5yZXN1bHQuaWR4LCAnb2JqZWN0XzQnLCAncmVzdWx0JykKKyAgICAgICAgfSkKKyAgICAgICAg
YXNzZXJ0X2VxdWFscyhzdG9yZS5pbmRleE5hbWVzWzBdLCAiIiwgImluZGV4TmFtZXNbMF0iKQor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHN0b3JlLmluZGV4TmFtZXMubGVuZ3RoLCAxLCAiaW5kZXhO
YW1lcy5sZW5ndGgiKQorICAgIH0KKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24o
KSB7CisgICAgICAgIHZhciBzdG9yZSA9IGRiLnRyYW5zYWN0aW9uKCIiKS5vYmplY3RTdG9yZSgi
IikKKworICAgICAgICBhc3NlcnRfZXF1YWxzKHN0b3JlLmluZGV4TmFtZXNbMF0sICIiLCAiaW5k
ZXhOYW1lc1swXSIpCisgICAgICAgIGFzc2VydF9lcXVhbHMoc3RvcmUuaW5kZXhOYW1lcy5sZW5n
dGgsIDEsICJpbmRleE5hbWVzLmxlbmd0aCIpCisKKyAgICAgICAgc3RvcmUuaW5kZXgoIiIpCisg
ICAgICAgICAgICAgLmdldCgnb2JqZWN0XzQnKQorICAgICAgICAgICAgIC5vbnN1Y2Nlc3MgPSB0
aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUu
dGFyZ2V0LnJlc3VsdC5pZHgsICdvYmplY3RfNCcsICdyZXN1bHQnKQorICAgICAgICAgICAgdGhp
cy5kb25lKCkKKyAgICAgICAgfSkKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9k
aXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRh
dGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBjYzRjZGQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNl
X2NyZWF0ZU9iamVjdFN0b3JlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJ
REJEYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgpIC0gcmV0dXJucyBhbiBpbnN0YW5jZSBvZiBJ
REJPYmplY3RTdG9yZSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZS5odG0gYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlLmh0bQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMGE3ZjZmCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVh
dGVPYmplY3RTdG9yZS5odG0KQEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0
bGU+SURCRGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUoKSAtIHJldHVybnMgYW4gaW5zdGFuY2Ug
b2YgSURCT2JqZWN0U3RvcmU8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNy
b3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4KKwordmFyIHQgPSBhc3luY190
ZXN0KCksCisgICAgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpCisKK29wZW5fcnEub251cGdyYWRlbmVl
ZGVkID0gZnVuY3Rpb24oZSkgeworICAgIHZhciBkYiA9IGUudGFyZ2V0LnJlc3VsdAorICAgIHZh
ciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdpbnN0YW5jZXRlc3QnKQorCisgICAg
YXNzZXJ0X3RydWUob2JqU3RvcmUgaW5zdGFuY2VvZiBJREJPYmplY3RTdG9yZSwgJ2luc3RhbmNl
b2YgSURCT2JqZWN0U3RvcmUnKQorfQorCitvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUp
IHsKKyAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQKKyAgICB2YXIgb2JqU3RvcmUgPSBkYi50
cmFuc2FjdGlvbignaW5zdGFuY2V0ZXN0Jykub2JqZWN0U3RvcmUoJ2luc3RhbmNldGVzdCcpCisK
KyAgICBhc3NlcnRfdHJ1ZShvYmpTdG9yZSBpbnN0YW5jZW9mIElEQk9iamVjdFN0b3JlLCAnaW5z
dGFuY2VvZiBJREJPYmplY3RTdG9yZScpCisgICAgdC5kb25lKCkKK30KKzwvc2NyaXB0PgorCis8
ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUxMC0xMDAwZW5kcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2Ny
ZWF0ZU9iamVjdFN0b3JlMTAtMTAwMGVuZHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjZjZmI5NWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMTAt
MTAwMGVuZHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkRhdGFiYXNl
LmNyZWF0ZU9iamVjdFN0b3JlKCkgLSBjcmVhdGUgMTAwMCBvYmplY3Qgc3RvcmVzLCBhZGQgb25l
IGl0ZW0gYW5kIGRlbGV0ZSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTEwLTEwMDBlbmRzLmh0bSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2Jq
ZWN0U3RvcmUxMC0xMDAwZW5kcy5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMmFlNzY2MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUxMC0xMDAwZW5kcy5odG0KQEAg
LTAsMCArMSwzNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCRGF0YWJhc2UuY3JlYXRl
T2JqZWN0U3RvcmUoKSAtIGNyZWF0ZSAxMDAwIG9iamVjdCBzdG9yZXMsIGFkZCBvbmUgaXRlbSBh
bmQgZGVsZXRlPC90aXRsZT4KKzxtZXRhIG5hbWU9dGltZW91dCBjb250ZW50PWxvbmc+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgordmFy
IGRiLAorICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDogNjAwMDAw
fSksCisgICAgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpCisKK29wZW5fcnEub251cGdyYWRlbmVlZGVk
ID0gZnVuY3Rpb24oZSkgeworICAgIGRiID0gZS50YXJnZXQucmVzdWx0CisgICAgdmFyIHN0LCBp
OworICAgIGZvciAoaSA9IDA7IGkgPCAxMDAwOyBpKyspCisgICAgeworICAgICAgICBzdCA9IGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCJvYmplY3Rfc3RvcmVfIiArIGkpCisgICAgICAgIHN0LmFkZCgi
dGVzdCIsIDEpOworICAgIH0KKworICAgIHN0LmdldCgxKS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVu
YyhmdW5jdGlvbihlKSB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCAi
dGVzdCIpCisgICAgfSkKK30KK29wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAg
IGRiLmNsb3NlKCkKKyAgICB3aW5kb3cuaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRiLm5hbWUp
Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdC5kb25lKCkKKyAgICB9Cit9Cis8
L3NjcmlwdD4KKworCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3Rv
cmUxMC1lbXB0eW5hbWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTEwLWVtcHR5bmFtZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjBiN2E1NwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJh
c2VfY3JlYXRlT2JqZWN0U3RvcmUxMC1lbXB0eW5hbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MyBAQAorCitQQVNTIElEQkRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCkgLSBlbXB0eSBuYW1l
IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRh
dGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMTAtZW1wdHluYW1lLmh0bSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUxMC1lbXB0
eW5hbWUuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5NDE0ZDIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRh
dGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMTAtZW1wdHluYW1lLmh0bQpAQCAtMCwwICsxLDM4IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+SURCRGF0YWJh
c2UuY3JlYXRlT2JqZWN0U3RvcmUoKSAtIGVtcHR5IG5hbWU8L3RpdGxlPgorPGxpbmsgcmVsPSJh
dXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhl
IE9tZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8
c2NyaXB0PgorICAgIHZhciBkYgorCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYihhc3luY190
ZXN0KCkpCisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAg
ICAgIGRiID0gZS50YXJnZXQucmVzdWx0CisgICAgICAgIHZhciBzdG9yZSA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCIiKQorCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgNTsgaSsrKQorICAg
ICAgICAgICAgc3RvcmUuYWRkKCJvYmplY3RfIiArIGksIGkpCisKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyhkYi5vYmplY3RTdG9yZU5hbWVzWzBdLCAiIiwgImRiLm9iamVjdFN0b3JlTmFtZXNbMF0i
KQorICAgICAgICBhc3NlcnRfZXF1YWxzKGRiLm9iamVjdFN0b3JlTmFtZXMubGVuZ3RoLCAxLCAi
b2JqZWN0U3RvcmVOYW1lcy5sZW5ndGgiKQorICAgIH0KKworICAgIG9wZW5fcnEub25zdWNjZXNz
ID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBzdG9yZSA9IGRiLnRyYW5zYWN0aW9uKCIiKS5v
YmplY3RTdG9yZSgiIikKKworICAgICAgICBzdG9yZS5nZXQoMikub25zdWNjZXNzID0gdGhpcy5z
dGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdl
dC5yZXN1bHQsICJvYmplY3RfMiIpCisgICAgICAgIH0pCisKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhkYi5vYmplY3RTdG9yZU5hbWVzWzBdLCAiIiwgImRiLm9iamVjdFN0b3JlTmFtZXNbMF0iKQor
ICAgICAgICBhc3NlcnRfZXF1YWxzKGRiLm9iamVjdFN0b3JlTmFtZXMubGVuZ3RoLCAxLCAib2Jq
ZWN0U3RvcmVOYW1lcy5sZW5ndGgiKQorCisgICAgICAgIHRoaXMuZG9uZSgpCisgICAgfQorPC9z
Y3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTExLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2Vf
Y3JlYXRlT2JqZWN0U3RvcmUxMS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMGY3ZWViMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUxMS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCRGF0YWJhc2UuY3JlYXRlT2JqZWN0U3Rv
cmUoKSAtIGF0dGVtcHRpbmcgdG8gY3JlYXRlIGFuIGV4aXN0aW5nIG9iamVjdCBzdG9yZSB3aXRo
IGEgZGlmZmVyZW50IGtleVBhdGggdGhyb3cgQ29uc3RyYWludEVycm9yICAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVP
YmplY3RTdG9yZTExLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
ZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUxMS5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uYjJlMjMzYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUxMS5odG0KQEAg
LTAsMCArMSwyNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8
dGl0bGU+SURCRGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUoKSAtIGF0dGVtcHRpbmcgdG8gY3Jl
YXRlIGFuIGV4aXN0aW5nIG9iamVjdCBzdG9yZSB3aXRoIGEgZGlmZmVyZW50IGtleVBhdGggdGhy
b3cgQ29uc3RyYWludEVycm9yIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Iklu
dGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9
Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5o
dG1sI3dpZGwtSURCRGF0YWJhc2UtY3JlYXRlT2JqZWN0U3RvcmUtSURCT2JqZWN0U3RvcmUtRE9N
U3RyaW5nLW5hbWUtSURCT2JqZWN0U3RvcmVQYXJhbWV0ZXJzLW9wdGlvbmFsUGFyYW1ldGVycyI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0i
bG9nIj48L2Rpdj4KKzxzY3JpcHQ+Cit2YXIgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICBvcGVuX3Jx
ID0gY3JlYXRlZGIodCk7CisKK29wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGUp
IHsKKyAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoInN0b3JlIik7CisgICAgYXNzZXJ0X3Rocm93cygiQ29uc3RyYWludEVycm9yIiwgZnVuY3Rp
b24oKXsKKyAgICAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeworICAgICAgICAg
ICAga2V5UGF0aDogImtleTEiLAorICAgICAgICB9KTsKKyAgICB9KTsKKyAgICB0LmRvbmUoKTsK
K30KKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0
b3JlMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmNk
NzE1NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDMgQEAKKworUEFTUyBJREJEYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgpIC0gb2JqZWN0IHN0
b3JlICduYW1lJyBhbmQgJ2tleVBhdGgnIHByb3BlcnRpZXMgYXJlIGNvcnJlY3RseSBzZXQgIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFi
YXNlX2NyZWF0ZU9iamVjdFN0b3JlMi5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMi5odG0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uY2U2ZDVjNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUy
Lmh0bQpAQCAtMCwwICsxLDMzIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJEYXRhYmFz
ZS5jcmVhdGVPYmplY3RTdG9yZSgpIC0gb2JqZWN0IHN0b3JlICduYW1lJyBhbmQgJ2tleVBhdGgn
IHByb3BlcnRpZXMgYXJlIGNvcnJlY3RseSBzZXQgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKwor
dmFyIHQgPSBhc3luY190ZXN0KCksCisgICAgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpCisKK29wZW5f
cnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgIHZhciBkYiA9IGUudGFyZ2V0
LnJlc3VsdCwKKyAgICAgICAgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgicHJvcCIs
IHsga2V5UGF0aDogIm15a2V5cGF0aCIgfSkKKworICAgIGFzc2VydF9lcXVhbHMob2JqU3RvcmUu
bmFtZSwgInByb3AiLCAib2JqZWN0IHN0b3JlIG5hbWUiKQorICAgIGFzc2VydF9lcXVhbHMob2Jq
U3RvcmUua2V5UGF0aCwgIm15a2V5cGF0aCIsICJrZXkgcGF0aCIpCisgICAgYXNzZXJ0X2VxdWFs
cyhvYmpTdG9yZS5hdXRvSW5jcmVtZW50LCBmYWxzZSwgImF1dG8gaW5jcmVtZW50IikKK30KKwor
b3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgdmFyIGRiID0gZS50YXJnZXQu
cmVzdWx0CisgICAgdmFyIG9ialN0b3JlID0gZGIudHJhbnNhY3Rpb24oJ3Byb3AnKS5vYmplY3RT
dG9yZSgncHJvcCcpCisKKyAgICBhc3NlcnRfZXF1YWxzKG9ialN0b3JlLm5hbWUsICJwcm9wIiwg
Im9iamVjdCBzdG9yZSBuYW1lIikKKyAgICBhc3NlcnRfZXF1YWxzKG9ialN0b3JlLmtleVBhdGgs
ICJteWtleXBhdGgiLCAia2V5IHBhdGgiKQorICAgIGFzc2VydF9lcXVhbHMob2JqU3RvcmUuYXV0
b0luY3JlbWVudCwgZmFsc2UsICJhdXRvIGluY3JlbWVudCIpCisgICAgdC5kb25lKCkKK30KKzwv
c2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFz
ZV9jcmVhdGVPYmplY3RTdG9yZTMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjYyYWNmOWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCRGF0YWJhc2UuY3JlYXRlT2JqZWN0U3Rv
cmUoKSAtIGF0dGVtcHQgdG8gY3JlYXRlIGFuIG9iamVjdCBzdG9yZSBvdXRzaWRlIG9mIGEgdmVy
c2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb24gIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlMy5odG0gYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVj
dFN0b3JlMy5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWQxMGU5MAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
ZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmUzLmh0bQpAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzx0aXRsZT5JREJEYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgpIC0gYXR0ZW1w
dCB0byBjcmVhdGUgYW4gb2JqZWN0IHN0b3JlIG91dHNpZGUgb2YgYSB2ZXJzaW9uIGNoYW5nZSB0
cmFuc2FjdGlvbiA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQi
IGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCit2YXIgdCA9IGFzeW5jX3Rlc3Qo
KSwKKyAgICBvcGVuX3JxID0gY3JlYXRlZGIodCkKKworb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQg
PSBmdW5jdGlvbigpIHt9CitvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChlKSB7CisgICAg
dmFyIGRiID0gZS50YXJnZXQucmVzdWx0CisgICAgYXNzZXJ0X3Rocm93cygKKyAgICAgICAgJ0lu
dmFsaWRTdGF0ZUVycm9yJywKKyAgICAgICAgZnVuY3Rpb24oKSB7IGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCdmYWlscycpIH0pCisgICAgdC5kb25lKCk7Cit9CisKKzwvc2NyaXB0PgorCis8ZGl2IGlk
PSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9y
ZTQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ4MjNl
OWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
IEBACisKK1BBU1MgSURCRGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUoKSAtIGF0dGVtcHQgdG8g
Y3JlYXRlIGFuIG9iamVjdCBzdG9yZSB0aGF0IGFscmVhZHkgZXhpc3RzICAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVP
YmplY3RTdG9yZTQuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJk
YXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTQuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmJiYzdmZmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNC5odG0KQEAgLTAs
MCArMSwyNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCRGF0YWJhc2UuY3JlYXRlT2Jq
ZWN0U3RvcmUoKSAtIGF0dGVtcHQgdG8gY3JlYXRlIGFuIG9iamVjdCBzdG9yZSB0aGF0IGFscmVh
ZHkgZXhpc3RzIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIg
aHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
c3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKK3ZhciB0ID0gYXN5bmNfdGVzdCgp
LAorICAgIG9wZW5fcnEgPSBjcmVhdGVkYih0KQorCitvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9
IGZ1bmN0aW9uKGUpIHsKKyAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQKKyAgICBkYi5jcmVh
dGVPYmplY3RTdG9yZSgiZHVwZSIpCisgICAgYXNzZXJ0X3Rocm93cygKKyAgICAgICAgJ0NvbnN0
cmFpbnRFcnJvcicsCisgICAgICAgIGZ1bmN0aW9uKCkgeyBkYi5jcmVhdGVPYmplY3RTdG9yZSgi
ZHVwZSIpIH0pCisKKyAgICAvLyBCb251cyB0ZXN0IGNyZWF0aW5nIGEgbmV3IG9iamVjdHN0b3Jl
IGFmdGVyIHRoZSBleGNlcHRpb24KKyAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgiZHVwZSAiKQor
ICAgIHQuZG9uZSgpCit9CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9j
cmVhdGVPYmplY3RTdG9yZTUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTUtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJkNjYyYjgKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0
ZU9iamVjdFN0b3JlNS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCRGF0
YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUoKSAtIG9iamVjdCBzdG9yZSdzIG5hbWUgYXBwZWFycyBp
biBkYXRhYmFzZSdzIGxpc3QgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNS5odG0gYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3Jl
NS5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2Q3YTkzOAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJh
c2VfY3JlYXRlT2JqZWN0U3RvcmU1Lmh0bQpAQCAtMCwwICsxLDMzIEBACis8IURPQ1RZUEUgaHRt
bD4KKzx0aXRsZT5JREJEYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgpIC0gb2JqZWN0IHN0b3Jl
J3MgbmFtZSBhcHBlYXJzIGluIGRhdGFiYXNlJ3MgbGlzdCA8L3RpdGxlPgorPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0
PgorCit2YXIgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICBvcGVuX3JxID0gY3JlYXRlZGIodCkKKwor
b3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgdmFyIGRiID0gZS50
YXJnZXQucmVzdWx0CisKKyAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgiTXkgY29vbCBvYmplY3Qg
c3RvcmUgbmFtZSIpCisgICAgYXNzZXJ0X3RydWUoCisgICAgICAgIGRiLm9iamVjdFN0b3JlTmFt
ZXMuY29udGFpbnMoIk15IGNvb2wgb2JqZWN0IHN0b3JlIG5hbWUiKSwKKyAgICAgICAgJ29iamVj
dFN0b3JlTmFtZXMuY29udGFpbnMnKQorfQorCitvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9u
KGUpIHsKKyAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQKKworICAgIGFzc2VydF90cnVlKAor
ICAgICAgICBkYi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCJNeSBjb29sIG9iamVjdCBzdG9y
ZSBuYW1lIiksCisgICAgICAgICdvYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zIChpbiBzdWNjZXNz
KScpCisgICAgdC5kb25lKCkKK30KKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFi
YXNlX2NyZWF0ZU9iamVjdFN0b3JlNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNi1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWRkZmM0ZQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2Vf
Y3JlYXRlT2JqZWN0U3RvcmU2LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJ
REJEYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgpIC0gYXR0ZW1wdCB0byBjcmVhdGUgYW4gb2Jq
ZWN0IHN0b3JlIHdpdGggYW4gaW52YWxpZCBrZXkgcGF0aCAgCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3Rv
cmU2Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2Vf
Y3JlYXRlT2JqZWN0U3RvcmU2Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4xZTNmNDAwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJkYXRhYmFzZV9jcmVhdGVPYmplY3RTdG9yZTYuaHRtCkBAIC0wLDAgKzEsMzAg
QEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3Jl
KCkgLSBhdHRlbXB0IHRvIGNyZWF0ZSBhbiBvYmplY3Qgc3RvcmUgd2l0aCBhbiBpbnZhbGlkIGtl
eSBwYXRoIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJl
Zj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3Vw
cG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKK3ZhciB0ID0gYXN5bmNfdGVzdCgpLAor
ICAgIG9wZW5fcnEgPSBjcmVhdGVkYih0KQorCitvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1
bmN0aW9uKGUpIHsKKyAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQKKworICAgIGFzc2VydF90
aHJvd3MoJ1N5bnRheEVycm9yJywgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBkYi5jcmVhdGVP
YmplY3RTdG9yZSgiaW52YWxpZGtleXBhdGgiLCB7IGtleVBhdGg6ICJJbnZhbGlkIEtleXBhdGgi
IH0pCisgICAgICAgIH0pCisKKyAgICBhc3NlcnRfdGhyb3dzKCdTeW50YXhFcnJvcicsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoImludmFsaWRrZXlwYXRo
IiwgeyBhdXRvSW5jcmVtZW50OiB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBrZXlQYXRoOiAiSW52YWxpZCBLZXlwYXRoIiB9KQorICAg
ICAgICB9KQorCisgICAgdC5kb25lKCkKK30KKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+
PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlNy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTczOWY4YwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0
YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU3LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKwor
UEFTUyBJREJEYXRhYmFzZS5jcmVhdGVPYmplY3RTdG9yZSgpIC0gY3JlYXRlIGFuIG9iamVjdCBz
dG9yZSB3aXRoIGFuIHVua25vd24gb3B0aW9uYWwgcGFyYW1ldGVyIAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVj
dFN0b3JlNy5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFi
YXNlX2NyZWF0ZU9iamVjdFN0b3JlNy5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMTI2YTMwOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU3Lmh0bQpAQCAtMCwwICsx
LDI1IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJEYXRhYmFzZS5jcmVhdGVPYmplY3RT
dG9yZSgpIC0gY3JlYXRlIGFuIG9iamVjdCBzdG9yZSB3aXRoIGFuIHVua25vd24gb3B0aW9uYWwg
cGFyYW1ldGVyIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5o
b0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKwordmFyIHQgPSBhc3lu
Y190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDogMTAwMDB9KSwKKyAgICBvcGVuX3JxID0g
Y3JlYXRlZGIodCkKKworb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Cisg
ICAgdmFyIGRiID0gZS50YXJnZXQucmVzdWx0CisgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoIndp
dGggdW5rbm93biBwYXJhbSIsIHsgcGFyYW1ldGVyOiAwIH0pOworCisgICAgdC5kb25lKCkKK30K
KworPC9zY3JpcHQ+CisKKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KKworCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVj
dFN0b3JlOC1wYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU4LXBhcmFtZXRlcnMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJlYzI2YzkKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRh
dGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlOC1wYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDE0IEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmVQYXJhbWV0ZXJzIC0gYXV0b0luYyB0cnVl
IAorUEFTUyBJREJPYmplY3RTdG9yZVBhcmFtZXRlcnMgLSBhdXRvSW5jIHRydWUsIGtleVBhdGgg
bnVsbCAKK1BBU1MgSURCT2JqZWN0U3RvcmVQYXJhbWV0ZXJzIC0gYXV0b0luYyB0cnVlLCBrZXlQ
YXRoIHVuZGVmaW5lZCAKK1BBU1MgSURCT2JqZWN0U3RvcmVQYXJhbWV0ZXJzIC0gYXV0b0luYyB0
cnVlLCBrZXlQYXRoIHN0cmluZyAKK1BBU1MgSURCT2JqZWN0U3RvcmVQYXJhbWV0ZXJzIC0gYXV0
b0luYyBmYWxzZSwga2V5UGF0aCBlbXB0eSAKK1BBU1MgSURCT2JqZWN0U3RvcmVQYXJhbWV0ZXJz
IC0gYXV0b0luYyBmYWxzZSwga2V5UGF0aCBhcnJheSAKK1BBU1MgSURCT2JqZWN0U3RvcmVQYXJh
bWV0ZXJzIC0gYXV0b0luYyBmYWxzZSwga2V5UGF0aCBzdHJpbmcgCitQQVNTIElEQk9iamVjdFN0
b3JlUGFyYW1ldGVycyAtIGtleVBhdGggZW1wdHkgCitQQVNTIElEQk9iamVjdFN0b3JlUGFyYW1l
dGVycyAtIGtleVBhdGggYXJyYXkgCitQQVNTIElEQk9iamVjdFN0b3JlUGFyYW1ldGVycyAtIGtl
eVBhdGggc3RyaW5nIAorUEFTUyBJREJPYmplY3RTdG9yZVBhcmFtZXRlcnMgLSBrZXlQYXRoIG51
bGwgCitQQVNTIElEQk9iamVjdFN0b3JlUGFyYW1ldGVycyAtIGtleVBhdGggdW5kZWZpbmVkIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFi
YXNlX2NyZWF0ZU9iamVjdFN0b3JlOC1wYXJhbWV0ZXJzLmh0bSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU4LXBhcmFtZXRl
cnMuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQzOGM1MmMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFi
YXNlX2NyZWF0ZU9iamVjdFN0b3JlOC1wYXJhbWV0ZXJzLmh0bQpAQCAtMCwwICsxLDM5IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RT
dG9yZVBhcmFtZXRlcnM8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpv
ZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxtZXRhIG5hbWU9
dGltZW91dCBjb250ZW50PWxvbmc+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMi
Pjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIGZ1bmN0aW9uIG9wdGlvbmFsUGFyYW1ldGVycyhk
ZXNjLCBwYXJhbXMpIHsKKyAgICAgICAgdmFyIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxl
ICsgIiAtICIgKyBkZXNjKTsKKworICAgICAgICBjcmVhdGVkYih0KS5vbnVwZ3JhZGVuZWVkZWQg
PSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBlLnRhcmdldC5yZXN1bHQuY3JlYXRlT2JqZWN0
U3RvcmUoInN0b3JlIiwgcGFyYW1zKTsKKworICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAg
ICAgIH07CisgICAgfQorCisKKyAgICBvcHRpb25hbFBhcmFtZXRlcnMoImF1dG9JbmMgdHJ1ZSIs
ICAgICAgICAgICAgICAgICAgICB7YXV0b0luY3JlbWVudDogdHJ1ZX0pOworICAgIG9wdGlvbmFs
UGFyYW1ldGVycygiYXV0b0luYyB0cnVlLCBrZXlQYXRoIG51bGwiLCAgICAgIHthdXRvSW5jcmVt
ZW50OiB0cnVlLCAga2V5UGF0aDogbnVsbH0pOworICAgIG9wdGlvbmFsUGFyYW1ldGVycygiYXV0
b0luYyB0cnVlLCBrZXlQYXRoIHVuZGVmaW5lZCIsIHthdXRvSW5jcmVtZW50OiB0cnVlLCAga2V5
UGF0aDogdW5kZWZpbmVkfSk7CisgICAgb3B0aW9uYWxQYXJhbWV0ZXJzKCJhdXRvSW5jIHRydWUs
IGtleVBhdGggc3RyaW5nIiwgICAge2F1dG9JbmNyZW1lbnQ6IHRydWUsICBrZXlQYXRoOiAiYSJ9
KTsKKworICAgIG9wdGlvbmFsUGFyYW1ldGVycygiYXV0b0luYyBmYWxzZSwga2V5UGF0aCBlbXB0
eSIsICB7YXV0b0luY3JlbWVudDogZmFsc2UsIGtleVBhdGg6ICIifSk7CisgICAgb3B0aW9uYWxQ
YXJhbWV0ZXJzKCJhdXRvSW5jIGZhbHNlLCBrZXlQYXRoIGFycmF5IiwgIHthdXRvSW5jcmVtZW50
OiBmYWxzZSwga2V5UGF0aDogWyJoIiwgImoiXX0pOworICAgIG9wdGlvbmFsUGFyYW1ldGVycygi
YXV0b0luYyBmYWxzZSwga2V5UGF0aCBzdHJpbmciLCB7YXV0b0luY3JlbWVudDogZmFsc2UsIGtl
eVBhdGg6ICJhYmMifSk7CisKKyAgICBvcHRpb25hbFBhcmFtZXRlcnMoImtleVBhdGggZW1wdHki
LCAgICAge2tleVBhdGg6ICIifSk7CisgICAgb3B0aW9uYWxQYXJhbWV0ZXJzKCJrZXlQYXRoIGFy
cmF5IiwgICAgIHtrZXlQYXRoOiBbImEiLCJiIl19KTsKKyAgICBvcHRpb25hbFBhcmFtZXRlcnMo
ImtleVBhdGggc3RyaW5nIiwgICAge2tleVBhdGg6ICJhYmMifSk7CisgICAgb3B0aW9uYWxQYXJh
bWV0ZXJzKCJrZXlQYXRoIG51bGwiLCAgICAgIHtrZXlQYXRoOiBudWxsfSk7CisgICAgb3B0aW9u
YWxQYXJhbWV0ZXJzKCJrZXlQYXRoIHVuZGVmaW5lZCIsIHtrZXlQYXRoOiB1bmRlZmluZWR9KTsK
KworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3Jl
OS1pbnZhbGlkcGFyYW1ldGVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlOS1pbnZhbGlkcGFyYW1l
dGVycy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGNk
NWJiYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU5LWludmFsaWRwYXJhbWV0ZXJzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKworUEFTUyBjcmVhdGVPYmplY3RTdG9yZTogSW52YWxp
ZCBvcHRpb25hbFBhcmFtZXRlcnMgLSBhdXRvSW5jIGFuZCBlbXB0eSBrZXlQYXRoIAorUEFTUyBj
cmVhdGVPYmplY3RTdG9yZTogSW52YWxpZCBvcHRpb25hbFBhcmFtZXRlcnMgLSBhdXRvSW5jIGFu
ZCBrZXlQYXRoIGFycmF5IAorUEFTUyBjcmVhdGVPYmplY3RTdG9yZTogSW52YWxpZCBvcHRpb25h
bFBhcmFtZXRlcnMgLSBhdXRvSW5jIGFuZCBrZXlQYXRoIGFycmF5IDIgCitQQVNTIGNyZWF0ZU9i
amVjdFN0b3JlOiBJbnZhbGlkIG9wdGlvbmFsUGFyYW1ldGVycyAtIGF1dG9JbmMgYW5kIGtleVBh
dGggb2JqZWN0IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9iamVjdFN0b3JlOS1pbnZhbGlkcGFyYW1ldGVycy5odG0g
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2NyZWF0ZU9i
amVjdFN0b3JlOS1pbnZhbGlkcGFyYW1ldGVycy5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uYTU2MjVlMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfY3JlYXRlT2JqZWN0U3RvcmU5LWludmFsaWRw
YXJhbWV0ZXJzLmh0bQpAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNo
YXJzZXQ9dXRmLTg+Cis8dGl0bGU+Y3JlYXRlT2JqZWN0U3RvcmU6IEludmFsaWQgb3B0aW9uYWxQ
YXJhbWV0ZXJzPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2Rpbmhv
QG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBpbnZh
bGlkX29wdGlvbmFsUGFyYW1ldGVycyhkZXNjLCBwYXJhbXMpIHsKKyAgICAgICAgdmFyIHQgPSBh
c3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtICIgKyBkZXNjKTsKKworICAgICAgICBjcmVh
dGVkYih0KS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3Nl
cnRfdGhyb3dzKG51bGwsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGUudGFyZ2V0LnJl
c3VsdC5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCBwYXJhbXMpOworICAgICAgICAgICAgfSk7
CisKKyAgICAgICAgICAgIHRoaXMuZG9uZSgpOworICAgICAgICB9OworICAgIH0KKworICAgIGlu
dmFsaWRfb3B0aW9uYWxQYXJhbWV0ZXJzKCJhdXRvSW5jIGFuZCBlbXB0eSBrZXlQYXRoIiwge2F1
dG9JbmNyZW1lbnQ6IHRydWUsIGtleVBhdGg6ICIifSk7CisgICAgaW52YWxpZF9vcHRpb25hbFBh
cmFtZXRlcnMoImF1dG9JbmMgYW5kIGtleVBhdGggYXJyYXkiLCB7YXV0b0luY3JlbWVudDogdHJ1
ZSwga2V5UGF0aDogW119KTsKKyAgICBpbnZhbGlkX29wdGlvbmFsUGFyYW1ldGVycygiYXV0b0lu
YyBhbmQga2V5UGF0aCBhcnJheSAyIiwge2F1dG9JbmNyZW1lbnQ6IHRydWUsIGtleVBhdGg6IFsi
aGV5Il19KTsKKyAgICBpbnZhbGlkX29wdGlvbmFsUGFyYW1ldGVycygiYXV0b0luYyBhbmQga2V5
UGF0aCBvYmplY3QiLCB7YXV0b0luY3JlbWVudDogdHJ1ZSwga2V5UGF0aDoge2E6ImhleSIsIGI6
Mn19KTsKKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9kZWxldGVPYmplY3RT
dG9yZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5hZTU2YTA5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9kZWxldGVPYmplY3RTdG9yZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCRGF0YWJhc2UuZGVsZXRlT2Jq
ZWN0U3RvcmUoKSAtIG9iamVjdCBzdG9yZSdzIG5hbWUgaXMgcmVtb3ZlZCBmcm9tIGRhdGFiYXNl
J3MgbGlzdCAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmUuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9kZWxldGVPYmplY3RTdG9yZS5odG0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjY3ZmMwZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfZGVsZXRlT2Jq
ZWN0U3RvcmUuaHRtCkBAIC0wLDAgKzEsMjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklE
QkRhdGFiYXNlLmRlbGV0ZU9iamVjdFN0b3JlKCkgLSBvYmplY3Qgc3RvcmUncyBuYW1lIGlzIHJl
bW92ZWQgZnJvbSBkYXRhYmFzZSdzIGxpc3QgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0
aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKwordmFy
IHQgPSBhc3luY190ZXN0KCksCisgICAgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpCisKK29wZW5fcnEu
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgIHZhciBkYiA9IGUudGFyZ2V0LnJl
c3VsdAorCisgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoImRlbGV0ZWQiKTsKKyAgICBkYi5kZWxl
dGVPYmplY3RTdG9yZSgiZGVsZXRlZCIpOworICAgIGFzc2VydF9mYWxzZShkYi5vYmplY3RTdG9y
ZU5hbWVzLmNvbnRhaW5zKCJkZWxldGVkIikpCisKKyAgICB0LmRvbmUoKQorfQorCis8L3Njcmlw
dD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmUyLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfZGVs
ZXRlT2JqZWN0U3RvcmUyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi42ZGM3ZDYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9kZWxldGVPYmplY3RTdG9yZTItZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkRhdGFiYXNlLmRlbGV0ZU9iamVjdFN0b3JlKCkg
LSBhdHRlbXB0IHRvIHJlbW92ZSBhbiBvYmplY3Qgc3RvcmUgb3V0c2lkZSBvZiBhIHZlcnNpb24g
Y2hhbmdlIHRyYW5zYWN0aW9uICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9kZWxldGVPYmplY3RTdG9yZTIuaHRtIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9kZWxldGVPYmplY3RTdG9y
ZTIuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0YTg3ZWMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFi
YXNlX2RlbGV0ZU9iamVjdFN0b3JlMi5odG0KQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIGh0
bWw+Cis8dGl0bGU+SURCRGF0YWJhc2UuZGVsZXRlT2JqZWN0U3RvcmUoKSAtIGF0dGVtcHQgdG8g
cmVtb3ZlIGFuIG9iamVjdCBzdG9yZSBvdXRzaWRlIG9mIGEgdmVyc2lvbiBjaGFuZ2UgdHJhbnNh
Y3Rpb24gPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVm
PSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBw
b3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKwordmFyIHQgPSBhc3luY190ZXN0KCksCisg
ICAgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworCitvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1
bmN0aW9uKGUpCit7CisgICAgdmFyIGRiID0gZS50YXJnZXQucmVzdWx0LAorICAgICAgICBvYmpT
dG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJkZWxldGVfb3V0c2lkZSIpOworCisgICAgZS50
YXJnZXQudHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uIChlKQor
ICAgIHsKKyAgICAgICAgYXNzZXJ0X3Rocm93cygnSW52YWxpZFN0YXRlRXJyb3InLAorICAgICAg
ICAgICAgZnVuY3Rpb24oKSB7IGRiLmRlbGV0ZU9iamVjdFN0b3JlKCJkZWxldGVfb3V0c2lkZSIp
OyB9KTsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfSk7Cit9CisKKzwvc2NyaXB0PgorCisKKzxk
aXYgaWQ9ImxvZyI+PC9kaXY+CisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9kZWxldGVPYmplY3RTdG9yZTMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9kZWxldGVP
YmplY3RTdG9yZTMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjBjNGU2ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlMy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzIEBACisKK1BBU1MgSURCRGF0YWJhc2UuZGVsZXRlT2JqZWN0U3RvcmUoKSAtIGF0
dGVtcHQgdG8gcmVtb3ZlIGFuIG9iamVjdCBzdG9yZSB0aGF0IGRvZXMgbm90IGV4aXN0ICAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFz
ZV9kZWxldGVPYmplY3RTdG9yZTMuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJkYXRhYmFzZV9kZWxldGVPYmplY3RTdG9yZTMuaHRtCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjA0OTdjMTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3JlMy5o
dG0KQEAgLTAsMCArMSwyMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCRGF0YWJhc2Uu
ZGVsZXRlT2JqZWN0U3RvcmUoKSAtIGF0dGVtcHQgdG8gcmVtb3ZlIGFuIG9iamVjdCBzdG9yZSB0
aGF0IGRvZXMgbm90IGV4aXN0IDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1p
Y3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKK3ZhciB0ID0gYXN5
bmNfdGVzdCgpLAorICAgIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKworb3Blbl9ycS5vbnVwZ3Jh
ZGVuZWVkZWQgPSBmdW5jdGlvbihlKQoreworICAgIHZhciBkYiA9IGUudGFyZ2V0LnJlc3VsdDsK
KyAgICBhc3NlcnRfdGhyb3dzKCdOb3RGb3VuZEVycm9yJywKKyAgICAgICAgZnVuY3Rpb24oKSB7
IGRiLmRlbGV0ZU9iamVjdFN0b3JlKCd3aGF0ZXZlcicpOyB9KTsKKyAgICB0LmRvbmUoKTsKK30K
KworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2RlbGV0ZU9iamVjdFN0b3Jl
NC1ub3RfcmV1c2VkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiZGF0YWJhc2VfZGVsZXRlT2JqZWN0U3RvcmU0LW5vdF9yZXVzZWQtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0NzY4MGYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNl
X2RlbGV0ZU9iamVjdFN0b3JlNC1ub3RfcmV1c2VkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMg
QEAKKworRkFJTCBJREJEYXRhYmFzZS5kZWxldGVPYmplY3RTdG9yZSgpIC0gdGhlIG9iamVjdCBz
dG9yZSBpcyBub3QgcmV1c2VkIGFzc2VydF9hcnJheV9lcXVhbHM6IGtleXMgcHJvcGVydHkgMSwg
ZXhwZWN0ZWQgNiBidXQgZ290IDEKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9kZWxldGVPYmplY3RTdG9yZTQtbm90X3JldXNlZC5o
dG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX2RlbGV0
ZU9iamVjdFN0b3JlNC1ub3RfcmV1c2VkLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4zZGE3ODlhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV9kZWxldGVPYmplY3RTdG9yZTQtbm90X3JldXNlZC5o
dG0KQEAgLTAsMCArMSw0MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04
PgorPHRpdGxlPklEQkRhdGFiYXNlLmRlbGV0ZU9iamVjdFN0b3JlKCkgLSB0aGUgb2JqZWN0IHN0
b3JlIGlzIG5vdCByZXVzZWQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0
bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCit2YXIgdCA9
IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pLAorICAgIGtleXMg
PSBbXSwKKyAgICBvcGVuX3JxID0gY3JlYXRlZGIodCkKKworb3Blbl9ycS5vbnVwZ3JhZGVuZWVk
ZWQgPSBmdW5jdGlvbihlKSB7CisgICAgdmFyIGRiID0gZS50YXJnZXQucmVzdWx0CisKKyAgICB2
YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgicmVzdXJyZWN0ZWQiLCB7IGF1dG9J
bmNyZW1lbnQ6IHRydWUsIGtleVBhdGg6ICJrIiB9KTsKKyAgICBvYmpTdG9yZS5hZGQoe2s6NX0p
Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsga2V5cy5wdXNoKGUudGFyZ2V0LnJlc3VsdCk7IH0K
KyAgICBvYmpTdG9yZS5hZGQoe30pLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsga2V5cy5wdXNo
KGUudGFyZ2V0LnJlc3VsdCk7IH0KKyAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaWR4IiwgImki
KTsKKyAgICBhc3NlcnRfdHJ1ZShvYmpTdG9yZS5pbmRleE5hbWVzLmNvbnRhaW5zKCJpZHgiKSk7
CisgICAgYXNzZXJ0X2VxdWFscyhvYmpTdG9yZS5rZXlQYXRoLCAiayIsICJrZXlQYXRoIik7CisK
KyAgICBkYi5kZWxldGVPYmplY3RTdG9yZSgicmVzdXJyZWN0ZWQiKTsKKworICAgIHZhciBvYmpT
dG9yZTIgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgicmVzdXJyZWN0ZWQiLCB7IGF1dG9JbmNyZW1l
bnQ6IHRydWUgfSk7CisgICAgb2JqU3RvcmUyLmFkZCgiVW5pY29ybnMnUid1cyIpLm9uc3VjY2Vz
cyA9IGZ1bmN0aW9uKGUpIHsga2V5cy5wdXNoKGUudGFyZ2V0LnJlc3VsdCk7IH07CisgICAgYXNz
ZXJ0X2ZhbHNlKG9ialN0b3JlMi5pbmRleE5hbWVzLmNvbnRhaW5zKCJpZHgiKSwgImluZGV4IGV4
aXN0IG9uIG5ldyBvYmpzdG9yZSIpOworICAgIGFzc2VydF9lcXVhbHMob2JqU3RvcmUyLmtleVBh
dGgsIG51bGwsICJrZXlQYXRoIik7CisKKyAgICBhc3NlcnRfdGhyb3dzKCJOb3RGb3VuZEVycm9y
IiwgZnVuY3Rpb24oKSB7IG9ialN0b3JlMi5pbmRleCgiaWR4Iik7IH0pOworfQorCitvcGVuX3Jx
Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGtleXMs
IFs1LCA2LCAxXSwgImtleXMiKTsKKyAgICB0LmRvbmUoKTsKK30KKworPC9zY3JpcHQ+CisKKzxk
aXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb24tZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFmNTA2YTcKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFi
YXNlX3RyYW5zYWN0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJE
YXRhYmFzZS50cmFuc2FjdGlvbigpIC0gYXR0ZW1wdCB0byBvcGVuIGEgdHJhbnNhY3Rpb24gd2l0
aCBpbnZhbGlkIHNjb3BlIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uLmh0bSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb24uaHRtCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM4YzJjOWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uLmh0
bQpAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJEYXRhYmFzZS50
cmFuc2FjdGlvbigpIC0gYXR0ZW1wdCB0byBvcGVuIGEgdHJhbnNhY3Rpb24gd2l0aCBpbnZhbGlk
IHNjb3BlPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVm
PSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBw
b3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKwordmFyIGRiLAorICB0ID0gYXN5bmNfdGVz
dCgpLAorICBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisKK29wZW5fcnEub251cGdyYWRlbmVlZGVk
ID0gZnVuY3Rpb24oKSB7fTsKK29wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAg
IGRiID0gZS50YXJnZXQucmVzdWx0OworCisgICAgYXNzZXJ0X3Rocm93cygnTm90Rm91bmRFcnJv
cicsIGZ1bmN0aW9uKCkgeyBkYi50cmFuc2FjdGlvbignbm9uLWV4aXN0aW5nJyk7IH0pOworICAg
IHQuZG9uZSgpOworfTsKKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX3Ry
YW5zYWN0aW9uMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uMi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uMTY1MTc3MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb24yLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJEYXRhYmFzZS50cmFuc2FjdGlvbigp
IC0gb3BlbmluZyBhIHRyYW5zYWN0aW9uIGRlZmF1bHRzIHRvIGEgcmVhZC1vbmx5IG1vZGUgIAor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFi
YXNlX3RyYW5zYWN0aW9uMi5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uMi5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMTkyZTQyNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb24yLmh0bQpAQCAtMCwwICsxLDI3
IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJEYXRhYmFzZS50cmFuc2FjdGlvbigpIC0g
b3BlbmluZyBhIHRyYW5zYWN0aW9uIGRlZmF1bHRzIHRvIGEgcmVhZC1vbmx5IG1vZGUgPC90aXRs
ZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3
Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3Nj
cmlwdD4KKworPHNjcmlwdD4KKwordmFyIGRiLAorICB0ID0gYXN5bmNfdGVzdCgpLAorICBvcGVu
X3JxID0gY3JlYXRlZGIodCk7CisKK29wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZSkgeworICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgIGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCdyZWFkb25seScpOworfTsKK29wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAg
IHZhciB0eG4gPSBkYi50cmFuc2FjdGlvbigncmVhZG9ubHknKTsKKyAgICBhc3NlcnRfZXF1YWxz
KHR4bi5tb2RlLCAicmVhZG9ubHkiLCAndHhuLm1vZGUnKTsKKworICAgIHQuZG9uZSgpOworfTsK
KworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uMy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNl
X3RyYW5zYWN0aW9uMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNjVhZTQzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb24zLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMgQEAKKworUEFTUyBJREJEYXRhYmFzZS50cmFuc2FjdGlvbigpIC0gYXR0ZW1wdCB0byBv
cGVuIGEgdHJhbnNhY3Rpb24gZnJvbSBjbG9zZWQgZGF0YWJhc2UgY29ubmVjdGlvbiAgCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2Vf
dHJhbnNhY3Rpb24zLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
ZGF0YWJhc2VfdHJhbnNhY3Rpb24zLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4xMDg3YWVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjMuaHRtCkBAIC0wLDAgKzEsMjggQEAK
KzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkRhdGFiYXNlLnRyYW5zYWN0aW9uKCkgLSBhdHRl
bXB0IHRvIG9wZW4gYSB0cmFuc2FjdGlvbiBmcm9tIGNsb3NlZCBkYXRhYmFzZSBjb25uZWN0aW9u
IDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0
cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5q
cyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rl
c3QoKSwKKyAgICAgIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKworICAgIG9wZW5fcnEub251cGdy
YWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsK
KyAgICAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3Rlc3QnKTsKKyAgICB9OworCisgICAgb3Bl
bl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiLmNsb3NlKCk7CisKKyAg
ICAgICAgYXNzZXJ0X3Rocm93cygnSW52YWxpZFN0YXRlRXJyb3InLAorICAgICAgICAgICAgZnVu
Y3Rpb24oKSB7IGRiLnRyYW5zYWN0aW9uKCd0ZXN0Jyk7IH0pOworCisgICAgICAgIHQuZG9uZSgp
OworICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rp
b240LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
ZGF0YWJhc2VfdHJhbnNhY3Rpb240LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4yOGQxYmU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlvbjQtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkRhdGFiYXNlLnRyYW5zYWN0aW9uKCkgLSBhdHRl
bXB0IHRvIG9wZW4gYSB0cmFuc2FjdGlvbiB3aXRoIGludmFsaWQgbW9kZSAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2Fj
dGlvbjQuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFz
ZV90cmFuc2FjdGlvbjQuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjIx
MjBmMDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uNC5odG0KQEAgLTAsMCArMSwyNiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8dGl0bGU+SURCRGF0YWJhc2UudHJhbnNhY3Rpb24oKSAtIGF0dGVtcHQgdG8g
b3BlbiBhIHRyYW5zYWN0aW9uIHdpdGggaW52YWxpZCBtb2RlIDwvdGl0bGU+Cis8bGluayByZWw9
ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0
aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4K
KworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50
aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSksCisgICAgICBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisK
KyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIg
PSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCd0ZXN0Jyk7
CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAg
ICBhc3NlcnRfdGhyb3dzKHsgbmFtZTogJ1R5cGVFcnJvcicgfSwKKyAgICAgICAgICAgIGZ1bmN0
aW9uKCkgeyBkYi50cmFuc2FjdGlvbigndGVzdCcsICd3aGF0ZXZlcicpOyB9KTsKKworICAgICAg
ICB0LmRvbmUoKTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmRhdGFiYXNl
X3RyYW5zYWN0aW9uNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uNS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGQwYzJhZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZGF0YWJhc2VfdHJhbnNhY3Rpb241LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworRkFJTCBJREJEYXRhYmFzZS50cmFuc2FjdGlv
bigpIC0gSWYgc3RvcmVOYW1lcyBpcyBhbiBlbXB0eSBsaXN0LCB0aGUgaW1wbGVtZW50YXRpb24g
bXVzdCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRBY2Nlc3NFcnJvciBhc3Nl
cnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgeyBkYi50cmFuc2FjdGlvbihbXSk7IH0i
IHRocmV3IG9iamVjdCAiRXJyb3I6IE5vdEZvdW5kRXJyb3I6IERPTSBJREJEYXRhYmFzZSBFeGNl
cHRpb24gOCIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gSW52YWxpZEFjY2Vzc0Vycm9yOiBw
cm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gOCwgZXhwZWN0ZWQgMTUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90cmFuc2FjdGlv
bjUuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJkYXRhYmFzZV90
cmFuc2FjdGlvbjUuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlZjZk
MmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmRhdGFiYXNlX3RyYW5zYWN0aW9uNS5odG0KQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBF
IGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCRGF0YWJhc2UudHJhbnNh
Y3Rpb24oKSAtIElmIHN0b3JlTmFtZXMgaXMgYW4gZW1wdHkgbGlzdCwgdGhlIGltcGxlbWVudGF0
aW9uIG11c3QgdGhyb3cgYSBET01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkQWNjZXNzRXJyb3I8
L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3
dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3Jn
L2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkRhdGFiYXNl
LXRyYW5zYWN0aW9uLUlEQlRyYW5zYWN0aW9uLURPTVN0cmluZy1zZXF1ZW5jZS1ET01TdHJpbmct
LXN0b3JlTmFtZXMtSURCVHJhbnNhY3Rpb25Nb2RlLW1vZGUiPgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0
PgordmFyIGRiLAorICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgb3Blbl9ycSA9IGNyZWF0ZWRi
KHQpOworCitvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKCkge307CitvcGVuX3Jx
Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAg
ICBhc3NlcnRfdGhyb3dzKCdJbnZhbGlkQWNjZXNzRXJyb3InLCBmdW5jdGlvbigpIHsgZGIudHJh
bnNhY3Rpb24oW10pOyB9KTsKKyAgICB0LmRvbmUoKTsKK307Cis8L3NjcmlwdD4KKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X2NtcC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rv
cnlfY21wLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4w
Y2QwNGFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJmYWN0b3J5X2NtcC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1Mg
SURCRmFjdG9yeS5jbXAoKSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJmYWN0b3J5X2NtcC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmZhY3RvcnlfY21wLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi45NTBhOWMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X2NtcC5odG0KQEAgLTAsMCArMSwyMSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPklEQkZhY3RvcnkuY21wKCkg
LSBjb21wYXJlZCBrZXlzIHJldHVybiBjb3JyZWN0IHZhbHVlPC90aXRsZT4KKzxsaW5rIHJlbD0i
YXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20i
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+
CisgICAgdGVzdChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGdyZWF0ZXIgPSB3aW5kb3cuaW5k
ZXhlZERCLmNtcCgyLCAxKTsKKyAgICAgICAgdmFyIGVxdWFsID0gd2luZG93LmluZGV4ZWREQi5j
bXAoMiwgMik7CisgICAgICAgIHZhciBsZXNzID0gd2luZG93LmluZGV4ZWREQi5jbXAoMSwgMik7
CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhncmVhdGVyLCAxLCAiZ3JlYXRlciIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKGVxdWFsLCAwLCAiZXF1YWwiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhsZXNzLCAtMSwgImxlc3MiKTsKKyAgICB9LCAiSURCRmFjdG9yeS5jbXAoKSIpOworPC9zY3Jp
cHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X2NtcDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X2NtcDItZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzMzA3NzIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3RvcnlfY21wMi1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisKK1BBU1MgSURCRmFjdG9yeS5jbXAoKSAtIG5v
IGFyZ3VtZW50IAorUEFTUyBJREJGYWN0b3J5LmNtcCgpIC0gbnVsbCAKK1BBU1MgSURCRmFjdG9y
eS5jbXAoKSAtIE5hTiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJmYWN0b3J5X2NtcDIuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJmYWN0b3J5X2NtcDIuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjg5MzlkZDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmZhY3RvcnlfY21wMi5odG0KQEAgLTAsMCArMSw0MSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCRmFjdG9yeS5jbXAo
KSAtIGludmFsaWQga2V5PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwi
IGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwj
d2lkbC1JREJGYWN0b3J5LWNtcC1zaG9ydC1hbnktZmlyc3QtYW55LXNlY29uZCI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKzxkaXYgaWQ9bG9nPjwvZGl2Pgor
PHNjcmlwdD4KKyAgICB0ZXN0KCBmdW5jdGlvbigpIHsKKyAgICAgICAgYXNzZXJ0X3Rocm93cyhu
ZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaW5kZXhlZERCLmNtcCgp
OworICAgICAgICB9KTsKKyAgICB9LCAiSURCRmFjdG9yeS5jbXAoKSAtIG5vIGFyZ3VtZW50Iik7
CisKKyAgICB0ZXN0KCBmdW5jdGlvbigpIHsKKyAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVy
cm9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpbmRleGVkREIuY21wKG51bGwsIG51bGwp
OworICAgICAgICB9KTsKKyAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICBpbmRleGVkREIuY21wKDEsIG51bGwpOworICAgICAgICB9KTsK
KyAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAg
ICAgICBpbmRleGVkREIuY21wKG51bGwsIDEpOworICAgICAgICB9KTsKKyAgICB9LCAiSURCRmFj
dG9yeS5jbXAoKSAtIG51bGwiKTsKKworICAgIHRlc3QoIGZ1bmN0aW9uKCkgeworICAgICAgICBh
c3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGluZGV4
ZWREQi5jbXAoTmFOLCBOYU4pOworICAgICAgICB9KTsKKyAgICAgICAgYXNzZXJ0X3Rocm93cygi
RGF0YUVycm9yIiwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBpbmRleGVkREIuY21wKDEsIE5h
Tik7CisgICAgICAgIH0pOworICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgIGluZGV4ZWREQi5jbXAoTmFOLCAxKTsKKyAgICAgICAgfSk7
CisgICAgfSwgIklEQkZhY3RvcnkuY21wKCkgLSBOYU4iKTsKKzwvc2NyaXB0PgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3RvcnlfZGVsZXRl
RGF0YWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi42NTRiZWU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJGYWN0b3J5LmRlbGV0ZURhdGFiYXNl
KCkgLSByZXF1ZXN0IGhhcyBubyBzb3VyY2UgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2UuaHRtIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNl
Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMDI4YTExCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5
X2RlbGV0ZURhdGFiYXNlLmh0bQpAQCAtMCwwICsxLDI1IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0
aXRsZT5JREJGYWN0b3J5LmRlbGV0ZURhdGFiYXNlKCkgLSByZXF1ZXN0IGhhcyBubyBzb3VyY2Ug
PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRw
Oi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+
PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYihhc3luY190
ZXN0KCksIHVuZGVmaW5lZCwgOSk7CisKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1
bmN0aW9uKGUpIHt9OworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAg
ICAgICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIGRiLmNsb3NlKCk7CisKKyAg
ICAgICAgdmFyIGRlbGV0ZV9ycSA9IHdpbmRvdy5pbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGIu
bmFtZSk7CisgICAgICAgIGRlbGV0ZV9ycS5vbmVycm9yID0gZmFpbCh0aGlzLCAiVW5leHBlY3Rl
ZCBkZWxldGVfcnEuZXJyb3IgZXZlbnQiKTsKKyAgICAgICAgZGVsZXRlX3JxLm9uc3VjY2VzcyA9
IHRoaXMuc3RlcF9mdW5jKCBmdW5jdGlvbiAoZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhlLnRhcmdldC5zb3VyY2UsIG51bGwsICJldmVudC50YXJnZXQuc291cmNlIikKKyAgICAgICAg
ICAgIHRoaXMuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBp
ZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2UyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZTItZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI3NzU0MTAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rv
cnlfZGVsZXRlRGF0YWJhc2UyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJ
REJGYWN0b3J5LmRlbGV0ZURhdGFiYXNlKCkgLSByZXN1bHQgb2YgdGhlIHJlcXVlc3QgaXMgc2V0
IHRvIHVuZGVmaW5lZCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlMi5odG0gYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2UyLmh0bQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYjhhNDRhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFi
YXNlMi5odG0KQEAgLTAsMCArMSwyNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCRmFj
dG9yeS5kZWxldGVEYXRhYmFzZSgpIC0gcmVzdWx0IG9mIHRoZSByZXF1ZXN0IGlzIHNldCB0byB1
bmRlZmluZWQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhy
ZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8bGluayByZWw9aGVscCBocmVmPSJodHRw
Oi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dp
ZGwtSURCRmFjdG9yeS1kZWxldGVEYXRhYmFzZS1JREJPcGVuREJSZXF1ZXN0LURPTVN0cmluZy1u
YW1lIj4KKzxtZXRhIG5hbWU9YXNzZXJ0IHRpdGxlPSJJZiB0aGUgc3RlcHMgYWJvdmUgYXJlIHN1
Y2Nlc3NmdWwsIHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHNldCB0aGUgcmVzdWx0IG9mIHRoZSBy
ZXF1ZXN0IHRvIHVuZGVmaW5lZCBhbmQgZmlyZSBhIHN1Y2Nlc3MgZXZlbnQgYXQgdGhlIHJlcXVl
c3QuIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxz
Y3JpcHQ+CisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYihhc3luY190ZXN0KCksIHVuZGVmaW5l
ZCwgOSk7CisKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHt9Owor
ICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgZGIgPSBl
LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIGRiLmNsb3NlKCk7CisKKyAgICAgICAgdmFyIGRlbGV0
ZV9ycSA9IHdpbmRvdy5pbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGIubmFtZSk7CisgICAgICAg
IGRlbGV0ZV9ycS5vbmVycm9yID0gZmFpbCh0aGlzLCAiVW5leHBlY3RlZCBkZWxldGVfcnEuZXJy
b3IgZXZlbnQiKTsKKyAgICAgICAgZGVsZXRlX3JxLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5j
KCBmdW5jdGlvbiAoZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1
bHQsIHVuZGVmaW5lZCwgInJlc3VsdCIpOworICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAg
ICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X2RlbGV0
ZURhdGFiYXNlMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmZhY3RvcnlfZGVsZXRlRGF0YWJhc2UzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi42Nzg2Mjg3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlMy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK0ZBSUwgSURCRmFjdG9yeS5kZWxldGVEYXRh
YmFzZSgpIC0gc3VjY2VzcyBldmVudCBhc3NlcnRfZXF1YWxzOiBvbGRWZXJzaW9uIGV4cGVjdGVk
IChudW1iZXIpIDkgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFi
YXNlMy5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlf
ZGVsZXRlRGF0YWJhc2UzLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43
MjNlYWNkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJmYWN0b3J5X2RlbGV0ZURhdGFiYXNlMy5odG0KQEAgLTAsMCArMSwzMyBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCRmFjdG9yeS5kZWxldGVEYXRhYmFzZSgpIC0gc3VjY2Vz
cyBldmVudDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0Bv
cGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPGxpbmsgcmVsPWhlbHAgaHJl
Zj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcu
aHRtbCN3aWRsLUlEQkZhY3RvcnktZGVsZXRlRGF0YWJhc2UtSURCT3BlbkRCUmVxdWVzdC1ET01T
dHJpbmctbmFtZSI+Cis8bWV0YSBuYW1lPWFzc2VydCB0aXRsZT0iSWYgdGhlIHN0ZXBzIGFib3Zl
IGFyZSBzdWNjZXNzZnVsLCB0aGUgaW1wbGVtZW50YXRpb24gbXVzdCBzZXQgdGhlIHJlc3VsdCBv
ZiB0aGUgcmVxdWVzdCB0byB1bmRlZmluZWQgYW5kIGZpcmUgYSBzdWNjZXNzIGV2ZW50IGF0IHRo
ZSByZXF1ZXN0LiBUaGUgZXZlbnQgbXVzdCBpbXBsZW1lbnQgdGhlIElEQlZlcnNpb25DaGFuZ2VF
dmVudCBpbnRlcmZhY2UgYW5kIGhhdmUgb2xkVmVyc2lvbiBzZXQgdG8gZGF0YWJhc2UgdmVyc2lv
biBhbmQgaGF2ZSB0aGUgbmV3VmVyc2lvbiBwcm9wZXJ0eSBzZXQgdG8gbnVsbC4iPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFy
IGRiCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYihhc3luY190ZXN0KGRvY3VtZW50LnRpdGxl
LCB7dGltZW91dDogMTAwMDB9KSwgdW5kZWZpbmVkLCA5KQorCisgICAgb3Blbl9ycS5vbnVwZ3Jh
ZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0Cisg
ICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCdvcycpCisgICAgfQorICAgIG9wZW5fcnEub25z
dWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYi5jbG9zZSgpCisKKyAgICAgICAgdmFy
IGRlbGV0ZV9ycSA9IHdpbmRvdy5pbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoZGIubmFtZSkKKyAg
ICAgICAgZGVsZXRlX3JxLm9uZXJyb3IgPSBmYWlsKHRoaXMsICJVbmV4cGVjdGVkIGRlbGV0ZV9y
cS5lcnJvciBldmVudCIpCisgICAgICAgIGRlbGV0ZV9ycS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBf
ZnVuYyggZnVuY3Rpb24gKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5vbGRWZXJz
aW9uLCA5LCAib2xkVmVyc2lvbiIpCisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUubmV3VmVy
c2lvbiwgbnVsbCwgIm5ld1ZlcnNpb24iKQorICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRh
cmdldC5yZXN1bHQsIHVuZGVmaW5lZCwgInJlc3VsdCIpCisgICAgICAgICAgICBhc3NlcnRfdHJ1
ZShlIGluc3RhbmNlb2YgSURCVmVyc2lvbkNoYW5nZUV2ZW50LCAiZSBpbnN0YW5jZW9mIElEQlZl
cnNpb25DaGFuZ2VFdmVudCIpCisgICAgICAgICAgICB0aGlzLmRvbmUoKQorICAgICAgICB9KQor
ICAgIH0KKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZTQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0
b3J5X2RlbGV0ZURhdGFiYXNlNC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZGE3OWEzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZTQtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNCBAQAorCitQQVNTIERlbGV0ZSBhbiBleGlzdGluZyBkYXRhYmFzZSAKK1BB
U1MgRGVsZXRlIGEgbm9uZXhpc3RhbnQgZGF0YWJhc2UgCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9kZWxldGVEYXRhYmFzZTQuaHRt
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X2RlbGV0ZURh
dGFiYXNlNC5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTQ4NGVlNwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
ZmFjdG9yeV9kZWxldGVEYXRhYmFzZTQuaHRtCkBAIC0wLDAgKzEsNTggQEAKKzwhRE9DVFlQRSBo
dG1sPgorPHRpdGxlPlRlc3QgZXZlbnRzIG9wZW5pbmcgYSBzZWNvbmQgZGF0YWJhc2Ugd2hlbiBv
bmUgY29ubmVjdGlvbiBpcyBvcGVuIGFscmVhZHk8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3Ii
IGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFs
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxkaXYg
aWQ9ImxvZyI+PC9kaXY+CisKKzxzY3JpcHQ+CisKKyAgICB2YXIgdCA9IGFzeW5jX3Rlc3QoIkRl
bGV0ZSBhbiBleGlzdGluZyBkYXRhYmFzZSIpOworCisgICAgdC5zdGVwKGZ1bmN0aW9uKCkgewor
ICAgICAgICB2YXIgb3BlbnJxID0gaW5kZXhlZERCLm9wZW4oJ2RiJywgMyk7CisKKyAgICAgICAg
b3BlbnJxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGUudGFy
Z2V0LnJlc3VsdC5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKTsKKyAgICAgICAgfTsKKyAgICAg
ICAgb3BlbnJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
ICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICAvLyBFcnJvcnMKKyAgICAg
ICAgICAgIGRiLm9udmVyc2lvbmNoYW5nZSA9IGZhaWwodCwgImRiLnZlcnNpb25jaGFuZ2UiKTsK
KyAgICAgICAgICAgIGRiLm9uZXJyb3IgPSBmYWlsKHQsICJkYi5lcnJvciIpOworICAgICAgICAg
ICAgZGIuYWJvcnQgPSBmYWlsKHQsICJkYi5hYm9ydCIpOworCisgICAgICAgICAgICBzZXRUaW1l
b3V0KHQuc3RlcF9mdW5jKFNlY29uZCksIDQpOworICAgICAgICAgICAgZGIuY2xvc2UoKTsKKyAg
ICAgICAgfSk7CisKKyAgICAgICAgLy8gRXJyb3JzCisgICAgICAgIG9wZW5ycS5vbmVycm9yID0g
ZmFpbCh0LCAib3Blbi5lcnJvciIpOworICAgICAgICBvcGVucnEub25ibG9ja2VkID0gZmFpbCh0
LCAib3Blbi5ibG9ja2VkIik7CisgICAgfSk7CisKKyAgICBmdW5jdGlvbiBTZWNvbmQoZSkgewor
ICAgICAgICB2YXIgZGVsZXRlcnEgPSBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoJ2RiJyk7CisK
KyAgICAgICAgZGVsZXRlcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeyB0LmRvbmUoKTsgfQor
CisgICAgICAgIGRlbGV0ZXJxLm9uZXJyb3IgPSBmYWlsKHQsICJkZWxldGUuZXJyb3IiKTsKKyAg
ICAgICAgZGVsZXRlcnEub25ibG9ja2VkID0gZmFpbCh0LCAiZGVsZXRlLmJsb2NrZWQiKTsKKyAg
ICAgICAgZGVsZXRlcnEub251cGdyYWRlbmVlZGVkID0gZmFpbCh0LCAiZGVsZXRlLnVwZ3JhZGVu
ZWVkZWQiKTsKKyAgICB9CisKKyAgICBhc3luY190ZXN0KCJEZWxldGUgYSBub25leGlzdGFudCBk
YXRhYmFzZSIpLnN0ZXAoZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgZGVsZXRlcnEgPSBpbmRl
eGVkREIuZGVsZXRlRGF0YWJhc2UoJ25vbmV4aXN0YW50Jyk7CisKKyAgICAgICAgZGVsZXRlcnEu
b25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeyB0aGlzLmRvbmUoKTsgfSk7
CisKKyAgICAgICAgZGVsZXRlcnEub25lcnJvciA9IGZhaWwodGhpcywgImRlbGV0ZS5lcnJvciIp
OworICAgICAgICBkZWxldGVycS5vbmJsb2NrZWQgPSBmYWlsKHRoaXMsICJkZWxldGUuYmxvY2tl
ZCIpOworICAgICAgICBkZWxldGVycS5vbnVwZ3JhZGVuZWVkZWQgPSBmYWlsKHRoaXMsICJkZWxl
dGUudXBncmFkZW5lZWRlZCIpOworICAgIH0pOworCis8L3NjcmlwdD4KKzwvc2NyaXB0PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29w
ZW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJm
YWN0b3J5X29wZW4tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmU5ZTk1NjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3Blbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisK
K1BBU1MgSURCRmFjdG9yeS5vcGVuKCkgLSByZXF1ZXN0IGhhcyBubyBzb3VyY2UgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVu
Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVu
Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYzk1ZTBlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5
X29wZW4uaHRtCkBAIC0wLDAgKzEsMTggQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkZh
Y3Rvcnkub3BlbigpIC0gcmVxdWVzdCBoYXMgbm8gc291cmNlPC90aXRsZT4KKzxsaW5rIHJlbD0i
YXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20i
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+
CisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYihhc3luY190ZXN0KCksIHVuZGVmaW5lZCwgOSk7
CisKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHt9OworICAgIG9w
ZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICBhc3NlcnRfZXF1YWxzKGUu
dGFyZ2V0LnNvdXJjZSwgbnVsbCwgInNvdXJjZSIpCisgICAgICAgIHRoaXMuZG9uZSgpOworICAg
IH0KKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPiA8L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuMTAuaHRtIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW4xMC5odG0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTA5Y2IyYgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuMTAu
aHRtCkBAIC0wLDAgKzEsOTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkZhY3Rvcnku
b3BlbigpIC0gZXJyb3IgaW4gdXBncmFkZW5lZWRlZCByZXNldHMgZGI8L3RpdGxlPgorPGxpbmsg
cmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBI
w7hydGhlIE9tZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0
PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwgZGIyOworICAgIHZhciBvcGVuX3JxID0gY3JlYXRl
ZGIoYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSksIHVuZGVmaW5l
ZCwgOSk7CisKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgdmFyIHN0ID0gZGIuY3JlYXRl
T2JqZWN0U3RvcmUoInN0b3JlIik7CisgICAgICAgIHN0LmNyZWF0ZUluZGV4KCJpbmRleCIsICJp
Iik7CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhkYi52ZXJzaW9uLCA5LCAiZmlyc3QgZGIudmVy
c2lvbiIpOworICAgICAgICBhc3NlcnRfdHJ1ZShkYi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5z
KCJzdG9yZSIpLCAib2JqZWN0U3RvcmVOYW1lcyBjb250YWlucyBzdG9yZSIpOworICAgICAgICBh
c3NlcnRfdHJ1ZShzdC5pbmRleE5hbWVzLmNvbnRhaW5zKCJpbmRleCIpLCAiaW5kZXhOYW1lcyBj
b250YWlucyBpbmRleCIpOworCisgICAgICAgIHN0LmFkZCh7aTogIkpvc2h1YSJ9LCAxKTsKKyAg
ICAgICAgc3QuYWRkKHtpOiAiSm9uYXMifSwgMik7CisgICAgfTsKKyAgICBvcGVuX3JxLm9uc3Vj
Y2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIuY2xvc2UoKTsKKyAgICAgICAgdmFyIG9w
ZW5fcnEyID0gd2luZG93LmluZGV4ZWREQi5vcGVuKGRiLm5hbWUsIDEwKTsKKyAgICAgICAgb3Bl
bl9ycTIub251cGdyYWRlbmVlZGVkID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAg
ICAgICAgICAgZGIyID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICBkYjIuY3JlYXRl
T2JqZWN0U3RvcmUoInN0b3JlMiIpOworCisgICAgICAgICAgICB2YXIgc3RvcmUgPSBvcGVuX3Jx
Mi50cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAgICAgc3RvcmUuY3Jl
YXRlSW5kZXgoImluZGV4MiIsICJpIik7CisKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZGIy
LnZlcnNpb24sIDEwLCAiZGIyLnZlcnNpb24iKTsKKworICAgICAgICAgICAgYXNzZXJ0X3RydWUo
ZGIyLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoInN0b3JlIiksICJzZWNvbmQgb2JqZWN0U3Rv
cmVOYW1lcyBjb250YWlucyBzdG9yZSIpOworICAgICAgICAgICAgYXNzZXJ0X3RydWUoZGIyLm9i
amVjdFN0b3JlTmFtZXMuY29udGFpbnMoInN0b3JlMiIpLCAic2Vjb25kIG9iamVjdFN0b3JlTmFt
ZXMgY29udGFpbnMgc3RvcmUyIik7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShzdG9yZS5pbmRl
eE5hbWVzLmNvbnRhaW5zKCJpbmRleCIpLCAic2Vjb25kIGluZGV4TmFtZXMgY29udGFpbnMgaW5k
ZXgiKTsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKHN0b3JlLmluZGV4TmFtZXMuY29udGFpbnMo
ImluZGV4MiIpLCAic2Vjb25kIGluZGV4TmFtZXMgY29udGFpbnMgaW5kZXgyIik7CisKKyAgICAg
ICAgICAgIHN0b3JlLmFkZCh7aTogIk9kaW4ifSwgMyk7CisgICAgICAgICAgICBzdG9yZS5wdXQo
e2k6ICJTaWNraW5nIn0sIDIpOworCisgICAgICAgICAgICBvcGVuX3JxMi50cmFuc2FjdGlvbi5h
Ym9ydCgpOworICAgICAgICB9KTsKKyAgICAgICAgb3Blbl9ycTIub25lcnJvciA9IHRoaXMuc3Rl
cF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZGIyLnZlcnNp
b24sIDksICJkYjIudmVyc2lvbiBhZnRlciBlcnJvciIpOworICAgICAgICAgICAgYXNzZXJ0X3Ry
dWUoZGIyLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoInN0b3JlIiksICJvYmplY3RTdG9yZU5h
bWVzIGNvbnRhaW5zIHN0b3JlIGFmdGVyIGVycm9yIik7CisgICAgICAgICAgICBhc3NlcnRfZmFs
c2UoZGIyLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoInN0b3JlMiIpLCAib2JqZWN0U3RvcmVO
YW1lcyBub3QgY29udGFpbnMgc3RvcmUyIGFmdGVyIGVycm9yIik7CisKKyAgICAgICAgICAgIHZh
ciBvcGVuX3JxMyA9IHdpbmRvdy5pbmRleGVkREIub3BlbihkYi5uYW1lKTsKKyAgICAgICAgICAg
IG9wZW5fcnEzLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgICAgICAgICB2YXIgZGIzID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICAgICAg
YXNzZXJ0X3RydWUoZGIzLm9iamVjdFN0b3JlTmFtZXMuY29udGFpbnMoInN0b3JlIiksICJ0aGly
ZCBvYmplY3RTdG9yZU5hbWVzIGNvbnRhaW5zIHN0b3JlIik7CisgICAgICAgICAgICAgICAgYXNz
ZXJ0X2ZhbHNlKGRiMy5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCJzdG9yZTIiKSwgInRoaXJk
IG9iamVjdFN0b3JlTmFtZXMgY29udGFpbnMgc3RvcmUyIik7CisKKyAgICAgICAgICAgICAgICB2
YXIgc3QgPSBkYjMudHJhbnNhY3Rpb24oInN0b3JlIikub2JqZWN0U3RvcmUoInN0b3JlIik7CisK
KyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGRiMy52ZXJzaW9uLCA5LCAiZGIzLnZlcnNp
b24iKTsKKworICAgICAgICAgICAgICAgIGFzc2VydF90cnVlKHN0LmluZGV4TmFtZXMuY29udGFp
bnMoImluZGV4IiksICJ0aGlyZCBpbmRleE5hbWVzIGNvbnRhaW5zIGluZGV4Iik7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0X2ZhbHNlKHN0LmluZGV4TmFtZXMuY29udGFpbnMoImluZGV4MiIpLCAi
dGhpcmQgaW5kZXhOYW1lcyBjb250YWlucyBpbmRleDIiKTsKKworICAgICAgICAgICAgICAgIHN0
Lm9wZW5DdXJzb3IobnVsbCwgInByZXYiKS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5j
dGlvbihlKSB7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVz
dWx0LmtleSwgMiwgIm9wZW5jdXJzb3IocHJldikga2V5Iik7CisgICAgICAgICAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LnZhbHVlLmksICJKb25hcyIsICJvcGVuY3Vy
c29yKHByZXYpIHZhbHVlIik7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAg
c3QuZ2V0KDMpLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIHVuZGVmaW5lZCwg
ImdldCgzKSIpOworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAgdmFyIGlk
eCA9IHN0LmluZGV4KCJpbmRleCIpOworICAgICAgICAgICAgICAgIGlkeC5nZXRLZXkoIkpvbmFz
Iikub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgMiwgImdldEtleShKb25hcyki
KTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICBpZHguZ2V0S2V5KCJPZGlu
Iikub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgdW5kZWZpbmVkLCAiZ2V0S2V5
KE9kaW4pIik7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICAgICAgaWR4LmdldEtl
eSgiU2lja2luZyIpLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIHVuZGVmaW5l
ZCwgImdldEtleShTaWNraW5nKSIpOworICAgICAgICAgICAgICAgICAgICB0aGlzLmRvbmUoKTsK
KyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9
OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW4xMS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjExLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lNjVhY2I3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJm
YWN0b3J5X29wZW4xMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCRmFj
dG9yeS5vcGVuKCkgLSBzZWNvbmQgb3BlbidzIHRyYW5zYWN0aW9uIGlzIGF2YWlsYWJsZSB0byBn
ZXQgb2JqZWN0U3RvcmVzIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjExLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuMTEuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjZkNDY1YmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjExLmh0bQpAQCAtMCwwICsxLDYwIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJGYWN0b3J5Lm9wZW4oKSAtIHNlY29uZCBvcGVu
J3MgdHJhbnNhY3Rpb24gaXMgYXZhaWxhYmxlIHRvIGdldCBvYmplY3RTdG9yZXM8L3RpdGxlPgor
PGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0i
T2RpbiBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwv
c2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYjsKKyAgICB2YXIgY291bnRfZG9uZSA9IDA7
CisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYihhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7
dGltZW91dDogMTAwMDB9KSk7CisKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoInN0b3JlIik7CisgICAgICAgIGFzc2VydF90cnVlKGRiLm9iamVjdFN0
b3JlTmFtZXMuY29udGFpbnMoInN0b3JlIiksICJvYmplY3RTdG9yZU5hbWVzIGNvbnRhaW5zIHN0
b3JlIik7CisKKyAgICAgICAgdmFyIHN0b3JlID0gZS50YXJnZXQudHJhbnNhY3Rpb24ub2JqZWN0
U3RvcmUoInN0b3JlIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc3RvcmUubmFtZSwgInN0b3Jl
IiwgInN0b3JlLm5hbWUiKTsKKworICAgICAgICBzdG9yZS5hZGQoImRhdGEiLCAxKTsKKworICAg
ICAgICBzdG9yZS5jb3VudCgpLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCAxLCAiY291bnQo
KSIpOworICAgICAgICAgICAgY291bnRfZG9uZSsrOworICAgICAgICB9KTsKKworICAgICAgICBz
dG9yZS5hZGQoImRhdGEyIiwgMik7CisgICAgfTsKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIHN0b3JlID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIiku
b2JqZWN0U3RvcmUoInN0b3JlIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoc3RvcmUubmFtZSwg
InN0b3JlIiwgInN0b3JlLm5hbWUiKTsKKyAgICAgICAgc3RvcmUuY291bnQoKS5vbnN1Y2Nlc3Mg
PSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGUudGFyZ2V0LnJlc3VsdCwgMiwgImNvdW50KCkiKTsKKyAgICAgICAgICAgIGNvdW50X2RvbmUr
KzsKKyAgICAgICAgfSk7CisgICAgICAgIGRiLmNsb3NlKCk7CisKKyAgICAgICAgdmFyIG9wZW5f
cnEyID0gd2luZG93LmluZGV4ZWREQi5vcGVuKGRiLm5hbWUsIDEwKTsKKyAgICAgICAgb3Blbl9y
cTIub251cGdyYWRlbmVlZGVkID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAg
ICAgICAgdmFyIGRiMiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGFzc2VydF90cnVl
KGRiMi5vYmplY3RTdG9yZU5hbWVzLmNvbnRhaW5zKCJzdG9yZSIpLCAib2JqZWN0U3RvcmVOYW1l
cyBjb250YWlucyBzdG9yZSIpOworICAgICAgICAgICAgdmFyIHN0b3JlID0gb3Blbl9ycTIudHJh
bnNhY3Rpb24ub2JqZWN0U3RvcmUoInN0b3JlIik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KHN0b3JlLm5hbWUsICJzdG9yZSIsICJzdG9yZS5uYW1lIik7CisKKyAgICAgICAgICAgIHN0b3Jl
LmFkZCgiZGF0YTMiLCAzKTsKKworICAgICAgICAgICAgc3RvcmUuY291bnQoKS5vbnN1Y2Nlc3Mg
PSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhlLnRhcmdldC5yZXN1bHQsIDMsICJjb3VudCgpIik7CisgICAgICAgICAgICAgICAgY291
bnRfZG9uZSsrOworCisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhjb3VudF9kb25lLCAz
LCAiY291bnRfZG9uZSIpOworICAgICAgICAgICAgICAgIHRoaXMuZG9uZSgpOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIH0pOworICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9k
aXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZh
Y3Rvcnlfb3BlbjEyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiZmFjdG9yeV9vcGVuMTItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmJmODZlNzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjEyLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDQgQEAKKworUEFTUyBJREJGYWN0b3J5Lm9wZW4oKSAtIHVwZ3JhZGVuZWVkZWQgZ2V0
cyBWZXJzaW9uQ2hhbmdlRXZlbnQgCitGQUlMIElEQkZhY3Rvcnkub3BlbigpIC0gdXBncmFkZW5l
ZWRlZCBnZXRzIFZlcnNpb25DaGFuZ2VFdmVudCAtIHNlY29uZCB1cGdyYWRlIGFzc2VydF91bnJl
YWNoZWQ6IHVuZXhwZWN0ZWQgb3Blbi5ibG9ja2VkIGV2ZW50IFJlYWNoZWQgdW5yZWFjaGFibGUg
Y29kZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmZhY3Rvcnlfb3BlbjEyLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiZmFjdG9yeV9vcGVuMTIuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjE1MDdkNDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjEyLmh0bQpAQCAtMCwwICsxLDUwIEBACis8IURPQ1RZUEUg
aHRtbD4KKzx0aXRsZT5JREJGYWN0b3J5Lm9wZW4oKSAtIHVwZ3JhZGVuZWVkZWQgZ2V0cyBWZXJz
aW9uQ2hhbmdlRXZlbnQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpv
ZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYjsK
KyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0
aW1lb3V0OiAxMDAwMH0pLCB1bmRlZmluZWQsIDkpOworICAgIHZhciBvcGVuMl90ID0gYXN5bmNf
dGVzdChkb2N1bWVudC50aXRsZSArICIgLSBzZWNvbmQgdXBncmFkZSIpOworCisgICAgb3Blbl9y
cS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQu
cmVzdWx0OworCisgICAgICAgIGFzc2VydF90cnVlKGUgaW5zdGFuY2VvZiBJREJWZXJzaW9uQ2hh
bmdlRXZlbnQsICJlIGluc3RhbmNlb2YgSURCVmVyc2lvbkNoYW5nZUV2ZW50Iik7CisgICAgICAg
IGFzc2VydF9lcXVhbHMoZS5vbGRWZXJzaW9uLCAwLCAib2xkVmVyc2lvbiIpOworICAgICAgICBh
c3NlcnRfZXF1YWxzKGUubmV3VmVyc2lvbiwgOSwgIm5ld1ZlcnNpb24iKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhlLnR5cGUsICJ1cGdyYWRlbmVlZGVkIiwgImV2ZW50IHR5cGUiKTsKKworICAg
ICAgICBhc3NlcnRfZXF1YWxzKGRiLnZlcnNpb24sIDksICJkYi52ZXJzaW9uIik7CisgICAgfTsK
KyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgYXNzZXJ0X3Ry
dWUoZSBpbnN0YW5jZW9mIEV2ZW50LCAiZSBpbnN0YW5jZW9mIEV2ZW50Iik7CisgICAgICAgIGFz
c2VydF9mYWxzZShlIGluc3RhbmNlb2YgSURCVmVyc2lvbkNoYW5nZUV2ZW50LCAiZSBub3QgaW5z
dGFuY2VvZiBJREJWZXJzaW9uQ2hhbmdlRXZlbnQiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhl
LnR5cGUsICJzdWNjZXNzIiwgImV2ZW50IHR5cGUiKTsKKyAgICAgICAgdGhpcy5kb25lKCk7CisK
KworICAgICAgICAvKioKKyAgICAgICAgICogU2Vjb25kIHRlc3QKKyAgICAgICAgICovCisgICAg
ICAgIGRiLm9udmVyc2lvbmNoYW5nZSA9IGZ1bmN0aW9uKCkgeyBkYi5jbG9zZSgpOyB9OworCisg
ICAgICAgIHZhciBvcGVuX3JxMiA9IGNyZWF0ZWRiKG9wZW4yX3QsIGRiLm5hbWUsIDEwKTsKKyAg
ICAgICAgb3Blbl9ycTIub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICAg
ICAgdmFyIGRiMiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGUg
aW5zdGFuY2VvZiBJREJWZXJzaW9uQ2hhbmdlRXZlbnQsICJlIGluc3RhbmNlb2YgSURCVmVyc2lv
bkNoYW5nZUV2ZW50Iik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUub2xkVmVyc2lvbiwg
OSwgIm9sZFZlcnNpb24iKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5uZXdWZXJzaW9u
LCAxMCwgIm5ld1ZlcnNpb24iKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50eXBlLCAi
dXBncmFkZW5lZWRlZCIsICJldmVudCB0eXBlIik7CisKKyAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoZGIyLnZlcnNpb24sIDEwLCAibmV3IGRiLnZlcnNpb24iKTsKKworICAgICAgICAgICAgdGhp
cy5kb25lKCk7CisgICAgICAgIH07CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48
L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
ZmFjdG9yeV9vcGVuMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmRiYzAxMWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjItZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMyBAQAorCitQQVNTIElEQkZhY3Rvcnkub3BlbigpIC0gZGF0YWJhc2UgJ25hbWUnIGFu
ZCAndmVyc2lvbicgYXJlIGNvcnJlY3RseSBzZXQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuMi5odG0gYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjIuaHRtCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3ODIzYzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjIuaHRtCkBAIC0w
LDAgKzEsMjAgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQkZhY3Rvcnkub3BlbigpIC0g
ZGF0YWJhc2UgJ25hbWUnIGFuZCAndmVyc2lvbicgYXJlIGNvcnJlY3RseSBzZXQ8L3RpdGxlPgor
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWlj
cm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4K
KworPHNjcmlwdD4KKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoKSwgJ2Rh
dGFiYXNlX25hbWUnLCAxMyk7CisKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0
aW9uKGUpIHt9OworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAg
ICB2YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZGIubmFt
ZSwgJ2RhdGFiYXNlX25hbWUnLCAnZGIubmFtZScpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGRi
LnZlcnNpb24sIDEzLCAnZGIudmVyc2lvbicpOworICAgICAgICB0aGlzLmRvbmUoKTsKKyAgICB9
Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW4zLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MjdiYjUzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0
b3J5X29wZW4zLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJGYWN0b3J5
Lm9wZW4oKSAtIG5vIHZlcnNpb24gb3BlbnMgY3VycmVudCBkYXRhYmFzZSAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW4zLmh0
bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuMy5o
dG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGU3YWQ1ZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9v
cGVuMy5odG0KQEAgLTAsMCArMSwyNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCRmFj
dG9yeS5vcGVuKCkgLSBubyB2ZXJzaW9uIG9wZW5zIGN1cnJlbnQgZGF0YWJhc2U8L3RpdGxlPgor
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWlj
cm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4K
KworPHNjcmlwdD4KKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoKSwgdW5k
ZWZpbmVkLCAxMyk7CisgICAgdmFyIGRpZF91cGdyYWRlID0gZmFsc2U7CisKKyAgICBvcGVuX3Jx
Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKCkge307CisgICAgb3Blbl9ycS5vbnN1Y2Nlc3Mg
PSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAg
ICAgZGIuY2xvc2UoKTsKKworICAgICAgICB2YXIgb3Blbl9ycTIgPSB3aW5kb3cuaW5kZXhlZERC
Lm9wZW4oZGIubmFtZSk7CisgICAgICAgIG9wZW5fcnEyLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9m
dW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVz
dWx0LnZlcnNpb24sIDEzLCAiZGIudmVyc2lvbiIpCisgICAgICAgICAgICB0aGlzLmRvbmUoKTsK
KyAgICAgICAgfSk7CisgICAgICAgIG9wZW5fcnEyLm9udXBncmFkZW5lZWRlZCA9IGZhaWwodGhp
cywgJ1VuZXhwZWN0ZWQgdXBncmFkZW5lZWRlZCcpCisgICAgICAgIG9wZW5fcnEyLm9uZXJyb3Ig
PSBmYWlsKHRoaXMsICdVbmV4cGVjdGVkIGVycm9yJykKKyAgICB9Cis8L3NjcmlwdD4KKworPGRp
diBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW40LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMjYwNDBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW40LWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJGYWN0b3J5Lm9wZW4oKSAtIG5ldyBkYXRh
YmFzZSBoYXMgZGVmYXVsdCB2ZXJzaW9uIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjQuaHRtIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW40Lmh0bQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5hNDc0YjRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW40Lmh0bQpAQCAtMCwwICsx
LDIwIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJGYWN0b3J5Lm9wZW4oKSAtIG5ldyBk
YXRhYmFzZSBoYXMgZGVmYXVsdCB2ZXJzaW9uPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0
aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFy
IG9wZW5fcnEgPSBjcmVhdGVkYihhc3luY190ZXN0KCksICdkYXRhYmFzZV9uYW1lJyk7CisKKyAg
ICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgYXNzZXJ0
X2VxdWFscyhlLnRhcmdldC5yZXN1bHQudmVyc2lvbiwgMSwgImRiLnZlcnNpb24iKTsKKyAgICB9
OworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICBhc3NlcnRf
ZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC52ZXJzaW9uLCAxLCAiZGIudmVyc2lvbiIpOworICAgICAg
ICB0aGlzLmRvbmUoKTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5
X29wZW41LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiZmFjdG9yeV9vcGVuNS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uY2E1OTA5YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuNS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
IEBACisKK1BBU1MgSURCRmFjdG9yeS5vcGVuKCkgLSBuZXcgZGF0YWJhc2UgaXMgZW1wdHkgCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9y
eV9vcGVuNS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rv
cnlfb3BlbjUuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3YjNhMTEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmZhY3Rvcnlfb3BlbjUuaHRtCkBAIC0wLDAgKzEsMTggQEAKKzwhRE9DVFlQRSBodG1sPgorPHRp
dGxlPklEQkZhY3Rvcnkub3BlbigpIC0gbmV3IGRhdGFiYXNlIGlzIGVtcHR5PC90aXRsZT4KKzxs
aW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jv
c29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisK
KzxzY3JpcHQ+CisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYihhc3luY190ZXN0KCksICdkYXRh
YmFzZV9uYW1lJyk7CisKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKCkg
e307CisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoZS50YXJnZXQucmVzdWx0Lm9iamVjdFN0b3JlTmFtZXMubGVuZ3RoLCAwLCAib2Jq
ZWN0U3RvcmVOYW1lcy5sZW5ndGgiKTsKKyAgICAgICAgdGhpcy5kb25lKCk7CisgICAgfTsKKzwv
c2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuNi1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjYtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQxZjFiZmMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlf
b3BlbjYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkZhY3Rvcnkub3Bl
bigpIC0gb3BlbiBkYXRhYmFzZSB3aXRoIGEgbG93ZXIgdmVyc2lvbiB0aGFuIGN1cnJlbnQgCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9y
eV9vcGVuNi5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rv
cnlfb3BlbjYuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4OWI1ZWEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmZhY3Rvcnlfb3BlbjYuaHRtCkBAIC0wLDAgKzEsMzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRp
dGxlPklEQkZhY3Rvcnkub3BlbigpIC0gb3BlbiBkYXRhYmFzZSB3aXRoIGEgbG93ZXIgdmVyc2lv
biB0aGFuIGN1cnJlbnQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3Nv
ZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgb3Blbl9ycSA9IGNy
ZWF0ZWRiKGFzeW5jX3Rlc3QoKSwgdW5kZWZpbmVkLCAxMyk7CisgICAgdmFyIGRpZF91cGdyYWRl
ID0gZmFsc2U7CisKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKCkge307
CisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBkYiA9
IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgZGIuY2xvc2UoKTsKKworICAgICAgICB2YXIgb3Bl
bl9ycTIgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oZGIubmFtZSwgMTQpOworICAgICAgICBvcGVu
X3JxMi5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbigpIHt9OworICAgICAgICBvcGVuX3JxMi5v
bnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhvcGVuX3ByZXZpb3VzX2RiKTsKKyAgICAgICAgb3Bl
bl9ycTIub25lcnJvciA9IGZhaWwodGhpcywgJ1VuZXhwZWN0ZWQgZXJyb3InKQorICAgIH0KKwor
ICAgIGZ1bmN0aW9uIG9wZW5fcHJldmlvdXNfZGIoZSkgeworICAgICAgICB2YXIgb3Blbl9ycTMg
PSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oZS50YXJnZXQucmVzdWx0Lm5hbWUsIDEzKTsKKyAgICAg
ICAgb3Blbl9ycTMub25lcnJvciA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQuZXJyb3IubmFtZSwgJ1ZlcnNpb25FcnJvcics
ICdlLnRhcmdldC5lcnJvci5uYW1lJykKKyAgICAgICAgICAgIHRoaXMuZG9uZSgpOworICAgICAg
ICB9KTsKKyAgICAgICAgb3Blbl9ycTMub251cGdyYWRlbmVlZGVkID0gZmFpbCh0aGlzLCAnVW5l
eHBlY3RlZCB1cGdyYWRlbmVlZGVkJykKKyAgICAgICAgb3Blbl9ycTMub25zdWNjZXNzID0gZmFp
bCh0aGlzLCAnVW5leHBlY3RlZCBzdWNjZXNzJykKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBp
ZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmZhY3Rvcnlfb3BlbjctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW43LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi41OWQ0OTkzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW43LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJGYWN0b3J5Lm9wZW4oKSAtIG9wZW4gZGF0YWJh
c2Ugd2l0aCBhIGhpZ2hlciB2ZXJzaW9uIHRoYW4gY3VycmVudCAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW43Lmh0bSBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuNy5odG0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGU1NmJlMAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuNy5o
dG0KQEAgLTAsMCArMSwzOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCRmFjdG9yeS5v
cGVuKCkgLSBvcGVuIGRhdGFiYXNlIHdpdGggYSBoaWdoZXIgdmVyc2lvbiB0aGFuIGN1cnJlbnQ8
L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6
Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48
L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5jX3Rl
c3QoKSwgdW5kZWZpbmVkLCAxMyk7CisgICAgdmFyIGRpZF91cGdyYWRlID0gZmFsc2U7CisKKyAg
ICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKCkge307CisgICAgb3Blbl9ycS5v
bnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBkYiA9IGUudGFyZ2V0LnJlc3Vs
dDsKKyAgICAgICAgZGIuY2xvc2UoKTsKKworICAgICAgICB2YXIgb3Blbl9ycTIgPSB3aW5kb3cu
aW5kZXhlZERCLm9wZW4oZGIubmFtZSwgMTQpOworICAgICAgICBvcGVuX3JxMi5vbnVwZ3JhZGVu
ZWVkZWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGRpZF91cGdyYWRlID0gdHJ1ZTsKKyAg
ICAgICAgfTsKKyAgICAgICAgb3Blbl9ycTIub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMob3Bl
bl9jdXJyZW50X2RiKTsKKyAgICAgICAgb3Blbl9ycTIub25lcnJvciA9IGZhaWwodGhpcywgJ1Vu
ZXhwZWN0ZWQgZXJyb3InKQorICAgIH0KKworICAgIGZ1bmN0aW9uIG9wZW5fY3VycmVudF9kYihl
KSB7CisgICAgICAgIHZhciBvcGVuX3JxMyA9IHdpbmRvdy5pbmRleGVkREIub3BlbihlLnRhcmdl
dC5yZXN1bHQubmFtZSk7CisgICAgICAgIG9wZW5fcnEzLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9m
dW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVz
dWx0LnZlcnNpb24sIDE0LCAiZGIudmVyc2lvbiIpCisgICAgICAgICAgICB0aGlzLmRvbmUoKTsK
KyAgICAgICAgfSk7CisgICAgICAgIG9wZW5fcnEzLm9udXBncmFkZW5lZWRlZCA9IGZhaWwodGhp
cywgJ1VuZXhwZWN0ZWQgdXBncmFkZW5lZWRlZCcpCisgICAgICAgIG9wZW5fcnEzLm9uZXJyb3Ig
PSBmYWlsKHRoaXMsICdVbmV4cGVjdGVkIGVycm9yJykKKworICAgICAgICBhc3NlcnRfdHJ1ZShk
aWRfdXBncmFkZSwgJ2RpZCB1cGdyYWRlJyk7CisgICAgfQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9
bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJmYWN0b3J5X29wZW44LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuOC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uNjY0N2IxZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuOC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCRmFjdG9yeS5vcGVuKCkgLSBlcnJvciBpbiB2ZXJz
aW9uIGNoYW5nZSB0cmFuc2FjdGlvbiBhYm9ydHMgb3BlbiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW44Lmh0bSBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuOC5odG0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTI4YTI3ZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuOC5odG0K
QEAgLTAsMCArMSwyNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCRmFjdG9yeS5vcGVu
KCkgLSBlcnJvciBpbiB2ZXJzaW9uIGNoYW5nZSB0cmFuc2FjdGlvbiBhYm9ydHMgb3BlbjwvdGl0
bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3
dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2Ny
aXB0PgorCis8c2NyaXB0PgorICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdCgp
LCB1bmRlZmluZWQsIDEzKTsKKyAgICB2YXIgZGlkX3VwZ3JhZGUgPSBmYWxzZTsKKyAgICB2YXIg
ZGlkX2RiX2Fib3J0ID0gZmFsc2U7CisKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgZGlkX3VwZ3JhZGUgPSB0cnVlOworICAgICAgICBlLnRhcmdl
dC5yZXN1bHQub25hYm9ydCA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgZGlkX2RiX2Fib3J0
ID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBlLnRhcmdldC50cmFuc2FjdGlvbi5hYm9ydCgp
OworICAgIH07CisgICAgb3Blbl9ycS5vbmVycm9yID0gZnVuY3Rpb24oZSkgeworICAgICAgICBh
c3NlcnRfdHJ1ZShkaWRfdXBncmFkZSk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQu
ZXJyb3IubmFtZSwgJ0Fib3J0RXJyb3InLCAndGFyZ2V0LmVycm9yJyk7CisgICAgICAgIHRoaXMu
ZG9uZSgpCisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiZmFjdG9yeV9vcGVuOS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rv
cnlfb3BlbjktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjRmZmM4ODMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAgQEAKKwor
UEFTUyBDYWxsaW5nIG9wZW4oKSB3aXRoIHZlcnNpb24gYXJndW1lbnQgLTEgc2hvdWxkIHRocm93
IFR5cGVFcnJvci4gCitQQVNTIENhbGxpbmcgb3BlbigpIHdpdGggdmVyc2lvbiBhcmd1bWVudCAt
MC41IHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuIAorUEFTUyBDYWxsaW5nIG9wZW4oKSB3aXRoIHZl
cnNpb24gYXJndW1lbnQgMCBzaG91bGQgdGhyb3cgVHlwZUVycm9yLiAKK1BBU1MgQ2FsbGluZyBv
cGVuKCkgd2l0aCB2ZXJzaW9uIGFyZ3VtZW50IDAuNSBzaG91bGQgdGhyb3cgVHlwZUVycm9yLiAK
K1BBU1MgQ2FsbGluZyBvcGVuKCkgd2l0aCB2ZXJzaW9uIGFyZ3VtZW50IDAuOCBzaG91bGQgdGhy
b3cgVHlwZUVycm9yLiAKK1BBU1MgQ2FsbGluZyBvcGVuKCkgd2l0aCB2ZXJzaW9uIGFyZ3VtZW50
IDkwMDcxOTkyNTQ3NDA5OTIgc2hvdWxkIHRocm93IFR5cGVFcnJvci4gCitQQVNTIENhbGxpbmcg
b3BlbigpIHdpdGggdmVyc2lvbiBhcmd1bWVudCBOYU4gc2hvdWxkIHRocm93IFR5cGVFcnJvci4g
CitQQVNTIENhbGxpbmcgb3BlbigpIHdpdGggdmVyc2lvbiBhcmd1bWVudCBJbmZpbml0eSBzaG91
bGQgdGhyb3cgVHlwZUVycm9yLiAKK1BBU1MgQ2FsbGluZyBvcGVuKCkgd2l0aCB2ZXJzaW9uIGFy
Z3VtZW50IC1JbmZpbml0eSBzaG91bGQgdGhyb3cgVHlwZUVycm9yLiAKK1BBU1MgQ2FsbGluZyBv
cGVuKCkgd2l0aCB2ZXJzaW9uIGFyZ3VtZW50ICJmb28iIHNob3VsZCB0aHJvdyBUeXBlRXJyb3Iu
IAorUEFTUyBDYWxsaW5nIG9wZW4oKSB3aXRoIHZlcnNpb24gYXJndW1lbnQgdW5kZWZpbmVkIHNo
b3VsZCB0aHJvdyBUeXBlRXJyb3IuIAorUEFTUyBDYWxsaW5nIG9wZW4oKSB3aXRoIHZlcnNpb24g
YXJndW1lbnQgbnVsbCBzaG91bGQgdGhyb3cgVHlwZUVycm9yLiAKK1BBU1MgQ2FsbGluZyBvcGVu
KCkgd2l0aCB2ZXJzaW9uIGFyZ3VtZW50IGZhbHNlIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuIAor
UEFTUyBDYWxsaW5nIG9wZW4oKSB3aXRoIHZlcnNpb24gYXJndW1lbnQgb2JqZWN0IHNob3VsZCB0
aHJvdyBUeXBlRXJyb3IuIAorUEFTUyBDYWxsaW5nIG9wZW4oKSB3aXRoIHZlcnNpb24gYXJndW1l
bnQgb2JqZWN0IChzZWNvbmQpIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IuIAorUEFTUyBDYWxsaW5n
IG9wZW4oKSB3aXRoIHZlcnNpb24gYXJndW1lbnQgb2JqZWN0ICh0aGlyZCkgc2hvdWxkIHRocm93
IFR5cGVFcnJvci4gCitQQVNTIENhbGxpbmcgb3BlbigpIHdpdGggdmVyc2lvbiBhcmd1bWVudCAx
LjUgc2hvdWxkIG5vdCB0aHJvdy4gCitQQVNTIENhbGxpbmcgb3BlbigpIHdpdGggdmVyc2lvbiBh
cmd1bWVudCA5MDA3MTk5MjU0NzQwOTkxIHNob3VsZCBub3QgdGhyb3cuIAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZhY3Rvcnlfb3BlbjkuaHRt
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29wZW45Lmh0
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Yjk2MWIxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJmYWN0b3J5X29w
ZW45Lmh0bQpAQCAtMCwwICsxLDYzIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJGYWN0
b3J5Lm9wZW4oKSAtIGVycm9ycyBpbiB2ZXJzaW9uIGFyZ3VtZW50PC90aXRsZT4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8c2NyaXB0PgorZnVuY3Rpb24g
c2hvdWxkX3Rocm93KHZhbCwgbmFtZSkgeworICAgIGlmICghbmFtZSkgeworICAgICAgICBuYW1l
ID0gKCh0eXBlb2YgdmFsID09ICJvYmplY3QiICYmIHZhbCkgPyAib2JqZWN0IiA6IGZvcm1hdF92
YWx1ZSh2YWwpKQorICAgIH0KKyAgICB0ZXN0KGZ1bmN0aW9uKCkgeworICAgICAgYXNzZXJ0X3Ro
cm93cyhuZXcgVHlwZUVycm9yKCksIGZ1bmN0aW9uKCkgeworICAgICAgICB3aW5kb3cuaW5kZXhl
ZERCLm9wZW4oJ3Rlc3QnLCB2YWwpOworICAgICAgfSk7CisgICAgfSwgIkNhbGxpbmcgb3Blbigp
IHdpdGggdmVyc2lvbiBhcmd1bWVudCAiICsgbmFtZSArICIgc2hvdWxkIHRocm93IFR5cGVFcnJv
ci4iKQorfQorCitzaG91bGRfdGhyb3coLTEpCitzaG91bGRfdGhyb3coLTAuNSkKK3Nob3VsZF90
aHJvdygwKQorc2hvdWxkX3Rocm93KDAuNSkKK3Nob3VsZF90aHJvdygwLjgpCitzaG91bGRfdGhy
b3coMHgyMDAwMDAwMDAwMDAwMCkgIC8vIE51bWJlci5NQVhfU0FGRV9JTlRFR0VSICsgMQorc2hv
dWxkX3Rocm93KE5hTikKK3Nob3VsZF90aHJvdyhJbmZpbml0eSkKK3Nob3VsZF90aHJvdygtSW5m
aW5pdHkpCitzaG91bGRfdGhyb3coImZvbyIpCitzaG91bGRfdGhyb3codW5kZWZpbmVkKQorc2hv
dWxkX3Rocm93KG51bGwpCitzaG91bGRfdGhyb3coZmFsc2UpCisKK3Nob3VsZF90aHJvdyh7Cisg
ICAgdG9TdHJpbmc6IGZ1bmN0aW9uKCkgeyBhc3NlcnRfdW5yZWFjaGVkKCJ0b1N0cmluZyBzaG91
bGQgbm90IGJlIGNhbGxlZCBmb3IgVG9QcmltaXRpdmUgW051bWJlcl0iKTsgfSwKKyAgICB2YWx1
ZU9mOiBmdW5jdGlvbigpIHsgcmV0dXJuIDA7IH0KK30pCitzaG91bGRfdGhyb3coeworICAgIHRv
U3RyaW5nOiBmdW5jdGlvbigpIHsgcmV0dXJuIDA7IH0sCisgICAgdmFsdWVPZjogZnVuY3Rpb24o
KSB7IHJldHVybiB7fTsgfQorfSwgJ29iamVjdCAoc2Vjb25kKScpCitzaG91bGRfdGhyb3coewor
ICAgIHRvU3RyaW5nOiBmdW5jdGlvbigpIHsgcmV0dXJuIHt9OyB9LAorICAgIHZhbHVlT2Y6IGZ1
bmN0aW9uKCkgeyByZXR1cm4ge307IH0sCit9LCAnb2JqZWN0ICh0aGlyZCknKQorCisKKy8qIFZh
bGlkICovCisKK2Z1bmN0aW9uIHNob3VsZF93b3JrKHZhbCkgeworICAgIHZhciBuYW1lID0gZm9y
bWF0X3ZhbHVlKHZhbCk7CisgICAgdmFyIHQgPSBhc3luY190ZXN0KCJDYWxsaW5nIG9wZW4oKSB3
aXRoIHZlcnNpb24gYXJndW1lbnQgIiArIG5hbWUgKyAiIHNob3VsZCBub3QgdGhyb3cuIikKKyAg
ICB2YXIgcnEgPSBjcmVhdGVkYih0LCB2YWwpCisgICAgcnEub251cGdyYWRlbmVlZGVkID0gZnVu
Y3Rpb24oKSB7CisgICAgICAgIHQuZG9uZSgpCisgICAgfQorfQorCitzaG91bGRfd29yaygxLjUp
CitzaG91bGRfd29yayhOdW1iZXIuTUFYX1NBRkVfSU5URUdFUikgIC8vIDB4MjAwMDAwMDAwMDAw
MDAgLSAxCisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXgtbXVsdGllbnRyeS1hcnJh
eWtleXBhdGgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJpbmRleC1tdWx0aWVudHJ5LWFycmF5a2V5cGF0aC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDgyNDA5OAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXgtbXVsdGllbnRyeS1hcnJh
eWtleXBhdGgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkluZGV4Lm11
bHRpRW50cnk6IGFycmF5IGtleVBhdGggd2l0aCBtdWx0aUVudHJ5IAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4LW11bHRpZW50cnktYXJy
YXlrZXlwYXRoLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5k
ZXgtbXVsdGllbnRyeS1hcnJheWtleXBhdGguaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjdkZWRmYmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4LW11bHRpZW50cnktYXJyYXlrZXlwYXRoLmh0bQpAQCAt
MCwwICsxLDIzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0
aXRsZT5JREJJbmRleC5tdWx0aUVudHJ5OiBhcnJheSBrZXlQYXRoIHdpdGggbXVsdGlFbnRyeTwv
dGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20i
IHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDov
L2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNrZXkt
Y29uc3RydWN0Ij4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IlhYWCI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIGNyZWF0ZWRi
KGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pKS5vbnVwZ3JhZGVu
ZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBzdG9yZSA9IGUudGFyZ2V0LnJlc3Vs
dC5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKworICAgICAgICBhc3NlcnRfdGhyb3dzKCdJ
bnZhbGlkQWNjZXNzRXJyb3InLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHN0b3JlLmNyZWF0
ZUluZGV4KCdhY3RvcnMnLCBbJ25hbWUnXSwgeyBtdWx0aUVudHJ5OiB0cnVlIH0pCisgICAgICAg
IH0pOworCisgICAgICAgIHRoaXMuZG9uZSgpOworICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBp
ZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiaW5kZXgtbXVsdGllbnRyeS1iaWctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleC1tdWx0aWVudHJ5LWJpZy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWE1OGEyZAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXgtbXVs
dGllbnRyeS1iaWctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQQVNTIEFkZGluZyBv
bmUgaXRlbSB3aXRoIDEwMDAgbXVsdGlFbnRyeSBrZXlzIAorVElNRU9VVCBHZXR0aW5nIHRoZSBv
bmUgaXRlbSBieSAxMDAwIGluZGVjZWQga2V5cyAgVGVzdCB0aW1lZCBvdXQKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleC1tdWx0aWVudHJ5
LWJpZy5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4LW11
bHRpZW50cnktYmlnLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOTEw
MjQ4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJpbmRleC1tdWx0aWVudHJ5LWJpZy5odG0KQEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBF
IGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCSW5kZXgubXVsdGlFbnRy
eSAtIGEgMTAwMCBlbnRyeSBtdWx0aUVudHJ5IGFycmF5PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0
aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBP
bWRhbCI+Cis8bGluayByZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhl
ZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI2tleS1jb25zdHJ1Y3QiPgorPGxpbmsgcmVs
PWFzc2VydCB0aXRsZT0iWFhYIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+
PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgICB0X2FkZCA9IGFzeW5j
X3Rlc3QoIkFkZGluZyBvbmUgaXRlbSB3aXRoIDEwMDAgbXVsdGlFbnRyeSBrZXlzIiwgeyB0aW1l
b3V0OiAxMDAwMCB9KSwKKyAgICAgICAgdF9nZXQgPSBhc3luY190ZXN0KCJHZXR0aW5nIHRoZSBv
bmUgaXRlbSBieSAxMDAwIGluZGVjZWQga2V5cyAiLCB7IHRpbWVvdXQ6IDEwMDAwIH0pOworCisg
ICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0X2FkZCk7CisgICAgdmFyIG9iaiA9IHsgdGVzdDog
J3lvJywgaWR4a2V5czogW10gfTsKKworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgaSsr
KQorICAgICAgICBvYmouaWR4a2V5cy5wdXNoKCdpbmRleF9ub18nICsgaSk7CisKKworICAgIG9w
ZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFy
Z2V0LnJlc3VsdDsKKworICAgICAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmUnKQorICAg
ICAgICAgIC5jcmVhdGVJbmRleCgnaW5kZXgnLCAnaWR4a2V5cycsIHsgbXVsdGlFbnRyeTogdHJ1
ZSB9KTsKKyAgICB9OworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAg
ICAgICB2YXIgdHggPSBkYi50cmFuc2FjdGlvbignc3RvcmUnLCAncmVhZHdyaXRlJyk7CisgICAg
ICAgIHR4Lm9iamVjdFN0b3JlKCdzdG9yZScpCisgICAgICAgICAgLnB1dChvYmosIDEpCisgICAg
ICAgICAgLm9uc3VjY2VzcyA9IHRfYWRkLnN0ZXBfZnVuYyhmdW5jdGlvbihlKQorICAgICAgICB7
CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgMSwgInB1dCdkIGtl
eSIpOworICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgIH0pOworCisgICAgICAgIHR4
Lm9uY29tcGxldGUgPSB0X2dldC5zdGVwX2Z1bmMoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB2
YXIgaWR4ID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlJykub2JqZWN0U3RvcmUoJ3N0b3JlJykuaW5k
ZXgoJ2luZGV4JykKKworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyBpKysp
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWR4LmdldCgnaW5kZXhfbm9fJyArIGkp
Lm9uc3VjY2VzcyA9IHRfZ2V0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LnRlc3QsICJ5byIpOworICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZHguZ2V0KCdpbmRl
eF9ub185OTknKS5vbnN1Y2Nlc3MgPSB0X2dldC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAg
ICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LnRlc3QsICJ5byIpOwor
ICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LmlkeGtleXMubGVu
Z3RoLCAxMDAwKTsKKyAgICAgICAgICAgICAgICB0aGlzLmRvbmUoKTsKKyAgICAgICAgICAgIH0p
OworICAgICAgICB9KTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4
LW11bHRpZW50cnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJpbmRleC1tdWx0aWVudHJ5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4wZGE0NjNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleC1tdWx0aWVudHJ5LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJJbmRleC5tdWx0aUVudHJ5IC0gYWRkaW5nIGtleXMg
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5k
ZXgtbXVsdGllbnRyeS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmluZGV4LW11bHRpZW50cnkuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjM0MGRhODQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmluZGV4LW11bHRpZW50cnkuaHRtCkBAIC0wLDAgKzEsNTMgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQkluZGV4Lm11bHRpRW50
cnkgLSBhZGRpbmcga2V5czwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRv
Om9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPGxpbmsgcmVs
PWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAv
T3ZlcnZpZXcuaHRtbCNrZXktY29uc3RydWN0Ij4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IlhY
WCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2Ny
aXB0PgorICAgIHZhciBkYiwKKyAgICAgICAgZXhwZWN0ZWRfa2V5cyA9IFsxLCAyLCAyLCAzLCAz
XTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIoYXN5bmNfdGVzdChkb2N1bWVudC50aXRs
ZSwge3RpbWVvdXQ6IDEwMDAwfSkpCisKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgdmFy
IHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIikKKworICAgICAgICBzdG9yZS5j
cmVhdGVJbmRleCgnYWN0b3JzJywgJ25hbWUnLCB7IG11bHRpRW50cnk6IHRydWUgfSkKKworICAg
ICAgICBzdG9yZS5hZGQoe25hbWU6ICdPZGluJ30sIDEpOworICAgICAgICBzdG9yZS5hZGQoe25h
bWU6IFsnUml0YScsICdTY2hlZXRhJywge0JvYmJ5OidCb2JieSd9XX0sIDIpOworICAgICAgICBz
dG9yZS5hZGQoe25hbWU6IFsge3M6ICdSb2JlcnQnfSwgJ05laWwnLCAnQm9iYnknXX0sIDMpOwor
ICAgIH07CisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZh
ciBnb3R0ZW5fa2V5cyA9IFtdOworICAgICAgICB2YXIgaWR4ID0gZGIudHJhbnNhY3Rpb24oJ3N0
b3JlJykub2JqZWN0U3RvcmUoJ3N0b3JlJykuaW5kZXgoJ2FjdG9ycycpOworCisgICAgICAgIGlk
eC5nZXRLZXkoJ09kaW4nKS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7
CisgICAgICAgICAgICBnb3R0ZW5fa2V5cy5wdXNoKGUudGFyZ2V0LnJlc3VsdCkKKyAgICAgICAg
fSk7CisgICAgICAgIGlkeC5nZXRLZXkoJ1JpdGEnKS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVu
YyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBnb3R0ZW5fa2V5cy5wdXNoKGUudGFyZ2V0LnJl
c3VsdCkKKyAgICAgICAgfSk7CisgICAgICAgIGlkeC5nZXRLZXkoJ1NjaGVldGEnKS5vbnN1Y2Nl
c3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBnb3R0ZW5fa2V5
cy5wdXNoKGUudGFyZ2V0LnJlc3VsdCkKKyAgICAgICAgfSk7CisgICAgICAgIGlkeC5nZXRLZXko
J05laWwnKS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAg
ICAgICBnb3R0ZW5fa2V5cy5wdXNoKGUudGFyZ2V0LnJlc3VsdCkKKyAgICAgICAgfSk7CisgICAg
ICAgIGlkeC5nZXRLZXkoJ0JvYmJ5Jykub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rp
b24oZSkgeworICAgICAgICAgICAgZ290dGVuX2tleXMucHVzaChlLnRhcmdldC5yZXN1bHQpCisK
KyAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZ290dGVuX2tleXMsIGV4cGVjdGVkX2tl
eXMpOworICAgICAgICAgICAgdGhpcy5kb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKzwvc2Ny
aXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9jb3VudC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2NvdW50LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NjBhOWRkCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9jb3VudC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCSW5kZXguY291bnQoKSAtIHJl
dHVybnMgdGhlIG51bWJlciBvZiByZWNvcmRzIGluIHRoZSBpbmRleCAgCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfY291bnQuaHRtIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9jb3VudC5odG0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTkyZTQ3ZAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfY291bnQuaHRt
CkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4K
Kzx0aXRsZT5JREJJbmRleC5jb3VudCgpIC0gcmV0dXJucyB0aGUgbnVtYmVyIG9mIHJlY29yZHMg
aW4gdGhlIGluZGV4IDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29m
dCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwgdCA9IGFzeW5j
X3Rlc3QoKTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisKKyAgICBvcGVuX3Jx
Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5y
ZXN1bHQ7CisgICAgICAgIHZhciBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIs
IHsgYXV0b0luY3JlbWVudDogdHJ1ZSB9KTsKKyAgICAgICAgc3RvcmUuY3JlYXRlSW5kZXgoImlu
ZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpOworCisgICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCAx
MDsgaSsrKSB7CisgICAgICAgICAgICBzdG9yZS5hZGQoeyBpbmRleGVkUHJvcGVydHk6ICJkYXRh
IiArIGkgfSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKKyAg
ICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKKyAgICAgICAgICAgICAgICAg
ICAuaW5kZXgoImluZGV4IikKKyAgICAgICAgICAgICAgICAgICAuY291bnQoKTsKKworICAgICAg
ICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgMTApOworICAgICAgICAgICAgdC5kb25lKCk7
CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfY291
bnQyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
aW5kZXhfY291bnQyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi42YTMxODRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJpbmRleF9jb3VudDItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAor
CitQQVNTIElEQkluZGV4LmNvdW50KCkgLSByZXR1cm5zIHRoZSBudW1iZXIgb2YgcmVjb3JkcyB0
aGF0IGhhdmUga2V5cyB3aXRoaW4gdGhlIHJhbmdlICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9jb3VudDIuaHRtIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9jb3VudDIuaHRtCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3MTFjOTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2NvdW50Mi5odG0KQEAgLTAs
MCArMSwzNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxl
PklEQkluZGV4LmNvdW50KCkgLSByZXR1cm5zIHRoZSBudW1iZXIgb2YgcmVjb3JkcyB0aGF0IGhh
dmUga2V5cyB3aXRoaW4gdGhlIHJhbmdlIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0
bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBk
YiwgdCA9IGFzeW5jX3Rlc3QoKTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisK
KyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIg
PSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCJzdG9yZSIsIHsgYXV0b0luY3JlbWVudDogdHJ1ZSB9KTsKKyAgICAgICAgc3RvcmUuY3Jl
YXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpOworCisgICAgICAgIGZvcih2YXIg
aSA9IDA7IGkgPCAxMDsgaSsrKSB7CisgICAgICAgICAgICBzdG9yZS5hZGQoeyBpbmRleGVkUHJv
cGVydHk6ICJkYXRhIiArIGkgfSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBvcGVuX3JxLm9u
c3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24o
InN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKKyAgICAg
ICAgICAgICAgICAgICAuaW5kZXgoImluZGV4IikKKyAgICAgICAgICAgICAgICAgICAuY291bnQo
SURCS2V5UmFuZ2UuYm91bmQoJ2RhdGEwJywgJ2RhdGE0JykpOworCisgICAgICAgIHJxLm9uc3Vj
Y2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoZS50YXJnZXQucmVzdWx0LCA1KTsKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9
KTsKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2NvdW50My1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2NvdW50
My1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTkzOGFi
MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiaW5kZXhfY291bnQzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJJ
bmRleC5jb3VudCgpIC0gcmV0dXJucyB0aGUgbnVtYmVyIG9mIHJlY29yZHMgdGhhdCBoYXZlIGtl
eXMgd2l0aCB0aGUga2V5IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmluZGV4X2NvdW50My5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmluZGV4X2NvdW50My5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uYjQ3YTJmYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRiaW5kZXhfY291bnQzLmh0bQpAQCAtMCwwICsxLDI4IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+SURCSW5kZXguY291bnQo
KSAtIHJldHVybnMgdGhlIG51bWJlciBvZiByZWNvcmRzIHRoYXQgaGF2ZSBrZXlzIHdpdGggdGhl
IGtleTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVy
YS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiCisKKyAgICBjcmVh
dGVkYihhc3luY190ZXN0KCkpLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgZGIgPSBlLnRhcmdldC5yZXN1bHQKKworICAgICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVP
YmplY3RTdG9yZSgic3RvcmUiLCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSkKKyAgICAgICAgc3Rv
cmUuY3JlYXRlSW5kZXgoIm15aW5kZXgiLCAiaWR4IikKKworICAgICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IDEwOyBpKyspCisgICAgICAgICAgICBzdG9yZS5hZGQoeyBpZHg6ICJkYXRhXyIgKyAo
aSUyKSB9KTsKKworICAgICAgICBzdG9yZS5pbmRleCgibXlpbmRleCIpLmNvdW50KCJkYXRhXzAi
KS5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgNSwgImNvdW50KGRhdGFfMCkiKQorICAgICAg
ICAgICAgdGhpcy5kb25lKCkKKyAgICAgICAgfSkKKyAgICB9CisKKzwvc2NyaXB0PgorPGRpdiBp
ZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmluZGV4X2NvdW50NC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmluZGV4X2NvdW50NC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uMWEzNDEzZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfY291bnQ0LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJJbmRleC5jb3VudCgpIC0gdGhyb3cgRGF0YUVycm9y
IHdoZW4gdXNpbmcgaW52YWxpZCBrZXkgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfY291bnQ0Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfY291bnQ0Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5lNTk0OGVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9jb3VudDQuaHRtCkBAIC0wLDAgKzEsMzcg
QEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQklu
ZGV4LmNvdW50KCkgLSB0aHJvdyBEYXRhRXJyb3Igd2hlbiB1c2luZyBpbnZhbGlkIGtleTwvdGl0
bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3Lmlu
dGVsLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcv
SW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCSW5kZXgtY291bnQt
SURCUmVxdWVzdC1hbnkta2V5Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+
PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KKyAgICB2YXIgZGIsIHQg
PSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworCisgICAg
b3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50
YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgi
c3RvcmUiLCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7CisgICAgICAgIHN0b3JlLmNyZWF0ZUlu
ZGV4KCJpbmRleCIsICJpbmRleGVkUHJvcGVydHkiKTsKKworICAgICAgICBmb3IodmFyIGkgPSAw
OyBpIDwgMTA7IGkrKykgeworICAgICAgICAgICAgc3RvcmUuYWRkKHsgaW5kZXhlZFByb3BlcnR5
OiAiZGF0YSIgKyBpIH0pOworICAgICAgICB9CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nl
c3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBpbmRleCA9IGRiLnRyYW5zYWN0aW9uKCJz
dG9yZSIpCisgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAg
ICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpOworCisgICAgICAgIGFzc2VydF90aHJv
d3MoIkRhdGFFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgaW5kZXguY291bnQoTmFO
KTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgdC5kb25lKCk7CisgICAgfQorPC9zY3JpcHQ+CisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhf
Z2V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
aW5kZXhfZ2V0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li4wNjAxYzc4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJpbmRleF9nZXQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNT
IElEQkluZGV4LmdldCgpIC0gcmV0dXJucyB0aGUgcmVjb3JkICAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXQuaHRtIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXQuaHRtCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlNDZlMTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldC5odG0KQEAgLTAsMCAr
MSwzNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+
SURCSW5kZXguZ2V0KCkgLSByZXR1cm5zIHRoZSByZWNvcmQgPC90aXRsZT4KKzxsaW5rIHJlbD0i
YXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20i
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlw
dD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkID0g
eyBrZXk6IDEsIGluZGV4ZWRQcm9wZXJ0eTogImRhdGEiIH07CisKKyAgICB2YXIgb3Blbl9ycSA9
IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkg
eworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0g
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKKyAgICAg
ICAgaW5kZXggPSBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5
Iik7CisKKyAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZCk7CisgICAgfQorCisgICAgb3Blbl9y
cS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0
aW9uKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisg
ICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpCisgICAgICAgICAgICAgICAgICAgLmdl
dChyZWNvcmQuaW5kZXhlZFByb3BlcnR5KTsKKworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0
ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0
LnJlc3VsdC5rZXksIHJlY29yZC5rZXkpOworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAg
IH0pOworICAgIH0KKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXQyLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0
Mi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjAyMmI1
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiaW5kZXhfZ2V0Mi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCSW5k
ZXguZ2V0KCkgLSByZXR1cm5zIHRoZSByZWNvcmQgd2hlcmUgdGhlIGluZGV4IGNvbnRhaW5zIGR1
cGxpY2F0ZSB2YWx1ZXMgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmluZGV4X2dldDIuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJpbmRleF9nZXQyLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5kNjc1OWNiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJpbmRleF9nZXQyLmh0bQpAQCAtMCwwICsxLDM5IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJJbmRleC5nZXQoKSAtIHJl
dHVybnMgdGhlIHJlY29yZCB3aGVyZSB0aGUgaW5kZXggY29udGFpbnMgZHVwbGljYXRlIHZhbHVl
cyA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0
dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQu
anMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190
ZXN0KCksCisgICAgICByZWNvcmRzID0gWyB7IGtleToxLCBpbmRleGVkUHJvcGVydHk6ImRhdGEi
IH0sCisgICAgICAgICAgICAgICAgICB7IGtleToyLCBpbmRleGVkUHJvcGVydHk6ImRhdGEiIH0s
CisgICAgICAgICAgICAgICAgICB7IGtleTozLCBpbmRleGVkUHJvcGVydHk6ImRhdGEiIH0gXTsK
KworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVu
ZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAg
ICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0
aDogImtleSIgfSk7CisgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpbmRl
eGVkUHJvcGVydHkiKTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVu
Z3RoOyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgfTsK
KworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgcnEg
PSBkYi50cmFuc2FjdGlvbigidGVzdCIpCisgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3Jl
KCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAuaW5kZXgoImluZGV4IikKKyAgICAgICAgICAg
ICAgICAgICAuZ2V0KCJkYXRhIik7CisKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1
bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1
bHQua2V5LCByZWNvcmRzWzBdLmtleSk7CisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAg
fSk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXQzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0
My1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTY5NWJl
MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiaW5kZXhfZ2V0My1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK0ZBSUwgSURCSW5k
ZXguZ2V0KCkgLSBhdHRlbXB0IHRvIHJldHJpZXZlIGEgcmVjb3JkIHRoYXQgZG9lc24ndCBleGlz
dCAgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHVuZGVmaW5lZCkgdW5kZWZpbmVkIGJ1dCBnb3Qg
KG9iamVjdCkgbnVsbAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmluZGV4X2dldDMuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJpbmRleF9nZXQzLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5mYzBiOTUxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJpbmRleF9nZXQzLmh0bQpAQCAtMCwwICsxLDI3IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJJbmRleC5nZXQoKSAtIGF0dGVt
cHQgdG8gcmV0cmlldmUgYSByZWNvcmQgdGhhdCBkb2Vzbid0IGV4aXN0IDwvdGl0bGU+Cis8bGlu
ayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3Nv
ZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisK
KzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKKworICAgIHZh
ciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBm
dW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIg
cnEgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogImtleSIgfSkKKyAg
ICAgICAgICAgICAgICAgICAuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIp
CisgICAgICAgICAgICAgICAgICAgLmdldCgxKTsKKworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0
LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFy
Z2V0LnJlc3VsdCwgdW5kZWZpbmVkKTsKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9
KTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldDQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXQ0
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTQ0ODhh
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJpbmRleF9nZXQ0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJJbmRl
eC5nZXQoKSAtIHJldHVybnMgdGhlIHJlY29yZCB3aXRoIHRoZSBmaXJzdCBrZXkgaW4gdGhlIHJh
bmdlICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJpbmRleF9nZXQ0Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
aW5kZXhfZ2V0NC5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTM0ZTlj
ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiaW5kZXhfZ2V0NC5odG0KQEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0
YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPklEQkluZGV4LmdldCgpIC0gcmV0dXJucyB0aGUgcmVj
b3JkIHdpdGggdGhlIGZpcnN0IGtleSBpbiB0aGUgcmFuZ2UgPC90aXRsZT4KKzxsaW5rIHJlbD0i
YXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20i
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+
CisgICAgdmFyIGRiLCB0ID0gYXN5bmNfdGVzdCgpOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVh
dGVkYih0KTsKKworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewor
ICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIHN0b3JlID0gZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKKyAgICAgICAgc3Rv
cmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpOworCisgICAgICAgIGZv
cih2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKSB7CisgICAgICAgICAgICBzdG9yZS5hZGQoeyBrZXk6
IGksIGluZGV4ZWRQcm9wZXJ0eTogImRhdGEiICsgaSB9KTsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgcnEgPSBk
Yi50cmFuc2FjdGlvbigic3RvcmUiKQorICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgi
c3RvcmUiKQorICAgICAgICAgICAgICAgICAgIC5pbmRleCgiaW5kZXgiKQorICAgICAgICAgICAg
ICAgICAgIC5nZXQoSURCS2V5UmFuZ2UuYm91bmQoJ2RhdGE0JywgJ2RhdGE3JykpOworCisgICAg
ICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAg
IGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LmtleSwgNCk7CisgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5pbmRleGVkUHJvcGVydHksICdkYXRhNCcpOworCisg
ICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0LmRvbmUoKTsgfSwgNCkKKyAgICAg
ICAgfSk7CisgICAgfQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXQ1LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0
NS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzYzOGMw
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiaW5kZXhfZ2V0NS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCSW5k
ZXguZ2V0KCkgLSB0aHJvdyBEYXRhRXJyb3Igd2hlbiB1c2luZyBpbnZhbGlkIGtleSAgCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0
NS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldDUu
aHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAxNTI0OTIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dl
dDUuaHRtCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgorPHRpdGxlPklEQkluZGV4LmdldCgpIC0gdGhyb3cgRGF0YUVycm9yIHdoZW4gdXNp
bmcgaW52YWxpZCBrZXkgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwi
IGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwj
d2lkbC1JREJJbmRleC1nZXQtSURCUmVxdWVzdC1hbnkta2V5Ij4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlw
dD4KKyAgICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Bl
bl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rp
b24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICB2YXIgaW5k
ZXggPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogImtleSIgfSkKKyAg
ICAgICAgICAgICAgICAgICAgICAuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0
eSIpOworICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLGZ1bmN0aW9uKCl7CisgICAg
ICAgICAgICBpbmRleC5nZXQoTmFOKTsKKyAgICAgICAgfSk7CisgICAgICAgIHQuZG9uZSgpOwor
ICAgIH07Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJpbmRleF9nZXQ2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0Ni1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzA2MTZhNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0Ni1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCSW5kZXguZ2V0KCkgLSB0aHJvdyBJbnZhbGlkU3Rh
dGVFcnJvciB3aGVuIHRoZSBpbmRleCBpcyBkZWxldGVkIAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldDYuaHRtIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXQ2Lmh0bQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNWI3NjNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXQ2Lmh0bQpAQCAtMCwwICsx
LDI5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5J
REJJbmRleC5nZXQoKSAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yIHdoZW4gdGhlIGluZGV4IGlz
IGRlbGV0ZWQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0i
aHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2
Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlE
QkluZGV4LWdldC1JREJSZXF1ZXN0LWFueS1rZXkiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1
cHBvcnQuanM+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KKyAgICB2
YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9ycSA9IGNy
ZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewor
ICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIHN0b3JlID0gZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKKyAgICAgICAgdmFy
IGluZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpOwor
CisgICAgICAgIHN0b3JlLmFkZCh7IGtleTogMSwgaW5kZXhlZFByb3BlcnR5OiAiZGF0YSIgfSk7
CisgICAgICAgIHN0b3JlLmRlbGV0ZUluZGV4KCJpbmRleCIpOworCisgICAgICAgIGFzc2VydF90
aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKXsKKyAgICAgICAgICAgIGluZGV4
LmdldCgiZGF0YSIpOworICAgICAgICB9KTsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfQorPC9z
Y3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiaW5kZXhfZ2V0Ny1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmluZGV4X2dldDctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjM0NDdlYTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldDctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NSBAQAorCitGQUlMIElEQkluZGV4LmdldCgpIC0gdGhyb3cgVHJhbnNhY3Rpb25JbmFjdGl2ZUVy
cm9yIG9uIGFib3J0ZWQgdHJhbnNhY3Rpb24gYXNzZXJ0X3Rocm93czogZnVuY3Rpb24gImZ1bmN0
aW9uICgpeworICAgICAgICAgICAgaW5kZXguZ2V0KCJkYXRhIik7CisgICAgICAgIH0iIHRocmV3
IG9iamVjdCAiRXJyb3I6IFRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvcjogRE9NIElEQkRhdGFiYXNl
IEV4Y2VwdGlvbiAwIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBJbnZhbGlkU3RhdGVFcnJv
cjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDAsIGV4cGVjdGVkIDExCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0Ny5odG0g
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldDcuaHRtCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg5NzM1ZWEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldDcuaHRt
CkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPklEQkluZGV4LmdldCgpIC0gdGhyb3cgVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9y
IG9uIGFib3J0ZWQgdHJhbnNhY3Rpb248L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxl
PSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBo
cmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZp
ZXcuaHRtbCN3aWRsLUlEQkluZGV4LWdldC1JREJSZXF1ZXN0LWFueS1rZXkiPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2Pgor
PHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2
YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0g
ZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFy
IHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9
KTsKKyAgICAgICAgdmFyIGluZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4
ZWRQcm9wZXJ0eSIpOworICAgICAgICBzdG9yZS5hZGQoeyBrZXk6IDEsIGluZGV4ZWRQcm9wZXJ0
eTogImRhdGEiIH0pOworCisgICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uLmFib3J0KCk7CisK
KyAgICAgICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpewor
ICAgICAgICAgICAgaW5kZXguZ2V0KCJkYXRhIik7CisgICAgICAgIH0pOworICAgICAgICB0LmRv
bmUoKTsKKyAgICB9Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXktZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3ODNlODUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCSW5kZXguZ2V0S2V5KCkgLSBy
ZXR1cm5zIHRoZSByZWNvcmQncyBwcmltYXJ5IGtleSAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5Lmh0bSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5Lmh0bQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNzAxYmEzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXkuaHRtCkBAIC0w
LDAgKzEsMzggQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRp
dGxlPklEQkluZGV4LmdldEtleSgpIC0gcmV0dXJucyB0aGUgcmVjb3JkJ3MgcHJpbWFyeSBrZXkg
PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRw
Oi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0Lmpz
Ij48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVz
dCgpLAorICAgICAgcmVjb3JkID0geyBrZXk6MSwgaW5kZXhlZFByb3BlcnR5OiJkYXRhIiB9Owor
CisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5l
ZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAg
ICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRo
OiAia2V5IiB9KTsKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4
ZWRQcm9wZXJ0eSIpOworCisgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmQpOworICAgIH07CisK
KyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIHJxID0g
ZGIudHJhbnNhY3Rpb24oInRlc3QiKQorICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgi
dGVzdCIpOworCisgICAgICAgIHJxID0gcnEuaW5kZXgoImluZGV4Iik7CisKKyAgICAgICAgcnEg
PSBycS5nZXRLZXkoImRhdGEiKTsKKworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVu
YyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3Vs
dCwgcmVjb3JkLmtleSk7CisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAg
fTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXkyLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5Mi1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYTgwMzNmMAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
aW5kZXhfZ2V0S2V5Mi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCSW5k
ZXguZ2V0S2V5KCkgLSByZXR1cm5zIHRoZSByZWNvcmQncyBwcmltYXJ5IGtleSB3aGVyZSB0aGUg
aW5kZXggY29udGFpbnMgZHVwbGljYXRlIHZhbHVlcyAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5Mi5odG0gYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTIuaHRtCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY0MmU4MWQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTIuaHRtCkBA
IC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PHRpdGxlPklEQkluZGV4LmdldEtleSgpIC0gcmV0dXJucyB0aGUgcmVjb3JkJ3MgcHJpbWFyeSBr
ZXkgd2hlcmUgdGhlIGluZGV4IGNvbnRhaW5zIGR1cGxpY2F0ZSB2YWx1ZXMgPC90aXRsZT4KKzxs
aW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jv
c29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4K
KworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAg
cmVjb3JkcyA9IFsgeyBrZXk6MSwgaW5kZXhlZFByb3BlcnR5OiJkYXRhIiB9LAorICAgICAgICAg
ICAgICAgICAgeyBrZXk6MiwgaW5kZXhlZFByb3BlcnR5OiJkYXRhIiB9LAorICAgICAgICAgICAg
ICAgICAgeyBrZXk6MywgaW5kZXhlZFByb3BlcnR5OiJkYXRhIiB9IF07CisKKyAgICB2YXIgb3Bl
bl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rp
b24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0
b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJrZXkiIH0pOwor
ICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5Iik7
CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCByZWNvcmRzLmxlbmd0aDsgaSsrKQorICAg
ICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOworICAgIH07CisKKyAgICBvcGVuX3Jx
Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rp
b24oInRlc3QiKQorICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIpCisgICAg
ICAgICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpCisgICAgICAgICAgICAgICAgICAgLmdldEtl
eSgiZGF0YSIpOworCisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCByZWNvcmRz
WzBdLmtleSk7CisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfTsKKzwv
c2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXkzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5My1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjgyMzc3MwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhf
Z2V0S2V5My1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCSW5kZXguZ2V0
S2V5KCkgLSBhdHRlbXB0IHRvIHJldHJpZXZlIHRoZSBwcmltYXJ5IGtleSBvZiBhIHJlY29yZCB0
aGF0IGRvZXNuJ3QgZXhpc3QgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5My5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTMuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjZkNjg0YmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTMuaHRtCkBAIC0wLDAgKzEsMjggQEAK
KzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQkluZGV4
LmdldEtleSgpIC0gYXR0ZW1wdCB0byByZXRyaWV2ZSB0aGUgcHJpbWFyeSBrZXkgb2YgYSByZWNv
cmQgdGhhdCBkb2Vzbid0IGV4aXN0PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0i
TWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIs
CisgICAgICB0ID0gYXN5bmNfdGVzdCgpOworCisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRi
KHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAg
ICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIHJxID0gZGIuY3JlYXRlT2JqZWN0
U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJrZXkiIH0pCisgICAgICAgICAgICAgICAgICAgLmNy
ZWF0ZUluZGV4KCJpbmRleCIsICJpbmRleGVkUHJvcGVydHkiKQorICAgICAgICAgICAgICAgICAg
IC5nZXRLZXkoMSk7CisKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rp
b24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIHVuZGVm
aW5lZCk7CisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfTsKKzwvc2Ny
aXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXk0LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0S2V5NC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTM3MjY3NgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0
S2V5NC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCSW5kZXguZ2V0S2V5
KCkgLSByZXR1cm5zIHRoZSBrZXkgb2YgdGhlIGZpcnN0IHJlY29yZCB3aXRoaW4gdGhlIHJhbmdl
ICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJp
bmRleF9nZXRLZXk0Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
aW5kZXhfZ2V0S2V5NC5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDcx
ZWQ2NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiaW5kZXhfZ2V0S2V5NC5odG0KQEAgLTAsMCArMSwzOCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPklEQkluZGV4LmdldEtleSgpIC0gcmV0dXJu
cyB0aGUga2V5IG9mIHRoZSBmaXJzdCByZWNvcmQgd2l0aGluIHRoZSByYW5nZSA8L3RpdGxlPgor
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWlj
cm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4K
KworPHNjcmlwdD4KKyAgICB2YXIgZGIsIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Bl
bl9ycSA9IGNyZWF0ZWRiKHQpOworCisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgc3Rv
cmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJrZXkiIH0pOwor
ICAgICAgICBzdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5Iik7CisK
KyAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IDEwOyBpKyspIHsKKyAgICAgICAgICAgIHN0b3Jl
LmFkZCh7IGtleTogaSwgaW5kZXhlZFByb3BlcnR5OiAiZGF0YSIgKyBpIH0pOworICAgICAgICB9
CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAg
IHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgLm9i
amVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgLmluZGV4KCJpbmRleCIpCisg
ICAgICAgICAgICAgICAgICAgLmdldEtleShJREJLZXlSYW5nZS5ib3VuZCgnZGF0YTQnLCAnZGF0
YTcnKSk7CisKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkg
eworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIDQpOworCisgICAg
ICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeyB0LmRvbmUoKTsgfSwgNCkKKyAgICAgICAg
fSk7CisgICAgfQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXk1LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfZ2V0
S2V5NS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTJh
NmY1NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRiaW5kZXhfZ2V0S2V5NS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1Mg
SURCSW5kZXguZ2V0S2V5KCkgLSB0aHJvdyBEYXRhRXJyb3Igd2hlbiB1c2luZyBpbnZhbGlkIGtl
eSAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
aW5kZXhfZ2V0S2V5NS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmluZGV4X2dldEtleTUuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgx
MmMzY2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmluZGV4X2dldEtleTUuaHRtCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBodG1s
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQkluZGV4LmdldEtleSgpIC0gdGhy
b3cgRGF0YUVycm9yIHdoZW4gdXNpbmcgaW52YWxpZCBrZXkgPC90aXRsZT4KKzxsaW5rIHJlbD0i
YXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5r
IHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZp
bGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJJbmRleC1nZXRLZXktSURCUmVxdWVzdC1hbnkt
a2V5Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2
IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3lu
Y190ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEu
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJl
c3VsdDsKKworICAgICAgICB2YXIgaW5kZXggPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIs
IHsga2V5UGF0aDogImtleSIgfSkKKyAgICAgICAgICAgICAgICAgICAgICAuY3JlYXRlSW5kZXgo
ImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpOworICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRh
RXJyb3IiLGZ1bmN0aW9uKCl7CisgICAgICAgICAgICBpbmRleC5nZXRLZXkoTmFOKTsKKyAgICAg
ICAgfSk7CisgICAgICAgIHQuZG9uZSgpOworICAgIH07Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXk2LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhf
Z2V0S2V5Ni1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
OTk5MTIyZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiaW5kZXhfZ2V0S2V5Ni1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BB
U1MgSURCSW5kZXguZ2V0S2V5KCkgLSB0aHJvdyBJbnZhbGlkU3RhdGVFcnJvciB3aGVuIHRoZSBp
bmRleCBpcyBkZWxldGVkIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTYuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXk2Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5mMGM4ZTg4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9nZXRLZXk2Lmh0bQpAQCAtMCwwICsxLDI5IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJJbmRleC5n
ZXRLZXkoKSAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yIHdoZW4gdGhlIGluZGV4IGlzIGRlbGV0
ZWQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDov
L3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMu
b3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkluZGV4
LWdldEtleS1JREJSZXF1ZXN0LWFueS1rZXkiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBv
cnQuanM+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KKyAgICB2YXIg
ZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0
ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAg
ICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIHN0b3JlID0gZGIuY3JlYXRl
T2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKKyAgICAgICAgdmFyIGlu
ZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpOworCisg
ICAgICAgIHN0b3JlLmFkZCh7IGtleTogMSwgaW5kZXhlZFByb3BlcnR5OiAiZGF0YSIgfSk7Cisg
ICAgICAgIHN0b3JlLmRlbGV0ZUluZGV4KCJpbmRleCIpOworCisgICAgICAgIGFzc2VydF90aHJv
d3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKXsKKyAgICAgICAgICAgIGluZGV4Lmdl
dEtleSgiZGF0YSIpOworICAgICAgICB9KTsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfQorPC9z
Y3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRiaW5kZXhfZ2V0S2V5Ny1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmI1NjA5ZTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X2dldEtleTctZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNSBAQAorCitGQUlMIElEQkluZGV4LmdldEtleSgpIC0gdGhyb3cgVHJhbnNhY3Rp
b25JbmFjdGl2ZUVycm9yIG9uIGFib3J0ZWQgdHJhbnNhY3Rpb24gYXNzZXJ0X3Rocm93czogZnVu
Y3Rpb24gImZ1bmN0aW9uICgpeworICAgICAgICAgICAgaW5kZXguZ2V0S2V5KCJkYXRhIik7Cisg
ICAgICAgIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IFRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvcjog
RE9NIElEQkRhdGFiYXNlIEV4Y2VwdGlvbiAwIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2VwdGlvbiBJ
bnZhbGlkU3RhdGVFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDAsIGV4cGVjdGVk
IDExCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
aW5kZXhfZ2V0S2V5Ny5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YmluZGV4X2dldEtleTcuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJk
ZTA4MDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYmluZGV4X2dldEtleTcuaHRtCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1s
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQkluZGV4LmdldEtleSgpIC0gdGhy
b3cgVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yIG9uIGFib3J0ZWQgdHJhbnNhY3Rpb248L3RpdGxl
PgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRl
bC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0lu
ZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkluZGV4LWdldEtleS1J
REJSZXF1ZXN0LWFueS1rZXkiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9z
Y3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAg
ICAgIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwor
ICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9
IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKKyAgICAgICAgdmFyIGluZGV4ID0gc3Rv
cmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpOworICAgICAgICBzdG9y
ZS5hZGQoeyBrZXk6IDEsIGluZGV4ZWRQcm9wZXJ0eTogImRhdGEiIH0pOworCisgICAgICAgIGUu
dGFyZ2V0LnRyYW5zYWN0aW9uLmFib3J0KCk7CisKKyAgICAgICAgYXNzZXJ0X3Rocm93cygiSW52
YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpeworICAgICAgICAgICAgaW5kZXguZ2V0S2V5KCJk
YXRhIik7CisgICAgICAgIH0pOworICAgICAgICB0LmRvbmUoKTsKKyAgICB9Cis8L3NjcmlwdD4K
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRl
eF9pbmRleE5hbWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiaW5kZXhfaW5kZXhOYW1lcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNDg4NjA0NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfaW5kZXhOYW1lcy1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCSW5kZXguZ2V0S2V5KCkgLSByZXR1cm5zIHRoZSBy
ZWNvcmQncyBwcmltYXJ5IGtleSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJpbmRleF9pbmRleE5hbWVzLmh0bSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfaW5kZXhOYW1lcy5odG0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uYTBlNDBlNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfaW5kZXhOYW1lcy5odG0KQEAgLTAs
MCArMSwzNCBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0
bGU+SURCSW5kZXguZ2V0S2V5KCkgLSByZXR1cm5zIHRoZSByZWNvcmQncyBwcmltYXJ5IGtleTwv
dGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20i
IHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBw
b3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5
bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6IDEwMDAwfSk7CisKKyAgICB2YXIgb3Bl
bl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rp
b24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0
b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInRlc3QiLCB7IGtleVBhdGg6ICJrZXkiIH0pOwor
ICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiZGF0YSIpOworCisgICAgICAg
IGFzc2VydF9lcXVhbHMob2JqU3RvcmUuaW5kZXhOYW1lc1swXSwgImluZGV4IiwgImluZGV4TmFt
ZXMiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhvYmpTdG9yZS5pbmRleE5hbWVzLmxlbmd0aCwg
MSwgImluZGV4TmFtZXMubGVuZ3RoIik7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNz
ID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi50cmFuc2FjdGlvbigi
dGVzdCIpCisgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJ0ZXN0Iik7CisKKyAgICAg
ICAgYXNzZXJ0X2VxdWFscyhvYmpTdG9yZS5pbmRleE5hbWVzWzBdLCAiaW5kZXgiLCAiaW5kZXhO
YW1lcyAoc2Vjb25kKSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKG9ialN0b3JlLmluZGV4TmFt
ZXMubGVuZ3RoLCAxLCAiaW5kZXhOYW1lcy5sZW5ndGggKHNlY29uZCkiKTsKKworICAgICAgICB0
LmRvbmUoKTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X29wZW5D
dXJzb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJpbmRleF9vcGVuQ3Vyc29yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi42NzhjY2FlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9vcGVuQ3Vyc29yLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMgQEAKKworUEFTUyBJREJJbmRleC5vcGVuQ3Vyc29yKCkgLSB0aHJvdyBJbnZhbGlkU3Rh
dGVFcnJvciB3aGVuIHRoZSBpbmRleCBpcyBkZWxldGVkIAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X29wZW5DdXJzb3IuaHRtIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9vcGVuQ3Vyc29yLmh0bQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mOWZiNjhhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9vcGVuQ3Vy
c29yLmh0bQpAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KKzx0aXRsZT5JREJJbmRleC5vcGVuQ3Vyc29yKCkgLSB0aHJvdyBJbnZhbGlkU3Rh
dGVFcnJvciB3aGVuIHRoZSBpbmRleCBpcyBkZWxldGVkPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0
aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5rIHJl
bD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUv
dGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJJbmRleC1vcGVuQ3Vyc29yLUlEQlJlcXVlc3QtYW55
LXJhbmdlLUlEQkN1cnNvckRpcmVjdGlvbi1kaXJlY3Rpb24iPgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4K
KyAgICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9y
cSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIHN0b3JlID0g
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKKyAgICAg
ICAgdmFyIGluZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0
eSIpOworCisgICAgICAgIHN0b3JlLmFkZCh7IGtleTogMSwgaW5kZXhlZFByb3BlcnR5OiAiZGF0
YSIgfSk7CisgICAgICAgIHN0b3JlLmRlbGV0ZUluZGV4KCJpbmRleCIpOworCisgICAgICAgIGFz
c2VydF90aHJvd3MoIkludmFsaWRTdGF0ZUVycm9yIiwgZnVuY3Rpb24oKXsKKyAgICAgICAgICAg
IGluZGV4Lm9wZW5DdXJzb3IoKTsKKyAgICAgICAgfSk7CisgICAgICAgIHQuZG9uZSgpOworICAg
IH0KKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYmluZGV4X29wZW5DdXJzb3IyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfb3BlbkN1cnNvcjItZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY3ODRiM2QKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X29wZW5DdXJz
b3IyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKworRkFJTCBJREJJbmRleC5vcGVuQ3Vy
c29yKCkgLSB0aHJvdyBUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3Igb24gYWJvcnRlZCB0cmFuc2Fj
dGlvbiBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCl7CisgICAgICAgICAgICBp
bmRleC5vcGVuQ3Vyc29yKCk7CisgICAgICAgIH0iIHRocmV3IG9iamVjdCAiRXJyb3I6IFRyYW5z
YWN0aW9uSW5hY3RpdmVFcnJvcjogRE9NIElEQkRhdGFiYXNlIEV4Y2VwdGlvbiAwIiB0aGF0IGlz
IG5vdCBhIERPTUV4Y2VwdGlvbiBJbnZhbGlkU3RhdGVFcnJvcjogcHJvcGVydHkgImNvZGUiIGlz
IGVxdWFsIHRvIDAsIGV4cGVjdGVkIDExCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfb3BlbkN1cnNvcjIuaHRtIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9vcGVuQ3Vyc29yMi5odG0KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDEzOGFjYgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfb3BlbkN1cnNvcjIuaHRt
CkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPklEQkluZGV4Lm9wZW5DdXJzb3IoKSAtIHRocm93IFRyYW5zYWN0aW9uSW5hY3Rp
dmVFcnJvciBvbiBhYm9ydGVkIHRyYW5zYWN0aW9uPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5rIHJlbD0i
aGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlw
L092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJJbmRleC1vcGVuQ3Vyc29yLUlEQlJlcXVlc3QtYW55LXJh
bmdlLUlEQkN1cnNvckRpcmVjdGlvbi1kaXJlY3Rpb24iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PXN1cHBvcnQuanM+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KKyAg
ICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9ycSA9
IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkg
eworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIHN0b3JlID0gZGIu
Y3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKKyAgICAgICAg
dmFyIGluZGV4ID0gc3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIp
OworICAgICAgICBzdG9yZS5hZGQoeyBrZXk6IDEsIGluZGV4ZWRQcm9wZXJ0eTogImRhdGEiIH0p
OworCisgICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uLmFib3J0KCk7CisKKyAgICAgICAgYXNz
ZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpeworICAgICAgICAgICAg
aW5kZXgub3BlbkN1cnNvcigpOworICAgICAgICB9KTsKKyAgICAgICAgdC5kb25lKCk7CisgICAg
fQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRiaW5kZXhfb3BlbktleUN1cnNvci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X29wZW5LZXlDdXJzb3ItZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUxMmJjYWIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X29wZW5L
ZXlDdXJzb3ItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkluZGV4Lm9w
ZW5LZXlDdXJzb3IoKSAtIHRocm93IERhdGFFcnJvciB3aGVuIHVzaW5nIGEgaW52YWxpZCBrZXkg
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5k
ZXhfb3BlbktleUN1cnNvci5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmluZGV4X29wZW5LZXlDdXJzb3IuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjc1NTVlMDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYmluZGV4X29wZW5LZXlDdXJzb3IuaHRtCkBAIC0wLDAgKzEsMjggQEAK
KzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQkluZGV4
Lm9wZW5LZXlDdXJzb3IoKSAtIHRocm93IERhdGFFcnJvciB3aGVuIHVzaW5nIGEgaW52YWxpZCBr
ZXk8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDov
L3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMu
b3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkluZGV4
LW9wZW5LZXlDdXJzb3ItSURCUmVxdWVzdC1hbnktcmFuZ2UtSURCQ3Vyc29yRGlyZWN0aW9uLWRp
cmVjdGlvbiI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKzxk
aXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgICAgdCA9IGFz
eW5jX3Rlc3QoKTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9y
cS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQu
cmVzdWx0OworICAgICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUi
LCB7IGtleVBhdGg6ICJrZXkiIH0pOworICAgICAgICB2YXIgaW5kZXggPSBzdG9yZS5jcmVhdGVJ
bmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5Iik7CisKKyAgICAgICAgc3RvcmUuYWRkKHsg
a2V5OiAxLCBpbmRleGVkUHJvcGVydHk6ICJkYXRhIiB9KTsKKworICAgICAgICBhc3NlcnRfdGhy
b3dzKCJEYXRhRXJyb3IiLCBmdW5jdGlvbigpeworICAgICAgICAgICAgaW5kZXgub3BlbktleUN1
cnNvcihOYU4pOworICAgICAgICB9KTsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfQorPC9zY3Jp
cHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
aW5kZXhfb3BlbktleUN1cnNvcjItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJpbmRleF9vcGVuS2V5Q3Vyc29yMi1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTRhNDRhNAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfb3BlbktleUN1cnNv
cjItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkluZGV4Lm9wZW5LZXlD
dXJzb3IoKSAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yIHdoZW4gdGhlIGluZGV4IGlzIGRlbGV0
ZWQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
aW5kZXhfb3BlbktleUN1cnNvcjIuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJpbmRleF9vcGVuS2V5Q3Vyc29yMi5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZDYzMmQxOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfb3BlbktleUN1cnNvcjIuaHRtCkBAIC0wLDAgKzEs
MjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklE
QkluZGV4Lm9wZW5LZXlDdXJzb3IoKSAtIHRocm93IEludmFsaWRTdGF0ZUVycm9yIHdoZW4gdGhl
IGluZGV4IGlzIGRlbGV0ZWQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRl
bCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJo
dHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRt
bCN3aWRsLUlEQkluZGV4LW9wZW5LZXlDdXJzb3ItSURCUmVxdWVzdC1hbnktcmFuZ2UtSURCQ3Vy
c29yRGlyZWN0aW9uLWRpcmVjdGlvbiI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5q
cz48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorICAgIHZhciBkYiwK
KyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIo
dCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAg
IGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmpl
Y3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJrZXkiIH0pOworICAgICAgICB2YXIgaW5kZXgg
PSBzdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5Iik7CisKKyAgICAg
ICAgc3RvcmUuYWRkKHsga2V5OiAxLCBpbmRleGVkUHJvcGVydHk6ICJkYXRhIiB9KTsKKyAgICAg
ICAgc3RvcmUuZGVsZXRlSW5kZXgoImluZGV4Iik7CisKKyAgICAgICAgYXNzZXJ0X3Rocm93cygi
SW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpeworICAgICAgICAgICAgaW5kZXgub3Blbktl
eUN1cnNvcigpOworICAgICAgICB9KTsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfQorPC9zY3Jp
cHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
aW5kZXhfb3BlbktleUN1cnNvcjMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJpbmRleF9vcGVuS2V5Q3Vyc29yMy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTVjYTJiZgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRiaW5kZXhfb3BlbktleUN1cnNv
cjMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorCitGQUlMIElEQkluZGV4Lm9wZW5LZXlD
dXJzb3IoKSAtIHRocm93IFRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvciBvbiBhYm9ydGVkIHRyYW5z
YWN0aW9uIGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKXsKKyAgICAgICAgICAg
IGluZGV4Lm9wZW5LZXlDdXJzb3IoKTsKKyAgICAgICAgfSIgdGhyZXcgb2JqZWN0ICJFcnJvcjog
VHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yOiBET00gSURCRGF0YWJhc2UgRXhjZXB0aW9uIDAiIHRo
YXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIEludmFsaWRTdGF0ZUVycm9yOiBwcm9wZXJ0eSAiY29k
ZSIgaXMgZXF1YWwgdG8gMCwgZXhwZWN0ZWQgMTEKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9vcGVuS2V5Q3Vyc29yMy5odG0gYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmluZGV4X29wZW5LZXlDdXJzb3IzLmh0
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40YTJiMmYxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJpbmRleF9vcGVu
S2V5Q3Vyc29yMy5odG0KQEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCSW5kZXgub3BlbktleUN1cnNvcigpIC0gdGhyb3cg
VHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yIG9uIGFib3J0ZWQgdHJhbnNhY3Rpb248L3RpdGxlPgor
PGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5j
b20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4
ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkluZGV4LW9wZW5LZXlDdXJz
b3ItSURCUmVxdWVzdC1hbnktcmFuZ2UtSURCQ3Vyc29yRGlyZWN0aW9uLWRpcmVjdGlvbiI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+
PC9kaXY+Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsK
KworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVu
ZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAg
ICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6
ICJrZXkiIH0pOworICAgICAgICB2YXIgaW5kZXggPSBzdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgi
LCAiaW5kZXhlZFByb3BlcnR5Iik7CisgICAgICAgIHN0b3JlLmFkZCh7IGtleTogMSwgaW5kZXhl
ZFByb3BlcnR5OiAiZGF0YSIgfSk7CisKKyAgICAgICAgZS50YXJnZXQudHJhbnNhY3Rpb24uYWJv
cnQoKTsKKworICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0
aW9uKCl7CisgICAgICAgICAgICBpbmRleC5vcGVuS2V5Q3Vyc29yKCk7CisgICAgICAgIH0pOwor
ICAgICAgICB0LmRvbmUoKTsKKyAgICB9Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJrZXlyYW5nZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmtleXJhbmdlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iNDI3NjcyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJrZXlyYW5nZS1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACisKK1BBU1MgSURCS2V5UmFuZ2Uub25seSgpIC0g
cmV0dXJucyBhbiBJREJLZXlSYW5nZSBhbmQgdGhlIHByb3BlcnRpZXMgYXJlIHNldCBjb3JyZWN0
bHkgCitQQVNTIElEQktleVJhbmdlLmxvd2VyQm91bmQoKSAtIHJldHVybnMgYW4gSURCS2V5UmFu
Z2UgYW5kIHRoZSBwcm9wZXJ0aWVzIGFyZSBzZXQgY29ycmVjdGx5IAorUEFTUyBJREJLZXlSYW5n
ZS5sb3dlckJvdW5kKCkgLSAnb3BlbicgcGFyYW1ldGVyIGhhcyBjb3JyZWN0IGRlZmF1bHQgc2V0
IAorUEFTUyBJREJLZXlSYW5nZS51cHBlckJvdW5kKCkgLSByZXR1cm5zIGFuIElEQktleVJhbmdl
IGFuZCB0aGUgcHJvcGVydGllcyBhcmUgc2V0IGNvcnJlY3RseSAKK1BBU1MgSURCS2V5UmFuZ2Uu
dXBwZXJCb3VuZCgpIC0gJ29wZW4nIHBhcmFtZXRlciBoYXMgY29ycmVjdCBkZWZhdWx0IHNldCAK
K1BBU1MgSURCS2V5UmFuZ2UuYm91bmQoKSAtIHJldHVybnMgYW4gSURCS2V5UmFuZ2UgYW5kIHRo
ZSBwcm9wZXJ0aWVzIGFyZSBzZXQgY29ycmVjdGx5IAorUEFTUyBJREJLZXlSYW5nZS5ib3VuZCgp
IC0gJ2xvd2VyT3BlbicgYW5kICd1cHBlck9wZW4nIHBhcmFtZXRlcnMgaGF2ZSBjb3JyZWN0IGRl
ZmF1bHRzIHNldCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJrZXlyYW5nZS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYmtleXJhbmdlLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNjJh
OTQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJrZXlyYW5nZS5odG0KQEAgLTAsMCArMSw2NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0
YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPklEQktleVJhbmdlIFRlc3RzPC90aXRsZT4KKzxsaW5r
IHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29m
dC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxz
Y3JpcHQ+CisgICAgLy8gb25seQorICAgIHRlc3QoIGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIg
a2V5UmFuZ2UgPSBJREJLZXlSYW5nZS5vbmx5KDEpOworICAgICAgICBhc3NlcnRfdHJ1ZShrZXlS
YW5nZSBpbnN0YW5jZW9mIElEQktleVJhbmdlLCAia2V5UmFuZ2UgaW5zdGFuY2VvZiBJREJLZXlS
YW5nZSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGtleVJhbmdlLmxvd2VyLCAxLCAia2V5UmFu
Z2UiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhrZXlSYW5nZS51cHBlciwgMSwgImtleVJhbmdl
Iik7CisgICAgICAgIGFzc2VydF9mYWxzZShrZXlSYW5nZS5sb3dlck9wZW4sICJrZXlSYW5nZS5s
b3dlck9wZW4iKTsKKyAgICAgICAgYXNzZXJ0X2ZhbHNlKGtleVJhbmdlLnVwcGVyT3BlbiwgImtl
eVJhbmdlLnVwcGVyT3BlbiIpOworICAgIH0sICJJREJLZXlSYW5nZS5vbmx5KCkgLSByZXR1cm5z
IGFuIElEQktleVJhbmdlIGFuZCB0aGUgcHJvcGVydGllcyBhcmUgc2V0IGNvcnJlY3RseSIpOwor
CisgICAgLy8gbG93ZXJCb3VuZAorICAgIHRlc3QoIGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIg
a2V5UmFuZ2UgPSBJREJLZXlSYW5nZS5sb3dlckJvdW5kKDEsIHRydWUpCisgICAgICAgIGFzc2Vy
dF90cnVlKGtleVJhbmdlIGluc3RhbmNlb2YgSURCS2V5UmFuZ2UsICJrZXlSYW5nZSBpbnN0YW5j
ZW9mIElEQktleVJhbmdlIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoa2V5UmFuZ2UubG93ZXIs
IDEsICJrZXlSYW5nZS5sb3dlciIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGtleVJhbmdlLnVw
cGVyLCB1bmRlZmluZWQsICJrZXlSYW5nZS51cHBlciIpOworICAgICAgICBhc3NlcnRfdHJ1ZShr
ZXlSYW5nZS5sb3dlck9wZW4sICJrZXlSYW5nZS5sb3dlck9wZW4iKTsKKyAgICAgICAgYXNzZXJ0
X3RydWUoa2V5UmFuZ2UudXBwZXJPcGVuLCAia2V5UmFuZ2UudXBwZXJPcGVuIik7CisgICAgfSwg
IklEQktleVJhbmdlLmxvd2VyQm91bmQoKSAtIHJldHVybnMgYW4gSURCS2V5UmFuZ2UgYW5kIHRo
ZSBwcm9wZXJ0aWVzIGFyZSBzZXQgY29ycmVjdGx5Iik7CisKKyAgICB0ZXN0KCBmdW5jdGlvbigp
IHsKKyAgICAgICAgdmFyIGtleVJhbmdlID0gSURCS2V5UmFuZ2UubG93ZXJCb3VuZCgxKTsKKyAg
ICAgICAgYXNzZXJ0X2ZhbHNlKGtleVJhbmdlLmxvd2VyT3BlbiwgImtleVJhbmdlLmxvd2VyT3Bl
biIpOworICAgIH0sICJJREJLZXlSYW5nZS5sb3dlckJvdW5kKCkgLSAnb3BlbicgcGFyYW1ldGVy
IGhhcyBjb3JyZWN0IGRlZmF1bHQgc2V0Iik7CisKKyAgICAvLyB1cHBlckJvdW5kCisgICAgdGVz
dCggZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB2YXIga2V5UmFuZ2UgPSBJREJLZXlSYW5nZS51
cHBlckJvdW5kKDEsIHRydWUpOworICAgICAgICAgICAgYXNzZXJ0X3RydWUoa2V5UmFuZ2UgaW5z
dGFuY2VvZiBJREJLZXlSYW5nZSwgImtleVJhbmdlIGluc3RhbmNlb2YgSURCS2V5UmFuZ2UiKTsK
KyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoa2V5UmFuZ2UubG93ZXIsIHVuZGVmaW5lZCwgImtl
eVJhbmdlLmxvd2VyIik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGtleVJhbmdlLnVwcGVy
LCAxLCAia2V5UmFuZ2UudXBwZXIiKTsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGtleVJhbmdl
Lmxvd2VyT3BlbiwgImtleVJhbmdlLmxvd2VyT3BlbiIpOworICAgICAgICAgICAgYXNzZXJ0X3Ry
dWUoa2V5UmFuZ2UudXBwZXJPcGVuLCAia2V5UmFuZ2UudXBwZXJPcGVuIik7CisgICAgfSwgIklE
QktleVJhbmdlLnVwcGVyQm91bmQoKSAtIHJldHVybnMgYW4gSURCS2V5UmFuZ2UgYW5kIHRoZSBw
cm9wZXJ0aWVzIGFyZSBzZXQgY29ycmVjdGx5Iik7CisKKyAgICB0ZXN0KCBmdW5jdGlvbigpIHsK
KyAgICAgICAgdmFyIGtleVJhbmdlID0gSURCS2V5UmFuZ2UudXBwZXJCb3VuZCgxKTsKKyAgICAg
ICAgYXNzZXJ0X2ZhbHNlKGtleVJhbmdlLnVwcGVyT3BlbiwgImtleVJhbmdlLnVwcGVyT3BlbiIp
OworICAgIH0sICJJREJLZXlSYW5nZS51cHBlckJvdW5kKCkgLSAnb3BlbicgcGFyYW1ldGVyIGhh
cyBjb3JyZWN0IGRlZmF1bHQgc2V0Iik7CisKKyAgICAvLyBib3VuZAorICAgIHRlc3QoIGZ1bmN0
aW9uKCkgeworICAgICAgICB2YXIga2V5UmFuZ2UgPSBJREJLZXlSYW5nZS5ib3VuZCgxLCAyLCB0
cnVlLCB0cnVlKTsKKyAgICAgICAgYXNzZXJ0X3RydWUoa2V5UmFuZ2UgaW5zdGFuY2VvZiBJREJL
ZXlSYW5nZSwgImtleVJhbmdlIGluc3RhbmNlb2YgSURCS2V5UmFuZ2UiKTsKKyAgICAgICAgYXNz
ZXJ0X2VxdWFscyhrZXlSYW5nZS5sb3dlciwgMSwgImtleVJhbmdlIik7CisgICAgICAgIGFzc2Vy
dF9lcXVhbHMoa2V5UmFuZ2UudXBwZXIsIDIsICJrZXlSYW5nZSIpOworICAgICAgICBhc3NlcnRf
dHJ1ZShrZXlSYW5nZS5sb3dlck9wZW4sICJrZXlSYW5nZS5sb3dlck9wZW4iKTsKKyAgICAgICAg
YXNzZXJ0X3RydWUoa2V5UmFuZ2UudXBwZXJPcGVuLCAia2V5UmFuZ2UudXBwZXJPcGVuIik7Cisg
ICAgfSwgIklEQktleVJhbmdlLmJvdW5kKCkgLSByZXR1cm5zIGFuIElEQktleVJhbmdlIGFuZCB0
aGUgcHJvcGVydGllcyBhcmUgc2V0IGNvcnJlY3RseSIpOworCisgICAgdGVzdCggZnVuY3Rpb24o
KSB7CisgICAgICAgIHZhciBrZXlSYW5nZSA9IElEQktleVJhbmdlLmJvdW5kKDEsIDIpOworICAg
ICAgICBhc3NlcnRfZmFsc2Uoa2V5UmFuZ2UubG93ZXJPcGVuLCAia2V5UmFuZ2UubG93ZXJPcGVu
Iik7CisgICAgICAgIGFzc2VydF9mYWxzZShrZXlSYW5nZS51cHBlck9wZW4sICJrZXlSYW5nZS51
cHBlck9wZW4iKTsKKyAgICB9LCAiSURCS2V5UmFuZ2UuYm91bmQoKSAtICdsb3dlck9wZW4nIGFu
ZCAndXBwZXJPcGVuJyBwYXJhbWV0ZXJzIGhhdmUgY29ycmVjdCBkZWZhdWx0cyBzZXQiKTsKKzwv
c2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRia2V5cmFuZ2VfaW5jb3JyZWN0LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRia2V5cmFuZ2VfaW5jb3JyZWN0
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNDliZmYx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJrZXlyYW5nZV9pbmNvcnJlY3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorCitQQVNT
IElEQktleVJhbmdlLmJvdW5kKCkgLSBib3VuZCByZXF1aXJlcyBtb3JlIHRoYW4gMCBhcmd1bWVu
dHMuIAorUEFTUyBJREJLZXlSYW5nZS5ib3VuZChudWxsLCBudWxsKSAtIG51bGwgcGFyYW1ldGVy
cyBhcmUgaW5jb3JyZWN0LiAKK1BBU1MgSURCS2V5UmFuZ2UuYm91bmQoMSwgbnVsbCAvIG51bGws
IDEpIC0gbnVsbCBwYXJhbWV0ZXIgaXMgaW5jb3JyZWN0LiAKK1BBU1MgSURCS2V5UmFuZ2UuYm91
bmQobG93ZXIsIHVwcGVyIC8gbG93ZXIgPiB1cHBlcikgLSAgJ2xvd2VyJyBpcyBncmVhdGVyIHRo
YW4gJ3VwcGVyJy4gCitQQVNTIElEQktleVJhbmdlLmJvdW5kKERPTVN0cmluZy9EYXRlL0FycmF5
LCAxKSAtIEEgRE9NU3RyaW5nLCBEYXRlIGFuZCBBcnJheSBhcmUgZ3JlYXRlciB0aGFuIGEgZmxv
YXQuIAorUEFTUyBJREJLZXlSYW5nZS5ib3VuZChub0V4aXN0aW5nVmFyaWFibGUsIDEgLyBnb29k
VmFyaWFibGUsIG5vRXhpc3RpbmdWYXJpYWJsZSkgLSBub0V4aXN0aW5nVmFyaWFibGUgaXMgbm90
IGRlZmluZWQuIAorUEFTUyBJREJLZXlSYW5nZS5ib3VuZCh0cnVlLCAxKSAtIGJvb2xlYW4gaXMg
bm90IGEgdmFsaWQga2V5IHR5cGUuIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYmtleXJhbmdlX2luY29ycmVjdC5odG0gYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmtleXJhbmdlX2luY29ycmVjdC5odG0KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWUxOTc5MQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRia2V5cmFuZ2VfaW5jb3JyZWN0Lmh0
bQpAQCAtMCwwICsxLDkyIEBACis8IURPQ1RZUEUgaHRtbD4KKzwhLS0gU3VibWl0dGVkIGZyb20g
VGVzdFRXRiBQYXJpcyAtLT4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBjaGFy
c2V0PXV0Zi04PgorICAgICAgICA8dGl0bGUgaWQ9J2Rlc2MnPklEQktleVJhbmdlIFRlc3RzIC0g
SW5jb3JyZWN0PC90aXRsZT4KKyAgICAgICAgPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2
Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNyYW5nZS1j
b25jZXB0Ij4KKyAgICAgICAgPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iSWYgdGhlIGxvd2VyIGtl
eSBpcyBncmVhdGVyIHRoYW4gdGhlIHVwcGVyIGtleSwgdGhlbiBhIERPTUV4Y2VwdGlvbiBvZiB0
eXBlIERhdGFFcnJvciBtdXN0IGJlIHRocm93bi4iPgorICAgICAgICA8bGluayByZWw9YXV0aG9y
IGhyZWY9Im1haWx0bzpjaHJjaGFybGVzNjdAZ21haWwuY29tIiB0aXRsZT0iQ2hyaXN0b3BoZSBD
SEFSTEVTIj4KKworICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3Jj
PSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworICAgICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCI+CisKKyAgICAgICAgICAgIC8vIFR5cGVFcnJvcjogYm91bmQgcmVxdWlyZXMgbW9y
ZSB0aGFuIDAgYXJndW1lbnRzCisgICAgICAgICAgICB0ZXN0KCBmdW5jdGlvbigpIHsKKyAgICAg
ICAgICAgICAgICBhc3NlcnRfdGhyb3dzKG5ldyBUeXBlRXJyb3IoKSwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgICAgIElEQktleVJhbmdlLmJvdW5kKCk7CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgICAgICB9LCAiSURCS2V5UmFuZ2UuYm91bmQoKSAtIGJvdW5kIHJlcXVpcmVz
IG1vcmUgdGhhbiAwIGFyZ3VtZW50cy4iKTsKKworICAgICAgICAgICAgLy8gTnVsbCBwYXJhbWV0
ZXJzCisgICAgICAgICAgICB0ZXN0KCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBhc3Nl
cnRfdGhyb3dzKCJEYXRhRXJyb3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAg
SURCS2V5UmFuZ2UuYm91bmQobnVsbCwgbnVsbCk7CisgICAgICAgICAgICAgICAgfSk7CisgICAg
ICAgICAgICB9LCAiSURCS2V5UmFuZ2UuYm91bmQobnVsbCwgbnVsbCkgLSBudWxsIHBhcmFtZXRl
cnMgYXJlIGluY29ycmVjdC4iKTsKKworICAgICAgICAgICAgLy8gLy8gTnVsbCBwYXJhbWV0ZXIK
KyAgICAgICAgICAgIHRlc3QoIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIGFzc2VydF90
aHJvd3MoIkRhdGFFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBJREJL
ZXlSYW5nZS5ib3VuZCgxLCBudWxsKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAg
ICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICAgICAgSURCS2V5UmFuZ2UuYm91bmQobnVsbCwgMSk7CisgICAgICAgICAgICAgICAgfSk7
CisgICAgICAgICAgICB9LCAiSURCS2V5UmFuZ2UuYm91bmQoMSwgbnVsbCAvIG51bGwsIDEpIC0g
bnVsbCBwYXJhbWV0ZXIgaXMgaW5jb3JyZWN0LiIpOworCisgICAgICAgICAgICAvLyBib3VuZCBp
bmNvcnJlY3QKKyAgICAgICAgICAgIHRlc3QoIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAg
IHZhciBsb3dlckJhZCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSozMSkgKyA1OworICAgICAg
ICAgICAgICAgIHZhciB1cHBlciA9IGxvd2VyQmFkIC0gMTsKKyAgICAgICAgICAgICAgICBhc3Nl
cnRfdGhyb3dzKCJEYXRhRXJyb3IiLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAg
SURCS2V5UmFuZ2UuYm91bmQobG93ZXJCYWQsIHVwcGVyKTsKKyAgICAgICAgICAgICAgICB9KTsK
KyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLCBmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICAgICAgSURCS2V5UmFuZ2UuYm91bmQoJ2InLCAnYScpOworICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgfSwgIklEQktleVJhbmdlLmJvdW5kKGxvd2VyLCB1
cHBlciAvIGxvd2VyID4gdXBwZXIpIC0gICdsb3dlcicgaXMgZ3JlYXRlciB0aGFuICd1cHBlcicu
IgorICAgICAgICAgICAgKTsKKworICAgICAgICAgICAgdGVzdCggZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwgZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgICAgIElEQktleVJhbmdlLmJvdW5kKCdhJywgMSk7CisgICAgICAgICAgICAg
ICAgfSk7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwgZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICAgICAgICAgIElEQktleVJhbmdlLmJvdW5kKG5ldyBEYXRlKCks
IDEpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgIGFzc2VydF90aHJvd3Mo
IkRhdGFFcnJvciIsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBJREJLZXlSYW5n
ZS5ib3VuZChbMSwgMl0sIDEpOworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfSwg
IklEQktleVJhbmdlLmJvdW5kKERPTVN0cmluZy9EYXRlL0FycmF5LCAxKSAtIEEgRE9NU3RyaW5n
LCBEYXRlIGFuZCBBcnJheSBhcmUgZ3JlYXRlciB0aGFuIGEgZmxvYXQuIik7CisKKworICAgICAg
ICAgICAgLy8gUmVmZXJlbmNlRXJyb3I6IHRoZSB2YXJpYWJsZSBpcyBub3QgZGVmaW5lZAorICAg
ICAgICAgICAgdGVzdCggZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdmFyIGdvb2RWYXJp
YWJsZSA9IDE7CisgICAgICAgICAgICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgUmVmZXJlbmNlRXJy
b3IoKSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIElEQktleVJhbmdlLmJvdW5k
KG5vRXhpc3RpbmdWYXJpYWJsZSwgMSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0X3Rocm93cyhuZXcgUmVmZXJlbmNlRXJyb3IoKSwgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgICAgIElEQktleVJhbmdlLmJvdW5kKGdvb2RWYXJpYWJsZSwgbm9FeGlz
dGluZ1ZhcmlhYmxlKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0sICJJREJL
ZXlSYW5nZS5ib3VuZChub0V4aXN0aW5nVmFyaWFibGUsIDEgLyBnb29kVmFyaWFibGUsIG5vRXhp
c3RpbmdWYXJpYWJsZSkgLSBub0V4aXN0aW5nVmFyaWFibGUgaXMgbm90IGRlZmluZWQuIik7CisK
KyAgICAgICAgICAgIC8vIFZhbGlkIHR5cGUga2V5IGVycm9yCisgICAgICAgICAgICB0ZXN0KCBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLCBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgSURCS2V5UmFuZ2UuYm91bmQodHJ1ZSwg
MSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9LCAiSURCS2V5UmFuZ2UuYm91
bmQodHJ1ZSwgMSkgLSBib29sZWFuIGlzIG5vdCBhIHZhbGlkIGtleSB0eXBlLiIpOworCisKKyAg
ICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorCisgICAgPGJvZHk+CisgICAgICAgIDxkaXYg
aWQ9ImxvZyI+PC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfYWRkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZjdjYmJkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmFkZCgpIC0gYWRkIHdp
dGggYW4gaW5saW5lIGtleSAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi41OGRmNTg0ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkLmh0bQpAQCAtMCwwICsx
LDM1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5J
REJPYmplY3RTdG9yZS5hZGQoKSAtIGFkZCB3aXRoIGFuIGlubGluZSBrZXkgPC90aXRsZT4KKzxs
aW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jv
c29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4K
KworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAg
cmVjb3JkID0geyBrZXk6IDEsIHByb3BlcnR5OiAiZGF0YSIgfTsKKworICAgIHZhciBvcGVuX3Jx
ID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihl
KSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJrZXkiIH0pOworCisg
ICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmQpOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3Vj
Y2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInN0
b3JlIikKKyAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKKyAgICAgICAg
ICAgICAgICAgICAuZ2V0KHJlY29yZC5rZXkpOworCisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQu
c3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJn
ZXQucmVzdWx0LnByb3BlcnR5LCByZWNvcmQucHJvcGVydHkpOworICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhlLnRhcmdldC5yZXN1bHQua2V5LCByZWNvcmQua2V5KTsKKyAgICAgICAgICAgIHQu
ZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+
PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2FkZDEwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMTAtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU1NTJhMzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDEwLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5hZGQoKSAtIEF0
dGVtcHQgdG8gY2FsbCAnYWRkJyB3aXRob3V0IGFuIGtleSBwYXJhbWV0ZXIgd2hlbiB0aGUgb2Jq
ZWN0IHN0b3JlIHVzZXMgb3V0LW9mLWxpbmUga2V5cyAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMTAuaHRtIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxMC5odG0K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDhmNzE2ZAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
YWRkMTAuaHRtCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLmFkZCgpIC0gQXR0ZW1wdCB0byBjYWxs
ICdhZGQnIHdpdGhvdXQgYW4ga2V5IHBhcmFtZXRlciB3aGVuIHRoZSBvYmplY3Qgc3RvcmUgdXNl
cyBvdXQtb2YtbGluZSBrZXlzIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1p
Y3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAor
ICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZCA9IHsgcHJvcGVydHk6ICJkYXRh
IiB9OworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBn
cmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7
CisKKyAgICAgICAgdmFyIHJxLAorICAgICAgICAgIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0
U3RvcmUoInN0b3JlIik7CisKKyAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0YUVycm9yIiwKKyAg
ICAgICAgICAgIGZ1bmN0aW9uKCkgeyBycSA9IG9ialN0b3JlLmFkZChyZWNvcmQpOyB9KTsKKwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHJxLCB1bmRlZmluZWQpOworICAgICAgICB0LmRvbmUoKTsK
KyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDExLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfYWRkMTEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLmI2NzI4YTE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxMS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
IEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUuYWRkKCkgLSBBdHRlbXB0IHRvIGFkZCBhIHJlY29y
ZCB3aGVyZSB0aGUgcmVjb3JkJ3Mga2V5IGRvZXMgbm90IG1lZXQgdGhlIGNvbnN0cmFpbnRzIG9m
IGEgdmFsaWQga2V5ICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxMS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDExLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5lZTZhNGU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxMS5odG0KQEAgLTAsMCAr
MSwyOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+
SURCT2JqZWN0U3RvcmUuYWRkKCkgLSBBdHRlbXB0IHRvIGFkZCBhIHJlY29yZCB3aGVyZSB0aGUg
cmVjb3JkJ3Mga2V5IGRvZXMgbm90IG1lZXQgdGhlIGNvbnN0cmFpbnRzIG9mIGEgdmFsaWQga2V5
IDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0
cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5q
cyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rl
c3QoKSwKKyAgICAgIHJlY29yZCA9IHsga2V5OiB7IHZhbHVlOiAxIH0sIHByb3BlcnR5OiAiZGF0
YSIgfTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVw
Z3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0
OworCisgICAgICAgIHZhciBycSwKKyAgICAgICAgICBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVj
dFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIgfSk7CisKKyAgICAgICAgYXNzZXJ0X3Ro
cm93cygiRGF0YUVycm9yIiwKKyAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBycSA9IG9ialN0b3Jl
LmFkZChyZWNvcmQpOyB9KTsKKworICAgICAgICBhc3NlcnRfZXF1YWxzKHJxLCB1bmRlZmluZWQp
OworICAgICAgICB0LmRvbmUoKTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+
PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2FkZDEyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMTItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQwZjhlZTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDEyLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5hZGQoKSAtIEF0
dGVtcHQgdG8gYWRkIGEgcmVjb3JkIHdoZXJlIHRoZSByZWNvcmQncyBpbi1saW5lIGtleSBpcyBu
b3QgZGVmaW5lZCAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMTIuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxMi5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uZTE0Y2RhNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMTIuaHRtCkBAIC0wLDAgKzEs
MjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklE
Qk9iamVjdFN0b3JlLmFkZCgpIC0gQXR0ZW1wdCB0byBhZGQgYSByZWNvcmQgd2hlcmUgdGhlIHJl
Y29yZCdzIGluLWxpbmUga2V5IGlzIG5vdCBkZWZpbmVkIDwvdGl0bGU+Cis8bGluayByZWw9ImF1
dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+
CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZCA9IHsg
cHJvcGVydHk6ICJkYXRhIiB9OworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAg
ICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBl
LnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgdmFyIHJxLAorICAgICAgICAgIG9ialN0b3JlID0g
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKKworICAg
ICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLAorICAgICAgICAgICAgZnVuY3Rpb24oKSB7
IHJxID0gb2JqU3RvcmUuYWRkKHJlY29yZCk7IH0pOworCisgICAgICAgIGFzc2VydF9lcXVhbHMo
cnEsIHVuZGVmaW5lZCk7CisgICAgICAgIHQuZG9uZSgpOworICAgIH07Cis8L3NjcmlwdD4KKwor
PGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMTMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxMy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTA3MTQxNwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfYWRkMTMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0
b3JlLmFkZCgpIC0gQXR0ZW1wdCB0byBhZGQgYSByZWNvcmQgd2hlcmUgdGhlIG91dCBvZiBsaW5l
IGtleSBwcm92aWRlZCBkb2VzIG5vdCBtZWV0IHRoZSBjb25zdHJhaW50cyBvZiBhIHZhbGlkIGtl
eSAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfYWRkMTMuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9hZGQxMy5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uM2Y0YjMwZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMTMuaHRtCkBAIC0wLDAgKzEsMjkgQEAKKzwh
RE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0
b3JlLmFkZCgpIC0gQXR0ZW1wdCB0byBhZGQgYSByZWNvcmQgd2hlcmUgdGhlIG91dCBvZiBsaW5l
IGtleSBwcm92aWRlZCBkb2VzIG5vdCBtZWV0IHRoZSBjb25zdHJhaW50cyBvZiBhIHZhbGlkIGtl
eSA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0
dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQu
anMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190
ZXN0KCksCisgICAgICByZWNvcmQgPSB7IHByb3BlcnR5OiAiZGF0YSIgfTsKKworICAgIHZhciBv
cGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgIHZhciBy
cSwKKyAgICAgICAgICBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOwor
CisgICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsCisgICAgICAgICAgICBmdW5jdGlv
bigpIHsgcnEgPSBvYmpTdG9yZS5hZGQocmVjb3JkLCB7IHZhbHVlOiAxIH0pOyB9KTsKKworICAg
ICAgICBhc3NlcnRfZXF1YWxzKHJxLCB1bmRlZmluZWQpOworICAgICAgICB0LmRvbmUoKTsKKyAg
ICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDE0LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfYWRkMTQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjM5YWIzNzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDE0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAK
KworUEFTUyBJREJPYmplY3RTdG9yZS5hZGQoKSAtIEFkZCBhIHJlY29yZCB3aGVyZSBhIHZhbHVl
IGJlaW5nIGluZGV4ZWQgZG9lcyBub3QgbWVldCB0aGUgY29uc3RyYWludHMgb2YgYSB2YWxpZCBr
ZXkgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2FkZDE0Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfYWRkMTQuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjA3YTFjNzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDE0Lmh0bQpAQCAtMCwwICsxLDMyIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RT
dG9yZS5hZGQoKSAtIEFkZCBhIHJlY29yZCB3aGVyZSBhIHZhbHVlIGJlaW5nIGluZGV4ZWQgZG9l
cyBub3QgbWVldCB0aGUgY29uc3RyYWludHMgb2YgYSB2YWxpZCBrZXkgPC90aXRsZT4KKzxsaW5r
IHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29m
dC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKwor
PHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVj
b3JkID0geyBrZXk6IDEsIGluZGV4ZWRQcm9wZXJ0eTogeyBwcm9wZXJ0eTogImRhdGEiIH0gfTsK
KworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVu
ZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworCisg
ICAgICAgIHZhciBycSwKKyAgICAgICAgICBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIgfSk7CisKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRl
SW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpOworCisgICAgICAgIHJxID0gb2JqU3Rv
cmUuYWRkKHJlY29yZCk7CisKKyAgICAgICAgYXNzZXJ0X3RydWUocnEgaW5zdGFuY2VvZiBJREJS
ZXF1ZXN0KTsKKyAgICAgICAgcnEub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICB0LmRvbmUoKTsKKyAgICAgICAgfQorICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfYWRkMTUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxNS1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjUxMDQyOQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMTUtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmFkZCgpIC0g
SWYgdGhlIHRyYW5zYWN0aW9uIHRoaXMgSURCT2JqZWN0U3RvcmUgYmVsb25ncyB0byBoYXMgaXRz
IG1vZGUgc2V0IHRvIHJlYWRvbmx5LCB0aHJvdyBSZWFkT25seUVycm9yICAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQx
NS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3Jl
X2FkZDE1Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMzIyY2E3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9hZGQxNS5odG0KQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuYWRkKCkgLSBJZiB0
aGUgdHJhbnNhY3Rpb24gdGhpcyBJREJPYmplY3RTdG9yZSBiZWxvbmdzIHRvIGhhcyBpdHMgbW9k
ZSBzZXQgdG8gcmVhZG9ubHksIHRocm93IFJlYWRPbmx5RXJyb3IgPC90aXRsZT4KKzxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxs
aW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3
LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJPYmplY3RTdG9yZS1hZGQtSURCUmVxdWVz
dC1hbnktdmFsdWUtYW55LWtleSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMi
Pjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFyIGRiLAor
ICAgICAgICB0ID0gYXN5bmNfdGVzdCgpOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0
KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uIChldmVudCkgeworICAg
ICAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCJzdG9yZSIsIHtrZXlQYXRoOiJwS2V5In0pOworICAgIH0KKworICAgIG9wZW5fcnEub25z
dWNjZXNzID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgIHZhciB0eG4gPSBkYi50cmFuc2Fj
dGlvbigic3RvcmUiKTsKKyAgICAgICAgdmFyIG9zdG9yZSA9IHR4bi5vYmplY3RTdG9yZSgic3Rv
cmUiKTsKKyAgICAgICAgdC5zdGVwKGZ1bmN0aW9uKCl7CisgICAgICAgICAgICBhc3NlcnRfdGhy
b3dzKCJSZWFkT25seUVycm9yIiwgZnVuY3Rpb24oKXsKKyAgICAgICAgICAgICAgICBvc3RvcmUu
YWRkKHsgcEtleTogInByaW1hcnlLZXlfMCJ9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9
KTsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMTYtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9hZGQxNi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uZmUxNTlkMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMTYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBA
QAorCitQQVNTIElEQk9iamVjdFN0b3JlLmFkZCgpIC0gSWYgdGhlIG9iamVjdCBzdG9yZSBoYXMg
YmVlbiBkZWxldGVkLCB0aGUgaW1wbGVtZW50YXRpb24gbXVzdCB0aHJvdyBhIERPTUV4Y2VwdGlv
biBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQxNi5odG0gYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDE2Lmh0bQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZDEyZTA0Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQx
Ni5odG0KQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuYWRkKCkgLSBJZiB0aGUgb2JqZWN0IHN0b3Jl
IGhhcyBiZWVuIGRlbGV0ZWQsIHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0IHRocm93IGEgRE9NRXhj
ZXB0aW9uIG9mIHR5cGUgSW52YWxpZFN0YXRlRXJyb3IgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0
aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5rIHJl
bD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUv
dGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJPYmplY3RTdG9yZS1hZGQtSURCUmVxdWVzdC1hbnkt
dmFsdWUtYW55LWtleSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2Ny
aXB0PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAg
ICBvc3RvcmUsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9ycSA9
IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2
ZW50KSB7CisgICAgICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgb3N0b3Jl
ID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwge2tleVBhdGg6InBLZXkifSk7CisgICAg
ICAgIGRiLmRlbGV0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOworICAgIH0KKworICAgIG9wZW5fcnEu
b25zdWNjZXNzID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgIHQuc3RlcChmdW5jdGlvbigp
eworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlv
bigpeworICAgICAgICAgICAgICAgIG9zdG9yZS5hZGQoeyBwS2V5OiAicHJpbWFyeUtleV8wIn0p
OworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgICAgICB0LmRvbmUoKTsKKyAgICB9
Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMi1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNThlZTNiNgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMi1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUuYWRkKCkg
LSBhZGQgd2l0aCBhbiBvdXQtb2YtbGluZSBrZXkgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDIuaHRtIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQyLmh0bQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZTBhMDlkCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQy
Lmh0bQpAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5hZGQoKSAtIGFkZCB3aXRoIGFuIG91dC1vZi1s
aW5lIGtleSA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhy
ZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1
cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBh
c3luY190ZXN0KCksCisgICAgICBrZXkgPSAxLAorICAgICAgcmVjb3JkID0geyBwcm9wZXJ0eTog
ImRhdGEiIH07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEu
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJl
c3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3Jl
Iik7CisKKyAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZCwga2V5KTsKKyAgICB9OworCisgICAg
b3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBycSA9IGRiLnRy
YW5zYWN0aW9uKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9y
ZSIpCisgICAgICAgICAgICAgICAgICAgLmdldChrZXkpOworCisgICAgICAgIHJxLm9uc3VjY2Vz
cyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
ZS50YXJnZXQucmVzdWx0LnByb3BlcnR5LCByZWNvcmQucHJvcGVydHkpOworCisgICAgICAgICAg
ICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJs
b2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9hZGQzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODlmNDc4ZQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUuYWRkKCkgLSBy
ZWNvcmQgd2l0aCBzYW1lIGtleSBhbHJlYWR5IGV4aXN0cyAgCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkMy5odG0gYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDMuaHRt
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVlMGQ0MGEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3Jl
X2FkZDMuaHRtCkBAIC0wLDAgKzEsMzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLmFkZCgpIC0gcmVjb3JkIHdpdGggc2Ft
ZSBrZXkgYWxyZWFkeSBleGlzdHMgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0i
TWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIs
CisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkID0geyBrZXk6IDEsIHByb3Bl
cnR5OiAiZGF0YSIgfTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Bl
bl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJn
ZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgi
c3RvcmUiLCB7IGtleVBhdGg6ICJrZXkiIH0pOworICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jk
KTsKKworICAgICAgICB2YXIgcnEgPSBvYmpTdG9yZS5hZGQocmVjb3JkKTsKKyAgICAgICAgcnEu
b25zdWNjZXNzID0gZmFpbCh0LCAic3VjY2VzcyBvbiBhZGRpbmcgZHVwbGljYXRlIHJlY29yZCIp
CisKKyAgICAgICAgcnEub25lcnJvciA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQuZXJyb3IubmFtZSwgIkNvbnN0cmFpbnRFcnJv
ciIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhycS5lcnJvci5uYW1lLCAiQ29uc3RyYWlu
dEVycm9yIik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudHlwZSwgImVycm9yIik7CisK
KyAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKKyAgICAgICAgICAgIGUuc3RvcFByb3Bh
Z2F0aW9uKCk7CisgICAgICAgIH0pOworICAgIH07CisKKyAgICAvLyBEZWZlciBkb25lLCBnaXZp
bmcgcnEub25zdWNjZXNzIGEgY2hhbmNlIHRvIHJ1bgorICAgIG9wZW5fcnEub25zdWNjZXNzID0g
ZnVuY3Rpb24oZSkgeworICAgICAgICB0LmRvbmUoKTsKKyAgICB9Cis8L3NjcmlwdD4KKworPGRp
diBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDQtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE0ZDE1NDcKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2Fk
ZDQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitGQUlMIElEQk9iamVjdFN0b3JlLmFk
ZCgpIC0gYWRkIHdoZXJlIGFuIGluZGV4IGhhcyB1bmlxdWU6dHJ1ZSBzcGVjaWZpZWQgIGFzc2Vy
dF91bnJlYWNoZWQ6IHN1Y2Nlc3Mgb24gYWRkaW5nIGR1cGxpY2F0ZSBpbmRleGVkIHJlY29yZCBS
ZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ0Lmh0bSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkNC5odG0KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODIzNGViNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkNC5odG0KQEAg
LTAsMCArMSw0MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8
dGl0bGU+SURCT2JqZWN0U3RvcmUuYWRkKCkgLSBhZGQgd2hlcmUgYW4gaW5kZXggaGFzIHVuaXF1
ZTp0cnVlIHNwZWNpZmllZCA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNy
b3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAg
ICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmQgPSB7IGtleTogMSwgcHJvcGVydHk6
ICJkYXRhIiB9OworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3Jx
Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5y
ZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9y
ZSIsIHsgYXV0b0luY3JlbWVudDogdHJ1ZSB9KTsKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5k
ZXgoImkxIiwgInByb3BlcnR5IiwgeyB1bmlxdWU6IHRydWUgfSk7CisgICAgICAgIG9ialN0b3Jl
LmFkZChyZWNvcmQpOworCisgICAgICAgIHZhciBycSA9IG9ialN0b3JlLmFkZChyZWNvcmQpOwor
ICAgICAgICBycS5vbnN1Y2Nlc3MgPSBmYWlsKHQsICJzdWNjZXNzIG9uIGFkZGluZyBkdXBsaWNh
dGUgaW5kZXhlZCByZWNvcmQiKQorCisgICAgICAgIHJxLm9uZXJyb3IgPSB0LnN0ZXBfZnVuYyhm
dW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHJxLmVycm9yLm5hbWUsICJD
b25zdHJhaW50RXJyb3IiKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQuZXJy
b3IubmFtZSwgIkNvbnN0cmFpbnRFcnJvciIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhl
LnR5cGUsICJlcnJvciIpOworCisgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAg
ICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICB9KTsKKyAgICB9OworCisgICAg
Ly8gRGVmZXIgZG9uZSwgZ2l2aW5nIGEgc3B1cmlvdXMgcnEub25zdWNjZXNzIGEgY2hhbmNlIHRv
IHJ1bgorICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB0LmRv
bmUoKTsKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRk
NS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX2FkZDUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjdmNDc3ODcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmFkZCgpIC0gb2JqZWN0IHN0b3JlJ3Mga2V5IHBh
dGggaXMgYW4gb2JqZWN0IGF0dHJpYnV0ZSAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkNS5odG0gYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDUuaHRtCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1NWUyMTUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDUuaHRt
CkBAIC0wLDAgKzEsMzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHRpdGxlPklEQk9iamVjdFN0b3JlLmFkZCgpIC0gb2JqZWN0IHN0b3JlJ3Mga2V5IHBhdGgg
aXMgYW4gb2JqZWN0IGF0dHJpYnV0ZSA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxl
PSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBk
YiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmQgPSB7IHRlc3Q6IHsgb2Jq
OiB7IGtleTogMSB9IH0sIHByb3BlcnR5OiAiZGF0YSIgfTsKKworICAgIHZhciBvcGVuX3JxID0g
Y3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7
CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBk
Yi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJ0ZXN0Lm9iai5rZXkiIH0p
OworICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3JkKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5v
bnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9u
KCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAg
ICAgICAgICAgICAgICAgLmdldChyZWNvcmQudGVzdC5vYmoua2V5KTsKKworICAgICAgICBycS5v
bnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5wcm9wZXJ0eSwgcmVjb3JkLnByb3BlcnR5KTsKKworICAg
ICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH07Cis8L3NjcmlwdD4KKworPGRp
diBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDYtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNkMDU2NDMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2Fk
ZDYtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmFk
ZCgpIC0gYXV0b0luY3JlbWVudCBhbmQgaW5saW5lIGtleXMgIAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDYuaHRtIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ2Lmh0
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMTIzZmY1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9hZGQ2Lmh0bQpAQCAtMCwwICsxLDQ3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5hZGQoKSAtIGF1dG9JbmNyZW1lbnQg
YW5kIGlubGluZSBrZXlzIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jv
c29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAg
ICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZCA9IHsgcHJvcGVydHk6ICJkYXRhIiB9
LAorICAgICAgZXhwZWN0ZWRfa2V5cyA9IFsgMSwgMiwgMywgNCBdOworCisgICAgdmFyIG9wZW5f
cnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9y
ZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIsIGF1dG9J
bmNyZW1lbnQ6IHRydWUgfSk7CisKKyAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZCk7CisgICAg
ICAgIG9ialN0b3JlLmFkZChyZWNvcmQpOworICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3JkKTsK
KyAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZCk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25z
dWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgYWN0dWFsX2tleXMgPSBbXSwKKyAg
ICAgICAgICBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgIC5v
YmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOworCisg
ICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
ICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgIGlmIChjdXJz
b3IpIHsKKyAgICAgICAgICAgICAgICBhY3R1YWxfa2V5cy5wdXNoKGN1cnNvci52YWx1ZS5rZXkp
OworICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhhY3R1
YWxfa2V5cywgZXhwZWN0ZWRfa2V5cyk7CisgICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0pOworICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfYWRkNy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3MzQ1MTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDctZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmFkZCgpIC0gYXV0
b0luY3JlbWVudCBhbmQgb3V0LW9mLWxpbmUga2V5cyAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkNy5odG0gYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDcuaHRtCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVlMTQ1NWMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2Fk
ZDcuaHRtCkBAIC0wLDAgKzEsNDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0i
dXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLmFkZCgpIC0gYXV0b0luY3JlbWVudCBhbmQg
b3V0LW9mLWxpbmUga2V5cyA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNy
b3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAg
ICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmQgPSB7IHByb3BlcnR5OiAiZGF0YSIg
fSwKKyAgICAgIGV4cGVjdGVkX2tleXMgPSBbIDEsIDIsIDMsIDQgXTsKKworICAgIHZhciBvcGVu
X3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlv
bihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3Rv
cmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUg
fSk7CisKKyAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZCk7CisgICAgICAgIG9ialN0b3JlLmFk
ZChyZWNvcmQpOworICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3JkKTsKKyAgICAgICAgb2JqU3Rv
cmUuYWRkKHJlY29yZCk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rp
b24oZSkgeworICAgICAgICB2YXIgYWN0dWFsX2tleXMgPSBbXSwKKyAgICAgICAgICBycSA9IGRi
LnRyYW5zYWN0aW9uKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3Rv
cmUiKQorICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAgIHJxLm9uc3Vj
Y2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3Ig
PSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgIGlmIChjdXJzb3IpIHsKKyAgICAgICAg
ICAgICAgICBhY3R1YWxfa2V5cy5wdXNoKGN1cnNvci5rZXkpOworICAgICAgICAgICAgICAgIGN1
cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAg
ICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhhY3R1YWxfa2V5cywgZXhwZWN0ZWRfa2V5
cyk7CisgICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0p
OworICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkOC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX2FkZDgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjkzMzlmNDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2FkZDgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBA
QAorCitQQVNTIElEQk9iamVjdFN0b3JlLmFkZCgpIC0gb2JqZWN0IHN0b3JlIGhhcyBhdXRvSW5j
cmVtZW50OnRydWUgYW5kIHRoZSBrZXkgcGF0aCBpcyBhbiBvYmplY3QgYXR0cmlidXRlICAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9hZGQ4Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfYWRkOC5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWM0
NjdiOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfYWRkOC5odG0KQEAgLTAsMCArMSw0NyBAQAorPCFET0NUWVBFIGh0
bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuYWRkKCkg
LSBvYmplY3Qgc3RvcmUgaGFzIGF1dG9JbmNyZW1lbnQ6dHJ1ZSBhbmQgdGhlIGtleSBwYXRoIGlz
IGFuIG9iamVjdCBhdHRyaWJ1dGUgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0i
TWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIs
CisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkID0geyBwcm9wZXJ0eTogImRh
dGEiIH0sCisgICAgICBleHBlY3RlZF9rZXlzID0gWyAxLCAyLCAzLCA0IF07CisKKyAgICB2YXIg
b3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVu
Y3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9i
alN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAidGVzdC5v
Ymoua2V5IiwgYXV0b0luY3JlbWVudDogdHJ1ZSB9KTsKKworICAgICAgICBvYmpTdG9yZS5hZGQo
cmVjb3JkKTsKKyAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZCk7CisgICAgICAgIG9ialN0b3Jl
LmFkZChyZWNvcmQpOworICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3JkKTsKKyAgICB9OworCisg
ICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBhY3R1YWxf
a2V5cyA9IFtdLAorICAgICAgICAgIHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKKyAgICAg
ICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgIC5vcGVu
Q3Vyc29yKCk7CisKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24o
ZSkgeworICAgICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAg
ICAgICAgaWYgKGN1cnNvcikgeworICAgICAgICAgICAgICAgIGFjdHVhbF9rZXlzLnB1c2goY3Vy
c29yLnZhbHVlLnRlc3Qub2JqLmtleSk7CisgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVl
KCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBh
c3NlcnRfYXJyYXlfZXF1YWxzKGFjdHVhbF9rZXlzLCBleHBlY3RlZF9rZXlzKTsKKyAgICAgICAg
ICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfTsKKzwv
c2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ5LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkOS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjFlZWViNAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfYWRkOS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURC
T2JqZWN0U3RvcmUuYWRkKCkgLSBBdHRlbXB0IHRvIGFkZCBhIHJlY29yZCB0aGF0IGRvZXMgbm90
IG1lZXQgdGhlIGNvbnN0cmFpbnRzIG9mIGFuIG9iamVjdCBzdG9yZSdzIGlubGluZSBrZXkgcmVx
dWlyZW1lbnRzICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJvYmplY3RzdG9yZV9hZGQ5Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkOS5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uYzkzMDRhMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfYWRkOS5odG0KQEAgLTAsMCArMSwyNyBA
QAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2Jq
ZWN0U3RvcmUuYWRkKCkgLSBBdHRlbXB0IHRvIGFkZCBhIHJlY29yZCB0aGF0IGRvZXMgbm90IG1l
ZXQgdGhlIGNvbnN0cmFpbnRzIG9mIGFuIG9iamVjdCBzdG9yZSdzIGlubGluZSBrZXkgcmVxdWly
ZW1lbnRzIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJl
Zj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3Vw
cG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIHQgPSBhc3luY190ZXN0KCks
CisgICAgICByZWNvcmQgPSB7IGtleTogMSwgcHJvcGVydHk6ICJkYXRhIiB9OworCisgICAgdmFy
IG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIHJxLAorICAgICAgICAgIGRiID0gZS50YXJnZXQucmVz
dWx0LAorICAgICAgICAgIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwg
eyBrZXlQYXRoOiAia2V5IiB9KTsKKworICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3Ii
LAorICAgICAgICAgICAgZnVuY3Rpb24oKSB7IHJxID0gb2JqU3RvcmUuYWRkKHJlY29yZCwgMSk7
IH0pOworCisgICAgICAgIGFzc2VydF9lcXVhbHMocnEsIHVuZGVmaW5lZCk7CisgICAgICAgIHQu
ZG9uZSgpOworICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
Y2xlYXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9jbGVhci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uNDk0ZTg3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY2xlYXItZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmNsZWFyKCkgLSBWZXJpZnkgY2xlYXIg
cmVtb3ZlcyBhbGwgcmVjb3JkcyAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY2xlYXIuaHRtIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jbGVhci5odG0KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2U5MTgwYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY2xlYXIuaHRtCkBA
IC0wLDAgKzEsNDEgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PHRpdGxlPklEQk9iamVjdFN0b3JlLmNsZWFyKCkgLSBWZXJpZnkgY2xlYXIgcmVtb3ZlcyBhbGwg
cmVjb3JkcyA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhy
ZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1
cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBh
c3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5f
cnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0
LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0
b3JlIiwgeyBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOworCisgICAgICAgIG9ialN0b3JlLmFkZCh7
IHByb3BlcnR5OiAiZGF0YSIgfSk7CisgICAgICAgIG9ialN0b3JlLmFkZCh7IHNvbWV0aGluZ19k
aWZmZXJlbnQ6ICJZdXAsIHRvdGFsbHkgZGlmZmVyZW50IiB9KTsKKyAgICAgICAgb2JqU3RvcmUu
YWRkKDEyMzQpOworICAgICAgICBvYmpTdG9yZS5hZGQoWzEsIDIsIDEyMzRdKTsKKworICAgICAg
ICBvYmpTdG9yZS5jbGVhcigpLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCB1bmRlZmluZWQpOwor
ICAgICAgICB9KTsKKyAgICB9OworCisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKKyAgICAgICAg
ICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAub3Bl
bkN1cnNvcigpOworCisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCBudWxsLCAn
Y3Vyc29yJyk7CisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfTsKKzwv
c2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jbGVhcjItZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jbGVh
cjItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI4OGMw
MjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX2NsZWFyMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BB
U1MgSURCT2JqZWN0U3RvcmUuY2xlYXIoKSAtIGNsZWFyIHJlbW92ZXMgYWxsIHJlY29yZHMgZnJv
bSBhbiBpbmRleCAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfY2xlYXIyLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY2xlYXIyLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi41ZTEwY2JkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jbGVhcjIuaHRtCkBAIC0wLDAg
KzEsNDMgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxl
PklEQk9iamVjdFN0b3JlLmNsZWFyKCkgLSBjbGVhciByZW1vdmVzIGFsbCByZWNvcmRzIGZyb20g
YW4gaW5kZXggPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBo
cmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJz
dXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0g
YXN5bmNfdGVzdCgpOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVu
X3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdl
dC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJz
dG9yZSIsIHsgYXV0b0luY3JlbWVudDogdHJ1ZSB9KTsKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRl
SW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIpOworCisgICAgICAgIG9ialN0b3JlLmFk
ZCh7IGluZGV4ZWRQcm9wZXJ0eTogImRhdGEiIH0pOworICAgICAgICBvYmpTdG9yZS5hZGQoeyBp
bmRleGVkUHJvcGVydHk6ICJ5bywgbWFuIiwgc29tZXRoaW5nX2RpZmZlcmVudDogIll1cCwgdG90
YWxseSBkaWZmZXJlbnQiIH0pOworICAgICAgICBvYmpTdG9yZS5hZGQoeyBpbmRleGVkUHJvcGVy
dHk6IDEyMzQgfSk7CisgICAgICAgIG9ialN0b3JlLmFkZCh7IGluZGV4ZWRQcm9wZXJ0eTogWzEs
IDIsIDEyMzRdIH0pOworICAgICAgICBvYmpTdG9yZS5hZGQoMTIzNCk7CisKKyAgICAgICAgb2Jq
U3RvcmUuY2xlYXIoKS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgdW5kZWZpbmVkKTsKKyAgICAg
ICAgfSk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewor
ICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQorICAgICAgICAgICAgICAg
ICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAgICAgICAgICAgIC5pbmRleCgiaW5k
ZXgiKQorICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgcnEub25z
dWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyhlLnRhcmdldC5yZXN1bHQsIG51bGwsICdjdXJzb3InKTsKKyAgICAgICAgICAgIHQuZG9u
ZSgpOworICAgICAgICB9KTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9k
aXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX2NsZWFyMy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NsZWFyMy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTlkMzBmOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY2xlYXIzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5jbGVhcigpIC0g
SWYgdGhlIHRyYW5zYWN0aW9uIHRoaXMgSURCT2JqZWN0U3RvcmUgYmVsb25ncyB0byBoYXMgaXRz
IG1vZGUgc2V0IHRvIHJlYWRvbmx5LCB0aHJvdyBSZWFkT25seUVycm9yICAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jbGVh
cjMuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9jbGVhcjMuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1NTA5YWMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2NsZWFyMy5odG0KQEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBFIGh0bWw+
Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuY2xlYXIoKSAt
IElmIHRoZSB0cmFuc2FjdGlvbiB0aGlzIElEQk9iamVjdFN0b3JlIGJlbG9uZ3MgdG8gaGFzIGl0
cyBtb2RlIHNldCB0byByZWFkb25seSwgdGhyb3cgUmVhZE9ubHlFcnJvciA8L3RpdGxlPgorPGxp
bmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20i
PgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWRE
Qi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQk9iamVjdFN0b3JlLWNsZWFyLUlE
QlJlcXVlc3QiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4K
KzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgICAgdCA9
IGFzeW5jX3Rlc3QoKSwKKyAgICAgICAgcmVjb3JkcyA9IFt7IHBLZXk6ICJwcmltYXJ5S2V5XzAi
fSwKKyAgICAgICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEifV07CisKKyAgICB2
YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0g
ZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAg
ICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwge2tleVBh
dGg6InBLZXkifSk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7
IGkrKykgeworICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOworICAgICAgICB9
CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZXZlbnQpIHsKKyAg
ICAgICAgdmFyIHR4biA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpOworICAgICAgICB2YXIgb3N0
b3JlID0gdHhuLm9iamVjdFN0b3JlKCJzdG9yZSIpOworICAgICAgICB0LnN0ZXAoZnVuY3Rpb24o
KXsKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIlJlYWRPbmx5RXJyb3IiLCBmdW5jdGlvbigp
eworICAgICAgICAgICAgICAgIG9zdG9yZS5jbGVhcigpOworICAgICAgICAgICAgfSk7CisgICAg
ICAgIH0pOworICAgICAgICB0LmRvbmUoKTsKKyAgICB9Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jbGVh
cjQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9jbGVhcjQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLmFlNTZmZjgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NsZWFyNC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUuY2xlYXIoKSAtIElmIHRoZSBvYmplY3Qg
c3RvcmUgaGFzIGJlZW4gZGVsZXRlZCwgdGhlIGltcGxlbWVudGF0aW9uIG11c3QgdGhyb3cgYSBE
T01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJvciAgCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY2xlYXI0Lmh0
bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY2xl
YXI0Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNzUyNTJiCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9jbGVhcjQuaHRtCkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLmNsZWFyKCkgLSBJZiB0
aGUgb2JqZWN0IHN0b3JlIGhhcyBiZWVuIGRlbGV0ZWQsIHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0
IHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgSW52YWxpZFN0YXRlRXJyb3IgPC90aXRsZT4K
KzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwu
Y29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRl
eGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJPYmplY3RTdG9yZS1jbGVh
ci1JREJSZXF1ZXN0Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICAg
IG9zdG9yZSwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKKworICAgIHZhciBvcGVuX3JxID0g
Y3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbiAoZXZl
bnQpIHsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICBvc3RvcmUg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7a2V5UGF0aDoicEtleSJ9KTsKKyAgICAg
ICAgZGIuZGVsZXRlT2JqZWN0U3RvcmUoInN0b3JlIik7CisgICAgfQorCisgICAgb3Blbl9ycS5v
bnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAgdC5zdGVwKGZ1bmN0aW9uKCl7
CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9u
KCl7CisgICAgICAgICAgICAgICAgb3N0b3JlLmNsZWFyKCk7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfSk7CisgICAgICAgIHQuZG9uZSgpOworICAgIH0KKzwvc2NyaXB0PgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2Nv
dW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfY291bnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjU0MzQ0YzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NvdW50LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5jb3VudCgpIC0gcmV0dXJucyB0aGUgbnVt
YmVyIG9mIHJlY29yZHMgaW4gdGhlIG9iamVjdCBzdG9yZSAgCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY291bnQuaHRtIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jb3VudC5o
dG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTAxZjA2YQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfY291bnQuaHRtCkBAIC0wLDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hh
cnNldD11dGYtOD4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5jb3VudCgpIC0gcmV0dXJucyB0aGUg
bnVtYmVyIG9mIHJlY29yZHMgaW4gdGhlIG9iamVjdCBzdG9yZSA8L3RpdGxlPgorPGxpbmsgcmVs
PSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNv
bSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlw
dD4KKyAgICB2YXIgZGIsIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9ycSA9IGNy
ZWF0ZWRiKHQpOworCisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7
CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgc3RvcmUgPSBkYi5j
cmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKworICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwg
MTA7IGkrKykgeworICAgICAgICAgICAgc3RvcmUuYWRkKHsgZGF0YTogImRhdGEiICsgaSB9LCBp
KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24o
ZSkgeworICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQorICAgICAgICAg
ICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAgICAgICAgICAgIC5jb3Vu
dCgpOworCisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCAxMCk7CisgICAgICAg
ICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9
bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9jb3VudDItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jb3VudDItZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiZmEzMjZhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jb3Vu
dDItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmNv
dW50KCkgLSByZXR1cm5zIHRoZSBudW1iZXIgb2YgcmVjb3JkcyB0aGF0IGhhdmUga2V5cyB3aXRo
aW4gdGhlIHJhbmdlICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jb3VudDIuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jb3VudDIuaHRtCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjljNjJjYjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NvdW50Mi5odG0KQEAgLTAs
MCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxl
PklEQk9iamVjdFN0b3JlLmNvdW50KCkgLSByZXR1cm5zIHRoZSBudW1iZXIgb2YgcmVjb3JkcyB0
aGF0IGhhdmUga2V5cyB3aXRoaW4gdGhlIHJhbmdlIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhv
ciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAg
IHZhciBkYiwgdCA9IGFzeW5jX3Rlc3QoKTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIo
dCk7CisKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBzdG9yZSA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCJzdG9yZSIpOworCisgICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCAxMDsgaSsr
KSB7CisgICAgICAgICAgICBzdG9yZS5hZGQoeyBkYXRhOiAiZGF0YSIgKyBpIH0sIGkpOworICAg
ICAgICB9CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7Cisg
ICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCisgICAgICAgICAgICAgICAg
ICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgLmNvdW50KElEQktl
eVJhbmdlLmJvdW5kKDUsMjApKTsKKworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVu
YyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3Vs
dCwgNSk7CisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorPC9zY3Jp
cHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jb3VudDMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jb3VudDMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0MmE0NTkKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX2NvdW50My1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURC
T2JqZWN0U3RvcmUuY291bnQoKSAtIHJldHVybnMgdGhlIG51bWJlciBvZiByZWNvcmRzIHRoYXQg
aGF2ZSBrZXlzIHdpdGggdGhlIGtleSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jb3VudDMuaHRtIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jb3VudDMuaHRtCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMzOTEyYjYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NvdW50My5o
dG0KQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04
PgorPHRpdGxlPklEQk9iamVjdFN0b3JlLmNvdW50KCkgLSByZXR1cm5zIHRoZSBudW1iZXIgb2Yg
cmVjb3JkcyB0aGF0IGhhdmUga2V5cyB3aXRoIHRoZSBrZXk8L3RpdGxlPgorPGxpbmsgcmVsPSJh
dXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhl
IE9tZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8
c2NyaXB0PgorICAgIHZhciBkYgorCisgICAgY3JlYXRlZGIoYXN5bmNfdGVzdCgpKS5vbnVwZ3Jh
ZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0CisK
KyAgICAgICAgdmFyIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQ
YXRoOiAiayIgfSkKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDU7IGkrKykKKyAgICAg
ICAgICAgIHN0b3JlLmFkZCh7IGs6ICJrZXlfIiArIGkgfSk7CisKKyAgICAgICAgc3RvcmUuY291
bnQoImtleV8yIikub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIDEsICJjb3VudChrZXlfMiki
KQorCisgICAgICAgICAgICBzdG9yZS5jb3VudCgia2V5XyIpLm9uc3VjY2VzcyA9IHRoaXMuc3Rl
cF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFy
Z2V0LnJlc3VsdCwgMCwgImNvdW50KGtleV8pIikKKyAgICAgICAgICAgICAgICB0aGlzLmRvbmUo
KQorICAgICAgICAgICAgfSkKKyAgICAgICAgfSkKKyAgICB9CisKKzwvc2NyaXB0PgorPGRpdiBp
ZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX2NvdW50NC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NvdW50NC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2E0NDg1MAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY291
bnQ0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5j
b3VudCgpIC0gSWYgdGhlIG9iamVjdCBzdG9yZSBoYXMgYmVlbiBkZWxldGVkLCB0aGUgaW1wbGVt
ZW50YXRpb24gbXVzdCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVy
cm9yICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9jb3VudDQuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJvYmplY3RzdG9yZV9jb3VudDQuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjkxZGE4YWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NvdW50NC5odG0KQEAgLTAsMCArMSwzMSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2Jq
ZWN0U3RvcmUuY291bnQoKSAtIElmIHRoZSBvYmplY3Qgc3RvcmUgaGFzIGJlZW4gZGVsZXRlZCwg
dGhlIGltcGxlbWVudGF0aW9uIG11c3QgdGhyb3cgYSBET01FeGNlcHRpb24gb2YgdHlwZSBJbnZh
bGlkU3RhdGVFcnJvciA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIg
aHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRw
czovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3
aWRsLUlEQk9iamVjdFN0b3JlLWNvdW50LUlEQlJlcXVlc3QtYW55LWtleSI+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4K
KzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgICBvc3RvcmUsCisgICAgICAgIHQgPSBhc3lu
Y190ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEu
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgIGRiID0gZXZlbnQu
dGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgb3N0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0
b3JlIiwge2tleVBhdGg6InBLZXkifSk7CisgICAgICAgIGRiLmRlbGV0ZU9iamVjdFN0b3JlKCJz
dG9yZSIpOworICAgIH0KKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24gKGV2ZW50
KSB7CisgICAgICAgIHQuc3RlcChmdW5jdGlvbigpeworICAgICAgICAgICAgYXNzZXJ0X3Rocm93
cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpeworICAgICAgICAgICAgICAgIG9zdG9y
ZS5jb3VudCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOworICAgICAgICB0LmRvbmUo
KTsKKyAgICB9Cis8L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUlu
ZGV4LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZmJl
NDIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBA
CisKK1BBU1MgSURCT2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoKSAtIHJldHVybnMgYW4gSURCSW5k
ZXggYW5kIHRoZSBwcm9wZXJ0aWVzIGFyZSBzZXQgY29ycmVjdGx5IAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUlu
ZGV4Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfY3JlYXRlSW5kZXguaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUx
MDExOTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4Lmh0bQpAQCAtMCwwICsxLDMwIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9y
ZS5jcmVhdGVJbmRleCgpIC0gcmV0dXJucyBhbiBJREJJbmRleCBhbmQgdGhlIHByb3BlcnRpZXMg
YXJlIHNldCBjb3JyZWN0bHk8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNy
b3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAg
ICAgIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwor
ICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9
IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0
U3RvcmUoInN0b3JlIik7CisgICAgICAgIHZhciBpbmRleCA9IG9ialN0b3JlLmNyZWF0ZUluZGV4
KCJpbmRleCIsICJpbmRleGVkUHJvcGVydHkiLCB7IHVuaXF1ZTogdHJ1ZSB9KTsKKworICAgICAg
ICBhc3NlcnRfdHJ1ZShpbmRleCBpbnN0YW5jZW9mIElEQkluZGV4LCAiSURCSW5kZXgiKTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhpbmRleC5uYW1lLCAiaW5kZXgiLCAibmFtZSIpOworICAgICAg
ICBhc3NlcnRfZXF1YWxzKGluZGV4Lm9iamVjdFN0b3JlLCBvYmpTdG9yZSwgIm9iamVjdFN0b3Jl
Iik7CisgICAgICAgIGFzc2VydF9lcXVhbHMoaW5kZXgua2V5UGF0aCwgImluZGV4ZWRQcm9wZXJ0
eSIsICJrZXlQYXRoIik7CisgICAgICAgIGFzc2VydF90cnVlKGluZGV4LnVuaXF1ZSwgInVuaXF1
ZSIpOworICAgICAgICBhc3NlcnRfZmFsc2UoaW5kZXgubXVsdGlFbnRyeSwgIm11bHRpRW50cnki
KTsKKworICAgICAgICB0LmRvbmUoKTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9Imxv
ZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDEwLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hYTFhYzUzCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9jcmVhdGVJbmRleDEwLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFT
UyBJREJEYXRhYmFzZS5jcmVhdGVJbmRleCgpIC0gSWYgYW4gaW5kZXggd2l0aCB0aGUgbmFtZSBu
YW1lIGFscmVhZHkgZXhpc3RzIGluIHRoaXMgb2JqZWN0IHN0b3JlLCB0aGUgaW1wbGVtZW50YXRp
b24gbXVzdCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIENvbnN0cmFpbnRFcnJvciAgCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfY3JlYXRlSW5kZXgxMC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTAuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmU2MGUxMTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTAuaHRtCkBA
IC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PHRpdGxlPklEQkRhdGFiYXNlLmNyZWF0ZUluZGV4KCkgLSBJZiBhbiBpbmRleCB3aXRoIHRoZSBu
YW1lIG5hbWUgYWxyZWFkeSBleGlzdHMgaW4gdGhpcyBvYmplY3Qgc3RvcmUsIHRoZSBpbXBsZW1l
bnRhdGlvbiBtdXN0IHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgQ29uc3RyYWludEVycm9y
IDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8v
d3d3LmludGVsLmNvbSI+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5v
cmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCT2JqZWN0
U3RvcmUtY3JlYXRlSW5kZXgtSURCSW5kZXgtRE9NU3RyaW5nLW5hbWUtRE9NU3RyaW5nLXNlcXVl
bmNlLURPTVN0cmluZy0ta2V5UGF0aC1JREJJbmRleFBhcmFtZXRlcnMtb3B0aW9uYWxQYXJhbWV0
ZXJzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9y
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2
IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4KK3ZhciB0ID0gYXN5bmNfdGVzdCgpLAorICAgIG9w
ZW5fcnEgPSBjcmVhdGVkYih0KTsKKworb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlv
biAoZSkgeworICAgIHZhciBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICB2YXIgb3N0b3JlID0g
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIik7CisgICAgb3N0b3JlLmNyZWF0ZUluZGV4KCJh
IiwgImEiKTsKKyAgICBhc3NlcnRfdGhyb3dzKCJDb25zdHJhaW50RXJyb3IiLCBmdW5jdGlvbigp
eworICAgICAgICBvc3RvcmUuY3JlYXRlSW5kZXgoImEiLCAiYSIpOworICAgIH0pOworICAgIHQu
ZG9uZSgpOworfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0
ZUluZGV4MTEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmQ2YWYxZTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTEtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMyBAQAorCitQQVNTIElEQkRhdGFiYXNlLmNyZWF0ZUluZGV4KCkgLSBJZiBrZXlQYXRoIGlz
IG5vdCBhIHZhbGlkIGtleSBwYXRoLCB0aGUgaW1wbGVtZW50YXRpb24gbXVzdCB0aHJvdyBhIERP
TUV4Y2VwdGlvbiBvZiB0eXBlIFN5bnRheEVycm9yICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDExLmh0
bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3Jl
YXRlSW5kZXgxMS5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDQ0ZDI0
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMS5odG0KQEAgLTAsMCArMSwyMyBAQAorPCFET0NU
WVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCRGF0YWJhc2UuY3Jl
YXRlSW5kZXgoKSAtIElmIGtleVBhdGggaXMgbm90IGEgdmFsaWQga2V5IHBhdGgsIHRoZSBpbXBs
ZW1lbnRhdGlvbiBtdXN0IHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgU3ludGF4RXJyb3Ig
PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6Ly93
d3cuaW50ZWwuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLnczLm9y
Zy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJPYmplY3RT
dG9yZS1jcmVhdGVJbmRleC1JREJJbmRleC1ET01TdHJpbmctbmFtZS1ET01TdHJpbmctc2VxdWVu
Y2UtRE9NU3RyaW5nLS1rZXlQYXRoLUlEQkluZGV4UGFyYW1ldGVycy1vcHRpb25hbFBhcmFtZXRl
cnMiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXYg
aWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgordmFyIHQgPSBhc3luY190ZXN0KCksCisgICAgb3Bl
bl9ycSA9IGNyZWF0ZWRiKHQpOworCitvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9u
IChlKSB7CisgICAgdmFyIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgIHZhciBvc3RvcmUgPSBk
Yi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKyAgICBhc3NlcnRfdGhyb3dzKCJTeW50YXhF
cnJvciIsIGZ1bmN0aW9uKCl7CisgICAgICAgIG9zdG9yZS5jcmVhdGVJbmRleCgiYWIiLCAiLiIp
OworICAgIH0pOworICAgIHQuZG9uZSgpOworfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5k
ZXgxMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmUyMzI5ZjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTItZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkRhdGFiYXNlLmNyZWF0ZUluZGV4
KCkgLSBJZiB0aGUgb2JqZWN0IHN0b3JlIGhhcyBiZWVuIGRlbGV0ZWQsIHRoZSBpbXBsZW1lbnRh
dGlvbiBtdXN0IHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgSW52YWxpZFN0YXRlRXJyb3Ig
IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX2NyZWF0ZUluZGV4MTIuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDEyLmh0bQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi40OGE2ZDZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDEyLmh0
bQpAQCAtMCwwICsxLDMxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KKzx0aXRsZT5JREJEYXRhYmFzZS5jcmVhdGVJbmRleCgpIC0gSWYgdGhlIG9iamVjdCBzdG9y
ZSBoYXMgYmVlbiBkZWxldGVkLCB0aGUgaW1wbGVtZW50YXRpb24gbXVzdCB0aHJvdyBhIERPTUV4
Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVycm9yIDwvdGl0bGU+Cis8bGluayByZWw9ImF1
dGhvciIgdGl0bGU9IkludGVsIiBocmVmPSJodHRwOi8vd3d3LmludGVsLmNvbSI+Cis8bGluayBy
ZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxl
L3RpcC9PdmVydmlldy5odG1sI3dpZGwtSURCT2JqZWN0U3RvcmUtY3JlYXRlSW5kZXgtSURCSW5k
ZXgtRE9NU3RyaW5nLW5hbWUtRE9NU3RyaW5nLXNlcXVlbmNlLURPTVN0cmluZy0ta2V5UGF0aC1J
REJJbmRleFBhcmFtZXRlcnMtb3B0aW9uYWxQYXJhbWV0ZXJzIj4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlw
dD4KKyAgICB2YXIgZGIsCisgICAgICAgIG9zdG9yZSwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3Qo
KTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3Jh
ZGVuZWVkZWQgPSBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQu
cmVzdWx0OworICAgICAgICBvc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKTsK
KyAgICAgICAgZGIuZGVsZXRlT2JqZWN0U3RvcmUoInN0b3JlIik7CisgICAgfQorCisgICAgb3Bl
bl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAgdC5zdGVwKGZ1bmN0
aW9uKCl7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1
bmN0aW9uKCl7CisgICAgICAgICAgICAgICAgb3N0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJp
bmRleGVkUHJvcGVydHkiKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICAgICAg
dC5kb25lKCk7CisgICAgfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3Jl
X2NyZWF0ZUluZGV4MTMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjQ3ZmJlNTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4MTMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMyBAQAorCitQQVNTIElEQkRhdGFiYXNlLmNyZWF0ZUluZGV4KCkgLSBPcGVyYXRl
IG91dCB2ZXJzaW9uY2hhbmdlIHRocm93IEludmFsaWRTdGF0ZUVycm9yICAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVh
dGVJbmRleDEzLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfY3JlYXRlSW5kZXgxMy5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uZjUxMjMxYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgxMy5odG0KQEAgLTAsMCArMSwz
MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURC
RGF0YWJhc2UuY3JlYXRlSW5kZXgoKSAtIE9wZXJhdGUgb3V0IHZlcnNpb25jaGFuZ2UgdGhyb3cg
SW52YWxpZFN0YXRlRXJyb3IgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50
ZWwiIGhyZWY9Imh0dHA6Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0i
aHR0cHM6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0
bWwjd2lkbC1JREJPYmplY3RTdG9yZS1jcmVhdGVJbmRleC1JREJJbmRleC1ET01TdHJpbmctbmFt
ZS1ET01TdHJpbmctc2VxdWVuY2UtRE9NU3RyaW5nLS1rZXlQYXRoLUlEQkluZGV4UGFyYW1ldGVy
cy1vcHRpb25hbFBhcmFtZXRlcnMiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxkaXYgaWQ9ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorICAgIHZhciBkYiwK
KyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIo
dCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbiAoZXZlbnQpIHsKKyAg
ICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgICAgICBkYi5jcmVhdGVPYmplY3RT
dG9yZSgic3RvcmUiKTsKKyAgICB9CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9u
IChldmVudCkgeworICAgICAgICB2YXIgdHhuID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIiwgInJl
YWR3cml0ZSIpOworICAgICAgICBvc3RvcmUgPSB0eG4ub2JqZWN0U3RvcmUoInN0b3JlIik7Cisg
ICAgICAgIHQuc3RlcChmdW5jdGlvbigpeworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiSW52
YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigpeworICAgICAgICAgICAgICAgIG9zdG9yZS5jcmVh
dGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5Iik7CisgICAgICAgICAgICB9KTsKKyAg
ICAgICAgfSk7CisgICAgICAgIHQuZG9uZSgpOworICAgIH0KKzwvc2NyaXB0PgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2Ny
ZWF0ZUluZGV4Mi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4Mi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWZlOGExZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgy
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworRkFJTCBJREJPYmplY3RTdG9yZS5jcmVh
dGVJbmRleCgpIC0gYXR0ZW1wdCB0byBjcmVhdGUgYW4gaW5kZXggdGhhdCByZXF1aXJlcyB1bmlx
dWUgdmFsdWVzIG9uIGFuIG9iamVjdCBzdG9yZSBhbHJlYWR5IGNvbnRhaW5zIGR1cGxpY2F0ZXMg
IGFzc2VydF91bnJlYWNoZWQ6IGdvdCBjb21wbGV0ZSwgZXhwZWN0ZWQgYWJvcnQgUmVhY2hlZCB1
bnJlYWNoYWJsZSBjb2RlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgyLmh0bSBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgyLmh0bQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OGJlYjQ5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVh
dGVJbmRleDIuaHRtCkBAIC0wLDAgKzEsNDEgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hh
cnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCkgLSBhdHRl
bXB0IHRvIGNyZWF0ZSBhbiBpbmRleCB0aGF0IHJlcXVpcmVzIHVuaXF1ZSB2YWx1ZXMgb24gYW4g
b2JqZWN0IHN0b3JlIGFscmVhZHkgY29udGFpbnMgZHVwbGljYXRlcyA8L3RpdGxlPgorPGxpbmsg
cmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0
LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8
c2NyaXB0PgorICAgIHZhciBkYiwgYWJvcnRlZCwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisg
ICAgICByZWNvcmQgPSB7IGluZGV4ZWRQcm9wZXJ0eTogImJhciIgfTsKKworICAgIHZhciBvcGVu
X3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlv
bihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgdHhuID0g
ZS50YXJnZXQudHJhbnNhY3Rpb24sCisgICAgICAgICAgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmpl
Y3RTdG9yZSgic3RvcmUiKTsKKworICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3JkLCAxKTsKKyAg
ICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZCwgMik7CisgICAgICAgIHZhciBpbmRleCA9IG9ialN0
b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpbmRleGVkUHJvcGVydHkiLCB7IHVuaXF1ZTogdHJ1
ZSB9KTsKKworICAgICAgICBhc3NlcnRfdHJ1ZShpbmRleCBpbnN0YW5jZW9mIElEQkluZGV4LCAi
SURCSW5kZXgiKTsKKworICAgICAgICBlLnRhcmdldC50cmFuc2FjdGlvbi5vbmFib3J0ID0gdC5z
dGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYWJvcnRlZCA9IHRydWU7CisgICAg
ICAgICAgICBhc3NlcnRfZXF1YWxzKGUudHlwZSwgImFib3J0IiwgImV2ZW50IHR5cGUiKTsKKyAg
ICAgICAgfSk7CisKKyAgICAgICAgZGIub25hYm9ydCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
ICAgIGFzc2VydF90cnVlKGFib3J0ZWQsICJ0cmFuc2FjdGlvbi5hYm9ydCBldmVudCBoYXMgZmly
ZWQiKTsKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9OworCisgICAgICAgIGUudGFy
Z2V0LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBmYWlsKHQsICJnb3QgY29tcGxldGUsIGV4cGVj
dGVkIGFib3J0Iik7CisgICAgfTsKKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX2NyZWF0ZUluZGV4My11c2FibGUtcmlnaHQtYXdheS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4
My11c2FibGUtcmlnaHQtYXdheS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uOGRmZmJlOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgzLXVzYWJsZS1yaWdo
dC1hd2F5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9y
ZS5jcmVhdGVJbmRleCgpIC0gdGhlIGluZGV4IGlzIHVzYWJsZSByaWdodCBhZnRlciBiZWluZyBt
YWRlIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2NyZWF0ZUluZGV4My11c2FibGUtcmlnaHQtYXdheS5odG0gYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4My11
c2FibGUtcmlnaHQtYXdheS5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
Zjk5ZmRiMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXgzLXVzYWJsZS1yaWdodC1hd2F5Lmh0bQpA
QCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
Kzx0aXRsZT5JREJPYmplY3RTdG9yZS5jcmVhdGVJbmRleCgpIC0gdGhlIGluZGV4IGlzIHVzYWJs
ZSByaWdodCBhZnRlciBiZWluZyBtYWRlPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVm
PSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8
bWV0YSBuYW1lPXRpbWVvdXQgY29udGVudD1sb25nPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJz
dXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsIGFib3J0ZWQsCisg
ICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSwge3RpbWVvdXQ6MTkwMDB9KQorCisg
ICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRl
ZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAg
IHZhciB0eG4gPSBlLnRhcmdldC50cmFuc2FjdGlvbiwKKyAgICAgICAgICBvYmpTdG9yZSA9IGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogJ2tleScgfSk7CisKKyAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDA7IGkrKykKKyAgICAgICAgICAgIG9ialN0b3JlLmFk
ZCh7IGtleTogImtleV8iICsgaSwgaW5kZXhlZFByb3BlcnR5OiAiaW5kZXhlZF8iICsgaSB9KTsK
KworICAgICAgICB2YXIgaWR4ID0gb2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4
ZWRQcm9wZXJ0eSIpCisKKyAgICAgICAgaWR4LmdldCgnaW5kZXhlZF85OScpLm9uc3VjY2VzcyA9
IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50
YXJnZXQucmVzdWx0LmtleSwgJ2tleV85OScsICdrZXknKTsKKyAgICAgICAgfSk7CisgICAgICAg
IGlkeC5nZXQoJ2luZGV4ZWRfOScpLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LmtleSwgJ2tleV85
JywgJ2tleScpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9
IGZ1bmN0aW9uKCkgeworICAgICAgICB0LmRvbmUoKTsKKyAgICB9Cis8L3NjcmlwdD4KKworPGRp
diBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg0LWRlbGV0ZUluZGV4LWV2ZW50X29y
ZGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg0LWRlbGV0ZUluZGV4LWV2ZW50X29yZGVyLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iN2E0NzMyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9jcmVhdGVJbmRleDQtZGVsZXRlSW5kZXgtZXZlbnRfb3JkZXItZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMyBAQAorCitUSU1FT1VUIElEQk9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCkgLSBF
dmVudCBvcmRlcmluZyBmb3IgYSBsYXRlciBkZWxldGVkIGluZGV4IFRlc3QgdGltZWQgb3V0CisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfY3JlYXRlSW5kZXg0LWRlbGV0ZUluZGV4LWV2ZW50X29yZGVyLmh0bSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg0LWRl
bGV0ZUluZGV4LWV2ZW50X29yZGVyLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi40YmYwMTM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDQtZGVsZXRlSW5kZXgtZXZlbnRf
b3JkZXIuaHRtCkBAIC0wLDAgKzEsNjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCkgLSBFdmVudCBv
cmRlcmluZyBmb3IgYSBsYXRlciBkZWxldGVkIGluZGV4PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0
aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBP
bWRhbCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8
c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIGV2ZW50cyA9IFtdLAorICAgICAgdCA9IGFzeW5j
X3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pCisKKyAgICB2YXIgb3Blbl9y
cSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgZS50YXJnZXQudHJh
bnNhY3Rpb24ub25jb21wbGV0ZSA9IGxvZygidHJhbnNhY3Rpb24uY29tcGxldGUiKTsKKworICAg
ICAgICB2YXIgdHhuID0gZS50YXJnZXQudHJhbnNhY3Rpb24sCisgICAgICAgICAgb2JqU3RvcmUg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKworICAgICAgICB2YXIgcnFfYWRkMSA9
IG9ialN0b3JlLmFkZCh7IGFuaW1hbDogIlVuaWNvcm4iIH0sIDEpOworICAgICAgICBycV9hZGQx
Lm9uc3VjY2VzcyA9IGxvZygicnFfYWRkMS5zdWNjZXNzIik7CisgICAgICAgIHJxX2FkZDEub25l
cnJvciAgID0gbG9nKCJycV9hZGQxLmVycm9yIik7CisKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRl
SW5kZXgoImluZGV4IiwgImFuaW1hbCIsIHsgdW5pcXVlOiB0cnVlIH0pOworCisgICAgICAgIHZh
ciBycV9hZGQyID0gb2JqU3RvcmUuYWRkKHsgYW5pbWFsOiAiVW5pY29ybiIgfSwgMik7CisgICAg
ICAgIHJxX2FkZDIub25zdWNjZXNzID0gbG9nKCJycV9hZGQyLnN1Y2Nlc3MiKTsKKyAgICAgICAg
cnFfYWRkMi5vbmVycm9yICAgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBsb2coInJxX2Fk
ZDIuZXJyb3IiKShlKTsKKyAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTsKKyAgICAgICAg
ICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgIH0KKworICAgICAgICBvYmpTdG9yZS5k
ZWxldGVJbmRleCgiaW5kZXgiKTsKKworICAgICAgICB2YXIgcnFfYWRkMyA9IG9ialN0b3JlLmFk
ZCh7IGFuaW1hbDogIlVuaWNvcm4iIH0sIDMpOworICAgICAgICBycV9hZGQzLm9uc3VjY2VzcyA9
IGxvZygicnFfYWRkMy5zdWNjZXNzIik7CisgICAgICAgIHJxX2FkZDMub25lcnJvciAgID0gbG9n
KCJycV9hZGQzLmVycm9yIik7CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5j
dGlvbihlKSB7CisgICAgICAgIGxvZygib3Blbl9ycS5zdWNjZXNzIikoZSk7CisgICAgICAgIGFz
c2VydF9hcnJheV9lcXVhbHMoZXZlbnRzLCBbICJycV9hZGQxLnN1Y2Nlc3MiLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicnFfYWRkMi5lcnJvcjogQ29uc3RyYWludEVy
cm9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInJxX2FkZDMuc3Vj
Y2VzcyIsCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRyYW5zYWN0
aW9uLmNvbXBsZXRlIiwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
b3Blbl9ycS5zdWNjZXNzIiBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJldmVudHMi
KTsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbG9nKG1zZykgewor
ICAgICAgICByZXR1cm4gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgaWYoZSAmJiBlLnRhcmdl
dCAmJiBlLnRhcmdldC5lcnJvcikKKyAgICAgICAgICAgICAgICBldmVudHMucHVzaChtc2cgKyAi
OiAiICsgZS50YXJnZXQuZXJyb3IubmFtZSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgZXZlbnRzLnB1c2gobXNnKTsKKyAgICAgICAgfTsKKyAgICB9Cis8L3NjcmlwdD4KKwor
PGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg1LWVtcHR5a2V5cGF0aC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX2NyZWF0ZUluZGV4NS1lbXB0eWtleXBhdGgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNiMTYzMDUyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDUt
ZW1wdHlrZXlwYXRoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmpl
Y3RTdG9yZS5jcmVhdGVJbmRleCgpIC0gZW1wdHkga2V5UGF0aCAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRl
eDUtZW1wdHlrZXlwYXRoLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg1LWVtcHR5a2V5cGF0aC5odG0KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTNiZThlZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg1
LWVtcHR5a2V5cGF0aC5odG0KQEAgLTAsMCArMSwzOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoKSAt
IGVtcHR5IGtleVBhdGg8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpv
ZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRi
LCBhYm9ydGVkLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0
OiAxMDAwMH0pCisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEu
b251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJl
c3VsdDsKKyAgICAgICAgdmFyIHR4biA9IGUudGFyZ2V0LnRyYW5zYWN0aW9uLAorICAgICAgICAg
IG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIik7CisKKyAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCA1OyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQoIm9iamVj
dF8iICsgaSwgaSk7CisKKyAgICAgICAgdmFyIHJxID0gb2JqU3RvcmUuY3JlYXRlSW5kZXgoImlu
ZGV4IiwgIiIpCisgICAgICAgIHJxLm9uZXJyb3IgPSBmdW5jdGlvbigpIHsgYXNzZXJ0X3VucmVh
Y2hlZCgiZXJyb3I6ICIgKyBycS5lcnJvci5uYW1lKTsgfQorICAgICAgICBycS5vbnN1Y2Nlc3Mg
PSBmdW5jdGlvbigpIHsgfQorCisgICAgICAgIG9ialN0b3JlLmluZGV4KCJpbmRleCIpCisgICAg
ICAgICAgICAgICAgLmdldCgnb2JqZWN0XzQnKQorICAgICAgICAgICAgICAgIC5vbnN1Y2Nlc3Mg
PSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUu
dGFyZ2V0LnJlc3VsdCwgJ29iamVjdF80JywgJ3Jlc3VsdCcpOworICAgICAgICB9KTsKKyAgICB9
CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgeworICAgICAgICB0LmRvbmUo
KTsKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRl
SW5kZXg2LWV2ZW50X29yZGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg2LWV2ZW50X29yZGVyLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYjQ2ZGY1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9jcmVhdGVJbmRleDYtZXZlbnRfb3JkZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MyBAQAorCitGQUlMIElEQk9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCkgLSBldmVudCBvcmRlciB3
aGVuIHVuaXF1ZSBjb25zdHJhaW50IGlzIHRyaWdnZXJlZCBhc3NlcnRfdW5yZWFjaGVkOiB1bmV4
cGVjdGVkIG9wZW4uc3VjY2VzcyBldmVudCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9jcmVhdGVJbmRleDYtZXZlbnRfb3JkZXIuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDYtZXZlbnRfb3JkZXIuaHRtCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhMDFjYTAKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2Ny
ZWF0ZUluZGV4Ni1ldmVudF9vcmRlci5odG0KQEAgLTAsMCArMSw3NSBAQAorPCFET0NUWVBFIGh0
bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPklEQk9iamVjdFN0b3JlLmNyZWF0ZUlu
ZGV4KCkgLSBldmVudCBvcmRlciB3aGVuIHVuaXF1ZSBjb25zdHJhaW50IGlzIHRyaWdnZXJlZDwv
dGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20i
IHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPG1ldGEgcmVsPWhlbHAgaHJlZj1odHRwOi8v
b2RpbmhvLmh0bWw1Lm9yZy9JbmRleGVkREIvc3BlYy9PdmVydmlldy5odG1sI3dpZGwtSURCT2Jq
ZWN0U3RvcmUtY3JlYXRlSW5kZXgtSURCSW5kZXgtRE9NU3RyaW5nLW5hbWUtYW55LWtleVBhdGgt
SURCSW5kZXhQYXJhbWV0ZXJzLW9wdGlvbmFsUGFyYW1ldGVycz4KKzxtZXRhIHJlbD1hc3NlcnQg
dGl0bGU9IlRoZSBpbmRleCB0aGF0IGlzIHJlcXVlc3RlZCB0byBiZSBjcmVhdGVkIGNhbiBjb250
YWluIGNvbnN0cmFpbnRzIG9uIHRoZSBkYXRhIGFsbG93ZWQgaW4gdGhlIGluZGV4J3MgcmVmZXJl
bmNlZCBvYmplY3Qgc3RvcmUsIHN1Y2ggYXMgcmVxdWlyaW5nIHVuaXF1ZW5lc3Mgb2YgdGhlIHZh
bHVlcyByZWZlcmVuY2VkIGJ5IHRoZSBpbmRleCdzIGtleVBhdGguIElmIHRoZSByZWZlcmVuY2Vk
IG9iamVjdCBzdG9yZSBhbHJlYWR5IGNvbnRhaW5zIGRhdGEgd2hpY2ggdmlvbGF0ZXMgdGhlc2Ug
Y29uc3RyYWludHMsIHRoaXMgbXVzdCBub3QgY2F1c2UgdGhlIGltcGxlbWVudGF0aW9uIG9mIGNy
ZWF0ZUluZGV4IHRvIHRocm93IGFuIGV4Y2VwdGlvbiBvciBhZmZlY3Qgd2hhdCBpdCByZXR1cm5z
LiBUaGUgaW1wbGVtZW50YXRpb24gbXVzdCBzdGlsbCBjcmVhdGUgYW5kIHJldHVybiBhbiBJREJJ
bmRleCBvYmplY3QuIEluc3RlYWQgdGhlIGltcGxlbWVudGF0aW9uIG11c3QgcXVldWUgdXAgYW4g
b3BlcmF0aW9uIHRvIGFib3J0IHRoZSAndmVyc2lvbmNoYW5nZScgdHJhbnNhY3Rpb24gd2hpY2gg
d2FzIHVzZWQgZm9yIHRoZSBjcmVhdGVJbmRleCBjYWxsLiI+Cis8bWV0YSByZWw9YXNzZXJ0IHRp
dGxlPSJJbiBzb21lIGltcGxlbWVudGF0aW9ucyBpdCdzIHBvc3NpYmxlIGZvciB0aGUgaW1wbGVt
ZW50YXRpb24gdG8gYXN5bmNocm9ub3VzbHkgcnVuIGludG8gcHJvYmxlbXMgY3JlYXRpbmcgdGhl
IGluZGV4IGFmdGVyIHRoZSBjcmVhdGVJbmRleCBmdW5jdGlvbiBoYXMgcmV0dXJuZWQuIEZvciBl
eGFtcGxlIGluIGltcGxlbWVudGF0aW9ucyB3aGVyZSBtZXRhZGF0YSBhYm91dCB0aGUgbmV3bHkg
Y3JlYXRlZCBpbmRleCBpcyBxdWV1ZWQgdXAgdG8gYmUgaW5zZXJ0ZWQgaW50byB0aGUgZGF0YWJh
c2UgYXN5bmNocm9ub3VzbHksIG9yIHdoZXJlIHRoZSBpbXBsZW1lbnRhdGlvbiBtaWdodCBuZWVk
IHRvIGFzayB0aGUgdXNlciBmb3IgcGVybWlzc2lvbiBmb3IgcXVvdGEgcmVhc29ucy4gU3VjaCBp
bXBsZW1lbnRhdGlvbnMgbXVzdCBzdGlsbCBjcmVhdGUgYW5kIHJldHVybiBhbiBJREJJbmRleCBv
YmplY3QuIEluc3RlYWQsIG9uY2UgdGhlIGltcGxlbWVudGF0aW9uIHJlYWxpemVzIHRoYXQgY3Jl
YXRpbmcgdGhlIGluZGV4IGhhcyBmYWlsZWQsIGl0IG11c3QgYWJvcnQgdGhlIHRyYW5zYWN0aW9u
IHVzaW5nIHRoZSBzdGVwcyBmb3IgYWJvcnRpbmcgYSB0cmFuc2FjdGlvbiB1c2luZyB0aGUgYXBw
cm9wcmlhdGUgZXJyb3IgYXMgZXJyb3IgcGFyYW1ldGVyLiI+Cis8bWV0YSByZWw9YXNzZXJ0IHRp
dGxlPSJpZiB0aGUgaW5kZXggY2FuJ3QgYmUgY3JlYXRlZCBkdWUgdG8gdW5pcXVlIGNvbnN0cmFp
bnRzLCBDb25zdHJhaW50RXJyb3IgbXVzdCBiZSB1c2VkIGFzIGVycm9yIj4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIC8vIFRyYW5z
YWN0aW9uIG1heSBmaXJlIHdpbmRvdy5vbmVycm9yIGluIHNvbWUgaW1wbGVtZW50YXRpb25zLgor
ICAgIHNldHVwKHthbGxvd191bmNhdWdodF9leGNlcHRpb246dHJ1ZX0pOworCisgICAgdmFyIGRi
LAorICAgICAgZXZlbnRzID0gW10sCisgICAgICB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRs
ZSwge3RpbWVvdXQ6IDEwMDAwfSkKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Cisg
ICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0g
ZS50YXJnZXQucmVzdWx0OworICAgICAgICBkYi5vbmVycm9yID0gbG9nKCJkYi5lcnJvciIpOwor
ICAgICAgICBkYi5vbmFib3J0ID0gbG9nKCJkYi5hYm9ydCIpOworICAgICAgICBlLnRhcmdldC50
cmFuc2FjdGlvbi5vbmFib3J0ID0gbG9nKCJ0cmFuc2FjdGlvbi5hYm9ydCIpCisgICAgICAgIGUu
dGFyZ2V0LnRyYW5zYWN0aW9uLm9uZXJyb3IgPSBsb2coInRyYW5zYWN0aW9uLmVycm9yIikKKyAg
ICAgICAgZS50YXJnZXQudHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGxvZygidHJhbnNhY3Rpb24u
Y29tcGxldGUiKQorCisgICAgICAgIHZhciB0eG4gPSBlLnRhcmdldC50cmFuc2FjdGlvbiwKKyAg
ICAgICAgICBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOworCisgICAg
ICAgIHZhciBycV9hZGQxID0gb2JqU3RvcmUuYWRkKHsgYW5pbWFsOiAiVW5pY29ybiIgfSwgMSk7
CisgICAgICAgIHJxX2FkZDEub25zdWNjZXNzID0gbG9nKCJycV9hZGQxLnN1Y2Nlc3MiKTsKKyAg
ICAgICAgcnFfYWRkMS5vbmVycm9yICAgPSBsb2coInJxX2FkZDEuZXJyb3IiKTsKKworICAgICAg
ICB2YXIgcnFfYWRkMiA9IG9ialN0b3JlLmFkZCh7IGFuaW1hbDogIlVuaWNvcm4iIH0sIDIpOwor
ICAgICAgICBycV9hZGQyLm9uc3VjY2VzcyA9IGxvZygicnFfYWRkMi5zdWNjZXNzIik7CisgICAg
ICAgIHJxX2FkZDIub25lcnJvciAgID0gbG9nKCJycV9hZGQyLmVycm9yIik7CisKKyAgICAgICAg
b2JqU3RvcmUuY3JlYXRlSW5kZXgoImluZGV4IiwgImFuaW1hbCIsIHsgdW5pcXVlOiB0cnVlIH0p
CisKKyAgICAgICAgdmFyIHJxX2FkZDMgPSBvYmpTdG9yZS5hZGQoeyBhbmltYWw6ICJVbmljb3Ju
IiB9LCAzKTsKKyAgICAgICAgcnFfYWRkMy5vbnN1Y2Nlc3MgPSBsb2coInJxX2FkZDMuc3VjY2Vz
cyIpOworICAgICAgICBycV9hZGQzLm9uZXJyb3IgICA9IGxvZygicnFfYWRkMy5lcnJvciIpOwor
ICAgIH0KKworICAgIG9wZW5fcnEub25lcnJvciA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgbG9n
KCJvcGVuX3JxLmVycm9yIikoZSk7CisgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZXZlbnRz
LCBbICJycV9hZGQxLnN1Y2Nlc3MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAicnFfYWRkMi5zdWNjZXNzIiwKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAicnFfYWRkMy5lcnJvcjogQWJvcnRFcnJvciIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJ0cmFuc2FjdGlvbi5lcnJvcjogQWJvcnRFcnJvciIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkYi5lcnJvcjogQWJvcnRFcnJvciIs
CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRyYW5zYWN0aW9uLmFi
b3J0OiBDb25zdHJhaW50RXJyb3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiZGIuYWJvcnQ6IENvbnN0cmFpbnRFcnJvciIsCisKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIm9wZW5fcnEuZXJyb3I6IEFib3J0RXJyb3IiIF0sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImV2ZW50cyIpOworICAgICAgICB0LmRvbmUoKTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgICAgIHJldHVybiBmdW5jdGlvbihlKSB7
CisgICAgICAgICAgICBpZihlICYmIGUudGFyZ2V0ICYmIGUudGFyZ2V0LmVycm9yKQorICAgICAg
ICAgICAgICAgIGV2ZW50cy5wdXNoKG1zZyArICI6ICIgKyBlLnRhcmdldC5lcnJvci5uYW1lKTsK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBldmVudHMucHVzaChtc2cpOworICAg
ICAgICB9OworICAgIH0KKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3Jl
YXRlSW5kZXg3LWV2ZW50X29yZGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg3LWV2ZW50X29yZGVyLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40MjkzOGMwCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9jcmVhdGVJbmRleDctZXZlbnRfb3JkZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMyBAQAorCitGQUlMIElEQk9iamVjdFN0b3JlLmNyZWF0ZUluZGV4KCkgLSBFdmVudCBvcmRl
cmluZyBmb3IgQ29uc3RyYWludEVycm9yIG9uIHJlcXVlc3QgYXNzZXJ0X3VucmVhY2hlZDogdW5l
eHBlY3RlZCBvcGVuLnN1Y2Nlc3MgZXZlbnQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfY3JlYXRlSW5kZXg3LWV2ZW50X29yZGVyLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg3LWV2ZW50X29yZGVyLmh0bQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZTc3M2QzCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9j
cmVhdGVJbmRleDctZXZlbnRfb3JkZXIuaHRtCkBAIC0wLDAgKzEsODAgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLmNyZWF0
ZUluZGV4KCkgLSBFdmVudCBvcmRlcmluZyBmb3IgQ29uc3RyYWludEVycm9yIG9uIHJlcXVlc3Q8
L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29t
IiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxtZXRhIHJlbD1oZWxwIGhyZWY9aHR0cDov
L29kaW5oby5odG1sNS5vcmcvSW5kZXhlZERCL3NwZWMvT3ZlcnZpZXcuaHRtbCNkZm4tc3RlcHMt
Zm9yLWFib3J0aW5nLWEtdHJhbnNhY3Rpb24+Cis8bWV0YSByZWw9YXNzZXJ0IHRpdGxlPSJVbmxl
c3MgZXJyb3Igd2FzIHNldCB0byBudWxsLCBjcmVhdGUgYSBET01FcnJvciBvYmplY3QgYW5kIHNl
dCBpdHMgbmFtZSB0byBlcnJvci4gU2V0IHRyYW5zYWN0aW9uJ3MgZXJyb3IgcHJvcGVydHkgdG8g
dGhpcyBuZXdseSBjcmVhdGVkIERPTUVycm9yLiI+Cis8bWV0YSByZWw9YXNzZXJ0IHRpdGxlPSJJ
ZiB0aGUgdHJhbnNhY3Rpb24ncyByZXF1ZXN0IGxpc3QgY29udGFpbiBhbnkgcmVxdWVzdHMgd2hv
c2UgZG9uZSBmbGFnIGlzIHN0aWxsIGZhbHNlLCBhYm9ydCB0aGUgc3RlcHMgZm9yIGFzeW5jaHJv
bm91c2x5IGV4ZWN1dGluZyBhIHJlcXVlc3QgZm9yIGVhY2ggc3VjaCByZXF1ZXN0IGFuZCBxdWV1
ZSBhIHRhc2sgdG8gcGVyZm9ybSB0aGUgZm9sbG93aW5nIHN0ZXBzOiI+Cis8bWV0YSByZWw9YXNz
ZXJ0IHRpdGxlPSJzZXQgdGhlIHJlcXVlc3QncyBlcnJvciBhdHRyaWJ1dGUgdG8gYSBET01FcnJv
ciB3aXRoIGEgdHlwZSBvZiBBYm9ydEVycm9yLiI+Cis8bWV0YSByZWw9YXNzZXJ0IHRpdGxlPSJE
aXNwYXRjaCBhbiBldmVudCBhdCByZXF1ZXN0LiBUaGUgZXZlbnQgbXVzdCB1c2UgdGhlIEV2ZW50
IGludGVyZmFjZSBhbmQgaGF2ZSBpdHMgdHlwZSBzZXQgdG8gJ2Vycm9yJy4gVGhlIGV2ZW50IGJ1
YmJsZXMgYW5kIGlzIGNhbmNlbGFibGUuIFRoZSBwcm9wYWdhdGlvbiBwYXRoIGZvciB0aGUgZXZl
bnQgaXMgdHJhbnNhY3Rpb24ncyBjb25uZWN0aW9uLCB0aGVuIHRyYW5zYWN0aW9uIGFuZCBmaW5h
bGx5IHRoZSByZXF1ZXN0LiBUaGVyZSBpcyBubyBkZWZhdWx0IGFjdGlvbiBmb3IgdGhlIGV2ZW50
LiI+Cis8bWV0YSByZWw9YXNzZXJ0IHRpdGxlPSJRdWV1ZSB1cCBhbiBvcGVyYXRpb24gdG8gZGlz
cGF0Y2ggYW4gZXZlbnQgYXQgdHJhbnNhY3Rpb24uIFRoZSBldmVudCBtdXN0IHVzZSB0aGUgRXZl
bnQgaW50ZXJmYWNlIGFuZCBoYXZlIGl0cyB0eXBlIHNldCB0byAnYWJvcnQnLiBUaGUgZXZlbnQg
ZG9lcyBidWJibGUgYnV0IGlzIG5vdCBjYW5jZWxhYmxlLiBUaGUgcHJvcGFnYXRpb24gcGF0aCBm
b3IgdGhlIGV2ZW50IGlzIHRyYW5zYWN0aW9uJ3MgY29ubmVjdGlvbiBhbmQgdGhlbiB0cmFuc2Fj
dGlvbi4iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKwor
PHNjcmlwdD4KKyAgICAvLyBUcmFuc2FjdGlvbiBtYXkgZmlyZSB3aW5kb3cub25lcnJvciBpbiBz
b21lIGltcGxlbWVudGF0aW9ucy4KKyAgICBzZXR1cCh7YWxsb3dfdW5jYXVnaHRfZXhjZXB0aW9u
OnRydWV9KTsKKworICAgIHZhciBkYiwKKyAgICAgIGV2ZW50cyA9IFtdLAorICAgICAgdCA9IGFz
eW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pCisKKyAgICB2YXIgb3Bl
bl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rp
b24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIHR4biA9
IGUudGFyZ2V0LnRyYW5zYWN0aW9uOworICAgICAgICBkYi5vbmVycm9yID0gbG9nKCJkYi5lcnJv
ciIpOworICAgICAgICBkYi5vbmFib3J0ID0gbG9nKCJkYi5hYm9ydCIpOworICAgICAgICB0eG4u
b25hYm9ydCA9IGxvZygidHJhbnNhY3Rpb24uYWJvcnQiKQorICAgICAgICB0eG4ub25lcnJvciA9
IGxvZygidHJhbnNhY3Rpb24uZXJyb3IiKQorICAgICAgICB0eG4ub25jb21wbGV0ZSA9IGxvZygi
dHJhbnNhY3Rpb24uY29tcGxldGUiKQorCisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0
ZU9iamVjdFN0b3JlKCJzdG9yZSIpOworCisgICAgICAgIHZhciBycV9hZGQxID0gb2JqU3RvcmUu
YWRkKHsgYW5pbWFsOiAiVW5pY29ybiIgfSwgMSk7CisgICAgICAgIHJxX2FkZDEub25zdWNjZXNz
ID0gbG9nKCJycV9hZGQxLnN1Y2Nlc3MiKTsKKyAgICAgICAgcnFfYWRkMS5vbmVycm9yICAgPSBs
b2coInJxX2FkZDEuZXJyb3IiKTsKKworICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCgiaW5k
ZXgiLCAiYW5pbWFsIiwgeyB1bmlxdWU6IHRydWUgfSkKKworICAgICAgICB2YXIgcnFfYWRkMiA9
IG9ialN0b3JlLmFkZCh7IGFuaW1hbDogIlVuaWNvcm4iIH0sIDIpOworICAgICAgICBycV9hZGQy
Lm9uc3VjY2VzcyA9IGxvZygicnFfYWRkMi5zdWNjZXNzIik7CisgICAgICAgIHJxX2FkZDIub25l
cnJvciAgID0gbG9nKCJycV9hZGQyLmVycm9yIik7CisKKyAgICAgICAgdmFyIHJxX2FkZDMgPSBv
YmpTdG9yZS5hZGQoeyBhbmltYWw6ICJIb3JzZSIgfSwgMyk7CisgICAgICAgIHJxX2FkZDMub25z
dWNjZXNzID0gbG9nKCJycV9hZGQzLnN1Y2Nlc3MiKTsKKyAgICAgICAgcnFfYWRkMy5vbmVycm9y
ICAgPSBsb2coInJxX2FkZDMuZXJyb3IiKTsKKyAgICB9CisKKyAgICBvcGVuX3JxLm9uZXJyb3Ig
PSBmdW5jdGlvbihlKSB7CisgICAgICAgIGxvZygib3Blbl9ycS5lcnJvciIpKGUpOworICAgICAg
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKGV2ZW50cywgWyAicnFfYWRkMS5zdWNjZXNzIiwKKworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicnFfYWRkMi5lcnJvcjogQ29uc3Ry
YWludEVycm9yIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRyYW5z
YWN0aW9uLmVycm9yOiBDb25zdHJhaW50RXJyb3IiLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiZGIuZXJyb3I6IENvbnN0cmFpbnRFcnJvciIsCisKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgInJxX2FkZDMuZXJyb3I6IEFib3J0RXJyb3IiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHJhbnNhY3Rpb24uZXJyb3I6
IEFib3J0RXJyb3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGIu
ZXJyb3I6IEFib3J0RXJyb3IiLAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJ0cmFuc2FjdGlvbi5hYm9ydDogQ29uc3RyYWludEVycm9yIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgImRiLmFib3J0OiBDb25zdHJhaW50RXJyb3IiLAorCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvcGVuX3JxLmVycm9yOiBBYm9y
dEVycm9yIiBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJldmVudHMiKTsKKyAgICAg
ICAgdC5kb25lKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbG9nKG1zZykgeworICAgICAgICBy
ZXR1cm4gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgaWYoZSAmJiBlLnRhcmdldCAmJiBlLnRh
cmdldC5lcnJvcikKKyAgICAgICAgICAgICAgICBldmVudHMucHVzaChtc2cgKyAiOiAiICsgZS50
YXJnZXQuZXJyb3IubmFtZSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZXZl
bnRzLnB1c2gobXNnKTsKKyAgICAgICAgfTsKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD0i
bG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg4LXZhbGlkX2tleXMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJ
bmRleDgtdmFsaWRfa2V5cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uOTc2ZWZkMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg4LXZhbGlkX2tleXMtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmNyZWF0ZUlu
ZGV4KCkgLSBpbmRleCBjYW4gYmUgdmFsaWQga2V5cyAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDgtdmFs
aWRfa2V5cy5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX2NyZWF0ZUluZGV4OC12YWxpZF9rZXlzLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi5hNzJmZWIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDgtdmFsaWRfa2V5
cy5odG0KQEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoKSAtIGluZGV4IGNhbiBi
ZSB2YWxpZCBrZXlzPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2Rp
bmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8bWV0YSBuYW1lPXRp
bWVvdXQgY29udGVudD1sb25nPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48
L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdChk
b2N1bWVudC50aXRsZSwge3RpbWVvdXQ6MTkwMDB9KSwKKyAgICAgIG5vdyA9IG5ldyBEYXRlKCks
CisgICAgICBtYXIxOCA9IG5ldyBEYXRlKDExMTExMTExMTExMTEpLAorICAgICAgYXIgPSBbIllh
eSIsIDIsIC1JbmZpbml0eV0sCisgICAgICBudW0gPSAxMzM3CisKKyAgICB2YXIgb3Blbl9ycSA9
IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkg
eworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIHR4biA9IGUudGFy
Z2V0LnRyYW5zYWN0aW9uLAorICAgICAgICAgIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoInN0b3JlIiwgeyBrZXlQYXRoOiAna2V5JyB9KTsKKworICAgICAgICBvYmpTdG9yZS5hZGQo
eyBrZXk6ICJub3ciLCAgICBpOiBub3cgICB9KTsKKyAgICAgICAgb2JqU3RvcmUuYWRkKHsga2V5
OiAibWFyMTgiLCAgaTogbWFyMTggfSk7CisgICAgICAgIG9ialN0b3JlLmFkZCh7IGtleTogImFy
cmF5IiwgIGk6IGFyICAgIH0pOworICAgICAgICBvYmpTdG9yZS5hZGQoeyBrZXk6ICJudW1iZXIi
LCBpOiBudW0gICB9KTsKKworICAgICAgICB2YXIgaWR4ID0gb2JqU3RvcmUuY3JlYXRlSW5kZXgo
ImluZGV4IiwgImkiKQorCisgICAgICAgIGlkeC5nZXQobm93KS5vbnN1Y2Nlc3MgPSB0LnN0ZXBf
ZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJl
c3VsdC5rZXksICdub3cnLCAna2V5Jyk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFy
Z2V0LnJlc3VsdC5pLmdldFRpbWUoKSwgbm93LmdldFRpbWUoKSwgJ2dldFRpbWUnKTsKKyAgICAg
ICAgfSk7CisgICAgICAgIGlkeC5nZXQobWFyMTgpLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0Lmtl
eSwgJ21hcjE4JywgJ2tleScpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5y
ZXN1bHQuaS5nZXRUaW1lKCksIG1hcjE4LmdldFRpbWUoKSwgJ2dldFRpbWUnKTsKKyAgICAgICAg
fSk7CisgICAgICAgIGlkeC5nZXQoYXIpLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LmtleSwgJ2Fy
cmF5JywgJ2tleScpOworICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhlLnRhcmdldC5y
ZXN1bHQuaSwgYXIsICdhcnJheSBpcyB0aGUgc2FtZScpOworICAgICAgICB9KTsKKyAgICAgICAg
aWR4LmdldChudW0pLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LmtleSwgJ251bWJlcicsICdrZXkn
KTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LmksIG51bSwgJ251
bWJlciBpcyB0aGUgc2FtZScpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBvcGVuX3JxLm9u
c3VjY2VzcyA9IGZ1bmN0aW9uKCkgeworICAgICAgICB0LmRvbmUoKTsKKyAgICB9Cis8L3Njcmlw
dD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfY3JlYXRlSW5kZXg5LWVtcHR5bmFtZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX2NyZWF0ZUluZGV4OS1lbXB0eW5hbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdhZWU5YmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4OS1l
bXB0eW5hbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0
b3JlLmNyZWF0ZUluZGV4KCkgLSBlbXB0eSBuYW1lIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2NyZWF0ZUluZGV4OS1lbXB0
eW5hbWUuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9jcmVhdGVJbmRleDktZW1wdHluYW1lLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5kODg5MWY0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9jcmVhdGVJbmRleDktZW1wdHluYW1lLmh0
bQpAQCAtMCwwICsxLDQxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+
Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuY3JlYXRlSW5kZXgoKSAtIGVtcHR5IG5hbWU8L3RpdGxl
PgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRs
ZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMv
dGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0Lmpz
Pjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYgorCisgICAgdmFyIG9wZW5fcnEgPSBj
cmVhdGVkYihhc3luY190ZXN0KCkpCisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0CisgICAgICAgIHZhciBzdG9y
ZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpCisKKyAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCA1OyBpKyspCisgICAgICAgICAgICBzdG9yZS5hZGQoeyBpZHg6ICJvYmplY3RfIiAr
IGkgfSwgaSkKKworICAgICAgICBzdG9yZS5jcmVhdGVJbmRleCgiIiwgImlkeCIpCisKKyAgICAg
ICAgc3RvcmUuaW5kZXgoIiIpCisgICAgICAgICAgICAgLmdldCgnb2JqZWN0XzQnKQorICAgICAg
ICAgICAgIC5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5pZHgsICdvYmplY3RfNCcsICdyZXN1
bHQnKQorICAgICAgICB9KQorICAgICAgICBhc3NlcnRfZXF1YWxzKHN0b3JlLmluZGV4TmFtZXNb
MF0sICIiLCAiaW5kZXhOYW1lc1swXSIpCisgICAgICAgIGFzc2VydF9lcXVhbHMoc3RvcmUuaW5k
ZXhOYW1lcy5sZW5ndGgsIDEsICJpbmRleE5hbWVzLmxlbmd0aCIpCisgICAgfQorCisgICAgb3Bl
bl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIHN0b3JlID0gZGIudHJh
bnNhY3Rpb24oInN0b3JlIikub2JqZWN0U3RvcmUoInN0b3JlIikKKworICAgICAgICBhc3NlcnRf
ZXF1YWxzKHN0b3JlLmluZGV4TmFtZXNbMF0sICIiLCAiaW5kZXhOYW1lc1swXSIpCisgICAgICAg
IGFzc2VydF9lcXVhbHMoc3RvcmUuaW5kZXhOYW1lcy5sZW5ndGgsIDEsICJpbmRleE5hbWVzLmxl
bmd0aCIpCisKKyAgICAgICAgdGhpcy5kb25lKCkKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBp
ZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDI5ODY3NAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVs
ZXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5k
ZWxldGUoKSAtIGRlbGV0ZSByZW1vdmVzIHJlY29yZCAoaW5saW5lIGtleXMpIAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2Rl
bGV0ZS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX2RlbGV0ZS5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzIzYzIw
MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfZGVsZXRlLmh0bQpAQCAtMCwwICsxLDQ2IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5kZWxldGUo
KSAtIGRlbGV0ZSByZW1vdmVzIHJlY29yZCAoaW5saW5lIGtleXMpPC90aXRsZT4KKzxsaW5rIHJl
bD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5j
b20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNj
cmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3Jk
ID0geyBrZXk6IDEsIHByb3BlcnR5OiAiZGF0YSIgfTsKKworICAgIHZhciBvcGVuX3JxID0gY3Jl
YXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Cisg
ICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRi
LmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0IiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKKyAgICAgICAg
b2JqU3RvcmUuYWRkKHJlY29yZCk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0g
ZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgZGVsZXRlX3JxID0gZGIudHJhbnNhY3Rpb24oInRl
c3QiLCAicmVhZHdyaXRlIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3Jl
KCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLmRlbGV0ZShyZWNvcmQua2V5KTsK
KworICAgICAgICBkZWxldGVfcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkg
eworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIHVuZGVmaW5lZCk7
CisKKyAgICAgICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSB0LnN0ZXBf
ZnVuYyhWZXJpZnlSZWNvcmRSZW1vdmVkKTsKKyAgICAgICAgfSk7CisgICAgfTsKKworICAgIGZ1
bmN0aW9uIFZlcmlmeVJlY29yZFJlbW92ZWQoKSB7CisgICAgICAgIHZhciBycSA9IGRiLnRyYW5z
YWN0aW9uKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQor
ICAgICAgICAgICAgICAgICAgIC5nZXQocmVjb3JkLmtleSk7CisKKyAgICAgICAgcnEub25zdWNj
ZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhlLnRhcmdldC5yZXN1bHQsIHVuZGVmaW5lZCk7CisgICAgICAgICAgICB0LmRvbmUoKTsKKyAg
ICAgICAgfSk7CisgICAgfQorPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3Jl
X2RlbGV0ZTItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9kZWxldGUyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4zZTlhZmE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGUyLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5kZWxldGUoKSAtIGtleSBk
b2Vzbid0IG1hdGNoIGFueSByZWNvcmRzICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGUyLmh0bSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlMi5odG0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2EwYzE1ZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVs
ZXRlMi5odG0KQEAgLTAsMCArMSwyNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuZGVsZXRlKCkgLSBrZXkgZG9lc24ndCBt
YXRjaCBhbnkgcmVjb3JkcyA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNy
b3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAg
ICAgIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwor
ICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9
IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICB2YXIgZGVsZXRlX3JxID0gZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAuZGVsZXRlKDEpOwor
CisgICAgICAgIGRlbGV0ZV9ycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7
CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgdW5kZWZpbmVkKTsK
KyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9OworPC9zY3JpcHQ+CisK
KzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGUzLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MjZkOWEwCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9kZWxldGUzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJP
YmplY3RTdG9yZS5kZWxldGUoKSAtIG9iamVjdCBzdG9yZSdzIGtleSBwYXRoIGlzIGFuIG9iamVj
dCBhdHRyaWJ1dGUgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTMuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGUzLmh0bQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5mYjllNGZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGUzLmh0bQpAQCAt
MCwwICsxLDQ3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0
aXRsZT5JREJPYmplY3RTdG9yZS5kZWxldGUoKSAtIG9iamVjdCBzdG9yZSdzIGtleSBwYXRoIGlz
IGFuIG9iamVjdCBhdHRyaWJ1dGUgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0i
TWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIs
CisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkID0geyB0ZXN0OiB7IG9iajog
eyBrZXk6IDEgfSB9LCBwcm9wZXJ0eTogImRhdGEiIH07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNy
ZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewor
ICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICB2YXIgb2JqU3RvcmUgPSBk
Yi5jcmVhdGVPYmplY3RTdG9yZSgidGVzdCIsIHsga2V5UGF0aDogInRlc3Qub2JqLmtleSIgfSk7
CisgICAgICAgIG9ialN0b3JlLmFkZChyZWNvcmQpOworICAgIH07CisKKyAgICBvcGVuX3JxLm9u
c3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIGRlbGV0ZV9ycSA9IGRiLnRyYW5z
YWN0aW9uKCJ0ZXN0IiwgInJlYWR3cml0ZSIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5v
YmplY3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgIC5kZWxldGUocmVj
b3JkLnRlc3Qub2JqLmtleSk7CisKKyAgICAgICAgZGVsZXRlX3JxLm9uc3VjY2VzcyA9IHQuc3Rl
cF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQu
cmVzdWx0LCB1bmRlZmluZWQpOworCisgICAgICAgICAgICBlLnRhcmdldC50cmFuc2FjdGlvbi5v
bmNvbXBsZXRlID0gdC5zdGVwX2Z1bmMoVmVyaWZ5UmVjb3JkUmVtb3ZlZCk7CisgICAgICAgIH0p
OworICAgIH07CisKKyAgICBmdW5jdGlvbiBWZXJpZnlSZWNvcmRSZW1vdmVkKCkgeworICAgICAg
ICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCisgICAgICAgICAgICAgICAgICAgLm9i
amVjdFN0b3JlKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAuZ2V0KHJlY29yZC50ZXN0Lm9i
ai5rZXkpOworCisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCB1bmRlZmluZWQp
OworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH0KKworPC9zY3JpcHQ+
CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGU0LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40NzBhNzg2Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9kZWxldGU0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJ
REJPYmplY3RTdG9yZS5kZWxldGUoKSAtIGRlbGV0ZSByZW1vdmVzIHJlY29yZCAob3V0LW9mLWxp
bmUga2V5cykgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTQuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGU0Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5jZmE0NTBjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGU0Lmh0bQpAQCAtMCww
ICsxLDQ4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRs
ZT5JREJPYmplY3RTdG9yZS5kZWxldGUoKSAtIGRlbGV0ZSByZW1vdmVzIHJlY29yZCAob3V0LW9m
LWxpbmUga2V5cykgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0
IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0
ID0gYXN5bmNfdGVzdCgpLAorICAgICAga2V5ID0gMSwKKyAgICAgIHJlY29yZCA9IHsgcHJvcGVy
dHk6ICJkYXRhIiB9OworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVu
X3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdl
dC5yZXN1bHQ7CisKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUo
InRlc3QiKTsKKyAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZCwga2V5KTsKKyAgICB9OworCisg
ICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBkZWxldGVf
cnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIsICJyZWFkd3JpdGUiKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAub2JqZWN0U3RvcmUoInRlc3QiKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAuZGVsZXRlKGtleSk7CisKKyAgICAgICAgZGVsZXRlX3JxLm9uc3VjY2VzcyA9IHQuc3RlcF9m
dW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVz
dWx0LCB1bmRlZmluZWQpOworCisgICAgICAgICAgICBlLnRhcmdldC50cmFuc2FjdGlvbi5vbmNv
bXBsZXRlID0gdC5zdGVwX2Z1bmMoVmVyaWZ5UmVjb3JkUmVtb3ZlZCk7CisgICAgICAgIH0pOwor
ICAgIH07CisKKyAgICBmdW5jdGlvbiBWZXJpZnlSZWNvcmRSZW1vdmVkKCkgeworICAgICAgICB2
YXIgcnEgPSBkYi50cmFuc2FjdGlvbigidGVzdCIpCisgICAgICAgICAgICAgICAgICAgLm9iamVj
dFN0b3JlKCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAuZ2V0KGtleSk7CisKKyAgICAgICAg
cnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQsIHVuZGVmaW5lZCk7CisgICAgICAgICAgICB0LmRv
bmUoKTsKKyAgICAgICAgfSk7CisgICAgfQorCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48
L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfZGVsZXRlNS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU4ZGE5NmIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmRlbGV0
ZSgpIC0gcmVtb3ZlcyBhbGwgb2YgdGhlIHJlY29yZHMgaW4gdGhlIHJhbmdlIAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2Rl
bGV0ZTUuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9kZWxldGU1Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZDc5
YjdjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9kZWxldGU1Lmh0bQpAQCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUg
aHRtbD4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5kZWxldGUoKSAtIHJlbW92ZXMgYWxsIG9mIHRo
ZSByZWNvcmRzIGluIHRoZSByYW5nZTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9
Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgICB2YXIgZGIKKyAg
ICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoKSkKKworICAgIG9wZW5fcnEub251
cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3Vs
dAorICAgICAgICB2YXIgb3MgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKQorCisgICAg
ICAgIGZvcih2YXIgaSA9IDA7IGkgPCAxMDsgaSsrKQorICAgICAgICAgICAgb3MuYWRkKCJkYXRh
IiArIGksIGkpCisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZSkg
eworICAgICAgICB2YXIgb3MgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiLCAicmVhZHdyaXRlIikK
KyAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKKworICAgICAgICBvcy5k
ZWxldGUoIElEQktleVJhbmdlLmJvdW5kKDMsIDYpICkKKyAgICAgICAgb3MuY291bnQoKS5vbnN1
Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihlKQorICAgICAgICB7CisgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdCwgNiwgIkNvdW50IGFmdGVyIGRlbGV0aW5n
IDMtNiBmcm9tIDEwIik7CisgICAgICAgICAgICB0aGlzLmRvbmUoKTsKKyAgICAgICAgfSkKKyAg
ICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTYtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9kZWxldGU2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5lZWMxZjBiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGU2LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMg
QEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5kZWxldGUoKSAtIElmIHRoZSB0cmFuc2FjdGlvbiB0
aGlzIElEQk9iamVjdFN0b3JlIGJlbG9uZ3MgdG8gaGFzIGl0cyBtb2RlIHNldCB0byByZWFkb25s
eSwgdGhyb3cgUmVhZE9ubHlFcnJvciAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGU2Lmh0bSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlNi5odG0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjI1NGUwNAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRl
Ni5odG0KQEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuZGVsZXRlKCkgLSBJZiB0aGUgdHJhbnNhY3Rp
b24gdGhpcyBJREJPYmplY3RTdG9yZSBiZWxvbmdzIHRvIGhhcyBpdHMgbW9kZSBzZXQgdG8gcmVh
ZG9ubHksIHRocm93IFJlYWRPbmx5RXJyb3I8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRp
dGxlPSJJbnRlbCIgaHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxw
IiBocmVmPSJodHRwczovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3Zl
cnZpZXcuaHRtbCN3aWRsLUlEQk9iamVjdFN0b3JlLWRlbGV0ZS1JREJSZXF1ZXN0LWFueS1rZXki
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKzxkaXYgaWQ9
ImxvZyI+PC9kaXY+Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgICAgdCA9IGFzeW5jX3Rl
c3QoKSwKKyAgICAgICAgcmVjb3JkcyA9IFt7IHBLZXk6ICJwcmltYXJ5S2V5XzAifSwKKyAgICAg
ICAgICAgICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEifV07CisKKyAgICB2YXIgb3Blbl9y
cSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24g
KGV2ZW50KSB7CisgICAgICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFy
IG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwge2tleVBhdGg6InBLZXki
fSk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVjb3Jkcy5sZW5ndGg7IGkrKykgewor
ICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZHNbaV0pOworICAgICAgICB9CisgICAgfQor
CisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAgdmFy
IHR4biA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpOworICAgICAgICB2YXIgb3N0b3JlID0gdHhu
Lm9iamVjdFN0b3JlKCJzdG9yZSIpOworICAgICAgICB0LnN0ZXAoZnVuY3Rpb24oKXsKKyAgICAg
ICAgICAgIGFzc2VydF90aHJvd3MoIlJlYWRPbmx5RXJyb3IiLCBmdW5jdGlvbigpeworICAgICAg
ICAgICAgICAgIG9zdG9yZS5kZWxldGUoInByaW1hcnlLZXlfMCIpOworICAgICAgICAgICAgfSk7
CisgICAgICAgIH0pOworICAgICAgICB0LmRvbmUoKTsKKyAgICB9Cis8L3NjcmlwdD4KKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9kZWxldGU3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlNy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNzZkNWE4ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlNy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUuZGVsZXRlKCkgLSBJZiB0
aGUgb2JqZWN0IHN0b3JlIGhhcyBiZWVuIGRlbGV0ZWQsIHRoZSBpbXBsZW1lbnRhdGlvbiBtdXN0
IHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgSW52YWxpZFN0YXRlRXJyb3IgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
ZGVsZXRlNy5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX2RlbGV0ZTcuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJm
MTU3YjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZTcuaHRtCkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLmRl
bGV0ZSgpIC0gSWYgdGhlIG9iamVjdCBzdG9yZSBoYXMgYmVlbiBkZWxldGVkLCB0aGUgaW1wbGVt
ZW50YXRpb24gbXVzdCB0aHJvdyBhIERPTUV4Y2VwdGlvbiBvZiB0eXBlIEludmFsaWRTdGF0ZUVy
cm9yPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iSW50ZWwiIGhyZWY9Imh0dHA6
Ly93d3cuaW50ZWwuY29tIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9kdmNzLncz
Lm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwjd2lkbC1JREJPYmpl
Y3RTdG9yZS1kZWxldGUtSURCUmVxdWVzdC1hbnkta2V5Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4K
KyAgICB2YXIgZGIsCisgICAgICAgIG9zdG9yZSwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwK
KyAgICAgICAgcmVjb3JkcyA9IFt7IHBLZXk6ICJwcmltYXJ5S2V5XzAifSwKKyAgICAgICAgICAg
ICAgICAgICB7IHBLZXk6ICJwcmltYXJ5S2V5XzEifV07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNy
ZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24gKGV2ZW50
KSB7CisgICAgICAgIGRiID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgb3N0b3JlID0g
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwge2tleVBhdGg6InBLZXkifSk7CisgICAgICAg
IGRiLmRlbGV0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOworICAgIH0KKworICAgIG9wZW5fcnEub25z
dWNjZXNzID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgIHQuc3RlcChmdW5jdGlvbigpewor
ICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygiSW52YWxpZFN0YXRlRXJyb3IiLCBmdW5jdGlvbigp
eworICAgICAgICAgICAgICAgIG9zdG9yZS5kZWxldGUoInByaW1hcnlLZXlfMCIpOworICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0pOworICAgICAgICB0LmRvbmUoKTsKKyAgICB9Cis8L3Njcmlw
dD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9kZWxldGVJbmRleC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2RlbGV0ZUluZGV4LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jODg5NGM2Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9k
ZWxldGVJbmRleC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0
U3RvcmUuZGVsZXRlSW5kZXgoKSAtIHJlbW92ZXMgdGhlIGluZGV4ICAKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGVJ
bmRleC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX2RlbGV0ZUluZGV4Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5k
ZjJmN2ZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGVJbmRleC5odG0KQEAgLTAsMCArMSw0MyBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3Rv
cmUuZGVsZXRlSW5kZXgoKSAtIHJlbW92ZXMgdGhlIGluZGV4IDwvdGl0bGU+Cis8bGluayByZWw9
ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29t
Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3Jp
cHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIGtleSA9IDEs
CisgICAgICByZWNvcmQgPSB7IHByb3BlcnR5OiAiZGF0YSIgfTsKKworICAgIHZhciBvcGVuX3Jx
ID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihl
KSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICBkYi5jcmVhdGVPYmpl
Y3RTdG9yZSgidGVzdCIpCisgICAgICAgICAgLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpbmRleGVk
UHJvcGVydHkiKQorICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgZGIuY2xvc2UoKTsKKyAgICAgICAgdmFyIG5ld192ZXJzaW9uID0gY3JlYXRl
ZGIodCwgZGIubmFtZSwgMik7CisgICAgICAgIG5ld192ZXJzaW9uLm9udXBncmFkZW5lZWRlZCA9
IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAg
ICAgICAgdmFyIG9ialN0b3JlID0gZS50YXJnZXQudHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoInRl
c3QiKQorICAgICAgICAgICAgb2JqU3RvcmUuZGVsZXRlSW5kZXgoImluZGV4Iik7CisgICAgICAg
IH0KKyAgICAgICAgbmV3X3ZlcnNpb24ub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAg
ICAgICAgdmFyIGluZGV4LAorICAgICAgICAgICAgICBvYmpTdG9yZSA9IGRiLnRyYW5zYWN0aW9u
KCJ0ZXN0IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgidGVzdCIp
OworCisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCdOb3RGb3VuZEVycm9yJywKKyAgICAgICAg
ICAgICAgICBmdW5jdGlvbigpIHsgaW5kZXggPSBvYmpTdG9yZS5pbmRleCgiaW5kZXgiKSB9KTsK
KyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoaW5kZXgsIHVuZGVmaW5lZCk7CisgICAgICAgICAg
ICB0LmRvbmUoKTsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ci
PjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9p
ZGJvYmplY3RzdG9yZV9kZWxldGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlZC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOThjZThkYQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRl
ZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgQXR0ZW1wdGluZyB0byB1c2Ug
ZGVsZXRlZCBJREJPYmplY3RTdG9yZSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9kZWxldGVkLmh0bSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRlZC5odG0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGI4Zjc0MAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZGVsZXRl
ZC5odG0KQEAgLTAsMCArMSw0OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0
Zi04PgorPHRpdGxlPkF0dGVtcHRpbmcgdG8gdXNlIGRlbGV0ZWQgSURCT2JqZWN0U3RvcmU8L3Rp
dGxlPgorPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWRE
Qi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNvYmplY3Qtc3RvcmUiPgorPGxpbmsgcmVsPWFz
c2VydCB0aXRsZT0iSW52YWxpZFN0YXRlRXJyb3IgT2NjdXJzIGlmIGEgcmVxdWVzdCBpcyBtYWRl
IG9uIGEgc291cmNlIG9iamVjdCB0aGF0IGhhcyBiZWVuIGRlbGV0ZWQgb3IgcmVtb3ZlZC4iPgor
PGxpbmsgcmVsPWF1dGhvciBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9k
aW4gSMO4cnRoZSBPbWRhbCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3Nj
cmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICBhZGRfc3VjY2VzcyA9IGZhbHNl
LAorICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0p
CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRl
bmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKwor
ICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGF1
dG9JbmNyZW1lbnQ6IHRydWUgfSk7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZGIub2JqZWN0U3Rv
cmVOYW1lc1swXSwgInN0b3JlIiwgIm9iamVjdFN0b3JlTmFtZXMiKTsKKworICAgICAgICB2YXIg
cnFfYWRkID0gb2JqU3RvcmUuYWRkKDEpOworICAgICAgICBycV9hZGQub25zdWNjZXNzID0gZnVu
Y3Rpb24oKSB7IGFkZF9zdWNjZXNzID0gdHJ1ZTsgfTsKKyAgICAgICAgcnFfYWRkLm9uZXJyb3Ig
PSBmYWlsKHQsICdycV9hZGQuZXJyb3InKTsKKworICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRl
eCgiaWR4IiwgImEiKTsKKyAgICAgICAgZGIuZGVsZXRlT2JqZWN0U3RvcmUoInN0b3JlIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMoZGIub2JqZWN0U3RvcmVOYW1lcy5sZW5ndGgsIDAsICJvYmpl
Y3RTdG9yZU5hbWVzLmxlbmd0aCBhZnRlciBkZWxldGUiKTsKKworICAgICAgICBhc3NlcnRfdGhy
b3dzKG51bGwsIGZ1bmN0aW9uKCkgeyBvYmpTdG9yZS5hZGQoMik7IH0pOworICAgICAgICBhc3Nl
cnRfdGhyb3dzKG51bGwsIGZ1bmN0aW9uKCkgeyBvYmpTdG9yZS5wdXQoMyk7IH0pOworICAgICAg
ICBhc3NlcnRfdGhyb3dzKG51bGwsIGZ1bmN0aW9uKCkgeyBvYmpTdG9yZS5nZXQoMSk7IH0pOwor
ICAgICAgICBhc3NlcnRfdGhyb3dzKG51bGwsIGZ1bmN0aW9uKCkgeyBvYmpTdG9yZS5jbGVhcigp
OyB9KTsKKyAgICAgICAgYXNzZXJ0X3Rocm93cyhudWxsLCBmdW5jdGlvbigpIHsgb2JqU3RvcmUu
Y291bnQoKTsgfSk7CisgICAgICAgIGFzc2VydF90aHJvd3MobnVsbCwgZnVuY3Rpb24oKSB7IG9i
alN0b3JlLmRlbGV0ZSgxKTsgfSk7CisgICAgICAgIGFzc2VydF90aHJvd3MobnVsbCwgZnVuY3Rp
b24oKSB7IG9ialN0b3JlLm9wZW5DdXJzb3IoKTsgfSk7CisgICAgICAgIGFzc2VydF90aHJvd3Mo
bnVsbCwgZnVuY3Rpb24oKSB7IG9ialN0b3JlLmluZGV4KCJpZHgiKTsgfSk7CisgICAgICAgIGFz
c2VydF90aHJvd3MobnVsbCwgZnVuY3Rpb24oKSB7IG9ialN0b3JlLmRlbGV0ZUluZGV4KCJpZHgi
KTsgfSk7CisgICAgICAgIGFzc2VydF90aHJvd3MobnVsbCwgZnVuY3Rpb24oKSB7IG9ialN0b3Jl
LmNyZWF0ZUluZGV4KCJpZHgyIiwgImEiKTsgfSk7CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1
Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgYXNzZXJ0X3RydWUoYWRkX3N1Y2Nlc3MsICJG
aXJzdCBhZGQgd2FzIHN1Y2Nlc3NmdWwiKTsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfQorPC9z
Y3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIzNGUyYWUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX2dldC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0
U3RvcmUuZ2V0KCkgLSBrZXkgaXMgYSBudW1iZXIgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldC5odG0gYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldC5odG0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzU4M2VhZAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0Lmh0
bQpAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5nZXQoKSAtIGtleSBpcyBhIG51bWJlciA8L3RpdGxl
PgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cu
bWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2Ny
aXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisg
ICAgICByZWNvcmQgPSB7IGtleTogMy4xNDE1OTI2NSwgcHJvcGVydHk6ICJkYXRhIiB9OworCisg
ICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRl
ZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAg
IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIgfSkKKyAgICAg
ICAgICAuYWRkKHJlY29yZCk7CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5j
dGlvbihlKSB7CisgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCisgICAg
ICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAg
LmdldChyZWNvcmQua2V5KTsKKworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhm
dW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5r
ZXksIHJlY29yZC5rZXkpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1
bHQucHJvcGVydHksIHJlY29yZC5wcm9wZXJ0eSk7CisgICAgICAgICAgICB0LmRvbmUoKTsKKyAg
ICAgICAgfSk7CisgICAgfQorCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfZ2V0Mi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX2dldDItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmFlMWMzNmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDItZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmdldCgpIC0ga2V5IGlzIGEgc3RyaW5n
ICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9nZXQyLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfZ2V0Mi5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uYzMxNGRiMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0Mi5odG0KQEAgLTAsMCArMSwzNSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUu
Z2V0KCkgLSBrZXkgaXMgYSBzdHJpbmcgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRs
ZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIg
ZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkID0geyBrZXk6ICJ0aGlz
IGlzIGEga2V5IHRoYXQncyBhIHN0cmluZyIsIHByb3BlcnR5OiAiZGF0YSIgfTsKKworICAgIHZh
ciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBm
dW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICBkYi5j
cmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJrZXkiIH0pCisgICAgICAgICAg
LmFkZChyZWNvcmQpOworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9u
KGUpIHsKKyAgICAgICAgdmFyIHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKKyAgICAgICAg
ICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAuZ2V0
KHJlY29yZC5rZXkpOworCisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LmtleSwg
cmVjb3JkLmtleSk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5w
cm9wZXJ0eSwgcmVjb3JkLnByb3BlcnR5KTsKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAg
ICB9KTsKKyAgICB9OworCis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
Z2V0My1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX2dldDMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjY3ZjFiZTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDMtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLmdldCgpIC0ga2V5IGlzIGEgRGF0ZSAgCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfZ2V0My5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9i
amVjdHN0b3JlX2dldDMuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjll
OGZhZDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX2dldDMuaHRtCkBAIC0wLDAgKzEsMzQgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLmdldCgp
IC0ga2V5IGlzIGEgRGF0ZSA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNy
b3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAg
ICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmQgPSB7IGtleTogbmV3IERhdGUoKSwg
cHJvcGVydHk6ICJkYXRhIiB9OworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAg
ICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBl
LnRhcmdldC5yZXN1bHQ7CisgICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsg
a2V5UGF0aDogImtleSIgfSkKKyAgICAgICAgICAuYWRkKHJlY29yZCk7CisgICAgfQorCisgICAg
b3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBycSA9IGRiLnRy
YW5zYWN0aW9uKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9y
ZSIpCisgICAgICAgICAgICAgICAgICAgLmdldChyZWNvcmQua2V5KTsKKworICAgICAgICBycS5v
bnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5rZXkudmFsdWVPZigpLCByZWNvcmQua2V5LnZhbHVlT2Yo
KSk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5wcm9wZXJ0eSwg
cmVjb3JkLnByb3BlcnR5KTsKKyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAg
ICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0NC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3Jl
X2dldDQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjRi
Y2VhYmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX2dldDQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQ
QVNTIElEQk9iamVjdFN0b3JlLmdldCgpIC0gYXR0ZW1wdCB0byByZXRyaWV2ZSBhIHJlY29yZCB0
aGF0IGRvZXNuJ3QgZXhpc3QgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDQuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQ0Lmh0bQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5lZDc5ZGEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQ0Lmh0bQpAQCAtMCww
ICsxLDI3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRs
ZT5JREJPYmplY3RTdG9yZS5nZXQoKSAtIGF0dGVtcHQgdG8gcmV0cmlldmUgYSByZWNvcmQgdGhh
dCBkb2Vzbid0IGV4aXN0IDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jv
c29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAg
ICAgdCA9IGFzeW5jX3Rlc3QoKTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7Cisg
ICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0g
ZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgcnEgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgi
c3RvcmUiLCB7IGtleVBhdGg6ICJrZXkiIH0pCisgICAgICAgICAgICAgICAgICAgLmdldCgxKTsK
KyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHRzLCB1bmRlZmluZWQpOworICAgICAg
ICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgdC5kb25lKCk7IH0sIDEwKTsKKyAgICAgICAg
fSk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7fTsKKzwv
c2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQ1LWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0NS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTMyMTA3Zgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
b2JqZWN0c3RvcmVfZ2V0NS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURC
T2JqZWN0U3RvcmUuZ2V0KCkgLSByZXR1cm5zIHRoZSByZWNvcmQgd2l0aCB0aGUgZmlyc3Qga2V5
IGluIHRoZSByYW5nZSAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0NS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDUuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmI3YWI1OTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDUuaHRtCkBAIC0wLDAgKzEs
MzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLmdldCgpIC0gcmV0
dXJucyB0aGUgcmVjb3JkIHdpdGggdGhlIGZpcnN0IGtleSBpbiB0aGUgcmFuZ2UgPC90aXRsZT4K
KzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1p
Y3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorICAgIHZhciBkYgorICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIoYXN5bmNf
dGVzdCgpKQorCisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Cisg
ICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0CisgICAgICAgIHZhciBvcyA9IGRiLmNyZWF0ZU9i
amVjdFN0b3JlKCJzdG9yZSIpCisKKyAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IDEwOyBpKysp
CisgICAgICAgICAgICBvcy5hZGQoImRhdGEiICsgaSwgaSkKKyAgICB9CisKKyAgICBvcGVuX3Jx
Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uIChlKSB7CisgICAgICAgIGRiLnRyYW5zYWN0aW9uKCJzdG9y
ZSIpCisgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgLmdldCggSURC
S2V5UmFuZ2UuYm91bmQoMywgNikgKQorICAgICAgICAgIC5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBf
ZnVuYyhmdW5jdGlvbihlKQorICAgICAgICB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUu
dGFyZ2V0LnJlc3VsdCwgImRhdGEzIiwgImdldCgzLTYpIik7CisgICAgICAgICAgICB0aGlzLmRv
bmUoKTsKKyAgICAgICAgfSkKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9kaXY+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX2dldDYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQ2LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4wMDI0ZTRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQ2LWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5nZXQoKSAtIHRocm93IFRyYW5z
YWN0aW9uSW5hY3RpdmVFcnJvciBvbiBhYm9ydGVkIHRyYW5zYWN0aW9uICAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9nZXQ2
Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
Z2V0Ni5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWE3YjU0NwotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfZ2V0Ni5odG0KQEAgLTAsMCArMSwzMCBAQAor77u/PCFET0NUWVBFIGh0bWw+Cis8
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuZ2V0KCkgLSB0aHJv
dyBUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3Igb24gYWJvcnRlZCB0cmFuc2FjdGlvbiA8L3RpdGxl
PgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJZdWljaGlOdWtpeWFtYSIgaHJlZj0iaHR0cHM6
Ly9naXRodWIuY29tL1l1aWNoaU51a2l5YW1hIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3Vw
cG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFz
eW5jX3Rlc3QoKTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9y
cS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQu
cmVzdWx0OworICAgICAgICBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6
ICJrZXkiIH0pCisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZSkg
eworICAgICAgICB2YXIgc3RvcmUgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQorICAgICAgICAg
ICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKTsKKyAgICAgICAgc3RvcmUudHJhbnNh
Y3Rpb24uYWJvcnQoKTsKKyAgICAgICAgYXNzZXJ0X3Rocm93cygiVHJhbnNhY3Rpb25JbmFjdGl2
ZUVycm9yIiwgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgc3RvcmUuZ2V0KDEpOworICAgICAg
ICB9LCAidGhyb3cgVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yIG9uIGFib3J0ZWQgdHJhbnNhY3Rp
b24uIik7CisgICAgICAgIHQuZG9uZSgpOworICAgIH0KKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJs
b2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9nZXQ3LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0Ny1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2FjZDY1NgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0Ny1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUuZ2V0KCkgLSB0
aHJvdyBEYXRhRXJyb3Igd2hlbiB1c2luZyBpbnZhbGlkIGtleSAgCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfZ2V0Ny5odG0g
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX2dldDcu
aHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjc5NTYxMGMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX2dldDcuaHRtCkBAIC0wLDAgKzEsMjkgQEAKK++7vzwhRE9DVFlQRSBodG1sPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLmdldCgpIC0gdGhyb3cgRGF0
YUVycm9yIHdoZW4gdXNpbmcgaW52YWxpZCBrZXkgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9y
IiB0aXRsZT0iWXVpY2hpTnVraXlhbWEiIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9ZdWljaGlO
dWtpeWFtYSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0Pgor
Cis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICB2
YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0g
ZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgZGIu
Y3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KQorICAgIH0KKwor
ICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgc3RvcmUg
PSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQorICAgICAgICAgICAgICAgICAgICAgIC5vYmplY3RT
dG9yZSgic3RvcmUiKQorICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLCBmdW5jdGlv
biAoKSB7CisgICAgICAgICAgICBzdG9yZS5nZXQobnVsbCkKKyAgICAgICAgfSwgInRocm93IERh
dGFFcnJvciB3aGVuIHVzaW5nIGludmFsaWQga2V5LiIpOworICAgICAgICB0LmRvbmUoKTsKKyAg
ICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfaW5kZXgtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9pbmRleC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
NzA4NTY2MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaWRib2JqZWN0c3RvcmVfaW5kZXgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAor
CitQQVNTIElEQk9iamVjdFN0b3JlLmluZGV4KCkgLSByZXR1cm5zIGFuIGluZGV4ICAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9y
ZV9pbmRleC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVj
dHN0b3JlX2luZGV4Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45MzM4
M2IyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pZGJvYmplY3RzdG9yZV9pbmRleC5odG0KQEAgLTAsMCArMSwzNCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUuaW5kZXgo
KSAtIHJldHVybnMgYW4gaW5kZXggPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0i
TWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIs
CisgICAgICB0ID0gYXN5bmNfdGVzdCgpOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0
KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAg
ZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0
b3JlIikKKyAgICAgICAgICAuY3JlYXRlSW5kZXgoImluZGV4IiwgImluZGV4ZWRQcm9wZXJ0eSIp
OworICAgIH07CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgdmFyIGluZGV4ID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKKyAgICAgICAgICAgICAgICAg
ICAgICAub2JqZWN0U3RvcmUoInN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAgICAuaW5kZXgo
ImluZGV4Iik7CisKKyAgICAgICAgYXNzZXJ0X3RydWUoaW5kZXggaW5zdGFuY2VvZiBJREJJbmRl
eCwgJ2luc3RhbmNlb2YgSURCSW5kZXgnKTsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfTsKKwor
PC9zY3JpcHQ+CisKKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9vcGVuQ3Vyc29yLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfb3BlbkN1cnNvci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMDExNmZmOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfb3BlbkN1cnNvci1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUub3BlbkN1cnNvcigpIC0gaXRlcmF0
ZSB0aHJvdWdoIDEwMCBvYmplY3RzIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX29wZW5DdXJzb3IuaHRtIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9vcGVuQ3Vyc29yLmh0bQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NWFkODg5Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9v
cGVuQ3Vyc29yLmh0bQpAQCAtMCwwICsxLDQyIEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5J
REJPYmplY3RTdG9yZS5vcGVuQ3Vyc29yKCkgLSBpdGVyYXRlIHRocm91Z2ggMTAwIG9iamVjdHM8
L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29t
IiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3Vw
cG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKKyAgICB2YXIgZGIKKyAgICB2YXIgb3Bl
bl9ycSA9IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoKSkKKworICAgIG9wZW5fcnEub251cGdyYWRlbmVl
ZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAg
ICAgdmFyIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIik7CisKKyAgICAgICAg
Zm9yICh2YXIgaT0wOyBpIDwgMTAwOyBpKyspCisgICAgICAgICAgICBzdG9yZS5hZGQoInJlY29y
ZF8iICsgaSwgaSk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24o
ZSkgeworICAgICAgICB2YXIgY291bnQgPSAwCisgICAgICAgIHZhciB0eG4gPSBkYi50cmFuc2Fj
dGlvbigic3RvcmUiKQorCisgICAgICAgIHR4bi5vYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAg
ICAgICAub3BlbkN1cnNvcigpLm9uc3VjY2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUp
CisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChlLnRhcmdldC5yZXN1bHQpIHsKKyAgICAgICAg
ICAgICAgICBjb3VudCArPSAxOworICAgICAgICAgICAgICAgIGUudGFyZ2V0LnJlc3VsdC5jb250
aW51ZSgpCisgICAgICAgICAgICB9CisgICAgICAgIH0pCisKKyAgICAgICAgdHhuLm9uY29tcGxl
dGUgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoY291bnQsIDEwMCk7CisgICAgICAgICAgICB0aGlzLmRvbmUoKQorICAgICAgICB9KQorICAg
IH0KKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX29wZW5DdXJzb3Jf
aW52YWxpZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX29wZW5DdXJzb3JfaW52YWxpZC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGFiNThhMQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfb3BlbkN1cnNv
cl9pbnZhbGlkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RT
dG9yZS5vcGVuQ3Vyc29yKCkgLSBpbnZhbGlkIC0gcGFzcyBzb21ldGhpbmcgb3RoZXIgdGhhbiBu
dW1iZXIgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfb3BlbkN1cnNvcl9pbnZhbGlkLmh0bSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfb3BlbkN1cnNvcl9pbnZhbGlkLmh0bQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZmIzMzMzCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9v
cGVuQ3Vyc29yX2ludmFsaWQuaHRtCkBAIC0wLDAgKzEsNTAgQEAKKzwhRE9DVFlQRSBodG1sPgor
PHRpdGxlPklEQk9iamVjdFN0b3JlLm9wZW5DdXJzb3IoKSAtIGludmFsaWQ8L3RpdGxlPgorPGxp
bmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2Rp
biBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9z
Y3JpcHQ+CisKKzxzY3JpcHQ+CisKKyAgICB2YXIgZGIsIG9wZW47CisKKyAgICBzZXR1cChmdW5j
dGlvbigpIHsKKyAgICAgICAgb3BlbiA9IGluZGV4ZWREQi5vcGVuKCd0ZXN0ZGItJyArIG5ldyBE
YXRlKCkuZ2V0VGltZSgpKTsKKyAgICAgICAgb3Blbi5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlv
bihlKSB7CisgICAgICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAgIHZh
ciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJ0ZXN0Iik7CisgICAgICAgICAgICBv
YmpTdG9yZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiIik7CisKKyAgICAgICAgICAgIG9ialN0b3Jl
LmFkZCgiZGF0YSIsICAxKTsKKyAgICAgICAgICAgIG9ialN0b3JlLmFkZCgiZGF0YTIiLCAyKTsK
KyAgICAgICAgfTsKKyAgICB9LAorICAgIHsgZXhwbGljaXRfZG9uZTogdHJ1ZSB9KTsKKworCisg
ICAgb3Blbi5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKworICAgICAgICBhc3luY190ZXN0KGRv
Y3VtZW50LnRpdGxlICsgIiAtIHBhc3Mgc29tZXRoaW5nIG90aGVyIHRoYW4gbnVtYmVyIikuc3Rl
cChmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2YXIgaWR4ID0gZGIudHJhbnNhY3Rpb24oInRl
c3QiKS5vYmplY3RTdG9yZSgidGVzdCIpLmluZGV4KCJpbmRleCIpOworCisgICAgICAgICAgICBh
c3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBp
ZHgub3BlbkN1cnNvcih7IGxvd2VyOiAiYSIgfSk7IH0pOworCisgICAgICAgICAgICBhc3NlcnRf
dGhyb3dzKCJEYXRhRXJyb3IiLAorICAgICAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBpZHgub3Bl
bkN1cnNvcih7IGxvd2VyOiAiYSIsIGxvd2VyT3BlbjogZmFsc2UgfSk7IH0pOworCisgICAgICAg
ICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLAorICAgICAgICAgICAgICAgIGZ1bmN0aW9u
KCkgeyBpZHgub3BlbkN1cnNvcih7IGxvd2VyOiAiYSIsIGxvd2VyT3BlbjogZmFsc2UsIHVwcGVy
OiBudWxsLCB1cHBlck9wZW46IGZhbHNlIH0pOyB9KTsKKworICAgICAgICAgICAgdGhpcy5kb25l
KCk7CisgICAgICAgIH0pOworCisKKyAgICAgICAgLy8gU3RvcCBibG9ja2luZyB0aGUgdGVzdGlu
ZyBzeXN0ZW0gZnJvbSBoZXJlb24KKyAgICAgICAgZG9uZSgpOworICAgIH0KKworPC9zY3JpcHQ+
CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dC1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDlmMDYyZAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfcHV0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9y
ZS5wdXQoKSAtIHB1dCB3aXRoIGFuIGlubGluZSBrZXkgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dC5odG0gYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dC5odG0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjE4YjM0NgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0
Lmh0bQpAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0
Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5wdXQoKSAtIHB1dCB3aXRoIGFuIGlubGluZSBr
ZXkgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJo
dHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0
LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNf
dGVzdCgpLAorICAgICAgcmVjb3JkID0geyBrZXk6IDEsIHByb3BlcnR5OiAiZGF0YSIgfTsKKwor
ICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVk
ZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAg
ICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6
ICJrZXkiIH0pOworCisgICAgICAgIG9ialN0b3JlLnB1dChyZWNvcmQpOworICAgIH07CisKKyAg
ICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgdmFyIHJxID0gZGIu
dHJhbnNhY3Rpb24oInN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0
b3JlIikKKyAgICAgICAgICAgICAgICAgICAuZ2V0KHJlY29yZC5rZXkpOworCisgICAgICAgIHJx
Lm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LnByb3BlcnR5LCByZWNvcmQucHJvcGVydHkpOworICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdldC5yZXN1bHQua2V5LCByZWNvcmQua2V5KTsK
KyAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9OworPC9zY3JpcHQ+CisK
KzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDEwLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0MTAtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIxMmM3ODQKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX3B1dDEwLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RT
dG9yZS5wdXQoKSAtIEF0dGVtcHQgdG8gY2FsbCAncHV0JyB3aXRob3V0IGFuIGtleSBwYXJhbWV0
ZXIgd2hlbiB0aGUgb2JqZWN0IHN0b3JlIHVzZXMgb3V0LW9mLWxpbmUga2V5cyAgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
cHV0MTAuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9wdXQxMC5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNGQyOWJh
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfcHV0MTAuaHRtCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1s
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLnB1dCgpIC0g
QXR0ZW1wdCB0byBjYWxsICdwdXQnIHdpdGhvdXQgYW4ga2V5IHBhcmFtZXRlciB3aGVuIHRoZSBv
YmplY3Qgc3RvcmUgdXNlcyBvdXQtb2YtbGluZSBrZXlzIDwvdGl0bGU+Cis8bGluayByZWw9ImF1
dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+
CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZCA9IHsg
cHJvcGVydHk6ICJkYXRhIiB9OworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAg
ICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBl
LnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgdmFyIHJxLAorICAgICAgICAgIG9ialN0b3JlID0g
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKKworICAg
ICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLAorICAgICAgICAgICAgZnVuY3Rpb24oKSB7
IHJxID0gb2JqU3RvcmUucHV0KHJlY29yZCk7IH0pOworCisgICAgICAgIGFzc2VydF9lcXVhbHMo
cnEsIHVuZGVmaW5lZCk7CisgICAgICAgIHQuZG9uZSgpOworICAgIH07Cis8L3NjcmlwdD4KKwor
PGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0MTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxMS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDUzZmRiZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfcHV0MTEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0
b3JlLnB1dCgpIC0gQXR0ZW1wdCB0byBwdXQgYSByZWNvcmQgd2hlcmUgdGhlIHJlY29yZCdzIGtl
eSBkb2VzIG5vdCBtZWV0IHRoZSBjb25zdHJhaW50cyBvZiBhIHZhbGlkIGtleSAgCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
cHV0MTEuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9wdXQxMS5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmZlZDQz
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfcHV0MTEuaHRtCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBodG1s
PgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPklEQk9iamVjdFN0b3JlLnB1dCgpIC0g
QXR0ZW1wdCB0byBwdXQgYSByZWNvcmQgd2hlcmUgdGhlIHJlY29yZCdzIGtleSBkb2VzIG5vdCBt
ZWV0IHRoZSBjb25zdHJhaW50cyBvZiBhIHZhbGlkIGtleSA8L3RpdGxlPgorPGxpbmsgcmVsPSJh
dXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0
PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmQgPSB7
IGtleTogeyB2YWx1ZTogMSB9LCBwcm9wZXJ0eTogImRhdGEiIH07CisKKyAgICB2YXIgb3Blbl9y
cSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICB2YXIgcnEsCisg
ICAgICAgICAgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBh
dGg6ICJrZXkiIH0pOworCisgICAgICAgIGFzc2VydF90aHJvd3MoIkRhdGFFcnJvciIsCisgICAg
ICAgICAgICBmdW5jdGlvbigpIHsgcnEgPSBvYmpTdG9yZS5wdXQocmVjb3JkKTsgfSk7CisKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhycSwgdW5kZWZpbmVkKTsKKyAgICAgICAgdC5kb25lKCk7Cisg
ICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxMi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX3B1dDEyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li44Zjc4ZDc4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxMi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBA
CisKK1BBU1MgSURCT2JqZWN0U3RvcmUucHV0KCkgLSBBdHRlbXB0IHRvIHB1dCBhIHJlY29yZCB3
aGVyZSB0aGUgcmVjb3JkJ3MgaW4tbGluZSBrZXkgaXMgbm90IGRlZmluZWQgIAorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1
dDEyLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfcHV0MTIuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRkNWVhZmUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
Ym9iamVjdHN0b3JlX3B1dDEyLmh0bQpAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5wdXQoKSAtIEF0
dGVtcHQgdG8gcHV0IGEgcmVjb3JkIHdoZXJlIHRoZSByZWNvcmQncyBpbi1saW5lIGtleSBpcyBu
b3QgZGVmaW5lZCA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQi
IGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQg
PSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmQgPSB7IHByb3BlcnR5OiAiZGF0YSIgfTsKKwor
ICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVk
ZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworCisgICAg
ICAgIHZhciBycSwKKyAgICAgICAgICBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJz
dG9yZSIsIHsga2V5UGF0aDogImtleSIgfSk7CisKKyAgICAgICAgYXNzZXJ0X3Rocm93cygiRGF0
YUVycm9yIiwKKyAgICAgICAgICAgIGZ1bmN0aW9uKCkgeyBycSA9IG9ialN0b3JlLnB1dChyZWNv
cmQpOyB9KTsKKworICAgICAgICBhc3NlcnRfZXF1YWxzKHJxLCB1bmRlZmluZWQpOworICAgICAg
ICB0LmRvbmUoKTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX3B1dDEzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRib2JqZWN0c3RvcmVfcHV0MTMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjY4NmE5ODUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDEzLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5wdXQoKSAtIEF0dGVtcHQgdG8g
cHV0IGEgcmVjb3JkIHdoZXJlIHRoZSBvdXQgb2YgbGluZSBrZXkgcHJvdmlkZWQgZG9lcyBub3Qg
bWVldCB0aGUgY29uc3RyYWludHMgb2YgYSB2YWxpZCBrZXkgIAorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDEzLmh0bSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0MTMu
aHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3YjkwM2EKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX3B1dDEzLmh0bQpAQCAtMCwwICsxLDI5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5wdXQoKSAtIEF0dGVtcHQgdG8g
cHV0IGEgcmVjb3JkIHdoZXJlIHRoZSBvdXQgb2YgbGluZSBrZXkgcHJvdmlkZWQgZG9lcyBub3Qg
bWVldCB0aGUgY29uc3RyYWludHMgb2YgYSB2YWxpZCBrZXkgPC90aXRsZT4KKzxsaW5rIHJlbD0i
YXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20i
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlw
dD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkID0g
eyBwcm9wZXJ0eTogImRhdGEiIH07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOwor
ICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9
IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICB2YXIgcnEsCisgICAgICAgICAgb2JqU3RvcmUg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiKTsKKworICAgICAgICBhc3NlcnRfdGhyb3dz
KCJEYXRhRXJyb3IiLAorICAgICAgICAgICAgZnVuY3Rpb24oKSB7IHJxID0gb2JqU3RvcmUucHV0
KHJlY29yZCwgeyB2YWx1ZTogMSB9KTsgfSk7CisKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhycSwg
dW5kZWZpbmVkKTsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2
IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxNC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDE0LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OTkxN2FhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9w
dXQxNC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3RvcmUu
cHV0KCkgLSBQdXQgYSByZWNvcmQgd2hlcmUgYSB2YWx1ZSBiZWluZyBpbmRleGVkIGRvZXMgbm90
IG1lZXQgdGhlIGNvbnN0cmFpbnRzIG9mIGEgdmFsaWQga2V5ICAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxNC5odG0g
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDE0
Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOGM4YzE0Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3Rz
dG9yZV9wdXQxNC5odG0KQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUucHV0KCkgLSBQdXQgYSByZWNv
cmQgd2hlcmUgYSB2YWx1ZSBiZWluZyBpbmRleGVkIGRvZXMgbm90IG1lZXQgdGhlIGNvbnN0cmFp
bnRzIG9mIGEgdmFsaWQga2V5IDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1p
Y3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAor
ICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZCA9IHsga2V5OiAxLCBpbmRleGVk
UHJvcGVydHk6IHsgcHJvcGVydHk6ICJkYXRhIiB9IH07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNy
ZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewor
ICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICB2YXIgcnEsCisgICAgICAg
ICAgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJr
ZXkiIH0pOworCisgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJpbmRleCIsICJpbmRleGVk
UHJvcGVydHkiKTsKKworICAgICAgICBycSA9IG9ialN0b3JlLnB1dChyZWNvcmQpOworCisgICAg
ICAgIGFzc2VydF90cnVlKHJxIGluc3RhbmNlb2YgSURCUmVxdWVzdCk7CisgICAgICAgIHJxLm9u
c3VjY2VzcyA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0K
KyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDE1LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfcHV0MTUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjMzYjVhOWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDE1LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMg
QEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5wdXQoKSAtIElmIHRoZSB0cmFuc2FjdGlvbiB0aGlz
IElEQk9iamVjdFN0b3JlIGJlbG9uZ3MgdG8gaGFzIGl0cyBtb2RlIHNldCB0byByZWFkb25seSwg
dGhyb3cgUmVhZE9ubHlFcnJvciAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxNS5odG0gYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDE1Lmh0bQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi42NWZkNzE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxNS5odG0KQEAg
LTAsMCArMSwzMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8
dGl0bGU+SURCT2JqZWN0U3RvcmUucHV0KCkgLSBJZiB0aGUgdHJhbnNhY3Rpb24gdGhpcyBJREJP
YmplY3RTdG9yZSBiZWxvbmdzIHRvIGhhcyBpdHMgbW9kZSBzZXQgdG8gcmVhZG9ubHksIHRocm93
IFJlYWRPbmx5RXJyb3I8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIg
aHJlZj0iaHR0cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRw
czovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3
aWRsLUlEQk9iamVjdFN0b3JlLXB1dC1JREJSZXF1ZXN0LWFueS12YWx1ZS1hbnkta2V5Ij4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ci
PjwvZGl2PgorPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KCk7
CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRl
bmVlZGVkID0gZnVuY3Rpb24gKGV2ZW50KSB7CisgICAgICAgIGRiID0gZXZlbnQudGFyZ2V0LnJl
c3VsdDsKKyAgICAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwge2tleVBhdGg6InBL
ZXkifSk7CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZXZlbnQp
IHsKKyAgICAgICAgdmFyIHR4biA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpOworICAgICAgICB2
YXIgb3N0b3JlID0gdHhuLm9iamVjdFN0b3JlKCJzdG9yZSIpOworICAgICAgICB0LnN0ZXAoZnVu
Y3Rpb24oKXsKKyAgICAgICAgICAgIGFzc2VydF90aHJvd3MoIlJlYWRPbmx5RXJyb3IiLCBmdW5j
dGlvbigpeworICAgICAgICAgICAgICAgIG9zdG9yZS5wdXQoe3BLZXk6ICJwcmltYXJ5S2V5XzAi
fSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7CisgICAgICAgIHQuZG9uZSgpOworICAg
IH0KKzwvc2NyaXB0PgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDE2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0MTYtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNiZDA2NGEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1
dDE2LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBJREJPYmplY3RTdG9yZS5w
dXQoKSAtIElmIHRoZSBvYmplY3Qgc3RvcmUgaGFzIGJlZW4gZGVsZXRlZCwgdGhlIGltcGxlbWVu
dGF0aW9uIG11c3QgdGhyb3cgYSBET01FeGNlcHRpb24gb2YgdHlwZSBJbnZhbGlkU3RhdGVFcnJv
ciAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9wdXQxNi5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX3B1dDE2Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi4xNGRjODY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQxNi5odG0KQEAgLTAsMCArMSwzMSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3Rv
cmUucHV0KCkgLSBJZiB0aGUgb2JqZWN0IHN0b3JlIGhhcyBiZWVuIGRlbGV0ZWQsIHRoZSBpbXBs
ZW1lbnRhdGlvbiBtdXN0IHRocm93IGEgRE9NRXhjZXB0aW9uIG9mIHR5cGUgSW52YWxpZFN0YXRl
RXJyb3I8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJJbnRlbCIgaHJlZj0iaHR0
cDovL3d3dy5pbnRlbC5jb20iPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2R2Y3Mu
dzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQk9i
amVjdFN0b3JlLXB1dC1JREJSZXF1ZXN0LWFueS12YWx1ZS1hbnkta2V5Ij4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPSJsb2ciPjwvZGl2Pgor
PHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICAgIG9zdG9yZSwKKyAgICAgICAgdCA9IGFzeW5j
X3Rlc3QoKTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5v
bnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbiAoZXZlbnQpIHsKKyAgICAgICAgZGIgPSBldmVudC50
YXJnZXQucmVzdWx0OworICAgICAgICBvc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3Rv
cmUiLCB7a2V5UGF0aDoicEtleSJ9KTsKKyAgICAgICAgZGIuZGVsZXRlT2JqZWN0U3RvcmUoInN0
b3JlIik7CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbiAoZXZlbnQp
IHsKKyAgICAgICAgdC5zdGVwKGZ1bmN0aW9uKCl7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dz
KCJJbnZhbGlkU3RhdGVFcnJvciIsIGZ1bmN0aW9uKCl7CisgICAgICAgICAgICAgICAgb3N0b3Jl
LnB1dCh7cEtleTogInByaW1hcnlLZXlfMCJ9KTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9
KTsKKyAgICAgICAgdC5kb25lKCk7CisgICAgfQorPC9zY3JpcHQ+CisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0Mi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0
b3JlX3B1dDItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmVjZDM5YmQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAor
CitQQVNTIElEQk9iamVjdFN0b3JlLnB1dCgpIC0gcHV0IHdpdGggYW4gb3V0LW9mLWxpbmUga2V5
ICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9wdXQyLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfcHV0Mi5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uMWQ1ZWE0NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0Mi5odG0KQEAgLTAsMCArMSwzNiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUu
cHV0KCkgLSBwdXQgd2l0aCBhbiBvdXQtb2YtbGluZSBrZXkgPC90aXRsZT4KKzxsaW5rIHJlbD0i
YXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20i
PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlw
dD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0gYXN5bmNfdGVzdCgpLAorICAgICAga2V5ID0gMSwK
KyAgICAgIHJlY29yZCA9IHsgcHJvcGVydHk6ICJkYXRhIiB9OworCisgICAgdmFyIG9wZW5fcnEg
PSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9
IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIpOworCisgICAgICAgIG9ialN0b3JlLnB1dChy
ZWNvcmQsIGtleSk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24o
ZSkgeworICAgICAgICB2YXIgcnEgPSBkYi50cmFuc2FjdGlvbigic3RvcmUiKQorICAgICAgICAg
ICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAgICAgICAgICAgIC5nZXQo
a2V5KTsKKworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7
CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LnJlc3VsdC5wcm9wZXJ0eSwgcmVj
b3JkLnByb3BlcnR5KTsKKworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH0pOworICAg
IH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0My1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3Jl
X3B1dDMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAx
NWNiMTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX3B1dDMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQ
QVNTIElEQk9iamVjdFN0b3JlLnB1dCgpIC0gcmVjb3JkIHdpdGggc2FtZSBrZXkgYWxyZWFkeSBl
eGlzdHMgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX3B1dDMuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQzLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi45NmZmOGJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQzLmh0bQpAQCAtMCwwICsxLDQ4IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5JREJPYmplY3RT
dG9yZS5wdXQoKSAtIHJlY29yZCB3aXRoIHNhbWUga2V5IGFscmVhZHkgZXhpc3RzIDwvdGl0bGU+
Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDovL3d3dy5t
aWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3Jp
cHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLCBzdWNjZXNzX2V2ZW50LAorICAgICAgdCA9IGFz
eW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZCA9IHsga2V5OiAxLCBwcm9wZXJ0eTogImRhdGEiIH0s
CisgICAgICByZWNvcmRfcHV0ID0geyBrZXk6IDEsIHByb3BlcnR5OiAiY2hhbmdlZCIsIG1vcmU6
IFsic3R1ZmYiLCAyXSB9OworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBv
cGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRh
cmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIgfSk7CisgICAgICAgIG9ialN0b3JlLnB1dChyZWNv
cmQpOworCisgICAgICAgIHZhciBycSA9IG9ialN0b3JlLnB1dChyZWNvcmRfcHV0KTsKKyAgICAg
ICAgcnEub25lcnJvciA9IGZhaWwodCwgImVycm9yIG9uIHB1dCIpOworCisgICAgICAgIHJxLm9u
c3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHN1Y2Nlc3Nf
ZXZlbnQgPSB0cnVlOworICAgICAgICB9KTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nl
c3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGFzc2VydF90cnVlKHN1Y2Nlc3NfZXZlbnQpOwor
CisgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCisgICAgICAgICAgICAg
ICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgLmdldCgxKTsK
KworICAgICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAg
ICAgICAgICB2YXIgcmVjID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHJlYy5rZXksIHJlY29yZF9wdXQua2V5KTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMocmVjLnByb3BlcnR5LCByZWNvcmRfcHV0LnByb3BlcnR5KTsKKyAgICAgICAgICAgIGFzc2Vy
dF9hcnJheV9lcXVhbHMocmVjLm1vcmUsIHJlY29yZF9wdXQubW9yZSk7CisKKyAgICAgICAgICAg
IHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9Imxv
ZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX3B1dDQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42ZmE5ZWYxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ0LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworRkFJTCBJREJPYmplY3RTdG9yZS5wdXQoKSAtIHB1
dCB3aGVyZSBhbiBpbmRleCBoYXMgdW5pcXVlOnRydWUgc3BlY2lmaWVkICBhc3NlcnRfdW5yZWFj
aGVkOiBzdWNjZXNzIG9uIHB1dHRpbmcgZHVwbGljYXRlIGluZGV4ZWQgcmVjb3JkIFJlYWNoZWQg
dW5yZWFjaGFibGUgY29kZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDQuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ0Lmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4wMGI4NDBkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ0Lmh0bQpAQCAtMCwwICsx
LDQwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5J
REJPYmplY3RTdG9yZS5wdXQoKSAtIHB1dCB3aGVyZSBhbiBpbmRleCBoYXMgdW5pcXVlOnRydWUg
c3BlY2lmaWVkIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIg
aHJlZj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
c3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgcmVj
b3JkID0geyBrZXk6IDEsIHByb3BlcnR5OiAiZGF0YSIgfTsKKworICAgIHZhciBvcGVuX3JxID0g
Y3JlYXRlZGIoYXN5bmNfdGVzdCgpKTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBv
YmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsgYXV0b0luY3JlbWVudDog
dHJ1ZSB9KTsKKyAgICAgICAgb2JqU3RvcmUuY3JlYXRlSW5kZXgoImkxIiwgInByb3BlcnR5Iiwg
eyB1bmlxdWU6IHRydWUgfSk7CisgICAgICAgIG9ialN0b3JlLnB1dChyZWNvcmQpOworCisgICAg
ICAgIHZhciBycSA9IG9ialN0b3JlLnB1dChyZWNvcmQpOworICAgICAgICBycS5vbnN1Y2Nlc3Mg
PSBmYWlsKHRoaXMsICJzdWNjZXNzIG9uIHB1dHRpbmcgZHVwbGljYXRlIGluZGV4ZWQgcmVjb3Jk
IikKKworICAgICAgICBycS5vbmVycm9yID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewor
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhycS5lcnJvci5uYW1lLCAiQ29uc3RyYWludEVycm9y
Iik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUudGFyZ2V0LmVycm9yLm5hbWUsICJDb25z
dHJhaW50RXJyb3IiKTsKKworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnR5cGUsICJlcnJv
ciIpOworCisgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAgICBlLnN0
b3BQcm9wYWdhdGlvbigpOworICAgICAgICB9KTsKKyAgICB9OworCisgICAgLy8gRGVmZXIgZG9u
ZSwgZ2l2aW5nIGEgc3B1cmlvdXMgcnEub25zdWNjZXNzIGEgY2hhbmNlIHRvIHJ1bgorICAgIG9w
ZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB0aGlzLmRvbmUoKTsKKyAg
ICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0NS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3Jl
X3B1dDUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZl
MTBmY2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX3B1dDUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQ
QVNTIElEQk9iamVjdFN0b3JlLnB1dCgpIC0gb2JqZWN0IHN0b3JlJ3Mga2V5IHBhdGggaXMgYW4g
b2JqZWN0IGF0dHJpYnV0ZSAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0NS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDUuaHRtCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmViZDkwYzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDUuaHRtCkBAIC0wLDAg
KzEsMzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxl
PklEQk9iamVjdFN0b3JlLnB1dCgpIC0gb2JqZWN0IHN0b3JlJ3Mga2V5IHBhdGggaXMgYW4gb2Jq
ZWN0IGF0dHJpYnV0ZSA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3Nv
ZnQiIGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAg
IHQgPSBhc3luY190ZXN0KCksCisgICAgICByZWNvcmQgPSB7IHRlc3Q6IHsgb2JqOiB7IGtleTog
MSB9IH0sIHByb3BlcnR5OiAiZGF0YSIgfTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIo
dCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAg
IGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVP
YmplY3RTdG9yZSgic3RvcmUiLCB7IGtleVBhdGg6ICJ0ZXN0Lm9iai5rZXkiIH0pOworICAgICAg
ICBvYmpTdG9yZS5wdXQocmVjb3JkKTsKKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3Mg
PSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIp
CisgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAg
ICAgICAgLmdldChyZWNvcmQudGVzdC5vYmoua2V5KTsKKworICAgICAgICBycS5vbnN1Y2Nlc3Mg
PSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUu
dGFyZ2V0LnJlc3VsdC5wcm9wZXJ0eSwgcmVjb3JkLnByb3BlcnR5KTsKKworICAgICAgICAgICAg
dC5kb25lKCk7CisgICAgICAgIH0pOworICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9n
Ij48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfcHV0Ni1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDYtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzYWUwNjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDYtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLnB1dCgpIC0gYXV0
b0luY3JlbWVudCBhbmQgaW5saW5lIGtleXMgIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDYuaHRtIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ2Lmh0bQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNzQ4MGFlCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ2Lmh0
bQpAQCAtMCwwICsxLDQ3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KKzx0aXRsZT5JREJPYmplY3RTdG9yZS5wdXQoKSAtIGF1dG9JbmNyZW1lbnQgYW5kIGlubGlu
ZSBrZXlzIDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJl
Zj0iaHR0cDovL3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3Vw
cG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLAorICAgICAgdCA9IGFz
eW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZCA9IHsgcHJvcGVydHk6ICJkYXRhIiB9LAorICAgICAg
ZXhwZWN0ZWRfa2V5cyA9IFsgMSwgMiwgMywgNCBdOworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVh
dGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpTdG9yZSA9IGRiLmNy
ZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImtleSIsIGF1dG9JbmNyZW1lbnQ6
IHRydWUgfSk7CisKKyAgICAgICAgb2JqU3RvcmUucHV0KHJlY29yZCk7CisgICAgICAgIG9ialN0
b3JlLnB1dChyZWNvcmQpOworICAgICAgICBvYmpTdG9yZS5wdXQocmVjb3JkKTsKKyAgICAgICAg
b2JqU3RvcmUucHV0KHJlY29yZCk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0g
ZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgYWN0dWFsX2tleXMgPSBbXSwKKyAgICAgICAgICBy
cSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9y
ZSgic3RvcmUiKQorICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAgIHJx
Lm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBj
dXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgIGlmIChjdXJzb3IpIHsKKyAg
ICAgICAgICAgICAgICBhY3R1YWxfa2V5cy5wdXNoKGN1cnNvci52YWx1ZS5rZXkpOworICAgICAg
ICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
ZWxzZSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhhY3R1YWxfa2V5cywg
ZXhwZWN0ZWRfa2V5cyk7CisgICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0pOworICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0
c3RvcmVfcHV0Ny1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYm9iamVjdHN0b3JlX3B1dDctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjhjZTRlYWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDctZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMyBAQAorCitQQVNTIElEQk9iamVjdFN0b3JlLnB1dCgpIC0gYXV0b0luY3JlbWVu
dCBhbmQgb3V0LW9mLWxpbmUga2V5cyAgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0Ny5odG0gYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDcuaHRtCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ1ZmY4OTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1dDcuaHRtCkBA
IC0wLDAgKzEsNDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PHRpdGxlPklEQk9iamVjdFN0b3JlLnB1dCgpIC0gYXV0b0luY3JlbWVudCBhbmQgb3V0LW9mLWxp
bmUga2V5cyA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQiIGhy
ZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1
cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIHQgPSBh
c3luY190ZXN0KCksCisgICAgICByZWNvcmQgPSB7IHByb3BlcnR5OiAiZGF0YSIgfSwKKyAgICAg
IGV4cGVjdGVkX2tleXMgPSBbIDEsIDIsIDMsIDQgXTsKKworICAgIHZhciBvcGVuX3JxID0gY3Jl
YXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Cisg
ICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5j
cmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7CisKKyAg
ICAgICAgb2JqU3RvcmUucHV0KHJlY29yZCk7CisgICAgICAgIG9ialN0b3JlLnB1dChyZWNvcmQp
OworICAgICAgICBvYmpTdG9yZS5wdXQocmVjb3JkKTsKKyAgICAgICAgb2JqU3RvcmUucHV0KHJl
Y29yZCk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewor
ICAgICAgICB2YXIgYWN0dWFsX2tleXMgPSBbXSwKKyAgICAgICAgICBycSA9IGRiLnRyYW5zYWN0
aW9uKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQorICAg
ICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQu
c3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdl
dC5yZXN1bHQ7CisKKyAgICAgICAgICAgIGlmIChjdXJzb3IpIHsKKyAgICAgICAgICAgICAgICBh
Y3R1YWxfa2V5cy5wdXNoKGN1cnNvci5rZXkpOworICAgICAgICAgICAgICAgIGN1cnNvci5jb250
aW51ZSgpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0X2FycmF5X2VxdWFscyhhY3R1YWxfa2V5cywgZXhwZWN0ZWRfa2V5cyk7CisgICAg
ICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOworICAgIH07
Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0OC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYm9iamVjdHN0b3JlX3B1
dDgtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJhMjM3
YTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2lkYm9iamVjdHN0b3JlX3B1dDgtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNT
IElEQk9iamVjdFN0b3JlLnB1dCgpIC0gb2JqZWN0IHN0b3JlIGhhcyBhdXRvSW5jcmVtZW50OnRy
dWUgYW5kIHRoZSBrZXkgcGF0aCBpcyBhbiBvYmplY3QgYXR0cmlidXRlICAKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ4
Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVf
cHV0OC5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTVlNzhjYgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2Jq
ZWN0c3RvcmVfcHV0OC5odG0KQEAgLTAsMCArMSw0NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUucHV0KCkgLSBvYmplY3Qg
c3RvcmUgaGFzIGF1dG9JbmNyZW1lbnQ6dHJ1ZSBhbmQgdGhlIGtleSBwYXRoIGlzIGFuIG9iamVj
dCBhdHRyaWJ1dGUgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iTWljcm9zb2Z0
IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0
ID0gYXN5bmNfdGVzdCgpLAorICAgICAgcmVjb3JkID0geyBwcm9wZXJ0eTogImRhdGEiIH0sCisg
ICAgICBleHBlY3RlZF9rZXlzID0gWyAxLCAyLCAzLCA0IF07CisKKyAgICB2YXIgb3Blbl9ycSA9
IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkg
eworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0g
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAidGVzdC5vYmoua2V5Iiwg
YXV0b0luY3JlbWVudDogdHJ1ZSB9KTsKKworICAgICAgICBvYmpTdG9yZS5wdXQocmVjb3JkKTsK
KyAgICAgICAgb2JqU3RvcmUucHV0KHJlY29yZCk7CisgICAgICAgIG9ialN0b3JlLnB1dChyZWNv
cmQpOworICAgICAgICBvYmpTdG9yZS5wdXQocmVjb3JkKTsKKyAgICB9OworCisgICAgb3Blbl9y
cS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBhY3R1YWxfa2V5cyA9IFtd
LAorICAgICAgICAgIHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKKyAgICAgICAgICAgICAg
ICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7
CisKKyAgICAgICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAg
ICAgICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgaWYg
KGN1cnNvcikgeworICAgICAgICAgICAgICAgIGFjdHVhbF9rZXlzLnB1c2goY3Vyc29yLnZhbHVl
LnRlc3Qub2JqLmtleSk7CisgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfYXJy
YXlfZXF1YWxzKGFjdHVhbF9rZXlzLCBleHBlY3RlZF9rZXlzKTsKKyAgICAgICAgICAgICAgICB0
LmRvbmUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfTsKKzwvc2NyaXB0Pgor
Cis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJvYmplY3RzdG9yZV9wdXQ5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0OS1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTk0ZjdkOAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRib2JqZWN0c3Rv
cmVfcHV0OS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BBU1MgSURCT2JqZWN0U3Rv
cmUucHV0KCkgLSBBdHRlbXB0IHRvIHB1dCBhIHJlY29yZCB0aGF0IGRvZXMgbm90IG1lZXQgdGhl
IGNvbnN0cmFpbnRzIG9mIGFuIG9iamVjdCBzdG9yZSdzIGlubGluZSBrZXkgcmVxdWlyZW1lbnRz
ICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJv
YmplY3RzdG9yZV9wdXQ5Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
aWRib2JqZWN0c3RvcmVfcHV0OS5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNzc5YWVkNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvaWRib2JqZWN0c3RvcmVfcHV0OS5odG0KQEAgLTAsMCArMSwyNyBAQAorPCFET0NU
WVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+SURCT2JqZWN0U3RvcmUu
cHV0KCkgLSBBdHRlbXB0IHRvIHB1dCBhIHJlY29yZCB0aGF0IGRvZXMgbm90IG1lZXQgdGhlIGNv
bnN0cmFpbnRzIG9mIGFuIG9iamVjdCBzdG9yZSdzIGlubGluZSBrZXkgcmVxdWlyZW1lbnRzIDwv
dGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgdGl0bGU9Ik1pY3Jvc29mdCIgaHJlZj0iaHR0cDov
L3d3dy5taWNyb3NvZnQuY29tIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+
PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIHQgPSBhc3luY190ZXN0KCksCisgICAgICBy
ZWNvcmQgPSB7IGtleTogMSwgcHJvcGVydHk6ICJkYXRhIiB9OworCisgICAgdmFyIG9wZW5fcnEg
PSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgdmFyIHJxLAorICAgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0LAorICAg
ICAgICAgIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRo
OiAia2V5IiB9KTsKKworICAgICAgICBhc3NlcnRfdGhyb3dzKCJEYXRhRXJyb3IiLAorICAgICAg
ICAgICAgZnVuY3Rpb24oKSB7IHJxID0gb2JqU3RvcmUucHV0KHJlY29yZCwgMSk7IH0pOworCisg
ICAgICAgIGFzc2VydF9lcXVhbHMocnEsIHVuZGVmaW5lZCk7CisgICAgICAgIHQuZG9uZSgpOwor
ICAgIH07Cis8L3NjcmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRidHJhbnNhY3Rpb24tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJ0cmFuc2FjdGlvbi1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2U3YWQxNgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRi
dHJhbnNhY3Rpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQQVNTIElEQlRyYW5z
YWN0aW9uIC0gcmVxdWVzdCBnb3R0ZW4gYnkgdGhlIGhhbmRsZXIgCitQQVNTIElEQlRyYW5zYWN0
aW9uIC0gcmVxdWVzdCByZXR1cm5lZCBieSBvcGVuKCkgCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRidHJhbnNhY3Rpb24tb25jb21wbGV0ZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYnRyYW5zYWN0
aW9uLW9uY29tcGxldGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmExZjNmMzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYnRyYW5zYWN0aW9uLW9uY29tcGxldGUtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMyBAQAorCitQQVNTIElEQlRyYW5zYWN0aW9uIC0gY29tcGxldGUgZXZlbnQgCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRidHJhbnNhY3Rp
b24tb25jb21wbGV0ZS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lk
YnRyYW5zYWN0aW9uLW9uY29tcGxldGUuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjg3ZjZkNDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2lkYnRyYW5zYWN0aW9uLW9uY29tcGxldGUuaHRtCkBAIC0wLDAgKzEsNTMg
QEAKKzwhRE9DVFlQRSBodG1sPgorPHRpdGxlPklEQlRyYW5zYWN0aW9uIC0gY29tcGxldGUgZXZl
bnQ8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEu
Y29tIiB0aXRsZT0iT2RpbiBIw7hydGhlIE9tZGFsIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
c3VwcG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLCBzdG9yZSwKKyAg
ICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGltZW91dDogMTAwMDB9KSwKKyAg
ICAgIG9wZW5fcnEgPSBjcmVhdGVkYih0KSwKKyAgICAgIHN0YWdlcyA9IFtdOworCisgICAgb3Bl
bl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHN0YWdlcy5wdXNo
KCJ1cGdyYWRlbmVlZGVkIik7CisKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAg
ICAgIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJyk7CisKKyAgICAgICAgZS50
YXJnZXQudHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAg
c3RhZ2VzLnB1c2goImNvbXBsZXRlIik7CisgICAgICAgIH07CisgICAgfTsKKworICAgIG9wZW5f
cnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICBzdGFnZXMucHVzaCgic3VjY2Vz
cyIpOworCisgICAgICAgIC8vIE1ha2luZyBhIHRvdGFsbHkgbmV3IHRyYW5zYWN0aW9uIHRvIGNo
ZWNrCisgICAgICAgIGRiLnRyYW5zYWN0aW9uKCdzdG9yZScpLm9iamVjdFN0b3JlKCdzdG9yZScp
LmNvdW50KCkub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAg
ICAgYXNzZXJ0X2FycmF5X2VxdWFscyhzdGFnZXMsIFsgInVwZ3JhZGVuZWVkZWQiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbXBsZXRlIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzdWNjZXNzIiBdKTsKKyAgICAgICAg
ICAgIHQuZG9uZSgpOworICAgICAgICB9KTsKKyAgICAgICAgLy8gWFhYOiBNYWtlIG9uZSB3aXRo
IHJlYWwgdHJhbnNhY3Rpb25zLCBub3Qgb25seSBvcGVuKCkgdmVyc2lvbmNoYW5nZSBvbmUKKwor
ICAgICAgICAvKmRiLnRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdzdG9yZScpLm9wZW5DdXJzb3Io
KS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBzdGFnZXMucHVzaCgib3Bl
bmN1cnNvcjEiKTsKKyAgICAgICAgfQorCisgICAgICAgIHN0b3JlLm9wZW5DdXJzb3IoKS5vbnN1
Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBzdGFnZXMucHVzaCgib3BlbmN1cnNv
cjIiKTsKKyAgICAgICAgfQorCisgICAgICAgIGUudGFyZ2V0LnRyYW5zYWN0aW9uLm9iamVjdFN0
b3JlKCdzdG9yZScpLm9wZW5DdXJzb3IoKS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAg
ICAgICAgICBzdGFnZXMucHVzaCgib3BlbmN1cnNvcjMiKTsKKyAgICAgICAgfQorICAgICAgICAq
LworICAgIH0KKworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYnRyYW5zYWN0aW9uLmh0bSBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRidHJhbnNhY3Rpb24uaHRtCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM1N2U2NWYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYnRyYW5zYWN0aW9uLmh0
bQpAQCAtMCwwICsxLDQ2IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5JREJUcmFuc2FjdGlv
bjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5j
b20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJz
dXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIsCisgICAgICB0ID0g
YXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSByZXF1ZXN0IGdvdHRlbiBieSB0aGUgaGFu
ZGxlciIpLAorICAgICAgb3Blbl90ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSBy
ZXF1ZXN0IHJldHVybmVkIGJ5IG9wZW4oKSIpLAorCisgICAgb3Blbl9ycSA9IGluZGV4ZWREQi5v
cGVuKCJpZGJ0cmFuc2FjdGlvbi0iICsgbmV3IERhdGUoKS5nZXRUaW1lKCkgKyBNYXRoLnJhbmRv
bSgpKTsKKworICAgIG9wZW5fdC5zdGVwKGZ1bmN0aW9uKCkgeworICAgICAgICBhc3NlcnRfZXF1
YWxzKG9wZW5fcnEudHJhbnNhY3Rpb24sIG51bGwsICJJREJPcGVuREJSZXF1ZXN0LnRyYW5zYWN0
aW9uIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMob3Blbl9ycS5zb3VyY2UsIG51bGwsICJJREJP
cGVuREJSZXF1ZXN0LnNvdXJjZSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKG9wZW5fcnEucmVh
ZHlTdGF0ZSwgInBlbmRpbmciLCAiSURCT3BlbkRCUmVxdWVzdC5yZWFkeVN0YXRlIik7CisKKyAg
ICAgICAgYXNzZXJ0X3RydWUob3Blbl9ycSBpbnN0YW5jZW9mIElEQk9wZW5EQlJlcXVlc3QsICJv
cGVuX3JxIGluc3RhbmNlb2YgSURCT3BlbkRCUmVxdWVzdCIpOworICAgICAgICBhc3NlcnRfZXF1
YWxzKG9wZW5fcnEgKyAiIiwgIltvYmplY3QgSURCT3BlbkRCUmVxdWVzdF0iLCAiSURCT3BlbkRC
UmVxdWVzdCAob3Blbl9ycSkiKTsKKworICAgICAgICBvcGVuX3QuZG9uZSgpOworICAgIH0pOwor
CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7
CisgICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQsIG9wZW5fcnEsICJlLnRhcmdldCBpcyBy
ZXVzaW5nIHRoZSBzYW1lIElEQk9wZW5EQlJlcXVlc3QiKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFs
cyhlLnRhcmdldC50cmFuc2FjdGlvbiwgb3Blbl9ycS50cmFuc2FjdGlvbiwgIklEQk9wZW5EQlJl
cXVlc3QudHJhbnNhY3Rpb24iKTsKKworICAgICAgICBhc3NlcnRfdHJ1ZShlLnRhcmdldC50cmFu
c2FjdGlvbiBpbnN0YW5jZW9mIElEQlRyYW5zYWN0aW9uLCAidHJhbnNhY3Rpb24gaW5zdGFuY2Vv
ZiBJREJUcmFuc2FjdGlvbiIpOworICAgICAgICB0LmRvbmUoKTsKKyAgICB9KTsKKworCisgICAg
Ly8gTm90IHBsYXVzaWJsZSBjb25kaXRpb25zLi4uCisgICAgZnVuY3Rpb24gZmFpbF9oZWxwZXIo
bmFtZSkgeworICAgICAgICByZXR1cm4gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICB0LnN0ZXAo
ZnVuY3Rpb24oKSB7IGFzc2VydF91bnJlYWNoZWQobmFtZSk7IH0pOworICAgICAgICAgICAgb3Bl
bl90LnN0ZXAoZnVuY3Rpb24oKSB7IGFzc2VydF91bnJlYWNoZWQobmFtZSk7IH0pOworICAgICAg
ICB9OworICAgIH0KKyAgICBvcGVuX3JxLm9uYmxvY2tlZCA9IGZhaWxfaGVscGVyKCdvcGVuX3Jx
Lm9uYmxvY2tlZCcpOworICAgIG9wZW5fcnEub25lcnJvciA9IGZhaWxfaGVscGVyKCdvcGVuX3Jx
Lm9uZXJyb3InKTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJ0cmFuc2FjdGlvbl9hYm9y
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYnRy
YW5zYWN0aW9uX2Fib3J0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5lOWIxM2U4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9pZGJ0cmFuc2FjdGlvbl9hYm9ydC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwzIEBACisKK0ZBSUwgSURCVHJhbnNhY3Rpb24gLSBhYm9ydCBhc3NlcnRfdW5yZWFjaGVkOiBn
b3QgY29tcGxldGUsIGV4cGVjdGVkIGFib3J0IFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYnRyYW5zYWN0
aW9uX2Fib3J0Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRidHJh
bnNhY3Rpb25fYWJvcnQuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYw
MWJlYWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL2lkYnRyYW5zYWN0aW9uX2Fib3J0Lmh0bQpAQCAtMCwwICsxLDQxIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+SURCVHJhbnNhY3Rpb24gLSBhYm9y
dDwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5j
b20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1
cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiLCBhYm9ydGVkLAorICAg
ICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pLAorICAg
ICAgcmVjb3JkID0geyBpbmRleGVkUHJvcGVydHk6ICJiYXIiIH07CisKKyAgICB2YXIgb3Blbl9y
cSA9IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIHR4biA9IGUu
dGFyZ2V0LnRyYW5zYWN0aW9uLAorICAgICAgICAgIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0
U3RvcmUoInN0b3JlIik7CisKKyAgICAgICAgb2JqU3RvcmUuYWRkKHJlY29yZCwgMSk7CisgICAg
ICAgIG9ialN0b3JlLmFkZChyZWNvcmQsIDIpOworICAgICAgICB2YXIgaW5kZXggPSBvYmpTdG9y
ZS5jcmVhdGVJbmRleCgiaW5kZXgiLCAiaW5kZXhlZFByb3BlcnR5IiwgeyB1bmlxdWU6IHRydWUg
fSk7CisKKyAgICAgICAgYXNzZXJ0X3RydWUoaW5kZXggaW5zdGFuY2VvZiBJREJJbmRleCwgIklE
QkluZGV4Iik7CisKKyAgICAgICAgZS50YXJnZXQudHJhbnNhY3Rpb24ub25hYm9ydCA9IHQuc3Rl
cF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFib3J0ZWQgPSB0cnVlOworICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhlLnR5cGUsICJhYm9ydCIsICJldmVudCB0eXBlIik7CisgICAg
ICAgIH0pOworCisgICAgICAgIGRiLm9uYWJvcnQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAg
ICBhc3NlcnRfdHJ1ZShhYm9ydGVkLCAidHJhbnNhY3Rpb24uYWJvcnQgZXZlbnQgaGFzIGZpcmVk
Iik7CisgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgfTsKKworICAgICAgICBlLnRhcmdl
dC50cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZmFpbCh0LCAiZ290IGNvbXBsZXRlLCBleHBlY3Rl
ZCBhYm9ydCIpOworICAgIH07CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaWRidmVyc2lvbmNo
YW5nZWV2ZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvaWRidmVyc2lvbmNoYW5nZWV2ZW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi44MzNiODQ2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJ2ZXJzaW9uY2hhbmdlZXZlbnQtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorCitGQUlMIElEQlZlcnNpb25DaGFuZ2VFdmVudCBmaXJlZCBpbiB1
cGdyYWRlbmVlZGVkLCB2ZXJzaW9uY2hhbmdlIGFuZCBkZWxldGVEYXRhYmFzZSBhc3NlcnRfZXF1
YWxzOiBuZXcgdmVyc2lvbiAodmVyc2lvbmNoYW5nZSkgZXhwZWN0ZWQgKG9iamVjdCkgbnVsbCBi
dXQgZ290IChudW1iZXIpIDAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9pZGJ2ZXJzaW9uY2hhbmdlZXZlbnQuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pZGJ2ZXJzaW9uY2hhbmdlZXZlbnQuaHRtCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3MDU0ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYnZlcnNpb25jaGFuZ2VldmVudC5odG0KQEAg
LTAsMCArMSw2NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8dGl0bGU+SURCVmVyc2lvbkNoYW5nZUV2
ZW50IGZpcmVkIGluIHVwZ3JhZGVuZWVkZWQsIHZlcnNpb25jaGFuZ2UgYW5kIGRlbGV0ZURhdGFi
YXNlPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJh
LmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8bGluayByZWw9aGVscCBocmVmPSJo
dHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1s
I3ZlcnNpb25jaGFuZ2UtLXRyYW5zYWN0aW9uLXN0ZXBzIj4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0
bGU9IkZpcmUgYSB2ZXJzaW9uY2hhbmdlIGV2ZW50IGF0IGVhY2ggb2JqZWN0IGluIG9wZW5EYXRh
YmFzZXMgdGhhdCBpcyBvcGVuLiBUaGUgZXZlbnQgbXVzdCBub3QgYmUgZmlyZWQgb24gb2JqZWN0
cyB3aGljaCBoYXMgdGhlIGNsb3NlUGVuZGluZyBmbGFnIHNldC4gVGhlIGV2ZW50IG11c3QgdXNl
IHRoZSBJREJWZXJzaW9uQ2hhbmdlRXZlbnQgaW50ZXJmYWNlIGFuZCBoYXZlIHRoZSBvbGRWZXJz
aW9uIHByb3BlcnR5IHNldCB0byBkYidzIHZlcnNpb24gYW5kIGhhdmUgdGhlIG5ld1ZlcnNpb24g
cHJvcGVydHkgc2V0IHRvIHZlcnNpb24uIj4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IkZpcmUg
YSB1cGdyYWRlbmVlZGVkIGV2ZW50IHRhcmdldGVkIGF0IHJlcXVlc3QuIFRoZSBldmVudCBtdXN0
IHVzZSB0aGUgSURCVmVyc2lvbkNoYW5nZUV2ZW50IGludGVyZmFjZSBhbmQgaGF2ZSB0aGUgb2xk
VmVyc2lvbiBwcm9wZXJ0eSBzZXQgdG8gb2xkIHZlcnNpb24gYW5kIGhhdmUgdGhlIG5ld1ZlcnNp
b24gcHJvcGVydHkgc2V0IHRvIHZlcnNpb24uIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3Vw
cG9ydC5qcyI+PC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CisKKzxzY3JpcHQ+CisK
KyAgICB2YXIgZGIsCisgICAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7dGlt
ZW91dDogMTAwMDB9KTsKKworICAgIHQuc3RlcChmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIG9w
ZW5ycSA9IGluZGV4ZWREQi5vcGVuKCdkYicsIDMpOworCisgICAgICAgIG9wZW5ycS5vbnVwZ3Jh
ZGVuZWVkZWQgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGUub2xkVmVyc2lvbiwgMCwgIm9sZCB2ZXJzaW9uICh1cGdyYWRlbmVlZGVkKSIpOwor
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLm5ld1ZlcnNpb24sIDMsICJuZXcgdmVyc2lvbiAo
dXBncmFkZW5lZWRlZCkiKTsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGUgaW5zdGFuY2VvZiBJ
REJWZXJzaW9uQ2hhbmdlRXZlbnQsICJ1cGdyYWRlbmVlZGVkIGluc3RhbmNlb2YgSURCVmVyc2lv
bkNoYW5nZUV2ZW50Iik7CisgICAgICAgIH0pOworCisgICAgICAgIG9wZW5ycS5vbnN1Y2Nlc3Mg
PSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBkYiA9IGUudGFyZ2V0LnJl
c3VsdDsKKworICAgICAgICAgICAgZGIub252ZXJzaW9uY2hhbmdlID0gdC5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZSkgeworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5vbGRWZXJzaW9uLCAz
LCAib2xkIHZlcnNpb24gKHZlcnNpb25jaGFuZ2UpIik7CisgICAgICAgICAgICAgICAgYXNzZXJ0
X2VxdWFscyhlLm5ld1ZlcnNpb24sIG51bGwsICJuZXcgdmVyc2lvbiAodmVyc2lvbmNoYW5nZSki
KTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZShlIGluc3RhbmNlb2YgSURCVmVyc2lvbkNo
YW5nZUV2ZW50LCAidmVyc2lvbmNoYW5nZSBpbnN0YW5jZW9mIElEQlZlcnNpb25DaGFuZ2VFdmVu
dCIpOworICAgICAgICAgICAgICAgIGRiLmNsb3NlKCk7CisgICAgICAgICAgICB9KTsKKworICAg
ICAgICAgICAgLy8gRXJyb3JzCisgICAgICAgICAgICBkYi5vbmVycm9yID0gZmFpbCh0LCAiZGIu
ZXJyb3IiKTsKKyAgICAgICAgICAgIGRiLm9uYWJvcnQgPSBmYWlsKHQsICJkYi5hYm9ydCIpOwor
CisgICAgICAgICAgICBzZXRUaW1lb3V0KHQuc3RlcF9mdW5jKGRlbGV0ZURCKSwgMTApOworICAg
ICAgICB9KTsKKworICAgICAgICAvLyBFcnJvcnMKKyAgICAgICAgb3BlbnJxLm9uZXJyb3IgPSBm
YWlsKHQsICJvcGVuLmVycm9yIik7CisgICAgICAgIG9wZW5ycS5vbmJsb2NrZWQgPSBmYWlsKHQs
ICJvcGVuLmJsb2NrZWQiKTsKKworICAgIH0pOworCisgICAgZnVuY3Rpb24gZGVsZXRlREIgKGUp
IHsKKyAgICAgICAgdmFyIGRlbGV0ZXJxID0gaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCdkYicp
OworCisgICAgICAgIGRlbGV0ZXJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5vbGRWZXJzaW9uLCAzLCAib2xkIHZlcnNp
b24gKGRlbGV0ZS5zdWNjZXNzKSIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLm5ld1Zl
cnNpb24sIG51bGwsICJuZXcgdmVyc2lvbiAoZGVsZXRlLnN1Y2Nlc3MpIik7CisgICAgICAgICAg
ICBhc3NlcnRfdHJ1ZShlIGluc3RhbmNlb2YgSURCVmVyc2lvbkNoYW5nZUV2ZW50LCAiZGVsZXRl
LnN1Y2Nlc3MgaW5zdGFuY2VvZiBJREJWZXJzaW9uQ2hhbmdlRXZlbnQiKTsKKworICAgICAgICAg
ICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgdC5kb25lKCk7IH0sIDEwKTsKKyAgICAgICAgfSk7
CisKKyAgICAgICAgLy8gRXJyb3JzCisgICAgICAgIGRlbGV0ZXJxLm9uZXJyb3IgPSBmYWlsKHQs
ICJkZWxldGUuZXJyb3IiKTsKKyAgICAgICAgZGVsZXRlcnEub25ibG9ja2VkID0gZmFpbCh0LCAi
ZGVsZXRlLmJsb2NrZWQiKTsKKyAgICB9CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJ3b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYndvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4zNTlmNmZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJ3b3JrZXIuanMKQEAgLTAsMCArMSwzNCBAQAordmFyIGRi
CisKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcignbWVzc2FnZScsIE1lc3NhZ2VIYW5kbGVyLCBmYWxz
ZSkKKworZnVuY3Rpb24gTWVzc2FnZUhhbmRsZXIoZSkKK3sKKyAgICB2YXIgb3Blbl9ycSwgaWRi
ID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4
ZWREQiB8fCBzZWxmLm1vekluZGV4ZWREQgorCisgICAgaWYgKCFpZGIpCisgICAgeworICAgICAg
ICBzZWxmLnBvc3RNZXNzYWdlKGZhbHNlKQorICAgICAgICByZXR1cm4KKyAgICB9CisgICAgZWxz
ZQorICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKHRydWUpCisKKyAgICBvcGVuX3JxID0gaWRiLm9w
ZW4oIndlYndvcmtlcjEwMSIsIDEpCisKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1
bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQKKyAgICAgICAgZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoInN0b3JlIikKKyAgICAgICAgICAuYWRkKCJ0ZXN0IiwgMSkKKyAgICB9
CisgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50
YXJnZXQucmVzdWx0CisgICAgICAgIGRiLm9uZXJyb3IgPSBmdW5jdGlvbigpIHsgc2VsZi5wb3N0
TWVzc2FnZSgiZGIuZXJyb3IiKSB9CisgICAgICAgIGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpLm9i
amVjdFN0b3JlKCJzdG9yZSIpLmdldCgxKS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAg
ICAgICAgICBzZWxmLnBvc3RNZXNzYWdlKGUudGFyZ2V0LnJlc3VsdCkKKyAgICAgICAgICAgIGRi
LmNsb3NlKCkKKyAgICAgICAgfQorICAgIH0KKyAgICBvcGVuX3JxLm9uZXJyb3IgPSBmdW5jdGlv
bigpIHsgc2VsZi5wb3N0TWVzc2FnZSgib3Blbi5lcnJvciIpIH0KKyAgICBvcGVuX3JxLm9uYmxv
Y2tlZCA9IGZ1bmN0aW9uKCkgeyBzZWxmLnBvc3RNZXNzYWdlKCJvcGVuLmJsb2NrZWQiKSB9Cit9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2luZGV4X3Nv
cnRfb3JkZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pbmRleF9zb3J0X29yZGVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4yNDQxOGFhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pbmRleF9zb3J0X29yZGVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDMgQEAKKworUEFTUyBWZXJpZnkga2V5IHNvcnQgb3JkZXIgaW4gYW4gaW5kZXggaXMgJ251bWJl
ciA8IERhdGUgPCBET01TdHJpbmcnICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL2luZGV4ZWRkYi9pbmRleF9zb3J0X29yZGVyLmh0bSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIvaW5kZXhfc29ydF9vcmRlci5odG0KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uNzU3YjM3NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvaW5kZXhfc29ydF9vcmRlci5odG0KQEAgLTAsMCArMSw1
MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+VmVy
aWZ5IGtleSBzb3J0IG9yZGVyIGluIGFuIGluZGV4IGlzICdudW1iZXIgJmx0OyBEYXRlICZsdDsg
RE9NU3RyaW5nJyA8L3RpdGxlPgorPGxpbmsgcmVsPSJhdXRob3IiIHRpdGxlPSJNaWNyb3NvZnQi
IGhyZWY9Imh0dHA6Ly93d3cubWljcm9zb2Z0LmNvbSI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8u
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAgIHZhciBkYiwKKyAgICAgIGQg
PSBuZXcgRGF0ZSgpLAorICAgICAgdCA9IGFzeW5jX3Rlc3QoKSwKKyAgICAgIHJlY29yZHMgPSBb
IHsgZm9vOiBkIH0sCisgICAgICAgICAgICAgICAgICB7IGZvbzogInRlc3QiIH0sCisgICAgICAg
ICAgICAgICAgICB7IGZvbzogMSB9LAorICAgICAgICAgICAgICAgICAgeyBmb286IDIuNTUgfSAg
XSwKKyAgICAgIGV4cGVjdGVkS2V5T3JkZXIgPSBbIDEsIDIuNTUsIGQudmFsdWVPZigpLCAidGVz
dCIgXTsKKworICAgIHZhciBvcGVuX3JxID0gY3JlYXRlZGIodCk7CisgICAgb3Blbl9ycS5vbnVw
Z3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0
OworICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgic3RvcmUiLCB7
IGF1dG9JbmNyZW1lbnQ6IHRydWUgfSk7CisgICAgICAgIG9ialN0b3JlLmNyZWF0ZUluZGV4KCJp
bmRleCIsICJmb28iKTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY29yZHMubGVu
Z3RoOyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jkc1tpXSk7CisgICAgfTsK
KworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgYWN0
dWFsX2tleXMgPSBbXSwKKyAgICAgICAgICBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCisg
ICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAgICAgICAgICAu
aW5kZXgoImluZGV4IikKKyAgICAgICAgICAgICAgICAgLm9wZW5DdXJzb3IoKTsKKworICAgICAg
ICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2
YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICBpZiAoY3Vyc29yKSB7
CisgICAgICAgICAgICAgICAgYWN0dWFsX2tleXMucHVzaChjdXJzb3Iua2V5LnZhbHVlT2YoKSk7
CisgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGFjdHVh
bF9rZXlzLCBleHBlY3RlZEtleU9yZGVyKTsKKyAgICAgICAgICAgICAgICB0LmRvbmUoKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJs
b2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRk
Yi9pbnRlcmZhY2VzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uNmVlM2Y3MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvaW50ZXJmYWNlcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBACitG
QUlMOiBUaW1lZCBvdXQgd2FpdGluZyBmb3Igbm90aWZ5RG9uZSB0byBiZSBjYWxsZWQKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pbnRlcmZhY2VzLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2ludGVyZmFjZXMuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYjNkMDYzCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pbnRlcmZhY2VzLmh0bWwK
QEAgLTAsMCArMSw1MCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04Pgor
PHRpdGxlPkluZGV4ZWREQiBJREwgdGVzdHM8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PS9yZXNvdXJjZXMvV2ViSURMUGFyc2VyLmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9L3Jlc291
cmNlcy9pZGxoYXJuZXNzLmpzPjwvc2NyaXB0PgorCis8aDE+SW5kZXhlZERCIElETCB0ZXN0czwv
aDE+Cis8ZGl2IGlkPWxvZz48L2Rpdj4KKworPHNjcmlwdD4KKyJ1c2Ugc3RyaWN0IjsKK3NldHVw
KGZ1bmN0aW9uKCkgeworICB2YXIgaWRsQXJyYXkgPSBuZXcgSWRsQXJyYXkoKTsKKworICB2YXIg
cmVxdWVzdCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICByZXF1ZXN0Lm9wZW4oIkdFVCIsICJp
bnRlcmZhY2VzLmlkbCIpOworICByZXF1ZXN0LnNlbmQoKTsKKyAgcmVxdWVzdC5vbmxvYWQgPSBm
dW5jdGlvbigpIHsKKyAgICB2YXIgaWRscyA9IHJlcXVlc3QucmVzcG9uc2VUZXh0OworCisgICAg
aWRsQXJyYXkuYWRkX3VudGVzdGVkX2lkbHMoIltQcmltYXJ5R2xvYmFsXSBpbnRlcmZhY2UgV2lu
ZG93IHsgfTsiKTsKKyAgICBpZGxBcnJheS5hZGRfdW50ZXN0ZWRfaWRscygiaW50ZXJmYWNlIEV2
ZW50IHsgfTsiKTsKKyAgICBpZGxBcnJheS5hZGRfdW50ZXN0ZWRfaWRscygiaW50ZXJmYWNlIEV2
ZW50VGFyZ2V0IHsgfTsiKTsKKworICAgIC8vIEZyb20gSW5kZXhlZCBEQjoKKyAgICBpZGxBcnJh
eS5hZGRfaWRscyhpZGxzKTsKKyAgICBpZGxBcnJheS5hZGRfaWRscygiV2luZG93IGltcGxlbWVu
dHMgSURCRW52aXJvbm1lbnQ7Iik7CisKKyAgICBpZGxBcnJheS5hZGRfb2JqZWN0cyh7CisgICAg
ICBJREJDdXJzb3I6IFtdLAorICAgICAgSURCQ3Vyc29yV2l0aFZhbHVlOiBbXSwKKyAgICAgIElE
QkRhdGFiYXNlOiBbXSwKKyAgICAgIElEQkVudmlyb25tZW50OiBbXSwKKyAgICAgIElEQkZhY3Rv
cnk6IFsid2luZG93LmluZGV4ZWREQiJdLAorICAgICAgSURCSW5kZXg6IFtdLAorICAgICAgSURC
S2V5UmFuZ2U6IFsiSURCS2V5UmFuZ2Uub25seSgwKSJdLAorICAgICAgSURCT2JqZWN0U3RvcmU6
IFtdLAorICAgICAgSURCT3BlbkRCUmVxdWVzdDogW10sCisgICAgICBJREJSZXF1ZXN0OiBbXSwK
KyAgICAgIElEQlRyYW5zYWN0aW9uOiBbXSwKKyAgICAgIElEQlZlcnNpb25DaGFuZ2VFdmVudDog
WyJuZXcgSURCVmVyc2lvbkNoYW5nZUV2ZW50KCdmb28nKSJdLAorICAgIH0pOworCisgICAgaWRs
QXJyYXkudGVzdCgpOworICAgIGRvbmUoKTsKKyAgfTsKK30sIHtleHBsaWNpdF9kb25lOiB0cnVl
fSk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvaW50ZXJmYWNlcy5pZGwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2ludGVyZmFjZXMuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA1NWU2
MmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRi
L2ludGVyZmFjZXMuaWRsCkBAIC0wLDAgKzEsMTQ1IEBACitlbnVtIElEQlRyYW5zYWN0aW9uTW9k
ZSB7CisgICAgInJlYWRvbmx5IiwKKyAgICAicmVhZHdyaXRlIiwKKyAgICAidmVyc2lvbmNoYW5n
ZSIKK307CisKK2VudW0gSURCUmVxdWVzdFJlYWR5U3RhdGUgeworICAgICJwZW5kaW5nIiwKKyAg
ICAiZG9uZSIKK307CisKK2ludGVyZmFjZSBJREJLZXlSYW5nZSB7CisgICAgcmVhZG9ubHkgICAg
YXR0cmlidXRlIGFueSAgICAgbG93ZXI7CisgICAgcmVhZG9ubHkgICAgYXR0cmlidXRlIGFueSAg
ICAgdXBwZXI7CisgICAgcmVhZG9ubHkgICAgYXR0cmlidXRlIGJvb2xlYW4gbG93ZXJPcGVuOwor
ICAgIHJlYWRvbmx5ICAgIGF0dHJpYnV0ZSBib29sZWFuIHVwcGVyT3BlbjsKKyAgICBzdGF0aWMg
SURCS2V5UmFuZ2Ugb25seSAoYW55IHZhbHVlKTsKKyAgICBzdGF0aWMgSURCS2V5UmFuZ2UgbG93
ZXJCb3VuZCAoYW55IGxvd2VyLCBvcHRpb25hbCBib29sZWFuIG9wZW4gPSBmYWxzZSk7CisgICAg
c3RhdGljIElEQktleVJhbmdlIHVwcGVyQm91bmQgKGFueSB1cHBlciwgb3B0aW9uYWwgYm9vbGVh
biBvcGVuID0gZmFsc2UpOworICAgIHN0YXRpYyBJREJLZXlSYW5nZSBib3VuZCAoYW55IGxvd2Vy
LCBhbnkgdXBwZXIsIG9wdGlvbmFsIGJvb2xlYW4gbG93ZXJPcGVuID0gZmFsc2UsIG9wdGlvbmFs
IGJvb2xlYW4gdXBwZXJPcGVuID0gZmFsc2UpOworfTsKKworZW51bSBJREJDdXJzb3JEaXJlY3Rp
b24geworICAgICJuZXh0IiwKKyAgICAibmV4dHVuaXF1ZSIsCisgICAgInByZXYiLAorICAgICJw
cmV2dW5pcXVlIgorfTsKKworZGljdGlvbmFyeSBJREJPYmplY3RTdG9yZVBhcmFtZXRlcnMgewor
ICAgIChET01TdHJpbmcgb3Igc2VxdWVuY2U8RE9NU3RyaW5nPik/IGtleVBhdGggPSBudWxsOwor
ICAgIGJvb2xlYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9JbmNyZW1lbnQgPSBm
YWxzZTsKK307CisKK2RpY3Rpb25hcnkgSURCSW5kZXhQYXJhbWV0ZXJzIHsKKyAgICBib29sZWFu
IHVuaXF1ZSA9IGZhbHNlOworICAgIGJvb2xlYW4gbXVsdGlFbnRyeSA9IGZhbHNlOworfTsKKwor
ZGljdGlvbmFyeSBJREJWZXJzaW9uQ2hhbmdlRXZlbnRJbml0IDogRXZlbnRJbml0IHsKKyAgICB1
bnNpZ25lZCBsb25nIGxvbmcgIG9sZFZlcnNpb24gPSAwOworICAgIHVuc2lnbmVkIGxvbmcgbG9u
Zz8gbmV3VmVyc2lvbiA9IG51bGw7Cit9OworCitpbnRlcmZhY2UgSURCUmVxdWVzdCA6IEV2ZW50
VGFyZ2V0IHsKKyAgICByZWFkb25seSAgICBhdHRyaWJ1dGUgYW55ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDsKKyAgICByZWFkb25seSAgICBhdHRyaWJ1dGUg
RE9NRXJyb3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yOworICAgIHJl
YWRvbmx5ICAgIGF0dHJpYnV0ZSAoSURCT2JqZWN0U3RvcmUgb3IgSURCSW5kZXggb3IgSURCQ3Vy
c29yKT8gc291cmNlOworICAgIHJlYWRvbmx5ICAgIGF0dHJpYnV0ZSBJREJUcmFuc2FjdGlvbiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb247CisgICAgcmVhZG9ubHkgICAg
YXR0cmlidXRlIElEQlJlcXVlc3RSZWFkeVN0YXRlICAgICAgICAgICAgICAgICAgICAgICByZWFk
eVN0YXRlOworICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgb25zdWNjZXNzOworICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZSBFdmVudEhhbmRsZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25lcnJvcjsKK307
CisKK2ludGVyZmFjZSBJREJPcGVuREJSZXF1ZXN0IDogSURCUmVxdWVzdCB7CisgICAgICAgICAg
ICAgICAgYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbmJsb2NrZWQ7CisgICAgICAgICAgICAgICAg
YXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbnVwZ3JhZGVuZWVkZWQ7Cit9OworCitbQ29uc3RydWN0
b3IoRE9NU3RyaW5nIHR5cGUsIG9wdGlvbmFsIElEQlZlcnNpb25DaGFuZ2VFdmVudEluaXQgZXZl
bnRJbml0RGljdCldCitpbnRlcmZhY2UgSURCVmVyc2lvbkNoYW5nZUV2ZW50IDogRXZlbnQgewor
ICAgIHJlYWRvbmx5ICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgIG9sZFZlcnNpb247
CisgICAgcmVhZG9ubHkgICAgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbG9uZz8gbmV3VmVyc2lv
bjsKK307CisKK1tOb0ludGVyZmFjZU9iamVjdF0KK2ludGVyZmFjZSBJREJFbnZpcm9ubWVudCB7
CisgICAgcmVhZG9ubHkgICAgYXR0cmlidXRlIElEQkZhY3RvcnkgaW5kZXhlZERCOworfTsKKwor
aW50ZXJmYWNlIElEQkZhY3RvcnkgeworICAgIElEQk9wZW5EQlJlcXVlc3Qgb3BlbiAoRE9NU3Ry
aW5nIG5hbWUsIFtFbmZvcmNlUmFuZ2VdIG9wdGlvbmFsIHVuc2lnbmVkIGxvbmcgbG9uZyB2ZXJz
aW9uKTsKKyAgICBJREJPcGVuREJSZXF1ZXN0IGRlbGV0ZURhdGFiYXNlIChET01TdHJpbmcgbmFt
ZSk7CisgICAgc2hvcnQgICAgICAgICAgICBjbXAgKGFueSBmaXJzdCwgYW55IHNlY29uZCk7Cit9
OworCitpbnRlcmZhY2UgSURCRGF0YWJhc2UgOiBFdmVudFRhcmdldCB7CisgICAgcmVhZG9ubHkg
ICAgYXR0cmlidXRlIERPTVN0cmluZyAgICAgICAgICBuYW1lOworICAgIHJlYWRvbmx5ICAgIGF0
dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgdmVyc2lvbjsKKyAgICByZWFkb25seSAgICBhdHRy
aWJ1dGUgRE9NU3RyaW5nTGlzdCAgICAgIG9iamVjdFN0b3JlTmFtZXM7CisgICAgSURCT2JqZWN0
U3RvcmUgY3JlYXRlT2JqZWN0U3RvcmUgKERPTVN0cmluZyBuYW1lLCBvcHRpb25hbCBJREJPYmpl
Y3RTdG9yZVBhcmFtZXRlcnMgb3B0aW9uYWxQYXJhbWV0ZXJzKTsKKyAgICB2b2lkICAgICAgICAg
ICBkZWxldGVPYmplY3RTdG9yZSAoRE9NU3RyaW5nIG5hbWUpOworICAgIElEQlRyYW5zYWN0aW9u
IHRyYW5zYWN0aW9uICgoRE9NU3RyaW5nIG9yIHNlcXVlbmNlPERPTVN0cmluZz4pIHN0b3JlTmFt
ZXMsIG9wdGlvbmFsIElEQlRyYW5zYWN0aW9uTW9kZSBtb2RlID0gInJlYWRvbmx5Iik7CisgICAg
dm9pZCAgICAgICAgICAgY2xvc2UgKCk7CisgICAgICAgICAgICAgICAgYXR0cmlidXRlIEV2ZW50
SGFuZGxlciAgICAgICBvbmFib3J0OworICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBFdmVudEhh
bmRsZXIgICAgICAgb25lcnJvcjsKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5k
bGVyICAgICAgIG9udmVyc2lvbmNoYW5nZTsKK307CisKK2ludGVyZmFjZSBJREJPYmplY3RTdG9y
ZSB7CisgICAgcmVhZG9ubHkgICAgYXR0cmlidXRlIERPTVN0cmluZyAgICAgIG5hbWU7CisgICAg
cmVhZG9ubHkgICAgYXR0cmlidXRlIGFueSAgICAgICAgICAgIGtleVBhdGg7CisgICAgcmVhZG9u
bHkgICAgYXR0cmlidXRlIERPTVN0cmluZ0xpc3QgIGluZGV4TmFtZXM7CisgICAgcmVhZG9ubHkg
ICAgYXR0cmlidXRlIElEQlRyYW5zYWN0aW9uIHRyYW5zYWN0aW9uOworICAgIHJlYWRvbmx5ICAg
IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICBhdXRvSW5jcmVtZW50OworICAgIElEQlJlcXVlc3Qg
cHV0IChhbnkgdmFsdWUsIG9wdGlvbmFsIGFueSBrZXkpOworICAgIElEQlJlcXVlc3QgYWRkIChh
bnkgdmFsdWUsIG9wdGlvbmFsIGFueSBrZXkpOworICAgIElEQlJlcXVlc3QgZGVsZXRlIChhbnkg
a2V5KTsKKyAgICBJREJSZXF1ZXN0IGdldCAoYW55IGtleSk7CisgICAgSURCUmVxdWVzdCBjbGVh
ciAoKTsKKyAgICBJREJSZXF1ZXN0IG9wZW5DdXJzb3IgKG9wdGlvbmFsIGFueSByYW5nZSwgb3B0
aW9uYWwgSURCQ3Vyc29yRGlyZWN0aW9uIGRpcmVjdGlvbiA9ICJuZXh0Iik7CisgICAgSURCSW5k
ZXggICBjcmVhdGVJbmRleCAoRE9NU3RyaW5nIG5hbWUsIChET01TdHJpbmcgb3Igc2VxdWVuY2U8
RE9NU3RyaW5nPikga2V5UGF0aCwgb3B0aW9uYWwgSURCSW5kZXhQYXJhbWV0ZXJzIG9wdGlvbmFs
UGFyYW1ldGVycyk7CisgICAgSURCSW5kZXggICBpbmRleCAoRE9NU3RyaW5nIG5hbWUpOworICAg
IHZvaWQgICAgICAgZGVsZXRlSW5kZXggKERPTVN0cmluZyBpbmRleE5hbWUpOworICAgIElEQlJl
cXVlc3QgY291bnQgKG9wdGlvbmFsIGFueSBrZXkpOworfTsKKworaW50ZXJmYWNlIElEQkluZGV4
IHsKKyAgICByZWFkb25seSAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgbmFtZTsKKyAgICBy
ZWFkb25seSAgICBhdHRyaWJ1dGUgSURCT2JqZWN0U3RvcmUgb2JqZWN0U3RvcmU7CisgICAgcmVh
ZG9ubHkgICAgYXR0cmlidXRlIGFueSAgICAgICAgICAgIGtleVBhdGg7CisgICAgcmVhZG9ubHkg
ICAgYXR0cmlidXRlIGJvb2xlYW4gICAgICAgIG11bHRpRW50cnk7CisgICAgcmVhZG9ubHkgICAg
YXR0cmlidXRlIGJvb2xlYW4gICAgICAgIHVuaXF1ZTsKKyAgICBJREJSZXF1ZXN0IG9wZW5DdXJz
b3IgKG9wdGlvbmFsIGFueSByYW5nZSwgb3B0aW9uYWwgSURCQ3Vyc29yRGlyZWN0aW9uIGRpcmVj
dGlvbiA9ICJuZXh0Iik7CisgICAgSURCUmVxdWVzdCBvcGVuS2V5Q3Vyc29yIChvcHRpb25hbCBh
bnkgcmFuZ2UsIG9wdGlvbmFsIElEQkN1cnNvckRpcmVjdGlvbiBkaXJlY3Rpb24gPSAibmV4dCIp
OworICAgIElEQlJlcXVlc3QgZ2V0IChhbnkga2V5KTsKKyAgICBJREJSZXF1ZXN0IGdldEtleSAo
YW55IGtleSk7CisgICAgSURCUmVxdWVzdCBjb3VudCAob3B0aW9uYWwgYW55IGtleSk7Cit9Owor
CitpbnRlcmZhY2UgSURCQ3Vyc29yIHsKKyAgICByZWFkb25seSAgICBhdHRyaWJ1dGUgKElEQk9i
amVjdFN0b3JlIG9yIElEQkluZGV4KSBzb3VyY2U7CisgICAgcmVhZG9ubHkgICAgYXR0cmlidXRl
IElEQkN1cnNvckRpcmVjdGlvbiAgICAgICAgICAgZGlyZWN0aW9uOworICAgIHJlYWRvbmx5ICAg
IGF0dHJpYnV0ZSBhbnkgICAgICAgICAgICAgICAgICAgICAgICAgIGtleTsKKyAgICByZWFkb25s
eSAgICBhdHRyaWJ1dGUgYW55ICAgICAgICAgICAgICAgICAgICAgICAgICBwcmltYXJ5S2V5Owor
ICAgIElEQlJlcXVlc3QgdXBkYXRlIChhbnkgdmFsdWUpOworICAgIHZvaWQgICAgICAgYWR2YW5j
ZSAoW0VuZm9yY2VSYW5nZV0gdW5zaWduZWQgbG9uZyBjb3VudCk7CisgICAgdm9pZCAgICAgICBj
b250aW51ZSAob3B0aW9uYWwgYW55IGtleSk7CisgICAgSURCUmVxdWVzdCBkZWxldGUgKCk7Cit9
OworCitpbnRlcmZhY2UgSURCQ3Vyc29yV2l0aFZhbHVlIDogSURCQ3Vyc29yIHsKKyAgICByZWFk
b25seSAgICBhdHRyaWJ1dGUgYW55IHZhbHVlOworfTsKKworaW50ZXJmYWNlIElEQlRyYW5zYWN0
aW9uIDogRXZlbnRUYXJnZXQgeworICAgIHJlYWRvbmx5ICAgIGF0dHJpYnV0ZSBJREJUcmFuc2Fj
dGlvbk1vZGUgbW9kZTsKKyAgICByZWFkb25seSAgICBhdHRyaWJ1dGUgSURCRGF0YWJhc2UgICAg
ICAgIGRiOworICAgIHJlYWRvbmx5ICAgIGF0dHJpYnV0ZSBET01FcnJvciAgICAgICAgICAgZXJy
b3I7CisgICAgSURCT2JqZWN0U3RvcmUgb2JqZWN0U3RvcmUgKERPTVN0cmluZyBuYW1lKTsKKyAg
ICB2b2lkICAgICAgICAgICBhYm9ydCAoKTsKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgRXZl
bnRIYW5kbGVyICAgICAgIG9uYWJvcnQ7CisgICAgICAgICAgICAgICAgYXR0cmlidXRlIEV2ZW50
SGFuZGxlciAgICAgICBvbmNvbXBsZXRlOworICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBFdmVu
dEhhbmRsZXIgICAgICAgb25lcnJvcjsKK307CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL2ludGVyZmFjZXMud29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9pbnRlcmZhY2VzLndvcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi40NTIyYjQ1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pbnRlcmZhY2VzLndvcmtlci5qcwpAQCAtMCwwICsx
LDM5IEBACisidXNlIHN0cmljdCI7CisKK2ltcG9ydFNjcmlwdHMoIi4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyIpOworaW1wb3J0U2NyaXB0cygiLi4vLi4vLi4vcmVzb3VyY2VzL1dl
YklETFBhcnNlci5qcyIsICIuLi8uLi8uLi9yZXNvdXJjZXMvaWRsaGFybmVzcy5qcyIpOworCit2
YXIgcmVxdWVzdCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworcmVxdWVzdC5vcGVuKCJHRVQiLCAi
aW50ZXJmYWNlcy5pZGwiKTsKK3JlcXVlc3Quc2VuZCgpOworcmVxdWVzdC5vbmxvYWQgPSBmdW5j
dGlvbigpIHsKKyAgdmFyIGlkbEFycmF5ID0gbmV3IElkbEFycmF5KCk7CisgIHZhciBpZGxzID0g
cmVxdWVzdC5yZXNwb25zZVRleHQ7CisKKyAgaWRsQXJyYXkuYWRkX3VudGVzdGVkX2lkbHMoImlu
dGVyZmFjZSBXb3JrZXJHbG9iYWxTY29wZSB7fTsiKTsKKyAgaWRsQXJyYXkuYWRkX3VudGVzdGVk
X2lkbHMoImludGVyZmFjZSBXb3JrZXJVdGlscyB7fTsiKTsKKyAgaWRsQXJyYXkuYWRkX3VudGVz
dGVkX2lkbHMoIldvcmtlckdsb2JhbFNjb3BlIGltcGxlbWVudHMgV29ya2VyVXRpbHM7Iik7Cisg
IGlkbEFycmF5LmFkZF91bnRlc3RlZF9pZGxzKCJpbnRlcmZhY2UgRXZlbnQgeyB9OyIpOworICBp
ZGxBcnJheS5hZGRfdW50ZXN0ZWRfaWRscygiaW50ZXJmYWNlIEV2ZW50VGFyZ2V0IHsgfTsiKTsK
KworICAvLyBGcm9tIEluZGV4ZWQgREI6CisgIGlkbEFycmF5LmFkZF9pZGxzKCJXb3JrZXJVdGls
cyBpbXBsZW1lbnRzIElEQkVudmlyb25tZW50OyIpOworICBpZGxBcnJheS5hZGRfaWRscyhpZGxz
KTsKKworICBpZGxBcnJheS5hZGRfb2JqZWN0cyh7CisgICAgSURCQ3Vyc29yOiBbXSwKKyAgICBJ
REJDdXJzb3JXaXRoVmFsdWU6IFtdLAorICAgIElEQkRhdGFiYXNlOiBbXSwKKyAgICBJREJFbnZp
cm9ubWVudDogW10sCisgICAgSURCRmFjdG9yeTogWyJzZWxmLmluZGV4ZWREQiJdLAorICAgIElE
QkluZGV4OiBbXSwKKyAgICBJREJLZXlSYW5nZTogWyJJREJLZXlSYW5nZS5vbmx5KDApIl0sCisg
ICAgSURCT2JqZWN0U3RvcmU6IFtdLAorICAgIElEQk9wZW5EQlJlcXVlc3Q6IFtdLAorICAgIElE
QlJlcXVlc3Q6IFtdLAorICAgIElEQlRyYW5zYWN0aW9uOiBbXSwKKyAgICBJREJWZXJzaW9uQ2hh
bmdlRXZlbnQ6IFsibmV3IElEQlZlcnNpb25DaGFuZ2VFdmVudCgnZm9vJykiXSwKKyAgfSk7Cisg
IGlkbEFycmF5LnRlc3QoKTsKKyAgZG9uZSgpOworfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5X2ludmFsaWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlfaW52YWxpZC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTZjNWViZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5X2ludmFsaWQtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMzYgQEAKKworUEFTUyBJbnZhbGlkIGtleSAtIHRydWUgCitQQVNT
IEludmFsaWQga2V5IC0gZmFsc2UgCitQQVNTIEludmFsaWQga2V5IC0gbnVsbCAKK1BBU1MgSW52
YWxpZCBrZXkgLSBOYU4gCitQQVNTIEludmFsaWQga2V5IC0gdW5kZWZpbmVkIAorUEFTUyBJbnZh
bGlkIGtleSAtIHVuZGVmaW5lZDIgCitQQVNTIEludmFsaWQga2V5IC0gZnVuY3Rpb24oKSB7fSAK
K1BBU1MgSW52YWxpZCBrZXkgLSB7fSAKK1BBU1MgSW52YWxpZCBrZXkgLSB7IG9iajogMSB9IAor
UEFTUyBJbnZhbGlkIGtleSAtIE1hdGggCitQQVNTIEludmFsaWQga2V5IC0gd2luZG93IAorUEFT
UyBJbnZhbGlkIGtleSAtIHtsZW5ndGg6MCxjb25zdHJ1Y3RvcjpBcnJheX0gCitQQVNTIEludmFs
aWQga2V5IC0gQXJyYXkgY2xvbmXDouKCrOKEonMgaW5zdGFuY2UgCitQQVNTIEludmFsaWQga2V5
IC0gQXJyYXkgKG9iamVjdCkgCitQQVNTIEludmFsaWQga2V5IC0gU3RyaW5nIChvYmplY3QpIAor
UEFTUyBJbnZhbGlkIGtleSAtIG5ldyBTdHJpbmcoKSAKK1BBU1MgSW52YWxpZCBrZXkgLSBuZXcg
TnVtYmVyKCkgCitQQVNTIEludmFsaWQga2V5IC0gbmV3IEJvb2xlYW4oKSAKK1BBU1MgSW52YWxp
ZCBrZXkgLSBbe31dIAorUEFTUyBJbnZhbGlkIGtleSAtIFtbXSwgW10sIFtdLCBbWyBEYXRlIF1d
XSAKK1BBU1MgSW52YWxpZCBrZXkgLSBbdW5kZWZpbmVkXSAKK1BBU1MgSW52YWxpZCBrZXkgLSBb
LDFdIAorUEFTUyBJbnZhbGlkIGtleSAtIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJz
Y3JpcHQiKSAKK1BBU1MgSW52YWxpZCBrZXkgLSBuZXcgRGF0ZShOYU4pIAorUEFTUyBJbnZhbGlk
IGtleSAtIG5ldyBEYXRlKEluZmluaXR5KSAKK1BBU1MgSW52YWxpZCBrZXkgLSAvZm9vLyAKK1BB
U1MgSW52YWxpZCBrZXkgLSBuZXcgUmVnRXhwKCkgCitQQVNTIEludmFsaWQga2V5IC0gc3BhcnNl
IGFycmF5IAorUEFTUyBJbnZhbGlkIGtleSAtIHNwYXJzZSBhcnJheSAyIAorUEFTUyBJbnZhbGlk
IGtleSAtIFtbMV0sIFszXSwgWzddLCBbWyBzcGFyc2UgYXJyYXkgXV1dIAorUEFTUyBJbnZhbGlk
IGtleSAtIFsxLDIsMywsXSAKK1BBU1MgSW52YWxpZCBrZXkgLSBhcnJheSBkaXJlY3RseSBjb250
YWlucyBzZWxmIAorUEFTUyBJbnZhbGlkIGtleSAtIGFycmF5IGluZGlyZWN0bHkgY29udGFpbnMg
c2VsZiAKK1BBU1MgSW52YWxpZCBrZXkgLSBhcnJheSBtZW1iZXIgY29udGFpbnMgc2VsZiAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlfaW52YWxp
ZC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleV9pbnZhbGlkLmh0
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNzJkYTM3Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlfaW52YWxpZC5o
dG0KQEAgLTAsMCArMSwxMjkgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLSBTdWJtaXR0ZWQgZnJv
bSBUZXN0VFdGIFBhcmlzIC0tPgorPG1ldGEgY2hhcnNldD11dGYtOCI+Cis8dGl0bGU+SW52YWxp
ZCBrZXk8L3RpdGxlPgorPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hn
L0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNrZXktY29uc3RydWN0Ij4KKzxs
aW5rIHJlbD1hc3NlcnQgdGl0bGU9IkEgdmFsdWUgaXMgc2FpZCB0byBiZSBhIHZhbGlkIGtleSBp
ZiBpdCBpcyBvbmUgb2YgdGhlIGZvbGxvd2luZyB0eXBlczogQXJyYXkgSmF2YVNjcmlwdCBvYmpl
Y3RzIFtFQ01BLTI2Ml0sIERPTVN0cmluZyBbV0VCSURMXSwgRGF0ZSBbRUNNQS0yNjJdIG9yIGZs
b2F0IFtXRUJJRExdLiBIb3dldmVyIEFycmF5cyBhcmUgb25seSB2YWxpZCBrZXlzIGlmIGV2ZXJ5
IGl0ZW0gaW4gdGhlIGFycmF5IGlzIGRlZmluZWQgYW5kIGlzIGEgdmFsaWQga2V5IChpLmUuIHNw
YXJzZSBhcnJheXMgY2FuIG5vdCBiZSB2YWxpZCBrZXlzKSBhbmQgaWYgdGhlIEFycmF5IGRvZXNu
J3QgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSBjb250YWluIGl0c2VsZi4gQW55IG5vbi1udW1lcmlj
IHByb3BlcnRpZXMgYXJlIGlnbm9yZWQsIGFuZCB0aHVzIGRvZXMgbm90IGFmZmVjdCB3aGV0aGVy
IHRoZSBBcnJheSBpcyBhIHZhbGlkIGtleS4gQWRkaXRpb25hbGx5LCBpZiB0aGUgdmFsdWUgaXMg
b2YgdHlwZSBmbG9hdCwgaXQgaXMgb25seSBhIHZhbGlkIGtleSBpZiBpdCBpcyBub3QgTmFOLCBh
bmQgaWYgdGhlIHZhbHVlIGlzIG9mIHR5cGUgRGF0ZSBpdCBpcyBvbmx5IGEgdmFsaWQga2V5IGlm
IGl0cyBbW1ByaW1pdGl2ZVZhbHVlXV0gaW50ZXJuYWwgcHJvcGVydHksIGFzIGRlZmluZWQgYnkg
W0VDTUEtMjYyXSwgaXMgbm90IE5hTi4gQ29uZm9ybWluZyB1c2VyIGFnZW50cyBtdXN0IHN1cHBv
cnQgYWxsIHZhbGlkIGtleXMgYXMga2V5cy4iPgorPCEtLSBvcmlnaW5hbCBhdXRob3IgLS0+Cis8
bGluayByZWw9YXV0aG9yIGhyZWY9Im1haWx0bzpvZGluaG9Ab3BlcmEuY29tIiB0aXRsZT0iT2Rp
biBIw7hydGhlIE9tZGFsIj4KKzwhLS0gc29tZSBhZGRpdGlvbnMgYnkgQmFwdGlzdGUgRm9udGFp
bmUgKGJhdGlmb25AeWFob28uZnIpIC0tPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQu
anM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGRiICAgICAgICA9IGNyZWF0ZWRiX2Zv
cl9tdWx0aXBsZV90ZXN0cygpLAorICAgICAgICAvLyBjYWNoZSBmb3IgT2JqZWN0U3RvcmVzCisg
ICAgICAgIG9ialN0b3JlICA9IG51bGwsCisgICAgICAgIG9ialN0b3JlMiA9IG51bGw7CisKKyAg
ICBmdW5jdGlvbiBpc19jbG9uZWFibGUobykgeworICAgICAgICB0cnkgeworICAgICAgICAgICAg
c2VsZi5wb3N0TWVzc2FnZShvLCAnKicpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
ICAgIH0gY2F0Y2ggKGV4KSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0K
KyAgICB9CisKKyAgICBmdW5jdGlvbiBpbnZhbGlkX2tleShkZXNjLCBrZXkpIHsKKyAgICAgICAg
dmFyIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtICIgKyBkZXNjKTsKKworICAg
ICAgICAvLyBzZXQgdGhlIGN1cnJlbnQgdGVzdCwgYW5kIHJ1biBpdAorICAgICAgICBkYi5zZXRU
ZXN0KHQpLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIG9ialN0
b3JlID0gb2JqU3RvcmUgfHwgZS50YXJnZXQucmVzdWx0LmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9y
ZSIpOworICAgICAgICAgICAgYXNzZXJ0X3Rocm93cygnRGF0YUVycm9yJywgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICAgICAgb2JqU3RvcmUuYWRkKCJ2YWx1ZSIsIGtleSk7CisgICAgICAgICAg
ICB9KTsKKworICAgICAgICAgICAgaWYgKGlzX2Nsb25lYWJsZShrZXkpKSB7CisgICAgICAgICAg
ICAgICAgb2JqU3RvcmUyID0gb2JqU3RvcmUyIHx8IGUudGFyZ2V0LnJlc3VsdC5jcmVhdGVPYmpl
Y3RTdG9yZSgic3RvcmUyIiwgeyBrZXlQYXRoOiBbIngiLCAia2V5cGF0aCJdIH0pOworICAgICAg
ICAgICAgICAgIGFzc2VydF90aHJvd3MoJ0RhdGFFcnJvcicsIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgICAgICAgICBvYmpTdG9yZTIuYWRkKHsgeDogInZhbHVlIiwga2V5cGF0aDoga2V5IH0p
OworICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhpcy5k
b25lKCk7CisgICAgICAgIH07CisgICAgfQorCisgICAgdmFyIGZha2VfYXJyYXkgPSB7CisgICAg
ICAgIGxlbmd0aCAgICAgIDogMCwKKyAgICAgICAgY29uc3RydWN0b3IgOiBBcnJheQorICAgIH07
CisKKyAgICB2YXIgQXJyYXlDbG9uZSA9IGZ1bmN0aW9uKCl7fTsKKyAgICBBcnJheUNsb25lLnBy
b3RvdHlwZSA9IEFycmF5OworICAgIHZhciBBcnJheUNsb25lX2luc3RhbmNlID0gbmV3IEFycmF5
Q2xvbmUoKTsKKworICAgIC8vIGJvb2xlYW5zCisgICAgaW52YWxpZF9rZXkoICd0cnVlJyAgLCB0
cnVlICk7CisgICAgaW52YWxpZF9rZXkoICdmYWxzZScgLCBmYWxzZSApOworCisgICAgLy8gbnVs
bC9OYU4vdW5kZWZpbmVkCisgICAgaW52YWxpZF9rZXkoICdudWxsJyAgICAgICwgbnVsbCApOwor
ICAgIGludmFsaWRfa2V5KCAnTmFOJyAgICAgICAsIE5hTiApOworICAgIGludmFsaWRfa2V5KCAn
dW5kZWZpbmVkJyAsIHVuZGVmaW5lZCApOworICAgIGludmFsaWRfa2V5KCAndW5kZWZpbmVkMicp
OworCisgICAgLy8gZnVuY3Rpb25zCisgICAgaW52YWxpZF9rZXkoICdmdW5jdGlvbigpIHt9Jywg
ZnVuY3Rpb24oKXt9ICk7CisKKyAgICAvLyBvYmplY3RzCisgICAgaW52YWxpZF9rZXkoICd7fScg
ICAgICAgICAgICAgICAgICAgICAgICAgICAsIHt9ICk7CisgICAgaW52YWxpZF9rZXkoICd7IG9i
ajogMSB9JyAgICAgICAgICAgICAgICAgICAsIHsgb2JqOiAxIH0pOworICAgIGludmFsaWRfa2V5
KCAnTWF0aCcgICAgICAgICAgICAgICAgICAgICAgICAgLCBNYXRoICk7CisgICAgaW52YWxpZF9r
ZXkoICd3aW5kb3cnICAgICAgICAgICAgICAgICAgICAgICAsIHdpbmRvdyApOworICAgIGludmFs
aWRfa2V5KCAne2xlbmd0aDowLGNvbnN0cnVjdG9yOkFycmF5fScgLCBmYWtlX2FycmF5ICk7Cisg
ICAgaW52YWxpZF9rZXkoICdBcnJheSBjbG9uZeKAmXMgaW5zdGFuY2UnICAgICAgICwgQXJyYXlD
bG9uZV9pbnN0YW5jZSApOworICAgIGludmFsaWRfa2V5KCAnQXJyYXkgKG9iamVjdCknICAgICAg
ICAgICAgICAgLCBBcnJheSApOworICAgIGludmFsaWRfa2V5KCAnU3RyaW5nIChvYmplY3QpJyAg
ICAgICAgICAgICAgLCBTdHJpbmcgKTsKKyAgICBpbnZhbGlkX2tleSggJ25ldyBTdHJpbmcoKScg
ICAgICAgICAgICAgICAgICwgbmV3IFN0cmluZygpICk7CisgICAgaW52YWxpZF9rZXkoICduZXcg
TnVtYmVyKCknICAgICAgICAgICAgICAgICAsIG5ldyBOdW1iZXIoKSApOworICAgIGludmFsaWRf
a2V5KCAnbmV3IEJvb2xlYW4oKScgICAgICAgICAgICAgICAgLCBuZXcgQm9vbGVhbigpICk7CisK
KyAgICAvLyBhcnJheXMKKyAgICBpbnZhbGlkX2tleSggJ1t7fV0nICAgICAgICAgICAgICAgICAg
ICAgLCBbe31dICk7CisgICAgaW52YWxpZF9rZXkoICdbW10sIFtdLCBbXSwgW1sgRGF0ZSBdXV0n
ICwgWyBbXSwgW10sIFtdLCBbWyBEYXRlIF1dIF0gKTsKKyAgICBpbnZhbGlkX2tleSggJ1t1bmRl
ZmluZWRdJyAgICAgICAgICAgICAgLCBbdW5kZWZpbmVkXSApOworICAgIGludmFsaWRfa2V5KCAn
WywxXScgICAgICAgICAgICAgICAgICAgICAsIFssMV0gKTsKKworICAgIGludmFsaWRfa2V5KCAn
ZG9jdW1lbnQuZ2V0RWxlbWVudHMnCisgICAgICAgICAgICAgICAgKydCeVRhZ05hbWUoInNjcmlw
dCIpJyAgICAgICwgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpICk7CisK
KyAgICAvLyAgZGF0ZXMKKyAgICBpbnZhbGlkX2tleSggJ25ldyBEYXRlKE5hTiknICAgICAgLCBu
ZXcgRGF0ZShOYU4pICk7CisgICAgaW52YWxpZF9rZXkoICduZXcgRGF0ZShJbmZpbml0eSknICwg
bmV3IERhdGUoSW5maW5pdHkpICk7CisKKyAgICAvLyByZWdleGVzCisgICAgaW52YWxpZF9rZXko
ICcvZm9vLycgICAgICAgICwgL2Zvby8gKTsKKyAgICBpbnZhbGlkX2tleSggJ25ldyBSZWdFeHAo
KScgLCBuZXcgUmVnRXhwKCkgKTsKKworICAgIHZhciBzcGFyc2UgPSBbXTsKKyAgICBzcGFyc2Vb
MTBdID0gImhlaSI7CisgICAgaW52YWxpZF9rZXkoJ3NwYXJzZSBhcnJheScsIHNwYXJzZSk7CisK
KyAgICB2YXIgc3BhcnNlMiA9IFtdOworICAgIHNwYXJzZTJbMF0gID0gMTsKKyAgICBzcGFyc2Uy
WyIiXSA9IDI7CisgICAgc3BhcnNlMlsyXSAgPSAzOworICAgIGludmFsaWRfa2V5KCdzcGFyc2Ug
YXJyYXkgMicsIHNwYXJzZTIpOworCisgICAgaW52YWxpZF9rZXkoJ1tbMV0sIFszXSwgWzddLCBb
WyBzcGFyc2UgYXJyYXkgXV1dJywgWyBbMV0sIFszXSwgWzddLCBbWyBzcGFyc2UyIF1dIF0pOwor
CisgICAgLy8gc3BhcnNlMworICAgIGludmFsaWRfa2V5KCAnWzEsMiwzLCxdJywgWzEsMiwzLCxd
ICk7CisKKyAgICB2YXIgcmVjdXJzaXZlID0gW107CisgICAgcmVjdXJzaXZlLnB1c2gocmVjdXJz
aXZlKTsKKyAgICBpbnZhbGlkX2tleSgnYXJyYXkgZGlyZWN0bHkgY29udGFpbnMgc2VsZicsIHJl
Y3Vyc2l2ZSk7CisKKyAgICB2YXIgcmVjdXJzaXZlMiA9IFtdOworICAgIHJlY3Vyc2l2ZTIucHVz
aChbcmVjdXJzaXZlMl0pOworICAgIGludmFsaWRfa2V5KCdhcnJheSBpbmRpcmVjdGx5IGNvbnRh
aW5zIHNlbGYnLCByZWN1cnNpdmUyKTsKKworICAgIHZhciByZWN1cnNpdmUzID0gW3JlY3Vyc2l2
ZV07CisgICAgaW52YWxpZF9rZXkoJ2FycmF5IG1lbWJlciBjb250YWlucyBzZWxmJywgcmVjdXJz
aXZlMyk7CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5X3ZhbGlkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleV92YWxpZC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjBhNWMxZDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleV92YWxpZC5odG1sCkBAIC0wLDAgKzEsNzUg
QEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLSBTdWJtaXR0ZWQgZnJvbSBUZXN0VFdGIFBhcmlzIC0t
PgorPG1ldGEgY2hhcnNldD11dGYtOCI+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJs
b25nIj4KKzx0aXRsZT5WYWxpZCBrZXk8L3RpdGxlPgorPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0
cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNr
ZXktY29uc3RydWN0Ij4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9IkEgdmFsdWUgaXMgc2FpZCB0
byBiZSBhIHZhbGlkIGtleSBpZiBpdCBpcyBvbmUgb2YgdGhlIGZvbGxvd2luZyB0eXBlczogQXJy
YXkgSmF2YVNjcmlwdCBvYmplY3RzIFtFQ01BLTI2Ml0sIERPTVN0cmluZyBbV0VCSURMXSwgRGF0
ZSBbRUNNQS0yNjJdIG9yIGZsb2F0IFtXRUJJRExdLiBIb3dldmVyIEFycmF5cyBhcmUgb25seSB2
YWxpZCBrZXlzIGlmIGV2ZXJ5IGl0ZW0gaW4gdGhlIGFycmF5IGlzIGRlZmluZWQgYW5kIGlzIGEg
dmFsaWQga2V5IChpLmUuIHNwYXJzZSBhcnJheXMgY2FuIG5vdCBiZSB2YWxpZCBrZXlzKSBhbmQg
aWYgdGhlIEFycmF5IGRvZXNuJ3QgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSBjb250YWluIGl0c2Vs
Zi4gQW55IG5vbi1udW1lcmljIHByb3BlcnRpZXMgYXJlIGlnbm9yZWQsIGFuZCB0aHVzIGRvZXMg
bm90IGFmZmVjdCB3aGV0aGVyIHRoZSBBcnJheSBpcyBhIHZhbGlkIGtleS4gQWRkaXRpb25hbGx5
LCBpZiB0aGUgdmFsdWUgaXMgb2YgdHlwZSBmbG9hdCwgaXQgaXMgb25seSBhIHZhbGlkIGtleSBp
ZiBpdCBpcyBub3QgTmFOLCBhbmQgaWYgdGhlIHZhbHVlIGlzIG9mIHR5cGUgRGF0ZSBpdCBpcyBv
bmx5IGEgdmFsaWQga2V5IGlmIGl0cyBbW1ByaW1pdGl2ZVZhbHVlXV0gaW50ZXJuYWwgcHJvcGVy
dHksIGFzIGRlZmluZWQgYnkgW0VDTUEtMjYyXSwgaXMgbm90IE5hTi4gQ29uZm9ybWluZyB1c2Vy
IGFnZW50cyBtdXN0IHN1cHBvcnQgYWxsIHZhbGlkIGtleXMgYXMga2V5cy4iPgorPGxpbmsgcmVs
PWF1dGhvciBocmVmPSJtYWlsdG86YmF0aWZvbkB5YWhvby5mciIgdGl0bGU9IkJhcHRpc3RlIEZv
bnRhaW5lIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8
c2NyaXB0PgorICAgIGZ1bmN0aW9uIHZhbGlkX2tleShkZXNjLCBrZXkpIHsKKyAgICAgICAgdmFy
IGRiOworICAgICAgICB2YXIgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gIiAr
IGRlc2MpOworICAgICAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworCisgICAgICAgIG9w
ZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgZGIgPSBl
LnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAgIHN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoInN0b3JlIik7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShzdG9yZS5hZGQoJ3ZhbHVlJywg
a2V5KSBpbnN0YW5jZW9mIElEQlJlcXVlc3QpOworCisgICAgICAgICAgICBzdG9yZTIgPSBkYi5j
cmVhdGVPYmplY3RTdG9yZSgic3RvcmUyIiwgeyBrZXlQYXRoOiBbIngiLCAia2V5cGF0aCJdIH0p
OworICAgICAgICAgICAgYXNzZXJ0X3RydWUoc3RvcmUyLmFkZCh7IHg6ICd2Jywga2V5cGF0aDog
a2V5IH0pIGluc3RhbmNlb2YgSURCUmVxdWVzdCk7CisgICAgICAgIH07CisgICAgICAgIG9wZW5f
cnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgdmFyIHJxID0gZGIudHJh
bnNhY3Rpb24oInN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJz
dG9yZSIpCisgICAgICAgICAgICAgICAgICAgICAgIC5nZXQoa2V5KQorICAgICAgICAgICAgcnEu
b25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCAndmFsdWUnKQorICAgICAgICAgICAgICAgIHZh
ciBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZTIiKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLm9iamVjdFN0b3JlKCJzdG9yZTIiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgLmdl
dChbJ3YnLCBrZXldKQorICAgICAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5j
KGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRhcmdl
dC5yZXN1bHQueCwgJ3YnKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X2tleV9lcXVhbHMo
ZS50YXJnZXQucmVzdWx0LmtleXBhdGgsIGtleSk7CisgICAgICAgICAgICAgICAgICAgIHQuZG9u
ZSgpCisgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIH0pCisgICAgICAgIH0KKyAgICB9
CisKKyAgICAvLyBEYXRlCisgICAgdmFsaWRfa2V5KCAnbmV3IERhdGUoKScgICAgLCBuZXcgRGF0
ZSgpICk7CisgICAgdmFsaWRfa2V5KCAnbmV3IERhdGUoMCknICAgLCBuZXcgRGF0ZSgwKSApOwor
CisgICAgLy8gQXJyYXkKKyAgICB2YWxpZF9rZXkoICdbXScgICAgICAgICAgICAsIFtdICk7Cisg
ICAgdmFsaWRfa2V5KCAnbmV3IEFycmF5KCknICAgLCBuZXcgQXJyYXkoKSApOworCisgICAgdmFs
aWRfa2V5KCAnWyJ1bmRlZmluZWQiXScgLCBbJ3VuZGVmaW5lZCddICk7CisKKyAgICAvLyBGbG9h
dAorICAgIHZhbGlkX2tleSggJ0luZmluaXR5JyAgICAgICwgSW5maW5pdHkgKTsKKyAgICB2YWxp
ZF9rZXkoICctSW5maW5pdHknICAgICAsIC1JbmZpbml0eSApOworICAgIHZhbGlkX2tleSggJzAn
ICAgICAgICAgICAgICwgMCApOworICAgIHZhbGlkX2tleSggJzEuNScgICAgICAgICAgICwgMS41
ICk7CisgICAgdmFsaWRfa2V5KCAnM2UzOCcgICAgICAgICAgLCAzZTM4ICk7CisgICAgdmFsaWRf
a2V5KCAnM2UtMzgnICAgICAgICAgLCAzZTM4ICk7CisKKyAgICAvLyBTdHJpbmcKKyAgICB2YWxp
ZF9rZXkoICciZm9vIicgICAgICAgICAsICJmb28iICk7CisgICAgdmFsaWRfa2V5KCAnIlxcbiIn
ICAgICAgICAgLCAiXG4iICk7CisgICAgdmFsaWRfa2V5KCAnIiInICAgICAgICAgICAgLCAiIiAp
OworICAgIHZhbGlkX2tleSggJyJcXCIiJyAgICAgICAgICwgIlwiIiApOworICAgIHZhbGlkX2tl
eSggJyJcXHUxMjM0IicgICAgICwgIlx1MTIzNCIgKTsKKyAgICB2YWxpZF9rZXkoICciXFx1MDAw
MCInICAgICAsICJcdTAwMDAiICk7CisgICAgdmFsaWRfa2V5KCAnIk5hTiInICAgICAgICAgLCAi
TmFOIiApOworCis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleWdlbmVyYXRvci1jb25zdHJhaW50
ZXJyb3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9r
ZXlnZW5lcmF0b3ItY29uc3RyYWludGVycm9yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5iZThiNTU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlnZW5lcmF0b3ItY29uc3RyYWludGVycm9yLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworRkFJTCBLZXlnZW5lcmF0b3IgQ29uc3RyYWlu
dEVycm9yIHdoZW4gdXNpbmcgc2FtZSBpZCBhcyBhbHJlYWR5IGdlbmVyYXRlZCBhc3NlcnRfdW5y
ZWFjaGVkOiB1bmV4cGVjdGVkIGRiLmVycm9yIChDb25zdHJhaW50RXJyb3IpIFJlYWNoZWQgdW5y
ZWFjaGFibGUgY29kZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL2tleWdlbmVyYXRvci1jb25zdHJhaW50ZXJyb3IuaHRtIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlnZW5lcmF0b3ItY29uc3RyYWludGVycm9yLmh0bQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lODIyMTE1Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlnZW5lcmF0b3ItY29uc3Ry
YWludGVycm9yLmh0bQpAQCAtMCwwICsxLDczIEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNo
YXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5LZXlnZW5lcmF0b3IgQ29uc3RyYWludEVycm9yIHdoZW4g
dXNpbmcgc2FtZSBpZCBhcyBhbHJlYWR5IGdlbmVyYXRlZDwvdGl0bGU+Cis8bGluayByZWw9ImF1
dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUg
T21kYWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKwor
PHNjcmlwdD4KKworICAgIHZhciBkYiwKKyAgICAgIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRp
dGxlLCB7dGltZW91dDogMTAwMDB9KSwKKyAgICAgIG9iamVjdHMgPSBbMSwgbnVsbCwge2lkOiAy
fSwgbnVsbCwgMi4wMDAwMSwgNSwgbnVsbCwge2lkOiA2fSBdLAorICAgICAgZXhwZWN0ZWQgPSBb
MSwgMiwgMi4wMDAwMSwgMywgNSwgNl0sCisgICAgICBlcnJvcnMgPSAwOworCisgICAgdmFyIG9w
ZW5fcnEgPSBjcmVhdGVkYih0KTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgIHZhciBvYmpT
dG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKCJzdG9yZSIsIHsga2V5UGF0aDogImlkIiwgYXV0
b0luY3JlbWVudDogdHJ1ZSB9KTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9iamVj
dHMubGVuZ3RoOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChvYmplY3RzW2ldID09
PSBudWxsKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIG9ialN0b3JlLmFkZCh7fSk7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmICh0eXBlb2Ygb2JqZWN0c1tpXSA9
PT0gIm9iamVjdCIpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdmFyIHJxID0gb2Jq
U3RvcmUuYWRkKG9iamVjdHNbaV0pCisgICAgICAgICAgICAgICAgcnEueWVoID0gb2JqZWN0c1tp
XTsKKyAgICAgICAgICAgICAgICBycS5vbmVycm9yID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkg
eworICAgICAgICAgICAgICAgICAgICBlcnJvcnMrKzsKKworICAgICAgICAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKGUudGFyZ2V0LmVycm9yLm5hbWUsICJDb25zdHJhaW50RXJyb3IiKTsKKyAg
ICAgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnR5cGUsICJlcnJvciIpOworCisgICAg
ICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7CisgICAgICAgICAgICAgICAgICAg
IGUucHJldmVudERlZmF1bHQoKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAg
ICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAg
ICAgICAgIGFzc2VydF91bnJlYWNoZWQoIkdvdCBycS5zdWNjZXNzIHdoZW4gYWRkaW5nIGR1cGxp
Y2F0ZSBpZCAiICsgb2JqZWN0c1tpXSk7CisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHsgaWQ6
IG9iamVjdHNbaV0gfSk7CisgICAgICAgIH0KKyAgICB9OworCisgICAgb3Blbl9ycS5vbnN1Y2Nl
c3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgIHZhciBhY3R1YWxfa2V5cyA9IFtdLAorICAgICAg
ICAgIHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKKyAgICAgICAgICAgICAgICAgLm9iamVj
dFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAg
ICAgcnEub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAg
dmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgaWYgKGN1cnNvcikg
eworICAgICAgICAgICAgICAgIGFjdHVhbF9rZXlzLnB1c2goY3Vyc29yLmtleS52YWx1ZU9mKCkp
OworICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlcnJvcnMsIDIs
ICJleHBlY3RlZCBDb25zdHJhaW50RXJyb3IncyIpOworICAgICAgICAgICAgICAgIGFzc2VydF9h
cnJheV9lcXVhbHMoYWN0dWFsX2tleXMsIGV4cGVjdGVkLCAia2V5Z2VuZXJhdG9yIGFycmF5Iik7
CisgICAgICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0pOwor
ICAgIH07CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlnZW5lcmF0b3ItZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlnZW5lcmF0b3ItZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk2NzgwODMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleWdl
bmVyYXRvci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisKK1BBU1MgS2V5Z2VuZXJhdG9y
IC0gc3RhcnRzIGF0IG9uZSwgYW5kIGluY3JlbWVudHMgYnkgb25lIAorRkFJTCBLZXlnZW5lcmF0
b3IgLSBpbmNyZW1lbnRzIGJ5IG9uZSBmcm9tIGxhc3Qgc2V0IGtleSBhc3NlcnRfdW5yZWFjaGVk
OiB1bmV4cGVjdGVkIGRiLmVycm9yIChDb25zdHJhaW50RXJyb3IpIFJlYWNoZWQgdW5yZWFjaGFi
bGUgY29kZQorRkFJTCBLZXlnZW5lcmF0b3IgLSBkb24ndCBpbmNyZW1lbnQgd2hlbiBuZXcga2V5
IGlzIG5vdCBiaWdnZXIgdGhhbiBjdXJyZW50IGFzc2VydF91bnJlYWNoZWQ6IHVuZXhwZWN0ZWQg
ZGIuZXJyb3IgKENvbnN0cmFpbnRFcnJvcikgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5Z2VuZXJhdG9y
LW92ZXJmbG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIva2V5Z2VuZXJhdG9yLW92ZXJmbG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5kNDBhMzU2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlnZW5lcmF0b3Itb3ZlcmZsb3ctZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMyBAQAorCitGQUlMIEtleWdlbmVyYXRvciBvdmVyZmxvdyBhc3NlcnRfdW5y
ZWFjaGVkOiBXaGVuICJjdXJyZW50IG51bWJlciIgb3ZlcmZsb3dzLCBlcnJvciBldmVudCBpcyBl
eHBlY3RlZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlnZW5lcmF0b3Itb3ZlcmZsb3cuaHRtIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlnZW5lcmF0b3Itb3ZlcmZsb3cuaHRt
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkZmQ1NzcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleWdlbmVyYXRvci1v
dmVyZmxvdy5odG0KQEAgLTAsMCArMSw3MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Cis8dGl0bGU+S2V5Z2VuZXJhdG9yIG92ZXJmbG93PC90aXRsZT4KKzxsaW5r
IHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4g
SMO4cnRoZSBPbWRhbCI+Cis8bGluayByZWw9aGVscCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcv
aGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9PdmVydmlldy5odG1sI2tleS1nZW5lcmF0b3ItY29u
Y2VwdCI+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxlPSJXaGVuIHRoZSBjdXJyZW50IG51bWJlciBv
ZiBhIGtleSBnZW5lcmF0b3IgcmVhY2hlcyBhYm92ZSB0aGUgdmFsdWUgMl41MyAoOTAwNzE5OTI1
NDc0MDk5MikgYW55IGF0dGVtcHRzIHRvIHVzZSB0aGUga2V5IGdlbmVyYXRvciB0byBnZW5lcmF0
ZSBhIG5ldyBrZXkgd2lsbCByZXN1bHQgaW4gYW4gZXJyb3IuIEl0J3Mgc3RpbGwgcG9zc2libGUg
dG8gaW5zZXJ0IHJlY29yZHMgaW50byB0aGUgb2JqZWN0IHN0b3JlIGJ5IHNwZWNpZnlpbmcgYW4g
ZXhwbGljaXQga2V5LCBob3dldmVyIHRoZSBvbmx5IHdheSB0byB1c2UgYSBrZXkgZ2VuZXJhdG9y
IGFnYWluIGZvciB0aGUgb2JqZWN0IHN0b3JlIGlzIHRvIGRlbGV0ZSB0aGUgb2JqZWN0IHN0b3Jl
IGFuZCBjcmVhdGUgYSBuZXcgb25lLiI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQu
anMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCisgICAgdmFyIGRiLAorICAgICAgdCA9IGFzeW5j
X3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pLAorICAgICAgb3ZlcmZsb3df
ZXJyb3JfZmlyZWQgPSBmYWxzZSwKKyAgICAgIG9iamVjdHMgPSAgWzkwMDcxOTkyNTQ3NDA5OTEs
IG51bGwsICJlcnJvciIsIDIsICJlcnJvciIgXSwKKyAgICAgIGV4cGVjdGVkX2tleXMgPSBbMiwg
OTAwNzE5OTI1NDc0MDk5MSwgOTAwNzE5OTI1NDc0MDk5Ml07CisKKyAgICB2YXIgb3Blbl9ycSA9
IGNyZWF0ZWRiKHQpOworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkg
eworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0g
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQYXRoOiAiaWQiLCBhdXRvSW5jcmVt
ZW50OiB0cnVlIH0pOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb2JqZWN0cy5sZW5n
dGg7IGkrKykKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKG9iamVjdHNbaV0gPT09IG51bGwp
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgb2JqU3RvcmUuYWRkKHt9KTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKG9iamVjdHNbaV0gPT09ICJlcnJvciIpCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdmFyIHJxID0gb2JqU3RvcmUuYWRkKHt9KTsK
KyAgICAgICAgICAgICAgICBycS5vbnN1Y2Nlc3MgPSBmYWlsKHQsICdXaGVuICJjdXJyZW50IG51
bWJlciIgb3ZlcmZsb3dzLCBlcnJvciBldmVudCBpcyBleHBlY3RlZCcpOworICAgICAgICAgICAg
ICAgIHJxLm9uZXJyb3IgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAg
ICAgICAgIG92ZXJmbG93X2Vycm9yX2ZpcmVkID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhlLnRhcmdldC5lcnJvci5uYW1lLCAiQ29uc3RyYWludEVycm9yIiwgImVy
cm9yIG5hbWUiKTsKKyAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworICAg
ICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpOworICAgICAgICAgICAgICAgIH0p
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG9ialN0
b3JlLmFkZCh7IGlkOiBvYmplY3RzW2ldIH0pOworICAgICAgICB9CisgICAgfTsKKworICAgIG9w
ZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICB2YXIgYWN0dWFsX2tleXMg
PSBbXSwKKyAgICAgICAgICBycSA9IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpCisgICAgICAgICAg
ICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAgICAgICAgICAub3BlbkN1cnNv
cigpOworCisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdldC5yZXN1bHQ7CisKKyAgICAgICAgICAg
IGlmIChjdXJzb3IpIHsKKyAgICAgICAgICAgICAgICBhY3R1YWxfa2V5cy5wdXNoKGN1cnNvci5r
ZXkudmFsdWVPZigpKTsKKyAgICAgICAgICAgICAgICBjdXJzb3IuY29udGludWUoKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgIGFzc2VydF90cnVl
KG92ZXJmbG93X2Vycm9yX2ZpcmVkLCAiZXJyb3IgZmlyZWQgb24gJ2N1cnJlbnQgbnVtYmVyJyBv
dmVyZmxvdyIpOworICAgICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoYWN0dWFsX2tl
eXMsIGV4cGVjdGVkX2tleXMsICJrZXlnZW5lcmF0b3IgYXJyYXkiKTsKKworICAgICAgICAgICAg
ICAgIHQuZG9uZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICB9OworCis8L3Nj
cmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIva2V5Z2VuZXJhdG9yLmh0bSBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIva2V5Z2VuZXJhdG9yLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi45NWE4NmJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlnZW5lcmF0b3IuaHRtCkBAIC0wLDAgKzEsNjUgQEAKKzwh
RE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPktleWdlbmVyYXRv
cjwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5j
b20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0
cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNr
ZXktZ2VuZXJhdG9yLWNvbmNlcHQiPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iVGhlIGN1cnJl
bnQgbnVtYmVyIG9mIGEga2V5IGdlbmVyYXRvciBpcyBhbHdheXMgc2V0IHRvIDEgd2hlbiB0aGUg
b2JqZWN0IHN0b3JlIGZvciB0aGF0IGtleSBnZW5lcmF0b3IgaXMgZmlyc3QgY3JlYXRlZC4iPgor
PGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iV2hlbiBhIGtleSBnZW5lcmF0b3IgaXMgdXNlZCB0byBn
ZW5lcmF0ZSBhIG5ldyBrZXkgZm9yIGEgb2JqZWN0IHN0b3JlLCB0aGUga2V5IGdlbmVyYXRvcidz
IGN1cnJlbnQgbnVtYmVyIGlzIHVzZWQgYXMgdGhlIG5ldyBrZXkgdmFsdWUgYW5kIHRoZW4gdGhl
IGtleSBnZW5lcmF0b3IncyBjdXJyZW50IG51bWJlciBpcyBpbmNyZWFzZWQgYnkgMS4iPgorPGxp
bmsgcmVsPWFzc2VydCB0aXRsZT0iV2hlbiBhIHJlY29yZCBpcyBzdG9yZWQgaW4gYSBvYmplY3Qg
c3RvcmUgd2hpY2ggdXNlcyBhIGtleSBnZW5lcmF0b3IsIGFuZCBhbiBleHBsaWNpdCBrZXkgaXMg
ZGVmaW5lZCwgaWYgdGhlIGtleSdzIHZhbHVlIGlzIGEgZmxvYXQgZ3JlYXRlciB0aGFuIG9yIGVx
dWFsIHRvIHRoZSBrZXkgZ2VuZXJhdG9yJ3MgY3VycmVudCBudW1iZXIsIHRoZW4gdGhlIGtleSBn
ZW5lcmF0b3IncyBjdXJyZW50IG51bWJlciBpcyBzZXQgdG8gdGhlIHNtYWxsZXN0IGludGVnZXIg
bnVtYmVyIGxhcmdlciB0aGFuIHRoZSBleHBsaWNpdCBrZXkuIE9ubHkgZXhwbGljaXQga2V5cyB3
aGljaCBhcmUgZmxvYXQgdmFsdWVzIGFmZmVjdCB0aGUgY3VycmVudCBudW1iZXIgb2YgdGhlIGtl
eSBnZW5lcmF0b3IuIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9ydC5qcyI+PC9zY3Jp
cHQ+CisKKzxzY3JpcHQ+CisgICAgZnVuY3Rpb24ga2V5Z2VuZXJhdG9yKG9iamVjdHMsIGV4cGVj
dGVkX2tleXMsIGRlc2MsIGZ1bmMpIHsKKyAgICAgICAgdmFyIGRiLAorICAgICAgICAgIHQgPSBh
c3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtICIgKyBkZXNjKTsKKworICAgICAgICB2YXIg
b3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgICAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9
IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAg
ICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoInN0b3JlIiwgeyBrZXlQ
YXRoOiAiaWQiLCBhdXRvSW5jcmVtZW50OiB0cnVlIH0pOworCisgICAgICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IG9iamVjdHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgaWYgKG9iamVjdHNbaV0gPT09IG51bGwpCisgICAgICAgICAgICAgICAgICAgIG9i
alN0b3JlLmFkZCh7fSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAg
ICBvYmpTdG9yZS5hZGQoeyBpZDogb2JqZWN0c1tpXSB9KTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfTsKKworICAgICAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgICAgIHZhciBhY3R1YWxfa2V5cyA9IFtdLAorICAgICAgICAgICAgICBycSA9IGRiLnRyYW5z
YWN0aW9uKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3Jl
IikKKyAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29yKCk7CisKKyAgICAgICAgICAgIHJx
Lm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICB2
YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICAgICAgaWYgKGN1cnNv
cikgeworICAgICAgICAgICAgICAgICAgICBhY3R1YWxfa2V5cy5wdXNoKGN1cnNvci5rZXkudmFs
dWVPZigpKTsKKyAgICAgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBh
c3NlcnRfa2V5X2VxdWFscyhhY3R1YWxfa2V5cywgZXhwZWN0ZWRfa2V5cywgImtleWdlbmVyYXRv
ciBhcnJheSIpOworICAgICAgICAgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfTsKKyAgICB9CisKKworICAgIGtleWdlbmVy
YXRvcihbbnVsbCwgbnVsbCwgbnVsbCwgbnVsbF0sICBbMSwgMiwgMywgNF0sCisgICAgICAgICJz
dGFydHMgYXQgb25lLCBhbmQgaW5jcmVtZW50cyBieSBvbmUiKTsKKworICAgIGtleWdlbmVyYXRv
cihbMiwgbnVsbCwgNSwgbnVsbCwgNi42NiwgN10sICBbMiwgMywgNSwgNiwgNi42NiwgN10sCisg
ICAgICAgICJpbmNyZW1lbnRzIGJ5IG9uZSBmcm9tIGxhc3Qgc2V0IGtleSIpOworCisgICAga2V5
Z2VuZXJhdG9yKFstMTAsIG51bGwsICI2IiwgNi4zLCBbMTBdLCAtMiwgNCwgbnVsbF0sICAgWy0x
MCwgLTIsIDEsIDQsIDYuMywgNywgIjYiLCBbMTBdXSwKKyAgICAgICAgImRvbid0IGluY3JlbWVu
dCB3aGVuIG5ldyBrZXkgaXMgbm90IGJpZ2dlciB0aGFuIGN1cnJlbnQiKTsKKworPC9zY3JpcHQ+
CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL2tleW9yZGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIva2V5b3JkZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjlhNmVhN2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleW9yZGVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDI2IEBACisKK1BBU1MgRGF0YWJhc2UgcmVhZGJhY2sgc29ydCAtIFN0cmluZyA8IEFycmF5IAor
UEFTUyBJREJLZXkuY21wIHNvcnRlZCAtIFN0cmluZyA8IEFycmF5IAorUEFTUyBEYXRhYmFzZSBy
ZWFkYmFjayBzb3J0IC0gZmxvYXQgPCBTdHJpbmcgCitQQVNTIElEQktleS5jbXAgc29ydGVkIC0g
ZmxvYXQgPCBTdHJpbmcgCitQQVNTIERhdGFiYXNlIHJlYWRiYWNrIHNvcnQgLSBmbG9hdCA8IERh
dGUgCitQQVNTIElEQktleS5jbXAgc29ydGVkIC0gZmxvYXQgPCBEYXRlIAorUEFTUyBEYXRhYmFz
ZSByZWFkYmFjayBzb3J0IC0gZmxvYXQgPCBEYXRlIDwgU3RyaW5nIDwgQXJyYXkgCitQQVNTIElE
QktleS5jbXAgc29ydGVkIC0gZmxvYXQgPCBEYXRlIDwgU3RyaW5nIDwgQXJyYXkgCitQQVNTIERh
dGFiYXNlIHJlYWRiYWNrIHNvcnQgLSBEYXRlKDEgc2VjIGFnbykgPCBEYXRlKG5vdykgPCBEYXRl
KDEgbWludXRlIGluIGZ1dHVyZSkgCitQQVNTIElEQktleS5jbXAgc29ydGVkIC0gRGF0ZSgxIHNl
YyBhZ28pIDwgRGF0ZShub3cpIDwgRGF0ZSgxIG1pbnV0ZSBpbiBmdXR1cmUpIAorUEFTUyBEYXRh
YmFzZSByZWFkYmFjayBzb3J0IC0gLTEuMSA8IDEgPCAxLjAxMzM3IDwgMS4wMTMzNzMgPCAyIAor
UEFTUyBJREJLZXkuY21wIHNvcnRlZCAtIC0xLjEgPCAxIDwgMS4wMTMzNyA8IDEuMDEzMzczIDwg
MiAKK1BBU1MgRGF0YWJhc2UgcmVhZGJhY2sgc29ydCAtIC1JbmZpbml0eSA8IC0wLjAxIDwgMCA8
IEluZmluaXR5IAorUEFTUyBJREJLZXkuY21wIHNvcnRlZCAtIC1JbmZpbml0eSA8IC0wLjAxIDwg
MCA8IEluZmluaXR5IAorUEFTUyBEYXRhYmFzZSByZWFkYmFjayBzb3J0IC0gIiIgPCAiYSIgPCAi
YWIiIDwgImIiIDwgImJhIiAKK1BBU1MgSURCS2V5LmNtcCBzb3J0ZWQgLSAiIiA8ICJhIiA8ICJh
YiIgPCAiYiIgPCAiYmEiIAorUEFTUyBEYXRhYmFzZSByZWFkYmFjayBzb3J0IC0gQXJyYXlzIAor
UEFTUyBJREJLZXkuY21wIHNvcnRlZCAtIEFycmF5cyAKK1BBU1MgRGF0YWJhc2UgcmVhZGJhY2sg
c29ydCAtIEFycmF5Lmxlbmd0aDogMTAsMDAwIDwgQXJyYXkubGVuZ3RoOiAxMCwwMDEgCitQQVNT
IElEQktleS5jbXAgc29ydGVkIC0gQXJyYXkubGVuZ3RoOiAxMCwwMDAgPCBBcnJheS5sZW5ndGg6
IDEwLDAwMSAKK1BBU1MgRGF0YWJhc2UgcmVhZGJhY2sgc29ydCAtIEluZmluaXR5IGluc2lkZSBh
cnJheXMgCitQQVNTIElEQktleS5jbXAgc29ydGVkIC0gSW5maW5pdHkgaW5zaWRlIGFycmF5cyAK
K1BBU1MgRGF0YWJhc2UgcmVhZGJhY2sgc29ydCAtIFRlc3QgZGlmZmVyZW50IHN0dWZmIGF0IG9u
Y2UgCitQQVNTIElEQktleS5jbXAgc29ydGVkIC0gVGVzdCBkaWZmZXJlbnQgc3R1ZmYgYXQgb25j
ZSAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlv
cmRlci5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleW9yZGVyLmh0
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jN2Y0ZjkwCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlvcmRlci5odG0K
QEAgLTAsMCArMSwxNzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLSBTdWJtaXR0ZWQgZnJvbSBU
ZXN0VFdGIFBhcmlzIC0tPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPktleSBzb3J0
IG9yZGVyPC90aXRsZT4KKzxsaW5rIHJlbD1oZWxwIGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9yZy9o
Zy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092ZXJ2aWV3Lmh0bWwja2V5LWNvbnN0cnVjdCI+Cis8
bGluayByZWw9YXNzZXJ0IHRpdGxlPSJGb3IgcHVycG9zZXMgb2YgY29tcGFyaXNvbiwgYWxsIEFy
cmF5cyBhcmUgZ3JlYXRlciB0aGFuIGFsbCBET01TdHJpbmcsIERhdGUgYW5kIGZsb2F0IHZhbHVl
czsgYWxsIERPTVN0cmluZyB2YWx1ZXMgYXJlIGdyZWF0ZXIgdGhhbiBhbGwgRGF0ZSBhbmQgZmxv
YXQgdmFsdWVzOyBhbmQgYWxsIERhdGUgdmFsdWVzIGFyZSBncmVhdGVyIHRoYW4gYWxsIGZsb2F0
IHZhbHVlcy4gVmFsdWVzIG9mIHR5cGUgZmxvYXQgYXJlIGNvbXBhcmVkIHRvIG90aGVyIGZsb2F0
IHZhbHVlcyBudW1lcmljYWxseS4gVmFsdWVzIG9mIHR5cGUgRGF0ZSBhcmUgY29tcGFyZWQgdG8g
b3RoZXIgRGF0ZSB2YWx1ZXMgY2hyb25vbG9naWNhbGx5LiBWYWx1ZXMgb2YgdHlwZSBET01TdHJp
bmcgYXJlIGNvbXBhcmVkIHRvIG90aGVyIHZhbHVlcyBvZiB0eXBlIERPTVN0cmluZyBieSB1c2lu
ZyB0aGUgYWxnb3JpdGhtIGRlZmluZWQgYnkgc3RlcCA0IG9mIHNlY3Rpb24gMTEuOC41LCBUaGUg
QWJzdHJhY3QgUmVsYXRpb25hbCBDb21wYXJpc29uIEFsZ29yaXRobSwgb2YgdGhlIEVDTUFTY3Jp
cHQgTGFuZ3VhZ2UgU3BlY2lmaWNhdGlvbiBbRUNNQS0yNjJdLiBWYWx1ZXMgb2YgdHlwZSBBcnJh
eSBhcmUgY29tcGFyZWQgdG8gb3RoZXIgdmFsdWVzIG9mIHR5cGUgQXJyYXkgYXMgZm9sbG93czoK
KworMS4gTGV0IEEgYmUgdGhlIGZpcnN0IEFycmF5IHZhbHVlIGFuZCBCIGJlIHRoZSBzZWNvbmQg
QXJyYXkgdmFsdWUuCisyLiBMZXQgbGVuZ3RoIGJlIHRoZSBsZXNzZXIgb2YgQSdzIGxlbmd0aCBh
bmQgQidzIGxlbmd0aC4KKzMuIExldCBpIGJlIDAuCis0LiBJZiB0aGUgaXRoIHZhbHVlIG9mIEEg
aXMgbGVzcyB0aGFuIHRoZSBpdGggdmFsdWUgb2YgQiwgdGhlbiBBIGlzIGxlc3MgdGhhbiBCLiBT
a2lwIHRoZSByZW1haW5pbmcgc3RlcHMuCis1LiBJZiB0aGUgaXRoIHZhbHVlIG9mIEEgaXMgZ3Jl
YXRlciB0aGFuIHRoZSBpdGggdmFsdWUgb2YgQiwgdGhlbiBBIGlzIGdyZWF0ZXIgdGhhbiBCLiBT
a2lwIHRoZSByZW1haW5pbmcgc3RlcHMuCis2LiBJbmNyZWFzZSBpIGJ5IDEuCis3LiBJZiBpIGlz
IG5vdCBlcXVhbCB0byBsZW5ndGgsIGdvIGJhY2sgdG8gc3RlcCA0LiBPdGhlcndpc2UgY29udGlu
dWUgdG8gbmV4dCBzdGVwLgorOC4gSWYgQSdzIGxlbmd0aCBpcyBsZXNzIHRoYW4gQidzIGxlbmd0
aCwgdGhlbiBBIGlzIGxlc3MgdGhhbiBCLiBJZiBBJ3MgbGVuZ3RoIGlzIGdyZWF0ZXIgdGhhbiBC
J3MgbGVuZ3RoLCB0aGVuIEEgaXMgZ3JlYXRlciB0aGFuIEIuIE90aGVyd2lzZSBBIGFuZCBCIGFy
ZSBlcXVhbC4iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4K
KworPHNjcmlwdD4KKyAgICB2YXIgZ2xvYmFsX2RiID0gY3JlYXRlZGJfZm9yX211bHRpcGxlX3Rl
c3RzKCk7CisKKyAgICBmdW5jdGlvbiBrZXlzb3J0KGRlc2MsIHVuc29ydGVkLCBleHBlY3RlZCkg
eworICAgICAgICB2YXIgZGIsCisgICAgICAgICAgICB0ID0gYXN5bmNfdGVzdCgiRGF0YWJhc2Ug
cmVhZGJhY2sgc29ydCAtICIgKyBkZXNjLCB7IHRpbWVvdXQ6IDEwMDAwIH0pLAorICAgICAgICAg
ICAgc3RvcmVfbmFtZSA9ICdzdG9yZS0nICsgRGF0ZS5ub3coKSArIE1hdGgucmFuZG9tKCk7CisK
KyAgICAgICAgLy8gVGhlIGRhdGFiYXNlIHRlc3QKKyAgICAgICAgdmFyIG9wZW5fcnEgPSBnbG9i
YWxfZGIuc2V0VGVzdCh0KTsKKyAgICAgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbihlKSB7CisgICAgICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgICAg
IHZhciBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKHN0b3JlX25hbWUpOworCisgICAg
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHVuc29ydGVkLmxlbmd0aDsgaSsrKQorICAgICAg
ICAgICAgICAgIG9ialN0b3JlLmFkZCgidmFsdWUiLCB1bnNvcnRlZFtpXSk7CisgICAgICAgIH07
CisKKyAgICAgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAg
ICB2YXIgYWN0dWFsX2tleXMgPSBbXSwKKyAgICAgICAgICAgICAgcnEgPSBkYi50cmFuc2FjdGlv
bihzdG9yZV9uYW1lKQorICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKHN0b3JlX25h
bWUpCisgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAgICAgICBy
cS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICAgICAg
dmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgICAgIGlmIChjdXJz
b3IpIHsKKyAgICAgICAgICAgICAgICAgICAgYWN0dWFsX2tleXMucHVzaChjdXJzb3Iua2V5KTsK
KyAgICAgICAgICAgICAgICAgICAgY3Vyc29yLmNvbnRpbnVlKCk7CisgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfa2V5
X2VxdWFscyhhY3R1YWxfa2V5cywgZXhwZWN0ZWQsICJrZXlvcmRlciBhcnJheSIpOworICAgICAg
ICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGFjdHVhbF9rZXlzLmxlbmd0aCwgZXhwZWN0ZWQu
bGVuZ3RoLCAiYXJyYXkgbGVuZ3RoIik7CisKKyAgICAgICAgICAgICAgICAgICAgdC5kb25lKCk7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisgICAgICAgIH07CisKKyAgICAg
ICAgLy8gVGhlIElEQktleS5jbXAgdGVzdAorICAgICAgICB0ZXN0KGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgICAgIHZhciBzb3J0ZWQgPSB1bnNvcnRlZC5zbGljZSgwKS5zb3J0KGZ1bmN0aW9uKGEs
IGIpIHsgcmV0dXJuIGluZGV4ZWREQi5jbXAoYSwgYil9KTsKKyAgICAgICAgICAgIGFzc2VydF9r
ZXlfZXF1YWxzKHNvcnRlZCwgZXhwZWN0ZWQsICJzb3J0ZWQgYXJyYXkiKTsKKworICAgICAgICB9
LCAiSURCS2V5LmNtcCBzb3J0ZWQgLSAiICsgZGVzYyk7CisgICAgfQorCisgICAgdmFyIG5vdyA9
IG5ldyBEYXRlKCksCisgICAgICAgIG9uZV9zZWNfYWdvID0gbmV3IERhdGUobm93IC0gMTAwMCks
CisgICAgICAgIG9uZV9taW5fZnV0dXJlID0gbmV3IERhdGUobm93LmdldFRpbWUoKSArICgxMDAw
KjYwKSk7CisKKyAgICBrZXlzb3J0KCdTdHJpbmcgPCBBcnJheScsCisgICAgICAgIFsgWzBdLCAi
eW8iLCAiIiwgW10gXSwKKyAgICAgICAgWyAiIiwgInlvIiwgW10sIFswXSBdKTsKKworICAgIGtl
eXNvcnQoJ2Zsb2F0IDwgU3RyaW5nJywKKyAgICAgICAgWyBJbmZpbml0eSwgInlvIiwgMCwgIiIs
IDEwMCBdLAorICAgICAgICBbIDAsIDEwMCwgSW5maW5pdHksICIiLCAieW8iIF0pOworCisgICAg
a2V5c29ydCgnZmxvYXQgPCBEYXRlJywKKyAgICAgICAgWyBub3csIDAsIDk5OTk5OTk5OTk5OTks
IC0wLjIyIF0sCisgICAgICAgIFsgLTAuMjIsIDAsIDk5OTk5OTk5OTk5OTksIG5vdyBdKTsKKwor
ICAgIGtleXNvcnQoJ2Zsb2F0IDwgRGF0ZSA8IFN0cmluZyA8IEFycmF5JywKKyAgICAgICAgWyBb
XSwgIiIsIG5vdywgWzBdLCAiLTEiLCAwLCA5OTk5OTk5OTk5OTk5LCBdLAorICAgICAgICBbIDAs
IDk5OTk5OTk5OTk5OTksIG5vdywgIiIsICItMSIsIFtdLCBbMF0gXSk7CisKKworICAgIGtleXNv
cnQoJ0RhdGUoMSBzZWMgYWdvKSA8IERhdGUobm93KSA8IERhdGUoMSBtaW51dGUgaW4gZnV0dXJl
KScsCisgICAgICAgIFsgbm93LCBvbmVfc2VjX2Fnbywgb25lX21pbl9mdXR1cmUgXSwKKyAgICAg
ICAgWyBvbmVfc2VjX2Fnbywgbm93LCBvbmVfbWluX2Z1dHVyZSBdKTsKKworICAgIGtleXNvcnQo
Jy0xLjEgPCAxIDwgMS4wMTMzNyA8IDEuMDEzMzczIDwgMicsCisgICAgICAgIFsgMS4wMTMzNzMs
IDIsIDEuMDEzMzcsIC0xLjEsIDEgXSwKKyAgICAgICAgWyAtMS4xLCAxLCAxLjAxMzM3LCAxLjAx
MzM3MywgMiBdKTsKKworICAgIGtleXNvcnQoJy1JbmZpbml0eSA8IC0wLjAxIDwgMCA8IEluZmlu
aXR5JywKKyAgICAgICAgWyAwLCAtMC4wMSwgLUluZmluaXR5LCBJbmZpbml0eSBdLAorICAgICAg
ICBbIC1JbmZpbml0eSwgLTAuMDEsIDAsIEluZmluaXR5IF0pOworCisgICAga2V5c29ydCgnIiIg
PCAiYSIgPCAiYWIiIDwgImIiIDwgImJhIicsCisgICAgICAgIFsgImEiLCAiYmEiLCAiIiwgImIi
LCAiYWIiIF0sCisgICAgICAgIFsgIiIsICJhIiwgImFiIiwgImIiLCAiYmEiIF0pOworCisgICAg
a2V5c29ydCgnQXJyYXlzJywKKyAgICAgICAgWyBbWzBdXSwgWzBdLCBbXSwgWzAsIDBdLCBbMCwg
WzBdXSBdLAorICAgICAgICBbIFtdLCBbMF0sIFswLCAwXSwgWzAsIFswXV0sIFtbMF1dIF0pOwor
CisgICAgdmFyIGJpZ19hcnJheSA9IFtdLCBiaWdnZXJfYXJyYXkgPSBbXTsKKyAgICBmb3IgKHZh
ciBpPTA7IGkgPCAxMDAwMDsgaSsrKSB7CisgICAgICAgIGJpZ19hcnJheS5wdXNoKGkpOworICAg
ICAgICBiaWdnZXJfYXJyYXkucHVzaChpKTsKKyAgICB9CisgICAgYmlnZ2VyX2FycmF5LnB1c2go
MCk7CisKKyAgICBrZXlzb3J0KCdBcnJheS5sZW5ndGg6IDEwLDAwMCA8IEFycmF5Lmxlbmd0aDog
MTAsMDAxJywKKyAgICAgICAgWyBiaWdnZXJfYXJyYXksIFswLCAyLCAzXSwgWzBdLCBbOV0sIGJp
Z19hcnJheSBdLAorICAgICAgICBbIFswXSwgYmlnX2FycmF5LCBiaWdnZXJfYXJyYXksIFswLCAy
LCAzXSwgWzldIF0pOworCisgICAga2V5c29ydCgnSW5maW5pdHkgaW5zaWRlIGFycmF5cycsCisg
ICAgICAgIFsgW0luZmluaXR5LCAxXSwgW0luZmluaXR5LCBJbmZpbml0eV0sIFsxLCAxXSwKKyAg
ICAgICAgICAgIFsxLCBJbmZpbml0eV0sIFsxLCAtSW5maW5pdHldLCBbLUluZmluaXR5LCBJbmZp
bml0eV0gXSwKKyAgICAgICAgWyBbLUluZmluaXR5LCBJbmZpbml0eV0sIFsxLCAtSW5maW5pdHld
LCBbMSwgMV0sCisgICAgICAgICAgICBbMSwgSW5maW5pdHldLCBbSW5maW5pdHksIDFdLCBbSW5m
aW5pdHksIEluZmluaXR5XSBdKTsKKworCisgICAga2V5c29ydCgnVGVzdCBkaWZmZXJlbnQgc3R1
ZmYgYXQgb25jZScsCisgICAgICAgIFsKKyAgICAgICAgICBub3csCisgICAgICAgICAgWzAsIFtd
XSwKKyAgICAgICAgICAidGVzdCIsCisgICAgICAgICAgMSwKKyAgICAgICAgICBbImEiLCBbMSwg
Wy0xXV1dLAorICAgICAgICAgIFsiYiIsICJhIl0sCisgICAgICAgICAgWyAwLCAyLCAiYyJdLAor
ICAgICAgICAgIFsiYSIsIFsxLCAyXV0sCisgICAgICAgICAgW10sCisgICAgICAgICAgWzAsIFtd
LCAzXSwKKyAgICAgICAgICBbImEiLCAiYiJdLAorICAgICAgICAgIFsgMSwgMiBdLAorICAgICAg
ICAgIFsiYSIsICJiIiwgImMiXSwKKyAgICAgICAgICBvbmVfc2VjX2FnbywKKyAgICAgICAgICBb
IDAsICJiIiwgImMiXSwKKyAgICAgICAgICBJbmZpbml0eSwKKyAgICAgICAgICAtSW5maW5pdHks
CisgICAgICAgICAgMi41NSwKKyAgICAgICAgICBbIDAsIG5vdyBdLAorICAgICAgICAgIFsxXQor
ICAgICAgICBdLAorICAgICAgICBbCisgICAgICAgICAgLUluZmluaXR5LAorICAgICAgICAgIDEs
CisgICAgICAgICAgMi41NSwKKyAgICAgICAgICBJbmZpbml0eSwKKyAgICAgICAgICBvbmVfc2Vj
X2FnbywKKyAgICAgICAgICBub3csCisgICAgICAgICAgInRlc3QiLAorICAgICAgICAgIFtdLAor
ICAgICAgICAgIFswICwyLCAiYyJdLAorICAgICAgICAgIFswLCBub3ddLAorICAgICAgICAgIFsw
LCAiYiIsICJjIl0sCisgICAgICAgICAgWzAsIFtdXSwKKyAgICAgICAgICBbMCwgW10sIDNdLAor
ICAgICAgICAgIFsxXSwKKyAgICAgICAgICBbMSwgMl0sCisgICAgICAgICAgWyJhIiwgImIiXSwK
KyAgICAgICAgICBbImEiLCAiYiIsICJjIl0sCisgICAgICAgICAgWyJhIiwgWzEsIDJdXSwKKyAg
ICAgICAgICBbImEiLCBbMSwgWy0xXV1dLAorICAgICAgICAgIFsiYiIsICJhIl0KKyAgICAgICAg
XSk7CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlwYXRoLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5cGF0aC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNWZhMjMwMgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5cGF0aC1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwyMSBAQAorCitQQVNTIEtleXBhdGggLSBteS5rZXkgCitGQUlMIEtleXBh
dGggLSBteS5rw7hpIERhdGFFcnJvcjogRE9NIElEQkRhdGFiYXNlIEV4Y2VwdGlvbiAwCitQQVNT
IEtleXBhdGggLSBteS5rZXlfeWEgCitQQVNTIEtleXBhdGggLSBwdWJsaWMua2V5JHlhIAorUEFT
UyBLZXlwYXRoIC0gdHJ1ZS4kIAorUEFTUyBLZXlwYXRoIC0gbXkuXyAKK1BBU1MgS2V5cGF0aCAt
IGRlbGV0ZS5hNyAKK1BBU1MgS2V5cGF0aCAtIHAucC5wLnAucC5wLnAucC5wLnAucC5wLnAucCAK
K1BBU1MgS2V5cGF0aCAtIHN0ci5sZW5ndGggCitQQVNTIEtleXBhdGggLSBhcnIubGVuZ3RoIAor
UEFTUyBLZXlwYXRoIC0gbGVuZ3RoIAorUEFTUyBLZXlwYXRoIC0gJycgdXNlcyB2YWx1ZSBhcyBr
ZXkgCitQQVNTIEtleXBhdGggLSBbJyddIHVzZXMgdmFsdWUgYXMgW2tleV0gCitQQVNTIEtleXBh
dGggLSBbJ3gnLCAneSddIAorUEFTUyBLZXlwYXRoIC0gW1sneCddLCAneSddIChzdHJpbmdpZmll
cykgCitQQVNTIEtleXBhdGggLSBbJ3gnLCB7dG9TdHJpbmctPid5J31dIChzdHJpbmdpZmllcykg
CitQQVNTIEtleXBhdGggLSBuYW1lLHR5cGUgCitQQVNTIEtleXBhdGggLSBuYW1lLHR5cGUubmFt
ZSAKK1BBU1MgS2V5cGF0aCAtIGFycmF5IGxvb3AgLT4gc3RyaW5naWZ5IGJlY29tZXMgWycnXSAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlwYXRo
Lmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5cGF0aC5odG0KbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGE5MGJmMQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5cGF0aC5odG0KQEAgLTAs
MCArMSwxNDYgQEAKKzwhRE9DVFlQRSBodG1sPgorPCEtLSBTdWJtaXR0ZWQgZnJvbSBUZXN0VFdG
IFBhcmlzIC0tPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHRpdGxlPktleXBhdGg8L3RpdGxl
PgorPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9y
YXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCNrZXktcGF0aC1jb25zdHJ1Y3QiPgorPGxpbmsgcmVs
PWFzc2VydCB0aXRsZT0iQSBrZXkgcGF0aCBpcyBhIERPTVN0cmluZyB0aGF0IGRlZmluZXMgaG93
IHRvIGV4dHJhY3QgYSBrZXkgZnJvbSBhIHZhbHVlLiBBIHZhbGlkIGtleSBwYXRoIGlzIGVpdGhl
ciB0aGUgZW1wdHkgc3RyaW5nLCBhIEphdmFTY3JpcHQgaWRlbnRpZmllciwgb3IgbXVsdGlwbGUg
SmF2YXNjcmlwdCBpZGVudGlmaWVycyBzZXBhcmF0ZWQgYnkgcGVyaW9kcyAoQVNDSUkgY2hhcmFj
dGVyIGNvZGUgNDYpIFtFQ01BLTI2Ml0uIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ic3VwcG9y
dC5qcyI+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisKKyAgICB2YXIgZ2xvYmFsX2RiID0gY3JlYXRl
ZGJfZm9yX211bHRpcGxlX3Rlc3RzKCk7CisKKyAgICBmdW5jdGlvbiBrZXlwYXRoKGtleXBhdGgs
IG9iamVjdHMsIGV4cGVjdGVkX2tleXMsIGRlc2MpIHsKKyAgICAgICAgdmFyIGRiLAorICAgICAg
ICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUgKyAiIC0gIiArIChkZXNjID8gZGVz
YyA6IGtleXBhdGgpKSwKKworICAgICAgICAgICAgc3RvcmVfbmFtZSA9ICJzdG9yZS0iKyhEYXRl
Lm5vdygpKStNYXRoLnJhbmRvbSgpOworCisgICAgICAgIHZhciBvcGVuX3JxID0gZ2xvYmFsX2Ri
LnNldFRlc3QodCk7CisgICAgICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24o
ZSkgeworICAgICAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICB2YXIg
b2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZShzdG9yZV9uYW1lLCB7IGtleVBhdGg6IGtl
eXBhdGggfSk7CisKKyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb2JqZWN0cy5sZW5n
dGg7IGkrKykKKyAgICAgICAgICAgICAgICBvYmpTdG9yZS5hZGQob2JqZWN0c1tpXSk7CisgICAg
ICAgIH07CisKKyAgICAgICAgb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAg
ICAgICAgICB2YXIgYWN0dWFsX2tleXMgPSBbXSwKKyAgICAgICAgICAgICAgcnEgPSBkYi50cmFu
c2FjdGlvbihzdG9yZV9uYW1lKQorICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKHN0
b3JlX25hbWUpCisgICAgICAgICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAg
ICAgICBycS5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAg
ICAgICAgdmFyIGN1cnNvciA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgICAgICAgICAgICAgIGlm
IChjdXJzb3IpIHsKKyAgICAgICAgICAgICAgICAgICAgYWN0dWFsX2tleXMucHVzaChjdXJzb3Iu
a2V5LnZhbHVlT2YoKSk7CisgICAgICAgICAgICAgICAgICAgIGN1cnNvci5jb250aW51ZSgpOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0X2tleV9lcXVhbHMoYWN0dWFsX2tleXMsIGV4cGVjdGVkX2tleXMsICJrZXlv
cmRlciBhcnJheSIpOworICAgICAgICAgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfTsKKyAgICB9CisKKyAgICBrZXlwYXRo
KCdteS5rZXknLAorICAgICAgICBbIHsgbXk6IHsga2V5OiAxMCB9IH0gXSwKKyAgICAgICAgWyAx
MCBdKTsKKworICAgIGtleXBhdGgoJ215LmvDuGknLAorICAgICAgICBbIHsgbXk6IHsga8O4aTog
NSB9IH0gXSwKKyAgICAgICAgWyA1IF0pOworCisgICAga2V5cGF0aCgnbXkua2V5X3lhJywKKyAg
ICAgICAgWyB7IG15OiB7IGtleV95YTogMTAgfSB9IF0sCisgICAgICAgIFsgMTAgXSk7CisKKyAg
ICBrZXlwYXRoKCdwdWJsaWMua2V5JHlhJywKKyAgICAgICAgWyB7IHB1YmxpYzogeyBrZXkkeWE6
IDEwIH0gfSBdLAorICAgICAgICBbIDEwIF0pOworCisgICAga2V5cGF0aCgndHJ1ZS4kJywKKyAg
ICAgICAgWyB7IHRydWU6IHsgJDogMTAgfSB9IF0sCisgICAgICAgIFsgMTAgXSk7CisKKyAgICBr
ZXlwYXRoKCdteS5fJywKKyAgICAgICAgWyB7IG15OiB7IF86IDEwIH0gfSBdLAorICAgICAgICBb
IDEwIF0pOworCisgICAga2V5cGF0aCgnZGVsZXRlLmE3JywKKyAgICAgICAgWyB7IGRlbGV0ZTog
eyBhNzogMTAgfSB9IF0sCisgICAgICAgIFsgMTAgXSk7CisKKyAgICBrZXlwYXRoKCdwLnAucC5w
LnAucC5wLnAucC5wLnAucC5wLnAnLAorICAgICAgICBbIHtwOntwOntwOntwOntwOntwOntwOntw
OntwOntwOntwOntwOntwOntwOjEwfX19fX19fX19fX19fX0gXSwKKyAgICAgICAgWyAxMCBdKTsK
KworICAgIGtleXBhdGgoJ3N0ci5sZW5ndGgnLAorICAgICAgICBbIHsgc3RyOiAicG9ueSIgfSwg
eyBzdHI6ICJteSIgfSwgeyBzdHI6ICJsaXR0bGUiIH0sIHsgc3RyOiAiIiB9IF0sCisgICAgICAg
IFsgMCwgMiwgNCwgNiBdKTsKKworICAgIGtleXBhdGgoJ2Fyci5sZW5ndGgnLAorICAgICAgICBb
IHthcnI6IFswLCAwLCAwLCAwXX0sIHthcnI6IFt7fSwgMCwgImhlaSIsICJsZW5ndGgiLCBJbmZp
bml0eSwgW11dfSwge2FycjogWzEwLCAxMF19LCB7IGFycjogW119IF0sCisgICAgICAgIFsgMCwg
MiwgNCwgNiBdKTsKKworICAgIGtleXBhdGgoJ2xlbmd0aCcsCisgICAgICAgIFsgWzEwLCAxMF0s
ICIxMjMiLCB7IGxlbmd0aDogMjAgfSBdLAorICAgICAgICBbIDIsIDMsIDIwIF0pOworCisgICAg
a2V5cGF0aCgnJywKKyAgICAgICAgWyBbImJhZ3MiXSwgImJlYW4iLCAxMCBdLAorICAgICAgICBb
IDEwLCAiYmVhbiIsIFsiYmFncyJdIF0sCisgICAgICAgICInJyB1c2VzIHZhbHVlIGFzIGtleSIp
OworCisgICAga2V5cGF0aChbJyddLAorICAgICAgICBbIFsiYmFncyJdLCAiYmVhbiIsIDEwIF0s
CisgICAgICAgIFsgWzEwXSwgWyJiZWFuIl0gLCBbWyJiYWdzIl1dIF0sCisgICAgICAgICJbJydd
IHVzZXMgdmFsdWUgYXMgW2tleV0iKTsKKworICAgIGtleXBhdGgoWyd4JywgJ3knXSwKKyAgICAg
ICAgWyB7eDoxMCwgeToyMH0sIHt5OjEuMzM3LCB4OjEwMH0gXSwKKyAgICAgICAgWyBbMTAsIDIw
XSwgWzEwMCwgMS4zMzddIF0sCisgICAgICAgICJbJ3gnLCAneSddIik7CisKKyAgICBrZXlwYXRo
KFtbJ3gnXSwgWyd5J11dLAorICAgICAgICBbIHt4OjEwLCB5OjIwfSwge3k6MS4zMzcsIHg6MTAw
fSBdLAorICAgICAgICBbIFsxMCwgMjBdLCBbMTAwLCAxLjMzN10gXSwKKyAgICAgICAgIltbJ3gn
XSwgJ3knXSAoc3RyaW5naWZpZXMpIik7CisKKyAgICBrZXlwYXRoKFsneCcsIHt0b1N0cmluZzpm
dW5jdGlvbigpe3JldHVybiAneSd9fV0sCisgICAgICAgIFsge3g6MTAsIHk6MjB9LCB7eToxLjMz
NywgeDoxMDB9IF0sCisgICAgICAgIFsgWzEwLCAyMF0sIFsxMDAsIDEuMzM3XSBdLAorICAgICAg
ICAiWyd4Jywge3RvU3RyaW5nLT4neSd9XSAoc3RyaW5naWZpZXMpIik7CisKKyAgICBpZiAoZmFs
c2UpIHsKKyAgICAgICAgdmFyIG15YmxvYiA9IEJsb2IoWyJZb2RhIl0sIHt0eXBlOidzdXByYXdz
dW0nfSk7CisgICAgICAgIGtleXBhdGgoWydsZW5ndGgnLCAndHlwZSddLAorICAgICAgICAgICAg
WyBteWJsb2IgXSwKKyAgICAgICAgICAgIFsgNCwgJ3N1cHJhd3N1bScgXSwKKyAgICAgICAgICAg
ICJbQmxvYi5sZW5ndGgsIEJsb2IudHlwZV0iKTsKKyAgICB9CisKKyAgICAvLyBGaWxlLm5hbWUg
YW5kIEZpbGUubGFzdE1vZGlmaWVkRGF0ZSBpcyBub3QgdGVzdGFibGUgYXV0b21hdGljYWxseQor
CisgICAga2V5cGF0aChbJ25hbWUnLCAndHlwZSddLAorICAgICAgICBbIHsgbmFtZTogIm9yYW5n
ZSIsIHR5cGU6ICJmcnVpdCIgfSwgeyBuYW1lOiAib3JhbmdlIiwgdHlwZTogWyJ0ZWxlY29tIiwg
ImZyZW5jaCJdIH0gXSwKKyAgICAgICAgWyBbIm9yYW5nZSIsICJmcnVpdCJdLCBbIm9yYW5nZSIs
IFsidGVsZWNvbSIsICJmcmVuY2giXV0gXSk7CisKKyAgICBrZXlwYXRoKFsnbmFtZScsICd0eXBl
Lm5hbWUnXSwKKyAgICAgICAgWyB7IG5hbWU6ICJvcmFuZ2UiLCB0eXBlOiB7IG5hbWU6ICJmcnVp
dCIgfX0sIHsgbmFtZTogIm9yYW5nZSIsIHR5cGU6IHsgbmFtZTogInRlbGVjb20iIH19IF0sCisg
ICAgICAgIFsgWyJvcmFuZ2UiLCAiZnJ1aXQiXSwgWyJvcmFuZ2UiLCAidGVsZWNvbSIgXSBdKTsK
KworICAgIGxvb3BfYXJyYXkgPSBbXTsKKyAgICBsb29wX2FycmF5LnB1c2gobG9vcF9hcnJheSk7
CisgICAga2V5cGF0aChsb29wX2FycmF5LAorICAgICAgICBbICJhIiwgMSwgWyJrIl0gXSwKKyAg
ICAgICAgWyBbMV0sIFsiYSJdLCBbWyJrIl1dIF0sCisgICAgICAgICJhcnJheSBsb29wIC0+IHN0
cmluZ2lmeSBiZWNvbWVzIFsnJ10iKTsKKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5cGF0aF9p
bnZhbGlkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
a2V5cGF0aF9pbnZhbGlkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi42MDk4MjQyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9rZXlwYXRoX2ludmFsaWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjYg
QEAKKworUEFTUyBJbnZhbGlkIGtleVBhdGggLSAiaiBhIiAKK1BBU1MgSW52YWxpZCBrZXlQYXRo
IC0gIi55byIgCitQQVNTIEludmFsaWQga2V5UGF0aCAtICJ5byxsbyIgCitQQVNTIEludmFsaWQg
a2V5UGF0aCAtIFtdIAorUEFTUyBJbnZhbGlkIGtleVBhdGggLSBbImFycmF5IHdpdGggc3BhY2Ui
XSAKK1BBU1MgSW52YWxpZCBrZXlQYXRoIC0gbXVsdGlkaW1lbnNpb25hbCBhcnJheSAoaW52YWxp
ZCB0b1N0cmluZykgCitQQVNTIEludmFsaWQga2V5UGF0aCAtICIzbSIgCitQQVNTIEludmFsaWQg
a2V5UGF0aCAtIHt0b1N0cmluZy0+M219IAorUEFTUyBJbnZhbGlkIGtleVBhdGggLSAibXkuMTMz
NyIgCitQQVNTIEludmFsaWQga2V5UGF0aCAtICIuLnlvIiAKK1BBU1MgSW52YWxpZCBrZXlQYXRo
IC0gInkuLm8iIAorUEFTUyBJbnZhbGlkIGtleVBhdGggLSAieS5vLiIgCitQQVNTIEludmFsaWQg
a2V5UGF0aCAtICJ5Lm8uLiIgCitQQVNTIEludmFsaWQga2V5UGF0aCAtICJtLioiIAorUEFTUyBJ
bnZhbGlkIGtleVBhdGggLSAiXCJtXCIiIAorUEFTUyBJbnZhbGlkIGtleVBhdGggLSAibSUiIAor
UEFTUyBJbnZhbGlkIGtleVBhdGggLSAibS8iIAorUEFTUyBJbnZhbGlkIGtleVBhdGggLSAibS9h
IiAKK1BBU1MgSW52YWxpZCBrZXlQYXRoIC0gIm0mIiAKK1BBU1MgSW52YWxpZCBrZXlQYXRoIC0g
Im0hIiAKK1BBU1MgSW52YWxpZCBrZXlQYXRoIC0gIioiIAorUEFTUyBJbnZhbGlkIGtleVBhdGgg
LSAiKi4qIiAKK1BBU1MgSW52YWxpZCBrZXlQYXRoIC0gIl5tIiAKK1BBU1MgSW52YWxpZCBrZXlQ
YXRoIC0gIi9tLyIgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIva2V5cGF0aF9pbnZhbGlkLmh0bSBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIva2V5cGF0aF9pbnZhbGlkLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5jYzFkNDQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L2luZGV4ZWRkYi9rZXlwYXRoX2ludmFsaWQuaHRtCkBAIC0wLDAgKzEsNjUgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPCEtLSBTdWJtaXR0ZWQgZnJvbSBUZXN0VFdGIFBhcmlzIC0tPgorPG1ldGEgY2hh
cnNldD0idXRmLTgiPgorPHRpdGxlPkludmFsaWQga2V5cGF0aDwvdGl0bGU+Cis8bGluayByZWw9
aGVscCBocmVmPSJodHRwOi8vZHZjcy53My5vcmcvaGcvSW5kZXhlZERCL3Jhdy1maWxlL3RpcC9P
dmVydmlldy5odG1sI2tleS1wYXRoLWNvbnN0cnVjdCI+Cis8bGluayByZWw9YXNzZXJ0IHRpdGxl
PSJBIGtleSBwYXRoIGlzIGEgRE9NU3RyaW5nIHRoYXQgZGVmaW5lcyBob3cgdG8gZXh0cmFjdCBh
IGtleSBmcm9tIGEgdmFsdWUuIEEgdmFsaWQga2V5IHBhdGggaXMgZWl0aGVyIHRoZSBlbXB0eSBz
dHJpbmcsIGEgSmF2YVNjcmlwdCBpZGVudGlmaWVyLCBvciBtdWx0aXBsZSBKYXZhc2NyaXB0IGlk
ZW50aWZpZXJzIHNlcGFyYXRlZCBieSBwZXJpb2RzIChBU0NJSSBjaGFyYWN0ZXIgY29kZSA0Nikg
W0VDTUEtMjYyXS4iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVz
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3Njcmlw
dD4KKworPHNjcmlwdD4KKworICAgIHZhciBnbG9iYWxfZGIgPSBjcmVhdGVkYl9mb3JfbXVsdGlw
bGVfdGVzdHMoKTsKKworICAgIGZ1bmN0aW9uIGludmFsaWRfa2V5cGF0aChrZXlwYXRoLCBkZXNj
KSB7CisgICAgICAgIHZhciB0ID0gYXN5bmNfdGVzdCgiSW52YWxpZCBrZXlQYXRoIC0gIiArIChk
ZXNjID8gZGVzYyA6IGZvcm1hdF92YWx1ZShrZXlwYXRoKSksIHVuZGVmaW5lZCwgMik7CisKKyAg
ICAgICAgdmFyIG9wZW5ycSA9IGdsb2JhbF9kYi5zZXRUZXN0KHQpLAorICAgICAgICAgICAgc3Rv
cmVfbmFtZSAgPSAic3RvcmUtIiArIERhdGUubm93KCkgKyBNYXRoLnJhbmRvbSgpOworCisgICAg
ICAgIG9wZW5ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICB2
YXIgZGIgPSBlLnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBhc3NlcnRfdGhyb3dzKCdTeW50
YXhFcnJvcicsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICBkYi5jcmVhdGVPYmpl
Y3RTdG9yZShzdG9yZV9uYW1lLCB7IGtleVBhdGg6IGtleXBhdGggfSkKKyAgICAgICAgICAgICAg
ICB9LCAiY3JlYXRlT2JqZWN0U3RvcmUgd2l0aCBrZXlQYXRoIik7CisKKyAgICAgICAgICAgIHN0
b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoc3RvcmVfbmFtZSk7CisgICAgICAgICAgICBhc3Nl
cnRfdGhyb3dzKCdTeW50YXhFcnJvcicsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAg
ICBzdG9yZS5jcmVhdGVJbmRleCgnaW5kZXgnLCBrZXlwYXRoKTsKKyAgICAgICAgICAgICAgICB9
LCAiY3JlYXRlSW5kZXggd2l0aCBrZXlQYXRoIik7CisKKyAgICAgICAgICAgIGRiLmNsb3NlKCk7
CisKKyAgICAgICAgICAgIHRoaXMuZG9uZSgpOworICAgICAgICB9OworICAgIH0KKworICAgIGlu
dmFsaWRfa2V5cGF0aCgnaiBhJyk7CisgICAgaW52YWxpZF9rZXlwYXRoKCcueW8nKTsKKyAgICBp
bnZhbGlkX2tleXBhdGgoJ3lvLGxvJyk7CisgICAgaW52YWxpZF9rZXlwYXRoKFtdKTsKKyAgICBp
bnZhbGlkX2tleXBhdGgoWydhcnJheSB3aXRoIHNwYWNlJ10pOworICAgIGludmFsaWRfa2V5cGF0
aChbJ211bHRpX2FycmF5JywgWydhJywgJ2InXV0sICJtdWx0aWRpbWVuc2lvbmFsIGFycmF5IChp
bnZhbGlkIHRvU3RyaW5nKSIpOyAvLyA9PiBbJ211bHRpX2FycmF5JywgJ2EsYiddCisgICAgaW52
YWxpZF9rZXlwYXRoKCczbScpOworICAgIGludmFsaWRfa2V5cGF0aCh7dG9TdHJpbmc6ZnVuY3Rp
b24oKXtyZXR1cm4gJzNtJ319LCAne3RvU3RyaW5nLT4zbX0nKTsKKyAgICBpbnZhbGlkX2tleXBh
dGgoJ215LjEzMzcnKTsKKyAgICBpbnZhbGlkX2tleXBhdGgoJy4ueW8nKTsKKyAgICBpbnZhbGlk
X2tleXBhdGgoJ3kuLm8nKTsKKyAgICBpbnZhbGlkX2tleXBhdGgoJ3kuby4nKTsKKyAgICBpbnZh
bGlkX2tleXBhdGgoJ3kuby4uJyk7CisgICAgaW52YWxpZF9rZXlwYXRoKCdtLionKTsKKyAgICBp
bnZhbGlkX2tleXBhdGgoJyJtIicpOworICAgIGludmFsaWRfa2V5cGF0aCgnbSUnKTsKKyAgICBp
bnZhbGlkX2tleXBhdGgoJ20vJyk7CisgICAgaW52YWxpZF9rZXlwYXRoKCdtL2EnKTsKKyAgICBp
bnZhbGlkX2tleXBhdGgoJ20mJyk7CisgICAgaW52YWxpZF9rZXlwYXRoKCdtIScpOworICAgIGlu
dmFsaWRfa2V5cGF0aCgnKicpOworICAgIGludmFsaWRfa2V5cGF0aCgnKi4qJyk7CisgICAgaW52
YWxpZF9rZXlwYXRoKCdebScpOworICAgIGludmFsaWRfa2V5cGF0aCgnL20vJyk7CisKKzwvc2Ny
aXB0PgorCis8ZGl2IGlkPWxvZz48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9pbmRleGVkZGIva2V5cGF0aF9tYXhzaXplLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIva2V5cGF0aF9tYXhzaXplLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mMjkyOTFiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9rZXlwYXRoX21heHNpemUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorCitQQVNTIEtleXBhdGggLSB+MjYwIGNoYXJz
IAorUEFTUyBLZXlwYXRoIC0gfjUzMCBjaGFycyAKK1BBU1MgS2V5cGF0aCAtIH4xMDUwIGNoYXJz
IAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleXBh
dGhfbWF4c2l6ZS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleXBh
dGhfbWF4c2l6ZS5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmY5ZTEy
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIv
a2V5cGF0aF9tYXhzaXplLmh0bQpAQCAtMCwwICsxLDYzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5LZXlwYXRoPC90aXRsZT4KKzxsaW5rIHJlbD1o
ZWxwIGhyZWY9Imh0dHA6Ly9kdmNzLnczLm9yZy9oZy9JbmRleGVkREIvcmF3LWZpbGUvdGlwL092
ZXJ2aWV3Lmh0bWwja2V5LXBhdGgtY29uc3RydWN0Ij4KKzxsaW5rIHJlbD1hc3NlcnQgdGl0bGU9
IkEga2V5IHBhdGggaXMgYSBET01TdHJpbmcgdGhhdCBkZWZpbmVzIGhvdyB0byBleHRyYWN0IGEg
a2V5IGZyb20gYSB2YWx1ZS4gQSB2YWxpZCBrZXkgcGF0aCBpcyBlaXRoZXIgdGhlIGVtcHR5IHN0
cmluZywgYSBKYXZhU2NyaXB0IGlkZW50aWZpZXIsIG9yIG11bHRpcGxlIEphdmFzY3JpcHQgaWRl
bnRpZmllcnMgc2VwYXJhdGVkIGJ5IHBlcmlvZHMgKEFTQ0lJIGNoYXJhY3RlciBjb2RlIDQ2KSBb
RUNNQS0yNjJdLiI+Cis8bWV0YSBuYW1lPXRpbWVvdXQgY29udGVudD1sb25nPgorPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICBmdW5j
dGlvbiBrZXlwYXRoKGtleXBhdGgsIG9iamVjdHMsIGV4cGVjdGVkX2tleXMsIGRlc2MpIHsKKyAg
ICAgICAgdmFyIGRiLAorICAgICAgICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUg
KyAiIC0gIiArIChkZXNjID8gZGVzYyA6IGtleXBhdGgpLCB7IHRpbWVvdXQ6IDEwMDAwIH0pLAor
ICAgICAgICAgICAgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworCisgICAgICAgIG9wZW5fcnEub251
cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgZGIgPSBlLnRhcmdldC5y
ZXN1bHQ7CisgICAgICAgICAgICB2YXIgb2JqU3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgi
c3RvcmUiLCB7IGtleVBhdGg6IGtleXBhdGggfSk7CisKKyAgICAgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgb2JqZWN0cy5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgICAgICBvYmpTdG9yZS5h
ZGQob2JqZWN0c1tpXSk7CisgICAgICAgIH07CisKKyAgICAgICAgb3Blbl9ycS5vbmVycm9yID0g
ZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZChlLnRhcmdldC5lcnJv
ci5uYW1lKTsKKyAgICAgICAgfTsKKworICAgICAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBhY3R1YWxfa2V5cyA9IFtdLAorICAgICAgICAgICAg
ICAgIHJxID0gZGIudHJhbnNhY3Rpb24oInN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAgICAg
Lm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgICAgICAgIC5vcGVuQ3Vyc29y
KCk7CisKKyAgICAgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUp
IHsKKyAgICAgICAgICAgICAgICB2YXIgY3Vyc29yID0gZS50YXJnZXQucmVzdWx0OworCisgICAg
ICAgICAgICAgICAgaWYgKGN1cnNvcikgeworICAgICAgICAgICAgICAgICAgICBhY3R1YWxfa2V5
cy5wdXNoKGN1cnNvci5rZXkudmFsdWVPZigpKTsKKyAgICAgICAgICAgICAgICAgICAgY3Vyc29y
LmNvbnRpbnVlKCk7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAg
ICAgYXNzZXJ0X2FycmF5X2VxdWFscyhhY3R1YWxfa2V5cywgZXhwZWN0ZWRfa2V5cywgImtleW9y
ZGVyIGFycmF5Iik7CisgICAgICAgICAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIH0pOworICAgICAgICB9OworICAgIH0KKworICAgIGtleXBhdGgo
J21hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFpLmtlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWV5JywKKyAgICAgICAgWyB7IG1hYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFpOiB7IGtlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWV5OiAxMCB9IH0gXSwKKyAgICAgICAgWyAx
MCBdLCAnfjI2MCBjaGFycycpOworCisgICAga2V5cGF0aCgnbWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWlfbWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWkua2VlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZXlf
a2VlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZXknLAorICAg
ICAgICBbIHsgbWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWlfbWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWk6IHsga2VlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZXlfa2VlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZXk6IDEwIH0gfSBdLAorICAgICAgICBbIDEwIF0sICd+
NTMwIGNoYXJzJyk7CisKKyAgICBrZXlwYXRoKCdtYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhaV9tYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhaV9t
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhaV9tYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhaS5rZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVleV9rZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVleV9rZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVleV9rZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
eScsCisgICAgICAgIFsgeyBtYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
aV9tYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhaV9tYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhaV9tYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhaTogeyBrZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVleV9rZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVleV9rZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVleV9r
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVl
ZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVleTogMTAgfSB9
IF0sCisgICAgICAgIFsgMTAgXSwgJ34xMDUwIGNoYXJzJyk7CisKKzwvc2NyaXB0PgorCis8ZGl2
IGlkPWxvZz48L2xvZz4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRl
eGVkZGIvbGlzdF9vcmRlcmluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL2xpc3Rfb3JkZXJpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmE3OTNiNWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL2xpc3Rfb3JkZXJpbmctZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNSBAQAorCitQQVNTIG9iamVjdFN0b3JlTmFtZXMgYW5kIGluZGV4TmFtZXMgb3JkZXIg
LSBudW1iZXJzIAorUEFTUyBvYmplY3RTdG9yZU5hbWVzIGFuZCBpbmRleE5hbWVzIG9yZGVyIC0g
bnVtYmVycyAnb3ZlcmZsb3cnIAorUEFTUyBvYmplY3RTdG9yZU5hbWVzIGFuZCBpbmRleE5hbWVz
IG9yZGVyIC0gbGV4aWdyYXBoaWNhbCBzdHJpbmcgc29ydCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9saXN0X29yZGVyaW5nLmh0bSBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvbGlzdF9vcmRlcmluZy5odG0KbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzk5NzY3YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvbGlzdF9vcmRlcmluZy5odG0KQEAgLTAsMCAr
MSw2MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+
b2JqZWN0U3RvcmVOYW1lcyBhbmQgaW5kZXhOYW1lcyBvcmRlcjwvdGl0bGU+Cis8bGluayByZWw9
ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0
aGUgT21kYWwiPgorPGxpbmsgcmVsPWhlbHAgaHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0lu
ZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZpZXcuaHRtbCN3aWRsLUlEQkRhdGFiYXNlLW9iamVj
dFN0b3JlTmFtZXMiPgorPGxpbmsgcmVsPWFzc2VydCB0aXRsZT0iVGhlIGxpc3QgbXVzdCBiZSBz
b3J0ZWQgaW4gYXNjZW5kaW5nIG9yZGVyIHVzaW5nIHRoZSBhbGdvcml0aG0gZGVmaW5lZCBieSBz
dGVwIDQgb2Ygc2VjdGlvbiAxMS44LjUsIFRoZSBBYnN0cmFjdCBSZWxhdGlvbmFsIENvbXBhcmlz
b24gQWxnb3JpdGhtIG9mIHRoZSBFQ01BU2NyaXB0IExhbmd1YWdlIFNwZWNpZmljYXRpb24gW0VD
TUEtMjYyXS4iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4K
KworPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBsaXN0X29yZGVyKGRlc2MsIHVuc29ydGVkLCBleHBl
Y3RlZCkgeworICAgICAgICB2YXIgb2JqU3RvcmUsIGRiLAorICAgICAgICAgIHQgPSBhc3luY190
ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtICIgKyBkZXNjKTsKKworICAgICAgICB2YXIgb3Blbl9y
cSA9IGNyZWF0ZWRiKHQpOworICAgICAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCB1bnNvcnRlZC5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgICAg
ICBvYmpTdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0b3JlKHVuc29ydGVkW2ldKTsKKworICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhkYi5vYmplY3RTdG9yZU5hbWVzLmxlbmd0aCwgZXhwZWN0ZWQu
bGVuZ3RoLCAib2JqZWN0U3RvcmVOYW1lcyBsZW5ndGgiKTsKKyAgICAgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgZXhwZWN0ZWQubGVuZ3RoOyBpKyspCisgICAgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKGRiLm9iamVjdFN0b3JlTmFtZXNbaV0sIGV4cGVjdGVkW2ldLCAib2JqZWN0U3RvcmVO
YW1lc1siK2krIl0iKTsKKworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB1bnNvcnRl
ZC5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRleCh1bnNv
cnRlZFtpXSwgImxlbmd0aCIpOworCisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG9ialN0b3Jl
LmluZGV4TmFtZXMubGVuZ3RoLCBleHBlY3RlZC5sZW5ndGgsICJpbmRleE5hbWVzIGxlbmd0aCIp
OworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBleHBlY3RlZC5sZW5ndGg7IGkrKykK
KyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG9ialN0b3JlLmluZGV4TmFtZXNbaV0sIGV4
cGVjdGVkW2ldLCAiaW5kZXhOYW1lc1siK2krIl0iKTsKKyAgICAgICAgfTsKKworICAgICAgICBv
cGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoZGIub2JqZWN0U3RvcmVOYW1lcy5sZW5ndGgsIGV4cGVjdGVkLmxlbmd0aCwgIm9iamVjdFN0
b3JlTmFtZXMgbGVuZ3RoIik7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGV4cGVj
dGVkLmxlbmd0aDsgaSsrKQorICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZGIub2JqZWN0
U3RvcmVOYW1lc1tpXSwgZXhwZWN0ZWRbaV0sICJvYmplY3RTdG9yZU5hbWVzWyIraSsiXSIpOwor
CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG9ialN0b3JlLmluZGV4TmFtZXMubGVuZ3RoLCBl
eHBlY3RlZC5sZW5ndGgsICJpbmRleE5hbWVzIGxlbmd0aCIpOworICAgICAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBleHBlY3RlZC5sZW5ndGg7IGkrKykKKyAgICAgICAgICAgICAgICBhc3Nl
cnRfZXF1YWxzKG9ialN0b3JlLmluZGV4TmFtZXNbaV0sIGV4cGVjdGVkW2ldLCAiaW5kZXhOYW1l
c1siK2krIl0iKTsKKworICAgICAgICAgICAgdC5kb25lKCk7CisgICAgICAgIH07CisgICAgfQor
CisgICAgbGlzdF9vcmRlcigibnVtYmVycyIsCisgICAgICAgIFsxMjM0NTYsIC0xMjM0NSwgLTEy
MywgMTIzLCAxMjM0LCAtMTIzNCwgMCwgMTIzNDUsIC0xMjM0NTZdLAorICAgICAgICBbIi0xMjMi
LCAiLTEyMzQiLCAiLTEyMzQ1IiwgIi0xMjM0NTYiLCAiMCIsICIxMjMiLCAiMTIzNCIsICIxMjM0
NSIsICIxMjM0NTYiXSk7CisKKyAgICBsaXN0X29yZGVyKCJudW1iZXJzICdvdmVyZmxvdyciLAor
ICAgICAgICBbOSwgMSwgMTAwMDAwMDAwMCwgMjAwMDAwMDAwMDAwMDAwMDAwXSwKKyAgICAgICAg
WyIxIiwgIjEwMDAwMDAwMDAiLCAiMjAwMDAwMDAwMDAwMDAwMDAwIiwgIjkiXSk7CisKKyAgICBs
aXN0X29yZGVyKCJsZXhpZ3JhcGhpY2FsIHN0cmluZyBzb3J0IiwKKyAgICAgICAgWyAiY2MiLCAi
YyIsICJhYSIsICJhIiwgImJiIiwgImIiLCAiYWIiLCAiIiwgImFjIiBdLAorICAgICAgICBbICIi
LCAiYSIsICJhYSIsICJhYiIsICJhYyIsICJiIiwgImJiIiwgImMiLCAiY2MiIF0pOworCis8L3Nj
cmlwdD4KKworPGRpdiBpZD0ibG9nIj48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvb2JqZWN0c3RvcmVfa2V5b3JkZXItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9vYmplY3RzdG9yZV9rZXlvcmRlci1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGViNDhmYwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvb2Jq
ZWN0c3RvcmVfa2V5b3JkZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFZl
cmlmeSBrZXkgc29ydCBvcmRlciBpbiBhbiBvYmplY3Qgc3RvcmUgaXMgJ251bWJlciA8IERhdGUg
PCBET01TdHJpbmcnICAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2lu
ZGV4ZWRkYi9vYmplY3RzdG9yZV9rZXlvcmRlci5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL29iamVjdHN0b3JlX2tleW9yZGVyLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi5lYjJjZWYzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9vYmplY3RzdG9yZV9rZXlvcmRlci5odG0KQEAgLTAsMCAr
MSw0OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+
VmVyaWZ5IGtleSBzb3J0IG9yZGVyIGluIGFuIG9iamVjdCBzdG9yZSBpcyAnbnVtYmVyICZsdDsg
RGF0ZSAmbHQ7IERPTVN0cmluZycgPC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0i
TWljcm9zb2Z0IiBocmVmPSJodHRwOi8vd3d3Lm1pY3Jvc29mdC5jb20iPgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJzdXBwb3J0LmpzIj48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZGIs
CisgICAgICBkID0gbmV3IERhdGUoKSwKKyAgICAgIHQgPSBhc3luY190ZXN0KCksCisgICAgICBy
ZWNvcmRzID0gWyB7IGtleTogZCB9LAorICAgICAgICAgICAgICAgICAgeyBrZXk6ICJ0ZXN0IiB9
LAorICAgICAgICAgICAgICAgICAgeyBrZXk6IDEgfSwKKyAgICAgICAgICAgICAgICAgIHsga2V5
OiAyLjU1IH0gIF0sCisgICAgICBleHBlY3RlZEtleU9yZGVyID0gWyAxLCAyLjU1LCBkLnZhbHVl
T2YoKSwgInRlc3QiIF07CisKKyAgICB2YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKHQpOworICAgIG9w
ZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFy
Z2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9ialN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUo
InN0b3JlIiwgeyBrZXlQYXRoOiAia2V5IiB9KTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHJlY29yZHMubGVuZ3RoOyBpKyspCisgICAgICAgICAgICBvYmpTdG9yZS5hZGQocmVjb3Jk
c1tpXSk7CisgICAgfTsKKworICAgIG9wZW5fcnEub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgewor
ICAgICAgICB2YXIgYWN0dWFsX2tleXMgPSBbXSwKKyAgICAgICAgICBycSA9IGRiLnRyYW5zYWN0
aW9uKCJzdG9yZSIpCisgICAgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3RvcmUiKQorICAg
ICAgICAgICAgICAgICAub3BlbkN1cnNvcigpOworCisgICAgICAgIHJxLm9uc3VjY2VzcyA9IHQu
c3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIHZhciBjdXJzb3IgPSBlLnRhcmdl
dC5yZXN1bHQ7CisKKyAgICAgICAgICAgIGlmIChjdXJzb3IpIHsKKyAgICAgICAgICAgICAgICBh
Y3R1YWxfa2V5cy5wdXNoKGN1cnNvci5rZXkudmFsdWVPZigpKTsKKyAgICAgICAgICAgICAgICBj
dXJzb3IuY29udGludWUoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgeworICAg
ICAgICAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoYWN0dWFsX2tleXMsIGV4cGVjdGVkS2V5
T3JkZXIpOworICAgICAgICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICAgICAgfQorICAgICAg
ICB9KTsKKyAgICB9OworPC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3JlcXVlc3RfYnViYmxlLWFu
ZC1jYXB0dXJlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvcmVxdWVzdF9idWJibGUtYW5kLWNhcHR1cmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMxZmZjNTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3JlcXVlc3RfYnViYmxlLWFuZC1jYXB0dXJlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBCdWJibGluZyBhbmQgY2FwdHVyaW5n
IG9mIHJlcXVlc3QgZXZlbnRzIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL3JlcXVlc3RfYnViYmxlLWFuZC1jYXB0dXJlLmh0bSBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9pbmRleGVkZGIvcmVxdWVzdF9idWJibGUtYW5kLWNhcHR1cmUuaHRtCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjczYTRmNDUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3JlcXVlc3RfYnViYmxlLWFu
ZC1jYXB0dXJlLmh0bQpAQCAtMCwwICsxLDY5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNo
YXJzZXQ9dXRmLTg+Cis8dGl0bGU+QnViYmxpbmcgYW5kIGNhcHR1cmluZyBvZiByZXF1ZXN0IGV2
ZW50czwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVy
YS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21kYWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxzY3JpcHQ+CisgICAgdmFyIGV2ZW50cyA9IFtdOwor
CisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYihhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlLCB7
dGltZW91dDogMTAwMDB9KSk7CisgICAgb3Blbl9ycS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlv
bihlKSB7CisgICAgICAgIHZhciBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIHR4
biA9IGUudGFyZ2V0LnRyYW5zYWN0aW9uOworICAgICAgICB2YXIgc3RvcmUgPSBkYi5jcmVhdGVP
YmplY3RTdG9yZSgicyIpOworICAgICAgICB2YXIgcnExID0gc3RvcmUuYWRkKCIiLCAxKTsKKyAg
ICAgICAgdmFyIHJxMiA9IHN0b3JlLmFkZCgiIiwgMSk7CisgICAgICAgIGRiLm9uZXJyb3IgPSBm
dW5jdGlvbigpe307CisKKyAgICAgICAgbG9nX3JlcXVlc3QoJyBkYicsICBkYik7CisgICAgICAg
IGxvZ19yZXF1ZXN0KCd0eG4nLCB0eG4pOworICAgICAgICBsb2dfcmVxdWVzdCgncnExJywgcnEx
KTsKKyAgICAgICAgbG9nX3JlcXVlc3QoJ3JxMicsIHJxMik7CisKKyAgICAgICAgLy8gRG9uJ3Qg
bGV0IGl0IGdldCB0byBhYm9ydAorICAgICAgICBkYi5hZGRFdmVudExpc3RlbmVyKCdlcnJvcics
IGZ1bmN0aW9uKGUpIHsgZS5wcmV2ZW50RGVmYXVsdCgpIH0sIGZhbHNlKTsKKyAgICB9CisKKyAg
ICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgbG9nKCJvcGVuX3Jx
LnN1Y2Nlc3MiKShlKTsKKyAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhldmVudHMsIFsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNhcHR1cmUgIGRiLnN1Y2Nlc3Mi
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY2FwdHVyZSB0eG4uc3Vj
Y2VzcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjYXB0dXJlIHJx
MS5zdWNjZXNzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJ1YmJs
ZSAgcnExLnN1Y2Nlc3MiLAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJjYXB0dXJlICBkYi5lcnJvcjogQ29uc3RyYWludEVycm9yIiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImNhcHR1cmUgdHhuLmVycm9yOiBDb25zdHJhaW50RXJyb3Ii
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY2FwdHVyZSBycTIuZXJy
b3I6IENvbnN0cmFpbnRFcnJvciIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJidWJibGUgIHJxMi5lcnJvcjogQ29uc3RyYWludEVycm9yIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgImJ1YmJsZSAgdHhuLmVycm9yOiBDb25zdHJhaW50RXJy
b3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYnViYmxlICAgZGIu
ZXJyb3I6IENvbnN0cmFpbnRFcnJvciIsCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIm9wZW5fcnEuc3VjY2VzcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICJldmVudHMiKTsKKyAgICAg
ICAgdGhpcy5kb25lKCk7CisgICAgfQorCisKKyAgICBmdW5jdGlvbiBsb2dfcmVxdWVzdCh0eXBl
LCBvYmopIHsKKyAgICAgICAgb2JqLmFkZEV2ZW50TGlzdGVuZXIoJ3N1Y2Nlc3MnLCBsb2coJ2Nh
cHR1cmUgJyArIHR5cGUgKyAnLnN1Y2Nlc3MnKSwgdHJ1ZSk7CisgICAgICAgIG9iai5hZGRFdmVu
dExpc3RlbmVyKCdzdWNjZXNzJywgbG9nKCdidWJibGUgICcgKyB0eXBlICsgJy5zdWNjZXNzJyks
IGZhbHNlKTsKKyAgICAgICAgb2JqLmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgbG9nKCdjYXB0
dXJlICcgKyB0eXBlICsgJy5lcnJvcicpLCB0cnVlKTsKKyAgICAgICAgb2JqLmFkZEV2ZW50TGlz
dGVuZXIoJ2Vycm9yJywgbG9nKCdidWJibGUgICcgKyB0eXBlICsgJy5lcnJvcicpLCBmYWxzZSk7
CisgICAgfQorCisgICAgZnVuY3Rpb24gbG9nKG1zZykgeworICAgICAgICByZXR1cm4gZnVuY3Rp
b24oZSkgeworICAgICAgICAgICAgaWYoZSAmJiBlLnRhcmdldCAmJiBlLnRhcmdldC5lcnJvcikK
KyAgICAgICAgICAgICAgICBldmVudHMucHVzaChtc2cgKyAiOiAiICsgZS50YXJnZXQuZXJyb3Iu
bmFtZSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZXZlbnRzLnB1c2gobXNn
KTsKKyAgICAgICAgfTsKKyAgICB9Cis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9kaXY+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3N0cmluZy1saXN0
LW9yZGVyaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvc3RyaW5nLWxpc3Qtb3JkZXJpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjBiNzYwZGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL3N0cmluZy1saXN0LW9yZGVyaW5nLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDMgQEAKKworUEFTUyBUZXN0IHN0cmluZyBsaXN0IG9yZGVyaW5nIGluIEluZGV4
ZWREQiAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9z
dHJpbmctbGlzdC1vcmRlcmluZy5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhl
ZGRiL3N0cmluZy1saXN0LW9yZGVyaW5nLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi40NzI4NDVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL2luZGV4ZWRkYi9zdHJpbmctbGlzdC1vcmRlcmluZy5odG0KQEAgLTAsMCArMSw4NSBAQAor
PCEtLQorVGVzdCBjb252ZXJ0ZWQgZnJvbSBXZWJLaXQ6CitodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2Jyb3dzZXIvdHJ1bmsvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2xp
c3Qtb3JkZXJpbmcuanMKKy0tPgorCis8IURPQ1RZUEUgaHRtbD4KKzwhLS0gU3VibWl0dGVkIGZy
b20gVGVzdFRXRiBQYXJpcyAtLT4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+VGVzdCBz
dHJpbmcgbGlzdCBvcmRlcmluZyBpbiBJbmRleGVkREI8L3RpdGxlPgorPGxpbmsgcmVsPWhlbHAg
aHJlZj0iaHR0cDovL2R2Y3MudzMub3JnL2hnL0luZGV4ZWREQi9yYXctZmlsZS90aXAvT3ZlcnZp
ZXcuaHRtbCN3aWRsLUlEQkRhdGFiYXNlLW9iamVjdFN0b3JlTmFtZXMiPgorPGxpbmsgcmVsPWFz
c2VydCB0aXRsZT0iVGhlIGxpc3QgbXVzdCBiZSBzb3J0ZWQgaW4gYXNjZW5kaW5nIG9yZGVyIHVz
aW5nIHRoZSBhbGdvcml0aG0gZGVmaW5lZCBieSBzdGVwIDQgb2Ygc2VjdGlvbiAxMS44LjUsIFRo
ZSBBYnN0cmFjdCBSZWxhdGlvbmFsIENvbXBhcmlzb24gQWxnb3JpdGhtIG9mIHRoZSBFQ01BU2Ny
aXB0IExhbmd1YWdlIFNwZWNpZmljYXRpb24gW0VDTUEtMjYyXS4iPgorPGxpbmsgcmVsPWF1dGhv
ciBocmVmPSJtYWlsdG86cm9tYWluLmh1ZXRAZ21haWwuY29tIiB0aXRsZT0iUm9tYWluIEh1ZXQi
PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9ydC5qcz48L3NjcmlwdD4KKworPHNjcmlw
dD4KKworICAgIHZhciBleHBlY3RlZE9yZGVyID0gWworICAgICAgICAiIiwKKyAgICAgICAgIlx4
MDAiLCAvLyAnTlVMTCcgKFUrMDAwMCkKKyAgICAgICAgIjAiLAorICAgICAgICAiMSIsCisgICAg
ICAgICJBIiwKKyAgICAgICAgIkIiLAorICAgICAgICAiYSIsCisgICAgICAgICJiIiwKKyAgICAg
ICAgIlx4N0YiLCAvLyAnREVMRVRFJyAoVSswMDdGKQorICAgICAgICAiXHhDMCIsIC8vICdMQVRJ
TiBDQVBJVEFMIExFVFRFUiBBIFdJVEggR1JBVkUnIChVKzAwQzApCisgICAgICAgICJceEMxIiwg
Ly8gJ0xBVElOIENBUElUQUwgTEVUVEVSIEEgV0lUSCBBQ1VURScgKFUrMDBDMSkKKyAgICAgICAg
Ilx4RTAiLCAvLyAnTEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBHUkFWRScgKFUrMDBFMCkKKyAg
ICAgICAgIlx4RTEiLCAvLyAnTEFUSU4gU01BTEwgTEVUVEVSIEEgV0lUSCBBQ1VURScgKFUrMDBF
MSkKKyAgICAgICAgIlx4RkYiLCAvLyAnTEFUSU4gU01BTEwgTEVUVEVSIFkgV0lUSCBESUFFUkVT
SVMnIChVKzAwRkYpCisgICAgICAgICJcdTAxMDAiLCAvLyAnTEFUSU4gQ0FQSVRBTCBMRVRURVIg
QSBXSVRIIE1BQ1JPTicgKFUrMDEwMCkKKyAgICAgICAgIlx1MTAwMCIsIC8vICdNWUFOTUFSIExF
VFRFUiBLQScgKFUrMTAwMCkKKyAgICAgICAgIlx1RDgzNFx1REQxRSIsIC8vICdNVVNJQ0FMIFNZ
TUJPTCBHLUNMRUYnIChVKzFEMTFFKSwgVVRGLTE2IHN1cnJvZ2F0ZSBwYWlycworICAgICAgICAi
XHVGRkZEIiAvLyAnUkVQTEFDRU1FTlQgQ0hBUkFDVEVSJyAoVStGRkZEKQorICAgIF07CisKKyAg
ICB2YXIgaSwgdG1wLCBwZXJtdXRlZE9yZGVyID0gZXhwZWN0ZWRPcmRlci5zbGljZSgpOworICAg
IHBlcm11dGVkT3JkZXIucmV2ZXJzZSgpOworICAgIGZvciAoaSA9IDA7IGkgPCBwZXJtdXRlZE9y
ZGVyLmxlbmd0aCAtIDI7IGkgKz0gMikgeworICAgICAgICB0bXAgPSBwZXJtdXRlZE9yZGVyW2ld
OworICAgICAgICBwZXJtdXRlZE9yZGVyW2ldID0gcGVybXV0ZWRPcmRlcltpICsgMV07CisgICAg
ICAgIHBlcm11dGVkT3JkZXJbaSArIDFdID0gdG1wOworICAgIH0KKworICAgIHZhciBvYmpTdG9y
ZSwgZGI7CisgICAgdmFyIHQgPSBhc3luY190ZXN0KCk7CisKKyAgICAvLyBDaGVjayB0aGF0IHRo
ZSBleHBlY3RlZCBvcmRlciBpcyB0aGUgY2Fub25pY2FsIEpTIHNvcnQgb3JkZXIuCisgICAgdmFy
IHNvcnRlZE9yZGVyID0gZXhwZWN0ZWRPcmRlci5zbGljZSgpOworICAgIHNvcnRlZE9yZGVyLnNv
cnQoKTsKKyAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKHNvcnRlZE9yZGVyLCBleHBlY3RlZE9yZGVy
KTsKKworICAgIHZhciByZXF1ZXN0ID0gY3JlYXRlZGIodCk7CisKKyAgICByZXF1ZXN0Lm9udXBn
cmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgZGIgPSBlLnRhcmdldC5yZXN1bHQ7
CisKKyAgICAgICAgLy8gT2JqZWN0IHN0b3Jlcy4KKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBwZXJtdXRlZE9yZGVyLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBvYmpTdG9yZSA9IGRi
LmNyZWF0ZU9iamVjdFN0b3JlKHBlcm11dGVkT3JkZXJbaV0pOworICAgICAgICB9CisgICAgICAg
IGFzc2VydF9hcnJheV9lcXVhbHMoZGIub2JqZWN0U3RvcmVOYW1lcywgZXhwZWN0ZWRPcmRlcik7
CisKKyAgICAgICAgLy8gSW5kZXhlcy4KKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwZXJt
dXRlZE9yZGVyLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICBvYmpTdG9yZS5jcmVhdGVJbmRl
eChwZXJtdXRlZE9yZGVyW2ldLCAia2V5UGF0aCIpOworICAgICAgICB9CisgICAgICAgIGFzc2Vy
dF9hcnJheV9lcXVhbHMob2JqU3RvcmUuaW5kZXhOYW1lcywgZXhwZWN0ZWRPcmRlcik7CisgICAg
fTsKKworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZSkgeworICAgICAgICAvLyBP
YmplY3Qgc3RvcmVzLgorICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGRiLm9iamVjdFN0b3Jl
TmFtZXMsIGV4cGVjdGVkT3JkZXIpOworICAgICAgICAvLyBJbmRleGVzLgorICAgICAgICBhc3Nl
cnRfYXJyYXlfZXF1YWxzKG9ialN0b3JlLmluZGV4TmFtZXMsIGV4cGVjdGVkT3JkZXIpOworICAg
ICAgICB0LmRvbmUoKTsKKyAgICB9OworCis8L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9kaXY+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3N1cHBvcnQu
anMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3N1cHBvcnQuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzcwODQxNQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvc3VwcG9ydC5qcwpAQCAtMCwwICsx
LDEzMSBAQAoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK3ZhciBkYXRhYmFz
ZU5hbWUgPSAiZGF0YWJhc2UiOwordmFyIGRhdGFiYXNlVmVyc2lvbiA9IDE7CisKK2lmICghd2lu
ZG93LmluZGV4ZWREQikKK3sKKyAgICBpZiAod2luZG93Lm1zSW5kZXhlZERCKQorICAgIHsKKyAg
ICAgICAgd2luZG93LmluZGV4ZWREQiA9IHdpbmRvdy5tc0luZGV4ZWREQjsKKyAgICB9CisgICAg
ZWxzZSBpZiAod2luZG93Lm1vekluZGV4ZWREQikKKyAgICB7CisgICAgICAgIHdpbmRvdy5pbmRl
eGVkREIgPSB3aW5kb3cubW96SW5kZXhlZERCOworICAgIH0KKyAgICBlbHNlIGlmICh3aW5kb3cu
d2Via2l0SW5kZXhlZERCKQorICAgIHsKKyAgICAgICAgd2luZG93LmluZGV4ZWREQiAgICAgICAg
PSB3ZWJraXRJbmRleGVkREI7CisgICAgICAgIElEQkN1cnNvciAgICAgICAgICAgICAgID0gd2Vi
a2l0SURCQ3Vyc29yOworICAgICAgICBJREJEYXRhYmFzZUV4Y2VwdGlvbiAgICA9IHdlYmtpdElE
QkRhdGFiYXNlRXhjZXB0aW9uOworICAgICAgICBJREJJbmRleCAgICAgICAgICAgICAgICA9IHdl
YmtpdElEQkluZGV4OworICAgICAgICBJREJPYmplY3RTdG9yZSAgICAgICAgICA9IHdlYmtpdElE
Qk9iamVjdFN0b3JlOworICAgICAgICBJREJSZXF1ZXN0ICAgICAgICAgICAgICA9IHdlYmtpdElE
QlJlcXVlc3Q7CisgICAgICAgIElEQktleVJhbmdlICAgICAgICAgICAgID0gd2Via2l0SURCS2V5
UmFuZ2U7CisgICAgICAgIElEQlRyYW5zYWN0aW9uICAgICAgICAgID0gd2Via2l0SURCVHJhbnNh
Y3Rpb247CisgICAgfQorfQorCisvKiBEZWxldGUgY3JlYXRlZCBkYXRhYmFzZXMKKyAqCisgKiBH
byB0aHJvdWdoIGVhY2ggZmluaXNoZWQgdGVzdCwgc2VlIGlmIGl0IGhhcyBhbiBhc3NvY2lhdGVk
IGRhdGFiYXNlLiBDbG9zZQorICogdGhhdCBhbmQgZGVsZXRlIHRoZSBkYXRhYmFzZS4gKi8KK2Fk
ZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uKHRlc3RzKQoreworICAgIGZvciAodmFyIGkg
aW4gdGVzdHMpCisgICAgeworICAgICAgICBpZih0ZXN0c1tpXS5kYikKKyAgICAgICAgeworICAg
ICAgICAgICAgdGVzdHNbaV0uZGIuY2xvc2UoKTsKKyAgICAgICAgICAgIHdpbmRvdy5pbmRleGVk
REIuZGVsZXRlRGF0YWJhc2UodGVzdHNbaV0uZGIubmFtZSk7CisgICAgICAgIH0KKyAgICB9Cit9
KTsKKworZnVuY3Rpb24gZmFpbCh0ZXN0LCBkZXNjKSB7CisgICAgcmV0dXJuIHRlc3Quc3RlcF9m
dW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgaWYgKGUgJiYgZS5tZXNzYWdlICYmIGUudGFyZ2V0
LmVycm9yKQorICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hlZChkZXNjICsgIiAoIiArIGUudGFy
Z2V0LmVycm9yLm5hbWUgKyAiOiAiICsgZS5tZXNzYWdlICsgIikiKTsKKyAgICAgICAgZWxzZSBp
ZiAoZSAmJiBlLm1lc3NhZ2UpCisgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVkKGRlc2MgKyAi
ICgiICsgZS5tZXNzYWdlICsgIikiKTsKKyAgICAgICAgZWxzZSBpZiAoZSAmJiBlLnRhcmdldC5y
ZWFkeVN0YXRlID09PSAnZG9uZScgJiYgZS50YXJnZXQuZXJyb3IpCisgICAgICAgICAgICBhc3Nl
cnRfdW5yZWFjaGVkKGRlc2MgKyAiICgiICsgZS50YXJnZXQuZXJyb3IubmFtZSArICIpIik7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoZGVzYyk7CisgICAgfSk7
Cit9CisKK2Z1bmN0aW9uIGNyZWF0ZWRiKHRlc3QsIGRibmFtZSwgdmVyc2lvbikKK3sKKyAgICB2
YXIgcnFfb3BlbiA9IGNyZWF0ZWRiX2Zvcl9tdWx0aXBsZV90ZXN0cyhkYm5hbWUsIHZlcnNpb24p
OworICAgIHJldHVybiBycV9vcGVuLnNldFRlc3QodGVzdCk7Cit9CisKK2Z1bmN0aW9uIGNyZWF0
ZWRiX2Zvcl9tdWx0aXBsZV90ZXN0cyhkYm5hbWUsIHZlcnNpb24pIHsKKyAgICB2YXIgcnFfb3Bl
biwKKyAgICAgICAgZmFrZV9vcGVuID0ge30sCisgICAgICAgIHRlc3QgPSBudWxsLAorICAgICAg
ICBkYm5hbWUgPSAoZGJuYW1lID8gZGJuYW1lIDogInRlc3RkYi0iICsgbmV3IERhdGUoKS5nZXRU
aW1lKCkgKyBNYXRoLnJhbmRvbSgpICk7CisKKyAgICBpZiAodmVyc2lvbikKKyAgICAgICAgcnFf
b3BlbiA9IHdpbmRvdy5pbmRleGVkREIub3BlbihkYm5hbWUsIHZlcnNpb24pOworICAgIGVsc2UK
KyAgICAgICAgcnFfb3BlbiA9IHdpbmRvdy5pbmRleGVkREIub3BlbihkYm5hbWUpOworCisgICAg
ZnVuY3Rpb24gYXV0b19mYWlsKGV2dCwgY3VycmVudF90ZXN0KSB7CisgICAgICAgIC8qIEZhaWwg
aGFuZGxlcnMsIGlmIHdlIGhhdmVuJ3Qgc2V0IG9uL3doYXRldmVyLywgZG9uJ3QKKyAgICAgICAg
ICogZXhwZWN0IHRvIGdldCBldmVudCB3aGF0ZXZlci4gKi8KKyAgICAgICAgcnFfb3Blbi5tYW51
YWxseV9oYW5kbGVkID0ge30KKworICAgICAgICBycV9vcGVuLmFkZEV2ZW50TGlzdGVuZXIoZXZ0
LCBmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBpZiAoY3VycmVudF90ZXN0ICE9PSB0ZXN0KSB7
CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB0
ZXN0LnN0ZXAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgaWYgKCFycV9vcGVuLm1hbnVh
bGx5X2hhbmRsZWRbZXZ0XSkgeworICAgICAgICAgICAgICAgICAgICBhc3NlcnRfdW5yZWFjaGVk
KCJ1bmV4cGVjdGVkIG9wZW4uIiArIGV2dCArICIgZXZlbnQiKTsKKyAgICAgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgICAgICBpZiAoZS50YXJnZXQucmVzdWx0ICsgIiIgPT0gIltvYmplY3Qg
SURCRGF0YWJhc2VdIiAmJiAhdGhpcy5kYikgeworICAgICAgICAgICAgICAgICAgICB0aGlzLmRi
ID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAgICAgICAgICAgIHRoaXMuZGIub25lcnJv
ciA9IGZhaWwodGVzdCwgInVuZXhwZWN0ZWQgZGIuZXJyb3IiKTsKKyAgICAgICAgICAgICAgICAg
ICAgdGhpcy5kYi5vbmFib3J0ID0gZmFpbCh0ZXN0LCAidW5leHBlY3RlZCBkYi5hYm9ydCIpOwor
ICAgICAgICAgICAgICAgICAgICB0aGlzLmRiLm9udmVyc2lvbmNoYW5nZSA9IGZhaWwodGVzdCwg
InVuZXhwZWN0ZWQgZGIudmVyc2lvbmNoYW5nZSIpOworICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIH0pCisgICAgICAgIH0pCisgICAgICAgIHJxX29wZW4uX19kZWZpbmVTZXR0ZXJfXygi
b24iICsgZXZ0LCBmdW5jdGlvbihoKSB7CisgICAgICAgICAgICBycV9vcGVuLm1hbnVhbGx5X2hh
bmRsZWRbZXZ0XSA9IHRydWU7CisgICAgICAgICAgICBpZiAoIWgpCisgICAgICAgICAgICAgICAg
cnFfb3Blbi5hZGRFdmVudExpc3RlbmVyKGV2dCwgZnVuY3Rpb24oKSB7fSk7CisgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgcnFfb3Blbi5hZGRFdmVudExpc3RlbmVyKGV2dCwgdGVz
dC5zdGVwX2Z1bmMoaCkpOworICAgICAgICB9KQorICAgIH0KKworICAgIC8vIGFkZCBhIC5zZXRU
ZXN0IG1ldGhvZCB0byB0aGUgREIgb2JqZWN0CisgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHJx
X29wZW4sICdzZXRUZXN0JywgeworICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSwKKyAgICAgICAg
dmFsdWU6IGZ1bmN0aW9uKHQpIHsKKyAgICAgICAgICAgIHRlc3QgPSB0OworCisgICAgICAgICAg
ICBhdXRvX2ZhaWwoInVwZ3JhZGVuZWVkZWQiLCB0ZXN0KTsKKyAgICAgICAgICAgIGF1dG9fZmFp
bCgic3VjY2VzcyIsIHRlc3QpOworICAgICAgICAgICAgYXV0b19mYWlsKCJibG9ja2VkIiwgdGVz
dCk7CisgICAgICAgICAgICBhdXRvX2ZhaWwoImVycm9yIiwgdGVzdCk7CisKKyAgICAgICAgICAg
IHJldHVybiB0aGlzOworICAgICAgICB9CisgICAgfSk7CisKKyAgICByZXR1cm4gcnFfb3BlbjsK
K30KKworZnVuY3Rpb24gYXNzZXJ0X2tleV9lcXVhbHMoYWN0dWFsLCBleHBlY3RlZCwgZGVzY3Jp
cHRpb24pIHsKKyAgICBhc3NlcnRfZXF1YWxzKGluZGV4ZWREQi5jbXAoYWN0dWFsLCBleHBlY3Rl
ZCksIDAsIGRlc2NyaXB0aW9uKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY3JlYXRlX2luX3ZlcnNpb25jaGFuZ2UtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1j
cmVhdGVfaW5fdmVyc2lvbmNoYW5nZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uOTU3YjlhYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvdHJhbnNhY3Rpb24tY3JlYXRlX2luX3ZlcnNpb25jaGFuZ2Ut
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIEF0dGVtcHQgdG8gY3JlYXRlIG5l
dyB0cmFuc2FjdGlvbnMgaW5zaWRlIGEgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1j
cmVhdGVfaW5fdmVyc2lvbmNoYW5nZS5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5k
ZXhlZGRiL3RyYW5zYWN0aW9uLWNyZWF0ZV9pbl92ZXJzaW9uY2hhbmdlLmh0bQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMDI3OTE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1jcmVhdGVfaW5fdmVy
c2lvbmNoYW5nZS5odG0KQEAgLTAsMCArMSw4MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBj
aGFyc2V0PXV0Zi04PgorPHRpdGxlPkF0dGVtcHQgdG8gY3JlYXRlIG5ldyB0cmFuc2FjdGlvbnMg
aW5zaWRlIGEgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbjwvdGl0bGU+Cis8bGluayByZWw9ImF1
dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUg
T21kYWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxz
Y3JpcHQ+CisgICAgdmFyIGRiLCBldmVudHMgPSBbXSwKKyAgICAgICAgb3Blbl9ycSA9IGNyZWF0
ZWRiKGFzeW5jX3Rlc3QoKSkKKworICAgIG9wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rp
b24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdAorCisgICAgICAgIGRiLmNyZWF0
ZU9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAuYWRkKCJ2ZXJzaW9uY2hhbmdlMSIs
IDEpCisgICAgICAgICAgICAuYWRkRXZlbnRMaXN0ZW5lcigic3VjY2VzcyIsIGxvZygidmVyc2lv
bmNoYW5nZV9hZGQuc3VjY2VzcyIpKQorCisgICAgICAgIGFzc2VydF90aHJvd3MoJ0ludmFsaWRT
dGF0ZUVycm9yJywgZnVuY3Rpb24oKSB7IGRiLnRyYW5zYWN0aW9uKCJzdG9yZSIpIH0pCisKKyAg
ICAgICAgZS50YXJnZXQudHJhbnNhY3Rpb24KKyAgICAgICAgICAgIC5vYmplY3RTdG9yZSgic3Rv
cmUiKQorICAgICAgICAgICAgLmNvdW50KDIpCisgICAgICAgICAgICAuYWRkRXZlbnRMaXN0ZW5l
cigic3VjY2VzcyIsIGxvZygidmVyc2lvbmNoYW5nZV9jb3VudC5zdWNjZXNzIikpCisKKyAgICAg
ICAgYXNzZXJ0X3Rocm93cygnSW52YWxpZFN0YXRlRXJyb3InLCBmdW5jdGlvbigpIHsgZGIudHJh
bnNhY3Rpb24oInN0b3JlIiwgInJlYWR3cml0ZSIpIH0pCisKKyAgICAgICAgb3Blbl9ycS50cmFu
c2FjdGlvbgorICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIpCisgICAgICAgICAgICAu
YWRkKCJ2ZXJzaW9uY2hhbmdlMiIsIDIpCisgICAgICAgICAgICAuYWRkRXZlbnRMaXN0ZW5lcigi
c3VjY2VzcyIsIGxvZygidmVyc2lvbmNoYW5nZV9hZGQyLnN1Y2Nlc3MiKSkKKworICAgICAgICBv
cGVuX3JxLnRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBmdW5jdGlvbihlKSB7CisgICAgICAgICAg
ICBsb2coInZlcnNpb25jaGFuZ2VfdHhuLmNvbXBsZXRlIikoZSkKKworICAgICAgICAgICAgZGIu
dHJhbnNhY3Rpb24oInN0b3JlIikKKyAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInN0b3Jl
IikKKyAgICAgICAgICAgICAgICAuY291bnQoKQorICAgICAgICAgICAgICAgIC5hZGRFdmVudExp
c3RlbmVyKCJzdWNjZXNzIiwgbG9nKCJjb21wbGV0ZV9jb3VudC5zdWNjZXNzIikpCisgICAgICAg
IH0KKyAgICB9CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAgICAg
ICAgbG9nKCJvcGVuX3JxLnN1Y2Nlc3MiKShlKQorCisgICAgICAgIHZhciB0eG4gPSBkYi50cmFu
c2FjdGlvbigic3RvcmUiLCAicmVhZHdyaXRlIikKKyAgICAgICAgdHhuLm9iamVjdFN0b3JlKCJz
dG9yZSIpCisgICAgICAgICAgICAucHV0KCJ3b28iLCAxKQorICAgICAgICAgICAgLmFkZEV2ZW50
TGlzdGVuZXIoInN1Y2Nlc3MiLCBsb2coImNvbXBsZXRlMl9nZXQuc3VjY2VzcyIpKQorCisgICAg
ICAgIHR4bi5vbmNvbXBsZXRlID0gdGhpcy5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAg
ICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhldmVudHMsIFsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAidmVyc2lvbmNoYW5nZV9hZGQuc3VjY2VzczogMSIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgInZlcnNpb25jaGFuZ2VfY291bnQuc3VjY2VzczogMCIs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZlcnNpb25jaGFuZ2VfYWRkMi5z
dWNjZXNzOiAyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmVyc2lvbmNo
YW5nZV90eG4uY29tcGxldGUiLAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Im9wZW5fcnEuc3VjY2VzczogW29iamVjdCBJREJEYXRhYmFzZV0iLAorCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgImNvbXBsZXRlX2NvdW50LnN1Y2Nlc3M6IDIiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb21wbGV0ZTJfZ2V0LnN1Y2Nlc3M6IDEiLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICAgICAg
ICAiZXZlbnRzIikKKyAgICAgICAgICAgIHRoaXMuZG9uZSgpCisgICAgICAgIH0pCisgICAgfQor
CisKKyAgICBmdW5jdGlvbiBsb2cobXNnKSB7CisgICAgICAgIHJldHVybiBmdW5jdGlvbihlKSB7
CisgICAgICAgICAgICBpZihlICYmIGUudGFyZ2V0ICYmIGUudGFyZ2V0LmVycm9yKQorICAgICAg
ICAgICAgICAgIGV2ZW50cy5wdXNoKG1zZyArICI6ICIgKyBlLnRhcmdldC5lcnJvci5uYW1lKQor
ICAgICAgICAgICAgZWxzZSBpZihlICYmIGUudGFyZ2V0ICYmIGUudGFyZ2V0LnJlc3VsdCAhPT0g
dW5kZWZpbmVkKQorICAgICAgICAgICAgICAgIGV2ZW50cy5wdXNoKG1zZyArICI6ICIgKyBlLnRh
cmdldC5yZXN1bHQpCisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZXZlbnRzLnB1
c2gobXNnKQorICAgICAgICB9OworICAgIH0KKzwvc2NyaXB0PgorCis8ZGl2IGlkPWxvZz48L2Rp
dj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdHJhbnNh
Y3Rpb24tbGlmZXRpbWUtYmxvY2tlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWxpZmV0aW1lLWJsb2NrZWQtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3ZTlmNmMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWxp
ZmV0aW1lLWJsb2NrZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIEJsb2Nr
ZWQgZXZlbnQgCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVk
ZGIvdHJhbnNhY3Rpb24tbGlmZXRpbWUtYmxvY2tlZC5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWxpZmV0aW1lLWJsb2NrZWQuaHRtCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwNGI5YWIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWxpZmV0aW1lLWJs
b2NrZWQuaHRtCkBAIC0wLDAgKzEsMTA4IEBACis8IURPQ1RZUEUgaHRtbD4KKzx0aXRsZT5CbG9j
a2VkIGV2ZW50PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2Rpbmhv
QG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorCis8
c2NyaXB0PgorCisgICAgdmFyIGRiLCBkYl9nb3RfdmVyc2lvbmNoYW5nZSwgZGIyLAorICAgICAg
ICBldmVudHMgPSBbXSwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0
aW1lb3V0OiAxMDAwMH0pOworCisgICAgdC5zdGVwKGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIg
b3BlbnJxID0gaW5kZXhlZERCLm9wZW4oJ2RiJywgMyk7CisKKyAgICAgICAgLy8gMQorICAgICAg
ICBvcGVucnEub251cGdyYWRlbmVlZGVkID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAg
ICAgICAgICAgZXZlbnRzLnB1c2goIm9wZW4uIiArIGUudHlwZSk7CisgICAgICAgICAgICBlLnRh
cmdldC5yZXN1bHQuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJyk7CisgICAgICAgIH0pOworCisg
ICAgICAgIC8vIDIKKyAgICAgICAgb3BlbnJxLm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0
aW9uKGUpIHsKKyAgICAgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0OworCisgICAgICAgICAg
ICBldmVudHMucHVzaCgib3Blbi4iICsgZS50eXBlKTsKKworICAgICAgICAgICAgLy8gMworICAg
ICAgICAgICAgZGIub252ZXJzaW9uY2hhbmdlID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgewor
ICAgICAgICAgICAgICAgIGV2ZW50cy5wdXNoKCJkYi4iICsgZS50eXBlKTsKKworICAgICAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZS5vbGRWZXJzaW9uLCAzLCAib2xkIHZlcnNpb24iKTsKKyAg
ICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUubmV3VmVyc2lvbiwgNCwgIm5ldyB2ZXJzaW9u
Iik7CisgICAgICAgICAgICAgICAgLy8gRG8gbm90IGNsb3NlIGRiIGhlcmUgKGFzIHdlIHNob3Vs
ZCkKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAvLyBFcnJvcnMKKyAgICAgICAgICAg
IGRiLm9uZXJyb3IgPSBmYWlsKHQsICJkYi5lcnJvciIpOworICAgICAgICAgICAgZGIuYWJvcnQg
PSBmYWlsKHQsICJkYi5hYm9ydCIpOworCisgICAgICAgICAgICBzZXRUaW1lb3V0KHQuc3RlcF9m
dW5jKE9wZW5TZWNvbmQpLCAxMCk7CisgICAgICAgIH0pOworCisgICAgICAgIC8vIEVycm9ycwor
ICAgICAgICBvcGVucnEub25lcnJvciA9IGZhaWwodCwgIm9wZW4uZXJyb3IiKTsKKyAgICAgICAg
b3BlbnJxLm9uYmxvY2tlZCA9IGZhaWwodCwgIm9wZW4uYmxvY2tlZCIpOworCisgICAgfSk7CisK
KyAgICBmdW5jdGlvbiBPcGVuU2Vjb25kIChlKSB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZGIy
LCB1bmRlZmluZWQpOworICAgICAgICBhc3NlcnRfZXF1YWxzKGRiICsgIiIsICJbb2JqZWN0IElE
QkRhdGFiYXNlXSIpOworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGRiLm9iamVjdFN0b3Jl
TmFtZXMsIFsgInN0b3JlIiBdKTsKKworICAgICAgICB2YXIgb3BlbnJxMiA9IGluZGV4ZWREQi5v
cGVuKCdkYicsIDQpOworCisgICAgICAgIC8vIDQKKyAgICAgICAgb3BlbnJxMi5vbmJsb2NrZWQg
PSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBldmVudHMucHVzaCgib3Bl
bjIuIiArIGUudHlwZSk7CisgICAgICAgICAgICAvLyBXZSdyZSBjbG9zaW5nIGNvbm5lY3Rpb24g
ZnJvbSB0aGUgb3RoZXIgb3BlbigpCisgICAgICAgICAgICBkYi5jbG9zZSgpOworICAgICAgICB9
KTsKKworICAgICAgICAvLyA1CisgICAgICAgIG9wZW5ycTIub251cGdyYWRlbmVlZGVkID0gdC5z
dGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgZGIyID0gZS50YXJnZXQucmVzdWx0
OworCisgICAgICAgICAgICBldmVudHMucHVzaCgib3BlbjIuIiArIGUudHlwZSk7CisKKyAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZGIyICsgIiIsICJbb2JqZWN0IElEQkRhdGFiYXNlXSIpOwor
CisgICAgICAgICAgICAvLyBFcnJvcnMKKyAgICAgICAgICAgIGRiMi5vbnZlcnNpb25jaGFuZ2Ug
PSBmYWlsKHQsICJkYjIudmVyc2lvbmNoYW5nZSIpOworICAgICAgICAgICAgZGIyLm9uZXJyb3Ig
PSBmYWlsKHQsICJkYjIuZXJyb3IiKTsKKyAgICAgICAgICAgIGRiMi5hYm9ydCA9IGZhaWwodCwg
ImRiMi5hYm9ydCIpOworICAgICAgICB9KTsKKworICAgICAgICAvLyA2CisgICAgICAgIG9wZW5y
cTIub25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgZXZl
bnRzLnB1c2goIm9wZW4yLiIgKyBlLnR5cGUpOworCisgICAgICAgICAgICBhc3NlcnRfYXJyYXlf
ZXF1YWxzKGV2ZW50cywKKyAgICAgICAgICAgICAgICBbICJvcGVuLnVwZ3JhZGVuZWVkZWQiLAor
ICAgICAgICAgICAgICAgICAgIm9wZW4uc3VjY2VzcyIsCisgICAgICAgICAgICAgICAgICAiZGIu
dmVyc2lvbmNoYW5nZSIsCisgICAgICAgICAgICAgICAgICAib3BlbjIuYmxvY2tlZCIsCisgICAg
ICAgICAgICAgICAgICAib3BlbjIudXBncmFkZW5lZWRlZCIsCisgICAgICAgICAgICAgICAgICAi
b3BlbjIuc3VjY2VzcyIsCisgICAgICAgICAgICAgICAgXSk7CisKKyAgICAgICAgICAgIHNldFRp
bWVvdXQoZnVuY3Rpb24oKSB7IHQuZG9uZSgpOyB9LCAxMCk7CisgICAgICAgIH0pOworCisgICAg
ICAgIC8vIEVycm9ycworICAgICAgICBvcGVucnEyLm9uZXJyb3IgPSBmYWlsKHQsICJvcGVuMi5l
cnJvciIpOworICAgIH0KKworCisgICAgLy8gQ2xlYW51cAorICAgIGFkZF9jb21wbGV0aW9uX2Nh
bGxiYWNrKGZ1bmN0aW9uKHRlc3RzKSB7CisgICAgICAgIGlmIChkYjIpIGRiMi5jbG9zZSgpOwor
ICAgICAgICBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoJ2RiJyk7CisgICAgfSkKKworPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3RyYW5z
YWN0aW9uLWxpZmV0aW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9p
bmRleGVkZGIvdHJhbnNhY3Rpb24tbGlmZXRpbWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUyMzQ3MDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWxpZmV0aW1lLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDMgQEAKKworRkFJTCBUZXN0IGV2ZW50cyBvcGVuaW5nIGEgc2Vjb25k
IGRhdGFiYXNlIHdoZW4gb25lIGNvbm5lY3Rpb24gaXMgb3BlbiBhbHJlYWR5IGFzc2VydF91bnJl
YWNoZWQ6IG9wZW4yLmJsb2NrZWQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdHJhbnNhY3Rpb24tbGlmZXRp
bWUuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1s
aWZldGltZS5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjgyYmY2ZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdHJh
bnNhY3Rpb24tbGlmZXRpbWUuaHRtCkBAIC0wLDAgKzEsMTAxIEBACis8IURPQ1RZUEUgaHRtbD4K
Kzx0aXRsZT5UZXN0IGV2ZW50cyBvcGVuaW5nIGEgc2Vjb25kIGRhdGFiYXNlIHdoZW4gb25lIGNv
bm5lY3Rpb24gaXMgb3BlbiBhbHJlYWR5PC90aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVm
PSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2NyaXB0PgorCis8ZGl2IGlkPSJs
b2ciPjwvZGl2PgorCis8c2NyaXB0PgorCisgICAgdmFyIGRiLCBkYl9nb3RfdmVyc2lvbmNoYW5n
ZSwgZGIyLAorICAgICAgICBldmVudHMgPSBbXSwKKyAgICAgICAgdCA9IGFzeW5jX3Rlc3QoZG9j
dW1lbnQudGl0bGUsIHt0aW1lb3V0OiAxMDAwMH0pOworCisgICAgdC5zdGVwKGZ1bmN0aW9uKCkg
eworICAgICAgICB2YXIgb3BlbnJxID0gaW5kZXhlZERCLm9wZW4oJ2RiJywgMyk7CisKKyAgICAg
ICAgLy8gMQorICAgICAgICBvcGVucnEub251cGdyYWRlbmVlZGVkID0gdC5zdGVwX2Z1bmMoZnVu
Y3Rpb24oZSkgeworICAgICAgICAgICAgZXZlbnRzLnB1c2goIm9wZW4uIiArIGUudHlwZSk7Cisg
ICAgICAgICAgICBlLnRhcmdldC5yZXN1bHQuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3JlJyk7Cisg
ICAgICAgIH0pOworCisgICAgICAgIC8vIDIKKyAgICAgICAgb3BlbnJxLm9uc3VjY2VzcyA9IHQu
c3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0
OworCisgICAgICAgICAgICBldmVudHMucHVzaCgib3Blbi4iICsgZS50eXBlKTsKKworICAgICAg
ICAgICAgLy8gMworICAgICAgICAgICAgZGIub252ZXJzaW9uY2hhbmdlID0gdC5zdGVwX2Z1bmMo
ZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgICAgIGV2ZW50cy5wdXNoKCJkYi4iICsgZS50eXBl
KTsKKworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMoZS5vbGRWZXJzaW9uLCAzLCAib2xk
IHZlcnNpb24iKTsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUubmV3VmVyc2lvbiwg
NCwgIm5ldyB2ZXJzaW9uIik7CisgICAgICAgICAgICAgICAgZGIuY2xvc2UoKTsKKyAgICAgICAg
ICAgIH0pOworCisgICAgICAgICAgICAvLyBFcnJvcnMKKyAgICAgICAgICAgIGRiLm9uZXJyb3Ig
PSBmYWlsKHQsICJkYi5lcnJvciIpOworICAgICAgICAgICAgZGIuYWJvcnQgPSBmYWlsKHQsICJk
Yi5hYm9ydCIpOworCisgICAgICAgICAgICBzZXRUaW1lb3V0KHQuc3RlcF9mdW5jKE9wZW5TZWNv
bmQpLCAxMCk7CisgICAgICAgIH0pOworCisgICAgICAgIC8vIEVycm9ycworICAgICAgICBvcGVu
cnEub25lcnJvciA9IGZhaWwodCwgIm9wZW4uZXJyb3IiKTsKKyAgICAgICAgb3BlbnJxLm9uYmxv
Y2tlZCA9IGZhaWwodCwgIm9wZW4uYmxvY2tlZCIpOworCisgICAgfSk7CisKKyAgICBmdW5jdGlv
biBPcGVuU2Vjb25kIChlKSB7CisgICAgICAgIGFzc2VydF9lcXVhbHMoZGIyLCB1bmRlZmluZWQp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKGRiICsgIiIsICJbb2JqZWN0IElEQkRhdGFiYXNlXSIp
OworICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGRiLm9iamVjdFN0b3JlTmFtZXMsIFsgInN0
b3JlIiBdKTsKKworICAgICAgICB2YXIgb3BlbnJxMiA9IGluZGV4ZWREQi5vcGVuKCdkYicsIDQp
OworCisgICAgICAgIC8vIDQKKyAgICAgICAgb3BlbnJxMi5vbnVwZ3JhZGVuZWVkZWQgPSB0LnN0
ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBkYjIgPSBlLnRhcmdldC5yZXN1bHQ7
CisKKyAgICAgICAgICAgIGV2ZW50cy5wdXNoKCJvcGVuMi4iICsgZS50eXBlKTsKKworICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhkYjIgKyAiIiwgIltvYmplY3QgSURCRGF0YWJhc2VdIik7CisK
KyAgICAgICAgICAgIC8vIEVycm9ycworICAgICAgICAgICAgZGIyLm9udmVyc2lvbmNoYW5nZSA9
IGZhaWwodCwgImRiMi52ZXJzaW9uY2hhbmdlIik7CisgICAgICAgICAgICBkYjIub25lcnJvciA9
IGZhaWwodCwgImRiMi5lcnJvciIpOworICAgICAgICAgICAgZGIyLmFib3J0ID0gZmFpbCh0LCAi
ZGIyLmFib3J0Iik7CisgICAgICAgIH0pOworCisgICAgICAgIC8vIDUKKyAgICAgICAgb3BlbnJx
Mi5vbnN1Y2Nlc3MgPSB0LnN0ZXBfZnVuYyhmdW5jdGlvbihlKSB7CisgICAgICAgICAgICBldmVu
dHMucHVzaCgib3BlbjIuIiArIGUudHlwZSk7CisKKyAgICAgICAgICAgIGFzc2VydF9hcnJheV9l
cXVhbHMoZXZlbnRzLAorICAgICAgICAgICAgICAgIFsgIm9wZW4udXBncmFkZW5lZWRlZCIsCisg
ICAgICAgICAgICAgICAgICAib3Blbi5zdWNjZXNzIiwKKyAgICAgICAgICAgICAgICAgICJkYi52
ZXJzaW9uY2hhbmdlIiwKKyAgICAgICAgICAgICAgICAgICJvcGVuMi51cGdyYWRlbmVlZGVkIiwK
KyAgICAgICAgICAgICAgICAgICJvcGVuMi5zdWNjZXNzIiwKKyAgICAgICAgICAgICAgICBdKTsK
KworICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsgdC5kb25lKCk7IH0sIDEwKTsK
KyAgICAgICAgfSk7CisKKyAgICAgICAgLy8gRXJyb3JzCisgICAgICAgIG9wZW5ycTIub25lcnJv
ciA9IGZhaWwodCwgIm9wZW4yLmVycm9yIik7CisgICAgICAgIG9wZW5ycTIub25ibG9ja2VkID0g
ZmFpbCh0LCAib3BlbjIuYmxvY2tlZCIpOworICAgIH0KKworCisgICAgLy8gQ2xlYW51cAorICAg
IGFkZF9jb21wbGV0aW9uX2NhbGxiYWNrKGZ1bmN0aW9uKHRlc3RzKSB7CisgICAgICAgIGlmIChk
YjIpIGRiMi5jbG9zZSgpOworICAgICAgICBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoJ2RiJyk7
CisgICAgfSkKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLXJlcXVlc3RxdWV1ZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLXJlcXVlc3RxdWV1ZS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjJmYjBmZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdHJh
bnNhY3Rpb24tcmVxdWVzdHF1ZXVlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworRkFJ
TCBUcmFuc2FjdGlvbnMgaGF2ZSBhIHJlcXVlc3QgcXVldWUgYXNzZXJ0X3VucmVhY2hlZDogdW5l
eHBlY3RlZCBkYi5lcnJvciAoQ29uc3RyYWludEVycm9yKSBSZWFjaGVkIHVucmVhY2hhYmxlIGNv
ZGUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi90cmFu
c2FjdGlvbi1yZXF1ZXN0cXVldWUuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi90cmFuc2FjdGlvbi1yZXF1ZXN0cXVldWUuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmU2YTFjZmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLXJlcXVlc3RxdWV1ZS5odG0KQEAgLTAsMCAr
MSw4OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPlRy
YW5zYWN0aW9ucyBoYXZlIGEgcmVxdWVzdCBxdWV1ZTwvdGl0bGU+Cis8bGluayByZWw9ImF1dGhv
ciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJPZGluIEjDuHJ0aGUgT21k
YWwiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPXN1cHBvcnQuanM+PC9zY3JpcHQ+CisKKzxzY3Jp
cHQ+CisKK3ZhciBkYiwgdCA9IGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0OiAx
MDAwMH0pLAorICAgIGtleXMgPSB7IHR4bjogW10sIHR4bjI6IFtdIH0sCisgICAgb3Blbl9ycSA9
IGNyZWF0ZWRiKHQpCisKK29wZW5fcnEub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgewor
ICAgIHZhciBpLCBvczsKKyAgICBkYiA9IGUudGFyZ2V0LnJlc3VsdDsKKworICAgIGZvciAoaSA9
IDE7IGkgPCA2OyBpKyspCisgICAgeworICAgICAgICBvcyA9IGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCJvcyIgKyBpLCB7IGF1dG9JbmNyZW1lbnQ6IHRydWUsIGtleVBhdGg6ICJrIiB9KTsKKyAgICAg
ICAgb3MuYWRkKHsgb3M6ICJvcyIgKyBpIH0pOworICAgICAgICBvcy5wdXQoeyBvczogIm9zIiAr
IGksIGs6IGl9KTsKKyAgICAgICAgb3MuYWRkKHsgb3M6ICJvcyIgKyBpIH0pOworICAgIH0KK30K
Kworb3Blbl9ycS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbihlKSB7CisgICAgdmFyIHR4biA9IGRiLnRy
YW5zYWN0aW9uKFsib3MyIiwgIm9zMSIsICJvczMiLCAib3M1Il0pCisgICAgdHhuLm9iamVjdFN0
b3JlKCJvczEiKS5vcGVuQ3Vyc29yKCkub25zdWNjZXNzID0gcmVnKCJ0eG4iKQorICAgIHR4bi5v
YmplY3RTdG9yZSgib3MzIikub3BlbkN1cnNvcigpLm9uc3VjY2VzcyA9IHJlZygidHhuIikKKyAg
ICB0eG4ub2JqZWN0U3RvcmUoIm9zMSIpLmdldCgyKS5vbnN1Y2Nlc3MgPSByZWcoInR4biIpCisg
ICAgdHhuLm9iamVjdFN0b3JlKCJvczIiKS5nZXQoMykub25zdWNjZXNzID0gcmVnKCJ0eG4iKQor
CisgICAgdmFyIHR4bjIgPSBkYi50cmFuc2FjdGlvbihbIm9zNCIsICJvczMiLCAib3MxIiwgIm9z
NSJdKQorICAgIHZhciBvczQgPSB0eG4yLm9iamVjdFN0b3JlKCJvczQiKQorCisgICAgZm9yICh2
YXIgaT0wOyBpIDwgMzsgaSsrKSB7CisgICAgICAgIG9zNC5vcGVuQ3Vyc29yKCkub25zdWNjZXNz
ID0gcmVnKCJ0eG4yIikKKyAgICAgICAgb3M0LmdldCg1KS5vbnN1Y2Nlc3MgPSByZWcoInR4bjIi
KQorICAgICAgICBvczQuZ2V0KDQpLm9uc3VjY2VzcyA9IHJlZygidHhuMiIpCisgICAgICAgIHR4
bi5vYmplY3RTdG9yZSgib3MyIikuZ2V0KDEpLm9uc3VjY2VzcyA9IHJlZygidHhuIikKKyAgICAg
ICAgdHhuMi5vYmplY3RTdG9yZSgib3MzIikuZ2V0KDEpLm9uc3VjY2VzcyA9IHJlZygidHhuMiIp
CisgICAgfQorCisgICAgdHhuMi5vYmplY3RTdG9yZSgib3MxIikuZ2V0KDIpLm9uc3VjY2VzcyA9
IHJlZygidHhuMiIpCisgICAgdHhuLm9iamVjdFN0b3JlKCJvczEiKS5vcGVuQ3Vyc29yKG51bGws
ICJwcmV2Iikub25zdWNjZXNzID0gcmVnKCJ0eG4iKQorICAgIG9zNC5vcGVuQ3Vyc29yKG51bGws
ICJwcmV2Iikub25zdWNjZXNzID0gcmVnKCJ0eG4yIikKKworICAgIHR4bi5vbmNvbXBsZXRlID0g
dC5zdGVwX2Z1bmMoZmluaXNoKTsKKyAgICB0eG4yLm9uY29tcGxldGUgPSB0LnN0ZXBfZnVuYyhm
aW5pc2gpOworfQorCisKK2Z1bmN0aW9uIHJlZyhuKSB7CisgICAgcmV0dXJuIHQuc3RlcF9mdW5j
KGZ1bmN0aW9uIChlKSB7CisgICAgICAgIHZhciB2ID0gZS50YXJnZXQucmVzdWx0OworICAgICAg
ICBpZiAodi52YWx1ZSkgdiA9IHYudmFsdWU7CisgICAgICAgIGtleXNbbl0ucHVzaCh2Lm9zICsg
IjogIiArIHYuayk7CisgICAgfSk7Cit9CisKK3ZhciBmaW5pc2hfdG9fZ28gPSAyOworZnVuY3Rp
b24gZmluaXNoKCkgeworICAgIGlmICgtLWZpbmlzaF90b19nbykKKyAgICAgICAgcmV0dXJuOwor
CisgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhrZXlzWyd0eG4nXSwgWworICAgICAgICAib3MxOiAx
IiwKKyAgICAgICAgIm9zMzogMSIsCisgICAgICAgICJvczE6IDIiLAorICAgICAgICAib3MyOiAz
IiwKKyAgICAgICAgIm9zMjogMSIsICJvczI6IDEiLCAib3MyOiAxIiwKKyAgICAgICAgIm9zMTog
MiIsCisgICAgXSwgJ3RyYW5zYWN0aW9uIGtleXMnKTsKKworICAgIGFzc2VydF9hcnJheV9lcXVh
bHMoa2V5c1sndHhuMiddLCBbCisgICAgICAgICJvczQ6IDEiLCAib3M0OiA1IiwgIm9zNDogNCIs
ICJvczM6IDEiLAorICAgICAgICAib3M0OiAxIiwgIm9zNDogNSIsICJvczQ6IDQiLCAib3MzOiAx
IiwKKyAgICAgICAgIm9zNDogMSIsICJvczQ6IDUiLCAib3M0OiA0IiwgIm9zMzogMSIsCisgICAg
ICAgICJvczE6IDIiLAorICAgICAgICAib3M0OiA1IiwKKyAgICBdLCAndHJhbnNhY3Rpb24gMiBr
ZXlzJyk7CisKKyAgICB0LmRvbmUoKTsKK30KKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwv
ZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi90cmFu
c2FjdGlvbl9idWJibGUtYW5kLWNhcHR1cmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL2luZGV4ZWRkYi90cmFuc2FjdGlvbl9idWJibGUtYW5kLWNhcHR1cmUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNlZWQzNzQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3RyYW5zYWN0
aW9uX2J1YmJsZS1hbmQtY2FwdHVyZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BB
U1MgQ2FwdHVyZSBhbmQgYnViYmxlIAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvaW5kZXhlZGRiL3RyYW5zYWN0aW9uX2J1YmJsZS1hbmQtY2FwdHVyZS5odG0gYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3RyYW5zYWN0aW9uX2J1YmJsZS1hbmQtY2Fw
dHVyZS5odG0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYWRkOTg1OQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdHJhbnNh
Y3Rpb25fYnViYmxlLWFuZC1jYXB0dXJlLmh0bQpAQCAtMCwwICsxLDc1IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+Q2FwdHVyZSBhbmQgYnViYmxlPC90
aXRsZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIg
dGl0bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3Vy
Y2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9c3VwcG9y
dC5qcz48L3NjcmlwdD4KKworPHNjcmlwdD4KKyAgICB2YXIgZXZlbnRzID0gW107CisKKyAgICB2
YXIgb3Blbl9ycSA9IGNyZWF0ZWRiKGFzeW5jX3Rlc3QoZG9jdW1lbnQudGl0bGUsIHt0aW1lb3V0
OiAxMDAwMH0pKTsKKyAgICBvcGVuX3JxLm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgdmFyIGRiID0gZS50YXJnZXQucmVzdWx0OworICAgICAgICB2YXIgdHhuID0gZS50
YXJnZXQudHJhbnNhY3Rpb247CisgICAgICAgIHZhciBzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCJzdG9yZSIpOworICAgICAgICB2YXIgcnExID0gc3RvcmUuYWRkKCIiLCAxKTsKKyAgICAg
ICAgdmFyIHJxMiA9IHN0b3JlLmFkZCgiIiwgMSk7CisKKyAgICAgICAgZGIub25lcnJvciA9IHVu
ZGVmaW5lZDsgLy8gV2Ugd2lsbCBydW4gZGIuZXJyb3IsIGJ1dCBkb24ndCBsZXQgdGhhdCBmYWls
IHRoZSB0ZXN0CisKKyAgICAgICAgbG9nX2V2ZW50cygnZGInLCBkYiwgJ3N1Y2Nlc3MnKTsKKyAg
ICAgICAgbG9nX2V2ZW50cygnZGInLCBkYiwgJ2Vycm9yJyk7CisKKyAgICAgICAgbG9nX2V2ZW50
cygndHhuJywgdHhuLCAnc3VjY2VzcycpOworICAgICAgICBsb2dfZXZlbnRzKCd0eG4nLCB0eG4s
ICdlcnJvcicpOworCisgICAgICAgIGxvZ19ldmVudHMoJ3JxMScsIHJxMSwgJ3N1Y2Nlc3MnKTsK
KyAgICAgICAgbG9nX2V2ZW50cygncnExJywgcnExLCAnZXJyb3InKTsKKworICAgICAgICBsb2df
ZXZlbnRzKCdycTInLCBycTIsICdzdWNjZXNzJyk7CisgICAgICAgIGxvZ19ldmVudHMoJ3JxMics
IHJxMiwgJ2Vycm9yJyk7CisKKyAgICAgICAgLy8gRG9uJ3QgbGV0IGl0IGdldCB0byBhYm9ydAor
ICAgICAgICBkYi5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIGZ1bmN0aW9uKGUpIHsgZS5wcmV2
ZW50RGVmYXVsdCgpOyB9LCBmYWxzZSk7CisgICAgfQorCisgICAgb3Blbl9ycS5vbnN1Y2Nlc3Mg
PSBmdW5jdGlvbihlKSB7CisgICAgICAgIGxvZygib3Blbl9ycS5zdWNjZXNzIikoZSk7CisgICAg
ICAgIGFzc2VydF9hcnJheV9lcXVhbHMoZXZlbnRzLCBbCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJjYXB0dXJlIGRiLnN1Y2Nlc3MiLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiY2FwdHVyZSB0eG4uc3VjY2VzcyIsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJjYXB0dXJlIHJxMS5zdWNjZXNzIiwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJ1YmJsZSAgcnExLnN1Y2Nlc3MiLAorCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjYXB0dXJlIGRiLmVycm9yOiBD
b25zdHJhaW50RXJyb3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
Y2FwdHVyZSB0eG4uZXJyb3I6IENvbnN0cmFpbnRFcnJvciIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJjYXB0dXJlIHJxMi5lcnJvcjogQ29uc3RyYWludEVycm9yIiwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJ1YmJsZSAgcnEyLmVycm9y
OiBDb25zdHJhaW50RXJyb3IiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiYnViYmxlICB0eG4uZXJyb3I6IENvbnN0cmFpbnRFcnJvciIsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJidWJibGUgIGRiLmVycm9yOiBDb25zdHJhaW50RXJyb3Ii
LAorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvcGVuX3JxLnN1Y2Nl
c3MiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgImV2ZW50cyIpOworICAgICAgICB0aGlzLmRvbmUoKTsKKyAgICB9
CisKKworICAgIGZ1bmN0aW9uIGxvZ19ldmVudHModHlwZSwgb2JqLCBldnQpIHsKKyAgICAgICAg
b2JqLmFkZEV2ZW50TGlzdGVuZXIoZXZ0LCBsb2coJ2NhcHR1cmUgJyArIHR5cGUgKyAnLicgKyBl
dnQpLCB0cnVlKTsKKyAgICAgICAgb2JqLmFkZEV2ZW50TGlzdGVuZXIoZXZ0LCBsb2coJ2J1YmJs
ZSAgJyArIHR5cGUgKyAnLicgKyBldnQpLCBmYWxzZSk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
bG9nKG1zZykgeworICAgICAgICByZXR1cm4gZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgaWYo
ZSAmJiBlLnRhcmdldCAmJiBlLnRhcmdldC5lcnJvcikKKyAgICAgICAgICAgICAgICBldmVudHMu
cHVzaChtc2cgKyAiOiAiICsgZS50YXJnZXQuZXJyb3IubmFtZSk7CisgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgZXZlbnRzLnB1c2gobXNnKTsKKyAgICAgICAgfTsKKyAgICB9Cis8
L3NjcmlwdD4KKworPGRpdiBpZD1sb2c+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvaW5kZXhlZGRiL3ZhbHVlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvdmFsdWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjhjMTU1MmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3ZhbHVlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQg
QEAKKworUEFTUyBWYWx1ZXMgLSBEYXRlIAorUEFTUyBWYWx1ZXMgLSBBcnJheSAKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi92YWx1ZS5odG0gYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3ZhbHVlLmh0bQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5kMGU4M2I2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi92YWx1ZS5odG0KQEAgLTAsMCArMSw0MCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+VmFsdWVzPC90aXRs
ZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0
bGU9Ik9kaW4gSMO4cnRoZSBPbWRhbCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQu
anMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorZnVuY3Rpb24gdmFsdWUodmFsdWUsIF9pbnN0YW5j
ZW9mKSB7CisgICAgdmFyIHQgPSBhc3luY190ZXN0KGRvY3VtZW50LnRpdGxlICsgIiAtICIgKyBf
aW5zdGFuY2VvZi5uYW1lKTsKKyAgICB0LnN0ZXAoZnVuY3Rpb24oKSB7CisgICAgICAgIGFzc2Vy
dF90cnVlKHZhbHVlIGluc3RhbmNlb2YgX2luc3RhbmNlb2YsICJURVNUIEVSUk9SLCBpbnN0YW5j
ZW9mIik7CisgICAgfSk7CisKKyAgICBjcmVhdGVkYih0KS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5j
dGlvbihlKSB7CisgICAgICAgIGUudGFyZ2V0LnJlc3VsdAorICAgICAgICAgICAgICAgIC5jcmVh
dGVPYmplY3RTdG9yZSgic3RvcmUiKQorICAgICAgICAgICAgICAgIC5hZGQodmFsdWUsIDEpOwor
CisgICAgICAgIGUudGFyZ2V0Lm9uc3VjY2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsK
KyAgICAgICAgICAgIGUudGFyZ2V0LnJlc3VsdAorICAgICAgICAgICAgICAgICAgICAudHJhbnNh
Y3Rpb24oInN0b3JlIikKKyAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzdG9yZSIp
CisgICAgICAgICAgICAgICAgICAgIC5nZXQoMSkKKyAgICAgICAgICAgICAgICAgICAgLm9uc3Vj
Y2VzcyA9IHQuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0X3RydWUoZS50YXJnZXQucmVzdWx0IGluc3RhbmNlb2YgX2luc3RhbmNlb2Ys
ICJpbnN0YW5jZW9mIikKKyAgICAgICAgICAgICAgICB0LmRvbmUoKTsKKyAgICAgICAgICAgIH0p
OworICAgICAgICB9KTsKKyAgICB9OworfQorCit2YWx1ZShuZXcgRGF0ZSgpLCBEYXRlKTsKK3Zh
bHVlKG5ldyBBcnJheSgpLCBBcnJheSk7CisKKzwvc2NyaXB0PgorCis8ZGl2IGlkPSJsb2ciPjwv
ZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi92YWx1
ZV9yZWN1cnNpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4
ZWRkYi92YWx1ZV9yZWN1cnNpdmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmU5NTdlN2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvaW5kZXhlZGRiL3ZhbHVlX3JlY3Vyc2l2ZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw1IEBACisKK1BBU1MgUmVjdXJzaXZlIHZhbHVlIC0gYXJyYXkgZGlyZWN0bHkgY29udGFpbnMg
c2VsZiAKK1BBU1MgUmVjdXJzaXZlIHZhbHVlIC0gYXJyYXkgaW5kaXJlY3RseSBjb250YWlucyBz
ZWxmIAorUEFTUyBSZWN1cnNpdmUgdmFsdWUgLSBhcnJheSBtZW1iZXIgY29udGFpbnMgc2VsZiAK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi92YWx1ZV9y
ZWN1cnNpdmUuaHRtIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi92YWx1ZV9y
ZWN1cnNpdmUuaHRtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk0NDZhZWEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3Zh
bHVlX3JlY3Vyc2l2ZS5odG0KQEAgLTAsMCArMSw2NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+UmVjdXJzaXZlIHZhbHVlPC90aXRsZT4KKzxsaW5r
IHJlbD0iYXV0aG9yIiBocmVmPSJtYWlsdG86b2RpbmhvQG9wZXJhLmNvbSIgdGl0bGU9Ik9kaW4g
SMO4cnRoZSBPbWRhbCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InN1cHBvcnQuanMiPjwvc2Ny
aXB0PgorCis8c2NyaXB0PgorZnVuY3Rpb24gcmVjdXJzaXZlX3ZhbHVlKGRlc2MsIHZhbHVlKSB7
CisgICAgdmFyIGRiLCB0ID0gYXN5bmNfdGVzdChkb2N1bWVudC50aXRsZSArICIgLSAiICsgZGVz
Yyk7CisKKyAgICBjcmVhdGVkYih0KS5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKSB7Cisg
ICAgICAgIGRiID0gZS50YXJnZXQucmVzdWx0CisgICAgICAgIGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCJzdG9yZSIpCisgICAgICAgICAgLmFkZCh2YWx1ZSwgMSk7CisKKyAgICAgICAgZS50YXJnZXQu
b25zdWNjZXNzID0gdC5zdGVwX2Z1bmMoZnVuY3Rpb24oZSkgeworICAgICAgICAgICAgZGIudHJh
bnNhY3Rpb24oJ3N0b3JlJykKKyAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCdzdG9yZScpCisg
ICAgICAgICAgICAgIC5nZXQoMSkKKyAgICAgICAgICAgICAgLm9uc3VjY2VzcyA9IHQuc3RlcF9m
dW5jKGZ1bmN0aW9uKGUpCisgICAgICAgICAgICB7CisKKyAgICAgICAgICAgICAgICB0cnkKKyAg
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHZhciBmcmVzaF92YWx1ZSA9IEpT
T04uc3RyaW5naWZ5KHZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0X3VucmVhY2hl
ZCgiVGVzdGNhc2UgaXMgd3JpdHRlbiB3cm9uZ2x5LCBtdXN0IHN1cHBseSBzb21ldGhpbmcgcmVj
dXJzaXZlICh0aGF0IEpTT04gd29uJ3Qgc3RyaW5naWZ5KS4iKTsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICAgICAgY2F0Y2ggKGUpCisgICAgICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICAgICBpZiAoZS5uYW1lID09ICdUeXBlRXJyb3InKQorICAgICAgICAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgICAgICAgICB0cnkKKyAgICAgICAgICAgICAgICAgICAgICAg
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeShlLnRhcmdldC5y
ZXN1bHQpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzc2VydF91bnJlYWNoZWQoIkV4
cGVjdGVkIGEgbm9uLUpTT04tc2VyaWFsaXphYmxlIHZhbHVlIGJhY2ssIGRpZG4ndCBnZXQgdGhh
dC4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAg
IGNhdGNoIChlKQorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHQuZG9uZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBlOworICAg
ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0pOworICAgICAgICB9KTsKKyAgICB9OworfQor
Cit2YXIgcmVjdXJzaXZlID0gW107CityZWN1cnNpdmUucHVzaChyZWN1cnNpdmUpOworcmVjdXJz
aXZlX3ZhbHVlKCdhcnJheSBkaXJlY3RseSBjb250YWlucyBzZWxmJywgcmVjdXJzaXZlKTsKKwor
dmFyIHJlY3Vyc2l2ZTIgPSBbXTsKK3JlY3Vyc2l2ZTIucHVzaChbcmVjdXJzaXZlMl0pOworcmVj
dXJzaXZlX3ZhbHVlKCdhcnJheSBpbmRpcmVjdGx5IGNvbnRhaW5zIHNlbGYnLCByZWN1cnNpdmUy
KTsKKwordmFyIHJlY3Vyc2l2ZTMgPSBbcmVjdXJzaXZlXTsKK3JlY3Vyc2l2ZV92YWx1ZSgnYXJy
YXkgbWVtYmVyIGNvbnRhaW5zIHNlbGYnLCByZWN1cnNpdmUzKTsKKworPC9zY3JpcHQ+CisKKzxk
aXYgaWQ9ImxvZyI+PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
aW5kZXhlZGRiL3dyaXRlci1zdGFydmF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvd3JpdGVyLXN0YXJ2YXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0NjEwMTEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3dyaXRlci1zdGFydmF0aW9uLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBXcml0ZXIgc3RhcnZhdGlvbiAKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi93cml0ZXItc3Rh
cnZhdGlvbi5odG0gYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvaW5kZXhlZGRiL3dyaXRlci1z
dGFydmF0aW9uLmh0bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZGE2ZGNi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi93
cml0ZXItc3RhcnZhdGlvbi5odG0KQEAgLTAsMCArMSwxMDUgQEAKKzwhRE9DVFlQRSBodG1sPgor
PG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5Xcml0ZXIgc3RhcnZhdGlvbjwvdGl0bGU+Cis8
bGluayByZWw9ImF1dGhvciIgaHJlZj0ibWFpbHRvOm9kaW5ob0BvcGVyYS5jb20iIHRpdGxlPSJP
ZGluIEjDuHJ0aGUgT21kYWwiPgorPG1ldGEgbmFtZT10aW1lb3V0IGNvbnRlbnQ9bG9uZz4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz1zdXBwb3J0LmpzPjwvc2NyaXB0PgorCis8c2NyaXB0PgorICAg
IHZhciBkYiwgcmVhZF9yZXF1ZXN0X2NvdW50ID0gMCwgcmVhZF9zdWNjZXNzX2NvdW50ID0gMDsK
KyAgICB2YXIgd3JpdGVfcmVxdWVzdF9jb3VudCA9IDAsIHdyaXRlX3N1Y2Nlc3NfY291bnQgPSAw
OworICAgIHZhciBSUV9DT1VOVCA9IDI1OworCisgICAgdmFyIG9wZW5fcnEgPSBjcmVhdGVkYihh
c3luY190ZXN0KHVuZGVmaW5lZCwge3RpbWVvdXQ6IDIwMDAwfSkpOworICAgIG9wZW5fcnEub251
cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkgeworICAgICAgICBkYiA9IGUudGFyZ2V0LnJlc3Vs
dDsKKyAgICAgICAgZGIuY3JlYXRlT2JqZWN0U3RvcmUoInMiKQorICAgICAgICAgIC5hZGQoIjEi
LCAxKTsKKyAgICB9CisKKyAgICBvcGVuX3JxLm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpIHsKKyAg
ICAgICAgdmFyIGkgPSAwLCBjb250aW51ZV9yZWFkaW5nID0gdHJ1ZTsKKworICAgICAgICAvKiBQ
cmUtZmlsbCBzb21lIHJlYWQgcmVxdWVzdHMgKi8KKyAgICAgICAgZm9yIChpID0gMDsgaSA8IFJR
X0NPVU5UOyBpKyspCisgICAgICAgIHsKKyAgICAgICAgICAgIHJlYWRfcmVxdWVzdF9jb3VudCsr
OworCisgICAgICAgICAgICBkYi50cmFuc2FjdGlvbigicyIpCisgICAgICAgICAgICAgIC5vYmpl
Y3RTdG9yZSgicyIpCisgICAgICAgICAgICAgIC5nZXQoMSkKKyAgICAgICAgICAgICAgLm9uc3Vj
Y2VzcyA9IHRoaXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpIHsKKyAgICAgICAgICAgICAgICAgICAg
cmVhZF9zdWNjZXNzX2NvdW50Kys7CisgICAgICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
ZS50YXJnZXQudHJhbnNhY3Rpb24ubW9kZSwgInJlYWRvbmx5Iik7CisgICAgICAgICAgICAgICAg
fSk7CisgICAgICAgIH0KKworICAgICAgICB0aGlzLnN0ZXAobG9vcCk7CisKKyAgICAgICAgZnVu
Y3Rpb24gbG9vcCgpIHsKKyAgICAgICAgICAgIHJlYWRfcmVxdWVzdF9jb3VudCsrOworCisgICAg
ICAgICAgICBkYi50cmFuc2FjdGlvbigicyIpCisgICAgICAgICAgICAgIC5vYmplY3RTdG9yZSgi
cyIpCisgICAgICAgICAgICAgIC5nZXQoMSkKKyAgICAgICAgICAgICAgLm9uc3VjY2VzcyA9IHRo
aXMuc3RlcF9mdW5jKGZ1bmN0aW9uKGUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
cmVhZF9zdWNjZXNzX2NvdW50Kys7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhlLnRh
cmdldC50cmFuc2FjdGlvbi5tb2RlLCAicmVhZG9ubHkiKTsKKworICAgICAgICAgICAgICAgIGlm
IChyZWFkX3N1Y2Nlc3NfY291bnQgPj0gUlFfQ09VTlQgJiYgd3JpdGVfcmVxdWVzdF9jb3VudCA9
PSAwKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgd3JpdGVfcmVxdWVz
dF9jb3VudCsrOworCisgICAgICAgICAgICAgICAgICAgIGRiLnRyYW5zYWN0aW9uKCJzIiwgInJl
YWR3cml0ZSIpCisgICAgICAgICAgICAgICAgICAgICAgLm9iamVjdFN0b3JlKCJzIikKKyAgICAg
ICAgICAgICAgICAgICAgICAuYWRkKCJ3cml0dGVuIiwgcmVhZF9yZXF1ZXN0X2NvdW50KQorICAg
ICAgICAgICAgICAgICAgICAgIC5vbnN1Y2Nlc3MgPSB0aGlzLnN0ZXBfZnVuYyhmdW5jdGlvbihl
KQorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZV9z
dWNjZXNzX2NvdW50Kys7CisgICAgICAgICAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUu
dGFyZ2V0LnRyYW5zYWN0aW9uLm1vZGUsICJyZWFkd3JpdGUiKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMoZS50YXJnZXQucmVzdWx0LCByZWFkX3N1Y2Nlc3NfY291bnQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAid3JpdGUgY2IgY2FtZSBi
ZWZvcmUgbGF0ZXIgcmVhZCBjYidzIikKKyAgICAgICAgICAgICAgICAgICAgfSk7CisKKyAgICAg
ICAgICAgICAgICAgICAgLyogUmVhZHMgZG9uZSBhZnRlciB0aGUgd3JpdGUgKi8KKyAgICAgICAg
ICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IDU7IGkrKykKKyAgICAgICAgICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgICAgICAgICAgcmVhZF9yZXF1ZXN0X2NvdW50Kys7CisKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGRiLnRyYW5zYWN0aW9uKCJzIikKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgLm9iamVjdFN0b3JlKCJzIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgLmdl
dCgxKQorICAgICAgICAgICAgICAgICAgICAgICAgICAub25zdWNjZXNzID0gdGhpcy5zdGVwX2Z1
bmMoZnVuY3Rpb24oZSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZWFkX3N1Y2Nlc3NfY291bnQrKzsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgfSk7CisKKyAgICAgICAgICAgIGlmIChyZWFkX3N1Y2Nlc3NfY291bnQgPCBSUV9DT1VO
VCArIDUpCisgICAgICAgICAgICAgICAgc2V0VGltZW91dCh0aGlzLnN0ZXBfZnVuYyhsb29wKSwg
d3JpdGVfcmVxdWVzdF9jb3VudCA/IDEwMDAgOiAxMDApOworICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIC8vIFRoaXMgaXMgbWVyZWx5IGEgIm5pY2UiIGhhY2sgdG8gcnVuIGZpbmlz
aCBhZnRlciB0aGUgbGFzdCByZXF1ZXN0IGlzIGRvbmUKKyAgICAgICAgICAgICAgICBkYi50cmFu
c2FjdGlvbigicyIpCisgICAgICAgICAgICAgICAgICAub2JqZWN0U3RvcmUoInMiKQorICAgICAg
ICAgICAgICAgICAgLmNvdW50KCkKKyAgICAgICAgICAgICAgICAgIC5vbnN1Y2Nlc3MgPSB0aGlz
LnN0ZXBfZnVuYyhmdW5jdGlvbigpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICAgICBzZXRUaW1lb3V0KHRoaXMuc3RlcF9mdW5jKGZpbmlzaCksIDEwMCk7CisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgIH0KKyAgICB9CisKKworZnVuY3Rpb24gZmluaXNoKCkgeworICAg
IGFzc2VydF9lcXVhbHMocmVhZF9yZXF1ZXN0X2NvdW50LCByZWFkX3N1Y2Nlc3NfY291bnQsICJy
ZWFkIGNvdW50cyIpOworICAgIGFzc2VydF9lcXVhbHMod3JpdGVfcmVxdWVzdF9jb3VudCwgd3Jp
dGVfc3VjY2Vzc19jb3VudCwgIndyaXRlIGNvdW50cyIpOworICAgIHRoaXMuZG9uZSgpOworfQor
PC9zY3JpcHQ+CisKKzxkaXYgaWQ9bG9nPjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDcwNWJmNTUuLjQzNTY5YWUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTU2LDYgKzU2
LDcgQEAgd2Via2l0Lm9yZy9iLzE0NjYyMiBbIFlvc2VtaXRlIERlYnVnIF0gd2ViZ2wvMS4wLjIv
Y29uZm9ybWFuY2UvbW9yZS9mdW5jdGlvbnMvY28KIAogIyBJbmRleGVkREIgaXMgbm90IHlldCBl
bmFibGVkIGluIE1hYyBXSzEKIHN0b3JhZ2UvaW5kZXhlZGRiCitpbXBvcnRlZC93M2MvaW5kZXhl
ZGRiCiBmYXN0L2hpc3RvcnkvcGFnZS1jYWNoZS1pbmRleGVkLWNsb3NlZC1kYi5odG1sCiBmYXN0
L2hpc3RvcnkvcGFnZS1jYWNoZS1pbmRleGVkLW9wZW5lZC1kYi5odG1sCiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2Nyb3NzLW9yaWdpbi1pbmRleGVkZGItYWxsb3dlZC5odG1sCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGJiZmM1NjMuLjhlYzdjZWEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC0yNTEsNiArMjUxLDcg
QEAgZmFzdC9vdmVyZmxvdy9zY3JvbGxiYXItcmVzdG9yZWQtYW5kLXRoZW4tbG9ja2VkLmh0bWwg
WyBTa2lwIF0KIAogIyBUT0RPIEluZGV4ZWREQiBpcyBub3QgeWV0IGVuYWJsZWQuCiBzdG9yYWdl
L2luZGV4ZWRkYi8gWyBTa2lwIF0KK2ltcG9ydGVkL3czYy9pbmRleGVkZGIgWyBTa2lwIF0KIGh0
dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWluZGV4ZWRkYi1hbGxvd2VkLmh0bWwgWyBT
a2lwIF0KIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWluZGV4ZWRkYi5odG1sIFsg
U2tpcCBdCiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRi
LWFsbG93ZWQuaHRtbCBbIFNraXAgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCAyNDFlM2M5Li40YjZkM2VhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNTY2LDYgKzU2NiwxNyBAQCBodHRwL3Rlc3RzL3NlY3Vy
aXR5L2ZlZWQtdXJscy1mcm9tLXJlbW90ZS5odG1sCiAjIEZpcnN0IHR3byBsaW5lcyBhcmUgcmV2
ZXJzZWQgd2hlbiB0ZXN0IGlzIGZsYWt5LgogZmFzdC9wcmVsb2FkZXIvZG9jdW1lbnQtd3JpdGUt
Mi5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAorIyBUZXN0IGNyYXNoZXMgZnJvbSBpbml0aWFsIGlt
cG9ydCBvZiB3M2MgSW5kZXhlZERCIHRlc3RzCitpbXBvcnRlZC93M2MvaW5kZXhlZGRiL2lkYmZh
Y3Rvcnlfb3BlbjEwLmh0bSBbIFNraXAgXQoraW1wb3J0ZWQvdzNjL2luZGV4ZWRkYi9pZGJvYmpl
Y3RzdG9yZV9jcmVhdGVJbmRleDQtZGVsZXRlSW5kZXgtZXZlbnRfb3JkZXIuaHRtIFsgU2tpcCBd
CitpbXBvcnRlZC93M2MvaW5kZXhlZGRiL2tleV92YWxpZC5odG1sIFsgU2tpcCBdCisKKyMgVGVz
dCB0aW1lb3V0cyBmcm9tIGluaXRpYWwgaW1wb3J0IG9mIHczYyBJbmRleGVkREIgdGVzdHMKK2lt
cG9ydGVkL3czYy9pbmRleGVkZGIvaW50ZXJmYWNlcy5odG1sIFsgUGFzcyBUaW1lb3V0IF0KKwor
IyBGbGFreSB0ZXN0cyBmcm9tIGluaXRpYWwgaW1wb3J0IG9mIHczYyBJbmRleGVkREIgdGVzdHMK
K2ltcG9ydGVkL3czYy9pbmRleGVkZGIvdHJhbnNhY3Rpb24tbGlmZXRpbWUuaHRtIFsgUGFzcyBG
YWlsdXJlIF0KKwogIyMjIEVORCBPRiAoMykgVW5jbGFzc2lmaWVkIGZhaWx1cmVzCiAjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwZWQ3NWUx
Li4wODI1ZjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTUtMDktMDIgIEJyYWR5
IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIEltcG9ydCBXM0MgSW5kZXhl
ZERCIHRlc3RzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQ4NzEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGVzdHM6IGltcG9ydGVkL3czYy9pbmRleGVkZGIvKgorCisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2U6
Om9uVmVyc2lvbkNoYW5nZSk6IFJlbW92ZSBpbnZhbGlkIGFzc2VydCAtIHZlcnNpb24gZ29lcyBi
YWNrIHRvIDAgd2hlbiBpbml0aWFsCisgICAgICAgICAgdmVyc2lvbkNoYW5nZSB0cmFuc2FjdGlv
biBpcyBhYm9ydGVkLgorCiAyMDE1LTA4LTI4ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxl
LmNvbT4KIAogICAgICAgICBVc2UgbmV3IENGTmV0d29yayBjb29raWUgamFyIFNQSSBvbmx5IG9u
IEVsIENhcGl0YW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJE
YXRhYmFzZS5jcHAKaW5kZXggNGViNjgxOC4uOWVlZjlhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcApAQCAtMzM0LDcgKzMzNCw3IEBA
IHZvaWQgSURCRGF0YWJhc2U6Om9uVmVyc2lvbkNoYW5nZSh1aW50NjRfdCBvbGRWZXJzaW9uLCB1
aW50NjRfdCBuZXdWZXJzaW9uKQogICAgIGlmIChtX2Nsb3NlUGVuZGluZykKICAgICAgICAgcmV0
dXJuOwogCi0gICAgQVNTRVJUKG5ld1ZlcnNpb24gIT0gSURCRGF0YWJhc2VNZXRhZGF0YTo6Tm9J
bnRWZXJzaW9uICYmIG5ld1ZlcnNpb24gIT0gSURCRGF0YWJhc2VNZXRhZGF0YTo6RGVmYXVsdElu
dFZlcnNpb24pOworICAgIEFTU0VSVChuZXdWZXJzaW9uICE9IElEQkRhdGFiYXNlTWV0YWRhdGE6
Ok5vSW50VmVyc2lvbik7CiAgICAgZW5xdWV1ZUV2ZW50KElEQlZlcnNpb25DaGFuZ2VFdmVudDo6
Y3JlYXRlKG9sZFZlcnNpb24sIG5ld1ZlcnNpb24sIGV2ZW50TmFtZXMoKS52ZXJzaW9uY2hhbmdl
RXZlbnQpKTsKIH0KIAo=
</data>
<flag name="review"
          id="285608"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>