<?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>54534</bug_id>
          
          <creation_ts>2011-02-15 23:59:43 -0800</creation_ts>
          <short_desc>RTL lineboundary left/right is reversed when cursor is at start of RTL container</short_desc>
          <delta_ts>2011-02-17 03:47:28 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</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="Benjamin (Ben) Kalman">kalman</reporter>
          <assigned_to name="Benjamin (Ben) Kalman">kalman</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>mitz</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xji</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>351910</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin (Ben) Kalman">kalman</who>
    <bug_when>2011-02-15 23:59:43 -0800</bug_when>
    <thetext>As described in the summary.  Test case attached.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351911</commentid>
    <comment_count>1</comment_count>
      <attachid>82596</attachid>
    <who name="Benjamin (Ben) Kalman">kalman</who>
    <bug_when>2011-02-16 00:00:13 -0800</bug_when>
    <thetext>Created attachment 82596
Test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352556</commentid>
    <comment_count>2</comment_count>
      <attachid>82744</attachid>
    <who name="Benjamin (Ben) Kalman">kalman</who>
    <bug_when>2011-02-16 19:56:33 -0800</bug_when>
    <thetext>Created attachment 82744
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352557</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-16 19:59:23 -0800</bug_when>
    <thetext>Attachment 82744 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/edit...&quot; exit_code: 1

LayoutTests/ChangeLog:8:  Line contains tab character.  [whitespace/tab] [5]
Source/WebCore/ChangeLog:10:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 2 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352569</commentid>
    <comment_count>4</comment_count>
      <attachid>82744</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-02-16 20:19:50 -0800</bug_when>
    <thetext>Comment on attachment 82744
Patch

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

The change looks fine but r- because you should address at least some of the style issues below:

&gt; LayoutTests/editing/selection/extend-left-right-by-lineboundary.html:2
&gt; +

I would personally put &lt;body&gt; than a blank line

&gt; LayoutTests/editing/selection/extend-left-right-by-lineboundary.html:9
&gt; +
&gt; +&lt;pre id=&quot;console&quot;&gt;&lt;/pre&gt;
&gt; +

Are these blank lines needed?

&gt; LayoutTests/editing/selection/extend-left-right-by-lineboundary.html:14
&gt; +    function log(text) {
&gt; +        document.getElementById(&quot;console&quot;).appendChild(document.createTextNode(text + &quot;\n&quot;));
&gt; +    }
&gt; +

I don&apos;t think we need to indent all these functions.  It just bloats the patch/file size.

&gt; LayoutTests/editing/selection/extend-left-right-by-lineboundary.html:31
&gt; +        assertEquals(&quot;&quot;, getSelection().toString(), &quot;extend left from left&quot;);

Isn&apos;t it better to check the offset values here?  For example, this wouldn&apos;t detect when the caret moved to the opposite side, right?

&gt; LayoutTests/editing/selection/extend-left-right-by-lineboundary.html:51
&gt; +    for (var i = 0; i &lt; testContainers.length; i++) {
&gt; +        runTestForContainer(testContainers[i]);
&gt; +    }

No curly brackets around one line statements.

&gt; LayoutTests/editing/selection/extend-left-right-by-lineboundary.html:56
&gt; +        while (testContainers.length &gt; 0) {
&gt; +            document.body.removeChild(testContainers[0]);
&gt; +        }

Ditto.

&gt; Source/WebCore/editing/SelectionController.cpp:421
&gt; -        if (directionOfEnclosingBlock() == LTR)
&gt; -            pos = pos.next(true);
&gt; -        else
&gt; -            pos = pos.previous(true);
&gt; +        pos = (directionOfEnclosingBlock() == LTR) ?  pos.next(true) : pos.previous(true);

I&apos;m not sure if we should use ternary expression here.  It seems like we use explicit if/else expressions everywhere else in this file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352570</commentid>
    <comment_count>5</comment_count>
      <attachid>82744</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-02-16 20:20:40 -0800</bug_when>
    <thetext>Comment on attachment 82744
Patch

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

&gt; Source/WebCore/editing/SelectionController.cpp:570
&gt; -        if (directionOfEnclosingBlock() == LTR)
&gt; -            pos = pos.previous(true);
&gt; -        else
&gt; -            pos = pos.next(true);
&gt; +        pos = (directionOfEnclosingBlock() == LTR) ? pos.previous(true) : pos.next(true);

Ditto about ternary expression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352609</commentid>
    <comment_count>6</comment_count>
      <attachid>82744</attachid>
    <who name="Benjamin (Ben) Kalman">kalman</who>
    <bug_when>2011-02-16 21:51:30 -0800</bug_when>
    <thetext>Comment on attachment 82744
Patch

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

&gt;&gt; LayoutTests/editing/selection/extend-left-right-by-lineboundary.html:2
&gt;&gt; +
&gt; 
&gt; I would personally put &lt;body&gt; than a blank line

but then i need a body at the end.  it&apos;s much of a muchness and blank lines are less noisy than &lt;body&gt; tags.

&gt;&gt; LayoutTests/editing/selection/extend-left-right-by-lineboundary.html:9
&gt;&gt; +
&gt; 
&gt; Are these blank lines needed?

no... but i think it&apos;s neater to separate the test divs from the log?

&gt;&gt; LayoutTests/editing/selection/extend-left-right-by-lineboundary.html:31
&gt;&gt; +        assertEquals(&quot;&quot;, getSelection().toString(), &quot;extend left from left&quot;);
&gt; 
&gt; Isn&apos;t it better to check the offset values here?  For example, this wouldn&apos;t detect when the caret moved to the opposite side, right?

I suppose not, but that sort of bug would surely be picked up in lots of other layout tests i.e. it&apos;s equivalent to a modify(&quot;extend&quot;) behaving like modify(&quot;move&quot;).  Doing it this way gives a nice FAIL output statement though, in assertEquals.

&gt;&gt; Source/WebCore/editing/SelectionController.cpp:421
&gt;&gt; +        pos = (directionOfEnclosingBlock() == LTR) ?  pos.next(true) : pos.previous(true);
&gt; 
&gt; I&apos;m not sure if we should use ternary expression here.  It seems like we use explicit if/else expressions everywhere else in this file.

I like ternary ifs in situations like this, it&apos;s cleaner and semantically more correct i.e. &quot;assign a value to pos; the value depends on whether it&apos;s LTR or RTL&quot; is functional, whereas using if/else is procedural.

That&apos;s somewhat of a more general philosophic point though, and you&apos;re right that this makes it unlike the rest of the file, so I don&apos;t mind changing it (back) to using if/else.

That said, this whole file could be significantly less bulky if all the assignments were changed to be like this.  Maybe save 50 lines?  There are other examples too, like

if (directionOfEnclosingBlock() == LTR)
    baseIsStart = true;
else
    baseIsStart = false;
break;

(line 348) could/should just be

baseIsStart = directionOfEnclosingBlock() == LTR;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352610</commentid>
    <comment_count>7</comment_count>
      <attachid>82756</attachid>
    <who name="Benjamin (Ben) Kalman">kalman</who>
    <bug_when>2011-02-16 22:00:57 -0800</bug_when>
    <thetext>Created attachment 82756
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352611</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-02-16 22:15:07 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; but then i need a body at the end.  it&apos;s much of a muchness and blank lines are less noisy than &lt;body&gt; tags.

ok.

&gt; &gt;&gt; LayoutTests/editing/selection/extend-left-right-by-lineboundary.html:9
&gt; &gt;&gt; +
&gt; &gt; 
&gt; &gt; Are these blank lines needed?
&gt; 
&gt; no... but i think it&apos;s neater to separate the test divs from the log?

I don&apos;t think so.  It just adds noise especially a blank line immediately after DOCTYPE.

&gt; &gt;&gt; LayoutTests/editing/selection/extend-left-right-by-lineboundary.html:31
&gt; &gt;&gt; +        assertEquals(&quot;&quot;, getSelection().toString(), &quot;extend left from left&quot;);
&gt; &gt; 
&gt; &gt; Isn&apos;t it better to check the offset values here?  For example, this wouldn&apos;t detect when the caret moved to the opposite side, right?
&gt; 
&gt; I suppose not, but that sort of bug would surely be picked up in lots of other layout tests i.e. it&apos;s equivalent to a modify(&quot;extend&quot;) behaving like modify(&quot;move&quot;).  Doing it this way gives a nice FAIL output statement though, in assertEquals.

I&apos;m not sure.  For example, if the selection was changed from [text, 0] to [div, 0] where we have div &gt; text, then toString returns the same result.  I don&apos;t think the verification we have is strong enough.  We should make sure to catch any small regression there could be.

&gt; That&apos;s somewhat of a more general philosophic point though, and you&apos;re right that this makes it unlike the rest of the file, so I don&apos;t mind changing it (back) to using if/else.

Right.  We should at least do that in a separate patch but I&apos;m not sure if everyone agrees with you.  I remember someone objected it when I proposed that change before.

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

&gt; LayoutTests/ChangeLog:8
&gt; +        Add regression test.

You should explain what kind of a test you&apos;re adding here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352617</commentid>
    <comment_count>9</comment_count>
      <attachid>82757</attachid>
    <who name="Benjamin (Ben) Kalman">kalman</who>
    <bug_when>2011-02-16 22:56:48 -0800</bug_when>
    <thetext>Created attachment 82757
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352619</commentid>
    <comment_count>10</comment_count>
      <attachid>82757</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-02-16 23:04:22 -0800</bug_when>
    <thetext>Comment on attachment 82757
Patch

Thanks for fixing this bug!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352626</commentid>
    <comment_count>11</comment_count>
      <attachid>82760</attachid>
    <who name="Benjamin (Ben) Kalman">kalman</who>
    <bug_when>2011-02-16 23:27:57 -0800</bug_when>
    <thetext>Created attachment 82760
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352660</commentid>
    <comment_count>12</comment_count>
      <attachid>82760</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-17 01:02:45 -0800</bug_when>
    <thetext>Comment on attachment 82760
Patch for landing

Clearing flags on attachment: 82760

Committed r78799: &lt;http://trac.webkit.org/changeset/78799&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352661</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-17 01:02:50 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>352735</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-17 03:47:28 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/78799 might have broken GTK Linux 32-bit Debug</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>82596</attachid>
            <date>2011-02-16 00:00:13 -0800</date>
            <delta_ts>2011-02-16 00:00:13 -0800</delta_ts>
            <desc>Test case</desc>
            <filename>27.html</filename>
            <type>text/html</type>
            <size>1246</size>
            <attacher name="Benjamin (Ben) Kalman">kalman</attacher>
            
              <data encoding="base64">PHN0eWxlPgogIC5kaXYgewogICAgd2lkdGg6IDIwMHB4OwogICAgYm9yZGVyOiAxcHggZG90dGVk
