<?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>76801</bug_id>
          
          <creation_ts>2012-01-22 12:26:08 -0800</creation_ts>
          <short_desc>Listboxes incorrectly display contents when cleared and then re-populated</short_desc>
          <delta_ts>2012-01-31 21:38:11 -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>Forms</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>http://patorjk.com/browser-issues/list-clear-restore.htm</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="Patrick Gillespie">patorjk</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>joethomas</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>540311</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick Gillespie">patorjk</who>
    <bug_when>2012-01-22 12:26:08 -0800</bug_when>
    <thetext>If a user scrolls to the bottom of the list, and then the list is then cleared and re-populated, the listbox will incorrectly display the listbox contents.

I created a simple test case here:

http://patorjk.com/browser-issues/list-clear-restore.htm

You populate a list, scroll to the bottom, clear it, and then re-populate it, and you will see incorrect results (both FireFox and IE9 do not have the problem - though they each handle the issue differently). Instead of the bottom of the list, the top of the list is displayed, even though the scroll bar indicates that you are at the bottom of the list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>540328</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-01-22 16:26:38 -0800</bug_when>
    <thetext>Confirmed with Safari 5.1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541045</commentid>
    <comment_count>2</comment_count>
      <attachid>123682</attachid>
    <who name="Joe Thomas">joethomas</who>
    <bug_when>2012-01-23 18:01:54 -0800</bug_when>
    <thetext>Created attachment 123682
ProposedPatch

I have not added any test cases as I am not sure what kind of regression test can added for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542878</commentid>
    <comment_count>3</comment_count>
    <who name="Joe Thomas">joethomas</who>
    <bug_when>2012-01-25 22:04:45 -0800</bug_when>
    <thetext>
&gt; I have not added any test cases as I am not sure what kind of regression test can added for this.

As far as I understand, it is not possible to access the scrollbar of Select box from javascript. A test can be written for this only if we get the scroll-offset of the Select box scrollBar. I think this bug can be verified only visually. Please let me know if there is any other alternative to write a test for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542884</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-01-25 22:25:45 -0800</bug_when>
    <thetext>This can likely be verified with a pixel test, or better yet, a reftest.

For a reftest, one provides two HTML files, one of which uses a different way to achieve an identical look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542923</commentid>
    <comment_count>5</comment_count>
    <who name="Joe Thomas">joethomas</who>
    <bug_when>2012-01-26 00:34:54 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; This can likely be verified with a pixel test, or better yet, a reftest.
&gt; 
&gt; For a reftest, one provides two HTML files, one of which uses a different way to achieve an identical look.

Thanks Alexey! I am trying to verify it with reftest.

But I am not able to reproduce the original problem with the script I have written. The test is given below. 

I tried document.getElementById(&quot;myList&quot;).selectedIndex = 99, to move to the bottom of the list with 100 elements. This does move to the bottom, but after I clear and repopulate the content, the issue described in the bug is not seen. I think I need to scroll to the bottom of the list without doing a selection as there is no selection involved in the original steps to reproduce the issue.

