<?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>182405</bug_id>
          
          <creation_ts>2018-02-01 13:26:10 -0800</creation_ts>
          <short_desc>prepare-ChangeLog gets confused about Python docstrings that contain the word &quot;class&quot; or &quot;def&quot;</short_desc>
          <delta_ts>2018-02-05 14:55:59 -0800</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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jfbastien</cc>
    
    <cc>lforschler</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1395609</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-02-01 13:26:10 -0800</bug_when>
    <thetext>When I ran prepare-ChangeLog to generate the ChangeLog for the changes in attachment #332849 (bug #182360) the ChangeLog had entries of the form 

    * Scripts/webkitpy/layout_tests/servers/websocket_server.py:
    (to):
    ...

    * Scripts/webkitpy/port/base.py:
    (Port.to.is_http_server_running):
    ...

But there is neither a class called &quot;to&quot; in file Tools/Scripts/webkitpy/layout_tests/servers/websocket_server.py nor a class Port.to in file Tools/Scripts/webkitpy/port/base.py.

The top of the file Tools/Scripts/webkitpy/layout_tests/servers/websocket_server.py contains the following docstring, &lt;http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/layout_tests/servers/websocket_server.py?rev=227942#L30&gt;:
    &quot;&quot;&quot;A class to help start/stop the PyWebSocket server used by layout tests.&quot;&quot;&quot;

And Tools/Scripts/webkitpy/port/base.py has the following docstring immediate that is indented inside the scope of class Port and before the definition of Port.is_http_server_running(), &lt;http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/port/base.py?rev=227942#L69&gt;:
    &quot;&quot;&quot;Abstract class for Port-specific hooks for the layout_test package.&quot;&quot;&quot;

Notice that both of these docstrings contain the word &quot;class&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395610</commentid>
    <comment_count>1</comment_count>
      <attachid>332904</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-02-01 13:31:31 -0800</bug_when>
    <thetext>Created attachment 332904
Test

Attached is the code changes portion of the patch from attachment #332849 (bug #182360).

Steps to reproduce:

1. Download the patch to ~/Desktop/test.diff.
2. From the top-level WebKit checkout, run `Tools/Scripts/svn-apply ~/Desktop/test.diff`.
3. From the top-level WebKit checkout, run `Tools/Scripts/prepare-ChangeLog --no-write`.

Then the function list portion of the ChangeLog will be:

    * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py:
    (LayoutTestRunner.__init__):
    (LayoutTestRunner.start_servers):
    (LayoutTestRunner.stop_servers):
    * Scripts/webkitpy/layout_tests/controllers/layout_test_runner_unittest.py:
    (LayoutTestRunnerTests.test_servers_started.is_websocket_server_running):
    (LayoutTestRunnerTests.test_servers_started):
    (LayoutTestRunnerTests.test_servers_started.is_websocket_servers_running): Deleted.
    * Scripts/webkitpy/layout_tests/servers/websocket_server.py:
    (to):
    (PyWebSocket.__init__):
    (PyWebSocket._stop_running_server):
    (is_web_socket_server_running):
    (PyWebSocket.is_running): Deleted.
    * Scripts/webkitpy/port/base.py:
    (Port.to.is_http_server_running):
    (Port.to.is_websocket_server_running):
    (Port.to.is_wpt_server_running):
    (Port.to.is_websocket_servers_running): Deleted.

But it should be:

    * Scripts/webkitpy/layout_tests/controllers/layout_test_runner.py:
    (LayoutTestRunner.__init__):
    (LayoutTestRunner.start_servers):
    (LayoutTestRunner.stop_servers):
    * Scripts/webkitpy/layout_tests/controllers/layout_test_runner_unittest.py:
    (LayoutTestRunnerTests.test_servers_started.is_websocket_server_running):
    (LayoutTestRunnerTests.test_servers_started):
    (LayoutTestRunnerTests.test_servers_started.is_websocket_servers_running): Deleted.
    * Scripts/webkitpy/layout_tests/servers/websocket_server.py:
    (PyWebSocket.__init__):
    (PyWebSocket._stop_running_server):
    (is_web_socket_server_running):
    (PyWebSocket.is_running): Deleted.
    * Scripts/webkitpy/port/base.py:
    (Port.is_http_server_running):
    (Port.is_websocket_server_running):
    (Port.is_wpt_server_running):
    (Port.is_websocket_servers_running): Deleted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395626</commentid>
    <comment_count>2</comment_count>
      <attachid>332909</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-02-01 14:03:12 -0800</bug_when>
    <thetext>Created attachment 332909
Patch and tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395627</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-02-01 14:05:32 -0800</bug_when>
    <thetext>Attachment 332909 did not pass style-queue:


ERROR: Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/resources/python_unittests.py:112:  expected 2 blank lines, found 0  [pep8/E302] [5]
ERROR: Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/resources/python_unittests.py:119:  expected 2 blank lines, found 0  [pep8/E302] [5]
Total errors found: 2 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396398</commentid>
    <comment_count>4</comment_count>
      <attachid>332909</attachid>
    <who name="JF Bastien">jfbastien</who>
    <bug_when>2018-02-05 10:55:59 -0800</bug_when>
    <thetext>Comment on attachment 332909
Patch and tests

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

r=me