IGJsYWNrOwogIH0KPC9zdHlsZT4KClRoaXMgZGVtb25zdHJhdGVzIGEgYnVnIHdpdGggUlRMIGxp
bmVib3VuZGFyeSBzZWxlY3Rpb24gZXh0ZW5zaW9uLCB3aGVuIHRoZSBjdXJzb3IgaXMgYXQgdGhl
IHN0YXJ0IG9mIHRoZSBSVEwgY29udGFpbmVyLjxici8+CkNsaWNrICJyZXNldCIgdG8gcHV0IHRo
ZSBjdXJzb3IgYXQgdGhlIHN0YXJ0LCB0aGVuIG9ic2VydmUgImxlZnQiIGdvaW5nIHJpZ2h0ICh3
ZWxsLCBwcmVzdW1hYmx5LCBzaW5jZSBpdCBkb2Vzbid0IGRvIGFueXRoaW5nKSBhbmQgInJpZ2h0
IiBnb2luZyBsZWZ0Ljxici8+ClB1dHRpbmcgdGhlIGN1cnNvciBzb21ld2hlcmUgb3RoZXIgdGhh
biB0aGUgc3RhcnQgd2lsbCBjYXVzZSAibGVmdCIgYW5kICJyaWdodCIgdG8gYmVoYXZlIGFzIGV4
cGVjdGVkLjwvYnI+PGJyLz4KCjxkaXYgY2xhc3M9ImRpdiIgY29udGVudGVkaXRhYmxlIGRpcj0i
cnRsIj50aGlzIGlzIHNvbWUgcnRsIHRleHQ8L2Rpdj4KCjxici8+CjxidXR0b24gb25jbGljaz0i
cmVzZXQoKSI+cmVzZXQ8L2J1dHRvbj4KPGJ1dHRvbiBvbmNsaWNrPSJsZWZ0KCkiPmxlZnQ8L2J1
dHRvbj4KPGJ1dHRvbiBvbmNsaWNrPSJyaWdodCgpIj5yaWdodDwvYnV0dG9uPgoKPHNjcmlwdD4K
ICBmdW5jdGlvbiByZXNldCgpIHsKICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5
VGFnTmFtZSgiZGl2IilbMF07CiAgICBnZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbihkaXYsIDAp
OwogIH0KICBmdW5jdGlvbiBsZWZ0KCkgewogICAgZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCJleHRl
bmQiLCAibGVmdCIsICJsaW5lYm91bmRhcnkiKTsKICB9CiAgZnVuY3Rpb24gcmlnaHQoKSB7CiAg
ICBnZXRTZWxlY3Rpb24oKS5tb2RpZnkoImV4dGVuZCIsICJyaWdodCIsICJsaW5lYm91bmRhcnki
KTsKICB9CgogIChmdW5jdGlvbigpIHsKICAgIHZhciBidXR0b25zID0gZG9jdW1lbnQuZ2V0RWxl
bWVudHNCeVRhZ05hbWUoImJ1dHRvbiIpOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBidXR0b25z
Lmxlbmd0aDsgaSsrKSB7CiAgICAgIGJ1dHRvbnNbaV0ub25tb3VzZWRvd24gPSBmdW5jdGlvbihl
dmVudCkgewogICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOwogICAgICAgIGV2ZW50LnBy
ZXZlbnREZWZhdWx0KCk7CiAgICAgIH07CiAgICB9CiAgfSkoKTsKPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82744</attachid>
            <date>2011-02-16 19:56:33 -0800</date>
            <delta_ts>2011-02-16 22:00:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54534-20110217145630.patch</filename>
            <type>text/plain</type>
            <size>8888</size>
            <attacher name="Benjamin (Ben) Kalman">kalman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzg2NDYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4YjEzZWNhNDEyZDQ3MGVlYTk1Mjg3
