<?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>172002</bug_id>
          
          <creation_ts>2017-05-11 17:05:28 -0700</creation_ts>
          <short_desc>webkitpy: Properly number duplicated crashlogs</short_desc>
          <delta_ts>2017-07-03 13:15:09 -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>Other</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=171976</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=172039</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>glenn</cc>
    
    <cc>lforschler</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1307610</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-05-11 17:05:28 -0700</bug_when>
    <thetext>Currently, if a single process has multiple crashlogs, we will number them like so:

crash.log
crash-1.log
crash-1-1.log
crash-1-1-1.log

This doesn&apos;t make much since, these should be increasing integer numbers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307611</commentid>
    <comment_count>1</comment_count>
      <attachid>309827</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-05-11 17:08:40 -0700</bug_when>
    <thetext>Created attachment 309827
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307928</commentid>
    <comment_count>2</comment_count>
      <attachid>309827</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-05-12 10:31:07 -0700</bug_when>
    <thetext>Comment on attachment 309827
Patch

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

&gt; Tools/Scripts/webkitpy/common/system/crashlogs.py:157
&gt; +                    original_result = result_name

Maybe a better name for this variable would be original_result_name?

Maybe it would be more idiomatic to generate the unique name in a new local variable instead of mutating result_name? Like:

count = 1
unique_name = result_name
while unique_name in crash_logs:
    unique_name = result_name + &apos;-&apos; count
    count += 1
crash_logs[unique_name] = errors + log_contents

&gt; Tools/Scripts/webkitpy/common/system/crashlogs.py:158
&gt;                      while result_name in crash_logs:

I am assuming the intention of this code is to handle process ID reuse when requesting all logs regardless of modification time. Such a situation is most likely to occur as a result of running run-webkit-tests between machine restarts. I suggest that we add a comment above line 156 to explain the purpose of this code. We should also add a comment to explain that the formatting of result_name must be kept synchronized with the parsing logic in DarwinPort._merge_crash_logs(). On that note, we could change crash_logs to be a different data structure (say, an array to tuples of the form (process name, process id, crash log contents)) and avoid the need to compute this unique encoded string solely to pass the process id and process name info to DarwinPort._merge_crash_logs().

&gt; Tools/Scripts/webkitpy/common/system/crashlogs.py:159
&gt; +                        result_name = original_result + &apos;-{}&apos;.format(count)

It seems sufficient and more concise to use string concatenation to compute the new candidate name:

result_name = original_result_name + &apos;-&apos; + count

&gt; Tools/Scripts/webkitpy/common/system/crashlogs_unittest.py:250
&gt; +        self.files[&apos;/Users/mock/Library/Logs/DiagnosticReports/DumpRenderTree_2011-06-13-150718_double_quadzen.crash&apos;] = self.older_mock_crash_report
&gt; +        self.files[&apos;/Users/mock/Library/Logs/DiagnosticReports/DumpRenderTree_2011-06-13-150718_triple_quadzen.crash&apos;] = self.older_mock_crash_report

I suggest that we try to use filenames that convey the scenario we want to handle. Maybe substitute DumpRenderTree_2011-06-13-150718_quadzen_after_reboot_1.crash and DumpRenderTree_2011-06-13-150718_quadzen_after_reboot_2.crash for DumpRenderTree_2011-06-13-150718_double_quadzen.crash and DumpRenderTree_2011-06-13-150718_triple_quadzen.crash, respectively.

&gt; Tools/Scripts/webkitpy/common/system/crashlogs_unittest.py:284
&gt; +        self.assertTrue(&apos;DumpRenderTree-28528&apos; in all_logs)
&gt; +        self.assertTrue(&apos;DumpRenderTree-28528-1&apos; in all_logs)
&gt; +        self.assertTrue(&apos;DumpRenderTree-28528-2&apos; in all_logs)

For your consideration, I suggest that we assert that all of the keys in all_logs match some hardcoded expected array of keys regardless of key ordering. The benefit of this approach is that it ensures that our uniqueness algorithm does not generate a bad name (e.g. DumpRenderTree-28528-0).

&gt; Tools/Scripts/webkitpy/common/system/crashlogs_unittest.py:287
&gt; +        self.assertTrue(&apos;DumpRenderTree-28528-0&apos; not in all_logs)
&gt; +        self.assertTrue(&apos;DumpRenderTree-28528-1-1&apos; not in all_logs)

This tests do not seem meaningful as singularities as many values are not in all_logs. We can accomplish the same testing as part of asserting all the keys in all_logs. See my above remark for more details.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307931</commentid>
    <comment_count>3</comment_count>
      <attachid>309827</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-05-12 10:36:53 -0700</bug_when>
    <thetext>Comment on attachment 309827
Patch

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

&gt;&gt; Tools/Scripts/webkitpy/common/system/crashlogs.py:158
&gt;&gt;                      while result_name in crash_logs:
&gt; 
&gt; I am assuming the intention of this code is to handle process ID reuse when requesting all logs regardless of modification time. Such a situation is most likely to occur as a result of running run-webkit-tests between machine restarts. I suggest that we add a comment above line 156 to explain the purpose of this code. We should also add a comment to explain that the formatting of result_name must be kept synchronized with the parsing logic in DarwinPort._merge_crash_logs(). On that note, we could change crash_logs to be a different data structure (say, an array to tuples of the form (process name, process id, crash log contents)) and avoid the need to compute this unique encoded string solely to pass the process id and process name info to DarwinPort._merge_crash_logs().

I&apos;ve seen this in practice with Sandbox violations on device (it&apos;s actually pretty common).  Often, a sandbox violation will generate a &apos;crash&apos; log, but the process will keep running.  As a result, we can get multiple logs from a single process. Since the system is classifying them as crash logs, I think we should too. Given that this is not intuitive, I will place a comment here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307950</commentid>
    <comment_count>4</comment_count>
      <attachid>309917</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-05-12 10:57:20 -0700</bug_when>
    <thetext>Created attachment 309917
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307960</commentid>
    <comment_count>5</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-05-12 11:22:02 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #4)
&gt; Created attachment 309917 [details]
&gt; Patch

Updated the patch for Dan&apos;s comments.

