<?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>25444</bug_id>
          
          <creation_ts>2009-04-28 05:30:01 -0700</creation_ts>
          <short_desc>SelectionStart, selectionEnd properties return wrong values when the selection is in a form input</short_desc>
          <delta_ts>2010-11-11 19:56:56 -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://pc44.one.pl/goorol/bugs/selection.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="bugzilla33">bugzilla33</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>adele</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>enrica</cc>
    
    <cc>jiyuluna</cc>
    
    <cc>jshin</cc>
    
    <cc>rniwa</cc>
    
    <cc>tkent</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>119082</commentid>
    <comment_count>0</comment_count>
    <who name="bugzilla33">bugzilla33</who>
    <bug_when>2009-04-28 05:30:01 -0700</bug_when>
    <thetext>Run stript from attachement.
SelectionStart, selectionEnd properties return wrong values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119083</commentid>
    <comment_count>1</comment_count>
      <attachid>29841</attachid>
    <who name="bugzilla33">bugzilla33</who>
    <bug_when>2009-04-28 05:30:53 -0700</bug_when>
    <thetext>Created attachment 29841
source</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119296</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-04-29 11:04:29 -0700</bug_when>
    <thetext>I think that we already have a bug about this somewhere - the issue looks familiar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>135721</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-07-29 16:35:22 -0700</bug_when>
    <thetext>*** Bug 27797 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>177277</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-01-05 11:49:03 -0800</bug_when>
    <thetext>*** Bug 33199 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304062</commentid>
    <comment_count>5</comment_count>
      <attachid>72830</attachid>
    <who name="Julie Jeongeun Kim">jiyuluna</who>
    <bug_when>2010-11-03 09:27:20 -0700</bug_when>
    <thetext>Created attachment 72830
Proposed Patch

Please check the attached patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304432</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-11-03 19:38:37 -0700</bug_when>
    <thetext>I didn&apos;t think about this patch in depth, just some quick comments.

+    if (!indexPosition.node() 
+        || (indexPosition.node()-&gt;rootEditableElement() != m_innerText &amp;&amp; !isSelectableElement(indexPosition.node())))

There is no need to wrap this line.

+This script should show: 5, 7

This comment seems obsolete - nothing shows &quot;5, 7&quot; here.

+   - Firefox: OK&lt;br/&gt;
+   - Opera: OK&lt;br/&gt;
+   - Konqueror: OK&lt;br/&gt;
+   - IE: (not supported)

A comment in HTMLInputElement.idl says that this is a WinIE &amp; FireFox extension. Is that wrong? Please fix either the comment or the test.

\ No newline at end of file

Please add one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304460</commentid>
    <comment_count>7</comment_count>
      <attachid>72830</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-11-03 20:41:07 -0700</bug_when>
    <thetext>Comment on attachment 72830
Proposed Patch

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

&gt; WebCore/ChangeLog:8
&gt; +        Only editable elements are available at RenderTextControl::indexForVisiblePosition. 

I don&apos;t get this comment.  Could you elaborate more?

&gt; WebCore/rendering/RenderTextControl.cpp:264
&gt; +    if (node &amp;&amp; node-&gt;isShadowNode() &amp;&amp; (node-&gt;shadowParentNode()-&gt;hasTagName(inputTag) || node-&gt;shadowParentNode()-&gt;hasTagName(textareaTag)))

Why do we exclude SVGInputElement here?

&gt; WebCore/rendering/RenderTextControl.cpp:298
&gt; +    if (!indexPosition.node() 
&gt; +        || (indexPosition.node()-&gt;rootEditableElement() != m_innerText &amp;&amp; !isSelectableElement(indexPosition.node())))

Mn... we still do need to make sure the position is inside the form control though.  what we might want to do is to check node()-&gt;contains(pos.node()).