ZGUzY2Y0ZDNjZjRjNTMzN2E1Li4xODdjNjk0MjZmZjU4N2I5MDM0ZDAyMDI1YWM0ZTg3NDgzZDY4
MTQ0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDItMTYgIEJlbmphbWluIEthbG1hbiAg
PGthbG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUlRMIGxpbmVib3VuZGFyeSBsZWZ0L3JpZ2h0IGlzIHJldmVyc2VkIHdo
ZW4gY3Vyc29yIGlzIGF0IHN0YXJ0IG9mIFJUTCBjb250YWluZXIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0NTM0CisKKwlBZGQgcmVncmVzc2lvbiB0
ZXN0LgorCisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLWxlZnQtcmlnaHQtYnkt
bGluZWJvdW5kYXJ5LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9zZWxl
Y3Rpb24vZXh0ZW5kLWxlZnQtcmlnaHQtYnktbGluZWJvdW5kYXJ5Lmh0bWw6IEFkZGVkLgorCiAy
MDExLTAyLTE1ICBCZW5qYW1pbiBLYWxtYW4gIDxrYWxtYW5AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRp
dGluZy9zZWxlY3Rpb24vZXh0ZW5kLWxlZnQtcmlnaHQtYnktbGluZWJvdW5kYXJ5LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1sZWZ0LXJpZ2h0LWJ5
LWxpbmVib3VuZGFyeS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjYwOTc4ZDFmZTg2N2NhZGIw
MjYzNDUwMGU4ODNjNGZjNmQ3NTMxYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1sZWZ0LXJpZ2h0LWJ5LWxpbmVib3VuZGFyeS1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwyNSBAQAorVGVzdGluZyBsdHIgY29udGFpbmVyIHdpdGggY29udGVu
dHMgIteW15fXmCDXmdea15sg15zXndeeINeW15fXmCDXmdea15sg15zXndeeIjoKK1BBU1MgKGV4
dGVuZCBsZWZ0IGZyb20gbGVmdCkKK1BBU1MgKGV4dGVuZCByaWdodCBmcm9tIGxlZnQpCitQQVNT
IChleHRlbmQgcmlnaHQgZnJvbSByaWdodCkKK1BBU1MgKGV4dGVuZCBsZWZ0IGZyb20gcmlnaHQp
CisKK1Rlc3RpbmcgbHRyIGNvbnRhaW5lciB3aXRoIGNvbnRlbnRzICJ0aGlzIGlzIHNvbWUgbHRy
IHRleHQgaW4gYW4gcnRsIGNvbnRhaW5lciI6CitQQVNTIChleHRlbmQgbGVmdCBmcm9tIGxlZnQp
CitQQVNTIChleHRlbmQgcmlnaHQgZnJvbSBsZWZ0KQorUEFTUyAoZXh0ZW5kIHJpZ2h0IGZyb20g
cmlnaHQpCitQQVNTIChleHRlbmQgbGVmdCBmcm9tIHJpZ2h0KQorCitUZXN0aW5nIHJ0bCBjb250
YWluZXIgd2l0aCBjb250ZW50cyAi15bXl9eYINeZ15rXmyDXnNed154g15bXl9eYINeZ15rXmyDX
nNed154iOgorUEFTUyAoZXh0ZW5kIGxlZnQgZnJvbSBsZWZ0KQorUEFTUyAoZXh0ZW5kIHJpZ2h0
IGZyb20gbGVmdCkKK1BBU1MgKGV4dGVuZCByaWdodCBmcm9tIHJpZ2h0KQorUEFTUyAoZXh0ZW5k
IGxlZnQgZnJvbSByaWdodCkKKworVGVzdGluZyBydGwgY29udGFpbmVyIHdpdGggY29udGVudHMg
InRoaXMgaXMgc29tZSBsdHIgdGV4dCBpbiBhbiBydGwgY29udGFpbmVyIjoKK1BBU1MgKGV4dGVu
ZCBsZWZ0IGZyb20gbGVmdCkKK1BBU1MgKGV4dGVuZCByaWdodCBmcm9tIGxlZnQpCitQQVNTIChl
eHRlbmQgcmlnaHQgZnJvbSByaWdodCkKK1BBU1MgKGV4dGVuZCBsZWZ0IGZyb20gcmlnaHQpCisK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLWxlZnQt
cmlnaHQtYnktbGluZWJvdW5kYXJ5Lmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlv
bi9leHRlbmQtbGVmdC1yaWdodC1ieS1saW5lYm91bmRhcnkuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYTdk
Yzg4OTdkMTRjNzEwZGIxZWEyNjhmYjRjNDVlZWE0ZDc3ZjM0Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLWxlZnQtcmlnaHQtYnktbGluZWJv
dW5kYXJ5Lmh0bWwKQEAgLTAsMCArMSw1OSBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxkaXYgY29u
dGVudGVkaXRhYmxlIGRpcj0ibHRyIj4mIzE0OTQ7JiMxNDk1OyYjMTQ5NjsgJiMxNDk3OyYjMTQ5
ODsmIzE0OTk7ICYjMTUwMDsmIzE1MDE7JiMxNTAyOyAmIzE0OTQ7JiMxNDk1OyYjMTQ5NjsgJiMx
NDk3OyYjMTQ5ODsmIzE0OTk7ICYjMTUwMDsmIzE1MDE7JiMxNTAyOzwvZGl2PgorPGRpdiBjb250
ZW50ZWRpdGFibGUgZGlyPSJsdHIiPnRoaXMgaXMgc29tZSBsdHIgdGV4dCBpbiBhbiBydGwgY29u
dGFpbmVyPC9kaXY+Cis8ZGl2IGNvbnRlbnRlZGl0YWJsZSBkaXI9InJ0bCI+JiMxNDk0OyYjMTQ5
NTsmIzE0OTY7ICYjMTQ5NzsmIzE0OTg7JiMxNDk5OyAmIzE1MDA7JiMxNTAxOyYjMTUwMjsgJiMx
NDk0OyYjMTQ5NTsmIzE0OTY7ICYjMTQ5NzsmIzE0OTg7JiMxNDk5OyAmIzE1MDA7JiMxNTAxOyYj
MTUwMjs8L2Rpdj4KKzxkaXYgY29udGVudGVkaXRhYmxlIGRpcj0icnRsIj50aGlzIGlzIHNvbWUg
bHRyIHRleHQgaW4gYW4gcnRsIGNvbnRhaW5lcjwvZGl2PgorCis8cHJlIGlkPSJjb25zb2xlIj48
L3ByZT4KKworPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBsb2codGV4dCkgeworICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKHRleHQgKyAiXG4iKSk7CisgICAgfQorCisgICAgZnVuY3Rpb24gYXNzZXJ0RXF1
YWxzKGV4cGVjdGVkLCBhY3R1YWwsIG1lc3NhZ2UpIHsKKyAgICAgICAgaWYgKGV4cGVjdGVkID09
PSBhY3R1YWwpCisgICAgICAgICAgICBsb2coIlBBU1MgKCIgKyBtZXNzYWdlICsgIikiKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgbG9nKCJGQUlMICgiICsgbWVzc2FnZSArICIpOiBleHBl
Y3RlZCBcIiIgKyBleHBlY3RlZCArICJcIiBidXQgd2FzIFwiIiArIGFjdHVhbCArICJcIiIpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RGb3JDb250YWluZXIoY29udGFpbmVyKSB7Cisg
ICAgICAgIGxvZygiVGVzdGluZyAiICsgY29udGFpbmVyLmRpciArICIgY29udGFpbmVyIHdpdGgg
Y29udGVudHMgXCIiICsgY29udGFpbmVyLmlubmVyVGV4dCArICJcIjoiKTsKKworICAgICAgICB2
YXIgdGV4dExlbmd0aCA9IGNvbnRhaW5lci50ZXh0Q29udGVudC5sZW5ndGg7CisgICAgICAgIHZh
ciByaWdodG1vc3RPZmZzZXQgPSBjb250YWluZXIuZGlyID09PSAicnRsIiA/IDAgOiB0ZXh0TGVu
Z3RoOworICAgICAgICB2YXIgbGVmdG1vc3RPZmZzZXQgPSBjb250YWluZXIuZGlyID09PSAicnRs
IiA/IHRleHRMZW5ndGggOiAwOworCisgICAgICAgIGdldFNlbGVjdGlvbigpLnNldFBvc2l0aW9u
KGNvbnRhaW5lciwgbGVmdG1vc3RPZmZzZXQpOworICAgICAgICBnZXRTZWxlY3Rpb24oKS5tb2Rp
ZnkoImV4dGVuZCIsICJsZWZ0IiwgImxpbmVib3VuZGFyeSIpOworICAgICAgICBhc3NlcnRFcXVh
bHMoIiIsIGdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCksICJleHRlbmQgbGVmdCBmcm9tIGxlZnQi
KTsKKworICAgICAgICBnZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbihjb250YWluZXIsIGxlZnRt
b3N0T2Zmc2V0KTsKKyAgICAgICAgZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCJleHRlbmQiLCAicmln
aHQiLCAibGluZWJvdW5kYXJ5Iik7CisgICAgICAgIGFzc2VydEVxdWFscyhjb250YWluZXIudGV4
dENvbnRlbnQsIGdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCksICJleHRlbmQgcmlnaHQgZnJvbSBs
ZWZ0Iik7CisKKyAgICAgICAgZ2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24oY29udGFpbmVyLCBy
aWdodG1vc3RPZmZzZXQpOworICAgICAgICBnZXRTZWxlY3Rpb24oKS5tb2RpZnkoImV4dGVuZCIs
ICJyaWdodCIsICJsaW5lYm91bmRhcnkiKTsKKyAgICAgICAgYXNzZXJ0RXF1YWxzKCIiLCBnZXRT
ZWxlY3Rpb24oKS50b1N0cmluZygpLCAiZXh0ZW5kIHJpZ2h0IGZyb20gcmlnaHQiKTsKKworICAg
ICAgICBnZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbihjb250YWluZXIsIHJpZ2h0bW9zdE9mZnNl
dCk7CisgICAgICAgIGdldFNlbGVjdGlvbigpLm1vZGlmeSgiZXh0ZW5kIiwgImxlZnQiLCAibGlu
ZWJvdW5kYXJ5Iik7CisgICAgICAgIGFzc2VydEVxdWFscyhjb250YWluZXIudGV4dENvbnRlbnQs
IGdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCksICJleHRlbmQgbGVmdCBmcm9tIHJpZ2h0Iik7CisK
KyAgICAgICAgbG9nKCIiKTsKKyAgICB9CisKKyAgICB2YXIgdGVzdENvbnRhaW5lcnMgPSBkb2N1
bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiZGl2Iik7CisgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCB0ZXN0Q29udGFpbmVycy5sZW5ndGg7IGkrKykgeworICAgICAgICBydW5UZXN0Rm9yQ29udGFp
bmVyKHRlc3RDb250YWluZXJzW2ldKTsKKyAgICB9CisKKyAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7CisgICAgICAgIHdoaWxlICh0ZXN0Q29udGFpbmVycy5sZW5ndGggPiAw
KSB7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHRlc3RDb250YWluZXJz
WzBdKTsKKyAgICAgICAgfQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CisgICAgfQorPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTNhNmMwM2JhNTFiM2M4OWMyNDRm
YzY3ZmRjMTcwNTU3MTJhYTRjYS4uNWU2NGIwYWQ4ZjBjMmRjNzA2N2RmZTc4YjBlMGZhNzQ1MjE1
OTRjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDExLTAyLTE2ICBCZW5qYW1pbiBL
YWxtYW4gIDxrYWxtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJUTCBsaW5lYm91bmRhcnkgbGVmdC9yaWdodCBpcyByZXZl
cnNlZCB3aGVuIGN1cnNvciBpcyBhdCBzdGFydCBvZiBSVEwgY29udGFpbmVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDUzNAorCisgICAgICAgIFRl
c3Q6IGVkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1sZWZ0LXJpZ2h0LWJ5LWxpbmVib3VuZGFyeS5o
dG1sCisKKwlBZGQgbWlzc2luZyBjYXNlcyBmb3IgZXh0ZW5kaW5nIGxlZnQvcmlnaHQgYnkgbGlu
ZWJvdW5kYXJ5LgorCisgICAgICAgICogZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdGlvbkNvbnRyb2xsZXI6Om1vZGlmeUV4dGVuZGluZ1Jp
Z2h0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdGlvbkNvbnRyb2xsZXI6Om1vZGlmeUV4dGVu
ZGluZ0xlZnQpOgorCiAyMDExLTAyLTE0ICBKZXJlbXkgT3Jsb3cgIDxqb3Jsb3dAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1NlbGVjdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IDUzMGYzMzUxOGM2YmI4
ODY2N2JmYWJkNzJlNmU4ZGU1MWNhMTBiNDYuLmEzZWJlNmIyZjk1YTNiYWUzZTUxYTk2NjEwMDBh
NWNkMDM2MTkxYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9u
Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25Db250
cm9sbGVyLmNwcApAQCAtNDE4LDIyICs0MTgsMTggQEAgVmlzaWJsZVBvc2l0aW9uIFNlbGVjdGlv
bkNvbnRyb2xsZXI6Om1vZGlmeUV4dGVuZGluZ1JpZ2h0KFRleHRHcmFudWxhcml0eSBncmFudWwK
ICAgICAvLyBidXQgaXQgZXh0ZW5kcyBiYWNrd2FyZCBsb2dpY2FsbHkgaWYgdGhlIGVuY2xvc2lu
ZyBibG9jayBpcyBSVEwgZGlyZWN0aW9uLgogICAgIHN3aXRjaCAoZ3JhbnVsYXJpdHkpIHsKICAg
ICBjYXNlIENoYXJhY3RlckdyYW51bGFyaXR5OgotICAgICAgICBpZiAoZGlyZWN0aW9uT2ZFbmNs
b3NpbmdCbG9jaygpID09IExUUikKLSAgICAgICAgICAgIHBvcyA9IHBvcy5uZXh0KHRydWUpOwot
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBwb3MgPSBwb3MucHJldmlvdXModHJ1ZSk7CisgICAg
ICAgIHBvcyA9IChkaXJlY3Rpb25PZkVuY2xvc2luZ0Jsb2NrKCkgPT0gTFRSKSA/ICBwb3MubmV4
dCh0cnVlKSA6IHBvcy5wcmV2aW91cyh0cnVlKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBX
b3JkR3JhbnVsYXJpdHk6Ci0gICAgICAgIGlmIChkaXJlY3Rpb25PZkVuY2xvc2luZ0Jsb2NrKCkg
PT0gTFRSKQotICAgICAgICAgICAgcG9zID0gbmV4dFdvcmRQb3NpdGlvbihwb3MpOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBwb3MgPSBwcmV2aW91c1dvcmRQb3NpdGlvbihwb3MpOworICAg
ICAgICBwb3MgPSAoZGlyZWN0aW9uT2ZFbmNsb3NpbmdCbG9jaygpID09IExUUikgPyBuZXh0V29y
ZFBvc2l0aW9uKHBvcykgOiBwcmV2aW91c1dvcmRQb3NpdGlvbihwb3MpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIExpbmVCb3VuZGFyeToKKyAgICAgICAgcG9zID0gKGRpcmVjdGlvbk9mRW5j
bG9zaW5nQmxvY2soKSA9PSBMVFIpID8gbW9kaWZ5RXh0ZW5kaW5nRm9yd2FyZChncmFudWxhcml0
eSkgOiBtb2RpZnlFeHRlbmRpbmdCYWNrd2FyZChncmFudWxhcml0eSk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgU2VudGVuY2VHcmFudWxhcml0eToKICAgICBjYXNlIExpbmVHcmFudWxhcml0
eToKICAgICBjYXNlIFBhcmFncmFwaEdyYW51bGFyaXR5OgogICAgIGNhc2UgU2VudGVuY2VCb3Vu
ZGFyeToKLSAgICBjYXNlIExpbmVCb3VuZGFyeToKICAgICBjYXNlIFBhcmFncmFwaEJvdW5kYXJ5
OgogICAgIGNhc2UgRG9jdW1lbnRCb3VuZGFyeToKICAgICAgICAgLy8gRklYTUU6IGltcGxlbWVu
dCBhbGwgb2YgdGhlIGFib3ZlPwpAQCAtNDQxLDcgKzQzNyw3IEBAIFZpc2libGVQb3NpdGlvbiBT
ZWxlY3Rpb25Db250cm9sbGVyOjptb2RpZnlFeHRlbmRpbmdSaWdodChUZXh0R3JhbnVsYXJpdHkg
Z3JhbnVsCiAgICAgfQogICAgIHJldHVybiBwb3M7CiB9Ci0gICAgICAgIAorCiBWaXNpYmxlUG9z
aXRpb24gU2VsZWN0aW9uQ29udHJvbGxlcjo6bW9kaWZ5RXh0ZW5kaW5nRm9yd2FyZChUZXh0R3Jh
bnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgVmlzaWJsZVBvc2l0aW9uIHBvcyhtX3NlbGVj
dGlvbi5leHRlbnQoKSwgbV9zZWxlY3Rpb24uYWZmaW5pdHkoKSk7CkBAIC01NzEsMjIgKzU2Nywx
OCBAQCBWaXNpYmxlUG9zaXRpb24gU2VsZWN0aW9uQ29udHJvbGxlcjo6bW9kaWZ5RXh0ZW5kaW5n
TGVmdChUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYQogICAgIC8vIGJ1dCBpdCBleHRlbmRzIGZvcndh
cmQgbG9naWNhbGx5IGlmIHRoZSBlbmNsb3NpbmcgYmxvY2sgaXMgUlRMIGRpcmVjdGlvbi4KICAg
ICBzd2l0Y2ggKGdyYW51bGFyaXR5KSB7CiAgICAgY2FzZSBDaGFyYWN0ZXJHcmFudWxhcml0eToK
LSAgICAgICAgaWYgKGRpcmVjdGlvbk9mRW5jbG9zaW5nQmxvY2soKSA9PSBMVFIpCi0gICAgICAg
ICAgICBwb3MgPSBwb3MucHJldmlvdXModHJ1ZSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAg
IHBvcyA9IHBvcy5uZXh0KHRydWUpOworICAgICAgICBwb3MgPSAoZGlyZWN0aW9uT2ZFbmNsb3Np
bmdCbG9jaygpID09IExUUikgPyBwb3MucHJldmlvdXModHJ1ZSkgOiBwb3MubmV4dCh0cnVlKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBXb3JkR3JhbnVsYXJpdHk6Ci0gICAgICAgIGlmIChk
aXJlY3Rpb25PZkVuY2xvc2luZ0Jsb2NrKCkgPT0gTFRSKQotICAgICAgICAgICAgcG9zID0gcHJl
dmlvdXNXb3JkUG9zaXRpb24ocG9zKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcG9zID0g
bmV4dFdvcmRQb3NpdGlvbihwb3MpOworICAgICAgICBwb3MgPSAoZGlyZWN0aW9uT2ZFbmNsb3Np
bmdCbG9jaygpID09IExUUikgPyBwcmV2aW91c1dvcmRQb3NpdGlvbihwb3MpIDogbmV4dFdvcmRQ
b3NpdGlvbihwb3MpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIExpbmVCb3VuZGFyeToKKyAg
ICAgICAgcG9zID0gKGRpcmVjdGlvbk9mRW5jbG9zaW5nQmxvY2soKSA9PSBMVFIpID8gbW9kaWZ5
RXh0ZW5kaW5nQmFja3dhcmQoZ3JhbnVsYXJpdHkpIDogbW9kaWZ5RXh0ZW5kaW5nRm9yd2FyZChn
cmFudWxhcml0eSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU2VudGVuY2VHcmFudWxhcml0
eToKICAgICBjYXNlIExpbmVHcmFudWxhcml0eToKICAgICBjYXNlIFBhcmFncmFwaEdyYW51bGFy
aXR5OgogICAgIGNhc2UgU2VudGVuY2VCb3VuZGFyeToKLSAgICBjYXNlIExpbmVCb3VuZGFyeToK
ICAgICBjYXNlIFBhcmFncmFwaEJvdW5kYXJ5OgogICAgIGNhc2UgRG9jdW1lbnRCb3VuZGFyeToK
ICAgICAgICAgcG9zID0gbW9kaWZ5RXh0ZW5kaW5nQmFja3dhcmQoZ3JhbnVsYXJpdHkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82756</attachid>
            <date>2011-02-16 22:00:57 -0800</date>
            <delta_ts>2011-02-16 22:56:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54534-20110217170054.patch</filename>
            <type>text/plain</type>
            <size>7604</size>
            <attacher name="Benjamin (Ben) Kalman">kalman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzg2NDYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4YjEzZWNhNDEyZDQ3MGVlYTk1Mjg3