I did not mention that we are trying to prevent breakage in DarwinPort._merge_crash_logs().  I don&apos;t think that detail is relevant, it&apos;s up to _merge_crash_logs() to conform with what is returned from this function, not the other way around.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307970</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-05-12 11:40:42 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #5)
&gt; (In reply to Jonathan Bedard from comment #4)
&gt; &gt; Created attachment 309917 [details]
&gt; &gt; Patch
&gt; 
&gt; Updated the patch for Dan&apos;s comments.
&gt; 
&gt; I did not mention that we are trying to prevent breakage in
&gt; DarwinPort._merge_crash_logs().  I don&apos;t think that detail is relevant, it&apos;s
&gt; up to _merge_crash_logs() to conform with what is returned from this
&gt; function, not the other way around.

Do we have unit tests for _merge_crash_logs()? If not, we should add some to catch a regression in the format of the crash_log key in _find_all_logs_darwin().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307977</commentid>
    <comment_count>7</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-05-12 11:57:34 -0700</bug_when>
    <thetext>(In reply to Daniel Bates from comment #6)
&gt; (In reply to Jonathan Bedard from comment #5)
&gt; &gt; (In reply to Jonathan Bedard from comment #4)
&gt; &gt; &gt; Created attachment 309917 [details]
&gt; &gt; &gt; Patch
&gt; &gt; 
&gt; &gt; Updated the patch for Dan&apos;s comments.
&gt; &gt; 
&gt; &gt; I did not mention that we are trying to prevent breakage in
&gt; &gt; DarwinPort._merge_crash_logs().  I don&apos;t think that detail is relevant, it&apos;s
&gt; &gt; up to _merge_crash_logs() to conform with what is returned from this
&gt; &gt; function, not the other way around.
&gt; 
&gt; Do we have unit tests for _merge_crash_logs()? If not, we should add some to
&gt; catch a regression in the format of the crash_log key in
&gt; _find_all_logs_darwin().

We do not have unit tests for this at the moment.

I filed https://bugs.webkit.org/show_bug.cgi?id=172039 to track this.

Dan pointed out that until we test _merge_crash_logs, we should mention how _merge_crash_logs parses names.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1307989</commentid>
    <comment_count>8</comment_count>
      <attachid>309926</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-05-12 12:17:42 -0700</bug_when>
    <thetext>Created attachment 309926
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1325140</commentid>
    <comment_count>9</comment_count>
      <attachid>309926</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2017-07-03 09:43:48 -0700</bug_when>
    <thetext>Comment on attachment 309926
Patch

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

looks good to me.

&gt; Tools/Scripts/webkitpy/common/system/crashlogs.py:156
&gt; +                    # Processes can remain running after Sanbox violations, which generate crash logs.

Typo &quot;Sanbox&quot; =&gt; &quot;Sandbox&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1325165</commentid>
    <comment_count>10</comment_count>
      <attachid>314496</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-07-03 10:50:23 -0700</bug_when>
    <thetext>Created attachment 314496
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1325217</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-03 13:14:46 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 314496:

workers/bomb.html bug 171985 (author: fpizlo@apple.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1325218</commentid>
    <comment_count>12</comment_count>
      <attachid>314496</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-03 13:15:07 -0700</bug_when>
    <thetext>Comment on attachment 314496
Patch for landing

Clearing flags on attachment: 314496

Committed r219088: &lt;http://trac.webkit.org/changeset/219088&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1325219</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-03 13:15:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309827</attachid>
            <date>2017-05-11 17:08:40 -0700</date>
            <delta_ts>2017-05-12 10:57:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172002-20170511170839.patch</filename>
            <type>text/plain</type>
            <size>4476</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIxNjcwNCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE4IEBACisyMDE3LTA1LTExICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweTogUHJvcGVybHkgbnVtYmVyIGR1cGxpY2F0ZWQgY3Jhc2hs
b2dzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIw
MDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9jcmFzaGxvZ3MucHk6CisgICAgICAgIChDcmFz
aExvZ3MuX2ZpbmRfYWxsX2xvZ3NfZGFyd2luKTogTnVtYmVyIG11bHRpcGxlIGNyYXNoIGxvZ3Mg
Zm9yIGEgc2luZ2xlIHByb2Nlc3Mgd2l0aAorICAgICAgICBhbiBpbmNyZWFzaW5nIGludGVnZXIu
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2NyYXNobG9nc191bml0
dGVzdC5weToKKyAgICAgICAgKENyYXNoTG9nc1Rlc3QuY3JlYXRlX2NyYXNoX2xvZ3NfZGFyd2lu
KTogQ3JlYXRlIGR1cGxpY2F0ZWQgY3Jhc2hsb2cgZm9yIHRlc3RpbmcuCisgICAgICAgIChDcmFz
aExvZ3NUZXN0LnRlc3RfZmluZF9hbGxfbG9nX2Rhcndpbik6IE5vdyA3IERhcndpbiBsb2dzIGlu
c3RlYWQgb2YgNS4KKyAgICAgICAgKENyYXNoTG9nc1Rlc3QudGVzdF9kdXBsaWNhdGVfbG9nX2Rh
cndpbik6IFRlc3QgdGhhdCBkdXBsaWNhdGVkIGxvZ3MgYXJlIGNvcnJlY3RseSBudW1iZXJlZC4K
KwogMjAxNy0wNS0xMSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJFR1JFU1NJT04ocjIxNjIxNyk6IGxsZGJfd2Via2l0LnB5IG5vIGxvbmdlciBwcmlu
dHMgb3V0IGEgV1RGU3RyaW5nLCBTdHJpbmdJbXBsIG5lZWRzIHRvIGhhbmRsZSBTdHJpbmdJbXBs
U2hhcGUgY2hhbmdlCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0v
Y3Jhc2hsb2dzLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L3N5c3RlbS9jcmFzaGxvZ3MucHkJKHJldmlzaW9uIDIxNjYwMSkKKysrIFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL3N5c3RlbS9jcmFzaGxvZ3MucHkJKHdvcmtpbmcgY29weSkKQEAgLTE1
Myw4ICsxNTMsMTEgQEAgY2xhc3MgQ3Jhc2hMb2dzKG9iamVjdCk6CiAgICAgICAgICAgICAgICAg
ICAgICAgICBwaWQgPSBzdHIobWF0Y2guZ3JvdXAoJ3BpZCcpKQogICAgICAgICAgICAgICAgICAg
ICAgICAgcmVzdWx0X25hbWUgPSBwcm9jZXNzX25hbWUgKyAiLSIgKyBwaWQKIAorICAgICAgICAg
ICAgICAgICAgICBjb3VudCA9IDEKKyAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxfcmVzdWx0
ID0gcmVzdWx0X25hbWUKICAgICAgICAgICAgICAgICAgICAgd2hpbGUgcmVzdWx0X25hbWUgaW4g
Y3Jhc2hfbG9nczoKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdF9uYW1lID0gcmVzdWx0
X25hbWUgKyAiLTEiCisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRfbmFtZSA9IG9yaWdp
bmFsX3Jlc3VsdCArICcte30nLmZvcm1hdChjb3VudCkKKyAgICAgICAgICAgICAgICAgICAgICAg
IGNvdW50ICs9IDEKICAgICAgICAgICAgICAgICAgICAgY3Jhc2hfbG9nc1tyZXN1bHRfbmFtZV0g
PSBlcnJvcnMgKyBsb2dfY29udGVudHMKICAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yLCBlOgog
ICAgICAgICAgICAgICAgIGlmIGluY2x1ZGVfZXJyb3JzOgpJbmRleDogVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vc3lzdGVtL2NyYXNobG9nc191bml0dGVzdC5weQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vY3Jhc2hsb2dzX3VuaXR0ZXN0
LnB5CShyZXZpc2lvbiAyMTY2MDEpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9z
eXN0ZW0vY3Jhc2hsb2dzX3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yNDYsNiArMjQ2
LDggQEAgY2xhc3MgQ3Jhc2hMb2dzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNl
bGYubWlzZm9ybWF0dGVkX21vY2tfY3Jhc2hfcmVwb3J0ID0gJ0p1bmsgdGhhdCBzaG91bGQgbm90
IGFwcGVhciBpbiBhIGNyYXNoIHJlcG9ydCcgKyBtYWtlX21vY2tfY3Jhc2hfcmVwb3J0X2Rhcndp
bignRHVtcFJlbmRlclRyZWUnLCAyODUyNilbMjAwOl0KICAgICAgICAgc2VsZi5maWxlcyA9IHt9
CiAgICAgICAgIHNlbGYuZmlsZXNbJy9Vc2Vycy9tb2NrL0xpYnJhcnkvTG9ncy9EaWFnbm9zdGlj
UmVwb3J0cy9EdW1wUmVuZGVyVHJlZV8yMDExLTA2LTEzLTE1MDcxOF9xdWFkemVuLmNyYXNoJ10g
PSBzZWxmLm9sZGVyX21vY2tfY3Jhc2hfcmVwb3J0CisgICAgICAgIHNlbGYuZmlsZXNbJy9Vc2Vy
cy9tb2NrL0xpYnJhcnkvTG9ncy9EaWFnbm9zdGljUmVwb3J0cy9EdW1wUmVuZGVyVHJlZV8yMDEx
LTA2LTEzLTE1MDcxOF9kb3VibGVfcXVhZHplbi5jcmFzaCddID0gc2VsZi5vbGRlcl9tb2NrX2Ny
YXNoX3JlcG9ydAorICAgICAgICBzZWxmLmZpbGVzWycvVXNlcnMvbW9jay9MaWJyYXJ5L0xvZ3Mv
RGlhZ25vc3RpY1JlcG9ydHMvRHVtcFJlbmRlclRyZWVfMjAxMS0wNi0xMy0xNTA3MThfdHJpcGxl
X3F1YWR6ZW4uY3Jhc2gnXSA9IHNlbGYub2xkZXJfbW9ja19jcmFzaF9yZXBvcnQKICAgICAgICAg
c2VsZi5maWxlc1snL1VzZXJzL21vY2svTGlicmFyeS9Mb2dzL0RpYWdub3N0aWNSZXBvcnRzL0R1
bXBSZW5kZXJUcmVlXzIwMTEtMDYtMTMtMTUwNzE5X3F1YWR6ZW4uY3Jhc2gnXSA9IHNlbGYubW9j
a19jcmFzaF9yZXBvcnQKICAgICAgICAgc2VsZi5maWxlc1snL1VzZXJzL21vY2svTGlicmFyeS9M
b2dzL0RpYWdub3N0aWNSZXBvcnRzL0R1bXBSZW5kZXJUcmVlXzIwMTEtMDYtMTMtMTUwNzIwX3F1
YWR6ZW4uY3Jhc2gnXSA9IHNlbGYubmV3ZXJfbW9ja19jcmFzaF9yZXBvcnQKICAgICAgICAgc2Vs
Zi5maWxlc1snL1VzZXJzL21vY2svTGlicmFyeS9Mb2dzL0RpYWdub3N0aWNSZXBvcnRzL0R1bXBS
ZW5kZXJUcmVlXzIwMTEtMDYtMTMtMTUwNzIxX3F1YWR6ZW4uY3Jhc2gnXSA9IE5vbmUKQEAgLTI2
NCwxMiArMjY2LDI2IEBAIGNsYXNzIENyYXNoTG9nc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgog
CiAgICAgICAgIGNyYXNoX2xvZ3MgPSBzZWxmLmNyZWF0ZV9jcmFzaF9sb2dzX2RhcndpbigpCiAg
ICAgICAgIGFsbF9sb2dzID0gY3Jhc2hfbG9ncy5maW5kX2FsbF9sb2dzKCkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChsZW4oYWxsX2xvZ3MpLCA1KQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KGxlbihhbGxfbG9ncyksIDcpCiAKICAgICAgICAgZm9yIHRlc3QsIGNyYXNoX2xvZyBpbiBhbGxf
bG9ncy5pdGVyaXRlbXMoKToKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShjcmFzaF9sb2cg
aW4gc2VsZi5maWxlcy52YWx1ZXMoKSkKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSh0ZXN0
ID09ICJVbmtub3duIiBvciBpbnQodGVzdC5zcGxpdCgiLSIpWzFdKSBpbiByYW5nZSgyODUyNywg
Mjg1MzEpKQogCisgICAgZGVmIHRlc3RfZHVwbGljYXRlX2xvZ19kYXJ3aW4oc2VsZik6CisgICAg
ICAgIGlmIG5vdCBTeXN0ZW1Ib3N0KCkucGxhdGZvcm0uaXNfbWFjKCk6CisgICAgICAgICAgICBy
ZXR1cm4KKworICAgICAgICBjcmFzaF9sb2dzID0gc2VsZi5jcmVhdGVfY3Jhc2hfbG9nc19kYXJ3
aW4oKQorICAgICAgICBhbGxfbG9ncyA9IGNyYXNoX2xvZ3MuZmluZF9hbGxfbG9ncygpCisKKyAg
ICAgICAgc2VsZi5hc3NlcnRUcnVlKCdEdW1wUmVuZGVyVHJlZS0yODUyOCcgaW4gYWxsX2xvZ3Mp
CisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnRHVtcFJlbmRlclRyZWUtMjg1MjgtMScgaW4gYWxs
X2xvZ3MpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnRHVtcFJlbmRlclRyZWUtMjg1MjgtMicg
aW4gYWxsX2xvZ3MpCisKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKCdEdW1wUmVuZGVyVHJlZS0y
ODUyOC0wJyBub3QgaW4gYWxsX2xvZ3MpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZSgnRHVtcFJl
bmRlclRyZWUtMjg1MjgtMS0xJyBub3QgaW4gYWxsX2xvZ3MpCisKICAgICBkZWYgdGVzdF9maW5k
X2xvZ19kYXJ3aW4oc2VsZik6CiAgICAgICAgIGlmIG5vdCBTeXN0ZW1Ib3N0KCkucGxhdGZvcm0u
aXNfbWFjKCk6CiAgICAgICAgICAgICByZXR1cm4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309917</attachid>
            <date>2017-05-12 10:57:20 -0700</date>
            <delta_ts>2017-05-12 12:17:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172002-20170512105719.patch</filename>
            <type>text/plain</type>
            <size>5119</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIxNjc2NykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE4IEBACisyMDE3LTA1LTEyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweTogUHJvcGVybHkgbnVtYmVyIGR1cGxpY2F0ZWQgY3Jhc2hs
b2dzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIw
MDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9jcmFzaGxvZ3MucHk6CisgICAgICAgIChDcmFz
aExvZ3MuX2ZpbmRfYWxsX2xvZ3NfZGFyd2luKTogTnVtYmVyIG11bHRpcGxlIGNyYXNoIGxvZ3Mg
Zm9yIGEgc2luZ2xlIHByb2Nlc3Mgd2l0aAorICAgICAgICBhbiBpbmNyZWFzaW5nIGludGVnZXIu
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2NyYXNobG9nc191bml0
dGVzdC5weToKKyAgICAgICAgKENyYXNoTG9nc1Rlc3QuY3JlYXRlX2NyYXNoX2xvZ3NfZGFyd2lu
KTogQ3JlYXRlIGR1cGxpY2F0ZWQgY3Jhc2hsb2cgZm9yIHRlc3RpbmcuCisgICAgICAgIChDcmFz
aExvZ3NUZXN0LnRlc3RfZmluZF9hbGxfbG9nX2Rhcndpbik6IE5vdyA3IERhcndpbiBsb2dzIGlu
c3RlYWQgb2YgNS4KKyAgICAgICAgKENyYXNoTG9nc1Rlc3QudGVzdF9kdXBsaWNhdGVfbG9nX2Rh
cndpbik6IFRlc3QgdGhhdCBkdXBsaWNhdGVkIGxvZ3MgYXJlIGNvcnJlY3RseSBudW1iZXJlZC4K
KwogMjAxNy0wNS0xMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZC4gRml4IEdUSysgdGVzdCAvd2Via2l0Mi9XZWJLaXRXZWJW
aWV3L2NyZWF0ZS1uYXZpZ2F0aW9uLWRhdGEgYWZ0ZXIgcjIxNjYxNS4KSW5kZXg6IFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9jcmFzaGxvZ3MucHkKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2NyYXNobG9ncy5weQkocmV2aXNp
b24gMjE2NzY3KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2NyYXNo
bG9ncy5weQkod29ya2luZyBjb3B5KQpAQCAtMTUzLDkgKzE1MywxNCBAQCBjbGFzcyBDcmFzaExv
Z3Mob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgICAgIHBpZCA9IHN0cihtYXRjaC5ncm91
cCgncGlkJykpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRfbmFtZSA9IHByb2Nlc3Nf
bmFtZSArICItIiArIHBpZAogCi0gICAgICAgICAgICAgICAgICAgIHdoaWxlIHJlc3VsdF9uYW1l
IGluIGNyYXNoX2xvZ3M6Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRfbmFtZSA9IHJl
c3VsdF9uYW1lICsgIi0xIgotICAgICAgICAgICAgICAgICAgICBjcmFzaF9sb2dzW3Jlc3VsdF9u
YW1lXSA9IGVycm9ycyArIGxvZ19jb250ZW50cworICAgICAgICAgICAgICAgICAgICAjIFByb2Nl
c3NlcyBjYW4gcmVtYWluIHJ1bm5pbmcgYWZ0ZXIgU2FuYm94IHZpb2xhdGlvbnMsIHdoaWNoIGdl
bmVyYXRlIGNyYXNoIGxvZ3MuCisgICAgICAgICAgICAgICAgICAgICMgVGhpcyBtZWFucyB0aGF0
IHdlIGNhbiBoYXZlIG11dGxpcGxlIGNyYXNoIGxvZ3MgYXR0cmlidXRlZCB0byB0aGUgc2FtZSBw
cm9jZXNzLgorICAgICAgICAgICAgICAgICAgICBjb3VudCA9IDEKKyAgICAgICAgICAgICAgICAg
ICAgdW5pcXVlX25hbWUgPSByZXN1bHRfbmFtZQorICAgICAgICAgICAgICAgICAgICB3aGlsZSB1
bmlxdWVfbmFtZSBpbiBjcmFzaF9sb2dzOgorICAgICAgICAgICAgICAgICAgICAgICAgdW5pcXVl
X25hbWUgPSByZXN1bHRfbmFtZSArICctJyArIHN0cihjb3VudCkKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGNvdW50ICs9IDEKKyAgICAgICAgICAgICAgICAgICAgY3Jhc2hfbG9nc1t1bmlxdWVf
bmFtZV0gPSBlcnJvcnMgKyBsb2dfY29udGVudHMKICAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9y
LCBlOgogICAgICAgICAgICAgICAgIGlmIGluY2x1ZGVfZXJyb3JzOgogICAgICAgICAgICAgICAg
ICAgICBlcnJvcnMgKz0gIkVSUk9SOiBGYWlsZWQgdG8gcmVhZCAnJXMnOiAlc1xuIiAlIChwYXRo
LCBzdHIoZSkpCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vY3Jh
c2hsb2dzX3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL3N5c3RlbS9jcmFzaGxvZ3NfdW5pdHRlc3QucHkJKHJldmlzaW9uIDIxNjc2NykKKysr
IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9jcmFzaGxvZ3NfdW5pdHRlc3Qu
cHkJKHdvcmtpbmcgY29weSkKQEAgLTI0NSw3ICsyNDUsOSBAQCBjbGFzcyBDcmFzaExvZ3NUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5vdGhlcl9wcm9jZXNzX21vY2tfY3Jh
c2hfcmVwb3J0ID0gbWFrZV9tb2NrX2NyYXNoX3JlcG9ydF9kYXJ3aW4oJ0Zvb1Byb2Nlc3MnLCAy
ODUyNykKICAgICAgICAgc2VsZi5taXNmb3JtYXR0ZWRfbW9ja19jcmFzaF9yZXBvcnQgPSAnSnVu
ayB0aGF0IHNob3VsZCBub3QgYXBwZWFyIGluIGEgY3Jhc2ggcmVwb3J0JyArIG1ha2VfbW9ja19j
cmFzaF9yZXBvcnRfZGFyd2luKCdEdW1wUmVuZGVyVHJlZScsIDI4NTI2KVsyMDA6XQogICAgICAg
ICBzZWxmLmZpbGVzID0ge30KLSAgICAgICAgc2VsZi5maWxlc1snL1VzZXJzL21vY2svTGlicmFy
eS9Mb2dzL0RpYWdub3N0aWNSZXBvcnRzL0R1bXBSZW5kZXJUcmVlXzIwMTEtMDYtMTMtMTUwNzE4
X3F1YWR6ZW4uY3Jhc2gnXSA9IHNlbGYub2xkZXJfbW9ja19jcmFzaF9yZXBvcnQKKyAgICAgICAg
c2VsZi5maWxlc1snL1VzZXJzL21vY2svTGlicmFyeS9Mb2dzL0RpYWdub3N0aWNSZXBvcnRzL0R1
bXBSZW5kZXJUcmVlXzIwMTEtMDYtMTMtMTUwNzE2X3F1YWR6ZW4uY3Jhc2gnXSA9IHNlbGYub2xk
ZXJfbW9ja19jcmFzaF9yZXBvcnQKKyAgICAgICAgc2VsZi5maWxlc1snL1VzZXJzL21vY2svTGli
cmFyeS9Mb2dzL0RpYWdub3N0aWNSZXBvcnRzL0R1bXBSZW5kZXJUcmVlXzIwMTEtMDYtMTMtMTUw
NzE3X3F1YWR6ZW5fMS5jcmFzaCddID0gc2VsZi5vbGRlcl9tb2NrX2NyYXNoX3JlcG9ydAorICAg
ICAgICBzZWxmLmZpbGVzWycvVXNlcnMvbW9jay9MaWJyYXJ5L0xvZ3MvRGlhZ25vc3RpY1JlcG9y
dHMvRHVtcFJlbmRlclRyZWVfMjAxMS0wNi0xMy0xNTA3MThfcXVhZHplbl8yLmNyYXNoJ10gPSBz
ZWxmLm9sZGVyX21vY2tfY3Jhc2hfcmVwb3J0CiAgICAgICAgIHNlbGYuZmlsZXNbJy9Vc2Vycy9t
b2NrL0xpYnJhcnkvTG9ncy9EaWFnbm9zdGljUmVwb3J0cy9EdW1wUmVuZGVyVHJlZV8yMDExLTA2
LTEzLTE1MDcxOV9xdWFkemVuLmNyYXNoJ10gPSBzZWxmLm1vY2tfY3Jhc2hfcmVwb3J0CiAgICAg
ICAgIHNlbGYuZmlsZXNbJy9Vc2Vycy9tb2NrL0xpYnJhcnkvTG9ncy9EaWFnbm9zdGljUmVwb3J0
cy9EdW1wUmVuZGVyVHJlZV8yMDExLTA2LTEzLTE1MDcyMF9xdWFkemVuLmNyYXNoJ10gPSBzZWxm
Lm5ld2VyX21vY2tfY3Jhc2hfcmVwb3J0CiAgICAgICAgIHNlbGYuZmlsZXNbJy9Vc2Vycy9tb2Nr
L0xpYnJhcnkvTG9ncy9EaWFnbm9zdGljUmVwb3J0cy9EdW1wUmVuZGVyVHJlZV8yMDExLTA2LTEz
LTE1MDcyMV9xdWFkemVuLmNyYXNoJ10gPSBOb25lCkBAIC0yNjQsMTIgKzI2NiwyNiBAQCBjbGFz
cyBDcmFzaExvZ3NUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKIAogICAgICAgICBjcmFzaF9sb2dz
ID0gc2VsZi5jcmVhdGVfY3Jhc2hfbG9nc19kYXJ3aW4oKQogICAgICAgICBhbGxfbG9ncyA9IGNy
YXNoX2xvZ3MuZmluZF9hbGxfbG9ncygpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGVuKGFs
bF9sb2dzKSwgNSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oYWxsX2xvZ3MpLCA3KQog
CiAgICAgICAgIGZvciB0ZXN0LCBjcmFzaF9sb2cgaW4gYWxsX2xvZ3MuaXRlcml0ZW1zKCk6CiAg
ICAgICAgICAgICBzZWxmLmFzc2VydFRydWUoY3Jhc2hfbG9nIGluIHNlbGYuZmlsZXMudmFsdWVz
KCkpCiAgICAgICAgICAgICBzZWxmLmFzc2VydFRydWUodGVzdCA9PSAiVW5rbm93biIgb3IgaW50
KHRlc3Quc3BsaXQoIi0iKVsxXSkgaW4gcmFuZ2UoMjg1MjcsIDI4NTMxKSkKIAorICAgIGRlZiB0
ZXN0X2R1cGxpY2F0ZV9sb2dfZGFyd2luKHNlbGYpOgorICAgICAgICBpZiBub3QgU3lzdGVtSG9z
dCgpLnBsYXRmb3JtLmlzX21hYygpOgorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgY3Jh
c2hfbG9ncyA9IHNlbGYuY3JlYXRlX2NyYXNoX2xvZ3NfZGFyd2luKCkKKyAgICAgICAgYWxsX2xv
Z3MgPSBjcmFzaF9sb2dzLmZpbmRfYWxsX2xvZ3MoKQorICAgICAgICBleHBlY3RlZF9sb2dzID0g
WydEdW1wUmVuZGVyVHJlZS0yODUyOCcsICdEdW1wUmVuZGVyVHJlZS0yODUyOC0xJywgJ0R1bXBS
ZW5kZXJUcmVlLTI4NTI4LTInLAorICAgICAgICAgICAgICAgICAgICAgICAgICdEdW1wUmVuZGVy
VHJlZS0yODUyOScsICdEdW1wUmVuZGVyVHJlZS0yODUzMCcsICdGb29Qcm9jZXNzLTI4NTI3Jywg
J1Vua25vd24nXQorCisgICAgICAgIGZvciBsb2cgaW4gZXhwZWN0ZWRfbG9nczoKKyAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0SW4obG9nLCBhbGxfbG9ncykKKyAgICAgICAgZm9yIGxvZyBpbiBhbGxf
bG9nczoKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0SW4obG9nLCBleHBlY3RlZF9sb2dzKQorCiAg
ICAgZGVmIHRlc3RfZmluZF9sb2dfZGFyd2luKHNlbGYpOgogICAgICAgICBpZiBub3QgU3lzdGVt
SG9zdCgpLnBsYXRmb3JtLmlzX21hYygpOgogICAgICAgICAgICAgcmV0dXJuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309926</attachid>
            <date>2017-05-12 12:17:42 -0700</date>
            <delta_ts>2017-07-03 10:50:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172002-20170512121741.patch</filename>
            <type>text/plain</type>
            <size>5328</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIxNjc3MykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE4IEBACisyMDE3LTA1LTEyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweTogUHJvcGVybHkgbnVtYmVyIGR1cGxpY2F0ZWQgY3Jhc2hs
b2dzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIw
MDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9jcmFzaGxvZ3MucHk6CisgICAgICAgIChDcmFz
aExvZ3MuX2ZpbmRfYWxsX2xvZ3NfZGFyd2luKTogTnVtYmVyIG11bHRpcGxlIGNyYXNoIGxvZ3Mg
Zm9yIGEgc2luZ2xlIHByb2Nlc3Mgd2l0aAorICAgICAgICBhbiBpbmNyZWFzaW5nIGludGVnZXIu
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2NyYXNobG9nc191bml0
dGVzdC5weToKKyAgICAgICAgKENyYXNoTG9nc1Rlc3QuY3JlYXRlX2NyYXNoX2xvZ3NfZGFyd2lu
KTogQ3JlYXRlIGR1cGxpY2F0ZWQgY3Jhc2hsb2cgZm9yIHRlc3RpbmcuCisgICAgICAgIChDcmFz
aExvZ3NUZXN0LnRlc3RfZmluZF9hbGxfbG9nX2Rhcndpbik6IE5vdyA3IERhcndpbiBsb2dzIGlu
c3RlYWQgb2YgNS4KKyAgICAgICAgKENyYXNoTG9nc1Rlc3QudGVzdF9kdXBsaWNhdGVfbG9nX2Rh
cndpbik6IFRlc3QgdGhhdCBkdXBsaWNhdGVkIGxvZ3MgYXJlIGNvcnJlY3RseSBudW1iZXJlZC4K
KwogMjAxNy0wNS0xMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+
CiAKICAgICAgICAgVW5yZXZpZXdlZC4gRml4IEdUSysgdGVzdCAvd2Via2l0Mi9XZWJLaXRXZWJW
aWV3L2NyZWF0ZS1uYXZpZ2F0aW9uLWRhdGEgYWZ0ZXIgcjIxNjYxNS4KSW5kZXg6IFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9jcmFzaGxvZ3MucHkKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2NyYXNobG9ncy5weQkocmV2aXNp
b24gMjE2NzczKQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2NyYXNo
bG9ncy5weQkod29ya2luZyBjb3B5KQpAQCAtMTUzLDkgKzE1MywxNiBAQCBjbGFzcyBDcmFzaExv
Z3Mob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgICAgIHBpZCA9IHN0cihtYXRjaC5ncm91
cCgncGlkJykpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRfbmFtZSA9IHByb2Nlc3Nf
bmFtZSArICItIiArIHBpZAogCi0gICAgICAgICAgICAgICAgICAgIHdoaWxlIHJlc3VsdF9uYW1l
IGluIGNyYXNoX2xvZ3M6Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRfbmFtZSA9IHJl
c3VsdF9uYW1lICsgIi0xIgotICAgICAgICAgICAgICAgICAgICBjcmFzaF9sb2dzW3Jlc3VsdF9u
YW1lXSA9IGVycm9ycyArIGxvZ19jb250ZW50cworICAgICAgICAgICAgICAgICAgICAjIFByb2Nl
c3NlcyBjYW4gcmVtYWluIHJ1bm5pbmcgYWZ0ZXIgU2FuYm94IHZpb2xhdGlvbnMsIHdoaWNoIGdl
bmVyYXRlIGNyYXNoIGxvZ3MuCisgICAgICAgICAgICAgICAgICAgICMgVGhpcyBtZWFucyB0aGF0
IHdlIGNhbiBoYXZlIG11dGxpcGxlIGNyYXNoIGxvZ3MgYXR0cmlidXRlZCB0byB0aGUgc2FtZSBw
cm9jZXNzLgorICAgICAgICAgICAgICAgICAgICAjIFRoZSB1bmlxdWVfbmFtZSBtdXN0IGJlIG5h
bWVkIGluIHRoZSBmb3JtYXQgUFJPQ0VTU19OQU1FLVBJRC0jLCB3aGVyZSAnLSMnIGlzIG9wdGlv
bmFsLgorICAgICAgICAgICAgICAgICAgICAjIFRoaXMgaXMgYmVjYXVzZSBvZiBob3cgRGFyd2lu
UG9ydC5fbWVyZ2VfY3Jhc2hfbG9ncyBwYXJzZXMgdGhlIGNyYXNoIG5hbWUuCisgICAgICAgICAg
ICAgICAgICAgIGNvdW50ID0gMQorICAgICAgICAgICAgICAgICAgICB1bmlxdWVfbmFtZSA9IHJl
c3VsdF9uYW1lCisgICAgICAgICAgICAgICAgICAgIHdoaWxlIHVuaXF1ZV9uYW1lIGluIGNyYXNo
X2xvZ3M6CisgICAgICAgICAgICAgICAgICAgICAgICB1bmlxdWVfbmFtZSA9IHJlc3VsdF9uYW1l
ICsgJy0nICsgc3RyKGNvdW50KQorICAgICAgICAgICAgICAgICAgICAgICAgY291bnQgKz0gMQor
ICAgICAgICAgICAgICAgICAgICBjcmFzaF9sb2dzW3VuaXF1ZV9uYW1lXSA9IGVycm9ycyArIGxv
Z19jb250ZW50cwogICAgICAgICAgICAgZXhjZXB0IElPRXJyb3IsIGU6CiAgICAgICAgICAgICAg
ICAgaWYgaW5jbHVkZV9lcnJvcnM6CiAgICAgICAgICAgICAgICAgICAgIGVycm9ycyArPSAiRVJS
T1I6IEZhaWxlZCB0byByZWFkICclcyc6ICVzXG4iICUgKHBhdGgsIHN0cihlKSkKSW5kZXg6IFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9jcmFzaGxvZ3NfdW5pdHRlc3QucHkK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2NyYXNo
bG9nc191bml0dGVzdC5weQkocmV2aXNpb24gMjE2NzczKQorKysgVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vc3lzdGVtL2NyYXNobG9nc191bml0dGVzdC5weQkod29ya2luZyBjb3B5KQpA
QCAtMjQ1LDcgKzI0NSw5IEBAIGNsYXNzIENyYXNoTG9nc1Rlc3QodW5pdHRlc3QuVGVzdENhc2Up
OgogICAgICAgICBzZWxmLm90aGVyX3Byb2Nlc3NfbW9ja19jcmFzaF9yZXBvcnQgPSBtYWtlX21v
Y2tfY3Jhc2hfcmVwb3J0X2RhcndpbignRm9vUHJvY2VzcycsIDI4NTI3KQogICAgICAgICBzZWxm
Lm1pc2Zvcm1hdHRlZF9tb2NrX2NyYXNoX3JlcG9ydCA9ICdKdW5rIHRoYXQgc2hvdWxkIG5vdCBh
cHBlYXIgaW4gYSBjcmFzaCByZXBvcnQnICsgbWFrZV9tb2NrX2NyYXNoX3JlcG9ydF9kYXJ3aW4o
J0R1bXBSZW5kZXJUcmVlJywgMjg1MjYpWzIwMDpdCiAgICAgICAgIHNlbGYuZmlsZXMgPSB7fQot
ICAgICAgICBzZWxmLmZpbGVzWycvVXNlcnMvbW9jay9MaWJyYXJ5L0xvZ3MvRGlhZ25vc3RpY1Jl
cG9ydHMvRHVtcFJlbmRlclRyZWVfMjAxMS0wNi0xMy0xNTA3MThfcXVhZHplbi5jcmFzaCddID0g
c2VsZi5vbGRlcl9tb2NrX2NyYXNoX3JlcG9ydAorICAgICAgICBzZWxmLmZpbGVzWycvVXNlcnMv
bW9jay9MaWJyYXJ5L0xvZ3MvRGlhZ25vc3RpY1JlcG9ydHMvRHVtcFJlbmRlclRyZWVfMjAxMS0w
Ni0xMy0xNTA3MTZfcXVhZHplbi5jcmFzaCddID0gc2VsZi5vbGRlcl9tb2NrX2NyYXNoX3JlcG9y
dAorICAgICAgICBzZWxmLmZpbGVzWycvVXNlcnMvbW9jay9MaWJyYXJ5L0xvZ3MvRGlhZ25vc3Rp
Y1JlcG9ydHMvRHVtcFJlbmRlclRyZWVfMjAxMS0wNi0xMy0xNTA3MTdfcXVhZHplbl8xLmNyYXNo
J10gPSBzZWxmLm9sZGVyX21vY2tfY3Jhc2hfcmVwb3J0CisgICAgICAgIHNlbGYuZmlsZXNbJy9V
c2Vycy9tb2NrL0xpYnJhcnkvTG9ncy9EaWFnbm9zdGljUmVwb3J0cy9EdW1wUmVuZGVyVHJlZV8y
MDExLTA2LTEzLTE1MDcxOF9xdWFkemVuXzIuY3Jhc2gnXSA9IHNlbGYub2xkZXJfbW9ja19jcmFz
aF9yZXBvcnQKICAgICAgICAgc2VsZi5maWxlc1snL1VzZXJzL21vY2svTGlicmFyeS9Mb2dzL0Rp
YWdub3N0aWNSZXBvcnRzL0R1bXBSZW5kZXJUcmVlXzIwMTEtMDYtMTMtMTUwNzE5X3F1YWR6ZW4u
Y3Jhc2gnXSA9IHNlbGYubW9ja19jcmFzaF9yZXBvcnQKICAgICAgICAgc2VsZi5maWxlc1snL1Vz
ZXJzL21vY2svTGlicmFyeS9Mb2dzL0RpYWdub3N0aWNSZXBvcnRzL0R1bXBSZW5kZXJUcmVlXzIw
MTEtMDYtMTMtMTUwNzIwX3F1YWR6ZW4uY3Jhc2gnXSA9IHNlbGYubmV3ZXJfbW9ja19jcmFzaF9y
ZXBvcnQKICAgICAgICAgc2VsZi5maWxlc1snL1VzZXJzL21vY2svTGlicmFyeS9Mb2dzL0RpYWdu
b3N0aWNSZXBvcnRzL0R1bXBSZW5kZXJUcmVlXzIwMTEtMDYtMTMtMTUwNzIxX3F1YWR6ZW4uY3Jh
c2gnXSA9IE5vbmUKQEAgLTI2NCwxMiArMjY2LDI2IEBAIGNsYXNzIENyYXNoTG9nc1Rlc3QodW5p
dHRlc3QuVGVzdENhc2UpOgogCiAgICAgICAgIGNyYXNoX2xvZ3MgPSBzZWxmLmNyZWF0ZV9jcmFz
aF9sb2dzX2RhcndpbigpCiAgICAgICAgIGFsbF9sb2dzID0gY3Jhc2hfbG9ncy5maW5kX2FsbF9s
b2dzKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oYWxsX2xvZ3MpLCA1KQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKGxlbihhbGxfbG9ncyksIDcpCiAKICAgICAgICAgZm9yIHRlc3Qs
IGNyYXNoX2xvZyBpbiBhbGxfbG9ncy5pdGVyaXRlbXMoKToKICAgICAgICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShjcmFzaF9sb2cgaW4gc2VsZi5maWxlcy52YWx1ZXMoKSkKICAgICAgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZSh0ZXN0ID09ICJVbmtub3duIiBvciBpbnQodGVzdC5zcGxpdCgiLSIpWzFd
KSBpbiByYW5nZSgyODUyNywgMjg1MzEpKQogCisgICAgZGVmIHRlc3RfZHVwbGljYXRlX2xvZ19k
YXJ3aW4oc2VsZik6CisgICAgICAgIGlmIG5vdCBTeXN0ZW1Ib3N0KCkucGxhdGZvcm0uaXNfbWFj
KCk6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBjcmFzaF9sb2dzID0gc2VsZi5jcmVh
dGVfY3Jhc2hfbG9nc19kYXJ3aW4oKQorICAgICAgICBhbGxfbG9ncyA9IGNyYXNoX2xvZ3MuZmlu
ZF9hbGxfbG9ncygpCisgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSBbJ0R1bXBSZW5kZXJUcmVlLTI4
NTI4JywgJ0R1bXBSZW5kZXJUcmVlLTI4NTI4LTEnLCAnRHVtcFJlbmRlclRyZWUtMjg1MjgtMics
CisgICAgICAgICAgICAgICAgICAgICAgICAgJ0R1bXBSZW5kZXJUcmVlLTI4NTI5JywgJ0R1bXBS
ZW5kZXJUcmVlLTI4NTMwJywgJ0Zvb1Byb2Nlc3MtMjg1MjcnLCAnVW5rbm93biddCisKKyAgICAg
ICAgZm9yIGxvZyBpbiBleHBlY3RlZF9sb2dzOgorICAgICAgICAgICAgc2VsZi5hc3NlcnRJbihs
b2csIGFsbF9sb2dzKQorICAgICAgICBmb3IgbG9nIGluIGFsbF9sb2dzOgorICAgICAgICAgICAg
c2VsZi5hc3NlcnRJbihsb2csIGV4cGVjdGVkX2xvZ3MpCisKICAgICBkZWYgdGVzdF9maW5kX2xv
Z19kYXJ3aW4oc2VsZik6CiAgICAgICAgIGlmIG5vdCBTeXN0ZW1Ib3N0KCkucGxhdGZvcm0uaXNf
bWFjKCk6CiAgICAgICAgICAgICByZXR1cm4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314496</attachid>
            <date>2017-07-03 10:50:23 -0700</date>
            <delta_ts>2017-07-03 13:15:07 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-172002-20170703105022.patch</filename>
            <type>text/plain</type>
            <size>5334</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIxOTA3NykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE4IEBACisyMDE3LTA3LTAzICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweTogUHJvcGVybHkgbnVtYmVyIGR1cGxpY2F0ZWQgY3Jhc2hs
b2dzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzIw
MDIKKworICAgICAgICBSZXZpZXdlZCBieSBBYWthc2ggSmFpbi4KKworICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9jcmFzaGxvZ3MucHk6CisgICAgICAgIChDcmFzaExv
Z3MuX2ZpbmRfYWxsX2xvZ3NfZGFyd2luKTogTnVtYmVyIG11bHRpcGxlIGNyYXNoIGxvZ3MgZm9y
IGEgc2luZ2xlIHByb2Nlc3Mgd2l0aAorICAgICAgICBhbiBpbmNyZWFzaW5nIGludGVnZXIuCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2NyYXNobG9nc191bml0dGVz
dC5weToKKyAgICAgICAgKENyYXNoTG9nc1Rlc3QuY3JlYXRlX2NyYXNoX2xvZ3NfZGFyd2luKTog
Q3JlYXRlIGR1cGxpY2F0ZWQgY3Jhc2hsb2cgZm9yIHRlc3RpbmcuCisgICAgICAgIChDcmFzaExv
Z3NUZXN0LnRlc3RfZmluZF9hbGxfbG9nX2Rhcndpbik6IE5vdyA3IERhcndpbiBsb2dzIGluc3Rl
YWQgb2YgNS4KKyAgICAgICAgKENyYXNoTG9nc1Rlc3QudGVzdF9kdXBsaWNhdGVfbG9nX2Rhcndp
bik6IFRlc3QgdGhhdCBkdXBsaWNhdGVkIGxvZ3MgYXJlIGNvcnJlY3RseSBudW1iZXJlZC4KKwog
MjAxNy0wNy0wMyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIFJFR1JFU1NJT04ocjIxNTA5NikgUXVlcmllcyBvZiBVUkxzIHdpdGggbm9uLXNw
ZWNpYWwgc2NoZW1lcyBzaG91bGQgbm90IHBlcmNlbnQtZW5jb2RlIHNpbmdsZSBxdW90ZXMKSW5k
ZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9jcmFzaGxvZ3MucHkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2NyYXNobG9n
cy5weQkocmV2aXNpb24gMjE5MDc3KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
c3lzdGVtL2NyYXNobG9ncy5weQkod29ya2luZyBjb3B5KQpAQCAtMTYxLDkgKzE2MSwxNiBAQCBj
bGFzcyBDcmFzaExvZ3Mob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgaWYgcGFyc2VkX25h
bWU6CiAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRfbmFtZSA9IHBhcnNlZF9uYW1lICsg
Ii0iICsgc3RyKHBhcnNlZF9waWQpCiAKLSAgICAgICAgICAgICAgICAgICAgd2hpbGUgcmVzdWx0
X25hbWUgaW4gY3Jhc2hfbG9nczoKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdF9uYW1l
ID0gcmVzdWx0X25hbWUgKyAiLTEiCi0gICAgICAgICAgICAgICAgICAgIGNyYXNoX2xvZ3NbcmVz
dWx0X25hbWVdID0gZXJyb3JzICsgbG9nX2NvbnRlbnRzCisgICAgICAgICAgICAgICAgICAgICMg
UHJvY2Vzc2VzIGNhbiByZW1haW4gcnVubmluZyBhZnRlciBTYW5kYm94IHZpb2xhdGlvbnMsIHdo
aWNoIGdlbmVyYXRlIGNyYXNoIGxvZ3MuCisgICAgICAgICAgICAgICAgICAgICMgVGhpcyBtZWFu
cyB0aGF0IHdlIGNhbiBoYXZlIG11dGxpcGxlIGNyYXNoIGxvZ3MgYXR0cmlidXRlZCB0byB0aGUg
c2FtZSBwcm9jZXNzLgorICAgICAgICAgICAgICAgICAgICAjIFRoZSB1bmlxdWVfbmFtZSBtdXN0
IGJlIG5hbWVkIGluIHRoZSBmb3JtYXQgUFJPQ0VTU19OQU1FLVBJRC0jLCB3aGVyZSAnLSMnIGlz
IG9wdGlvbmFsLgorICAgICAgICAgICAgICAgICAgICAjIFRoaXMgaXMgYmVjYXVzZSBvZiBob3cg
RGFyd2luUG9ydC5fbWVyZ2VfY3Jhc2hfbG9ncyBwYXJzZXMgdGhlIGNyYXNoIG5hbWUuCisgICAg
ICAgICAgICAgICAgICAgIGNvdW50ID0gMQorICAgICAgICAgICAgICAgICAgICB1bmlxdWVfbmFt
ZSA9IHJlc3VsdF9uYW1lCisgICAgICAgICAgICAgICAgICAgIHdoaWxlIHVuaXF1ZV9uYW1lIGlu
IGNyYXNoX2xvZ3M6CisgICAgICAgICAgICAgICAgICAgICAgICB1bmlxdWVfbmFtZSA9IHJlc3Vs
dF9uYW1lICsgJy0nICsgc3RyKGNvdW50KQorICAgICAgICAgICAgICAgICAgICAgICAgY291bnQg
Kz0gMQorICAgICAgICAgICAgICAgICAgICBjcmFzaF9sb2dzW3VuaXF1ZV9uYW1lXSA9IGVycm9y
cyArIGxvZ19jb250ZW50cwogICAgICAgICAgICAgZXhjZXB0IElPRXJyb3IsIGU6CiAgICAgICAg
ICAgICAgICAgaWYgaW5jbHVkZV9lcnJvcnM6CiAgICAgICAgICAgICAgICAgICAgIGVycm9ycyAr
PSAiRVJST1I6IEZhaWxlZCB0byByZWFkICclcyc6ICVzXG4iICUgKHBhdGgsIHN0cihlKSkKSW5k
ZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9jcmFzaGxvZ3NfdW5pdHRl
c3QucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVt
L2NyYXNobG9nc191bml0dGVzdC5weQkocmV2aXNpb24gMjE5MDc3KQorKysgVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2NyYXNobG9nc191bml0dGVzdC5weQkod29ya2luZyBj
b3B5KQpAQCAtMjQ4LDcgKzI0OCw5IEBAIGNsYXNzIENyYXNoTG9nc1Rlc3QodW5pdHRlc3QuVGVz
dENhc2UpOgogICAgICAgICBzZWxmLm90aGVyX3Byb2Nlc3NfbW9ja19jcmFzaF9yZXBvcnQgPSBt
YWtlX21vY2tfY3Jhc2hfcmVwb3J0X2RhcndpbignRm9vUHJvY2VzcycsIDI4NTI3KQogICAgICAg
ICBzZWxmLm1pc2Zvcm1hdHRlZF9tb2NrX2NyYXNoX3JlcG9ydCA9ICdKdW5rIHRoYXQgc2hvdWxk
IG5vdCBhcHBlYXIgaW4gYSBjcmFzaCByZXBvcnQnICsgbWFrZV9tb2NrX2NyYXNoX3JlcG9ydF9k
YXJ3aW4oJ0R1bXBSZW5kZXJUcmVlJywgMjg1MjYpWzIwMDpdCiAgICAgICAgIHNlbGYuZmlsZXMg
PSB7fQotICAgICAgICBzZWxmLmZpbGVzWycvVXNlcnMvbW9jay9MaWJyYXJ5L0xvZ3MvRGlhZ25v
c3RpY1JlcG9ydHMvRHVtcFJlbmRlclRyZWVfMjAxMS0wNi0xMy0xNTA3MThfcXVhZHplbi5jcmFz
aCddID0gc2VsZi5vbGRlcl9tb2NrX2NyYXNoX3JlcG9ydAorICAgICAgICBzZWxmLmZpbGVzWycv
VXNlcnMvbW9jay9MaWJyYXJ5L0xvZ3MvRGlhZ25vc3RpY1JlcG9ydHMvRHVtcFJlbmRlclRyZWVf
MjAxMS0wNi0xMy0xNTA3MTZfcXVhZHplbi5jcmFzaCddID0gc2VsZi5vbGRlcl9tb2NrX2NyYXNo
X3JlcG9ydAorICAgICAgICBzZWxmLmZpbGVzWycvVXNlcnMvbW9jay9MaWJyYXJ5L0xvZ3MvRGlh
Z25vc3RpY1JlcG9ydHMvRHVtcFJlbmRlclRyZWVfMjAxMS0wNi0xMy0xNTA3MTdfcXVhZHplbl8x
LmNyYXNoJ10gPSBzZWxmLm9sZGVyX21vY2tfY3Jhc2hfcmVwb3J0CisgICAgICAgIHNlbGYuZmls
ZXNbJy9Vc2Vycy9tb2NrL0xpYnJhcnkvTG9ncy9EaWFnbm9zdGljUmVwb3J0cy9EdW1wUmVuZGVy
VHJlZV8yMDExLTA2LTEzLTE1MDcxOF9xdWFkemVuXzIuY3Jhc2gnXSA9IHNlbGYub2xkZXJfbW9j
a19jcmFzaF9yZXBvcnQKICAgICAgICAgc2VsZi5maWxlc1snL1VzZXJzL21vY2svTGlicmFyeS9M
b2dzL0RpYWdub3N0aWNSZXBvcnRzL0R1bXBSZW5kZXJUcmVlXzIwMTEtMDYtMTMtMTUwNzE5X3F1
YWR6ZW4uY3Jhc2gnXSA9IHNlbGYubW9ja19jcmFzaF9yZXBvcnQKICAgICAgICAgc2VsZi5maWxl
c1snL1VzZXJzL21vY2svTGlicmFyeS9Mb2dzL0RpYWdub3N0aWNSZXBvcnRzL0R1bXBSZW5kZXJU
cmVlXzIwMTEtMDYtMTMtMTUwNzIwX3F1YWR6ZW4uY3Jhc2gnXSA9IHNlbGYubmV3ZXJfbW9ja19j
cmFzaF9yZXBvcnQKICAgICAgICAgc2VsZi5maWxlc1snL1VzZXJzL21vY2svTGlicmFyeS9Mb2dz
L0RpYWdub3N0aWNSZXBvcnRzL0R1bXBSZW5kZXJUcmVlXzIwMTEtMDYtMTMtMTUwNzIxX3F1YWR6
ZW4uY3Jhc2gnXSA9IE5vbmUKQEAgLTI2NywxMiArMjY5LDI2IEBAIGNsYXNzIENyYXNoTG9nc1Rl
c3QodW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgICAgIGNyYXNoX2xvZ3MgPSBzZWxmLmNyZWF0
ZV9jcmFzaF9sb2dzX2RhcndpbigpCiAgICAgICAgIGFsbF9sb2dzID0gY3Jhc2hfbG9ncy5maW5k
X2FsbF9sb2dzKCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsZW4oYWxsX2xvZ3MpLCA1KQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxlbihhbGxfbG9ncyksIDcpCiAKICAgICAgICAgZm9y
IHRlc3QsIGNyYXNoX2xvZyBpbiBhbGxfbG9ncy5pdGVyaXRlbXMoKToKICAgICAgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShjcmFzaF9sb2cgaW4gc2VsZi5maWxlcy52YWx1ZXMoKSkKICAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZSh0ZXN0ID09ICJVbmtub3duIiBvciBpbnQodGVzdC5zcGxpdCgi
LSIpWzFdKSBpbiByYW5nZSgyODUyNywgMjg1MzEpKQogCisgICAgZGVmIHRlc3RfZHVwbGljYXRl
X2xvZ19kYXJ3aW4oc2VsZik6CisgICAgICAgIGlmIG5vdCBTeXN0ZW1Ib3N0KCkucGxhdGZvcm0u
aXNfbWFjKCk6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBjcmFzaF9sb2dzID0gc2Vs
Zi5jcmVhdGVfY3Jhc2hfbG9nc19kYXJ3aW4oKQorICAgICAgICBhbGxfbG9ncyA9IGNyYXNoX2xv
Z3MuZmluZF9hbGxfbG9ncygpCisgICAgICAgIGV4cGVjdGVkX2xvZ3MgPSBbJ0R1bXBSZW5kZXJU
cmVlLTI4NTI4JywgJ0R1bXBSZW5kZXJUcmVlLTI4NTI4LTEnLCAnRHVtcFJlbmRlclRyZWUtMjg1
MjgtMicsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ0R1bXBSZW5kZXJUcmVlLTI4NTI5Jywg
J0R1bXBSZW5kZXJUcmVlLTI4NTMwJywgJ0Zvb1Byb2Nlc3MtMjg1MjcnLCAnVW5rbm93biddCisK
KyAgICAgICAgZm9yIGxvZyBpbiBleHBlY3RlZF9sb2dzOgorICAgICAgICAgICAgc2VsZi5hc3Nl
cnRJbihsb2csIGFsbF9sb2dzKQorICAgICAgICBmb3IgbG9nIGluIGFsbF9sb2dzOgorICAgICAg
ICAgICAgc2VsZi5hc3NlcnRJbihsb2csIGV4cGVjdGVkX2xvZ3MpCisKICAgICBkZWYgdGVzdF9m
aW5kX2xvZ19kYXJ3aW4oc2VsZik6CiAgICAgICAgIGlmIG5vdCBTeXN0ZW1Ib3N0KCkucGxhdGZv
cm0uaXNfbWFjKCk6CiAgICAgICAgICAgICByZXR1cm4K
</data>

          </attachment>
      

    </bug>

</bugzilla>