<?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>172176</bug_id>
          
          <creation_ts>2017-05-16 10:45:55 -0700</creation_ts>
          <short_desc>webkitpy: Start servers before setting-up for testing</short_desc>
          <delta_ts>2020-06-01 18:32:08 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=212622</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>182360</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>buildbot</cc>
    
    <cc>clopez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>dean_johnson</cc>
    
    <cc>glenn</cc>
    
    <cc>lforschler</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1309179</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-05-16 10:45:55 -0700</bug_when>
    <thetext>On-device testing requires that servers are already running when devices are set-up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309180</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-05-16 10:46:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/32225538&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309191</commentid>
    <comment_count>2</comment_count>
      <attachid>310275</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-05-16 11:03:08 -0700</bug_when>
    <thetext>Created attachment 310275
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309335</commentid>
    <comment_count>3</comment_count>
      <attachid>310275</attachid>
    <who name="Dean Johnson">dean_johnson</who>
    <bug_when>2017-05-16 15:23:18 -0700</bug_when>
    <thetext>Comment on attachment 310275
Patch

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

Unofficial r+.

&gt; Tools/Scripts/webkitpy/layout_tests/controllers/manager.py:238
&gt; +        needs_websockets = any(self._is_websocket_test(test) for test in tests_to_run)

I really like the use of `any` here, as well as the fact you used generators which means we get the best performance possible (other than doing all of this in a single loop). I also prefer this approach due to the readability and conciseness it provides to anyone reading!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309339</commentid>
    <comment_count>4</comment_count>
      <attachid>310275</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-05-16 15:31:06 -0700</bug_when>
    <thetext>Comment on attachment 310275
Patch

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

&gt;&gt; Tools/Scripts/webkitpy/layout_tests/controllers/manager.py:238
&gt;&gt; +        needs_websockets = any(self._is_websocket_test(test) for test in tests_to_run)
&gt; 
&gt; I really like the use of `any` here, as well as the fact you used generators which means we get the best performance possible (other than doing all of this in a single loop). I also prefer this approach due to the readability and conciseness it provides to anyone reading!

Glad you like it, but I can&apos;t take credit for it.

This was moved from def _run_tests, which was committee here: &lt;https://trac.webkit.org/changeset/136730/webkit&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309366</commentid>
    <comment_count>5</comment_count>
      <attachid>310275</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-16 16:19:22 -0700</bug_when>
    <thetext>Comment on attachment 310275
Patch

Clearing flags on attachment: 310275

Committed r216955: &lt;http://trac.webkit.org/changeset/216955&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309367</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-16 16:19:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309835</commentid>
    <comment_count>7</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2017-05-17 14:50:40 -0700</bug_when>
    <thetext>Reverted r216955 for reason:

This change caused strange behavior with web-platform-tests locally and on EWS.