ZGUzY2Y0ZDNjZjRjNTMzN2E1Li44M2I2Njc5YzJkNTZiM2JkMmZmNWExZmVlMTYyZTE3MGRjNDUz
MDVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDItMTYgIEJlbmphbWluIEthbG1hbiAg
PGthbG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUlRMIGxpbmVib3VuZGFyeSBsZWZ0L3JpZ2h0IGlzIHJldmVyc2VkIHdo
ZW4gY3Vyc29yIGlzIGF0IHN0YXJ0IG9mIFJUTCBjb250YWluZXIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0NTM0CisKKyAgICAgICAgQWRkIHJlZ3Jl
c3Npb24gdGVzdC4KKworICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1sZWZ0LXJp
Z2h0LWJ5LWxpbmVib3VuZGFyeS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRp
bmcvc2VsZWN0aW9uL2V4dGVuZC1sZWZ0LXJpZ2h0LWJ5LWxpbmVib3VuZGFyeS5odG1sOiBBZGRl
ZC4KKwogMjAxMS0wMi0xNSAgQmVuamFtaW4gS2FsbWFuICA8a2FsbWFuQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1sZWZ0LXJpZ2h0LWJ5LWxpbmVib3VuZGFyeS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtbGVmdC1y
aWdodC1ieS1saW5lYm91bmRhcnktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI2MDk3OGQxZmU4
NjdjYWRiMDI2MzQ1MDBlODgzYzRmYzZkNzUzMWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtbGVmdC1yaWdodC1ieS1saW5lYm91bmRhcnkt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjUgQEAKK1Rlc3RpbmcgbHRyIGNvbnRhaW5lciB3aXRo
IGNvbnRlbnRzICLXlteX15gg15nXmtebINec153XniDXlteX15gg15nXmtebINec153XniI6CitQ
QVNTIChleHRlbmQgbGVmdCBmcm9tIGxlZnQpCitQQVNTIChleHRlbmQgcmlnaHQgZnJvbSBsZWZ0
KQorUEFTUyAoZXh0ZW5kIHJpZ2h0IGZyb20gcmlnaHQpCitQQVNTIChleHRlbmQgbGVmdCBmcm9t
IHJpZ2h0KQorCitUZXN0aW5nIGx0ciBjb250YWluZXIgd2l0aCBjb250ZW50cyAidGhpcyBpcyBz
b21lIGx0ciB0ZXh0IGluIGFuIHJ0bCBjb250YWluZXIiOgorUEFTUyAoZXh0ZW5kIGxlZnQgZnJv
bSBsZWZ0KQorUEFTUyAoZXh0ZW5kIHJpZ2h0IGZyb20gbGVmdCkKK1BBU1MgKGV4dGVuZCByaWdo
dCBmcm9tIHJpZ2h0KQorUEFTUyAoZXh0ZW5kIGxlZnQgZnJvbSByaWdodCkKKworVGVzdGluZyBy
dGwgY29udGFpbmVyIHdpdGggY29udGVudHMgIteW15fXmCDXmdea15sg15zXndeeINeW15fXmCDX
mdea15sg15zXndeeIjoKK1BBU1MgKGV4dGVuZCBsZWZ0IGZyb20gbGVmdCkKK1BBU1MgKGV4dGVu
ZCByaWdodCBmcm9tIGxlZnQpCitQQVNTIChleHRlbmQgcmlnaHQgZnJvbSByaWdodCkKK1BBU1Mg
KGV4dGVuZCBsZWZ0IGZyb20gcmlnaHQpCisKK1Rlc3RpbmcgcnRsIGNvbnRhaW5lciB3aXRoIGNv
bnRlbnRzICJ0aGlzIGlzIHNvbWUgbHRyIHRleHQgaW4gYW4gcnRsIGNvbnRhaW5lciI6CitQQVNT
IChleHRlbmQgbGVmdCBmcm9tIGxlZnQpCitQQVNTIChleHRlbmQgcmlnaHQgZnJvbSBsZWZ0KQor
UEFTUyAoZXh0ZW5kIHJpZ2h0IGZyb20gcmlnaHQpCitQQVNTIChleHRlbmQgbGVmdCBmcm9tIHJp
Z2h0KQorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVu
ZC1sZWZ0LXJpZ2h0LWJ5LWxpbmVib3VuZGFyeS5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vZXh0ZW5kLWxlZnQtcmlnaHQtYnktbGluZWJvdW5kYXJ5Lmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjYyZmRkMTI0ZjI1OTU4MDc4ZWY2YTZkYmU4ZDFlNjdkMjExMWE1NwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1sZWZ0LXJpZ2h0LWJ5
LWxpbmVib3VuZGFyeS5odG1sCkBAIC0wLDAgKzEsNTcgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8
ZGl2IGNvbnRlbnRlZGl0YWJsZSBkaXI9Imx0ciI+JiMxNDk0OyYjMTQ5NTsmIzE0OTY7ICYjMTQ5
NzsmIzE0OTg7JiMxNDk5OyAmIzE1MDA7JiMxNTAxOyYjMTUwMjsgJiMxNDk0OyYjMTQ5NTsmIzE0
OTY7ICYjMTQ5NzsmIzE0OTg7JiMxNDk5OyAmIzE1MDA7JiMxNTAxOyYjMTUwMjs8L2Rpdj4KKzxk
aXYgY29udGVudGVkaXRhYmxlIGRpcj0ibHRyIj50aGlzIGlzIHNvbWUgbHRyIHRleHQgaW4gYW4g
cnRsIGNvbnRhaW5lcjwvZGl2PgorPGRpdiBjb250ZW50ZWRpdGFibGUgZGlyPSJydGwiPiYjMTQ5
NDsmIzE0OTU7JiMxNDk2OyAmIzE0OTc7JiMxNDk4OyYjMTQ5OTsgJiMxNTAwOyYjMTUwMTsmIzE1
MDI7ICYjMTQ5NDsmIzE0OTU7JiMxNDk2OyAmIzE0OTc7JiMxNDk4OyYjMTQ5OTsgJiMxNTAwOyYj
MTUwMTsmIzE1MDI7PC9kaXY+Cis8ZGl2IGNvbnRlbnRlZGl0YWJsZSBkaXI9InJ0bCI+dGhpcyBp
cyBzb21lIGx0ciB0ZXh0IGluIGFuIHJ0bCBjb250YWluZXI8L2Rpdj4KKworPHByZSBpZD0iY29u
c29sZSI+PC9wcmU+CisKKzxzY3JpcHQ+CitmdW5jdGlvbiBsb2codGV4dCkgeworICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUodGV4dCArICJcbiIpKTsKK30KKworZnVuY3Rpb24gYXNzZXJ0RXF1YWxzKGV4cGVj
dGVkLCBhY3R1YWwsIG1lc3NhZ2UpIHsKKyAgICBpZiAoZXhwZWN0ZWQgPT09IGFjdHVhbCkKKyAg
ICAgICAgbG9nKCJQQVNTICgiICsgbWVzc2FnZSArICIpIik7CisgICAgZWxzZQorICAgICAgICBs
b2coIkZBSUwgKCIgKyBtZXNzYWdlICsgIik6IGV4cGVjdGVkIFwiIiArIGV4cGVjdGVkICsgIlwi
IGJ1dCB3YXMgXCIiICsgYWN0dWFsICsgIlwiIik7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3RGb3JD
b250YWluZXIoY29udGFpbmVyKSB7CisgICAgbG9nKCJUZXN0aW5nICIgKyBjb250YWluZXIuZGly
ICsgIiBjb250YWluZXIgd2l0aCBjb250ZW50cyBcIiIgKyBjb250YWluZXIuaW5uZXJUZXh0ICsg
IlwiOiIpOworCisgICAgdmFyIHRleHRMZW5ndGggPSBjb250YWluZXIudGV4dENvbnRlbnQubGVu
Z3RoOworICAgIHZhciByaWdodG1vc3RPZmZzZXQgPSBjb250YWluZXIuZGlyID09PSAicnRsIiA/
IDAgOiB0ZXh0TGVuZ3RoOworICAgIHZhciBsZWZ0bW9zdE9mZnNldCA9IGNvbnRhaW5lci5kaXIg
PT09ICJydGwiID8gdGV4dExlbmd0aCA6IDA7CisKKyAgICBnZXRTZWxlY3Rpb24oKS5zZXRQb3Np
dGlvbihjb250YWluZXIsIGxlZnRtb3N0T2Zmc2V0KTsKKyAgICBnZXRTZWxlY3Rpb24oKS5tb2Rp
ZnkoImV4dGVuZCIsICJsZWZ0IiwgImxpbmVib3VuZGFyeSIpOworICAgIGFzc2VydEVxdWFscygi
IiwgZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSwgImV4dGVuZCBsZWZ0IGZyb20gbGVmdCIpOwor
CisgICAgZ2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24oY29udGFpbmVyLCBsZWZ0bW9zdE9mZnNl
dCk7CisgICAgZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCJleHRlbmQiLCAicmlnaHQiLCAibGluZWJv
dW5kYXJ5Iik7CisgICAgYXNzZXJ0RXF1YWxzKGNvbnRhaW5lci50ZXh0Q29udGVudCwgZ2V0U2Vs
ZWN0aW9uKCkudG9TdHJpbmcoKSwgImV4dGVuZCByaWdodCBmcm9tIGxlZnQiKTsKKworICAgIGdl
dFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKGNvbnRhaW5lciwgcmlnaHRtb3N0T2Zmc2V0KTsKKyAg
ICBnZXRTZWxlY3Rpb24oKS5tb2RpZnkoImV4dGVuZCIsICJyaWdodCIsICJsaW5lYm91bmRhcnki
KTsKKyAgICBhc3NlcnRFcXVhbHMoIiIsIGdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCksICJleHRl
bmQgcmlnaHQgZnJvbSByaWdodCIpOworCisgICAgZ2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24o
Y29udGFpbmVyLCByaWdodG1vc3RPZmZzZXQpOworICAgIGdldFNlbGVjdGlvbigpLm1vZGlmeSgi
ZXh0ZW5kIiwgImxlZnQiLCAibGluZWJvdW5kYXJ5Iik7CisgICAgYXNzZXJ0RXF1YWxzKGNvbnRh
aW5lci50ZXh0Q29udGVudCwgZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSwgImV4dGVuZCBsZWZ0
IGZyb20gcmlnaHQiKTsKKworICAgIGxvZygiIik7Cit9CisKK3ZhciB0ZXN0Q29udGFpbmVycyA9
IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJkaXYiKTsKK2ZvciAodmFyIGkgPSAwOyBp
IDwgdGVzdENvbnRhaW5lcnMubGVuZ3RoOyBpKyspCisgICAgcnVuVGVzdEZvckNvbnRhaW5lcih0
ZXN0Q29udGFpbmVyc1tpXSk7CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
KyAgICB3aGlsZSAodGVzdENvbnRhaW5lcnMubGVuZ3RoID4gMCkKKyAgICAgICAgZG9jdW1lbnQu
Ym9keS5yZW1vdmVDaGlsZCh0ZXN0Q29udGFpbmVyc1swXSk7CisgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworfQorPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTNhNmMwM2Jh
NTFiM2M4OWMyNDRmYzY3ZmRjMTcwNTU3MTJhYTRjYS4uNDEzNGNkM2EwNWRmZDRmNGVhZDk2N2U0
Mjc0MTNhNzIwMjM4NDM5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDExLTAyLTE2
ICBCZW5qYW1pbiBLYWxtYW4gIDxrYWxtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJUTCBsaW5lYm91bmRhcnkgbGVmdC9y
aWdodCBpcyByZXZlcnNlZCB3aGVuIGN1cnNvciBpcyBhdCBzdGFydCBvZiBSVEwgY29udGFpbmVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDUzNAor
CisgICAgICAgIFRlc3Q6IGVkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1sZWZ0LXJpZ2h0LWJ5LWxp
bmVib3VuZGFyeS5odG1sCisKKyAgICAgICAgQWRkIG1pc3NpbmcgY2FzZXMgZm9yIGV4dGVuZGlu
ZyBsZWZ0L3JpZ2h0IGJ5IGxpbmVib3VuZGFyeS4KKworICAgICAgICAqIGVkaXRpbmcvU2VsZWN0
aW9uQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25Db250cm9sbGVy
Ojptb2RpZnlFeHRlbmRpbmdSaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25Db250
cm9sbGVyOjptb2RpZnlFeHRlbmRpbmdMZWZ0KToKKwogMjAxMS0wMi0xNCAgSmVyZW15IE9ybG93
ICA8am9ybG93QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNo
ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NlbGVjdGlvbkNvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmNwcApp
bmRleCA1MzBmMzM1MThjNmJiODg2NjdiZmFiZDcyZTZlOGRlNTFjYTEwYjQ2Li41Y2Y1Y2I3ODQx
NDVmNTRlZjhiNjljOWJjNDEyZDcxMDk0YjJkZmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1NlbGVjdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5jcHAKQEAgLTQyOSwxMSArNDI5LDE2IEBAIFZpc2li
bGVQb3NpdGlvbiBTZWxlY3Rpb25Db250cm9sbGVyOjptb2RpZnlFeHRlbmRpbmdSaWdodChUZXh0
R3JhbnVsYXJpdHkgZ3JhbnVsCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHBvcyA9IHByZXZp
b3VzV29yZFBvc2l0aW9uKHBvcyk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgTGluZUJvdW5k
YXJ5OgorICAgICAgICBpZiAoZGlyZWN0aW9uT2ZFbmNsb3NpbmdCbG9jaygpID09IExUUikKKyAg
ICAgICAgICAgIHBvcyA9IG1vZGlmeUV4dGVuZGluZ0ZvcndhcmQoZ3JhbnVsYXJpdHkpOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICBwb3MgPSBtb2RpZnlFeHRlbmRpbmdCYWNrd2FyZChncmFu
dWxhcml0eSk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU2VudGVuY2VHcmFudWxhcml0eToK
ICAgICBjYXNlIExpbmVHcmFudWxhcml0eToKICAgICBjYXNlIFBhcmFncmFwaEdyYW51bGFyaXR5
OgogICAgIGNhc2UgU2VudGVuY2VCb3VuZGFyeToKLSAgICBjYXNlIExpbmVCb3VuZGFyeToKICAg
ICBjYXNlIFBhcmFncmFwaEJvdW5kYXJ5OgogICAgIGNhc2UgRG9jdW1lbnRCb3VuZGFyeToKICAg
ICAgICAgLy8gRklYTUU6IGltcGxlbWVudCBhbGwgb2YgdGhlIGFib3ZlPwpAQCAtNDQxLDcgKzQ0
Niw3IEBAIFZpc2libGVQb3NpdGlvbiBTZWxlY3Rpb25Db250cm9sbGVyOjptb2RpZnlFeHRlbmRp
bmdSaWdodChUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsCiAgICAgfQogICAgIHJldHVybiBwb3M7CiB9
Ci0gICAgICAgIAorCiBWaXNpYmxlUG9zaXRpb24gU2VsZWN0aW9uQ29udHJvbGxlcjo6bW9kaWZ5
RXh0ZW5kaW5nRm9yd2FyZChUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgVmlz
aWJsZVBvc2l0aW9uIHBvcyhtX3NlbGVjdGlvbi5leHRlbnQoKSwgbV9zZWxlY3Rpb24uYWZmaW5p
dHkoKSk7CkBAIC01ODIsMTEgKzU4NywxNiBAQCBWaXNpYmxlUG9zaXRpb24gU2VsZWN0aW9uQ29u
dHJvbGxlcjo6bW9kaWZ5RXh0ZW5kaW5nTGVmdChUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYQogICAg
ICAgICBlbHNlCiAgICAgICAgICAgICBwb3MgPSBuZXh0V29yZFBvc2l0aW9uKHBvcyk7CiAgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgTGluZUJvdW5kYXJ5OgorICAgICAgICBpZiAoZGlyZWN0aW9u
T2ZFbmNsb3NpbmdCbG9jaygpID09IExUUikKKyAgICAgICAgICAgIHBvcyA9IG1vZGlmeUV4dGVu
ZGluZ0JhY2t3YXJkKGdyYW51bGFyaXR5KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcG9z
ID0gbW9kaWZ5RXh0ZW5kaW5nRm9yd2FyZChncmFudWxhcml0eSk7CisgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgU2VudGVuY2VHcmFudWxhcml0eToKICAgICBjYXNlIExpbmVHcmFudWxhcml0eToK
ICAgICBjYXNlIFBhcmFncmFwaEdyYW51bGFyaXR5OgogICAgIGNhc2UgU2VudGVuY2VCb3VuZGFy
eToKLSAgICBjYXNlIExpbmVCb3VuZGFyeToKICAgICBjYXNlIFBhcmFncmFwaEJvdW5kYXJ5Ogog
ICAgIGNhc2UgRG9jdW1lbnRCb3VuZGFyeToKICAgICAgICAgcG9zID0gbW9kaWZ5RXh0ZW5kaW5n
QmFja3dhcmQoZ3JhbnVsYXJpdHkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82757</attachid>
            <date>2011-02-16 22:56:48 -0800</date>
            <delta_ts>2011-02-16 23:27:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54534-20110217175645.patch</filename>
            <type>text/plain</type>
            <size>8183</size>
            <attacher name="Benjamin (Ben) Kalman">kalman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzg2NDYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4YjEzZWNhNDEyZDQ3MGVlYTk1Mjg3
