<?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>97276</bug_id>
          
          <creation_ts>2012-09-20 17:41:31 -0700</creation_ts>
          <short_desc>modify old-run-webkit-tests to support TestExpectations files a little</short_desc>
          <delta_ts>2012-10-08 16:15:30 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>dbates</cc>
    
    <cc>eric</cc>
    
    <cc>haraken</cc>
    
    <cc>jberlin</cc>
    
    <cc>mjs</cc>
    
    <cc>ojan</cc>
    
    <cc>ossy</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>725013</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-09-20 17:41:31 -0700</bug_when>
    <thetext>modify old-run-webkit-tests to support TestExpectations files a little</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725015</commentid>
    <comment_count>1</comment_count>
      <attachid>165021</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-09-20 17:45:27 -0700</bug_when>
    <thetext>Created attachment 165021
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725017</commentid>
    <comment_count>2</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-09-20 17:47:44 -0700</bug_when>
    <thetext>Once this patch lands, I plan to go through the existing Skipped files, merge their entries into the TestExpectations files, and then delete the Skipped files.

Once all that&apos;s done, I will remove support for Skipped files from NRWT, and I think we can safely start dropping the &quot;new-&quot; from NRWT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725026</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-09-20 17:55:31 -0700</bug_when>
    <thetext>Adding some perl devs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725028</commentid>
    <comment_count>4</comment_count>
      <attachid>165021</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-09-20 17:57:39 -0700</bug_when>
    <thetext>Comment on attachment 165021
Patch

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

&gt; Tools/Scripts/old-run-webkit-tests:2608
&gt; +                    if (!fileShouldBeIgnored($skipped)) {
&gt; +                        if (!$constraintPath) {
&gt; +                            push(@ARGV, $skipped);
&gt; +                        } elsif ($skipped =~ /^($constraintPath)/ || (&quot;LayoutTests/&quot;.$skipped) =~ /^($constraintPath)/ ) {
&gt; +                            push(@ARGV, $skipped);
&gt; +                        } elsif ($constraintPath =~ /^(&quot;LayoutTests\/&quot;.$skipped)/ || $constraintPath =~ /^($skipped)/) {
&gt; +                            push(@ARGV, $constraintPath);
&gt; +                        }
&gt; +                    } elsif ($verbose) {
&gt; +                        print &quot;    $skipped\n&quot;;
&gt; +                    }
&gt; +                } else {
&gt; +                    if ($verbose) {
&gt; +                        print &quot;    $skipped\n&quot;;
&gt; +                    }
&gt; +                }

Rather than duplicating code, can we extract a routine?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725030</commentid>
    <comment_count>5</comment_count>
      <attachid>165021</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-09-20 17:58:36 -0700</bug_when>
    <thetext>Comment on attachment 165021
Patch

Sure. Patch coming shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725067</commentid>
    <comment_count>6</comment_count>
      <attachid>165034</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-09-20 18:47:18 -0700</bug_when>
    <thetext>Created attachment 165034
use common code for --ignore flags, ignore old-style syntax entries for robustness</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725073</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-09-20 19:03:17 -0700</bug_when>
    <thetext>dbates is your perl man these days.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726175</commentid>
    <comment_count>8</comment_count>
      <attachid>165034</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2012-09-22 14:22:48 -0700</bug_when>
    <thetext>Comment on attachment 165034
use common code for --ignore flags, ignore old-style syntax entries for robustness

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

&gt; Tools/Scripts/old-run-webkit-tests:2540
&gt; +                # everything.  We also don&apos;t do any error checking since we assume
&gt; +                # check-webkit-style and new-run-webkit-tests would have caught the errors already.

For the second sentence, I take it you are talking about the EWS bots, that run check-webkit-style and new-run-webkit-tests, catching such errors, right?

&gt; Tools/Scripts/old-run-webkit-tests:2542
&gt; +                # there&apos;s a need for it

Nit: Missing a period at the end of this sentence.

&gt; Tools/Scripts/old-run-webkit-tests:2547
&gt; +                    # ignore any lines with the old-style syntax.

Nit: ignore =&gt; Ignore

