<?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>183705</bug_id>
          
          <creation_ts>2018-03-16 13:03:58 -0700</creation_ts>
          <short_desc>[ WK2 ] http/tests/workers/service/client-*-page-cache.html LayoutTests are flaky</short_desc>
          <delta_ts>2018-08-31 14:48:25 -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>Service Workers</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="Ryan Haddad">ryanhaddad</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jlewis3</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1407079</commentid>
    <comment_count>0</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2018-03-16 13:03:58 -0700</bug_when>
    <thetext>The following two LayoutTests are flaky failures on iOS and macOS WK2:

http/tests/workers/service/client-added-to-clients-when-restored-from-page-cache.html	
http/tests/workers/service/client-removed-from-clients-while-in-page-cache.html

https://build.webkit.org/results/Apple%20Sierra%20Debug%20WK2%20(Tests)/r229663%20(5649)/results.html

https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=http%2Ftests%2Fworkers%2Fservice%2Fclient


Both tests fail with a similar diff:

--- /Volumes/Data/slave/sierra-debug-tests-wk2/build/layout-test-results/http/tests/workers/service/client-added-to-clients-when-restored-from-page-cache-expected.txt
+++ /Volumes/Data/slave/sierra-debug-tests-wk2/build/layout-test-results/http/tests/workers/service/client-added-to-clients-when-restored-from-page-cache-actual.txt
@@ -1,6 +1,4 @@
 * Tests that a client is re-added to the list of service worker clients when it is restored from the page cache
 
-PASS: service worker has initially 2 clients
-PASS: page is about to enter page cache
-PASS: service worker now has 2 clients again after restoring the second one from page cache
+FAIL: Wrong initial number of clients: 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1443030</commentid>
    <comment_count>1</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2018-07-18 09:47:17 -0700</bug_when>
    <thetext>These two tests currently became extremely flaky along with a third. 

http/tests/workers/service/client-added-to-clients-when-restored-from-page-cache.html
http/tests/workers/service/client-removed-from-clients-while-in-page-cache.html

http/tests/workers/service/serviceworkerclients-matchAll.https.html

Combined History:
https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=http%2Ftests%2Fworkers%2Fservice%2Fserviceworkerclients-matchAll.https.html%20%20http%2Ftests%2Fworkers%2Fservice%2Fclient-added-to-clients-when-restored-from-page-cache.html%20%20http%2Ftests%2Fworkers%2Fservice%2Fclient-removed-from-clients-while-in-page-cache.html

They all began failing around r233895. 

serviceworkerclients-matchAll.https.html Text Diff:

--- /Volumes/Data/slave/highsierra-release-tests-wk2/build/layout-test-results/http/tests/workers/service/serviceworkerclients-matchAll.https-expected.txt
+++ /Volumes/Data/slave/highsierra-release-tests-wk2/build/layout-test-results/http/tests/workers/service/serviceworkerclients-matchAll.https-actual.txt
@@ -1,4 +1,4 @@
 
 PASS Setup worker 
-PASS Test self.clients.matchAll 
+FAIL Test self.clients.matchAll assert_equals: expected &quot;PASS&quot; but got &quot;FAIL: expected one matched client, got 2&quot;

These issues seem to be due to the test receiving one additional client than they expected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1443442</commentid>
    <comment_count>2</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2018-07-19 11:47:34 -0700</bug_when>
    <thetext>Issue seems to have began between r233891 -- 233897. 

