<?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>231971</bug_id>
          
          <creation_ts>2021-10-19 11:34:49 -0700</creation_ts>
          <short_desc>http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration.html is a flaky timeout</short_desc>
          <delta_ts>2021-10-21 11:26:20 -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>New Bugs</component>
          <version>WebKit Nightly Build</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kate Cheney">katherine_cheney</reporter>
          <assigned_to name="Kate Cheney">katherine_cheney</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1806188</commentid>
    <comment_count>0</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-10-19 11:34:49 -0700</bug_when>
    <thetext>http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration.html is a flaky timeout</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806190</commentid>
    <comment_count>1</comment_count>
      <attachid>441764</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-10-19 11:35:58 -0700</bug_when>
    <thetext>Created attachment 441764
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806192</commentid>
    <comment_count>2</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-10-19 11:36:29 -0700</bug_when>
    <thetext>rdar://84270108</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806224</commentid>
    <comment_count>3</comment_count>
      <attachid>441764</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-10-19 12:27:27 -0700</bug_when>
    <thetext>Comment on attachment 441764
Patch

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

&gt; LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago.html:236
&gt; +        await resetCookies();

Shouldn&apos;t this have been a JS failure before or is it just a warning in IDEs?

&gt; LayoutTests/http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration-expected.txt:23
&gt; +        localhost

This is surprising. Do you know what caused this change?

&gt; LayoutTests/http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration-expected.txt:35
&gt; +        127.0.0.1

Ditto since this mirrors the above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806245</commentid>
    <comment_count>4</comment_count>
      <attachid>441764</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-10-19 12:48:51 -0700</bug_when>
    <thetext>Comment on attachment 441764
Patch

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

&gt;&gt; LayoutTests/http/tests/resourceLoadStatistics/operating-dates-all-but-cookies-not-removed-with-user-interaction-6-days-ago.html:236
&gt;&gt; +        await resetCookies();
&gt; 
&gt; Shouldn&apos;t this have been a JS failure before or is it just a warning in IDEs?

Not sure about the warning, but it didn&apos;t cause a JS error.

&gt;&gt; LayoutTests/http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration-expected.txt:23
&gt;&gt; +        localhost
&gt; 
&gt; This is surprising. Do you know what caused this change?

See ChangeLog. Reseting cookies involves a redirect, which changes the prevalence and data records removed as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806256</commentid>
    <comment_count>5</comment_count>
      <attachid>441764</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-10-19 12:59:19 -0700</bug_when>
    <thetext>Comment on attachment 441764
Patch

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

&gt;&gt;&gt; LayoutTests/http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration-expected.txt:23
&gt;&gt;&gt; +        localhost
&gt;&gt; 
&gt;&gt; This is surprising. Do you know what caused this change?
&gt; 
&gt; See ChangeLog. Reseting cookies involves a redirect, which changes the prevalence and data records removed as well.