&lt;!DOCTYPE&gt;
&lt;html&gt;
&lt;body onload=&quot;test()&quot;&gt;
&lt;select id=&quot;myList&quot; size=&quot;10&quot; multiple&gt;&lt;/select&gt;
&lt;script&gt;
function populate()
{
    var myList = document.getElementById(&quot;myList&quot;),
        item,
        ii;

    for (ii = 0; ii &lt; 100; ii++) {
        item = document.createElement(&quot;option&quot;);
        item.value = ii;
        item.appendChild(document.createTextNode(&quot;Item #&quot; + ii));
        myList.appendChild(item);
    }
}
function clear()
{
    var myList = document.getElementById(&quot;myList&quot;),
        items = myList.getElementsByTagName(&quot;option&quot;),
        ii;

    for (ii = items.length-1; ii &gt;= 0; ii--) {
        myList.removeChild(items[ii]);
    }
}
function test()
{
    populate();
    document.getElementById(&quot;myList&quot;).selectedIndex = 99;
    clear();
    populate();
}
&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543185</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-01-26 09:04:36 -0800</bug_when>
    <thetext>You can simulate a click in scroll bar with eventSender (grep for it in LayoutTests/fast directory).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543186</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-01-26 09:05:49 -0800</bug_when>
    <thetext>See also: &lt;http://trac.webkit.org/wiki/Writing%20Layout%20Tests%20for%20DumpRenderTree&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543290</commentid>
    <comment_count>8</comment_count>
    <who name="Joe Thomas">joethomas</who>
    <bug_when>2012-01-26 11:02:47 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; You can simulate a click in scroll bar with eventSender (grep for it in LayoutTests/fast directory).

Thanks. 

window.eventSender is defined only when LayoutTest is run. Is is possible to enable eventSender outside the test-suite so that I can run my test case alone and verify that the scrolling happened?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543320</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-01-26 11:25:09 -0800</bug_when>
    <thetext>It won&apos;t work outside run-webkit-tests. But you can run the test alone by passing its (relative) path to run-webkit-tests, and checking the tool&apos;s output.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543454</commentid>
    <comment_count>10</comment_count>
    <who name="Joe Thomas">joethomas</who>
    <bug_when>2012-01-26 13:56:43 -0800</bug_when>
    <thetext>I tried eventSender to send the mouse events. I could not get the scrolling working with it, but just the listbox is getting focused.

function test()
{
    var index;
    populate();
    var element = document.getElementById(&quot;myList&quot;);
    var bottomX = element.offsetLeft + element.offsetWidth;
    var bottomY = element.offsetTop + element.offsetHeight;
    eventSender.mouseMoveTo(bottomX - 5, bottomY - 5);
    for(index = 0; index &lt; 50; index++) {
       eventSender.mouseDown();
       eventSender.mouseUp();
    } 
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543479</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-01-26 14:22:24 -0800</bug_when>
    <thetext>I&apos;m not sure why this doesn&apos;t work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543585</commentid>
    <comment_count>12</comment_count>
    <who name="Joe Thomas">joethomas</who>
    <bug_when>2012-01-26 15:39:53 -0800</bug_when>
    <thetext>Looks like Scrollbar for Select element will not work with eventSender. Please see the bug https://bugs.webkit.org/show_bug.cgi?id=53628 whether we encountered the same issue.

Should I submit a manual test for this like bug 53628?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543611</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-01-26 15:58:24 -0800</bug_when>
    <thetext>Hmm... I don&apos;t know this code all that well, but I doubt that this is the most elegant approach. We shouldn&apos;t have to scroll - ScrollableArea should reset scroll position on its own when its content shrinks. Why doesn&apos;t that happen?

Also, you say that this works after a programmatic scroll (so it&apos;s difficult to make a test), but not after a manual one. What causes the difference between these cases?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>543849</commentid>
    <comment_count>14</comment_count>
    <who name="Joe Thomas">joethomas</who>
    <bug_when>2012-01-26 22:47:32 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; Hmm... I don&apos;t know this code all that well, but I doubt that this is the most elegant approach. We shouldn&apos;t have to scroll - ScrollableArea should reset scroll position on its own when its content shrinks. Why doesn&apos;t that happen?
&gt; 
ScrollableArea is the base class of RenderListBox and it gets the scroll-offset from RenderListBox (using ScrollableArea::scrollToYOffsetWithoutAnimation)

In the given use case, when the list-items get removed, we disable the scroll bar in RenderListBox::computeLogicalHeight but we never updates the scroll offset with ScrollableArea.

In the patch, I am calling scrollToYOffsetWithoutAnimation(0) after disabling the scrollbar, so apart from updating the offsets at ScrollableArea, it may not initiate any painting(not verified).


&gt; Also, you say that this works after a programmatic scroll (so it&apos;s difficult to make a test), but not after a manual one. What causes the difference between these cases?

I did some more trials and this works in programmatic scroll only if we execute all the below steps in one go.

(1)    populate();
(2)    document.getElementById(&quot;myList&quot;).selectedIndex = 99;
(3)    clear();
(4)    populate();

Step 2 schedules a layout and the selectedIndex gets updated with ScrollableArea when RenderListBox::Layout gets called. But before layout happens, step 3 and 4 gets executed which sets scrollOffset of HTMLSelectElement back to -1. So ScrollableArea never gets updated with the selectedIndex.


If we break the above steps into 2 groups (first two steps in one group) and execute them separately, then the issue will be reproducible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544087</commentid>
    <comment_count>15</comment_count>
    <who name="Joe Thomas">joethomas</who>
    <bug_when>2012-01-27 08:13:44 -0800</bug_when>
    <thetext>I could make a programmatic test case by adding Zero timeout after setting the selectedIndex. I will update patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544162</commentid>
    <comment_count>16</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-01-27 10:22:50 -0800</bug_when>
    <thetext>Yes, you can add a timeout, or you can also force layout by calling a method that depends on it having been done, e.g. document.offsetTop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544179</commentid>
    <comment_count>17</comment_count>
      <attachid>124335</attachid>
    <who name="Joe Thomas">joethomas</who>
    <bug_when>2012-01-27 10:49:07 -0800</bug_when>
    <thetext>Created attachment 124335
PatchWithTestCase

Added testcase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544188</commentid>
    <comment_count>18</comment_count>
      <attachid>124335</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-01-27 10:58:39 -0800</bug_when>
    <thetext>Comment on attachment 124335
PatchWithTestCase

Thanks for adding a test case. I&apos;d like to leave final review for someone else, as I have some doubts about the fix (discussed above).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544321</commentid>
    <comment_count>19</comment_count>
    <who name="Joe Thomas">joethomas</who>
    <bug_when>2012-01-27 13:39:13 -0800</bug_when>
    <thetext>Listbox should notify the ScrollableArea every time the scroll offset gets changed. This notification was not sent to ScrollableArea when listbox items are cleared and the scrollbar is disabled.

The patch sends this additional notification to ScrollableArea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>544341</commentid>
    <comment_count>20</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-01-27 13:59:04 -0800</bug_when>
    <thetext>scrollToYOffsetWithoutAnimation() is not really a notification. Something like contentsResized() is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545313</commentid>
    <comment_count>21</comment_count>
      <attachid>124335</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-01-30 12:38:33 -0800</bug_when>
    <thetext>Comment on attachment 124335
PatchWithTestCase

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

You need pixel results for the new tests (run-webkit-tests --pixel). r- for lack of pixel results.

&gt; Source/WebCore/rendering/RenderListBox.cpp:258
&gt; +           ScrollableArea::scrollToYOffsetWithoutAnimation(0);

Does the call to scrollToYOffsetWithoutAnimation() have to be prefixed with the class name? Are you specifically calling the base class implementation?

&gt; LayoutTests/fast/forms/listbox-clear-restore-expected.html:10
&gt; +    var myList = document.getElementById(&quot;myList&quot;),
&gt; +        item,
&gt; +        ii;

We don&apos;t declare variables like this normally.

&gt; LayoutTests/fast/forms/listbox-clear-restore-expected.html:12
&gt; +    for (ii = 0; ii &lt; 100; ii++) {

ii could be a loop variable for (var ii ...

&gt; LayoutTests/fast/forms/listbox-clear-restore.html:12
&gt; +    var myList = document.getElementById(&quot;myList&quot;),
&gt; +        item,
&gt; +        ii;
&gt; +
&gt; +    for (ii = 0; ii &lt; 100; ii++) {

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545368</commentid>
    <comment_count>22</comment_count>
    <who name="Joe Thomas">joethomas</who>
    <bug_when>2012-01-30 13:35:40 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; (From update of attachment 124335 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=124335&amp;action=review
&gt; 
Thanks for the review.

&gt; You need pixel results for the new tests (run-webkit-tests --pixel). r- for lack of pixel results.
&gt; 
I added a reftest for this defect as per Alexey&apos;s suggestion in comment #4. 
I am new to webkit. How do I get pixel results for this? I tried running run-webkit-tests --pixel, but it did not generate any pixel results. Could you please point me to a similar defect which I can refer to?

&gt; &gt; Source/WebCore/rendering/RenderListBox.cpp:258
&gt; &gt; +           ScrollableArea::scrollToYOffsetWithoutAnimation(0);
&gt; 
&gt; Does the call to scrollToYOffsetWithoutAnimation() have to be prefixed with the class name? Are you specifically calling the base class implementation?
&gt; 
It is not needed. scrollToYOffsetWithoutAnimation has got implementation only in the base class. I added it because I saw similar usage in RenderListBox. I will remove this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545384</commentid>
    <comment_count>23</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-01-30 13:51:54 -0800</bug_when>
    <thetext>You don&apos;t need pixel results with a reftest. It would be however nice to remove fast/forms/listbox-clear-restore-expected.html from WebCore/ChangeLog, as it&apos;s not one of the tests (there is probably a bug about improving prepare-ChangeLog to ignore retest results).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545415</commentid>
    <comment_count>24</comment_count>
      <attachid>124335</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-01-30 14:27:15 -0800</bug_when>
    <thetext>Comment on attachment 124335
PatchWithTestCase

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

r=me but please simplify the expected.html if possible.

&gt; LayoutTests/fast/forms/listbox-clear-restore-expected.html:4
&gt; +&lt;select id=&quot;myList&quot; size=&quot;10&quot; multiple&gt;&lt;/select&gt;

Why does the expected result need any JS to run? Can&apos;t it just hardcode the final state of the list box?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545437</commentid>
    <comment_count>25</comment_count>
    <who name="Joe Thomas">joethomas</who>
    <bug_when>2012-01-30 14:52:07 -0800</bug_when>
    <thetext>(In reply to comment #24)
&gt; (From update of attachment 124335 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=124335&amp;action=review
&gt; 
&gt; r=me but please simplify the expected.html if possible.
&gt; 
&gt; &gt; LayoutTests/fast/forms/listbox-clear-restore-expected.html:4
&gt; &gt; +&lt;select id=&quot;myList&quot; size=&quot;10&quot; multiple&gt;&lt;/select&gt;
&gt; 
&gt; Why does the expected result need any JS to run? Can&apos;t it just hardcode the final state of the list box?

The height of the scrollbar will be different if the number of elements in the listbox is different in test-html and expected-html and this fails the test.

I will reduce the number of elements in the listbox to 20 from 100 in both test and expected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545457</commentid>
    <comment_count>26</comment_count>
      <attachid>124609</attachid>
    <who name="Joe Thomas">joethomas</who>
    <bug_when>2012-01-30 15:12:31 -0800</bug_when>
    <thetext>Created attachment 124609
patch3

Modified patch with review comments incorporated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545825</commentid>
    <comment_count>27</comment_count>
      <attachid>124609</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-01-31 00:19:46 -0800</bug_when>
    <thetext>Comment on attachment 124609
patch3

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

&gt; LayoutTests/fast/forms/listbox-clear-restore.html:36
&gt; +function clearTimeout()

There is already a window.clearTimeout(). You should give this a different name.

&gt; LayoutTests/fast/forms/listbox-clear-restore.html:45
&gt; +    if (window.layoutTestController)
&gt; +    	layoutTestController.waitUntilDone();

Bad indentation here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545972</commentid>
    <comment_count>28</comment_count>
      <attachid>124713</attachid>
    <who name="Joe Thomas">joethomas</who>
    <bug_when>2012-01-31 05:42:14 -0800</bug_when>
    <thetext>Created attachment 124713
Patch4

With review comments incorporated. Changed the function names in the test case

clearTimeout    -&gt; clearListTimeout
populateTimeout -&gt; populateListTimeout
populate        -&gt; populateList
clear           -&gt; clearList</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545974</commentid>
    <comment_count>29</comment_count>
    <who name="Joe Thomas">joethomas</who>
    <bug_when>2012-01-31 05:43:03 -0800</bug_when>
    <thetext>(In reply to comment #27)
&gt; (From update of attachment 124609 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=124609&amp;action=review
&gt; 
&gt; &gt; LayoutTests/fast/forms/listbox-clear-restore.html:36
&gt; &gt; +function clearTimeout()
&gt; 
&gt; There is already a window.clearTimeout(). You should give this a different name.
&gt; 
Done

&gt; &gt; LayoutTests/fast/forms/listbox-clear-restore.html:45
&gt; &gt; +    if (window.layoutTestController)
&gt; &gt; +    	layoutTestController.waitUntilDone();
&gt; 
&gt; Bad indentation here.

Corrected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545975</commentid>
    <comment_count>30</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-31 05:45:36 -0800</bug_when>
    <thetext>Attachment 124713 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 9

Updating OpenSource
First, rewinding head to replay your work on top of it...
Applying: Fix compilation errors on build-webkit --debug --no-workers on mac.
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Auto-merging LayoutTests/ChangeLog
CONFLICT (content): Merge conflict in LayoutTests/ChangeLog
Auto-merging LayoutTests/platform/qt/Skipped
CONFLICT (content): Merge conflict in LayoutTests/platform/qt/Skipped
Auto-merging Source/WebCore/ChangeLog
CONFLICT (content): Merge conflict in Source/WebCore/ChangeLog
Failed to merge in the changes.
Patch failed at 0001 Fix compilation errors on build-webkit --debug --no-workers on mac.

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 164.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545992</commentid>
    <comment_count>31</comment_count>
    <who name="Joe Thomas">joethomas</who>
    <bug_when>2012-01-31 06:22:45 -0800</bug_when>
    <thetext>(In reply to comment #30)
&gt; Attachment 124713 [details] did not pass style-queue:
&gt; 
&gt; Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;]&quot; exit_code: 9
&gt; 
&gt; Updating OpenSource
&gt; First, rewinding head to replay your work on top of it...
&gt; Applying: Fix compilation errors on build-webkit --debug --no-workers on mac.
&gt; Using index info to reconstruct a base tree...
&gt; Falling back to patching base and 3-way merge...
&gt; Auto-merging LayoutTests/ChangeLog
&gt; CONFLICT (content): Merge conflict in LayoutTests/ChangeLog
&gt; Auto-merging LayoutTests/platform/qt/Skipped
&gt; CONFLICT (content): Merge conflict in LayoutTests/platform/qt/Skipped
&gt; Auto-merging Source/WebCore/ChangeLog
&gt; CONFLICT (content): Merge conflict in Source/WebCore/ChangeLog
&gt; Failed to merge in the changes.
&gt; Patch failed at 0001 Fix compilation errors on build-webkit --debug --no-workers on mac.
&gt; 
&gt; When you have resolved this problem run &quot;git rebase --continue&quot;.
&gt; If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
&gt; To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.
&gt; 
&gt; rebase refs/remotes/origin/master: command returned error: 1
&gt; 
&gt; Died at Tools/Scripts/update-webkit line 164.
&gt; 
&gt; 
&gt; If any of these errors are false positives, please file a bug against check-webkit-style.

Not sure the reason for style-check failure. I will re-submit the patch created from an updated webkit source</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545998</commentid>
    <comment_count>32</comment_count>
    <who name="Joe Thomas">joethomas</who>
    <bug_when>2012-01-31 06:36:10 -0800</bug_when>
    <thetext>
&gt; Not sure the reason for style-check failure. I will re-submit the patch created from an updated webkit source

Looks like the style-check is failing with the same reason for other recent commits(bug 77199, bug 77408). Please let me know if I need to do something here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546789</commentid>
    <comment_count>33</comment_count>
      <attachid>124713</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-31 21:38:05 -0800</bug_when>
    <thetext>Comment on attachment 124713
Patch4

Clearing flags on attachment: 124713

Committed r106430: &lt;http://trac.webkit.org/changeset/106430&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546790</commentid>
    <comment_count>34</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-31 21:38:11 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123682</attachid>
            <date>2012-01-23 18:01:54 -0800</date>
            <delta_ts>2012-01-27 10:49:07 -0800</delta_ts>
            <desc>ProposedPatch</desc>
            <filename>patch1</filename>
            <type>text/plain</type>
            <size>1964</size>
            <attacher name="Joe Thomas">joethomas</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNTY2OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAxLTIzICBKb2UgVGhv
bWFzICA8am9ldGhvbWFzQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY4MDEKKyAgICAgICAgTGlzdGJveGVzIGluY29ycmVj
dGx5IGRpc3BsYXkgY29udGVudHMgd2hlbiBjbGVhcmVkIGFuZCB0aGVuIHJlLXBvcHVsYXRlZC4K
KworICAgICAgICBXaGVuZXZlciB0aGUgbnVtYmVyIG9mIGl0ZW1zIGluIHRoZSBsaXN0Ym94IGlz
IGxlc3MgdGhhbiB0aGUgc2l6ZSBvZiBsaXN0Ym94IChudW1iZXIgb2YgdmlzaWJsZSBpdGVtcyB0
aGUgbGlzdGJveCBjYW4gYWNjb21vZGF0ZSksCisgICAgICAgIHdlIHNldCB0aGUgbGlzdGJveCBz
Y3JvbGwtb2Zmc2V0IHRvIHplcm8uIFRoZSBzY3JvbGwtb2Zmc2V0IG9mIHRoZSBTY3JvbGxiYXIg
c2hvdWxkIGFsc28gYmUgc2V0IHRvIDAgc28gdGhhdCB3aGVuIHRoZSBsaXN0Ym94IGlzIHJlLXBv
cHVsYXRlZCwKKyAgICAgICAgc2Nyb2xsYmFyIHBvc2l0aW9uIGFuZCB0aGUgY29udGVudCBpbnNp
ZGUgdGhlIGxpc3Rib3ggYXJlIGluIHN5bmMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGFkZGVkIGFzIHRoaXMgY2FuIGJlIHZl
cmlmaWVkIG9ubHkgdmlzdWFsbHkuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdEJv
eC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94Ojpjb21wdXRlTG9naWNhbEhl
aWdodCk6IFNldHRpbmcgdGhlIHNjcm9sbC1vZmZzZXQgb2YgdGhlIFNjcm9sbGJhciB0byAwIHdo
ZW4gc2Nyb2xsYmFyIGlzIG5vdCBuZWVkZWQuCisKIDIwMTItMDEtMjMgIEFya28gU2FoYSAgPG5n
aHEzNkBtb3Rvcm9sYS5jb20+CiAKICAgICAgICAgTWljcm9EYXRhOiBSZW1vdmUgRXhjZXB0aW9u
Q29kZSYgZnJvbSBzZXRBdHRyaWJ1dGUoKSBjYWxsLgpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAkocmV2aXNpb24gMTA1MjQ1KQorKysgU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTQs
OCArMjU0LDExIEBAIHZvaWQgUmVuZGVyTGlzdEJveDo6Y29tcHV0ZUxvZ2ljYWxIZWlnaHQKICAg
ICAgICAgbV92QmFyLT5zZXRFbmFibGVkKGVuYWJsZWQpOwogICAgICAgICBtX3ZCYXItPnNldFN0
ZXBzKDEsIG1heCgxLCBudW1WaXNpYmxlSXRlbXMoKSAtIDEpLCBpdGVtSGVpZ2h0KTsKICAgICAg
ICAgbV92QmFyLT5zZXRQcm9wb3J0aW9uKG51bVZpc2libGVJdGVtcygpLCBudW1JdGVtcygpKTsK
LSAgICAgICAgaWYgKCFlbmFibGVkKQorICAgICAgICBpZiAoIWVuYWJsZWQpIHsKKyAgICAgICAg
ICAgIC8vIFRoZXJlIGFyZSBub3QgZW5vdWdoIGl0ZW1zIHRvIHNob3cgdGhlIHNjcm9sbGJhci4g
U28gdGhlIHNjcm9sbCBvZmZzZXQgb2YgdGhlIFJlbmRlckxpc3RCb3ggYW5kIFNjcm9sbEJhciBz
aG91bGQgYmUgc2V0IHRvIDAuIAorICAgICAgICAgICAgU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRv
WU9mZnNldFdpdGhvdXRBbmltYXRpb24oMCk7CiAgICAgICAgICAgICBtX2luZGV4T2Zmc2V0ID0g
MDsKKyAgICAgICAgfQogICAgIH0KIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124335</attachid>
            <date>2012-01-27 10:49:07 -0800</date>
            <delta_ts>2012-01-31 00:17:14 -0800</delta_ts>
            <desc>PatchWithTestCase</desc>
            <filename>patch2</filename>
            <type>text/plain</type>
            <size>5222</size>
            <attacher name="Joe Thomas">joethomas</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNjEyMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDEyLTAxLTI3ICBKb2UgVGhv
bWFzICA8am9ldGhvbWFzQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY4MDEKKyAgICAgICAgTGlzdGJveGVzIGluY29ycmVj
dGx5IGRpc3BsYXkgY29udGVudHMgd2hlbiBjbGVhcmVkIGFuZCB0aGVuIHJlLXBvcHVsYXRlZC4K
KworICAgICAgICBXaGVuZXZlciB0aGUgbnVtYmVyIG9mIGl0ZW1zIGluIHRoZSBsaXN0Ym94IGlz
IGxlc3MgdGhhbiB0aGUgc2l6ZSBvZiBsaXN0Ym94IChudW1iZXIgb2YgdmlzaWJsZSBpdGVtcyB0
aGUgbGlzdGJveCBjYW4gYWNjb21vZGF0ZSksCisgICAgICAgIHdlIHNldCB0aGUgbGlzdGJveCBz
Y3JvbGwtb2Zmc2V0IHRvIHplcm8uIFRoZSBzY3JvbGwtb2Zmc2V0IG9mIHRoZSBTY3JvbGxiYXIg
c2hvdWxkIGFsc28gYmUgc2V0IHRvIDAgc28gdGhhdCB3aGVuIHRoZSBsaXN0Ym94IGlzIHJlLXBv
cHVsYXRlZCwKKyAgICAgICAgc2Nyb2xsYmFyIHBvc2l0aW9uIGFuZCB0aGUgY29udGVudCBpbnNp
ZGUgdGhlIGxpc3Rib3ggYXJlIGluIHN5bmMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZm9ybXMvbGlzdGJveC1jbGVhci1yZXN0
b3JlLWV4cGVjdGVkLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvbGlzdGJveC1jbGVh
ci1yZXN0b3JlLmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0KTog
U2V0dGluZyB0aGUgc2Nyb2xsLW9mZnNldCBvZiB0aGUgU2Nyb2xsYmFyIHRvIDAgd2hlbiBzY3Jv
bGxiYXIgaXMgbm90IG5lZWRlZC4KKwogMjAxMi0wMS0yNyAgTm8nYW0gUm9zZW50aGFsICA8bm9h
bS5yb3NlbnRoYWxAbm9raWEuY29tPgogCiAgICAgICAgIFtRdF1bV0syXSBDaGlsZCBsYXllcnMg
YXBwZWFyIGluIHdyb25nIHBvc2l0aW9uIHdoZW4gc2Nyb2xsaW5nCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCShyZXZpc2lvbiAxMDYwMDEpCisrKyBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI1NCw4ICsyNTQsMTAgQEAgdm9pZCBSZW5kZXJMaXN0Qm94Ojpjb21wdXRlTG9naWNhbEhl
aWdodAogICAgICAgICBtX3ZCYXItPnNldEVuYWJsZWQoZW5hYmxlZCk7CiAgICAgICAgIG1fdkJh
ci0+c2V0U3RlcHMoMSwgbWF4KDEsIG51bVZpc2libGVJdGVtcygpIC0gMSksIGl0ZW1IZWlnaHQp
OwogICAgICAgICBtX3ZCYXItPnNldFByb3BvcnRpb24obnVtVmlzaWJsZUl0ZW1zKCksIG51bUl0
ZW1zKCkpOwotICAgICAgICBpZiAoIWVuYWJsZWQpCi0gICAgICAgICAgICBtX2luZGV4T2Zmc2V0
ID0gMDsKKyAgICAgICAgaWYgKCFlbmFibGVkKSB7CisgICAgICAgICAgIFNjcm9sbGFibGVBcmVh
OjpzY3JvbGxUb1lPZmZzZXRXaXRob3V0QW5pbWF0aW9uKDApOworICAgICAgICAgICBtX2luZGV4
T2Zmc2V0ID0gMDsKKyAgICAgICAgfQogICAgIH0KIH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTA2
MTIzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTkgQEAKKzIwMTItMDEtMjcgIEpvZSBUaG9tYXMgIDxqb2V0aG9tYXNAbW90b3JvbGEuY29tPgor
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjgwMQor
ICAgICAgICBMaXN0Ym94ZXMgaW5jb3JyZWN0bHkgZGlzcGxheSBjb250ZW50cyB3aGVuIGNsZWFy
ZWQgYW5kIHRoZW4gcmUtcG9wdWxhdGVkLgorCisgICAgICAgIFdoZW5ldmVyIHRoZSBudW1iZXIg
b2YgaXRlbXMgaW4gdGhlIGxpc3Rib3ggaXMgbGVzcyB0aGFuIHRoZSBzaXplIG9mIGxpc3Rib3gg
KG51bWJlciBvZiB2aXNpYmxlIGl0ZW1zIHRoZSBsaXN0Ym94IGNhbiBhY2NvbW9kYXRlKSwKKyAg
ICAgICAgd2Ugc2V0IHRoZSBsaXN0Ym94IHNjcm9sbC1vZmZzZXQgdG8gemVyby4gVGhlIHNjcm9s
bC1vZmZzZXQgb2YgdGhlIFNjcm9sbGJhciBzaG91bGQgYWxzbyBiZSBzZXQgdG8gMCBzbyB0aGF0
IHdoZW4gdGhlIGxpc3Rib3ggaXMgcmUtcG9wdWxhdGVkLAorICAgICAgICBzY3JvbGxiYXIgcG9z
aXRpb24gYW5kIHRoZSBjb250ZW50IGluc2lkZSB0aGUgbGlzdGJveCBhcmUgaW4gc3luYy4KKwor
ICAgICAgICBBZGRlZCB0ZXN0IGNhc2UuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2xpc3Rib3gtY2xlYXItcmVzdG9yZS1leHBl
Y3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2xpc3Rib3gtY2xlYXItcmVz
dG9yZS5odG1sOiBBZGRlZC4KKwogMjAxMi0wMS0yNyAgU3RlcGhlbiBDaGVubmV5ICA8c2NoZW5u
ZXlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV06IFVwZGF0ZSBleHBlY3RhdGlv
bnMgYWZ0ZXIgcjEwNTU3MgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9saXN0Ym94LWNs
ZWFyLXJlc3RvcmUtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2xpc3Rib3gtY2xlYXItcmVzdG9yZS1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9saXN0Ym94LWNsZWFyLXJlc3RvcmUtZXhwZWN0ZWQu
aHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNiBAQAorPCFET0NUWVBFPgorPGh0bWw+Cis8
Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8c2VsZWN0IGlkPSJteUxpc3QiIHNpemU9IjEwIiBtdWx0
aXBsZT48L3NlbGVjdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBwb3B1bGF0ZSgpCit7CisgICAgdmFy
IG15TGlzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteUxpc3QiKSwKKyAgICAgICAgaXRl
bSwKKyAgICAgICAgaWk7CisKKyAgICBmb3IgKGlpID0gMDsgaWkgPCAxMDA7IGlpKyspIHsKKyAg
ICAgICAgaXRlbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpOworICAgICAgICBp
dGVtLnZhbHVlID0gaWk7CisgICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUoIkl0ZW0gIyIgKyBpaSkpOworICAgICAgICBteUxpc3QuYXBwZW5kQ2hpbGQoaXRl
bSk7CisgICAgfQorfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBwb3B1bGF0ZSgpOworfQor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2xpc3Rib3gtY2xlYXItcmVzdG9yZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZm9ybXMvbGlzdGJveC1jbGVhci1yZXN0b3JlLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2xpc3Rib3gtY2xlYXItcmVzdG9yZS5odG1sCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDU2IEBACis8IURPQ1RZUEU+Cis8aHRtbD4KKzxib2R5IG9ubG9hZD0idGVz
dCgpIj4KKzxzZWxlY3QgaWQ9Im15TGlzdCIgc2l6ZT0iMTAiIG11bHRpcGxlPjwvc2VsZWN0Pgor
PHNjcmlwdD4KK2Z1bmN0aW9uIHBvcHVsYXRlKCkKK3sKKyAgICB2YXIgbXlMaXN0ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoIm15TGlzdCIpLAorICAgICAgICBpdGVtLAorICAgICAgICBpaTsK
KworICAgIGZvciAoaWkgPSAwOyBpaSA8IDEwMDsgaWkrKykgeworICAgICAgICBpdGVtID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgib3B0aW9uIik7CisgICAgICAgIGl0ZW0udmFsdWUgPSBpaTsK
KyAgICAgICAgaXRlbS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiSXRlbSAj
IiArIGlpKSk7CisgICAgICAgIG15TGlzdC5hcHBlbmRDaGlsZChpdGVtKTsKKyAgICB9Cit9CisK
K2Z1bmN0aW9uIGNsZWFyKCkKK3sKKyAgICB2YXIgbXlMaXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoIm15TGlzdCIpLAorICAgICAgICBpdGVtcyA9IG15TGlzdC5nZXRFbGVtZW50c0J5VGFn
TmFtZSgib3B0aW9uIiksCisgICAgICAgIGlpOworCisgICAgZm9yIChpaSA9IGl0ZW1zLmxlbmd0
aC0xOyBpaSA+PSAwOyBpaS0tKSB7CisgICAgICAgIG15TGlzdC5yZW1vdmVDaGlsZChpdGVtc1tp
aV0pOworICAgIH0KK30KKworZnVuY3Rpb24gcG9wdWxhdGVUaW1lb3V0KCkKK3sKKyAgICBwb3B1
bGF0ZSgpOworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gY2xlYXJUaW1l
b3V0KCkKK3sKKyAgICBjbGVhcigpOworICAgIHNldFRpbWVvdXQocG9wdWxhdGVUaW1lb3V0LCAw
KTsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICAJbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCisg
ICAgcG9wdWxhdGUoKTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlMaXN0Iikuc2Vs
ZWN0ZWRJbmRleCA9IDk5OworICAgIHdpbmRvdy5zZXRUaW1lb3V0KGNsZWFyVGltZW91dCwgMCk7
Cit9CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124609</attachid>
            <date>2012-01-30 15:12:31 -0800</date>
            <delta_ts>2012-01-31 05:42:14 -0800</delta_ts>
            <desc>patch3</desc>
            <filename>patch3</filename>
            <type>text/plain</type>
            <size>5138</size>
            <attacher name="Joe Thomas">joethomas</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNjI5MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAxLTMwICBKb2UgVGhv
bWFzICA8am9ldGhvbWFzQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY4MDEKKyAgICAgICAgTGlzdGJveGVzIGluY29ycmVj
dGx5IGRpc3BsYXkgY29udGVudHMgd2hlbiBjbGVhcmVkIGFuZCB0aGVuIHJlLXBvcHVsYXRlZC4K
KworICAgICAgICBXaGVuZXZlciB0aGUgbnVtYmVyIG9mIGl0ZW1zIGluIHRoZSBsaXN0Ym94IGlz
IGxlc3MgdGhhbiB0aGUgc2l6ZSBvZiBsaXN0Ym94IChudW1iZXIgb2YgdmlzaWJsZSBpdGVtcyB0
aGUgbGlzdGJveCBjYW4gYWNjb21vZGF0ZSksCisgICAgICAgIHdlIHNldCB0aGUgbGlzdGJveCBz
Y3JvbGwtb2Zmc2V0IHRvIHplcm8uIFRoZSBzY3JvbGwtb2Zmc2V0IG9mIHRoZSBTY3JvbGxiYXIg
c2hvdWxkIGFsc28gYmUgc2V0IHRvIDAgc28gdGhhdCB3aGVuIHRoZSBsaXN0Ym94IGlzIHJlLXBv
cHVsYXRlZCwKKyAgICAgICAgc2Nyb2xsYmFyIHBvc2l0aW9uIGFuZCB0aGUgY29udGVudCBpbnNp
ZGUgdGhlIGxpc3Rib3ggYXJlIGluIHN5bmMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZm9ybXMvbGlzdGJveC1jbGVhci1yZXN0
b3JlLmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0KTogU2V0dGlu
ZyB0aGUgc2Nyb2xsLW9mZnNldCBvZiB0aGUgU2Nyb2xsYmFyIHRvIDAgd2hlbiBzY3JvbGxiYXIg
aXMgbm90IG5lZWRlZC4KKwogMjAxMi0wMS0zMCAgTGV2aSBXZWludHJhdWIgIDxsZXZpd0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgIW1faW5zaWRlUmVnaW9uUGFpbnQgYXNzZXJ0aW9uIGluIFJl
bmRlclJlZ2lvbi5jcHAgaXMgaW52YWxpZApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxpc3RCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMaXN0Qm94LmNwcAkocmV2aXNpb24gMTA2Mjg5KQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTQsOCArMjU0
LDEwIEBAIHZvaWQgUmVuZGVyTGlzdEJveDo6Y29tcHV0ZUxvZ2ljYWxIZWlnaHQKICAgICAgICAg
bV92QmFyLT5zZXRFbmFibGVkKGVuYWJsZWQpOwogICAgICAgICBtX3ZCYXItPnNldFN0ZXBzKDEs
IG1heCgxLCBudW1WaXNpYmxlSXRlbXMoKSAtIDEpLCBpdGVtSGVpZ2h0KTsKICAgICAgICAgbV92
QmFyLT5zZXRQcm9wb3J0aW9uKG51bVZpc2libGVJdGVtcygpLCBudW1JdGVtcygpKTsKLSAgICAg
ICAgaWYgKCFlbmFibGVkKQotICAgICAgICAgICAgbV9pbmRleE9mZnNldCA9IDA7CisgICAgICAg
IGlmICghZW5hYmxlZCkgeworICAgICAgICAgICBzY3JvbGxUb1lPZmZzZXRXaXRob3V0QW5pbWF0
aW9uKDApOworICAgICAgICAgICBtX2luZGV4T2Zmc2V0ID0gMDsKKyAgICAgICAgfQogICAgIH0K
IH0KIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTA2MjkxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTItMDEtMzAgIEpvZSBUaG9tYXMg
IDxqb2V0aG9tYXNAbW90b3JvbGEuY29tPgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03NjgwMQorICAgICAgICBMaXN0Ym94ZXMgaW5jb3JyZWN0bHkg
ZGlzcGxheSBjb250ZW50cyB3aGVuIGNsZWFyZWQgYW5kIHRoZW4gcmUtcG9wdWxhdGVkLgorCisg
ICAgICAgIFdoZW5ldmVyIHRoZSBudW1iZXIgb2YgaXRlbXMgaW4gdGhlIGxpc3Rib3ggaXMgbGVz
cyB0aGFuIHRoZSBzaXplIG9mIGxpc3Rib3ggKG51bWJlciBvZiB2aXNpYmxlIGl0ZW1zIHRoZSBs
aXN0Ym94IGNhbiBhY2NvbW9kYXRlKSwKKyAgICAgICAgd2Ugc2V0IHRoZSBsaXN0Ym94IHNjcm9s
bC1vZmZzZXQgdG8gemVyby4gVGhlIHNjcm9sbC1vZmZzZXQgb2YgdGhlIFNjcm9sbGJhciBzaG91
bGQgYWxzbyBiZSBzZXQgdG8gMCBzbyB0aGF0IHdoZW4gdGhlIGxpc3Rib3ggaXMgcmUtcG9wdWxh
dGVkLAorICAgICAgICBzY3JvbGxiYXIgcG9zaXRpb24gYW5kIHRoZSBjb250ZW50IGluc2lkZSB0
aGUgbGlzdGJveCBhcmUgaW4gc3luYy4KKworICAgICAgICBBZGRlZCB0ZXN0IGNhc2UuCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Zvcm1z
L2xpc3Rib3gtY2xlYXItcmVzdG9yZS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2Zvcm1zL2xpc3Rib3gtY2xlYXItcmVzdG9yZS5odG1sOiBBZGRlZC4KKwogMjAxMi0wMS0z
MCAgTGV2aSBXZWludHJhdWIgIDxsZXZpd0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCBnYXJkZW5pbmcuIE1hcmtpbmcgZmFzdC9qcy9kZmctaW50MzJhcnJheS1vdmVyZmxvdy12
YWx1ZXMuaHRtbCBhcyBzbG93CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2xpc3Rib3gt
Y2xlYXItcmVzdG9yZS1leHBlY3RlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZm9ybXMvbGlzdGJveC1jbGVhci1yZXN0b3JlLWV4cGVjdGVkLmh0bWwJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2xpc3Rib3gtY2xlYXItcmVzdG9yZS1leHBlY3Rl
ZC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI1IEBACis8IURPQ1RZUEU+Cis8aHRtbD4K
Kzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKzxzZWxlY3QgaWQ9Im15TGlzdCIgc2l6ZT0iMTAiIG11
bHRpcGxlPjwvc2VsZWN0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHBvcHVsYXRlKCkKK3sKKyAgICB2
YXIgbXlMaXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15TGlzdCIpOworICAgIHZhciBp
dGVtOworCisgICAgZm9yICh2YXIgaWkgPSAwOyBpaSA8IDIwOyBpaSsrKSB7CisgICAgICAgIGl0
ZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKTsKKyAgICAgICAgaXRlbS52YWx1
ZSA9IGlpOworICAgICAgICBpdGVtLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KCJJdGVtICMiICsgaWkpKTsKKyAgICAgICAgbXlMaXN0LmFwcGVuZENoaWxkKGl0ZW0pOworICAg
IH0KK30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcG9wdWxhdGUoKTsKK30KKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9saXN0Ym94
LWNsZWFyLXJlc3RvcmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2xpc3Rib3gtY2xlYXItcmVzdG9yZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9saXN0Ym94LWNsZWFyLXJlc3RvcmUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw1NCBAQAorPCFET0NUWVBFPgorPGh0bWw+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8
c2VsZWN0IGlkPSJteUxpc3QiIHNpemU9IjEwIiBtdWx0aXBsZT48L3NlbGVjdD4KKzxzY3JpcHQ+
CitmdW5jdGlvbiBwb3B1bGF0ZSgpCit7CisgICAgdmFyIG15TGlzdCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJteUxpc3QiKTsKKyAgICB2YXIgaXRlbTsKKworICAgIGZvciAodmFyIGlpID0g
MDsgaWkgPCAyMDsgaWkrKykgeworICAgICAgICBpdGVtID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgib3B0aW9uIik7CisgICAgICAgIGl0ZW0udmFsdWUgPSBpaTsKKyAgICAgICAgaXRlbS5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiSXRlbSAjIiArIGlpKSk7CisgICAgICAg
IG15TGlzdC5hcHBlbmRDaGlsZChpdGVtKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGNsZWFyKCkK
K3sKKyAgICB2YXIgbXlMaXN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15TGlzdCIpOwor
ICAgIHZhciBpdGVtcyA9IG15TGlzdC5nZXRFbGVtZW50c0J5VGFnTmFtZSgib3B0aW9uIik7CisK
KyAgICBmb3IgKHZhciBpaSA9IGl0ZW1zLmxlbmd0aC0xOyBpaSA+PSAwOyBpaS0tKSB7CisgICAg
ICAgIG15TGlzdC5yZW1vdmVDaGlsZChpdGVtc1tpaV0pOworICAgIH0KK30KKworZnVuY3Rpb24g
cG9wdWxhdGVUaW1lb3V0KCkKK3sKKyAgICBwb3B1bGF0ZSgpOworICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURv
bmUoKTsKK30KKworZnVuY3Rpb24gY2xlYXJUaW1lb3V0KCkKK3sKKyAgICBjbGVhcigpOworICAg
IHNldFRpbWVvdXQocG9wdWxhdGVUaW1lb3V0LCAwKTsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7
CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAJbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgcG9wdWxhdGUoKTsKKyAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgibXlMaXN0Iikuc2VsZWN0ZWRJbmRleCA9IDE5OworICAgIHdpbmRv
dy5zZXRUaW1lb3V0KGNsZWFyVGltZW91dCwgMCk7Cit9CisKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgo=
</data>
<flag name="review"
          id="125913"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="125914"
          type_id="3"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124713</attachid>
            <date>2012-01-31 05:42:14 -0800</date>
            <delta_ts>2012-01-31 21:38:05 -0800</delta_ts>
            <desc>Patch4</desc>
            <filename>patch4</filename>
            <type>text/plain</type>
            <size>5129</size>
            <attacher name="Joe Thomas">joethomas</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNjM1NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEyLTAxLTMxICBKb2UgVGhv
bWFzICA8am9ldGhvbWFzQG1vdG9yb2xhLmNvbT4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY4MDEKKyAgICAgICAgTGlzdGJveGVzIGluY29ycmVj
dGx5IGRpc3BsYXkgY29udGVudHMgd2hlbiBjbGVhcmVkIGFuZCB0aGVuIHJlLXBvcHVsYXRlZC4K
KworICAgICAgICBXaGVuZXZlciB0aGUgbnVtYmVyIG9mIGl0ZW1zIGluIHRoZSBsaXN0Ym94IGlz
IGxlc3MgdGhhbiB0aGUgc2l6ZSBvZiBsaXN0Ym94IChudW1iZXIgb2YgdmlzaWJsZSBpdGVtcyB0
aGUgbGlzdGJveCBjYW4gYWNjb21vZGF0ZSksCisgICAgICAgIHdlIHNldCB0aGUgbGlzdGJveCBz
Y3JvbGwtb2Zmc2V0IHRvIHplcm8uIFRoZSBzY3JvbGwtb2Zmc2V0IG9mIHRoZSBTY3JvbGxiYXIg
c2hvdWxkIGFsc28gYmUgc2V0IHRvIDAgc28gdGhhdCB3aGVuIHRoZSBsaXN0Ym94IGlzIHJlLXBv
cHVsYXRlZCwKKyAgICAgICAgc2Nyb2xsYmFyIHBvc2l0aW9uIGFuZCB0aGUgY29udGVudCBpbnNp
ZGUgdGhlIGxpc3Rib3ggYXJlIGluIHN5bmMuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZm9ybXMvbGlzdGJveC1jbGVhci1yZXN0
b3JlLmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0KTogU2V0dGlu
ZyB0aGUgc2Nyb2xsLW9mZnNldCBvZiB0aGUgU2Nyb2xsYmFyIHRvIDAgd2hlbiBzY3JvbGxiYXIg
aXMgbm90IG5lZWRlZC4KKwogMjAxMi0wMS0zMSAgQWxleGVpIEZpbGlwcG92ICA8YWxleGVpZkBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjogc2hvdyBzaXplcyBpbiBieXRl
cyBpbnN0ZWFkIG9mIEtCLCBNQiBpbiBoZWFwIHByb2ZpbGVyLgpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAkocmV2aXNpb24gMTA2Mjg5KQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNTQsOCArMjU0LDEwIEBAIHZvaWQgUmVuZGVyTGlzdEJveDo6Y29tcHV0ZUxvZ2ljYWxIZWln
aHQKICAgICAgICAgbV92QmFyLT5zZXRFbmFibGVkKGVuYWJsZWQpOwogICAgICAgICBtX3ZCYXIt
PnNldFN0ZXBzKDEsIG1heCgxLCBudW1WaXNpYmxlSXRlbXMoKSAtIDEpLCBpdGVtSGVpZ2h0KTsK
ICAgICAgICAgbV92QmFyLT5zZXRQcm9wb3J0aW9uKG51bVZpc2libGVJdGVtcygpLCBudW1JdGVt
cygpKTsKLSAgICAgICAgaWYgKCFlbmFibGVkKQorICAgICAgICBpZiAoIWVuYWJsZWQpIHsKKyAg
ICAgICAgICAgIHNjcm9sbFRvWU9mZnNldFdpdGhvdXRBbmltYXRpb24oMCk7CiAgICAgICAgICAg
ICBtX2luZGV4T2Zmc2V0ID0gMDsKKyAgICAgICAgfQogICAgIH0KIH0KIApJbmRleDogTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2
aXNpb24gMTA2MzU0KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTItMDEtMzEgIEpvZSBUaG9tYXMgIDxqb2V0aG9tYXNAbW90b3Jv
bGEuY29tPgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03NjgwMQorICAgICAgICBMaXN0Ym94ZXMgaW5jb3JyZWN0bHkgZGlzcGxheSBjb250ZW50cyB3
aGVuIGNsZWFyZWQgYW5kIHRoZW4gcmUtcG9wdWxhdGVkLgorCisgICAgICAgIFdoZW5ldmVyIHRo
ZSBudW1iZXIgb2YgaXRlbXMgaW4gdGhlIGxpc3Rib3ggaXMgbGVzcyB0aGFuIHRoZSBzaXplIG9m
IGxpc3Rib3ggKG51bWJlciBvZiB2aXNpYmxlIGl0ZW1zIHRoZSBsaXN0Ym94IGNhbiBhY2NvbW9k
YXRlKSwKKyAgICAgICAgd2Ugc2V0IHRoZSBsaXN0Ym94IHNjcm9sbC1vZmZzZXQgdG8gemVyby4g
VGhlIHNjcm9sbC1vZmZzZXQgb2YgdGhlIFNjcm9sbGJhciBzaG91bGQgYWxzbyBiZSBzZXQgdG8g
MCBzbyB0aGF0IHdoZW4gdGhlIGxpc3Rib3ggaXMgcmUtcG9wdWxhdGVkLAorICAgICAgICBzY3Jv
bGxiYXIgcG9zaXRpb24gYW5kIHRoZSBjb250ZW50IGluc2lkZSB0aGUgbGlzdGJveCBhcmUgaW4g
c3luYy4KKworICAgICAgICBBZGRlZCB0ZXN0IGNhc2UuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2xpc3Rib3gtY2xlYXItcmVz
dG9yZS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2xpc3Rib3gt
Y2xlYXItcmVzdG9yZS5odG1sOiBBZGRlZC4KKwogMjAxMi0wMS0zMSAgWXV6byBGdWppc2hpbWEg
IDx5dXpvQGdvb2dsZS5jb20+CiAKICAgICAgICAgW0Nocm9taXVtXSBVbnJldmlld2VkIHRlc3Qg
ZXhwZWN0YXRpb24gY2hhbmdlLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9saXN0Ym94
LWNsZWFyLXJlc3RvcmUtZXhwZWN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2xpc3Rib3gtY2xlYXItcmVzdG9yZS1leHBlY3RlZC5odG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9saXN0Ym94LWNsZWFyLXJlc3RvcmUtZXhwZWN0
ZWQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNSBAQAorPCFET0NUWVBFPgorPGh0bWw+
Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8c2VsZWN0IGlkPSJteUxpc3QiIHNpemU9IjEwIiBt
dWx0aXBsZT48L3NlbGVjdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBwb3B1bGF0ZUxpc3QoKQorewor
ICAgIHZhciBteUxpc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlMaXN0Iik7CisgICAg
dmFyIGl0ZW07CisKKyAgICBmb3IgKHZhciBpaSA9IDA7IGlpIDwgMjA7IGlpKyspIHsKKyAgICAg
ICAgaXRlbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpOworICAgICAgICBpdGVt
LnZhbHVlID0gaWk7CisgICAgICAgIGl0ZW0uYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUoIkl0ZW0gIyIgKyBpaSkpOworICAgICAgICBteUxpc3QuYXBwZW5kQ2hpbGQoaXRlbSk7
CisgICAgfQorfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBwb3B1bGF0ZUxpc3QoKTsKK30K
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9saXN0Ym94LWNsZWFyLXJlc3RvcmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL2xpc3Rib3gtY2xlYXItcmVzdG9yZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9saXN0Ym94LWNsZWFyLXJlc3RvcmUuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBFPgorPGh0bWw+Cis8Ym9keSBvbmxvYWQ9InRl
c3QoKSI+Cis8c2VsZWN0IGlkPSJteUxpc3QiIHNpemU9IjEwIiBtdWx0aXBsZT48L3NlbGVjdD4K
KzxzY3JpcHQ+CitmdW5jdGlvbiBwb3B1bGF0ZUxpc3QoKQoreworICAgIHZhciBteUxpc3QgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlMaXN0Iik7CisgICAgdmFyIGl0ZW07CisKKyAgICBm
b3IgKHZhciBpaSA9IDA7IGlpIDwgMjA7IGlpKyspIHsKKyAgICAgICAgaXRlbSA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpOworICAgICAgICBpdGVtLnZhbHVlID0gaWk7CisgICAg
ICAgIGl0ZW0uYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIkl0ZW0gIyIgKyBp
aSkpOworICAgICAgICBteUxpc3QuYXBwZW5kQ2hpbGQoaXRlbSk7CisgICAgfQorfQorCitmdW5j
dGlvbiBjbGVhckxpc3QoKQoreworICAgIHZhciBteUxpc3QgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgibXlMaXN0Iik7CisgICAgdmFyIGl0ZW1zID0gbXlMaXN0LmdldEVsZW1lbnRzQnlUYWdO
YW1lKCJvcHRpb24iKTsKKworICAgIGZvciAodmFyIGlpID0gaXRlbXMubGVuZ3RoLTE7IGlpID49
IDA7IGlpLS0pIHsKKyAgICAgICAgbXlMaXN0LnJlbW92ZUNoaWxkKGl0ZW1zW2lpXSk7CisgICAg
fQorfQorCitmdW5jdGlvbiBwb3B1bGF0ZUxpc3RUaW1lb3V0KCkKK3sKKyAgICBwb3B1bGF0ZUxp
c3QoKTsKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGNsZWFyTGlzdFRp
bWVvdXQoKQoreworICAgIGNsZWFyTGlzdCgpOworICAgIHNldFRpbWVvdXQocG9wdWxhdGVMaXN0
VGltZW91dCwgMCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRp
bERvbmUoKTsKKworICAgIHBvcHVsYXRlTGlzdCgpOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJteUxpc3QiKS5zZWxlY3RlZEluZGV4ID0gMTk7CisgICAgd2luZG93LnNldFRpbWVvdXQo
Y2xlYXJMaXN0VGltZW91dCwgMCk7Cit9CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>