<?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>38425</bug_id>
          
          <creation_ts>2010-05-01 20:58:58 -0700</creation_ts>
          <short_desc>svn-apply: Add a parseGitDiffHeader() method to VCSUtils.pm</short_desc>
          <delta_ts>2010-05-03 10:10:06 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>38454</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Jerdonek">cjerdonek</reporter>
          <assigned_to name="Chris Jerdonek">cjerdonek</assigned_to>
          <cc>abarth</cc>
    
    <cc>cjerdonek</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>eric</cc>
    
    <cc>kenneth</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>219770</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-05-01 20:58:58 -0700</bug_when>
    <thetext>This method should be analogous to the existing parseDiffHeader() but add the feature of setting an &quot;executableBitDelta&quot; value in the returned diff hash.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219830</commentid>
    <comment_count>1</comment_count>
      <attachid>54872</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-05-02 05:32:08 -0700</bug_when>
    <thetext>Created attachment 54872
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219833</commentid>
    <comment_count>2</comment_count>
      <attachid>54873</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-05-02 05:51:41 -0700</bug_when>
    <thetext>Created attachment 54873
Proposed patch 2

Adjusted code comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219844</commentid>
    <comment_count>3</comment_count>
      <attachid>54877</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-05-02 07:10:25 -0700</bug_when>
    <thetext>Created attachment 54877
Proposed patch 3

Fixed ternary expression and regular expression errors along with two test cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219848</commentid>
    <comment_count>4</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-05-02 07:25:04 -0700</bug_when>
    <thetext>Are you going to handle moves/renames as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219851</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-05-02 07:33:11 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Are you going to handle moves/renames as well?

For git diffs?  I&apos;m not personally planning on doing that in the near future, though the refactoring I recently completed probably makes implementing that easier:

http://trac.webkit.org/changeset/58495

Is there a bug number?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>219852</commentid>
    <comment_count>6</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-05-02 07:44:08 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; Are you going to handle moves/renames as well?
&gt; 
&gt; For git diffs?  I&apos;m not personally planning on doing that in the near future,
&gt; though the refactoring I recently completed probably makes implementing that
&gt; easier:
&gt; 
&gt; http://trac.webkit.org/changeset/58495
&gt; 
&gt; Is there a bug number?

32834 :-) and there are already comments from you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220019</commentid>
    <comment_count>7</comment_count>
      <attachid>54877</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-05-02 22:20:13 -0700</bug_when>
    <thetext>Comment on attachment 54877
Proposed patch 3

This patch looks good. I have a couple of stylistic nits.

&gt; +sub isExecutable($)
&gt; +{
&gt; +    my $fileMode = shift;
&gt; +
&gt; +    return ($fileMode % 2 != 0)

The last line can be written: return $fileMode % 2;

&gt; +}
&gt; +
&gt; +# Parse the next Git diff header from the given file handle, and advance
&gt; +# the handle so the last line read is the first line after the header.
&gt; +#
&gt; +# This subroutine dies if given leading junk.
&gt; +#
&gt; +# Args:
&gt; +#   $fileHandle: advanced so the last line read is the first line of the
&gt; +#                header.  This is a line beginning with &quot;diff --git ....&quot;

When I first read this I was a bit confused. I believe what you mean is:

$fileHandle: advanced so the last line read is the first line of the
             header in the next diff. This is a line beginning with &quot;diff --git ....&quot;.

Notice, I added both the phrase &quot;in the next diff&quot; at the end of the first sentence and a period at the end of the last sentence.