I see. Does it really cause a redirect though? Or a navigation? Why didn&apos;t we see flakiness adding that extra redirect before? Maybe we did? I suspect this is our delayed redirect detection kicking in. Do you think so too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806299</commentid>
    <comment_count>6</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-10-19 14:05:29 -0700</bug_when>
    <thetext>(In reply to John Wilander from comment #5)
&gt; Comment on attachment 441764 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=441764&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; LayoutTests/http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration-expected.txt:23
&gt; &gt;&gt;&gt; +        localhost
&gt; &gt;&gt; 
&gt; &gt;&gt; This is surprising. Do you know what caused this change?
&gt; &gt; 
&gt; &gt; See ChangeLog. Reseting cookies involves a redirect, which changes the prevalence and data records removed as well.
&gt; 
&gt; I see. Does it really cause a redirect though? Or a navigation? Why didn&apos;t
&gt; we see flakiness adding that extra redirect before? Maybe we did? I suspect
&gt; this is our delayed redirect detection kicking in. Do you think so too?

It causes a window.open(), which maybe we don&apos;t store in ITP. Do we have delayed redirect detection? If so, then that is probably what this is. It probably wasn&apos;t kicking in before because resetCookies() never finished - notifyDone was always called immediately after. My guess is the shift from php to python changed the timing up to make this occasionally flaky.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806342</commentid>
    <comment_count>7</comment_count>
      <attachid>441764</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-10-19 14:59:23 -0700</bug_when>
    <thetext>Comment on attachment 441764
Patch

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

&gt;&gt;&gt;&gt;&gt; LayoutTests/http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration-expected.txt:23
&gt;&gt;&gt;&gt;&gt; +        localhost
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; This is surprising. Do you know what caused this change?
&gt;&gt;&gt; 
&gt;&gt;&gt; See ChangeLog. Reseting cookies involves a redirect, which changes the prevalence and data records removed as well.
&gt;&gt; 
&gt;&gt; I see. Does it really cause a redirect though? Or a navigation? Why didn&apos;t we see flakiness adding that extra redirect before? Maybe we did? I suspect this is our delayed redirect detection kicking in. Do you think so too?
&gt; 
&gt; It causes a window.open(), which maybe we don&apos;t store in ITP. Do we have delayed redirect detection? If so, then that is probably what this is. It probably wasn&apos;t kicking in before because resetCookies() never finished - notifyDone was always called immediately after. My guess is the shift from php to python changed the timing up to make this occasionally flaky.

I bet you it opens a popup that in turn redirects to be able to clear cookies for both 127.0.0.1 and localhost.

&gt; LayoutTests/http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration-expected.txt:29
&gt; +    dataRecordsRemoved: 2

This is strange too. Do you know why an additional data removal run is done?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806355</commentid>
    <comment_count>8</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-10-19 15:08:08 -0700</bug_when>
    <thetext>(In reply to John Wilander from comment #7)
&gt; Comment on attachment 441764 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=441764&amp;action=review
&gt; 
&gt; &gt;&gt;&gt;&gt;&gt; LayoutTests/http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration-expected.txt:23
&gt; &gt;&gt;&gt;&gt;&gt; +        localhost
&gt; &gt;&gt;&gt;&gt; 
&gt; &gt;&gt;&gt;&gt; This is surprising. Do you know what caused this change?
&gt; &gt;&gt;&gt; 
&gt; &gt;&gt;&gt; See ChangeLog. Reseting cookies involves a redirect, which changes the prevalence and data records removed as well.
&gt; &gt;&gt; 
&gt; &gt;&gt; I see. Does it really cause a redirect though? Or a navigation? Why didn&apos;t we see flakiness adding that extra redirect before? Maybe we did? I suspect this is our delayed redirect detection kicking in. Do you think so too?
&gt; &gt; 
&gt; &gt; It causes a window.open(), which maybe we don&apos;t store in ITP. Do we have delayed redirect detection? If so, then that is probably what this is. It probably wasn&apos;t kicking in before because resetCookies() never finished - notifyDone was always called immediately after. My guess is the shift from php to python changed the timing up to make this occasionally flaky.
&gt; 
&gt; I bet you it opens a popup that in turn redirects to be able to clear
&gt; cookies for both 127.0.0.1 and localhost.
&gt; 
&gt; &gt; LayoutTests/http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration-expected.txt:29
&gt; &gt; +    dataRecordsRemoved: 2
&gt; 
&gt; This is strange too. Do you know why an additional data removal run is done?

I think because 127.0.0.1 is newly prevalent (because it is redirected-to by a prevalent domain) so it does another processing and removes that data.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806453</commentid>
    <comment_count>9</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-10-19 18:58:34 -0700</bug_when>
    <thetext>(In reply to Kate Cheney from comment #8)
&gt; (In reply to John Wilander from comment #7)
&gt; &gt; Comment on attachment 441764 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=441764&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt;&gt;&gt;&gt; LayoutTests/http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration-expected.txt:23
&gt; &gt; &gt;&gt;&gt;&gt;&gt; +        localhost
&gt; &gt; &gt;&gt;&gt;&gt; 
&gt; &gt; &gt;&gt;&gt;&gt; This is surprising. Do you know what caused this change?
&gt; &gt; &gt;&gt;&gt; 
&gt; &gt; &gt;&gt;&gt; See ChangeLog. Reseting cookies involves a redirect, which changes the prevalence and data records removed as well.
&gt; &gt; &gt;&gt; 
&gt; &gt; &gt;&gt; I see. Does it really cause a redirect though? Or a navigation? Why didn&apos;t we see flakiness adding that extra redirect before? Maybe we did? I suspect this is our delayed redirect detection kicking in. Do you think so too?
&gt; &gt; &gt; 
&gt; &gt; &gt; It causes a window.open(), which maybe we don&apos;t store in ITP. Do we have delayed redirect detection? If so, then that is probably what this is. It probably wasn&apos;t kicking in before because resetCookies() never finished - notifyDone was always called immediately after. My guess is the shift from php to python changed the timing up to make this occasionally flaky.
&gt; &gt; 
&gt; &gt; I bet you it opens a popup that in turn redirects to be able to clear
&gt; &gt; cookies for both 127.0.0.1 and localhost.
&gt; &gt; 
&gt; &gt; &gt; LayoutTests/http/tests/resourceLoadStatistics/website-data-removal-for-site-navigated-to-with-link-decoration-expected.txt:29
&gt; &gt; &gt; +    dataRecordsRemoved: 2
&gt; &gt; 
&gt; &gt; This is strange too. Do you know why an additional data removal run is done?
&gt; 
&gt; I think because 127.0.0.1 is newly prevalent (because it is redirected-to by
&gt; a prevalent domain) so it does another processing and removes that data.

To clarify, 127.0.0.1 is first not-prevalent, so IDB and LocalStorage are removed (first removal). Then it becomes prevalent, so cookies are removed (second removal).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806483</commentid>
    <comment_count>10</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-10-19 21:04:09 -0700</bug_when>
    <thetext>I have to look at the setup here and understand what’s getting classified and not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806833</commentid>
    <comment_count>11</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-10-20 14:21:25 -0700</bug_when>
    <thetext>I think I now have a grasp of this.

This test is about navigations from a prevalent source domain to a non-prevalent destination domain, with link decoration. In such cases, non-cookie website data should be marked for deletion on the non-prevalent destination domain.

In this test, localhost is the prevalent source domain and 127.0.0.1 is the non-prevalent destination domain.

Making a redirect to a prevalent domain marks the redirecting domains as prevalent too. This is called collusion detection.

The change adds a redirect from the non-prevalent 127.0.0.1 to the prevalent localhost, effective making 127.0.0.1 prevalent too. This risks hiding a regression or introducing flakiness since 1) prevalent domains get their website data deleted too and 127.0.0.1 will no be in that category regardless of link decoration (the regression hiding risk), and 2) website data removal for prevalent resources without user interaction as first party includes cookies (the flakiness risk).

I believe the reason why I dump ITP data here is to make sure that 127.0.0.1 is *not* prevalent and gets its non-cookie website data deleted anyway. That&apos;s the expected behavior and the intent of the link decoration rule.

We have to come up with a way to reset cookies without adding this extra redirect causing 127.0.0.1 to be marked prevalent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806837</commentid>
    <comment_count>12</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-10-20 14:23:21 -0700</bug_when>
    <thetext>Let&apos;s have a look at how resetCookies() works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806844</commentid>
    <comment_count>13</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-10-20 14:34:30 -0700</bug_when>
    <thetext>(In reply to John Wilander from comment #12)
&gt; Let&apos;s have a look at how resetCookies() works.

The gist of it (a bunch of code removed):

***

let urls = [
    &quot;http://127.0.0.1:8000&quot;,
    &quot;http://localhost:8000&quot;,
];

for (let url of urls) {
    g_childWindow = window.open(url + &quot;/cookies/resources/cookie-utility.py?queryfunction=deleteCookiesAndPostMessage&quot;, &quot;reset&quot;);
}

***

I believe this causes the global child window to navigate from 127.0.0.1 to localhost before unload has fired which has always been considered an effective redirect in WebKit.

The best course of action here is to delete these cookies ourselves. Let&apos;s add a resourceLoadStatistics/resources/delete-all-cookies.py file and open it in a same-site 127.0.0.1 iframe. When it posts back to the main frame that it&apos;s done, we end the test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806845</commentid>
    <comment_count>14</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-10-20 14:35:20 -0700</bug_when>
    <thetext>(In reply to John Wilander from comment #13)
&gt; (In reply to John Wilander from comment #12)
&gt; &gt; Let&apos;s have a look at how resetCookies() works.
&gt; 
&gt; The gist of it (a bunch of code removed):
&gt; 
&gt; ***
&gt; 
&gt; let urls = [
&gt;     &quot;http://127.0.0.1:8000&quot;,
&gt;     &quot;http://localhost:8000&quot;,
&gt; ];
&gt; 
&gt; for (let url of urls) {
&gt;     g_childWindow = window.open(url +
&gt; &quot;/cookies/resources/cookie-utility.
&gt; py?queryfunction=deleteCookiesAndPostMessage&quot;, &quot;reset&quot;);
&gt; }
&gt; 
&gt; ***
&gt; 
&gt; I believe this causes the global child window to navigate from 127.0.0.1 to
&gt; localhost before unload

*onload

&gt; has fired which has always been considered an
&gt; effective redirect in WebKit.
&gt; 
&gt; The best course of action here is to delete these cookies ourselves. Let&apos;s
&gt; add a resourceLoadStatistics/resources/delete-all-cookies.py file and open
&gt; it in a same-site 127.0.0.1 iframe. When it posts back to the main frame
&gt; that it&apos;s done, we end the test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806944</commentid>
    <comment_count>15</comment_count>
      <attachid>441961</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-10-20 17:19:59 -0700</bug_when>
    <thetext>Created attachment 441961
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1806960</commentid>
    <comment_count>16</comment_count>
      <attachid>441961</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-10-20 17:44:50 -0700</bug_when>
    <thetext>Comment on attachment 441961
Patch

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

I don&apos;t think we need to clear any cookies for localhost because we don&apos;t set cookies for localhost. We just need to clear cookies for 127.0.0.1 which is same-site at the final page load so a mere iframe loading a simple &quot;delete all cookies I see incoming&quot; Python file should do it.

&gt; LayoutTests/http/tests/resourceLoadStatistics/resources/util.js:37
&gt; +                testRunner.setAlwaysAcceptCookies(false);

I&apos;m not sure this bypasses ITP&apos;s cookie blocking which is not based on CFNetwork&apos;s policy mechanism.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807180</commentid>
    <comment_count>17</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-10-21 09:00:44 -0700</bug_when>
    <thetext>(In reply to John Wilander from comment #16)
&gt; Comment on attachment 441961 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=441961&amp;action=review
&gt; 
&gt; I don&apos;t think we need to clear any cookies for localhost because we don&apos;t
&gt; set cookies for localhost. We just need to clear cookies for 127.0.0.1 which
&gt; is same-site at the final page load so a mere iframe loading a simple
&gt; &quot;delete all cookies I see incoming&quot; Python file should do it.

I want this to be useful for all ITP tests that set cookies. If there are any that might need to clear cookies for localhost now or in the future I think we should keep it.

&gt; 
&gt; &gt; LayoutTests/http/tests/resourceLoadStatistics/resources/util.js:37
&gt; &gt; +                testRunner.setAlwaysAcceptCookies(false);
&gt; 
&gt; I&apos;m not sure this bypasses ITP&apos;s cookie blocking which is not based on
&gt; CFNetwork&apos;s policy mechanism.

I don&apos;t think that is the point. I think its just a reset to consistent state mechanism.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807201</commentid>
    <comment_count>18</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-10-21 09:22:46 -0700</bug_when>
    <thetext>(In reply to Kate Cheney from comment #17)
&gt; (In reply to John Wilander from comment #16)
&gt; &gt; Comment on attachment 441961 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=441961&amp;action=review
&gt; &gt; 
&gt; &gt; I don&apos;t think we need to clear any cookies for localhost because we don&apos;t
&gt; &gt; set cookies for localhost. We just need to clear cookies for 127.0.0.1 which
&gt; &gt; is same-site at the final page load so a mere iframe loading a simple
&gt; &gt; &quot;delete all cookies I see incoming&quot; Python file should do it.
&gt; 
&gt; I want this to be useful for all ITP tests that set cookies. If there are
&gt; any that might need to clear cookies for localhost now or in the future I
&gt; think we should keep it.
&gt; 
&gt; &gt; 
&gt; &gt; &gt; LayoutTests/http/tests/resourceLoadStatistics/resources/util.js:37
&gt; &gt; &gt; +                testRunner.setAlwaysAcceptCookies(false);
&gt; &gt; 
&gt; &gt; I&apos;m not sure this bypasses ITP&apos;s cookie blocking which is not based on
&gt; &gt; CFNetwork&apos;s policy mechanism.
&gt; 
&gt; I don&apos;t think that is the point. I think its just a reset to consistent
&gt; state mechanism.

Sorry, I&apos;m saying you can&apos;t open a cross-site iframe to delete cookies because ITP blocks all cross-site cookie access and you can&apos;t relax ITP&apos;s blocking with testRunner.setAlwaysAcceptCookies(). I thought that was what you&apos;re doing.

I suggested that we just open a same-site iframe to 127.0.0.1 to clear its cookies since those are the only cookies we set in this test case. If we had set cookies for localhost, we would have had to navigate to a localhost first party context to be able to clear them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807218</commentid>
    <comment_count>19</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-10-21 09:44:26 -0700</bug_when>
    <thetext>(In reply to John Wilander from comment #18)
&gt; (In reply to Kate Cheney from comment #17)
&gt; &gt; (In reply to John Wilander from comment #16)
&gt; &gt; &gt; Comment on attachment 441961 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=441961&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; I don&apos;t think we need to clear any cookies for localhost because we don&apos;t
&gt; &gt; &gt; set cookies for localhost. We just need to clear cookies for 127.0.0.1 which
&gt; &gt; &gt; is same-site at the final page load so a mere iframe loading a simple
&gt; &gt; &gt; &quot;delete all cookies I see incoming&quot; Python file should do it.
&gt; &gt; 
&gt; &gt; I want this to be useful for all ITP tests that set cookies. If there are
&gt; &gt; any that might need to clear cookies for localhost now or in the future I
&gt; &gt; think we should keep it.
&gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; LayoutTests/http/tests/resourceLoadStatistics/resources/util.js:37
&gt; &gt; &gt; &gt; +                testRunner.setAlwaysAcceptCookies(false);
&gt; &gt; &gt; 
&gt; &gt; &gt; I&apos;m not sure this bypasses ITP&apos;s cookie blocking which is not based on
&gt; &gt; &gt; CFNetwork&apos;s policy mechanism.
&gt; &gt; 
&gt; &gt; I don&apos;t think that is the point. I think its just a reset to consistent
&gt; &gt; state mechanism.
&gt; 
&gt; Sorry, I&apos;m saying you can&apos;t open a cross-site iframe to delete cookies
&gt; because ITP blocks all cross-site cookie access and you can&apos;t relax ITP&apos;s
&gt; blocking with testRunner.setAlwaysAcceptCookies(). I thought that was what
&gt; you&apos;re doing.
&gt; 
&gt; I suggested that we just open a same-site iframe to 127.0.0.1 to clear its
&gt; cookies since those are the only cookies we set in this test case. If we had
&gt; set cookies for localhost, we would have had to navigate to a localhost
&gt; first party context to be able to clear them.

Ah, I see. Ok so then I will remove localhost. I just checked and none of these tests set cookies for localhost, and we can add that in the future if we need it for a new test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807219</commentid>
    <comment_count>20</comment_count>
      <attachid>442044</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-10-21 09:46:07 -0700</bug_when>
    <thetext>Created attachment 442044
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807235</commentid>
    <comment_count>21</comment_count>
      <attachid>442044</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-10-21 10:29:28 -0700</bug_when>
    <thetext>Comment on attachment 442044
Patch

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

r=me with comment. Also, see if you can get the style checker to be happy.

&gt; LayoutTests/http/tests/resourceLoadStatistics/resources/util.js:19
&gt; +        &quot;http://127.0.0.1:8000&quot;,

Could we make this a parameter instead? And throw an error if the current location doesn&apos;t match the parameter? That would make it explicit to anyone using the function and also avoid mistakes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807246</commentid>
    <comment_count>22</comment_count>
      <attachid>442046</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-10-21 10:54:46 -0700</bug_when>
    <thetext>Created attachment 442046
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807249</commentid>
    <comment_count>23</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-10-21 10:56:22 -0700</bug_when>
    <thetext>(In reply to John Wilander from comment #21)
&gt; Comment on attachment 442044 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=442044&amp;action=review
&gt; 
&gt; r=me with comment. Also, see if you can get the style checker to be happy.
&gt; 

Thanks! Moving the module level import to the top of the file causes timeouts, I think it has to be after:

file = __file__.split(&apos;:/cygwin&apos;)[-1]
http_root = os.path.dirname(os.path.dirname(os.path.abspath(os.path.dirname(file))))
sys.path.insert(0, http_root)

This is how it is in the regular resetCookies() function also.

&gt; &gt; LayoutTests/http/tests/resourceLoadStatistics/resources/util.js:19
&gt; &gt; +        &quot;http://127.0.0.1:8000&quot;,
&gt; 
&gt; Could we make this a parameter instead? And throw an error if the current
&gt; location doesn&apos;t match the parameter? That would make it explicit to anyone
&gt; using the function and also avoid mistakes.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807282</commentid>
    <comment_count>24</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-21 11:26:19 -0700</bug_when>
    <thetext>Committed r284631 (243352@main): &lt;https://commits.webkit.org/243352@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 442046.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441764</attachid>
            <date>2021-10-19 11:35:58 -0700</date>
            <delta_ts>2021-10-20 17:19:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231971-20211019113557.patch</filename>
            <type>text/plain</type>
            <size>10355</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0Mzc3CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTM1ZmFjMTAzYmQ3MmI0OGJlMjll
NGJjYWYyYmNkMmRlNjA1ZmUyMS4uZjM0ZjdkNGI2YjQxNzY4MDE5Y2U2ZTM5ZmU0ZDJkNzBkYzQy
ZGZmNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTEwLTE5ICBLYXRlIENoZW5leSAgPGth
dGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy93ZWJzaXRlLWRhdGEtcmVtb3ZhbC1mb3Itc2l0ZS1uYXZpZ2F0ZWQtdG8t
d2l0aC1saW5rLWRlY29yYXRpb24uaHRtbCBpcyBhIGZsYWt5IHRpbWVvdXQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTk3MQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vODQyNzAxMDg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVXBkYXRlIElUUCB0ZXN0cyB0byB3YWl0IGZvciByZXNldENvb2tpZXMo
KSB0byBmaW5pc2ggYmVmb3JlIGVuZGluZworICAgICAgICB0aGUgdGVzdC4gRmxha3kgdGltZW91
dHMgd2VyZSBiZWluZyBjYXVzZWQgYnkgcmVzZXRDb29raWVzKCkgYmVpbmcKKyAgICAgICAgcGFy
dGlhbGx5IGZpbmlzaGVkIHdoaWNoIHJlc2V0cyB0aGUgdG9wIGxvYWRpbmcgZnJhbWUgY2hlY2tl
ZCBpbgorICAgICAgICBUZXN0UnVubmVyOjpub3RpZnlEb25lKCkuCisKKyAgICAgICAgKiBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvb3BlcmF0aW5nLWRhdGVzLWFsbC1idXQtY29v
a2llcy1ub3QtcmVtb3ZlZC13aXRoLXVzZXItaW50ZXJhY3Rpb24tNi1kYXlzLWFnby5odG1sOgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9vcGVyYXRpbmctZGF0
ZXMtYWxsLWJ1dC1jb29raWVzLXJlbW92ZWQtd2l0aC11c2VyLWludGVyYWN0aW9uLTctZGF5cy1h
Z28uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvb3Bl
cmF0aW5nLWRhdGVzLWFsbC13ZWJzaXRlLWRhdGEtcmVtb3ZlZC5odG1sOgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdGFuZGFsb25lLXdlYi1hcHBsaWNhdGlv
bi1leGVtcHQtZnJvbS13ZWJzaXRlLWRhdGEtZGVsZXRpb24uaHRtbDoKKyAgICAgICAgKiBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvd2Vic2l0ZS1kYXRhLXJlbW92YWwtZm9yLXNp
dGUtbmF2aWdhdGVkLXRvLXdpdGgtbGluay1kZWNvcmF0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgVXBkYXRlIGV4cGVjdGF0aW9ucyBub3cgdGhhdCByZXNldENvb2tpZXMoKSBydW5zLiByZXNl
dENvb2tpZXMgY2F1c2VzIGEKKyAgICAgICAgcmVkaXJlY3QsIGFuZCB3aWxsIGFsc28gY2F1c2Ug
MTI3LjAuMC4xIHRvIGJlIG1hcmtlZCBhcyBwcmV2YWxlbnQgbm93CisgICAgICAgIHRoYXQgaXQg
Z2V0cyByZWRpcmVjdGVkIHRvIGZyb20gYSBwcmV2YWxlbnQgcmVzb3VyY2UuCisKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvd2Vic2l0ZS1kYXRhLXJlbW92YWwt
Zm9yLXNpdGUtbmF2aWdhdGVkLXRvLXdpdGgtbGluay1kZWNvcmF0aW9uLmh0bWw6CisgICAgICAg
ICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3dlYnNpdGUtZGF0YS1yZW1vdmFs
LWZvci1zaXRlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi5odG1sOgorICAgICAgICAqIGh0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy93ZWJzaXRlLWRhdGEtcmVtb3ZhbC1mb3Itc2l0ZS13
aXRob3V0LXVzZXItaW50ZXJhY3Rpb24uaHRtbDoKKwogMjAyMS0xMC0xOCAgQXl1bWkgS29qaW1h
ICA8YXl1bWlfa29qaW1hQGFwcGxlLmNvbT4KIAogICAgICAgICBbIGlPUyAxNSBdIFJlYmFzZWxp
bmluZyA0IGZhc3QgdGVzdHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvb3BlcmF0aW5nLWRhdGVzLWFsbC1idXQtY29va2llcy1ub3Qt
cmVtb3ZlZC13aXRoLXVzZXItaW50ZXJhY3Rpb24tNi1kYXlzLWFnby5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL29wZXJhdGluZy1kYXRlcy1hbGwt
YnV0LWNvb2tpZXMtbm90LXJlbW92ZWQtd2l0aC11c2VyLWludGVyYWN0aW9uLTYtZGF5cy1hZ28u
aHRtbAppbmRleCA4M2I2Y2VlMTdlZmE2MmZiY2RlYjcyOTBlNjRiNjUzZjk2ODEyNzU4Li4zMzYx
OGI3NWRlYmEwNzMzM2VjOGY4ZWFlNTQ5NTNiMGMwN2YxNzJlIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvb3BlcmF0aW5nLWRhdGVzLWFs
bC1idXQtY29va2llcy1ub3QtcmVtb3ZlZC13aXRoLXVzZXItaW50ZXJhY3Rpb24tNi1kYXlzLWFn
by5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9vcGVyYXRpbmctZGF0ZXMtYWxsLWJ1dC1jb29raWVzLW5vdC1yZW1vdmVkLXdpdGgtdXNlci1p
bnRlcmFjdGlvbi02LWRheXMtYWdvLmh0bWwKQEAgLTIzMCwxMCArMjMwLDEwIEBACiAgICAgY29u
c3Qgb3RoZXJPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIgogICAgIGNvbnN0IHRvcEZy
YW1lT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMCI7CiAgICAgY29uc3QgdGltZVN0YW1w
ID0gTWF0aC5yb3VuZCgobmV3IERhdGUoKSkuZ2V0VGltZSgpIC8gMTAwMCk7Ci0gICAgZnVuY3Rp
b24gZmluaXNoVGVzdCgpIHsKKyAgICBhc3luYyBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgewogICAg
ICAgICBpZiAoIXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKG9y
aWdpblVuZGVyVGVzdCkpCiAgICAgICAgICAgICBhZGRPdXRwdXQoIkZBSUw6ICIgKyBvcmlnaW5V
bmRlclRlc3QgKyAiIGRvZXNuJ3QgaGF2ZSB1c2VyIGludGVyYWN0aW9uIGFmdGVyIHByb2Nlc3Np
bmcuIik7Ci0gICAgICAgIHJlc2V0Q29va2llcygpOworICAgICAgICBhd2FpdCByZXNldENvb2tp
ZXMoKTsKICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZnVuY3Rpb24oKSB7CiAgICAg
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgfSk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvb3BlcmF0aW5n
LWRhdGVzLWFsbC1idXQtY29va2llcy1yZW1vdmVkLXdpdGgtdXNlci1pbnRlcmFjdGlvbi03LWRh
eXMtYWdvLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvb3BlcmF0aW5nLWRhdGVzLWFsbC1idXQtY29va2llcy1yZW1vdmVkLXdpdGgtdXNlci1pbnRl
cmFjdGlvbi03LWRheXMtYWdvLmh0bWwKaW5kZXggYTA1OWUzNmNjNTA5YzI5MTBmZDk4ODBkOWM1
M2MxMzE3MGM0ODU5Ni4uODliYTM0YjQ0MWE0MGIwNjRjMWIxZmY0Mzk2OTEzOWM5M2MyYWIxNCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L29wZXJhdGluZy1kYXRlcy1hbGwtYnV0LWNvb2tpZXMtcmVtb3ZlZC13aXRoLXVzZXItaW50ZXJh
Y3Rpb24tNy1kYXlzLWFnby5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9vcGVyYXRpbmctZGF0ZXMtYWxsLWJ1dC1jb29raWVzLXJlbW92ZWQt
d2l0aC11c2VyLWludGVyYWN0aW9uLTctZGF5cy1hZ28uaHRtbApAQCAtMjMwLDEwICsyMzAsMTAg
QEAKICAgICBjb25zdCBvdGhlck9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiCiAgICAg
Y29uc3QgdG9wRnJhbWVPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMjo4MDAwIjsKICAgICBjb25z
dCB0aW1lU3RhbXAgPSBNYXRoLnJvdW5kKChuZXcgRGF0ZSgpKS5nZXRUaW1lKCkgLyAxMDAwKTsK
LSAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgIGFzeW5jIGZ1bmN0aW9uIGZpbmlzaFRl
c3QoKSB7CiAgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50
ZXJhY3Rpb24ob3JpZ2luVW5kZXJUZXN0KSkKICAgICAgICAgICAgIGFkZE91dHB1dCgiRkFJTDog
IiArIG9yaWdpblVuZGVyVGVzdCArICIgZG9lc24ndCBoYXZlIHVzZXIgaW50ZXJhY3Rpb24gYWZ0
ZXIgcHJvY2Vzc2luZy4iKTsKLSAgICAgICAgcmVzZXRDb29raWVzKCk7CisgICAgICAgIGF3YWl0
IHJlc2V0Q29va2llcygpOwogICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlv
bigpIHsKICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICB9KTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy9vcGVyYXRpbmctZGF0ZXMtYWxsLXdlYnNpdGUtZGF0YS1yZW1vdmVkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvb3BlcmF0aW5nLWRhdGVzLWFs
bC13ZWJzaXRlLWRhdGEtcmVtb3ZlZC5odG1sCmluZGV4IDUyMGIxNzhiMzJjMjM1OTFiZmNhOGNj
Yjk4YzM4ZjIzMDYyMTJiZDQuLmNiY2YwODVjNjEzMGQwOGQwMmJlNmE2YzRjNTE2NmVlYzQ3MmU4
MjcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9vcGVyYXRpbmctZGF0ZXMtYWxsLXdlYnNpdGUtZGF0YS1yZW1vdmVkLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL29wZXJhdGluZy1k
YXRlcy1hbGwtd2Vic2l0ZS1kYXRhLXJlbW92ZWQuaHRtbApAQCAtMjI3LDEwICsyMjcsMTAgQEAK
ICAgICB9CiAKICAgICBjb25zdCBvcmlnaW5VbmRlclRlc3QgID0gImh0dHA6Ly8xMjcuMC4wLjE6
ODAwMCI7Ci0gICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICBhc3luYyBmdW5jdGlvbiBm
aW5pc2hUZXN0KCkgewogICAgICAgICBpZiAodGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRV
c2VySW50ZXJhY3Rpb24ob3JpZ2luVW5kZXJUZXN0KSkKICAgICAgICAgICAgIGFkZE91dHB1dCgi
RkFJTDogIiArIG9yaWdpblVuZGVyVGVzdCArICIgc3RpbGwgaGFzIHVzZXIgaW50ZXJhY3Rpb24g
YWZ0ZXIgcHJvY2Vzc2luZy4iKTsKLSAgICAgICAgcmVzZXRDb29raWVzKCk7CisgICAgICAgIGF3
YWl0IHJlc2V0Q29va2llcygpOwogICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmdW5j
dGlvbigpIHsKICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICB9
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zdGFuZGFsb25lLXdlYi1hcHBsaWNhdGlvbi1leGVtcHQtZnJvbS13ZWJzaXRlLWRhdGEt
ZGVsZXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9zdGFuZGFsb25lLXdlYi1hcHBsaWNhdGlvbi1leGVtcHQtZnJvbS13ZWJzaXRlLWRhdGEt
ZGVsZXRpb24uaHRtbAppbmRleCAzYmMxYzc0MmY3NTdmZTg4ODc2NzI2Y2E2NzhhMDE4MjllZDRi
YjE0Li5lNDI3NGYxMDRkNDc4ZjdmM2Y5MDU5NzQ5N2VlNDU2MDlmMGIwNjgzIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RhbmRhbG9u
ZS13ZWItYXBwbGljYXRpb24tZXhlbXB0LWZyb20td2Vic2l0ZS1kYXRhLWRlbGV0aW9uLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0YW5k
YWxvbmUtd2ViLWFwcGxpY2F0aW9uLWV4ZW1wdC1mcm9tLXdlYnNpdGUtZGF0YS1kZWxldGlvbi5o
dG1sCkBAIC0yMjgsOCArMjI4LDggQEAKICAgICAgICAgfSk7CiAgICAgfQogCi0gICAgZnVuY3Rp
b24gZmluaXNoVGVzdCgpIHsKLSAgICAgICAgcmVzZXRDb29raWVzKCk7CisgICAgYXN5bmMgZnVu
Y3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgYXdhaXQgcmVzZXRDb29raWVzKCk7CiAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0ZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxN
b2RlKGZhbHNlLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFs
c2UsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3dlYnNpdGUtZGF0YS1yZW1vdmFsLWZvci1zaXRlLW5hdmlnYXRlZC10by13aXRoLWxpbmst
ZGVjb3JhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvd2Vic2l0ZS1kYXRhLXJlbW92YWwtZm9yLXNpdGUtbmF2aWdhdGVkLXRv
LXdpdGgtbGluay1kZWNvcmF0aW9uLWV4cGVjdGVkLnR4dAppbmRleCBkZTQxYTlhMWFiNDVmODY4
ZTc1ZTg1YjQyYjVjOWY0M2RkNjI5M2JhLi4xZjhiNzU2NTcwYzg4NDhkMGEyZWNmMGIyMTVhNzI3
MWYwZGM0OWJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3Mvd2Vic2l0ZS1kYXRhLXJlbW92YWwtZm9yLXNpdGUtbmF2aWdhdGVkLXRvLXdp
dGgtbGluay1kZWNvcmF0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvd2Vic2l0ZS1kYXRhLXJlbW92YWwtZm9yLXNpdGUt
bmF2aWdhdGVkLXRvLXdpdGgtbGluay1kZWNvcmF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMTksMTYg
KzE5LDIwIEBAIFJlZ2lzdHJhYmxlIGRvbWFpbjogMTI3LjAuMC4xCiAgICAgaGFkVXNlckludGVy
YWN0aW9uOiBObwogICAgIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb246IC0xCiAgICAgZ3JhbmRm
YXRoZXJlZDogTm8KKyAgICBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c1RvOgorICAgICAgICBsb2Nh
bGhvc3QKICAgICBUb3BGcmFtZUxpbmtEZWNvcmF0aW9uc0Zyb206CiAgICAgICAgIGxvY2FsaG9z
dAogICAgIElzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWw6IE5vCi0gICAgaXNQ
cmV2YWxlbnRSZXNvdXJjZTogTm8KKyAgICBpc1ByZXZhbGVudFJlc291cmNlOiBZZXMKICAgICBp
c1ZlcnlQcmV2YWxlbnRSZXNvdXJjZTogTm8KLSAgICBkYXRhUmVjb3Jkc1JlbW92ZWQ6IDEKKyAg
ICBkYXRhUmVjb3Jkc1JlbW92ZWQ6IDIKIFJlZ2lzdHJhYmxlIGRvbWFpbjogbG9jYWxob3N0CiAg
ICAgaGFkVXNlckludGVyYWN0aW9uOiBObwogICAgIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb246
IC0xCiAgICAgZ3JhbmRmYXRoZXJlZDogTm8KKyAgICBUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0c0Zy
b206CisgICAgICAgIDEyNy4wLjAuMQogICAgIElzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0
YVJlbW92YWw6IE5vCiAgICAgaXNQcmV2YWxlbnRSZXNvdXJjZTogWWVzCiAgICAgaXNWZXJ5UHJl
dmFsZW50UmVzb3VyY2U6IE5vCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvd2Vic2l0ZS1kYXRhLXJlbW92YWwtZm9yLXNpdGUtbmF2aWdh
dGVkLXRvLXdpdGgtbGluay1kZWNvcmF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvd2Vic2l0ZS1kYXRhLXJlbW92YWwtZm9yLXNpdGUtbmF2
aWdhdGVkLXRvLXdpdGgtbGluay1kZWNvcmF0aW9uLmh0bWwKaW5kZXggMzhhYzE1ZWUxMmNhMzZk
MjMzYzJkZjViNzczMTQwNzQwY2VjYjA2Zi4uMDUzNGEyYTA4ZThkY2RjZTg1ZWMzYjExNzExNmIx
MDllMzUyYzc3NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3dlYnNpdGUtZGF0YS1yZW1vdmFsLWZvci1zaXRlLW5hdmlnYXRlZC10by13
aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy93ZWJzaXRlLWRhdGEtcmVtb3ZhbC1mb3Itc2l0ZS1uYXZpZ2F0
ZWQtdG8td2l0aC1saW5rLWRlY29yYXRpb24uaHRtbApAQCAtMjI3LDggKzIyNyw4IEBACiAgICAg
ICAgIH0pOwogICAgIH0KIAotICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7Ci0gICAgICAgIHJl
c2V0Q29va2llcygpOworICAgIGFzeW5jIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAg
IGF3YWl0IHJlc2V0Q29va2llcygpOwogICAgICAgICB0ZXN0UnVubmVyLmR1bXBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzKCk7CiAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9u
KCkgewogICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvd2Vic2l0ZS1kYXRh
LXJlbW92YWwtZm9yLXNpdGUtd2l0aC11c2VyLWludGVyYWN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvd2Vic2l0ZS1kYXRhLXJlbW92YWwt
Zm9yLXNpdGUtd2l0aC11c2VyLWludGVyYWN0aW9uLmh0bWwKaW5kZXggNmFjMGFiNGFmNTVjZTUx
ZWQ3NjQ0N2FjYjM4NDIwNzhlYTBkMzE2NC4uOWVkMWJlNzcwNzk5MjEzODQyZjIwYzk3MmI3Yjk0
ZTNiZjE2NTdlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL3dlYnNpdGUtZGF0YS1yZW1vdmFsLWZvci1zaXRlLXdpdGgtdXNlci1pbnRl
cmFjdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy93ZWJzaXRlLWRhdGEtcmVtb3ZhbC1mb3Itc2l0ZS13aXRoLXVzZXItaW50ZXJhY3Rp
b24uaHRtbApAQCAtMjI3LDggKzIyNyw4IEBACiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIGZ1
bmN0aW9uIGZpbmlzaFRlc3QoKSB7Ci0gICAgICAgIHJlc2V0Q29va2llcygpOworICAgIGFzeW5j
IGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIGF3YWl0IHJlc2V0Q29va2llcygpOwog
ICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1v
dmFsTW9kZShmYWxzZSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJl
KGZhbHNlLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy93ZWJzaXRlLWRhdGEtcmVtb3ZhbC1mb3Itc2l0ZS13aXRob3V0LXVzZXItaW50ZXJh
Y3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy93ZWJzaXRlLWRhdGEtcmVtb3ZhbC1mb3Itc2l0ZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24u
aHRtbAppbmRleCAwMDFiNDNjMGNlMmQzZGI2OTkzYjZmYmEwMGY2MjYyYmU2MmMxNDMxLi5iMzQ2
ZDRhMDdhY2Y3MzMyNzMyYTcwNTg4YmU0YjY1Y2Y1ZDE4YjQwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvd2Vic2l0ZS1kYXRhLXJlbW92
YWwtZm9yLXNpdGUtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3dlYnNpdGUtZGF0YS1yZW1vdmFs
LWZvci1zaXRlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi5odG1sCkBAIC0yMjcsOCArMjI3LDgg
QEAKICAgICAgICAgfSk7CiAgICAgfQogCi0gICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKLSAg
ICAgICAgcmVzZXRDb29raWVzKCk7CisgICAgYXN5bmMgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsK
KyAgICAgICAgYXdhaXQgcmVzZXRDb29raWVzKCk7CiAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3Rh
dGlzdGljc0ZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlKGZhbHNlLCBmdW5jdGlvbigp
IHsKICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9uKCkgewogICAg
ICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441961</attachid>
            <date>2021-10-20 17:19:59 -0700</date>
            <delta_ts>2021-10-21 09:46:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231971-20211020171958.patch</filename>
            <type>text/plain</type>
            <size>11818</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NTExCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODU4ZjM1YTIxNjM1MzBiMGY1MTkz
MWE5Y2Q2YzMyM2QyNDU3MzBhOC4uNWE0ZmNkMDJiYTIxNWU2Yzc5M2IyMmEzYjc2MzVkZDhkNGUz
NzRmMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTEwLTIwICBLYXRlIENoZW5leSAgPGth
dGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy93ZWJzaXRlLWRhdGEtcmVtb3ZhbC1mb3Itc2l0ZS1uYXZpZ2F0ZWQtdG8t
d2l0aC1saW5rLWRlY29yYXRpb24uaHRtbCBpcyBhIGZsYWt5IHRpbWVvdXQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTk3MQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vODQyNzAxMDg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVXBkYXRlIElUUCB0ZXN0cyB0byB3YWl0IGZvciByZXNldENvb2tpZXMo
KSB0byBmaW5pc2ggYmVmb3JlIGVuZGluZworICAgICAgICB0aGUgdGVzdC4gRmxha3kgdGltZW91
dHMgd2VyZSBiZWluZyBjYXVzZWQgYnkgcmVzZXRDb29raWVzKCkgYmVpbmcKKyAgICAgICAgcGFy
dGlhbGx5IGZpbmlzaGVkIHdoaWNoIHJlc2V0cyB0aGUgdG9wIGxvYWRpbmcgZnJhbWUgY2hlY2tl
ZCBpbgorICAgICAgICBUZXN0UnVubmVyOjpub3RpZnlEb25lKCkuCisKKyAgICAgICAgKiBodHRw
L3Rlc3RzL2Nvb2tpZXMvcmVzb3VyY2VzL2RlbGV0ZS1jb29raWUucHk6IEFkZGVkLgorICAgICAg
ICAoZGVsZXRlX2Nvb2tpZSk6CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL29wZXJhdGluZy1kYXRlcy1hbGwtYnV0LWNvb2tpZXMtbm90LXJlbW92ZWQtd2l0aC11
c2VyLWludGVyYWN0aW9uLTYtZGF5cy1hZ28uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvb3BlcmF0aW5nLWRhdGVzLWFsbC1idXQtY29va2llcy1yZW1v
dmVkLXdpdGgtdXNlci1pbnRlcmFjdGlvbi03LWRheXMtYWdvLmh0bWw6CisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL29wZXJhdGluZy1kYXRlcy1hbGwtd2Vic2l0
ZS1kYXRhLXJlbW92ZWQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvcmVzb3VyY2VzL3V0aWwuanM6CisgICAgICAgIChhc3luYyByZXNldENvb2tpZXNJ
VFAuc2V0VXApOgorICAgICAgICAoYXN5bmMgcmVzZXRDb29raWVzSVRQKToKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RhbmRhbG9uZS13ZWItYXBwbGljYXRp
b24tZXhlbXB0LWZyb20td2Vic2l0ZS1kYXRhLWRlbGV0aW9uLmh0bWw6CisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3dlYnNpdGUtZGF0YS1yZW1vdmFsLWZvci1z
aXRlLW5hdmlnYXRlZC10by13aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sOgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy93ZWJzaXRlLWRhdGEtcmVtb3ZhbC1mb3It
c2l0ZS13aXRoLXVzZXItaW50ZXJhY3Rpb24uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvd2Vic2l0ZS1kYXRhLXJlbW92YWwtZm9yLXNpdGUtd2l0aG91
dC11c2VyLWludGVyYWN0aW9uLmh0bWw6CisKIDIwMjEtMTAtMTkgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXN5bmMgQ09PUCAvQ09FUCBXUFQgdGVzdHMgZnJv
bSB1cHN0cmVhbSBXUFQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2ll
cy9yZXNvdXJjZXMvZGVsZXRlLWNvb2tpZS5weSBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29v
a2llcy9yZXNvdXJjZXMvZGVsZXRlLWNvb2tpZS5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNjY2OTcwOGE2Mjc1
MWFmZGE1NDg3MWZkMjc5NWYzNzE1NmE0MWIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9jb29raWVzL3Jlc291cmNlcy9kZWxldGUtY29va2llLnB5CkBAIC0wLDAg
KzEsMjcgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbjMKKworaW1wb3J0IG9zCitpbXBvcnQgc3lz
Citmcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZSwgdGltZWRlbHRhCitmcm9tIHVybGxpYi5w
YXJzZSBpbXBvcnQgcGFyc2VfcXMKKworZmlsZSA9IF9fZmlsZV9fLnNwbGl0KCc6L2N5Z3dpbicp
Wy0xXQoraHR0cF9yb290ID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGguZGlybmFtZShvcy5wYXRo
LmFic3BhdGgob3MucGF0aC5kaXJuYW1lKGZpbGUpKSkpCitzeXMucGF0aC5pbnNlcnQoMCwgaHR0
cF9yb290KQorCitmcm9tIHJlc291cmNlcy5wb3J0YWJpbGl0eUxheWVyIGltcG9ydCBnZXRfY29v
a2llcworCitjb29raWVzID0gZ2V0X2Nvb2tpZXMoKQorCitkZWYgZGVsZXRlX2Nvb2tpZShuYW1l
KToKKyAgICBleHBpcmVzID0gZGF0ZXRpbWUudXRjbm93KCkgLSB0aW1lZGVsdGEoc2Vjb25kcz04
NjQwMCkKKyAgICBzeXMuc3Rkb3V0LndyaXRlKCdTZXQtQ29va2llOiB7fT1kZWxldGVkOyBleHBp
cmVzPXt9IEdNVDsgTWF4LUFnZT0wOyBwYXRoPS9cclxuJy5mb3JtYXQobmFtZSwgZXhwaXJlcy5z
dHJmdGltZSgnJWEsICVkLSViLSVZICVIOiVNOiVTJykpKQorCitxdWVyeV9mdW5jdGlvbiA9IHBh
cnNlX3FzKG9zLmVudmlyb24uZ2V0KCdRVUVSWV9TVFJJTkcnLCAnJyksIGtlZXBfYmxhbmtfdmFs
dWVzPVRydWUpLmdldCgncXVlcnlmdW5jdGlvbicsIFsnJ10pWzBdCisKK3N5cy5zdGRvdXQud3Jp
dGUoJ0NvbnRlbnQtVHlwZTogdGV4dC9odG1sXHJcbicpCisKK2ZvciBjb29raWUgaW4gY29va2ll
cy5rZXlzKCk6CisgICAgZGVsZXRlX2Nvb2tpZShjb29raWUpCisKK3N5cy5zdGRvdXQud3JpdGUo
J1xyXG48c2NyaXB0PnBhcmVudC5wb3N0TWVzc2FnZShcJ2RvbmVcJywgXCcqXCcpOzwvc2NyaXB0
PlxuJykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9vcGVyYXRpbmctZGF0ZXMtYWxsLWJ1dC1jb29raWVzLW5vdC1yZW1vdmVkLXdpdGgt
dXNlci1pbnRlcmFjdGlvbi02LWRheXMtYWdvLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvb3BlcmF0aW5nLWRhdGVzLWFsbC1idXQtY29va2llcy1u
b3QtcmVtb3ZlZC13aXRoLXVzZXItaW50ZXJhY3Rpb24tNi1kYXlzLWFnby5odG1sCmluZGV4IDgz
YjZjZWUxN2VmYTYyZmJjZGViNzI5MGU2NGI2NTNmOTY4MTI3NTguLmVhODAwMjA0ZjBkOWY4NWJi
MDlhNjUyOWNhNjY5MzNkY2E1NmRkNjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9vcGVyYXRpbmctZGF0ZXMtYWxsLWJ1dC1jb29raWVz
LW5vdC1yZW1vdmVkLXdpdGgtdXNlci1pbnRlcmFjdGlvbi02LWRheXMtYWdvLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL29wZXJhdGluZy1k
YXRlcy1hbGwtYnV0LWNvb2tpZXMtbm90LXJlbW92ZWQtd2l0aC11c2VyLWludGVyYWN0aW9uLTYt
ZGF5cy1hZ28uaHRtbApAQCAtMjMwLDEwICsyMzAsMTAgQEAKICAgICBjb25zdCBvdGhlck9yaWdp
biA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiCiAgICAgY29uc3QgdG9wRnJhbWVPcmlnaW4gPSAi
aHR0cDovLzEyNy4wLjAuMjo4MDAwIjsKICAgICBjb25zdCB0aW1lU3RhbXAgPSBNYXRoLnJvdW5k
KChuZXcgRGF0ZSgpKS5nZXRUaW1lKCkgLyAxMDAwKTsKLSAgICBmdW5jdGlvbiBmaW5pc2hUZXN0
KCkgeworICAgIGFzeW5jIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CiAgICAgICAgIGlmICghdGVz
dFJ1bm5lci5pc1N0YXRpc3RpY3NIYXNIYWRVc2VySW50ZXJhY3Rpb24ob3JpZ2luVW5kZXJUZXN0
KSkKICAgICAgICAgICAgIGFkZE91dHB1dCgiRkFJTDogIiArIG9yaWdpblVuZGVyVGVzdCArICIg
ZG9lc24ndCBoYXZlIHVzZXIgaW50ZXJhY3Rpb24gYWZ0ZXIgcHJvY2Vzc2luZy4iKTsKLSAgICAg
ICAgcmVzZXRDb29raWVzKCk7CisgICAgICAgIGF3YWl0IHJlc2V0Q29va2llc0lUUCgpOwogICAg
ICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9vcGVyYXRpbmctZGF0ZXMtYWxs
LWJ1dC1jb29raWVzLXJlbW92ZWQtd2l0aC11c2VyLWludGVyYWN0aW9uLTctZGF5cy1hZ28uaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9vcGVyYXRp
bmctZGF0ZXMtYWxsLWJ1dC1jb29raWVzLXJlbW92ZWQtd2l0aC11c2VyLWludGVyYWN0aW9uLTct
ZGF5cy1hZ28uaHRtbAppbmRleCBhMDU5ZTM2Y2M1MDljMjkxMGZkOTg4MGQ5YzUzYzEzMTcwYzQ4
NTk2Li44MTdhMmJmZThiMDgzNjg5ZWI3YTZkNGQyMTk5N2E3NTA2NDMzZmE5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvb3BlcmF0aW5n
LWRhdGVzLWFsbC1idXQtY29va2llcy1yZW1vdmVkLXdpdGgtdXNlci1pbnRlcmFjdGlvbi03LWRh
eXMtYWdvLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL29wZXJhdGluZy1kYXRlcy1hbGwtYnV0LWNvb2tpZXMtcmVtb3ZlZC13aXRoLXVzZXIt
aW50ZXJhY3Rpb24tNy1kYXlzLWFnby5odG1sCkBAIC0yMzAsMTAgKzIzMCwxMCBAQAogICAgIGNv
bnN0IG90aGVyT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIKICAgICBjb25zdCB0b3BG
cmFtZU9yaWdpbiA9ICJodHRwOi8vMTI3LjAuMC4yOjgwMDAiOwogICAgIGNvbnN0IHRpbWVTdGFt
cCA9IE1hdGgucm91bmQoKG5ldyBEYXRlKCkpLmdldFRpbWUoKSAvIDEwMDApOwotICAgIGZ1bmN0
aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgYXN5bmMgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKICAg
ICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihv
cmlnaW5VbmRlclRlc3QpKQogICAgICAgICAgICAgYWRkT3V0cHV0KCJGQUlMOiAiICsgb3JpZ2lu
VW5kZXJUZXN0ICsgIiBkb2Vzbid0IGhhdmUgdXNlciBpbnRlcmFjdGlvbiBhZnRlciBwcm9jZXNz
aW5nLiIpOwotICAgICAgICByZXNldENvb2tpZXMoKTsKKyAgICAgICAgYXdhaXQgcmVzZXRDb29r
aWVzSVRQKCk7CiAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9uKCkgewog
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0pOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL29wZXJh
dGluZy1kYXRlcy1hbGwtd2Vic2l0ZS1kYXRhLXJlbW92ZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9vcGVyYXRpbmctZGF0ZXMtYWxsLXdlYnNp
dGUtZGF0YS1yZW1vdmVkLmh0bWwKaW5kZXggNTIwYjE3OGIzMmMyMzU5MWJmY2E4Y2NiOThjMzhm
MjMwNjIxMmJkNC4uM2I0M2NkMjM5YjYzMTYxNDgyZDNmZjE0NmQyOTBmNWZmN2Q4OTM4MyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL29w
ZXJhdGluZy1kYXRlcy1hbGwtd2Vic2l0ZS1kYXRhLXJlbW92ZWQuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvb3BlcmF0aW5nLWRhdGVzLWFs
bC13ZWJzaXRlLWRhdGEtcmVtb3ZlZC5odG1sCkBAIC0yMjcsMTAgKzIyNywxMCBAQAogICAgIH0K
IAogICAgIGNvbnN0IG9yaWdpblVuZGVyVGVzdCAgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsK
LSAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgIGFzeW5jIGZ1bmN0aW9uIGZpbmlzaFRl
c3QoKSB7CiAgICAgICAgIGlmICh0ZXN0UnVubmVyLmlzU3RhdGlzdGljc0hhc0hhZFVzZXJJbnRl
cmFjdGlvbihvcmlnaW5VbmRlclRlc3QpKQogICAgICAgICAgICAgYWRkT3V0cHV0KCJGQUlMOiAi
ICsgb3JpZ2luVW5kZXJUZXN0ICsgIiBzdGlsbCBoYXMgdXNlciBpbnRlcmFjdGlvbiBhZnRlciBw
cm9jZXNzaW5nLiIpOwotICAgICAgICByZXNldENvb2tpZXMoKTsKKyAgICAgICAgYXdhaXQgcmVz
ZXRDb29raWVzSVRQKCk7CiAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9u
KCkgewogICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0pOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3Jlc291cmNlcy91dGlsLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzL3Jlc291cmNlcy91dGlsLmpzCmluZGV4IDk2YmZmNWFlYTgzNWY3NzQ0ZDcyMzNk
NTUwMzY4ZjRjYzE5YmU1ZDEuLjYyMjViMGFiM2ExMzI4MThkNjY2OGVmYmRkZWQzNmZkMWNhNjdi
NDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9yZXNvdXJjZXMvdXRpbC5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3V0aWwuanMKQEAgLTEzLDMgKzEzLDQzIEBAIGZ1
bmN0aW9uIHNldEVuYWJsZUZlYXR1cmUoZW5hYmxlLCBjb21wbGV0aW9uSGFuZGxlcikgewogICAg
ICAgICB9KTsKICAgICB9CiB9CisKK2FzeW5jIGZ1bmN0aW9uIHJlc2V0Q29va2llc0lUUCgpIHsK
KyAgICBsZXQgdXJscyA9IFsKKyAgICAgICAgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIsCisgICAg
ICAgICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLAorICAgIF07CisKKyAgICBjb25zb2xlLmFzc2Vy
dCh1cmxzLmxlbmd0aCk7CisKKyAgICBmdW5jdGlvbiBzZXRVcCgpIHsKKyAgICAgICAgcmV0dXJu
IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldEFsd2F5c0FjY2VwdENvb2tp
ZXModHJ1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAg
IH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIGNsZWFuVXAoKSB7CisgICAgICAgIHJldHVybiBu
ZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0QWx3YXlzQWNjZXB0Q29va2llcyhm
YWxzZSk7CisgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH0pOworICAgIH0KKworICAg
IGxldCBwcm9taXNlID0gc2V0VXAoKTsKKyAgICBmb3IgKGxldCB1cmwgb2YgdXJscykgeworICAg
ICAgICBwcm9taXNlID0gcHJvbWlzZS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIHJldHVybiBu
ZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAgICAgICAgd2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCAobWVzc2FnZUV2ZW50KSA9PiByZXNvbHZlKG1l
c3NhZ2VFdmVudCksIHtjYXB0dXJlOiB0cnVlLCBvbmNlOiB0cnVlfSk7CisgICAgICAgICAgICAg
ICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICAg
ICAgICAgICAgICAgIGVsZW1lbnQuc3JjID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9jb29raWVz
L3Jlc291cmNlcy9kZWxldGUtY29va2llLnB5IjsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0pOwor
ICAgIH0KKyAgICByZXR1cm4gcHJvbWlzZS50aGVuKGNsZWFuVXApOworfQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RhbmRhbG9u
ZS13ZWItYXBwbGljYXRpb24tZXhlbXB0LWZyb20td2Vic2l0ZS1kYXRhLWRlbGV0aW9uLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RhbmRhbG9u
ZS13ZWItYXBwbGljYXRpb24tZXhlbXB0LWZyb20td2Vic2l0ZS1kYXRhLWRlbGV0aW9uLmh0bWwK
aW5kZXggM2JjMWM3NDJmNzU3ZmU4ODg3NjcyNmNhNjc4YTAxODI5ZWQ0YmIxNC4uMzE0OTNhZGFk
MGJmODRiMWUxNjg1ZGRkMTJjZWM1YzY4ZDkyOTFiNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0YW5kYWxvbmUtd2ViLWFwcGxpY2F0
aW9uLWV4ZW1wdC1mcm9tLXdlYnNpdGUtZGF0YS1kZWxldGlvbi5odG1sCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdGFuZGFsb25lLXdlYi1hcHBs
aWNhdGlvbi1leGVtcHQtZnJvbS13ZWJzaXRlLWRhdGEtZGVsZXRpb24uaHRtbApAQCAtMjI4LDgg
KzIyOCw4IEBACiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3Qo
KSB7Ci0gICAgICAgIHJlc2V0Q29va2llcygpOworICAgIGFzeW5jIGZ1bmN0aW9uIGZpbmlzaFRl
c3QoKSB7CisgICAgICAgIGF3YWl0IHJlc2V0Q29va2llc0lUUCgpOwogICAgICAgICB0ZXN0UnVu
bmVyLnNldFN0YXRpc3RpY3NGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZShmYWxzZSwg
ZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlv
bigpIHsKICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy93ZWJzaXRl
LWRhdGEtcmVtb3ZhbC1mb3Itc2l0ZS1uYXZpZ2F0ZWQtdG8td2l0aC1saW5rLWRlY29yYXRpb24u
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy93ZWJz
aXRlLWRhdGEtcmVtb3ZhbC1mb3Itc2l0ZS1uYXZpZ2F0ZWQtdG8td2l0aC1saW5rLWRlY29yYXRp
b24uaHRtbAppbmRleCAzOGFjMTVlZTEyY2EzNmQyMzNjMmRmNWI3NzMxNDA3NDBjZWNiMDZmLi4z
MmI0YWY0N2UzYjYwNTA0MDJiYTRmMGNjNjZkNGFlYzdkOWE3ZTgzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvd2Vic2l0ZS1kYXRhLXJl
bW92YWwtZm9yLXNpdGUtbmF2aWdhdGVkLXRvLXdpdGgtbGluay1kZWNvcmF0aW9uLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3dlYnNpdGUt
ZGF0YS1yZW1vdmFsLWZvci1zaXRlLW5hdmlnYXRlZC10by13aXRoLWxpbmstZGVjb3JhdGlvbi5o
dG1sCkBAIC0yMjcsOCArMjI3LDggQEAKICAgICAgICAgfSk7CiAgICAgfQogCi0gICAgZnVuY3Rp
b24gZmluaXNoVGVzdCgpIHsKLSAgICAgICAgcmVzZXRDb29raWVzKCk7CisgICAgYXN5bmMgZnVu
Y3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgYXdhaXQgcmVzZXRDb29raWVzSVRQKCk7CiAg
ICAgICAgIHRlc3RSdW5uZXIuZHVtcFJlc291cmNlTG9hZFN0YXRpc3RpY3MoKTsKICAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy93ZWJzaXRlLWRhdGEtcmVtb3ZhbC1mb3Itc2l0ZS13aXRoLXVz
ZXItaW50ZXJhY3Rpb24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy93ZWJzaXRlLWRhdGEtcmVtb3ZhbC1mb3Itc2l0ZS13aXRoLXVzZXItaW50ZXJh
Y3Rpb24uaHRtbAppbmRleCA2YWMwYWI0YWY1NWNlNTFlZDc2NDQ3YWNiMzg0MjA3OGVhMGQzMTY0
Li44MTEwYjhkY2ExMTE5MTk4Yzk2NDQyYTk1YzU2NDFhNzA3YTEyMjlmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvd2Vic2l0ZS1kYXRh
LXJlbW92YWwtZm9yLXNpdGUtd2l0aC11c2VyLWludGVyYWN0aW9uLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3dlYnNpdGUtZGF0YS1yZW1v
dmFsLWZvci1zaXRlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi5odG1sCkBAIC0yMjcsOCArMjI3LDgg
QEAKICAgICAgICAgfSk7CiAgICAgfQogCi0gICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKLSAg
ICAgICAgcmVzZXRDb29raWVzKCk7CisgICAgYXN5bmMgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsK
KyAgICAgICAgYXdhaXQgcmVzZXRDb29raWVzSVRQKCk7CiAgICAgICAgIHRlc3RSdW5uZXIuc2V0
U3RhdGlzdGljc0ZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlKGZhbHNlLCBmdW5jdGlv
bigpIHsKICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9uKCkgewog
ICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3dlYnNpdGUtZGF0YS1y
ZW1vdmFsLWZvci1zaXRlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3dlYnNpdGUtZGF0YS1yZW1vdmFs
LWZvci1zaXRlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi5odG1sCmluZGV4IDAwMWI0M2MwY2Uy
ZDNkYjY5OTNiNmZiYTAwZjYyNjJiZTYyYzE0MzEuLmQzYTk5MTUzMjY1ZGFlOTViYzQ5ZjRmZGRl
MjM3ZWJkYjQ5YzBmNDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy93ZWJzaXRlLWRhdGEtcmVtb3ZhbC1mb3Itc2l0ZS13aXRob3V0LXVz
ZXItaW50ZXJhY3Rpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvd2Vic2l0ZS1kYXRhLXJlbW92YWwtZm9yLXNpdGUtd2l0aG91dC11c2Vy
LWludGVyYWN0aW9uLmh0bWwKQEAgLTIyNyw4ICsyMjcsOCBAQAogICAgICAgICB9KTsKICAgICB9
CiAKLSAgICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgewotICAgICAgICByZXNldENvb2tpZXMoKTsK
KyAgICBhc3luYyBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICBhd2FpdCByZXNldENv
b2tpZXNJVFAoKTsKICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzRmlyc3RQYXJ0eVdl
YnNpdGVEYXRhUmVtb3ZhbE1vZGUoZmFsc2UsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgc2V0
RW5hYmxlRmVhdHVyZShmYWxzZSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442044</attachid>
            <date>2021-10-21 09:46:07 -0700</date>
            <delta_ts>2021-10-21 10:54:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231971-20211021094606.patch</filename>
            <type>text/plain</type>
            <size>11828</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NjA2CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZmZmYTg3MzJhZWM2OTU2NTM5MzMw
N2QzM2U0NzI0MDQ3Y2U3NDAzZC4uNjMyNTdmMTI0YmU3YzhlZmMwOWJmYjExY2M3YWVhOTRkZmM2
MTMzZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTEwLTIxICBLYXRlIENoZW5leSAgPGth
dGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy93ZWJzaXRlLWRhdGEtcmVtb3ZhbC1mb3Itc2l0ZS1uYXZpZ2F0ZWQtdG8t
d2l0aC1saW5rLWRlY29yYXRpb24uaHRtbCBpcyBhIGZsYWt5IHRpbWVvdXQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTk3MQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vODQyNzAxMDg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVXBkYXRlIElUUCB0ZXN0cyB0byB3YWl0IGZvciByZXNldENvb2tpZXMo
KSB0byBmaW5pc2ggYmVmb3JlIGVuZGluZworICAgICAgICB0aGUgdGVzdC4gRmxha3kgdGltZW91
dHMgd2VyZSBiZWluZyBjYXVzZWQgYnkgcmVzZXRDb29raWVzKCkgYmVpbmcKKyAgICAgICAgcGFy
dGlhbGx5IGZpbmlzaGVkIHdoaWNoIHJlc2V0cyB0aGUgdG9wIGxvYWRpbmcgZnJhbWUgY2hlY2tl
ZCBpbgorICAgICAgICBUZXN0UnVubmVyOjpub3RpZnlEb25lKCkuCisKKyAgICAgICAgKiBodHRw
L3Rlc3RzL2Nvb2tpZXMvcmVzb3VyY2VzL2RlbGV0ZS1jb29raWUucHk6IEFkZGVkLgorICAgICAg
ICAoZGVsZXRlX2Nvb2tpZSk6CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzL29wZXJhdGluZy1kYXRlcy1hbGwtYnV0LWNvb2tpZXMtbm90LXJlbW92ZWQtd2l0aC11
c2VyLWludGVyYWN0aW9uLTYtZGF5cy1hZ28uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvb3BlcmF0aW5nLWRhdGVzLWFsbC1idXQtY29va2llcy1yZW1v
dmVkLXdpdGgtdXNlci1pbnRlcmFjdGlvbi03LWRheXMtYWdvLmh0bWw6CisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL29wZXJhdGluZy1kYXRlcy1hbGwtd2Vic2l0
ZS1kYXRhLXJlbW92ZWQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0
YXRpc3RpY3MvcmVzb3VyY2VzL3V0aWwuanM6CisgICAgICAgIChhc3luYyByZXNldENvb2tpZXNJ
VFAuc2V0VXApOgorICAgICAgICAoYXN5bmMgcmVzZXRDb29raWVzSVRQKToKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RhbmRhbG9uZS13ZWItYXBwbGljYXRp
b24tZXhlbXB0LWZyb20td2Vic2l0ZS1kYXRhLWRlbGV0aW9uLmh0bWw6CisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3dlYnNpdGUtZGF0YS1yZW1vdmFsLWZvci1z
aXRlLW5hdmlnYXRlZC10by13aXRoLWxpbmstZGVjb3JhdGlvbi5odG1sOgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy93ZWJzaXRlLWRhdGEtcmVtb3ZhbC1mb3It
c2l0ZS13aXRoLXVzZXItaW50ZXJhY3Rpb24uaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvd2Vic2l0ZS1kYXRhLXJlbW92YWwtZm9yLXNpdGUtd2l0aG91
dC11c2VyLWludGVyYWN0aW9uLmh0bWw6CisKIDIwMjEtMTAtMjEgIEFudG9pbmUgUXVpbnQgIDxn
cmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQ1NTUHJvcGVydHlab29tIG5lZWRzIHdyYXBw
ZXIgdGhhdCBlbnN1cmVzIGl0J3MgYWx3YXlzIGJsZW5kZWQgaW50byBhIHBvc2l0aXZlIHZhbHVl
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3Jlc291cmNlcy9k
ZWxldGUtY29va2llLnB5IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL3Jlc291cmNl
cy9kZWxldGUtY29va2llLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM2NjY5NzA4YTYyNzUxYWZkYTU0ODcxZmQy
Nzk1ZjM3MTU2YTQxYjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2Nvb2tpZXMvcmVzb3VyY2VzL2RlbGV0ZS1jb29raWUucHkKQEAgLTAsMCArMSwyNyBAQAorIyEv
dXNyL2Jpbi9lbnYgcHl0aG9uMworCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKK2Zyb20gZGF0ZXRp
bWUgaW1wb3J0IGRhdGV0aW1lLCB0aW1lZGVsdGEKK2Zyb20gdXJsbGliLnBhcnNlIGltcG9ydCBw
YXJzZV9xcworCitmaWxlID0gX19maWxlX18uc3BsaXQoJzovY3lnd2luJylbLTFdCitodHRwX3Jv
b3QgPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5kaXJuYW1lKG9zLnBhdGguYWJzcGF0aChvcy5w
YXRoLmRpcm5hbWUoZmlsZSkpKSkKK3N5cy5wYXRoLmluc2VydCgwLCBodHRwX3Jvb3QpCisKK2Zy
b20gcmVzb3VyY2VzLnBvcnRhYmlsaXR5TGF5ZXIgaW1wb3J0IGdldF9jb29raWVzCisKK2Nvb2tp
ZXMgPSBnZXRfY29va2llcygpCisKK2RlZiBkZWxldGVfY29va2llKG5hbWUpOgorICAgIGV4cGly
ZXMgPSBkYXRldGltZS51dGNub3coKSAtIHRpbWVkZWx0YShzZWNvbmRzPTg2NDAwKQorICAgIHN5
cy5zdGRvdXQud3JpdGUoJ1NldC1Db29raWU6IHt9PWRlbGV0ZWQ7IGV4cGlyZXM9e30gR01UOyBN
YXgtQWdlPTA7IHBhdGg9L1xyXG4nLmZvcm1hdChuYW1lLCBleHBpcmVzLnN0cmZ0aW1lKCclYSwg
JWQtJWItJVkgJUg6JU06JVMnKSkpCisKK3F1ZXJ5X2Z1bmN0aW9uID0gcGFyc2VfcXMob3MuZW52
aXJvbi5nZXQoJ1FVRVJZX1NUUklORycsICcnKSwga2VlcF9ibGFua192YWx1ZXM9VHJ1ZSkuZ2V0
KCdxdWVyeWZ1bmN0aW9uJywgWycnXSlbMF0KKworc3lzLnN0ZG91dC53cml0ZSgnQ29udGVudC1U
eXBlOiB0ZXh0L2h0bWxcclxuJykKKworZm9yIGNvb2tpZSBpbiBjb29raWVzLmtleXMoKToKKyAg
ICBkZWxldGVfY29va2llKGNvb2tpZSkKKworc3lzLnN0ZG91dC53cml0ZSgnXHJcbjxzY3JpcHQ+
cGFyZW50LnBvc3RNZXNzYWdlKFwnZG9uZVwnLCBcJypcJyk7PC9zY3JpcHQ+XG4nKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL29wZXJh
dGluZy1kYXRlcy1hbGwtYnV0LWNvb2tpZXMtbm90LXJlbW92ZWQtd2l0aC11c2VyLWludGVyYWN0
aW9uLTYtZGF5cy1hZ28uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9vcGVyYXRpbmctZGF0ZXMtYWxsLWJ1dC1jb29raWVzLW5vdC1yZW1vdmVkLXdp
dGgtdXNlci1pbnRlcmFjdGlvbi02LWRheXMtYWdvLmh0bWwKaW5kZXggODNiNmNlZTE3ZWZhNjJm
YmNkZWI3MjkwZTY0YjY1M2Y5NjgxMjc1OC4uZWE4MDAyMDRmMGQ5Zjg1YmIwOWE2NTI5Y2E2Njkz
M2RjYTU2ZGQ2OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzL29wZXJhdGluZy1kYXRlcy1hbGwtYnV0LWNvb2tpZXMtbm90LXJlbW92ZWQt
d2l0aC11c2VyLWludGVyYWN0aW9uLTYtZGF5cy1hZ28uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvb3BlcmF0aW5nLWRhdGVzLWFsbC1idXQt
Y29va2llcy1ub3QtcmVtb3ZlZC13aXRoLXVzZXItaW50ZXJhY3Rpb24tNi1kYXlzLWFnby5odG1s
CkBAIC0yMzAsMTAgKzIzMCwxMCBAQAogICAgIGNvbnN0IG90aGVyT3JpZ2luID0gImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMCIKICAgICBjb25zdCB0b3BGcmFtZU9yaWdpbiA9ICJodHRwOi8vMTI3LjAu
MC4yOjgwMDAiOwogICAgIGNvbnN0IHRpbWVTdGFtcCA9IE1hdGgucm91bmQoKG5ldyBEYXRlKCkp
LmdldFRpbWUoKSAvIDEwMDApOwotICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgYXN5
bmMgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlzU3Rh
dGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihvcmlnaW5VbmRlclRlc3QpKQogICAgICAgICAg
ICAgYWRkT3V0cHV0KCJGQUlMOiAiICsgb3JpZ2luVW5kZXJUZXN0ICsgIiBkb2Vzbid0IGhhdmUg
dXNlciBpbnRlcmFjdGlvbiBhZnRlciBwcm9jZXNzaW5nLiIpOwotICAgICAgICByZXNldENvb2tp
ZXMoKTsKKyAgICAgICAgYXdhaXQgcmVzZXRDb29raWVzSVRQKCk7CiAgICAgICAgIHNldEVuYWJs
ZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7CiAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL29wZXJhdGluZy1kYXRlcy1hbGwtYnV0LWNvb2tpZXMt
cmVtb3ZlZC13aXRoLXVzZXItaW50ZXJhY3Rpb24tNy1kYXlzLWFnby5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL29wZXJhdGluZy1kYXRlcy1hbGwt
YnV0LWNvb2tpZXMtcmVtb3ZlZC13aXRoLXVzZXItaW50ZXJhY3Rpb24tNy1kYXlzLWFnby5odG1s
CmluZGV4IGEwNTllMzZjYzUwOWMyOTEwZmQ5ODgwZDljNTNjMTMxNzBjNDg1OTYuLjgxN2EyYmZl
OGIwODM2ODllYjdhNmQ0ZDIxOTk3YTc1MDY0MzNmYTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9vcGVyYXRpbmctZGF0ZXMtYWxsLWJ1
dC1jb29raWVzLXJlbW92ZWQtd2l0aC11c2VyLWludGVyYWN0aW9uLTctZGF5cy1hZ28uaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvb3BlcmF0
aW5nLWRhdGVzLWFsbC1idXQtY29va2llcy1yZW1vdmVkLXdpdGgtdXNlci1pbnRlcmFjdGlvbi03
LWRheXMtYWdvLmh0bWwKQEAgLTIzMCwxMCArMjMwLDEwIEBACiAgICAgY29uc3Qgb3RoZXJPcmln
aW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIgogICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2luID0g
Imh0dHA6Ly8xMjcuMC4wLjI6ODAwMCI7CiAgICAgY29uc3QgdGltZVN0YW1wID0gTWF0aC5yb3Vu
ZCgobmV3IERhdGUoKSkuZ2V0VGltZSgpIC8gMTAwMCk7Ci0gICAgZnVuY3Rpb24gZmluaXNoVGVz
dCgpIHsKKyAgICBhc3luYyBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgewogICAgICAgICBpZiAoIXRl
c3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKG9yaWdpblVuZGVyVGVz
dCkpCiAgICAgICAgICAgICBhZGRPdXRwdXQoIkZBSUw6ICIgKyBvcmlnaW5VbmRlclRlc3QgKyAi
IGRvZXNuJ3QgaGF2ZSB1c2VyIGludGVyYWN0aW9uIGFmdGVyIHByb2Nlc3NpbmcuIik7Ci0gICAg
ICAgIHJlc2V0Q29va2llcygpOworICAgICAgICBhd2FpdCByZXNldENvb2tpZXNJVFAoKTsKICAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvb3BlcmF0aW5nLWRhdGVzLWFs
bC13ZWJzaXRlLWRhdGEtcmVtb3ZlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL29wZXJhdGluZy1kYXRlcy1hbGwtd2Vic2l0ZS1kYXRhLXJlbW92
ZWQuaHRtbAppbmRleCA1MjBiMTc4YjMyYzIzNTkxYmZjYThjY2I5OGMzOGYyMzA2MjEyYmQ0Li4z
YjQzY2QyMzliNjMxNjE0ODJkM2ZmMTQ2ZDI5MGY1ZmY3ZDg5MzgzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvb3BlcmF0aW5nLWRhdGVz
LWFsbC13ZWJzaXRlLWRhdGEtcmVtb3ZlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9vcGVyYXRpbmctZGF0ZXMtYWxsLXdlYnNpdGUtZGF0
YS1yZW1vdmVkLmh0bWwKQEAgLTIyNywxMCArMjI3LDEwIEBACiAgICAgfQogCiAgICAgY29uc3Qg
b3JpZ2luVW5kZXJUZXN0ICA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOwotICAgIGZ1bmN0aW9u
IGZpbmlzaFRlc3QoKSB7CisgICAgYXN5bmMgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKICAgICAg
ICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKG9yaWdp
blVuZGVyVGVzdCkpCiAgICAgICAgICAgICBhZGRPdXRwdXQoIkZBSUw6ICIgKyBvcmlnaW5VbmRl
clRlc3QgKyAiIHN0aWxsIGhhcyB1c2VyIGludGVyYWN0aW9uIGFmdGVyIHByb2Nlc3NpbmcuIik7
Ci0gICAgICAgIHJlc2V0Q29va2llcygpOworICAgICAgICBhd2FpdCByZXNldENvb2tpZXNJVFAo
KTsKICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZnVuY3Rpb24oKSB7CiAgICAgICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2VzL3V0
aWwuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVz
b3VyY2VzL3V0aWwuanMKaW5kZXggOTZiZmY1YWVhODM1Zjc3NDRkNzIzM2Q1NTAzNjhmNGNjMTli
ZTVkMS4uOWNlNzA0Yjk4YzhjNmY5ODJmNjUzYzFlYzEwMWU3MTU3NWE2OGZlZiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291cmNl
cy91dGlsLmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy9yZXNvdXJjZXMvdXRpbC5qcwpAQCAtMTMsMyArMTMsNDIgQEAgZnVuY3Rpb24gc2V0RW5h
YmxlRmVhdHVyZShlbmFibGUsIGNvbXBsZXRpb25IYW5kbGVyKSB7CiAgICAgICAgIH0pOwogICAg
IH0KIH0KKworYXN5bmMgZnVuY3Rpb24gcmVzZXRDb29raWVzSVRQKCkgeworICAgIGxldCB1cmxz
ID0gWworICAgICAgICAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwKKyAgICBdOworCisgICAgY29u
c29sZS5hc3NlcnQodXJscy5sZW5ndGgpOworCisgICAgZnVuY3Rpb24gc2V0VXAoKSB7CisgICAg
ICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geworICAgICAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRBbHdheXNB
Y2NlcHRDb29raWVzKHRydWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmVzb2x2ZSgp
OworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjbGVhblVwKCkgeworICAgICAg
ICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKKyAgICAgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldEFsd2F5c0FjY2Vw
dENvb2tpZXMoZmFsc2UpOworICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9KTsKKyAg
ICB9CisKKyAgICBsZXQgcHJvbWlzZSA9IHNldFVwKCk7CisgICAgZm9yIChsZXQgdXJsIG9mIHVy
bHMpIHsKKyAgICAgICAgcHJvbWlzZSA9IHByb21pc2UudGhlbigoKSA9PiB7CisgICAgICAgICAg
ICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICAgICAg
ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgKG1lc3NhZ2VFdmVudCkgPT4g
cmVzb2x2ZShtZXNzYWdlRXZlbnQpLCB7Y2FwdHVyZTogdHJ1ZSwgb25jZTogdHJ1ZX0pOworICAg
ICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJh
bWUiKTsKKyAgICAgICAgICAgICAgICBlbGVtZW50LnNyYyA9ICJodHRwOi8vMTI3LjAuMC4xOjgw
MDAvY29va2llcy9yZXNvdXJjZXMvZGVsZXRlLWNvb2tpZS5weSI7CisgICAgICAgICAgICAgICAg
ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50KTsKKyAgICAgICAgICAgIH0pOworICAg
ICAgICB9KTsKKyAgICB9CisgICAgcmV0dXJuIHByb21pc2UudGhlbihjbGVhblVwKTsKK30KKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3N0YW5kYWxvbmUtd2ViLWFwcGxpY2F0aW9uLWV4ZW1wdC1mcm9tLXdlYnNpdGUtZGF0YS1kZWxl
dGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3N0YW5kYWxvbmUtd2ViLWFwcGxpY2F0aW9uLWV4ZW1wdC1mcm9tLXdlYnNpdGUtZGF0YS1kZWxl
dGlvbi5odG1sCmluZGV4IDNiYzFjNzQyZjc1N2ZlODg4NzY3MjZjYTY3OGEwMTgyOWVkNGJiMTQu
LjMxNDkzYWRhZDBiZjg0YjFlMTY4NWRkZDEyY2VjNWM2OGQ5MjkxYjUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdGFuZGFsb25lLXdl
Yi1hcHBsaWNhdGlvbi1leGVtcHQtZnJvbS13ZWJzaXRlLWRhdGEtZGVsZXRpb24uaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RhbmRhbG9u
ZS13ZWItYXBwbGljYXRpb24tZXhlbXB0LWZyb20td2Vic2l0ZS1kYXRhLWRlbGV0aW9uLmh0bWwK
QEAgLTIyOCw4ICsyMjgsOCBAQAogICAgICAgICB9KTsKICAgICB9CiAKLSAgICBmdW5jdGlvbiBm
aW5pc2hUZXN0KCkgewotICAgICAgICByZXNldENvb2tpZXMoKTsKKyAgICBhc3luYyBmdW5jdGlv
biBmaW5pc2hUZXN0KCkgeworICAgICAgICBhd2FpdCByZXNldENvb2tpZXNJVFAoKTsKICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzRmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1v
ZGUoZmFsc2UsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxz
ZSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3Rp
Y3Mvd2Vic2l0ZS1kYXRhLXJlbW92YWwtZm9yLXNpdGUtbmF2aWdhdGVkLXRvLXdpdGgtbGluay1k
ZWNvcmF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvd2Vic2l0ZS1kYXRhLXJlbW92YWwtZm9yLXNpdGUtbmF2aWdhdGVkLXRvLXdpdGgtbGlu
ay1kZWNvcmF0aW9uLmh0bWwKaW5kZXggMzhhYzE1ZWUxMmNhMzZkMjMzYzJkZjViNzczMTQwNzQw
Y2VjYjA2Zi4uMzJiNGFmNDdlM2I2MDUwNDAyYmE0ZjBjYzY2ZDRhZWM3ZDlhN2U4MyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3dlYnNp
dGUtZGF0YS1yZW1vdmFsLWZvci1zaXRlLW5hdmlnYXRlZC10by13aXRoLWxpbmstZGVjb3JhdGlv
bi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy93ZWJzaXRlLWRhdGEtcmVtb3ZhbC1mb3Itc2l0ZS1uYXZpZ2F0ZWQtdG8td2l0aC1saW5rLWRl
Y29yYXRpb24uaHRtbApAQCAtMjI3LDggKzIyNyw4IEBACiAgICAgICAgIH0pOwogICAgIH0KIAot
ICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7Ci0gICAgICAgIHJlc2V0Q29va2llcygpOworICAg
IGFzeW5jIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIGF3YWl0IHJlc2V0Q29va2ll
c0lUUCgpOwogICAgICAgICB0ZXN0UnVubmVyLmR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCk7
CiAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9uKCkgewogICAgICAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvd2Vic2l0ZS1kYXRhLXJlbW92YWwtZm9yLXNp
dGUtd2l0aC11c2VyLWludGVyYWN0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jl
c291cmNlTG9hZFN0YXRpc3RpY3Mvd2Vic2l0ZS1kYXRhLXJlbW92YWwtZm9yLXNpdGUtd2l0aC11
c2VyLWludGVyYWN0aW9uLmh0bWwKaW5kZXggNmFjMGFiNGFmNTVjZTUxZWQ3NjQ0N2FjYjM4NDIw
NzhlYTBkMzE2NC4uODExMGI4ZGNhMTExOTE5OGM5NjQ0MmE5NWM1NjQxYTcwN2ExMjI5ZiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3dl
YnNpdGUtZGF0YS1yZW1vdmFsLWZvci1zaXRlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi5odG1sCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy93ZWJzaXRl
LWRhdGEtcmVtb3ZhbC1mb3Itc2l0ZS13aXRoLXVzZXItaW50ZXJhY3Rpb24uaHRtbApAQCAtMjI3
LDggKzIyNyw4IEBACiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIGZ1bmN0aW9uIGZpbmlzaFRl
c3QoKSB7Ci0gICAgICAgIHJlc2V0Q29va2llcygpOworICAgIGFzeW5jIGZ1bmN0aW9uIGZpbmlz
aFRlc3QoKSB7CisgICAgICAgIGF3YWl0IHJlc2V0Q29va2llc0lUUCgpOwogICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZShmYWxz
ZSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmdW5j
dGlvbigpIHsKICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy93ZWJz
aXRlLWRhdGEtcmVtb3ZhbC1mb3Itc2l0ZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24uaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy93ZWJzaXRlLWRh
dGEtcmVtb3ZhbC1mb3Itc2l0ZS13aXRob3V0LXVzZXItaW50ZXJhY3Rpb24uaHRtbAppbmRleCAw
MDFiNDNjMGNlMmQzZGI2OTkzYjZmYmEwMGY2MjYyYmU2MmMxNDMxLi5kM2E5OTE1MzI2NWRhZTk1
YmM0OWY0ZmRkZTIzN2ViZGI0OWMwZjQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvd2Vic2l0ZS1kYXRhLXJlbW92YWwtZm9yLXNpdGUt
d2l0aG91dC11c2VyLWludGVyYWN0aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3dlYnNpdGUtZGF0YS1yZW1vdmFsLWZvci1zaXRlLXdp
dGhvdXQtdXNlci1pbnRlcmFjdGlvbi5odG1sCkBAIC0yMjcsOCArMjI3LDggQEAKICAgICAgICAg
fSk7CiAgICAgfQogCi0gICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKLSAgICAgICAgcmVzZXRD
b29raWVzKCk7CisgICAgYXN5bmMgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAgYXdh
aXQgcmVzZXRDb29raWVzSVRQKCk7CiAgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0Zp
cnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlKGZhbHNlLCBmdW5jdGlvbigpIHsKICAgICAg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442046</attachid>
            <date>2021-10-21 10:54:46 -0700</date>
            <delta_ts>2021-10-21 11:26:20 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-231971-20211021105445.patch</filename>
            <type>text/plain</type>
            <size>11769</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NjA2CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZmZmYTg3MzJhZWM2OTU2NTM5MzMw
N2QzM2U0NzI0MDQ3Y2U3NDAzZC4uMjRlNjVmY2Q0YzY2YzE2MDliYmU3NjM2OGEzODdmM2I5M2Zk
YWZmMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTEwLTIxICBLYXRlIENoZW5leSAgPGth
dGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIGh0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy93ZWJzaXRlLWRhdGEtcmVtb3ZhbC1mb3Itc2l0ZS1uYXZpZ2F0ZWQtdG8t
d2l0aC1saW5rLWRlY29yYXRpb24uaHRtbCBpcyBhIGZsYWt5IHRpbWVvdXQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTk3MQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vODQyNzAxMDg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9obiBXaWxhbmRl
ci4KKworICAgICAgICBVcGRhdGUgSVRQIHRlc3RzIHRvIHdhaXQgZm9yIHJlc2V0Q29va2llcygp
IHRvIGZpbmlzaCBiZWZvcmUgZW5kaW5nCisgICAgICAgIHRoZSB0ZXN0LiBGbGFreSB0aW1lb3V0
cyB3ZXJlIGJlaW5nIGNhdXNlZCBieSByZXNldENvb2tpZXMoKSBiZWluZworICAgICAgICBwYXJ0
aWFsbHkgZmluaXNoZWQgd2hpY2ggcmVzZXRzIHRoZSB0b3AgbG9hZGluZyBmcmFtZSBjaGVja2Vk
IGluCisgICAgICAgIFRlc3RSdW5uZXI6Om5vdGlmeURvbmUoKS4KKworICAgICAgICAqIGh0dHAv
dGVzdHMvY29va2llcy9yZXNvdXJjZXMvZGVsZXRlLWNvb2tpZS5weTogQWRkZWQuCisgICAgICAg
IChkZWxldGVfY29va2llKToKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRp
c3RpY3Mvb3BlcmF0aW5nLWRhdGVzLWFsbC1idXQtY29va2llcy1ub3QtcmVtb3ZlZC13aXRoLXVz
ZXItaW50ZXJhY3Rpb24tNi1kYXlzLWFnby5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy9vcGVyYXRpbmctZGF0ZXMtYWxsLWJ1dC1jb29raWVzLXJlbW92
ZWQtd2l0aC11c2VyLWludGVyYWN0aW9uLTctZGF5cy1hZ28uaHRtbDoKKyAgICAgICAgKiBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvb3BlcmF0aW5nLWRhdGVzLWFsbC13ZWJzaXRl
LWRhdGEtcmVtb3ZlZC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9yZXNvdXJjZXMvdXRpbC5qczoKKyAgICAgICAgKGFzeW5jIHJlc2V0Q29va2llc0lU
UC5zZXRVcCk6CisgICAgICAgIChhc3luYyByZXNldENvb2tpZXNJVFApOgorICAgICAgICAqIGh0
dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9zdGFuZGFsb25lLXdlYi1hcHBsaWNhdGlv
bi1leGVtcHQtZnJvbS13ZWJzaXRlLWRhdGEtZGVsZXRpb24uaHRtbDoKKyAgICAgICAgKiBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvd2Vic2l0ZS1kYXRhLXJlbW92YWwtZm9yLXNp
dGUtbmF2aWdhdGVkLXRvLXdpdGgtbGluay1kZWNvcmF0aW9uLmh0bWw6CisgICAgICAgICogaHR0
cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3dlYnNpdGUtZGF0YS1yZW1vdmFsLWZvci1z
aXRlLXdpdGgtdXNlci1pbnRlcmFjdGlvbi5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy93ZWJzaXRlLWRhdGEtcmVtb3ZhbC1mb3Itc2l0ZS13aXRob3V0
LXVzZXItaW50ZXJhY3Rpb24uaHRtbDoKKwogMjAyMS0xMC0yMSAgQW50b2luZSBRdWludCAgPGdy
YW91dHNAd2Via2l0Lm9yZz4KIAogICAgICAgICBDU1NQcm9wZXJ0eVpvb20gbmVlZHMgd3JhcHBl
ciB0aGF0IGVuc3VyZXMgaXQncyBhbHdheXMgYmxlbmRlZCBpbnRvIGEgcG9zaXRpdmUgdmFsdWUu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvcmVzb3VyY2VzL2Rl
bGV0ZS1jb29raWUucHkgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvcmVzb3VyY2Vz
L2RlbGV0ZS1jb29raWUucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjFiNDQ2NWNiNzc3NzZkM2ZlMmZkNGFkOTRi
M2ZiZjUzZjkwOGQ2MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
Y29va2llcy9yZXNvdXJjZXMvZGVsZXRlLWNvb2tpZS5weQpAQCAtMCwwICsxLDI5IEBACisjIS91
c3IvYmluL2VudiBweXRob24zCisKK2ltcG9ydCBvcworaW1wb3J0IHN5cworZnJvbSBkYXRldGlt
ZSBpbXBvcnQgZGF0ZXRpbWUsIHRpbWVkZWx0YQorZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHBh
cnNlX3FzCisKK2ZpbGUgPSBfX2ZpbGVfXy5zcGxpdCgnOi9jeWd3aW4nKVstMV0KK2h0dHBfcm9v
dCA9IG9zLnBhdGguZGlybmFtZShvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5hYnNwYXRoKG9zLnBh
dGguZGlybmFtZShmaWxlKSkpKQorc3lzLnBhdGguaW5zZXJ0KDAsIGh0dHBfcm9vdCkKKworZnJv
bSByZXNvdXJjZXMucG9ydGFiaWxpdHlMYXllciBpbXBvcnQgZ2V0X2Nvb2tpZXMKKworY29va2ll
cyA9IGdldF9jb29raWVzKCkKKworCitkZWYgZGVsZXRlX2Nvb2tpZShuYW1lKToKKyAgICBleHBp
cmVzID0gZGF0ZXRpbWUudXRjbm93KCkgLSB0aW1lZGVsdGEoc2Vjb25kcz04NjQwMCkKKyAgICBz
eXMuc3Rkb3V0LndyaXRlKCdTZXQtQ29va2llOiB7fT1kZWxldGVkOyBleHBpcmVzPXt9IEdNVDsg
TWF4LUFnZT0wOyBwYXRoPS9cclxuJy5mb3JtYXQobmFtZSwgZXhwaXJlcy5zdHJmdGltZSgnJWEs
ICVkLSViLSVZICVIOiVNOiVTJykpKQorCisKK3F1ZXJ5X2Z1bmN0aW9uID0gcGFyc2VfcXMob3Mu
ZW52aXJvbi5nZXQoJ1FVRVJZX1NUUklORycsICcnKSwga2VlcF9ibGFua192YWx1ZXM9VHJ1ZSku
Z2V0KCdxdWVyeWZ1bmN0aW9uJywgWycnXSlbMF0KKworc3lzLnN0ZG91dC53cml0ZSgnQ29udGVu
dC1UeXBlOiB0ZXh0L2h0bWxcclxuJykKKworZm9yIGNvb2tpZSBpbiBjb29raWVzLmtleXMoKToK
KyAgICBkZWxldGVfY29va2llKGNvb2tpZSkKKworc3lzLnN0ZG91dC53cml0ZSgnXHJcbjxzY3Jp
cHQ+cGFyZW50LnBvc3RNZXNzYWdlKFwnZG9uZVwnLCBcJypcJyk7PC9zY3JpcHQ+XG4nKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL29w
ZXJhdGluZy1kYXRlcy1hbGwtYnV0LWNvb2tpZXMtbm90LXJlbW92ZWQtd2l0aC11c2VyLWludGVy
YWN0aW9uLTYtZGF5cy1hZ28uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9vcGVyYXRpbmctZGF0ZXMtYWxsLWJ1dC1jb29raWVzLW5vdC1yZW1vdmVk
LXdpdGgtdXNlci1pbnRlcmFjdGlvbi02LWRheXMtYWdvLmh0bWwKaW5kZXggODNiNmNlZTE3ZWZh
NjJmYmNkZWI3MjkwZTY0YjY1M2Y5NjgxMjc1OC4uZWE4MDAyMDRmMGQ5Zjg1YmIwOWE2NTI5Y2E2
NjkzM2RjYTU2ZGQ2OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzL29wZXJhdGluZy1kYXRlcy1hbGwtYnV0LWNvb2tpZXMtbm90LXJlbW92
ZWQtd2l0aC11c2VyLWludGVyYWN0aW9uLTYtZGF5cy1hZ28uaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvb3BlcmF0aW5nLWRhdGVzLWFsbC1i
dXQtY29va2llcy1ub3QtcmVtb3ZlZC13aXRoLXVzZXItaW50ZXJhY3Rpb24tNi1kYXlzLWFnby5o
dG1sCkBAIC0yMzAsMTAgKzIzMCwxMCBAQAogICAgIGNvbnN0IG90aGVyT3JpZ2luID0gImh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMCIKICAgICBjb25zdCB0b3BGcmFtZU9yaWdpbiA9ICJodHRwOi8vMTI3
LjAuMC4yOjgwMDAiOwogICAgIGNvbnN0IHRpbWVTdGFtcCA9IE1hdGgucm91bmQoKG5ldyBEYXRl
KCkpLmdldFRpbWUoKSAvIDEwMDApOwotICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAg
YXN5bmMgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKICAgICAgICAgaWYgKCF0ZXN0UnVubmVyLmlz
U3RhdGlzdGljc0hhc0hhZFVzZXJJbnRlcmFjdGlvbihvcmlnaW5VbmRlclRlc3QpKQogICAgICAg
ICAgICAgYWRkT3V0cHV0KCJGQUlMOiAiICsgb3JpZ2luVW5kZXJUZXN0ICsgIiBkb2Vzbid0IGhh
dmUgdXNlciBpbnRlcmFjdGlvbiBhZnRlciBwcm9jZXNzaW5nLiIpOwotICAgICAgICByZXNldENv
b2tpZXMoKTsKKyAgICAgICAgYXdhaXQgcmVzZXRDb29raWVzSVRQKCk7CiAgICAgICAgIHNldEVu
YWJsZUZlYXR1cmUoZmFsc2UsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgdGVzdFJ1bm5lci5u
b3RpZnlEb25lKCk7CiAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL29wZXJhdGluZy1kYXRlcy1hbGwtYnV0LWNvb2tp
ZXMtcmVtb3ZlZC13aXRoLXVzZXItaW50ZXJhY3Rpb24tNy1kYXlzLWFnby5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL29wZXJhdGluZy1kYXRlcy1h
bGwtYnV0LWNvb2tpZXMtcmVtb3ZlZC13aXRoLXVzZXItaW50ZXJhY3Rpb24tNy1kYXlzLWFnby5o
dG1sCmluZGV4IGEwNTllMzZjYzUwOWMyOTEwZmQ5ODgwZDljNTNjMTMxNzBjNDg1OTYuLjgxN2Ey
YmZlOGIwODM2ODllYjdhNmQ0ZDIxOTk3YTc1MDY0MzNmYTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9vcGVyYXRpbmctZGF0ZXMtYWxs
LWJ1dC1jb29raWVzLXJlbW92ZWQtd2l0aC11c2VyLWludGVyYWN0aW9uLTctZGF5cy1hZ28uaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvb3Bl
cmF0aW5nLWRhdGVzLWFsbC1idXQtY29va2llcy1yZW1vdmVkLXdpdGgtdXNlci1pbnRlcmFjdGlv
bi03LWRheXMtYWdvLmh0bWwKQEAgLTIzMCwxMCArMjMwLDEwIEBACiAgICAgY29uc3Qgb3RoZXJP
cmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIgogICAgIGNvbnN0IHRvcEZyYW1lT3JpZ2lu
ID0gImh0dHA6Ly8xMjcuMC4wLjI6ODAwMCI7CiAgICAgY29uc3QgdGltZVN0YW1wID0gTWF0aC5y
b3VuZCgobmV3IERhdGUoKSkuZ2V0VGltZSgpIC8gMTAwMCk7Ci0gICAgZnVuY3Rpb24gZmluaXNo
VGVzdCgpIHsKKyAgICBhc3luYyBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgewogICAgICAgICBpZiAo
IXRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKG9yaWdpblVuZGVy
VGVzdCkpCiAgICAgICAgICAgICBhZGRPdXRwdXQoIkZBSUw6ICIgKyBvcmlnaW5VbmRlclRlc3Qg
KyAiIGRvZXNuJ3QgaGF2ZSB1c2VyIGludGVyYWN0aW9uIGFmdGVyIHByb2Nlc3NpbmcuIik7Ci0g
ICAgICAgIHJlc2V0Q29va2llcygpOworICAgICAgICBhd2FpdCByZXNldENvb2tpZXNJVFAoKTsK
ICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZnVuY3Rpb24oKSB7CiAgICAgICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvb3BlcmF0aW5nLWRhdGVz
LWFsbC13ZWJzaXRlLWRhdGEtcmVtb3ZlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL29wZXJhdGluZy1kYXRlcy1hbGwtd2Vic2l0ZS1kYXRhLXJl
bW92ZWQuaHRtbAppbmRleCA1MjBiMTc4YjMyYzIzNTkxYmZjYThjY2I5OGMzOGYyMzA2MjEyYmQ0
Li4zYjQzY2QyMzliNjMxNjE0ODJkM2ZmMTQ2ZDI5MGY1ZmY3ZDg5MzgzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvb3BlcmF0aW5nLWRh
dGVzLWFsbC13ZWJzaXRlLWRhdGEtcmVtb3ZlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9vcGVyYXRpbmctZGF0ZXMtYWxsLXdlYnNpdGUt
ZGF0YS1yZW1vdmVkLmh0bWwKQEAgLTIyNywxMCArMjI3LDEwIEBACiAgICAgfQogCiAgICAgY29u
c3Qgb3JpZ2luVW5kZXJUZXN0ICA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOwotICAgIGZ1bmN0
aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgYXN5bmMgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKICAg
ICAgICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKG9y
aWdpblVuZGVyVGVzdCkpCiAgICAgICAgICAgICBhZGRPdXRwdXQoIkZBSUw6ICIgKyBvcmlnaW5V
bmRlclRlc3QgKyAiIHN0aWxsIGhhcyB1c2VyIGludGVyYWN0aW9uIGFmdGVyIHByb2Nlc3Npbmcu
Iik7Ci0gICAgICAgIHJlc2V0Q29va2llcygpOworICAgICAgICBhd2FpdCByZXNldENvb2tpZXNJ
VFAoKTsKICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZnVuY3Rpb24oKSB7CiAgICAg
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgfSk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvcmVzb3VyY2Vz
L3V0aWwuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
cmVzb3VyY2VzL3V0aWwuanMKaW5kZXggOTZiZmY1YWVhODM1Zjc3NDRkNzIzM2Q1NTAzNjhmNGNj
MTliZTVkMS4uMWFjYTc4ZjA4MWY4NjA0Y2ZiNThiMWJlNTIxYTUxNzk2YmRiMDQ4NyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3Jlc291
cmNlcy91dGlsLmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9yZXNvdXJjZXMvdXRpbC5qcwpAQCAtMTMsMyArMTMsMzcgQEAgZnVuY3Rpb24gc2V0
RW5hYmxlRmVhdHVyZShlbmFibGUsIGNvbXBsZXRpb25IYW5kbGVyKSB7CiAgICAgICAgIH0pOwog
ICAgIH0KIH0KKworYXN5bmMgZnVuY3Rpb24gcmVzZXRDb29raWVzSVRQKCkgeworICAgIHZhciB0
ZXN0VVJMID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgY29uc29sZS5hc3NlcnQodGVz
dFVSTCA9PSBkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4pOworCisgICAgZnVuY3Rpb24gc2V0VXAo
KSB7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geworICAgICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5z
ZXRBbHdheXNBY2NlcHRDb29raWVzKHRydWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
cmVzb2x2ZSgpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBjbGVhblVwKCkg
eworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKKyAgICAgICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldEFs
d2F5c0FjY2VwdENvb2tpZXMoZmFsc2UpOworICAgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAg
ICB9KTsKKyAgICB9CisKKyAgICBsZXQgcHJvbWlzZSA9IHNldFVwKCk7CisgICAgcHJvbWlzZSA9
IHByb21pc2UudGhlbigoKSA9PiB7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2
ZSwgcmVqZWN0KSA9PiB7CisgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVz
c2FnZSIsIChtZXNzYWdlRXZlbnQpID0+IHJlc29sdmUobWVzc2FnZUV2ZW50KSwge2NhcHR1cmU6
IHRydWUsIG9uY2U6IHRydWV9KTsKKyAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgICAgIGVsZW1lbnQuc3JjID0gImh0
dHA6Ly8xMjcuMC4wLjE6ODAwMC9jb29raWVzL3Jlc291cmNlcy9kZWxldGUtY29va2llLnB5IjsK
KyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgICAg
IH0pOworICAgIH0pOworICAgIHJldHVybiBwcm9taXNlLnRoZW4oY2xlYW5VcCk7Cit9CisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9z
dGFuZGFsb25lLXdlYi1hcHBsaWNhdGlvbi1leGVtcHQtZnJvbS13ZWJzaXRlLWRhdGEtZGVsZXRp
b24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9z
dGFuZGFsb25lLXdlYi1hcHBsaWNhdGlvbi1leGVtcHQtZnJvbS13ZWJzaXRlLWRhdGEtZGVsZXRp
b24uaHRtbAppbmRleCAzYmMxYzc0MmY3NTdmZTg4ODc2NzI2Y2E2NzhhMDE4MjllZDRiYjE0Li4z
MTQ5M2FkYWQwYmY4NGIxZTE2ODVkZGQxMmNlYzVjNjhkOTI5MWI1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvc3RhbmRhbG9uZS13ZWIt
YXBwbGljYXRpb24tZXhlbXB0LWZyb20td2Vic2l0ZS1kYXRhLWRlbGV0aW9uLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3N0YW5kYWxvbmUt
d2ViLWFwcGxpY2F0aW9uLWV4ZW1wdC1mcm9tLXdlYnNpdGUtZGF0YS1kZWxldGlvbi5odG1sCkBA
IC0yMjgsOCArMjI4LDggQEAKICAgICAgICAgfSk7CiAgICAgfQogCi0gICAgZnVuY3Rpb24gZmlu
aXNoVGVzdCgpIHsKLSAgICAgICAgcmVzZXRDb29raWVzKCk7CisgICAgYXN5bmMgZnVuY3Rpb24g
ZmluaXNoVGVzdCgpIHsKKyAgICAgICAgYXdhaXQgcmVzZXRDb29raWVzSVRQKCk7CiAgICAgICAg
IHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc0ZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2Rl
KGZhbHNlLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2Us
IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
L3dlYnNpdGUtZGF0YS1yZW1vdmFsLWZvci1zaXRlLW5hdmlnYXRlZC10by13aXRoLWxpbmstZGVj
b3JhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3dlYnNpdGUtZGF0YS1yZW1vdmFsLWZvci1zaXRlLW5hdmlnYXRlZC10by13aXRoLWxpbmst
ZGVjb3JhdGlvbi5odG1sCmluZGV4IDM4YWMxNWVlMTJjYTM2ZDIzM2MyZGY1Yjc3MzE0MDc0MGNl
Y2IwNmYuLjMyYjRhZjQ3ZTNiNjA1MDQwMmJhNGYwY2M2NmQ0YWVjN2Q5YTdlODMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy93ZWJzaXRl
LWRhdGEtcmVtb3ZhbC1mb3Itc2l0ZS1uYXZpZ2F0ZWQtdG8td2l0aC1saW5rLWRlY29yYXRpb24u
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mv
d2Vic2l0ZS1kYXRhLXJlbW92YWwtZm9yLXNpdGUtbmF2aWdhdGVkLXRvLXdpdGgtbGluay1kZWNv
cmF0aW9uLmh0bWwKQEAgLTIyNyw4ICsyMjcsOCBAQAogICAgICAgICB9KTsKICAgICB9CiAKLSAg
ICBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgewotICAgICAgICByZXNldENvb2tpZXMoKTsKKyAgICBh
c3luYyBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgeworICAgICAgICBhd2FpdCByZXNldENvb2tpZXNJ
VFAoKTsKICAgICAgICAgdGVzdFJ1bm5lci5kdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcygpOwog
ICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAg
IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3dlYnNpdGUtZGF0YS1yZW1vdmFsLWZvci1zaXRl
LXdpdGgtdXNlci1pbnRlcmFjdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzL3dlYnNpdGUtZGF0YS1yZW1vdmFsLWZvci1zaXRlLXdpdGgtdXNl
ci1pbnRlcmFjdGlvbi5odG1sCmluZGV4IDZhYzBhYjRhZjU1Y2U1MWVkNzY0NDdhY2IzODQyMDc4
ZWEwZDMxNjQuLjgxMTBiOGRjYTExMTkxOThjOTY0NDJhOTVjNTY0MWE3MDdhMTIyOWYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy93ZWJz
aXRlLWRhdGEtcmVtb3ZhbC1mb3Itc2l0ZS13aXRoLXVzZXItaW50ZXJhY3Rpb24uaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvd2Vic2l0ZS1k
YXRhLXJlbW92YWwtZm9yLXNpdGUtd2l0aC11c2VyLWludGVyYWN0aW9uLmh0bWwKQEAgLTIyNyw4
ICsyMjcsOCBAQAogICAgICAgICB9KTsKICAgICB9CiAKLSAgICBmdW5jdGlvbiBmaW5pc2hUZXN0
KCkgewotICAgICAgICByZXNldENvb2tpZXMoKTsKKyAgICBhc3luYyBmdW5jdGlvbiBmaW5pc2hU
ZXN0KCkgeworICAgICAgICBhd2FpdCByZXNldENvb2tpZXNJVFAoKTsKICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzRmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUoZmFsc2Us
IGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShmYWxzZSwgZnVuY3Rp
b24oKSB7CiAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvd2Vic2l0
ZS1kYXRhLXJlbW92YWwtZm9yLXNpdGUtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvd2Vic2l0ZS1kYXRh
LXJlbW92YWwtZm9yLXNpdGUtd2l0aG91dC11c2VyLWludGVyYWN0aW9uLmh0bWwKaW5kZXggMDAx
YjQzYzBjZTJkM2RiNjk5M2I2ZmJhMDBmNjI2MmJlNjJjMTQzMS4uZDNhOTkxNTMyNjVkYWU5NWJj
NDlmNGZkZGUyMzdlYmRiNDljMGY0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3dlYnNpdGUtZGF0YS1yZW1vdmFsLWZvci1zaXRlLXdp
dGhvdXQtdXNlci1pbnRlcmFjdGlvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy93ZWJzaXRlLWRhdGEtcmVtb3ZhbC1mb3Itc2l0ZS13aXRo
b3V0LXVzZXItaW50ZXJhY3Rpb24uaHRtbApAQCAtMjI3LDggKzIyNyw4IEBACiAgICAgICAgIH0p
OwogICAgIH0KIAotICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7Ci0gICAgICAgIHJlc2V0Q29v
a2llcygpOworICAgIGFzeW5jIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7CisgICAgICAgIGF3YWl0
IHJlc2V0Q29va2llc0lUUCgpOwogICAgICAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NGaXJz
dFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZShmYWxzZSwgZnVuY3Rpb24oKSB7CiAgICAgICAg
ICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>