&gt; Tools/Scripts/old-run-webkit-tests:2548
&gt; +                    if (index($token, &quot;BUG&quot; != -1) || index($token, &quot;//&quot;) != -1) {

This code is syntactically incorrect. I take it you meant to write the first disjunction as:

index($token, &quot;BUG&quot;) != -1

(*) Additionally, when the if conditional evaluates to true the code in the associated if block only skips current token instead of the entire line. This behavior disagrees with the comment above the if-statement.

On another note, is it necessary for us to handle the old style syntax? Briefly searching through the TestExpectations files, I couldn&apos;t find any usage of the modifier BUG and the only usage of C++-style comments is in file LayoutTests/platform/wk2/TestExpectations, &lt;http://trac.webkit.org/browser/trunk/LayoutTests/platform/wk2/TestExpectations&gt;. Moreover, we don&apos;t properly parse LayoutTests/platform/wk2/TestExpectations because of (*). I know that you mentioned that this code doesn&apos;t perform error checking. It seems wrong to continue processing the line when we encounter the start of a C++-style comment given that we added code to ignore the old style syntax.

&gt; Tools/Scripts/old-run-webkit-tests:2551
&gt; +                    # Note we don&apos;t bother looking for chromium or v8 bugs

Nit: Note =&gt; &quot;Note, &quot; (notice the presence of the comma and space characters after &quot;Note&quot;).

AND

chromium =&gt; Chromium
v8 =&gt; V8

(since these are proper nouns)

&gt; Tools/Scripts/old-run-webkit-tests:2552
&gt; +                    if (index($token, &quot;webkit.org/b/&quot;) != -1 || index($token, &quot;Bug(&quot;) != -1) {

Notice that index() returns whether the search string is a substring of the specified string. In _tokenize_line(), we check that the token is prefixed with the search string, &lt;http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/layout_tests/models/test_expectations.py?rev=129265#L286&gt;. Did you intend to make this conditional more lenient than its counterpart in _tokenize_line() for these bug types?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726278</commentid>
    <comment_count>9</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-09-23 11:39:12 -0700</bug_when>
    <thetext>Thanks for the detailed review!

(In reply to comment #8)
&gt; (From update of attachment 165034 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=165034&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/old-run-webkit-tests:2540
&gt; &gt; +                # everything.  We also don&apos;t do any error checking since we assume
&gt; &gt; +                # check-webkit-style and new-run-webkit-tests would have caught the errors already.
&gt; 
&gt; For the second sentence, I take it you are talking about the EWS bots, that run check-webkit-style and new-run-webkit-tests, catching such errors, right?
&gt; 

I was speaking more generally, thinking that nrwt is much more widely used than orwt these days and so it&apos;s unlikely that errors in a TestExpectations file will be caught by someone running orwt first (unless of couse that person introduced the error locally).

&gt; &gt; Tools/Scripts/old-run-webkit-tests:2542
&gt; &gt; +                # there&apos;s a need for it
&gt; 
&gt; Nit: Missing a period at the end of this sentence.
&gt; 

Will fix.

&gt; &gt; Tools/Scripts/old-run-webkit-tests:2547
&gt; &gt; +                    # ignore any lines with the old-style syntax.
&gt; 
&gt; Nit: ignore =&gt; Ignore
&gt; 

Will fix.

&gt; &gt; Tools/Scripts/old-run-webkit-tests:2548
&gt; &gt; +                    if (index($token, &quot;BUG&quot; != -1) || index($token, &quot;//&quot;) != -1) {
&gt; 
&gt; This code is syntactically incorrect. I take it you meant to write the first disjunction as:
&gt; 
&gt; index($token, &quot;BUG&quot;) != -1
&gt; 

Yes. Puzzling; I&apos;m fairly sure I&apos;ve tested this after running this line and I&apos;m not sure why this would&apos;ve parsed.

&gt; (*) Additionally, when the if conditional evaluates to true the code in the associated if block only skips current token instead of the entire line. This behavior disagrees with the comment above the if-statement.
&gt;

Oh, good catch. The intent is to skip the whole line.
 
&gt; On another note, is it necessary for us to handle the old style syntax? Briefly searching through the TestExpectations files, I couldn&apos;t find any usage of the modifier BUG and the only usage of C++-style comments is in file LayoutTests/platform/wk2/TestExpectations, &lt;http://trac.webkit.org/browser/trunk/LayoutTests/platform/wk2/TestExpectations&gt;. Moreover, we don&apos;t properly parse LayoutTests/platform/wk2/TestExpectations because of (*). I know that you mentioned that this code doesn&apos;t perform error checking. It seems wrong to continue processing the line when we encounter the start of a C++-style comment given that we added code to ignore the old style syntax.
&gt; 

Right, that would definitely be wrong. It&apos;s not intended to handle the old syntax, just to not do something weird. If we didn&apos;t special-case the old syntax we can treat &quot;BUG(x)&quot; and/or &quot;//&quot; as test names and get confused down the line.

&gt; &gt; Tools/Scripts/old-run-webkit-tests:2551
&gt; &gt; +                    # Note we don&apos;t bother looking for chromium or v8 bugs
&gt; 
&gt; Nit: Note =&gt; &quot;Note, &quot; (notice the presence of the comma and space characters after &quot;Note&quot;).
&gt; 
&gt; AND
&gt; 
&gt; chromium =&gt; Chromium
&gt; v8 =&gt; V8
&gt; 
&gt; (since these are proper nouns)
&gt; 

Will fix.

&gt; &gt; Tools/Scripts/old-run-webkit-tests:2552
&gt; &gt; +                    if (index($token, &quot;webkit.org/b/&quot;) != -1 || index($token, &quot;Bug(&quot;) != -1) {
&gt; 
&gt; Notice that index() returns whether the search string is a substring of the specified string. In _tokenize_line(), we check that the token is prefixed with the search string, &lt;http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/layout_tests/models/test_expectations.py?rev=129265#L286&gt;. Did you intend to make this conditional more lenient than its counterpart in _tokenize_line() for these bug types?

No, that was not the intent, so good catch. I will change it to == 0 in both cases (although it does seem unlikely that these substrings would show up anywhere else).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726985</commentid>
    <comment_count>10</comment_count>
      <attachid>165444</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-09-24 14:03:37 -0700</bug_when>
    <thetext>Created attachment 165444
update w/ review feedback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728279</commentid>
    <comment_count>11</comment_count>
      <attachid>165444</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2012-09-26 00:34:58 -0700</bug_when>
    <thetext>Comment on attachment 165444
update w/ review feedback

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

&gt; Tools/ChangeLog:20
&gt; +        * Scripts/old-run-webkit-tests:
&gt; +        (readSkippedFiles):

This change log entry is out-of-date. Specifically, it doesn&apos;t mention the added function processSkippedFileEntry.

&gt; Tools/Scripts/old-run-webkit-tests:2537
&gt; +                # This logic roughly mirrors the logic in test_expectations.py _tokenize_line but we

Nit: For your consideration, I suggest that we write &quot;_tokenize_line&quot; as &quot;_tokenize_line()&quot; to make it explicit that this is a function even though it&apos;s implied by the phrase &quot;the logic in&quot;.

&gt; Tools/Scripts/old-run-webkit-tests:2543
&gt; +                    if ((index($token, &quot;BUG&quot;) == 0) || (index($token, &quot;//&quot;) == 0)) {

You may want to consider encapsulating &quot;index(..., ...) == 0&quot; into a convenience function, say startsWith, so as to improve the readability of this function. startsWith() would take a string S and a prefix P and return whether S begins with P. Then we can write the if condition of this line as:

startsWith($token, &quot;BUG&quot;) || startsWith($token, &quot;//&quot;)

Alternatively, we could use $_  and regular expressions to write the TOKEN labeled foreach loop as:

TOKEN: foreach (split(/\s+/, $line)) {
    if (/^BUG/ || m|^//|) {
        # Ignore any lines with the old-style syntax.
        next LINE;
    }
    ...
}

You can see examples of using $_ and regular expressions for prefix matching in tools/Scripts/VCSUtils.pm. In particular,  VCSUtils::parseSvnDiffHeader(). Notice the use of m|| (above) so as to avoid escaping each &apos;/&apos; in &quot;//&quot;. See &lt;http://perldoc.perl.org/perlop.html#Regexp-Quote-Like-Operators&gt; and &lt;http://perldoc.perl.org/perlop.html#Quote-and-Quote-like-Operators&gt; for more details.

&gt; Tools/Scripts/old-run-webkit-tests:2547
&gt; +                    if ((index($token, &quot;webkit.org/b/&quot;) == 0) || (index($token, &quot;Bug(&quot;) == 0)) {

See my remark above on some ideas you may want to consider so as to improve the readability of this line.

&gt; Tools/Scripts/old-run-webkit-tests:2551
&gt; +                    } elsif ($token eq &apos;[&apos;) {

Please use double quotes around string literals instead of single quotes. We tend to use double quotes around string literals even when the contents don&apos;t need to be interpolated. Using double quotes instead of single quotes for string literals will also make this line match the quote style we&apos;ve used up to this point in the patch.

&gt; Tools/Scripts/old-run-webkit-tests:2552
&gt; +                        if ($state eq &apos;start&apos;) {

Please use double quotes around string literals instead of single quotes.

&gt; Tools/Scripts/old-run-webkit-tests:2553
&gt; +                            $state = &apos;configuration&apos;;

Ditto.

&gt; Tools/Scripts/old-run-webkit-tests:2555
&gt; +                    } elsif ($token eq &apos;]&apos;) {

Ditto.

&gt; Tools/Scripts/old-run-webkit-tests:2556
&gt; +                        if ($state eq &apos;configuration&apos;) {

Ditto.

&gt; Tools/Scripts/old-run-webkit-tests:2557
&gt; +                            $state = &apos;name&apos;;

Ditto.

&gt; Tools/Scripts/old-run-webkit-tests:2559
&gt; +                    } elsif (($state eq &apos;name&apos;) || ($state eq &apos;start&apos;)) {

Ditto; Also, the inner parentheses (around each disjunct) aren&apos;t necessary.

&gt; Tools/Scripts/old-run-webkit-tests:2576
&gt; +    my ($skipped, $basename, $constraintPath) = @_;

Maybe a more descriptive name for $basename would be $listname? This would match the name of the parameter with the same purpose in processIgnoreTests().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729100</commentid>
    <comment_count>12</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-09-26 17:34:32 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 165444 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=165444&amp;action=review
&gt; 
&gt; &gt; Tools/ChangeLog:20
&gt; &gt; +        * Scripts/old-run-webkit-tests:
&gt; &gt; +        (readSkippedFiles):
&gt; 
&gt; This change log entry is out-of-date. Specifically, it doesn&apos;t mention the added function processSkippedFileEntry.
&gt; 

Will fix.

&gt; &gt; Tools/Scripts/old-run-webkit-tests:2537
&gt; &gt; +                # This logic roughly mirrors the logic in test_expectations.py _tokenize_line but we
&gt; 
&gt; Nit: For your consideration, I suggest that we write &quot;_tokenize_line&quot; as &quot;_tokenize_line()&quot; to make it explicit that this is a function even though it&apos;s implied by the phrase &quot;the logic in&quot;.
&gt;

Will fix.
 
&gt; &gt; Tools/Scripts/old-run-webkit-tests:2543
&gt; &gt; +                    if ((index($token, &quot;BUG&quot;) == 0) || (index($token, &quot;//&quot;) == 0)) {
&gt; 
&gt; You may want to consider encapsulating &quot;index(..., ...) == 0&quot; into a convenience function, say startsWith, so as to improve the readability of this function. startsWith() would take a string S and a prefix P and return whether S begins with P. Then we can write the if condition of this line as:
&gt; 
&gt; startsWith($token, &quot;BUG&quot;) || startsWith($token, &quot;//&quot;)
&gt; 

Will do.

&gt; Alternatively, we could use $_  and regular expressions to write the TOKEN labeled foreach loop as:
&gt; 
&gt; TOKEN: foreach (split(/\s+/, $line)) {
&gt;     if (/^BUG/ || m|^//|) {
&gt;         # Ignore any lines with the old-style syntax.
&gt;         next LINE;
&gt;     }
&gt;     ...
&gt; }
&gt; 
&gt; You can see examples of using $_ and regular expressions for prefix matching in tools/Scripts/VCSUtils.pm. In particular,  VCSUtils::parseSvnDiffHeader(). Notice the use of m|| (above) so as to avoid escaping each &apos;/&apos; in &quot;//&quot;. See &lt;http://perldoc.perl.org/perlop.html#Regexp-Quote-Like-Operators&gt; and &lt;http://perldoc.perl.org/perlop.html#Quote-and-Quote-like-Operators&gt; for more details.
&gt; 

I have a strong and long-standing dislike of using $_ for anything :). Not very perl-like of me, I know.

&gt; &gt; Tools/Scripts/old-run-webkit-tests:2547
&gt; &gt; +                    if ((index($token, &quot;webkit.org/b/&quot;) == 0) || (index($token, &quot;Bug(&quot;) == 0)) {
&gt; 
&gt; See my remark above on some ideas you may want to consider so as to improve the readability of this line.
&gt; 
&gt; &gt; Tools/Scripts/old-run-webkit-tests:2551
&gt; &gt; +                    } elsif ($token eq &apos;[&apos;) {
&gt; 
&gt; Please use double quotes around string literals instead of single quotes. We tend to use double quotes around string literals even when the contents don&apos;t need to be interpolated. Using double quotes instead of single quotes for string literals will also make this line match the quote style we&apos;ve used up to this point in the patch.
&gt; 

Will do.

&gt; &gt; Tools/Scripts/old-run-webkit-tests:2552
&gt; &gt; +                        if ($state eq &apos;start&apos;) {
&gt; 
&gt; Please use double quotes around string literals instead of single quotes.
&gt; 
&gt; &gt; Tools/Scripts/old-run-webkit-tests:2553
&gt; &gt; +                            $state = &apos;configuration&apos;;
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Tools/Scripts/old-run-webkit-tests:2555
&gt; &gt; +                    } elsif ($token eq &apos;]&apos;) {
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Tools/Scripts/old-run-webkit-tests:2556
&gt; &gt; +                        if ($state eq &apos;configuration&apos;) {
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Tools/Scripts/old-run-webkit-tests:2557
&gt; &gt; +                            $state = &apos;name&apos;;
&gt; 
&gt; Ditto.
&gt; 
&gt; &gt; Tools/Scripts/old-run-webkit-tests:2559
&gt; &gt; +                    } elsif (($state eq &apos;name&apos;) || ($state eq &apos;start&apos;)) {
&gt; 
&gt; Ditto; Also, the inner parentheses (around each disjunct) aren&apos;t necessary.
&gt; 

I know, but I consider them clearer :)

&gt; &gt; Tools/Scripts/old-run-webkit-tests:2576
&gt; &gt; +    my ($skipped, $basename, $constraintPath) = @_;
&gt; 
&gt; Maybe a more descriptive name for $basename would be $listname? This would match the name of the parameter with the same purpose in processIgnoreTests().

ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729108</commentid>
    <comment_count>13</comment_count>
      <attachid>165907</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-09-26 17:59:30 -0700</bug_when>
    <thetext>Created attachment 165907
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>729109</commentid>
    <comment_count>14</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-09-26 18:01:59 -0700</bug_when>
    <thetext>Committed r129717: &lt;http://trac.webkit.org/changeset/129717&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737187</commentid>
    <comment_count>15</comment_count>
      <attachid>165907</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-08 16:15:30 -0700</bug_when>
    <thetext>Comment on attachment 165907
Patch

Cleared review? from attachment 165907 so that this bug does not appear in http://webkit.org/pending-review.  If you would like this patch reviewed, please attach it to a new bug (or re-open this bug before marking it for review again).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165021</attachid>
            <date>2012-09-20 17:45:27 -0700</date>
            <delta_ts>2012-09-20 18:47:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97276-20120920174452.patch</filename>
            <type>text/plain</type>
            <size>4965</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5MTcxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYWVjMDM1MGFkODljNzliNjdiMDBiYzQwYjY4ODU4Yjkx
NjY0ZTBkMi4uNmQ0MDkwMWI2OGJmYmY0ZDZhZDNhNDAyODdiZGE5OTVjOTEyODIwZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0
IEBACisyMDEyLTA5LTIwICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIG1vZGlmeSBvbGQtcnVuLXdlYmtpdC10ZXN0cyB0byBzdXBwb3J0IFRlc3RFeHBlY3Rh
dGlvbnMgZmlsZXMgYSBsaXR0bGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk3Mjc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIG1pbmltYWwgc3VwcG9ydCB0byBvbGQtcnVuLXdl
YmtpdC10ZXN0cyBzbyB0aGF0CisgICAgICAgIGl0IGNhbiByZWFkIGEgVGVzdEV4cGVjdGF0aW9u
cyBmaWxlIGFuZCBza2lwIHRoZSB0ZXN0cyBsaXN0ZWQKKyAgICAgICAgdGhlcmUuIEl0IHdpbGwg
c2tpcCAqYWxsKiB0ZXN0cywgcmVnYXJkbGVzcyBvZiB0aGUgZXhwZWN0YXRpb24KKyAgICAgICAg
KGV2ZW4gaWYgdGhlIHRlc3QgaXMgbGlzdGVkIGFzIFsgUGFzcyBdKSwgYW5kIGl0IHdpbGwgb25s
eSBsb29rCisgICAgICAgIGF0IHRoZSBUZXN0RXhwZWN0YXRpb25zIGZpbGUgaWYgdGhlcmUgaXNu
J3QgYSBTa2lwcGVkIGZpbGUgbmV4dAorICAgICAgICB0byBpdC4KKyAgICAgICAgCisgICAgICAg
IFRoaXMgd2lsbCBhbGxvdyB1cyB0byBzd2l0Y2ggdG8gdXNpbmcganVzdCB1c2luZworICAgICAg
ICBUZXN0RXhwZWN0YXRpb25zIGZpbGVzIHdpdGhvdXQgbWFraW5nIG9sZC1ydW4td2Via2l0LXRl
c3RzCisgICAgICAgIHRvdGFsbHkgdXNlbGVzcy4KKworICAgICAgICAqIFNjcmlwdHMvb2xkLXJ1
bi13ZWJraXQtdGVzdHM6CisgICAgICAgIChyZWFkU2tpcHBlZEZpbGVzKToKKwogMjAxMi0wOS0x
OSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBydW4tcGVyZi10
ZXN0cyBzaG91bGQgcmVjb3JkIGluZGl2aWR1YWwgdmFsdWUgaW5zdGVhZCBvZiBzdGF0aXN0aWNz
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL29sZC1ydW4td2Via2l0LXRlc3RzIGIvVG9vbHMv
U2NyaXB0cy9vbGQtcnVuLXdlYmtpdC10ZXN0cwppbmRleCBkZGY5MTU5NDdhY2ZkYzI2MTdiZGUx
OGEyYjVhOTJjMWU5NTYzNTM2Li45ZDk1MjNhNTQxOTEyMjUwZDg3OWFlZTdhMDdiYTZjZjg4NGYw
MjIzIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL29sZC1ydW4td2Via2l0LXRlc3RzCisrKyBi
L1Rvb2xzL1NjcmlwdHMvb2xkLXJ1bi13ZWJraXQtdGVzdHMKQEAgLTI1MDQsNiArMjUwNCw4IEBA
IHN1YiByZWFkU2tpcHBlZEZpbGVzKCQpCiAgICAgfQogCiAgICAgZm9yZWFjaCBteSAkbGV2ZWwg
KEBza2lwcGVkRmlsZURpcmVjdG9yaWVzKSB7CisgICAgICAgICMgSWYgYSBTa2lwcGVkIGZpbGUg
ZXhpc3RzIGluIHRoZSBkaXJlY3RvcnksIHVzZSB0aGF0IGFuZCBpZ25vcmUgdGhlIFRlc3RFeHBl
Y3RhdGlvbnMgZmlsZSwKKyAgICAgICAgIyBidXQgaWYgaXQgZG9lc24ndCwgdHJlYXQgZXZlcnkg
ZW50cnkgaW4gdGhlIFRlc3RFeHBlY3RhdGlvbnMgZmlsZSBhcyBpZiBpdCBzaG91bGQgYmUgU2tp
cHBlZC4KICAgICAgICAgaWYgKG9wZW4gU0tJUFBFRCwgIjwiLCAiJGxldmVsL1NraXBwZWQiKSB7
CiAgICAgICAgICAgICBpZiAoJHZlcmJvc2UpIHsKICAgICAgICAgICAgICAgICBteSAoJGRpciwg
JG5hbWUpID0gc3BsaXRwYXRoKCRsZXZlbCk7CkBAIC0yNTQ0LDYgKzI1NDYsNjggQEAgc3ViIHJl
YWRTa2lwcGVkRmlsZXMoJCkKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBjbG9zZSBTS0lQUEVEOworICAgICAgICB9IGVsc2lmIChvcGVuIEVYUEVDVEFUSU9O
UywgIjwiLCAiJGxldmVsL1Rlc3RFeHBlY3RhdGlvbnMiKSB7CisgICAgICAgICAgICBpZiAoJHZl
cmJvc2UpIHsKKyAgICAgICAgICAgICAgICBteSAoJGRpciwgJG5hbWUpID0gc3BsaXRwYXRoKCRs
ZXZlbCk7CisgICAgICAgICAgICAgICAgcHJpbnQgIlNraXBwaW5nIHRlc3RzIGZyb20gJG5hbWU6
XG4iOworICAgICAgICAgICAgfQorICAgICAgICAgICAgd2hpbGUgKDxFWFBFQ1RBVElPTlM+KSB7
CisgICAgICAgICAgICAgICAgbXkgJGxpbmUgPSAkXzsKKyAgICAgICAgICAgICAgICBjaG9tcCAk
bGluZTsKKyAgICAgICAgICAgICAgICAkbGluZSA9fiBzL15bIFxuXHJdKy8vOworICAgICAgICAg
ICAgICAgICRsaW5lID1+IHMvWyBcblxyXSskLy87CisgICAgICAgICAgICAgICAgJGxpbmUgPX4g
cy8jLiokLy87CisKKyAgICAgICAgICAgICAgICAjIFRoaXMgbG9naWMgcm91Z2hseSBtaXJyb3Jz
IHRoZSBsb2dpYyBpbiB0ZXN0X2V4cGVjdGF0aW9ucy5weSBfdG9rZW5pemVfbGluZSBidXQgd2UK
KyAgICAgICAgICAgICAgICAjIGRvbid0IGJvdGhlciB0byBsb29rIGF0IGFueSBvZiB0aGUgbW9k
aWZpZXJzIG9yIGV4cGVjdGF0aW9ucyBhbmQganVzdCBza2lwCisgICAgICAgICAgICAgICAgIyBl
dmVyeXRoaW5nLiAgV2UgYWxzbyBkb24ndCBkbyBhbnkgZXJyb3IgY2hlY2tpbmcgc2luY2Ugd2Ug
YXNzdW1lCisgICAgICAgICAgICAgICAgIyBjaGVjay13ZWJraXQtc3R5bGUgYW5kIG5ldy1ydW4t
d2Via2l0LXRlc3RzIHdvdWxkIGhhdmUgY2F1Z2h0IHRoZSBlcnJvcnMgYWxyZWFkeS4KKyAgICAg
ICAgICAgICAgICAjIFdlIGNvdWxkIGJlIGZhbmNpZXIgaGVyZSBhbmQgaGFuZGxlIFBhc3Npbmcg
dGVzdHMsIGV0Yy4sIGJ1dCBpdCdzIHVuY2xlYXIgaWYKKyAgICAgICAgICAgICAgICAjIHRoZXJl
J3MgYSBuZWVkIGZvciBpdAorCisgICAgICAgICAgICAgICAgbXkgJHN0YXRlID0gInN0YXJ0IjsK
KyAgICAgICAgICAgICAgICBteSAkc2tpcHBlZCA9ICIiOworICAgICAgICAgICAgICAgIGZvcmVh
Y2ggbXkgJHRva2VuIChzcGxpdCgvXHMrLywgJGxpbmUpKSB7CisgICAgICAgICAgICAgICAgICAg
ICMgTm90ZSB3ZSBkb24ndCBib3RoZXIgbG9va2luZyBmb3IgY2hyb21pdW0gb3IgdjggYnVncwor
ICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXgoJHRva2VuLCAid2Via2l0Lm9yZy9iLyIpICE9
IC0xIHx8IGluZGV4KCR0b2tlbiwgIkJ1ZygiKSAhPSAtMSkgeworICAgICAgICAgICAgICAgICAg
ICAgICAgbmV4dDsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNpZiAoJHRva2VuIGVxICdbJykg
eworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRzdGF0ZSBlcSAnc3RhcnQnKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJHN0YXRlID0gJ2NvbmZpZ3VyYXRpb24nOworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2lmICgkdG9rZW4g
ZXEgJ10nKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHN0YXRlIGVxICdjb25maWd1
cmF0aW9uJykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzdGF0ZSA9ICduYW1lJzsK
KyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgfSBlbHNpZiAo
JHN0YXRlIGVxICduYW1lJyB8fCAkc3RhdGUgZXEgJ3N0YXJ0JykgeworICAgICAgICAgICAgICAg
ICAgICAgICAgJHNraXBwZWQgPSAkdG9rZW47CisgICAgICAgICAgICAgICAgICAgICAgICBsYXN0
OworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIGlmICghJHNraXBwZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgbmV4dDsKKyAgICAgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAjIFRoaXMgbWlycm9ycyB0aGUgbG9naWMgYWJv
dmUgaW4gdGhlIFNraXBwZWQgZmlsZSBwYXJzaW5nLgorICAgICAgICAgICAgICAgIGlmICgkc2tp
cHBlZE9ubHkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCFmaWxlU2hvdWxkQmVJZ25vcmVk
KCRza2lwcGVkKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCEkY29uc3RyYWludFBh
dGgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBBUkdWLCAkc2tpcHBlZCk7
CisgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2lmICgkc2tpcHBlZCA9fiAvXigkY29uc3Ry
YWludFBhdGgpLyB8fCAoIkxheW91dFRlc3RzLyIuJHNraXBwZWQpID1+IC9eKCRjb25zdHJhaW50
UGF0aCkvICkgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQEFSR1YsICRza2lw
cGVkKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRjb25zdHJhaW50UGF0aCA9
fiAvXigiTGF5b3V0VGVzdHNcLyIuJHNraXBwZWQpLyB8fCAkY29uc3RyYWludFBhdGggPX4gL14o
JHNraXBwZWQpLykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQEFSR1YsICRj
b25zdHJhaW50UGF0aCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgIH0gZWxzaWYgKCR2ZXJib3NlKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBwcmlu
dCAiICAgICRza2lwcGVkXG4iOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKCR2ZXJib3NlKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICBwcmludCAiICAgICRza2lwcGVkXG4iOworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHByb2Nlc3NJZ25vcmVU
ZXN0cygkc2tpcHBlZCwgIlNraXBwZWQiKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg
IH0KIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165034</attachid>
            <date>2012-09-20 18:47:18 -0700</date>
            <delta_ts>2012-09-24 14:03:33 -0700</delta_ts>
            <desc>use common code for --ignore flags, ignore old-style syntax entries for robustness</desc>
            <filename>bug-97276-20120920184643.patch</filename>
            <type>text/plain</type>
            <size>7660</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5MTcxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYWVjMDM1MGFkODljNzliNjdiMDBiYzQwYjY4ODU4Yjkx
NjY0ZTBkMi4uNmQ0MDkwMWI2OGJmYmY0ZDZhZDNhNDAyODdiZGE5OTVjOTEyODIwZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0
IEBACisyMDEyLTA5LTIwICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIG1vZGlmeSBvbGQtcnVuLXdlYmtpdC10ZXN0cyB0byBzdXBwb3J0IFRlc3RFeHBlY3Rh
dGlvbnMgZmlsZXMgYSBsaXR0bGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk3Mjc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIG1pbmltYWwgc3VwcG9ydCB0byBvbGQtcnVuLXdl
YmtpdC10ZXN0cyBzbyB0aGF0CisgICAgICAgIGl0IGNhbiByZWFkIGEgVGVzdEV4cGVjdGF0aW9u
cyBmaWxlIGFuZCBza2lwIHRoZSB0ZXN0cyBsaXN0ZWQKKyAgICAgICAgdGhlcmUuIEl0IHdpbGwg
c2tpcCAqYWxsKiB0ZXN0cywgcmVnYXJkbGVzcyBvZiB0aGUgZXhwZWN0YXRpb24KKyAgICAgICAg
KGV2ZW4gaWYgdGhlIHRlc3QgaXMgbGlzdGVkIGFzIFsgUGFzcyBdKSwgYW5kIGl0IHdpbGwgb25s
eSBsb29rCisgICAgICAgIGF0IHRoZSBUZXN0RXhwZWN0YXRpb25zIGZpbGUgaWYgdGhlcmUgaXNu
J3QgYSBTa2lwcGVkIGZpbGUgbmV4dAorICAgICAgICB0byBpdC4KKyAgICAgICAgCisgICAgICAg
IFRoaXMgd2lsbCBhbGxvdyB1cyB0byBzd2l0Y2ggdG8gdXNpbmcganVzdCB1c2luZworICAgICAg
ICBUZXN0RXhwZWN0YXRpb25zIGZpbGVzIHdpdGhvdXQgbWFraW5nIG9sZC1ydW4td2Via2l0LXRl
c3RzCisgICAgICAgIHRvdGFsbHkgdXNlbGVzcy4KKworICAgICAgICAqIFNjcmlwdHMvb2xkLXJ1
bi13ZWJraXQtdGVzdHM6CisgICAgICAgIChyZWFkU2tpcHBlZEZpbGVzKToKKwogMjAxMi0wOS0x
OSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBydW4tcGVyZi10
ZXN0cyBzaG91bGQgcmVjb3JkIGluZGl2aWR1YWwgdmFsdWUgaW5zdGVhZCBvZiBzdGF0aXN0aWNz
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL29sZC1ydW4td2Via2l0LXRlc3RzIGIvVG9vbHMv
U2NyaXB0cy9vbGQtcnVuLXdlYmtpdC10ZXN0cwppbmRleCBkZGY5MTU5NDdhY2ZkYzI2MTdiZGUx
OGEyYjVhOTJjMWU5NTYzNTM2Li42YWYxMTdkYTBlNmM4OWQ4OWJlZjQzMTA5ZDI1ZjBkZjZiZTVm
ZGJhIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL29sZC1ydW4td2Via2l0LXRlc3RzCisrKyBi
L1Rvb2xzL1NjcmlwdHMvb2xkLXJ1bi13ZWJraXQtdGVzdHMKQEAgLTI1MDQsNiArMjUwNCw4IEBA
IHN1YiByZWFkU2tpcHBlZEZpbGVzKCQpCiAgICAgfQogCiAgICAgZm9yZWFjaCBteSAkbGV2ZWwg
KEBza2lwcGVkRmlsZURpcmVjdG9yaWVzKSB7CisgICAgICAgICMgSWYgYSBTa2lwcGVkIGZpbGUg
ZXhpc3RzIGluIHRoZSBkaXJlY3RvcnksIHVzZSB0aGF0IGFuZCBpZ25vcmUgdGhlIFRlc3RFeHBl
Y3RhdGlvbnMgZmlsZSwKKyAgICAgICAgIyBidXQgaWYgaXQgZG9lc24ndCwgdHJlYXQgZXZlcnkg
ZW50cnkgaW4gdGhlIFRlc3RFeHBlY3RhdGlvbnMgZmlsZSBhcyBpZiBpdCBzaG91bGQgYmUgU2tp
cHBlZC4KICAgICAgICAgaWYgKG9wZW4gU0tJUFBFRCwgIjwiLCAiJGxldmVsL1NraXBwZWQiKSB7
CiAgICAgICAgICAgICBpZiAoJHZlcmJvc2UpIHsKICAgICAgICAgICAgICAgICBteSAoJGRpciwg
JG5hbWUpID0gc3BsaXRwYXRoKCRsZXZlbCk7CkBAIC0yNTE2LDM1ICsyNTE4LDg5IEBAIHN1YiBy
ZWFkU2tpcHBlZEZpbGVzKCQpCiAgICAgICAgICAgICAgICAgJHNraXBwZWQgPX4gcy9eWyBcblxy
XSsvLzsKICAgICAgICAgICAgICAgICAkc2tpcHBlZCA9fiBzL1sgXG5ccl0rJC8vOwogICAgICAg
ICAgICAgICAgIGlmICgkc2tpcHBlZCAmJiAkc2tpcHBlZCAhfiAvXiMvKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIGlmICgkc2tpcHBlZE9ubHkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICghZmlsZVNob3VsZEJlSWdub3JlZCgkc2tpcHBlZCkpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoISRjb25zdHJhaW50UGF0aCkgewotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAjIEFsd2F5cyBhZGQgJHNraXBwZWQgc2luY2Ugbm8gY29uc3RyYWludCBwYXRoIHdh
cyBzcGVjaWZpZWQgb24gdGhlIGNvbW1hbmQgbGluZS4KLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHVzaChAQVJHViwgJHNraXBwZWQpOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0gZWxzaWYgKCRza2lwcGVkID1+IC9eKCRjb25zdHJhaW50UGF0aCkvIHx8ICgiTGF5b3V0
VGVzdHMvIi4kc2tpcHBlZCkgPX4gL14oJGNvbnN0cmFpbnRQYXRoKS8gKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICMgQWRkICRza2lwcGVkIG9ubHkgaWYgaXQgbWF0Y2hlcyB0
aGUgY3VycmVudCBwYXRoIGNvbnN0cmFpbnQsIGUuZy4sCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICMgIi0tc2tpcHBlZD1vbmx5IGRpcjEiIHdpdGggImRpcjEvZmlsZTEuaHRtbCIg
b24gdGhlIHNraXBwZWQgbGlzdCBvcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAj
ICItLXNraXBwZWQ9b25seSBMYXlvdXRUZXN0cy9kaXIxIiB3aXRoICJkaXIxL2ZpbGUxLmh0bWwi
IG9uIHRoZSBza2lwcGVkIGxpc3QKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVz
aChAQVJHViwgJHNraXBwZWQpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzaWYg
KCRjb25zdHJhaW50UGF0aCA9fiAvXigiTGF5b3V0VGVzdHNcLyIuJHNraXBwZWQpLyB8fCAkY29u
c3RyYWludFBhdGggPX4gL14oJHNraXBwZWQpLykgewotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAjIEFkZCBjdXJyZW50IHBhdGggY29uc3RyYWludCBpZiBpdCBpcyBtb3JlIHNwZWNp
ZmljIHRoYW4gdGhlIHNraXAgbGlzdCBlbnRyeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIyBlLmcuLCAiLS1za2lwcGVkPW9ubHkgZGlyMS9kaXIyL2RpcjMiIHdpdGggImRpcjEi
IG9uIHRoZSBza2lwcGVkIGxpc3Qgb3IKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IyBlLmcuLCAiLS1za2lwcGVkPW9ubHkgTGF5b3V0VGVzdHMvZGlyMS9kaXIyL2RpcjMiIHdpdGgg
ImRpcjEiIG9uIHRoZSBza2lwcGVkIGxpc3QuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHB1c2goQEFSR1YsICRjb25zdHJhaW50UGF0aCk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNpZiAoJHZlcmJvc2UpIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludCAiICAgICRza2lwcGVkXG4iOworICAgICAg
ICAgICAgICAgICAgICBwcm9jZXNzU2tpcHBlZEZpbGVFbnRyeSgkc2tpcHBlZCwgIlNraXBwZWQi
LCAkY29uc3RyYWludFBhdGgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGNsb3NlIFNLSVBQRUQ7CisgICAgICAgIH0gZWxzaWYgKG9wZW4gRVhQRUNUQVRJ
T05TLCAiPCIsICIkbGV2ZWwvVGVzdEV4cGVjdGF0aW9ucyIpIHsKKyAgICAgICAgICAgIGlmICgk
dmVyYm9zZSkgeworICAgICAgICAgICAgICAgIG15ICgkZGlyLCAkbmFtZSkgPSBzcGxpdHBhdGgo
JGxldmVsKTsKKyAgICAgICAgICAgICAgICBwcmludCAiU2tpcHBpbmcgdGVzdHMgZnJvbSAkbmFt
ZTpcbiI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB3aGlsZSAoPEVYUEVDVEFUSU9OUz4p
IHsKKyAgICAgICAgICAgICAgICBteSAkbGluZSA9ICRfOworICAgICAgICAgICAgICAgIGNob21w
ICRsaW5lOworICAgICAgICAgICAgICAgICRsaW5lID1+IHMvXlsgXG5ccl0rLy87CisgICAgICAg
ICAgICAgICAgJGxpbmUgPX4gcy9bIFxuXHJdKyQvLzsKKyAgICAgICAgICAgICAgICAkbGluZSA9
fiBzLyMuKiQvLzsKKworICAgICAgICAgICAgICAgICMgVGhpcyBsb2dpYyByb3VnaGx5IG1pcnJv
cnMgdGhlIGxvZ2ljIGluIHRlc3RfZXhwZWN0YXRpb25zLnB5IF90b2tlbml6ZV9saW5lIGJ1dCB3
ZQorICAgICAgICAgICAgICAgICMgZG9uJ3QgYm90aGVyIHRvIGxvb2sgYXQgYW55IG9mIHRoZSBt
b2RpZmllcnMgb3IgZXhwZWN0YXRpb25zIGFuZCBqdXN0IHNraXAKKyAgICAgICAgICAgICAgICAj
IGV2ZXJ5dGhpbmcuICBXZSBhbHNvIGRvbid0IGRvIGFueSBlcnJvciBjaGVja2luZyBzaW5jZSB3
ZSBhc3N1bWUKKyAgICAgICAgICAgICAgICAjIGNoZWNrLXdlYmtpdC1zdHlsZSBhbmQgbmV3LXJ1
bi13ZWJraXQtdGVzdHMgd291bGQgaGF2ZSBjYXVnaHQgdGhlIGVycm9ycyBhbHJlYWR5LgorICAg
ICAgICAgICAgICAgICMgV2UgY291bGQgYmUgZmFuY2llciBoZXJlIGFuZCBoYW5kbGUgUGFzc2lu
ZyB0ZXN0cywgZXRjLiwgYnV0IGl0J3MgdW5jbGVhciBpZgorICAgICAgICAgICAgICAgICMgdGhl
cmUncyBhIG5lZWQgZm9yIGl0CisKKyAgICAgICAgICAgICAgICBteSAkc3RhdGUgPSAic3RhcnQi
OworICAgICAgICAgICAgICAgIG15ICRza2lwcGVkID0gIiI7CisgICAgICAgICAgICAgICAgZm9y
ZWFjaCBteSAkdG9rZW4gKHNwbGl0KC9ccysvLCAkbGluZSkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgIyBpZ25vcmUgYW55IGxpbmVzIHdpdGggdGhlIG9sZC1zdHlsZSBzeW50YXguCisgICAgICAg
ICAgICAgICAgICAgIGlmIChpbmRleCgkdG9rZW4sICJCVUciICE9IC0xKSB8fCBpbmRleCgkdG9r
ZW4sICIvLyIpICE9IC0xKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBuZXh0OworICAgICAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICMgTm90ZSB3ZSBkb24ndCBib3Ro
ZXIgbG9va2luZyBmb3IgY2hyb21pdW0gb3IgdjggYnVncworICAgICAgICAgICAgICAgICAgICBp
ZiAoaW5kZXgoJHRva2VuLCAid2Via2l0Lm9yZy9iLyIpICE9IC0xIHx8IGluZGV4KCR0b2tlbiwg
IkJ1ZygiKSAhPSAtMSkgeworICAgICAgICAgICAgICAgICAgICAgICAgbmV4dDsKKyAgICAgICAg
ICAgICAgICAgICAgfSBlbHNpZiAoJHRva2VuIGVxICdbJykgeworICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKCRzdGF0ZSBlcSAnc3RhcnQnKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJHN0YXRlID0gJ2NvbmZpZ3VyYXRpb24nOwogICAgICAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KCR2ZXJib3NlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgIiAgICAkc2tp
cHBlZFxuIjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNpZiAoJHRva2VuIGVxICddJykgewor
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRzdGF0ZSBlcSAnY29uZmlndXJhdGlvbicpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc3RhdGUgPSAnbmFtZSc7CiAgICAgICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzSWdub3JlVGVz
dHMoJHNraXBwZWQsICJTa2lwcGVkIik7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRz
dGF0ZSBlcSAnbmFtZScgfHwgJHN0YXRlIGVxICdzdGFydCcpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICRza2lwcGVkID0gJHRva2VuOworICAgICAgICAgICAgICAgICAgICAgICAgbGFzdDsK
ICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICBpZiAoJHNraXBwZWQpIHsKKyAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc1NraXBwZWRGaWxl
RW50cnkoJHNraXBwZWQsICJUZXN0RXhwZWN0YXRpb25zIiwgJGNvbnN0cmFpbnRQYXRoKTsKKyAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBjbG9zZSBTS0lQUEVE
OworICAgICAgICAgICAgY2xvc2UgRVhQRUNUQVRJT05TOworICAgICAgICB9CisgICAgfQorfQor
CitzdWIgcHJvY2Vzc1NraXBwZWRGaWxlRW50cnkgCit7CisgICAgbXkgKCRza2lwcGVkLCAkYmFz
ZW5hbWUsICRjb25zdHJhaW50UGF0aCkgPSBAXzsKKworICAgIGlmICgkc2tpcHBlZE9ubHkpIHsK
KyAgICAgICAgaWYgKCFmaWxlU2hvdWxkQmVJZ25vcmVkKCRza2lwcGVkKSkgeworICAgICAgICAg
ICAgaWYgKCEkY29uc3RyYWludFBhdGgpIHsKKyAgICAgICAgICAgICAgICAjIEFsd2F5cyBhZGQg
JHNraXBwZWQgc2luY2Ugbm8gY29uc3RyYWludCBwYXRoIHdhcyBzcGVjaWZpZWQgb24gdGhlIGNv
bW1hbmQgbGluZS4KKyAgICAgICAgICAgICAgICBwdXNoKEBBUkdWLCAkc2tpcHBlZCk7CisgICAg
ICAgICAgICB9IGVsc2lmICgkc2tpcHBlZCA9fiAvXigkY29uc3RyYWludFBhdGgpLyB8fCAoIkxh
eW91dFRlc3RzLyIuJHNraXBwZWQpID1+IC9eKCRjb25zdHJhaW50UGF0aCkvICkgeworICAgICAg
ICAgICAgICAgICMgQWRkICRza2lwcGVkIG9ubHkgaWYgaXQgbWF0Y2hlcyB0aGUgY3VycmVudCBw
YXRoIGNvbnN0cmFpbnQsIGUuZy4sCisgICAgICAgICAgICAgICAgIyAiLS1za2lwcGVkPW9ubHkg
ZGlyMSIgd2l0aCAiZGlyMS9maWxlMS5odG1sIiBvbiB0aGUgc2tpcHBlZCBsaXN0IG9yCisgICAg
ICAgICAgICAgICAgIyAiLS1za2lwcGVkPW9ubHkgTGF5b3V0VGVzdHMvZGlyMSIgd2l0aCAiZGly
MS9maWxlMS5odG1sIiBvbiB0aGUgc2tpcHBlZCBsaXN0CisgICAgICAgICAgICAgICAgcHVzaChA
QVJHViwgJHNraXBwZWQpOworICAgICAgICAgICAgfSBlbHNpZiAoJGNvbnN0cmFpbnRQYXRoID1+
IC9eKCJMYXlvdXRUZXN0c1wvIi4kc2tpcHBlZCkvIHx8ICRjb25zdHJhaW50UGF0aCA9fiAvXigk
c2tpcHBlZCkvKSB7CisgICAgICAgICAgICAgICAgIyBBZGQgY3VycmVudCBwYXRoIGNvbnN0cmFp
bnQgaWYgaXQgaXMgbW9yZSBzcGVjaWZpYyB0aGFuIHRoZSBza2lwIGxpc3QgZW50cnksCisgICAg
ICAgICAgICAgICAgIyBlLmcuLCAiLS1za2lwcGVkPW9ubHkgZGlyMS9kaXIyL2RpcjMiIHdpdGgg
ImRpcjEiIG9uIHRoZSBza2lwcGVkIGxpc3Qgb3IKKyAgICAgICAgICAgICAgICAjIGUuZy4sICIt
LXNraXBwZWQ9b25seSBMYXlvdXRUZXN0cy9kaXIxL2RpcjIvZGlyMyIgd2l0aCAiZGlyMSIgb24g
dGhlIHNraXBwZWQgbGlzdC4KKyAgICAgICAgICAgICAgICBwdXNoKEBBUkdWLCAkY29uc3RyYWlu
dFBhdGgpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2lmICgkdmVyYm9zZSkgeworICAg
ICAgICAgICAgcHJpbnQgIiAgICAkc2tpcHBlZFxuIjsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7
CisgICAgICAgIGlmICgkdmVyYm9zZSkgeworICAgICAgICAgICAgcHJpbnQgIiAgICAkc2tpcHBl
ZFxuIjsKICAgICAgICAgfQorICAgICAgICBwcm9jZXNzSWdub3JlVGVzdHMoJHNraXBwZWQsICRi
YXNlbmFtZSk7CiAgICAgfQogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165444</attachid>
            <date>2012-09-24 14:03:37 -0700</date>
            <delta_ts>2012-09-26 17:59:27 -0700</delta_ts>
            <desc>update w/ review feedback</desc>
            <filename>bug-97276-20120924140258.patch</filename>
            <type>text/plain</type>
            <size>7531</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5Mzk4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMTdkMWZmMzExZDllYmIwOGQ0YjA1ODk5OWU0NGEwYTdi
Yzk0ZmU0Ny4uNTA1MDhjOWMwNWFmNGNjNWQzZjQzODIzNzNkNDUyYmE1OTNmNWE3YyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0
IEBACisyMDEyLTA5LTIwICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIG1vZGlmeSBvbGQtcnVuLXdlYmtpdC10ZXN0cyB0byBzdXBwb3J0IFRlc3RFeHBlY3Rh
dGlvbnMgZmlsZXMgYSBsaXR0bGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk3Mjc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIG1pbmltYWwgc3VwcG9ydCB0byBvbGQtcnVuLXdl
YmtpdC10ZXN0cyBzbyB0aGF0CisgICAgICAgIGl0IGNhbiByZWFkIGEgVGVzdEV4cGVjdGF0aW9u
cyBmaWxlIGFuZCBza2lwIHRoZSB0ZXN0cyBsaXN0ZWQKKyAgICAgICAgdGhlcmUuIEl0IHdpbGwg
c2tpcCAqYWxsKiB0ZXN0cywgcmVnYXJkbGVzcyBvZiB0aGUgZXhwZWN0YXRpb24KKyAgICAgICAg
KGV2ZW4gaWYgdGhlIHRlc3QgaXMgbGlzdGVkIGFzIFsgUGFzcyBdKSwgYW5kIGl0IHdpbGwgb25s
eSBsb29rCisgICAgICAgIGF0IHRoZSBUZXN0RXhwZWN0YXRpb25zIGZpbGUgaWYgdGhlcmUgaXNu
J3QgYSBTa2lwcGVkIGZpbGUgbmV4dAorICAgICAgICB0byBpdC4KKyAgICAgICAgCisgICAgICAg
IFRoaXMgd2lsbCBhbGxvdyB1cyB0byBzd2l0Y2ggdG8gdXNpbmcganVzdCB1c2luZworICAgICAg
ICBUZXN0RXhwZWN0YXRpb25zIGZpbGVzIHdpdGhvdXQgbWFraW5nIG9sZC1ydW4td2Via2l0LXRl
c3RzCisgICAgICAgIHRvdGFsbHkgdXNlbGVzcy4KKworICAgICAgICAqIFNjcmlwdHMvb2xkLXJ1
bi13ZWJraXQtdGVzdHM6CisgICAgICAgIChyZWFkU2tpcHBlZEZpbGVzKToKKwogMjAxMi0wOS0y
NCAgWmFuIERvYmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwuY29tPgogCiAgICAgICAgIFtHdGtd
IFVuc2tpcCB0aGUgU2hhZG93IERPTSBsYXlvdXQgdGVzdHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Nj
cmlwdHMvb2xkLXJ1bi13ZWJraXQtdGVzdHMgYi9Ub29scy9TY3JpcHRzL29sZC1ydW4td2Via2l0
LXRlc3RzCmluZGV4IGRkZjkxNTk0N2FjZmRjMjYxN2JkZTE4YTJiNWE5MmMxZTk1NjM1MzYuLmRh
ZmM4MzQxMGNmNDkwMTU0NDM1MjlkNmJkZGU4NjM3ZThiMTIwNTEgMTAwNzU1Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvb2xkLXJ1bi13ZWJraXQtdGVzdHMKKysrIGIvVG9vbHMvU2NyaXB0cy9vbGQtcnVu
LXdlYmtpdC10ZXN0cwpAQCAtMjUwNCw2ICsyNTA0LDggQEAgc3ViIHJlYWRTa2lwcGVkRmlsZXMo
JCkKICAgICB9CiAKICAgICBmb3JlYWNoIG15ICRsZXZlbCAoQHNraXBwZWRGaWxlRGlyZWN0b3Jp
ZXMpIHsKKyAgICAgICAgIyBJZiBhIFNraXBwZWQgZmlsZSBleGlzdHMgaW4gdGhlIGRpcmVjdG9y
eSwgdXNlIHRoYXQgYW5kIGlnbm9yZSB0aGUgVGVzdEV4cGVjdGF0aW9ucyBmaWxlLAorICAgICAg
ICAjIGJ1dCBpZiBpdCBkb2Vzbid0LCB0cmVhdCBldmVyeSBlbnRyeSBpbiB0aGUgVGVzdEV4cGVj
dGF0aW9ucyBmaWxlIGFzIGlmIGl0IHNob3VsZCBiZSBTa2lwcGVkLgogICAgICAgICBpZiAob3Bl
biBTS0lQUEVELCAiPCIsICIkbGV2ZWwvU2tpcHBlZCIpIHsKICAgICAgICAgICAgIGlmICgkdmVy
Ym9zZSkgewogICAgICAgICAgICAgICAgIG15ICgkZGlyLCAkbmFtZSkgPSBzcGxpdHBhdGgoJGxl
dmVsKTsKQEAgLTI1MTYsMzUgKzI1MTgsODcgQEAgc3ViIHJlYWRTa2lwcGVkRmlsZXMoJCkKICAg
ICAgICAgICAgICAgICAkc2tpcHBlZCA9fiBzL15bIFxuXHJdKy8vOwogICAgICAgICAgICAgICAg
ICRza2lwcGVkID1+IHMvWyBcblxyXSskLy87CiAgICAgICAgICAgICAgICAgaWYgKCRza2lwcGVk
ICYmICRza2lwcGVkICF+IC9eIy8pIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCRza2lwcGVk
T25seSkgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFmaWxlU2hvdWxkQmVJZ25vcmVk
KCRza2lwcGVkKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghJGNvbnN0cmFp
bnRQYXRoKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgQWx3YXlzIGFkZCAk
c2tpcHBlZCBzaW5jZSBubyBjb25zdHJhaW50IHBhdGggd2FzIHNwZWNpZmllZCBvbiB0aGUgY29t
bWFuZCBsaW5lLgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBBUkdWLCAk
c2tpcHBlZCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNpZiAoJHNraXBwZWQg
PX4gL14oJGNvbnN0cmFpbnRQYXRoKS8gfHwgKCJMYXlvdXRUZXN0cy8iLiRza2lwcGVkKSA9fiAv
XigkY29uc3RyYWludFBhdGgpLyApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IyBBZGQgJHNraXBwZWQgb25seSBpZiBpdCBtYXRjaGVzIHRoZSBjdXJyZW50IHBhdGggY29uc3Ry
YWludCwgZS5nLiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAiLS1za2lwcGVk
PW9ubHkgZGlyMSIgd2l0aCAiZGlyMS9maWxlMS5odG1sIiBvbiB0aGUgc2tpcHBlZCBsaXN0IG9y
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgIi0tc2tpcHBlZD1vbmx5IExheW91
dFRlc3RzL2RpcjEiIHdpdGggImRpcjEvZmlsZTEuaHRtbCIgb24gdGhlIHNraXBwZWQgbGlzdAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBBUkdWLCAkc2tpcHBlZCk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNpZiAoJGNvbnN0cmFpbnRQYXRoID1+IC9e
KCJMYXlvdXRUZXN0c1wvIi4kc2tpcHBlZCkvIHx8ICRjb25zdHJhaW50UGF0aCA9fiAvXigkc2tp
cHBlZCkvKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgQWRkIGN1cnJlbnQg
cGF0aCBjb25zdHJhaW50IGlmIGl0IGlzIG1vcmUgc3BlY2lmaWMgdGhhbiB0aGUgc2tpcCBsaXN0
IGVudHJ5LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGUuZy4sICItLXNraXBw
ZWQ9b25seSBkaXIxL2RpcjIvZGlyMyIgd2l0aCAiZGlyMSIgb24gdGhlIHNraXBwZWQgbGlzdCBv
cgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGUuZy4sICItLXNraXBwZWQ9b25s
eSBMYXlvdXRUZXN0cy9kaXIxL2RpcjIvZGlyMyIgd2l0aCAiZGlyMSIgb24gdGhlIHNraXBwZWQg
bGlzdC4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAQVJHViwgJGNvbnN0
cmFpbnRQYXRoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgICAgICAgICB9IGVsc2lmICgkdmVyYm9zZSkgewotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHByaW50ICIgICAgJHNraXBwZWRcbiI7CisgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NT
a2lwcGVkRmlsZUVudHJ5KCRza2lwcGVkLCAiU2tpcHBlZCIsICRjb25zdHJhaW50UGF0aCk7Cisg
ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgY2xvc2UgU0tJUFBF
RDsKKyAgICAgICAgfSBlbHNpZiAob3BlbiBFWFBFQ1RBVElPTlMsICI8IiwgIiRsZXZlbC9UZXN0
RXhwZWN0YXRpb25zIikgeworICAgICAgICAgICAgaWYgKCR2ZXJib3NlKSB7CisgICAgICAgICAg
ICAgICAgbXkgKCRkaXIsICRuYW1lKSA9IHNwbGl0cGF0aCgkbGV2ZWwpOworICAgICAgICAgICAg
ICAgIHByaW50ICJTa2lwcGluZyB0ZXN0cyBmcm9tICRuYW1lOlxuIjsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIExJTkU6IHdoaWxlICg8RVhQRUNUQVRJT05TPikgeworICAgICAgICAgICAg
ICAgIG15ICRsaW5lID0gJF87CisgICAgICAgICAgICAgICAgY2hvbXAgJGxpbmU7CisgICAgICAg
ICAgICAgICAgJGxpbmUgPX4gcy9eWyBcblxyXSsvLzsKKyAgICAgICAgICAgICAgICAkbGluZSA9
fiBzL1sgXG5ccl0rJC8vOworICAgICAgICAgICAgICAgICRsaW5lID1+IHMvIy4qJC8vOworCisg
ICAgICAgICAgICAgICAgIyBUaGlzIGxvZ2ljIHJvdWdobHkgbWlycm9ycyB0aGUgbG9naWMgaW4g
dGVzdF9leHBlY3RhdGlvbnMucHkgX3Rva2VuaXplX2xpbmUgYnV0IHdlCisgICAgICAgICAgICAg
ICAgIyBkb24ndCBib3RoZXIgdG8gbG9vayBhdCBhbnkgb2YgdGhlIG1vZGlmaWVycyBvciBleHBl
Y3RhdGlvbnMgYW5kIGp1c3Qgc2tpcCBldmVyeXRoaW5nLgorCisgICAgICAgICAgICAgICAgbXkg
JHN0YXRlID0gInN0YXJ0IjsKKyAgICAgICAgICAgICAgICBteSAkc2tpcHBlZCA9ICIiOworICAg
ICAgICAgICAgICAgIFRPS0VOOiBmb3JlYWNoIG15ICR0b2tlbiAoc3BsaXQoL1xzKy8sICRsaW5l
KSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoKGluZGV4KCR0b2tlbiwgIkJVRyIpID09IDAp
IHx8IChpbmRleCgkdG9rZW4sICIvLyIpID09IDApKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAjIElnbm9yZSBhbnkgbGluZXMgd2l0aCB0aGUgb2xkLXN0eWxlIHN5bnRheC4KKyAgICAgICAg
ICAgICAgICAgICAgICAgIG5leHQgTElORTsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAg
ICAgICAgICAgICAgICBpZiAoKGluZGV4KCR0b2tlbiwgIndlYmtpdC5vcmcvYi8iKSA9PSAwKSB8
fCAoaW5kZXgoJHRva2VuLCAiQnVnKCIpID09IDApKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAjIFNraXAgb3ZlciBidWcgaWRlbnRpZmllcnM7IG5vdGUgdGhhdCB3ZSBkb24ndCBib3RoZXIg
bG9va2luZyBmb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICMgQ2hyb21pdW0gb3IgVjggVVJM
cyBzaW5jZSBPUldUIGRvZXNuJ3Qgd29yayB3aXRoIENocm9taXVtLgorICAgICAgICAgICAgICAg
ICAgICAgICAgbmV4dCBUT0tFTjsKKyAgICAgICAgICAgICAgICAgICAgfSBlbHNpZiAoJHRva2Vu
IGVxICdbJykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRzdGF0ZSBlcSAnc3RhcnQn
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHN0YXRlID0gJ2NvbmZpZ3VyYXRpb24n
OwogICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCR2ZXJib3NlKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHJpbnQgIiAgICAkc2tpcHBlZFxuIjsKKyAgICAgICAgICAgICAgICAg
ICAgfSBlbHNpZiAoJHRva2VuIGVxICddJykgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KCRzdGF0ZSBlcSAnY29uZmlndXJhdGlvbicpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAkc3RhdGUgPSAnbmFtZSc7CiAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBwcm9jZXNzSWdub3JlVGVzdHMoJHNraXBwZWQsICJTa2lwcGVkIik7Cisg
ICAgICAgICAgICAgICAgICAgIH0gZWxzaWYgKCgkc3RhdGUgZXEgJ25hbWUnKSB8fCAoJHN0YXRl
IGVxICdzdGFydCcpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAkc2tpcHBlZCA9ICR0b2tl
bjsKKyAgICAgICAgICAgICAgICAgICAgICAgICMgU2tpcCBvdmVyIHRoZSByZXN0IG9mIHRoZSBs
aW5lLgorICAgICAgICAgICAgICAgICAgICAgICAgbGFzdCBUT0tFTjsKICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBpZiAoJHNraXBwZWQp
IHsKKyAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc1NraXBwZWRGaWxlRW50cnkoJHNraXBwZWQs
ICJUZXN0RXhwZWN0YXRpb25zIiwgJGNvbnN0cmFpbnRQYXRoKTsKKyAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBjbG9zZSBTS0lQUEVEOworICAgICAgICAgICAg
Y2xvc2UgRVhQRUNUQVRJT05TOworICAgICAgICB9CisgICAgfQorfQorCitzdWIgcHJvY2Vzc1Nr
aXBwZWRGaWxlRW50cnkgCit7CisgICAgbXkgKCRza2lwcGVkLCAkYmFzZW5hbWUsICRjb25zdHJh
aW50UGF0aCkgPSBAXzsKKworICAgIGlmICgkc2tpcHBlZE9ubHkpIHsKKyAgICAgICAgaWYgKCFm
aWxlU2hvdWxkQmVJZ25vcmVkKCRza2lwcGVkKSkgeworICAgICAgICAgICAgaWYgKCEkY29uc3Ry
YWludFBhdGgpIHsKKyAgICAgICAgICAgICAgICAjIEFsd2F5cyBhZGQgJHNraXBwZWQgc2luY2Ug
bm8gY29uc3RyYWludCBwYXRoIHdhcyBzcGVjaWZpZWQgb24gdGhlIGNvbW1hbmQgbGluZS4KKyAg
ICAgICAgICAgICAgICBwdXNoKEBBUkdWLCAkc2tpcHBlZCk7CisgICAgICAgICAgICB9IGVsc2lm
ICgkc2tpcHBlZCA9fiAvXigkY29uc3RyYWludFBhdGgpLyB8fCAoIkxheW91dFRlc3RzLyIuJHNr
aXBwZWQpID1+IC9eKCRjb25zdHJhaW50UGF0aCkvICkgeworICAgICAgICAgICAgICAgICMgQWRk
ICRza2lwcGVkIG9ubHkgaWYgaXQgbWF0Y2hlcyB0aGUgY3VycmVudCBwYXRoIGNvbnN0cmFpbnQs
IGUuZy4sCisgICAgICAgICAgICAgICAgIyAiLS1za2lwcGVkPW9ubHkgZGlyMSIgd2l0aCAiZGly
MS9maWxlMS5odG1sIiBvbiB0aGUgc2tpcHBlZCBsaXN0IG9yCisgICAgICAgICAgICAgICAgIyAi
LS1za2lwcGVkPW9ubHkgTGF5b3V0VGVzdHMvZGlyMSIgd2l0aCAiZGlyMS9maWxlMS5odG1sIiBv
biB0aGUgc2tpcHBlZCBsaXN0CisgICAgICAgICAgICAgICAgcHVzaChAQVJHViwgJHNraXBwZWQp
OworICAgICAgICAgICAgfSBlbHNpZiAoJGNvbnN0cmFpbnRQYXRoID1+IC9eKCJMYXlvdXRUZXN0
c1wvIi4kc2tpcHBlZCkvIHx8ICRjb25zdHJhaW50UGF0aCA9fiAvXigkc2tpcHBlZCkvKSB7Cisg
ICAgICAgICAgICAgICAgIyBBZGQgY3VycmVudCBwYXRoIGNvbnN0cmFpbnQgaWYgaXQgaXMgbW9y
ZSBzcGVjaWZpYyB0aGFuIHRoZSBza2lwIGxpc3QgZW50cnksCisgICAgICAgICAgICAgICAgIyBl
LmcuLCAiLS1za2lwcGVkPW9ubHkgZGlyMS9kaXIyL2RpcjMiIHdpdGggImRpcjEiIG9uIHRoZSBz
a2lwcGVkIGxpc3Qgb3IKKyAgICAgICAgICAgICAgICAjIGUuZy4sICItLXNraXBwZWQ9b25seSBM
YXlvdXRUZXN0cy9kaXIxL2RpcjIvZGlyMyIgd2l0aCAiZGlyMSIgb24gdGhlIHNraXBwZWQgbGlz
dC4KKyAgICAgICAgICAgICAgICBwdXNoKEBBUkdWLCAkY29uc3RyYWludFBhdGgpOworICAgICAg
ICAgICAgfQorICAgICAgICB9IGVsc2lmICgkdmVyYm9zZSkgeworICAgICAgICAgICAgcHJpbnQg
IiAgICAkc2tpcHBlZFxuIjsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7CisgICAgICAgIGlmICgk
dmVyYm9zZSkgeworICAgICAgICAgICAgcHJpbnQgIiAgICAkc2tpcHBlZFxuIjsKICAgICAgICAg
fQorICAgICAgICBwcm9jZXNzSWdub3JlVGVzdHMoJHNraXBwZWQsICRiYXNlbmFtZSk7CiAgICAg
fQogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165907</attachid>
            <date>2012-09-26 17:59:30 -0700</date>
            <delta_ts>2012-10-08 16:15:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97276-20120926175849.patch</filename>
            <type>text/plain</type>
            <size>8331</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5NzE0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDViOWY5OThiNDJkMDFhYWM4YzEyYTRhZmMzZmY0MTM1
YzA1YjU3NS4uYzQxMzkxMTYyNzI4ZjhkOWI0MDBlMDIyNzlhYzg4M2JhOTg5ZjFlYiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI4
IEBACiAyMDEyLTA5LTI2ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCisg
ICAgICAgIG1vZGlmeSBvbGQtcnVuLXdlYmtpdC10ZXN0cyB0byBzdXBwb3J0IFRlc3RFeHBlY3Rh
dGlvbnMgZmlsZXMgYSBsaXR0bGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk3Mjc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIG1pbmltYWwgc3VwcG9ydCB0byBvbGQtcnVuLXdl
YmtpdC10ZXN0cyBzbyB0aGF0CisgICAgICAgIGl0IGNhbiByZWFkIGEgVGVzdEV4cGVjdGF0aW9u
cyBmaWxlIGFuZCBza2lwIHRoZSB0ZXN0cyBsaXN0ZWQKKyAgICAgICAgdGhlcmUuIEl0IHdpbGwg
c2tpcCAqYWxsKiB0ZXN0cywgcmVnYXJkbGVzcyBvZiB0aGUgZXhwZWN0YXRpb24KKyAgICAgICAg
KGV2ZW4gaWYgdGhlIHRlc3QgaXMgbGlzdGVkIGFzIFsgUGFzcyBdKSwgYW5kIGl0IHdpbGwgb25s
eSBsb29rCisgICAgICAgIGF0IHRoZSBUZXN0RXhwZWN0YXRpb25zIGZpbGUgaWYgdGhlcmUgaXNu
J3QgYSBTa2lwcGVkIGZpbGUgbmV4dAorICAgICAgICB0byBpdC4KKyAgICAgICAgCisgICAgICAg
IFRoaXMgd2lsbCBhbGxvdyB1cyB0byBzd2l0Y2ggdG8gdXNpbmcganVzdCB1c2luZworICAgICAg
ICBUZXN0RXhwZWN0YXRpb25zIGZpbGVzIHdpdGhvdXQgbWFraW5nIG9sZC1ydW4td2Via2l0LXRl
c3RzCisgICAgICAgIHRvdGFsbHkgdXNlbGVzcy4KKworICAgICAgICAqIFNjcmlwdHMvb2xkLXJ1
bi13ZWJraXQtdGVzdHM6CisgICAgICAgIChyZWFkU2tpcHBlZEZpbGVzKToKKyAgICAgICAgKHBy
b2Nlc3NTa2lwcGVkRmlsZUVudHJ5KTogQWRkZWQuCisgICAgICAgIChzdGFydHNXaXRoKTogQWRk
ZWQuCisKKzIwMTItMDktMjYgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisK
ICAgICAgICAgVGhlIHN0eWxlIGJvdCBzcGFtcyBhYm91dCBza2lhX3Rlc3RfZXhwZWN0YXRpb25z
LnR4dAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTc2
OTkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9vbGQtcnVuLXdlYmtpdC10ZXN0cyBiL1Rv
b2xzL1NjcmlwdHMvb2xkLXJ1bi13ZWJraXQtdGVzdHMKaW5kZXggZGRmOTE1OTQ3YWNmZGMyNjE3
YmRlMThhMmI1YTkyYzFlOTU2MzUzNi4uNDdkZDUxYzgxY2Q2NTNkNDI2N2Y0OTJkNGQ5Yjg4NjZi
MDk1Y2I2NSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9vbGQtcnVuLXdlYmtpdC10ZXN0cwor
KysgYi9Ub29scy9TY3JpcHRzL29sZC1ydW4td2Via2l0LXRlc3RzCkBAIC0xMDYsNiArMTA2LDcg
QEAgc3ViIG9wZW5XZWJTb2NrZXRTZXJ2ZXJJZk5lZWRlZCgpOwogc3ViIHBhdGhjbXAoJCQpOwog
c3ViIHByaW50RmFpbHVyZU1lc3NhZ2VGb3JUZXN0KCQkKTsKIHN1YiBwcm9jZXNzSWdub3JlVGVz
dHMoJCQpOworc3ViIHByb2Nlc3NTa2lwcGVkRmlsZUVudHJ5KCQkJCk7CiBzdWIgcmVhZENoZWNr
c3VtRnJvbVBuZygkKTsKIHN1YiByZWFkRnJvbUR1bXBUb29sV2l0aFRpbWVyKCoqKTsKIHN1YiBy
ZWFkU2tpcHBlZEZpbGVzKCQpOwpAQCAtMTE1LDYgKzExNiw3IEBAIHN1YiBzZXRGaWxlSGFuZGxl
Tm9uQmxvY2tpbmcoKiQpOwogc3ViIHNldFVwV2luZG93c0NyYXNoTG9nU2F2aW5nKCk7CiBzdWIg
c2xvd2VzdGNtcCgkJCk7CiBzdWIgc3BsaXRwYXRoKCQpOworc3ViIHN0YXJ0c1dpdGgoJCQpOwog
c3ViIHN0b3BSdW5uaW5nVGVzdHNFYXJseUlmTmVlZGVkKCk7CiBzdWIgc3RyaXBFeHRlbnNpb24o
JCk7CiBzdWIgc3RyaXBNZXRyaWNzKCQkKTsKQEAgLTI1MDQsNiArMjUwNiw4IEBAIHN1YiByZWFk
U2tpcHBlZEZpbGVzKCQpCiAgICAgfQogCiAgICAgZm9yZWFjaCBteSAkbGV2ZWwgKEBza2lwcGVk
RmlsZURpcmVjdG9yaWVzKSB7CisgICAgICAgICMgSWYgYSBTa2lwcGVkIGZpbGUgZXhpc3RzIGlu
IHRoZSBkaXJlY3RvcnksIHVzZSB0aGF0IGFuZCBpZ25vcmUgdGhlIFRlc3RFeHBlY3RhdGlvbnMg
ZmlsZSwKKyAgICAgICAgIyBidXQgaWYgaXQgZG9lc24ndCwgdHJlYXQgZXZlcnkgZW50cnkgaW4g
dGhlIFRlc3RFeHBlY3RhdGlvbnMgZmlsZSBhcyBpZiBpdCBzaG91bGQgYmUgU2tpcHBlZC4KICAg
ICAgICAgaWYgKG9wZW4gU0tJUFBFRCwgIjwiLCAiJGxldmVsL1NraXBwZWQiKSB7CiAgICAgICAg
ICAgICBpZiAoJHZlcmJvc2UpIHsKICAgICAgICAgICAgICAgICBteSAoJGRpciwgJG5hbWUpID0g
c3BsaXRwYXRoKCRsZXZlbCk7CkBAIC0yNTE2LDM4ICsyNTIwLDk2IEBAIHN1YiByZWFkU2tpcHBl
ZEZpbGVzKCQpCiAgICAgICAgICAgICAgICAgJHNraXBwZWQgPX4gcy9eWyBcblxyXSsvLzsKICAg
ICAgICAgICAgICAgICAkc2tpcHBlZCA9fiBzL1sgXG5ccl0rJC8vOwogICAgICAgICAgICAgICAg
IGlmICgkc2tpcHBlZCAmJiAkc2tpcHBlZCAhfiAvXiMvKSB7Ci0gICAgICAgICAgICAgICAgICAg
IGlmICgkc2tpcHBlZE9ubHkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZmlsZVNo
b3VsZEJlSWdub3JlZCgkc2tpcHBlZCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoISRjb25zdHJhaW50UGF0aCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAj
IEFsd2F5cyBhZGQgJHNraXBwZWQgc2luY2Ugbm8gY29uc3RyYWludCBwYXRoIHdhcyBzcGVjaWZp
ZWQgb24gdGhlIGNvbW1hbmQgbGluZS4KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cHVzaChAQVJHViwgJHNraXBwZWQpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxz
aWYgKCRza2lwcGVkID1+IC9eKCRjb25zdHJhaW50UGF0aCkvIHx8ICgiTGF5b3V0VGVzdHMvIi4k
c2tpcHBlZCkgPX4gL14oJGNvbnN0cmFpbnRQYXRoKS8gKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICMgQWRkICRza2lwcGVkIG9ubHkgaWYgaXQgbWF0Y2hlcyB0aGUgY3VycmVu
dCBwYXRoIGNvbnN0cmFpbnQsIGUuZy4sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICMgIi0tc2tpcHBlZD1vbmx5IGRpcjEiIHdpdGggImRpcjEvZmlsZTEuaHRtbCIgb24gdGhlIHNr
aXBwZWQgbGlzdCBvcgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICItLXNraXBw
ZWQ9b25seSBMYXlvdXRUZXN0cy9kaXIxIiB3aXRoICJkaXIxL2ZpbGUxLmh0bWwiIG9uIHRoZSBz
a2lwcGVkIGxpc3QKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAQVJHViwg
JHNraXBwZWQpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRjb25zdHJh
aW50UGF0aCA9fiAvXigiTGF5b3V0VGVzdHNcLyIuJHNraXBwZWQpLyB8fCAkY29uc3RyYWludFBh
dGggPX4gL14oJHNraXBwZWQpLykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAj
IEFkZCBjdXJyZW50IHBhdGggY29uc3RyYWludCBpZiBpdCBpcyBtb3JlIHNwZWNpZmljIHRoYW4g
dGhlIHNraXAgbGlzdCBlbnRyeSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBl
LmcuLCAiLS1za2lwcGVkPW9ubHkgZGlyMS9kaXIyL2RpcjMiIHdpdGggImRpcjEiIG9uIHRoZSBz
a2lwcGVkIGxpc3Qgb3IKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBlLmcuLCAi
LS1za2lwcGVkPW9ubHkgTGF5b3V0VGVzdHMvZGlyMS9kaXIyL2RpcjMiIHdpdGggImRpcjEiIG9u
IHRoZSBza2lwcGVkIGxpc3QuCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2go
QEFSR1YsICRjb25zdHJhaW50UGF0aCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNpZiAoJHZlcmJvc2UpIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwcmludCAiICAgICRza2lwcGVkXG4iOworICAgICAgICAgICAgICAg
ICAgICBwcm9jZXNzU2tpcHBlZEZpbGVFbnRyeSgkc2tpcHBlZCwgIlNraXBwZWQiLCAkY29uc3Ry
YWludFBhdGgpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGNsb3NlIFNLSVBQRUQ7CisgICAgICAgIH0gZWxzaWYgKG9wZW4gRVhQRUNUQVRJT05TLCAiPCIs
ICIkbGV2ZWwvVGVzdEV4cGVjdGF0aW9ucyIpIHsKKyAgICAgICAgICAgIGlmICgkdmVyYm9zZSkg
eworICAgICAgICAgICAgICAgIG15ICgkZGlyLCAkbmFtZSkgPSBzcGxpdHBhdGgoJGxldmVsKTsK
KyAgICAgICAgICAgICAgICBwcmludCAiU2tpcHBpbmcgdGVzdHMgZnJvbSAkbmFtZTpcbiI7Cisg
ICAgICAgICAgICB9CisgICAgICAgICAgICBMSU5FOiB3aGlsZSAoPEVYUEVDVEFUSU9OUz4pIHsK
KyAgICAgICAgICAgICAgICBteSAkbGluZSA9ICRfOworICAgICAgICAgICAgICAgIGNob21wICRs
aW5lOworICAgICAgICAgICAgICAgICRsaW5lID1+IHMvXlsgXG5ccl0rLy87CisgICAgICAgICAg
ICAgICAgJGxpbmUgPX4gcy9bIFxuXHJdKyQvLzsKKyAgICAgICAgICAgICAgICAkbGluZSA9fiBz
LyMuKiQvLzsKKworICAgICAgICAgICAgICAgICMgVGhpcyBsb2dpYyByb3VnaGx5IG1pcnJvcnMg
dGhlIGxvZ2ljIGluIHRlc3RfZXhwZWN0YXRpb25zLnB5IF90b2tlbml6ZV9saW5lKCkgYnV0IHdl
CisgICAgICAgICAgICAgICAgIyBkb24ndCBib3RoZXIgdG8gbG9vayBhdCBhbnkgb2YgdGhlIG1v
ZGlmaWVycyBvciBleHBlY3RhdGlvbnMgYW5kIGp1c3Qgc2tpcCBldmVyeXRoaW5nLgorCisgICAg
ICAgICAgICAgICAgbXkgJHN0YXRlID0gInN0YXJ0IjsKKyAgICAgICAgICAgICAgICBteSAkc2tp
cHBlZCA9ICIiOworICAgICAgICAgICAgICAgIFRPS0VOOiBmb3JlYWNoIG15ICR0b2tlbiAoc3Bs
aXQoL1xzKy8sICRsaW5lKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnRzV2l0aCgk
dG9rZW4sICJCVUciKSB8fCBzdGFydHNXaXRoKCR0b2tlbiwgIi8vIikpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgICMgSWdub3JlIGFueSBsaW5lcyB3aXRoIHRoZSBvbGQtc3R5bGUgc3ludGF4
LgorICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCBMSU5FOworICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIGlmIChzdGFydHNXaXRoKCR0b2tlbiwgIndlYmtpdC5v
cmcvYi8iKSB8fCBzdGFydHNXaXRoKCR0b2tlbiwgIkJ1ZygiKSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgIyBTa2lwIG92ZXIgYnVnIGlkZW50aWZpZXJzOyBub3RlIHRoYXQgd2UgZG9uJ3Qg
Ym90aGVyIGxvb2tpbmcgZm9yCisgICAgICAgICAgICAgICAgICAgICAgICAjIENocm9taXVtIG9y
IFY4IFVSTHMgc2luY2UgT1JXVCBkb2Vzbid0IHdvcmsgd2l0aCBDaHJvbWl1bS4KKyAgICAgICAg
ICAgICAgICAgICAgICAgIG5leHQgVE9LRU47CisgICAgICAgICAgICAgICAgICAgIH0gZWxzaWYg
KCR0b2tlbiBlcSAiWyIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkc3RhdGUgZXEg
J3N0YXJ0JykgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzdGF0ZSA9ICdjb25maWd1
cmF0aW9uJzsKICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkdmVyYm9zZSkgewotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHByaW50ICIgICAgJHNraXBwZWRcbiI7CisgICAgICAgICAg
ICAgICAgICAgIH0gZWxzaWYgKCR0b2tlbiBlcSAiXSIpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICgkc3RhdGUgZXEgJ2NvbmZpZ3VyYXRpb24nKSB7CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJHN0YXRlID0gJ25hbWUnOwogICAgICAgICAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc0lnbm9yZVRlc3RzKCRza2lwcGVkLCAiU2tpcHBl
ZCIpOworICAgICAgICAgICAgICAgICAgICB9IGVsc2lmICgoJHN0YXRlIGVxICJuYW1lIikgfHwg
KCRzdGF0ZSBlcSAic3RhcnQiKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgJHNraXBwZWQg
PSAkdG9rZW47CisgICAgICAgICAgICAgICAgICAgICAgICAjIFNraXAgb3ZlciB0aGUgcmVzdCBv
ZiB0aGUgbGluZS4KKyAgICAgICAgICAgICAgICAgICAgICAgIGxhc3QgVE9LRU47CiAgICAgICAg
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKCRz
a2lwcGVkKSB7CisgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NTa2lwcGVkRmlsZUVudHJ5KCRz
a2lwcGVkLCAiVGVzdEV4cGVjdGF0aW9ucyIsICRjb25zdHJhaW50UGF0aCk7CisgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgfQotICAgICAgICAgICAgY2xvc2UgU0tJUFBFRDsKKyAgICAg
ICAgICAgIGNsb3NlIEVYUEVDVEFUSU9OUzsKKyAgICAgICAgfQorICAgIH0KK30KKworc3ViIHBy
b2Nlc3NTa2lwcGVkRmlsZUVudHJ5KCQkJCkKK3sKKyAgICBteSAoJHNraXBwZWQsICRsaXN0bmFt
ZSwgJGNvbnN0cmFpbnRQYXRoKSA9IEBfOworCisgICAgaWYgKCRza2lwcGVkT25seSkgeworICAg
ICAgICBpZiAoIWZpbGVTaG91bGRCZUlnbm9yZWQoJHNraXBwZWQpKSB7CisgICAgICAgICAgICBp
ZiAoISRjb25zdHJhaW50UGF0aCkgeworICAgICAgICAgICAgICAgICMgQWx3YXlzIGFkZCAkc2tp
cHBlZCBzaW5jZSBubyBjb25zdHJhaW50IHBhdGggd2FzIHNwZWNpZmllZCBvbiB0aGUgY29tbWFu
ZCBsaW5lLgorICAgICAgICAgICAgICAgIHB1c2goQEFSR1YsICRza2lwcGVkKTsKKyAgICAgICAg
ICAgIH0gZWxzaWYgKCRza2lwcGVkID1+IC9eKCRjb25zdHJhaW50UGF0aCkvIHx8ICgiTGF5b3V0
VGVzdHMvIi4kc2tpcHBlZCkgPX4gL14oJGNvbnN0cmFpbnRQYXRoKS8gKSB7CisgICAgICAgICAg
ICAgICAgIyBBZGQgJHNraXBwZWQgb25seSBpZiBpdCBtYXRjaGVzIHRoZSBjdXJyZW50IHBhdGgg
Y29uc3RyYWludCwgZS5nLiwKKyAgICAgICAgICAgICAgICAjICItLXNraXBwZWQ9b25seSBkaXIx
IiB3aXRoICJkaXIxL2ZpbGUxLmh0bWwiIG9uIHRoZSBza2lwcGVkIGxpc3Qgb3IKKyAgICAgICAg
ICAgICAgICAjICItLXNraXBwZWQ9b25seSBMYXlvdXRUZXN0cy9kaXIxIiB3aXRoICJkaXIxL2Zp
bGUxLmh0bWwiIG9uIHRoZSBza2lwcGVkIGxpc3QKKyAgICAgICAgICAgICAgICBwdXNoKEBBUkdW
LCAkc2tpcHBlZCk7CisgICAgICAgICAgICB9IGVsc2lmICgkY29uc3RyYWludFBhdGggPX4gL14o
IkxheW91dFRlc3RzXC8iLiRza2lwcGVkKS8gfHwgJGNvbnN0cmFpbnRQYXRoID1+IC9eKCRza2lw
cGVkKS8pIHsKKyAgICAgICAgICAgICAgICAjIEFkZCBjdXJyZW50IHBhdGggY29uc3RyYWludCBp
ZiBpdCBpcyBtb3JlIHNwZWNpZmljIHRoYW4gdGhlIHNraXAgbGlzdCBlbnRyeSwKKyAgICAgICAg
ICAgICAgICAjIGUuZy4sICItLXNraXBwZWQ9b25seSBkaXIxL2RpcjIvZGlyMyIgd2l0aCAiZGly
MSIgb24gdGhlIHNraXBwZWQgbGlzdCBvcgorICAgICAgICAgICAgICAgICMgZS5nLiwgIi0tc2tp
cHBlZD1vbmx5IExheW91dFRlc3RzL2RpcjEvZGlyMi9kaXIzIiB3aXRoICJkaXIxIiBvbiB0aGUg
c2tpcHBlZCBsaXN0LgorICAgICAgICAgICAgICAgIHB1c2goQEFSR1YsICRjb25zdHJhaW50UGF0
aCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzaWYgKCR2ZXJib3NlKSB7CisgICAgICAg
ICAgICBwcmludCAiICAgICRza2lwcGVkXG4iOwogICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgaWYgKCR2ZXJib3NlKSB7CisgICAgICAgICAgICBwcmludCAiICAgICRza2lwcGVkXG4i
OworICAgICAgICB9CisgICAgICAgIHByb2Nlc3NJZ25vcmVUZXN0cygkc2tpcHBlZCwgJGxpc3Ru
YW1lKTsKICAgICB9CiB9CiAKK3N1YiBzdGFydHNXaXRoKCQkKQoreworICAgIG15ICgkc3RyaW5n
LCAkc3Vic3RyaW5nKSA9IEBfOworICAgIHJldHVybiBpbmRleCgkc3RyaW5nLCAkc3Vic3RyaW5n
KSA9PSAwOworfQorCiBzdWIgcmVhZENoZWNrc3VtRnJvbVBuZygkKQogewogICAgIG15ICgkcGF0
aCkgPSBAXzsK
</data>

          </attachment>
      

    </bug>

</bugzilla>