&gt; Tools/Scripts/prepare-ChangeLog:1798
&gt; +        next unless /^(\s*)([^#].*)$/; # Skip non-indented lines that begin with a comment.

I don&apos;t think this is accurate: the regex matches any line that contains code (starts with spaces, contains a non-hash character, and then anything). It&apos;ll stop if there&apos;s an empty line (potentially indented) as well as a comment-only line (potentially indented).

&gt; Tools/Scripts/prepare-ChangeLog:1827
&gt; +        next if /^\s*[#&apos;&quot;]/; # Skip indented and non-indented lines that begin with a comment or string literal (includes docstrings).

That won&apos;t capture multi-line docstrings though. I guess it&apos;s a net improvement over what was there before, so only fix if you think it matters :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396465</commentid>
    <comment_count>5</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-02-05 12:36:43 -0800</bug_when>
    <thetext>(In reply to JF Bastien from comment #4)
&gt; Comment on attachment 332909 [details]
&gt; Patch and tests
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=332909&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Tools/Scripts/prepare-ChangeLog:1798
&gt; &gt; +        next unless /^(\s*)([^#].*)$/; # Skip non-indented lines that begin with a comment.
&gt; 
&gt; I don&apos;t think this is accurate: the regex matches any line that contains
&gt; code (starts with spaces, contains a non-hash character, and then anything).
&gt; It&apos;ll stop if there&apos;s an empty line (potentially indented) as well as a
&gt; comment-only line (potentially indented).
&gt; 

Notice that when the regex matches then we process the line. That is, we do not skip it.

An indented comment-only line will match /^(\s*)([^#].*)$/ because [^#] will match a whitespace character and \s* matches arbitrary length whitespace (Perl will backtrack through the characters captured by \s* to match [^#]); =&gt; we will process this line; =&gt; we will not skip this line. For example, &quot; #\n&quot; will match with $1 = &quot;&quot; and $2 = &quot; #&quot;. So, we will process this line.

In contrast, a non-indented comment-only line will not match /^(\s*)([^#].*)$/ because the first character in the line will not match [^#] (since it is # by definition); =&gt; we will not process the line; =&gt; will skip the line.

So, &quot;next unless /^(\s*)([^#].*)$/&quot; means skip a non-indented comment-only line.

Maybe there is a better way to write this logic to make it clearer?

&gt; &gt; Tools/Scripts/prepare-ChangeLog:1827
&gt; &gt; +        next if /^\s*[#&apos;&quot;]/; # Skip indented and non-indented lines that begin with a comment or string literal (includes docstrings).
&gt; 
&gt; That won&apos;t capture multi-line docstrings though. I guess it&apos;s a net
&gt; improvement over what was there before, so only fix if you think it matters
&gt; :)

You&apos;re right! Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396468</commentid>
    <comment_count>6</comment_count>
      <attachid>333111</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-02-05 12:43:19 -0800</bug_when>
    <thetext>Created attachment 333111
Patch and tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396470</commentid>
    <comment_count>7</comment_count>
      <attachid>333112</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-02-05 12:45:10 -0800</bug_when>
    <thetext>Created attachment 333112
Patch and tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396473</commentid>
    <comment_count>8</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-02-05 12:48:08 -0800</bug_when>
    <thetext>Attachment 333112 did not pass style-queue:


ERROR: Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/resources/python_unittests.py:112:  expected 2 blank lines, found 0  [pep8/E302] [5]
ERROR: Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/resources/python_unittests.py:119:  expected 2 blank lines, found 0  [pep8/E302] [5]
ERROR: Tools/Scripts/webkitperl/prepare-ChangeLog_unittest/resources/python_unittests.py:136:  expected 2 blank lines, found 0  [pep8/E302] [5]
Total errors found: 3 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396528</commentid>
    <comment_count>9</comment_count>
      <attachid>333112</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2018-02-05 14:02:21 -0800</bug_when>
    <thetext>Comment on attachment 333112
Patch and tests

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396560</commentid>
    <comment_count>10</comment_count>
      <attachid>333112</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-02-05 14:52:51 -0800</bug_when>
    <thetext>Comment on attachment 333112
Patch and tests

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

&gt; Tools/Scripts/prepare-ChangeLog:1837
&gt; +        # Skip multi-line string literals and docstrings.
&gt; +        next if /^\s*$multilineStringLiteralSentinelRegEx.*$multilineStringLiteralSentinelRegEx\s*$/;
&gt; +        if (!$inComment &amp;&amp; /^\s*$multilineStringLiteralSentinelRegEx/) {
&gt; +            $inComment = 1;
&gt; +        } elsif ($inComment &amp;&amp; /$multilineStringLiteralSentinelRegEx\s*$/) {
&gt; +            $inComment = 0;
&gt; +        }
&gt; +        next if $inComment;

Before landing, will extract starting and ending multi-line patterns into local variables defined after line 1786:

my $multilineStringLiteralStartRegEx = qr#^\s*$multilineStringLiteralSentinelRegEx#;
my $multilineStringLiteralEndRegEx = qr#$multilineStringLiteralSentinelRegEx\s*$#;

And then write these lines as:

# Skip multi-line string literals and docstrings.
next if /$multilineStringLiteralStartRegEx.*$multilineStringLiteralEndRegEx/;
if (!$inComment &amp;&amp; /$multilineStringLiteralStartRegEx/) {
    $inComment = 1;
} elsif ($inComment &amp;&amp; /$multilineStringLiteralEndRegEx/) {
    $inComment = 0;
}
next if $inComment;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396564</commentid>
    <comment_count>11</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-02-05 14:54:27 -0800</bug_when>
    <thetext>Committed r228131: &lt;https://trac.webkit.org/changeset/228131&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396566</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-02-05 14:55:59 -0800</bug_when>
    <thetext>&lt;rdar://problem/37251100&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332904</attachid>
            <date>2018-02-01 13:31:31 -0800</date>
            <delta_ts>2018-02-01 14:03:11 -0800</delta_ts>
            <desc>Test</desc>
            <filename>test.diff</filename>
            <type>text/plain</type>
            <size>7095</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xs
ZXJzL2xheW91dF90ZXN0X3J1bm5lci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5lci5weQppbmRleCAwNWY5MDUxZjkx
OS4uM2U1MmU2MTRhYTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5lci5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5uZXIu
cHkKQEAgLTc5LDYgKzc5LDkgQEAgY2xhc3MgTGF5b3V0VGVzdFJ1bm5lcihvYmplY3QpOgogICAg
ICAgICBzZWxmLl90ZXN0X2lucHV0cyA9IFtdCiAgICAgICAgIHNlbGYuX3JldHJ5aW5nID0gRmFs
c2UKICAgICAgICAgc2VsZi5fY3VycmVudF9ydW5fcmVzdWx0cyA9IE5vbmUKKyAgICAgICAgc2Vs
Zi5fZGlkX3N0YXJ0X2h0dHBfc2VydmVyID0gRmFsc2UKKyAgICAgICAgc2VsZi5fZGlkX3N0YXJ0
X3dlYnNvY2tldF9zZXJ2ZXIgPSBGYWxzZQorICAgICAgICBzZWxmLl9kaWRfc3RhcnRfd3B0X3Nl
cnZlciA9IEZhbHNlCiAKICAgICAgICAgaWYgKChzZWxmLl9uZWVkc19odHRwIGFuZCBzZWxmLl9v
cHRpb25zLmh0dHApIG9yIHNlbGYuX25lZWRzX3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlcikgYW5k
IHNlbGYuX3BvcnQuZ2V0X29wdGlvbigic3RhcnRfaHR0cF9zZXJ2ZXJzX2lmX25lZWRlZCIpOgog
ICAgICAgICAgICAgc2VsZi5zdGFydF9zZXJ2ZXJzKCkKQEAgLTE5MCwyNiArMTkzLDMyIEBAIGNs
YXNzIExheW91dFRlc3RSdW5uZXIob2JqZWN0KToKICAgICAgICAgc2VsZi5faW50ZXJydXB0X2lm
X2F0X2ZhaWx1cmVfbGltaXRzKHJ1bl9yZXN1bHRzKQogCiAgICAgZGVmIHN0YXJ0X3NlcnZlcnMo
c2VsZik6Ci0gICAgICAgIGlmIHNlbGYuX25lZWRzX2h0dHAgYW5kIG5vdCBzZWxmLl9wb3J0Lmlz
X2h0dHBfc2VydmVyX3J1bm5pbmcoKToKKyAgICAgICAgaWYgc2VsZi5fbmVlZHNfaHR0cCBhbmQg
bm90IHNlbGYuX2RpZF9zdGFydF9odHRwX3NlcnZlciBhbmQgbm90IHNlbGYuX3BvcnQuaXNfaHR0
cF9zZXJ2ZXJfcnVubmluZygpOgogICAgICAgICAgICAgc2VsZi5fcHJpbnRlci53cml0ZV91cGRh
dGUoJ1N0YXJ0aW5nIEhUVFAgc2VydmVyIC4uLicpCiAgICAgICAgICAgICBzZWxmLl9wb3J0LnN0
YXJ0X2h0dHBfc2VydmVyKCkKLSAgICAgICAgaWYgc2VsZi5fbmVlZHNfd2Vic29ja2V0cyBhbmQg
bm90IHNlbGYuX3BvcnQuaXNfd2Vic29ja2V0X3NlcnZlcnNfcnVubmluZygpOgorICAgICAgICAg
ICAgc2VsZi5fZGlkX3N0YXJ0X2h0dHBfc2VydmVyID0gVHJ1ZQorICAgICAgICBpZiBzZWxmLl9u
ZWVkc193ZWJzb2NrZXRzIGFuZCBub3Qgc2VsZi5fZGlkX3N0YXJ0X3dlYnNvY2tldF9zZXJ2ZXIg
YW5kIG5vdCBzZWxmLl9wb3J0LmlzX3dlYnNvY2tldF9zZXJ2ZXJfcnVubmluZygpOgogICAgICAg
ICAgICAgc2VsZi5fcHJpbnRlci53cml0ZV91cGRhdGUoJ1N0YXJ0aW5nIFdlYlNvY2tldCBzZXJ2
ZXIgLi4uJykKICAgICAgICAgICAgIHNlbGYuX3BvcnQuc3RhcnRfd2Vic29ja2V0X3NlcnZlcigp
Ci0gICAgICAgIGlmIHNlbGYuX25lZWRzX3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlciBhbmQgbm90
IHNlbGYuX3BvcnQuaXNfd3B0X3NlcnZlcl9ydW5uaW5nKCk6CisgICAgICAgICAgICBzZWxmLl9k
aWRfc3RhcnRfd2Vic29ja2V0X3NlcnZlciA9IFRydWUKKyAgICAgICAgaWYgc2VsZi5fbmVlZHNf
d2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyIGFuZCBub3Qgc2VsZi5fZGlkX3N0YXJ0X3dwdF9zZXJ2
ZXIgYW5kIG5vdCBzZWxmLl9wb3J0LmlzX3dwdF9zZXJ2ZXJfcnVubmluZygpOgogICAgICAgICAg
ICAgc2VsZi5fcHJpbnRlci53cml0ZV91cGRhdGUoJ1N0YXJ0aW5nIFdlYiBQbGF0Zm9ybSBUZXN0
IHNlcnZlciAuLi4nKQogICAgICAgICAgICAgc2VsZi5fcG9ydC5zdGFydF93ZWJfcGxhdGZvcm1f
dGVzdF9zZXJ2ZXIoKQorICAgICAgICAgICAgc2VsZi5fZGlkX3N0YXJ0X3dwdF9zZXJ2ZXIgPSBU
cnVlCiAKICAgICBkZWYgc3RvcF9zZXJ2ZXJzKHNlbGYpOgotICAgICAgICBpZiBzZWxmLl9uZWVk
c19odHRwOgorICAgICAgICBpZiBzZWxmLl9kaWRfc3RhcnRfaHR0cF9zZXJ2ZXI6CiAgICAgICAg
ICAgICBzZWxmLl9wcmludGVyLndyaXRlX3VwZGF0ZSgnU3RvcHBpbmcgSFRUUCBzZXJ2ZXIgLi4u
JykKICAgICAgICAgICAgIHNlbGYuX3BvcnQuc3RvcF9odHRwX3NlcnZlcigpCi0gICAgICAgIGlm
IHNlbGYuX25lZWRzX3dlYnNvY2tldHM6CisgICAgICAgICAgICBzZWxmLl9kaWRfc3RhcnRfaHR0
cF9zZXJ2ZXIgPSBGYWxzZQorICAgICAgICBpZiBzZWxmLl9kaWRfc3RhcnRfd2Vic29ja2V0X3Nl
cnZlcjoKICAgICAgICAgICAgIHNlbGYuX3ByaW50ZXIud3JpdGVfdXBkYXRlKCdTdG9wcGluZyBX
ZWJTb2NrZXQgc2VydmVyIC4uLicpCiAgICAgICAgICAgICBzZWxmLl9wb3J0LnN0b3Bfd2Vic29j
a2V0X3NlcnZlcigpCi0gICAgICAgIGlmIHNlbGYuX25lZWRzX3dlYl9wbGF0Zm9ybV90ZXN0X3Nl
cnZlcjoKKyAgICAgICAgICAgIHNlbGYuX2RpZF9zdGFydF93ZWJzb2NrZXRfc2VydmVyID0gRmFs
c2UKKyAgICAgICAgaWYgc2VsZi5fZGlkX3N0YXJ0X3dwdF9zZXJ2ZXI6CiAgICAgICAgICAgICBz
ZWxmLl9wcmludGVyLndyaXRlX3VwZGF0ZSgnU3RvcHBpbmcgV2ViIFBsYXRmb3JtIFRlc3Qgc2Vy
dmVyIC4uLicpCiAgICAgICAgICAgICBzZWxmLl9wb3J0LnN0b3Bfd2ViX3BsYXRmb3JtX3Rlc3Rf
c2VydmVyKCkKKyAgICAgICAgICAgIHNlbGYuX2RpZF9zdGFydF93cHRfc2VydmVyID0gRmFsc2UK
IAogICAgIGRlZiBoYW5kbGUoc2VsZiwgbmFtZSwgc291cmNlLCAqYXJncyk6CiAgICAgICAgIG1l
dGhvZCA9IGdldGF0dHIoc2VsZiwgJ19oYW5kbGVfJyArIG5hbWUpCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9y
dW5uZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9j
b250cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5uZXJfdW5pdHRlc3QucHkKaW5kZXggMTgzNzE0ODY1
M2EuLmZmZjk2ZGZlNGRlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5uZXJfdW5pdHRlc3QucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rl
c3RfcnVubmVyX3VuaXR0ZXN0LnB5CkBAIC0xNjIsNyArMTYyLDcgQEAgY2xhc3MgTGF5b3V0VGVz
dFJ1bm5lclRlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgZGVmIGlzX2h0dHBfc2Vy
dmVyX3J1bm5pbmcoKToKICAgICAgICAgICAgIHJldHVybiBzZWxmLmh0dHBfc3RhcnRlZCBhbmQg
bm90IHNlbGYuaHR0cF9zdG9wcGVkCiAKLSAgICAgICAgZGVmIGlzX3dlYnNvY2tldF9zZXJ2ZXJz
X3J1bm5pbmcoKToKKyAgICAgICAgZGVmIGlzX3dlYnNvY2tldF9zZXJ2ZXJfcnVubmluZygpOgog
ICAgICAgICAgICAgcmV0dXJuIHNlbGYud2Vic29ja2V0X3N0YXJ0ZWQgYW5kIG5vdCBzZWxmLndl
YnNvY2tldF9zdG9wcGVkCiAKICAgICAgICAgZGVmIGlzX3dwdF9zZXJ2ZXJfcnVubmluZygpOgpA
QCAtMTc3LDcgKzE3Nyw3IEBAIGNsYXNzIExheW91dFRlc3RSdW5uZXJUZXN0cyh1bml0dGVzdC5U
ZXN0Q2FzZSk6CiAgICAgICAgIHBvcnQuc3RvcF93ZWJzb2NrZXRfc2VydmVyID0gc3RvcF93ZWJz
b2NrZXRfc2VydmVyCiAgICAgICAgIHBvcnQuc3RvcF93ZWJfcGxhdGZvcm1fdGVzdF9zZXJ2ZXIg
PSBzdG9wX3dlYl9wbGF0Zm9ybV90ZXN0X3NlcnZlcgogICAgICAgICBwb3J0LmlzX2h0dHBfc2Vy
dmVyX3J1bm5pbmcgPSBpc19odHRwX3NlcnZlcl9ydW5uaW5nCi0gICAgICAgIHBvcnQuaXNfd2Vi
c29ja2V0X3NlcnZlcnNfcnVubmluZyA9IGlzX3dlYnNvY2tldF9zZXJ2ZXJzX3J1bm5pbmcKKyAg
ICAgICAgcG9ydC5pc193ZWJzb2NrZXRfc2VydmVyX3J1bm5pbmcgPSBpc193ZWJzb2NrZXRfc2Vy
dmVyX3J1bm5pbmcKICAgICAgICAgcG9ydC5pc193cHRfc2VydmVyX3J1bm5pbmcgPSBpc193cHRf
c2VydmVyX3J1bm5pbmcKIAogICAgICAgICBzZWxmLmh0dHBfc3RhcnRlZCA9IHNlbGYuaHR0cF9z
dG9wcGVkID0gc2VsZi53ZWJzb2NrZXRfc3RhcnRlZCA9IHNlbGYud2Vic29ja2V0X3N0b3BwZWQg
PSBGYWxzZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
c2VydmVycy93ZWJzb2NrZXRfc2VydmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvc2VydmVycy93ZWJzb2NrZXRfc2VydmVyLnB5CmluZGV4IDRkNGY1Yjc2MTc5Li45
NDRmOWNiYjY4ZSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvc2VydmVycy93ZWJzb2NrZXRfc2VydmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3NlcnZlcnMvd2Vic29ja2V0X3NlcnZlci5weQpAQCAtMjksMTUgKzI5
LDEyIEBACiAKICIiIkEgY2xhc3MgdG8gaGVscCBzdGFydC9zdG9wIHRoZSBQeVdlYlNvY2tldCBz
ZXJ2ZXIgdXNlZCBieSBsYXlvdXQgdGVzdHMuIiIiCiAKLWltcG9ydCBlcnJubwogaW1wb3J0IGxv
Z2dpbmcKIGltcG9ydCBvcwotaW1wb3J0IHNvY2tldAogaW1wb3J0IHN5cwogaW1wb3J0IHRpbWUK
IAotZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMuc2VydmVycyBpbXBvcnQgaHR0cF9zZXJ2ZXIK
LWZyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnNlcnZlcnMgaW1wb3J0IGh0dHBfc2VydmVyX2Jh
c2UKK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnNlcnZlcnMgaW1wb3J0IGh0dHBfc2VydmVy
LCBodHRwX3NlcnZlcl9iYXNlCiAKIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykK
IApAQCAtMTA4LDE4ICsxMDUsNiBAQCBjbGFzcyBQeVdlYlNvY2tldChodHRwX3NlcnZlci5MaWdo
dHRwZCk6CiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBzZWxmLl9sb2dfcHJlZml4ID0gX1dT
X0xPR19OQU1FCiAKLSAgICBkZWYgaXNfcnVubmluZyhzZWxmKToKLSAgICAgICAgcyA9IHNvY2tl
dC5zb2NrZXQoKQotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBzLmNvbm5lY3QoKCdsb2NhbGhv
c3QnLCBzZWxmLl9wb3J0KSkKLSAgICAgICAgZXhjZXB0IElPRXJyb3IgYXMgZToKLSAgICAgICAg
ICAgIGlmIGUuZXJybm8gbm90IGluIChlcnJuby5FQ09OTlJFRlVTRUQsIGVycm5vLkVDT05OUkVT
RVQpOgotICAgICAgICAgICAgICAgIHJhaXNlCi0gICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAg
ICAgICAgZmluYWxseToKLSAgICAgICAgICAgIHMuY2xvc2UoKQotICAgICAgICByZXR1cm4gVHJ1
ZQotCiAgICAgZGVmIHBvcnRzX3RvX2ZvcndhcmQoc2VsZik6CiAgICAgICAgIHJldHVybiBbc2Vs
Zi5fcG9ydF0KIApAQCAtMTkwLDMgKzE3NSw3IEBAIGNsYXNzIFB5V2ViU29ja2V0KGh0dHBfc2Vy
dmVyLkxpZ2h0dHBkKToKICAgICAgICAgaWYgc2VsZi5fd3NvdXQ6CiAgICAgICAgICAgICBzZWxm
Ll93c291dC5jbG9zZSgpCiAgICAgICAgICAgICBzZWxmLl93c291dCA9IE5vbmUKKworCitkZWYg
aXNfd2ViX3NvY2tldF9zZXJ2ZXJfcnVubmluZygpOgorICAgIHJldHVybiBodHRwX3NlcnZlcl9i
YXNlLkh0dHBTZXJ2ZXJCYXNlLl9pc19ydW5uaW5nX29uX3BvcnQoUHlXZWJTb2NrZXQuREVGQVVM
VF9XU19QT1JUKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2Jhc2Uu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weQppbmRleCAwMTU3NzFmMTdi
Ny4uYzE2NmNmNGQ4YjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9i
YXNlLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5CkBAIC05NzQs
MTYgKzk3NCwxOCBAQCBjbGFzcyBQb3J0KG9iamVjdCk6CiAgICAgICAgIHNlbGYuX2h0dHBfc2Vy
dmVyID0gc2VydmVyCiAKICAgICBkZWYgaXNfaHR0cF9zZXJ2ZXJfcnVubmluZyhzZWxmKToKKyAg
ICAgICAgaWYgc2VsZi5faHR0cF9zZXJ2ZXI6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQogICAg
ICAgICByZXR1cm4gaHR0cF9zZXJ2ZXJfYmFzZS5pc19odHRwX3NlcnZlcl9ydW5uaW5nKCkKIAot
ICAgIGRlZiBpc193ZWJzb2NrZXRfc2VydmVyc19ydW5uaW5nKHNlbGYpOgotICAgICAgICBpZiBz
ZWxmLl93ZWJzb2NrZXRfc2VjdXJlX3NlcnZlciBhbmQgc2VsZi5fd2Vic29ja2V0X3NlcnZlcjoK
LSAgICAgICAgICAgIHJldHVybiBzZWxmLl93ZWJzb2NrZXRfc2VjdXJlX3NlcnZlci5pc19ydW5u
aW5nKCkgYW5kIHNlbGYuX3dlYnNvY2tldF9zZXJ2ZXIuaXNfcnVubmluZygpCi0gICAgICAgIGVs
aWYgc2VsZi5fd2Vic29ja2V0X3NlcnZlcjoKLSAgICAgICAgICAgIHJldHVybiBzZWxmLl93ZWJz
b2NrZXRfc2VydmVyLmlzX3J1bm5pbmcoKQotICAgICAgICByZXR1cm4gRmFsc2UKKyAgICBkZWYg
aXNfd2Vic29ja2V0X3NlcnZlcl9ydW5uaW5nKHNlbGYpOgorICAgICAgICBpZiBzZWxmLl93ZWJz
b2NrZXRfc2VydmVyOgorICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgcmV0dXJuIHdl
YnNvY2tldF9zZXJ2ZXIuaXNfd2ViX3NvY2tldF9zZXJ2ZXJfcnVubmluZygpCiAKICAgICBkZWYg
aXNfd3B0X3NlcnZlcl9ydW5uaW5nKHNlbGYpOgorICAgICAgICBpZiBzZWxmLl93ZWJfcGxhdGZv
cm1fdGVzdF9zZXJ2ZXI6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQogICAgICAgICByZXR1cm4g
d2ViX3BsYXRmb3JtX3Rlc3Rfc2VydmVyLmlzX3dwdF9zZXJ2ZXJfcnVubmluZyhzZWxmKQogCiAg
ICAgZGVmIF9leHRyYWN0X2NlcnRpZmljYXRlX2Zyb21fcGVtKHNlbGYsIHBlbV9maWxlLCBkZXN0
aW5hdGlvbl9jZXJ0aWZpY2F0ZV9maWxlKToK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332909</attachid>
            <date>2018-02-01 14:03:12 -0800</date>
            <delta_ts>2018-02-05 12:43:18 -0800</delta_ts>
            <desc>Patch and tests</desc>
            <filename>bug-182405-20180201140312.patch</filename>
            <type>text/plain</type>
            <size>4537</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3OTQyCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzMwMjI5MDMxM2RkYTZkMDhjZjliYmYxMWY0YTlkYWFm
NjA5ODMxZi4uM2ZlMmViMmE2MGYxMmM2YWI4MjVmNDZhOTI2YTYxZTgyZjViN2QzYiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMw
IEBACisyMDE4LTAyLTAxICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAg
ICAgICBwcmVwYXJlLUNoYW5nZUxvZyBnZXRzIGNvbmZ1c2VkIGFib3V0IFB5dGhvbiBkb2NzdHJp
bmdzIHRoYXQgY29udGFpbiB0aGUgd29yZCAiY2xhc3MiIG9yICJkZWYiCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODI0MDUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdHJpbmcgbGl0ZXJhbCBzdGF0ZW1l
bnRzLCBpbmNsdWRpbmcgZG9jc3RyaW5ncywgZG8gbm90IGRlbWFyY2F0ZSBhIG5ldyBzY29wZSBp
biBQeXRob24uCisgICAgICAgIFNvLCBkbyBub3QgdHJlYXQgdGhlbSBsaWtlIHRoZXkgZG8gd2hl
biBidWlsZGluZyB1cCB0aGUgbGlzdCBvZiBtb2RpZmllZCBmdW5jdGlvbnMuCisKKyAgICAgICAg
KiBTY3JpcHRzL3ByZXBhcmUtQ2hhbmdlTG9nOgorICAgICAgICAoZ2V0X2Z1bmN0aW9uX2xpbmVf
cmFuZ2VzX2Zvcl9weXRob24pOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cGVybC9wcmVwYXJl
LUNoYW5nZUxvZ191bml0dGVzdC9yZXNvdXJjZXMvcHl0aG9uX3VuaXR0ZXN0cy1leHBlY3RlZC50
eHQ6CisgICAgICAgIFRoZSBleHBlY3RlZCBlbmRpbmcgbGluZSBudW1iZXIgZm9yIHRoZSBsYXN0
ICJwYXNzIiBzdGF0ZW1lbnQgaW5zaWRlIHRoZSBzY29wZSBvZiBDbGFzczUgY2hhbmdlZAorICAg
ICAgICBmcm9tIDk3IHRvIDk4IGJlY2F1c2UgZW1wdHkgbGluZXMgZG8gbm90IGVmZmVjdCBzY29w
ZS4gVGhpcyBpcyBjb25zaXN0ZW50IHdpdGggdGhlIHBhcnNpbmcKKyAgICAgICAgb2YgdGhlIHNl
Y29uZCAicGFzcyIgc3RhdGVtZW50IGluIHRoZSBzY29wZSBvZiBjbGFzcyBDbGFzczUuIEEgInBh
c3MiIGlzIGEgbnVsbCBvcGVyYXRpb24gdGhhdAorICAgICAgICBpcyB1c2VkIGFzIGEgc3ludGFj
dGljIHBsYWNlaG9sZGVyIHdoZW4gYSBzdGF0ZW1lbnQgaXMgcmVxdWlyZWQuIElkZWFsbHkgd2Ug
d291bGQgbWFrZQorICAgICAgICB0aGUgcGFyc2luZyBjb2RlIHNtYXJ0ZXIgc28gYXMgdG8gYXZv
aWQgZW1pdHRpbmcgcmFuZ2VzIGZvciAicGFzcyIgc3RhdGVtZW50cyB0aGF0IHNlcnZlCisgICAg
ICAgIG5vdCBzeW50YWN0aWMgcHVycG9zZS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHBlcmwv
cHJlcGFyZS1DaGFuZ2VMb2dfdW5pdHRlc3QvcmVzb3VyY2VzL3B5dGhvbl91bml0dGVzdHMucHk6
CisgICAgICAgIChDbGFzczUpOgorICAgICAgICAoQ2xhc3M2KToKKyAgICAgICAgKENsYXNzNi5f
X2luaXRfXyk6CisgICAgICAgIChDbGFzczcpOgorICAgICAgICAoQ2xhc3M3Ll9faW5pdF9fKToK
KyAgICAgICAgQWRkIHNvbWUgbW9yZSB0ZXN0cy4KKwogMjAxOC0wMS0zMSAgTWljaGFlbCBDYXRh
bnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjIyNzg3NS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvcHJlcGFyZS1DaGFu
Z2VMb2cgYi9Ub29scy9TY3JpcHRzL3ByZXBhcmUtQ2hhbmdlTG9nCmluZGV4IGUzMjljNTk5NGE5
ZWU5MjQ1YzcyZjhkOWYyOWM3NzBiNDY3ZTNhMmIuLjZkMjhhZjQyODE4M2UyNWJhMGIwY2VmMDhj
M2VmZmI3YzAyMjdhNGYgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvcHJlcGFyZS1DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvU2NyaXB0cy9wcmVwYXJlLUNoYW5nZUxvZwpAQCAtMTc5NSw3ICsxNzk1
LDcgQEAgc3ViIGdldF9mdW5jdGlvbl9saW5lX3Jhbmdlc19mb3JfcHl0aG9uKCQkKQogICAgICAg
ICAgICAgJGxhc3RMaW5lID0gMTsKICAgICAgICAgfQogICAgICAgICBjaG9tcDsKLSAgICAgICAg
bmV4dCB1bmxlc3MgL14oXHMqKShbXiNdLiopJC87CisgICAgICAgIG5leHQgdW5sZXNzIC9eKFxz
KikoW14jXS4qKSQvOyAjIFNraXAgbm9uLWluZGVudGVkIGxpbmVzIHRoYXQgYmVnaW4gd2l0aCBh
IGNvbW1lbnQuCiAKICAgICAgICAgbXkgJGluZGVudCA9IGxlbmd0aCAkMTsKICAgICAgICAgbXkg
JHJlc3QgPSAkMjsKQEAgLTE4MjQsNiArMTgyNCw3IEBAIHN1YiBnZXRfZnVuY3Rpb25fbGluZV9y
YW5nZXNfZm9yX3B5dGhvbigkJCkKICAgICAgICAgICAgICRzY29wZS0+e2xpbmV9ID0gJC47CiAg
ICAgICAgIH0KIAorICAgICAgICBuZXh0IGlmIC9eXHMqWyMnIl0vOyAjIFNraXAgaW5kZW50ZWQg
YW5kIG5vbi1pbmRlbnRlZCBsaW5lcyB0aGF0IGJlZ2luIHdpdGggYSBjb21tZW50IG9yIHN0cmlu
ZyBsaXRlcmFsIChpbmNsdWRlcyBkb2NzdHJpbmdzKS4KICAgICAgICAgbmV4dCB1bmxlc3MgJHJl
c3QgPX4gLyg/OmNsYXNzfGRlZilccysoXHcrKS87CiAgICAgICAgIG15ICRuYW1lID0gJDE7CiAg
ICAgICAgIG15ICRmdWxsTmFtZSA9ICRzY29wZS0+e25hbWV9ID8gam9pbignLicsICRzY29wZS0+
e25hbWV9LCAkbmFtZSkgOiAkbmFtZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cGVybC9wcmVwYXJlLUNoYW5nZUxvZ191bml0dGVzdC9yZXNvdXJjZXMvcHl0aG9uX3VuaXR0ZXN0
cy1leHBlY3RlZC50eHQgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvcHJlcGFyZS1DaGFuZ2VM
b2dfdW5pdHRlc3QvcmVzb3VyY2VzL3B5dGhvbl91bml0dGVzdHMtZXhwZWN0ZWQudHh0CmluZGV4
IDhkYWQzN2U4MjY0MjUzMWJiZDYwYjM0ZTRlMTYxMzNlZTgxY2RlYzQuLmE4NjE3ZjVhZTM3NmNk
MDVhN2MzZWRlYWM2OWE1MDllZWQ5NDVlY2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cGVybC9wcmVwYXJlLUNoYW5nZUxvZ191bml0dGVzdC9yZXNvdXJjZXMvcHl0aG9uX3VuaXR0
ZXN0cy1leHBlY3RlZC50eHQKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL3ByZXBhcmUt
Q2hhbmdlTG9nX3VuaXR0ZXN0L3Jlc291cmNlcy9weXRob25fdW5pdHRlc3RzLWV4cGVjdGVkLnR4
dApAQCAtMTI0LDggKzEyNCwzOCBAQAogICAgIF0sCiAgICAgWwogICAgICAgJzk3JywKLSAgICAg
ICc5NycsCisgICAgICAnOTgnLAogICAgICAgJ0NsYXNzNScKKyAgICBdLAorICAgIFsKKyAgICAg
ICcxMTInLAorICAgICAgJzExMycsCisgICAgICAnQ2xhc3M2JworICAgIF0sCisgICAgWworICAg
ICAgJzExMicsCisgICAgICAnMTEzJywKKyAgICAgICdDbGFzczYnCisgICAgXSwKKyAgICBbCisg
ICAgICAnMTE0JywKKyAgICAgICcxMTcnLAorICAgICAgJ0NsYXNzNi5fX2luaXRfXycKKyAgICBd
LAorICAgIFsKKyAgICAgICcxMTknLAorICAgICAgJzEyMCcsCisgICAgICAnQ2xhc3M3JworICAg
IF0sCisgICAgWworICAgICAgJzExOScsCisgICAgICAnMTIwJywKKyAgICAgICdDbGFzczcnCisg
ICAgXSwKKyAgICBbCisgICAgICAnMTIxJywKKyAgICAgICcxMjMnLAorICAgICAgJ0NsYXNzNy5f
X2luaXRfXycKICAgICBdCiAgIF0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cGVybC9wcmVwYXJlLUNoYW5nZUxvZ191bml0dGVzdC9yZXNvdXJjZXMvcHl0aG9uX3VuaXR0ZXN0
cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9wcmVwYXJlLUNoYW5nZUxvZ191bml0dGVz
dC9yZXNvdXJjZXMvcHl0aG9uX3VuaXR0ZXN0cy5weQppbmRleCAxYTE5Y2MyOWM4MDM1MDVkMzcy
YWQxOWEzYzkwODJlYjRlMjcxZWE1Li5iZWM1ZjQxNTQ1YzFjNGFkYmNiZGYxMTI2ODA3MzY1ZTQz
MDRhYjJjIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvcHJlcGFyZS1DaGFu
Z2VMb2dfdW5pdHRlc3QvcmVzb3VyY2VzL3B5dGhvbl91bml0dGVzdHMucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRwZXJsL3ByZXBhcmUtQ2hhbmdlTG9nX3VuaXR0ZXN0L3Jlc291cmNlcy9w
eXRob25fdW5pdHRlc3RzLnB5CkBAIC05NSwzICs5NSwyOSBAQCBjbGFzcyBDbGFzczU6CiAgICAg
ZGVmIGZ1bmMxMSgpOgogICAgICAgICBwYXNzCiAgICAgcGFzcworCisiIiJjbGFzcyBBIiIiCisK
KydjbGFzcyBBJworCisiY2xhc3MgQSIKKworIiIiZGVmIEEiIiIKKworJ2RlZiBBJworCisiZGVm
IEEiCisKKyIiImNsYXNzIENsYXNzNiIiIgorY2xhc3MgQ2xhc3M2OgorICAgICIiImNsYXNzIENs
YXNzNl8xIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICAiIiJjbGFzcyBDbGFz
czZfMiIiIgorICAgICAgICBwYXNzCisKKyIiImRlZiBDbGFzczciIiIKK2NsYXNzIENsYXNzNzoK
KyAgICAiIiJkZWYgQ2xhc3M3XzEiIiIKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAg
ICIiImRlZiBDbGFzczdfMiIiIgorICAgICAgICBwYXNzCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333111</attachid>
            <date>2018-02-05 12:43:19 -0800</date>
            <delta_ts>2018-02-05 12:45:09 -0800</delta_ts>
            <desc>Patch and tests</desc>
            <filename>bug-182405-20180205124319.patch</filename>
            <type>text/plain</type>
            <size>5734</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4MTA3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTlhMjBjYWNiY2JiMGVmYmQxMThlYzU5NTY3MmFiYTIw
ODdiYjA4YS4uOGQ1M2I1MTIzNmEwNzMwODIwZWZhZTc5M2Q4YjJlNTg2ZDhhNDAzZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMy
IEBACisyMDE4LTAyLTA1ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAg
ICAgICBwcmVwYXJlLUNoYW5nZUxvZyBnZXRzIGNvbmZ1c2VkIGFib3V0IFB5dGhvbiBkb2NzdHJp
bmdzIHRoYXQgY29udGFpbiB0aGUgd29yZCAiY2xhc3MiIG9yICJkZWYiCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODI0MDUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdHJpbmcgbGl0ZXJhbCBzdGF0ZW1l
bnRzLCBpbmNsdWRpbmcgZG9jc3RyaW5ncywgZG8gbm90IGRlbWFyY2F0ZSBhIG5ldyBzY29wZSBp
biBQeXRob24uCisgICAgICAgIFNvLCBkbyBub3QgdHJlYXQgdGhlbSBsaWtlIHRoZXkgZG8gd2hl
biBidWlsZGluZyB1cCB0aGUgbGlzdCBvZiBtb2RpZmllZCBmdW5jdGlvbnMuCisKKyAgICAgICAg
KiBTY3JpcHRzL3ByZXBhcmUtQ2hhbmdlTG9nOgorICAgICAgICAoZ2V0X2Z1bmN0aW9uX2xpbmVf
cmFuZ2VzX2Zvcl9weXRob24pOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cGVybC9wcmVwYXJl
LUNoYW5nZUxvZ191bml0dGVzdC9yZXNvdXJjZXMvcHl0aG9uX3VuaXR0ZXN0cy1leHBlY3RlZC50
eHQ6CisgICAgICAgIFRoZSBleHBlY3RlZCBlbmRpbmcgbGluZSBudW1iZXIgZm9yIHRoZSBsYXN0
ICJwYXNzIiBzdGF0ZW1lbnQgaW5zaWRlIHRoZSBzY29wZSBvZiBDbGFzczUgY2hhbmdlZAorICAg
ICAgICBmcm9tIDk3IHRvIDk4IGJlY2F1c2UgZW1wdHkgbGluZXMgZG8gbm90IGVmZmVjdCBzY29w
ZS4gVGhpcyBpcyBjb25zaXN0ZW50IHdpdGggdGhlIHBhcnNpbmcKKyAgICAgICAgb2YgdGhlIHNl
Y29uZCAicGFzcyIgc3RhdGVtZW50IGluIHRoZSBzY29wZSBvZiBjbGFzcyBDbGFzczUuIEEgInBh
c3MiIGlzIGEgbnVsbCBvcGVyYXRpb24gdGhhdAorICAgICAgICBpcyB1c2VkIGFzIGEgc3ludGFj
dGljIHBsYWNlaG9sZGVyIHdoZW4gYSBzdGF0ZW1lbnQgaXMgcmVxdWlyZWQuIElkZWFsbHkgd2Ug
d291bGQgbWFrZQorICAgICAgICB0aGUgcGFyc2luZyBjb2RlIHNtYXJ0ZXIgc28gYXMgdG8gYXZv
aWQgZW1pdHRpbmcgcmFuZ2VzIGZvciAicGFzcyIgc3RhdGVtZW50cyB0aGF0IHNlcnZlCisgICAg
ICAgIG5vdCBzeW50YWN0aWMgcHVycG9zZS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHBlcmwv
cHJlcGFyZS1DaGFuZ2VMb2dfdW5pdHRlc3QvcmVzb3VyY2VzL3B5dGhvbl91bml0dGVzdHMucHk6
CisgICAgICAgIChDbGFzczUpOgorICAgICAgICAoQ2xhc3M2KToKKyAgICAgICAgKENsYXNzNi5f
X2luaXRfXyk6CisgICAgICAgIChDbGFzczcpOgorICAgICAgICAoQ2xhc3M3Ll9faW5pdF9fKToK
KyAgICAgICAgKENsYXNzOCk6CisgICAgICAgIChDbGFzczguX19pbml0X18pOgorICAgICAgICBB
ZGQgc29tZSBtb3JlIHRlc3RzLgorCiAyMDE4LTAyLTA1ICBCYXN1a2UgU3V6dWtpICA8QmFzdWtl
LlN1enVraUBzb255LmNvbT4KIAogICAgICAgICBbV2luXSBFbmFibGUgbXVsdGkgQ1BVIGJ1aWxk
aW5nIG9uIE1TQnVpbGQuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3ByZXBhcmUtQ2hhbmdl
TG9nIGIvVG9vbHMvU2NyaXB0cy9wcmVwYXJlLUNoYW5nZUxvZwppbmRleCBlMzI5YzU5OTRhOWVl
OTI0NWM3MmY4ZDlmMjljNzcwYjQ2N2UzYTJiLi5hMzMyNTI2NWM3ZGMwYTg1NDExOTM2NWQ5ZTEy
ZTliZGYzMDIxNTIxIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3ByZXBhcmUtQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL1NjcmlwdHMvcHJlcGFyZS1DaGFuZ2VMb2cKQEAgLTE3ODMsOCArMTc4Mywx
MSBAQCBzdWIgZ2V0X2Z1bmN0aW9uX2xpbmVfcmFuZ2VzX2Zvcl9weXRob24oJCQpCiAKICAgICBt
eSBAcmFuZ2VzOwogCisgICAgbXkgJHB5dGhvbk11bHRpbGluZVN0cmluZ0xpdGVyYWxTdGFydFJl
Z0V4ID0gcXIjKD86IiIifCcnJykjOworCiAgICAgbXkgQHNjb3BlU3RhY2sgPSAoeyBsaW5lID0+
IDAsIGluZGVudCA9PiAtMSwgbmFtZSA9PiB1bmRlZiB9KTsKICAgICBteSAkbGFzdExpbmUgPSAw
OworICAgIG15ICRpbkNvbW1lbnQgPSAwOwogICAgIHVudGlsICgkbGFzdExpbmUpIHsKICAgICAg
ICAgJF8gPSA8JGZpbGVIYW5kbGU+OwogICAgICAgICB1bmxlc3MgKCRfKSB7CkBAIC0xNzk1LDcg
KzE3OTgsNyBAQCBzdWIgZ2V0X2Z1bmN0aW9uX2xpbmVfcmFuZ2VzX2Zvcl9weXRob24oJCQpCiAg
ICAgICAgICAgICAkbGFzdExpbmUgPSAxOwogICAgICAgICB9CiAgICAgICAgIGNob21wOwotICAg
ICAgICBuZXh0IHVubGVzcyAvXihccyopKFteI10uKikkLzsKKyAgICAgICAgbmV4dCB1bmxlc3Mg
L14oXHMqKShbXiNdLiopJC87ICMgU2tpcCBub24taW5kZW50ZWQgbGluZXMgdGhhdCBiZWdpbiB3
aXRoIGEgY29tbWVudC4KIAogICAgICAgICBteSAkaW5kZW50ID0gbGVuZ3RoICQxOwogICAgICAg
ICBteSAkcmVzdCA9ICQyOwpAQCAtMTgyNCw2ICsxODI3LDE3IEBAIHN1YiBnZXRfZnVuY3Rpb25f
bGluZV9yYW5nZXNfZm9yX3B5dGhvbigkJCkKICAgICAgICAgICAgICRzY29wZS0+e2xpbmV9ID0g
JC47CiAgICAgICAgIH0KIAorICAgICAgICAjIFNraXAgbXVsdGktbGluZSBzdHJpbmcgbGl0ZXJh
bHMgYW5kIGRvY3N0cmluZ3MuCisgICAgICAgIG5leHQgaWYgL15ccyokcHl0aG9uTXVsdGlsaW5l
U3RyaW5nTGl0ZXJhbFN0YXJ0UmVnRXguKiRweXRob25NdWx0aWxpbmVTdHJpbmdMaXRlcmFsU3Rh
cnRSZWdFeFxzKiQvOworICAgICAgICBpZiAoISRpbkNvbW1lbnQgJiYgL15ccyokcHl0aG9uTXVs
dGlsaW5lU3RyaW5nTGl0ZXJhbFN0YXJ0UmVnRXgvKSB7CisgICAgICAgICAgICAkaW5Db21tZW50
ID0gMTsKKyAgICAgICAgfSBlbHNpZiAoJGluQ29tbWVudCAmJiAvJHB5dGhvbk11bHRpbGluZVN0
cmluZ0xpdGVyYWxTdGFydFJlZ0V4XHMqJC8pIHsKKyAgICAgICAgICAgICRpbkNvbW1lbnQgPSAw
OworICAgICAgICB9CisgICAgICAgIG5leHQgaWYgJGluQ29tbWVudDsKKworICAgICAgICBuZXh0
IGlmIC9eXHMqWyMnIl0vOyAjIFNraXAgaW5kZW50ZWQgYW5kIG5vbi1pbmRlbnRlZCBsaW5lcyB0
aGF0IGJlZ2luIHdpdGggYSBjb21tZW50IG9yIHN0cmluZyBsaXRlcmFsIChpbmNsdWRlcyBkb2Nz
dHJpbmdzKS4KKwogICAgICAgICBuZXh0IHVubGVzcyAkcmVzdCA9fiAvKD86Y2xhc3N8ZGVmKVxz
KyhcdyspLzsKICAgICAgICAgbXkgJG5hbWUgPSAkMTsKICAgICAgICAgbXkgJGZ1bGxOYW1lID0g
JHNjb3BlLT57bmFtZX0gPyBqb2luKCcuJywgJHNjb3BlLT57bmFtZX0sICRuYW1lKSA6ICRuYW1l
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL3ByZXBhcmUtQ2hhbmdlTG9n
X3VuaXR0ZXN0L3Jlc291cmNlcy9weXRob25fdW5pdHRlc3RzLWV4cGVjdGVkLnR4dCBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cGVybC9wcmVwYXJlLUNoYW5nZUxvZ191bml0dGVzdC9yZXNvdXJjZXMv
cHl0aG9uX3VuaXR0ZXN0cy1leHBlY3RlZC50eHQKaW5kZXggOGRhZDM3ZTgyNjQyNTMxYmJkNjBi
MzRlNGUxNjEzM2VlODFjZGVjNC4uMzQ5MmFlOTQ0ZjMzOGNhYzNiNmMxOWFmMmM2Y2M1ZGMwZjUz
MmI5NiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL3ByZXBhcmUtQ2hhbmdl
TG9nX3VuaXR0ZXN0L3Jlc291cmNlcy9weXRob25fdW5pdHRlc3RzLWV4cGVjdGVkLnR4dAorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvcHJlcGFyZS1DaGFuZ2VMb2dfdW5pdHRlc3QvcmVz
b3VyY2VzL3B5dGhvbl91bml0dGVzdHMtZXhwZWN0ZWQudHh0CkBAIC0xMjQsOCArMTI0LDUzIEBA
CiAgICAgXSwKICAgICBbCiAgICAgICAnOTcnLAotICAgICAgJzk3JywKKyAgICAgICc5OCcsCiAg
ICAgICAnQ2xhc3M1JwotICAgIF0KKyAgICBdLAorICAgIFsKKyAgICAgICcxMTInLAorICAgICAg
JzExMycsCisgICAgICAnQ2xhc3M2JworICAgIF0sCisgICAgWworICAgICAgJzExMicsCisgICAg
ICAnMTEzJywKKyAgICAgICdDbGFzczYnCisgICAgXSwKKyAgICBbCisgICAgICAnMTE0JywKKyAg
ICAgICcxMTcnLAorICAgICAgJ0NsYXNzNi5fX2luaXRfXycKKyAgICBdLAorICAgIFsKKyAgICAg
ICcxMTknLAorICAgICAgJzEyMCcsCisgICAgICAnQ2xhc3M3JworICAgIF0sCisgICAgWworICAg
ICAgJzExOScsCisgICAgICAnMTIwJywKKyAgICAgICdDbGFzczcnCisgICAgXSwKKyAgICBbCisg
ICAgICAnMTIxJywKKyAgICAgICcxMjQnLAorICAgICAgJ0NsYXNzNy5fX2luaXRfXycKKyAgICBd
LAorICAgIFsKKyAgICAgICcxMzYnLAorICAgICAgJzE0MScsCisgICAgICAnQ2xhc3M4JworICAg
IF0sCisgICAgWworICAgICAgJzEzNicsCisgICAgICAnMTQxJywKKyAgICAgICdDbGFzczgnCisg
ICAgXSwKKyAgICBbCisgICAgICAnMTQyJywKKyAgICAgICcxNDMnLAorICAgICAgJ0NsYXNzOC5f
X2luaXRfXycKKyAgICBdLAogICBdCiB9CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHBlcmwvcHJlcGFyZS1DaGFuZ2VMb2dfdW5pdHRlc3QvcmVzb3VyY2VzL3B5dGhvbl91bml0dGVz
dHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvcHJlcGFyZS1DaGFuZ2VMb2dfdW5pdHRl
c3QvcmVzb3VyY2VzL3B5dGhvbl91bml0dGVzdHMucHkKaW5kZXggMWExOWNjMjljODAzNTA1ZDM3
MmFkMTlhM2M5MDgyZWI0ZTI3MWVhNS4uMDlkZGQ5ZjY1YTQ4YjllMzkwNThkMzYxNGI1MmFjZWIz
MmEwNWRhYyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL3ByZXBhcmUtQ2hh
bmdlTG9nX3VuaXR0ZXN0L3Jlc291cmNlcy9weXRob25fdW5pdHRlc3RzLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cGVybC9wcmVwYXJlLUNoYW5nZUxvZ191bml0dGVzdC9yZXNvdXJjZXMv
cHl0aG9uX3VuaXR0ZXN0cy5weQpAQCAtOTUsMyArOTUsNDkgQEAgY2xhc3MgQ2xhc3M1OgogICAg
IGRlZiBmdW5jMTEoKToKICAgICAgICAgcGFzcwogICAgIHBhc3MKKworIiIiY2xhc3MgQSIiIgor
CisnY2xhc3MgQScKKworImNsYXNzIEEiCisKKyIiImRlZiBBIiIiCisKKydkZWYgQScKKworImRl
ZiBBIgorCisiIiJjbGFzcyBDbGFzczYiIiIKK2NsYXNzIENsYXNzNjoKKyAgICAiIiJjbGFzcyBD
bGFzczZfMSIiIgorICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgIiIiY2xhc3MgQ2xh
c3M2XzIiIiIKKyAgICAgICAgcGFzcworCisiIiJkZWYgQ2xhc3M3IiIiCitjbGFzcyBDbGFzczc6
CisgICAgIiIiZGVmIENsYXNzN18xIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAg
ICAiIiJkZWYgQ2xhc3M3XzIiIiIKKyAgICAgICAgcGFzcworCisiIiJhCitjbGFzcyBiCisiIiIK
KworIiIiYQorZGVmIGIKKyIiIgorCisiIiIKK2NsYXNzIGNsYXNzOAorIiIiCitjbGFzcyBDbGFz
czg6CisgICAgcGFzcworCisgICAgIiIiCisgICAgZGVmIENsYXNzOF8xCisgICAgIiIiCisgICAg
ZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBwYXNzCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333112</attachid>
            <date>2018-02-05 12:45:10 -0800</date>
            <delta_ts>2018-02-05 14:02:21 -0800</delta_ts>
            <desc>Patch and tests</desc>
            <filename>bug-182405-20180205124510.patch</filename>
            <type>text/plain</type>
            <size>5719</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4MTA3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTlhMjBjYWNiY2JiMGVmYmQxMThlYzU5NTY3MmFiYTIw
ODdiYjA4YS4uOGQ1M2I1MTIzNmEwNzMwODIwZWZhZTc5M2Q4YjJlNTg2ZDhhNDAzZCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMy
IEBACisyMDE4LTAyLTA1ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAg
ICAgICBwcmVwYXJlLUNoYW5nZUxvZyBnZXRzIGNvbmZ1c2VkIGFib3V0IFB5dGhvbiBkb2NzdHJp
bmdzIHRoYXQgY29udGFpbiB0aGUgd29yZCAiY2xhc3MiIG9yICJkZWYiCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODI0MDUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdHJpbmcgbGl0ZXJhbCBzdGF0ZW1l
bnRzLCBpbmNsdWRpbmcgZG9jc3RyaW5ncywgZG8gbm90IGRlbWFyY2F0ZSBhIG5ldyBzY29wZSBp
biBQeXRob24uCisgICAgICAgIFNvLCBkbyBub3QgdHJlYXQgdGhlbSBsaWtlIHRoZXkgZG8gd2hl
biBidWlsZGluZyB1cCB0aGUgbGlzdCBvZiBtb2RpZmllZCBmdW5jdGlvbnMuCisKKyAgICAgICAg
KiBTY3JpcHRzL3ByZXBhcmUtQ2hhbmdlTG9nOgorICAgICAgICAoZ2V0X2Z1bmN0aW9uX2xpbmVf
cmFuZ2VzX2Zvcl9weXRob24pOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cGVybC9wcmVwYXJl
LUNoYW5nZUxvZ191bml0dGVzdC9yZXNvdXJjZXMvcHl0aG9uX3VuaXR0ZXN0cy1leHBlY3RlZC50
eHQ6CisgICAgICAgIFRoZSBleHBlY3RlZCBlbmRpbmcgbGluZSBudW1iZXIgZm9yIHRoZSBsYXN0
ICJwYXNzIiBzdGF0ZW1lbnQgaW5zaWRlIHRoZSBzY29wZSBvZiBDbGFzczUgY2hhbmdlZAorICAg
ICAgICBmcm9tIDk3IHRvIDk4IGJlY2F1c2UgZW1wdHkgbGluZXMgZG8gbm90IGVmZmVjdCBzY29w
ZS4gVGhpcyBpcyBjb25zaXN0ZW50IHdpdGggdGhlIHBhcnNpbmcKKyAgICAgICAgb2YgdGhlIHNl
Y29uZCAicGFzcyIgc3RhdGVtZW50IGluIHRoZSBzY29wZSBvZiBjbGFzcyBDbGFzczUuIEEgInBh
c3MiIGlzIGEgbnVsbCBvcGVyYXRpb24gdGhhdAorICAgICAgICBpcyB1c2VkIGFzIGEgc3ludGFj
dGljIHBsYWNlaG9sZGVyIHdoZW4gYSBzdGF0ZW1lbnQgaXMgcmVxdWlyZWQuIElkZWFsbHkgd2Ug
d291bGQgbWFrZQorICAgICAgICB0aGUgcGFyc2luZyBjb2RlIHNtYXJ0ZXIgc28gYXMgdG8gYXZv
aWQgZW1pdHRpbmcgcmFuZ2VzIGZvciAicGFzcyIgc3RhdGVtZW50cyB0aGF0IHNlcnZlCisgICAg
ICAgIG5vdCBzeW50YWN0aWMgcHVycG9zZS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHBlcmwv
cHJlcGFyZS1DaGFuZ2VMb2dfdW5pdHRlc3QvcmVzb3VyY2VzL3B5dGhvbl91bml0dGVzdHMucHk6
CisgICAgICAgIChDbGFzczUpOgorICAgICAgICAoQ2xhc3M2KToKKyAgICAgICAgKENsYXNzNi5f
X2luaXRfXyk6CisgICAgICAgIChDbGFzczcpOgorICAgICAgICAoQ2xhc3M3Ll9faW5pdF9fKToK
KyAgICAgICAgKENsYXNzOCk6CisgICAgICAgIChDbGFzczguX19pbml0X18pOgorICAgICAgICBB
ZGQgc29tZSBtb3JlIHRlc3RzLgorCiAyMDE4LTAyLTA1ICBCYXN1a2UgU3V6dWtpICA8QmFzdWtl
LlN1enVraUBzb255LmNvbT4KIAogICAgICAgICBbV2luXSBFbmFibGUgbXVsdGkgQ1BVIGJ1aWxk
aW5nIG9uIE1TQnVpbGQuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3ByZXBhcmUtQ2hhbmdl
TG9nIGIvVG9vbHMvU2NyaXB0cy9wcmVwYXJlLUNoYW5nZUxvZwppbmRleCBlMzI5YzU5OTRhOWVl
OTI0NWM3MmY4ZDlmMjljNzcwYjQ2N2UzYTJiLi43YTFhZWJhMmIzOTdhOGUzZjNhNjU3NTkyY2Rm
NWQyODJmYWZkNzczIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3ByZXBhcmUtQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL1NjcmlwdHMvcHJlcGFyZS1DaGFuZ2VMb2cKQEAgLTE3ODMsOCArMTc4Mywx
MSBAQCBzdWIgZ2V0X2Z1bmN0aW9uX2xpbmVfcmFuZ2VzX2Zvcl9weXRob24oJCQpCiAKICAgICBt
eSBAcmFuZ2VzOwogCisgICAgbXkgJG11bHRpbGluZVN0cmluZ0xpdGVyYWxTZW50aW5lbFJlZ0V4
ID0gcXIjKD86IiIifCcnJykjOworCiAgICAgbXkgQHNjb3BlU3RhY2sgPSAoeyBsaW5lID0+IDAs
IGluZGVudCA9PiAtMSwgbmFtZSA9PiB1bmRlZiB9KTsKICAgICBteSAkbGFzdExpbmUgPSAwOwor
ICAgIG15ICRpbkNvbW1lbnQgPSAwOwogICAgIHVudGlsICgkbGFzdExpbmUpIHsKICAgICAgICAg
JF8gPSA8JGZpbGVIYW5kbGU+OwogICAgICAgICB1bmxlc3MgKCRfKSB7CkBAIC0xNzk1LDcgKzE3
OTgsNyBAQCBzdWIgZ2V0X2Z1bmN0aW9uX2xpbmVfcmFuZ2VzX2Zvcl9weXRob24oJCQpCiAgICAg
ICAgICAgICAkbGFzdExpbmUgPSAxOwogICAgICAgICB9CiAgICAgICAgIGNob21wOwotICAgICAg
ICBuZXh0IHVubGVzcyAvXihccyopKFteI10uKikkLzsKKyAgICAgICAgbmV4dCB1bmxlc3MgL14o
XHMqKShbXiNdLiopJC87ICMgU2tpcCBub24taW5kZW50ZWQgbGluZXMgdGhhdCBiZWdpbiB3aXRo
IGEgY29tbWVudC4KIAogICAgICAgICBteSAkaW5kZW50ID0gbGVuZ3RoICQxOwogICAgICAgICBt
eSAkcmVzdCA9ICQyOwpAQCAtMTgyNCw2ICsxODI3LDE3IEBAIHN1YiBnZXRfZnVuY3Rpb25fbGlu
ZV9yYW5nZXNfZm9yX3B5dGhvbigkJCkKICAgICAgICAgICAgICRzY29wZS0+e2xpbmV9ID0gJC47
CiAgICAgICAgIH0KIAorICAgICAgICAjIFNraXAgbXVsdGktbGluZSBzdHJpbmcgbGl0ZXJhbHMg
YW5kIGRvY3N0cmluZ3MuCisgICAgICAgIG5leHQgaWYgL15ccyokbXVsdGlsaW5lU3RyaW5nTGl0
ZXJhbFNlbnRpbmVsUmVnRXguKiRtdWx0aWxpbmVTdHJpbmdMaXRlcmFsU2VudGluZWxSZWdFeFxz
KiQvOworICAgICAgICBpZiAoISRpbkNvbW1lbnQgJiYgL15ccyokbXVsdGlsaW5lU3RyaW5nTGl0
ZXJhbFNlbnRpbmVsUmVnRXgvKSB7CisgICAgICAgICAgICAkaW5Db21tZW50ID0gMTsKKyAgICAg
ICAgfSBlbHNpZiAoJGluQ29tbWVudCAmJiAvJG11bHRpbGluZVN0cmluZ0xpdGVyYWxTZW50aW5l
bFJlZ0V4XHMqJC8pIHsKKyAgICAgICAgICAgICRpbkNvbW1lbnQgPSAwOworICAgICAgICB9Cisg
ICAgICAgIG5leHQgaWYgJGluQ29tbWVudDsKKworICAgICAgICBuZXh0IGlmIC9eXHMqWyMnIl0v
OyAjIFNraXAgaW5kZW50ZWQgYW5kIG5vbi1pbmRlbnRlZCBsaW5lcyB0aGF0IGJlZ2luIHdpdGgg
YSBjb21tZW50IG9yIHN0cmluZyBsaXRlcmFsIChpbmNsdWRlcyBkb2NzdHJpbmdzKS4KKwogICAg
ICAgICBuZXh0IHVubGVzcyAkcmVzdCA9fiAvKD86Y2xhc3N8ZGVmKVxzKyhcdyspLzsKICAgICAg
ICAgbXkgJG5hbWUgPSAkMTsKICAgICAgICAgbXkgJGZ1bGxOYW1lID0gJHNjb3BlLT57bmFtZX0g
PyBqb2luKCcuJywgJHNjb3BlLT57bmFtZX0sICRuYW1lKSA6ICRuYW1lOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL3ByZXBhcmUtQ2hhbmdlTG9nX3VuaXR0ZXN0L3Jlc291
cmNlcy9weXRob25fdW5pdHRlc3RzLWV4cGVjdGVkLnR4dCBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cGVybC9wcmVwYXJlLUNoYW5nZUxvZ191bml0dGVzdC9yZXNvdXJjZXMvcHl0aG9uX3VuaXR0ZXN0
cy1leHBlY3RlZC50eHQKaW5kZXggOGRhZDM3ZTgyNjQyNTMxYmJkNjBiMzRlNGUxNjEzM2VlODFj
ZGVjNC4uMzQ5MmFlOTQ0ZjMzOGNhYzNiNmMxOWFmMmM2Y2M1ZGMwZjUzMmI5NiAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL3ByZXBhcmUtQ2hhbmdlTG9nX3VuaXR0ZXN0L3Jl
c291cmNlcy9weXRob25fdW5pdHRlc3RzLWV4cGVjdGVkLnR4dAorKysgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHBlcmwvcHJlcGFyZS1DaGFuZ2VMb2dfdW5pdHRlc3QvcmVzb3VyY2VzL3B5dGhvbl91
bml0dGVzdHMtZXhwZWN0ZWQudHh0CkBAIC0xMjQsOCArMTI0LDUzIEBACiAgICAgXSwKICAgICBb
CiAgICAgICAnOTcnLAotICAgICAgJzk3JywKKyAgICAgICc5OCcsCiAgICAgICAnQ2xhc3M1Jwot
ICAgIF0KKyAgICBdLAorICAgIFsKKyAgICAgICcxMTInLAorICAgICAgJzExMycsCisgICAgICAn
Q2xhc3M2JworICAgIF0sCisgICAgWworICAgICAgJzExMicsCisgICAgICAnMTEzJywKKyAgICAg
ICdDbGFzczYnCisgICAgXSwKKyAgICBbCisgICAgICAnMTE0JywKKyAgICAgICcxMTcnLAorICAg
ICAgJ0NsYXNzNi5fX2luaXRfXycKKyAgICBdLAorICAgIFsKKyAgICAgICcxMTknLAorICAgICAg
JzEyMCcsCisgICAgICAnQ2xhc3M3JworICAgIF0sCisgICAgWworICAgICAgJzExOScsCisgICAg
ICAnMTIwJywKKyAgICAgICdDbGFzczcnCisgICAgXSwKKyAgICBbCisgICAgICAnMTIxJywKKyAg
ICAgICcxMjQnLAorICAgICAgJ0NsYXNzNy5fX2luaXRfXycKKyAgICBdLAorICAgIFsKKyAgICAg
ICcxMzYnLAorICAgICAgJzE0MScsCisgICAgICAnQ2xhc3M4JworICAgIF0sCisgICAgWworICAg
ICAgJzEzNicsCisgICAgICAnMTQxJywKKyAgICAgICdDbGFzczgnCisgICAgXSwKKyAgICBbCisg
ICAgICAnMTQyJywKKyAgICAgICcxNDMnLAorICAgICAgJ0NsYXNzOC5fX2luaXRfXycKKyAgICBd
LAogICBdCiB9CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvcHJlcGFyZS1D
aGFuZ2VMb2dfdW5pdHRlc3QvcmVzb3VyY2VzL3B5dGhvbl91bml0dGVzdHMucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHBlcmwvcHJlcGFyZS1DaGFuZ2VMb2dfdW5pdHRlc3QvcmVzb3VyY2VzL3B5
dGhvbl91bml0dGVzdHMucHkKaW5kZXggMWExOWNjMjljODAzNTA1ZDM3MmFkMTlhM2M5MDgyZWI0
ZTI3MWVhNS4uMDlkZGQ5ZjY1YTQ4YjllMzkwNThkMzYxNGI1MmFjZWIzMmEwNWRhYyAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL3ByZXBhcmUtQ2hhbmdlTG9nX3VuaXR0ZXN0
L3Jlc291cmNlcy9weXRob25fdW5pdHRlc3RzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cGVybC9wcmVwYXJlLUNoYW5nZUxvZ191bml0dGVzdC9yZXNvdXJjZXMvcHl0aG9uX3VuaXR0ZXN0
cy5weQpAQCAtOTUsMyArOTUsNDkgQEAgY2xhc3MgQ2xhc3M1OgogICAgIGRlZiBmdW5jMTEoKToK
ICAgICAgICAgcGFzcwogICAgIHBhc3MKKworIiIiY2xhc3MgQSIiIgorCisnY2xhc3MgQScKKwor
ImNsYXNzIEEiCisKKyIiImRlZiBBIiIiCisKKydkZWYgQScKKworImRlZiBBIgorCisiIiJjbGFz
cyBDbGFzczYiIiIKK2NsYXNzIENsYXNzNjoKKyAgICAiIiJjbGFzcyBDbGFzczZfMSIiIgorICAg
IGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgIiIiY2xhc3MgQ2xhc3M2XzIiIiIKKyAgICAg
ICAgcGFzcworCisiIiJkZWYgQ2xhc3M3IiIiCitjbGFzcyBDbGFzczc6CisgICAgIiIiZGVmIENs
YXNzN18xIiIiCisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICAiIiJkZWYgQ2xhc3M3
XzIiIiIKKyAgICAgICAgcGFzcworCisiIiJhCitjbGFzcyBiCisiIiIKKworIiIiYQorZGVmIGIK
KyIiIgorCisiIiIKK2NsYXNzIGNsYXNzOAorIiIiCitjbGFzcyBDbGFzczg6CisgICAgcGFzcwor
CisgICAgIiIiCisgICAgZGVmIENsYXNzOF8xCisgICAgIiIiCisgICAgZGVmIF9faW5pdF9fKHNl
bGYpOgorICAgICAgICBwYXNzCg==
</data>
<flag name="review"
          id="352034"
          type_id="1"
          status="+"
          setter="ddkilzer"
    />
          </attachment>
      

    </bug>

</bugzilla>