Committed r217003: &lt;http://trac.webkit.org/changeset/217003&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309838</commentid>
    <comment_count>8</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2017-05-17 14:54:31 -0700</bug_when>
    <thetext>(In reply to Ryan Haddad from comment #7)
&gt; Reverted r216955 for reason:
&gt; 
&gt; This change caused strange behavior with web-platform-tests locally and on
&gt; EWS.
&gt; 
&gt; Committed r217003: &lt;http://trac.webkit.org/changeset/217003&gt;

In this bug, ios-sim EWS passed, but after the change was landed the tests failed on the trunk ios-sim testers: https://bugs.webkit.org/show_bug.cgi?id=172196

Chris was seeing this locally as well. He made a change that should have caused an existing WPT test to fail and it did fail when it was first run. When the test was retried, it passed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309855</commentid>
    <comment_count>9</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-05-17 15:09:01 -0700</bug_when>
    <thetext>I think this should be pretty easy to fix.

The issue is that we shut down the servers before between our main test run and retrying, which we should not do.

There is a larger issue, however, which is unrelated to either this change or Chris&apos;s change: we treat missing files as if they have passed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309877</commentid>
    <comment_count>10</comment_count>
      <attachid>310453</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-05-17 15:47:16 -0700</bug_when>
    <thetext>Created attachment 310453
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1309878</commentid>
    <comment_count>11</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-05-17 15:50:03 -0700</bug_when>
    <thetext>attachment 310453 should fix the issues Ryan and Chris are talking about.  However, I&apos;d like to mark tests as failing if we cannot access testing assets before letting this land, so that these failures do not occur silently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310183</commentid>
    <comment_count>12</comment_count>
      <attachid>310453</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-05-18 12:01:08 -0700</bug_when>
    <thetext>Comment on attachment 310453
Patch

Was able to confirm that this will fix the problems Chris and Ryan were having.  The servers are not shut-down until retries are finished.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310318</commentid>
    <comment_count>13</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-05-18 15:57:31 -0700</bug_when>
    <thetext>https://bugs.webkit.org/show_bug.cgi?id=172322 will cause failures like the ones Chris and Ryan were seeing to be logged in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1310681</commentid>
    <comment_count>14</comment_count>
      <attachid>310678</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-05-19 11:35:51 -0700</bug_when>
    <thetext>Created attachment 310678
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1313781</commentid>
    <comment_count>15</comment_count>
      <attachid>311520</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-05-30 11:20:58 -0700</bug_when>
    <thetext>Created attachment 311520
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1313783</commentid>
    <comment_count>16</comment_count>
      <attachid>311520</attachid>
    <who name="Dean Johnson">dean_johnson</who>
    <bug_when>2017-05-30 11:26:57 -0700</bug_when>
    <thetext>Comment on attachment 311520
Patch

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

&gt; Tools/Scripts/webkitpy/port/base.py:980
&gt; +        return bool(self._web_platform_test_server)

We should do our best to check the system to see if the WPT server is running, as compared to relying on Python&apos;s object state. We want to absolutely ensure there is no way these return invalid information given how these servers are used, and the bug with servers not running resulting in all passing tests (not sure if that one was fixed yet).

Can you find a more concrete way to see if the server is running on the system?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1313797</commentid>
    <comment_count>17</comment_count>
      <attachid>311523</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-05-30 11:49:10 -0700</bug_when>
    <thetext>Created attachment 311523
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1313799</commentid>
    <comment_count>18</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-05-30 11:50:21 -0700</bug_when>
    <thetext>(In reply to Dean Johnson from comment #16)
&gt; Comment on attachment 311520 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=311520&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/port/base.py:980
&gt; &gt; +        return bool(self._web_platform_test_server)
&gt; 
&gt; We should do our best to check the system to see if the WPT server is
&gt; running, as compared to relying on Python&apos;s object state. We want to
&gt; absolutely ensure there is no way these return invalid information given how
&gt; these servers are used, and the bug with servers not running resulting in
&gt; all passing tests (not sure if that one was fixed yet).
&gt; 
&gt; Can you find a more concrete way to see if the server is running on the
&gt; system?

I was actually checking web-platform sockets twice.  I needed to check the web socket server.  attachment 311523 should work correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1313807</commentid>
    <comment_count>19</comment_count>
      <attachid>311526</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-05-30 12:07:28 -0700</bug_when>
    <thetext>Created attachment 311526
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1313866</commentid>
    <comment_count>20</comment_count>
      <attachid>311526</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-30 14:08:14 -0700</bug_when>
    <thetext>Comment on attachment 311526
Patch

Clearing flags on attachment: 311526

Committed r217572: &lt;http://trac.webkit.org/changeset/217572&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1313867</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-30 14:08:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395517</commentid>
    <comment_count>22</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-02-01 09:30:41 -0800</bug_when>
    <thetext>This patch (In reply to WebKit Commit Bot from comment #20)
&gt; Comment on attachment 311526 [details]
&gt; Patch
&gt; 
&gt; Clearing flags on attachment: 311526
&gt; 
&gt; Committed r217572: &lt;http://trac.webkit.org/changeset/217572&gt;

This change does more than start servers earlier when running run-webkit-tests. Following this change run-webkit-tests no longer tries to start up servers if servers are already running on the machine. This has the side benefit that it is possible to invoke run-webkit-tests while run-webkit-httpd is running and run-webkit-tests will use the servers started by run-webkit-httpd. Prior to this change, run-webkit-tests would stop the HTTP server started by run-webkit-httpd and die with an exception when trying to start the web socket servers due to the ports being in use.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395518</commentid>
    <comment_count>23</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-02-01 09:33:36 -0800</bug_when>
    <thetext>(In reply to WebKit Commit Bot from comment #20)
&gt; Comment on attachment 311526 [details]
&gt; Patch
&gt; 
&gt; Clearing flags on attachment: 311526
&gt; 
&gt; Committed r217572: &lt;http://trac.webkit.org/changeset/217572&gt;

This change caused run-webkit-tests to stop all servers twice and exit without printing a newline character following the printing of a log message telling a person that it was stopping the last server. See bug #182360.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1658149</commentid>
    <comment_count>24</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2020-06-01 18:32:08 -0700</bug_when>
    <thetext>(In reply to Daniel Bates from comment #22)
&gt; This patch (In reply to WebKit Commit Bot from comment #20)
&gt; &gt; Comment on attachment 311526 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; Clearing flags on attachment: 311526
&gt; &gt; 
&gt; &gt; Committed r217572: &lt;http://trac.webkit.org/changeset/217572&gt;
&gt; 
&gt; This change does more than start servers earlier when running
&gt; run-webkit-tests. Following this change run-webkit-tests no longer tries to
&gt; start up servers if servers are already running on the machine. This has the
&gt; side benefit that it is possible to invoke run-webkit-tests while
&gt; run-webkit-httpd is running and run-webkit-tests will use the servers
&gt; started by run-webkit-httpd. Prior to this change, run-webkit-tests would
&gt; stop the HTTP server started by run-webkit-httpd and die with an exception
&gt; when trying to start the web socket servers due to the ports being in use.

I think this new behavior is problematic and can cause hard-to-diagnose problems, for example if the user is running other services than the webkit-test-servers on this ports. I have opened bug 212622 for trying to fix this.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310275</attachid>
            <date>2017-05-16 11:03:08 -0700</date>
            <delta_ts>2017-05-17 15:47:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172176-20170516110307.patch</filename>
            <type>text/plain</type>
            <size>7051</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIxNjkzNSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIzIEBACisyMDE3LTA1LTE2ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweTogU3RhcnQgc2VydmVycyBiZWZvcmUgc2V0dGluZy11cCBm
b3IgdGVzdGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTcyMTc2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMjIyNTUzOD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPbi1kZXZpY2UgdGVzdGluZyBy
ZXF1aXJlcyB0aGF0IHNlcnZlcnMgYXJlIHN0YXJ0ZWQgYmVmb3JlIHBvcnRzIHNldC11cCB0aGVp
cgorICAgICAgICB0ZXN0IGVudmlyb25tZW50cy4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5lci5weToKKyAgICAg
ICAgKExheW91dFRlc3RSdW5uZXIuX19pbml0X18pOiBTdGFydCBzZXJ2ZXJzIHdoZW4gaW5pdGlh
bGl6aW5nIExheW91dFRlc3RSdW5uZXIuCisgICAgICAgIChMYXlvdXRUZXN0UnVubmVyLnJ1bl90
ZXN0cyk6IE1vdmUgdGhlIHN0YXJ0aW5nIG9mIHNlcnZlcnMgdG8gdGhlIGluaXRpYWxpemVyLgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFn
ZXIucHk6CisgICAgICAgIChNYW5hZ2VyLl9faW5pdF9fKTogRGVsYXkgY29uc3RydWN0aW9uIG9m
IHRoZSB0ZXN0IHJ1bm5lciB1bnRpbCB3ZSBjYW4gZGV0ZXJtaW5lCisgICAgICAgIGlmIHNlcnZl
cnMgbmVlZCB0byBiZSBzdGFydGVkLgorICAgICAgICAoTWFuYWdlci5ydW4pOiBEZXRlcm1pbmUg
aWYgc2VydmVycyBuZWVkIHRvIGJlIHN0YXJ0ZWQgYW5kIGNvbnN0cnVjdCB0aGUgdGVzdCBydW5u
ZXIuCisgICAgICAgIChNYW5hZ2VyLl9ydW5fdGVzdHMpOiBNb3ZlIHRoZSBkZXRlcm1pbmF0aW9u
IG9mIHNlcnZlcnMgdG8gcnVuIGludG8gTWFuYWdlci5ydW4uCisKIDIwMTctMDUtMTYgIEFkcmlh
biBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkLCBhZGRpbmcgbXlzZWxmIHRvIGNvbnRyaWJ1dG9ycy5qc29uCkluZGV4OiBUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5uZXIu
cHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29u
dHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyLnB5CShyZXZpc2lvbiAyMTY5MzMpCisrKyBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9y
dW5uZXIucHkJKHdvcmtpbmcgY29weSkKQEAgLTYxLDMzICs2MSwzNSBAQCBjbGFzcyBUZXN0UnVu
SW50ZXJydXB0ZWRFeGNlcHRpb24oRXhjZXB0CiAKIAogY2xhc3MgTGF5b3V0VGVzdFJ1bm5lcihv
YmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvcHRpb25zLCBwb3J0LCBwcmludGVyLCBy
ZXN1bHRzX2RpcmVjdG9yeSwgdGVzdF9pc19zbG93X2ZuKToKKyAgICBkZWYgX19pbml0X18oc2Vs
Ziwgb3B0aW9ucywgcG9ydCwgcHJpbnRlciwgcmVzdWx0c19kaXJlY3RvcnksIHRlc3RfaXNfc2xv
d19mbiwgbmVlZHNfaHR0cD1GYWxzZSwgbmVlZHNfd2Vic29ja2V0cz1GYWxzZSwgbmVlZHNfd2Vi
X3BsYXRmb3JtX3Rlc3Rfc2VydmVyPUZhbHNlKToKICAgICAgICAgc2VsZi5fb3B0aW9ucyA9IG9w
dGlvbnMKICAgICAgICAgc2VsZi5fcG9ydCA9IHBvcnQKICAgICAgICAgc2VsZi5fcHJpbnRlciA9
IHByaW50ZXIKICAgICAgICAgc2VsZi5fcmVzdWx0c19kaXJlY3RvcnkgPSByZXN1bHRzX2RpcmVj
dG9yeQogICAgICAgICBzZWxmLl90ZXN0X2lzX3Nsb3cgPSB0ZXN0X2lzX3Nsb3dfZm4KKyAgICAg
ICAgc2VsZi5fbmVlZHNfaHR0cCA9IG5lZWRzX2h0dHAKKyAgICAgICAgc2VsZi5fbmVlZHNfd2Vi
c29ja2V0cyA9IG5lZWRzX3dlYnNvY2tldHMKKyAgICAgICAgc2VsZi5fbmVlZHNfd2ViX3BsYXRm
b3JtX3Rlc3Rfc2VydmVyID0gbmVlZHNfd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyCisKICAgICAg
ICAgc2VsZi5fc2hhcmRlciA9IFNoYXJkZXIoc2VsZi5fcG9ydC5zcGxpdF90ZXN0KQogICAgICAg
ICBzZWxmLl9maWxlc3lzdGVtID0gc2VsZi5fcG9ydC5ob3N0LmZpbGVzeXN0ZW0KIAogICAgICAg
ICBzZWxmLl9leHBlY3RhdGlvbnMgPSBOb25lCiAgICAgICAgIHNlbGYuX3Rlc3RfaW5wdXRzID0g
W10KLSAgICAgICAgc2VsZi5fbmVlZHNfaHR0cCA9IE5vbmUKLSAgICAgICAgc2VsZi5fbmVlZHNf
d2Vic29ja2V0cyA9IE5vbmUKLSAgICAgICAgc2VsZi5fbmVlZHNfd2ViX3BsYXRmb3JtX3Rlc3Rf
c2VydmVyID0gTm9uZQogICAgICAgICBzZWxmLl9yZXRyeWluZyA9IEZhbHNlCiAgICAgICAgIHNl
bGYuX2N1cnJlbnRfcnVuX3Jlc3VsdHMgPSBOb25lCiAKKyAgICAgICAgaWYgKHNlbGYuX25lZWRz
X2h0dHAgYW5kIHNlbGYuX29wdGlvbnMuaHR0cCkgb3Igc2VsZi5fbmVlZHNfd2ViX3BsYXRmb3Jt
X3Rlc3Rfc2VydmVyOgorICAgICAgICAgICAgc2VsZi5zdGFydF9zZXJ2ZXJzKCkKKwogICAgIGRl
ZiBnZXRfd29ya2VyX2NvdW50KHNlbGYsIHRlc3RfaW5wdXRzLCBjaGlsZF9wcm9jZXNzX2NvdW50
KToKICAgICAgICAgYWxsX3NoYXJkcyA9IHNlbGYuX3NoYXJkZXIuc2hhcmRfdGVzdHModGVzdF9p
bnB1dHMsIGNoaWxkX3Byb2Nlc3NfY291bnQsIHNlbGYuX29wdGlvbnMuZnVsbHlfcGFyYWxsZWwp
CiAgICAgICAgIHJldHVybiBtaW4oY2hpbGRfcHJvY2Vzc19jb3VudCwgbGVuKGFsbF9zaGFyZHMp
KQogCi0gICAgZGVmIHJ1bl90ZXN0cyhzZWxmLCBleHBlY3RhdGlvbnMsIHRlc3RfaW5wdXRzLCB0
ZXN0c190b19za2lwLCBudW1fd29ya2VycywgbmVlZHNfaHR0cCwgbmVlZHNfd2Vic29ja2V0cywg
bmVlZHNfd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyLCByZXRyeWluZyk6CisgICAgZGVmIHJ1bl90
ZXN0cyhzZWxmLCBleHBlY3RhdGlvbnMsIHRlc3RfaW5wdXRzLCB0ZXN0c190b19za2lwLCBudW1f
d29ya2VycywgcmV0cnlpbmcpOgogICAgICAgICBzZWxmLl9leHBlY3RhdGlvbnMgPSBleHBlY3Rh
dGlvbnMKICAgICAgICAgc2VsZi5fdGVzdF9pbnB1dHMgPSB0ZXN0X2lucHV0cwotICAgICAgICBz
ZWxmLl9uZWVkc19odHRwID0gbmVlZHNfaHR0cAotICAgICAgICBzZWxmLl9uZWVkc193ZWJzb2Nr
ZXRzID0gbmVlZHNfd2Vic29ja2V0cwotICAgICAgICBzZWxmLl9uZWVkc193ZWJfcGxhdGZvcm1f
dGVzdF9zZXJ2ZXIgPSBuZWVkc193ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIKKwogICAgICAgICBz
ZWxmLl9yZXRyeWluZyA9IHJldHJ5aW5nCiAKICAgICAgICAgIyBGSVhNRTogcmVuYW1lIGFsbCB2
YXJpYWJsZXMgdG8gdGVzdF9ydW5fcmVzdWx0cyBvciBzb21lIHN1Y2ggLi4uCkBAIC0xMDcsOSAr
MTA5LDYgQEAgY2xhc3MgTGF5b3V0VGVzdFJ1bm5lcihvYmplY3QpOgogICAgICAgICBzZWxmLl9w
cmludGVyLndyaXRlX3VwZGF0ZSgnU2hhcmRpbmcgdGVzdHMgLi4uJykKICAgICAgICAgYWxsX3No
YXJkcyA9IHNlbGYuX3NoYXJkZXIuc2hhcmRfdGVzdHModGVzdF9pbnB1dHMsIGludChzZWxmLl9v
cHRpb25zLmNoaWxkX3Byb2Nlc3NlcyksIHNlbGYuX29wdGlvbnMuZnVsbHlfcGFyYWxsZWwpCiAK
LSAgICAgICAgaWYgKHNlbGYuX25lZWRzX2h0dHAgYW5kIHNlbGYuX29wdGlvbnMuaHR0cCkgb3Ig
c2VsZi5fbmVlZHNfd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyOgotICAgICAgICAgICAgc2VsZi5z
dGFydF9zZXJ2ZXJzKCkKLQogICAgICAgICBzZWxmLl9wcmludGVyLnByaW50X3dvcmtlcnNfYW5k
X3NoYXJkcyhudW1fd29ya2VycywgbGVuKGFsbF9zaGFyZHMpKQogCiAgICAgICAgIGlmIHNlbGYu
X29wdGlvbnMuZHJ5X3J1bjoKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weQkocmV2aXNpb24gMjE2
OTMzKQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMv
bWFuYWdlci5weQkod29ya2luZyBjb3B5KQpAQCAtODUsNyArODUsNyBAQCBjbGFzcyBNYW5hZ2Vy
KG9iamVjdCk6CiAgICAgICAgIHNlbGYuTEFZT1VUX1RFU1RTX0RJUkVDVE9SWSA9ICdMYXlvdXRU
ZXN0cycKICAgICAgICAgc2VsZi5fcmVzdWx0c19kaXJlY3RvcnkgPSBzZWxmLl9wb3J0LnJlc3Vs
dHNfZGlyZWN0b3J5KCkKICAgICAgICAgc2VsZi5fZmluZGVyID0gTGF5b3V0VGVzdEZpbmRlcihz
ZWxmLl9wb3J0LCBzZWxmLl9vcHRpb25zKQotICAgICAgICBzZWxmLl9ydW5uZXIgPSBMYXlvdXRU
ZXN0UnVubmVyKHNlbGYuX29wdGlvbnMsIHNlbGYuX3BvcnQsIHNlbGYuX3ByaW50ZXIsIHNlbGYu
X3Jlc3VsdHNfZGlyZWN0b3J5LCBzZWxmLl90ZXN0X2lzX3Nsb3cpCisgICAgICAgIHNlbGYuX3J1
bm5lciA9IE5vbmUKIAogICAgICAgICB0ZXN0X29wdGlvbnNfanNvbl9wYXRoID0gc2VsZi5fcG9y
dC5wYXRoX2Zyb21fd2Via2l0X2Jhc2Uoc2VsZi5MQVlPVVRfVEVTVFNfRElSRUNUT1JZLCAidGVz
dHMtb3B0aW9ucy5qc29uIikKICAgICAgICAgc2VsZi5fdGVzdHNfb3B0aW9ucyA9IGpzb24ubG9h
ZHMoc2VsZi5fZmlsZXN5c3RlbS5yZWFkX3RleHRfZmlsZSh0ZXN0X29wdGlvbnNfanNvbl9wYXRo
KSkgaWYgc2VsZi5fZmlsZXN5c3RlbS5leGlzdHModGVzdF9vcHRpb25zX2pzb25fcGF0aCkgZWxz
ZSB7fQpAQCAtMjMzLDYgKzIzMywxMiBAQCBjbGFzcyBNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAg
IHJldHJ5X3Jlc3VsdHMgPSBOb25lCiAgICAgICAgIGVuYWJsZWRfcGl4ZWxfdGVzdHNfaW5fcmV0
cnkgPSBGYWxzZQogCisgICAgICAgIG5lZWRzX2h0dHAgPSBhbnkoKHNlbGYuX2lzX2h0dHBfdGVz
dCh0ZXN0KSBhbmQgbm90IHNlbGYuX25lZWRzX3dlYl9wbGF0Zm9ybV90ZXN0KHRlc3QpKSBmb3Ig
dGVzdCBpbiB0ZXN0c190b19ydW4pCisgICAgICAgIG5lZWRzX3dlYl9wbGF0Zm9ybV90ZXN0X3Nl
cnZlciA9IGFueShzZWxmLl9uZWVkc193ZWJfcGxhdGZvcm1fdGVzdCh0ZXN0KSBmb3IgdGVzdCBp
biB0ZXN0c190b19ydW4pCisgICAgICAgIG5lZWRzX3dlYnNvY2tldHMgPSBhbnkoc2VsZi5faXNf
d2Vic29ja2V0X3Rlc3QodGVzdCkgZm9yIHRlc3QgaW4gdGVzdHNfdG9fcnVuKQorICAgICAgICBz
ZWxmLl9ydW5uZXIgPSBMYXlvdXRUZXN0UnVubmVyKHNlbGYuX29wdGlvbnMsIHNlbGYuX3BvcnQs
IHNlbGYuX3ByaW50ZXIsIHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5LCBzZWxmLl90ZXN0X2lzX3Ns
b3csCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmVlZHNfaHR0cD1u
ZWVkc19odHRwLCBuZWVkc193ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXI9bmVlZHNfd2ViX3BsYXRm
b3JtX3Rlc3Rfc2VydmVyLCBuZWVkc193ZWJzb2NrZXRzPW5lZWRzX3dlYnNvY2tldHMpCisKICAg
ICAgICAgaWYgZGVmYXVsdF9kZXZpY2VfdGVzdHM6CiAgICAgICAgICAgICBfbG9nLmluZm8oJycp
CiAgICAgICAgICAgICBfbG9nLmluZm8oIlJ1bm5pbmcgJXMiLCBwbHVyYWxpemUobGVuKHRlc3Rz
X3RvX3J1biksICJ0ZXN0IikpCkBAIC0zMTgsMTMgKzMyNCw5IEBAIGNsYXNzIE1hbmFnZXIob2Jq
ZWN0KToKICAgICAgICAgcmV0dXJuIHRlc3RfcnVuX3Jlc3VsdHMuUnVuRGV0YWlscyhleGl0X2Nv
ZGUsIHN1bW1hcml6ZWRfcmVzdWx0cywgaW5pdGlhbF9yZXN1bHRzLCByZXRyeV9yZXN1bHRzLCBl
bmFibGVkX3BpeGVsX3Rlc3RzX2luX3JldHJ5KQogCiAgICAgZGVmIF9ydW5fdGVzdHMoc2VsZiwg
dGVzdHNfdG9fcnVuLCB0ZXN0c190b19za2lwLCByZXBlYXRfZWFjaCwgaXRlcmF0aW9ucywgbnVt
X3dvcmtlcnMsIHJldHJ5aW5nKToKLSAgICAgICAgbmVlZHNfaHR0cCA9IGFueSgoc2VsZi5faXNf
aHR0cF90ZXN0KHRlc3QpIGFuZCBub3Qgc2VsZi5fbmVlZHNfd2ViX3BsYXRmb3JtX3Rlc3QodGVz
dCkpIGZvciB0ZXN0IGluIHRlc3RzX3RvX3J1bikKLSAgICAgICAgbmVlZHNfd2ViX3BsYXRmb3Jt
X3Rlc3Rfc2VydmVyID0gYW55KHNlbGYuX25lZWRzX3dlYl9wbGF0Zm9ybV90ZXN0KHRlc3QpIGZv
ciB0ZXN0IGluIHRlc3RzX3RvX3J1bikKLSAgICAgICAgbmVlZHNfd2Vic29ja2V0cyA9IGFueShz
ZWxmLl9pc193ZWJzb2NrZXRfdGVzdCh0ZXN0KSBmb3IgdGVzdCBpbiB0ZXN0c190b19ydW4pCi0K
ICAgICAgICAgdGVzdF9pbnB1dHMgPSBzZWxmLl9nZXRfdGVzdF9pbnB1dHModGVzdHNfdG9fcnVu
LCByZXBlYXRfZWFjaCwgaXRlcmF0aW9ucykKIAotICAgICAgICByZXR1cm4gc2VsZi5fcnVubmVy
LnJ1bl90ZXN0cyhzZWxmLl9leHBlY3RhdGlvbnMsIHRlc3RfaW5wdXRzLCB0ZXN0c190b19za2lw
LCBudW1fd29ya2VycywgbmVlZHNfaHR0cCwgbmVlZHNfd2Vic29ja2V0cywgbmVlZHNfd2ViX3Bs
YXRmb3JtX3Rlc3Rfc2VydmVyLCByZXRyeWluZykKKyAgICAgICAgcmV0dXJuIHNlbGYuX3J1bm5l
ci5ydW5fdGVzdHMoc2VsZi5fZXhwZWN0YXRpb25zLCB0ZXN0X2lucHV0cywgdGVzdHNfdG9fc2tp
cCwgbnVtX3dvcmtlcnMsIHJldHJ5aW5nKQogCiAgICAgZGVmIF9jbGVhbl91cF9ydW4oc2VsZik6
CiAgICAgICAgIF9sb2cuZGVidWcoIkZsdXNoaW5nIHN0ZG91dCIpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310453</attachid>
            <date>2017-05-17 15:47:16 -0700</date>
            <delta_ts>2017-05-19 11:35:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172176-20170517154720.patch</filename>
            <type>text/plain</type>
            <size>9455</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIxNzAwNikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI4IEBACisyMDE3LTA1LTE3ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweTogU3RhcnQgc2VydmVycyBiZWZvcmUgc2V0dGluZy11cCBm
b3IgdGVzdGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTcyMTc2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMjIyNTUzOD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPbi1kZXZpY2UgdGVzdGluZyBy
ZXF1aXJlcyB0aGF0IHNlcnZlcnMgYXJlIHN0YXJ0ZWQgYmVmb3JlIHBvcnRzIHNldC11cCB0aGVp
cgorICAgICAgICB0ZXN0IGVudmlyb25tZW50cy4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5lci5weToKKyAgICAg
ICAgKExheW91dFRlc3RSdW5uZXIuX19pbml0X18pOiBTdGFydCBzZXJ2ZXJzIHdoZW4gaW5pdGlh
bGl6aW5nIExheW91dFRlc3RSdW5uZXIuCisgICAgICAgIFNlcnZlcnMgYXJlIHVuY29uZGl0aW9u
YWxseSBzdG9wcGVkIG9uIGV4aXQuCisgICAgICAgIChMYXlvdXRUZXN0UnVubmVyLnJ1bl90ZXN0
cyk6IE1vdmUgdGhlIHN0YXJ0aW5nIG9mIHNlcnZlcnMgdG8gdGhlIGluaXRpYWxpemVyLiBUaGUK
KyAgICAgICAgTWFuYWdlciBub3cgc3RvcHMgc2VydmVycy4KKyAgICAgICAgKExheW91dFRlc3RS
dW5uZXIuc3RhcnRfc2VydmVycyk6IFNldCBmbGFnIHRvIGluZGljYXRlIHNlcnZlcnMgYXJlIHJ1
bm5pbmcuCisgICAgICAgIChMYXlvdXRUZXN0UnVubmVyLnN0b3Bfc2VydmVycyk6IENoZWNrIGZs
YWcsIG9ubHkgc2h1dGRvd24gc2VydmVycyBpZiB0aGV5IGFyZSBzaHV0ZG93bi4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyLnB5Ogor
ICAgICAgICAoTWFuYWdlci5fX2luaXRfXyk6IERlbGF5IGNvbnN0cnVjdGlvbiBvZiB0aGUgdGVz
dCBydW5uZXIgdW50aWwgd2UgY2FuIGRldGVybWluZQorICAgICAgICBpZiBzZXJ2ZXJzIG5lZWQg
dG8gYmUgc3RhcnRlZC4KKyAgICAgICAgKE1hbmFnZXIucnVuKTogRGV0ZXJtaW5lIGlmIHNlcnZl
cnMgbmVlZCB0byBiZSBzdGFydGVkIGFuZCBjb25zdHJ1Y3QgdGhlIHRlc3QgcnVubmVyLgorICAg
ICAgICBTaHV0IHNlcnZlcnMgZG93biB3aGVuIHRoZSB0ZXN0IHJ1biBpcyBmaW5pc2hlZC4KKyAg
ICAgICAgKE1hbmFnZXIuX3J1bl90ZXN0cyk6IE1vdmUgdGhlIGRldGVybWluYXRpb24gb2Ygc2Vy
dmVycyB0byBydW4gaW50byBNYW5hZ2VyLnJ1bi4KKwogMjAxNy0wNS0xNyAgUnlhbiBIYWRkYWQg
IDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91
dCByMjE2OTU1LgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29u
dHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5lci5w
eQkocmV2aXNpb24gMjE3MDA2KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0y
Niw2ICsyNiw3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCitpbXBvcnQgYXRl
eGl0CiBpbXBvcnQgbG9nZ2luZwogaW1wb3J0IG1hdGgKIGltcG9ydCB0aHJlYWRpbmcKQEAgLTYx
LDMzICs2MiwzNyBAQCBjbGFzcyBUZXN0UnVuSW50ZXJydXB0ZWRFeGNlcHRpb24oRXhjZXB0CiAK
IAogY2xhc3MgTGF5b3V0VGVzdFJ1bm5lcihvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBvcHRpb25zLCBwb3J0LCBwcmludGVyLCByZXN1bHRzX2RpcmVjdG9yeSwgdGVzdF9pc19zbG93
X2ZuKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgb3B0aW9ucywgcG9ydCwgcHJpbnRlciwgcmVz
dWx0c19kaXJlY3RvcnksIHRlc3RfaXNfc2xvd19mbiwgbmVlZHNfaHR0cD1GYWxzZSwgbmVlZHNf
d2Vic29ja2V0cz1GYWxzZSwgbmVlZHNfd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyPUZhbHNlKToK
ICAgICAgICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMKICAgICAgICAgc2VsZi5fcG9ydCA9IHBv
cnQKICAgICAgICAgc2VsZi5fcHJpbnRlciA9IHByaW50ZXIKICAgICAgICAgc2VsZi5fcmVzdWx0
c19kaXJlY3RvcnkgPSByZXN1bHRzX2RpcmVjdG9yeQogICAgICAgICBzZWxmLl90ZXN0X2lzX3Ns
b3cgPSB0ZXN0X2lzX3Nsb3dfZm4KKyAgICAgICAgc2VsZi5fbmVlZHNfaHR0cCA9IG5lZWRzX2h0
dHAKKyAgICAgICAgc2VsZi5fbmVlZHNfd2Vic29ja2V0cyA9IG5lZWRzX3dlYnNvY2tldHMKKyAg
ICAgICAgc2VsZi5fbmVlZHNfd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyID0gbmVlZHNfd2ViX3Bs
YXRmb3JtX3Rlc3Rfc2VydmVyCisKICAgICAgICAgc2VsZi5fc2hhcmRlciA9IFNoYXJkZXIoc2Vs
Zi5fcG9ydC5zcGxpdF90ZXN0KQogICAgICAgICBzZWxmLl9maWxlc3lzdGVtID0gc2VsZi5fcG9y
dC5ob3N0LmZpbGVzeXN0ZW0KIAogICAgICAgICBzZWxmLl9leHBlY3RhdGlvbnMgPSBOb25lCiAg
ICAgICAgIHNlbGYuX3Rlc3RfaW5wdXRzID0gW10KLSAgICAgICAgc2VsZi5fbmVlZHNfaHR0cCA9
IE5vbmUKLSAgICAgICAgc2VsZi5fbmVlZHNfd2Vic29ja2V0cyA9IE5vbmUKLSAgICAgICAgc2Vs
Zi5fbmVlZHNfd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyID0gTm9uZQogICAgICAgICBzZWxmLl9y
ZXRyeWluZyA9IEZhbHNlCiAgICAgICAgIHNlbGYuX2N1cnJlbnRfcnVuX3Jlc3VsdHMgPSBOb25l
CiAKKyAgICAgICAgc2VsZi5fc2VydmVyc19ydW5uaW5nX2ZsYWcgPSBGYWxzZQorICAgICAgICBp
ZiAoc2VsZi5fbmVlZHNfaHR0cCBhbmQgc2VsZi5fb3B0aW9ucy5odHRwKSBvciBzZWxmLl9uZWVk
c193ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXI6CisgICAgICAgICAgICBzZWxmLnN0YXJ0X3NlcnZl
cnMoKQorICAgICAgICAgICAgYXRleGl0LnJlZ2lzdGVyKGxhbWJkYTogc2VsZi5zdG9wX3NlcnZl
cnMoKSkKKwogICAgIGRlZiBnZXRfd29ya2VyX2NvdW50KHNlbGYsIHRlc3RfaW5wdXRzLCBjaGls
ZF9wcm9jZXNzX2NvdW50KToKICAgICAgICAgYWxsX3NoYXJkcyA9IHNlbGYuX3NoYXJkZXIuc2hh
cmRfdGVzdHModGVzdF9pbnB1dHMsIGNoaWxkX3Byb2Nlc3NfY291bnQsIHNlbGYuX29wdGlvbnMu
ZnVsbHlfcGFyYWxsZWwpCiAgICAgICAgIHJldHVybiBtaW4oY2hpbGRfcHJvY2Vzc19jb3VudCwg
bGVuKGFsbF9zaGFyZHMpKQogCi0gICAgZGVmIHJ1bl90ZXN0cyhzZWxmLCBleHBlY3RhdGlvbnMs
IHRlc3RfaW5wdXRzLCB0ZXN0c190b19za2lwLCBudW1fd29ya2VycywgbmVlZHNfaHR0cCwgbmVl
ZHNfd2Vic29ja2V0cywgbmVlZHNfd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyLCByZXRyeWluZyk6
CisgICAgZGVmIHJ1bl90ZXN0cyhzZWxmLCBleHBlY3RhdGlvbnMsIHRlc3RfaW5wdXRzLCB0ZXN0
c190b19za2lwLCBudW1fd29ya2VycywgcmV0cnlpbmcpOgogICAgICAgICBzZWxmLl9leHBlY3Rh
dGlvbnMgPSBleHBlY3RhdGlvbnMKICAgICAgICAgc2VsZi5fdGVzdF9pbnB1dHMgPSB0ZXN0X2lu
cHV0cwotICAgICAgICBzZWxmLl9uZWVkc19odHRwID0gbmVlZHNfaHR0cAotICAgICAgICBzZWxm
Ll9uZWVkc193ZWJzb2NrZXRzID0gbmVlZHNfd2Vic29ja2V0cwotICAgICAgICBzZWxmLl9uZWVk
c193ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIgPSBuZWVkc193ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2
ZXIKKwogICAgICAgICBzZWxmLl9yZXRyeWluZyA9IHJldHJ5aW5nCiAKICAgICAgICAgIyBGSVhN
RTogcmVuYW1lIGFsbCB2YXJpYWJsZXMgdG8gdGVzdF9ydW5fcmVzdWx0cyBvciBzb21lIHN1Y2gg
Li4uCkBAIC0xMDcsOSArMTEyLDYgQEAgY2xhc3MgTGF5b3V0VGVzdFJ1bm5lcihvYmplY3QpOgog
ICAgICAgICBzZWxmLl9wcmludGVyLndyaXRlX3VwZGF0ZSgnU2hhcmRpbmcgdGVzdHMgLi4uJykK
ICAgICAgICAgYWxsX3NoYXJkcyA9IHNlbGYuX3NoYXJkZXIuc2hhcmRfdGVzdHModGVzdF9pbnB1
dHMsIGludChzZWxmLl9vcHRpb25zLmNoaWxkX3Byb2Nlc3NlcyksIHNlbGYuX29wdGlvbnMuZnVs
bHlfcGFyYWxsZWwpCiAKLSAgICAgICAgaWYgKHNlbGYuX25lZWRzX2h0dHAgYW5kIHNlbGYuX29w
dGlvbnMuaHR0cCkgb3Igc2VsZi5fbmVlZHNfd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyOgotICAg
ICAgICAgICAgc2VsZi5zdGFydF9zZXJ2ZXJzKCkKLQogICAgICAgICBzZWxmLl9wcmludGVyLnBy
aW50X3dvcmtlcnNfYW5kX3NoYXJkcyhudW1fd29ya2VycywgbGVuKGFsbF9zaGFyZHMpKQogCiAg
ICAgICAgIGlmIHNlbGYuX29wdGlvbnMuZHJ5X3J1bjoKQEAgLTEzMCw4ICsxMzIsNiBAQCBjbGFz
cyBMYXlvdXRUZXN0UnVubmVyKG9iamVjdCk6CiAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6
CiAgICAgICAgICAgICBfbG9nLmRlYnVnKCclcygiJXMiKSByYWlzZWQsIGV4aXRpbmcnICUgKGUu
X19jbGFzc19fLl9fbmFtZV9fLCBzdHIoZSkpKQogICAgICAgICAgICAgcmFpc2UKLSAgICAgICAg
ZmluYWxseToKLSAgICAgICAgICAgIHNlbGYuc3RvcF9zZXJ2ZXJzKCkKIAogICAgICAgICByZXR1
cm4gcnVuX3Jlc3VsdHMKIApAQCAtMTg4LDYgKzE4OCw3IEBAIGNsYXNzIExheW91dFRlc3RSdW5u
ZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5faW50ZXJydXB0X2lmX2F0X2ZhaWx1cmVfbGltaXRz
KHJ1bl9yZXN1bHRzKQogCiAgICAgZGVmIHN0YXJ0X3NlcnZlcnMoc2VsZik6CisgICAgICAgIHNl
bGYuX3NlcnZlcnNfcnVubmluZ19mbGFnID0gVHJ1ZQogICAgICAgICBpZiBzZWxmLl9uZWVkc19o
dHRwOgogICAgICAgICAgICAgc2VsZi5fcHJpbnRlci53cml0ZV91cGRhdGUoJ1N0YXJ0aW5nIEhU
VFAgc2VydmVyIC4uLicpCiAgICAgICAgICAgICBzZWxmLl9wb3J0LnN0YXJ0X2h0dHBfc2VydmVy
KCkKQEAgLTE5OSw2ICsyMDAsOSBAQCBjbGFzcyBMYXlvdXRUZXN0UnVubmVyKG9iamVjdCk6CiAg
ICAgICAgICAgICBzZWxmLl9wb3J0LnN0YXJ0X3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlcigpCiAK
ICAgICBkZWYgc3RvcF9zZXJ2ZXJzKHNlbGYpOgorICAgICAgICBpZiBub3Qgc2VsZi5fc2VydmVy
c19ydW5uaW5nX2ZsYWc6CisgICAgICAgICAgICByZXR1cm4KKwogICAgICAgICBpZiBzZWxmLl9u
ZWVkc19odHRwOgogICAgICAgICAgICAgc2VsZi5fcHJpbnRlci53cml0ZV91cGRhdGUoJ1N0b3Bw
aW5nIEhUVFAgc2VydmVyIC4uLicpCiAgICAgICAgICAgICBzZWxmLl9wb3J0LnN0b3BfaHR0cF9z
ZXJ2ZXIoKQpAQCAtMjA4LDYgKzIxMiw3IEBAIGNsYXNzIExheW91dFRlc3RSdW5uZXIob2JqZWN0
KToKICAgICAgICAgaWYgc2VsZi5fbmVlZHNfd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyOgogICAg
ICAgICAgICAgc2VsZi5fcHJpbnRlci53cml0ZV91cGRhdGUoJ1N0b3BwaW5nIFdlYiBQbGF0Zm9y
bSBUZXN0IHNlcnZlciAuLi4nKQogICAgICAgICAgICAgc2VsZi5fcG9ydC5zdG9wX3dlYl9wbGF0
Zm9ybV90ZXN0X3NlcnZlcigpCisgICAgICAgIHNlbGYuX3NlcnZlcnNfcnVubmluZ19mbGFnID0g
RmFsc2UKIAogICAgIGRlZiBoYW5kbGUoc2VsZiwgbmFtZSwgc291cmNlLCAqYXJncyk6CiAgICAg
ICAgIG1ldGhvZCA9IGdldGF0dHIoc2VsZiwgJ19oYW5kbGVfJyArIG5hbWUpCkluZGV4OiBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyLnB5Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xs
ZXJzL21hbmFnZXIucHkJKHJldmlzaW9uIDIxNzAwNikKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHkJKHdvcmtpbmcgY29weSkKQEAg
LTg1LDcgKzg1LDcgQEAgY2xhc3MgTWFuYWdlcihvYmplY3QpOgogICAgICAgICBzZWxmLkxBWU9V
VF9URVNUU19ESVJFQ1RPUlkgPSAnTGF5b3V0VGVzdHMnCiAgICAgICAgIHNlbGYuX3Jlc3VsdHNf
ZGlyZWN0b3J5ID0gc2VsZi5fcG9ydC5yZXN1bHRzX2RpcmVjdG9yeSgpCiAgICAgICAgIHNlbGYu
X2ZpbmRlciA9IExheW91dFRlc3RGaW5kZXIoc2VsZi5fcG9ydCwgc2VsZi5fb3B0aW9ucykKLSAg
ICAgICAgc2VsZi5fcnVubmVyID0gTGF5b3V0VGVzdFJ1bm5lcihzZWxmLl9vcHRpb25zLCBzZWxm
Ll9wb3J0LCBzZWxmLl9wcmludGVyLCBzZWxmLl9yZXN1bHRzX2RpcmVjdG9yeSwgc2VsZi5fdGVz
dF9pc19zbG93KQorICAgICAgICBzZWxmLl9ydW5uZXIgPSBOb25lCiAKICAgICAgICAgdGVzdF9v
cHRpb25zX2pzb25fcGF0aCA9IHNlbGYuX3BvcnQucGF0aF9mcm9tX3dlYmtpdF9iYXNlKHNlbGYu
TEFZT1VUX1RFU1RTX0RJUkVDVE9SWSwgInRlc3RzLW9wdGlvbnMuanNvbiIpCiAgICAgICAgIHNl
bGYuX3Rlc3RzX29wdGlvbnMgPSBqc29uLmxvYWRzKHNlbGYuX2ZpbGVzeXN0ZW0ucmVhZF90ZXh0
X2ZpbGUodGVzdF9vcHRpb25zX2pzb25fcGF0aCkpIGlmIHNlbGYuX2ZpbGVzeXN0ZW0uZXhpc3Rz
KHRlc3Rfb3B0aW9uc19qc29uX3BhdGgpIGVsc2Uge30KQEAgLTIzMyw2ICsyMzMsMTIgQEAgY2xh
c3MgTWFuYWdlcihvYmplY3QpOgogICAgICAgICByZXRyeV9yZXN1bHRzID0gTm9uZQogICAgICAg
ICBlbmFibGVkX3BpeGVsX3Rlc3RzX2luX3JldHJ5ID0gRmFsc2UKIAorICAgICAgICBuZWVkc19o
dHRwID0gYW55KChzZWxmLl9pc19odHRwX3Rlc3QodGVzdCkgYW5kIG5vdCBzZWxmLl9uZWVkc193
ZWJfcGxhdGZvcm1fdGVzdCh0ZXN0KSkgZm9yIHRlc3QgaW4gdGVzdHNfdG9fcnVuKQorICAgICAg
ICBuZWVkc193ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIgPSBhbnkoc2VsZi5fbmVlZHNfd2ViX3Bs
YXRmb3JtX3Rlc3QodGVzdCkgZm9yIHRlc3QgaW4gdGVzdHNfdG9fcnVuKQorICAgICAgICBuZWVk
c193ZWJzb2NrZXRzID0gYW55KHNlbGYuX2lzX3dlYnNvY2tldF90ZXN0KHRlc3QpIGZvciB0ZXN0
IGluIHRlc3RzX3RvX3J1bikKKyAgICAgICAgc2VsZi5fcnVubmVyID0gTGF5b3V0VGVzdFJ1bm5l
cihzZWxmLl9vcHRpb25zLCBzZWxmLl9wb3J0LCBzZWxmLl9wcmludGVyLCBzZWxmLl9yZXN1bHRz
X2RpcmVjdG9yeSwgc2VsZi5fdGVzdF9pc19zbG93LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG5lZWRzX2h0dHA9bmVlZHNfaHR0cCwgbmVlZHNfd2ViX3BsYXRmb3Jt
X3Rlc3Rfc2VydmVyPW5lZWRzX3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlciwgbmVlZHNfd2Vic29j
a2V0cz1uZWVkc193ZWJzb2NrZXRzKQorCiAgICAgICAgIGlmIGRlZmF1bHRfZGV2aWNlX3Rlc3Rz
OgogICAgICAgICAgICAgX2xvZy5pbmZvKCcnKQogICAgICAgICAgICAgX2xvZy5pbmZvKCJSdW5u
aW5nICVzIiwgcGx1cmFsaXplKGxlbih0ZXN0c190b19ydW4pLCAidGVzdCIpKQpAQCAtMjU3LDYg
KzI2Myw3IEBAIGNsYXNzIE1hbmFnZXIob2JqZWN0KToKICAgICAgICAgICAgICAgICByZXRyeV9y
ZXN1bHRzID0gcmV0cnlfcmVzdWx0cy5tZXJnZShkZXZpY2VfcmV0cnlfcmVzdWx0cykgaWYgcmV0
cnlfcmVzdWx0cyBlbHNlIGRldmljZV9yZXRyeV9yZXN1bHRzCiAgICAgICAgICAgICAgICAgZW5h
YmxlZF9waXhlbF90ZXN0c19pbl9yZXRyeSB8PSBkZXZpY2VfZW5hYmxlZF9waXhlbF90ZXN0c19p
bl9yZXRyeQogCisgICAgICAgIHNlbGYuX3J1bm5lci5zdG9wX3NlcnZlcnMoKQogICAgICAgICBl
bmRfdGltZSA9IHRpbWUudGltZSgpCiAgICAgICAgIHJldHVybiBzZWxmLl9lbmRfdGVzdF9ydW4o
c3RhcnRfdGltZSwgZW5kX3RpbWUsIGluaXRpYWxfcmVzdWx0cywgcmV0cnlfcmVzdWx0cywgZW5h
YmxlZF9waXhlbF90ZXN0c19pbl9yZXRyeSkKIApAQCAtMzE4LDEzICszMjUsOSBAQCBjbGFzcyBN
YW5hZ2VyKG9iamVjdCk6CiAgICAgICAgIHJldHVybiB0ZXN0X3J1bl9yZXN1bHRzLlJ1bkRldGFp
bHMoZXhpdF9jb2RlLCBzdW1tYXJpemVkX3Jlc3VsdHMsIGluaXRpYWxfcmVzdWx0cywgcmV0cnlf
cmVzdWx0cywgZW5hYmxlZF9waXhlbF90ZXN0c19pbl9yZXRyeSkKIAogICAgIGRlZiBfcnVuX3Rl
c3RzKHNlbGYsIHRlc3RzX3RvX3J1biwgdGVzdHNfdG9fc2tpcCwgcmVwZWF0X2VhY2gsIGl0ZXJh
dGlvbnMsIG51bV93b3JrZXJzLCByZXRyeWluZyk6Ci0gICAgICAgIG5lZWRzX2h0dHAgPSBhbnko
KHNlbGYuX2lzX2h0dHBfdGVzdCh0ZXN0KSBhbmQgbm90IHNlbGYuX25lZWRzX3dlYl9wbGF0Zm9y
bV90ZXN0KHRlc3QpKSBmb3IgdGVzdCBpbiB0ZXN0c190b19ydW4pCi0gICAgICAgIG5lZWRzX3dl
Yl9wbGF0Zm9ybV90ZXN0X3NlcnZlciA9IGFueShzZWxmLl9uZWVkc193ZWJfcGxhdGZvcm1fdGVz
dCh0ZXN0KSBmb3IgdGVzdCBpbiB0ZXN0c190b19ydW4pCi0gICAgICAgIG5lZWRzX3dlYnNvY2tl
dHMgPSBhbnkoc2VsZi5faXNfd2Vic29ja2V0X3Rlc3QodGVzdCkgZm9yIHRlc3QgaW4gdGVzdHNf
dG9fcnVuKQotCiAgICAgICAgIHRlc3RfaW5wdXRzID0gc2VsZi5fZ2V0X3Rlc3RfaW5wdXRzKHRl
c3RzX3RvX3J1biwgcmVwZWF0X2VhY2gsIGl0ZXJhdGlvbnMpCiAKLSAgICAgICAgcmV0dXJuIHNl
bGYuX3J1bm5lci5ydW5fdGVzdHMoc2VsZi5fZXhwZWN0YXRpb25zLCB0ZXN0X2lucHV0cywgdGVz
dHNfdG9fc2tpcCwgbnVtX3dvcmtlcnMsIG5lZWRzX2h0dHAsIG5lZWRzX3dlYnNvY2tldHMsIG5l
ZWRzX3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlciwgcmV0cnlpbmcpCisgICAgICAgIHJldHVybiBz
ZWxmLl9ydW5uZXIucnVuX3Rlc3RzKHNlbGYuX2V4cGVjdGF0aW9ucywgdGVzdF9pbnB1dHMsIHRl
c3RzX3RvX3NraXAsIG51bV93b3JrZXJzLCByZXRyeWluZykKIAogICAgIGRlZiBfY2xlYW5fdXBf
cnVuKHNlbGYpOgogICAgICAgICBfbG9nLmRlYnVnKCJGbHVzaGluZyBzdGRvdXQiKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>310678</attachid>
            <date>2017-05-19 11:35:51 -0700</date>
            <delta_ts>2017-05-30 11:20:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172176-20170519113551.patch</filename>
            <type>text/plain</type>
            <size>9480</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIxNzEzNCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI4IEBACisyMDE3LTA1LTE5ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweTogU3RhcnQgc2VydmVycyBiZWZvcmUgc2V0dGluZy11cCBm
b3IgdGVzdGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTcyMTc2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMjIyNTUzOD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPbi1kZXZpY2UgdGVzdGluZyBy
ZXF1aXJlcyB0aGF0IHNlcnZlcnMgYXJlIHN0YXJ0ZWQgYmVmb3JlIHBvcnRzIHNldC11cCB0aGVp
cgorICAgICAgICB0ZXN0IGVudmlyb25tZW50cy4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5lci5weToKKyAgICAg
ICAgKExheW91dFRlc3RSdW5uZXIuX19pbml0X18pOiBTdGFydCBzZXJ2ZXJzIHdoZW4gaW5pdGlh
bGl6aW5nIExheW91dFRlc3RSdW5uZXIuCisgICAgICAgIFNlcnZlcnMgYXJlIHVuY29uZGl0aW9u
YWxseSBzdG9wcGVkIG9uIGV4aXQuCisgICAgICAgIChMYXlvdXRUZXN0UnVubmVyLnJ1bl90ZXN0
cyk6IE1vdmUgdGhlIHN0YXJ0aW5nIG9mIHNlcnZlcnMgdG8gdGhlIGluaXRpYWxpemVyLiBUaGUK
KyAgICAgICAgTWFuYWdlciBub3cgc3RvcHMgc2VydmVycy4KKyAgICAgICAgKExheW91dFRlc3RS
dW5uZXIuc3RhcnRfc2VydmVycyk6IFNldCBmbGFnIHRvIGluZGljYXRlIHNlcnZlcnMgYXJlIHJ1
bm5pbmcuCisgICAgICAgIChMYXlvdXRUZXN0UnVubmVyLnN0b3Bfc2VydmVycyk6IENoZWNrIGZs
YWcsIG9ubHkgc2h1dGRvd24gc2VydmVycyBpZiB0aGV5IGFyZSBzaHV0ZG93bi4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyLnB5Ogor
ICAgICAgICAoTWFuYWdlci5fX2luaXRfXyk6IERlbGF5IGNvbnN0cnVjdGlvbiBvZiB0aGUgdGVz
dCBydW5uZXIgdW50aWwgd2UgY2FuIGRldGVybWluZQorICAgICAgICBpZiBzZXJ2ZXJzIG5lZWQg
dG8gYmUgc3RhcnRlZC4KKyAgICAgICAgKE1hbmFnZXIucnVuKTogRGV0ZXJtaW5lIGlmIHNlcnZl
cnMgbmVlZCB0byBiZSBzdGFydGVkIGFuZCBjb25zdHJ1Y3QgdGhlIHRlc3QgcnVubmVyLgorICAg
ICAgICBTaHV0IHNlcnZlcnMgZG93biB3aGVuIHRoZSB0ZXN0IHJ1biBpcyBmaW5pc2hlZC4KKyAg
ICAgICAgKE1hbmFnZXIuX3J1bl90ZXN0cyk6IE1vdmUgdGhlIGRldGVybWluYXRpb24gb2Ygc2Vy
dmVycyB0byBydW4gaW50byBNYW5hZ2VyLnJ1bi4KKwogMjAxNy0wNS0xOSAgSm9uYXRoYW4gQmVk
YXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgd2Via2l0cHk6IExheW91dCB0ZXN0
cyB3aGljaCBoYXZlIG5vIG91dHB1dCB3aWxsIHN1Y2NlZWQKSW5kZXg6IFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5lci5weQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9s
bGVycy9sYXlvdXRfdGVzdF9ydW5uZXIucHkJKHJldmlzaW9uIDIxNzEzNCkKKysrIFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5l
ci5weQkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KIAoraW1wb3J0IGF0ZXhpdAogaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBtYXRo
CiBpbXBvcnQgdGhyZWFkaW5nCkBAIC02MSwzMyArNjIsMzcgQEAgY2xhc3MgVGVzdFJ1bkludGVy
cnVwdGVkRXhjZXB0aW9uKEV4Y2VwdAogCiAKIGNsYXNzIExheW91dFRlc3RSdW5uZXIob2JqZWN0
KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgb3B0aW9ucywgcG9ydCwgcHJpbnRlciwgcmVzdWx0
c19kaXJlY3RvcnksIHRlc3RfaXNfc2xvd19mbik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG9w
dGlvbnMsIHBvcnQsIHByaW50ZXIsIHJlc3VsdHNfZGlyZWN0b3J5LCB0ZXN0X2lzX3Nsb3dfZm4s
IG5lZWRzX2h0dHA9RmFsc2UsIG5lZWRzX3dlYnNvY2tldHM9RmFsc2UsIG5lZWRzX3dlYl9wbGF0
Zm9ybV90ZXN0X3NlcnZlcj1GYWxzZSk6CiAgICAgICAgIHNlbGYuX29wdGlvbnMgPSBvcHRpb25z
CiAgICAgICAgIHNlbGYuX3BvcnQgPSBwb3J0CiAgICAgICAgIHNlbGYuX3ByaW50ZXIgPSBwcmlu
dGVyCiAgICAgICAgIHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5ID0gcmVzdWx0c19kaXJlY3RvcnkK
ICAgICAgICAgc2VsZi5fdGVzdF9pc19zbG93ID0gdGVzdF9pc19zbG93X2ZuCisgICAgICAgIHNl
bGYuX25lZWRzX2h0dHAgPSBuZWVkc19odHRwCisgICAgICAgIHNlbGYuX25lZWRzX3dlYnNvY2tl
dHMgPSBuZWVkc193ZWJzb2NrZXRzCisgICAgICAgIHNlbGYuX25lZWRzX3dlYl9wbGF0Zm9ybV90
ZXN0X3NlcnZlciA9IG5lZWRzX3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlcgorCiAgICAgICAgIHNl
bGYuX3NoYXJkZXIgPSBTaGFyZGVyKHNlbGYuX3BvcnQuc3BsaXRfdGVzdCkKICAgICAgICAgc2Vs
Zi5fZmlsZXN5c3RlbSA9IHNlbGYuX3BvcnQuaG9zdC5maWxlc3lzdGVtCiAKICAgICAgICAgc2Vs
Zi5fZXhwZWN0YXRpb25zID0gTm9uZQogICAgICAgICBzZWxmLl90ZXN0X2lucHV0cyA9IFtdCi0g
ICAgICAgIHNlbGYuX25lZWRzX2h0dHAgPSBOb25lCi0gICAgICAgIHNlbGYuX25lZWRzX3dlYnNv
Y2tldHMgPSBOb25lCi0gICAgICAgIHNlbGYuX25lZWRzX3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZl
ciA9IE5vbmUKICAgICAgICAgc2VsZi5fcmV0cnlpbmcgPSBGYWxzZQogICAgICAgICBzZWxmLl9j
dXJyZW50X3J1bl9yZXN1bHRzID0gTm9uZQogCisgICAgICAgIHNlbGYuX3NlcnZlcnNfcnVubmlu
Z19mbGFnID0gRmFsc2UKKyAgICAgICAgaWYgKHNlbGYuX25lZWRzX2h0dHAgYW5kIHNlbGYuX29w
dGlvbnMuaHR0cCkgb3Igc2VsZi5fbmVlZHNfd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyOgorICAg
ICAgICAgICAgc2VsZi5zdGFydF9zZXJ2ZXJzKCkKKyAgICAgICAgICAgIGF0ZXhpdC5yZWdpc3Rl
cihsYW1iZGE6IHNlbGYuc3RvcF9zZXJ2ZXJzKCkpCisKICAgICBkZWYgZ2V0X3dvcmtlcl9jb3Vu
dChzZWxmLCB0ZXN0X2lucHV0cywgY2hpbGRfcHJvY2Vzc19jb3VudCk6CiAgICAgICAgIGFsbF9z
aGFyZHMgPSBzZWxmLl9zaGFyZGVyLnNoYXJkX3Rlc3RzKHRlc3RfaW5wdXRzLCBjaGlsZF9wcm9j
ZXNzX2NvdW50LCBzZWxmLl9vcHRpb25zLmZ1bGx5X3BhcmFsbGVsKQogICAgICAgICByZXR1cm4g
bWluKGNoaWxkX3Byb2Nlc3NfY291bnQsIGxlbihhbGxfc2hhcmRzKSkKIAotICAgIGRlZiBydW5f
dGVzdHMoc2VsZiwgZXhwZWN0YXRpb25zLCB0ZXN0X2lucHV0cywgdGVzdHNfdG9fc2tpcCwgbnVt
X3dvcmtlcnMsIG5lZWRzX2h0dHAsIG5lZWRzX3dlYnNvY2tldHMsIG5lZWRzX3dlYl9wbGF0Zm9y
bV90ZXN0X3NlcnZlciwgcmV0cnlpbmcpOgorICAgIGRlZiBydW5fdGVzdHMoc2VsZiwgZXhwZWN0
YXRpb25zLCB0ZXN0X2lucHV0cywgdGVzdHNfdG9fc2tpcCwgbnVtX3dvcmtlcnMsIHJldHJ5aW5n
KToKICAgICAgICAgc2VsZi5fZXhwZWN0YXRpb25zID0gZXhwZWN0YXRpb25zCiAgICAgICAgIHNl
bGYuX3Rlc3RfaW5wdXRzID0gdGVzdF9pbnB1dHMKLSAgICAgICAgc2VsZi5fbmVlZHNfaHR0cCA9
IG5lZWRzX2h0dHAKLSAgICAgICAgc2VsZi5fbmVlZHNfd2Vic29ja2V0cyA9IG5lZWRzX3dlYnNv
Y2tldHMKLSAgICAgICAgc2VsZi5fbmVlZHNfd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyID0gbmVl
ZHNfd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyCisKICAgICAgICAgc2VsZi5fcmV0cnlpbmcgPSBy
ZXRyeWluZwogCiAgICAgICAgICMgRklYTUU6IHJlbmFtZSBhbGwgdmFyaWFibGVzIHRvIHRlc3Rf
cnVuX3Jlc3VsdHMgb3Igc29tZSBzdWNoIC4uLgpAQCAtMTA3LDkgKzExMiw2IEBAIGNsYXNzIExh
eW91dFRlc3RSdW5uZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5fcHJpbnRlci53cml0ZV91cGRh
dGUoJ1NoYXJkaW5nIHRlc3RzIC4uLicpCiAgICAgICAgIGFsbF9zaGFyZHMgPSBzZWxmLl9zaGFy
ZGVyLnNoYXJkX3Rlc3RzKHRlc3RfaW5wdXRzLCBpbnQoc2VsZi5fb3B0aW9ucy5jaGlsZF9wcm9j
ZXNzZXMpLCBzZWxmLl9vcHRpb25zLmZ1bGx5X3BhcmFsbGVsKQogCi0gICAgICAgIGlmIChzZWxm
Ll9uZWVkc19odHRwIGFuZCBzZWxmLl9vcHRpb25zLmh0dHApIG9yIHNlbGYuX25lZWRzX3dlYl9w
bGF0Zm9ybV90ZXN0X3NlcnZlcjoKLSAgICAgICAgICAgIHNlbGYuc3RhcnRfc2VydmVycygpCi0K
ICAgICAgICAgc2VsZi5fcHJpbnRlci5wcmludF93b3JrZXJzX2FuZF9zaGFyZHMobnVtX3dvcmtl
cnMsIGxlbihhbGxfc2hhcmRzKSkKIAogICAgICAgICBpZiBzZWxmLl9vcHRpb25zLmRyeV9ydW46
CkBAIC0xMzAsOCArMTMyLDYgQEAgY2xhc3MgTGF5b3V0VGVzdFJ1bm5lcihvYmplY3QpOgogICAg
ICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgogICAgICAgICAgICAgX2xvZy5kZWJ1ZygnJXMoIiVz
IikgcmFpc2VkLCBleGl0aW5nJyAlIChlLl9fY2xhc3NfXy5fX25hbWVfXywgc3RyKGUpKSkKICAg
ICAgICAgICAgIHJhaXNlCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBzZWxmLnN0b3Bf
c2VydmVycygpCiAKICAgICAgICAgcmV0dXJuIHJ1bl9yZXN1bHRzCiAKQEAgLTE4OCw2ICsxODgs
NyBAQCBjbGFzcyBMYXlvdXRUZXN0UnVubmVyKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX2ludGVy
cnVwdF9pZl9hdF9mYWlsdXJlX2xpbWl0cyhydW5fcmVzdWx0cykKIAogICAgIGRlZiBzdGFydF9z
ZXJ2ZXJzKHNlbGYpOgorICAgICAgICBzZWxmLl9zZXJ2ZXJzX3J1bm5pbmdfZmxhZyA9IFRydWUK
ICAgICAgICAgaWYgc2VsZi5fbmVlZHNfaHR0cDoKICAgICAgICAgICAgIHNlbGYuX3ByaW50ZXIu
d3JpdGVfdXBkYXRlKCdTdGFydGluZyBIVFRQIHNlcnZlciAuLi4nKQogICAgICAgICAgICAgc2Vs
Zi5fcG9ydC5zdGFydF9odHRwX3NlcnZlcigpCkBAIC0xOTksNiArMjAwLDkgQEAgY2xhc3MgTGF5
b3V0VGVzdFJ1bm5lcihvYmplY3QpOgogICAgICAgICAgICAgc2VsZi5fcG9ydC5zdGFydF93ZWJf
cGxhdGZvcm1fdGVzdF9zZXJ2ZXIoKQogCiAgICAgZGVmIHN0b3Bfc2VydmVycyhzZWxmKToKKyAg
ICAgICAgaWYgbm90IHNlbGYuX3NlcnZlcnNfcnVubmluZ19mbGFnOgorICAgICAgICAgICAgcmV0
dXJuCisKICAgICAgICAgaWYgc2VsZi5fbmVlZHNfaHR0cDoKICAgICAgICAgICAgIHNlbGYuX3By
aW50ZXIud3JpdGVfdXBkYXRlKCdTdG9wcGluZyBIVFRQIHNlcnZlciAuLi4nKQogICAgICAgICAg
ICAgc2VsZi5fcG9ydC5zdG9wX2h0dHBfc2VydmVyKCkKQEAgLTIwOCw2ICsyMTIsNyBAQCBjbGFz
cyBMYXlvdXRUZXN0UnVubmVyKG9iamVjdCk6CiAgICAgICAgIGlmIHNlbGYuX25lZWRzX3dlYl9w
bGF0Zm9ybV90ZXN0X3NlcnZlcjoKICAgICAgICAgICAgIHNlbGYuX3ByaW50ZXIud3JpdGVfdXBk
YXRlKCdTdG9wcGluZyBXZWIgUGxhdGZvcm0gVGVzdCBzZXJ2ZXIgLi4uJykKICAgICAgICAgICAg
IHNlbGYuX3BvcnQuc3RvcF93ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIoKQorICAgICAgICBzZWxm
Ll9zZXJ2ZXJzX3J1bm5pbmdfZmxhZyA9IEZhbHNlCiAKICAgICBkZWYgaGFuZGxlKHNlbGYsIG5h
bWUsIHNvdXJjZSwgKmFyZ3MpOgogICAgICAgICBtZXRob2QgPSBnZXRhdHRyKHNlbGYsICdfaGFu
ZGxlXycgKyBuYW1lKQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
Y29udHJvbGxlcnMvbWFuYWdlci5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyLnB5CShyZXZpc2lvbiAyMTcxMzQp
CisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5h
Z2VyLnB5CSh3b3JraW5nIGNvcHkpCkBAIC04NSw3ICs4NSw3IEBAIGNsYXNzIE1hbmFnZXIob2Jq
ZWN0KToKICAgICAgICAgc2VsZi5MQVlPVVRfVEVTVFNfRElSRUNUT1JZID0gJ0xheW91dFRlc3Rz
JwogICAgICAgICBzZWxmLl9yZXN1bHRzX2RpcmVjdG9yeSA9IHNlbGYuX3BvcnQucmVzdWx0c19k
aXJlY3RvcnkoKQogICAgICAgICBzZWxmLl9maW5kZXIgPSBMYXlvdXRUZXN0RmluZGVyKHNlbGYu
X3BvcnQsIHNlbGYuX29wdGlvbnMpCi0gICAgICAgIHNlbGYuX3J1bm5lciA9IExheW91dFRlc3RS
dW5uZXIoc2VsZi5fb3B0aW9ucywgc2VsZi5fcG9ydCwgc2VsZi5fcHJpbnRlciwgc2VsZi5fcmVz
dWx0c19kaXJlY3RvcnksIHNlbGYuX3Rlc3RfaXNfc2xvdykKKyAgICAgICAgc2VsZi5fcnVubmVy
ID0gTm9uZQogCiAgICAgICAgIHRlc3Rfb3B0aW9uc19qc29uX3BhdGggPSBzZWxmLl9wb3J0LnBh
dGhfZnJvbV93ZWJraXRfYmFzZShzZWxmLkxBWU9VVF9URVNUU19ESVJFQ1RPUlksICJ0ZXN0cy1v
cHRpb25zLmpzb24iKQogICAgICAgICBzZWxmLl90ZXN0c19vcHRpb25zID0ganNvbi5sb2Fkcyhz
ZWxmLl9maWxlc3lzdGVtLnJlYWRfdGV4dF9maWxlKHRlc3Rfb3B0aW9uc19qc29uX3BhdGgpKSBp
ZiBzZWxmLl9maWxlc3lzdGVtLmV4aXN0cyh0ZXN0X29wdGlvbnNfanNvbl9wYXRoKSBlbHNlIHt9
CkBAIC0yMzMsNiArMjMzLDEyIEBAIGNsYXNzIE1hbmFnZXIob2JqZWN0KToKICAgICAgICAgcmV0
cnlfcmVzdWx0cyA9IE5vbmUKICAgICAgICAgZW5hYmxlZF9waXhlbF90ZXN0c19pbl9yZXRyeSA9
IEZhbHNlCiAKKyAgICAgICAgbmVlZHNfaHR0cCA9IGFueSgoc2VsZi5faXNfaHR0cF90ZXN0KHRl
c3QpIGFuZCBub3Qgc2VsZi5fbmVlZHNfd2ViX3BsYXRmb3JtX3Rlc3QodGVzdCkpIGZvciB0ZXN0
IGluIHRlc3RzX3RvX3J1bikKKyAgICAgICAgbmVlZHNfd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVy
ID0gYW55KHNlbGYuX25lZWRzX3dlYl9wbGF0Zm9ybV90ZXN0KHRlc3QpIGZvciB0ZXN0IGluIHRl
c3RzX3RvX3J1bikKKyAgICAgICAgbmVlZHNfd2Vic29ja2V0cyA9IGFueShzZWxmLl9pc193ZWJz
b2NrZXRfdGVzdCh0ZXN0KSBmb3IgdGVzdCBpbiB0ZXN0c190b19ydW4pCisgICAgICAgIHNlbGYu
X3J1bm5lciA9IExheW91dFRlc3RSdW5uZXIoc2VsZi5fb3B0aW9ucywgc2VsZi5fcG9ydCwgc2Vs
Zi5fcHJpbnRlciwgc2VsZi5fcmVzdWx0c19kaXJlY3RvcnksIHNlbGYuX3Rlc3RfaXNfc2xvdywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZWVkc19odHRwPW5lZWRz
X2h0dHAsIG5lZWRzX3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlcj1uZWVkc193ZWJfcGxhdGZvcm1f
dGVzdF9zZXJ2ZXIsIG5lZWRzX3dlYnNvY2tldHM9bmVlZHNfd2Vic29ja2V0cykKKwogICAgICAg
ICBpZiBkZWZhdWx0X2RldmljZV90ZXN0czoKICAgICAgICAgICAgIF9sb2cuaW5mbygnJykKICAg
ICAgICAgICAgIF9sb2cuaW5mbygiUnVubmluZyAlcyIsIHBsdXJhbGl6ZShsZW4odGVzdHNfdG9f
cnVuKSwgInRlc3QiKSkKQEAgLTI1Nyw2ICsyNjMsNyBAQCBjbGFzcyBNYW5hZ2VyKG9iamVjdCk6
CiAgICAgICAgICAgICAgICAgcmV0cnlfcmVzdWx0cyA9IHJldHJ5X3Jlc3VsdHMubWVyZ2UoZGV2
aWNlX3JldHJ5X3Jlc3VsdHMpIGlmIHJldHJ5X3Jlc3VsdHMgZWxzZSBkZXZpY2VfcmV0cnlfcmVz
dWx0cwogICAgICAgICAgICAgICAgIGVuYWJsZWRfcGl4ZWxfdGVzdHNfaW5fcmV0cnkgfD0gZGV2
aWNlX2VuYWJsZWRfcGl4ZWxfdGVzdHNfaW5fcmV0cnkKIAorICAgICAgICBzZWxmLl9ydW5uZXIu
c3RvcF9zZXJ2ZXJzKCkKICAgICAgICAgZW5kX3RpbWUgPSB0aW1lLnRpbWUoKQogICAgICAgICBy
ZXR1cm4gc2VsZi5fZW5kX3Rlc3RfcnVuKHN0YXJ0X3RpbWUsIGVuZF90aW1lLCBpbml0aWFsX3Jl
c3VsdHMsIHJldHJ5X3Jlc3VsdHMsIGVuYWJsZWRfcGl4ZWxfdGVzdHNfaW5fcmV0cnkpCiAKQEAg
LTMxOCwxMyArMzI1LDkgQEAgY2xhc3MgTWFuYWdlcihvYmplY3QpOgogICAgICAgICByZXR1cm4g
dGVzdF9ydW5fcmVzdWx0cy5SdW5EZXRhaWxzKGV4aXRfY29kZSwgc3VtbWFyaXplZF9yZXN1bHRz
LCBpbml0aWFsX3Jlc3VsdHMsIHJldHJ5X3Jlc3VsdHMsIGVuYWJsZWRfcGl4ZWxfdGVzdHNfaW5f
cmV0cnkpCiAKICAgICBkZWYgX3J1bl90ZXN0cyhzZWxmLCB0ZXN0c190b19ydW4sIHRlc3RzX3Rv
X3NraXAsIHJlcGVhdF9lYWNoLCBpdGVyYXRpb25zLCBudW1fd29ya2VycywgcmV0cnlpbmcpOgot
ICAgICAgICBuZWVkc19odHRwID0gYW55KChzZWxmLl9pc19odHRwX3Rlc3QodGVzdCkgYW5kIG5v
dCBzZWxmLl9uZWVkc193ZWJfcGxhdGZvcm1fdGVzdCh0ZXN0KSkgZm9yIHRlc3QgaW4gdGVzdHNf
dG9fcnVuKQotICAgICAgICBuZWVkc193ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIgPSBhbnkoc2Vs
Zi5fbmVlZHNfd2ViX3BsYXRmb3JtX3Rlc3QodGVzdCkgZm9yIHRlc3QgaW4gdGVzdHNfdG9fcnVu
KQotICAgICAgICBuZWVkc193ZWJzb2NrZXRzID0gYW55KHNlbGYuX2lzX3dlYnNvY2tldF90ZXN0
KHRlc3QpIGZvciB0ZXN0IGluIHRlc3RzX3RvX3J1bikKLQogICAgICAgICB0ZXN0X2lucHV0cyA9
IHNlbGYuX2dldF90ZXN0X2lucHV0cyh0ZXN0c190b19ydW4sIHJlcGVhdF9lYWNoLCBpdGVyYXRp
b25zKQogCi0gICAgICAgIHJldHVybiBzZWxmLl9ydW5uZXIucnVuX3Rlc3RzKHNlbGYuX2V4cGVj
dGF0aW9ucywgdGVzdF9pbnB1dHMsIHRlc3RzX3RvX3NraXAsIG51bV93b3JrZXJzLCBuZWVkc19o
dHRwLCBuZWVkc193ZWJzb2NrZXRzLCBuZWVkc193ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIsIHJl
dHJ5aW5nKQorICAgICAgICByZXR1cm4gc2VsZi5fcnVubmVyLnJ1bl90ZXN0cyhzZWxmLl9leHBl
Y3RhdGlvbnMsIHRlc3RfaW5wdXRzLCB0ZXN0c190b19za2lwLCBudW1fd29ya2VycywgcmV0cnlp
bmcpCiAKICAgICBkZWYgX2NsZWFuX3VwX3J1bihzZWxmKToKICAgICAgICAgX2xvZy5kZWJ1Zygi
Rmx1c2hpbmcgc3Rkb3V0IikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311520</attachid>
            <date>2017-05-30 11:20:58 -0700</date>
            <delta_ts>2017-05-30 11:49:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172176-20170530112058.patch</filename>
            <type>text/plain</type>
            <size>11008</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIxNzU2MSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDMyIEBACisyMDE3LTA1LTMwICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweTogU3RhcnQgc2VydmVycyBiZWZvcmUgc2V0dGluZy11cCBm
b3IgdGVzdGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTcyMTc2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMjIyNTUzOD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgorCisgICAgICAgIE9uLWRldmljZSB0ZXN0
aW5nIHJlcXVpcmVzIHRoYXQgc2VydmVycyBhcmUgc3RhcnRlZCBiZWZvcmUgcG9ydHMgc2V0LXVw
IHRoZWlyCisgICAgICAgIHRlc3QgZW52aXJvbm1lbnRzLgorCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyLnB5Ogor
ICAgICAgICAoTGF5b3V0VGVzdFJ1bm5lci5fX2luaXRfXyk6IFN0YXJ0IHNlcnZlcnMgd2hlbiBp
bml0aWFsaXppbmcgTGF5b3V0VGVzdFJ1bm5lci4KKyAgICAgICAgU2VydmVycyBhcmUgdW5jb25k
aXRpb25hbGx5IHN0b3BwZWQgb24gZXhpdC4KKyAgICAgICAgKExheW91dFRlc3RSdW5uZXIucnVu
X3Rlc3RzKTogTW92ZSB0aGUgc3RhcnRpbmcgb2Ygc2VydmVycyB0byB0aGUgaW5pdGlhbGl6ZXIu
IFRoZQorICAgICAgICBNYW5hZ2VyIG5vdyBzdG9wcyBzZXJ2ZXJzLgorICAgICAgICAoTGF5b3V0
VGVzdFJ1bm5lci5zdGFydF9zZXJ2ZXJzKTogU2V0IGZsYWcgdG8gaW5kaWNhdGUgc2VydmVycyBh
cmUgcnVubmluZy4KKyAgICAgICAgKExheW91dFRlc3RSdW5uZXIuc3RvcF9zZXJ2ZXJzKTogQ2hl
Y2sgZmxhZywgb25seSBzaHV0ZG93biBzZXJ2ZXJzIGlmIHRoZXkgYXJlIHNodXRkb3duLgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIu
cHk6CisgICAgICAgIChNYW5hZ2VyLl9faW5pdF9fKTogRGVsYXkgY29uc3RydWN0aW9uIG9mIHRo
ZSB0ZXN0IHJ1bm5lciB1bnRpbCB3ZSBjYW4gZGV0ZXJtaW5lCisgICAgICAgIGlmIHNlcnZlcnMg
bmVlZCB0byBiZSBzdGFydGVkLgorICAgICAgICAoTWFuYWdlci5ydW4pOiBEZXRlcm1pbmUgaWYg
c2VydmVycyBuZWVkIHRvIGJlIHN0YXJ0ZWQgYW5kIGNvbnN0cnVjdCB0aGUgdGVzdCBydW5uZXIu
CisgICAgICAgIFNodXQgc2VydmVycyBkb3duIHdoZW4gdGhlIHRlc3QgcnVuIGlzIGZpbmlzaGVk
LgorICAgICAgICAoTWFuYWdlci5fcnVuX3Rlc3RzKTogTW92ZSB0aGUgZGV0ZXJtaW5hdGlvbiBv
ZiBzZXJ2ZXJzIHRvIHJ1biBpbnRvIE1hbmFnZXIucnVuLgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyLnB5Ogor
ICAgICAgICAoaXNfd3B0X3NlcnZlcl9ydW5uaW5nKTogU2VydmVyIGlzIG5vdCBydW5uaW5nIGlm
IG5vIGNvbmZpZyBpcyBmb3VuZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFz
ZS5weToKKyAgICAgICAgKFBvcnQudG8uaXNfd2ViX3BsYXRmb3JtX3NlcnZlcl9ydW5uaW5nKTog
QWRkZWQuCisKIDIwMTctMDUtMzAgIFBlciBBcm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29t
PgogCiAgICAgICAgIFtXaW5dIGZhc3Qvc2hhZG93LWRvbS9mdWxsc2NyZWVuLWluLXNsb3QtZnVs
bHNjcmVlbkVsZW1lbnQuaHRtbCBpcyBmbGFreS4KSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5lci5weQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9s
YXlvdXRfdGVzdF9ydW5uZXIucHkJKHJldmlzaW9uIDIxNzU1OSkKKysrIFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5lci5weQko
d29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KIAoraW1wb3J0IGF0ZXhpdAogaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBtYXRoCiBpbXBv
cnQgdGhyZWFkaW5nCkBAIC02MSwzMyArNjIsMzYgQEAgY2xhc3MgVGVzdFJ1bkludGVycnVwdGVk
RXhjZXB0aW9uKEV4Y2VwdAogCiAKIGNsYXNzIExheW91dFRlc3RSdW5uZXIob2JqZWN0KToKLSAg
ICBkZWYgX19pbml0X18oc2VsZiwgb3B0aW9ucywgcG9ydCwgcHJpbnRlciwgcmVzdWx0c19kaXJl
Y3RvcnksIHRlc3RfaXNfc2xvd19mbik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG9wdGlvbnMs
IHBvcnQsIHByaW50ZXIsIHJlc3VsdHNfZGlyZWN0b3J5LCB0ZXN0X2lzX3Nsb3dfZm4sIG5lZWRz
X2h0dHA9RmFsc2UsIG5lZWRzX3dlYnNvY2tldHM9RmFsc2UsIG5lZWRzX3dlYl9wbGF0Zm9ybV90
ZXN0X3NlcnZlcj1GYWxzZSk6CiAgICAgICAgIHNlbGYuX29wdGlvbnMgPSBvcHRpb25zCiAgICAg
ICAgIHNlbGYuX3BvcnQgPSBwb3J0CiAgICAgICAgIHNlbGYuX3ByaW50ZXIgPSBwcmludGVyCiAg
ICAgICAgIHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5ID0gcmVzdWx0c19kaXJlY3RvcnkKICAgICAg
ICAgc2VsZi5fdGVzdF9pc19zbG93ID0gdGVzdF9pc19zbG93X2ZuCisgICAgICAgIHNlbGYuX25l
ZWRzX2h0dHAgPSBuZWVkc19odHRwCisgICAgICAgIHNlbGYuX25lZWRzX3dlYnNvY2tldHMgPSBu
ZWVkc193ZWJzb2NrZXRzCisgICAgICAgIHNlbGYuX25lZWRzX3dlYl9wbGF0Zm9ybV90ZXN0X3Nl
cnZlciA9IG5lZWRzX3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlcgorCiAgICAgICAgIHNlbGYuX3No
YXJkZXIgPSBTaGFyZGVyKHNlbGYuX3BvcnQuc3BsaXRfdGVzdCkKICAgICAgICAgc2VsZi5fZmls
ZXN5c3RlbSA9IHNlbGYuX3BvcnQuaG9zdC5maWxlc3lzdGVtCiAKICAgICAgICAgc2VsZi5fZXhw
ZWN0YXRpb25zID0gTm9uZQogICAgICAgICBzZWxmLl90ZXN0X2lucHV0cyA9IFtdCi0gICAgICAg
IHNlbGYuX25lZWRzX2h0dHAgPSBOb25lCi0gICAgICAgIHNlbGYuX25lZWRzX3dlYnNvY2tldHMg
PSBOb25lCi0gICAgICAgIHNlbGYuX25lZWRzX3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlciA9IE5v
bmUKICAgICAgICAgc2VsZi5fcmV0cnlpbmcgPSBGYWxzZQogICAgICAgICBzZWxmLl9jdXJyZW50
X3J1bl9yZXN1bHRzID0gTm9uZQogCisgICAgICAgIGlmICgoc2VsZi5fbmVlZHNfaHR0cCBhbmQg
c2VsZi5fb3B0aW9ucy5odHRwKSBvciBzZWxmLl9uZWVkc193ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2
ZXIpIGFuZCBzZWxmLl9wb3J0LmdldF9vcHRpb24oInN0YXJ0X2h0dHBfc2VydmVyc19pZl9uZWVk
ZWQiKToKKyAgICAgICAgICAgIHNlbGYuc3RhcnRfc2VydmVycygpCisgICAgICAgICAgICBhdGV4
aXQucmVnaXN0ZXIobGFtYmRhOiBzZWxmLnN0b3Bfc2VydmVycygpKQorCiAgICAgZGVmIGdldF93
b3JrZXJfY291bnQoc2VsZiwgdGVzdF9pbnB1dHMsIGNoaWxkX3Byb2Nlc3NfY291bnQpOgogICAg
ICAgICBhbGxfc2hhcmRzID0gc2VsZi5fc2hhcmRlci5zaGFyZF90ZXN0cyh0ZXN0X2lucHV0cywg
Y2hpbGRfcHJvY2Vzc19jb3VudCwgc2VsZi5fb3B0aW9ucy5mdWxseV9wYXJhbGxlbCkKICAgICAg
ICAgcmV0dXJuIG1pbihjaGlsZF9wcm9jZXNzX2NvdW50LCBsZW4oYWxsX3NoYXJkcykpCiAKLSAg
ICBkZWYgcnVuX3Rlc3RzKHNlbGYsIGV4cGVjdGF0aW9ucywgdGVzdF9pbnB1dHMsIHRlc3RzX3Rv
X3NraXAsIG51bV93b3JrZXJzLCBuZWVkc19odHRwLCBuZWVkc193ZWJzb2NrZXRzLCBuZWVkc193
ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIsIHJldHJ5aW5nKToKKyAgICBkZWYgcnVuX3Rlc3RzKHNl
bGYsIGV4cGVjdGF0aW9ucywgdGVzdF9pbnB1dHMsIHRlc3RzX3RvX3NraXAsIG51bV93b3JrZXJz
LCByZXRyeWluZyk6CiAgICAgICAgIHNlbGYuX2V4cGVjdGF0aW9ucyA9IGV4cGVjdGF0aW9ucwog
ICAgICAgICBzZWxmLl90ZXN0X2lucHV0cyA9IHRlc3RfaW5wdXRzCi0gICAgICAgIHNlbGYuX25l
ZWRzX2h0dHAgPSBuZWVkc19odHRwCi0gICAgICAgIHNlbGYuX25lZWRzX3dlYnNvY2tldHMgPSBu
ZWVkc193ZWJzb2NrZXRzCi0gICAgICAgIHNlbGYuX25lZWRzX3dlYl9wbGF0Zm9ybV90ZXN0X3Nl
cnZlciA9IG5lZWRzX3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlcgorCiAgICAgICAgIHNlbGYuX3Jl
dHJ5aW5nID0gcmV0cnlpbmcKIAogICAgICAgICAjIEZJWE1FOiByZW5hbWUgYWxsIHZhcmlhYmxl
cyB0byB0ZXN0X3J1bl9yZXN1bHRzIG9yIHNvbWUgc3VjaCAuLi4KQEAgLTEwNywxMCArMTExLDYg
QEAgY2xhc3MgTGF5b3V0VGVzdFJ1bm5lcihvYmplY3QpOgogICAgICAgICBzZWxmLl9wcmludGVy
LndyaXRlX3VwZGF0ZSgnU2hhcmRpbmcgdGVzdHMgLi4uJykKICAgICAgICAgYWxsX3NoYXJkcyA9
IHNlbGYuX3NoYXJkZXIuc2hhcmRfdGVzdHModGVzdF9pbnB1dHMsIGludChzZWxmLl9vcHRpb25z
LmNoaWxkX3Byb2Nlc3NlcyksIHNlbGYuX29wdGlvbnMuZnVsbHlfcGFyYWxsZWwpCiAKLSAgICAg
ICAgaWYgKHNlbGYuX25lZWRzX2h0dHAgYW5kIHNlbGYuX29wdGlvbnMuaHR0cCkgb3Igc2VsZi5f
bmVlZHNfd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyOgotICAgICAgICAgICAgaWYgc2VsZi5fcG9y
dC5nZXRfb3B0aW9uKCJzdGFydF9odHRwX3NlcnZlcnNfaWZfbmVlZGVkIik6Ci0gICAgICAgICAg
ICAgICAgc2VsZi5zdGFydF9zZXJ2ZXJzKCkKLQogICAgICAgICBzZWxmLl9wcmludGVyLnByaW50
X3dvcmtlcnNfYW5kX3NoYXJkcyhudW1fd29ya2VycywgbGVuKGFsbF9zaGFyZHMpKQogCiAgICAg
ICAgIGlmIHNlbGYuX29wdGlvbnMuZHJ5X3J1bjoKQEAgLTEzMSw4ICsxMzEsNiBAQCBjbGFzcyBM
YXlvdXRUZXN0UnVubmVyKG9iamVjdCk6CiAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CiAg
ICAgICAgICAgICBfbG9nLmRlYnVnKCclcygiJXMiKSByYWlzZWQsIGV4aXRpbmcnICUgKGUuX19j
bGFzc19fLl9fbmFtZV9fLCBzdHIoZSkpKQogICAgICAgICAgICAgcmFpc2UKLSAgICAgICAgZmlu
YWxseToKLSAgICAgICAgICAgIHNlbGYuc3RvcF9zZXJ2ZXJzKCkKIAogICAgICAgICByZXR1cm4g
cnVuX3Jlc3VsdHMKIApAQCAtMTg5LDEzICsxODcsMTMgQEAgY2xhc3MgTGF5b3V0VGVzdFJ1bm5l
cihvYmplY3QpOgogICAgICAgICBzZWxmLl9pbnRlcnJ1cHRfaWZfYXRfZmFpbHVyZV9saW1pdHMo
cnVuX3Jlc3VsdHMpCiAKICAgICBkZWYgc3RhcnRfc2VydmVycyhzZWxmKToKLSAgICAgICAgaWYg
c2VsZi5fbmVlZHNfaHR0cDoKKyAgICAgICAgaWYgc2VsZi5fbmVlZHNfaHR0cCBhbmQgbm90IHNl
bGYuX3BvcnQuaXNfaHR0cF9zZXJ2ZXJfcnVubmluZygpOgogICAgICAgICAgICAgc2VsZi5fcHJp
bnRlci53cml0ZV91cGRhdGUoJ1N0YXJ0aW5nIEhUVFAgc2VydmVyIC4uLicpCiAgICAgICAgICAg
ICBzZWxmLl9wb3J0LnN0YXJ0X2h0dHBfc2VydmVyKCkKLSAgICAgICAgaWYgc2VsZi5fbmVlZHNf
d2Vic29ja2V0czoKKyAgICAgICAgaWYgc2VsZi5fbmVlZHNfd2Vic29ja2V0cyBhbmQgbm90IHNl
bGYuX3BvcnQuaXNfd3B0X3NlcnZlcl9ydW5uaW5nKCk6CiAgICAgICAgICAgICBzZWxmLl9wcmlu
dGVyLndyaXRlX3VwZGF0ZSgnU3RhcnRpbmcgV2ViU29ja2V0IHNlcnZlciAuLi4nKQogICAgICAg
ICAgICAgc2VsZi5fcG9ydC5zdGFydF93ZWJzb2NrZXRfc2VydmVyKCkKLSAgICAgICAgaWYgc2Vs
Zi5fbmVlZHNfd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyOgorICAgICAgICBpZiBzZWxmLl9uZWVk
c193ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIgYW5kIG5vdCBzZWxmLl9wb3J0LmlzX3dlYl9wbGF0
Zm9ybV9zZXJ2ZXJfcnVubmluZygpOgogICAgICAgICAgICAgc2VsZi5fcHJpbnRlci53cml0ZV91
cGRhdGUoJ1N0YXJ0aW5nIFdlYiBQbGF0Zm9ybSBUZXN0IHNlcnZlciAuLi4nKQogICAgICAgICAg
ICAgc2VsZi5fcG9ydC5zdGFydF93ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIoKQogCkluZGV4OiBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyLnB5
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRy
b2xsZXJzL21hbmFnZXIucHkJKHJldmlzaW9uIDIxNzU1OSkKKysrIFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHkJKHdvcmtpbmcgY29weSkK
QEAgLTg1LDcgKzg1LDcgQEAgY2xhc3MgTWFuYWdlcihvYmplY3QpOgogICAgICAgICBzZWxmLkxB
WU9VVF9URVNUU19ESVJFQ1RPUlkgPSAnTGF5b3V0VGVzdHMnCiAgICAgICAgIHNlbGYuX3Jlc3Vs
dHNfZGlyZWN0b3J5ID0gc2VsZi5fcG9ydC5yZXN1bHRzX2RpcmVjdG9yeSgpCiAgICAgICAgIHNl
bGYuX2ZpbmRlciA9IExheW91dFRlc3RGaW5kZXIoc2VsZi5fcG9ydCwgc2VsZi5fb3B0aW9ucykK
LSAgICAgICAgc2VsZi5fcnVubmVyID0gTGF5b3V0VGVzdFJ1bm5lcihzZWxmLl9vcHRpb25zLCBz
ZWxmLl9wb3J0LCBzZWxmLl9wcmludGVyLCBzZWxmLl9yZXN1bHRzX2RpcmVjdG9yeSwgc2VsZi5f
dGVzdF9pc19zbG93KQorICAgICAgICBzZWxmLl9ydW5uZXIgPSBOb25lCiAKICAgICAgICAgdGVz
dF9vcHRpb25zX2pzb25fcGF0aCA9IHNlbGYuX3BvcnQucGF0aF9mcm9tX3dlYmtpdF9iYXNlKHNl
bGYuTEFZT1VUX1RFU1RTX0RJUkVDVE9SWSwgInRlc3RzLW9wdGlvbnMuanNvbiIpCiAgICAgICAg
IHNlbGYuX3Rlc3RzX29wdGlvbnMgPSBqc29uLmxvYWRzKHNlbGYuX2ZpbGVzeXN0ZW0ucmVhZF90
ZXh0X2ZpbGUodGVzdF9vcHRpb25zX2pzb25fcGF0aCkpIGlmIHNlbGYuX2ZpbGVzeXN0ZW0uZXhp
c3RzKHRlc3Rfb3B0aW9uc19qc29uX3BhdGgpIGVsc2Uge30KQEAgLTIzMyw2ICsyMzMsMTIgQEAg
Y2xhc3MgTWFuYWdlcihvYmplY3QpOgogICAgICAgICByZXRyeV9yZXN1bHRzID0gTm9uZQogICAg
ICAgICBlbmFibGVkX3BpeGVsX3Rlc3RzX2luX3JldHJ5ID0gRmFsc2UKIAorICAgICAgICBuZWVk
c19odHRwID0gYW55KChzZWxmLl9pc19odHRwX3Rlc3QodGVzdCkgYW5kIG5vdCBzZWxmLl9uZWVk
c193ZWJfcGxhdGZvcm1fdGVzdCh0ZXN0KSkgZm9yIHRlc3QgaW4gdGVzdHNfdG9fcnVuKQorICAg
ICAgICBuZWVkc193ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIgPSBhbnkoc2VsZi5fbmVlZHNfd2Vi
X3BsYXRmb3JtX3Rlc3QodGVzdCkgZm9yIHRlc3QgaW4gdGVzdHNfdG9fcnVuKQorICAgICAgICBu
ZWVkc193ZWJzb2NrZXRzID0gYW55KHNlbGYuX2lzX3dlYnNvY2tldF90ZXN0KHRlc3QpIGZvciB0
ZXN0IGluIHRlc3RzX3RvX3J1bikKKyAgICAgICAgc2VsZi5fcnVubmVyID0gTGF5b3V0VGVzdFJ1
bm5lcihzZWxmLl9vcHRpb25zLCBzZWxmLl9wb3J0LCBzZWxmLl9wcmludGVyLCBzZWxmLl9yZXN1
bHRzX2RpcmVjdG9yeSwgc2VsZi5fdGVzdF9pc19zbG93LAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG5lZWRzX2h0dHA9bmVlZHNfaHR0cCwgbmVlZHNfd2ViX3BsYXRm
b3JtX3Rlc3Rfc2VydmVyPW5lZWRzX3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlciwgbmVlZHNfd2Vi
c29ja2V0cz1uZWVkc193ZWJzb2NrZXRzKQorCiAgICAgICAgIGlmIGRlZmF1bHRfZGV2aWNlX3Rl
c3RzOgogICAgICAgICAgICAgX2xvZy5pbmZvKCcnKQogICAgICAgICAgICAgX2xvZy5pbmZvKCJS
dW5uaW5nICVzIiwgcGx1cmFsaXplKGxlbih0ZXN0c190b19ydW4pLCAidGVzdCIpKQpAQCAtMjU3
LDYgKzI2Myw3IEBAIGNsYXNzIE1hbmFnZXIob2JqZWN0KToKICAgICAgICAgICAgICAgICByZXRy
eV9yZXN1bHRzID0gcmV0cnlfcmVzdWx0cy5tZXJnZShkZXZpY2VfcmV0cnlfcmVzdWx0cykgaWYg
cmV0cnlfcmVzdWx0cyBlbHNlIGRldmljZV9yZXRyeV9yZXN1bHRzCiAgICAgICAgICAgICAgICAg
ZW5hYmxlZF9waXhlbF90ZXN0c19pbl9yZXRyeSB8PSBkZXZpY2VfZW5hYmxlZF9waXhlbF90ZXN0
c19pbl9yZXRyeQogCisgICAgICAgIHNlbGYuX3J1bm5lci5zdG9wX3NlcnZlcnMoKQogICAgICAg
ICBlbmRfdGltZSA9IHRpbWUudGltZSgpCiAgICAgICAgIHJldHVybiBzZWxmLl9lbmRfdGVzdF9y
dW4oc3RhcnRfdGltZSwgZW5kX3RpbWUsIGluaXRpYWxfcmVzdWx0cywgcmV0cnlfcmVzdWx0cywg
ZW5hYmxlZF9waXhlbF90ZXN0c19pbl9yZXRyeSkKIApAQCAtMzE4LDEzICszMjUsOSBAQCBjbGFz
cyBNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgIHJldHVybiB0ZXN0X3J1bl9yZXN1bHRzLlJ1bkRl
dGFpbHMoZXhpdF9jb2RlLCBzdW1tYXJpemVkX3Jlc3VsdHMsIGluaXRpYWxfcmVzdWx0cywgcmV0
cnlfcmVzdWx0cywgZW5hYmxlZF9waXhlbF90ZXN0c19pbl9yZXRyeSkKIAogICAgIGRlZiBfcnVu
X3Rlc3RzKHNlbGYsIHRlc3RzX3RvX3J1biwgdGVzdHNfdG9fc2tpcCwgcmVwZWF0X2VhY2gsIGl0
ZXJhdGlvbnMsIG51bV93b3JrZXJzLCByZXRyeWluZyk6Ci0gICAgICAgIG5lZWRzX2h0dHAgPSBh
bnkoKHNlbGYuX2lzX2h0dHBfdGVzdCh0ZXN0KSBhbmQgbm90IHNlbGYuX25lZWRzX3dlYl9wbGF0
Zm9ybV90ZXN0KHRlc3QpKSBmb3IgdGVzdCBpbiB0ZXN0c190b19ydW4pCi0gICAgICAgIG5lZWRz
X3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlciA9IGFueShzZWxmLl9uZWVkc193ZWJfcGxhdGZvcm1f
dGVzdCh0ZXN0KSBmb3IgdGVzdCBpbiB0ZXN0c190b19ydW4pCi0gICAgICAgIG5lZWRzX3dlYnNv
Y2tldHMgPSBhbnkoc2VsZi5faXNfd2Vic29ja2V0X3Rlc3QodGVzdCkgZm9yIHRlc3QgaW4gdGVz
dHNfdG9fcnVuKQotCiAgICAgICAgIHRlc3RfaW5wdXRzID0gc2VsZi5fZ2V0X3Rlc3RfaW5wdXRz
KHRlc3RzX3RvX3J1biwgcmVwZWF0X2VhY2gsIGl0ZXJhdGlvbnMpCiAKLSAgICAgICAgcmV0dXJu
IHNlbGYuX3J1bm5lci5ydW5fdGVzdHMoc2VsZi5fZXhwZWN0YXRpb25zLCB0ZXN0X2lucHV0cywg
dGVzdHNfdG9fc2tpcCwgbnVtX3dvcmtlcnMsIG5lZWRzX2h0dHAsIG5lZWRzX3dlYnNvY2tldHMs
IG5lZWRzX3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlciwgcmV0cnlpbmcpCisgICAgICAgIHJldHVy
biBzZWxmLl9ydW5uZXIucnVuX3Rlc3RzKHNlbGYuX2V4cGVjdGF0aW9ucywgdGVzdF9pbnB1dHMs
IHRlc3RzX3RvX3NraXAsIG51bV93b3JrZXJzLCByZXRyeWluZykKIAogICAgIGRlZiBfY2xlYW5f
dXBfcnVuKHNlbGYpOgogICAgICAgICBfbG9nLmRlYnVnKCJGbHVzaGluZyBzdGRvdXQiKQpJbmRl
eDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy93ZWJfcGxhdGZv
cm1fdGVzdF9zZXJ2ZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvc2VydmVycy93ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIucHkJKHJldmlzaW9u
IDIxNzU1OSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMv
d2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyLnB5CSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2ICs1Nyw4
IEBAIGRlZiBiYXNlX3VybChwb3J0X29iaik6CiAKIGRlZiBpc193cHRfc2VydmVyX3J1bm5pbmco
cG9ydF9vYmopOgogICAgIGNvbmZpZyA9IHdwdF9jb25maWdfanNvbihwb3J0X29iaikKKyAgICBp
ZiBub3QgY29uZmlnOgorICAgICAgICByZXR1cm4gRmFsc2UKICAgICByZXR1cm4gaHR0cF9zZXJ2
ZXJfYmFzZS5IdHRwU2VydmVyQmFzZS5faXNfcnVubmluZ19vbl9wb3J0KGNvbmZpZ1sicG9ydHMi
XVsiaHR0cCJdWzBdKQogCiAKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNl
LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5CShy
ZXZpc2lvbiAyMTc1NTkpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weQko
d29ya2luZyBjb3B5KQpAQCAtOTc2LDYgKzk3Niw5IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAg
ICBkZWYgaXNfd3B0X3NlcnZlcl9ydW5uaW5nKHNlbGYpOgogICAgICAgICByZXR1cm4gd2ViX3Bs
YXRmb3JtX3Rlc3Rfc2VydmVyLmlzX3dwdF9zZXJ2ZXJfcnVubmluZyhzZWxmKQogCisgICAgZGVm
IGlzX3dlYl9wbGF0Zm9ybV9zZXJ2ZXJfcnVubmluZyhzZWxmKToKKyAgICAgICAgcmV0dXJuIGJv
b2woc2VsZi5fd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyKQorCiAgICAgZGVmIF9leHRyYWN0X2Nl
cnRpZmljYXRlX2Zyb21fcGVtKHNlbGYsIHBlbV9maWxlLCBkZXN0aW5hdGlvbl9jZXJ0aWZpY2F0
ZV9maWxlKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2V4ZWN1dGl2ZS5ydW5fY29tbWFuZChbJ29w
ZW5zc2wnLCAneDUwOScsICctb3V0Zm9ybScsICdwZW0nLCAnLWluJywgcGVtX2ZpbGUsICctb3V0
JywgZGVzdGluYXRpb25fY2VydGlmaWNhdGVfZmlsZV0sIHJldHVybl9leGl0X2NvZGU9VHJ1ZSkg
PT0gMAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311523</attachid>
            <date>2017-05-30 11:49:10 -0700</date>
            <delta_ts>2017-05-30 12:07:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172176-20170530114910.patch</filename>
            <type>text/plain</type>
            <size>13111</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIxNzU2NCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM3IEBACisyMDE3LTA1LTMwICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweTogU3RhcnQgc2VydmVycyBiZWZvcmUgc2V0dGluZy11cCBm
b3IgdGVzdGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTcyMTc2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMjIyNTUzOD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgorCisgICAgICAgIE9uLWRldmljZSB0ZXN0
aW5nIHJlcXVpcmVzIHRoYXQgc2VydmVycyBhcmUgc3RhcnRlZCBiZWZvcmUgcG9ydHMgc2V0LXVw
IHRoZWlyCisgICAgICAgIHRlc3QgZW52aXJvbm1lbnRzLgorCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyLnB5Ogor
ICAgICAgICAoTGF5b3V0VGVzdFJ1bm5lci5fX2luaXRfXyk6IFN0YXJ0IHNlcnZlcnMgd2hlbiBp
bml0aWFsaXppbmcgTGF5b3V0VGVzdFJ1bm5lci4KKyAgICAgICAgU2VydmVycyBhcmUgdW5jb25k
aXRpb25hbGx5IHN0b3BwZWQgb24gZXhpdC4KKyAgICAgICAgKExheW91dFRlc3RSdW5uZXIucnVu
X3Rlc3RzKTogTW92ZSB0aGUgc3RhcnRpbmcgb2Ygc2VydmVycyB0byB0aGUgaW5pdGlhbGl6ZXIu
IFRoZQorICAgICAgICBNYW5hZ2VyIG5vdyBzdG9wcyBzZXJ2ZXJzLgorICAgICAgICAoTGF5b3V0
VGVzdFJ1bm5lci5zdGFydF9zZXJ2ZXJzKTogU2V0IGZsYWcgdG8gaW5kaWNhdGUgc2VydmVycyBh
cmUgcnVubmluZy4KKyAgICAgICAgKExheW91dFRlc3RSdW5uZXIuc3RvcF9zZXJ2ZXJzKTogQ2hl
Y2sgZmxhZywgb25seSBzaHV0ZG93biBzZXJ2ZXJzIGlmIHRoZXkgYXJlIHNodXRkb3duLgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIu
cHk6CisgICAgICAgIChNYW5hZ2VyLl9faW5pdF9fKTogRGVsYXkgY29uc3RydWN0aW9uIG9mIHRo
ZSB0ZXN0IHJ1bm5lciB1bnRpbCB3ZSBjYW4gZGV0ZXJtaW5lCisgICAgICAgIGlmIHNlcnZlcnMg
bmVlZCB0byBiZSBzdGFydGVkLgorICAgICAgICAoTWFuYWdlci5ydW4pOiBEZXRlcm1pbmUgaWYg
c2VydmVycyBuZWVkIHRvIGJlIHN0YXJ0ZWQgYW5kIGNvbnN0cnVjdCB0aGUgdGVzdCBydW5uZXIu
CisgICAgICAgIFNodXQgc2VydmVycyBkb3duIHdoZW4gdGhlIHRlc3QgcnVuIGlzIGZpbmlzaGVk
LgorICAgICAgICAoTWFuYWdlci5fcnVuX3Rlc3RzKTogTW92ZSB0aGUgZGV0ZXJtaW5hdGlvbiBv
ZiBzZXJ2ZXJzIHRvIHJ1biBpbnRvIE1hbmFnZXIucnVuLgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyLnB5Ogor
ICAgICAgICAoaXNfd3B0X3NlcnZlcl9ydW5uaW5nKTogU2VydmVyIGlzIG5vdCBydW5uaW5nIGlm
IG5vIGNvbmZpZyBpcyBmb3VuZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9zZXJ2ZXJzL3dlYnNvY2tldF9zZXJ2ZXIucHk6CisgICAgICAgIChQeVdlYlNvY2tldCk6
CisgICAgICAgIChQeVdlYlNvY2tldC5pc19ydW5uaW5nKTogQ2hlY2sgaWYgV2ViU29ja2V0IHNl
cnZlcnMgYXJlIHJ1bm5pbmcgb24gZWl0aGVyIGtub3duIHBvcnQuCisgICAgICAgIChQeVdlYlNv
Y2tldC5pc19ydW5uaW5nX29uX3BvcnQpOiBDaGVjayBpZiBhIHNlcnZlciBpcyBydW5uaW5nIG9u
IHRoZSBzcGVjaWZpZWQgcG9ydC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFz
ZS5weToKKyAgICAgICAgKFBvcnQuX19pbml0X18pOiBEZWZpbmUgc2VjdXJlIFdlYlNvY2tldCBz
ZXJ2ZXIuCisgICAgICAgIChQb3J0LnRvLmlzX3dlYnNvY2tldF9zZXJ2ZXJfcnVubmluZyk6IENo
ZWNrIGlmIFdlYlNvY2tldCBzZXJ2ZXJzIGFyZSBkZWZpbmVkLgorCiAyMDE3LTA1LTMwICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtXaW5DYWly
b10gVGVzdFdlYktpdEFQSTogQVNTRVJUSU9OIEZBSUxFRDogbV9lZ2xEaXNwbGF5ID09IEVHTF9O
T19ESVNQTEFZCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250
cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5uZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyLnB5
CShyZXZpc2lvbiAyMTc1NTkpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5uZXIucHkJKHdvcmtpbmcgY29weSkKQEAgLTI2
LDYgKzI2LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKK2ltcG9ydCBhdGV4
aXQKIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgbWF0aAogaW1wb3J0IHRocmVhZGluZwpAQCAtNjEs
MzMgKzYyLDM2IEBAIGNsYXNzIFRlc3RSdW5JbnRlcnJ1cHRlZEV4Y2VwdGlvbihFeGNlcHQKIAog
CiBjbGFzcyBMYXlvdXRUZXN0UnVubmVyKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYs
IG9wdGlvbnMsIHBvcnQsIHByaW50ZXIsIHJlc3VsdHNfZGlyZWN0b3J5LCB0ZXN0X2lzX3Nsb3df
Zm4pOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvcHRpb25zLCBwb3J0LCBwcmludGVyLCByZXN1
bHRzX2RpcmVjdG9yeSwgdGVzdF9pc19zbG93X2ZuLCBuZWVkc19odHRwPUZhbHNlLCBuZWVkc193
ZWJzb2NrZXRzPUZhbHNlLCBuZWVkc193ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXI9RmFsc2UpOgog
ICAgICAgICBzZWxmLl9vcHRpb25zID0gb3B0aW9ucwogICAgICAgICBzZWxmLl9wb3J0ID0gcG9y
dAogICAgICAgICBzZWxmLl9wcmludGVyID0gcHJpbnRlcgogICAgICAgICBzZWxmLl9yZXN1bHRz
X2RpcmVjdG9yeSA9IHJlc3VsdHNfZGlyZWN0b3J5CiAgICAgICAgIHNlbGYuX3Rlc3RfaXNfc2xv
dyA9IHRlc3RfaXNfc2xvd19mbgorICAgICAgICBzZWxmLl9uZWVkc19odHRwID0gbmVlZHNfaHR0
cAorICAgICAgICBzZWxmLl9uZWVkc193ZWJzb2NrZXRzID0gbmVlZHNfd2Vic29ja2V0cworICAg
ICAgICBzZWxmLl9uZWVkc193ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIgPSBuZWVkc193ZWJfcGxh
dGZvcm1fdGVzdF9zZXJ2ZXIKKwogICAgICAgICBzZWxmLl9zaGFyZGVyID0gU2hhcmRlcihzZWxm
Ll9wb3J0LnNwbGl0X3Rlc3QpCiAgICAgICAgIHNlbGYuX2ZpbGVzeXN0ZW0gPSBzZWxmLl9wb3J0
Lmhvc3QuZmlsZXN5c3RlbQogCiAgICAgICAgIHNlbGYuX2V4cGVjdGF0aW9ucyA9IE5vbmUKICAg
ICAgICAgc2VsZi5fdGVzdF9pbnB1dHMgPSBbXQotICAgICAgICBzZWxmLl9uZWVkc19odHRwID0g
Tm9uZQotICAgICAgICBzZWxmLl9uZWVkc193ZWJzb2NrZXRzID0gTm9uZQotICAgICAgICBzZWxm
Ll9uZWVkc193ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIgPSBOb25lCiAgICAgICAgIHNlbGYuX3Jl
dHJ5aW5nID0gRmFsc2UKICAgICAgICAgc2VsZi5fY3VycmVudF9ydW5fcmVzdWx0cyA9IE5vbmUK
IAorICAgICAgICBpZiAoKHNlbGYuX25lZWRzX2h0dHAgYW5kIHNlbGYuX29wdGlvbnMuaHR0cCkg
b3Igc2VsZi5fbmVlZHNfd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyKSBhbmQgc2VsZi5fcG9ydC5n
ZXRfb3B0aW9uKCJzdGFydF9odHRwX3NlcnZlcnNfaWZfbmVlZGVkIik6CisgICAgICAgICAgICBz
ZWxmLnN0YXJ0X3NlcnZlcnMoKQorICAgICAgICAgICAgYXRleGl0LnJlZ2lzdGVyKGxhbWJkYTog
c2VsZi5zdG9wX3NlcnZlcnMoKSkKKwogICAgIGRlZiBnZXRfd29ya2VyX2NvdW50KHNlbGYsIHRl
c3RfaW5wdXRzLCBjaGlsZF9wcm9jZXNzX2NvdW50KToKICAgICAgICAgYWxsX3NoYXJkcyA9IHNl
bGYuX3NoYXJkZXIuc2hhcmRfdGVzdHModGVzdF9pbnB1dHMsIGNoaWxkX3Byb2Nlc3NfY291bnQs
IHNlbGYuX29wdGlvbnMuZnVsbHlfcGFyYWxsZWwpCiAgICAgICAgIHJldHVybiBtaW4oY2hpbGRf
cHJvY2Vzc19jb3VudCwgbGVuKGFsbF9zaGFyZHMpKQogCi0gICAgZGVmIHJ1bl90ZXN0cyhzZWxm
LCBleHBlY3RhdGlvbnMsIHRlc3RfaW5wdXRzLCB0ZXN0c190b19za2lwLCBudW1fd29ya2Vycywg
bmVlZHNfaHR0cCwgbmVlZHNfd2Vic29ja2V0cywgbmVlZHNfd2ViX3BsYXRmb3JtX3Rlc3Rfc2Vy
dmVyLCByZXRyeWluZyk6CisgICAgZGVmIHJ1bl90ZXN0cyhzZWxmLCBleHBlY3RhdGlvbnMsIHRl
c3RfaW5wdXRzLCB0ZXN0c190b19za2lwLCBudW1fd29ya2VycywgcmV0cnlpbmcpOgogICAgICAg
ICBzZWxmLl9leHBlY3RhdGlvbnMgPSBleHBlY3RhdGlvbnMKICAgICAgICAgc2VsZi5fdGVzdF9p
bnB1dHMgPSB0ZXN0X2lucHV0cwotICAgICAgICBzZWxmLl9uZWVkc19odHRwID0gbmVlZHNfaHR0
cAotICAgICAgICBzZWxmLl9uZWVkc193ZWJzb2NrZXRzID0gbmVlZHNfd2Vic29ja2V0cwotICAg
ICAgICBzZWxmLl9uZWVkc193ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIgPSBuZWVkc193ZWJfcGxh
dGZvcm1fdGVzdF9zZXJ2ZXIKKwogICAgICAgICBzZWxmLl9yZXRyeWluZyA9IHJldHJ5aW5nCiAK
ICAgICAgICAgIyBGSVhNRTogcmVuYW1lIGFsbCB2YXJpYWJsZXMgdG8gdGVzdF9ydW5fcmVzdWx0
cyBvciBzb21lIHN1Y2ggLi4uCkBAIC0xMDcsMTAgKzExMSw2IEBAIGNsYXNzIExheW91dFRlc3RS
dW5uZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5fcHJpbnRlci53cml0ZV91cGRhdGUoJ1NoYXJk
aW5nIHRlc3RzIC4uLicpCiAgICAgICAgIGFsbF9zaGFyZHMgPSBzZWxmLl9zaGFyZGVyLnNoYXJk
X3Rlc3RzKHRlc3RfaW5wdXRzLCBpbnQoc2VsZi5fb3B0aW9ucy5jaGlsZF9wcm9jZXNzZXMpLCBz
ZWxmLl9vcHRpb25zLmZ1bGx5X3BhcmFsbGVsKQogCi0gICAgICAgIGlmIChzZWxmLl9uZWVkc19o
dHRwIGFuZCBzZWxmLl9vcHRpb25zLmh0dHApIG9yIHNlbGYuX25lZWRzX3dlYl9wbGF0Zm9ybV90
ZXN0X3NlcnZlcjoKLSAgICAgICAgICAgIGlmIHNlbGYuX3BvcnQuZ2V0X29wdGlvbigic3RhcnRf
aHR0cF9zZXJ2ZXJzX2lmX25lZWRlZCIpOgotICAgICAgICAgICAgICAgIHNlbGYuc3RhcnRfc2Vy
dmVycygpCi0KICAgICAgICAgc2VsZi5fcHJpbnRlci5wcmludF93b3JrZXJzX2FuZF9zaGFyZHMo
bnVtX3dvcmtlcnMsIGxlbihhbGxfc2hhcmRzKSkKIAogICAgICAgICBpZiBzZWxmLl9vcHRpb25z
LmRyeV9ydW46CkBAIC0xMzEsOCArMTMxLDYgQEAgY2xhc3MgTGF5b3V0VGVzdFJ1bm5lcihvYmpl
Y3QpOgogICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgogICAgICAgICAgICAgX2xvZy5kZWJ1
ZygnJXMoIiVzIikgcmFpc2VkLCBleGl0aW5nJyAlIChlLl9fY2xhc3NfXy5fX25hbWVfXywgc3Ry
KGUpKSkKICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBz
ZWxmLnN0b3Bfc2VydmVycygpCiAKICAgICAgICAgcmV0dXJuIHJ1bl9yZXN1bHRzCiAKQEAgLTE4
OSwxMyArMTg3LDEzIEBAIGNsYXNzIExheW91dFRlc3RSdW5uZXIob2JqZWN0KToKICAgICAgICAg
c2VsZi5faW50ZXJydXB0X2lmX2F0X2ZhaWx1cmVfbGltaXRzKHJ1bl9yZXN1bHRzKQogCiAgICAg
ZGVmIHN0YXJ0X3NlcnZlcnMoc2VsZik6Ci0gICAgICAgIGlmIHNlbGYuX25lZWRzX2h0dHA6Cisg
ICAgICAgIGlmIHNlbGYuX25lZWRzX2h0dHAgYW5kIG5vdCBzZWxmLl9wb3J0LmlzX2h0dHBfc2Vy
dmVyX3J1bm5pbmcoKToKICAgICAgICAgICAgIHNlbGYuX3ByaW50ZXIud3JpdGVfdXBkYXRlKCdT
dGFydGluZyBIVFRQIHNlcnZlciAuLi4nKQogICAgICAgICAgICAgc2VsZi5fcG9ydC5zdGFydF9o
dHRwX3NlcnZlcigpCi0gICAgICAgIGlmIHNlbGYuX25lZWRzX3dlYnNvY2tldHM6CisgICAgICAg
IGlmIHNlbGYuX25lZWRzX3dlYnNvY2tldHMgYW5kIG5vdCBzZWxmLl9wb3J0LmlzX3dlYnNvY2tl
dF9zZXJ2ZXJfcnVubmluZygpOgogICAgICAgICAgICAgc2VsZi5fcHJpbnRlci53cml0ZV91cGRh
dGUoJ1N0YXJ0aW5nIFdlYlNvY2tldCBzZXJ2ZXIgLi4uJykKICAgICAgICAgICAgIHNlbGYuX3Bv
cnQuc3RhcnRfd2Vic29ja2V0X3NlcnZlcigpCi0gICAgICAgIGlmIHNlbGYuX25lZWRzX3dlYl9w
bGF0Zm9ybV90ZXN0X3NlcnZlcjoKKyAgICAgICAgaWYgc2VsZi5fbmVlZHNfd2ViX3BsYXRmb3Jt
X3Rlc3Rfc2VydmVyIGFuZCBub3Qgc2VsZi5fcG9ydC5pc193cHRfc2VydmVyX3J1bm5pbmcoKToK
ICAgICAgICAgICAgIHNlbGYuX3ByaW50ZXIud3JpdGVfdXBkYXRlKCdTdGFydGluZyBXZWIgUGxh
dGZvcm0gVGVzdCBzZXJ2ZXIgLi4uJykKICAgICAgICAgICAgIHNlbGYuX3BvcnQuc3RhcnRfd2Vi
X3BsYXRmb3JtX3Rlc3Rfc2VydmVyKCkKIApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbWFuYWdlci5weQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9tYW5hZ2VyLnB5CShyZXZp
c2lvbiAyMTc1NTkpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250
cm9sbGVycy9tYW5hZ2VyLnB5CSh3b3JraW5nIGNvcHkpCkBAIC04NSw3ICs4NSw3IEBAIGNsYXNz
IE1hbmFnZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5MQVlPVVRfVEVTVFNfRElSRUNUT1JZID0g
J0xheW91dFRlc3RzJwogICAgICAgICBzZWxmLl9yZXN1bHRzX2RpcmVjdG9yeSA9IHNlbGYuX3Bv
cnQucmVzdWx0c19kaXJlY3RvcnkoKQogICAgICAgICBzZWxmLl9maW5kZXIgPSBMYXlvdXRUZXN0
RmluZGVyKHNlbGYuX3BvcnQsIHNlbGYuX29wdGlvbnMpCi0gICAgICAgIHNlbGYuX3J1bm5lciA9
IExheW91dFRlc3RSdW5uZXIoc2VsZi5fb3B0aW9ucywgc2VsZi5fcG9ydCwgc2VsZi5fcHJpbnRl
ciwgc2VsZi5fcmVzdWx0c19kaXJlY3RvcnksIHNlbGYuX3Rlc3RfaXNfc2xvdykKKyAgICAgICAg
c2VsZi5fcnVubmVyID0gTm9uZQogCiAgICAgICAgIHRlc3Rfb3B0aW9uc19qc29uX3BhdGggPSBz
ZWxmLl9wb3J0LnBhdGhfZnJvbV93ZWJraXRfYmFzZShzZWxmLkxBWU9VVF9URVNUU19ESVJFQ1RP
UlksICJ0ZXN0cy1vcHRpb25zLmpzb24iKQogICAgICAgICBzZWxmLl90ZXN0c19vcHRpb25zID0g
anNvbi5sb2FkcyhzZWxmLl9maWxlc3lzdGVtLnJlYWRfdGV4dF9maWxlKHRlc3Rfb3B0aW9uc19q
c29uX3BhdGgpKSBpZiBzZWxmLl9maWxlc3lzdGVtLmV4aXN0cyh0ZXN0X29wdGlvbnNfanNvbl9w
YXRoKSBlbHNlIHt9CkBAIC0yMzMsNiArMjMzLDEyIEBAIGNsYXNzIE1hbmFnZXIob2JqZWN0KToK
ICAgICAgICAgcmV0cnlfcmVzdWx0cyA9IE5vbmUKICAgICAgICAgZW5hYmxlZF9waXhlbF90ZXN0
c19pbl9yZXRyeSA9IEZhbHNlCiAKKyAgICAgICAgbmVlZHNfaHR0cCA9IGFueSgoc2VsZi5faXNf
aHR0cF90ZXN0KHRlc3QpIGFuZCBub3Qgc2VsZi5fbmVlZHNfd2ViX3BsYXRmb3JtX3Rlc3QodGVz
dCkpIGZvciB0ZXN0IGluIHRlc3RzX3RvX3J1bikKKyAgICAgICAgbmVlZHNfd2ViX3BsYXRmb3Jt
X3Rlc3Rfc2VydmVyID0gYW55KHNlbGYuX25lZWRzX3dlYl9wbGF0Zm9ybV90ZXN0KHRlc3QpIGZv
ciB0ZXN0IGluIHRlc3RzX3RvX3J1bikKKyAgICAgICAgbmVlZHNfd2Vic29ja2V0cyA9IGFueShz
ZWxmLl9pc193ZWJzb2NrZXRfdGVzdCh0ZXN0KSBmb3IgdGVzdCBpbiB0ZXN0c190b19ydW4pCisg
ICAgICAgIHNlbGYuX3J1bm5lciA9IExheW91dFRlc3RSdW5uZXIoc2VsZi5fb3B0aW9ucywgc2Vs
Zi5fcG9ydCwgc2VsZi5fcHJpbnRlciwgc2VsZi5fcmVzdWx0c19kaXJlY3RvcnksIHNlbGYuX3Rl
c3RfaXNfc2xvdywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZWVk
c19odHRwPW5lZWRzX2h0dHAsIG5lZWRzX3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlcj1uZWVkc193
ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIsIG5lZWRzX3dlYnNvY2tldHM9bmVlZHNfd2Vic29ja2V0
cykKKwogICAgICAgICBpZiBkZWZhdWx0X2RldmljZV90ZXN0czoKICAgICAgICAgICAgIF9sb2cu
aW5mbygnJykKICAgICAgICAgICAgIF9sb2cuaW5mbygiUnVubmluZyAlcyIsIHBsdXJhbGl6ZShs
ZW4odGVzdHNfdG9fcnVuKSwgInRlc3QiKSkKQEAgLTI1Nyw2ICsyNjMsNyBAQCBjbGFzcyBNYW5h
Z2VyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgcmV0cnlfcmVzdWx0cyA9IHJldHJ5X3Jlc3Vs
dHMubWVyZ2UoZGV2aWNlX3JldHJ5X3Jlc3VsdHMpIGlmIHJldHJ5X3Jlc3VsdHMgZWxzZSBkZXZp
Y2VfcmV0cnlfcmVzdWx0cwogICAgICAgICAgICAgICAgIGVuYWJsZWRfcGl4ZWxfdGVzdHNfaW5f
cmV0cnkgfD0gZGV2aWNlX2VuYWJsZWRfcGl4ZWxfdGVzdHNfaW5fcmV0cnkKIAorICAgICAgICBz
ZWxmLl9ydW5uZXIuc3RvcF9zZXJ2ZXJzKCkKICAgICAgICAgZW5kX3RpbWUgPSB0aW1lLnRpbWUo
KQogICAgICAgICByZXR1cm4gc2VsZi5fZW5kX3Rlc3RfcnVuKHN0YXJ0X3RpbWUsIGVuZF90aW1l
LCBpbml0aWFsX3Jlc3VsdHMsIHJldHJ5X3Jlc3VsdHMsIGVuYWJsZWRfcGl4ZWxfdGVzdHNfaW5f
cmV0cnkpCiAKQEAgLTMxOCwxMyArMzI1LDkgQEAgY2xhc3MgTWFuYWdlcihvYmplY3QpOgogICAg
ICAgICByZXR1cm4gdGVzdF9ydW5fcmVzdWx0cy5SdW5EZXRhaWxzKGV4aXRfY29kZSwgc3VtbWFy
aXplZF9yZXN1bHRzLCBpbml0aWFsX3Jlc3VsdHMsIHJldHJ5X3Jlc3VsdHMsIGVuYWJsZWRfcGl4
ZWxfdGVzdHNfaW5fcmV0cnkpCiAKICAgICBkZWYgX3J1bl90ZXN0cyhzZWxmLCB0ZXN0c190b19y
dW4sIHRlc3RzX3RvX3NraXAsIHJlcGVhdF9lYWNoLCBpdGVyYXRpb25zLCBudW1fd29ya2Vycywg
cmV0cnlpbmcpOgotICAgICAgICBuZWVkc19odHRwID0gYW55KChzZWxmLl9pc19odHRwX3Rlc3Qo
dGVzdCkgYW5kIG5vdCBzZWxmLl9uZWVkc193ZWJfcGxhdGZvcm1fdGVzdCh0ZXN0KSkgZm9yIHRl
c3QgaW4gdGVzdHNfdG9fcnVuKQotICAgICAgICBuZWVkc193ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2
ZXIgPSBhbnkoc2VsZi5fbmVlZHNfd2ViX3BsYXRmb3JtX3Rlc3QodGVzdCkgZm9yIHRlc3QgaW4g
dGVzdHNfdG9fcnVuKQotICAgICAgICBuZWVkc193ZWJzb2NrZXRzID0gYW55KHNlbGYuX2lzX3dl
YnNvY2tldF90ZXN0KHRlc3QpIGZvciB0ZXN0IGluIHRlc3RzX3RvX3J1bikKLQogICAgICAgICB0
ZXN0X2lucHV0cyA9IHNlbGYuX2dldF90ZXN0X2lucHV0cyh0ZXN0c190b19ydW4sIHJlcGVhdF9l
YWNoLCBpdGVyYXRpb25zKQogCi0gICAgICAgIHJldHVybiBzZWxmLl9ydW5uZXIucnVuX3Rlc3Rz
KHNlbGYuX2V4cGVjdGF0aW9ucywgdGVzdF9pbnB1dHMsIHRlc3RzX3RvX3NraXAsIG51bV93b3Jr
ZXJzLCBuZWVkc19odHRwLCBuZWVkc193ZWJzb2NrZXRzLCBuZWVkc193ZWJfcGxhdGZvcm1fdGVz
dF9zZXJ2ZXIsIHJldHJ5aW5nKQorICAgICAgICByZXR1cm4gc2VsZi5fcnVubmVyLnJ1bl90ZXN0
cyhzZWxmLl9leHBlY3RhdGlvbnMsIHRlc3RfaW5wdXRzLCB0ZXN0c190b19za2lwLCBudW1fd29y
a2VycywgcmV0cnlpbmcpCiAKICAgICBkZWYgX2NsZWFuX3VwX3J1bihzZWxmKToKICAgICAgICAg
X2xvZy5kZWJ1ZygiRmx1c2hpbmcgc3Rkb3V0IikKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyLnB5Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2Vi
X3BsYXRmb3JtX3Rlc3Rfc2VydmVyLnB5CShyZXZpc2lvbiAyMTc1NTkpCisrKyBUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZl
ci5weQkod29ya2luZyBjb3B5KQpAQCAtNTcsNiArNTcsOCBAQCBkZWYgYmFzZV91cmwocG9ydF9v
YmopOgogCiBkZWYgaXNfd3B0X3NlcnZlcl9ydW5uaW5nKHBvcnRfb2JqKToKICAgICBjb25maWcg
PSB3cHRfY29uZmlnX2pzb24ocG9ydF9vYmopCisgICAgaWYgbm90IGNvbmZpZzoKKyAgICAgICAg
cmV0dXJuIEZhbHNlCiAgICAgcmV0dXJuIGh0dHBfc2VydmVyX2Jhc2UuSHR0cFNlcnZlckJhc2Uu
X2lzX3J1bm5pbmdfb25fcG9ydChjb25maWdbInBvcnRzIl1bImh0dHAiXVswXSkKIAogCkluZGV4
OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL3dlYnNvY2tldF9z
ZXJ2ZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvc2VydmVycy93ZWJzb2NrZXRfc2VydmVyLnB5CShyZXZpc2lvbiAyMTc1NTkpCisrKyBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL3dlYnNvY2tldF9zZXJ2ZXIu
cHkJKHdvcmtpbmcgY29weSkKQEAgLTI5LDggKzI5LDEwIEBACiAKICIiIkEgY2xhc3MgdG8gaGVs
cCBzdGFydC9zdG9wIHRoZSBQeVdlYlNvY2tldCBzZXJ2ZXIgdXNlZCBieSBsYXlvdXQgdGVzdHMu
IiIiCiAKK2ltcG9ydCBlcnJubwogaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBvcworaW1wb3J0IHNv
Y2tldAogaW1wb3J0IHN5cwogaW1wb3J0IHRpbWUKIApAQCAtNDgsNiArNTAsMjcgQEAgY2xhc3Mg
UHlXZWJTb2NrZXQoaHR0cF9zZXJ2ZXIuTGlnaHR0cGQpOgogICAgIERFRkFVTFRfV1NfUE9SVCA9
IDg4ODAKICAgICBERUZBVUxUX1dTU19QT1JUID0gOTMyMwogCisgICAgQHN0YXRpY21ldGhvZAor
ICAgIGRlZiBpc19ydW5uaW5nKCk6CisgICAgICAgIGlmIFB5V2ViU29ja2V0LmlzX3J1bm5pbmdf
b25fcG9ydChQeVdlYlNvY2tldC5ERUZBVUxUX1dTX1BPUlQpOgorICAgICAgICAgICAgcmV0dXJu
IFRydWUKKyAgICAgICAgaWYgUHlXZWJTb2NrZXQuaXNfcnVubmluZ19vbl9wb3J0KFB5V2ViU29j
a2V0LkRFRkFVTFRfV1NTX1BPUlQpOgorICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAg
cmV0dXJuIEZhbHNlCisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIGlzX3J1bm5pbmdfb25f
cG9ydChwb3J0KToKKyAgICAgICAgcyA9IHNvY2tldC5zb2NrZXQoKQorICAgICAgICB0cnk6Cisg
ICAgICAgICAgICBzLmNvbm5lY3QoKCdsb2NhbGhvc3QnLCBwb3J0KSkKKyAgICAgICAgZXhjZXB0
IElPRXJyb3IsIGU6CisgICAgICAgICAgICBpZiBlLmVycm5vIG5vdCBpbiAoZXJybm8uRUNPTk5S
RUZVU0VELCBlcnJuby5FQ09OTlJFU0VUKToKKyAgICAgICAgICAgICAgICByYWlzZQorICAgICAg
ICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBzLmNsb3Nl
KCkKKyAgICAgICAgcmV0dXJuIFRydWUKKwogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwb3J0X29i
aiwgb3V0cHV0X2RpciwgcG9ydD1ERUZBVUxUX1dTX1BPUlQsCiAgICAgICAgICAgICAgICAgIHJv
b3Q9Tm9uZSwgdXNlX3Rscz1GYWxzZSwKICAgICAgICAgICAgICAgICAgcHJpdmF0ZV9rZXk9Tm9u
ZSwgY2VydGlmaWNhdGU9Tm9uZSwgY2FfY2VydGlmaWNhdGU9Tm9uZSwKSW5kZXg6IFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvcG9ydC9iYXNlLnB5CShyZXZpc2lvbiAyMTc1NTkpCisrKyBUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3BvcnQvYmFzZS5weQkod29ya2luZyBjb3B5KQpAQCAtMTI3LDYgKzEyNyw3IEBA
IGNsYXNzIFBvcnQob2JqZWN0KToKICAgICAgICAgc2VsZi5faGVscGVyID0gTm9uZQogICAgICAg
ICBzZWxmLl9odHRwX3NlcnZlciA9IE5vbmUKICAgICAgICAgc2VsZi5fd2Vic29ja2V0X3NlcnZl
ciA9IE5vbmUKKyAgICAgICAgc2VsZi5fd2Vic29ja2V0X3NlY3VyZV9zZXJ2ZXIgPSBOb25lCiAg
ICAgICAgIHNlbGYuX3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlciA9IE5vbmUKICAgICAgICAgc2Vs
Zi5faW1hZ2VfZGlmZmVyID0gTm9uZQogICAgICAgICBzZWxmLl9zZXJ2ZXJfcHJvY2Vzc19jb25z
dHJ1Y3RvciA9IHNlcnZlcl9wcm9jZXNzLlNlcnZlclByb2Nlc3MgICMgb3ZlcnJpZGFibGUgZm9y
IHRlc3RpbmcKQEAgLTk3Myw2ICs5NzQsMTEgQEAgY2xhc3MgUG9ydChvYmplY3QpOgogICAgIGRl
ZiBpc19odHRwX3NlcnZlcl9ydW5uaW5nKHNlbGYpOgogICAgICAgICByZXR1cm4gaHR0cF9zZXJ2
ZXJfYmFzZS5pc19odHRwX3NlcnZlcl9ydW5uaW5nKCkKIAorICAgIGRlZiBpc193ZWJzb2NrZXRf
c2VydmVyX3J1bm5pbmcoc2VsZik6CisgICAgICAgIGlmIHNlbGYuX3dlYnNvY2tldF9zZXJ2ZXIg
b3Igc2VsZi5fd2Vic29ja2V0X3NlY3VyZV9zZXJ2ZXI6CisgICAgICAgICAgICByZXR1cm4gd2Vi
c29ja2V0X3NlcnZlci5QeVdlYlNvY2tldC5pc19ydW5uaW5nKCkKKyAgICAgICAgcmV0dXJuIEZh
bHNlCisKICAgICBkZWYgaXNfd3B0X3NlcnZlcl9ydW5uaW5nKHNlbGYpOgogICAgICAgICByZXR1
cm4gd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyLmlzX3dwdF9zZXJ2ZXJfcnVubmluZyhzZWxmKQog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311526</attachid>
            <date>2017-05-30 12:07:28 -0700</date>
            <delta_ts>2017-05-30 14:08:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172176-20170530120727.patch</filename>
            <type>text/plain</type>
            <size>13172</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIxNzU2NCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM1IEBACisyMDE3LTA1LTMwICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweTogU3RhcnQgc2VydmVycyBiZWZvcmUgc2V0dGluZy11cCBm
b3IgdGVzdGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTcyMTc2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMjIyNTUzOD4KKworICAgICAgICBS
ZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgorCisgICAgICAgIE9uLWRldmljZSB0ZXN0
aW5nIHJlcXVpcmVzIHRoYXQgc2VydmVycyBhcmUgc3RhcnRlZCBiZWZvcmUgcG9ydHMgc2V0LXVw
IHRoZWlyCisgICAgICAgIHRlc3QgZW52aXJvbm1lbnRzLgorCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyLnB5Ogor
ICAgICAgICAoTGF5b3V0VGVzdFJ1bm5lci5fX2luaXRfXyk6IFN0YXJ0IHNlcnZlcnMgd2hlbiBp
bml0aWFsaXppbmcgTGF5b3V0VGVzdFJ1bm5lci4KKyAgICAgICAgU2VydmVycyBhcmUgdW5jb25k
aXRpb25hbGx5IHN0b3BwZWQgb24gZXhpdC4KKyAgICAgICAgKExheW91dFRlc3RSdW5uZXIucnVu
X3Rlc3RzKTogTW92ZSB0aGUgc3RhcnRpbmcgb2Ygc2VydmVycyB0byB0aGUgaW5pdGlhbGl6ZXIu
IFRoZQorICAgICAgICBNYW5hZ2VyIG5vdyBzdG9wcyBzZXJ2ZXJzLgorICAgICAgICAoTGF5b3V0
VGVzdFJ1bm5lci5zdGFydF9zZXJ2ZXJzKTogU2V0IGZsYWcgdG8gaW5kaWNhdGUgc2VydmVycyBh
cmUgcnVubmluZy4KKyAgICAgICAgKExheW91dFRlc3RSdW5uZXIuc3RvcF9zZXJ2ZXJzKTogQ2hl
Y2sgZmxhZywgb25seSBzaHV0ZG93biBzZXJ2ZXJzIGlmIHRoZXkgYXJlIHNodXRkb3duLgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIu
cHk6CisgICAgICAgIChNYW5hZ2VyLl9faW5pdF9fKTogRGVsYXkgY29uc3RydWN0aW9uIG9mIHRo
ZSB0ZXN0IHJ1bm5lciB1bnRpbCB3ZSBjYW4gZGV0ZXJtaW5lCisgICAgICAgIGlmIHNlcnZlcnMg
bmVlZCB0byBiZSBzdGFydGVkLgorICAgICAgICAoTWFuYWdlci5ydW4pOiBEZXRlcm1pbmUgaWYg
c2VydmVycyBuZWVkIHRvIGJlIHN0YXJ0ZWQgYW5kIGNvbnN0cnVjdCB0aGUgdGVzdCBydW5uZXIu
CisgICAgICAgIFNodXQgc2VydmVycyBkb3duIHdoZW4gdGhlIHRlc3QgcnVuIGlzIGZpbmlzaGVk
LgorICAgICAgICAoTWFuYWdlci5fcnVuX3Rlc3RzKTogTW92ZSB0aGUgZGV0ZXJtaW5hdGlvbiBv
ZiBzZXJ2ZXJzIHRvIHJ1biBpbnRvIE1hbmFnZXIucnVuLgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyLnB5Ogor
ICAgICAgICAoaXNfd3B0X3NlcnZlcl9ydW5uaW5nKTogU2VydmVyIGlzIG5vdCBydW5uaW5nIGlm
IG5vIGNvbmZpZyBpcyBmb3VuZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9zZXJ2ZXJzL3dlYnNvY2tldF9zZXJ2ZXIucHk6CisgICAgICAgIChQeVdlYlNvY2tldC5p
c19ydW5uaW5nKTogQ2hlY2sgaWYgdGhpcyBXZWJTb2NrZXQgc2VydmVyIGlzIHJ1bm5pbmcuCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L2Jhc2UucHk6CisgICAgICAgIChQb3J0Ll9f
aW5pdF9fKTogRGVmaW5lIHNlY3VyZSBXZWJTb2NrZXQgc2VydmVyLgorICAgICAgICAoUG9ydC50
by5pc193ZWJzb2NrZXRfc2VydmVyX3J1bm5pbmcpOiBDaGVjayBpZiBXZWJTb2NrZXQgc2VydmVy
cyBhcmUgZGVmaW5lZC4KKwogMjAxNy0wNS0zMCAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5G
dWppaUBzb255LmNvbT4KIAogICAgICAgICBbV2luQ2Fpcm9dIFRlc3RXZWJLaXRBUEk6IEFTU0VS
VElPTiBGQUlMRUQ6IG1fZWdsRGlzcGxheSA9PSBFR0xfTk9fRElTUExBWQpJbmRleDogVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVu
bmVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3Rz
L2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5lci5weQkocmV2aXNpb24gMjE3NTU5KQorKysg
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rl
c3RfcnVubmVyLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogCitpbXBvcnQgYXRleGl0CiBpbXBvcnQgbG9nZ2luZwogaW1w
b3J0IG1hdGgKIGltcG9ydCB0aHJlYWRpbmcKQEAgLTYxLDMzICs2MiwzNiBAQCBjbGFzcyBUZXN0
UnVuSW50ZXJydXB0ZWRFeGNlcHRpb24oRXhjZXB0CiAKIAogY2xhc3MgTGF5b3V0VGVzdFJ1bm5l
cihvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvcHRpb25zLCBwb3J0LCBwcmludGVy
LCByZXN1bHRzX2RpcmVjdG9yeSwgdGVzdF9pc19zbG93X2ZuKToKKyAgICBkZWYgX19pbml0X18o
c2VsZiwgb3B0aW9ucywgcG9ydCwgcHJpbnRlciwgcmVzdWx0c19kaXJlY3RvcnksIHRlc3RfaXNf
c2xvd19mbiwgbmVlZHNfaHR0cD1GYWxzZSwgbmVlZHNfd2Vic29ja2V0cz1GYWxzZSwgbmVlZHNf
d2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyPUZhbHNlKToKICAgICAgICAgc2VsZi5fb3B0aW9ucyA9
IG9wdGlvbnMKICAgICAgICAgc2VsZi5fcG9ydCA9IHBvcnQKICAgICAgICAgc2VsZi5fcHJpbnRl
ciA9IHByaW50ZXIKICAgICAgICAgc2VsZi5fcmVzdWx0c19kaXJlY3RvcnkgPSByZXN1bHRzX2Rp
cmVjdG9yeQogICAgICAgICBzZWxmLl90ZXN0X2lzX3Nsb3cgPSB0ZXN0X2lzX3Nsb3dfZm4KKyAg
ICAgICAgc2VsZi5fbmVlZHNfaHR0cCA9IG5lZWRzX2h0dHAKKyAgICAgICAgc2VsZi5fbmVlZHNf
d2Vic29ja2V0cyA9IG5lZWRzX3dlYnNvY2tldHMKKyAgICAgICAgc2VsZi5fbmVlZHNfd2ViX3Bs
YXRmb3JtX3Rlc3Rfc2VydmVyID0gbmVlZHNfd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyCisKICAg
ICAgICAgc2VsZi5fc2hhcmRlciA9IFNoYXJkZXIoc2VsZi5fcG9ydC5zcGxpdF90ZXN0KQogICAg
ICAgICBzZWxmLl9maWxlc3lzdGVtID0gc2VsZi5fcG9ydC5ob3N0LmZpbGVzeXN0ZW0KIAogICAg
ICAgICBzZWxmLl9leHBlY3RhdGlvbnMgPSBOb25lCiAgICAgICAgIHNlbGYuX3Rlc3RfaW5wdXRz
ID0gW10KLSAgICAgICAgc2VsZi5fbmVlZHNfaHR0cCA9IE5vbmUKLSAgICAgICAgc2VsZi5fbmVl
ZHNfd2Vic29ja2V0cyA9IE5vbmUKLSAgICAgICAgc2VsZi5fbmVlZHNfd2ViX3BsYXRmb3JtX3Rl
c3Rfc2VydmVyID0gTm9uZQogICAgICAgICBzZWxmLl9yZXRyeWluZyA9IEZhbHNlCiAgICAgICAg
IHNlbGYuX2N1cnJlbnRfcnVuX3Jlc3VsdHMgPSBOb25lCiAKKyAgICAgICAgaWYgKChzZWxmLl9u
ZWVkc19odHRwIGFuZCBzZWxmLl9vcHRpb25zLmh0dHApIG9yIHNlbGYuX25lZWRzX3dlYl9wbGF0
Zm9ybV90ZXN0X3NlcnZlcikgYW5kIHNlbGYuX3BvcnQuZ2V0X29wdGlvbigic3RhcnRfaHR0cF9z
ZXJ2ZXJzX2lmX25lZWRlZCIpOgorICAgICAgICAgICAgc2VsZi5zdGFydF9zZXJ2ZXJzKCkKKyAg
ICAgICAgICAgIGF0ZXhpdC5yZWdpc3RlcihsYW1iZGE6IHNlbGYuc3RvcF9zZXJ2ZXJzKCkpCisK
ICAgICBkZWYgZ2V0X3dvcmtlcl9jb3VudChzZWxmLCB0ZXN0X2lucHV0cywgY2hpbGRfcHJvY2Vz
c19jb3VudCk6CiAgICAgICAgIGFsbF9zaGFyZHMgPSBzZWxmLl9zaGFyZGVyLnNoYXJkX3Rlc3Rz
KHRlc3RfaW5wdXRzLCBjaGlsZF9wcm9jZXNzX2NvdW50LCBzZWxmLl9vcHRpb25zLmZ1bGx5X3Bh
cmFsbGVsKQogICAgICAgICByZXR1cm4gbWluKGNoaWxkX3Byb2Nlc3NfY291bnQsIGxlbihhbGxf
c2hhcmRzKSkKIAotICAgIGRlZiBydW5fdGVzdHMoc2VsZiwgZXhwZWN0YXRpb25zLCB0ZXN0X2lu
cHV0cywgdGVzdHNfdG9fc2tpcCwgbnVtX3dvcmtlcnMsIG5lZWRzX2h0dHAsIG5lZWRzX3dlYnNv
Y2tldHMsIG5lZWRzX3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlciwgcmV0cnlpbmcpOgorICAgIGRl
ZiBydW5fdGVzdHMoc2VsZiwgZXhwZWN0YXRpb25zLCB0ZXN0X2lucHV0cywgdGVzdHNfdG9fc2tp
cCwgbnVtX3dvcmtlcnMsIHJldHJ5aW5nKToKICAgICAgICAgc2VsZi5fZXhwZWN0YXRpb25zID0g
ZXhwZWN0YXRpb25zCiAgICAgICAgIHNlbGYuX3Rlc3RfaW5wdXRzID0gdGVzdF9pbnB1dHMKLSAg
ICAgICAgc2VsZi5fbmVlZHNfaHR0cCA9IG5lZWRzX2h0dHAKLSAgICAgICAgc2VsZi5fbmVlZHNf
d2Vic29ja2V0cyA9IG5lZWRzX3dlYnNvY2tldHMKLSAgICAgICAgc2VsZi5fbmVlZHNfd2ViX3Bs
YXRmb3JtX3Rlc3Rfc2VydmVyID0gbmVlZHNfd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyCisKICAg
ICAgICAgc2VsZi5fcmV0cnlpbmcgPSByZXRyeWluZwogCiAgICAgICAgICMgRklYTUU6IHJlbmFt
ZSBhbGwgdmFyaWFibGVzIHRvIHRlc3RfcnVuX3Jlc3VsdHMgb3Igc29tZSBzdWNoIC4uLgpAQCAt
MTA3LDEwICsxMTEsNiBAQCBjbGFzcyBMYXlvdXRUZXN0UnVubmVyKG9iamVjdCk6CiAgICAgICAg
IHNlbGYuX3ByaW50ZXIud3JpdGVfdXBkYXRlKCdTaGFyZGluZyB0ZXN0cyAuLi4nKQogICAgICAg
ICBhbGxfc2hhcmRzID0gc2VsZi5fc2hhcmRlci5zaGFyZF90ZXN0cyh0ZXN0X2lucHV0cywgaW50
KHNlbGYuX29wdGlvbnMuY2hpbGRfcHJvY2Vzc2VzKSwgc2VsZi5fb3B0aW9ucy5mdWxseV9wYXJh
bGxlbCkKIAotICAgICAgICBpZiAoc2VsZi5fbmVlZHNfaHR0cCBhbmQgc2VsZi5fb3B0aW9ucy5o
dHRwKSBvciBzZWxmLl9uZWVkc193ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXI6Ci0gICAgICAgICAg
ICBpZiBzZWxmLl9wb3J0LmdldF9vcHRpb24oInN0YXJ0X2h0dHBfc2VydmVyc19pZl9uZWVkZWQi
KToKLSAgICAgICAgICAgICAgICBzZWxmLnN0YXJ0X3NlcnZlcnMoKQotCiAgICAgICAgIHNlbGYu
X3ByaW50ZXIucHJpbnRfd29ya2Vyc19hbmRfc2hhcmRzKG51bV93b3JrZXJzLCBsZW4oYWxsX3No
YXJkcykpCiAKICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5kcnlfcnVuOgpAQCAtMTMxLDggKzEz
MSw2IEBAIGNsYXNzIExheW91dFRlc3RSdW5uZXIob2JqZWN0KToKICAgICAgICAgZXhjZXB0IEV4
Y2VwdGlvbiwgZToKICAgICAgICAgICAgIF9sb2cuZGVidWcoJyVzKCIlcyIpIHJhaXNlZCwgZXhp
dGluZycgJSAoZS5fX2NsYXNzX18uX19uYW1lX18sIHN0cihlKSkpCiAgICAgICAgICAgICByYWlz
ZQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgc2VsZi5zdG9wX3NlcnZlcnMoKQogCiAg
ICAgICAgIHJldHVybiBydW5fcmVzdWx0cwogCkBAIC0xODksMTMgKzE4NywxMyBAQCBjbGFzcyBM
YXlvdXRUZXN0UnVubmVyKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX2ludGVycnVwdF9pZl9hdF9m
YWlsdXJlX2xpbWl0cyhydW5fcmVzdWx0cykKIAogICAgIGRlZiBzdGFydF9zZXJ2ZXJzKHNlbGYp
OgotICAgICAgICBpZiBzZWxmLl9uZWVkc19odHRwOgorICAgICAgICBpZiBzZWxmLl9uZWVkc19o
dHRwIGFuZCBub3Qgc2VsZi5fcG9ydC5pc19odHRwX3NlcnZlcl9ydW5uaW5nKCk6CiAgICAgICAg
ICAgICBzZWxmLl9wcmludGVyLndyaXRlX3VwZGF0ZSgnU3RhcnRpbmcgSFRUUCBzZXJ2ZXIgLi4u
JykKICAgICAgICAgICAgIHNlbGYuX3BvcnQuc3RhcnRfaHR0cF9zZXJ2ZXIoKQotICAgICAgICBp
ZiBzZWxmLl9uZWVkc193ZWJzb2NrZXRzOgorICAgICAgICBpZiBzZWxmLl9uZWVkc193ZWJzb2Nr
ZXRzIGFuZCBub3Qgc2VsZi5fcG9ydC5pc193ZWJzb2NrZXRfc2VydmVyc19ydW5uaW5nKCk6CiAg
ICAgICAgICAgICBzZWxmLl9wcmludGVyLndyaXRlX3VwZGF0ZSgnU3RhcnRpbmcgV2ViU29ja2V0
IHNlcnZlciAuLi4nKQogICAgICAgICAgICAgc2VsZi5fcG9ydC5zdGFydF93ZWJzb2NrZXRfc2Vy
dmVyKCkKLSAgICAgICAgaWYgc2VsZi5fbmVlZHNfd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyOgor
ICAgICAgICBpZiBzZWxmLl9uZWVkc193ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIgYW5kIG5vdCBz
ZWxmLl9wb3J0LmlzX3dwdF9zZXJ2ZXJfcnVubmluZygpOgogICAgICAgICAgICAgc2VsZi5fcHJp
bnRlci53cml0ZV91cGRhdGUoJ1N0YXJ0aW5nIFdlYiBQbGF0Zm9ybSBUZXN0IHNlcnZlciAuLi4n
KQogICAgICAgICAgICAgc2VsZi5fcG9ydC5zdGFydF93ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIo
KQogCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVy
cy9tYW5hZ2VyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHkJKHJldmlzaW9uIDIxNzU1OSkKKysrIFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL21hbmFnZXIucHkJKHdv
cmtpbmcgY29weSkKQEAgLTg1LDcgKzg1LDcgQEAgY2xhc3MgTWFuYWdlcihvYmplY3QpOgogICAg
ICAgICBzZWxmLkxBWU9VVF9URVNUU19ESVJFQ1RPUlkgPSAnTGF5b3V0VGVzdHMnCiAgICAgICAg
IHNlbGYuX3Jlc3VsdHNfZGlyZWN0b3J5ID0gc2VsZi5fcG9ydC5yZXN1bHRzX2RpcmVjdG9yeSgp
CiAgICAgICAgIHNlbGYuX2ZpbmRlciA9IExheW91dFRlc3RGaW5kZXIoc2VsZi5fcG9ydCwgc2Vs
Zi5fb3B0aW9ucykKLSAgICAgICAgc2VsZi5fcnVubmVyID0gTGF5b3V0VGVzdFJ1bm5lcihzZWxm
Ll9vcHRpb25zLCBzZWxmLl9wb3J0LCBzZWxmLl9wcmludGVyLCBzZWxmLl9yZXN1bHRzX2RpcmVj
dG9yeSwgc2VsZi5fdGVzdF9pc19zbG93KQorICAgICAgICBzZWxmLl9ydW5uZXIgPSBOb25lCiAK
ICAgICAgICAgdGVzdF9vcHRpb25zX2pzb25fcGF0aCA9IHNlbGYuX3BvcnQucGF0aF9mcm9tX3dl
YmtpdF9iYXNlKHNlbGYuTEFZT1VUX1RFU1RTX0RJUkVDVE9SWSwgInRlc3RzLW9wdGlvbnMuanNv
biIpCiAgICAgICAgIHNlbGYuX3Rlc3RzX29wdGlvbnMgPSBqc29uLmxvYWRzKHNlbGYuX2ZpbGVz
eXN0ZW0ucmVhZF90ZXh0X2ZpbGUodGVzdF9vcHRpb25zX2pzb25fcGF0aCkpIGlmIHNlbGYuX2Zp
bGVzeXN0ZW0uZXhpc3RzKHRlc3Rfb3B0aW9uc19qc29uX3BhdGgpIGVsc2Uge30KQEAgLTIzMyw2
ICsyMzMsMTIgQEAgY2xhc3MgTWFuYWdlcihvYmplY3QpOgogICAgICAgICByZXRyeV9yZXN1bHRz
ID0gTm9uZQogICAgICAgICBlbmFibGVkX3BpeGVsX3Rlc3RzX2luX3JldHJ5ID0gRmFsc2UKIAor
ICAgICAgICBuZWVkc19odHRwID0gYW55KChzZWxmLl9pc19odHRwX3Rlc3QodGVzdCkgYW5kIG5v
dCBzZWxmLl9uZWVkc193ZWJfcGxhdGZvcm1fdGVzdCh0ZXN0KSkgZm9yIHRlc3QgaW4gdGVzdHNf
dG9fcnVuKQorICAgICAgICBuZWVkc193ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIgPSBhbnkoc2Vs
Zi5fbmVlZHNfd2ViX3BsYXRmb3JtX3Rlc3QodGVzdCkgZm9yIHRlc3QgaW4gdGVzdHNfdG9fcnVu
KQorICAgICAgICBuZWVkc193ZWJzb2NrZXRzID0gYW55KHNlbGYuX2lzX3dlYnNvY2tldF90ZXN0
KHRlc3QpIGZvciB0ZXN0IGluIHRlc3RzX3RvX3J1bikKKyAgICAgICAgc2VsZi5fcnVubmVyID0g
TGF5b3V0VGVzdFJ1bm5lcihzZWxmLl9vcHRpb25zLCBzZWxmLl9wb3J0LCBzZWxmLl9wcmludGVy
LCBzZWxmLl9yZXN1bHRzX2RpcmVjdG9yeSwgc2VsZi5fdGVzdF9pc19zbG93LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5lZWRzX2h0dHA9bmVlZHNfaHR0cCwgbmVl
ZHNfd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyPW5lZWRzX3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZl
ciwgbmVlZHNfd2Vic29ja2V0cz1uZWVkc193ZWJzb2NrZXRzKQorCiAgICAgICAgIGlmIGRlZmF1
bHRfZGV2aWNlX3Rlc3RzOgogICAgICAgICAgICAgX2xvZy5pbmZvKCcnKQogICAgICAgICAgICAg
X2xvZy5pbmZvKCJSdW5uaW5nICVzIiwgcGx1cmFsaXplKGxlbih0ZXN0c190b19ydW4pLCAidGVz
dCIpKQpAQCAtMjU3LDYgKzI2Myw3IEBAIGNsYXNzIE1hbmFnZXIob2JqZWN0KToKICAgICAgICAg
ICAgICAgICByZXRyeV9yZXN1bHRzID0gcmV0cnlfcmVzdWx0cy5tZXJnZShkZXZpY2VfcmV0cnlf
cmVzdWx0cykgaWYgcmV0cnlfcmVzdWx0cyBlbHNlIGRldmljZV9yZXRyeV9yZXN1bHRzCiAgICAg
ICAgICAgICAgICAgZW5hYmxlZF9waXhlbF90ZXN0c19pbl9yZXRyeSB8PSBkZXZpY2VfZW5hYmxl
ZF9waXhlbF90ZXN0c19pbl9yZXRyeQogCisgICAgICAgIHNlbGYuX3J1bm5lci5zdG9wX3NlcnZl
cnMoKQogICAgICAgICBlbmRfdGltZSA9IHRpbWUudGltZSgpCiAgICAgICAgIHJldHVybiBzZWxm
Ll9lbmRfdGVzdF9ydW4oc3RhcnRfdGltZSwgZW5kX3RpbWUsIGluaXRpYWxfcmVzdWx0cywgcmV0
cnlfcmVzdWx0cywgZW5hYmxlZF9waXhlbF90ZXN0c19pbl9yZXRyeSkKIApAQCAtMzE4LDEzICsz
MjUsOSBAQCBjbGFzcyBNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgIHJldHVybiB0ZXN0X3J1bl9y
ZXN1bHRzLlJ1bkRldGFpbHMoZXhpdF9jb2RlLCBzdW1tYXJpemVkX3Jlc3VsdHMsIGluaXRpYWxf
cmVzdWx0cywgcmV0cnlfcmVzdWx0cywgZW5hYmxlZF9waXhlbF90ZXN0c19pbl9yZXRyeSkKIAog
ICAgIGRlZiBfcnVuX3Rlc3RzKHNlbGYsIHRlc3RzX3RvX3J1biwgdGVzdHNfdG9fc2tpcCwgcmVw
ZWF0X2VhY2gsIGl0ZXJhdGlvbnMsIG51bV93b3JrZXJzLCByZXRyeWluZyk6Ci0gICAgICAgIG5l
ZWRzX2h0dHAgPSBhbnkoKHNlbGYuX2lzX2h0dHBfdGVzdCh0ZXN0KSBhbmQgbm90IHNlbGYuX25l
ZWRzX3dlYl9wbGF0Zm9ybV90ZXN0KHRlc3QpKSBmb3IgdGVzdCBpbiB0ZXN0c190b19ydW4pCi0g
ICAgICAgIG5lZWRzX3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlciA9IGFueShzZWxmLl9uZWVkc193
ZWJfcGxhdGZvcm1fdGVzdCh0ZXN0KSBmb3IgdGVzdCBpbiB0ZXN0c190b19ydW4pCi0gICAgICAg
IG5lZWRzX3dlYnNvY2tldHMgPSBhbnkoc2VsZi5faXNfd2Vic29ja2V0X3Rlc3QodGVzdCkgZm9y
IHRlc3QgaW4gdGVzdHNfdG9fcnVuKQotCiAgICAgICAgIHRlc3RfaW5wdXRzID0gc2VsZi5fZ2V0
X3Rlc3RfaW5wdXRzKHRlc3RzX3RvX3J1biwgcmVwZWF0X2VhY2gsIGl0ZXJhdGlvbnMpCiAKLSAg
ICAgICAgcmV0dXJuIHNlbGYuX3J1bm5lci5ydW5fdGVzdHMoc2VsZi5fZXhwZWN0YXRpb25zLCB0
ZXN0X2lucHV0cywgdGVzdHNfdG9fc2tpcCwgbnVtX3dvcmtlcnMsIG5lZWRzX2h0dHAsIG5lZWRz
X3dlYnNvY2tldHMsIG5lZWRzX3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlciwgcmV0cnlpbmcpCisg
ICAgICAgIHJldHVybiBzZWxmLl9ydW5uZXIucnVuX3Rlc3RzKHNlbGYuX2V4cGVjdGF0aW9ucywg
dGVzdF9pbnB1dHMsIHRlc3RzX3RvX3NraXAsIG51bV93b3JrZXJzLCByZXRyeWluZykKIAogICAg
IGRlZiBfY2xlYW5fdXBfcnVuKHNlbGYpOgogICAgICAgICBfbG9nLmRlYnVnKCJGbHVzaGluZyBz
dGRvdXQiKQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVy
cy93ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvc2VydmVycy93ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIu
cHkJKHJldmlzaW9uIDIxNzU1OSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3NlcnZlcnMvd2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyLnB5CSh3b3JraW5nIGNvcHkpCkBA
IC01Nyw2ICs1Nyw4IEBAIGRlZiBiYXNlX3VybChwb3J0X29iaik6CiAKIGRlZiBpc193cHRfc2Vy
dmVyX3J1bm5pbmcocG9ydF9vYmopOgogICAgIGNvbmZpZyA9IHdwdF9jb25maWdfanNvbihwb3J0
X29iaikKKyAgICBpZiBub3QgY29uZmlnOgorICAgICAgICByZXR1cm4gRmFsc2UKICAgICByZXR1
cm4gaHR0cF9zZXJ2ZXJfYmFzZS5IdHRwU2VydmVyQmFzZS5faXNfcnVubmluZ19vbl9wb3J0KGNv
bmZpZ1sicG9ydHMiXVsiaHR0cCJdWzBdKQogCiAKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2Vic29ja2V0X3NlcnZlci5weQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9zZXJ2ZXJzL3dlYnNvY2tldF9z
ZXJ2ZXIucHkJKHJldmlzaW9uIDIxNzU1OSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL3NlcnZlcnMvd2Vic29ja2V0X3NlcnZlci5weQkod29ya2luZyBjb3B5KQpAQCAt
MjksOCArMjksMTAgQEAKIAogIiIiQSBjbGFzcyB0byBoZWxwIHN0YXJ0L3N0b3AgdGhlIFB5V2Vi
U29ja2V0IHNlcnZlciB1c2VkIGJ5IGxheW91dCB0ZXN0cy4iIiIKIAoraW1wb3J0IGVycm5vCiBp
bXBvcnQgbG9nZ2luZwogaW1wb3J0IG9zCitpbXBvcnQgc29ja2V0CiBpbXBvcnQgc3lzCiBpbXBv
cnQgdGltZQogCkBAIC01Niw3ICs1OCw3IEBAIGNsYXNzIFB5V2ViU29ja2V0KGh0dHBfc2VydmVy
LkxpZ2h0dHBkKToKICAgICAgICAgICBvdXRwdXRfZGlyOiB0aGUgYWJzb2x1dGUgcGF0aCB0byB0
aGUgbGF5b3V0IHRlc3QgcmVzdWx0IGRpcmVjdG9yeQogICAgICAgICAiIiIKICAgICAgICAgaHR0
cF9zZXJ2ZXIuTGlnaHR0cGQuX19pbml0X18oc2VsZiwgcG9ydF9vYmosIG91dHB1dF9kaXIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcnQ9UHlXZWJTb2NrZXQuREVG
QVVMVF9XU19QT1JULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0
PXBvcnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvb3Q9cm9vdCkK
ICAgICAgICAgc2VsZi5fb3V0cHV0X2RpciA9IG91dHB1dF9kaXIKICAgICAgICAgc2VsZi5fcGlk
X2ZpbGUgPSBwaWRmaWxlCkBAIC0xMDYsNiArMTA4LDE4IEBAIGNsYXNzIFB5V2ViU29ja2V0KGh0
dHBfc2VydmVyLkxpZ2h0dHBkKToKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIHNlbGYuX2xv
Z19wcmVmaXggPSBfV1NfTE9HX05BTUUKIAorICAgIGRlZiBpc19ydW5uaW5nKHNlbGYpOgorICAg
ICAgICBzID0gc29ja2V0LnNvY2tldCgpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHMuY29u
bmVjdCgoJ2xvY2FsaG9zdCcsIHNlbGYuX3BvcnQpKQorICAgICAgICBleGNlcHQgSU9FcnJvciwg
ZToKKyAgICAgICAgICAgIGlmIGUuZXJybm8gbm90IGluIChlcnJuby5FQ09OTlJFRlVTRUQsIGVy
cm5vLkVDT05OUkVTRVQpOgorICAgICAgICAgICAgICAgIHJhaXNlCisgICAgICAgICAgICByZXR1
cm4gRmFsc2UKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHMuY2xvc2UoKQorICAgICAg
ICByZXR1cm4gVHJ1ZQorCiAgICAgZGVmIHBvcnRzX3RvX2ZvcndhcmQoc2VsZik6CiAgICAgICAg
IHJldHVybiBbc2VsZi5fcG9ydF0KIApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0
L2Jhc2UucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2Jhc2Uu
cHkJKHJldmlzaW9uIDIxNzU1OSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNl
LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0xMjcsNiArMTI3LDcgQEAgY2xhc3MgUG9ydChvYmplY3Qp
OgogICAgICAgICBzZWxmLl9oZWxwZXIgPSBOb25lCiAgICAgICAgIHNlbGYuX2h0dHBfc2VydmVy
ID0gTm9uZQogICAgICAgICBzZWxmLl93ZWJzb2NrZXRfc2VydmVyID0gTm9uZQorICAgICAgICBz
ZWxmLl93ZWJzb2NrZXRfc2VjdXJlX3NlcnZlciA9IE5vbmUKICAgICAgICAgc2VsZi5fd2ViX3Bs
YXRmb3JtX3Rlc3Rfc2VydmVyID0gTm9uZQogICAgICAgICBzZWxmLl9pbWFnZV9kaWZmZXIgPSBO
b25lCiAgICAgICAgIHNlbGYuX3NlcnZlcl9wcm9jZXNzX2NvbnN0cnVjdG9yID0gc2VydmVyX3By
b2Nlc3MuU2VydmVyUHJvY2VzcyAgIyBvdmVycmlkYWJsZSBmb3IgdGVzdGluZwpAQCAtOTczLDYg
Kzk3NCwxMyBAQCBjbGFzcyBQb3J0KG9iamVjdCk6CiAgICAgZGVmIGlzX2h0dHBfc2VydmVyX3J1
bm5pbmcoc2VsZik6CiAgICAgICAgIHJldHVybiBodHRwX3NlcnZlcl9iYXNlLmlzX2h0dHBfc2Vy
dmVyX3J1bm5pbmcoKQogCisgICAgZGVmIGlzX3dlYnNvY2tldF9zZXJ2ZXJzX3J1bm5pbmcoc2Vs
Zik6CisgICAgICAgIGlmIHNlbGYuX3dlYnNvY2tldF9zZWN1cmVfc2VydmVyIGFuZCBzZWxmLl93
ZWJzb2NrZXRfc2VydmVyOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuX3dlYnNvY2tldF9zZWN1
cmVfc2VydmVyLmlzX3J1bm5pbmcoKSBhbmQgc2VsZi5fd2Vic29ja2V0X3NlcnZlci5pc19ydW5u
aW5nKCkKKyAgICAgICAgZWxpZiBzZWxmLl93ZWJzb2NrZXRfc2VydmVyOgorICAgICAgICAgICAg
cmV0dXJuIHNlbGYuX3dlYnNvY2tldF9zZXJ2ZXIuaXNfcnVubmluZygpCisgICAgICAgIHJldHVy
biBGYWxzZQorCiAgICAgZGVmIGlzX3dwdF9zZXJ2ZXJfcnVubmluZyhzZWxmKToKICAgICAgICAg
cmV0dXJuIHdlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlci5pc193cHRfc2VydmVyX3J1bm5pbmcoc2Vs
ZikKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>