r233891 has specific changes to Clients: https://trac.webkit.org/changeset/233891/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1443445</commentid>
    <comment_count>3</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-07-19 12:00:58 -0700</bug_when>
    <thetext>(In reply to Truitt Savell from comment #2)
&gt; Issue seems to have began between r233891 -- 233897. 
&gt; 
&gt; r233891 has specific changes to Clients:
&gt; https://trac.webkit.org/changeset/233891/webkit

I really doubt this is the cause. This patch has no behavior change unless clients opt into the new SPI, which WebKitTestRunner does not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1443446</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-07-19 12:02:13 -0700</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #3)
&gt; (In reply to Truitt Savell from comment #2)
&gt; &gt; Issue seems to have began between r233891 -- 233897. 
&gt; &gt; 
&gt; &gt; r233891 has specific changes to Clients:
&gt; &gt; https://trac.webkit.org/changeset/233891/webkit
&gt; 
&gt; I really doubt this is the cause. This patch has no behavior change unless
&gt; clients opt into the new SPI, which WebKitTestRunner does not.

I am working on a bad crasher right now but I am happy to look into this bug right after that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1443538</commentid>
    <comment_count>5</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2018-07-19 15:27:28 -0700</bug_when>
    <thetext>I noticed that 
http/tests/workers/service/client-added-to-clients-when-restored-from-page-cache.html
http/tests/workers/service/client-removed-from-clients-while-in-page-cache.html

always fail together. They may be getting stuck in a state together. Or because they getting more clients than they expect maybe something is providing too many clients earlier in the run.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1443767</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-07-20 09:01:10 -0700</bug_when>
    <thetext>Ok, I have some spare cycles to look into this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1443769</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-07-20 09:02:35 -0700</bug_when>
    <thetext>&gt; Issue seems to have began between r233891 -- 233897. 

Likely a regression from process-swap-on-navigation then, which was r233897.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1443798</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-07-20 10:05:36 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #7)
&gt; &gt; Issue seems to have began between r233891 -- 233897. 
&gt; 
&gt; Likely a regression from process-swap-on-navigation then, which was r233897.

Unable to reproduce so far:
Tools/Scripts/run-webkit-tests http/tests/workers/service/client-added-to-clients-when-restored-from-page-cache.html http/tests/workers/service/client-removed-from-clients-while-in-page-cache.html --repeat-each=100 -f

Also tried running the whole folder.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1443840</commentid>
    <comment_count>9</comment_count>
      <attachid>345463</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-07-20 11:05:47 -0700</bug_when>
    <thetext>Created attachment 345463
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1443850</commentid>
    <comment_count>10</comment_count>
      <attachid>345463</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-07-20 11:16:19 -0700</bug_when>
    <thetext>Comment on attachment 345463
Patch

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

&gt; LayoutTests/http/tests/workers/service/client-added-to-clients-when-restored-from-page-cache.html:17
&gt; +      worker.postMessage(&quot;getClientCount&quot;);

Shouldn&apos;t we do the usual pattern:
if (++counter &lt; 20) {
  log(&quot;FAIL...&quot;)
  finishSWTest();
}
await waitFor(50);
worker.postMessage(&quot;getClientCount&quot;);

&gt; LayoutTests/http/tests/workers/service/serviceworkerclients-matchAll-worker.js:26
&gt; +            result = await matchAllPromise1;

This loop does not seem useful as is.
We might want to change matchAllPromise1 to a function which would return a new promise every time it is called.
Again a waitFor(50) might help.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1443873</commentid>
    <comment_count>11</comment_count>
      <attachid>345470</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-07-20 12:06:43 -0700</bug_when>
    <thetext>Created attachment 345470
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1443885</commentid>
    <comment_count>12</comment_count>
      <attachid>345470</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-20 12:34:16 -0700</bug_when>
    <thetext>Comment on attachment 345470
Patch

Clearing flags on attachment: 345470

Committed r234061: &lt;https://trac.webkit.org/changeset/234061&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1443886</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-20 12:34:17 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1443887</commentid>
    <comment_count>14</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-07-20 12:35:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/42440606&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1443950</commentid>
    <comment_count>15</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2018-07-20 16:44:05 -0700</bug_when>
    <thetext>(In reply to WebKit Commit Bot from comment #12)
&gt; Comment on attachment 345470 [details]
&gt; Patch
&gt; 
&gt; Clearing flags on attachment: 345470
&gt; 
&gt; Committed r234061: &lt;https://trac.webkit.org/changeset/234061&gt;

It does not look like this change made a difference. Test is still flakey and behavior seems to be the same. failure message is also the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1443951</commentid>
    <comment_count>16</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2018-07-20 16:44:35 -0700</bug_when>
    <thetext>reopening for visibility</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1443955</commentid>
    <comment_count>17</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-07-20 16:47:52 -0700</bug_when>
    <thetext>(In reply to Truitt Savell from comment #15)
&gt; (In reply to WebKit Commit Bot from comment #12)
&gt; &gt; Comment on attachment 345470 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; Clearing flags on attachment: 345470
&gt; &gt; 
&gt; &gt; Committed r234061: &lt;https://trac.webkit.org/changeset/234061&gt;
&gt; 
&gt; It does not look like this change made a difference. Test is still flakey
&gt; and behavior seems to be the same. failure message is also the same.

Which test? What is the output?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1443959</commentid>
    <comment_count>18</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-07-20 16:49:38 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #17)
&gt; (In reply to Truitt Savell from comment #15)
&gt; &gt; (In reply to WebKit Commit Bot from comment #12)
&gt; &gt; &gt; Comment on attachment 345470 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; Clearing flags on attachment: 345470
&gt; &gt; &gt; 
&gt; &gt; &gt; Committed r234061: &lt;https://trac.webkit.org/changeset/234061&gt;
&gt; &gt; 
&gt; &gt; It does not look like this change made a difference. Test is still flakey
&gt; &gt; and behavior seems to be the same. failure message is also the same.
&gt; 
&gt; Which test? What is the output?

The 2 page cache tests:
--- /Volumes/Data/slave/sierra-release-tests-wk2/build/layout-test-results/http/tests/workers/service/client-removed-from-clients-while-in-page-cache-expected.txt
+++ /Volumes/Data/slave/sierra-release-tests-wk2/build/layout-test-results/http/tests/workers/service/client-removed-from-clients-while-in-page-cache-actual.txt
@@ -1,6 +1,4 @@
 * Tests that a client is removed from the list of service worker clients while it is in the page cache
 
-PASS: service worker has initially 2 clients
-PASS: page is about to enter page cache
-PASS: service worker has only 1 client after 1 entered page cache
+FAIL: Wrong initial number of clients: 3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1443960</commentid>
    <comment_count>19</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2018-07-20 16:51:13 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #17)
&gt; (In reply to Truitt Savell from comment #15)
&gt; &gt; (In reply to WebKit Commit Bot from comment #12)
&gt; &gt; &gt; Comment on attachment 345470 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; Clearing flags on attachment: 345470
&gt; &gt; &gt; 
&gt; &gt; &gt; Committed r234061: &lt;https://trac.webkit.org/changeset/234061&gt;
&gt; &gt; 
&gt; &gt; It does not look like this change made a difference. Test is still flakey
&gt; &gt; and behavior seems to be the same. failure message is also the same.
&gt; 
&gt; Which test? What is the output?

Sorry I meant tests. All three tests:
https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=http%2Ftests%2Fworkers%2Fservice%2Fserviceworkerclients-matchAll.https.html%20%20http%2Ftests%2Fworkers%2Fservice%2Fclient-added-to-clients-when-restored-from-page-cache.html%20%20http%2Ftests%2Fworkers%2Fservice%2Fclient-removed-from-clients-while-in-page-cache.html

are still having flakey failures.

Test Outputs:
https://build.webkit.org/results/Apple%20iOS%2011%20Simulator%20Debug%20WK2%20(Tests)/r234067%20(5511)/http/tests/workers/service/serviceworkerclients-matchAll.https-pretty-diff.html

https://build.webkit.org/results/Apple%20Sierra%20Release%20WK2%20(Tests)/r234064%20(10678)/http/tests/workers/service/client-added-to-clients-when-restored-from-page-cache-pretty-diff.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1443963</commentid>
    <comment_count>20</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-07-20 16:56:40 -0700</bug_when>
    <thetext>(In reply to Truitt Savell from comment #19)
&gt; (In reply to Chris Dumez from comment #17)
&gt; &gt; (In reply to Truitt Savell from comment #15)
&gt; &gt; &gt; (In reply to WebKit Commit Bot from comment #12)
&gt; &gt; &gt; &gt; Comment on attachment 345470 [details]
&gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Clearing flags on attachment: 345470
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Committed r234061: &lt;https://trac.webkit.org/changeset/234061&gt;
&gt; &gt; &gt; 
&gt; &gt; &gt; It does not look like this change made a difference. Test is still flakey
&gt; &gt; &gt; and behavior seems to be the same. failure message is also the same.
&gt; &gt; 
&gt; &gt; Which test? What is the output?
&gt; 
&gt; Sorry I meant tests. All three tests:
&gt; https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.
&gt; html#showAllRuns=true&amp;tests=http%2Ftests%2Fworkers%2Fservice%2Fserviceworkerc
&gt; lients-matchAll.https.html%20%20http%2Ftests%2Fworkers%2Fservice%2Fclient-
&gt; added-to-clients-when-restored-from-page-cache.
&gt; html%20%20http%2Ftests%2Fworkers%2Fservice%2Fclient-removed-from-clients-
&gt; while-in-page-cache.html
&gt; 
&gt; are still having flakey failures.
&gt; 
&gt; Test Outputs:
&gt; https://build.webkit.org/results/
&gt; Apple%20iOS%2011%20Simulator%20Debug%20WK2%20(Tests)/r234067%20(5511)/http/
&gt; tests/workers/service/serviceworkerclients-matchAll.https-pretty-diff.html
&gt; 
&gt; https://build.webkit.org/results/Apple%20Sierra%20Release%20WK2%20(Tests)/
&gt; r234064%20(10678)/http/tests/workers/service/client-added-to-clients-when-
&gt; restored-from-page-cache-pretty-diff.html

So maybe the clients are actually leaking in some cases? :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1444304</commentid>
    <comment_count>21</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2018-07-23 10:40:32 -0700</bug_when>
    <thetext>Marked tests as flaky in https://trac.webkit.org/r234100</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1444363</commentid>
    <comment_count>22</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-07-23 12:33:23 -0700</bug_when>
    <thetext>Committed r234107: &lt;https://trac.webkit.org/changeset/234107&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1444365</commentid>
    <comment_count>23</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-07-23 12:33:52 -0700</bug_when>
    <thetext>Reopening as this latest fix was only for http/tests/workers/service/serviceworkerclients-matchAll.https.html. It is works, I&apos;ll apply the same fix to the other 2 tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1444419</commentid>
    <comment_count>24</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2018-07-23 14:39:13 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #23)
&gt; Reopening as this latest fix was only for
&gt; http/tests/workers/service/serviceworkerclients-matchAll.https.html. It is
&gt; works, I&apos;ll apply the same fix to the other 2 tests.
Here is a failure on iOS Simulator after r234107:
https://build.webkit.org/results/Apple%20iOS%2011%20Simulator%20Release%20WK2%20(Tests)/r234109%20(6374)/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1444815</commentid>
    <comment_count>25</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2018-07-24 13:30:55 -0700</bug_when>
    <thetext>Marked http/tests/workers/service/serviceworkerclients-matchAll.https.html as flaky again in https://trac.webkit.org/r234170.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1444864</commentid>
    <comment_count>26</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-07-24 15:44:32 -0700</bug_when>
    <thetext>(In reply to Ryan Haddad from comment #25)
&gt; Marked http/tests/workers/service/serviceworkerclients-matchAll.https.html
&gt; as flaky again in https://trac.webkit.org/r234170.

Ok thanks. I will look into this again when I am done with more urgent matters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455852</commentid>
    <comment_count>27</comment_count>
      <attachid>348671</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-08-31 14:18:26 -0700</bug_when>
    <thetext>Created attachment 348671
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455859</commentid>
    <comment_count>28</comment_count>
      <attachid>348671</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-08-31 14:39:34 -0700</bug_when>
    <thetext>Comment on attachment 348671
Patch

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

&gt; Source/WebCore/testing/Internals.cpp:2331
&gt; +String Internals::serviceWorkerClientIdentifier(Document&amp; document) const

const Document&amp; maybe?

&gt; LayoutTests/ChangeLog:10
&gt; +        identifiers to see if they are present or not.

Were these tests testable in a regular browser before?
Would it make sense to use internals API if available and rely on client count otherwise?

Looking further for some tests, for controlled/uncontrolled clients, it makes sense to use identifiers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455860</commentid>
    <comment_count>29</comment_count>
      <attachid>348671</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-08-31 14:43:17 -0700</bug_when>
    <thetext>Comment on attachment 348671
Patch

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

&gt;&gt; Source/WebCore/testing/Internals.cpp:2331
&gt;&gt; +String Internals::serviceWorkerClientIdentifier(Document&amp; document) const
&gt; 
&gt; const Document&amp; maybe?

Canno</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455862</commentid>
    <comment_count>30</comment_count>
      <attachid>348671</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-08-31 14:44:02 -0700</bug_when>
    <thetext>Comment on attachment 348671
Patch

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

&gt;&gt;&gt; Source/WebCore/testing/Internals.cpp:2331
&gt;&gt;&gt; +String Internals::serviceWorkerClientIdentifier(Document&amp; document) const
&gt;&gt; 
&gt;&gt; const Document&amp; maybe?
&gt; 
&gt; Canno

Oh, my previous implementation needed this non-const but the current implementation seems like it would allow it. Will check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455864</commentid>
    <comment_count>31</comment_count>
      <attachid>348674</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-08-31 14:46:32 -0700</bug_when>
    <thetext>Created attachment 348674
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455865</commentid>
    <comment_count>32</comment_count>
      <attachid>348674</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-08-31 14:48:23 -0700</bug_when>
    <thetext>Comment on attachment 348674
Patch

Clearing flags on attachment: 348674

Committed r235570: &lt;https://trac.webkit.org/changeset/235570&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455866</commentid>
    <comment_count>33</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-08-31 14:48:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>345463</attachid>
            <date>2018-07-20 11:05:47 -0700</date>
            <delta_ts>2018-07-20 12:06:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183705-20180720110546.patch</filename>
            <type>text/plain</type>
            <size>3820</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0MDQwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDVkNTIzN2RiMGQwY2U2M2M5Njk4
NWU4ODZmNTNkMjQ2NTJjZTc0Ny4uN2VlYjcyNmYxZjRiZGVkYjRkYTQyZjIyM2ZkZWRhZGQzM2Yz
YWY2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE4LTA3LTIwICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTihQU09OPyk6IFsgV0syIF0gaHR0
cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvY2xpZW50LSotcGFnZS1jYWNoZS5odG1sIExheW91dFRl
c3RzIGFyZSBmbGFreQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTgzNzA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgdGVzdHMsIHdhaXQgZm9yIHRoZSBjbGllbnQg
Y291bnQgdG8gcmVhY2ggdGhlIGV4cGVjdGVkIHZhbHVlIGluc3RlYWQgb2YKKyAgICAgICAgZXhw
ZWN0aW5nIGl0IHRvIGJlIHRoZSByaWdodCB2YWx1ZSByaWdodCBhd2F5LiBDbGllbnRzIHVucmVn
aXN0ZXIgdGhlbXNlbHZlcyBhc3luY2hyb25vdXNseSBzbworICAgICAgICBpdCBpcyBmbGFreSBv
dGhlcndpc2UuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9jbGllbnQt
YWRkZWQtdG8tY2xpZW50cy13aGVuLXJlc3RvcmVkLWZyb20tcGFnZS1jYWNoZS5odG1sOgorICAg
ICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2NsaWVudC1yZW1vdmVkLWZyb20tY2xp
ZW50cy13aGlsZS1pbi1wYWdlLWNhY2hlLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlcmNsaWVudHMtbWF0Y2hBbGwtd29ya2VyLmpzOgorICAg
ICAgICAoYXN5bmMuZG9UZXN0QWZ0ZXJNZXNzYWdlKToKKwogMjAxOC0wNy0yMCAgRnJlZGVyaWMg
V2FuZyAgPGZ3YW5nQGlnYWxpYS5jb20+CiAKICAgICAgICAgSW1wb3J0IG5ldyBXUFQgdGVzdHMg
Zm9yIGN1c3RvbSBlbGVtZW50cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
b3JrZXJzL3NlcnZpY2UvY2xpZW50LWFkZGVkLXRvLWNsaWVudHMtd2hlbi1yZXN0b3JlZC1mcm9t
LXBhZ2UtY2FjaGUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNl
L2NsaWVudC1hZGRlZC10by1jbGllbnRzLXdoZW4tcmVzdG9yZWQtZnJvbS1wYWdlLWNhY2hlLmh0
bWwKaW5kZXggOWMxNzU2NzY3NDRiNzdjYWY2ZDQ4ODI4NWYwYWFjNzcxMjY2ZDliNC4uOWI3NWRk
NzkyOTUwZWQ5NmNlN2I5N2Y5YzMxOTU4ODk2ODg5ZGY5YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvY2xpZW50LWFkZGVkLXRvLWNsaWVudHMtd2hl
bi1yZXN0b3JlZC1mcm9tLXBhZ2UtY2FjaGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dvcmtlcnMvc2VydmljZS9jbGllbnQtYWRkZWQtdG8tY2xpZW50cy13aGVuLXJlc3RvcmVk
LWZyb20tcGFnZS1jYWNoZS5odG1sCkBAIC0xNCw4ICsxNCw3IEBAIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgewogbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2Fn
ZSIsIGZ1bmN0aW9uKGV2ZW50KSB7CiAgIGlmIChzdGVwID09ICJCb3RoQ2xpZW50c0luaXRpYWxs
eUFjdGl2ZSIpIHsKICAgICBpZiAoZXZlbnQuZGF0YSAhPSAyKSB7Ci0gICAgICBsb2coIkZBSUw6
IFdyb25nIGluaXRpYWwgbnVtYmVyIG9mIGNsaWVudHM6ICIgKyBldmVudC5kYXRhKTsKLSAgICAg
IGZpbmlzaFNXVGVzdCgpOworICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKCJnZXRDbGllbnRDb3Vu
dCIpOwogICAgICAgcmV0dXJuOwogICAgIH0KICAgICBsb2coIlBBU1M6IHNlcnZpY2Ugd29ya2Vy
IGhhcyBpbml0aWFsbHkgMiBjbGllbnRzIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3dvcmtlcnMvc2VydmljZS9jbGllbnQtcmVtb3ZlZC1mcm9tLWNsaWVudHMtd2hpbGUt
aW4tcGFnZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZp
Y2UvY2xpZW50LXJlbW92ZWQtZnJvbS1jbGllbnRzLXdoaWxlLWluLXBhZ2UtY2FjaGUuaHRtbApp
bmRleCA0YzIxMDJkZGE4ZGQ1NzA1NzljNGI1NjM2NmI2YTQ2ZWViOTBkODZmLi4xYjg3YjMzNGQ4
ZDRjZGUzNDA5NDg0OTMxMmRhOTM3YzZmOGI0OTZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9jbGllbnQtcmVtb3ZlZC1mcm9tLWNsaWVudHMtd2hp
bGUtaW4tcGFnZS1jYWNoZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vy
cy9zZXJ2aWNlL2NsaWVudC1yZW1vdmVkLWZyb20tY2xpZW50cy13aGlsZS1pbi1wYWdlLWNhY2hl
Lmh0bWwKQEAgLTE0LDggKzE0LDcgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiBuYXZpZ2F0
b3Iuc2VydmljZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24oZXZl
bnQpIHsKICAgaWYgKHN0ZXAgPT0gIkJvdGhDbGllbnRzSW5pdGlhbGx5QWN0aXZlIikgewogICAg
IGlmIChldmVudC5kYXRhICE9IDIpIHsKLSAgICAgIGxvZygiRkFJTDogV3JvbmcgaW5pdGlhbCBu
dW1iZXIgb2YgY2xpZW50czogIiArIGV2ZW50LmRhdGEpOwotICAgICAgZmluaXNoU1dUZXN0KCk7
CisgICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoImdldENsaWVudENvdW50Iik7CiAgICAgICByZXR1
cm47CiAgICAgfQogICAgIGxvZygiUEFTUzogc2VydmljZSB3b3JrZXIgaGFzIGluaXRpYWxseSAy
IGNsaWVudHMiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZpY2V3b3JrZXJjbGllbnRzLW1hdGNoQWxsLXdvcmtlci5qcyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXJjbGllbnRzLW1hdGNo
QWxsLXdvcmtlci5qcwppbmRleCBmMWNkMTUzZmEzZGE3NDQyZTFjMTA2OWUxMWQwN2NjMjA1ODY1
MTgxLi5jZmM5OGRlYzVhOGM0YThiZTgyMWZiYjE0ZDk1MjJhODIwM2YwYmU0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyY2xp
ZW50cy1tYXRjaEFsbC13b3JrZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlcmNsaWVudHMtbWF0Y2hBbGwtd29ya2VyLmpzCkBAIC0y
MSw3ICsyMSwxMiBAQCBhc3luYyBmdW5jdGlvbiBkb1Rlc3RBZnRlck1lc3NhZ2UoZXZlbnQpCiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICB2YXIgcmVzdWx0ID0gYXdh
aXQgbWF0Y2hBbGxQcm9taXNlMTsKKyAgICAgICAgbGV0IHRyaWVzID0gMDsKKyAgICAgICAgZG8g
eworICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgbWF0Y2hBbGxQcm9taXNlMTsKKyAgICAgICAg
ICAgIHRyaWVzICs9IDE7CisgICAgICAgIH0gd2hpbGUgKHJlc3VsdCAhPT0gIlBBU1MiICYmIHRy
aWVzIDwgMzApOworCiAgICAgICAgIGlmIChyZXN1bHQgIT09ICJQQVNTIikgewogICAgICAgICAg
ICAgZXZlbnQuc291cmNlLnBvc3RNZXNzYWdlKHJlc3VsdCk7CiAgICAgICAgICAgICByZXR1cm47
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>345470</attachid>
            <date>2018-07-20 12:06:43 -0700</date>
            <delta_ts>2018-08-31 14:18:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183705-20180720120642.patch</filename>
            <type>text/plain</type>
            <size>5012</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM0MDQwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDVkNTIzN2RiMGQwY2U2M2M5Njk4
NWU4ODZmNTNkMjQ2NTJjZTc0Ny4uNmE1N2U5YjVkZjcxNDcxNGY5Y2NmZTlhZDc5MWRiYWYzNGRm
NWJiZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE4LTA3LTIwICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTihQU09OPyk6IFsgV0syIF0gaHR0
cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvY2xpZW50LSotcGFnZS1jYWNoZS5odG1sIExheW91dFRl
c3RzIGFyZSBmbGFreQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTgzNzA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4KKworICAg
ICAgICBBdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0ZXN0cywgd2FpdCBmb3IgdGhlIGNsaWVudCBj
b3VudCB0byByZWFjaCB0aGUgZXhwZWN0ZWQgdmFsdWUgaW5zdGVhZCBvZgorICAgICAgICBleHBl
Y3RpbmcgaXQgdG8gYmUgdGhlIHJpZ2h0IHZhbHVlIHJpZ2h0IGF3YXkuIENsaWVudHMgdW5yZWdp
c3RlciB0aGVtc2VsdmVzIGFzeW5jaHJvbm91c2x5IHNvCisgICAgICAgIGl0IGlzIGZsYWt5IG90
aGVyd2lzZS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2NsaWVudC1h
ZGRlZC10by1jbGllbnRzLXdoZW4tcmVzdG9yZWQtZnJvbS1wYWdlLWNhY2hlLmh0bWw6CisgICAg
ICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvY2xpZW50LXJlbW92ZWQtZnJvbS1jbGll
bnRzLXdoaWxlLWluLXBhZ2UtY2FjaGUuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtl
cnMvc2VydmljZS9zZXJ2aWNld29ya2VyY2xpZW50cy1tYXRjaEFsbC13b3JrZXIuanM6CisgICAg
ICAgIChhc3luYy5kb1Rlc3RBZnRlck1lc3NhZ2UpOgorCiAyMDE4LTA3LTIwICBGcmVkZXJpYyBX
YW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KIAogICAgICAgICBJbXBvcnQgbmV3IFdQVCB0ZXN0cyBm
b3IgY3VzdG9tIGVsZW1lbnRzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dv
cmtlcnMvc2VydmljZS9jbGllbnQtYWRkZWQtdG8tY2xpZW50cy13aGVuLXJlc3RvcmVkLWZyb20t
cGFnZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uv
Y2xpZW50LWFkZGVkLXRvLWNsaWVudHMtd2hlbi1yZXN0b3JlZC1mcm9tLXBhZ2UtY2FjaGUuaHRt
bAppbmRleCA5YzE3NTY3Njc0NGI3N2NhZjZkNDg4Mjg1ZjBhYWM3NzEyNjZkOWI0Li4yMWNhY2I2
YjRiOGRkNTNmMGQyY2ZjNGE5NWRiNjQ3OTVhYzQ2ODAwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9jbGllbnQtYWRkZWQtdG8tY2xpZW50cy13aGVu
LXJlc3RvcmVkLWZyb20tcGFnZS1jYWNoZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvd29ya2Vycy9zZXJ2aWNlL2NsaWVudC1hZGRlZC10by1jbGllbnRzLXdoZW4tcmVzdG9yZWQt
ZnJvbS1wYWdlLWNhY2hlLmh0bWwKQEAgLTExLDExICsxMSwxNyBAQCBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKICAgdGVzdFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdFVzZXNQYWdl
Q2FjaGVQcmVmZXJlbmNlS2V5IiwgMSk7CiB9CiAKK2xldCB0cmllcyA9IDA7CisKIG5hdmlnYXRv
ci5zZXJ2aWNlV29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbihldmVu
dCkgewogICBpZiAoc3RlcCA9PSAiQm90aENsaWVudHNJbml0aWFsbHlBY3RpdmUiKSB7CiAgICAg
aWYgKGV2ZW50LmRhdGEgIT0gMikgewotICAgICAgbG9nKCJGQUlMOiBXcm9uZyBpbml0aWFsIG51
bWJlciBvZiBjbGllbnRzOiAiICsgZXZlbnQuZGF0YSk7Ci0gICAgICBmaW5pc2hTV1Rlc3QoKTsK
KyAgICAgIGlmICgrK3RyaWVzID4gMjApIHsKKyAgICAgICAgICBsb2coIkZBSUw6IFdyb25nIGlu
aXRpYWwgbnVtYmVyIG9mIGNsaWVudHM6ICIgKyBldmVudC5kYXRhKTsKKyAgICAgICAgICBmaW5p
c2hTV1Rlc3QoKTsKKyAgICAgICAgICByZXR1cm47CisgICAgICB9CisgICAgICB3b3JrZXIucG9z
dE1lc3NhZ2UoImdldENsaWVudENvdW50Iik7CiAgICAgICByZXR1cm47CiAgICAgfQogICAgIGxv
ZygiUEFTUzogc2VydmljZSB3b3JrZXIgaGFzIGluaXRpYWxseSAyIGNsaWVudHMiKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2NsaWVudC1yZW1v
dmVkLWZyb20tY2xpZW50cy13aGlsZS1pbi1wYWdlLWNhY2hlLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9jbGllbnQtcmVtb3ZlZC1mcm9tLWNsaWVudHMtd2hp
bGUtaW4tcGFnZS1jYWNoZS5odG1sCmluZGV4IDRjMjEwMmRkYThkZDU3MDU3OWM0YjU2MzY2YjZh
NDZlZWI5MGQ4NmYuLjIwNTVkYmJiNDQyM2VmM2EzODM3MTMwMWI5ODIzZGIyYjEwNmYwMDcgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2NsaWVudC1y
ZW1vdmVkLWZyb20tY2xpZW50cy13aGlsZS1pbi1wYWdlLWNhY2hlLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvY2xpZW50LXJlbW92ZWQtZnJvbS1jbGll
bnRzLXdoaWxlLWluLXBhZ2UtY2FjaGUuaHRtbApAQCAtMTEsMTEgKzExLDE3IEBAIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgewogICB0ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0
VXNlc1BhZ2VDYWNoZVByZWZlcmVuY2VLZXkiLCAxKTsKIH0KIAorbGV0IHRyaWVzID0gMDsKKwog
bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGZ1bmN0
aW9uKGV2ZW50KSB7CiAgIGlmIChzdGVwID09ICJCb3RoQ2xpZW50c0luaXRpYWxseUFjdGl2ZSIp
IHsKICAgICBpZiAoZXZlbnQuZGF0YSAhPSAyKSB7Ci0gICAgICBsb2coIkZBSUw6IFdyb25nIGlu
aXRpYWwgbnVtYmVyIG9mIGNsaWVudHM6ICIgKyBldmVudC5kYXRhKTsKLSAgICAgIGZpbmlzaFNX
VGVzdCgpOworICAgICAgaWYgKCsrdHJpZXMgPiAyMCkgeworICAgICAgICAgIGxvZygiRkFJTDog
V3JvbmcgaW5pdGlhbCBudW1iZXIgb2YgY2xpZW50czogIiArIGV2ZW50LmRhdGEpOworICAgICAg
ICAgIGZpbmlzaFNXVGVzdCgpOworICAgICAgICAgIHJldHVybjsKKyAgICAgIH0KKyAgICAgIHdv
cmtlci5wb3N0TWVzc2FnZSgiZ2V0Q2xpZW50Q291bnQiKTsKICAgICAgIHJldHVybjsKICAgICB9
CiAgICAgbG9nKCJQQVNTOiBzZXJ2aWNlIHdvcmtlciBoYXMgaW5pdGlhbGx5IDIgY2xpZW50cyIp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmljZXdvcmtlcmNsaWVudHMtbWF0Y2hBbGwtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlcmNsaWVudHMtbWF0Y2hBbGwtd29ya2Vy
LmpzCmluZGV4IGYxY2QxNTNmYTNkYTc0NDJlMWMxMDY5ZTExZDA3Y2MyMDU4NjUxODEuLjk4Mjdk
OGE3MWIyZmYxOWFmMzU3ZjYyZjRkOGM1NTlkNDJhMzNmZDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXJjbGllbnRzLW1hdGNo
QWxsLXdvcmtlci5qcworKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2aWNld29ya2VyY2xpZW50cy1tYXRjaEFsbC13b3JrZXIuanMKQEAgLTEsOSArMSwxMSBA
QAotdmFyIG1hdGNoQWxsUHJvbWlzZTEgPSBzZWxmLmNsaWVudHMubWF0Y2hBbGwoKS50aGVuKChj
bGllbnRzKSA9PiB7Ci0gICAgcmV0dXJuIGNsaWVudHMubGVuZ3RoID09PSAwID8gIlBBU1MiIDog
IkZBSUw6IGV4cGVjdGVkIG5vIG1hdGNoZWQgY2xpZW50LCBnb3QgIiArIGNsaWVudHMubGVuZ3Ro
OwotfSwgKGUpID0+IHsKLSAgICByZXR1cm4gIkZBSUw6IG1hdGNoQWxsIDEgcmVqZWN0ZWQgd2l0
aCAiICsgZTsKLX0pOwotCitmdW5jdGlvbiBtYXRjaEFsbFByb21pc2UxKCkKK3sKKyAgICByZXR1
cm4gc2VsZi5jbGllbnRzLm1hdGNoQWxsKCkudGhlbigoY2xpZW50cykgPT4geworICAgICAgICBy
ZXR1cm4gY2xpZW50cy5sZW5ndGggPT09IDAgPyAiUEFTUyIgOiAiRkFJTDogZXhwZWN0ZWQgbm8g
bWF0Y2hlZCBjbGllbnQsIGdvdCAiICsgY2xpZW50cy5sZW5ndGg7CisgICAgfSwgKGUpID0+IHsK
KyAgICAgICAgcmV0dXJuICJGQUlMOiBtYXRjaEFsbCAxIHJlamVjdGVkIHdpdGggIiArIGU7Cisg
ICAgfSk7Cit9CiAKIHZhciBtYXRjaGVkQ2xpZW50czsKIG1hdGNoQWxsUHJvbWlzZTIgPSBzZWxm
LmNsaWVudHMubWF0Y2hBbGwoeyBpbmNsdWRlVW5jb250cm9sbGVkIDogdHJ1ZSB9KS50aGVuKChj
KSA9PiB7CkBAIC0yMSw3ICsyMywxMyBAQCBhc3luYyBmdW5jdGlvbiBkb1Rlc3RBZnRlck1lc3Nh
Z2UoZXZlbnQpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICB2YXIg
cmVzdWx0ID0gYXdhaXQgbWF0Y2hBbGxQcm9taXNlMTsKKyAgICAgICAgbGV0IHRyaWVzID0gMDsK
KyAgICAgICAgZG8geworICAgICAgICAgICAgaWYgKHRyaWVzKQorICAgICAgICAgICAgICAgIGF3
YWl0IHdhaXRGb3IoNTApOworICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgbWF0Y2hBbGxQcm9t
aXNlMSgpOworICAgICAgICB9IHdoaWxlIChyZXN1bHQgIT09ICJQQVNTIiAmJiArK3RyaWVzIDw9
IDIwKTsKKwogICAgICAgICBpZiAocmVzdWx0ICE9PSAiUEFTUyIpIHsKICAgICAgICAgICAgIGV2
ZW50LnNvdXJjZS5wb3N0TWVzc2FnZShyZXN1bHQpOwogICAgICAgICAgICAgcmV0dXJuOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348671</attachid>
            <date>2018-08-31 14:18:26 -0700</date>
            <delta_ts>2018-08-31 14:46:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183705-20180831141826.patch</filename>
            <type>text/plain</type>
            <size>18738</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzhiZTFlZmExM2Y4YzQ4
YWE0OTEwYzNhNmIzYWU1N2FjYmFjNGVlYS4uZTg1MGJlZTI4N2RjMDE0NTIzOTkzNzQwMTBiN2Nm
YWYzZTcwMTBjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE4LTA4LTMxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgWyBXSzIgXSBodHRwL3Rlc3Rz
L3dvcmtlcnMvc2VydmljZS9jbGllbnQtKi1wYWdlLWNhY2hlLmh0bWwgTGF5b3V0VGVzdHMgYXJl
IGZsYWt5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODM3MDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQyNDQwNjA2PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBpbnRlcm5hbHMuc2VydmljZVdv
cmtlckNsaWVudElkZW50aWZpZXIoKSB1dGlsaXR5IGZ1bmN0aW9uIHNvIHRoYXQgYSBsYXlvdXQg
dGVzdCBjYW4gZ2V0IHRoZQorICAgICAgICBzZXJ2aWNlIHdvcmtlciBjbGllbnQgaWRlbnRpZmll
ciBvZiBhIGRvY3VtZW50LgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciBj
b25zdCk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5n
L0ludGVybmFscy5pZGw6CisKIDIwMTgtMDgtMzEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIFdlYkF1ZGlvQnVmZmVyTGlzdC5jcHAvLmggaXMgbmFtZWQgYXMg
Y29jb2EvV2ViQXVkaW9CdWZmZXJMaXN0LmNwcC8uaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCmluZGV4IDQ5ZmM3YzA2MWY5OWI0YjU3YmM3ZTA0NzZlNDk1ZmNlYmVjNTBlODAuLjMw
NjE4ODMyYTZmNWI0ZTVlOGQ2ZmVhNThhMTI3ZGM2OWI2OTE3ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKQEAgLTIzMjgsNiArMjMyOCwxNSBAQCBib29sIEludGVybmFsczo6
aXNEb2N1bWVudEFsaXZlKHVpbnQ2NF90IGRvY3VtZW50SWRlbnRpZmllcikgY29uc3QKICAgICBy
ZXR1cm4gRG9jdW1lbnQ6OmFsbERvY3VtZW50c01hcCgpLmNvbnRhaW5zKG1ha2VPYmplY3RJZGVu
dGlmaWVyPERvY3VtZW50SWRlbnRpZmllclR5cGU+KGRvY3VtZW50SWRlbnRpZmllcikpOwogfQog
CitTdHJpbmcgSW50ZXJuYWxzOjpzZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcihEb2N1bWVu
dCYgZG9jdW1lbnQpIGNvbnN0Cit7CisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorICAgIHJl
dHVybiBTZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciB7IFNlcnZpY2VXb3JrZXJQcm92aWRl
cjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlckNvbm5lY3Rpb25Gb3JTZXNzaW9uKGRvY3VtZW50
LnNlc3Npb25JRCgpKS5zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcigpLCBkb2N1bWVudC5pZGVu
dGlmaWVyKCkgfS50b1N0cmluZygpOworI2Vsc2UKKyAgICByZXR1cm4gU3RyaW5nKCk7CisjZW5k
aWYKK30KKwogUmVmUHRyPFdpbmRvd1Byb3h5PiBJbnRlcm5hbHM6Om9wZW5EdW1teUluc3BlY3Rv
ckZyb250ZW5kKGNvbnN0IFN0cmluZyYgdXJsKQogewogICAgIGF1dG8qIGluc3BlY3RlZFBhZ2Ug
PSBjb250ZXh0RG9jdW1lbnQoKS0+ZnJhbWUoKS0+cGFnZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmgKaW5kZXggODE5OWVhNGM2N2QyNGU0NDU2Y2Q3ZDNkMmM1YjRiMGY3MzJjMjBkOS4u
MjNkZmE3YWJkODRiZjY2OGNjMDU1YjFiZWRmYWFhMzdmY2FmYmM3OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5oCkBAIC0zNzEsNiArMzcxLDggQEAgcHVibGljOgogICAgIHVpbnQ2NF90
IGRvY3VtZW50SWRlbnRpZmllcihjb25zdCBEb2N1bWVudCYpIGNvbnN0OwogICAgIGJvb2wgaXNE
b2N1bWVudEFsaXZlKHVpbnQ2NF90IGRvY3VtZW50SWRlbnRpZmllcikgY29uc3Q7CiAKKyAgICBT
dHJpbmcgc2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIoRG9jdW1lbnQmKSBjb25zdDsKKwog
ICAgIFJlZlB0cjxXaW5kb3dQcm94eT4gb3BlbkR1bW15SW5zcGVjdG9yRnJvbnRlbmQoY29uc3Qg
U3RyaW5nJiB1cmwpOwogICAgIHZvaWQgY2xvc2VEdW1teUluc3BlY3RvckZyb250ZW5kKCk7CiAg
ICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0SW5zcGVjdG9ySXNVbmRlclRlc3QoYm9vbCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggMDRmNzdhYzdmYzljNjdjNmIzMjc5YTNj
MjQ0MWUwOGFlNDBiMDQxYi4uNTNlMmM3OGVhZTI4OTgxZTBlYTE5N2I0YWYzYjAwNzFhYWRiYWY2
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtNjI0LDYgKzYyNCw4IEBA
IGVudW0gQ29tcG9zaXRpbmdQb2xpY3kgewogICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBkb2N1bWVu
dElkZW50aWZpZXIoRG9jdW1lbnQgZG9jdW1lbnQpOwogICAgIGJvb2xlYW4gaXNEb2N1bWVudEFs
aXZlKHVuc2lnbmVkIGxvbmcgbG9uZyBkb2N1bWVudElkZW50aWZpZXIpOwogCisgICAgRE9NU3Ry
aW5nIHNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyKERvY3VtZW50IGRvY3VtZW50KTsKKwog
ICAgIFByb21pc2U8dm9pZD4gY2xlYXJDYWNoZVN0b3JhZ2VNZW1vcnlSZXByZXNlbnRhdGlvbigp
OwogICAgIFByb21pc2U8RE9NU3RyaW5nPiBjYWNoZVN0b3JhZ2VFbmdpbmVSZXByZXNlbnRhdGlv
bigpOwogICAgIHZvaWQgc2V0UmVzcG9uc2VTaXplV2l0aFBhZGRpbmcoRmV0Y2hSZXNwb25zZSBy
ZXNwb25zZSwgdW5zaWduZWQgbG9uZyBsb25nIHNpemUpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDc5ZDZjYzg2NmU4YjY3
YThkMDM5NmM3ODc4YWY4ZTk3YTU1YmVlMGUuLjZkYTk1MmM0ZjFiYmQ3OTk4MDU3YmZlOTUxZjNl
OTk1ZTBmNmM0MGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxOC0wOC0zMSAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFsgV0syIF0gaHR0cC90ZXN0cy93b3Jr
ZXJzL3NlcnZpY2UvY2xpZW50LSotcGFnZS1jYWNoZS5odG1sIExheW91dFRlc3RzIGFyZSBmbGFr
eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzNzA1
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80MjQ0MDYwNj4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgTGF5b3V0IHRlc3RzIHRvIG5vdCBy
ZWx5IG9uIHRoZSB0b3RhbCBudW1iZXIgb2YgY2xpZW50cyBhcyB0aGlzIGlzIGZsYWt5LiBJbnN0
ZWFkLCBjaGVjayBmb3Igc3BlY2lmaWMgY2xpZW50CisgICAgICAgIGlkZW50aWZpZXJzIHRvIHNl
ZSBpZiB0aGV5IGFyZSBwcmVzZW50IG9yIG5vdC4KKworICAgICAgICAqIGh0dHAvdGVzdHMvd29y
a2Vycy9zZXJ2aWNlL2NsaWVudC1hZGRlZC10by1jbGllbnRzLXdoZW4tcmVzdG9yZWQtZnJvbS1w
YWdlLWNhY2hlLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvY2xp
ZW50LXJlbW92ZWQtZnJvbS1jbGllbnRzLXdoaWxlLWluLXBhZ2UtY2FjaGUuaHRtbDoKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvZ2V0Q2xpZW50SWRzLXdv
cmtlci5qczogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2
aWNlL3Jlc291cmNlcy9nZXRDbGllbnRDb3VudC13b3JrZXIuanMuCisgICAgICAgIChldmVudC50
aGVuKToKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2Vy
Y2xpZW50cy1tYXRjaEFsbC13b3JrZXIuanM6CisgICAgICAgIChhc3luYy5kb1Rlc3RBZnRlck1l
c3NhZ2UpOgorICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3Jr
ZXJjbGllbnRzLW1hdGNoQWxsLmh0dHBzLmh0bWw6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mt
d2syL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhw
ZWN0YXRpb25zOgorICAgICAgICBVbnNraXAgdGVzdHMgYXMgdGhleSBzaG91bGQgbm8gbG9uZ2Vy
IGJlIGZsYWt5LgorCiAyMDE4LTA4LTMxICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW0xGQ10gQWRkIG1hcmdpbiBib3ggdmVyaWZpY2F0aW9uIGJhY2sgbm93IHRo
YXQgRGlzcGxheTo6Qm94IGhhcyBub24tY29tcHV0ZWQgaG9yaXpvbnRhbCBtYXJnaW4uCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9jbGllbnQtYWRk
ZWQtdG8tY2xpZW50cy13aGVuLXJlc3RvcmVkLWZyb20tcGFnZS1jYWNoZS5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvY2xpZW50LWFkZGVkLXRvLWNsaWVudHMt
d2hlbi1yZXN0b3JlZC1mcm9tLXBhZ2UtY2FjaGUuaHRtbAppbmRleCAyMWNhY2I2YjRiOGRkNTNm
MGQyY2ZjNGE5NWRiNjQ3OTVhYzQ2ODAwLi42MmJkNjI5NDE4OTBmOTE2OTZjOWNiMjMyMmJlMjI2
ZTU5YTU3NmEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vy
dmljZS9jbGllbnQtYWRkZWQtdG8tY2xpZW50cy13aGVuLXJlc3RvcmVkLWZyb20tcGFnZS1jYWNo
ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2NsaWVu
dC1hZGRlZC10by1jbGllbnRzLXdoZW4tcmVzdG9yZWQtZnJvbS1wYWdlLWNhY2hlLmh0bWwKQEAg
LTEzLDE1ICsxMywyNiBAQCBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKIAogbGV0IHRyaWVzID0g
MDsKIAorbGV0IGV4cGVjdGVkQ2xpZW50SWRlbnRpZmllcnMgPSBbXTsKKworZnVuY3Rpb24gY29u
dGFpbnNFeHBlY3RlZENsaWVudHMoY2xpZW50SWRlbnRpZmllcnMpCit7CisgICAgZm9yIChsZXQg
ZXhwZWN0ZWRJZGVudGlmaWVyIG9mIGV4cGVjdGVkQ2xpZW50SWRlbnRpZmllcnMpIHsKKyAgICAg
ICAgaWYgKCFjbGllbnRJZGVudGlmaWVycy5pbmNsdWRlcyhleHBlY3RlZElkZW50aWZpZXIpKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKwog
bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGZ1bmN0
aW9uKGV2ZW50KSB7CiAgIGlmIChzdGVwID09ICJCb3RoQ2xpZW50c0luaXRpYWxseUFjdGl2ZSIp
IHsKLSAgICBpZiAoZXZlbnQuZGF0YSAhPSAyKSB7CisgICAgaWYgKCFjb250YWluc0V4cGVjdGVk
Q2xpZW50cyhldmVudC5kYXRhKSkgewogICAgICAgaWYgKCsrdHJpZXMgPiAyMCkgewotICAgICAg
ICAgIGxvZygiRkFJTDogV3JvbmcgaW5pdGlhbCBudW1iZXIgb2YgY2xpZW50czogIiArIGV2ZW50
LmRhdGEpOworICAgICAgICAgIGxvZygiRkFJTDogV3JvbmcgaW5pdGlhbCBudW1iZXIgb2YgY2xp
ZW50cyIpOwogICAgICAgICAgIGZpbmlzaFNXVGVzdCgpOwogICAgICAgICAgIHJldHVybjsKICAg
ICAgIH0KLSAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSgiZ2V0Q2xpZW50Q291bnQiKTsKKyAgICAg
IHdvcmtlci5wb3N0TWVzc2FnZSgiZ2V0Q2xpZW50SWRzIik7CiAgICAgICByZXR1cm47CiAgICAg
fQogICAgIGxvZygiUEFTUzogc2VydmljZSB3b3JrZXIgaGFzIGluaXRpYWxseSAyIGNsaWVudHMi
KTsKQEAgLTQzLDcgKzU0LDcgQEAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRkRXZlbnRMaXN0
ZW5lcigibWVzc2FnZSIsIGZ1bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgfQogICAgICAgIHNldFRp
bWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICBzdGVwID0gIlNlY29uZENsaWVudFJlc3RvcmVk
RnJvbVBhZ2VDYWNoZSI7Ci0gICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoImdldENsaWVudENv
dW50Iik7CisgICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoImdldENsaWVudElkcyIpOwogICAg
ICAgIH0sIDApOwogICAgIH0pOwogCkBAIC01Miw4ICs2Myw4IEBAIG5hdmlnYXRvci5zZXJ2aWNl
V29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbihldmVudCkgewogICB9
CiAKICAgaWYgKHN0ZXAgPT0gIlNlY29uZENsaWVudFJlc3RvcmVkRnJvbVBhZ2VDYWNoZSIpIHsK
LSAgICBpZiAoZXZlbnQuZGF0YSAhPSAyKSB7Ci0gICAgICBsb2coIkZBSUw6IFdyb25nIG51bWJl
ciBvZiBjbGllbnRzIGFmdGVyIG9uZSBjbGllbnQgd2FzIHJlc3RvcmVkIGZyb20gcGFnZSBjYWNo
ZTogIiArIGV2ZW50LmRhdGEpOworICAgIGlmICghY29udGFpbnNFeHBlY3RlZENsaWVudHMoZXZl
bnQuZGF0YSkpIHsKKyAgICAgIGxvZygiRkFJTDogV3JvbmcgbnVtYmVyIG9mIGNsaWVudHMgYWZ0
ZXIgb25lIGNsaWVudCB3YXMgcmVzdG9yZWQgZnJvbSBwYWdlIGNhY2hlIik7CiAgICAgICBmaW5p
c2hTV1Rlc3QoKTsKICAgICB9CiAKQEAgLTYyLDEyICs3MywxNSBAQCBuYXZpZ2F0b3Iuc2Vydmlj
ZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24oZXZlbnQpIHsKICAg
fQogfSk7CiAKLW5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCJyZXNvdXJjZXMvZ2V0
Q2xpZW50Q291bnQtd29ya2VyLmpzIiwgeyB9KS50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikg
eworbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoInJlc291cmNlcy9nZXRDbGllbnRJ
ZHMtd29ya2VyLmpzIiwgeyB9KS50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgeworICAgIGV4
cGVjdGVkQ2xpZW50SWRlbnRpZmllcnMucHVzaChpbnRlcm5hbHMuc2VydmljZVdvcmtlckNsaWVu
dElkZW50aWZpZXIoZG9jdW1lbnQpKTsKKwogICAgIHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0
YWxsaW5nOwogICAgIG90aGVyV2luZG93ID0gb3Blbigib3RoZXJfcmVzb3VyY2VzL3Rlc3QuaHRt
bCIpOwogICAgIG90aGVyV2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgZXhwZWN0
ZWRDbGllbnRJZGVudGlmaWVycy5wdXNoKGludGVybmFscy5zZXJ2aWNlV29ya2VyQ2xpZW50SWRl
bnRpZmllcihvdGhlcldpbmRvdy5kb2N1bWVudCkpOwogICAgICAgc3RlcCA9ICJCb3RoQ2xpZW50
c0luaXRpYWxseUFjdGl2ZSIKLSAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSgiZ2V0Q2xpZW50Q291
bnQiKTsKKyAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSgiZ2V0Q2xpZW50SWRzIik7CiAgICAgfTsK
IH0pOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtl
cnMvc2VydmljZS9jbGllbnQtcmVtb3ZlZC1mcm9tLWNsaWVudHMtd2hpbGUtaW4tcGFnZS1jYWNo
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvY2xpZW50LXJl
bW92ZWQtZnJvbS1jbGllbnRzLXdoaWxlLWluLXBhZ2UtY2FjaGUuaHRtbAppbmRleCAyMDU1ZGJi
YjQ0MjNlZjNhMzgzNzEzMDFiOTgyM2RiMmIxMDZmMDA3Li5iMTA5MTlhYzczZDA3MmJmNzZjZmEx
NWMzMmE3NjhjMmM2MWUxMjc0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dv
cmtlcnMvc2VydmljZS9jbGllbnQtcmVtb3ZlZC1mcm9tLWNsaWVudHMtd2hpbGUtaW4tcGFnZS1j
YWNoZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2Ns
aWVudC1yZW1vdmVkLWZyb20tY2xpZW50cy13aGlsZS1pbi1wYWdlLWNhY2hlLmh0bWwKQEAgLTEx
LDE3ICsxMSwzMCBAQCBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgdGVzdFJ1bm5lci5vdmVy
cmlkZVByZWZlcmVuY2UoIldlYktpdFVzZXNQYWdlQ2FjaGVQcmVmZXJlbmNlS2V5IiwgMSk7CiB9
CiAKK2xldCB0b3BDbGllbnRJZGVudGlmaWVyID0gbnVsbDsKK2xldCB3aW5kb3dDbGllbnRJZGVu
dGlmaWVyID0gbnVsbDsKKwogbGV0IHRyaWVzID0gMDsKIAorZnVuY3Rpb24gY29udGFpbnNCb3Ro
Q2xpZW50cyhjbGllbnRJZGVudGlmaWVycykKK3sKKyAgICByZXR1cm4gY2xpZW50SWRlbnRpZmll
cnMuaW5jbHVkZXModG9wQ2xpZW50SWRlbnRpZmllcikgJiYgY2xpZW50SWRlbnRpZmllcnMuaW5j
bHVkZXMod2luZG93Q2xpZW50SWRlbnRpZmllcik7Cit9CisKK2Z1bmN0aW9uIGNvbnRhaW5zT25s
eVRvcENsaWVudChjbGllbnRJZGVudGlmaWVycykKK3sKKyAgICByZXR1cm4gY2xpZW50SWRlbnRp
ZmllcnMuaW5jbHVkZXModG9wQ2xpZW50SWRlbnRpZmllcikgJiYgIWNsaWVudElkZW50aWZpZXJz
LmluY2x1ZGVzKHdpbmRvd0NsaWVudElkZW50aWZpZXIpOworfQorCiBuYXZpZ2F0b3Iuc2Vydmlj
ZVdvcmtlci5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24oZXZlbnQpIHsKICAg
aWYgKHN0ZXAgPT0gIkJvdGhDbGllbnRzSW5pdGlhbGx5QWN0aXZlIikgewotICAgIGlmIChldmVu
dC5kYXRhICE9IDIpIHsKKyAgICBpZiAoIWNvbnRhaW5zQm90aENsaWVudHMoZXZlbnQuZGF0YSkp
IHsKICAgICAgIGlmICgrK3RyaWVzID4gMjApIHsKLSAgICAgICAgICBsb2coIkZBSUw6IFdyb25n
IGluaXRpYWwgbnVtYmVyIG9mIGNsaWVudHM6ICIgKyBldmVudC5kYXRhKTsKKyAgICAgICAgICBs
b2coIkZBSUw6IFdyb25nIGluaXRpYWwgbnVtYmVyIG9mIGNsaWVudHMiKTsKICAgICAgICAgICBm
aW5pc2hTV1Rlc3QoKTsKICAgICAgICAgICByZXR1cm47CiAgICAgICB9Ci0gICAgICB3b3JrZXIu
cG9zdE1lc3NhZ2UoImdldENsaWVudENvdW50Iik7CisgICAgICB3b3JrZXIucG9zdE1lc3NhZ2Uo
ImdldENsaWVudElkcyIpOwogICAgICAgcmV0dXJuOwogICAgIH0KICAgICBsb2coIlBBU1M6IHNl
cnZpY2Ugd29ya2VyIGhhcyBpbml0aWFsbHkgMiBjbGllbnRzIik7CkBAIC0zNiw3ICs0OSw3IEBA
IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5j
dGlvbihldmVudCkgewogCiAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAg
IHN0ZXAgPSAiT25seU9uZUNsaWVudFJlbWFpbnNBY3RpdmUiCi0gICAgICAgICB3b3JrZXIucG9z
dE1lc3NhZ2UoImdldENsaWVudENvdW50Iik7CisgICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2Uo
ImdldENsaWVudElkcyIpOwogICAgICAgIH0sIDApOwogICAgIH0pOwogCkBAIC00NSw4ICs1OCw4
IEBAIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBm
dW5jdGlvbihldmVudCkgewogICB9CiAKICAgaWYgKHN0ZXAgPT0gIk9ubHlPbmVDbGllbnRSZW1h
aW5zQWN0aXZlIikgewotICAgIGlmIChldmVudC5kYXRhICE9IDEpIHsKLSAgICAgIGxvZygiRkFJ
TDogV3JvbmcgbnVtYmVyIG9mIGNsaWVudHMgYWZ0ZXIgb25lIGNsaWVudCBlbnRlcmVkIHBhZ2Ug
Y2FjaGU6ICIgKyBldmVudC5kYXRhKTsKKyAgICBpZiAoIWNvbnRhaW5zT25seVRvcENsaWVudChl
dmVudC5kYXRhKSkgeworICAgICAgbG9nKCJGQUlMOiBXcm9uZyBudW1iZXIgb2YgY2xpZW50cyBh
ZnRlciBvbmUgY2xpZW50IGVudGVyZWQgcGFnZSBjYWNoZSIpOwogICAgICAgZmluaXNoU1dUZXN0
KCk7CiAgICAgfQogCkBAIC01NSwxMiArNjgsMTUgQEAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIu
YWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGZ1bmN0aW9uKGV2ZW50KSB7CiAgIH0KIH0pOwog
Ci1uYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigicmVzb3VyY2VzL2dldENsaWVudENv
dW50LXdvcmtlci5qcyIsIHsgfSkudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKK25hdmln
YXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCJyZXNvdXJjZXMvZ2V0Q2xpZW50SWRzLXdvcmtl
ci5qcyIsIHsgfSkudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKKyAgICB0b3BDbGllbnRJ
ZGVudGlmaWVyID0gaW50ZXJuYWxzLnNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyKGRvY3Vt
ZW50KTsKKwogICAgIHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOwogICAgIG90aGVy
V2luZG93ID0gb3Blbigib3RoZXJfcmVzb3VyY2VzL3Rlc3QuaHRtbCIpOwogICAgIG90aGVyV2lu
ZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgd2luZG93Q2xpZW50SWRlbnRpZmllciA9
IGludGVybmFscy5zZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcihvdGhlcldpbmRvdy5kb2N1
bWVudCk7CiAgICAgICBzdGVwID0gIkJvdGhDbGllbnRzSW5pdGlhbGx5QWN0aXZlIgotICAgICAg
d29ya2VyLnBvc3RNZXNzYWdlKCJnZXRDbGllbnRDb3VudCIpOworICAgICAgd29ya2VyLnBvc3RN
ZXNzYWdlKCJnZXRDbGllbnRJZHMiKTsKICAgICB9OwogfSk7CiA8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9nZXRD
bGllbnRDb3VudC13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vy
dmljZS9yZXNvdXJjZXMvZ2V0Q2xpZW50Q291bnQtd29ya2VyLmpzCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA4YjExNWFjYTZiNjgxZGQ3MzcwODZkZWI3NWE3YmI3YzAzY2ZjNjIyLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9nZXRDbGllbnRDb3VudC13b3Jr
ZXIuanMKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLXNlbGYuYWRkRXZlbnRMaXN0ZW5l
cigibWVzc2FnZSIsIChldmVudCkgPT4gewotICAgIHNvdXJjZSA9IGV2ZW50LnNvdXJjZTsKLSAg
ICBjbGllbnRzLm1hdGNoQWxsKHsgaW5jbHVkZVVuY29udHJvbGxlZCA6IHRydWUgfSkudGhlbihm
dW5jdGlvbihjbGllbnRMaXN0KSB7Ci0gICAgICAgIHNvdXJjZS5wb3N0TWVzc2FnZShjbGllbnRM
aXN0Lmxlbmd0aCk7Ci0gICAgfSk7Ci19KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9nZXRDbGllbnRJZHMtd29ya2VyLmpzIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2dldENsaWVu
dElkcy13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTlkYzFjYjgyMjFkMGRmOGRmMGNlZWM3ZjVmYTZi
MTA4M2Q3M2IxOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29y
a2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9nZXRDbGllbnRJZHMtd29ya2VyLmpzCkBAIC0wLDAgKzEs
OSBAQAorc2VsZi5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgKGV2ZW50KSA9PiB7CisgICAg
c291cmNlID0gZXZlbnQuc291cmNlOworICAgIGNsaWVudHMubWF0Y2hBbGwoeyBpbmNsdWRlVW5j
b250cm9sbGVkIDogdHJ1ZSB9KS50aGVuKGZ1bmN0aW9uKGNsaWVudHMpIHsKKyAgICAgICAgbGV0
IGlkcyA9IFtdOworICAgICAgICBmb3IgKGxldCBjbGllbnQgb2YgY2xpZW50cykKKyAgICAgICAg
ICAgIGlkcy5wdXNoKGNsaWVudC5pZCk7CisgICAgICAgIHNvdXJjZS5wb3N0TWVzc2FnZShpZHMp
OworICAgIH0pOworfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtl
cnMvc2VydmljZS9zZXJ2aWNld29ya2VyY2xpZW50cy1tYXRjaEFsbC13b3JrZXIuanMgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyY2xpZW50cy1t
YXRjaEFsbC13b3JrZXIuanMKaW5kZXggYmMwZGE5ODU3Y2ZkM2NhM2ZjZGM4ZTQyNjY0YWNmYTc5
ZjRmZDhhZC4uYmRiYTI4Mjg2MDUzZjFmZGFkMDM1ZDM5MzNjMjg2ODAxMTczNjhjMyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtl
cmNsaWVudHMtbWF0Y2hBbGwtd29ya2VyLmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
d29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXJjbGllbnRzLW1hdGNoQWxsLXdvcmtlci5qcwpA
QCAtMyw1OCArMyw1NiBAQCBmdW5jdGlvbiB3YWl0Rm9yKGR1cmF0aW9uKQogICAgIHJldHVybiBu
ZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCBkdXJhdGlvbikpOwog
fQogCi1mdW5jdGlvbiBtYXRjaEFsbFByb21pc2UxKCkKK2Z1bmN0aW9uIGNoZWNrQ2xpZW50Tm90
SW5Db250cm9sbGVkQ2xpZW50cyhjbGllbnRJZGVudGlmaWVyKQogewogICAgIHJldHVybiBzZWxm
LmNsaWVudHMubWF0Y2hBbGwoKS50aGVuKChjbGllbnRzKSA9PiB7Ci0gICAgICAgIHJldHVybiBj
bGllbnRzLmxlbmd0aCA9PT0gMCA/ICJQQVNTIiA6ICJGQUlMOiBleHBlY3RlZCBubyBtYXRjaGVk
IGNsaWVudCwgZ290ICIgKyBjbGllbnRzLmxlbmd0aDsKKyAgICAgICAgZm9yIChsZXQgY2xpZW50
IG9mIGNsaWVudHMpIHsKKyAgICAgICAgICAgIGlmIChjbGllbnQuaWQgPT0gY2xpZW50SWRlbnRp
ZmllcikKKyAgICAgICAgICAgICAgICByZXR1cm4gIkZBSUw6IENsaWVudCBzaG91bGQgbm90IGhh
dmUgbWF0Y2hlZCI7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuICJQQVNTIjsKICAgICB9LCAo
ZSkgPT4gewotICAgICAgICByZXR1cm4gIkZBSUw6IG1hdGNoQWxsIDEgcmVqZWN0ZWQgd2l0aCAi
ICsgZTsKKyAgICAgICAgcmV0dXJuICJGQUlMOiBGaXJzdCBtYXRjaEFsbCgpIHJlcXVlc3QgcmVq
ZWN0ZWQgd2l0aCAiICsgZTsKICAgICB9KTsKIH0KIAotdmFyIG1hdGNoZWRDbGllbnRzOwotZnVu
Y3Rpb24gbWF0Y2hBbGxQcm9taXNlMigpCitmdW5jdGlvbiBjaGVja0NsaWVudEluVW5jb250cm9s
bGVkQ2xpZW50cyhjbGllbnRJZGVudGlmaWVyKQogewotICAgIHJldHVybiBzZWxmLmNsaWVudHMu
bWF0Y2hBbGwoeyBpbmNsdWRlVW5jb250cm9sbGVkIDogdHJ1ZSB9KS50aGVuKChjKSA9PiB7Ci0g
ICAgICAgIG1hdGNoZWRDbGllbnRzID0gYzsKLSAgICAgICAgcmV0dXJuIG1hdGNoZWRDbGllbnRz
Lmxlbmd0aCA9PT0gMSA/ICJQQVNTIiA6ICJGQUlMOiBleHBlY3RlZCBvbmUgbWF0Y2hlZCBjbGll
bnQsIGdvdCAiICsgbWF0Y2hlZENsaWVudHMubGVuZ3RoOworICAgIHJldHVybiBzZWxmLmNsaWVu
dHMubWF0Y2hBbGwoeyBpbmNsdWRlVW5jb250cm9sbGVkIDogdHJ1ZSB9KS50aGVuKChjbGllbnRz
KSA9PiB7CisgICAgICAgIGZvciAobGV0IGNsaWVudCBvZiBjbGllbnRzKSB7CisgICAgICAgICAg
ICBpZiAoY2xpZW50LmlkID09IGNsaWVudElkZW50aWZpZXIpCisgICAgICAgICAgICAgICAgcmV0
dXJuICJQQVNTIjsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gIkZBSUw6IENsaWVudCBzaG91
bGQgaGF2ZSBtYXRjaGVkIHdpdGggaW5jbHVkZVVuY29udHJvbGxlZCBzZXQgdG8gdHJ1ZSI7CiAg
ICAgfSwgKGUpID0+IHsKLSAgICAgICAgcmV0dXJuICJGQUlMOiBtYXRjaEFsbCAyIHJlamVjdGVk
IHdpdGggIiArIGU7CisgICAgICAgIHJldHVybiAiRkFJTDogU2Vjb25kIG1hdGNoQWxsKCkgcmVx
dWVzdCByZWplY3RlZCB3aXRoICIgKyBlOwogICAgIH0pOwogfQogCiBhc3luYyBmdW5jdGlvbiBk
b1Rlc3RBZnRlck1lc3NhZ2UoZXZlbnQpCiB7CiAgICAgdHJ5IHsKLSAgICAgICAgaWYgKGV2ZW50
LmRhdGEgIT09ICJzdGFydCIpIHsKKyAgICAgICAgaWYgKGV2ZW50LmRhdGEudGVzdCAhPT0gImNo
ZWNrQ2xpZW50SXNVbmNvbnRyb2xsZWQiKSB7CiAgICAgICAgICAgICBldmVudC5zb3VyY2UucG9z
dE1lc3NhZ2UoIkZBSUw6IHJlY2VpdmVkIHVuZXhwZWN0ZWQgbWVzc2FnZSBmcm9tIGNsaWVudCIp
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgbGV0IHRyaWVzID0g
MDsKLSAgICAgICAgZG8gewotICAgICAgICAgICAgaWYgKHRyaWVzKQotICAgICAgICAgICAgICAg
IGF3YWl0IHdhaXRGb3IoNTApOwotICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgbWF0Y2hBbGxQ
cm9taXNlMSgpOwotICAgICAgICB9IHdoaWxlIChyZXN1bHQgIT09ICJQQVNTIiAmJiArK3RyaWVz
IDw9IDIwMCk7CisgICAgICAgIGNvbnN0IGNsaWVudElkZW50aWZpZXIgPSBldmVudC5kYXRhLmlk
ZW50aWZpZXI7CiAKKyAgICAgICAgbGV0IHJlc3VsdCA9IGF3YWl0IGNoZWNrQ2xpZW50Tm90SW5D
b250cm9sbGVkQ2xpZW50cyhjbGllbnRJZGVudGlmaWVyKTsKICAgICAgICAgaWYgKHJlc3VsdCAh
PT0gIlBBU1MiKSB7CiAgICAgICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UocmVzdWx0
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIHRyaWVzID0gMDsK
KyAgICAgICAgbGV0IHRyaWVzID0gMDsKICAgICAgICAgZG8gewogICAgICAgICAgICAgaWYgKHRy
aWVzKQogICAgICAgICAgICAgICAgIGF3YWl0IHdhaXRGb3IoNTApOwotICAgICAgICAgICAgcmVz
dWx0ID0gYXdhaXQgbWF0Y2hBbGxQcm9taXNlMigpOworICAgICAgICAgICAgcmVzdWx0ID0gYXdh
aXQgY2hlY2tDbGllbnRJblVuY29udHJvbGxlZENsaWVudHMoY2xpZW50SWRlbnRpZmllcik7CiAg
ICAgICAgIH0gd2hpbGUgKHJlc3VsdCAhPT0gIlBBU1MiICYmICsrdHJpZXMgPD0gMjAwKTsKIAot
ICAgICAgICBpZiAocmVzdWx0ICE9PSAiUEFTUyIpIHsKLSAgICAgICAgICAgIGV2ZW50LnNvdXJj
ZS5wb3N0TWVzc2FnZShyZXN1bHQpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0g
ICAgICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZSgiUEFTUyIpOworICAgICAgICBldmVudC5z
b3VyY2UucG9zdE1lc3NhZ2UocmVzdWx0KTsKICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgIGV2
ZW50LnNvdXJjZS5wb3N0TWVzc2FnZSgiRkFJTDogcmVjZWl2ZWQgZXhjZXB0aW9uICIgKyBlKTsK
ICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2aWNld29ya2VyY2xpZW50cy1tYXRjaEFsbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlcmNsaWVudHMtbWF0Y2hBbGwu
aHR0cHMuaHRtbAppbmRleCA5YWY0ZDk4NjU0ODQ1N2JkYTQ5ZWY3NGZjZTU5ODNmYzE0NWE3YWFh
Li4yZTZkYmY5OTJkMDUyZDlmMWUzZTUxOGRkN2IwZTg1MWVmMjAwMGE3IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyY2xpZW50
cy1tYXRjaEFsbC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vy
cy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXJjbGllbnRzLW1hdGNoQWxsLmh0dHBzLmh0bWwKQEAgLTI3
LDYgKzI3LDcgQEAgcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CiB9LCAiU2V0dXAgd29y
a2VyIik7CiAKIHByb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAgIGNvbnN0IHNlcnZp
Y2VXb3JrZXJDbGllbnRJZGVudGlmaWVyID0gaW50ZXJuYWxzLnNlcnZpY2VXb3JrZXJDbGllbnRJ
ZGVudGlmaWVyKGRvY3VtZW50KTsKICAgICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNv
bHZlLCByZWplY3QpID0+IHsKICAgICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRkRXZl
bnRMaXN0ZW5lcigibWVzc2FnZSIsIHRlc3Quc3RlcF9mdW5jKChldmVudCkgPT4gewogICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhldmVudC5kYXRhLCAiUEFTUyIpOwpAQCAtMzQsNyArMzUsNyBA
QCBwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKICAgICAgICAgfSkpOwogICAgIH0pOwog
Ci0gICAgYWN0aXZlV29ya2VyLnBvc3RNZXNzYWdlKCJzdGFydCIpOworICAgIGFjdGl2ZVdvcmtl
ci5wb3N0TWVzc2FnZSh7dGVzdDogImNoZWNrQ2xpZW50SXNVbmNvbnRyb2xsZWQiLCBpZGVudGlm
aWVyOiBzZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllciB9KTsKICAgICBhd2FpdCBwcm9taXNl
OwogfSwgIlRlc3Qgc2VsZi5jbGllbnRzLm1hdGNoQWxsIik7CiA8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBjYjE5Yzc1ODJi
YzI5ZDQ3MTExNDkyMDNkMzNjOWM5MjkzYTAwYjYzLi5hYzBiMGViOTgxNDM3NzdkNzYyYmMyMDAz
YWVmZmFhMjc5ZmI1MWY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2sy
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0
RXhwZWN0YXRpb25zCkBAIC0xMjc3LDEwICsxMjc3LDYgQEAgd2Via2l0Lm9yZy9iLzE4NDI0NSBo
dHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNlLXdvcmtlci1jYWNoZS1hcGkuaHR0cHMu
aHQKIAogd2Via2l0Lm9yZy9iLzE4NDc4MyBjb21wb3NpdGluZy9pb3Mvb3ZlcmZsb3ctc2Nyb2xs
LXRvdWNoLXRpbGVzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQogCi13ZWJraXQub3JnL2IvMTgzNzA1
IGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2NsaWVudC1hZGRlZC10by1jbGllbnRzLXdoZW4t
cmVzdG9yZWQtZnJvbS1wYWdlLWNhY2hlLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQotd2Via2l0Lm9y
Zy9iLzE4MzcwNSBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9jbGllbnQtcmVtb3ZlZC1mcm9t
LWNsaWVudHMtd2hpbGUtaW4tcGFnZS1jYWNoZS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KLXdlYmtp
dC5vcmcvYi8xODM3MDUgaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlcmNs
aWVudHMtbWF0Y2hBbGwuaHR0cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCi0KIHdlYmtpdC5vcmcv
Yi8xNzk4NTMgWyBEZWJ1ZyBdIGltcG9ydGVkL2JsaW5rL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFs
LWl0ZXJhdGlvbi1zaW1wbGUtdGV4dC5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAogIyBza2lwIG1h
bnVhbCBwYXltZW50LXJlcXVlc3QgdGVzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA4ZWViZmRmZmY3NTdjOGMyMjZhYTFmYzJiOGY4YzIw
YzE2NDM5NWYyLi5iZDIwYzg1MjYwYWEyYmIxYzM2YzU4ZWEyZjAxZmMxMTNhNmZhMmVkIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC04MzAs
MTAgKzgzMCw2IEBAIHdlYmtpdC5vcmcvYi8xODYzNjIgWyBSZWxlYXNlIF0gaHR0cC90ZXN0cy9y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3ByZXZhbGVudC1yZXNvCiAKIHdlYmtpdC5vcmcvYi8xODY0
MjUgWyBEZWJ1ZyBdIGluc3BlY3Rvci9jb25zb2xlL3dlYmNvcmUtbG9nZ2luZy5odG1sIFsgUGFz
cyBGYWlsdXJlIF0KIAotd2Via2l0Lm9yZy9iLzE4MzcwNSBodHRwL3Rlc3RzL3dvcmtlcnMvc2Vy
dmljZS9jbGllbnQtYWRkZWQtdG8tY2xpZW50cy13aGVuLXJlc3RvcmVkLWZyb20tcGFnZS1jYWNo
ZS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xODM3MDUgaHR0cC90ZXN0cy93
b3JrZXJzL3NlcnZpY2UvY2xpZW50LXJlbW92ZWQtZnJvbS1jbGllbnRzLXdoaWxlLWluLXBhZ2Ut
Y2FjaGUuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTgzNzA1IGh0dHAvdGVz
dHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXJjbGllbnRzLW1hdGNoQWxsLmh0dHBzLmh0
bWwgWyBQYXNzIEZhaWx1cmUgXQotCiB3ZWJraXQub3JnL2IvMTg3NjU4IGh0dHAvdGVzdHMvc2Vj
dXJpdHkvYnlwYXNzaW5nLWNvcnMtY2hlY2tzLWZvci1leHRlbnNpb24tdXJscy5odG1sIFsgUGFz
cyBGYWlsdXJlIF0KIAogWyBNb2phdmUrIF0gZmFzdC9jYW52YXMvd2ViZ2wvY29udGV4dC11cGRh
dGUtb24tZGlzcGxheS1jb25maWd1cmF0aW9uLmh0bWwgWyBQYXNzIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348674</attachid>
            <date>2018-08-31 14:46:32 -0700</date>
            <delta_ts>2018-08-31 14:48:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183705-20180831144631.patch</filename>
            <type>text/plain</type>
            <size>18777</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NTY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzhiZTFlZmExM2Y4YzQ4
YWE0OTEwYzNhNmIzYWU1N2FjYmFjNGVlYS4uNzQwODhhNDdhYzQzYjk3YzI3YzY3NWI5ZTBkZjBi
ODY0ZTM0MjY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE4LTA4LTMxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgWyBXSzIgXSBodHRwL3Rlc3Rz
L3dvcmtlcnMvc2VydmljZS9jbGllbnQtKi1wYWdlLWNhY2hlLmh0bWwgTGF5b3V0VGVzdHMgYXJl
IGZsYWt5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODM3MDUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQyNDQwNjA2PgorCisgICAgICAgIFJldmll
d2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgQWRkIGludGVybmFscy5zZXJ2aWNlV29y
a2VyQ2xpZW50SWRlbnRpZmllcigpIHV0aWxpdHkgZnVuY3Rpb24gc28gdGhhdCBhIGxheW91dCB0
ZXN0IGNhbiBnZXQgdGhlCisgICAgICAgIHNlcnZpY2Ugd29ya2VyIGNsaWVudCBpZGVudGlmaWVy
IG9mIGEgZG9jdW1lbnQuCisKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIGNv
bnN0KToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3Rpbmcv
SW50ZXJuYWxzLmlkbDoKKwogMjAxOC0wOC0zMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CiAKICAgICAgICAgV2ViQXVkaW9CdWZmZXJMaXN0LmNwcC8uaCBpcyBuYW1lZCBhcyBj
b2NvYS9XZWJBdWRpb0J1ZmZlckxpc3QuY3BwLy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKaW5kZXggNDlmYzdjMDYxZjk5YjRiNTdiYzdlMDQ3NmU0OTVmY2ViZWM1MGU4MC4uMmFl
MmRhOGM1ZDBjZDZkMTgxYzZkZjUyOTgyNzIyYWI1YTgyMmIwNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcApAQCAtMjMyOCw2ICsyMzI4LDE2IEBAIGJvb2wgSW50ZXJuYWxzOjpp
c0RvY3VtZW50QWxpdmUodWludDY0X3QgZG9jdW1lbnRJZGVudGlmaWVyKSBjb25zdAogICAgIHJl
dHVybiBEb2N1bWVudDo6YWxsRG9jdW1lbnRzTWFwKCkuY29udGFpbnMobWFrZU9iamVjdElkZW50
aWZpZXI8RG9jdW1lbnRJZGVudGlmaWVyVHlwZT4oZG9jdW1lbnRJZGVudGlmaWVyKSk7CiB9CiAK
K1N0cmluZyBJbnRlcm5hbHM6OnNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyKGNvbnN0IERv
Y3VtZW50JiBkb2N1bWVudCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisg
ICAgcmV0dXJuIFNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyIHsgU2VydmljZVdvcmtlclBy
b3ZpZGVyOjpzaW5nbGV0b24oKS5zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbkZvclNlc3Npb24oZG9j
dW1lbnQuc2Vzc2lvbklEKCkpLnNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKCksIGRvY3VtZW50
LmlkZW50aWZpZXIoKSB9LnRvU3RyaW5nKCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShkb2N1
bWVudCk7CisgICAgcmV0dXJuIFN0cmluZygpOworI2VuZGlmCit9CisKIFJlZlB0cjxXaW5kb3dQ
cm94eT4gSW50ZXJuYWxzOjpvcGVuRHVtbXlJbnNwZWN0b3JGcm9udGVuZChjb25zdCBTdHJpbmcm
IHVybCkKIHsKICAgICBhdXRvKiBpbnNwZWN0ZWRQYWdlID0gY29udGV4dERvY3VtZW50KCktPmZy
YW1lKCktPnBhZ2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDgxOTllYTRj
NjdkMjRlNDQ1NmNkN2QzZDJjNWI0YjBmNzMyYzIwZDkuLjQwY2RiZWYxMmFjYjJlMTYyZmZiZDIx
ZjQ3ZWMwOTkxODljOTVkNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMzcx
LDYgKzM3MSw4IEBAIHB1YmxpYzoKICAgICB1aW50NjRfdCBkb2N1bWVudElkZW50aWZpZXIoY29u
c3QgRG9jdW1lbnQmKSBjb25zdDsKICAgICBib29sIGlzRG9jdW1lbnRBbGl2ZSh1aW50NjRfdCBk
b2N1bWVudElkZW50aWZpZXIpIGNvbnN0OwogCisgICAgU3RyaW5nIHNlcnZpY2VXb3JrZXJDbGll
bnRJZGVudGlmaWVyKGNvbnN0IERvY3VtZW50JikgY29uc3Q7CisKICAgICBSZWZQdHI8V2luZG93
UHJveHk+IG9wZW5EdW1teUluc3BlY3RvckZyb250ZW5kKGNvbnN0IFN0cmluZyYgdXJsKTsKICAg
ICB2b2lkIGNsb3NlRHVtbXlJbnNwZWN0b3JGcm9udGVuZCgpOwogICAgIEV4Y2VwdGlvbk9yPHZv
aWQ+IHNldEluc3BlY3RvcklzVW5kZXJUZXN0KGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaWRsCmluZGV4IDA0Zjc3YWM3ZmM5YzY3YzZiMzI3OWEzYzI0NDFlMDhhZTQwYjA0MWIu
LjUzZTJjNzhlYWUyODk4MWUwZWExOTdiNGFmM2IwMDcxYWFkYmFmNmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTYyNCw2ICs2MjQsOCBAQCBlbnVtIENvbXBvc2l0aW5n
UG9saWN5IHsKICAgICB1bnNpZ25lZCBsb25nIGxvbmcgZG9jdW1lbnRJZGVudGlmaWVyKERvY3Vt
ZW50IGRvY3VtZW50KTsKICAgICBib29sZWFuIGlzRG9jdW1lbnRBbGl2ZSh1bnNpZ25lZCBsb25n
IGxvbmcgZG9jdW1lbnRJZGVudGlmaWVyKTsKIAorICAgIERPTVN0cmluZyBzZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllcihEb2N1bWVudCBkb2N1bWVudCk7CisKICAgICBQcm9taXNlPHZvaWQ+
IGNsZWFyQ2FjaGVTdG9yYWdlTWVtb3J5UmVwcmVzZW50YXRpb24oKTsKICAgICBQcm9taXNlPERP
TVN0cmluZz4gY2FjaGVTdG9yYWdlRW5naW5lUmVwcmVzZW50YXRpb24oKTsKICAgICB2b2lkIHNl
dFJlc3BvbnNlU2l6ZVdpdGhQYWRkaW5nKEZldGNoUmVzcG9uc2UgcmVzcG9uc2UsIHVuc2lnbmVk
IGxvbmcgbG9uZyBzaXplKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3OWQ2Y2M4NjZlOGI2N2E4ZDAzOTZjNzg3OGFmOGU5
N2E1NWJlZTBlLi4wYmU3NWFjMjg3NjFlZGNkZDg3ZGNlYjIwYzRjNmFjM2E2YjBjYzMzIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjYgQEAKKzIwMTgtMDgtMzEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKworICAgICAgICBbIFdLMiBdIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2NsaWVu
dC0qLXBhZ2UtY2FjaGUuaHRtbCBMYXlvdXRUZXN0cyBhcmUgZmxha3kKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzcwNQorICAgICAgICA8cmRhcjov
L3Byb2JsZW0vNDI0NDA2MDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWW91ZW5uIEZhYmxldC4K
KworICAgICAgICBVcGRhdGUgTGF5b3V0IHRlc3RzIHRvIG5vdCByZWx5IG9uIHRoZSB0b3RhbCBu
dW1iZXIgb2YgY2xpZW50cyBhcyB0aGlzIGlzIGZsYWt5LiBJbnN0ZWFkLCBjaGVjayBmb3Igc3Bl
Y2lmaWMgY2xpZW50CisgICAgICAgIGlkZW50aWZpZXJzIHRvIHNlZSBpZiB0aGV5IGFyZSBwcmVz
ZW50IG9yIG5vdC4KKworICAgICAgICAqIGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2NsaWVu
dC1hZGRlZC10by1jbGllbnRzLXdoZW4tcmVzdG9yZWQtZnJvbS1wYWdlLWNhY2hlLmh0bWw6Cisg
ICAgICAgICogaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvY2xpZW50LXJlbW92ZWQtZnJvbS1j
bGllbnRzLXdoaWxlLWluLXBhZ2UtY2FjaGUuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dv
cmtlcnMvc2VydmljZS9yZXNvdXJjZXMvZ2V0Q2xpZW50SWRzLXdvcmtlci5qczogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9nZXRD
bGllbnRDb3VudC13b3JrZXIuanMuCisgICAgICAgIChldmVudC50aGVuKToKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyY2xpZW50cy1tYXRjaEFsbC13
b3JrZXIuanM6CisgICAgICAgIChhc3luYy5kb1Rlc3RBZnRlck1lc3NhZ2UpOgorICAgICAgICAq
IGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3b3JrZXJjbGllbnRzLW1hdGNoQWxs
Lmh0dHBzLmh0bWw6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlv
bnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAg
ICBVbnNraXAgdGVzdHMgYXMgdGhleSBzaG91bGQgbm8gbG9uZ2VyIGJlIGZsYWt5LgorCiAyMDE4
LTA4LTMxICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ10g
QWRkIG1hcmdpbiBib3ggdmVyaWZpY2F0aW9uIGJhY2sgbm93IHRoYXQgRGlzcGxheTo6Qm94IGhh
cyBub24tY29tcHV0ZWQgaG9yaXpvbnRhbCBtYXJnaW4uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9jbGllbnQtYWRkZWQtdG8tY2xpZW50cy13aGVu
LXJlc3RvcmVkLWZyb20tcGFnZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
b3JrZXJzL3NlcnZpY2UvY2xpZW50LWFkZGVkLXRvLWNsaWVudHMtd2hlbi1yZXN0b3JlZC1mcm9t
LXBhZ2UtY2FjaGUuaHRtbAppbmRleCAyMWNhY2I2YjRiOGRkNTNmMGQyY2ZjNGE5NWRiNjQ3OTVh
YzQ2ODAwLi42MmJkNjI5NDE4OTBmOTE2OTZjOWNiMjMyMmJlMjI2ZTU5YTU3NmEwIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9jbGllbnQtYWRkZWQt
dG8tY2xpZW50cy13aGVuLXJlc3RvcmVkLWZyb20tcGFnZS1jYWNoZS5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2NsaWVudC1hZGRlZC10by1jbGllbnRz
LXdoZW4tcmVzdG9yZWQtZnJvbS1wYWdlLWNhY2hlLmh0bWwKQEAgLTEzLDE1ICsxMywyNiBAQCBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKIAogbGV0IHRyaWVzID0gMDsKIAorbGV0IGV4cGVjdGVk
Q2xpZW50SWRlbnRpZmllcnMgPSBbXTsKKworZnVuY3Rpb24gY29udGFpbnNFeHBlY3RlZENsaWVu
dHMoY2xpZW50SWRlbnRpZmllcnMpCit7CisgICAgZm9yIChsZXQgZXhwZWN0ZWRJZGVudGlmaWVy
IG9mIGV4cGVjdGVkQ2xpZW50SWRlbnRpZmllcnMpIHsKKyAgICAgICAgaWYgKCFjbGllbnRJZGVu
dGlmaWVycy5pbmNsdWRlcyhleHBlY3RlZElkZW50aWZpZXIpKQorICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogbmF2aWdhdG9yLnNlcnZpY2VX
b3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGZ1bmN0aW9uKGV2ZW50KSB7CiAgIGlm
IChzdGVwID09ICJCb3RoQ2xpZW50c0luaXRpYWxseUFjdGl2ZSIpIHsKLSAgICBpZiAoZXZlbnQu
ZGF0YSAhPSAyKSB7CisgICAgaWYgKCFjb250YWluc0V4cGVjdGVkQ2xpZW50cyhldmVudC5kYXRh
KSkgewogICAgICAgaWYgKCsrdHJpZXMgPiAyMCkgewotICAgICAgICAgIGxvZygiRkFJTDogV3Jv
bmcgaW5pdGlhbCBudW1iZXIgb2YgY2xpZW50czogIiArIGV2ZW50LmRhdGEpOworICAgICAgICAg
IGxvZygiRkFJTDogV3JvbmcgaW5pdGlhbCBudW1iZXIgb2YgY2xpZW50cyIpOwogICAgICAgICAg
IGZpbmlzaFNXVGVzdCgpOwogICAgICAgICAgIHJldHVybjsKICAgICAgIH0KLSAgICAgIHdvcmtl
ci5wb3N0TWVzc2FnZSgiZ2V0Q2xpZW50Q291bnQiKTsKKyAgICAgIHdvcmtlci5wb3N0TWVzc2Fn
ZSgiZ2V0Q2xpZW50SWRzIik7CiAgICAgICByZXR1cm47CiAgICAgfQogICAgIGxvZygiUEFTUzog
c2VydmljZSB3b3JrZXIgaGFzIGluaXRpYWxseSAyIGNsaWVudHMiKTsKQEAgLTQzLDcgKzU0LDcg
QEAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGZ1
bmN0aW9uKGV2ZW50KSB7CiAgICAgICAgfQogICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
CiAgICAgICAgICBzdGVwID0gIlNlY29uZENsaWVudFJlc3RvcmVkRnJvbVBhZ2VDYWNoZSI7Ci0g
ICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoImdldENsaWVudENvdW50Iik7CisgICAgICAgICB3
b3JrZXIucG9zdE1lc3NhZ2UoImdldENsaWVudElkcyIpOwogICAgICAgIH0sIDApOwogICAgIH0p
OwogCkBAIC01Miw4ICs2Myw4IEBAIG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmFkZEV2ZW50TGlz
dGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbihldmVudCkgewogICB9CiAKICAgaWYgKHN0ZXAgPT0g
IlNlY29uZENsaWVudFJlc3RvcmVkRnJvbVBhZ2VDYWNoZSIpIHsKLSAgICBpZiAoZXZlbnQuZGF0
YSAhPSAyKSB7Ci0gICAgICBsb2coIkZBSUw6IFdyb25nIG51bWJlciBvZiBjbGllbnRzIGFmdGVy
IG9uZSBjbGllbnQgd2FzIHJlc3RvcmVkIGZyb20gcGFnZSBjYWNoZTogIiArIGV2ZW50LmRhdGEp
OworICAgIGlmICghY29udGFpbnNFeHBlY3RlZENsaWVudHMoZXZlbnQuZGF0YSkpIHsKKyAgICAg
IGxvZygiRkFJTDogV3JvbmcgbnVtYmVyIG9mIGNsaWVudHMgYWZ0ZXIgb25lIGNsaWVudCB3YXMg
cmVzdG9yZWQgZnJvbSBwYWdlIGNhY2hlIik7CiAgICAgICBmaW5pc2hTV1Rlc3QoKTsKICAgICB9
CiAKQEAgLTYyLDEyICs3MywxNSBAQCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5hZGRFdmVudExp
c3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24oZXZlbnQpIHsKICAgfQogfSk7CiAKLW5hdmlnYXRv
ci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCJyZXNvdXJjZXMvZ2V0Q2xpZW50Q291bnQtd29ya2Vy
LmpzIiwgeyB9KS50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgeworbmF2aWdhdG9yLnNlcnZp
Y2VXb3JrZXIucmVnaXN0ZXIoInJlc291cmNlcy9nZXRDbGllbnRJZHMtd29ya2VyLmpzIiwgeyB9
KS50aGVuKGZ1bmN0aW9uKHJlZ2lzdHJhdGlvbikgeworICAgIGV4cGVjdGVkQ2xpZW50SWRlbnRp
ZmllcnMucHVzaChpbnRlcm5hbHMuc2VydmljZVdvcmtlckNsaWVudElkZW50aWZpZXIoZG9jdW1l
bnQpKTsKKwogICAgIHdvcmtlciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOwogICAgIG90aGVy
V2luZG93ID0gb3Blbigib3RoZXJfcmVzb3VyY2VzL3Rlc3QuaHRtbCIpOwogICAgIG90aGVyV2lu
ZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgZXhwZWN0ZWRDbGllbnRJZGVudGlmaWVy
cy5wdXNoKGludGVybmFscy5zZXJ2aWNlV29ya2VyQ2xpZW50SWRlbnRpZmllcihvdGhlcldpbmRv
dy5kb2N1bWVudCkpOwogICAgICAgc3RlcCA9ICJCb3RoQ2xpZW50c0luaXRpYWxseUFjdGl2ZSIK
LSAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSgiZ2V0Q2xpZW50Q291bnQiKTsKKyAgICAgIHdvcmtl
ci5wb3N0TWVzc2FnZSgiZ2V0Q2xpZW50SWRzIik7CiAgICAgfTsKIH0pOwogPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9jbGllbnQt
cmVtb3ZlZC1mcm9tLWNsaWVudHMtd2hpbGUtaW4tcGFnZS1jYWNoZS5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvY2xpZW50LXJlbW92ZWQtZnJvbS1jbGllbnRz
LXdoaWxlLWluLXBhZ2UtY2FjaGUuaHRtbAppbmRleCAyMDU1ZGJiYjQ0MjNlZjNhMzgzNzEzMDFi
OTgyM2RiMmIxMDZmMDA3Li5iMTA5MTlhYzczZDA3MmJmNzZjZmExNWMzMmE3NjhjMmM2MWUxMjc0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9jbGll
bnQtcmVtb3ZlZC1mcm9tLWNsaWVudHMtd2hpbGUtaW4tcGFnZS1jYWNoZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL2NsaWVudC1yZW1vdmVkLWZyb20t
Y2xpZW50cy13aGlsZS1pbi1wYWdlLWNhY2hlLmh0bWwKQEAgLTExLDE3ICsxMSwzMCBAQCBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKICAgdGVzdFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldl
YktpdFVzZXNQYWdlQ2FjaGVQcmVmZXJlbmNlS2V5IiwgMSk7CiB9CiAKK2xldCB0b3BDbGllbnRJ
ZGVudGlmaWVyID0gbnVsbDsKK2xldCB3aW5kb3dDbGllbnRJZGVudGlmaWVyID0gbnVsbDsKKwog
bGV0IHRyaWVzID0gMDsKIAorZnVuY3Rpb24gY29udGFpbnNCb3RoQ2xpZW50cyhjbGllbnRJZGVu
dGlmaWVycykKK3sKKyAgICByZXR1cm4gY2xpZW50SWRlbnRpZmllcnMuaW5jbHVkZXModG9wQ2xp
ZW50SWRlbnRpZmllcikgJiYgY2xpZW50SWRlbnRpZmllcnMuaW5jbHVkZXMod2luZG93Q2xpZW50
SWRlbnRpZmllcik7Cit9CisKK2Z1bmN0aW9uIGNvbnRhaW5zT25seVRvcENsaWVudChjbGllbnRJ
ZGVudGlmaWVycykKK3sKKyAgICByZXR1cm4gY2xpZW50SWRlbnRpZmllcnMuaW5jbHVkZXModG9w
Q2xpZW50SWRlbnRpZmllcikgJiYgIWNsaWVudElkZW50aWZpZXJzLmluY2x1ZGVzKHdpbmRvd0Ns
aWVudElkZW50aWZpZXIpOworfQorCiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5hZGRFdmVudExp
c3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24oZXZlbnQpIHsKICAgaWYgKHN0ZXAgPT0gIkJvdGhD
bGllbnRzSW5pdGlhbGx5QWN0aXZlIikgewotICAgIGlmIChldmVudC5kYXRhICE9IDIpIHsKKyAg
ICBpZiAoIWNvbnRhaW5zQm90aENsaWVudHMoZXZlbnQuZGF0YSkpIHsKICAgICAgIGlmICgrK3Ry
aWVzID4gMjApIHsKLSAgICAgICAgICBsb2coIkZBSUw6IFdyb25nIGluaXRpYWwgbnVtYmVyIG9m
IGNsaWVudHM6ICIgKyBldmVudC5kYXRhKTsKKyAgICAgICAgICBsb2coIkZBSUw6IFdyb25nIGlu
aXRpYWwgbnVtYmVyIG9mIGNsaWVudHMiKTsKICAgICAgICAgICBmaW5pc2hTV1Rlc3QoKTsKICAg
ICAgICAgICByZXR1cm47CiAgICAgICB9Ci0gICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoImdldENs
aWVudENvdW50Iik7CisgICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoImdldENsaWVudElkcyIpOwog
ICAgICAgcmV0dXJuOwogICAgIH0KICAgICBsb2coIlBBU1M6IHNlcnZpY2Ugd29ya2VyIGhhcyBp
bml0aWFsbHkgMiBjbGllbnRzIik7CkBAIC0zNiw3ICs0OSw3IEBAIG5hdmlnYXRvci5zZXJ2aWNl
V29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbihldmVudCkgewogCiAg
ICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgIHN0ZXAgPSAiT25seU9uZUNs
aWVudFJlbWFpbnNBY3RpdmUiCi0gICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoImdldENsaWVu
dENvdW50Iik7CisgICAgICAgICB3b3JrZXIucG9zdE1lc3NhZ2UoImdldENsaWVudElkcyIpOwog
ICAgICAgIH0sIDApOwogICAgIH0pOwogCkBAIC00NSw4ICs1OCw4IEBAIG5hdmlnYXRvci5zZXJ2
aWNlV29ya2VyLmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbihldmVudCkgewog
ICB9CiAKICAgaWYgKHN0ZXAgPT0gIk9ubHlPbmVDbGllbnRSZW1haW5zQWN0aXZlIikgewotICAg
IGlmIChldmVudC5kYXRhICE9IDEpIHsKLSAgICAgIGxvZygiRkFJTDogV3JvbmcgbnVtYmVyIG9m
IGNsaWVudHMgYWZ0ZXIgb25lIGNsaWVudCBlbnRlcmVkIHBhZ2UgY2FjaGU6ICIgKyBldmVudC5k
YXRhKTsKKyAgICBpZiAoIWNvbnRhaW5zT25seVRvcENsaWVudChldmVudC5kYXRhKSkgeworICAg
ICAgbG9nKCJGQUlMOiBXcm9uZyBudW1iZXIgb2YgY2xpZW50cyBhZnRlciBvbmUgY2xpZW50IGVu
dGVyZWQgcGFnZSBjYWNoZSIpOwogICAgICAgZmluaXNoU1dUZXN0KCk7CiAgICAgfQogCkBAIC01
NSwxMiArNjgsMTUgQEAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigi
bWVzc2FnZSIsIGZ1bmN0aW9uKGV2ZW50KSB7CiAgIH0KIH0pOwogCi1uYXZpZ2F0b3Iuc2Vydmlj
ZVdvcmtlci5yZWdpc3RlcigicmVzb3VyY2VzL2dldENsaWVudENvdW50LXdvcmtlci5qcyIsIHsg
fSkudGhlbihmdW5jdGlvbihyZWdpc3RyYXRpb24pIHsKK25hdmlnYXRvci5zZXJ2aWNlV29ya2Vy
LnJlZ2lzdGVyKCJyZXNvdXJjZXMvZ2V0Q2xpZW50SWRzLXdvcmtlci5qcyIsIHsgfSkudGhlbihm
dW5jdGlvbihyZWdpc3RyYXRpb24pIHsKKyAgICB0b3BDbGllbnRJZGVudGlmaWVyID0gaW50ZXJu
YWxzLnNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyKGRvY3VtZW50KTsKKwogICAgIHdvcmtl
ciA9IHJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5nOwogICAgIG90aGVyV2luZG93ID0gb3Blbigib3Ro
ZXJfcmVzb3VyY2VzL3Rlc3QuaHRtbCIpOwogICAgIG90aGVyV2luZG93Lm9ubG9hZCA9IGZ1bmN0
aW9uKCkgeworICAgICAgd2luZG93Q2xpZW50SWRlbnRpZmllciA9IGludGVybmFscy5zZXJ2aWNl
V29ya2VyQ2xpZW50SWRlbnRpZmllcihvdGhlcldpbmRvdy5kb2N1bWVudCk7CiAgICAgICBzdGVw
ID0gIkJvdGhDbGllbnRzSW5pdGlhbGx5QWN0aXZlIgotICAgICAgd29ya2VyLnBvc3RNZXNzYWdl
KCJnZXRDbGllbnRDb3VudCIpOworICAgICAgd29ya2VyLnBvc3RNZXNzYWdlKCJnZXRDbGllbnRJ
ZHMiKTsKICAgICB9OwogfSk7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291cmNlcy9nZXRDbGllbnRDb3VudC13b3JrZXIu
anMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9yZXNvdXJjZXMvZ2V0
Q2xpZW50Q291bnQtd29ya2VyLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4YjEx
NWFjYTZiNjgxZGQ3MzcwODZkZWI3NWE3YmI3YzAzY2ZjNjIyLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vy
cy9zZXJ2aWNlL3Jlc291cmNlcy9nZXRDbGllbnRDb3VudC13b3JrZXIuanMKKysrIC9kZXYvbnVs
bApAQCAtMSw2ICswLDAgQEAKLXNlbGYuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIChldmVu
dCkgPT4gewotICAgIHNvdXJjZSA9IGV2ZW50LnNvdXJjZTsKLSAgICBjbGllbnRzLm1hdGNoQWxs
KHsgaW5jbHVkZVVuY29udHJvbGxlZCA6IHRydWUgfSkudGhlbihmdW5jdGlvbihjbGllbnRMaXN0
KSB7Ci0gICAgICAgIHNvdXJjZS5wb3N0TWVzc2FnZShjbGllbnRMaXN0Lmxlbmd0aCk7Ci0gICAg
fSk7Ci19KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2
aWNlL3Jlc291cmNlcy9nZXRDbGllbnRJZHMtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy93b3JrZXJzL3NlcnZpY2UvcmVzb3VyY2VzL2dldENsaWVudElkcy13b3JrZXIuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOTlkYzFjYjgyMjFkMGRmOGRmMGNlZWM3ZjVmYTZiMTA4M2Q3M2IxOAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Jlc291
cmNlcy9nZXRDbGllbnRJZHMtd29ya2VyLmpzCkBAIC0wLDAgKzEsOSBAQAorc2VsZi5hZGRFdmVu
dExpc3RlbmVyKCJtZXNzYWdlIiwgKGV2ZW50KSA9PiB7CisgICAgc291cmNlID0gZXZlbnQuc291
cmNlOworICAgIGNsaWVudHMubWF0Y2hBbGwoeyBpbmNsdWRlVW5jb250cm9sbGVkIDogdHJ1ZSB9
KS50aGVuKGZ1bmN0aW9uKGNsaWVudHMpIHsKKyAgICAgICAgbGV0IGlkcyA9IFtdOworICAgICAg
ICBmb3IgKGxldCBjbGllbnQgb2YgY2xpZW50cykKKyAgICAgICAgICAgIGlkcy5wdXNoKGNsaWVu
dC5pZCk7CisgICAgICAgIHNvdXJjZS5wb3N0TWVzc2FnZShpZHMpOworICAgIH0pOworfSk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNl
d29ya2VyY2xpZW50cy1tYXRjaEFsbC13b3JrZXIuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyY2xpZW50cy1tYXRjaEFsbC13b3JrZXIuanMK
aW5kZXggYmMwZGE5ODU3Y2ZkM2NhM2ZjZGM4ZTQyNjY0YWNmYTc5ZjRmZDhhZC4uYmRiYTI4Mjg2
MDUzZjFmZGFkMDM1ZDM5MzNjMjg2ODAxMTczNjhjMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlcmNsaWVudHMtbWF0Y2hBbGwt
d29ya2VyLmpzCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZpY2V3b3JrZXJjbGllbnRzLW1hdGNoQWxsLXdvcmtlci5qcwpAQCAtMyw1OCArMyw1NiBAQCBm
dW5jdGlvbiB3YWl0Rm9yKGR1cmF0aW9uKQogICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2
ZSkgPT4gc2V0VGltZW91dChyZXNvbHZlLCBkdXJhdGlvbikpOwogfQogCi1mdW5jdGlvbiBtYXRj
aEFsbFByb21pc2UxKCkKK2Z1bmN0aW9uIGNoZWNrQ2xpZW50Tm90SW5Db250cm9sbGVkQ2xpZW50
cyhjbGllbnRJZGVudGlmaWVyKQogewogICAgIHJldHVybiBzZWxmLmNsaWVudHMubWF0Y2hBbGwo
KS50aGVuKChjbGllbnRzKSA9PiB7Ci0gICAgICAgIHJldHVybiBjbGllbnRzLmxlbmd0aCA9PT0g
MCA/ICJQQVNTIiA6ICJGQUlMOiBleHBlY3RlZCBubyBtYXRjaGVkIGNsaWVudCwgZ290ICIgKyBj
bGllbnRzLmxlbmd0aDsKKyAgICAgICAgZm9yIChsZXQgY2xpZW50IG9mIGNsaWVudHMpIHsKKyAg
ICAgICAgICAgIGlmIChjbGllbnQuaWQgPT0gY2xpZW50SWRlbnRpZmllcikKKyAgICAgICAgICAg
ICAgICByZXR1cm4gIkZBSUw6IENsaWVudCBzaG91bGQgbm90IGhhdmUgbWF0Y2hlZCI7CisgICAg
ICAgIH0KKyAgICAgICAgcmV0dXJuICJQQVNTIjsKICAgICB9LCAoZSkgPT4gewotICAgICAgICBy
ZXR1cm4gIkZBSUw6IG1hdGNoQWxsIDEgcmVqZWN0ZWQgd2l0aCAiICsgZTsKKyAgICAgICAgcmV0
dXJuICJGQUlMOiBGaXJzdCBtYXRjaEFsbCgpIHJlcXVlc3QgcmVqZWN0ZWQgd2l0aCAiICsgZTsK
ICAgICB9KTsKIH0KIAotdmFyIG1hdGNoZWRDbGllbnRzOwotZnVuY3Rpb24gbWF0Y2hBbGxQcm9t
aXNlMigpCitmdW5jdGlvbiBjaGVja0NsaWVudEluVW5jb250cm9sbGVkQ2xpZW50cyhjbGllbnRJ
ZGVudGlmaWVyKQogewotICAgIHJldHVybiBzZWxmLmNsaWVudHMubWF0Y2hBbGwoeyBpbmNsdWRl
VW5jb250cm9sbGVkIDogdHJ1ZSB9KS50aGVuKChjKSA9PiB7Ci0gICAgICAgIG1hdGNoZWRDbGll
bnRzID0gYzsKLSAgICAgICAgcmV0dXJuIG1hdGNoZWRDbGllbnRzLmxlbmd0aCA9PT0gMSA/ICJQ
QVNTIiA6ICJGQUlMOiBleHBlY3RlZCBvbmUgbWF0Y2hlZCBjbGllbnQsIGdvdCAiICsgbWF0Y2hl
ZENsaWVudHMubGVuZ3RoOworICAgIHJldHVybiBzZWxmLmNsaWVudHMubWF0Y2hBbGwoeyBpbmNs
dWRlVW5jb250cm9sbGVkIDogdHJ1ZSB9KS50aGVuKChjbGllbnRzKSA9PiB7CisgICAgICAgIGZv
ciAobGV0IGNsaWVudCBvZiBjbGllbnRzKSB7CisgICAgICAgICAgICBpZiAoY2xpZW50LmlkID09
IGNsaWVudElkZW50aWZpZXIpCisgICAgICAgICAgICAgICAgcmV0dXJuICJQQVNTIjsKKyAgICAg
ICAgfQorICAgICAgICByZXR1cm4gIkZBSUw6IENsaWVudCBzaG91bGQgaGF2ZSBtYXRjaGVkIHdp
dGggaW5jbHVkZVVuY29udHJvbGxlZCBzZXQgdG8gdHJ1ZSI7CiAgICAgfSwgKGUpID0+IHsKLSAg
ICAgICAgcmV0dXJuICJGQUlMOiBtYXRjaEFsbCAyIHJlamVjdGVkIHdpdGggIiArIGU7CisgICAg
ICAgIHJldHVybiAiRkFJTDogU2Vjb25kIG1hdGNoQWxsKCkgcmVxdWVzdCByZWplY3RlZCB3aXRo
ICIgKyBlOwogICAgIH0pOwogfQogCiBhc3luYyBmdW5jdGlvbiBkb1Rlc3RBZnRlck1lc3NhZ2Uo
ZXZlbnQpCiB7CiAgICAgdHJ5IHsKLSAgICAgICAgaWYgKGV2ZW50LmRhdGEgIT09ICJzdGFydCIp
IHsKKyAgICAgICAgaWYgKGV2ZW50LmRhdGEudGVzdCAhPT0gImNoZWNrQ2xpZW50SXNVbmNvbnRy
b2xsZWQiKSB7CiAgICAgICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UoIkZBSUw6IHJl
Y2VpdmVkIHVuZXhwZWN0ZWQgbWVzc2FnZSBmcm9tIGNsaWVudCIpOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgbGV0IHRyaWVzID0gMDsKLSAgICAgICAgZG8gewot
ICAgICAgICAgICAgaWYgKHRyaWVzKQotICAgICAgICAgICAgICAgIGF3YWl0IHdhaXRGb3IoNTAp
OwotICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgbWF0Y2hBbGxQcm9taXNlMSgpOwotICAgICAg
ICB9IHdoaWxlIChyZXN1bHQgIT09ICJQQVNTIiAmJiArK3RyaWVzIDw9IDIwMCk7CisgICAgICAg
IGNvbnN0IGNsaWVudElkZW50aWZpZXIgPSBldmVudC5kYXRhLmlkZW50aWZpZXI7CiAKKyAgICAg
ICAgbGV0IHJlc3VsdCA9IGF3YWl0IGNoZWNrQ2xpZW50Tm90SW5Db250cm9sbGVkQ2xpZW50cyhj
bGllbnRJZGVudGlmaWVyKTsKICAgICAgICAgaWYgKHJlc3VsdCAhPT0gIlBBU1MiKSB7CiAgICAg
ICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2UocmVzdWx0KTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogCi0gICAgICAgIHRyaWVzID0gMDsKKyAgICAgICAgbGV0IHRyaWVz
ID0gMDsKICAgICAgICAgZG8gewogICAgICAgICAgICAgaWYgKHRyaWVzKQogICAgICAgICAgICAg
ICAgIGF3YWl0IHdhaXRGb3IoNTApOwotICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgbWF0Y2hB
bGxQcm9taXNlMigpOworICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgY2hlY2tDbGllbnRJblVu
Y29udHJvbGxlZENsaWVudHMoY2xpZW50SWRlbnRpZmllcik7CiAgICAgICAgIH0gd2hpbGUgKHJl
c3VsdCAhPT0gIlBBU1MiICYmICsrdHJpZXMgPD0gMjAwKTsKIAotICAgICAgICBpZiAocmVzdWx0
ICE9PSAiUEFTUyIpIHsKLSAgICAgICAgICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVzc2FnZShyZXN1
bHQpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIGV2ZW50LnNvdXJj
ZS5wb3N0TWVzc2FnZSgiUEFTUyIpOworICAgICAgICBldmVudC5zb3VyY2UucG9zdE1lc3NhZ2Uo
cmVzdWx0KTsKICAgICB9IGNhdGNoIChlKSB7CiAgICAgICAgIGV2ZW50LnNvdXJjZS5wb3N0TWVz
c2FnZSgiRkFJTDogcmVjZWl2ZWQgZXhjZXB0aW9uICIgKyBlKTsKICAgICB9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyY2xp
ZW50cy1tYXRjaEFsbC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93b3JrZXJz
L3NlcnZpY2Uvc2VydmljZXdvcmtlcmNsaWVudHMtbWF0Y2hBbGwuaHR0cHMuaHRtbAppbmRleCA5
YWY0ZDk4NjU0ODQ1N2JkYTQ5ZWY3NGZjZTU5ODNmYzE0NWE3YWFhLi4yZTZkYmY5OTJkMDUyZDlm
MWUzZTUxOGRkN2IwZTg1MWVmMjAwMGE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3dvcmtlcnMvc2VydmljZS9zZXJ2aWNld29ya2VyY2xpZW50cy1tYXRjaEFsbC5odHRwcy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL3NlcnZpY2V3
b3JrZXJjbGllbnRzLW1hdGNoQWxsLmh0dHBzLmh0bWwKQEAgLTI3LDYgKzI3LDcgQEAgcHJvbWlz
ZV90ZXN0KGFzeW5jICh0ZXN0KSA9PiB7CiB9LCAiU2V0dXAgd29ya2VyIik7CiAKIHByb21pc2Vf
dGVzdChhc3luYyAodGVzdCkgPT4geworICAgIGNvbnN0IHNlcnZpY2VXb3JrZXJDbGllbnRJZGVu
dGlmaWVyID0gaW50ZXJuYWxzLnNlcnZpY2VXb3JrZXJDbGllbnRJZGVudGlmaWVyKGRvY3VtZW50
KTsKICAgICB2YXIgcHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsK
ICAgICAgICAgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2Fn
ZSIsIHRlc3Quc3RlcF9mdW5jKChldmVudCkgPT4gewogICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhldmVudC5kYXRhLCAiUEFTUyIpOwpAQCAtMzQsNyArMzUsNyBAQCBwcm9taXNlX3Rlc3QoYXN5
bmMgKHRlc3QpID0+IHsKICAgICAgICAgfSkpOwogICAgIH0pOwogCi0gICAgYWN0aXZlV29ya2Vy
LnBvc3RNZXNzYWdlKCJzdGFydCIpOworICAgIGFjdGl2ZVdvcmtlci5wb3N0TWVzc2FnZSh7dGVz
dDogImNoZWNrQ2xpZW50SXNVbmNvbnRyb2xsZWQiLCBpZGVudGlmaWVyOiBzZXJ2aWNlV29ya2Vy
Q2xpZW50SWRlbnRpZmllciB9KTsKICAgICBhd2FpdCBwcm9taXNlOwogfSwgIlRlc3Qgc2VsZi5j
bGllbnRzLm1hdGNoQWxsIik7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lv
cy13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBjYjE5Yzc1ODJiYzI5ZDQ3MTExNDkyMDNkMzNj
OWM5MjkzYTAwYjYzLi5hYzBiMGViOTgxNDM3NzdkNzYyYmMyMDAzYWVmZmFhMjc5ZmI1MWY2IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0x
Mjc3LDEwICsxMjc3LDYgQEAgd2Via2l0Lm9yZy9iLzE4NDI0NSBodHRwL3Rlc3RzL3dvcmtlcnMv
c2VydmljZS9zZXJ2aWNlLXdvcmtlci1jYWNoZS1hcGkuaHR0cHMuaHQKIAogd2Via2l0Lm9yZy9i
LzE4NDc4MyBjb21wb3NpdGluZy9pb3Mvb3ZlcmZsb3ctc2Nyb2xsLXRvdWNoLXRpbGVzLmh0bWwg
WyBQYXNzIEZhaWx1cmUgXQogCi13ZWJraXQub3JnL2IvMTgzNzA1IGh0dHAvdGVzdHMvd29ya2Vy
cy9zZXJ2aWNlL2NsaWVudC1hZGRlZC10by1jbGllbnRzLXdoZW4tcmVzdG9yZWQtZnJvbS1wYWdl
LWNhY2hlLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzE4MzcwNSBodHRwL3Rl
c3RzL3dvcmtlcnMvc2VydmljZS9jbGllbnQtcmVtb3ZlZC1mcm9tLWNsaWVudHMtd2hpbGUtaW4t
cGFnZS1jYWNoZS5odG1sIFsgUGFzcyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi8xODM3MDUgaHR0
cC90ZXN0cy93b3JrZXJzL3NlcnZpY2Uvc2VydmljZXdvcmtlcmNsaWVudHMtbWF0Y2hBbGwuaHR0
cHMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCi0KIHdlYmtpdC5vcmcvYi8xNzk4NTMgWyBEZWJ1ZyBd
IGltcG9ydGVkL2JsaW5rL2Zhc3QvdGV4dC9pbnRlcm5hdGlvbmFsLWl0ZXJhdGlvbi1zaW1wbGUt
dGV4dC5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAogIyBza2lwIG1hbnVhbCBwYXltZW50LXJlcXVl
c3QgdGVzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9u
cwppbmRleCA4ZWViZmRmZmY3NTdjOGMyMjZhYTFmYzJiOGY4YzIwYzE2NDM5NWYyLi5iZDIwYzg1
MjYwYWEyYmIxYzM2YzU4ZWEyZjAxZmMxMTNhNmZhMmVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC04MzAsMTAgKzgzMCw2IEBAIHdlYmtp
dC5vcmcvYi8xODYzNjIgWyBSZWxlYXNlIF0gaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3ByZXZhbGVudC1yZXNvCiAKIHdlYmtpdC5vcmcvYi8xODY0MjUgWyBEZWJ1ZyBdIGluc3Bl
Y3Rvci9jb25zb2xlL3dlYmNvcmUtbG9nZ2luZy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAotd2Vi
a2l0Lm9yZy9iLzE4MzcwNSBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9jbGllbnQtYWRkZWQt
dG8tY2xpZW50cy13aGVuLXJlc3RvcmVkLWZyb20tcGFnZS1jYWNoZS5odG1sIFsgUGFzcyBGYWls
dXJlIF0KLXdlYmtpdC5vcmcvYi8xODM3MDUgaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZpY2UvY2xp
ZW50LXJlbW92ZWQtZnJvbS1jbGllbnRzLXdoaWxlLWluLXBhZ2UtY2FjaGUuaHRtbCBbIFBhc3Mg
RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvMTgzNzA1IGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNl
L3NlcnZpY2V3b3JrZXJjbGllbnRzLW1hdGNoQWxsLmh0dHBzLmh0bWwgWyBQYXNzIEZhaWx1cmUg
XQotCiB3ZWJraXQub3JnL2IvMTg3NjU4IGh0dHAvdGVzdHMvc2VjdXJpdHkvYnlwYXNzaW5nLWNv
cnMtY2hlY2tzLWZvci1leHRlbnNpb24tdXJscy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAogWyBN
b2phdmUrIF0gZmFzdC9jYW52YXMvd2ViZ2wvY29udGV4dC11cGRhdGUtb24tZGlzcGxheS1jb25m
aWd1cmF0aW9uLmh0bWwgWyBQYXNzIF0K
</data>

          </attachment>
      

    </bug>

</bugzilla>