ZGUzY2Y0ZDNjZjRjNTMzN2E1Li45MTI3ZGFkNGFjMjUzZTk0ZmIyZWI2ZGNiMjhlMjQxNzc2N2Rj
NzdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDItMTYgIEJlbmphbWluIEthbG1hbiAg
PGthbG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUlRMIGxpbmVib3VuZGFyeSBsZWZ0L3JpZ2h0IGlzIHJldmVyc2VkIHdo
ZW4gY3Vyc29yIGlzIGF0IHN0YXJ0IG9mIFJUTCBjb250YWluZXIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0NTM0CisKKyAgICAgICAgVGVzdCBleHRl
bmRpbmcgdGhlIHNlbGVjdGlvbiBsZWZ0L3JpZ2h0IGJ5IGxpbmVib3VuZGFyeSBmcm9tIGJvdGgg
dGhlIGxlZnRtb3N0L3JpZ2h0bW9zdCBlbmRzIG9mIExUUiBhbmQgUlRMCisgICAgICAgIGNvbnRh
aW5lcnMgd2l0aCBib3RoIExUUiBhbmQgUlRMIHRleHQuCisKKyAgICAgICAgKiBlZGl0aW5nL3Nl
bGVjdGlvbi9leHRlbmQtbGVmdC1yaWdodC1ieS1saW5lYm91bmRhcnktZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtbGVmdC1yaWdodC1ieS1s
aW5lYm91bmRhcnkuaHRtbDogQWRkZWQuCisKIDIwMTEtMDItMTUgIEJlbmphbWluIEthbG1hbiAg
PGthbG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtbGVmdC1y
aWdodC1ieS1saW5lYm91bmRhcnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vZXh0ZW5kLWxlZnQtcmlnaHQtYnktbGluZWJvdW5kYXJ5LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iNjA5NzhkMWZlODY3Y2FkYjAyNjM0NTAwZTg4M2M0ZmM2ZDc1MzFjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLWxlZnQt
cmlnaHQtYnktbGluZWJvdW5kYXJ5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI1IEBACitUZXN0
aW5nIGx0ciBjb250YWluZXIgd2l0aCBjb250ZW50cyAi15bXl9eYINeZ15rXmyDXnNed154g15bX
l9eYINeZ15rXmyDXnNed154iOgorUEFTUyAoZXh0ZW5kIGxlZnQgZnJvbSBsZWZ0KQorUEFTUyAo
ZXh0ZW5kIHJpZ2h0IGZyb20gbGVmdCkKK1BBU1MgKGV4dGVuZCByaWdodCBmcm9tIHJpZ2h0KQor
UEFTUyAoZXh0ZW5kIGxlZnQgZnJvbSByaWdodCkKKworVGVzdGluZyBsdHIgY29udGFpbmVyIHdp
dGggY29udGVudHMgInRoaXMgaXMgc29tZSBsdHIgdGV4dCBpbiBhbiBydGwgY29udGFpbmVyIjoK
K1BBU1MgKGV4dGVuZCBsZWZ0IGZyb20gbGVmdCkKK1BBU1MgKGV4dGVuZCByaWdodCBmcm9tIGxl
ZnQpCitQQVNTIChleHRlbmQgcmlnaHQgZnJvbSByaWdodCkKK1BBU1MgKGV4dGVuZCBsZWZ0IGZy
b20gcmlnaHQpCisKK1Rlc3RpbmcgcnRsIGNvbnRhaW5lciB3aXRoIGNvbnRlbnRzICLXlteX15gg
15nXmtebINec153XniDXlteX15gg15nXmtebINec153XniI6CitQQVNTIChleHRlbmQgbGVmdCBm
cm9tIGxlZnQpCitQQVNTIChleHRlbmQgcmlnaHQgZnJvbSBsZWZ0KQorUEFTUyAoZXh0ZW5kIHJp
Z2h0IGZyb20gcmlnaHQpCitQQVNTIChleHRlbmQgbGVmdCBmcm9tIHJpZ2h0KQorCitUZXN0aW5n
IHJ0bCBjb250YWluZXIgd2l0aCBjb250ZW50cyAidGhpcyBpcyBzb21lIGx0ciB0ZXh0IGluIGFu
IHJ0bCBjb250YWluZXIiOgorUEFTUyAoZXh0ZW5kIGxlZnQgZnJvbSBsZWZ0KQorUEFTUyAoZXh0
ZW5kIHJpZ2h0IGZyb20gbGVmdCkKK1BBU1MgKGV4dGVuZCByaWdodCBmcm9tIHJpZ2h0KQorUEFT
UyAoZXh0ZW5kIGxlZnQgZnJvbSByaWdodCkKKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtbGVmdC1yaWdodC1ieS1saW5lYm91bmRhcnkuaHRtbCBi
L0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1sZWZ0LXJpZ2h0LWJ5LWxpbmVi
b3VuZGFyeS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhmZGEyYTliNzVlMjA1Yjk1ODNlZmQyMjhlZDI3MjBh
NTg2OGI3ODcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlv
bi9leHRlbmQtbGVmdC1yaWdodC1ieS1saW5lYm91bmRhcnkuaHRtbApAQCAtMCwwICsxLDY3IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxkaXYgY29udGVudGVkaXRhYmxlIGRpcj0ibHRyIj4mIzE0OTQ7
JiMxNDk1OyYjMTQ5NjsgJiMxNDk3OyYjMTQ5ODsmIzE0OTk7ICYjMTUwMDsmIzE1MDE7JiMxNTAy
OyAmIzE0OTQ7JiMxNDk1OyYjMTQ5NjsgJiMxNDk3OyYjMTQ5ODsmIzE0OTk7ICYjMTUwMDsmIzE1
MDE7JiMxNTAyOzwvZGl2PgorPGRpdiBjb250ZW50ZWRpdGFibGUgZGlyPSJsdHIiPnRoaXMgaXMg
c29tZSBsdHIgdGV4dCBpbiBhbiBydGwgY29udGFpbmVyPC9kaXY+Cis8ZGl2IGNvbnRlbnRlZGl0
YWJsZSBkaXI9InJ0bCI+JiMxNDk0OyYjMTQ5NTsmIzE0OTY7ICYjMTQ5NzsmIzE0OTg7JiMxNDk5
OyAmIzE1MDA7JiMxNTAxOyYjMTUwMjsgJiMxNDk0OyYjMTQ5NTsmIzE0OTY7ICYjMTQ5NzsmIzE0
OTg7JiMxNDk5OyAmIzE1MDA7JiMxNTAxOyYjMTUwMjs8L2Rpdj4KKzxkaXYgY29udGVudGVkaXRh
YmxlIGRpcj0icnRsIj50aGlzIGlzIHNvbWUgbHRyIHRleHQgaW4gYW4gcnRsIGNvbnRhaW5lcjwv
ZGl2PgorPHByZSBpZD0iY29uc29sZSI+PC9wcmU+CisKKzxzY3JpcHQ+CitmdW5jdGlvbiBsb2co
dGV4dCkKK3sKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRleHQgKyAiXG4iKSk7Cit9CisKK2Z1bmN0aW9u
IHNob3dOb2RlKG5vZGUpCit7CisgICAgdmFyIHRhZ05hbWUgPSBub2RlLnRhZ05hbWUgPyBub2Rl
LnRhZ05hbWUgOiAiVEVYVCI7CisgICAgcmV0dXJuICI8IiArIHRhZ05hbWUgKyAiPiIgKyBub2Rl
LnRleHRDb250ZW50ICsgIjwvIiArIHRhZ05hbWUgKyAiPiI7Cit9CisKK2Z1bmN0aW9uIGFzc2Vy
dFNlbGVjdGlvbkV4dGVudEVxdWFscyhleHBlY3RlZE5vZGUsIGV4cGVjdGVkT2Zmc2V0LCBtZXNz
YWdlKQoreworICAgIHZhciBhY3R1YWxOb2RlID0gZ2V0U2VsZWN0aW9uKCkuZXh0ZW50Tm9kZTsK
KyAgICB2YXIgYWN0dWFsT2Zmc2V0ID0gZ2V0U2VsZWN0aW9uKCkuZXh0ZW50T2Zmc2V0OworICAg
IGlmIChhY3R1YWxOb2RlICE9PSBleHBlY3RlZE5vZGUgfHwgYWN0dWFsT2Zmc2V0ICE9PSBleHBl
Y3RlZE9mZnNldCkKKyAgICAgICAgbG9nKCJGQUlMICgiICsgbWVzc2FnZSArICIpOiBleHBlY3Rl
ZCBvZmZzZXQgIiArIGV4cGVjdGVkT2Zmc2V0ICsgIiBpbiBub2RlICIgKyBzaG93Tm9kZShleHBl
Y3RlZE5vZGUpICsKKyAgICAgICAgICAgICIgYnV0IGdvdCBvZmZzZXQgIiArIGFjdHVhbE9mZnNl
dCArICIgaW4gbm9kZSAiICsgc2hvd05vZGUoYWN0dWFsTm9kZSkpOworICAgIGVsc2UKKyAgICAg
ICAgbG9nKCJQQVNTICgiICsgbWVzc2FnZSArICIpIik7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3RG
b3JDb250YWluZXIoY29udGFpbmVyKQoreworICAgIGxvZygiVGVzdGluZyAiICsgY29udGFpbmVy
LmRpciArICIgY29udGFpbmVyIHdpdGggY29udGVudHMgXCIiICsgY29udGFpbmVyLnRleHRDb250
ZW50ICsgIlwiOiIpOworCisgICAgdmFyIHRleHROb2RlID0gY29udGFpbmVyLmNoaWxkTm9kZXNb
MF07CisgICAgdmFyIHJpZ2h0bW9zdE9mZnNldCA9IGNvbnRhaW5lci5kaXIgPT09ICJydGwiID8g
MCA6IHRleHROb2RlLmxlbmd0aDsKKyAgICB2YXIgbGVmdG1vc3RPZmZzZXQgPSBjb250YWluZXIu
ZGlyID09PSAicnRsIiA/IHRleHROb2RlLmxlbmd0aCA6IDA7CisKKyAgICBnZXRTZWxlY3Rpb24o
KS5zZXRQb3NpdGlvbih0ZXh0Tm9kZSwgbGVmdG1vc3RPZmZzZXQpOworICAgIGdldFNlbGVjdGlv
bigpLm1vZGlmeSgiZXh0ZW5kIiwgImxlZnQiLCAibGluZWJvdW5kYXJ5Iik7CisgICAgYXNzZXJ0
U2VsZWN0aW9uRXh0ZW50RXF1YWxzKHRleHROb2RlLCBsZWZ0bW9zdE9mZnNldCwgImV4dGVuZCBs
ZWZ0IGZyb20gbGVmdCIpOworCisgICAgZ2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24odGV4dE5v
ZGUsIGxlZnRtb3N0T2Zmc2V0KTsKKyAgICBnZXRTZWxlY3Rpb24oKS5tb2RpZnkoImV4dGVuZCIs
ICJyaWdodCIsICJsaW5lYm91bmRhcnkiKTsKKyAgICBhc3NlcnRTZWxlY3Rpb25FeHRlbnRFcXVh
bHModGV4dE5vZGUsIHJpZ2h0bW9zdE9mZnNldCwgImV4dGVuZCByaWdodCBmcm9tIGxlZnQiKTsK
KworICAgIGdldFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKHRleHROb2RlLCByaWdodG1vc3RPZmZz
ZXQpOworICAgIGdldFNlbGVjdGlvbigpLm1vZGlmeSgiZXh0ZW5kIiwgInJpZ2h0IiwgImxpbmVi
b3VuZGFyeSIpOworICAgIGFzc2VydFNlbGVjdGlvbkV4dGVudEVxdWFscyh0ZXh0Tm9kZSwgcmln
aHRtb3N0T2Zmc2V0LCAiZXh0ZW5kIHJpZ2h0IGZyb20gcmlnaHQiKTsKKworICAgIGdldFNlbGVj
dGlvbigpLnNldFBvc2l0aW9uKHRleHROb2RlLCByaWdodG1vc3RPZmZzZXQpOworICAgIGdldFNl
bGVjdGlvbigpLm1vZGlmeSgiZXh0ZW5kIiwgImxlZnQiLCAibGluZWJvdW5kYXJ5Iik7CisgICAg
YXNzZXJ0U2VsZWN0aW9uRXh0ZW50RXF1YWxzKHRleHROb2RlLCBsZWZ0bW9zdE9mZnNldCwgImV4
dGVuZCBsZWZ0IGZyb20gcmlnaHQiKTsKKworICAgIGxvZygiIik7Cit9CisKK3ZhciB0ZXN0Q29u
dGFpbmVycyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJkaXYiKTsKK2ZvciAodmFy
IGkgPSAwOyBpIDwgdGVzdENvbnRhaW5lcnMubGVuZ3RoOyBpKyspCisgICAgcnVuVGVzdEZvckNv
bnRhaW5lcih0ZXN0Q29udGFpbmVyc1tpXSk7CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKKyAgICB3aGlsZSAodGVzdENvbnRhaW5lcnMubGVuZ3RoID4gMCkKKyAgICAgICAg
ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZCh0ZXN0Q29udGFpbmVyc1swXSk7CisgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworfQorPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OTNhNmMwM2JhNTFiM2M4OWMyNDRmYzY3ZmRjMTcwNTU3MTJhYTRjYS4uNDEzNGNkM2EwNWRmZDRm
NGVhZDk2N2U0Mjc0MTNhNzIwMjM4NDM5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisy
MDExLTAyLTE2ICBCZW5qYW1pbiBLYWxtYW4gIDxrYWxtYW5AY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJUTCBsaW5lYm91bmRh
cnkgbGVmdC9yaWdodCBpcyByZXZlcnNlZCB3aGVuIGN1cnNvciBpcyBhdCBzdGFydCBvZiBSVEwg
Y29udGFpbmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD01NDUzNAorCisgICAgICAgIFRlc3Q6IGVkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1sZWZ0LXJp
Z2h0LWJ5LWxpbmVib3VuZGFyeS5odG1sCisKKyAgICAgICAgQWRkIG1pc3NpbmcgY2FzZXMgZm9y
IGV4dGVuZGluZyBsZWZ0L3JpZ2h0IGJ5IGxpbmVib3VuZGFyeS4KKworICAgICAgICAqIGVkaXRp
bmcvU2VsZWN0aW9uQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rpb25D
b250cm9sbGVyOjptb2RpZnlFeHRlbmRpbmdSaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxl
Y3Rpb25Db250cm9sbGVyOjptb2RpZnlFeHRlbmRpbmdMZWZ0KToKKwogMjAxMS0wMi0xNCAgSmVy
ZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBGaXNoZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NlbGVjdGlv
bkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TZWxlY3Rpb25Db250cm9s
bGVyLmNwcAppbmRleCA1MzBmMzM1MThjNmJiODg2NjdiZmFiZDcyZTZlOGRlNTFjYTEwYjQ2Li41
Y2Y1Y2I3ODQxNDVmNTRlZjhiNjljOWJjNDEyZDcxMDk0YjJkZmRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1NlbGVjdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5jcHAKQEAgLTQyOSwxMSArNDI5LDE2
IEBAIFZpc2libGVQb3NpdGlvbiBTZWxlY3Rpb25Db250cm9sbGVyOjptb2RpZnlFeHRlbmRpbmdS
aWdodChUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHBv
cyA9IHByZXZpb3VzV29yZFBvc2l0aW9uKHBvcyk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
TGluZUJvdW5kYXJ5OgorICAgICAgICBpZiAoZGlyZWN0aW9uT2ZFbmNsb3NpbmdCbG9jaygpID09
IExUUikKKyAgICAgICAgICAgIHBvcyA9IG1vZGlmeUV4dGVuZGluZ0ZvcndhcmQoZ3JhbnVsYXJp
dHkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBwb3MgPSBtb2RpZnlFeHRlbmRpbmdCYWNr
d2FyZChncmFudWxhcml0eSk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU2VudGVuY2VHcmFu
dWxhcml0eToKICAgICBjYXNlIExpbmVHcmFudWxhcml0eToKICAgICBjYXNlIFBhcmFncmFwaEdy
YW51bGFyaXR5OgogICAgIGNhc2UgU2VudGVuY2VCb3VuZGFyeToKLSAgICBjYXNlIExpbmVCb3Vu
ZGFyeToKICAgICBjYXNlIFBhcmFncmFwaEJvdW5kYXJ5OgogICAgIGNhc2UgRG9jdW1lbnRCb3Vu
ZGFyeToKICAgICAgICAgLy8gRklYTUU6IGltcGxlbWVudCBhbGwgb2YgdGhlIGFib3ZlPwpAQCAt
NDQxLDcgKzQ0Niw3IEBAIFZpc2libGVQb3NpdGlvbiBTZWxlY3Rpb25Db250cm9sbGVyOjptb2Rp
ZnlFeHRlbmRpbmdSaWdodChUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsCiAgICAgfQogICAgIHJldHVy
biBwb3M7CiB9Ci0gICAgICAgIAorCiBWaXNpYmxlUG9zaXRpb24gU2VsZWN0aW9uQ29udHJvbGxl
cjo6bW9kaWZ5RXh0ZW5kaW5nRm9yd2FyZChUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7
CiAgICAgVmlzaWJsZVBvc2l0aW9uIHBvcyhtX3NlbGVjdGlvbi5leHRlbnQoKSwgbV9zZWxlY3Rp
b24uYWZmaW5pdHkoKSk7CkBAIC01ODIsMTEgKzU4NywxNiBAQCBWaXNpYmxlUG9zaXRpb24gU2Vs
ZWN0aW9uQ29udHJvbGxlcjo6bW9kaWZ5RXh0ZW5kaW5nTGVmdChUZXh0R3JhbnVsYXJpdHkgZ3Jh
bnVsYQogICAgICAgICBlbHNlCiAgICAgICAgICAgICBwb3MgPSBuZXh0V29yZFBvc2l0aW9uKHBv
cyk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgTGluZUJvdW5kYXJ5OgorICAgICAgICBpZiAo
ZGlyZWN0aW9uT2ZFbmNsb3NpbmdCbG9jaygpID09IExUUikKKyAgICAgICAgICAgIHBvcyA9IG1v
ZGlmeUV4dGVuZGluZ0JhY2t3YXJkKGdyYW51bGFyaXR5KTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgcG9zID0gbW9kaWZ5RXh0ZW5kaW5nRm9yd2FyZChncmFudWxhcml0eSk7CisgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgU2VudGVuY2VHcmFudWxhcml0eToKICAgICBjYXNlIExpbmVHcmFu
dWxhcml0eToKICAgICBjYXNlIFBhcmFncmFwaEdyYW51bGFyaXR5OgogICAgIGNhc2UgU2VudGVu
Y2VCb3VuZGFyeToKLSAgICBjYXNlIExpbmVCb3VuZGFyeToKICAgICBjYXNlIFBhcmFncmFwaEJv
dW5kYXJ5OgogICAgIGNhc2UgRG9jdW1lbnRCb3VuZGFyeToKICAgICAgICAgcG9zID0gbW9kaWZ5
RXh0ZW5kaW5nQmFja3dhcmQoZ3JhbnVsYXJpdHkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82760</attachid>
            <date>2011-02-16 23:27:57 -0800</date>
            <delta_ts>2011-02-17 01:02:44 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-54534-20110217182754.patch</filename>
            <type>text/plain</type>
            <size>8179</size>
            <attacher name="Benjamin (Ben) Kalman">kalman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzg2NDYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4YjEzZWNhNDEyZDQ3MGVlYTk1Mjg3