&gt; LayoutTests/fast/forms/selection-start-end-readonly.html:14
&gt; +        test.setSelectionRange(5,7);
&gt; +        
&gt; +        if (test.selectionStart == 5 &amp;&amp; test.selectionEnd == 7) {
&gt; +            con.innerText = &quot;PASS&quot;; 
&gt; +        } else {
&gt; +            con.innerText = &quot;FAIL&quot;;

We probably want more than one case.  At least, selecting all, all but the left end, all but the right end, in the middle, and collapsed caret in the middle, at the left end, and at the right end.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304724</commentid>
    <comment_count>8</comment_count>
    <who name="Julie Jeongeun Kim">jiyuluna</who>
    <bug_when>2010-11-04 10:07:39 -0700</bug_when>
    <thetext>Thank you for your comment.
I have some questions.

(In reply to comment #7)
&gt; &gt; WebCore/ChangeLog:8
&gt; &gt; +        Only editable elements are available at RenderTextControl::indexForVisiblePosition. 
&gt; 
&gt; I don&apos;t get this comment.  Could you elaborate more?
Because rootEditableElement() is checked on RenderTextControl::indexForVisiblePosition,
ReadOnly element is not editable element. So, it can&apos;t get correct selection information.
The INPUT element on this test case has read-only property.
I&apos;ll update ChangeLog as well. 

&gt; &gt; WebCore/rendering/RenderTextControl.cpp:264
&gt; &gt; +    if (node &amp;&amp; node-&gt;isShadowNode() &amp;&amp; (node-&gt;shadowParentNode()-&gt;hasTagName(inputTag) || node-&gt;shadowParentNode()-&gt;hasTagName(textareaTag)))
&gt; 
&gt; Why do we exclude SVGInputElement here?
Please check &apos;http://www.w3.org/TR/html5/association-of-controls-and-forms.html#textFieldSelection&apos;
&quot;4.11 APIs for the text field selections
The input and textarea elements define the following members in their DOM interfaces for handling their selection:&quot;
Do I need to add SVGInputElement?
 
&gt; &gt; WebCore/rendering/RenderTextControl.cpp:298
&gt; &gt; +    if (!indexPosition.node() 
&gt; &gt; +        || (indexPosition.node()-&gt;rootEditableElement() != m_innerText &amp;&amp; !isSelectableElement(indexPosition.node())))
&gt; 
&gt; Mn... we still do need to make sure the position is inside the form control though.  what we might want to do is to check node()-&gt;contains(pos.node()).
In order to check element type, it should check shadow node.
isSelectableElement() checks shadow node.
If you look into &apos;DeleteSelectionCommand::doApply&apos;,
It checks the type like 
        Node* ancestorNode = startNode ? startNode-&gt;shadowAncestorNode() : 0;
        if (ancestorNode &amp;&amp; ancestorNode-&gt;hasTagName(inputTag)

I think I need to change the way to search shadow node on isSelectableElement() like the above.
But, do I need &apos;node()-&gt;contains(pos.node())&apos;?
If I don&apos;t understand it well, please let me know.

&gt; &gt; LayoutTests/fast/forms/selection-start-end-readonly.html:14
&gt; &gt; +        test.setSelectionRange(5,7);
&gt; &gt; +        
&gt; &gt; +        if (test.selectionStart == 5 &amp;&amp; test.selectionEnd == 7) {
&gt; &gt; +            con.innerText = &quot;PASS&quot;; 
&gt; &gt; +        } else {
&gt; &gt; +            con.innerText = &quot;FAIL&quot;;
&gt; 
&gt; We probably want more than one case.  At least, selecting all, all but the left end, all but the right end, in the middle, and collapsed caret in the middle, at the left end, and at the right end.

There is a test case for them already. Refer to &apos;selection-functions.html&apos;.
I think this issue is just related to read-only case.
In spite of it, do I need to add those test cases?

I&apos;ll upload patch again, after getting answer about the above items.
Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>304808</commentid>
    <comment_count>9</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-11-04 12:50:57 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Because rootEditableElement() is checked on RenderTextControl::indexForVisiblePosition,
&gt; ReadOnly element is not editable element. So, it can&apos;t get correct selection information.
&gt; The INPUT element on this test case has read-only property.

Yes, I understand that.  But I couldn&apos;t infer any of this stuff from the original changelog comment.

&gt; Do I need to add SVGInputElement?

Sorry.  I misspoke.  I meant WMLInputElement.  I guess it&apos;s okay because WMLInputElement is also an input element.

&gt; In order to check element type, it should check shadow node.
&gt; isSelectableElement() checks shadow node.
&gt; If you look into &apos;DeleteSelectionCommand::doApply&apos;,
&gt; It checks the type like 
&gt;         Node* ancestorNode = startNode ? startNode-&gt;shadowAncestorNode() : 0;
&gt;         if (ancestorNode &amp;&amp; ancestorNode-&gt;hasTagName(inputTag)

Yeah checking the shadow node is okay.  But what I&apos;m saying is that your check won&apos;t consider the case where the position is inside another input / textarea element since you just walk the DOM and see if the parent has a shadow node (no equality!). The original code checks equality between rootEditableElement and m_innerText and this prevents us from returning value when the root editable element isn&apos;t a descendent of &quot;this&quot; input / textarea element.

&gt; &gt; We probably want more than one case.  At least, selecting all, all but the left end, all but the right end, in the middle, and collapsed caret in the middle, at the left end, and at the right end.
&gt; 
&gt; There is a test case for them already. Refer to &apos;selection-functions.html&apos;.
&gt; I think this issue is just related to read-only case.
&gt; In spite of it, do I need to add those test cases?

Please do.  Those are very simple cases.  I&apos;m sure there are a lot more edge cases out there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305220</commentid>
    <comment_count>10</comment_count>
      <attachid>73054</attachid>
    <who name="Julie Jeongeun Kim">jiyuluna</who>
    <bug_when>2010-11-05 04:40:24 -0700</bug_when>
    <thetext>Created attachment 73054
Propsed Patch updated.

The patch was changed a little from the first patch according to reviewer&apos;s comment.
Please look into it.
Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305304</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-11-05 08:53:34 -0700</bug_when>
    <thetext>I&apos;m deferring to others for in-depth review, but have a few comments in passing:

+    if (Node* sNode = n-&gt;shadowAncestorNode()) {

&quot;sNode&quot; is not a good name - if &quot;s&quot; prefix ever means anything, that&apos;s &quot;static&quot;.

&gt; A comment in HTMLInputElement.idl says that this is a WinIE &amp; FireFox extension. Is that wrong?
&gt; Please fix either the comment or the test.

You addressed this comment, but without answering the question directly. Did you find out that selectionStart/selectionEnd work in IE, after all? Does the final test pass in both Firefox and IE?

+        if (elt.selectionStart == s1 &amp;&amp; elt.selectionEnd == e1)
+            endResult = 1;
+        else
+            endResult = 0;

Doesn&apos;t this mean that the overall PASS/FAIL result only depends on the last subtest?

+        if (window.layoutTestController) {
+            layoutTestController.waitUntilDone();
+        }

No need for waitUntilDone/notifyDone - the test runs from onload, and doesn&apos;t set any timeouts. I&apos;d also suggest putting dumpAsText at the very beginning of the script, so that it&apos;s executed during parsing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305698</commentid>
    <comment_count>12</comment_count>
    <who name="Julie Jeongeun Kim">jiyuluna</who>
    <bug_when>2010-11-05 19:03:36 -0700</bug_when>
    <thetext>Sorry that I missed your comment.
Please check my inline comment.
If you have no concern about my comment, I&apos;ll update the patch according to my answer.
Thanks.

(In reply to comment #11)
&gt; &quot;sNode&quot; is not a good name - if &quot;s&quot; prefix ever means anything, that&apos;s &quot;static&quot;.
I&apos;ll change it to &quot;shadowAncestor&quot;.

&gt; &gt; A comment in HTMLInputElement.idl says that this is a WinIE &amp; FireFox extension. Is that wrong?
&gt; &gt; Please fix either the comment or the test.
&gt; 
&gt; You addressed this comment, but without answering the question directly. Did you find out that selectionStart/selectionEnd work in IE, after all? Does the final test pass in both Firefox and IE?
FF(I used FF3.6.11) works fine but IE(I used IE7) doesn&apos;t work.
It&apos;s not only for IE and FF.
&apos;http://www.w3.org/TR/html5/association-of-controls-and-forms.html#textFieldSelection&apos;
So, I think the comment should be removed.
It you have no concern about that, I&apos;ll remove the comment in &apos;HTMLInputElement.idl&apos;.
 
&gt; +        if (elt.selectionStart == s1 &amp;&amp; elt.selectionEnd == e1)
&gt; +            endResult = 1;
&gt; +        else
&gt; +            endResult = 0;
&gt; 
&gt; Doesn&apos;t this mean that the overall PASS/FAIL result only depends on the last subtest?
I&apos;ll update it to check the previous test. So, if the previous test fails, the test will be stopped.
 
&gt; +        if (window.layoutTestController) {
&gt; +            layoutTestController.waitUntilDone();
&gt; +        }
&gt; 
&gt; No need for waitUntilDone/notifyDone - the test runs from onload, and doesn&apos;t set any timeouts. I&apos;d also suggest putting dumpAsText at the very beginning of the script, so that it&apos;s executed during parsing.

Yes. I&apos;ll remove it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305703</commentid>
    <comment_count>13</comment_count>
      <attachid>73054</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-11-05 19:14:51 -0700</bug_when>
    <thetext>Comment on attachment 73054
Propsed Patch updated.

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

&gt; WebCore/rendering/RenderTextControl.cpp:262
&gt; +    if (!m_innerText || !m_innerText.get()-&gt;contains(n)) 

Not need to call get().  You can do m_innerText-&gt;contains(n)

&gt; WebCore/rendering/RenderTextControl.cpp:300
&gt; +    if (!indexPosition.node() || (indexPosition.node()-&gt;rootEditableElement() != m_innerText &amp;&amp; !isSelectableElement(indexPosition.node())))

Can we also incorporate the condition indexPosition.node()-&gt;rootEditableElement() != m_innerText into isSelectableElement?  I think that&apos;ll improve the clarity here.

&gt; LayoutTests/fast/forms/selection-start-end-readonly-expected.txt:1
&gt; +https://bugs.webkit.org/show_bug.cgi?id=25444

I don&apos;t think we typically add a URL to bug because it&apos;s pretty clear which bug added this test if you see the svn log / trac.  But I&apos;d like to see some descriptions on what this test is testing.  It&apos;s not clear at all from this output what output is expected.  If this test fails in the future, how do we know what is the correct behavior?

&gt; LayoutTests/fast/forms/selection-start-end-readonly-expected.txt:9
&gt; +Set Range: 0, 10
&gt; +[Result] Start: 0, End: 10
&gt; +
&gt; +Set Range: 0, 9
&gt; +[Result] Start: 0, End: 9

Could you make this a script test and output PASS/FAIL?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305708</commentid>
    <comment_count>14</comment_count>
    <who name="Julie Jeongeun Kim">jiyuluna</who>
    <bug_when>2010-11-05 19:49:48 -0700</bug_when>
    <thetext>Please check my inline comment.

(In reply to comment #13)
&gt; (From update of attachment 73054 [details])
&gt; Not need to call get().  You can do m_innerText-&gt;contains(n)
Yes. I&apos;ll update it.

&gt; &gt; WebCore/rendering/RenderTextControl.cpp:300
&gt; &gt; +    if (!indexPosition.node() || (indexPosition.node()-&gt;rootEditableElement() != m_innerText &amp;&amp; !isSelectableElement(indexPosition.node())))
&gt; 
&gt; Can we also incorporate the condition indexPosition.node()-&gt;rootEditableElement() != m_innerText into isSelectableElement?  I think that&apos;ll improve the clarity here.
Sure, I&apos;ll do.
 
&gt; &gt; LayoutTests/fast/forms/selection-start-end-readonly-expected.txt:1
&gt; &gt; +https://bugs.webkit.org/show_bug.cgi?id=25444
&gt; 
&gt; I don&apos;t think we typically add a URL to bug because it&apos;s pretty clear which bug added this test if you see the svn log / trac.  But I&apos;d like to see some descriptions on what this test is testing.  It&apos;s not clear at all from this output what output is expected.  If this test fails in the future, how do we know what is the correct behavior?
OK. I&apos;ll remove the link and add more detail description for test.
 
&gt; &gt; LayoutTests/fast/forms/selection-start-end-readonly-expected.txt:9
&gt; &gt; +Set Range: 0, 10
&gt; &gt; +[Result] Start: 0, End: 10
&gt; &gt; +
&gt; &gt; +Set Range: 0, 9
&gt; &gt; +[Result] Start: 0, End: 9
&gt; 
&gt; Could you make this a script test and output PASS/FAIL?
You mean the result from each test part? 
For instance,
+Set Range: 0, 10
+[Result] Start: 0, End: 10
+PASS
+Set Range: 0, 9
+[Result] Start: 0, End: 9
+FAIL
Could you explain what you expect?

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305715</commentid>
    <comment_count>15</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-11-05 20:42:51 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; &gt; Could you make this a script test and output PASS/FAIL?
&gt; You mean the result from each test part? 
&gt; For instance,
&gt; +Set Range: 0, 10
&gt; +[Result] Start: 0, End: 10
&gt; +PASS
&gt; +Set Range: 0, 9
&gt; +[Result] Start: 0, End: 9
&gt; +FAIL
&gt; Could you explain what you expect?

Take a look at this one for example:
http://trac.webkit.org/browser/trunk/LayoutTests/fast/forms/textarea-maxlength-expected.txt?rev=48698
http://trac.webkit.org/browser/trunk/LayoutTests/fast/forms/script-tests/textarea-maxlength.js?rev=48698</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305760</commentid>
    <comment_count>16</comment_count>
      <attachid>73054</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-11-05 23:40:59 -0700</bug_when>
    <thetext>Comment on attachment 73054
Propsed Patch updated.

&lt;http://trac.webkit.org/browser/trunk/LayoutTests/fast/speech/input-text-language-tag.html&gt; is a better example - splitting tests into .html and .js only adds indirection, and wastes time of the person investigating future failures.

Marking r-, as you intend to update the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305763</commentid>
    <comment_count>17</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-11-05 23:44:51 -0700</bug_when>
    <thetext>&gt; I don&apos;t think we typically add a URL to bug because it&apos;s pretty clear which bug added this test if you see the svn log / trac.

I usually add a line as below, but don&apos;t feel strongly about that:

&lt;p&gt;Test for &lt;a href=&quot;https://bugs.webkit.org/show_bug.cgi?id=25444&quot;&gt;bug 25444&lt;/a&gt;: SelectionStart, selectionEnd properties return wrong values when the selection is in a form input.&lt;/p&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>305820</commentid>
    <comment_count>18</comment_count>
      <attachid>73179</attachid>
    <who name="Julie Jeongeun Kim">jiyuluna</who>
    <bug_when>2010-11-06 15:19:01 -0700</bug_when>
    <thetext>Created attachment 73179
Proposed Patch (3rd)

I updated the proposed patch again.
Please check.
Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306245</commentid>
    <comment_count>19</comment_count>
      <attachid>73179</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-11-08 11:29:38 -0800</bug_when>
    <thetext>Comment on attachment 73179
Proposed Patch (3rd)

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

This patch looks much better but needs a little more polishing.

&gt; WebCore/rendering/RenderTextControl.cpp:260
&gt; +bool RenderTextControl::isSelectableElement(Node* n) const

Please do not abbreviate node as n.  See Names section in http://webkit.org/coding/coding-style.html.

&gt; WebCore/rendering/RenderTextControl.cpp:275
&gt; +    if (Node* shadowAncestor = n-&gt;shadowAncestorNode()) {
&gt; +        if ((shadowAncestor-&gt;hasTagName(inputTag) &amp;&amp; static_cast&lt;HTMLInputElement*&gt;(shadowAncestor)-&gt;isTextField()) || shadowAncestor-&gt;hasTagName(textareaTag))
&gt; +            return true;
&gt; +    }
&gt; +    return false;

I would write this as:
Node* shadowAncestor = n-&gt;shadowAncestorNode();
return shadowAncestor &amp;&amp; (shadowAncestor-&gt;hasTagName(textareaTag)
    || (shadowAncestor-&gt;hasTagName(inputTag) &amp;&amp; static_cast&lt;HTMLInputElement*&gt;(shadowAncestor)-&gt;isTextField()));

&gt; LayoutTests/fast/forms/selection-start-end-readonly-expected.txt:10
&gt; +PASS element.selectionStart is start
&gt; +PASS element.selectionEnd is end

These outputs aren&apos;t as useful as I&apos;d like to be.  You might want to consider manually calling Passed / Failed to print out more useful information such as what offset was set and which offset was returned.  But I&apos;m fine with this output if you&apos;re reluctant to change it.

&gt; LayoutTests/fast/forms/selection-start-end-readonly.html:24
&gt; +    if (type == 1)
&gt; +        element= document.getElementById(&apos;text&apos;);  
&gt; +    else if (type ==2)
&gt; +        element= document.getElementById(&apos;area&apos;);  

Why don&apos;t you just pass element to startTest &amp; testHandler instead of making if statement like this.
i.e.
testHandler(document.getElementById(&apos;text&apos;));
testHandler(document.getElementById(&apos;area&apos;));

And please put a space before and after == and =.  Although this is JavaScript code, we&apos;d like to keep it as clean as possible.

&gt; LayoutTests/fast/forms/selection-start-end-readonly.html:35
&gt; +    start = s; end = e;

Why don&apos;t you name &quot;s&quot; and &quot;e&quot; &quot;start&quot; and &quot;end&quot; respectively in the first place?

&gt; LayoutTests/fast/forms/selection-start-end-readonly.html:44
&gt; +    var s = 0;
&gt; +    var e = 10;
&gt; +    startTest(type,s,e);

There&apos;s no need to declare s and e.  You can just do:
startTest(type, 0, 10);
If you follow my earlier comment, this should be:
startTest(element, 0, 10);

You can also make an array of offset pairs and use a for-loop to go through all of them as in:

var offsets = [[0, 10], [0, 9], ...];
for (var i = 0; i &lt; offsets.length; i++)
   startTest(element, offsets[i][0], offsets[i][1]);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306627</commentid>
    <comment_count>20</comment_count>
    <who name="Julie Jeongeun Kim">jiyuluna</who>
    <bug_when>2010-11-08 23:27:04 -0800</bug_when>
    <thetext>Please check inline comment.

(In reply to comment #19)
&gt; (From update of attachment 73179 [details])
&gt; &gt; WebCore/rendering/RenderTextControl.cpp:260
&gt; &gt; +bool RenderTextControl::isSelectableElement(Node* n) const
&gt; Please do not abbreviate node as n.  See Names section in http://webkit.org/coding/coding-style.html.
OK. I&apos;ll change it to &apos;node&apos;. 

&gt; &gt; WebCore/rendering/RenderTextControl.cpp:275
&gt; I would write this as:
&gt; Node* shadowAncestor = n-&gt;shadowAncestorNode();
&gt; return shadowAncestor &amp;&amp; (shadowAncestor-&gt;hasTagName(textareaTag)
&gt;     || (shadowAncestor-&gt;hasTagName(inputTag) &amp;&amp; static_cast&lt;HTMLInputElement*&gt;(shadowAncestor)-&gt;isTextField()));
OK. I&apos;ll change it as you recommended.

&gt; &gt; LayoutTests/fast/forms/selection-start-end-readonly-expected.txt:10
&gt; &gt; +PASS element.selectionStart is start
&gt; &gt; +PASS element.selectionEnd is end
&gt; 
&gt; These outputs aren&apos;t as useful as I&apos;d like to be.  You might want to consider manually calling Passed / Failed to print out more useful information such as what offset was set and which offset was returned.  But I&apos;m fine with this output if you&apos;re reluctant to change it.
In order to display useful information,
I have to send the second parameter of &apos;shouldbe&apos; as a constant, not a variable.
It means I can&apos;t use function. I have to just spread out them like &apos;textarea-maxlength.js&apos;.
If I have to do like that, I&apos;ll do it.

&gt; Why don&apos;t you just pass element to startTest &amp; testHandler instead of making if statement like this.
&gt; i.e.
&gt; testHandler(document.getElementById(&apos;text&apos;));
&gt; testHandler(document.getElementById(&apos;area&apos;));
Because &apos;eval&apos; in &apos;shouldBe&apos; throws exception like &apos;ReferenceError: element is not defined.&apos; if I use local variable or just argument, I put global variable and assign node to it.
As I told above,
If I change it to spread out, not using function,
This code will be removed.
 
&gt; And please put a space before and after == and =.  Although this is JavaScript code, we&apos;d like to keep it as clean as possible.
&gt; 
&gt; &gt; LayoutTests/fast/forms/selection-start-end-readonly.html:35
&gt; &gt; +    start = s; end = e;
&gt; 
&gt; Why don&apos;t you name &quot;s&quot; and &quot;e&quot; &quot;start&quot; and &quot;end&quot; respectively in the first place?
Yes, I&apos;ll check it in test case as well.

&gt; &gt; LayoutTests/fast/forms/selection-start-end-readonly.html:44
&gt; &gt; +    var s = 0;
&gt; &gt; +    var e = 10;
&gt; &gt; +    startTest(type,s,e);
&gt; 
&gt; There&apos;s no need to declare s and e.  You can just do:
&gt; startTest(type, 0, 10);
&gt; If you follow my earlier comment, this should be:
&gt; startTest(element, 0, 10);
&gt; 
&gt; You can also make an array of offset pairs and use a for-loop to go through all of them as in:
&gt; 
&gt; var offsets = [[0, 10], [0, 9], ...];
&gt; for (var i = 0; i &lt; offsets.length; i++)
&gt;    startTest(element, offsets[i][0], offsets[i][1]);
It&apos;s same as the above.

In conclusion,
The &apos;eval&apos; in &apos;shouldBe&apos; throws exception if I use local variable or just argument.
I have to use constant at &apos;shouldBe&apos; in order to show more useful information.
So, I&apos;ll change this test to spread out sentences like &apos;textarea-maxlength.js&apos;.

Do you approve of my idea?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306632</commentid>
    <comment_count>21</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-11-08 23:45:15 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; &gt; Why don&apos;t you just pass element to startTest &amp; testHandler instead of making if statement like this.
&gt; &gt; i.e.
&gt; &gt; testHandler(document.getElementById(&apos;text&apos;));
&gt; &gt; testHandler(document.getElementById(&apos;area&apos;));
&gt; Because &apos;eval&apos; in &apos;shouldBe&apos; throws exception like &apos;ReferenceError: element is not defined.&apos; if I use local variable or just argument, I put global variable and assign node to it.

Just call testPassed / testFailed directly as in: http://trac.webkit.org/browser/trunk/LayoutTests/editing/execCommand/script-tests/query-command-state.js?rev=70810</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306756</commentid>
    <comment_count>22</comment_count>
      <attachid>73369</attachid>
    <who name="Julie Jeongeun Kim">jiyuluna</who>
    <bug_when>2010-11-09 06:28:03 -0800</bug_when>
    <thetext>Created attachment 73369
Proposed patch(4th)

I&apos;ve attached proposed patch again.
Please check.
Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>306891</commentid>
    <comment_count>23</comment_count>
      <attachid>73369</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-11-09 11:21:48 -0800</bug_when>
    <thetext>Comment on attachment 73369
Proposed patch(4th)

Great! LGTM.  Wait for the formal review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307444</commentid>
    <comment_count>24</comment_count>
      <attachid>73513</attachid>
    <who name="bugzilla33">bugzilla33</who>
    <bug_when>2010-11-10 11:11:29 -0800</bug_when>
    <thetext>Created attachment 73513
new testcase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307673</commentid>
    <comment_count>25</comment_count>
      <attachid>73369</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-10 18:15:18 -0800</bug_when>
    <thetext>Comment on attachment 73369
Proposed patch(4th)

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

&gt; WebCore/ChangeLog:5
&gt; +        SelectionStart, selectionEnd properties return wrong values when the selection is in a form input

This summary is not good.  &quot;in a form input&quot; -&gt; &quot;in a read-only input or textarea element&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307675</commentid>
    <comment_count>26</comment_count>
    <who name="Julie Jeongeun Kim">jiyuluna</who>
    <bug_when>2010-11-10 18:24:19 -0800</bug_when>
    <thetext>Thank you for your review.
I&apos;ll change and update it by tomorrow.
If there is any other thing which I have to change, please comment.

(In reply to comment #25)
&gt; (From update of attachment 73369 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=73369&amp;action=review
&gt; 
&gt; &gt; WebCore/ChangeLog:5
&gt; &gt; +        SelectionStart, selectionEnd properties return wrong values when the selection is in a form input
&gt; 
&gt; This summary is not good.  &quot;in a form input&quot; -&gt; &quot;in a read-only input or textarea element&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307676</commentid>
    <comment_count>27</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-11-10 18:28:27 -0800</bug_when>
    <thetext>(In reply to comment #26)
&gt; Thank you for your review.
&gt; I&apos;ll change and update it by tomorrow.
&gt; If there is any other thing which I have to change, please comment.

Great.
I have no other comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>307858</commentid>
    <comment_count>28</comment_count>
      <attachid>73602</attachid>
    <who name="Julie Jeongeun Kim">jiyuluna</who>
    <bug_when>2010-11-11 05:43:13 -0800</bug_when>
    <thetext>Created attachment 73602
Proposed patch(5th)

I changed summery as reviewer recommended.
Please check.
Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308251</commentid>
    <comment_count>29</comment_count>
      <attachid>73369</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-11-11 16:23:26 -0800</bug_when>
    <thetext>Comment on attachment 73369
Proposed patch(4th)

Cleared Kent Tamura&apos;s review+ from obsolete attachment 73369 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308334</commentid>
    <comment_count>30</comment_count>
      <attachid>73602</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-11 19:56:49 -0800</bug_when>
    <thetext>Comment on attachment 73602
Proposed patch(5th)

Clearing flags on attachment: 73602

Committed r71880: &lt;http://trac.webkit.org/changeset/71880&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>308335</commentid>
    <comment_count>31</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-11-11 19:56:56 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>29841</attachid>
            <date>2009-04-28 05:30:53 -0700</date>
            <delta_ts>2010-11-10 11:09:46 -0800</delta_ts>
            <desc>source</desc>
            <filename>selection.html</filename>
            <type>text/html</type>
            <size>733</size>
            <attacher name="bugzilla33">bugzilla33</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIg
Imh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPg0KPGh0
bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPg0KIDxoZWFkPg0KICA8dGl0
bGU+PC90aXRsZT4NCiA8L2hlYWQ+DQogPGJvZHk+DQogIDxkaXY+PGlucHV0IGlkPSJ0ZXN0IiBy
ZWFkb25seT0icmVhZG9ubHkiIHZhbHVlPSIyMDA5LTA0LTI5IiAvPjwvZGl2Pg0KICA8ZGl2PlRo
aXMgc2NyaXB0IHNob3VsZCBhbGVydDogNSwgNzwvZGl2Pg0KICA8ZGl2Pg0KICAgLSBTYWZhcmk6
IEZBSUxTPGJyLz4NCiAgIC0gQ2hyb21lOiBGQUlMUzxici8+DQogICAtIEZpcmVmb3g6IE9LPGJy
Lz4NCiAgIC0gT3BlcmE6IE9LPGJyLz4NCiAgIC0gS29ucXVlcm9yOiBPSzxici8+DQogICAtIElF
OiAobm90IHN1cHBvcnRlZCkNCiAgPC9kaXY+DQogIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij4vLzwhW0NEQVRBWw0KICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKS5zZXRT
ZWxlY3Rpb25SYW5nZSg1LDcpDQogICBhbGVydChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVz
dCcpLnNlbGVjdGlvblN0YXJ0KycsICcrZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKS5z
ZWxlY3Rpb25FbmQpDQogIC8vXV0+PC9zY3JpcHQ+DQogPC9ib2R5Pg0KPC9odG1sPg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>72830</attachid>
            <date>2010-11-03 09:27:20 -0700</date>
            <delta_ts>2010-11-05 04:40:24 -0700</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>25444Patch.txt</filename>
            <type>text/plain</type>
            <size>5795</size>
            <attacher name="Julie Jeongeun Kim">jiyuluna</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTI0MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjEgQEAKKzIwMTAtMTEtMDMgIEp1bGllLUplb25nZXVuLUtpbSAgPGppeXVsdW5h
QGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kIHByb3BlcnRpZXMgcmV0dXJuIHdyb25n
IHZhbHVlcyB3aGVuIHRoZSBzZWxlY3Rpb24gaXMgaW4gYSBmb3JtIGlucHV0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTQ0NAorICAgICAgICAKKyAg
ICAgICAgT25seSBlZGl0YWJsZSBlbGVtZW50cyBhcmUgYXZhaWxhYmxlIGF0IFJlbmRlclRleHRD
b250cm9sOjppbmRleEZvclZpc2libGVQb3NpdGlvbi4gCisgICAgICAgIElOUFVUIGFuZCBURVhU
QVJFQSBlbGVtZW50cyBjYW4gYmUgcmVhZC1vbmx5IGFuZCBpbmRleEZvclZpc2libGVQb3NpdGlv
biBkb2Vzbid0IGFjY2VwdCB0aGVtLgorICAgICAgICBTZWxlY3RhYmxlIGVsZW1lbnRzLCBJTlBV
VCBhbmQgVEVYVEFSRUEsIGNoZWNraW5nIGlzIGFkZGVkIGZvciB0aGF0IGNhc2UuCisKKyAgICAg
ICAgbmV3IHRlc3RzOmZhc3QvZm9ybXMvc2VsZWN0aW9uLXN0YXJ0LWVuZC1yZWFkb25seS5odG1s
CisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2w6OmlzU2VsZWN0YWJsZUVsZW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2w6OmluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaDoKKwogMjAxMC0xMS0wMiAg
TWlraGFpbCBOYWdhbm92ICA8bW5hZ2Fub3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IFBhdmVsIEZlbGRtYW4uCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0
Q29udHJvbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENv
bnRyb2wuY3BwCShyZXZpc2lvbiA3MTIzMSkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjU2LDYgKzI1NiwxNiBAQCB2b2lkIHNl
dFNlbGVjdGlvblJhbmdlKE5vZGUqIG5vZGUsIGludCBzCiAgICAgICAgIGZyYW1lLT5zZWxlY3Rp
b24oKS0+c2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbik7CiB9CiAKK2Jvb2wgUmVuZGVyVGV4dENv
bnRyb2w6OmlzU2VsZWN0YWJsZUVsZW1lbnQoTm9kZSogbm9kZSkgY29uc3QKK3sKKyAgICB3aGls
ZSAobm9kZSAmJiAhbm9kZS0+aXNFbGVtZW50Tm9kZSgpKQorICAgICAgICBub2RlID0gbm9kZS0+
cGFyZW50Tm9kZSgpOworCisgICAgaWYgKG5vZGUgJiYgbm9kZS0+aXNTaGFkb3dOb2RlKCkgJiYg
KG5vZGUtPnNoYWRvd1BhcmVudE5vZGUoKS0+aGFzVGFnTmFtZShpbnB1dFRhZykgfHwgbm9kZS0+
c2hhZG93UGFyZW50Tm9kZSgpLT5oYXNUYWdOYW1lKHRleHRhcmVhVGFnKSkpCisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIHJldHVybiBmYWxzZTsKK30KKwogUGFzc1JlZlB0cjxSYW5nZT4gUmVu
ZGVyVGV4dENvbnRyb2w6OnNlbGVjdGlvbihpbnQgc3RhcnQsIGludCBlbmQpIGNvbnN0CiB7CiAg
ICAgaWYgKCFtX2lubmVyVGV4dCkKQEAgLTI4NCw3ICsyOTQsOCBAQCBWaXNpYmxlUG9zaXRpb24g
UmVuZGVyVGV4dENvbnRyb2w6OnZpc2liCiBpbnQgUmVuZGVyVGV4dENvbnRyb2w6OmluZGV4Rm9y
VmlzaWJsZVBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zKQogewogICAgIFBvc2l0
aW9uIGluZGV4UG9zaXRpb24gPSBwb3MuZGVlcEVxdWl2YWxlbnQoKTsKLSAgICBpZiAoIWluZGV4
UG9zaXRpb24ubm9kZSgpIHx8IGluZGV4UG9zaXRpb24ubm9kZSgpLT5yb290RWRpdGFibGVFbGVt
ZW50KCkgIT0gbV9pbm5lclRleHQpCisgICAgaWYgKCFpbmRleFBvc2l0aW9uLm5vZGUoKSAKKyAg
ICAgICAgfHwgKGluZGV4UG9zaXRpb24ubm9kZSgpLT5yb290RWRpdGFibGVFbGVtZW50KCkgIT0g
bV9pbm5lclRleHQgJiYgIWlzU2VsZWN0YWJsZUVsZW1lbnQoaW5kZXhQb3NpdGlvbi5ub2RlKCkp
KSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgUmVm
UHRyPFJhbmdlPiByYW5nZSA9IFJhbmdlOjpjcmVhdGUoZG9jdW1lbnQoKSk7CkluZGV4OiBXZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmgJKHJldmlzaW9uIDcxMjMxKQorKysgV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDYg
KzEwNyw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIGhhc1Zpc2libGVUZXh0QXJlYSgpIGNvbnN0
OwogICAgIGZyaWVuZCB2b2lkIHNldFNlbGVjdGlvblJhbmdlKE5vZGUqLCBpbnQgc3RhcnQsIGlu
dCBlbmQpOworICAgIGJvb2wgaXNTZWxlY3RhYmxlRWxlbWVudChOb2RlKikgY29uc3Q7CiAKICAg
ICBib29sIG1fd2FzQ2hhbmdlZFNpbmNlTGFzdENoYW5nZUV2ZW50OwogICAgIGJvb2wgbV9sYXN0
Q2hhbmdlV2FzVXNlckVkaXQ7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3MTI0MykKKysrIExheW91dFRl
c3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEwLTExLTAz
ICBKdWxpZS1KZW9uZ2V1bi1LaW0gIDxqaXl1bHVuYUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2VsZWN0aW9uU3RhcnQsIHNlbGVj
dGlvbkVuZCBwcm9wZXJ0aWVzIHJldHVybiB3cm9uZyB2YWx1ZXMgd2hlbiB0aGUgc2VsZWN0aW9u
IGlzIGluIGEgZm9ybSBpbnB1dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjU0NDQKKworICAgICAgICAqIGZhc3QvZm9ybXMvc2VsZWN0aW9uLXN0YXJ0
LWVuZC1yZWFkb25seS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMv
c2VsZWN0aW9uLXN0YXJ0LWVuZC1yZWFkb25seS5odG1sOiBBZGRlZC4KKwogMjAxMC0xMS0wMyAg
Tmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBBbmRyZWFzIEtsaW5nLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxl
Y3Rpb24tc3RhcnQtZW5kLXJlYWRvbmx5LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9ubHktZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Rpb24tc3Rh
cnQtZW5kLXJlYWRvbmx5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5IEBA
CitodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU0NDQKKworCitUaGlz
IHNjcmlwdCBzaG91bGQgc2hvdzogNSwgNworLSBGaXJlZm94OiBPSworLSBPcGVyYTogT0sKKy0g
S29ucXVlcm9yOiBPSworLSBJRTogKG5vdCBzdXBwb3J0ZWQpCitQQVNTCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9ubHkuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9u
bHkuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0aW9u
LXN0YXJ0LWVuZC1yZWFkb25seS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ0IEBACis8
IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAi
aHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+DQorPGh0
bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPg0KKyA8aGVhZD4NCisgIDx0
aXRsZT48L3RpdGxlPg0KKyAgPHNjcmlwdD4NCisgICAgZnVuY3Rpb24gdGVzdEhhbmRsZXIoKSB7
DQorICAgICAgICB2YXIgdGVzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jyk7DQor
ICAgICAgICB2YXIgY29uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsNCisg
ICAgICAgIHRlc3Quc2V0U2VsZWN0aW9uUmFuZ2UoNSw3KTsNCisgICAgICAgIA0KKyAgICAgICAg
aWYgKHRlc3Quc2VsZWN0aW9uU3RhcnQgPT0gNSAmJiB0ZXN0LnNlbGVjdGlvbkVuZCA9PSA3KSB7
DQorICAgICAgICAgICAgY29uLmlubmVyVGV4dCA9ICJQQVNTIjsgDQorICAgICAgICB9IGVsc2Ug
ew0KKyAgICAgICAgICAgIGNvbi5pbm5lclRleHQgPSAiRkFJTCI7DQorICAgICAgICB9DQorICAg
ICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7DQorICAgICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOw0KKyAgICAgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLm5vdGlmeURvbmUoKTsNCisgICAgICAgIH0NCisgICAgfQ0KKw0KKyAgICBmdW5j
dGlvbiBydW5UZXN0cygpIHsNCisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsNCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
DQorICAgICAgICB9DQorICAgICAgICAgICANCisgICAgICAgIHRlc3RIYW5kbGVyKCk7DQorICAg
IH0NCisgPC9zY3JpcHQ+ICANCisgPC9oZWFkPg0KKyA8Ym9keSBvbmxvYWQ9InJ1blRlc3RzKCki
Pg0KKyAgPHA+PGEgaHJlZiA9IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yNTQ0ND5odHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU0NDQ8L2E+
PC9wPg0KKyAgPGRpdj48aW5wdXQgaWQ9InRlc3QiIHJlYWRvbmx5PSJyZWFkb25seSIgdmFsdWU9
IjIwMDktMDQtMjkiIC8+PC9kaXY+DQorICA8ZGl2PlRoaXMgc2NyaXB0IHNob3VsZCBzaG93OiA1
LCA3PC9kaXY+DQorICA8ZGl2Pg0KKyAgIC0gRmlyZWZveDogT0s8YnIvPg0KKyAgIC0gT3BlcmE6
IE9LPGJyLz4NCisgICAtIEtvbnF1ZXJvcjogT0s8YnIvPg0KKyAgIC0gSUU6IChub3Qgc3VwcG9y
dGVkKQ0KKyAgPC9kaXY+DQorICA8cCBpZD0nY29uc29sZSc+DQorICA8L3A+DQorIDwvYm9keT4N
Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73054</attachid>
            <date>2010-11-05 04:40:24 -0700</date>
            <delta_ts>2010-11-06 15:19:01 -0700</delta_ts>
            <desc>Propsed Patch updated.</desc>
            <filename>25444Patch_2.txt</filename>
            <type>text/plain</type>
            <size>8840</size>
            <attacher name="Julie Jeongeun Kim">jiyuluna</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTQwNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTAtMTEtMDUgIEp1bGllLUplb25nZXVuLUtpbSAgPGppeXVsdW5h
QGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kIHByb3BlcnRpZXMgcmV0dXJuIHdyb25n
IHZhbHVlcyB3aGVuIHRoZSBzZWxlY3Rpb24gaXMgaW4gYSBmb3JtIGlucHV0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTQ0NAorCisgICAgICAgICdy
b290RWRpdGFibGVFbGVtZW50KCknIGlzIGNoZWNrZWQgb24gUmVuZGVyVGV4dENvbnRyb2w6Omlu
ZGV4Rm9yVmlzaWJsZVBvc2l0aW9uLgorICAgICAgICBJdCBtZWFucyB0aGF0IGp1c3QgZWRpdGFi
bGUgZWxlbWVudHMgY2FuIGdldCBzZWxlY3Rpb24gaW5mb3JtYXRpb24uCisgICAgICAgIFJlYWRP
bmx5IGVsZW1lbnQgaXMgbm90IGVkaXRhYmxlIGVsZW1lbnQuIFNvLCBpdCBqdXN0IHJldHVybnMg
YW5kIGNhbid0IGdldCBjb3JyZWN0IHNlbGVjdGlvbiBpbmZvcm1hdGlvbi4KKyAgICAgICAgSU5Q
VVQgYW5kIFRFWFRBUkVBIGVsZW1lbnRzIGNhbiBiZSByZWFkLW9ubHkgYnV0ICdpbmRleEZvclZp
c2libGVQb3NpdGlvbicgZG9lc24ndCBhY2NlcHQgdGhlbS4KKyAgICAgICAgU28sIFNlbGVjdGFi
bGUgZWxlbWVudHMsIElOUFVUIGFuZCBURVhUQVJFQSwgY2hlY2tpbmcgaXMgYWRkZWQgZm9yIHRo
YXQgY2FzZS4KKyAgICAgICAgRXZlbiBpZiB0aGV5IGFyZSByZWFkLW9ubHksIHRoZXkgYXJlIHNl
bGVjdGFibGUuCisKKyAgICAgICAgbmV3IHRlc3RzOmZhc3QvZm9ybXMvc2VsZWN0aW9uLXN0YXJ0
LWVuZC1yZWFkb25seS5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRy
b2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2w6OmlzU2VsZWN0YWJs
ZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2w6OmluZGV4Rm9y
VmlzaWJsZVBvc2l0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wu
aDoKKwogMjAxMC0xMS0wNSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCkluZGV4OiBXZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCShyZXZpc2lvbiA3MTM5OCkKKysrIFdlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiAr
MzAsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSFRNTEJSRWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUTUxGb3JtQ29udHJvbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSW5wdXRF
bGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3Vs
dC5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCkBAIC0yNTYsNiArMjU3LDE4IEBAIHZvaWQg
c2V0U2VsZWN0aW9uUmFuZ2UoTm9kZSogbm9kZSwgaW50IHMKICAgICAgICAgZnJhbWUtPnNlbGVj
dGlvbigpLT5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKIH0KIAorYm9vbCBSZW5kZXJUZXh0
Q29udHJvbDo6aXNTZWxlY3RhYmxlRWxlbWVudChOb2RlKiBuKSBjb25zdAoreworICAgIGlmICgh
bV9pbm5lclRleHQgfHwgIW1faW5uZXJUZXh0LmdldCgpLT5jb250YWlucyhuKSkgCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBpZiAoTm9kZSogc05vZGUgPSBuLT5zaGFkb3dBbmNl
c3Rvck5vZGUoKSkgeworICAgICAgICBpZiAoKHNOb2RlLT5oYXNUYWdOYW1lKGlucHV0VGFnKSAm
JiBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oc05vZGUpLT5pc1RleHRGaWVsZCgpKSB8
fCBzTm9kZS0+aGFzVGFnTmFtZSh0ZXh0YXJlYVRhZykpCisgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBQYXNzUmVmUHRyPFJhbmdlPiBSZW5k
ZXJUZXh0Q29udHJvbDo6c2VsZWN0aW9uKGludCBzdGFydCwgaW50IGVuZCkgY29uc3QKIHsKICAg
ICBpZiAoIW1faW5uZXJUZXh0KQpAQCAtMjg0LDcgKzI5Nyw3IEBAIFZpc2libGVQb3NpdGlvbiBS
ZW5kZXJUZXh0Q29udHJvbDo6dmlzaWIKIGludCBSZW5kZXJUZXh0Q29udHJvbDo6aW5kZXhGb3JW
aXNpYmxlUG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3MpCiB7CiAgICAgUG9zaXRp
b24gaW5kZXhQb3NpdGlvbiA9IHBvcy5kZWVwRXF1aXZhbGVudCgpOwotICAgIGlmICghaW5kZXhQ
b3NpdGlvbi5ub2RlKCkgfHwgaW5kZXhQb3NpdGlvbi5ub2RlKCktPnJvb3RFZGl0YWJsZUVsZW1l
bnQoKSAhPSBtX2lubmVyVGV4dCkKKyAgICBpZiAoIWluZGV4UG9zaXRpb24ubm9kZSgpIHx8IChp
bmRleFBvc2l0aW9uLm5vZGUoKS0+cm9vdEVkaXRhYmxlRWxlbWVudCgpICE9IG1faW5uZXJUZXh0
ICYmICFpc1NlbGVjdGFibGVFbGVtZW50KGluZGV4UG9zaXRpb24ubm9kZSgpKSkpCiAgICAgICAg
IHJldHVybiAwOwogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFJlZlB0cjxSYW5nZT4g
cmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKGRvY3VtZW50KCkpOwpJbmRleDogV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGV4dENvbnRyb2wuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0Q29udHJvbC5oCShyZXZpc2lvbiA3MTM5OCkKKysrIFdlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHRDb250cm9sLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNyw2ICsxMDcsNyBAQCBw
cml2YXRlOgogCiAgICAgYm9vbCBoYXNWaXNpYmxlVGV4dEFyZWEoKSBjb25zdDsKICAgICBmcmll
bmQgdm9pZCBzZXRTZWxlY3Rpb25SYW5nZShOb2RlKiwgaW50IHN0YXJ0LCBpbnQgZW5kKTsKKyAg
ICBib29sIGlzU2VsZWN0YWJsZUVsZW1lbnQoTm9kZSopIGNvbnN0OwogCiAgICAgYm9vbCBtX3dh
c0NoYW5nZWRTaW5jZUxhc3RDaGFuZ2VFdmVudDsKICAgICBib29sIG1fbGFzdENoYW5nZVdhc1Vz
ZXJFZGl0OwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNzE0MDUpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMC0xMS0wNSAgSnVsaWUtSmVv
bmdldW4tS2ltICA8aml5dWx1bmFAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmQgcHJv
cGVydGllcyByZXR1cm4gd3JvbmcgdmFsdWVzIHdoZW4gdGhlIHNlbGVjdGlvbiBpcyBpbiBhIGZv
cm0gaW5wdXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTI1NDQ0CisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9u
bHktZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3NlbGVjdGlvbi1z
dGFydC1lbmQtcmVhZG9ubHkuaHRtbDogQWRkZWQuCisKIDIwMTAtMTEtMDUgIEFsZWphbmRybyBH
LiBDYXN0cm8gIDxhbGV4QGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGlu
IFJvYmluc29uLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Rpb24tc3RhcnQt
ZW5kLXJlYWRvbmx5LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9ubHktZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Rpb24tc3RhcnQtZW5kLXJlYWRv
bmx5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MCBAQAoraHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NDQ0CisKK1Rlc3QgQ2FzZXMgZm9yIHNl
bGVjdGlvbiBvbiAncmVhZG9ubHknIElOUFVUIGFuZCBURVhUQVJFQQorCitTZXQgUmFuZ2U6IDAs
IDEwCitbUmVzdWx0XSBTdGFydDogMCwgRW5kOiAxMAorCitTZXQgUmFuZ2U6IDAsIDkKK1tSZXN1
bHRdIFN0YXJ0OiAwLCBFbmQ6IDkKKworU2V0IFJhbmdlOiAxLCAxMAorW1Jlc3VsdF0gU3RhcnQ6
IDEsIEVuZDogMTAKKworU2V0IFJhbmdlOiA1LCA1CitbUmVzdWx0XSBTdGFydDogNSwgRW5kOiA1
CisKK1NldCBSYW5nZTogOCwgNQorW1Jlc3VsdF0gU3RhcnQ6IDUsIEVuZDogNQorCitTZXQgUmFu
Z2U6IC0xLCAwCitbUmVzdWx0XSBTdGFydDogMCwgRW5kOiAwCisKK1NldCBSYW5nZTogLTEsIDUw
CitbUmVzdWx0XSBTdGFydDogMCwgRW5kOiAxMAorCisKKworU2V0IFJhbmdlOiAwLCAxMAorW1Jl
c3VsdF0gU3RhcnQ6IDAsIEVuZDogMTAKKworU2V0IFJhbmdlOiAwLCA5CitbUmVzdWx0XSBTdGFy
dDogMCwgRW5kOiA5CisKK1NldCBSYW5nZTogMSwgMTAKK1tSZXN1bHRdIFN0YXJ0OiAxLCBFbmQ6
IDEwCisKK1NldCBSYW5nZTogNSwgNQorW1Jlc3VsdF0gU3RhcnQ6IDUsIEVuZDogNQorCitTZXQg
UmFuZ2U6IDgsIDUKK1tSZXN1bHRdIFN0YXJ0OiA1LCBFbmQ6IDUKKworU2V0IFJhbmdlOiAtMSwg
MAorW1Jlc3VsdF0gU3RhcnQ6IDAsIEVuZDogMAorCitTZXQgUmFuZ2U6IC0xLCA1MAorW1Jlc3Vs
dF0gU3RhcnQ6IDAsIEVuZDogMTAKKworCitQQVNTCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9ubHkuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9ubHkuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0aW9uLXN0YXJ0LWVuZC1y
ZWFkb25seS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDk3IEBACis8IURPQ1RZUEUgaHRt
bCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53
My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+DQorPGh0bWwgeG1sbnM9Imh0
dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPg0KKyA8aGVhZD4NCisgIDx0aXRsZT48L3RpdGxl
Pg0KKyAgPHNjcmlwdD4NCisgICAgdmFyIGVuZFJlc3VsdCA9IDE7DQorICANCisgICAgZnVuY3Rp
b24gc3RhcnRUZXN0KGVsdCwgcmV0LCBzMSwgZTEpIHsNCisgICAgICAgIGVsdC5zZXRTZWxlY3Rp
b25SYW5nZShzMSxlMSk7DQorICAgICAgICANCisgICAgICAgIHZhciBtZXNzYWdlID0gIltSZXN1
bHRdIFN0YXJ0OiAiK2VsdC5zZWxlY3Rpb25TdGFydCsiLCBFbmQ6ICIrZWx0LnNlbGVjdGlvbkVu
ZDsNCisgICAgICAgIHJldC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJiciIp
KTsNCisgICAgICAgIHJldC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNz
YWdlKSk7DQorICAgICAgICByZXQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
YnIiKSk7DQorICAgICAgICByZXQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
YnIiKSk7DQorICAgICAgICANCisgICAgICAgIGlmIChzMSA8IDApDQorICAgICAgICAgICAgczEg
PSAwOw0KKyAgICAgICAgaWYgKGUxID4gMTApDQorICAgICAgICAgICAgZTEgPSAxMDsNCisgICAg
ICAgICAgICANCisgICAgICAgIGlmIChlbHQuc2VsZWN0aW9uU3RhcnQgPT0gczEgJiYgZWx0LnNl
bGVjdGlvbkVuZCA9PSBlMSkNCisgICAgICAgICAgICBlbmRSZXN1bHQgPSAxOw0KKyAgICAgICAg
ZWxzZQ0KKyAgICAgICAgICAgIGVuZFJlc3VsdCA9IDA7DQorICAgIH0NCisgICAgDQorICAgIGZ1
bmN0aW9uIHRlc3RIYW5kbGVyKGVsdCxyZXQpIHsNCisgICAgICAgIHZhciBjb24gPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpOw0KKyAgICAgICAgdmFyIHMgPSAwOw0KKyAgICAg
ICAgdmFyIGUgPSAxMDsNCisgICAgICAgIHZhciBtc2cgPSAiU2V0IFJhbmdlOiAiK3MrIiwgIitl
Ow0KKyAgICAgICAgcmV0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1zZykp
Ow0KKyAgICAgICAgc3RhcnRUZXN0KGVsdCxyZXQscyxlKTsNCisgICAgICAgIA0KKyAgICAgICAg
cyA9IDA7IGUgPSA5Ow0KKyAgICAgICAgcmV0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKCJTZXQgUmFuZ2U6ICIrcysiLCAiK2UpKTsNCisgICAgICAgIHN0YXJ0VGVzdChlbHQs
cmV0LHMsZSk7DQorICAgICAgICAgICAgDQorICAgICAgICBzID0gMTsgZSA9IDEwOw0KKyAgICAg
ICAgcmV0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJTZXQgUmFuZ2U6ICIr
cysiLCAiK2UpKTsNCisgICAgICAgIHN0YXJ0VGVzdChlbHQscmV0LHMsZSk7DQorICAgICAgICAN
CisgICAgICAgIHMgPSA1OyBlID0gNTsNCisgICAgICAgIHJldC5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZSgiU2V0IFJhbmdlOiAiK3MrIiwgIitlKSk7DQorICAgICAgICBzdGFy
dFRlc3QoZWx0LHJldCxzLGUpOw0KKyAgICAgICAgDQorICAgICAgICBzID0gODsgZSA9IDU7DQor
ICAgICAgICByZXQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlNldCBSYW5n
ZTogIitzKyIsICIrZSkpOw0KKyAgICAgICAgc3RhcnRUZXN0KGVsdCxyZXQscyxlKTsNCisgICAg
ICAgIA0KKyAgICAgICAgcyA9IC0xOyBlID0gMDsNCisgICAgICAgIHJldC5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiU2V0IFJhbmdlOiAiK3MrIiwgIitlKSk7DQorICAgICAg
ICBzdGFydFRlc3QoZWx0LHJldCxzLGUpOw0KKyAgICAgICAgDQorICAgICAgICBzID0gLTE7IGUg
PSA1MDsNCisgICAgICAgIHJldC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgi
U2V0IFJhbmdlOiAiK3MrIiwgIitlKSk7DQorICAgICAgICBzdGFydFRlc3QoZWx0LHJldCxzLGUp
Ow0KKyAgICAgICAgICAgICAgICANCisgICAgICAgIGlmIChlbmRSZXN1bHQpICAgIA0KKyAgICAg
ICAgICAgIGNvbi5pbm5lclRleHQgPSAiUEFTUyI7DQorICAgICAgICBlbHNlDQorICAgICAgICAg
ICAgY29uLmlubmVyVGV4dCA9ICJGQUlMIjsNCisgICAgICAgICAgICANCisgICAgICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsNCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7DQorICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpOw0KKyAgICAgICAgfQ0KKyAgICB9DQorDQorICAgIGZ1bmN0aW9uIHJ1blRl
c3RzKCkgew0KKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgew0KKyAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsNCisgICAgICAg
IH0NCisgICAgICAgICANCisgICAgICAgIHZhciBlbHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgndGV4dCcpOyAgDQorICAgICAgICB2YXIgcmV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3Jlc3VsdCcpOw0KKyAgICAgICAgdGVzdEhhbmRsZXIoZWx0LHJldCk7DQorICAgICAgICANCisg
ICAgICAgIGVsdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhcmVhJyk7ICANCisgICAgICAg
IHJldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQxJyk7DQorICAgICAgICB0ZXN0
SGFuZGxlcihlbHQscmV0KTsgICAgICAgIA0KKyAgICB9DQorIDwvc2NyaXB0PiAgDQorIDwvaGVh
ZD4NCisgPGJvZHkgb25sb2FkPSJydW5UZXN0cygpIj4NCisgIDxwPjxhIGhyZWYgPSJodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU0NDQiPmh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTQ0NDwvYT48L3A+DQorICBUZXN0IENhc2VzIGZvciBz
ZWxlY3Rpb24gb24gJ3JlYWRvbmx5JyBJTlBVVCBhbmQgVEVYVEFSRUENCisgIDxkaXY+DQorICA8
aW5wdXQgaWQ9InRleHQiIHJlYWRvbmx5PSJyZWFkb25seSIgdmFsdWU9IjIwMDktMDQtMjkiLz48
YnIvPg0KKyAgPHAgaWQ9InJlc3VsdCI+PC9wPg0KKyAgPHRleHRhcmVhIGlkPSJhcmVhIiByZWFk
b25seT0icmVhZG9ubHkiPjIwMDktMDQtMjk8L3RleHRhcmVhPjwvZGl2Pg0KKyAgPHAgaWQ9InJl
c3VsdDEiPjwvcD4NCisgIDxwIGlkPSJjb25zb2xlIj48L3A+DQorIDwvYm9keT4NCis8L2h0bWw+
DQorDQo=
</data>
<flag name="review"
          id="63420"
          type_id="1"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73179</attachid>
            <date>2010-11-06 15:19:01 -0700</date>
            <delta_ts>2010-11-09 06:28:03 -0800</delta_ts>
            <desc>Proposed Patch (3rd)</desc>
            <filename>25444Patch_3.txt</filename>
            <type>text/plain</type>
            <size>8800</size>
            <attacher name="Julie Jeongeun Kim">jiyuluna</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTQ2OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMTAtMTEtMDYgIEp1bGllLUplb25nZXVuLUtpbSAgPGppeXVsdW5h
QGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kIHByb3BlcnRpZXMgcmV0dXJuIHdyb25n
IHZhbHVlcyB3aGVuIHRoZSBzZWxlY3Rpb24gaXMgaW4gYSBmb3JtIGlucHV0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTQ0NAorCisgICAgICAgICdy
b290RWRpdGFibGVFbGVtZW50KCknIGlzIGNoZWNrZWQgb24gUmVuZGVyVGV4dENvbnRyb2w6Omlu
ZGV4Rm9yVmlzaWJsZVBvc2l0aW9uLgorICAgICAgICBJdCBtZWFucyB0aGF0IGp1c3QgZWRpdGFi
bGUgZWxlbWVudHMgY2FuIGdldCBzZWxlY3Rpb24gaW5mb3JtYXRpb24uCisgICAgICAgIFJlYWRP
bmx5IGVsZW1lbnQgaXMgbm90IGVkaXRhYmxlIGVsZW1lbnQuIFNvLCBpdCBqdXN0IHJldHVybnMg
YW5kIGNhbid0IGdldCBjb3JyZWN0IHNlbGVjdGlvbiBpbmZvcm1hdGlvbi4KKyAgICAgICAgSU5Q
VVQgYW5kIFRFWFRBUkVBIGVsZW1lbnRzIGNhbiBiZSByZWFkLW9ubHkgYnV0ICdpbmRleEZvclZp
c2libGVQb3NpdGlvbicgZG9lc24ndCBhY2NlcHQgdGhlbS4KKyAgICAgICAgU28sIFNlbGVjdGFi
bGUgZWxlbWVudHMsIElOUFVUIGFuZCBURVhUQVJFQSwgY2hlY2tpbmcgaXMgYWRkZWQgZm9yIHRo
YXQgY2FzZS4KKyAgICAgICAgRXZlbiBpZiB0aGV5IGFyZSByZWFkLW9ubHksIHRoZXkgYXJlIHNl
bGVjdGFibGUuCisKKyAgICAgICAgbmV3IHRlc3RzOmZhc3QvZm9ybXMvc2VsZWN0aW9uLXN0YXJ0
LWVuZC1yZWFkb25seS5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRs
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbDo6aXNTZWxlY3RhYmxlRWxlbWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbDo6aW5kZXhGb3JWaXNpYmxlUG9zaXRpb24pOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oOgorCiAyMDEwLTExLTA0ICBS
eW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERh
cmluIEFkbGVyLgpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbAkocmV2aXNpb24gNzE0
NjgpCisrKyBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTg0LDggKzg0LDYgQEAgbW9kdWxlIGh0bWwgewogICAgICAgICAvLyBXaW5JRSBleHRlbnNp
b246CiAgICAgICAgIGF0dHJpYnV0ZSBib29sZWFuIGluZGV0ZXJtaW5hdGU7CiAKLSAgICAgICAg
Ly8gV2luSUUgJiBGaXJlRm94IGV4dGVuc2lvbjoKLQogICAgICAgICBhdHRyaWJ1dGUgW0N1c3Rv
bV0gbG9uZyBzZWxlY3Rpb25TdGFydDsKICAgICAgICAgYXR0cmlidXRlIFtDdXN0b21dIGxvbmcg
c2VsZWN0aW9uRW5kOwogICAgICAgICBbQ3VzdG9tXSB2b2lkIHNldFNlbGVjdGlvblJhbmdlKGlu
IGxvbmcgc3RhcnQsIGluIGxvbmcgZW5kKTsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHRDb250cm9sLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbC5jcHAJKHJldmlzaW9uIDcxNDY4KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2wuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5j
bHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVE1MQlJFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRN
TEZvcm1Db250cm9sRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNp
bmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCiAjaW5jbHVk
ZSAiUmVuZGVyTGF5ZXIuaCIKQEAgLTI1Niw2ICsyNTcsMjQgQEAgdm9pZCBzZXRTZWxlY3Rpb25S
YW5nZShOb2RlKiBub2RlLCBpbnQgcwogICAgICAgICBmcmFtZS0+c2VsZWN0aW9uKCktPnNldFNl
bGVjdGlvbihuZXdTZWxlY3Rpb24pOwogfQogCitib29sIFJlbmRlclRleHRDb250cm9sOjppc1Nl
bGVjdGFibGVFbGVtZW50KE5vZGUqIG4pIGNvbnN0Cit7CisgICAgaWYgKCFuIHx8ICFtX2lubmVy
VGV4dCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIGlmIChuLT5yb290RWRpdGFi
bGVFbGVtZW50KCkgPT0gbV9pbm5lclRleHQpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIAor
ICAgIGlmICghbV9pbm5lclRleHQtPmNvbnRhaW5zKG4pKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgCisgICAgaWYgKE5vZGUqIHNoYWRvd0FuY2VzdG9yID0gbi0+c2hhZG93QW5jZXN0b3JO
b2RlKCkpIHsKKyAgICAgICAgaWYgKChzaGFkb3dBbmNlc3Rvci0+aGFzVGFnTmFtZShpbnB1dFRh
ZykgJiYgc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KHNoYWRvd0FuY2VzdG9yKS0+aXNU
ZXh0RmllbGQoKSkgfHwgc2hhZG93QW5jZXN0b3ItPmhhc1RhZ05hbWUodGV4dGFyZWFUYWcpKQor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwog
UGFzc1JlZlB0cjxSYW5nZT4gUmVuZGVyVGV4dENvbnRyb2w6OnNlbGVjdGlvbihpbnQgc3RhcnQs
IGludCBlbmQpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2lubmVyVGV4dCkKQEAgLTI4NCw3ICszMDMs
NyBAQCBWaXNpYmxlUG9zaXRpb24gUmVuZGVyVGV4dENvbnRyb2w6OnZpc2liCiBpbnQgUmVuZGVy
VGV4dENvbnRyb2w6OmluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKGNvbnN0IFZpc2libGVQb3NpdGlv
biYgcG9zKSBjb25zdAogewogICAgIFBvc2l0aW9uIGluZGV4UG9zaXRpb24gPSBwb3MuZGVlcEVx
dWl2YWxlbnQoKTsKLSAgICBpZiAoIWluZGV4UG9zaXRpb24ubm9kZSgpIHx8IGluZGV4UG9zaXRp
b24ubm9kZSgpLT5yb290RWRpdGFibGVFbGVtZW50KCkgIT0gbV9pbm5lclRleHQpCisgICAgaWYg
KCFpc1NlbGVjdGFibGVFbGVtZW50KGluZGV4UG9zaXRpb24ubm9kZSgpKSkKICAgICAgICAgcmV0
dXJuIDA7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgUmVmUHRyPFJhbmdlPiByYW5n
ZSA9IFJhbmdlOjpjcmVhdGUoZG9jdW1lbnQoKSk7CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0Q29udHJvbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHRDb250cm9sLmgJKHJldmlzaW9uIDcxNDY4KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2wuaAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDYgKzEwNyw3IEBAIHByaXZh
dGU6CiAKICAgICBib29sIGhhc1Zpc2libGVUZXh0QXJlYSgpIGNvbnN0OwogICAgIGZyaWVuZCB2
b2lkIHNldFNlbGVjdGlvblJhbmdlKE5vZGUqLCBpbnQgc3RhcnQsIGludCBlbmQpOworICAgIGJv
b2wgaXNTZWxlY3RhYmxlRWxlbWVudChOb2RlKikgY29uc3Q7CiAKICAgICBib29sIG1fd2FzQ2hh
bmdlZFNpbmNlTGFzdENoYW5nZUV2ZW50OwogICAgIGJvb2wgbV9sYXN0Q2hhbmdlV2FzVXNlckVk
aXQ7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3MTQ2OSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEwLTExLTA2ICBKdWxpZS1KZW9uZ2V1
bi1LaW0gIDxqaXl1bHVuYUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU2VsZWN0aW9uU3RhcnQsIHNlbGVjdGlvbkVuZCBwcm9wZXJ0
aWVzIHJldHVybiB3cm9uZyB2YWx1ZXMgd2hlbiB0aGUgc2VsZWN0aW9uIGlzIGluIGEgZm9ybSBp
bnB1dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU0
NDQKKworICAgICAgICAqIGZhc3QvZm9ybXMvc2VsZWN0aW9uLXN0YXJ0LWVuZC1yZWFkb25seS1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2VsZWN0aW9uLXN0YXJ0
LWVuZC1yZWFkb25seS5odG1sOiBBZGRlZC4KKwogMjAxMC0xMS0wNiAgQ3NhYmEgT3N6dHJvZ29u
w6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFVwZGF0ZSBRdCBz
cGVjaWZpYyBleHBlY3RlZCBmaWxlcyBhZnRlciByNzE0NjcuCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9ubHktZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0aW9uLXN0YXJ0LWVuZC1yZWFk
b25seS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9ubHktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDQwIEBACitUZXN0cyBmb3Igc2VsZWN0aW9uU3RhcnQgYW5kIHNlbGVjdGlvbkVu
ZCBvbiByZWFkLW9ubHkgSU5QVVQgYW5kIFRFWFRBUkVBLiAKK2J1ZyAyNTQ0NDogU2VsZWN0aW9u
U3RhcnQsIHNlbGVjdGlvbkVuZCBwcm9wZXJ0aWVzIHJldHVybiB3cm9uZyB2YWx1ZXMgd2hlbiB0
aGUgc2VsZWN0aW9uIGlzIGluIGEgZm9ybSBpbnB1dC4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKKworCitQQVNTIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgaXMgc3RhcnQKK1BBU1Mg
ZWxlbWVudC5zZWxlY3Rpb25FbmQgaXMgZW5kCitQQVNTIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQg
aXMgc3RhcnQKK1BBU1MgZWxlbWVudC5zZWxlY3Rpb25FbmQgaXMgZW5kCitQQVNTIGVsZW1lbnQu
c2VsZWN0aW9uU3RhcnQgaXMgc3RhcnQKK1BBU1MgZWxlbWVudC5zZWxlY3Rpb25FbmQgaXMgZW5k
CitQQVNTIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgaXMgc3RhcnQKK1BBU1MgZWxlbWVudC5zZWxl
Y3Rpb25FbmQgaXMgZW5kCitQQVNTIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgaXMgc3RhcnQKK1BB
U1MgZWxlbWVudC5zZWxlY3Rpb25FbmQgaXMgZW5kCitQQVNTIGVsZW1lbnQuc2VsZWN0aW9uU3Rh
cnQgaXMgc3RhcnQKK1BBU1MgZWxlbWVudC5zZWxlY3Rpb25FbmQgaXMgZW5kCitQQVNTIGVsZW1l
bnQuc2VsZWN0aW9uU3RhcnQgaXMgc3RhcnQKK1BBU1MgZWxlbWVudC5zZWxlY3Rpb25FbmQgaXMg
ZW5kCitQQVNTIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgaXMgc3RhcnQKK1BBU1MgZWxlbWVudC5z
ZWxlY3Rpb25FbmQgaXMgZW5kCitQQVNTIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgaXMgc3RhcnQK
K1BBU1MgZWxlbWVudC5zZWxlY3Rpb25FbmQgaXMgZW5kCitQQVNTIGVsZW1lbnQuc2VsZWN0aW9u
U3RhcnQgaXMgc3RhcnQKK1BBU1MgZWxlbWVudC5zZWxlY3Rpb25FbmQgaXMgZW5kCitQQVNTIGVs
ZW1lbnQuc2VsZWN0aW9uU3RhcnQgaXMgc3RhcnQKK1BBU1MgZWxlbWVudC5zZWxlY3Rpb25FbmQg
aXMgZW5kCitQQVNTIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgaXMgc3RhcnQKK1BBU1MgZWxlbWVu
dC5zZWxlY3Rpb25FbmQgaXMgZW5kCitQQVNTIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgaXMgc3Rh
cnQKK1BBU1MgZWxlbWVudC5zZWxlY3Rpb25FbmQgaXMgZW5kCitQQVNTIGVsZW1lbnQuc2VsZWN0
aW9uU3RhcnQgaXMgc3RhcnQKK1BBU1MgZWxlbWVudC5zZWxlY3Rpb25FbmQgaXMgZW5kCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Rpb24tc3RhcnQtZW5kLXJlYWRvbmx5Lmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Rpb24tc3RhcnQtZW5kLXJl
YWRvbmx5Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVj
dGlvbi1zdGFydC1lbmQtcmVhZG9ubHkuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw3MyBA
QAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPg0KKzxodG1s
Pg0KKzxoZWFkPg0KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4NCis8bGluayByZWw9InN0eWxlc2hl
ZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+DQorPHNjcmlwdCBz
cmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+DQorPC9oZWFkPg0K
Kzxib2R5Pg0KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPg0KKzxpbnB1dCBpZD0idGV4dCIgcmVh
ZG9ubHk9InJlYWRvbmx5IiB2YWx1ZT0iMjAwOS0wNC0yOSIvPjxici8+DQorPHRleHRhcmVhIGlk
PSJhcmVhIiByZWFkb25seT0icmVhZG9ubHkiPjIwMDktMDQtMjk8L3RleHRhcmVhPjwvZGl2Pg0K
KzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pg0KKzxkaXY+DQorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiPg0KK2Rlc2NyaXB0aW9uKCdUZXN0cyBmb3Igc2VsZWN0aW9uU3RhcnQgYW5kIHNl
bGVjdGlvbkVuZCBvbiByZWFkLW9ubHkgSU5QVVQgYW5kIFRFWFRBUkVBLiA8YnIvPiA8YSBocmVm
PSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU0NDQiPmJ1ZyAyNTQ0
NDwvYT46IFNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmQgcHJvcGVydGllcyByZXR1cm4gd3Jv
bmcgdmFsdWVzIHdoZW4gdGhlIHNlbGVjdGlvbiBpcyBpbiBhIGZvcm0gaW5wdXQuJyk7DQordmFy
IGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHQnKTsgDQordmFyIGFyZWEgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYXJlYScpOyANCit2YXIgc3RhcnQsIGVuZDsNCisNCitm
dW5jdGlvbiBzdGFydFRlc3QodHlwZSwgcywgZSkgew0KKyAgICBpZiAodHlwZSA9PSAxKQ0KKyAg
ICAgICAgZWxlbWVudD0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RleHQnKTsgIA0KKyAgICBl
bHNlIGlmICh0eXBlID09MikNCisgICAgICAgIGVsZW1lbnQ9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdhcmVhJyk7ICANCisgICAgICAgICAgICANCisgICAgZWxlbWVudC5zZXRTZWxlY3Rpb25S
YW5nZShzLGUpOw0KKyAgICAgICAgDQorICAgIGlmIChzIDwgMCkNCisgICAgICAgIHMgPSAwOw0K
KyAgICBpZiAoZSA+IDEwKQ0KKyAgICAgICAgZSA9IDEwOw0KKyAgICBpZiAocyA+IGUpDQorICAg
ICAgICBzID0gZTsNCisgICAgICAgICAgICANCisgICAgc3RhcnQgPSBzOyBlbmQgPSBlOw0KKyAg
ICBzaG91bGRCZSgnZWxlbWVudC5zZWxlY3Rpb25TdGFydCcsICdzdGFydCcpOw0KKyAgICBzaG91
bGRCZSgnZWxlbWVudC5zZWxlY3Rpb25FbmQnLCAnZW5kJyk7DQorfQ0KKyAgICANCitmdW5jdGlv
biB0ZXN0SGFuZGxlcih0eXBlKSB7DQorICAgIHZhciBjb24gPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnY29uJyk7DQorICAgIHZhciBzID0gMDsNCisgICAgdmFyIGUgPSAxMDsNCisgICAgc3Rh
cnRUZXN0KHR5cGUscyxlKTsNCisgICAgDQorICAgIHMgPSAwOyBlID0gOTsNCisgICAgc3RhcnRU
ZXN0KHR5cGUscyxlKTsNCisgICAgICAgICAgICANCisgICAgcyA9IDE7IGUgPSAxMDsNCisgICAg
c3RhcnRUZXN0KHR5cGUscyxlKTsNCisgICAgICAgIA0KKyAgICBzID0gNTsgZSA9IDU7DQorICAg
IHN0YXJ0VGVzdCh0eXBlLHMsZSk7DQorICAgICAgICAgICAgICAgICAgICANCisgICAgcyA9IDg7
IGUgPSA1Ow0KKyAgICBzdGFydFRlc3QodHlwZSxzLGUpOw0KKyAgICAgICAgICAgICAgICAgICAg
DQorICAgIHMgPSAtMTsgZSA9IDA7DQorICAgIHN0YXJ0VGVzdCh0eXBlLHMsZSk7DQorICAgICAg
ICAgICAgICAgICAgICANCisgICAgcyA9IC0xOyBlID0gNTA7DQorICAgIHN0YXJ0VGVzdCh0eXBl
LHMsZSk7DQorfQ0KKw0KK3Rlc3RIYW5kbGVyKDEpOw0KK3Rlc3RIYW5kbGVyKDIpOyAgICAgICAg
DQorDQordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7DQorIDwvc2NyaXB0PiAgDQorIDxz
Y3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4NCisg
PC9ib2R5Pg0KKzwvaHRtbD4NCisNCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73369</attachid>
            <date>2010-11-09 06:28:03 -0800</date>
            <delta_ts>2010-11-11 16:23:26 -0800</delta_ts>
            <desc>Proposed patch(4th)</desc>
            <filename>25444Patch_4.txt</filename>
            <type>text/plain</type>
            <size>8513</size>
            <attacher name="Julie Jeongeun Kim">jiyuluna</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTYyNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMTAtMTEtMDkgIEp1bGllLUplb25nZXVuLUtpbSAgPGppeXVsdW5h
QGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kIHByb3BlcnRpZXMgcmV0dXJuIHdyb25n
IHZhbHVlcyB3aGVuIHRoZSBzZWxlY3Rpb24gaXMgaW4gYSBmb3JtIGlucHV0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTQ0NAorCisgICAgICAgICdy
b290RWRpdGFibGVFbGVtZW50KCknIGlzIGNoZWNrZWQgb24gUmVuZGVyVGV4dENvbnRyb2w6Omlu
ZGV4Rm9yVmlzaWJsZVBvc2l0aW9uLgorICAgICAgICBJdCBtZWFucyB0aGF0IGp1c3QgZWRpdGFi
bGUgZWxlbWVudHMgY2FuIGdldCBzZWxlY3Rpb24gaW5mb3JtYXRpb24uCisgICAgICAgIFJlYWRP
bmx5IGVsZW1lbnQgaXMgbm90IGVkaXRhYmxlIGVsZW1lbnQuIFNvLCBpdCBqdXN0IHJldHVybnMg
YW5kIGNhbid0IGdldCBjb3JyZWN0IHNlbGVjdGlvbiBpbmZvcm1hdGlvbi4KKyAgICAgICAgSU5Q
VVQgYW5kIFRFWFRBUkVBIGVsZW1lbnRzIGNhbiBiZSByZWFkLW9ubHkgYnV0ICdpbmRleEZvclZp
c2libGVQb3NpdGlvbicgZG9lc24ndCBhY2NlcHQgdGhlbS4KKyAgICAgICAgU28sIFNlbGVjdGFi
bGUgZWxlbWVudHMsIElOUFVUIGFuZCBURVhUQVJFQSwgY2hlY2tpbmcgaXMgYWRkZWQgZm9yIHRo
YXQgY2FzZS4KKyAgICAgICAgRXZlbiBpZiB0aGV5IGFyZSByZWFkLW9ubHksIHRoZXkgYXJlIHNl
bGVjdGFibGUuCisKKyAgICAgICAgbmV3IHRlc3RzOmZhc3QvZm9ybXMvc2VsZWN0aW9uLXN0YXJ0
LWVuZC1yZWFkb25seS5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRs
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbDo6aXNTZWxlY3RhYmxlRWxlbWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbDo6aW5kZXhGb3JWaXNpYmxlUG9zaXRpb24pOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oOgorCiAyMDEwLTExLTA5ICBK
ZW5uIEJyYWl0aHdhaXRlICA8amVubmJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERtaXRyeSBUaXRvdi4KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwJKHJldmlz
aW9uIDcxNjE4KQorKysgV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaWRsCSh3b3JraW5n
IGNvcHkpCkBAIC04NCw4ICs4NCw2IEBAIG1vZHVsZSBodG1sIHsKICAgICAgICAgLy8gV2luSUUg
ZXh0ZW5zaW9uOgogICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBpbmRldGVybWluYXRlOwogCi0g
ICAgICAgIC8vIFdpbklFICYgRmlyZUZveCBleHRlbnNpb246Ci0KICAgICAgICAgYXR0cmlidXRl
IFtDdXN0b21dIGxvbmcgc2VsZWN0aW9uU3RhcnQ7CiAgICAgICAgIGF0dHJpYnV0ZSBbQ3VzdG9t
XSBsb25nIHNlbGVjdGlvbkVuZDsKICAgICAgICAgW0N1c3RvbV0gdm9pZCBzZXRTZWxlY3Rpb25S
YW5nZShpbiBsb25nIHN0YXJ0LCBpbiBsb25nIGVuZCk7CkluZGV4OiBXZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUZXh0Q29udHJvbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGV4dENvbnRyb2wuY3BwCShyZXZpc2lvbiA3MTYxOCkKKysrIFdlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHRDb250cm9sLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBA
QAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSFRNTEJSRWxlbWVudC5oIgogI2luY2x1
ZGUgIkhUTUxGb3JtQ29udHJvbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgog
I2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCkBAIC0yNTYsNiArMjU3LDIyIEBAIHZvaWQgc2V0U2Vs
ZWN0aW9uUmFuZ2UoTm9kZSogbm9kZSwgaW50IHMKICAgICAgICAgZnJhbWUtPnNlbGVjdGlvbigp
LT5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKIH0KIAorYm9vbCBSZW5kZXJUZXh0Q29udHJv
bDo6aXNTZWxlY3RhYmxlRWxlbWVudChOb2RlKiBub2RlKSBjb25zdAoreworICAgIGlmICghbm9k
ZSB8fCAhbV9pbm5lclRleHQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBpZiAo
bm9kZS0+cm9vdEVkaXRhYmxlRWxlbWVudCgpID09IG1faW5uZXJUZXh0KQorICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAKKyAgICBpZiAoIW1faW5uZXJUZXh0LT5jb250YWlucyhub2RlKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIE5vZGUqIHNoYWRvd0FuY2VzdG9yID0gbm9k
ZS0+c2hhZG93QW5jZXN0b3JOb2RlKCk7CisgICAgcmV0dXJuIHNoYWRvd0FuY2VzdG9yICYmIChz
aGFkb3dBbmNlc3Rvci0+aGFzVGFnTmFtZSh0ZXh0YXJlYVRhZykKKyAgICAgICAgfHwgKHNoYWRv
d0FuY2VzdG9yLT5oYXNUYWdOYW1lKGlucHV0VGFnKSAmJiBzdGF0aWNfY2FzdDxIVE1MSW5wdXRF
bGVtZW50Kj4oc2hhZG93QW5jZXN0b3IpLT5pc1RleHRGaWVsZCgpKSk7Cit9CisKIFBhc3NSZWZQ
dHI8UmFuZ2U+IFJlbmRlclRleHRDb250cm9sOjpzZWxlY3Rpb24oaW50IHN0YXJ0LCBpbnQgZW5k
KSBjb25zdAogewogICAgIGlmICghbV9pbm5lclRleHQpCkBAIC0yODQsNyArMzAxLDcgQEAgVmlz
aWJsZVBvc2l0aW9uIFJlbmRlclRleHRDb250cm9sOjp2aXNpYgogaW50IFJlbmRlclRleHRDb250
cm9sOjppbmRleEZvclZpc2libGVQb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvcykg
Y29uc3QKIHsKICAgICBQb3NpdGlvbiBpbmRleFBvc2l0aW9uID0gcG9zLmRlZXBFcXVpdmFsZW50
KCk7Ci0gICAgaWYgKCFpbmRleFBvc2l0aW9uLm5vZGUoKSB8fCBpbmRleFBvc2l0aW9uLm5vZGUo
KS0+cm9vdEVkaXRhYmxlRWxlbWVudCgpICE9IG1faW5uZXJUZXh0KQorICAgIGlmICghaXNTZWxl
Y3RhYmxlRWxlbWVudChpbmRleFBvc2l0aW9uLm5vZGUoKSkpCiAgICAgICAgIHJldHVybiAwOwog
ICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBSYW5n
ZTo6Y3JlYXRlKGRvY3VtZW50KCkpOwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4
dENvbnRyb2wuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbC5oCShyZXZpc2lvbiA3MTYxOCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRD
b250cm9sLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNyw2ICsxMDcsNyBAQCBwcml2YXRlOgogCiAg
ICAgYm9vbCBoYXNWaXNpYmxlVGV4dEFyZWEoKSBjb25zdDsKICAgICBmcmllbmQgdm9pZCBzZXRT
ZWxlY3Rpb25SYW5nZShOb2RlKiwgaW50IHN0YXJ0LCBpbnQgZW5kKTsKKyAgICBib29sIGlzU2Vs
ZWN0YWJsZUVsZW1lbnQoTm9kZSopIGNvbnN0OwogCiAgICAgYm9vbCBtX3dhc0NoYW5nZWRTaW5j
ZUxhc3RDaGFuZ2VFdmVudDsKICAgICBib29sIG1fbGFzdENoYW5nZVdhc1VzZXJFZGl0OwpJbmRl
eDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkocmV2aXNpb24gNzE2MjUpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMC0xMS0wOSAgSnVsaWUtSmVvbmdldW4tS2ltICA8
aml5dWx1bmFAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmQgcHJvcGVydGllcyByZXR1
cm4gd3JvbmcgdmFsdWVzIHdoZW4gdGhlIHNlbGVjdGlvbiBpcyBpbiBhIGZvcm0gaW5wdXQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NDQ0CisKKyAg
ICAgICAgKiBmYXN0L2Zvcm1zL3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9ubHktZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3NlbGVjdGlvbi1zdGFydC1lbmQtcmVh
ZG9ubHkuaHRtbDogQWRkZWQuCisKIDIwMTAtMTEtMDkgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5
c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0aW9uLXN0YXJ0LWVuZC1yZWFkb25seS1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Rp
b24tc3RhcnQtZW5kLXJlYWRvbmx5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0aW9uLXN0YXJ0LWVuZC1yZWFkb25seS1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDAgQEAKK1Rlc3RzIGZvciBzZWxlY3Rpb25TdGFy
dCBhbmQgc2VsZWN0aW9uRW5kIG9uIHJlYWQtb25seSBJTlBVVCBhbmQgVEVYVEFSRUEuIAorYnVn
IDI1NDQ0OiBTZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kIHByb3BlcnRpZXMgcmV0dXJuIHdy
b25nIHZhbHVlcyB3aGVuIHRoZSBzZWxlY3Rpb24gaXMgaW4gYSBmb3JtIGlucHV0LgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworCisKK1BBU1MgZWxlbWVudC5zZWxlY3Rpb25TdGFy
dCBpcyAwCitQQVNTIGVsZW1lbnQuc2VsZWN0aW9uRW5kIGlzIDEwCitQQVNTIGVsZW1lbnQuc2Vs
ZWN0aW9uU3RhcnQgaXMgMAorUEFTUyBlbGVtZW50LnNlbGVjdGlvbkVuZCBpcyA5CitQQVNTIGVs
ZW1lbnQuc2VsZWN0aW9uU3RhcnQgaXMgMQorUEFTUyBlbGVtZW50LnNlbGVjdGlvbkVuZCBpcyAx
MAorUEFTUyBlbGVtZW50LnNlbGVjdGlvblN0YXJ0IGlzIDUKK1BBU1MgZWxlbWVudC5zZWxlY3Rp
b25FbmQgaXMgNQorUEFTUyBlbGVtZW50LnNlbGVjdGlvblN0YXJ0IGlzIDUKK1BBU1MgZWxlbWVu
dC5zZWxlY3Rpb25FbmQgaXMgNQorUEFTUyBlbGVtZW50LnNlbGVjdGlvblN0YXJ0IGlzIDAKK1BB
U1MgZWxlbWVudC5zZWxlY3Rpb25FbmQgaXMgMAorUEFTUyBlbGVtZW50LnNlbGVjdGlvblN0YXJ0
IGlzIDAKK1BBU1MgZWxlbWVudC5zZWxlY3Rpb25FbmQgaXMgMTAKK1BBU1MgZWxlbWVudC5zZWxl
Y3Rpb25TdGFydCBpcyAwCitQQVNTIGVsZW1lbnQuc2VsZWN0aW9uRW5kIGlzIDEwCitQQVNTIGVs
ZW1lbnQuc2VsZWN0aW9uU3RhcnQgaXMgMAorUEFTUyBlbGVtZW50LnNlbGVjdGlvbkVuZCBpcyA5
CitQQVNTIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgaXMgMQorUEFTUyBlbGVtZW50LnNlbGVjdGlv
bkVuZCBpcyAxMAorUEFTUyBlbGVtZW50LnNlbGVjdGlvblN0YXJ0IGlzIDUKK1BBU1MgZWxlbWVu
dC5zZWxlY3Rpb25FbmQgaXMgNQorUEFTUyBlbGVtZW50LnNlbGVjdGlvblN0YXJ0IGlzIDUKK1BB
U1MgZWxlbWVudC5zZWxlY3Rpb25FbmQgaXMgNQorUEFTUyBlbGVtZW50LnNlbGVjdGlvblN0YXJ0
IGlzIDAKK1BBU1MgZWxlbWVudC5zZWxlY3Rpb25FbmQgaXMgMAorUEFTUyBlbGVtZW50LnNlbGVj
dGlvblN0YXJ0IGlzIDAKK1BBU1MgZWxlbWVudC5zZWxlY3Rpb25FbmQgaXMgMTAKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9ubHkuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9u
bHkuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0aW9u
LXN0YXJ0LWVuZC1yZWFkb25seS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ5IEBACis8
IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+DQorPGh0bWw+DQor
PGhlYWQ+DQorPG1ldGEgY2hhcnNldD0idXRmLTgiPg0KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIg
aHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4NCis8c2NyaXB0IHNyYz0i
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4NCis8L2hlYWQ+DQorPGJv
ZHk+DQorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+DQorPGlucHV0IGlkPSJ0ZXh0IiByZWFkb25s
eT0icmVhZG9ubHkiIHZhbHVlPSIyMDA5LTA0LTI5Ii8+PGJyLz4NCis8dGV4dGFyZWEgaWQ9ImFy
ZWEiIHJlYWRvbmx5PSJyZWFkb25seSI+MjAwOS0wNC0yOTwvdGV4dGFyZWE+PC9kaXY+DQorPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+DQorPGRpdj4NCis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+DQorZGVzY3JpcHRpb24oJ1Rlc3RzIGZvciBzZWxlY3Rpb25TdGFydCBhbmQgc2VsZWN0
aW9uRW5kIG9uIHJlYWQtb25seSBJTlBVVCBhbmQgVEVYVEFSRUEuIDxici8+IDxhIGhyZWY9Imh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTQ0NCI+YnVnIDI1NDQ0PC9h
PjogU2VsZWN0aW9uU3RhcnQsIHNlbGVjdGlvbkVuZCBwcm9wZXJ0aWVzIHJldHVybiB3cm9uZyB2
YWx1ZXMgd2hlbiB0aGUgc2VsZWN0aW9uIGlzIGluIGEgZm9ybSBpbnB1dC4nKTsNCisNCitmdW5j
dGlvbiBzdGFydFRlc3QoZWxlbWVudCwgc3RhcnQsIGVuZCkgew0KKyAgICBlbGVtZW50LnNldFNl
bGVjdGlvblJhbmdlKHN0YXJ0LCBlbmQpOw0KKw0KKyAgICBzdGFydCA9IHN0YXJ0IDwgMCA/IDAg
OiBzdGFydDsNCisgICAgZW5kID0gZW5kID4gMTAgPyAxMCA6IGVuZDsNCisgICAgc3RhcnQgPSBz
dGFydCA+IGVuZCA/IGVuZCA6IHN0YXJ0Ow0KKw0KKyAgICBpZiAoZWxlbWVudC5zZWxlY3Rpb25T
dGFydCAhPSBzdGFydCkNCisgICAgICAgIHRlc3RGYWlsZWQoJ2VsZW1lbnQuc2VsZWN0aW9uU3Rh
cnQnICsgJyBzaG91bGQgYmUgJyArIHN0YXJ0ICsgJyBidXQgaXQgaXMgJyArIGVsZW1lbnQuc2Vs
ZWN0aW9uU3RhcnQpOw0KKyAgICBlbHNlDQorICAgICAgICB0ZXN0UGFzc2VkKCdlbGVtZW50LnNl
bGVjdGlvblN0YXJ0JyArICcgaXMgJyArIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQpOw0KKw0KKyAg
ICBpZiAoZWxlbWVudC5zZWxlY3Rpb25FbmQgIT0gZW5kKQ0KKyAgICAgICAgdGVzdEZhaWxlZCgn
ZWxlbWVudC5zZWxlY3Rpb25FbmQnICsgJyBzaG91bGQgYmUgJyArIGVuZCArICcgYnV0IGl0IGlz
ICcgKyBlbGVtZW50LnNlbGVjdGlvbkVuZCk7DQorICAgIGVsc2UNCisgICAgICAgIHRlc3RQYXNz
ZWQoJ2VsZW1lbnQuc2VsZWN0aW9uRW5kJyArICcgaXMgJyArIGVsZW1lbnQuc2VsZWN0aW9uRW5k
KTsNCit9DQorDQorZnVuY3Rpb24gdGVzdEhhbmRsZXIoZWxlbWVudCkgew0KKyAgICB2YXIgb2Zm
c2V0cyA9IFtbMCwgMTBdLCBbMCwgOV0sIFsxLCAxMF0sIFs1LDVdLCBbOCw1XSwgWy0xLDBdLCBb
LTEsNTBdXTsNCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvZmZzZXRzLmxlbmd0aDsgaSsrKQ0K
KyAgICAgICAgc3RhcnRUZXN0KGVsZW1lbnQsIG9mZnNldHNbaV1bMF0sIG9mZnNldHNbaV1bMV0p
Ow0KK30NCisNCit0ZXN0SGFuZGxlcihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGV4dCcpKTsN
Cit0ZXN0SGFuZGxlcihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYXJlYScpKTsgICAgICAgIA0K
Kw0KK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOw0KKyA8L3NjcmlwdD4gIA0KKyA8c2Ny
aXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+DQorIDwv
Ym9keT4NCis8L2h0bWw+DQorDQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>73513</attachid>
            <date>2010-11-10 11:11:29 -0800</date>
            <delta_ts>2010-11-10 11:11:29 -0800</delta_ts>
            <desc>new testcase</desc>
            <filename>new_testcase.html</filename>
            <type>text/html</type>
            <size>858</size>
            <attacher name="bugzilla33">bugzilla33</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+DQo8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt
bCI+DQogPGhlYWQ+DQogIDxtZXRhIGNoYXJzZXQ9InV0Zi04IiAvPg0KICA8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCI+Ly88IVtDREFUQVsNCiAgIGZ1bmN0aW9uIGdvKCl7DQogICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKS5zZXRTZWxlY3Rpb25SYW5nZSg1LDcpDQogICAg
YWxlcnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QnKS5zZWxlY3Rpb25TdGFydCsnLCAn
K2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0Jykuc2VsZWN0aW9uRW5kKQ0KICAgfQ0KICAv
L11dPjwvc2NyaXB0Pg0KIDwvaGVhZD4NCiA8Ym9keT4NCiAgPGRpdj48aW5wdXQgaWQ9InRlc3Qi
IHJlYWRvbmx5PSIiIHZhbHVlPSIyMDA5LTA0LTI5IiAvPjwvZGl2Pg0KICA8ZGl2PjxpbnB1dCB0
eXBlPSJidXR0b24iIHZhbHVlPSJ0ZXN0IHNlbGVjdGlvblN0YXJ0ICYgc2VsZWN0aW9uRW5kIC0g
c2hvdWxkIGFsZXJ0OiA1LCA3IiBvbmNsaWNrPSJnbygpIiAvPjwvZGl2Pg0KICA8ZGl2IHN0eWxl
PSJjb2xvcjpyZWQiPlNhZmFmaTogRkFJTFM8L2Rpdj4NCiAgPGRpdiBzdHlsZT0iY29sb3I6cmVk
Ij5DaHJvbWU6IEZBSUxTPC9kaXY+DQogIDxkaXYgc3R5bGU9ImNvbG9yOmdyZWVuIj5GaXJlZm94
OiBPSzwvZGl2Pg0KICA8ZGl2IHN0eWxlPSJjb2xvcjpncmVlbiI+T3BlcmE6IE9LPC9kaXY+DQog
IDxkaXYgc3R5bGU9ImNvbG9yOmdyZWVuIj5Lb25xdWVyb3I6IE9LPC9kaXY+DQogIDxkaXYgc3R5
bGU9ImNvbG9yOmdyZWVuIj5JRSA5IHByZXZpZXcgNjogT0s8L2Rpdj4NCiA8L2JvZHk+DQo8L2h0
bWw+
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>73602</attachid>
            <date>2010-11-11 05:43:13 -0800</date>
            <delta_ts>2010-11-11 19:56:49 -0800</delta_ts>
            <desc>Proposed patch(5th)</desc>
            <filename>25444Patch_5.txt</filename>
            <type>text/plain</type>
            <size>8633</size>
            <attacher name="Julie Jeongeun Kim">jiyuluna</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA3MTgwNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjUgQEAKKzIwMTAtMTEtMTEgIEp1bGllLUplb25nZXVuLUtpbSAgPGppeXVsdW5h
QGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kIHByb3BlcnRpZXMgcmV0dXJuIHdyb25n
IHZhbHVlcyB3aGVuIHRoZSBzZWxlY3Rpb24gaXMgaW4gYSByZWFkLW9ubHkgaW5wdXQgb3IgdGV4
dGFyZWEgZWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjU0NDQKKworICAgICAgICAncm9vdEVkaXRhYmxlRWxlbWVudCgpJyBpcyBjaGVja2Vk
IG9uIFJlbmRlclRleHRDb250cm9sOjppbmRleEZvclZpc2libGVQb3NpdGlvbi4KKyAgICAgICAg
SXQgbWVhbnMgdGhhdCBqdXN0IGVkaXRhYmxlIGVsZW1lbnRzIGNhbiBnZXQgc2VsZWN0aW9uIGlu
Zm9ybWF0aW9uLgorICAgICAgICBSZWFkT25seSBlbGVtZW50IGlzIG5vdCBlZGl0YWJsZSBlbGVt
ZW50LiBTbywgaXQganVzdCByZXR1cm5zIGFuZCBjYW4ndCBnZXQgY29ycmVjdCBzZWxlY3Rpb24g
aW5mb3JtYXRpb24uCisgICAgICAgIElOUFVUIGFuZCBURVhUQVJFQSBlbGVtZW50cyBjYW4gYmUg
cmVhZC1vbmx5IGJ1dCAnaW5kZXhGb3JWaXNpYmxlUG9zaXRpb24nIGRvZXNuJ3QgYWNjZXB0IHRo
ZW0uCisgICAgICAgIFNvLCBTZWxlY3RhYmxlIGVsZW1lbnRzLCBJTlBVVCBhbmQgVEVYVEFSRUEs
IGNoZWNraW5nIGlzIGFkZGVkIGZvciB0aGF0IGNhc2UuCisgICAgICAgIEV2ZW4gaWYgdGhleSBh
cmUgcmVhZC1vbmx5LCB0aGV5IGFyZSBzZWxlY3RhYmxlLgorCisgICAgICAgIG5ldyB0ZXN0czpm
YXN0L2Zvcm1zL3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9ubHkuaHRtbAorCisgICAgICAgICog
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4
dENvbnRyb2wuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2w6OmlzU2Vs
ZWN0YWJsZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2w6Omlu
ZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENv
bnRyb2wuaDoKKwogMjAxMC0xMS0xMSAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5A
cmltLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaXJrIFNjaHVsemUuCkluZGV4OiBXZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuaWRsCShyZXZpc2lvbiA3MTgwMikKKysrIFdlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtODQsOCArODQsNiBAQCBtb2R1
bGUgaHRtbCB7CiAgICAgICAgIC8vIFdpbklFIGV4dGVuc2lvbjoKICAgICAgICAgYXR0cmlidXRl
IGJvb2xlYW4gaW5kZXRlcm1pbmF0ZTsKIAotICAgICAgICAvLyBXaW5JRSAmIEZpcmVGb3ggZXh0
ZW5zaW9uOgotCiAgICAgICAgIGF0dHJpYnV0ZSBbQ3VzdG9tXSBsb25nIHNlbGVjdGlvblN0YXJ0
OwogICAgICAgICBhdHRyaWJ1dGUgW0N1c3RvbV0gbG9uZyBzZWxlY3Rpb25FbmQ7CiAgICAgICAg
IFtDdXN0b21dIHZvaWQgc2V0U2VsZWN0aW9uUmFuZ2UoaW4gbG9uZyBzdGFydCwgaW4gbG9uZyBl
bmQpOwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcAkocmV2aXNp
b24gNzE4MDIpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1
ZGUgIkhUTUxCUkVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRm9ybUNvbnRyb2xFbGVtZW50Lmgi
CisjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgog
I2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5oIgpAQCAt
MjU2LDYgKzI1NywyMiBAQCB2b2lkIHNldFNlbGVjdGlvblJhbmdlKE5vZGUqIG5vZGUsIGludCBz
CiAgICAgICAgIGZyYW1lLT5zZWxlY3Rpb24oKS0+c2V0U2VsZWN0aW9uKG5ld1NlbGVjdGlvbik7
CiB9CiAKK2Jvb2wgUmVuZGVyVGV4dENvbnRyb2w6OmlzU2VsZWN0YWJsZUVsZW1lbnQoTm9kZSog
bm9kZSkgY29uc3QKK3sKKyAgICBpZiAoIW5vZGUgfHwgIW1faW5uZXJUZXh0KQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgCisgICAgaWYgKG5vZGUtPnJvb3RFZGl0YWJsZUVsZW1lbnQoKSA9
PSBtX2lubmVyVGV4dCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgCisgICAgaWYgKCFtX2lu
bmVyVGV4dC0+Y29udGFpbnMobm9kZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAg
ICBOb2RlKiBzaGFkb3dBbmNlc3RvciA9IG5vZGUtPnNoYWRvd0FuY2VzdG9yTm9kZSgpOworICAg
IHJldHVybiBzaGFkb3dBbmNlc3RvciAmJiAoc2hhZG93QW5jZXN0b3ItPmhhc1RhZ05hbWUodGV4
dGFyZWFUYWcpCisgICAgICAgIHx8IChzaGFkb3dBbmNlc3Rvci0+aGFzVGFnTmFtZShpbnB1dFRh
ZykgJiYgc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KHNoYWRvd0FuY2VzdG9yKS0+aXNU
ZXh0RmllbGQoKSkpOworfQorCiBQYXNzUmVmUHRyPFJhbmdlPiBSZW5kZXJUZXh0Q29udHJvbDo6
c2VsZWN0aW9uKGludCBzdGFydCwgaW50IGVuZCkgY29uc3QKIHsKICAgICBpZiAoIW1faW5uZXJU
ZXh0KQpAQCAtMjg0LDcgKzMwMSw3IEBAIFZpc2libGVQb3NpdGlvbiBSZW5kZXJUZXh0Q29udHJv
bDo6dmlzaWIKIGludCBSZW5kZXJUZXh0Q29udHJvbDo6aW5kZXhGb3JWaXNpYmxlUG9zaXRpb24o
Y29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3MpIGNvbnN0CiB7CiAgICAgUG9zaXRpb24gaW5kZXhQ
b3NpdGlvbiA9IHBvcy5kZWVwRXF1aXZhbGVudCgpOwotICAgIGlmICghaW5kZXhQb3NpdGlvbi5u
b2RlKCkgfHwgaW5kZXhQb3NpdGlvbi5ub2RlKCktPnJvb3RFZGl0YWJsZUVsZW1lbnQoKSAhPSBt
X2lubmVyVGV4dCkKKyAgICBpZiAoIWlzU2VsZWN0YWJsZUVsZW1lbnQoaW5kZXhQb3NpdGlvbi5u
b2RlKCkpKQogICAgICAgICByZXR1cm4gMDsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAg
ICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gUmFuZ2U6OmNyZWF0ZShkb2N1bWVudCgpKTsKSW5kZXg6
IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaAkocmV2aXNpb24gNzE4MDIpCisrKyBX
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
MDcsNiArMTA3LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgaGFzVmlzaWJsZVRleHRBcmVhKCkg
Y29uc3Q7CiAgICAgZnJpZW5kIHZvaWQgc2V0U2VsZWN0aW9uUmFuZ2UoTm9kZSosIGludCBzdGFy
dCwgaW50IGVuZCk7CisgICAgYm9vbCBpc1NlbGVjdGFibGVFbGVtZW50KE5vZGUqKSBjb25zdDsK
IAogICAgIGJvb2wgbV93YXNDaGFuZ2VkU2luY2VMYXN0Q2hhbmdlRXZlbnQ7CiAgICAgYm9vbCBt
X2xhc3RDaGFuZ2VXYXNVc2VyRWRpdDsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDcxODA4KQorKysgTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAt
MTEtMTEgIEp1bGllLUplb25nZXVuLUtpbSAgPGppeXVsdW5hQGdtYWlsLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTZWxlY3Rpb25TdGFydCwg
c2VsZWN0aW9uRW5kIHByb3BlcnRpZXMgcmV0dXJuIHdyb25nIHZhbHVlcyB3aGVuIHRoZSBzZWxl
Y3Rpb24gaXMgaW4gYSByZWFkLW9ubHkgaW5wdXQgb3IgdGV4dGFyZWEgZWxlbWVudAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjU0NDQKKworICAgICAg
ICAqIGZhc3QvZm9ybXMvc2VsZWN0aW9uLXN0YXJ0LWVuZC1yZWFkb25seS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvc2VsZWN0aW9uLXN0YXJ0LWVuZC1yZWFkb25s
eS5odG1sOiBBZGRlZC4KKwogMjAxMC0xMS0xMSAgQW5kcmVhcyBLbGluZyAgPGtsaW5nQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmVtb3ZlIFNMLXNwZWNpZmljIGZhaWx1cmUg
cmVzdWx0IGZvciBjYW52YXMgdGVzdCAyZC5kcmF3SW1hZ2UubnVsbCBzaW5jZSBpdCBub3cgcGFz
c2VzLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Rpb24tc3RhcnQtZW5kLXJl
YWRvbmx5LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3NlbGVjdGlvbi1zdGFydC1lbmQtcmVhZG9ubHktZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zZWxlY3Rpb24tc3RhcnQtZW5kLXJlYWRvbmx5LWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MCBAQAorVGVzdHMgZm9yIHNlbGVj
dGlvblN0YXJ0IGFuZCBzZWxlY3Rpb25FbmQgb24gcmVhZC1vbmx5IElOUFVUIGFuZCBURVhUQVJF
QS4gCitidWcgMjU0NDQ6IFNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmQgcHJvcGVydGllcyBy
ZXR1cm4gd3JvbmcgdmFsdWVzIHdoZW4gdGhlIHNlbGVjdGlvbiBpcyBpbiBhIGZvcm0gaW5wdXQu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisKKworUEFTUyBlbGVtZW50LnNlbGVj
dGlvblN0YXJ0IGlzIDAKK1BBU1MgZWxlbWVudC5zZWxlY3Rpb25FbmQgaXMgMTAKK1BBU1MgZWxl
bWVudC5zZWxlY3Rpb25TdGFydCBpcyAwCitQQVNTIGVsZW1lbnQuc2VsZWN0aW9uRW5kIGlzIDkK
K1BBU1MgZWxlbWVudC5zZWxlY3Rpb25TdGFydCBpcyAxCitQQVNTIGVsZW1lbnQuc2VsZWN0aW9u
RW5kIGlzIDEwCitQQVNTIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgaXMgNQorUEFTUyBlbGVtZW50
LnNlbGVjdGlvbkVuZCBpcyA1CitQQVNTIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgaXMgNQorUEFT
UyBlbGVtZW50LnNlbGVjdGlvbkVuZCBpcyA1CitQQVNTIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQg
aXMgMAorUEFTUyBlbGVtZW50LnNlbGVjdGlvbkVuZCBpcyAwCitQQVNTIGVsZW1lbnQuc2VsZWN0
aW9uU3RhcnQgaXMgMAorUEFTUyBlbGVtZW50LnNlbGVjdGlvbkVuZCBpcyAxMAorUEFTUyBlbGVt
ZW50LnNlbGVjdGlvblN0YXJ0IGlzIDAKK1BBU1MgZWxlbWVudC5zZWxlY3Rpb25FbmQgaXMgMTAK
K1BBU1MgZWxlbWVudC5zZWxlY3Rpb25TdGFydCBpcyAwCitQQVNTIGVsZW1lbnQuc2VsZWN0aW9u
RW5kIGlzIDkKK1BBU1MgZWxlbWVudC5zZWxlY3Rpb25TdGFydCBpcyAxCitQQVNTIGVsZW1lbnQu
c2VsZWN0aW9uRW5kIGlzIDEwCitQQVNTIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgaXMgNQorUEFT
UyBlbGVtZW50LnNlbGVjdGlvbkVuZCBpcyA1CitQQVNTIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQg
aXMgNQorUEFTUyBlbGVtZW50LnNlbGVjdGlvbkVuZCBpcyA1CitQQVNTIGVsZW1lbnQuc2VsZWN0
aW9uU3RhcnQgaXMgMAorUEFTUyBlbGVtZW50LnNlbGVjdGlvbkVuZCBpcyAwCitQQVNTIGVsZW1l
bnQuc2VsZWN0aW9uU3RhcnQgaXMgMAorUEFTUyBlbGVtZW50LnNlbGVjdGlvbkVuZCBpcyAxMAor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0aW9uLXN0YXJ0LWVuZC1yZWFkb25seS5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2VsZWN0aW9uLXN0YXJ0LWVu
ZC1yZWFkb25seS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9z
ZWxlY3Rpb24tc3RhcnQtZW5kLXJlYWRvbmx5Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NDkgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4NCis8
aHRtbD4NCis8aGVhZD4NCis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+DQorPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPg0KKzxzY3Jp
cHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pg0KKzwvaGVh
ZD4NCis8Ym9keT4NCis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4NCis8aW5wdXQgaWQ9InRleHQi
IHJlYWRvbmx5PSJyZWFkb25seSIgdmFsdWU9IjIwMDktMDQtMjkiLz48YnIvPg0KKzx0ZXh0YXJl
YSBpZD0iYXJlYSIgcmVhZG9ubHk9InJlYWRvbmx5Ij4yMDA5LTA0LTI5PC90ZXh0YXJlYT48L2Rp
dj4NCis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4NCis8ZGl2Pg0KKzxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4NCitkZXNjcmlwdGlvbignVGVzdHMgZm9yIHNlbGVjdGlvblN0YXJ0IGFu
ZCBzZWxlY3Rpb25FbmQgb24gcmVhZC1vbmx5IElOUFVUIGFuZCBURVhUQVJFQS4gPGJyLz4gPGEg
aHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NDQ0Ij5idWcg
MjU0NDQ8L2E+OiBTZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kIHByb3BlcnRpZXMgcmV0dXJu
IHdyb25nIHZhbHVlcyB3aGVuIHRoZSBzZWxlY3Rpb24gaXMgaW4gYSBmb3JtIGlucHV0LicpOw0K
Kw0KK2Z1bmN0aW9uIHN0YXJ0VGVzdChlbGVtZW50LCBzdGFydCwgZW5kKSB7DQorICAgIGVsZW1l
bnQuc2V0U2VsZWN0aW9uUmFuZ2Uoc3RhcnQsIGVuZCk7DQorDQorICAgIHN0YXJ0ID0gc3RhcnQg
PCAwID8gMCA6IHN0YXJ0Ow0KKyAgICBlbmQgPSBlbmQgPiAxMCA/IDEwIDogZW5kOw0KKyAgICBz
dGFydCA9IHN0YXJ0ID4gZW5kID8gZW5kIDogc3RhcnQ7DQorCisgICAgaWYgKGVsZW1lbnQuc2Vs
ZWN0aW9uU3RhcnQgIT0gc3RhcnQpDQorICAgICAgICB0ZXN0RmFpbGVkKCdlbGVtZW50LnNlbGVj
dGlvblN0YXJ0JyArICcgc2hvdWxkIGJlICcgKyBzdGFydCArICcgYnV0IGl0IGlzICcgKyBlbGVt
ZW50LnNlbGVjdGlvblN0YXJ0KTsNCisgICAgZWxzZQ0KKyAgICAgICAgdGVzdFBhc3NlZCgnZWxl
bWVudC5zZWxlY3Rpb25TdGFydCcgKyAnIGlzICcgKyBlbGVtZW50LnNlbGVjdGlvblN0YXJ0KTsN
CisNCisgICAgaWYgKGVsZW1lbnQuc2VsZWN0aW9uRW5kICE9IGVuZCkNCisgICAgICAgIHRlc3RG
YWlsZWQoJ2VsZW1lbnQuc2VsZWN0aW9uRW5kJyArICcgc2hvdWxkIGJlICcgKyBlbmQgKyAnIGJ1
dCBpdCBpcyAnICsgZWxlbWVudC5zZWxlY3Rpb25FbmQpOw0KKyAgICBlbHNlDQorICAgICAgICB0
ZXN0UGFzc2VkKCdlbGVtZW50LnNlbGVjdGlvbkVuZCcgKyAnIGlzICcgKyBlbGVtZW50LnNlbGVj
dGlvbkVuZCk7DQorfQ0KKw0KK2Z1bmN0aW9uIHRlc3RIYW5kbGVyKGVsZW1lbnQpIHsNCisgICAg
dmFyIG9mZnNldHMgPSBbWzAsIDEwXSwgWzAsIDldLCBbMSwgMTBdLCBbNSw1XSwgWzgsNV0sIFst
MSwwXSwgWy0xLDUwXV07DQorICAgIGZvciAodmFyIGkgPSAwOyBpIDwgb2Zmc2V0cy5sZW5ndGg7
IGkrKykNCisgICAgICAgIHN0YXJ0VGVzdChlbGVtZW50LCBvZmZzZXRzW2ldWzBdLCBvZmZzZXRz
W2ldWzFdKTsNCit9DQorDQordGVzdEhhbmRsZXIoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rl
eHQnKSk7DQordGVzdEhhbmRsZXIoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FyZWEnKSk7ICAg
ICAgICANCisNCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsNCisgPC9zY3JpcHQ+ICAN
CisgPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0
Pg0KKyA8L2JvZHk+DQorPC9odG1sPg0KKwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>