&gt; +#   $line: the line last read from $fileHandle
[...]
&gt; +sub parseGitDiffHeader($$)
&gt; +{
&gt; +    my ($fileHandle, $line) = @_;
&gt; +
&gt; +    $_ = $line;
&gt; +
&gt; +    my $headerStartRegEx = qr/^diff --git /;
&gt; +
&gt; +    if (!/$headerStartRegEx/) {
&gt; +        die(&quot;First line of Git diff does not begin with \&quot;diff --git \&quot;: \&quot;$_\&quot;&quot;);
&gt; +    }

We can write this last if-statement in one line (and hence eliminate the curly-braces):

die(&quot;First line of Git diff does not begin with \&quot;diff --git \&quot;: \&quot;$_\&quot;&quot;) if !/$headerStartRegEx/;

OR

die(&quot;First line of Git diff does not begin with \&quot;diff --git \&quot;: \&quot;$_\&quot;&quot;) unless /$headerStartRegEx/;

&gt; +
&gt; +    my $foundHeaderEnding;
&gt; +    my $indexPath;
&gt; +    my $newExecutableBit = 0;
&gt; +    my $oldExecutableBit = 0;
&gt; +    my $svnConvertedText;
&gt; +    while (1) {
&gt; +        # Temporarily strip off any end-of-line characters to simplify
&gt; +        # regex matching below.
&gt; +        s/([\n\r]+)$//;
&gt; +        my $eol = $1;
&gt; +
&gt; +        if (m#^diff --git \w/(.+) \w/([^\r\n]+)#) {
&gt; +            $indexPath = $1;
&gt; +            $_ = &quot;Index: $indexPath&quot;; # Convert to SVN format.
&gt; +        } elsif (/^(deleted file|old) mode ([0-9]{6})/) {
&gt; +            $oldExecutableBit = (isExecutable($2) ? 1 : 0);
&gt; +        } elsif (/^new( file)? mode ([0-9]{6})/) {
&gt; +            $newExecutableBit = (isExecutable($2) ? 1 : 0);
&gt; +        } elsif (/^--- \S+/) {
&gt; +            $_ = &quot;--- $indexPath&quot;; # Convert to SVN format.
&gt; +        } elsif (/^\+\+\+ \S+/) {
&gt; +            $_ = &quot;+++ $indexPath&quot;; # Convert to SVN format.
&gt; +            $foundHeaderEnding = 1;
&gt; +        } elsif (/^GIT binary patch$/ ) {
&gt; +            $foundHeaderEnding = 1;
&gt; +        }
&gt; +
&gt; +        $svnConvertedText .= &quot;$_$eol&quot;; # Also restore end-of-line characters.
&gt; +
&gt; +        $_ = &lt;$fileHandle&gt;; # Not defined if end-of-file reached.
&gt; +
&gt; +        if (!defined($_) || /$headerStartRegEx/ || $foundHeaderEnding) {
&gt; +            last;
&gt; +        }

Similarly, we can write the last if-statement in one line:

last if (!defined($_) || /$headerStartRegEx/ || $foundHeaderEnding);

&gt; +}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220020</commentid>
    <comment_count>8</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-05-02 22:30:18 -0700</bug_when>
    <thetext>Forgot to mention, this patch need to be rebased as it no longer applies cleanly since the passing of change set 58663 &lt;http://trac.webkit.org/changeset/58663&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220032</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-05-02 23:46:01 -0700</bug_when>
    <thetext>(In reply to comment #7)

Thanks for the comments, Daniel.

&gt; &gt; +#   $fileHandle: advanced so the last line read is the first line of the
&gt; &gt; +#                header.  This is a line beginning with &quot;diff --git ....&quot;
&gt; 
&gt; $fileHandle: advanced so the last line read is the first line of the
&gt;              header in the next diff. This is a line beginning with &quot;diff --git
&gt; ....&quot;.
&gt; 
&gt; Notice, I added both the phrase &quot;in the next diff&quot; at the end of the first
&gt; sentence and a period at the end of the last sentence.

I usually do three periods in an ellipsis in the middle of a sentence and four when the ellipsis is at the end (the fourth doing double-duty as the sentence-ending period).  In high school, I learned that periods and commas at the end of a quotation are supposed to go inside the quotes (while semi-colons and colons go outside).  However, I sometimes violate this when I&apos;m quoting an identifier and want to emphasize that the terminating period is not part of the identifier.

&gt; &gt; +    if (!/$headerStartRegEx/) {
&gt; &gt; +        die(&quot;First line of Git diff does not begin with \&quot;diff --git \&quot;: \&quot;$_\&quot;&quot;);
&gt; &gt; +    }
&gt; 
&gt; We can write this last if-statement in one line (and hence eliminate the
&gt; curly-braces):

This may be a personal judgment call, but I think it may be easier to read in this case if one&apos;s eyes don&apos;t need to pass over the entire message to find out whether the die message is relevant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220037</commentid>
    <comment_count>10</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-05-03 00:41:47 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #7)
&gt; 
&gt; Thanks for the comments, Daniel.
&gt; 
&gt; &gt; &gt; +#   $fileHandle: advanced so the last line read is the first line of the
&gt; &gt; &gt; +#                header.  This is a line beginning with &quot;diff --git ....&quot;
&gt; &gt; 
&gt; &gt; $fileHandle: advanced so the last line read is the first line of the
&gt; &gt;              header in the next diff. This is a line beginning with &quot;diff --git
&gt; &gt; ....&quot;.
&gt; &gt; 
&gt; &gt; Notice, I added both the phrase &quot;in the next diff&quot; at the end of the first
&gt; &gt; sentence and a period at the end of the last sentence.
&gt; 
&gt; I usually do three periods in an ellipsis in the middle of a sentence and four
&gt; when the ellipsis is at the end (the fourth doing double-duty as the
&gt; sentence-ending period).  In high school, I learned that periods and commas at
&gt; the end of a quotation are supposed to go inside the quotes (while semi-colons
&gt; and colons go outside).  However, I sometimes violate this when I&apos;m quoting an
&gt; identifier and want to emphasize that the terminating period is not part of the
&gt; identifier.

This is all a matter of taste. So, I&apos;ll leave it up to you to decide what you think reads best.

I agree that the placement of the period should be inside the quotation for non-technical English writing. For technical documentation meant for a technical audience, I would place the period outside the quote to demarcate the truncation of the string literal and the end of the sentence: This is a line beginning with &quot;diff --git ...&quot;.

Alternatively, maybe rewrite the sentence entirely.

For your reference, see Hacker Writing Style of the The New Hacker&apos;s Dictionary &lt;http://catb.org/jargon/html/writing-style.html&gt;.

&gt; 
&gt; &gt; &gt; +    if (!/$headerStartRegEx/) {
&gt; &gt; &gt; +        die(&quot;First line of Git diff does not begin with \&quot;diff --git \&quot;: \&quot;$_\&quot;&quot;);
&gt; &gt; &gt; +    }
&gt; &gt; 
&gt; &gt; We can write this last if-statement in one line (and hence eliminate the
&gt; &gt; curly-braces):
&gt; 
&gt; This may be a personal judgment call, but I think it may be easier to read in
&gt; this case if one&apos;s eyes don&apos;t need to pass over the entire message to find out
&gt; whether the die message is relevant.

Also a matter of taste. I&apos;m fine with the way you have it written now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220049</commentid>
    <comment_count>11</comment_count>
      <attachid>54911</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-05-03 03:27:15 -0700</bug_when>
    <thetext>Created attachment 54911
Proposed patch 4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220050</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-05-03 03:34:45 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; For technical documentation meant for a
&gt; technical audience, I would place the period outside the quote to demarcate the
&gt; truncation of the string literal and the end of the sentence: This is a line
&gt; beginning with &quot;diff --git ...&quot;.

Yes, I would normally agree, but this isn&apos;t a string literal (the line doesn&apos;t actually contain three dots).  In any case, I excluded the ellipsis entirely since &quot;beginning with &apos;diff ...&apos;&quot; is redundant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220112</commentid>
    <comment_count>13</comment_count>
      <attachid>54911</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-05-03 08:08:45 -0700</bug_when>
    <thetext>Comment on attachment 54911
Proposed patch 4

Looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220153</commentid>
    <comment_count>14</comment_count>
      <attachid>54911</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-03 10:09:58 -0700</bug_when>
    <thetext>Comment on attachment 54911
Proposed patch 4

Clearing flags on attachment: 54911

Committed r58681: &lt;http://trac.webkit.org/changeset/58681&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220154</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-05-03 10:10:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54872</attachid>
            <date>2010-05-02 05:32:08 -0700</date>
            <delta_ts>2010-05-02 05:51:41 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>_patch-38425-1.diff</filename>
            <type>text/plain</type>
            <size>12814</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBlNzZhYTA4Li42ZTQ5NTQxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDUt
MDEgIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYSBwYXJzZUdpdERpZmZI
ZWFkZXIoKSBzdWJyb3V0aW5lIHRvIFZDU1V0aWxzLnBtIHRoYXQKKyAgICAgICAgcGFyc2VzIGFu
eSBjaGFuZ2VzIHRvIHRoZSBleGVjdXRhYmxlIGJpdCBpbiBhIEdpdCBkaWZmLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODQyNQorCisgICAgICAg
IFRoaXMgcmV2aXNpb24gaXMgbW9yZSBwcmVwYXJhdGlvbiB0b3dhcmRzIGFkZGluZyAiZXhlY3V0
YWJsZSBiaXQiCisgICAgICAgIHN1cHBvcnQgdG8gc3ZuLWFwcGx5IGFuZCBzdm4tdW5hcHBseS4g
IE5vIGNvZGUgaXMgZ29pbmcgImxpdmUiIGluCisgICAgICAgIHRoaXMgY2hhbmdlIGV4Y2VwdCBm
b3IgdGhlIG5ldyB1bml0IHRlc3RzIGluIHRlc3Qtd2Via2l0cGVybC4KKworICAgICAgICAqIFNj
cmlwdHMvVkNTVXRpbHMucG06CisgICAgICAgICAgLSBBZGRlZCBpc0V4ZWN1dGFibGUoKSB0byBk
ZXRlcm1pbmUgd2hldGhlciBhIGZpbGUgbW9kZSBoYXMgdGhlCisgICAgICAgICAgICBleGVjdXRh
YmxlIGJpdCBzZXQgb3Igbm90LgorICAgICAgICAgIC0gQWRkZWQgcGFyc2VHaXREaWZmSGVhZGVy
KCkgdG8gcGFyc2UgdGhlIGhlYWRlciBvZiBhIEdpdCBkaWZmLgorCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNlR2l0RGlmZkhlYWRlci5wbDogQWRk
ZWQuCisgICAgICAgICAgLSBBZGRlZCB1bml0IHRlc3RzIGZvciBwYXJzZUdpdERpZmZIZWFkZXIo
KS4KKwogMjAxMC0wNS0wMSAgRGFuaWVsIEJhdGVzICA8ZGJhdGVzQHJpbS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgQ2hyaXMgSmVyZG9uZWsuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9T
Y3JpcHRzL1ZDU1V0aWxzLnBtIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9WQ1NVdGlscy5wbQppbmRl
eCBkZmYxYzRkLi5jZmI2MTAzIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL1ZDU1V0
aWxzLnBtCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvVkNTVXRpbHMucG0KQEAgLTM5Nyw2ICsz
OTcsOTcgQEAgc3ViIHN2blN0YXR1cygkKQogICAgIHJldHVybiAkc3ZuU3RhdHVzOwogfQogCisj
IFJldHVybiB3aGV0aGVyIHRoZSBnaXZlbiBmaWxlIG1vZGUgaXMgZXhlY3V0YWJsZSBmb3Igb3Ro
ZXJzIChpLmUuIGV2ZXJ5b25lKS4KKyMKKyMgQXJnczoKKyMgICAkZmlsZU1vZGU6IEEgbnVtYmVy
IG9yIHN0cmluZyByZXByZXNlbnRpbmcgYSBmaWxlIG1vZGUgaW4gb2N0YWwgbm90YXRpb24uCitz
dWIgaXNFeGVjdXRhYmxlKCQpCit7CisgICAgbXkgJGZpbGVNb2RlID0gc2hpZnQ7CisKKyAgICBy
ZXR1cm4gKCRmaWxlTW9kZSAlIDIgIT0gMCkKK30KKworIyBQYXJzZSB0aGUgbmV4dCBHaXQgZGlm
ZiBoZWFkZXIgZnJvbSB0aGUgZ2l2ZW4gZmlsZSBoYW5kbGUsIGFuZCBhZHZhbmNlCisjIHRoZSBo
YW5kbGUgc28gdGhlIGxhc3QgbGluZSByZWFkIGlzIHRoZSBsYXN0IGxpbmUgb2YgdGhlIGhlYWRl
ci4KKyMKKyMgVGhpcyBzdWJyb3V0aW5lIGRpZXMgaWYgZ2l2ZW4gbGVhZGluZyBqdW5rLgorIwor
IyBBcmdzOgorIyAgICRmaWxlSGFuZGxlOiBhZHZhbmNlZCBzbyB0aGUgbGFzdCBsaW5lIHJlYWQg
aXMgdGhlIGZpcnN0IGxpbmUgb2YgdGhlCisjICAgICAgICAgICAgICAgIGhlYWRlci4gIFRoaXMg
aXMgYSBsaW5lIGJlZ2lubmluZyB3aXRoICJkaWZmIC0tZ2l0IC4uLi4iCisjICAgJGxpbmU6IHRo
ZSBsaW5lIGxhc3QgcmVhZCBmcm9tICRmaWxlSGFuZGxlCisjCisjIFJldHVybnMgKCRoZWFkZXJI
YXNoUmVmLCAkbGFzdFJlYWRMaW5lKToKKyMgICAkaGVhZGVySGFzaFJlZjogYSBoYXNoIHJlZmVy
ZW5jZSByZXByZXNlbnRpbmcgYSBkaWZmIGhlYWRlciwgYXMgZm9sbG93cy0tCisjICAgICBleGVj
dXRhYmxlQml0RGVsdGE6IGFuIGludGVnZXIgLTEsIDAsIG9yIDEsIGRlcGVuZGluZyBvbiB3aGV0
aGVyIHRoZQorIyAgICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRhYmxlIGJpdCB3YXMgYWRk
ZWQsIHJlbWFpbmVkIHRoZSBzYW1lLCBvciB3YXMKKyMgICAgICAgICAgICAgICAgICAgICAgICAg
cmVtb3ZlZC4gIEZvciBuZXcgYW5kIGRlbGV0ZWQgZmlsZXMsIHRoZSB2YWx1ZSBpcyAwCisjICAg
ICAgICAgICAgICAgICAgICAgICAgIG9ubHkgaWYgdGhlIG5ldyBvciBkZWxldGVkIGZpbGUgaXMg
bm90IGV4ZWN1dGFibGUuCisjICAgICBpbmRleFBhdGg6IHRoZSBwYXRoIGluIHRoZSAiSW5kZXg6
IiBsaW5lLgorIyAgICAgc3ZuQ29udmVydGVkVGV4dDogdGhlIGhlYWRlciB0ZXh0IHdpdGggc29t
ZSBsaW5lcyBjb252ZXJ0ZWQgdG8gU1ZOCisjICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQu
ICBHaXQtc3BlY2lmaWMgbGluZXMgYXJlIHByZXNlcnZlZC4KKyMgICAkbGFzdFJlYWRMaW5lOiB0
aGUgbGluZSBsYXN0IHJlYWQgZnJvbSAkZmlsZUhhbmRsZS4gVGhpcyBpcyB0aGUgZmlyc3QKKyMg
ICAgICAgICAgICAgICAgICBsaW5lIGFmdGVyIHRoZSBoZWFkZXIgZW5kaW5nLgorc3ViIHBhcnNl
R2l0RGlmZkhlYWRlcigkJCkKK3sKKyAgICBteSAoJGZpbGVIYW5kbGUsICRsaW5lKSA9IEBfOwor
CisgICAgJF8gPSAkbGluZTsKKworICAgIG15ICRoZWFkZXJTdGFydFJlZ0V4ID0gcXIvXmRpZmYg
LS1naXQgLzsKKworICAgIGlmICghLyRoZWFkZXJTdGFydFJlZ0V4LykgeworICAgICAgICBkaWUo
IkZpcnN0IGxpbmUgb2YgR2l0IGRpZmYgZG9lcyBub3QgYmVnaW4gd2l0aCBcImRpZmYgLS1naXQg
XCI6IFwiJF9cIiIpOworICAgIH0KKworICAgIG15ICRmb3VuZEhlYWRlckVuZGluZzsKKyAgICBt
eSAkaW5kZXhQYXRoOworICAgIG15ICRuZXdFeGVjdXRhYmxlQml0ID0gMDsKKyAgICBteSAkb2xk
RXhlY3V0YWJsZUJpdCA9IDA7CisgICAgbXkgJHN2bkNvbnZlcnRlZFRleHQ7CisgICAgd2hpbGUg
KDEpIHsKKyAgICAgICAgIyBUZW1wb3JhcmlseSBzdHJpcCBvZmYgYW55IGVuZC1vZi1saW5lIGNo
YXJhY3RlcnMgdG8gc2ltcGxpZnkKKyAgICAgICAgIyByZWdleCBtYXRjaGluZyBiZWxvdy4KKyAg
ICAgICAgcy8oW1xuXHJdKykkLy87CisgICAgICAgIG15ICRlb2wgPSAkMTsKKworICAgICAgICBp
ZiAobSNeZGlmZiAtLWdpdCBcdy8oLispIFx3LyhbXlxyXG5dKykjKSB7CisgICAgICAgICAgICAk
aW5kZXhQYXRoID0gJDE7CisgICAgICAgICAgICAkXyA9ICJJbmRleDogJGluZGV4UGF0aCI7ICMg
Q29udmVydCB0byBTVk4gZm9ybWF0LgorICAgICAgICB9IGVsc2lmICgvXihkZWxldGVkIGZpbGV8
b2xkKSBtb2RlIChbMC05XXs2fSkvKSB7CisgICAgICAgICAgICAkb2xkRXhlY3V0YWJsZUJpdCA9
IDEgPyBpc0V4ZWN1dGFibGUoJDIpIDogMDsKKyAgICAgICAgfSBlbHNpZiAoL15uZXcgKGZpbGUp
PyBtb2RlIChbMC05XXs2fSkvKSB7CisgICAgICAgICAgICAkbmV3RXhlY3V0YWJsZUJpdCA9IDEg
PyBpc0V4ZWN1dGFibGUoJDIpIDogMDs7CisgICAgICAgIH0gZWxzaWYgKC9eLS0tIFxTKy8pIHsK
KyAgICAgICAgICAgICRfID0gIi0tLSAkaW5kZXhQYXRoIjsgIyBDb252ZXJ0IHRvIFNWTiBmb3Jt
YXQuCisgICAgICAgIH0gZWxzaWYgKC9eXCtcK1wrIFxTKy8pIHsKKyAgICAgICAgICAgICRfID0g
IisrKyAkaW5kZXhQYXRoIjsgIyBDb252ZXJ0IHRvIFNWTiBmb3JtYXQuCisgICAgICAgICAgICAk
Zm91bmRIZWFkZXJFbmRpbmcgPSAxOworICAgICAgICB9IGVsc2lmICgvXkdJVCBiaW5hcnkgcGF0
Y2gkLyApIHsKKyAgICAgICAgICAgICRmb3VuZEhlYWRlckVuZGluZyA9IDE7CisgICAgICAgIH0K
KworICAgICAgICAkc3ZuQ29udmVydGVkVGV4dCAuPSAiJF8kZW9sIjsgIyBBbHNvIHJlc3RvcmUg
ZW5kLW9mLWxpbmUgY2hhcmFjdGVycy4KKworICAgICAgICAkXyA9IDwkZmlsZUhhbmRsZT47ICMg
Tm90IGRlZmluZWQgaWYgZW5kLW9mLWZpbGUgcmVhY2hlZC4KKworICAgICAgICBpZiAoIWRlZmlu
ZWQoJF8pIHx8IC8kaGVhZGVyU3RhcnRSZWdFeC8gfHwgJGZvdW5kSGVhZGVyRW5kaW5nKSB7Cisg
ICAgICAgICAgICBsYXN0OworICAgICAgICB9CisgICAgfQorCisgICAgbXkgJGV4ZWN1dGFibGVC
aXREZWx0YSA9ICRuZXdFeGVjdXRhYmxlQml0IC0gJG9sZEV4ZWN1dGFibGVCaXQ7CisKKyAgICBt
eSAlaGVhZGVyOworCisgICAgJGhlYWRlcntleGVjdXRhYmxlQml0RGVsdGF9ID0gJGV4ZWN1dGFi
bGVCaXREZWx0YTsKKyAgICAkaGVhZGVye2luZGV4UGF0aH0gPSAkaW5kZXhQYXRoOworICAgICRo
ZWFkZXJ7c3ZuQ29udmVydGVkVGV4dH0gPSAkc3ZuQ29udmVydGVkVGV4dDsKKworICAgIHJldHVy
biAoXCVoZWFkZXIsICRfKTsKK30KKwogIyBDb252ZXJ0IHNvbWUgbGluZXMgb2YgYSBnaXQtZm9y
bWF0dGVkIHBhdGNoIHRvIFNWTiBmb3JtYXQsIHdoaWxlCiAjIHByZXNlcnZpbmcgYW55IGVuZC1v
Zi1saW5lIGNoYXJhY3RlcnMuCiAjCkBAIC00NTIsNiArNTQzLDggQEAgc3ViIHBhcnNlRGlmZkhl
YWRlcigkJCkKIAogICAgIG15ICRmaWx0ZXI7CiAgICAgaWYgKCRsaW5lID1+IG0jXmRpZmYgLS1n
aXQgIykgeworICAgICAgICAjIEZJWE1FOiBEZWxldGUgdGhlIGdpdGRpZmYyc3ZuZGlmZigpIHN1
YnJvdXRpbmUgYW5kIGNhbGwKKyAgICAgICAgIyAgICAgICAgcGFyc2VHaXREaWZmSGVhZGVyKCkg
aW5zdGVhZC4KICAgICAgICAgJGZpbHRlciA9IFwmZ2l0ZGlmZjJzdm5kaWZmOwogICAgIH0KICAg
ICAkbGluZSA9ICYkZmlsdGVyKCRsaW5lKSBpZiAkZmlsdGVyOwpAQCAtNTE2LDYgKzYwOSwxMiBA
QCBzdWIgcGFyc2VEaWZmSGVhZGVyKCQkKQogICAgIHJldHVybiAoXCVoZWFkZXIsICRsYXN0UmVh
ZExpbmUpOwogfQogCisjIEZJWE1FOiBUaGUgJWRpZmZIYXNoICJvYmplY3QiIHNob3VsZCBub3Qg
aGF2ZSBhbiBzdm5Db252ZXJ0ZWRUZXh0IHByb3BlcnR5LgorIyAgICAgICAgSW5zdGVhZCwgdGhl
IGhhc2ggb2JqZWN0IHNob3VsZCBzdG9yZSBpdHMgaW5mb3JtYXRpb24gaW4gYQorIyAgICAgICAg
c3RydWN0dXJlZCB3YXkgYXMgcHJvcGVydGllcy4gIFRoaXMgc2hvdWxkIGJlIGRvbmUgaW4gYSB3
YXkgc28KKyMgICAgICAgIHRoYXQsIGlmIG5lY2Vzc2FyeSwgdGhlIHRleHQgb2YgYW4gU1ZOIG9y
IEdpdCBwYXRjaCBjYW4gYmUKKyMgICAgICAgIHJlY29uc3RydWN0ZWQgZnJvbSB0aGUgaW5mb3Jt
YXRpb24gaW4gdGhvc2UgaGFzaCBwcm9wZXJ0aWVzLgorIwogIyBBICVkaWZmSGFzaCBpcyBhIGhh
c2ggcmVwcmVzZW50aW5nIGEgc291cmNlIGNvbnRyb2wgZGlmZiBvZiBhIHNpbmdsZQogIyBmaWxl
IG9wZXJhdGlvbiAoZS5nLiBhIGZpbGUgbW9kaWZpY2F0aW9uLCBjb3B5LCBvciBkZWxldGUpLgog
IwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3Vu
aXR0ZXN0L3BhcnNlR2l0RGlmZkhlYWRlci5wbCBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cGVybC9WQ1NVdGlsc191bml0dGVzdC9wYXJzZUdpdERpZmZIZWFkZXIucGwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGM0ODEwNAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9WQ1NVdGlsc191bml0dGVzdC9wYXJzZUdpdERpZmZI
ZWFkZXIucGwKQEAgLTAsMCArMSwyOTYgQEAKKyMhL3Vzci9iaW4vcGVybCAtdworIworIyBDb3B5
cmlnaHQgKEMpIDIwMTAgQ2hyaXMgSmVyZG9uZWsgKGNqZXJkb25la0B3ZWJraXQub3JnKQorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAor
IyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjIFVuaXQgdGVzdHMgb2Yg
cGFyc2VHaXREaWZmSGVhZGVyKCkuCisKK3VzZSBzdHJpY3Q7Cit1c2Ugd2FybmluZ3M7CisKK3Vz
ZSBUZXN0OjpNb3JlOwordXNlIFZDU1V0aWxzOworCisjIFRoZSBhcnJheSBvZiB0ZXN0IGNhc2Vz
LgorbXkgQHRlc3RDYXNlSGFzaFJlZnMgPSAoCit7ICAgIyBOZXcgdGVzdAorICAgIGRpZmZOYW1l
ID0+ICJNb2RpZmllZCBmaWxlIiwKKyAgICBpbnB1dFRleHQgPT4gPDwnRU5EJywKK2RpZmYgLS1n
aXQgYS9mb28uaCBiL2Zvby5oCitpbmRleCBmNWQ1ZTc0Li4zYjZhYTkyIDEwMDY0NAorLS0tIGEv
Zm9vLmgKKysrKyBiL2Zvby5oCitAQCAtMSArMSBAQAorLWZpbGUgY29udGVudHMKKytuZXcgZmls
ZSBjb250ZW50cworRU5ECisgICAgZXhwZWN0ZWRSZXR1cm4gPT4gWworeworICAgIHN2bkNvbnZl
cnRlZFRleHQgPT4gPDwnRU5EJywKK0luZGV4OiBmb28uaAoraW5kZXggZjVkNWU3NC4uM2I2YWE5
MiAxMDA2NDQKKy0tLSBmb28uaAorKysrIGZvby5oCitFTkQKKyAgICBleGVjdXRhYmxlQml0RGVs
dGEgPT4gMCwKKyAgICBpbmRleFBhdGggPT4gImZvby5oIiwKK30sCisiQEAgLTEgKzEgQEBcbiJd
LAorICAgIGV4cGVjdGVkTmV4dExpbmUgPT4gIi1maWxlIGNvbnRlbnRzXG4iLAorfSwKK3sgICAj
IE5ldyB0ZXN0CisgICAgZGlmZk5hbWUgPT4gIk5ldyBmaWxlIiwKKyAgICBpbnB1dFRleHQgPT4g
PDwnRU5EJywKK2RpZmYgLS1naXQgYS9mb28uaCBiL2Zvby5oCituZXcgZmlsZSBtb2RlIDEwMDY0
NAoraW5kZXggMDAwMDAwMC4uM2M5ZjExNAorLS0tIC9kZXYvbnVsbAorKysrIGIvZm9vLmgKK0BA
IC0wLDAgKzEsMzQgQEAKKys8aHRtbD4KK0VORAorICAgIGV4cGVjdGVkUmV0dXJuID0+IFsKK3sK
KyAgICBzdm5Db252ZXJ0ZWRUZXh0ID0+IDw8J0VORCcsCitJbmRleDogZm9vLmgKK25ldyBmaWxl
IG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi4zYzlmMTE0CistLS0gZm9vLmgKKysrKyBmb28u
aAorRU5ECisgICAgZXhlY3V0YWJsZUJpdERlbHRhID0+IDAsCisgICAgaW5kZXhQYXRoID0+ICJm
b28uaCIsCit9LAorIkBAIC0wLDAgKzEsMzQgQEBcbiJdLAorICAgIGV4cGVjdGVkTmV4dExpbmUg
PT4gIis8aHRtbD5cbiIsCit9LAorIyMjIworIyAgICBCaW5hcnkgZmlsZSB0ZXN0IGNhc2VzCisj
IworeworICAgICMgTmV3IHRlc3QgY2FzZQorICAgIGRpZmZOYW1lID0+ICJOZXcgYmluYXJ5IGZp
bGUiLAorICAgIGlucHV0VGV4dCA9PiA8PCdFTkQnLAorZGlmZiAtLWdpdCBhL2Zvby5naWYgYi9m
b28uZ2lmCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNjRhOTUzMmU3Nzk0ZmNkNzkxZjZmMTIxNTc0MDZkOTA2MDE1
MTY5MAorR0lUIGJpbmFyeSBwYXRjaAorbGl0ZXJhbCA3CitPY21ZZXgmcmVEYTtzTzgqRjlMKUIK
KworbGl0ZXJhbCAwCitIY21WP2QwMDAwMQorCitFTkQKKyAgICBleHBlY3RlZFJldHVybiA9PiBb
Cit7CisgICAgc3ZuQ29udmVydGVkVGV4dCA9PiA8PCdFTkQnLAorSW5kZXg6IGZvby5naWYKK25l
dyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42NGE5NTMyZTc3OTRmY2Q3OTFmNmYxMjE1NzQwNmQ5MDYwMTUxNjkwCitHSVQg
YmluYXJ5IHBhdGNoCitFTkQKKyAgICBleGVjdXRhYmxlQml0RGVsdGEgPT4gMCwKKyAgICBpbmRl
eFBhdGggPT4gImZvby5naWYiLAorfSwKKyJsaXRlcmFsIDdcbiJdLAorICAgIGV4cGVjdGVkTmV4
dExpbmUgPT4gIk9jbVlleCZyZURhO3NPOCpGOUwpQlxuIiwKK30sCit7CisgICAgIyBOZXcgdGVz
dCBjYXNlCisgICAgZGlmZk5hbWUgPT4gIkRlbGV0ZWQgYmluYXJ5IGZpbGUiLAorICAgIGlucHV0
VGV4dCA9PiA8PCdFTkQnLAorZGlmZiAtLWdpdCBhL2Zvby5naWYgYi9mb28uZ2lmCitkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDMyM2ZhZTAuLjAwMDAwMDAKK0dJVCBiaW5hcnkgcGF0
Y2gKK2xpdGVyYWwgMAorSGNtVj9kMDAwMDEKKworbGl0ZXJhbCA3CitPY21ZZXgmcmVEYTtzTzgq
RjlMKUIKKworRU5ECisgICAgZXhwZWN0ZWRSZXR1cm4gPT4gWworeworICAgIHN2bkNvbnZlcnRl
ZFRleHQgPT4gPDwnRU5EJywKK0luZGV4OiBmb28uZ2lmCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKK2luZGV4IDMyM2ZhZTAuLjAwMDAwMDAKK0dJVCBiaW5hcnkgcGF0Y2gKK0VORAorICAgIGV4
ZWN1dGFibGVCaXREZWx0YSA9PiAwLAorICAgIGluZGV4UGF0aCA9PiAiZm9vLmdpZiIsCit9LAor
ImxpdGVyYWwgMFxuIl0sCisgICAgZXhwZWN0ZWROZXh0TGluZSA9PiAiSGNtVj9kMDAwMDFcbiIs
Cit9LAorIyMjIworIyAgICBFeGVjdXRhYmxlIGJpdCB0ZXN0IGNhc2VzCisjIworeworICAgICMg
TmV3IHRlc3QgY2FzZQorICAgIGRpZmZOYW1lID0+ICJNb2RpZmllZCBleGVjdXRhYmxlIGZpbGUi
LAorICAgIGlucHV0VGV4dCA9PiA8PCdFTkQnLAorZGlmZiAtLWdpdCBhL2ZvbyBiL2ZvbworaW5k
ZXggZDAzZTI0Mi4uNDM1YWQzYSAxMDA3NTUKKy0tLSBhL2ZvbworKysrIGIvZm9vCitAQCAtMSAr
MSBAQAorLWZpbGUgY29udGVudHMKKytuZXcgZmlsZSBjb250ZW50cworCitFTkQKKyAgICBleHBl
Y3RlZFJldHVybiA9PiBbCit7CisgICAgc3ZuQ29udmVydGVkVGV4dCA9PiA8PCdFTkQnLAorSW5k
ZXg6IGZvbworaW5kZXggZDAzZTI0Mi4uNDM1YWQzYSAxMDA3NTUKKy0tLSBmb28KKysrKyBmb28K
K0VORAorICAgIGV4ZWN1dGFibGVCaXREZWx0YSA9PiAwLAorICAgIGluZGV4UGF0aCA9PiAiZm9v
IiwKK30sCisiQEAgLTEgKzEgQEBcbiJdLAorICAgIGV4cGVjdGVkTmV4dExpbmUgPT4gIi1maWxl
IGNvbnRlbnRzXG4iLAorfSwKK3sKKyAgICAjIE5ldyB0ZXN0IGNhc2UKKyAgICBkaWZmTmFtZSA9
PiAiTWFraW5nIGZpbGUgZXhlY3V0YWJsZSAobGFzdCBkaWZmKSIsCisgICAgaW5wdXRUZXh0ID0+
IDw8J0VORCcsCitkaWZmIC0tZ2l0IGEvZm9vLmV4ZSBiL2Zvby5leGUKK29sZCBtb2RlIDEwMDY0
NAorbmV3IG1vZGUgMTAwNzU1CitFTkQKKyAgICBleHBlY3RlZFJldHVybiA9PiBbCit7CisgICAg
c3ZuQ29udmVydGVkVGV4dCA9PiA8PCdFTkQnLAorSW5kZXg6IGZvby5leGUKK29sZCBtb2RlIDEw
MDY0NAorbmV3IG1vZGUgMTAwNzU1CitFTkQKKyAgICBleGVjdXRhYmxlQml0RGVsdGEgPT4gMCwK
KyAgICBpbmRleFBhdGggPT4gImZvby5leGUiLAorfSwKK3VuZGVmXSwKKyAgICBleHBlY3RlZE5l
eHRMaW5lID0+IHVuZGVmLAorfSwKK3sKKyAgICAjIE5ldyB0ZXN0IGNhc2UKKyAgICBkaWZmTmFt
ZSA9PiAiTWFraW5nIGZpbGUgZXhlY3V0YWJsZSAobm90IGxhc3QgZGlmZikiLAorICAgIGlucHV0
VGV4dCA9PiA8PCdFTkQnLAorZGlmZiAtLWdpdCBhL2Zvby5leGUgYi9mb28uZXhlCitvbGQgbW9k
ZSAxMDA2NDQKK25ldyBtb2RlIDEwMDc1NQorZGlmZiAtLWdpdCBhL2Fub3RoZXJfZmlsZS50eHQg
Yi9hbm90aGVyX2ZpbGUudHh0CitpbmRleCBkMDNlMjQyLi40MzVhZDNhIDEwMDc1NQorRU5ECisg
ICAgZXhwZWN0ZWRSZXR1cm4gPT4gWworeworICAgIHN2bkNvbnZlcnRlZFRleHQgPT4gPDwnRU5E
JywKK0luZGV4OiBmb28uZXhlCitvbGQgbW9kZSAxMDA2NDQKK25ldyBtb2RlIDEwMDc1NQorRU5E
CisgICAgZXhlY3V0YWJsZUJpdERlbHRhID0+IDAsCisgICAgaW5kZXhQYXRoID0+ICJmb28uZXhl
IiwKK30sCisiZGlmZiAtLWdpdCBhL2Fub3RoZXJfZmlsZS50eHQgYi9hbm90aGVyX2ZpbGUudHh0
XG4iXSwKKyAgICBleHBlY3RlZE5leHRMaW5lID0+ICJpbmRleCBkMDNlMjQyLi40MzVhZDNhIDEw
MDc1NVxuIiwKK30sCit7CisgICAgIyBOZXcgdGVzdCBjYXNlCisgICAgZGlmZk5hbWUgPT4gIk5l
dyBleGVjdXRhYmxlIGZpbGUiLAorICAgIGlucHV0VGV4dCA9PiA8PCdFTkQnLAorZGlmZiAtLWdp
dCBhL2ZvbyBiL2ZvbworbmV3IGZpbGUgbW9kZSAxMDA3NTUKK2luZGV4IDAwMDAwMDAuLmQwM2Uy
NDIKKy0tLSAvZGV2L251bGwKKysrKyBiL2ZvbworQEAgLTAsMCArMSBAQAorK2ZpbGUgY29udGVu
dHMKKworRU5ECisgICAgZXhwZWN0ZWRSZXR1cm4gPT4gWworeworICAgIHN2bkNvbnZlcnRlZFRl
eHQgPT4gPDwnRU5EJywKK0luZGV4OiBmb28KK25ldyBmaWxlIG1vZGUgMTAwNzU1CitpbmRleCAw
MDAwMDAwLi5kMDNlMjQyCistLS0gZm9vCisrKysgZm9vCitFTkQKKyAgICBleGVjdXRhYmxlQml0
RGVsdGEgPT4gMSwKKyAgICBpbmRleFBhdGggPT4gImZvbyIsCit9LAorIkBAIC0wLDAgKzEgQEBc
biJdLAorICAgIGV4cGVjdGVkTmV4dExpbmUgPT4gIitmaWxlIGNvbnRlbnRzXG4iLAorfSwKK3sK
KyAgICAjIE5ldyB0ZXN0IGNhc2UKKyAgICBkaWZmTmFtZSA9PiAiRGVsZXRlZCBleGVjdXRhYmxl
IGZpbGUiLAorICAgIGlucHV0VGV4dCA9PiA8PCdFTkQnLAorZGlmZiAtLWdpdCBhL2ZvbyBiL2Zv
bworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CitpbmRleCBkMDNlMjQyLi4wMDAwMDAwCistLS0g
YS9mb28KKysrKyAvZGV2L251bGwKK0BAIC0xICswLDAgQEAKKy1maWxlIGNvbnRlbnRzCisKK0VO
RAorICAgIGV4cGVjdGVkUmV0dXJuID0+IFsKK3sKKyAgICBzdm5Db252ZXJ0ZWRUZXh0ID0+IDw8
J0VORCcsCitJbmRleDogZm9vCitkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKK2luZGV4IGQwM2Uy
NDIuLjAwMDAwMDAKKy0tLSBmb28KKysrKyBmb28KK0VORAorICAgIGV4ZWN1dGFibGVCaXREZWx0
YSA9PiAtMSwKKyAgICBpbmRleFBhdGggPT4gImZvbyIsCit9LAorIkBAIC0xICswLDAgQEBcbiJd
LAorICAgIGV4cGVjdGVkTmV4dExpbmUgPT4gIi1maWxlIGNvbnRlbnRzXG4iLAorfSwKKyk7CisK
K215ICR0ZXN0Q2FzZXNDb3VudCA9IEB0ZXN0Q2FzZUhhc2hSZWZzOworcGxhbih0ZXN0cyA9PiAy
ICogJHRlc3RDYXNlc0NvdW50KTsgIyBUb3RhbCBudW1iZXIgb2YgYXNzZXJ0aW9ucy4KKworZm9y
ZWFjaCBteSAkdGVzdENhc2UgKEB0ZXN0Q2FzZUhhc2hSZWZzKSB7CisgICAgbXkgJHRlc3ROYW1l
U3RhcnQgPSAicGFyc2VHaXREaWZmSGVhZGVyKCk6ICR0ZXN0Q2FzZS0+e2RpZmZOYW1lfTogY29t
cGFyaW5nIjsKKworICAgIG15ICRmaWxlSGFuZGxlOworICAgIG9wZW4oJGZpbGVIYW5kbGUsICI8
IiwgXCR0ZXN0Q2FzZS0+e2lucHV0VGV4dH0pOworICAgIG15ICRsaW5lID0gPCRmaWxlSGFuZGxl
PjsKKworICAgIG15IEBnb3QgPSBWQ1NVdGlsczo6cGFyc2VHaXREaWZmSGVhZGVyKCRmaWxlSGFu
ZGxlLCAkbGluZSk7CisgICAgbXkgJGV4cGVjdGVkUmV0dXJuID0gJHRlc3RDYXNlLT57ZXhwZWN0
ZWRSZXR1cm59OworCisgICAgaXNfZGVlcGx5KFxAZ290LCAkZXhwZWN0ZWRSZXR1cm4sICIkdGVz
dE5hbWVTdGFydCByZXR1cm4gdmFsdWUuIik7CisKKyAgICBteSAkZ290TmV4dExpbmUgPSA8JGZp
bGVIYW5kbGU+OworICAgIGlzKCRnb3ROZXh0TGluZSwgJHRlc3RDYXNlLT57ZXhwZWN0ZWROZXh0
TGluZX0sICAiJHRlc3ROYW1lU3RhcnQgbmV4dCByZWFkIGxpbmUuIik7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54873</attachid>
            <date>2010-05-02 05:51:41 -0700</date>
            <delta_ts>2010-05-02 07:10:25 -0700</delta_ts>
            <desc>Proposed patch 2</desc>
            <filename>_patch-38425-2.diff</filename>
            <type>text/plain</type>
            <size>13273</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBlNzZhYTA4Li42ZTQ5NTQxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDUt
MDEgIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYSBwYXJzZUdpdERpZmZI
ZWFkZXIoKSBzdWJyb3V0aW5lIHRvIFZDU1V0aWxzLnBtIHRoYXQKKyAgICAgICAgcGFyc2VzIGFu
eSBjaGFuZ2VzIHRvIHRoZSBleGVjdXRhYmxlIGJpdCBpbiBhIEdpdCBkaWZmLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODQyNQorCisgICAgICAg
IFRoaXMgcmV2aXNpb24gaXMgbW9yZSBwcmVwYXJhdGlvbiB0b3dhcmRzIGFkZGluZyAiZXhlY3V0
YWJsZSBiaXQiCisgICAgICAgIHN1cHBvcnQgdG8gc3ZuLWFwcGx5IGFuZCBzdm4tdW5hcHBseS4g
IE5vIGNvZGUgaXMgZ29pbmcgImxpdmUiIGluCisgICAgICAgIHRoaXMgY2hhbmdlIGV4Y2VwdCBm
b3IgdGhlIG5ldyB1bml0IHRlc3RzIGluIHRlc3Qtd2Via2l0cGVybC4KKworICAgICAgICAqIFNj
cmlwdHMvVkNTVXRpbHMucG06CisgICAgICAgICAgLSBBZGRlZCBpc0V4ZWN1dGFibGUoKSB0byBk
ZXRlcm1pbmUgd2hldGhlciBhIGZpbGUgbW9kZSBoYXMgdGhlCisgICAgICAgICAgICBleGVjdXRh
YmxlIGJpdCBzZXQgb3Igbm90LgorICAgICAgICAgIC0gQWRkZWQgcGFyc2VHaXREaWZmSGVhZGVy
KCkgdG8gcGFyc2UgdGhlIGhlYWRlciBvZiBhIEdpdCBkaWZmLgorCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNlR2l0RGlmZkhlYWRlci5wbDogQWRk
ZWQuCisgICAgICAgICAgLSBBZGRlZCB1bml0IHRlc3RzIGZvciBwYXJzZUdpdERpZmZIZWFkZXIo
KS4KKwogMjAxMC0wNS0wMSAgRGFuaWVsIEJhdGVzICA8ZGJhdGVzQHJpbS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgQ2hyaXMgSmVyZG9uZWsuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9T
Y3JpcHRzL1ZDU1V0aWxzLnBtIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9WQ1NVdGlscy5wbQppbmRl
eCBkZmYxYzRkLi4zNzhkOGUwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL1ZDU1V0
aWxzLnBtCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvVkNTVXRpbHMucG0KQEAgLTM5Nyw2ICsz
OTcsOTYgQEAgc3ViIHN2blN0YXR1cygkKQogICAgIHJldHVybiAkc3ZuU3RhdHVzOwogfQogCisj
IFJldHVybiB3aGV0aGVyIHRoZSBnaXZlbiBmaWxlIG1vZGUgaXMgZXhlY3V0YWJsZSBmb3Igb3Ro
ZXJzIChpLmUuIGV2ZXJ5b25lKS4KKyMKKyMgQXJnczoKKyMgICAkZmlsZU1vZGU6IEEgbnVtYmVy
IG9yIHN0cmluZyByZXByZXNlbnRpbmcgYSBmaWxlIG1vZGUgaW4gb2N0YWwgbm90YXRpb24uCitz
dWIgaXNFeGVjdXRhYmxlKCQpCit7CisgICAgbXkgJGZpbGVNb2RlID0gc2hpZnQ7CisKKyAgICBy
ZXR1cm4gKCRmaWxlTW9kZSAlIDIgIT0gMCkKK30KKworIyBQYXJzZSB0aGUgbmV4dCBHaXQgZGlm
ZiBoZWFkZXIgZnJvbSB0aGUgZ2l2ZW4gZmlsZSBoYW5kbGUsIGFuZCBhZHZhbmNlCisjIHRoZSBo
YW5kbGUgc28gdGhlIGxhc3QgbGluZSByZWFkIGlzIHRoZSBmaXJzdCBsaW5lIGFmdGVyIHRoZSBo
ZWFkZXIuCisjCisjIFRoaXMgc3Vicm91dGluZSBkaWVzIGlmIGdpdmVuIGxlYWRpbmcganVuay4K
KyMKKyMgQXJnczoKKyMgICAkZmlsZUhhbmRsZTogYWR2YW5jZWQgc28gdGhlIGxhc3QgbGluZSBy
ZWFkIGlzIHRoZSBmaXJzdCBsaW5lIG9mIHRoZQorIyAgICAgICAgICAgICAgICBoZWFkZXIuICBU
aGlzIGlzIGEgbGluZSBiZWdpbm5pbmcgd2l0aCAiZGlmZiAtLWdpdCAuLi4uIgorIyAgICRsaW5l
OiB0aGUgbGluZSBsYXN0IHJlYWQgZnJvbSAkZmlsZUhhbmRsZQorIworIyBSZXR1cm5zICgkaGVh
ZGVySGFzaFJlZiwgJGxhc3RSZWFkTGluZSk6CisjICAgJGhlYWRlckhhc2hSZWY6IGEgaGFzaCBy
ZWZlcmVuY2UgcmVwcmVzZW50aW5nIGEgZGlmZiBoZWFkZXIsIGFzIGZvbGxvd3MtLQorIyAgICAg
ZXhlY3V0YWJsZUJpdERlbHRhOiBhbiBpbnRlZ2VyIC0xLCAwLCBvciAxLCBkZXBlbmRpbmcgb24g
d2hldGhlciB0aGUKKyMgICAgICAgICAgICAgICAgICAgICAgICAgZXhlY3V0YWJsZSBiaXQgd2Fz
IGFkZGVkLCByZW1haW5lZCB0aGUgc2FtZSwgb3Igd2FzCisjICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlbW92ZWQuICBGb3IgbmV3IGFuZCBkZWxldGVkIGZpbGVzLCB0aGUgdmFsdWUgaXMgMAor
IyAgICAgICAgICAgICAgICAgICAgICAgICBvbmx5IGlmIHRoZSBuZXcgb3IgZGVsZXRlZCBmaWxl
IGlzIG5vdCBleGVjdXRhYmxlLgorIyAgICAgaW5kZXhQYXRoOiB0aGUgcGF0aCBpbiB0aGUgIklu
ZGV4OiIgbGluZS4KKyMgICAgIHN2bkNvbnZlcnRlZFRleHQ6IHRoZSBoZWFkZXIgdGV4dCB3aXRo
IHNvbWUgbGluZXMgY29udmVydGVkIHRvIFNWTgorIyAgICAgICAgICAgICAgICAgICAgICAgZm9y
bWF0LiAgR2l0LXNwZWNpZmljIGxpbmVzIGFyZSBwcmVzZXJ2ZWQuCisjICAgJGxhc3RSZWFkTGlu
ZTogdGhlIGxpbmUgbGFzdCByZWFkIGZyb20gJGZpbGVIYW5kbGUuCitzdWIgcGFyc2VHaXREaWZm
SGVhZGVyKCQkKQoreworICAgIG15ICgkZmlsZUhhbmRsZSwgJGxpbmUpID0gQF87CisKKyAgICAk
XyA9ICRsaW5lOworCisgICAgbXkgJGhlYWRlclN0YXJ0UmVnRXggPSBxci9eZGlmZiAtLWdpdCAv
OworCisgICAgaWYgKCEvJGhlYWRlclN0YXJ0UmVnRXgvKSB7CisgICAgICAgIGRpZSgiRmlyc3Qg
bGluZSBvZiBHaXQgZGlmZiBkb2VzIG5vdCBiZWdpbiB3aXRoIFwiZGlmZiAtLWdpdCBcIjogXCIk
X1wiIik7CisgICAgfQorCisgICAgbXkgJGZvdW5kSGVhZGVyRW5kaW5nOworICAgIG15ICRpbmRl
eFBhdGg7CisgICAgbXkgJG5ld0V4ZWN1dGFibGVCaXQgPSAwOworICAgIG15ICRvbGRFeGVjdXRh
YmxlQml0ID0gMDsKKyAgICBteSAkc3ZuQ29udmVydGVkVGV4dDsKKyAgICB3aGlsZSAoMSkgewor
ICAgICAgICAjIFRlbXBvcmFyaWx5IHN0cmlwIG9mZiBhbnkgZW5kLW9mLWxpbmUgY2hhcmFjdGVy
cyB0byBzaW1wbGlmeQorICAgICAgICAjIHJlZ2V4IG1hdGNoaW5nIGJlbG93LgorICAgICAgICBz
LyhbXG5ccl0rKSQvLzsKKyAgICAgICAgbXkgJGVvbCA9ICQxOworCisgICAgICAgIGlmIChtI15k
aWZmIC0tZ2l0IFx3LyguKykgXHcvKFteXHJcbl0rKSMpIHsKKyAgICAgICAgICAgICRpbmRleFBh
dGggPSAkMTsKKyAgICAgICAgICAgICRfID0gIkluZGV4OiAkaW5kZXhQYXRoIjsgIyBDb252ZXJ0
IHRvIFNWTiBmb3JtYXQuCisgICAgICAgIH0gZWxzaWYgKC9eKGRlbGV0ZWQgZmlsZXxvbGQpIG1v
ZGUgKFswLTldezZ9KS8pIHsKKyAgICAgICAgICAgICRvbGRFeGVjdXRhYmxlQml0ID0gMSA/IGlz
RXhlY3V0YWJsZSgkMikgOiAwOworICAgICAgICB9IGVsc2lmICgvXm5ldyAoZmlsZSk/IG1vZGUg
KFswLTldezZ9KS8pIHsKKyAgICAgICAgICAgICRuZXdFeGVjdXRhYmxlQml0ID0gMSA/IGlzRXhl
Y3V0YWJsZSgkMikgOiAwOzsKKyAgICAgICAgfSBlbHNpZiAoL14tLS0gXFMrLykgeworICAgICAg
ICAgICAgJF8gPSAiLS0tICRpbmRleFBhdGgiOyAjIENvbnZlcnQgdG8gU1ZOIGZvcm1hdC4KKyAg
ICAgICAgfSBlbHNpZiAoL15cK1wrXCsgXFMrLykgeworICAgICAgICAgICAgJF8gPSAiKysrICRp
bmRleFBhdGgiOyAjIENvbnZlcnQgdG8gU1ZOIGZvcm1hdC4KKyAgICAgICAgICAgICRmb3VuZEhl
YWRlckVuZGluZyA9IDE7CisgICAgICAgIH0gZWxzaWYgKC9eR0lUIGJpbmFyeSBwYXRjaCQvICkg
eworICAgICAgICAgICAgJGZvdW5kSGVhZGVyRW5kaW5nID0gMTsKKyAgICAgICAgfQorCisgICAg
ICAgICRzdm5Db252ZXJ0ZWRUZXh0IC49ICIkXyRlb2wiOyAjIEFsc28gcmVzdG9yZSBlbmQtb2Yt
bGluZSBjaGFyYWN0ZXJzLgorCisgICAgICAgICRfID0gPCRmaWxlSGFuZGxlPjsgIyBOb3QgZGVm
aW5lZCBpZiBlbmQtb2YtZmlsZSByZWFjaGVkLgorCisgICAgICAgIGlmICghZGVmaW5lZCgkXykg
fHwgLyRoZWFkZXJTdGFydFJlZ0V4LyB8fCAkZm91bmRIZWFkZXJFbmRpbmcpIHsKKyAgICAgICAg
ICAgIGxhc3Q7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBteSAkZXhlY3V0YWJsZUJpdERlbHRh
ID0gJG5ld0V4ZWN1dGFibGVCaXQgLSAkb2xkRXhlY3V0YWJsZUJpdDsKKworICAgIG15ICVoZWFk
ZXI7CisKKyAgICAkaGVhZGVye2V4ZWN1dGFibGVCaXREZWx0YX0gPSAkZXhlY3V0YWJsZUJpdERl
bHRhOworICAgICRoZWFkZXJ7aW5kZXhQYXRofSA9ICRpbmRleFBhdGg7CisgICAgJGhlYWRlcntz
dm5Db252ZXJ0ZWRUZXh0fSA9ICRzdm5Db252ZXJ0ZWRUZXh0OworCisgICAgcmV0dXJuIChcJWhl
YWRlciwgJF8pOworfQorCiAjIENvbnZlcnQgc29tZSBsaW5lcyBvZiBhIGdpdC1mb3JtYXR0ZWQg
cGF0Y2ggdG8gU1ZOIGZvcm1hdCwgd2hpbGUKICMgcHJlc2VydmluZyBhbnkgZW5kLW9mLWxpbmUg
Y2hhcmFjdGVycy4KICMKQEAgLTQ1Miw2ICs1NDIsOCBAQCBzdWIgcGFyc2VEaWZmSGVhZGVyKCQk
KQogCiAgICAgbXkgJGZpbHRlcjsKICAgICBpZiAoJGxpbmUgPX4gbSNeZGlmZiAtLWdpdCAjKSB7
CisgICAgICAgICMgRklYTUU6IERlbGV0ZSB0aGUgZ2l0ZGlmZjJzdm5kaWZmKCkgc3Vicm91dGlu
ZSBhbmQgY2FsbAorICAgICAgICAjICAgICAgICBwYXJzZUdpdERpZmZIZWFkZXIoKSBpbnN0ZWFk
LgogICAgICAgICAkZmlsdGVyID0gXCZnaXRkaWZmMnN2bmRpZmY7CiAgICAgfQogICAgICRsaW5l
ID0gJiRmaWx0ZXIoJGxpbmUpIGlmICRmaWx0ZXI7CkBAIC01MTYsNiArNjA4LDEyIEBAIHN1YiBw
YXJzZURpZmZIZWFkZXIoJCQpCiAgICAgcmV0dXJuIChcJWhlYWRlciwgJGxhc3RSZWFkTGluZSk7
CiB9CiAKKyMgRklYTUU6IFRoZSAlZGlmZkhhc2ggIm9iamVjdCIgc2hvdWxkIG5vdCBoYXZlIGFu
IHN2bkNvbnZlcnRlZFRleHQgcHJvcGVydHkuCisjICAgICAgICBJbnN0ZWFkLCB0aGUgaGFzaCBv
YmplY3Qgc2hvdWxkIHN0b3JlIGl0cyBpbmZvcm1hdGlvbiBpbiBhCisjICAgICAgICBzdHJ1Y3R1
cmVkIHdheSBhcyBwcm9wZXJ0aWVzLiAgVGhpcyBzaG91bGQgYmUgZG9uZSBpbiBhIHdheSBzbwor
IyAgICAgICAgdGhhdCwgaWYgbmVjZXNzYXJ5LCB0aGUgdGV4dCBvZiBhbiBTVk4gb3IgR2l0IHBh
dGNoIGNhbiBiZQorIyAgICAgICAgcmVjb25zdHJ1Y3RlZCBmcm9tIHRoZSBpbmZvcm1hdGlvbiBp
biB0aG9zZSBoYXNoIHByb3BlcnRpZXMuCisjCiAjIEEgJWRpZmZIYXNoIGlzIGEgaGFzaCByZXBy
ZXNlbnRpbmcgYSBzb3VyY2UgY29udHJvbCBkaWZmIG9mIGEgc2luZ2xlCiAjIGZpbGUgb3BlcmF0
aW9uIChlLmcuIGEgZmlsZSBtb2RpZmljYXRpb24sIGNvcHksIG9yIGRlbGV0ZSkuCiAjCkBAIC01
ODUsOCArNjgzLDExIEBAIHN1YiBwYXJzZURpZmYoJCQpCiAKICAgICBteSAlZGlmZkhhc2hSZWY7
CiAgICAgJGRpZmZIYXNoUmVme2NvcGllZEZyb21QYXRofSA9ICRoZWFkZXJIYXNoUmVmLT57Y29w
aWVkRnJvbVBhdGh9OworICAgICMgRklYTUU6IEFkZCBleGVjdXRhYmxlQml0RGVsdGEgYXMgYSBr
ZXkuCiAgICAgJGRpZmZIYXNoUmVme2luZGV4UGF0aH0gPSAkaGVhZGVySGFzaFJlZi0+e2luZGV4
UGF0aH07CiAgICAgJGRpZmZIYXNoUmVme3NvdXJjZVJldmlzaW9ufSA9ICRoZWFkZXJIYXNoUmVm
LT57c291cmNlUmV2aXNpb259OworICAgICMgRklYTUU6IFJlbW92ZSB0aGUgbmVlZCBmb3Igc3Zu
Q29udmVydGVkVGV4dC4gIFNlZSB0aGUgJWRpZmZIYXNoCisgICAgIyAgICAgICAgY29kZSBjb21t
ZW50cyBhYm92ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KICAgICAkZGlmZkhhc2hSZWZ7c3ZuQ29u
dmVydGVkVGV4dH0gPSAkc3ZuVGV4dDsKIAogICAgIHJldHVybiAoXCVkaWZmSGFzaFJlZiwgJGxp
bmUpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxz
X3VuaXR0ZXN0L3BhcnNlR2l0RGlmZkhlYWRlci5wbCBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cGVybC9WQ1NVdGlsc191bml0dGVzdC9wYXJzZUdpdERpZmZIZWFkZXIucGwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGM0ODEwNAotLS0gL2Rldi9udWxsCisrKyBiL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9WQ1NVdGlsc191bml0dGVzdC9wYXJzZUdpdERp
ZmZIZWFkZXIucGwKQEAgLTAsMCArMSwyOTYgQEAKKyMhL3Vzci9iaW4vcGVybCAtdworIworIyBD
b3B5cmlnaHQgKEMpIDIwMTAgQ2hyaXMgSmVyZG9uZWsgKGNqZXJkb25la0B3ZWJraXQub3JnKQor
IworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjIFVuaXQgdGVzdHMg
b2YgcGFyc2VHaXREaWZmSGVhZGVyKCkuCisKK3VzZSBzdHJpY3Q7Cit1c2Ugd2FybmluZ3M7CisK
K3VzZSBUZXN0OjpNb3JlOwordXNlIFZDU1V0aWxzOworCisjIFRoZSBhcnJheSBvZiB0ZXN0IGNh
c2VzLgorbXkgQHRlc3RDYXNlSGFzaFJlZnMgPSAoCit7ICAgIyBOZXcgdGVzdAorICAgIGRpZmZO
YW1lID0+ICJNb2RpZmllZCBmaWxlIiwKKyAgICBpbnB1dFRleHQgPT4gPDwnRU5EJywKK2RpZmYg
LS1naXQgYS9mb28uaCBiL2Zvby5oCitpbmRleCBmNWQ1ZTc0Li4zYjZhYTkyIDEwMDY0NAorLS0t
IGEvZm9vLmgKKysrKyBiL2Zvby5oCitAQCAtMSArMSBAQAorLWZpbGUgY29udGVudHMKKytuZXcg
ZmlsZSBjb250ZW50cworRU5ECisgICAgZXhwZWN0ZWRSZXR1cm4gPT4gWworeworICAgIHN2bkNv
bnZlcnRlZFRleHQgPT4gPDwnRU5EJywKK0luZGV4OiBmb28uaAoraW5kZXggZjVkNWU3NC4uM2I2
YWE5MiAxMDA2NDQKKy0tLSBmb28uaAorKysrIGZvby5oCitFTkQKKyAgICBleGVjdXRhYmxlQml0
RGVsdGEgPT4gMCwKKyAgICBpbmRleFBhdGggPT4gImZvby5oIiwKK30sCisiQEAgLTEgKzEgQEBc
biJdLAorICAgIGV4cGVjdGVkTmV4dExpbmUgPT4gIi1maWxlIGNvbnRlbnRzXG4iLAorfSwKK3sg
ICAjIE5ldyB0ZXN0CisgICAgZGlmZk5hbWUgPT4gIk5ldyBmaWxlIiwKKyAgICBpbnB1dFRleHQg
PT4gPDwnRU5EJywKK2RpZmYgLS1naXQgYS9mb28uaCBiL2Zvby5oCituZXcgZmlsZSBtb2RlIDEw
MDY0NAoraW5kZXggMDAwMDAwMC4uM2M5ZjExNAorLS0tIC9kZXYvbnVsbAorKysrIGIvZm9vLmgK
K0BAIC0wLDAgKzEsMzQgQEAKKys8aHRtbD4KK0VORAorICAgIGV4cGVjdGVkUmV0dXJuID0+IFsK
K3sKKyAgICBzdm5Db252ZXJ0ZWRUZXh0ID0+IDw8J0VORCcsCitJbmRleDogZm9vLmgKK25ldyBm
aWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi4zYzlmMTE0CistLS0gZm9vLmgKKysrKyBm
b28uaAorRU5ECisgICAgZXhlY3V0YWJsZUJpdERlbHRhID0+IDAsCisgICAgaW5kZXhQYXRoID0+
ICJmb28uaCIsCit9LAorIkBAIC0wLDAgKzEsMzQgQEBcbiJdLAorICAgIGV4cGVjdGVkTmV4dExp
bmUgPT4gIis8aHRtbD5cbiIsCit9LAorIyMjIworIyAgICBCaW5hcnkgZmlsZSB0ZXN0IGNhc2Vz
CisjIworeworICAgICMgTmV3IHRlc3QgY2FzZQorICAgIGRpZmZOYW1lID0+ICJOZXcgYmluYXJ5
IGZpbGUiLAorICAgIGlucHV0VGV4dCA9PiA8PCdFTkQnLAorZGlmZiAtLWdpdCBhL2Zvby5naWYg
Yi9mb28uZ2lmCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjRhOTUzMmU3Nzk0ZmNkNzkxZjZmMTIxNTc0MDZkOTA2
MDE1MTY5MAorR0lUIGJpbmFyeSBwYXRjaAorbGl0ZXJhbCA3CitPY21ZZXgmcmVEYTtzTzgqRjlM
KUIKKworbGl0ZXJhbCAwCitIY21WP2QwMDAwMQorCitFTkQKKyAgICBleHBlY3RlZFJldHVybiA9
PiBbCit7CisgICAgc3ZuQ29udmVydGVkVGV4dCA9PiA8PCdFTkQnLAorSW5kZXg6IGZvby5naWYK
K25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42NGE5NTMyZTc3OTRmY2Q3OTFmNmYxMjE1NzQwNmQ5MDYwMTUxNjkwCitH
SVQgYmluYXJ5IHBhdGNoCitFTkQKKyAgICBleGVjdXRhYmxlQml0RGVsdGEgPT4gMCwKKyAgICBp
bmRleFBhdGggPT4gImZvby5naWYiLAorfSwKKyJsaXRlcmFsIDdcbiJdLAorICAgIGV4cGVjdGVk
TmV4dExpbmUgPT4gIk9jbVlleCZyZURhO3NPOCpGOUwpQlxuIiwKK30sCit7CisgICAgIyBOZXcg
dGVzdCBjYXNlCisgICAgZGlmZk5hbWUgPT4gIkRlbGV0ZWQgYmluYXJ5IGZpbGUiLAorICAgIGlu
cHV0VGV4dCA9PiA8PCdFTkQnLAorZGlmZiAtLWdpdCBhL2Zvby5naWYgYi9mb28uZ2lmCitkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDMyM2ZhZTAuLjAwMDAwMDAKK0dJVCBiaW5hcnkg
cGF0Y2gKK2xpdGVyYWwgMAorSGNtVj9kMDAwMDEKKworbGl0ZXJhbCA3CitPY21ZZXgmcmVEYTtz
TzgqRjlMKUIKKworRU5ECisgICAgZXhwZWN0ZWRSZXR1cm4gPT4gWworeworICAgIHN2bkNvbnZl
cnRlZFRleHQgPT4gPDwnRU5EJywKK0luZGV4OiBmb28uZ2lmCitkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKK2luZGV4IDMyM2ZhZTAuLjAwMDAwMDAKK0dJVCBiaW5hcnkgcGF0Y2gKK0VORAorICAg
IGV4ZWN1dGFibGVCaXREZWx0YSA9PiAwLAorICAgIGluZGV4UGF0aCA9PiAiZm9vLmdpZiIsCit9
LAorImxpdGVyYWwgMFxuIl0sCisgICAgZXhwZWN0ZWROZXh0TGluZSA9PiAiSGNtVj9kMDAwMDFc
biIsCit9LAorIyMjIworIyAgICBFeGVjdXRhYmxlIGJpdCB0ZXN0IGNhc2VzCisjIworeworICAg
ICMgTmV3IHRlc3QgY2FzZQorICAgIGRpZmZOYW1lID0+ICJNb2RpZmllZCBleGVjdXRhYmxlIGZp
bGUiLAorICAgIGlucHV0VGV4dCA9PiA8PCdFTkQnLAorZGlmZiAtLWdpdCBhL2ZvbyBiL2Zvbwor
aW5kZXggZDAzZTI0Mi4uNDM1YWQzYSAxMDA3NTUKKy0tLSBhL2ZvbworKysrIGIvZm9vCitAQCAt
MSArMSBAQAorLWZpbGUgY29udGVudHMKKytuZXcgZmlsZSBjb250ZW50cworCitFTkQKKyAgICBl
eHBlY3RlZFJldHVybiA9PiBbCit7CisgICAgc3ZuQ29udmVydGVkVGV4dCA9PiA8PCdFTkQnLAor
SW5kZXg6IGZvbworaW5kZXggZDAzZTI0Mi4uNDM1YWQzYSAxMDA3NTUKKy0tLSBmb28KKysrKyBm
b28KK0VORAorICAgIGV4ZWN1dGFibGVCaXREZWx0YSA9PiAwLAorICAgIGluZGV4UGF0aCA9PiAi
Zm9vIiwKK30sCisiQEAgLTEgKzEgQEBcbiJdLAorICAgIGV4cGVjdGVkTmV4dExpbmUgPT4gIi1m
aWxlIGNvbnRlbnRzXG4iLAorfSwKK3sKKyAgICAjIE5ldyB0ZXN0IGNhc2UKKyAgICBkaWZmTmFt
ZSA9PiAiTWFraW5nIGZpbGUgZXhlY3V0YWJsZSAobGFzdCBkaWZmKSIsCisgICAgaW5wdXRUZXh0
ID0+IDw8J0VORCcsCitkaWZmIC0tZ2l0IGEvZm9vLmV4ZSBiL2Zvby5leGUKK29sZCBtb2RlIDEw
MDY0NAorbmV3IG1vZGUgMTAwNzU1CitFTkQKKyAgICBleHBlY3RlZFJldHVybiA9PiBbCit7Cisg
ICAgc3ZuQ29udmVydGVkVGV4dCA9PiA8PCdFTkQnLAorSW5kZXg6IGZvby5leGUKK29sZCBtb2Rl
IDEwMDY0NAorbmV3IG1vZGUgMTAwNzU1CitFTkQKKyAgICBleGVjdXRhYmxlQml0RGVsdGEgPT4g
MCwKKyAgICBpbmRleFBhdGggPT4gImZvby5leGUiLAorfSwKK3VuZGVmXSwKKyAgICBleHBlY3Rl
ZE5leHRMaW5lID0+IHVuZGVmLAorfSwKK3sKKyAgICAjIE5ldyB0ZXN0IGNhc2UKKyAgICBkaWZm
TmFtZSA9PiAiTWFraW5nIGZpbGUgZXhlY3V0YWJsZSAobm90IGxhc3QgZGlmZikiLAorICAgIGlu
cHV0VGV4dCA9PiA8PCdFTkQnLAorZGlmZiAtLWdpdCBhL2Zvby5leGUgYi9mb28uZXhlCitvbGQg
bW9kZSAxMDA2NDQKK25ldyBtb2RlIDEwMDc1NQorZGlmZiAtLWdpdCBhL2Fub3RoZXJfZmlsZS50
eHQgYi9hbm90aGVyX2ZpbGUudHh0CitpbmRleCBkMDNlMjQyLi40MzVhZDNhIDEwMDc1NQorRU5E
CisgICAgZXhwZWN0ZWRSZXR1cm4gPT4gWworeworICAgIHN2bkNvbnZlcnRlZFRleHQgPT4gPDwn
RU5EJywKK0luZGV4OiBmb28uZXhlCitvbGQgbW9kZSAxMDA2NDQKK25ldyBtb2RlIDEwMDc1NQor
RU5ECisgICAgZXhlY3V0YWJsZUJpdERlbHRhID0+IDAsCisgICAgaW5kZXhQYXRoID0+ICJmb28u
ZXhlIiwKK30sCisiZGlmZiAtLWdpdCBhL2Fub3RoZXJfZmlsZS50eHQgYi9hbm90aGVyX2ZpbGUu
dHh0XG4iXSwKKyAgICBleHBlY3RlZE5leHRMaW5lID0+ICJpbmRleCBkMDNlMjQyLi40MzVhZDNh
IDEwMDc1NVxuIiwKK30sCit7CisgICAgIyBOZXcgdGVzdCBjYXNlCisgICAgZGlmZk5hbWUgPT4g
Ik5ldyBleGVjdXRhYmxlIGZpbGUiLAorICAgIGlucHV0VGV4dCA9PiA8PCdFTkQnLAorZGlmZiAt
LWdpdCBhL2ZvbyBiL2ZvbworbmV3IGZpbGUgbW9kZSAxMDA3NTUKK2luZGV4IDAwMDAwMDAuLmQw
M2UyNDIKKy0tLSAvZGV2L251bGwKKysrKyBiL2ZvbworQEAgLTAsMCArMSBAQAorK2ZpbGUgY29u
dGVudHMKKworRU5ECisgICAgZXhwZWN0ZWRSZXR1cm4gPT4gWworeworICAgIHN2bkNvbnZlcnRl
ZFRleHQgPT4gPDwnRU5EJywKK0luZGV4OiBmb28KK25ldyBmaWxlIG1vZGUgMTAwNzU1CitpbmRl
eCAwMDAwMDAwLi5kMDNlMjQyCistLS0gZm9vCisrKysgZm9vCitFTkQKKyAgICBleGVjdXRhYmxl
Qml0RGVsdGEgPT4gMSwKKyAgICBpbmRleFBhdGggPT4gImZvbyIsCit9LAorIkBAIC0wLDAgKzEg
QEBcbiJdLAorICAgIGV4cGVjdGVkTmV4dExpbmUgPT4gIitmaWxlIGNvbnRlbnRzXG4iLAorfSwK
K3sKKyAgICAjIE5ldyB0ZXN0IGNhc2UKKyAgICBkaWZmTmFtZSA9PiAiRGVsZXRlZCBleGVjdXRh
YmxlIGZpbGUiLAorICAgIGlucHV0VGV4dCA9PiA8PCdFTkQnLAorZGlmZiAtLWdpdCBhL2ZvbyBi
L2ZvbworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CitpbmRleCBkMDNlMjQyLi4wMDAwMDAwCist
LS0gYS9mb28KKysrKyAvZGV2L251bGwKK0BAIC0xICswLDAgQEAKKy1maWxlIGNvbnRlbnRzCisK
K0VORAorICAgIGV4cGVjdGVkUmV0dXJuID0+IFsKK3sKKyAgICBzdm5Db252ZXJ0ZWRUZXh0ID0+
IDw8J0VORCcsCitJbmRleDogZm9vCitkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKK2luZGV4IGQw
M2UyNDIuLjAwMDAwMDAKKy0tLSBmb28KKysrKyBmb28KK0VORAorICAgIGV4ZWN1dGFibGVCaXRE
ZWx0YSA9PiAtMSwKKyAgICBpbmRleFBhdGggPT4gImZvbyIsCit9LAorIkBAIC0xICswLDAgQEBc
biJdLAorICAgIGV4cGVjdGVkTmV4dExpbmUgPT4gIi1maWxlIGNvbnRlbnRzXG4iLAorfSwKKyk7
CisKK215ICR0ZXN0Q2FzZXNDb3VudCA9IEB0ZXN0Q2FzZUhhc2hSZWZzOworcGxhbih0ZXN0cyA9
PiAyICogJHRlc3RDYXNlc0NvdW50KTsgIyBUb3RhbCBudW1iZXIgb2YgYXNzZXJ0aW9ucy4KKwor
Zm9yZWFjaCBteSAkdGVzdENhc2UgKEB0ZXN0Q2FzZUhhc2hSZWZzKSB7CisgICAgbXkgJHRlc3RO
YW1lU3RhcnQgPSAicGFyc2VHaXREaWZmSGVhZGVyKCk6ICR0ZXN0Q2FzZS0+e2RpZmZOYW1lfTog
Y29tcGFyaW5nIjsKKworICAgIG15ICRmaWxlSGFuZGxlOworICAgIG9wZW4oJGZpbGVIYW5kbGUs
ICI8IiwgXCR0ZXN0Q2FzZS0+e2lucHV0VGV4dH0pOworICAgIG15ICRsaW5lID0gPCRmaWxlSGFu
ZGxlPjsKKworICAgIG15IEBnb3QgPSBWQ1NVdGlsczo6cGFyc2VHaXREaWZmSGVhZGVyKCRmaWxl
SGFuZGxlLCAkbGluZSk7CisgICAgbXkgJGV4cGVjdGVkUmV0dXJuID0gJHRlc3RDYXNlLT57ZXhw
ZWN0ZWRSZXR1cm59OworCisgICAgaXNfZGVlcGx5KFxAZ290LCAkZXhwZWN0ZWRSZXR1cm4sICIk
dGVzdE5hbWVTdGFydCByZXR1cm4gdmFsdWUuIik7CisKKyAgICBteSAkZ290TmV4dExpbmUgPSA8
JGZpbGVIYW5kbGU+OworICAgIGlzKCRnb3ROZXh0TGluZSwgJHRlc3RDYXNlLT57ZXhwZWN0ZWRO
ZXh0TGluZX0sICAiJHRlc3ROYW1lU3RhcnQgbmV4dCByZWFkIGxpbmUuIik7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54877</attachid>
            <date>2010-05-02 07:10:25 -0700</date>
            <delta_ts>2010-05-03 03:27:15 -0700</delta_ts>
            <desc>Proposed patch 3</desc>
            <filename>_patch-38425-3.diff</filename>
            <type>text/plain</type>
            <size>13276</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBlNzZhYTA4Li42ZTQ5NTQxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDUt
MDEgIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYSBwYXJzZUdpdERpZmZI
ZWFkZXIoKSBzdWJyb3V0aW5lIHRvIFZDU1V0aWxzLnBtIHRoYXQKKyAgICAgICAgcGFyc2VzIGFu
eSBjaGFuZ2VzIHRvIHRoZSBleGVjdXRhYmxlIGJpdCBpbiBhIEdpdCBkaWZmLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODQyNQorCisgICAgICAg
IFRoaXMgcmV2aXNpb24gaXMgbW9yZSBwcmVwYXJhdGlvbiB0b3dhcmRzIGFkZGluZyAiZXhlY3V0
YWJsZSBiaXQiCisgICAgICAgIHN1cHBvcnQgdG8gc3ZuLWFwcGx5IGFuZCBzdm4tdW5hcHBseS4g
IE5vIGNvZGUgaXMgZ29pbmcgImxpdmUiIGluCisgICAgICAgIHRoaXMgY2hhbmdlIGV4Y2VwdCBm
b3IgdGhlIG5ldyB1bml0IHRlc3RzIGluIHRlc3Qtd2Via2l0cGVybC4KKworICAgICAgICAqIFNj
cmlwdHMvVkNTVXRpbHMucG06CisgICAgICAgICAgLSBBZGRlZCBpc0V4ZWN1dGFibGUoKSB0byBk
ZXRlcm1pbmUgd2hldGhlciBhIGZpbGUgbW9kZSBoYXMgdGhlCisgICAgICAgICAgICBleGVjdXRh
YmxlIGJpdCBzZXQgb3Igbm90LgorICAgICAgICAgIC0gQWRkZWQgcGFyc2VHaXREaWZmSGVhZGVy
KCkgdG8gcGFyc2UgdGhlIGhlYWRlciBvZiBhIEdpdCBkaWZmLgorCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNlR2l0RGlmZkhlYWRlci5wbDogQWRk
ZWQuCisgICAgICAgICAgLSBBZGRlZCB1bml0IHRlc3RzIGZvciBwYXJzZUdpdERpZmZIZWFkZXIo
KS4KKwogMjAxMC0wNS0wMSAgRGFuaWVsIEJhdGVzICA8ZGJhdGVzQHJpbS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgQ2hyaXMgSmVyZG9uZWsuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9T
Y3JpcHRzL1ZDU1V0aWxzLnBtIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9WQ1NVdGlscy5wbQppbmRl
eCBkZmYxYzRkLi5iNTY0ZGQ0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL1ZDU1V0
aWxzLnBtCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvVkNTVXRpbHMucG0KQEAgLTM5Nyw2ICsz
OTcsOTYgQEAgc3ViIHN2blN0YXR1cygkKQogICAgIHJldHVybiAkc3ZuU3RhdHVzOwogfQogCisj
IFJldHVybiB3aGV0aGVyIHRoZSBnaXZlbiBmaWxlIG1vZGUgaXMgZXhlY3V0YWJsZSBmb3Igb3Ro
ZXJzIChpLmUuIGV2ZXJ5b25lKS4KKyMKKyMgQXJnczoKKyMgICAkZmlsZU1vZGU6IEEgbnVtYmVy
IG9yIHN0cmluZyByZXByZXNlbnRpbmcgYSBmaWxlIG1vZGUgaW4gb2N0YWwgbm90YXRpb24uCitz
dWIgaXNFeGVjdXRhYmxlKCQpCit7CisgICAgbXkgJGZpbGVNb2RlID0gc2hpZnQ7CisKKyAgICBy
ZXR1cm4gKCRmaWxlTW9kZSAlIDIgIT0gMCkKK30KKworIyBQYXJzZSB0aGUgbmV4dCBHaXQgZGlm
ZiBoZWFkZXIgZnJvbSB0aGUgZ2l2ZW4gZmlsZSBoYW5kbGUsIGFuZCBhZHZhbmNlCisjIHRoZSBo
YW5kbGUgc28gdGhlIGxhc3QgbGluZSByZWFkIGlzIHRoZSBmaXJzdCBsaW5lIGFmdGVyIHRoZSBo
ZWFkZXIuCisjCisjIFRoaXMgc3Vicm91dGluZSBkaWVzIGlmIGdpdmVuIGxlYWRpbmcganVuay4K
KyMKKyMgQXJnczoKKyMgICAkZmlsZUhhbmRsZTogYWR2YW5jZWQgc28gdGhlIGxhc3QgbGluZSBy
ZWFkIGlzIHRoZSBmaXJzdCBsaW5lIG9mIHRoZQorIyAgICAgICAgICAgICAgICBoZWFkZXIuICBU
aGlzIGlzIGEgbGluZSBiZWdpbm5pbmcgd2l0aCAiZGlmZiAtLWdpdCAuLi4uIgorIyAgICRsaW5l
OiB0aGUgbGluZSBsYXN0IHJlYWQgZnJvbSAkZmlsZUhhbmRsZQorIworIyBSZXR1cm5zICgkaGVh
ZGVySGFzaFJlZiwgJGxhc3RSZWFkTGluZSk6CisjICAgJGhlYWRlckhhc2hSZWY6IGEgaGFzaCBy
ZWZlcmVuY2UgcmVwcmVzZW50aW5nIGEgZGlmZiBoZWFkZXIsIGFzIGZvbGxvd3MtLQorIyAgICAg
ZXhlY3V0YWJsZUJpdERlbHRhOiBhbiBpbnRlZ2VyIC0xLCAwLCBvciAxLCBkZXBlbmRpbmcgb24g
d2hldGhlciB0aGUKKyMgICAgICAgICAgICAgICAgICAgICAgICAgZXhlY3V0YWJsZSBiaXQgd2Fz
IGFkZGVkLCByZW1haW5lZCB0aGUgc2FtZSwgb3Igd2FzCisjICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlbW92ZWQuICBGb3IgbmV3IGFuZCBkZWxldGVkIGZpbGVzLCB0aGUgdmFsdWUgaXMgMAor
IyAgICAgICAgICAgICAgICAgICAgICAgICBvbmx5IGlmIHRoZSBuZXcgb3IgZGVsZXRlZCBmaWxl
IGlzIG5vdCBleGVjdXRhYmxlLgorIyAgICAgaW5kZXhQYXRoOiB0aGUgcGF0aCBpbiB0aGUgIklu
ZGV4OiIgbGluZS4KKyMgICAgIHN2bkNvbnZlcnRlZFRleHQ6IHRoZSBoZWFkZXIgdGV4dCB3aXRo
IHNvbWUgbGluZXMgY29udmVydGVkIHRvIFNWTgorIyAgICAgICAgICAgICAgICAgICAgICAgZm9y
bWF0LiAgR2l0LXNwZWNpZmljIGxpbmVzIGFyZSBwcmVzZXJ2ZWQuCisjICAgJGxhc3RSZWFkTGlu
ZTogdGhlIGxpbmUgbGFzdCByZWFkIGZyb20gJGZpbGVIYW5kbGUuCitzdWIgcGFyc2VHaXREaWZm
SGVhZGVyKCQkKQoreworICAgIG15ICgkZmlsZUhhbmRsZSwgJGxpbmUpID0gQF87CisKKyAgICAk
XyA9ICRsaW5lOworCisgICAgbXkgJGhlYWRlclN0YXJ0UmVnRXggPSBxci9eZGlmZiAtLWdpdCAv
OworCisgICAgaWYgKCEvJGhlYWRlclN0YXJ0UmVnRXgvKSB7CisgICAgICAgIGRpZSgiRmlyc3Qg
bGluZSBvZiBHaXQgZGlmZiBkb2VzIG5vdCBiZWdpbiB3aXRoIFwiZGlmZiAtLWdpdCBcIjogXCIk
X1wiIik7CisgICAgfQorCisgICAgbXkgJGZvdW5kSGVhZGVyRW5kaW5nOworICAgIG15ICRpbmRl
eFBhdGg7CisgICAgbXkgJG5ld0V4ZWN1dGFibGVCaXQgPSAwOworICAgIG15ICRvbGRFeGVjdXRh
YmxlQml0ID0gMDsKKyAgICBteSAkc3ZuQ29udmVydGVkVGV4dDsKKyAgICB3aGlsZSAoMSkgewor
ICAgICAgICAjIFRlbXBvcmFyaWx5IHN0cmlwIG9mZiBhbnkgZW5kLW9mLWxpbmUgY2hhcmFjdGVy
cyB0byBzaW1wbGlmeQorICAgICAgICAjIHJlZ2V4IG1hdGNoaW5nIGJlbG93LgorICAgICAgICBz
LyhbXG5ccl0rKSQvLzsKKyAgICAgICAgbXkgJGVvbCA9ICQxOworCisgICAgICAgIGlmIChtI15k
aWZmIC0tZ2l0IFx3LyguKykgXHcvKFteXHJcbl0rKSMpIHsKKyAgICAgICAgICAgICRpbmRleFBh
dGggPSAkMTsKKyAgICAgICAgICAgICRfID0gIkluZGV4OiAkaW5kZXhQYXRoIjsgIyBDb252ZXJ0
IHRvIFNWTiBmb3JtYXQuCisgICAgICAgIH0gZWxzaWYgKC9eKGRlbGV0ZWQgZmlsZXxvbGQpIG1v
ZGUgKFswLTldezZ9KS8pIHsKKyAgICAgICAgICAgICRvbGRFeGVjdXRhYmxlQml0ID0gKGlzRXhl
Y3V0YWJsZSgkMikgPyAxIDogMCk7CisgICAgICAgIH0gZWxzaWYgKC9ebmV3KCBmaWxlKT8gbW9k
ZSAoWzAtOV17Nn0pLykgeworICAgICAgICAgICAgJG5ld0V4ZWN1dGFibGVCaXQgPSAoaXNFeGVj
dXRhYmxlKCQyKSA/IDEgOiAwKTsKKyAgICAgICAgfSBlbHNpZiAoL14tLS0gXFMrLykgeworICAg
ICAgICAgICAgJF8gPSAiLS0tICRpbmRleFBhdGgiOyAjIENvbnZlcnQgdG8gU1ZOIGZvcm1hdC4K
KyAgICAgICAgfSBlbHNpZiAoL15cK1wrXCsgXFMrLykgeworICAgICAgICAgICAgJF8gPSAiKysr
ICRpbmRleFBhdGgiOyAjIENvbnZlcnQgdG8gU1ZOIGZvcm1hdC4KKyAgICAgICAgICAgICRmb3Vu
ZEhlYWRlckVuZGluZyA9IDE7CisgICAgICAgIH0gZWxzaWYgKC9eR0lUIGJpbmFyeSBwYXRjaCQv
ICkgeworICAgICAgICAgICAgJGZvdW5kSGVhZGVyRW5kaW5nID0gMTsKKyAgICAgICAgfQorCisg
ICAgICAgICRzdm5Db252ZXJ0ZWRUZXh0IC49ICIkXyRlb2wiOyAjIEFsc28gcmVzdG9yZSBlbmQt
b2YtbGluZSBjaGFyYWN0ZXJzLgorCisgICAgICAgICRfID0gPCRmaWxlSGFuZGxlPjsgIyBOb3Qg
ZGVmaW5lZCBpZiBlbmQtb2YtZmlsZSByZWFjaGVkLgorCisgICAgICAgIGlmICghZGVmaW5lZCgk
XykgfHwgLyRoZWFkZXJTdGFydFJlZ0V4LyB8fCAkZm91bmRIZWFkZXJFbmRpbmcpIHsKKyAgICAg
ICAgICAgIGxhc3Q7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBteSAkZXhlY3V0YWJsZUJpdERl
bHRhID0gJG5ld0V4ZWN1dGFibGVCaXQgLSAkb2xkRXhlY3V0YWJsZUJpdDsKKworICAgIG15ICVo
ZWFkZXI7CisKKyAgICAkaGVhZGVye2V4ZWN1dGFibGVCaXREZWx0YX0gPSAkZXhlY3V0YWJsZUJp
dERlbHRhOworICAgICRoZWFkZXJ7aW5kZXhQYXRofSA9ICRpbmRleFBhdGg7CisgICAgJGhlYWRl
cntzdm5Db252ZXJ0ZWRUZXh0fSA9ICRzdm5Db252ZXJ0ZWRUZXh0OworCisgICAgcmV0dXJuIChc
JWhlYWRlciwgJF8pOworfQorCiAjIENvbnZlcnQgc29tZSBsaW5lcyBvZiBhIGdpdC1mb3JtYXR0
ZWQgcGF0Y2ggdG8gU1ZOIGZvcm1hdCwgd2hpbGUKICMgcHJlc2VydmluZyBhbnkgZW5kLW9mLWxp
bmUgY2hhcmFjdGVycy4KICMKQEAgLTQ1Miw2ICs1NDIsOCBAQCBzdWIgcGFyc2VEaWZmSGVhZGVy
KCQkKQogCiAgICAgbXkgJGZpbHRlcjsKICAgICBpZiAoJGxpbmUgPX4gbSNeZGlmZiAtLWdpdCAj
KSB7CisgICAgICAgICMgRklYTUU6IERlbGV0ZSB0aGUgZ2l0ZGlmZjJzdm5kaWZmKCkgc3Vicm91
dGluZSBhbmQgY2FsbAorICAgICAgICAjICAgICAgICBwYXJzZUdpdERpZmZIZWFkZXIoKSBpbnN0
ZWFkLgogICAgICAgICAkZmlsdGVyID0gXCZnaXRkaWZmMnN2bmRpZmY7CiAgICAgfQogICAgICRs
aW5lID0gJiRmaWx0ZXIoJGxpbmUpIGlmICRmaWx0ZXI7CkBAIC01MTYsNiArNjA4LDEyIEBAIHN1
YiBwYXJzZURpZmZIZWFkZXIoJCQpCiAgICAgcmV0dXJuIChcJWhlYWRlciwgJGxhc3RSZWFkTGlu
ZSk7CiB9CiAKKyMgRklYTUU6IFRoZSAlZGlmZkhhc2ggIm9iamVjdCIgc2hvdWxkIG5vdCBoYXZl
IGFuIHN2bkNvbnZlcnRlZFRleHQgcHJvcGVydHkuCisjICAgICAgICBJbnN0ZWFkLCB0aGUgaGFz
aCBvYmplY3Qgc2hvdWxkIHN0b3JlIGl0cyBpbmZvcm1hdGlvbiBpbiBhCisjICAgICAgICBzdHJ1
Y3R1cmVkIHdheSBhcyBwcm9wZXJ0aWVzLiAgVGhpcyBzaG91bGQgYmUgZG9uZSBpbiBhIHdheSBz
bworIyAgICAgICAgdGhhdCwgaWYgbmVjZXNzYXJ5LCB0aGUgdGV4dCBvZiBhbiBTVk4gb3IgR2l0
IHBhdGNoIGNhbiBiZQorIyAgICAgICAgcmVjb25zdHJ1Y3RlZCBmcm9tIHRoZSBpbmZvcm1hdGlv
biBpbiB0aG9zZSBoYXNoIHByb3BlcnRpZXMuCisjCiAjIEEgJWRpZmZIYXNoIGlzIGEgaGFzaCBy
ZXByZXNlbnRpbmcgYSBzb3VyY2UgY29udHJvbCBkaWZmIG9mIGEgc2luZ2xlCiAjIGZpbGUgb3Bl
cmF0aW9uIChlLmcuIGEgZmlsZSBtb2RpZmljYXRpb24sIGNvcHksIG9yIGRlbGV0ZSkuCiAjCkBA
IC01ODUsOCArNjgzLDExIEBAIHN1YiBwYXJzZURpZmYoJCQpCiAKICAgICBteSAlZGlmZkhhc2hS
ZWY7CiAgICAgJGRpZmZIYXNoUmVme2NvcGllZEZyb21QYXRofSA9ICRoZWFkZXJIYXNoUmVmLT57
Y29waWVkRnJvbVBhdGh9OworICAgICMgRklYTUU6IEFkZCBleGVjdXRhYmxlQml0RGVsdGEgYXMg
YSBrZXkuCiAgICAgJGRpZmZIYXNoUmVme2luZGV4UGF0aH0gPSAkaGVhZGVySGFzaFJlZi0+e2lu
ZGV4UGF0aH07CiAgICAgJGRpZmZIYXNoUmVme3NvdXJjZVJldmlzaW9ufSA9ICRoZWFkZXJIYXNo
UmVmLT57c291cmNlUmV2aXNpb259OworICAgICMgRklYTUU6IFJlbW92ZSB0aGUgbmVlZCBmb3Ig
c3ZuQ29udmVydGVkVGV4dC4gIFNlZSB0aGUgJWRpZmZIYXNoCisgICAgIyAgICAgICAgY29kZSBj
b21tZW50cyBhYm92ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KICAgICAkZGlmZkhhc2hSZWZ7c3Zu
Q29udmVydGVkVGV4dH0gPSAkc3ZuVGV4dDsKIAogICAgIHJldHVybiAoXCVkaWZmSGFzaFJlZiwg
JGxpbmUpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0
aWxzX3VuaXR0ZXN0L3BhcnNlR2l0RGlmZkhlYWRlci5wbCBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cGVybC9WQ1NVdGlsc191bml0dGVzdC9wYXJzZUdpdERpZmZIZWFkZXIucGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODY4OWVkZgotLS0gL2Rldi9udWxsCisrKyBi
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9WQ1NVdGlsc191bml0dGVzdC9wYXJzZUdp
dERpZmZIZWFkZXIucGwKQEAgLTAsMCArMSwyOTYgQEAKKyMhL3Vzci9iaW4vcGVybCAtdworIwor
IyBDb3B5cmlnaHQgKEMpIDIwMTAgQ2hyaXMgSmVyZG9uZWsgKGNqZXJkb25la0B3ZWJraXQub3Jn
KQorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisj
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjIFVuaXQgdGVz
dHMgb2YgcGFyc2VHaXREaWZmSGVhZGVyKCkuCisKK3VzZSBzdHJpY3Q7Cit1c2Ugd2FybmluZ3M7
CisKK3VzZSBUZXN0OjpNb3JlOwordXNlIFZDU1V0aWxzOworCisjIFRoZSBhcnJheSBvZiB0ZXN0
IGNhc2VzLgorbXkgQHRlc3RDYXNlSGFzaFJlZnMgPSAoCit7ICAgIyBOZXcgdGVzdAorICAgIGRp
ZmZOYW1lID0+ICJNb2RpZmllZCBmaWxlIiwKKyAgICBpbnB1dFRleHQgPT4gPDwnRU5EJywKK2Rp
ZmYgLS1naXQgYS9mb28uaCBiL2Zvby5oCitpbmRleCBmNWQ1ZTc0Li4zYjZhYTkyIDEwMDY0NAor
LS0tIGEvZm9vLmgKKysrKyBiL2Zvby5oCitAQCAtMSArMSBAQAorLWZpbGUgY29udGVudHMKKytu
ZXcgZmlsZSBjb250ZW50cworRU5ECisgICAgZXhwZWN0ZWRSZXR1cm4gPT4gWworeworICAgIHN2
bkNvbnZlcnRlZFRleHQgPT4gPDwnRU5EJywKK0luZGV4OiBmb28uaAoraW5kZXggZjVkNWU3NC4u
M2I2YWE5MiAxMDA2NDQKKy0tLSBmb28uaAorKysrIGZvby5oCitFTkQKKyAgICBleGVjdXRhYmxl
Qml0RGVsdGEgPT4gMCwKKyAgICBpbmRleFBhdGggPT4gImZvby5oIiwKK30sCisiQEAgLTEgKzEg
QEBcbiJdLAorICAgIGV4cGVjdGVkTmV4dExpbmUgPT4gIi1maWxlIGNvbnRlbnRzXG4iLAorfSwK
K3sgICAjIE5ldyB0ZXN0CisgICAgZGlmZk5hbWUgPT4gIk5ldyBmaWxlIiwKKyAgICBpbnB1dFRl
eHQgPT4gPDwnRU5EJywKK2RpZmYgLS1naXQgYS9mb28uaCBiL2Zvby5oCituZXcgZmlsZSBtb2Rl
IDEwMDY0NAoraW5kZXggMDAwMDAwMC4uM2M5ZjExNAorLS0tIC9kZXYvbnVsbAorKysrIGIvZm9v
LmgKK0BAIC0wLDAgKzEsMzQgQEAKKys8aHRtbD4KK0VORAorICAgIGV4cGVjdGVkUmV0dXJuID0+
IFsKK3sKKyAgICBzdm5Db252ZXJ0ZWRUZXh0ID0+IDw8J0VORCcsCitJbmRleDogZm9vLmgKK25l
dyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwLi4zYzlmMTE0CistLS0gZm9vLmgKKysr
KyBmb28uaAorRU5ECisgICAgZXhlY3V0YWJsZUJpdERlbHRhID0+IDAsCisgICAgaW5kZXhQYXRo
ID0+ICJmb28uaCIsCit9LAorIkBAIC0wLDAgKzEsMzQgQEBcbiJdLAorICAgIGV4cGVjdGVkTmV4
dExpbmUgPT4gIis8aHRtbD5cbiIsCit9LAorIyMjIworIyAgICBCaW5hcnkgZmlsZSB0ZXN0IGNh
c2VzCisjIworeworICAgICMgTmV3IHRlc3QgY2FzZQorICAgIGRpZmZOYW1lID0+ICJOZXcgYmlu
YXJ5IGZpbGUiLAorICAgIGlucHV0VGV4dCA9PiA8PCdFTkQnLAorZGlmZiAtLWdpdCBhL2Zvby5n
aWYgYi9mb28uZ2lmCituZXcgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjRhOTUzMmU3Nzk0ZmNkNzkxZjZmMTIxNTc0MDZk
OTA2MDE1MTY5MAorR0lUIGJpbmFyeSBwYXRjaAorbGl0ZXJhbCA3CitPY21ZZXgmcmVEYTtzTzgq
RjlMKUIKKworbGl0ZXJhbCAwCitIY21WP2QwMDAwMQorCitFTkQKKyAgICBleHBlY3RlZFJldHVy
biA9PiBbCit7CisgICAgc3ZuQ29udmVydGVkVGV4dCA9PiA8PCdFTkQnLAorSW5kZXg6IGZvby5n
aWYKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42NGE5NTMyZTc3OTRmY2Q3OTFmNmYxMjE1NzQwNmQ5MDYwMTUxNjkw
CitHSVQgYmluYXJ5IHBhdGNoCitFTkQKKyAgICBleGVjdXRhYmxlQml0RGVsdGEgPT4gMCwKKyAg
ICBpbmRleFBhdGggPT4gImZvby5naWYiLAorfSwKKyJsaXRlcmFsIDdcbiJdLAorICAgIGV4cGVj
dGVkTmV4dExpbmUgPT4gIk9jbVlleCZyZURhO3NPOCpGOUwpQlxuIiwKK30sCit7CisgICAgIyBO
ZXcgdGVzdCBjYXNlCisgICAgZGlmZk5hbWUgPT4gIkRlbGV0ZWQgYmluYXJ5IGZpbGUiLAorICAg
IGlucHV0VGV4dCA9PiA8PCdFTkQnLAorZGlmZiAtLWdpdCBhL2Zvby5naWYgYi9mb28uZ2lmCitk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDMyM2ZhZTAuLjAwMDAwMDAKK0dJVCBiaW5h
cnkgcGF0Y2gKK2xpdGVyYWwgMAorSGNtVj9kMDAwMDEKKworbGl0ZXJhbCA3CitPY21ZZXgmcmVE
YTtzTzgqRjlMKUIKKworRU5ECisgICAgZXhwZWN0ZWRSZXR1cm4gPT4gWworeworICAgIHN2bkNv
bnZlcnRlZFRleHQgPT4gPDwnRU5EJywKK0luZGV4OiBmb28uZ2lmCitkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKK2luZGV4IDMyM2ZhZTAuLjAwMDAwMDAKK0dJVCBiaW5hcnkgcGF0Y2gKK0VORAor
ICAgIGV4ZWN1dGFibGVCaXREZWx0YSA9PiAwLAorICAgIGluZGV4UGF0aCA9PiAiZm9vLmdpZiIs
Cit9LAorImxpdGVyYWwgMFxuIl0sCisgICAgZXhwZWN0ZWROZXh0TGluZSA9PiAiSGNtVj9kMDAw
MDFcbiIsCit9LAorIyMjIworIyAgICBFeGVjdXRhYmxlIGJpdCB0ZXN0IGNhc2VzCisjIworewor
ICAgICMgTmV3IHRlc3QgY2FzZQorICAgIGRpZmZOYW1lID0+ICJNb2RpZmllZCBleGVjdXRhYmxl
IGZpbGUiLAorICAgIGlucHV0VGV4dCA9PiA8PCdFTkQnLAorZGlmZiAtLWdpdCBhL2ZvbyBiL2Zv
bworaW5kZXggZDAzZTI0Mi4uNDM1YWQzYSAxMDA3NTUKKy0tLSBhL2ZvbworKysrIGIvZm9vCitA
QCAtMSArMSBAQAorLWZpbGUgY29udGVudHMKKytuZXcgZmlsZSBjb250ZW50cworCitFTkQKKyAg
ICBleHBlY3RlZFJldHVybiA9PiBbCit7CisgICAgc3ZuQ29udmVydGVkVGV4dCA9PiA8PCdFTkQn
LAorSW5kZXg6IGZvbworaW5kZXggZDAzZTI0Mi4uNDM1YWQzYSAxMDA3NTUKKy0tLSBmb28KKysr
KyBmb28KK0VORAorICAgIGV4ZWN1dGFibGVCaXREZWx0YSA9PiAwLAorICAgIGluZGV4UGF0aCA9
PiAiZm9vIiwKK30sCisiQEAgLTEgKzEgQEBcbiJdLAorICAgIGV4cGVjdGVkTmV4dExpbmUgPT4g
Ii1maWxlIGNvbnRlbnRzXG4iLAorfSwKK3sKKyAgICAjIE5ldyB0ZXN0IGNhc2UKKyAgICBkaWZm
TmFtZSA9PiAiTWFraW5nIGZpbGUgZXhlY3V0YWJsZSAobGFzdCBkaWZmKSIsCisgICAgaW5wdXRU
ZXh0ID0+IDw8J0VORCcsCitkaWZmIC0tZ2l0IGEvZm9vLmV4ZSBiL2Zvby5leGUKK29sZCBtb2Rl
IDEwMDY0NAorbmV3IG1vZGUgMTAwNzU1CitFTkQKKyAgICBleHBlY3RlZFJldHVybiA9PiBbCit7
CisgICAgc3ZuQ29udmVydGVkVGV4dCA9PiA8PCdFTkQnLAorSW5kZXg6IGZvby5leGUKK29sZCBt
b2RlIDEwMDY0NAorbmV3IG1vZGUgMTAwNzU1CitFTkQKKyAgICBleGVjdXRhYmxlQml0RGVsdGEg
PT4gMSwKKyAgICBpbmRleFBhdGggPT4gImZvby5leGUiLAorfSwKK3VuZGVmXSwKKyAgICBleHBl
Y3RlZE5leHRMaW5lID0+IHVuZGVmLAorfSwKK3sKKyAgICAjIE5ldyB0ZXN0IGNhc2UKKyAgICBk
aWZmTmFtZSA9PiAiTWFraW5nIGZpbGUgZXhlY3V0YWJsZSAobm90IGxhc3QgZGlmZikiLAorICAg
IGlucHV0VGV4dCA9PiA8PCdFTkQnLAorZGlmZiAtLWdpdCBhL2Zvby5leGUgYi9mb28uZXhlCitv
bGQgbW9kZSAxMDA2NDQKK25ldyBtb2RlIDEwMDc1NQorZGlmZiAtLWdpdCBhL2Fub3RoZXJfZmls
ZS50eHQgYi9hbm90aGVyX2ZpbGUudHh0CitpbmRleCBkMDNlMjQyLi40MzVhZDNhIDEwMDc1NQor
RU5ECisgICAgZXhwZWN0ZWRSZXR1cm4gPT4gWworeworICAgIHN2bkNvbnZlcnRlZFRleHQgPT4g
PDwnRU5EJywKK0luZGV4OiBmb28uZXhlCitvbGQgbW9kZSAxMDA2NDQKK25ldyBtb2RlIDEwMDc1
NQorRU5ECisgICAgZXhlY3V0YWJsZUJpdERlbHRhID0+IDEsCisgICAgaW5kZXhQYXRoID0+ICJm
b28uZXhlIiwKK30sCisiZGlmZiAtLWdpdCBhL2Fub3RoZXJfZmlsZS50eHQgYi9hbm90aGVyX2Zp
bGUudHh0XG4iXSwKKyAgICBleHBlY3RlZE5leHRMaW5lID0+ICJpbmRleCBkMDNlMjQyLi40MzVh
ZDNhIDEwMDc1NVxuIiwKK30sCit7CisgICAgIyBOZXcgdGVzdCBjYXNlCisgICAgZGlmZk5hbWUg
PT4gIk5ldyBleGVjdXRhYmxlIGZpbGUiLAorICAgIGlucHV0VGV4dCA9PiA8PCdFTkQnLAorZGlm
ZiAtLWdpdCBhL2ZvbyBiL2ZvbworbmV3IGZpbGUgbW9kZSAxMDA3NTUKK2luZGV4IDAwMDAwMDAu
LmQwM2UyNDIKKy0tLSAvZGV2L251bGwKKysrKyBiL2ZvbworQEAgLTAsMCArMSBAQAorK2ZpbGUg
Y29udGVudHMKKworRU5ECisgICAgZXhwZWN0ZWRSZXR1cm4gPT4gWworeworICAgIHN2bkNvbnZl
cnRlZFRleHQgPT4gPDwnRU5EJywKK0luZGV4OiBmb28KK25ldyBmaWxlIG1vZGUgMTAwNzU1Citp
bmRleCAwMDAwMDAwLi5kMDNlMjQyCistLS0gZm9vCisrKysgZm9vCitFTkQKKyAgICBleGVjdXRh
YmxlQml0RGVsdGEgPT4gMSwKKyAgICBpbmRleFBhdGggPT4gImZvbyIsCit9LAorIkBAIC0wLDAg
KzEgQEBcbiJdLAorICAgIGV4cGVjdGVkTmV4dExpbmUgPT4gIitmaWxlIGNvbnRlbnRzXG4iLAor
fSwKK3sKKyAgICAjIE5ldyB0ZXN0IGNhc2UKKyAgICBkaWZmTmFtZSA9PiAiRGVsZXRlZCBleGVj
dXRhYmxlIGZpbGUiLAorICAgIGlucHV0VGV4dCA9PiA8PCdFTkQnLAorZGlmZiAtLWdpdCBhL2Zv
byBiL2ZvbworZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CitpbmRleCBkMDNlMjQyLi4wMDAwMDAw
CistLS0gYS9mb28KKysrKyAvZGV2L251bGwKK0BAIC0xICswLDAgQEAKKy1maWxlIGNvbnRlbnRz
CisKK0VORAorICAgIGV4cGVjdGVkUmV0dXJuID0+IFsKK3sKKyAgICBzdm5Db252ZXJ0ZWRUZXh0
ID0+IDw8J0VORCcsCitJbmRleDogZm9vCitkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKK2luZGV4
IGQwM2UyNDIuLjAwMDAwMDAKKy0tLSBmb28KKysrKyBmb28KK0VORAorICAgIGV4ZWN1dGFibGVC
aXREZWx0YSA9PiAtMSwKKyAgICBpbmRleFBhdGggPT4gImZvbyIsCit9LAorIkBAIC0xICswLDAg
QEBcbiJdLAorICAgIGV4cGVjdGVkTmV4dExpbmUgPT4gIi1maWxlIGNvbnRlbnRzXG4iLAorfSwK
Kyk7CisKK215ICR0ZXN0Q2FzZXNDb3VudCA9IEB0ZXN0Q2FzZUhhc2hSZWZzOworcGxhbih0ZXN0
cyA9PiAyICogJHRlc3RDYXNlc0NvdW50KTsgIyBUb3RhbCBudW1iZXIgb2YgYXNzZXJ0aW9ucy4K
KworZm9yZWFjaCBteSAkdGVzdENhc2UgKEB0ZXN0Q2FzZUhhc2hSZWZzKSB7CisgICAgbXkgJHRl
c3ROYW1lU3RhcnQgPSAicGFyc2VHaXREaWZmSGVhZGVyKCk6ICR0ZXN0Q2FzZS0+e2RpZmZOYW1l
fTogY29tcGFyaW5nIjsKKworICAgIG15ICRmaWxlSGFuZGxlOworICAgIG9wZW4oJGZpbGVIYW5k
bGUsICI8IiwgXCR0ZXN0Q2FzZS0+e2lucHV0VGV4dH0pOworICAgIG15ICRsaW5lID0gPCRmaWxl
SGFuZGxlPjsKKworICAgIG15IEBnb3QgPSBWQ1NVdGlsczo6cGFyc2VHaXREaWZmSGVhZGVyKCRm
aWxlSGFuZGxlLCAkbGluZSk7CisgICAgbXkgJGV4cGVjdGVkUmV0dXJuID0gJHRlc3RDYXNlLT57
ZXhwZWN0ZWRSZXR1cm59OworCisgICAgaXNfZGVlcGx5KFxAZ290LCAkZXhwZWN0ZWRSZXR1cm4s
ICIkdGVzdE5hbWVTdGFydCByZXR1cm4gdmFsdWUuIik7CisKKyAgICBteSAkZ290TmV4dExpbmUg
PSA8JGZpbGVIYW5kbGU+OworICAgIGlzKCRnb3ROZXh0TGluZSwgJHRlc3RDYXNlLT57ZXhwZWN0
ZWROZXh0TGluZX0sICAiJHRlc3ROYW1lU3RhcnQgbmV4dCByZWFkIGxpbmUuIik7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54911</attachid>
            <date>2010-05-03 03:27:15 -0700</date>
            <delta_ts>2010-05-03 10:09:58 -0700</delta_ts>
            <desc>Proposed patch 4</desc>
            <filename>_patch-38425-4.diff</filename>
            <type>text/plain</type>
            <size>13596</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA4YzMzOGY5Li5mMTVlMzdjIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDUt
MDEgIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYSBwYXJzZUdpdERpZmZI
ZWFkZXIoKSBzdWJyb3V0aW5lIHRvIFZDU1V0aWxzLnBtIHRoYXQKKyAgICAgICAgcGFyc2VzIGFu
eSBjaGFuZ2VzIHRvIHRoZSBleGVjdXRhYmxlIGJpdCBpbiBhIEdpdCBkaWZmLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODQyNQorCisgICAgICAg
IFRoaXMgcmV2aXNpb24gaXMgbW9yZSBwcmVwYXJhdGlvbiB0b3dhcmRzIGFkZGluZyAiZXhlY3V0
YWJsZSBiaXQiCisgICAgICAgIHN1cHBvcnQgdG8gc3ZuLWFwcGx5IGFuZCBzdm4tdW5hcHBseS4g
IE5vIGNvZGUgaXMgZ29pbmcgImxpdmUiIGluCisgICAgICAgIHRoaXMgY2hhbmdlIGV4Y2VwdCBm
b3IgdGhlIG5ldyB1bml0IHRlc3RzIGluIHRlc3Qtd2Via2l0cGVybC4KKworICAgICAgICAqIFNj
cmlwdHMvVkNTVXRpbHMucG06CisgICAgICAgICAgLSBBZGRlZCBpc0V4ZWN1dGFibGUoKSB0byBk
ZXRlcm1pbmUgd2hldGhlciBhIGZpbGUgbW9kZSBoYXMgdGhlCisgICAgICAgICAgICBleGVjdXRh
YmxlIGJpdCBzZXQgb3Igbm90LgorICAgICAgICAgIC0gQWRkZWQgcGFyc2VHaXREaWZmSGVhZGVy
KCkgdG8gcGFyc2UgdGhlIGhlYWRlciBvZiBhIEdpdCBkaWZmLgorCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNlR2l0RGlmZkhlYWRlci5wbDogQWRk
ZWQuCisgICAgICAgICAgLSBBZGRlZCB1bml0IHRlc3RzIGZvciBwYXJzZUdpdERpZmZIZWFkZXIo
KS4KKwogMjAxMC0wNS0wMiAgQ2hyaXMgSmVyZG9uZWsgIDxjamVyZG9uZWtAd2Via2l0Lm9yZz4K
IAogICAgICAgICBVbnJldmlld2VkLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9W
Q1NVdGlscy5wbSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvVkNTVXRpbHMucG0KaW5kZXggZWQ4MTA1
Mi4uNDRjZTQ1OCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9WQ1NVdGlscy5wbQor
KysgYi9XZWJLaXRUb29scy9TY3JpcHRzL1ZDU1V0aWxzLnBtCkBAIC0zOTcsNiArMzk3LDk5IEBA
IHN1YiBzdm5TdGF0dXMoJCkKICAgICByZXR1cm4gJHN2blN0YXR1czsKIH0KIAorIyBSZXR1cm4g
d2hldGhlciB0aGUgZ2l2ZW4gZmlsZSBtb2RlIGlzIGV4ZWN1dGFibGUgaW4gdGhlIHNvdXJjZSBj
b250cm9sCisjIHNlbnNlLiAgV2UgbWFrZSB0aGlzIGRldGVybWluYXRpb24gYmFzZWQgb24gd2hl
dGhlciB0aGUgZXhlY3V0YWJsZSBiaXQKKyMgaXMgc2V0IGZvciAib3RoZXJzIiByYXRoZXIgdGhh
biB0aGUgc3Ryb25nZXIgY29uZGl0aW9uIHRoYXQgaXQgYmUgc2V0CisjIGZvciB0aGUgdXNlciwg
Z3JvdXAsIGFuZCBvdGhlcnMuICBUaGlzIGlzIHN1ZmZpY2llbnQgZm9yIGRpc3Rpbmd1aXNoaW5n
CisjIHRoZSBkZWZhdWx0IGJlaGF2aW9yIGluIEdpdCBhbmQgU1ZOLgorIworIyBBcmdzOgorIyAg
ICRmaWxlTW9kZTogQSBudW1iZXIgb3Igc3RyaW5nIHJlcHJlc2VudGluZyBhIGZpbGUgbW9kZSBp
biBvY3RhbCBub3RhdGlvbi4KK3N1YiBpc0V4ZWN1dGFibGUoJCkKK3sKKyAgICBteSAkZmlsZU1v
ZGUgPSBzaGlmdDsKKworICAgIHJldHVybiAkZmlsZU1vZGUgJSAyOworfQorCisjIFBhcnNlIHRo
ZSBuZXh0IEdpdCBkaWZmIGhlYWRlciBmcm9tIHRoZSBnaXZlbiBmaWxlIGhhbmRsZSwgYW5kIGFk
dmFuY2UKKyMgdGhlIGhhbmRsZSBzbyB0aGUgbGFzdCBsaW5lIHJlYWQgaXMgdGhlIGZpcnN0IGxp
bmUgYWZ0ZXIgdGhlIGhlYWRlci4KKyMKKyMgVGhpcyBzdWJyb3V0aW5lIGRpZXMgaWYgZ2l2ZW4g
bGVhZGluZyBqdW5rLgorIworIyBBcmdzOgorIyAgICRmaWxlSGFuZGxlOiBhZHZhbmNlZCBzbyB0
aGUgbGFzdCBsaW5lIHJlYWQgZnJvbSB0aGUgaGFuZGxlIGlzIHRoZSBmaXJzdAorIyAgICAgICAg
ICAgICAgICBsaW5lIG9mIHRoZSBoZWFkZXIgdG8gcGFyc2UuICBUaGlzIHNob3VsZCBiZSBhIGxp
bmUKKyMgICAgICAgICAgICAgICAgYmVnaW5uaW5nIHdpdGggImRpZmYgLS1naXQiLgorIyAgICRs
aW5lOiB0aGUgbGluZSBsYXN0IHJlYWQgZnJvbSAkZmlsZUhhbmRsZQorIworIyBSZXR1cm5zICgk
aGVhZGVySGFzaFJlZiwgJGxhc3RSZWFkTGluZSk6CisjICAgJGhlYWRlckhhc2hSZWY6IGEgaGFz
aCByZWZlcmVuY2UgcmVwcmVzZW50aW5nIGEgZGlmZiBoZWFkZXIsIGFzIGZvbGxvd3MtLQorIyAg
ICAgZXhlY3V0YWJsZUJpdERlbHRhOiBhbiBpbnRlZ2VyIC0xLCAwLCBvciAxLCBkZXBlbmRpbmcg
b24gd2hldGhlciB0aGUKKyMgICAgICAgICAgICAgICAgICAgICAgICAgZXhlY3V0YWJsZSBiaXQg
d2FzIGFkZGVkLCByZW1haW5lZCB0aGUgc2FtZSwgb3Igd2FzCisjICAgICAgICAgICAgICAgICAg
ICAgICAgIHJlbW92ZWQuICBGb3IgbmV3IGFuZCBkZWxldGVkIGZpbGVzLCB0aGUgdmFsdWUgaXMg
MAorIyAgICAgICAgICAgICAgICAgICAgICAgICBvbmx5IGlmIHRoZSBuZXcgb3IgZGVsZXRlZCBm
aWxlIGlzIG5vdCBleGVjdXRhYmxlLgorIyAgICAgaW5kZXhQYXRoOiB0aGUgcGF0aCBpbiB0aGUg
IkluZGV4OiIgbGluZS4KKyMgICAgIHN2bkNvbnZlcnRlZFRleHQ6IHRoZSBoZWFkZXIgdGV4dCB3
aXRoIHNvbWUgbGluZXMgY29udmVydGVkIHRvIFNWTgorIyAgICAgICAgICAgICAgICAgICAgICAg
Zm9ybWF0LiAgR2l0LXNwZWNpZmljIGxpbmVzIGFyZSBwcmVzZXJ2ZWQuCisjICAgJGxhc3RSZWFk
TGluZTogdGhlIGxpbmUgbGFzdCByZWFkIGZyb20gJGZpbGVIYW5kbGUuCitzdWIgcGFyc2VHaXRE
aWZmSGVhZGVyKCQkKQoreworICAgIG15ICgkZmlsZUhhbmRsZSwgJGxpbmUpID0gQF87CisKKyAg
ICAkXyA9ICRsaW5lOworCisgICAgbXkgJGhlYWRlclN0YXJ0UmVnRXggPSBxci9eZGlmZiAtLWdp
dCAvOworCisgICAgaWYgKCEvJGhlYWRlclN0YXJ0UmVnRXgvKSB7CisgICAgICAgIGRpZSgiRmly
c3QgbGluZSBvZiBHaXQgZGlmZiBkb2VzIG5vdCBiZWdpbiB3aXRoIFwiZGlmZiAtLWdpdCBcIjog
XCIkX1wiIik7CisgICAgfQorCisgICAgbXkgJGZvdW5kSGVhZGVyRW5kaW5nOworICAgIG15ICRp
bmRleFBhdGg7CisgICAgbXkgJG5ld0V4ZWN1dGFibGVCaXQgPSAwOworICAgIG15ICRvbGRFeGVj
dXRhYmxlQml0ID0gMDsKKyAgICBteSAkc3ZuQ29udmVydGVkVGV4dDsKKyAgICB3aGlsZSAoMSkg
eworICAgICAgICAjIFRlbXBvcmFyaWx5IHN0cmlwIG9mZiBhbnkgZW5kLW9mLWxpbmUgY2hhcmFj
dGVycyB0byBzaW1wbGlmeQorICAgICAgICAjIHJlZ2V4IG1hdGNoaW5nIGJlbG93LgorICAgICAg
ICBzLyhbXG5ccl0rKSQvLzsKKyAgICAgICAgbXkgJGVvbCA9ICQxOworCisgICAgICAgIGlmICht
I15kaWZmIC0tZ2l0IFx3LyguKykgXHcvKFteXHJcbl0rKSMpIHsKKyAgICAgICAgICAgICRpbmRl
eFBhdGggPSAkMTsKKyAgICAgICAgICAgICRfID0gIkluZGV4OiAkaW5kZXhQYXRoIjsgIyBDb252
ZXJ0IHRvIFNWTiBmb3JtYXQuCisgICAgICAgIH0gZWxzaWYgKC9eKGRlbGV0ZWQgZmlsZXxvbGQp
IG1vZGUgKFswLTldezZ9KS8pIHsKKyAgICAgICAgICAgICRvbGRFeGVjdXRhYmxlQml0ID0gKGlz
RXhlY3V0YWJsZSgkMikgPyAxIDogMCk7CisgICAgICAgIH0gZWxzaWYgKC9ebmV3KCBmaWxlKT8g
bW9kZSAoWzAtOV17Nn0pLykgeworICAgICAgICAgICAgJG5ld0V4ZWN1dGFibGVCaXQgPSAoaXNF
eGVjdXRhYmxlKCQyKSA/IDEgOiAwKTsKKyAgICAgICAgfSBlbHNpZiAoL14tLS0gXFMrLykgewor
ICAgICAgICAgICAgJF8gPSAiLS0tICRpbmRleFBhdGgiOyAjIENvbnZlcnQgdG8gU1ZOIGZvcm1h
dC4KKyAgICAgICAgfSBlbHNpZiAoL15cK1wrXCsgXFMrLykgeworICAgICAgICAgICAgJF8gPSAi
KysrICRpbmRleFBhdGgiOyAjIENvbnZlcnQgdG8gU1ZOIGZvcm1hdC4KKyAgICAgICAgICAgICRm
b3VuZEhlYWRlckVuZGluZyA9IDE7CisgICAgICAgIH0gZWxzaWYgKC9eR0lUIGJpbmFyeSBwYXRj
aCQvICkgeworICAgICAgICAgICAgJGZvdW5kSGVhZGVyRW5kaW5nID0gMTsKKyAgICAgICAgfQor
CisgICAgICAgICRzdm5Db252ZXJ0ZWRUZXh0IC49ICIkXyRlb2wiOyAjIEFsc28gcmVzdG9yZSBl
bmQtb2YtbGluZSBjaGFyYWN0ZXJzLgorCisgICAgICAgICRfID0gPCRmaWxlSGFuZGxlPjsgIyBO
b3QgZGVmaW5lZCBpZiBlbmQtb2YtZmlsZSByZWFjaGVkLgorCisgICAgICAgIGxhc3QgaWYgKCFk
ZWZpbmVkKCRfKSB8fCAvJGhlYWRlclN0YXJ0UmVnRXgvIHx8ICRmb3VuZEhlYWRlckVuZGluZyk7
CisgICAgfQorCisgICAgbXkgJGV4ZWN1dGFibGVCaXREZWx0YSA9ICRuZXdFeGVjdXRhYmxlQml0
IC0gJG9sZEV4ZWN1dGFibGVCaXQ7CisKKyAgICBteSAlaGVhZGVyOworCisgICAgJGhlYWRlcntl
eGVjdXRhYmxlQml0RGVsdGF9ID0gJGV4ZWN1dGFibGVCaXREZWx0YTsKKyAgICAkaGVhZGVye2lu
ZGV4UGF0aH0gPSAkaW5kZXhQYXRoOworICAgICRoZWFkZXJ7c3ZuQ29udmVydGVkVGV4dH0gPSAk
c3ZuQ29udmVydGVkVGV4dDsKKworICAgIHJldHVybiAoXCVoZWFkZXIsICRfKTsKK30KKwogIyBD
b252ZXJ0IHNvbWUgbGluZXMgb2YgYSBnaXQtZm9ybWF0dGVkIHBhdGNoIHRvIFNWTiBmb3JtYXQs
IHdoaWxlCiAjIHByZXNlcnZpbmcgYW55IGVuZC1vZi1saW5lIGNoYXJhY3RlcnMuCiAjCkBAIC00
NTMsNiArNTQ2LDggQEAgc3ViIHBhcnNlRGlmZkhlYWRlcigkJCkKIAogICAgIG15ICRmaWx0ZXI7
CiAgICAgaWYgKCRsaW5lID1+IG0jXmRpZmYgLS1naXQgIykgeworICAgICAgICAjIEZJWE1FOiBE
ZWxldGUgdGhlIGdpdGRpZmYyc3ZuZGlmZigpIHN1YnJvdXRpbmUgYW5kIGNhbGwKKyAgICAgICAg
IyAgICAgICAgcGFyc2VHaXREaWZmSGVhZGVyKCkgaW5zdGVhZC4KICAgICAgICAgJGZpbHRlciA9
IFwmZ2l0ZGlmZjJzdm5kaWZmOwogICAgIH0KICAgICAkbGluZSA9ICYkZmlsdGVyKCRsaW5lKSBp
ZiAkZmlsdGVyOwpAQCAtNTIwLDYgKzYxNSwxMiBAQCBzdWIgcGFyc2VEaWZmSGVhZGVyKCQkKQog
ICAgIHJldHVybiAoXCVoZWFkZXIsICRsYXN0UmVhZExpbmUpOwogfQogCisjIEZJWE1FOiBUaGUg
JWRpZmZIYXNoICJvYmplY3QiIHNob3VsZCBub3QgaGF2ZSBhbiBzdm5Db252ZXJ0ZWRUZXh0IHBy
b3BlcnR5LgorIyAgICAgICAgSW5zdGVhZCwgdGhlIGhhc2ggb2JqZWN0IHNob3VsZCBzdG9yZSBp
dHMgaW5mb3JtYXRpb24gaW4gYQorIyAgICAgICAgc3RydWN0dXJlZCB3YXkgYXMgcHJvcGVydGll
cy4gIFRoaXMgc2hvdWxkIGJlIGRvbmUgaW4gYSB3YXkgc28KKyMgICAgICAgIHRoYXQsIGlmIG5l
Y2Vzc2FyeSwgdGhlIHRleHQgb2YgYW4gU1ZOIG9yIEdpdCBwYXRjaCBjYW4gYmUKKyMgICAgICAg
IHJlY29uc3RydWN0ZWQgZnJvbSB0aGUgaW5mb3JtYXRpb24gaW4gdGhvc2UgaGFzaCBwcm9wZXJ0
aWVzLgorIwogIyBBICVkaWZmSGFzaCBpcyBhIGhhc2ggcmVwcmVzZW50aW5nIGEgc291cmNlIGNv
bnRyb2wgZGlmZiBvZiBhIHNpbmdsZQogIyBmaWxlIG9wZXJhdGlvbiAoZS5nLiBhIGZpbGUgbW9k
aWZpY2F0aW9uLCBjb3B5LCBvciBkZWxldGUpLgogIwpAQCAtNTg5LDkgKzY5MCwxMiBAQCBzdWIg
cGFyc2VEaWZmKCQkKQogCiAgICAgbXkgJWRpZmZIYXNoUmVmOwogICAgICRkaWZmSGFzaFJlZntj
b3BpZWRGcm9tUGF0aH0gPSAkaGVhZGVySGFzaFJlZi0+e2NvcGllZEZyb21QYXRofTsKKyAgICAj
IEZJWE1FOiBBZGQgZXhlY3V0YWJsZUJpdERlbHRhIGFzIGEga2V5LgogICAgICRkaWZmSGFzaFJl
ZntpbmRleFBhdGh9ID0gJGhlYWRlckhhc2hSZWYtPntpbmRleFBhdGh9OwogICAgICMgRklYTUU6
IEFsc28gYWRkIHNjbUZvcm1hdCBmcm9tIHRoZSAkaGVhZGVySGFzaFJlZi4KICAgICAkZGlmZkhh
c2hSZWZ7c291cmNlUmV2aXNpb259ID0gJGhlYWRlckhhc2hSZWYtPntzb3VyY2VSZXZpc2lvbn07
CisgICAgIyBGSVhNRTogUmVtb3ZlIHRoZSBuZWVkIGZvciBzdm5Db252ZXJ0ZWRUZXh0LiAgU2Vl
IHRoZSAlZGlmZkhhc2gKKyAgICAjICAgICAgICBjb2RlIGNvbW1lbnRzIGFib3ZlIGZvciBtb3Jl
IGluZm9ybWF0aW9uLgogICAgICRkaWZmSGFzaFJlZntzdm5Db252ZXJ0ZWRUZXh0fSA9ICRzdm5U
ZXh0OwogCiAgICAgcmV0dXJuIChcJWRpZmZIYXNoUmVmLCAkbGluZSk7CmRpZmYgLS1naXQgYS9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHBlcmwvVkNTVXRpbHNfdW5pdHRlc3QvcGFyc2VHaXRE
aWZmSGVhZGVyLnBsIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL1ZDU1V0aWxzX3Vu
aXR0ZXN0L3BhcnNlR2l0RGlmZkhlYWRlci5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi44Njg5ZWRmCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRwZXJsL1ZDU1V0aWxzX3VuaXR0ZXN0L3BhcnNlR2l0RGlmZkhlYWRlci5wbApAQCAtMCww
ICsxLDI5NiBAQAorIyEvdXNyL2Jpbi9wZXJsIC13CisjCisjIENvcHlyaWdodCAoQykgMjAxMCBD
aHJpcyBKZXJkb25layAoY2plcmRvbmVrQHdlYmtpdC5vcmcpCisjCisjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisjIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyMgVW5pdCB0ZXN0cyBvZiBwYXJzZUdpdERpZmZIZWFk
ZXIoKS4KKwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsKKwordXNlIFRlc3Q6Ok1vcmU7Cit1
c2UgVkNTVXRpbHM7CisKKyMgVGhlIGFycmF5IG9mIHRlc3QgY2FzZXMuCitteSBAdGVzdENhc2VI
YXNoUmVmcyA9ICgKK3sgICAjIE5ldyB0ZXN0CisgICAgZGlmZk5hbWUgPT4gIk1vZGlmaWVkIGZp
bGUiLAorICAgIGlucHV0VGV4dCA9PiA8PCdFTkQnLAorZGlmZiAtLWdpdCBhL2Zvby5oIGIvZm9v
LmgKK2luZGV4IGY1ZDVlNzQuLjNiNmFhOTIgMTAwNjQ0CistLS0gYS9mb28uaAorKysrIGIvZm9v
LmgKK0BAIC0xICsxIEBACistZmlsZSBjb250ZW50cworK25ldyBmaWxlIGNvbnRlbnRzCitFTkQK
KyAgICBleHBlY3RlZFJldHVybiA9PiBbCit7CisgICAgc3ZuQ29udmVydGVkVGV4dCA9PiA8PCdF
TkQnLAorSW5kZXg6IGZvby5oCitpbmRleCBmNWQ1ZTc0Li4zYjZhYTkyIDEwMDY0NAorLS0tIGZv
by5oCisrKysgZm9vLmgKK0VORAorICAgIGV4ZWN1dGFibGVCaXREZWx0YSA9PiAwLAorICAgIGlu
ZGV4UGF0aCA9PiAiZm9vLmgiLAorfSwKKyJAQCAtMSArMSBAQFxuIl0sCisgICAgZXhwZWN0ZWRO
ZXh0TGluZSA9PiAiLWZpbGUgY29udGVudHNcbiIsCit9LAoreyAgICMgTmV3IHRlc3QKKyAgICBk
aWZmTmFtZSA9PiAiTmV3IGZpbGUiLAorICAgIGlucHV0VGV4dCA9PiA8PCdFTkQnLAorZGlmZiAt
LWdpdCBhL2Zvby5oIGIvZm9vLmgKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAw
Li4zYzlmMTE0CistLS0gL2Rldi9udWxsCisrKysgYi9mb28uaAorQEAgLTAsMCArMSwzNCBAQAor
KzxodG1sPgorRU5ECisgICAgZXhwZWN0ZWRSZXR1cm4gPT4gWworeworICAgIHN2bkNvbnZlcnRl
ZFRleHQgPT4gPDwnRU5EJywKK0luZGV4OiBmb28uaAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2lu
ZGV4IDAwMDAwMDAuLjNjOWYxMTQKKy0tLSBmb28uaAorKysrIGZvby5oCitFTkQKKyAgICBleGVj
dXRhYmxlQml0RGVsdGEgPT4gMCwKKyAgICBpbmRleFBhdGggPT4gImZvby5oIiwKK30sCisiQEAg
LTAsMCArMSwzNCBAQFxuIl0sCisgICAgZXhwZWN0ZWROZXh0TGluZSA9PiAiKzxodG1sPlxuIiwK
K30sCisjIyMjCisjICAgIEJpbmFyeSBmaWxlIHRlc3QgY2FzZXMKKyMjCit7CisgICAgIyBOZXcg
dGVzdCBjYXNlCisgICAgZGlmZk5hbWUgPT4gIk5ldyBiaW5hcnkgZmlsZSIsCisgICAgaW5wdXRU
ZXh0ID0+IDw8J0VORCcsCitkaWZmIC0tZ2l0IGEvZm9vLmdpZiBiL2Zvby5naWYKK25ldyBmaWxl
IG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42NGE5NTMyZTc3OTRmY2Q3OTFmNmYxMjE1NzQwNmQ5MDYwMTUxNjkwCitHSVQgYmluYXJ5
IHBhdGNoCitsaXRlcmFsIDcKK09jbVlleCZyZURhO3NPOCpGOUwpQgorCitsaXRlcmFsIDAKK0hj
bVY/ZDAwMDAxCisKK0VORAorICAgIGV4cGVjdGVkUmV0dXJuID0+IFsKK3sKKyAgICBzdm5Db252
ZXJ0ZWRUZXh0ID0+IDw8J0VORCcsCitJbmRleDogZm9vLmdpZgorbmV3IGZpbGUgbW9kZSAxMDA2
NDQKK2luZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY0YTk1
MzJlNzc5NGZjZDc5MWY2ZjEyMTU3NDA2ZDkwNjAxNTE2OTAKK0dJVCBiaW5hcnkgcGF0Y2gKK0VO
RAorICAgIGV4ZWN1dGFibGVCaXREZWx0YSA9PiAwLAorICAgIGluZGV4UGF0aCA9PiAiZm9vLmdp
ZiIsCit9LAorImxpdGVyYWwgN1xuIl0sCisgICAgZXhwZWN0ZWROZXh0TGluZSA9PiAiT2NtWWV4
JnJlRGE7c084KkY5TClCXG4iLAorfSwKK3sKKyAgICAjIE5ldyB0ZXN0IGNhc2UKKyAgICBkaWZm
TmFtZSA9PiAiRGVsZXRlZCBiaW5hcnkgZmlsZSIsCisgICAgaW5wdXRUZXh0ID0+IDw8J0VORCcs
CitkaWZmIC0tZ2l0IGEvZm9vLmdpZiBiL2Zvby5naWYKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAoraW5kZXggMzIzZmFlMC4uMDAwMDAwMAorR0lUIGJpbmFyeSBwYXRjaAorbGl0ZXJhbCAwCitI
Y21WP2QwMDAwMQorCitsaXRlcmFsIDcKK09jbVlleCZyZURhO3NPOCpGOUwpQgorCitFTkQKKyAg
ICBleHBlY3RlZFJldHVybiA9PiBbCit7CisgICAgc3ZuQ29udmVydGVkVGV4dCA9PiA8PCdFTkQn
LAorSW5kZXg6IGZvby5naWYKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggMzIzZmFl
MC4uMDAwMDAwMAorR0lUIGJpbmFyeSBwYXRjaAorRU5ECisgICAgZXhlY3V0YWJsZUJpdERlbHRh
ID0+IDAsCisgICAgaW5kZXhQYXRoID0+ICJmb28uZ2lmIiwKK30sCisibGl0ZXJhbCAwXG4iXSwK
KyAgICBleHBlY3RlZE5leHRMaW5lID0+ICJIY21WP2QwMDAwMVxuIiwKK30sCisjIyMjCisjICAg
IEV4ZWN1dGFibGUgYml0IHRlc3QgY2FzZXMKKyMjCit7CisgICAgIyBOZXcgdGVzdCBjYXNlCisg
ICAgZGlmZk5hbWUgPT4gIk1vZGlmaWVkIGV4ZWN1dGFibGUgZmlsZSIsCisgICAgaW5wdXRUZXh0
ID0+IDw8J0VORCcsCitkaWZmIC0tZ2l0IGEvZm9vIGIvZm9vCitpbmRleCBkMDNlMjQyLi40MzVh
ZDNhIDEwMDc1NQorLS0tIGEvZm9vCisrKysgYi9mb28KK0BAIC0xICsxIEBACistZmlsZSBjb250
ZW50cworK25ldyBmaWxlIGNvbnRlbnRzCisKK0VORAorICAgIGV4cGVjdGVkUmV0dXJuID0+IFsK
K3sKKyAgICBzdm5Db252ZXJ0ZWRUZXh0ID0+IDw8J0VORCcsCitJbmRleDogZm9vCitpbmRleCBk
MDNlMjQyLi40MzVhZDNhIDEwMDc1NQorLS0tIGZvbworKysrIGZvbworRU5ECisgICAgZXhlY3V0
YWJsZUJpdERlbHRhID0+IDAsCisgICAgaW5kZXhQYXRoID0+ICJmb28iLAorfSwKKyJAQCAtMSAr
MSBAQFxuIl0sCisgICAgZXhwZWN0ZWROZXh0TGluZSA9PiAiLWZpbGUgY29udGVudHNcbiIsCit9
LAoreworICAgICMgTmV3IHRlc3QgY2FzZQorICAgIGRpZmZOYW1lID0+ICJNYWtpbmcgZmlsZSBl
eGVjdXRhYmxlIChsYXN0IGRpZmYpIiwKKyAgICBpbnB1dFRleHQgPT4gPDwnRU5EJywKK2RpZmYg
LS1naXQgYS9mb28uZXhlIGIvZm9vLmV4ZQorb2xkIG1vZGUgMTAwNjQ0CituZXcgbW9kZSAxMDA3
NTUKK0VORAorICAgIGV4cGVjdGVkUmV0dXJuID0+IFsKK3sKKyAgICBzdm5Db252ZXJ0ZWRUZXh0
ID0+IDw8J0VORCcsCitJbmRleDogZm9vLmV4ZQorb2xkIG1vZGUgMTAwNjQ0CituZXcgbW9kZSAx
MDA3NTUKK0VORAorICAgIGV4ZWN1dGFibGVCaXREZWx0YSA9PiAxLAorICAgIGluZGV4UGF0aCA9
PiAiZm9vLmV4ZSIsCit9LAordW5kZWZdLAorICAgIGV4cGVjdGVkTmV4dExpbmUgPT4gdW5kZWYs
Cit9LAoreworICAgICMgTmV3IHRlc3QgY2FzZQorICAgIGRpZmZOYW1lID0+ICJNYWtpbmcgZmls
ZSBleGVjdXRhYmxlIChub3QgbGFzdCBkaWZmKSIsCisgICAgaW5wdXRUZXh0ID0+IDw8J0VORCcs
CitkaWZmIC0tZ2l0IGEvZm9vLmV4ZSBiL2Zvby5leGUKK29sZCBtb2RlIDEwMDY0NAorbmV3IG1v
ZGUgMTAwNzU1CitkaWZmIC0tZ2l0IGEvYW5vdGhlcl9maWxlLnR4dCBiL2Fub3RoZXJfZmlsZS50
eHQKK2luZGV4IGQwM2UyNDIuLjQzNWFkM2EgMTAwNzU1CitFTkQKKyAgICBleHBlY3RlZFJldHVy
biA9PiBbCit7CisgICAgc3ZuQ29udmVydGVkVGV4dCA9PiA8PCdFTkQnLAorSW5kZXg6IGZvby5l
eGUKK29sZCBtb2RlIDEwMDY0NAorbmV3IG1vZGUgMTAwNzU1CitFTkQKKyAgICBleGVjdXRhYmxl
Qml0RGVsdGEgPT4gMSwKKyAgICBpbmRleFBhdGggPT4gImZvby5leGUiLAorfSwKKyJkaWZmIC0t
Z2l0IGEvYW5vdGhlcl9maWxlLnR4dCBiL2Fub3RoZXJfZmlsZS50eHRcbiJdLAorICAgIGV4cGVj
dGVkTmV4dExpbmUgPT4gImluZGV4IGQwM2UyNDIuLjQzNWFkM2EgMTAwNzU1XG4iLAorfSwKK3sK
KyAgICAjIE5ldyB0ZXN0IGNhc2UKKyAgICBkaWZmTmFtZSA9PiAiTmV3IGV4ZWN1dGFibGUgZmls
ZSIsCisgICAgaW5wdXRUZXh0ID0+IDw8J0VORCcsCitkaWZmIC0tZ2l0IGEvZm9vIGIvZm9vCitu
ZXcgZmlsZSBtb2RlIDEwMDc1NQoraW5kZXggMDAwMDAwMC4uZDAzZTI0MgorLS0tIC9kZXYvbnVs
bAorKysrIGIvZm9vCitAQCAtMCwwICsxIEBACisrZmlsZSBjb250ZW50cworCitFTkQKKyAgICBl
eHBlY3RlZFJldHVybiA9PiBbCit7CisgICAgc3ZuQ29udmVydGVkVGV4dCA9PiA8PCdFTkQnLAor
SW5kZXg6IGZvbworbmV3IGZpbGUgbW9kZSAxMDA3NTUKK2luZGV4IDAwMDAwMDAuLmQwM2UyNDIK
Ky0tLSBmb28KKysrKyBmb28KK0VORAorICAgIGV4ZWN1dGFibGVCaXREZWx0YSA9PiAxLAorICAg
IGluZGV4UGF0aCA9PiAiZm9vIiwKK30sCisiQEAgLTAsMCArMSBAQFxuIl0sCisgICAgZXhwZWN0
ZWROZXh0TGluZSA9PiAiK2ZpbGUgY29udGVudHNcbiIsCit9LAoreworICAgICMgTmV3IHRlc3Qg
Y2FzZQorICAgIGRpZmZOYW1lID0+ICJEZWxldGVkIGV4ZWN1dGFibGUgZmlsZSIsCisgICAgaW5w
dXRUZXh0ID0+IDw8J0VORCcsCitkaWZmIC0tZ2l0IGEvZm9vIGIvZm9vCitkZWxldGVkIGZpbGUg
bW9kZSAxMDA3NTUKK2luZGV4IGQwM2UyNDIuLjAwMDAwMDAKKy0tLSBhL2ZvbworKysrIC9kZXYv
bnVsbAorQEAgLTEgKzAsMCBAQAorLWZpbGUgY29udGVudHMKKworRU5ECisgICAgZXhwZWN0ZWRS
ZXR1cm4gPT4gWworeworICAgIHN2bkNvbnZlcnRlZFRleHQgPT4gPDwnRU5EJywKK0luZGV4OiBm
b28KK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQoraW5kZXggZDAzZTI0Mi4uMDAwMDAwMAorLS0t
IGZvbworKysrIGZvbworRU5ECisgICAgZXhlY3V0YWJsZUJpdERlbHRhID0+IC0xLAorICAgIGlu
ZGV4UGF0aCA9PiAiZm9vIiwKK30sCisiQEAgLTEgKzAsMCBAQFxuIl0sCisgICAgZXhwZWN0ZWRO
ZXh0TGluZSA9PiAiLWZpbGUgY29udGVudHNcbiIsCit9LAorKTsKKworbXkgJHRlc3RDYXNlc0Nv
dW50ID0gQHRlc3RDYXNlSGFzaFJlZnM7CitwbGFuKHRlc3RzID0+IDIgKiAkdGVzdENhc2VzQ291
bnQpOyAjIFRvdGFsIG51bWJlciBvZiBhc3NlcnRpb25zLgorCitmb3JlYWNoIG15ICR0ZXN0Q2Fz
ZSAoQHRlc3RDYXNlSGFzaFJlZnMpIHsKKyAgICBteSAkdGVzdE5hbWVTdGFydCA9ICJwYXJzZUdp
dERpZmZIZWFkZXIoKTogJHRlc3RDYXNlLT57ZGlmZk5hbWV9OiBjb21wYXJpbmciOworCisgICAg
bXkgJGZpbGVIYW5kbGU7CisgICAgb3BlbigkZmlsZUhhbmRsZSwgIjwiLCBcJHRlc3RDYXNlLT57
aW5wdXRUZXh0fSk7CisgICAgbXkgJGxpbmUgPSA8JGZpbGVIYW5kbGU+OworCisgICAgbXkgQGdv
dCA9IFZDU1V0aWxzOjpwYXJzZUdpdERpZmZIZWFkZXIoJGZpbGVIYW5kbGUsICRsaW5lKTsKKyAg
ICBteSAkZXhwZWN0ZWRSZXR1cm4gPSAkdGVzdENhc2UtPntleHBlY3RlZFJldHVybn07CisKKyAg
ICBpc19kZWVwbHkoXEBnb3QsICRleHBlY3RlZFJldHVybiwgIiR0ZXN0TmFtZVN0YXJ0IHJldHVy
biB2YWx1ZS4iKTsKKworICAgIG15ICRnb3ROZXh0TGluZSA9IDwkZmlsZUhhbmRsZT47CisgICAg
aXMoJGdvdE5leHRMaW5lLCAkdGVzdENhc2UtPntleHBlY3RlZE5leHRMaW5lfSwgICIkdGVzdE5h
bWVTdGFydCBuZXh0IHJlYWQgbGluZS4iKTsKK30K
</data>

          </attachment>
      

    </bug>

</bugzilla>