ZGUzY2Y0ZDNjZjRjNTMzN2E1Li5iMjIwOGM5MDY2MGMwMTM5NDRjNjJkZDA0OTNlYzY5MWIzZGVi
MjcwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDItMTYgIEJlbmphbWluIEthbG1hbiAg
PGthbG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdh
LgorCisgICAgICAgIFJUTCBsaW5lYm91bmRhcnkgbGVmdC9yaWdodCBpcyByZXZlcnNlZCB3aGVu
IGN1cnNvciBpcyBhdCBzdGFydCBvZiBSVEwgY29udGFpbmVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDUzNAorCisgICAgICAgIFRlc3QgZXh0ZW5k
aW5nIHRoZSBzZWxlY3Rpb24gbGVmdC9yaWdodCBieSBsaW5lYm91bmRhcnkgZnJvbSBib3RoIHRo
ZSBsZWZ0bW9zdC9yaWdodG1vc3QgZW5kcyBvZiBMVFIgYW5kIFJUTAorICAgICAgICBjb250YWlu
ZXJzIHdpdGggYm90aCBMVFIgYW5kIFJUTCB0ZXh0LgorCisgICAgICAgICogZWRpdGluZy9zZWxl
Y3Rpb24vZXh0ZW5kLWxlZnQtcmlnaHQtYnktbGluZWJvdW5kYXJ5LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLWxlZnQtcmlnaHQtYnktbGlu
ZWJvdW5kYXJ5Lmh0bWw6IEFkZGVkLgorCiAyMDExLTAyLTE1ICBCZW5qYW1pbiBLYWxtYW4gIDxr
YWxtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLWxlZnQtcmln
aHQtYnktbGluZWJvdW5kYXJ5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2Vs
ZWN0aW9uL2V4dGVuZC1sZWZ0LXJpZ2h0LWJ5LWxpbmVib3VuZGFyeS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjYwOTc4ZDFmZTg2N2NhZGIwMjYzNDUwMGU4ODNjNGZjNmQ3NTMxYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1sZWZ0LXJp
Z2h0LWJ5LWxpbmVib3VuZGFyeS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNSBAQAorVGVzdGlu
ZyBsdHIgY29udGFpbmVyIHdpdGggY29udGVudHMgIteW15fXmCDXmdea15sg15zXndeeINeW15fX
mCDXmdea15sg15zXndeeIjoKK1BBU1MgKGV4dGVuZCBsZWZ0IGZyb20gbGVmdCkKK1BBU1MgKGV4
dGVuZCByaWdodCBmcm9tIGxlZnQpCitQQVNTIChleHRlbmQgcmlnaHQgZnJvbSByaWdodCkKK1BB
U1MgKGV4dGVuZCBsZWZ0IGZyb20gcmlnaHQpCisKK1Rlc3RpbmcgbHRyIGNvbnRhaW5lciB3aXRo
IGNvbnRlbnRzICJ0aGlzIGlzIHNvbWUgbHRyIHRleHQgaW4gYW4gcnRsIGNvbnRhaW5lciI6CitQ
QVNTIChleHRlbmQgbGVmdCBmcm9tIGxlZnQpCitQQVNTIChleHRlbmQgcmlnaHQgZnJvbSBsZWZ0
KQorUEFTUyAoZXh0ZW5kIHJpZ2h0IGZyb20gcmlnaHQpCitQQVNTIChleHRlbmQgbGVmdCBmcm9t
IHJpZ2h0KQorCitUZXN0aW5nIHJ0bCBjb250YWluZXIgd2l0aCBjb250ZW50cyAi15bXl9eYINeZ
15rXmyDXnNed154g15bXl9eYINeZ15rXmyDXnNed154iOgorUEFTUyAoZXh0ZW5kIGxlZnQgZnJv
bSBsZWZ0KQorUEFTUyAoZXh0ZW5kIHJpZ2h0IGZyb20gbGVmdCkKK1BBU1MgKGV4dGVuZCByaWdo
dCBmcm9tIHJpZ2h0KQorUEFTUyAoZXh0ZW5kIGxlZnQgZnJvbSByaWdodCkKKworVGVzdGluZyBy
dGwgY29udGFpbmVyIHdpdGggY29udGVudHMgInRoaXMgaXMgc29tZSBsdHIgdGV4dCBpbiBhbiBy
dGwgY29udGFpbmVyIjoKK1BBU1MgKGV4dGVuZCBsZWZ0IGZyb20gbGVmdCkKK1BBU1MgKGV4dGVu
ZCByaWdodCBmcm9tIGxlZnQpCitQQVNTIChleHRlbmQgcmlnaHQgZnJvbSByaWdodCkKK1BBU1Mg
KGV4dGVuZCBsZWZ0IGZyb20gcmlnaHQpCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRp
dGluZy9zZWxlY3Rpb24vZXh0ZW5kLWxlZnQtcmlnaHQtYnktbGluZWJvdW5kYXJ5Lmh0bWwgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtbGVmdC1yaWdodC1ieS1saW5lYm91
bmRhcnkuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZmRhMmE5Yjc1ZTIwNWI5NTgzZWZkMjI4ZWQyNzIwYTU4
NjhiNzg3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
ZXh0ZW5kLWxlZnQtcmlnaHQtYnktbGluZWJvdW5kYXJ5Lmh0bWwKQEAgLTAsMCArMSw2NyBAQAor
PCFET0NUWVBFIGh0bWw+Cis8ZGl2IGNvbnRlbnRlZGl0YWJsZSBkaXI9Imx0ciI+JiMxNDk0OyYj
MTQ5NTsmIzE0OTY7ICYjMTQ5NzsmIzE0OTg7JiMxNDk5OyAmIzE1MDA7JiMxNTAxOyYjMTUwMjsg
JiMxNDk0OyYjMTQ5NTsmIzE0OTY7ICYjMTQ5NzsmIzE0OTg7JiMxNDk5OyAmIzE1MDA7JiMxNTAx
OyYjMTUwMjs8L2Rpdj4KKzxkaXYgY29udGVudGVkaXRhYmxlIGRpcj0ibHRyIj50aGlzIGlzIHNv
bWUgbHRyIHRleHQgaW4gYW4gcnRsIGNvbnRhaW5lcjwvZGl2PgorPGRpdiBjb250ZW50ZWRpdGFi
bGUgZGlyPSJydGwiPiYjMTQ5NDsmIzE0OTU7JiMxNDk2OyAmIzE0OTc7JiMxNDk4OyYjMTQ5OTsg
JiMxNTAwOyYjMTUwMTsmIzE1MDI7ICYjMTQ5NDsmIzE0OTU7JiMxNDk2OyAmIzE0OTc7JiMxNDk4
OyYjMTQ5OTsgJiMxNTAwOyYjMTUwMTsmIzE1MDI7PC9kaXY+Cis8ZGl2IGNvbnRlbnRlZGl0YWJs
ZSBkaXI9InJ0bCI+dGhpcyBpcyBzb21lIGx0ciB0ZXh0IGluIGFuIHJ0bCBjb250YWluZXI8L2Rp
dj4KKzxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorCis8c2NyaXB0PgorZnVuY3Rpb24gbG9nKHRl
eHQpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh0ZXh0ICsgIlxuIikpOworfQorCitmdW5jdGlvbiBz
aG93Tm9kZShub2RlKQoreworICAgIHZhciB0YWdOYW1lID0gbm9kZS50YWdOYW1lID8gbm9kZS50
YWdOYW1lIDogIlRFWFQiOworICAgIHJldHVybiAiPCIgKyB0YWdOYW1lICsgIj4iICsgbm9kZS50
ZXh0Q29udGVudCArICI8LyIgKyB0YWdOYW1lICsgIj4iOworfQorCitmdW5jdGlvbiBhc3NlcnRT
ZWxlY3Rpb25FeHRlbnRFcXVhbHMoZXhwZWN0ZWROb2RlLCBleHBlY3RlZE9mZnNldCwgbWVzc2Fn
ZSkKK3sKKyAgICB2YXIgYWN0dWFsTm9kZSA9IGdldFNlbGVjdGlvbigpLmV4dGVudE5vZGU7Cisg
ICAgdmFyIGFjdHVhbE9mZnNldCA9IGdldFNlbGVjdGlvbigpLmV4dGVudE9mZnNldDsKKyAgICBp
ZiAoYWN0dWFsTm9kZSAhPT0gZXhwZWN0ZWROb2RlIHx8IGFjdHVhbE9mZnNldCAhPT0gZXhwZWN0
ZWRPZmZzZXQpCisgICAgICAgIGxvZygiRkFJTCAoIiArIG1lc3NhZ2UgKyAiKTogZXhwZWN0ZWQg
b2Zmc2V0ICIgKyBleHBlY3RlZE9mZnNldCArICIgaW4gbm9kZSAiICsgc2hvd05vZGUoZXhwZWN0
ZWROb2RlKSArCisgICAgICAgICAgICAiIGJ1dCBnb3Qgb2Zmc2V0ICIgKyBhY3R1YWxPZmZzZXQg
KyAiIGluIG5vZGUgIiArIHNob3dOb2RlKGFjdHVhbE5vZGUpKTsKKyAgICBlbHNlCisgICAgICAg
IGxvZygiUEFTUyAoIiArIG1lc3NhZ2UgKyAiKSIpOworfQorCitmdW5jdGlvbiBydW5UZXN0Rm9y
Q29udGFpbmVyKGNvbnRhaW5lcikKK3sKKyAgICBsb2coIlRlc3RpbmcgIiArIGNvbnRhaW5lci5k
aXIgKyAiIGNvbnRhaW5lciB3aXRoIGNvbnRlbnRzIFwiIiArIGNvbnRhaW5lci50ZXh0Q29udGVu
dCArICJcIjoiKTsKKworICAgIHZhciB0ZXh0Tm9kZSA9IGNvbnRhaW5lci5jaGlsZE5vZGVzWzBd
OworICAgIHZhciByaWdodG1vc3RPZmZzZXQgPSBjb250YWluZXIuZGlyID09PSAicnRsIiA/IDAg
OiB0ZXh0Tm9kZS5sZW5ndGg7CisgICAgdmFyIGxlZnRtb3N0T2Zmc2V0ID0gY29udGFpbmVyLmRp
ciA9PT0gInJ0bCIgPyB0ZXh0Tm9kZS5sZW5ndGggOiAwOworCisgICAgZ2V0U2VsZWN0aW9uKCku
c2V0UG9zaXRpb24odGV4dE5vZGUsIGxlZnRtb3N0T2Zmc2V0KTsKKyAgICBnZXRTZWxlY3Rpb24o
KS5tb2RpZnkoImV4dGVuZCIsICJsZWZ0IiwgImxpbmVib3VuZGFyeSIpOworICAgIGFzc2VydFNl
bGVjdGlvbkV4dGVudEVxdWFscyh0ZXh0Tm9kZSwgbGVmdG1vc3RPZmZzZXQsICJleHRlbmQgbGVm
dCBmcm9tIGxlZnQiKTsKKworICAgIGdldFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKHRleHROb2Rl
LCBsZWZ0bW9zdE9mZnNldCk7CisgICAgZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCJleHRlbmQiLCAi
cmlnaHQiLCAibGluZWJvdW5kYXJ5Iik7CisgICAgYXNzZXJ0U2VsZWN0aW9uRXh0ZW50RXF1YWxz
KHRleHROb2RlLCByaWdodG1vc3RPZmZzZXQsICJleHRlbmQgcmlnaHQgZnJvbSBsZWZ0Iik7CisK
KyAgICBnZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbih0ZXh0Tm9kZSwgcmlnaHRtb3N0T2Zmc2V0
KTsKKyAgICBnZXRTZWxlY3Rpb24oKS5tb2RpZnkoImV4dGVuZCIsICJyaWdodCIsICJsaW5lYm91
bmRhcnkiKTsKKyAgICBhc3NlcnRTZWxlY3Rpb25FeHRlbnRFcXVhbHModGV4dE5vZGUsIHJpZ2h0
bW9zdE9mZnNldCwgImV4dGVuZCByaWdodCBmcm9tIHJpZ2h0Iik7CisKKyAgICBnZXRTZWxlY3Rp
b24oKS5zZXRQb3NpdGlvbih0ZXh0Tm9kZSwgcmlnaHRtb3N0T2Zmc2V0KTsKKyAgICBnZXRTZWxl
Y3Rpb24oKS5tb2RpZnkoImV4dGVuZCIsICJsZWZ0IiwgImxpbmVib3VuZGFyeSIpOworICAgIGFz
c2VydFNlbGVjdGlvbkV4dGVudEVxdWFscyh0ZXh0Tm9kZSwgbGVmdG1vc3RPZmZzZXQsICJleHRl
bmQgbGVmdCBmcm9tIHJpZ2h0Iik7CisKKyAgICBsb2coIiIpOworfQorCit2YXIgdGVzdENvbnRh
aW5lcnMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiZGl2Iik7Citmb3IgKHZhciBp
ID0gMDsgaSA8IHRlc3RDb250YWluZXJzLmxlbmd0aDsgaSsrKQorICAgIHJ1blRlc3RGb3JDb250
YWluZXIodGVzdENvbnRhaW5lcnNbaV0pOworCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7CisgICAgd2hpbGUgKHRlc3RDb250YWluZXJzLmxlbmd0aCA+IDApCisgICAgICAgIGRv
Y3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQodGVzdENvbnRhaW5lcnNbMF0pOworICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKK30KKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDkz
YTZjMDNiYTUxYjNjODljMjQ0ZmM2N2ZkYzE3MDU1NzEyYWE0Y2EuLmJhMDFiMGYyMDQ3MDg0MjM2
NDM2ZWZjMzM2ZWZiMTM0ZDc5NzllOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAx
MS0wMi0xNiAgQmVuamFtaW4gS2FsbWFuICA8a2FsbWFuQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgUlRMIGxpbmVib3VuZGFyeSBs
ZWZ0L3JpZ2h0IGlzIHJldmVyc2VkIHdoZW4gY3Vyc29yIGlzIGF0IHN0YXJ0IG9mIFJUTCBjb250
YWluZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0
NTM0CisKKyAgICAgICAgVGVzdDogZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLWxlZnQtcmlnaHQt
YnktbGluZWJvdW5kYXJ5Lmh0bWwKKworICAgICAgICBBZGQgbWlzc2luZyBjYXNlcyBmb3IgZXh0
ZW5kaW5nIGxlZnQvcmlnaHQgYnkgbGluZWJvdW5kYXJ5LgorCisgICAgICAgICogZWRpdGluZy9T
ZWxlY3Rpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdGlvbkNvbnRy
b2xsZXI6Om1vZGlmeUV4dGVuZGluZ1JpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdGlv
bkNvbnRyb2xsZXI6Om1vZGlmeUV4dGVuZGluZ0xlZnQpOgorCiAyMDExLTAyLTE0ICBKZXJlbXkg
T3Jsb3cgIDxqb3Jsb3dAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmlu
IEZpc2hlci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uQ29u
dHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NlbGVjdGlvbkNvbnRyb2xsZXIu
Y3BwCmluZGV4IDUzMGYzMzUxOGM2YmI4ODY2N2JmYWJkNzJlNmU4ZGU1MWNhMTBiNDYuLjVjZjVj
Yjc4NDE0NWY1NGVmOGI2OWM5YmM0MTJkNzEwOTRiMmRmZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvU2VsZWN0aW9uQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9TZWxlY3Rpb25Db250cm9sbGVyLmNwcApAQCAtNDI5LDExICs0MjksMTYgQEAg
VmlzaWJsZVBvc2l0aW9uIFNlbGVjdGlvbkNvbnRyb2xsZXI6Om1vZGlmeUV4dGVuZGluZ1JpZ2h0
KFRleHRHcmFudWxhcml0eSBncmFudWwKICAgICAgICAgZWxzZQogICAgICAgICAgICAgcG9zID0g
cHJldmlvdXNXb3JkUG9zaXRpb24ocG9zKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMaW5l
Qm91bmRhcnk6CisgICAgICAgIGlmIChkaXJlY3Rpb25PZkVuY2xvc2luZ0Jsb2NrKCkgPT0gTFRS
KQorICAgICAgICAgICAgcG9zID0gbW9kaWZ5RXh0ZW5kaW5nRm9yd2FyZChncmFudWxhcml0eSk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHBvcyA9IG1vZGlmeUV4dGVuZGluZ0JhY2t3YXJk
KGdyYW51bGFyaXR5KTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFy
aXR5OgogICAgIGNhc2UgTGluZUdyYW51bGFyaXR5OgogICAgIGNhc2UgUGFyYWdyYXBoR3JhbnVs
YXJpdHk6CiAgICAgY2FzZSBTZW50ZW5jZUJvdW5kYXJ5OgotICAgIGNhc2UgTGluZUJvdW5kYXJ5
OgogICAgIGNhc2UgUGFyYWdyYXBoQm91bmRhcnk6CiAgICAgY2FzZSBEb2N1bWVudEJvdW5kYXJ5
OgogICAgICAgICAvLyBGSVhNRTogaW1wbGVtZW50IGFsbCBvZiB0aGUgYWJvdmU/CkBAIC00NDEs
NyArNDQ2LDcgQEAgVmlzaWJsZVBvc2l0aW9uIFNlbGVjdGlvbkNvbnRyb2xsZXI6Om1vZGlmeUV4
dGVuZGluZ1JpZ2h0KFRleHRHcmFudWxhcml0eSBncmFudWwKICAgICB9CiAgICAgcmV0dXJuIHBv
czsKIH0KLSAgICAgICAgCisKIFZpc2libGVQb3NpdGlvbiBTZWxlY3Rpb25Db250cm9sbGVyOjpt
b2RpZnlFeHRlbmRpbmdGb3J3YXJkKFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSkKIHsKICAg
ICBWaXNpYmxlUG9zaXRpb24gcG9zKG1fc2VsZWN0aW9uLmV4dGVudCgpLCBtX3NlbGVjdGlvbi5h
ZmZpbml0eSgpKTsKQEAgLTU4MiwxMSArNTg3LDE2IEBAIFZpc2libGVQb3NpdGlvbiBTZWxlY3Rp
b25Db250cm9sbGVyOjptb2RpZnlFeHRlbmRpbmdMZWZ0KFRleHRHcmFudWxhcml0eSBncmFudWxh
CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHBvcyA9IG5leHRXb3JkUG9zaXRpb24ocG9zKTsK
ICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBMaW5lQm91bmRhcnk6CisgICAgICAgIGlmIChkaXJl
Y3Rpb25PZkVuY2xvc2luZ0Jsb2NrKCkgPT0gTFRSKQorICAgICAgICAgICAgcG9zID0gbW9kaWZ5
RXh0ZW5kaW5nQmFja3dhcmQoZ3JhbnVsYXJpdHkpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBwb3MgPSBtb2RpZnlFeHRlbmRpbmdGb3J3YXJkKGdyYW51bGFyaXR5KTsKKyAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBTZW50ZW5jZUdyYW51bGFyaXR5OgogICAgIGNhc2UgTGluZUdyYW51bGFy
aXR5OgogICAgIGNhc2UgUGFyYWdyYXBoR3JhbnVsYXJpdHk6CiAgICAgY2FzZSBTZW50ZW5jZUJv
dW5kYXJ5OgotICAgIGNhc2UgTGluZUJvdW5kYXJ5OgogICAgIGNhc2UgUGFyYWdyYXBoQm91bmRh
cnk6CiAgICAgY2FzZSBEb2N1bWVudEJvdW5kYXJ5OgogICAgICAgICBwb3MgPSBtb2RpZnlFeHRl
bmRpbmdCYWNrd2FyZChncmFudWxhcml0eSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>