<?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>88500</bug_id>
          
          <creation_ts>2012-06-06 22:04:17 -0700</creation_ts>
          <short_desc>[Crash][Editing] VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries() crashes in some Shadow DOM case</short_desc>
          <delta_ts>2012-06-21 16:24:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>82697</blocked>
    
    <blocked>89708</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Shinya Kawanaka">shinyak</reporter>
          <assigned_to name="Shinya Kawanaka">shinyak</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>hayato</cc>
    
    <cc>morrita</cc>
    
    <cc>rniwa</cc>
    
    <cc>tasak</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>643208</commentid>
    <comment_count>0</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-06-06 22:04:17 -0700</bug_when>
    <thetext>HTML 
&lt;div contenteditable&gt;
    &lt;div&gt;BEFORE HOST&lt;/div&gt;
    &lt;div id=&quot;host&quot; contenteditable=&quot;false&quot;&gt;     a     &lt;/div&gt;
&lt;/div&gt;

Shadow DOM for host
&lt;div id=&quot;shadow-host&quot;&gt;SHADOW (BEFORE)&lt;shadow&gt;&lt;/shadow&gt;SHADOW (AFTER)&lt;/div&gt;

Nested Shadow DOM for shadow-host
&lt;div contenteditable&gt;NESTED BEFORE&lt;shadow&gt;&lt;/shadow&gt;NESTED AFTER&lt;/div&gt;


Select from &apos;a&apos; to left, then ASSERTION triggered.

SHOULD NEVER BE REACHED
VisibleSelection.cpp(592) : adjustSelectionToAvoidCrossingEditingBoundaries()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>643455</commentid>
    <comment_count>1</comment_count>
      <attachid>146263</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-06-07 05:42:16 -0700</bug_when>
    <thetext>Created attachment 146263
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644384</commentid>
    <comment_count>2</comment_count>
      <attachid>146263</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-07 23:39:33 -0700</bug_when>
    <thetext>Comment on attachment 146263
Patch

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

&gt; Source/WebCore/editing/VisibleSelection.cpp:496
&gt; +        m_extent = adjustPositionForEnd(m_start.anchorNode()-&gt;treeScope(), m_end, m_start.containerNode());

Why are we using anchorNode&apos;s treeScope and then passing containerNode!?
anchorNode != containerNode. Can we just pass m_start.containerNode() here and obtain the tree scope inside the function?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645706</commentid>
    <comment_count>3</comment_count>
      <attachid>146775</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-06-10 21:20:38 -0700</bug_when>
    <thetext>Created attachment 146775
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645708</commentid>
    <comment_count>4</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-06-10 21:21:46 -0700</bug_when>
    <thetext>&gt; Why are we using anchorNode&apos;s treeScope and then passing containerNode!?
&gt; anchorNode != containerNode. Can we just pass m_start.containerNode() here and obtain the tree scope inside the function?

yeah... it was strange... I&apos;ve update the patch. anchorNode()-&gt;treeScope() and containerNode()-&gt;treeScope() should be the same basically.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646622</commentid>
    <comment_count>5</comment_count>
      <attachid>146775</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-11 22:25:36 -0700</bug_when>
    <thetext>Comment on attachment 146775
Patch

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

&gt; Source/WebCore/editing/VisibleSelection.cpp:501
&gt; -        m_extent = adjustPositionBefore(m_start.anchorNode()-&gt;treeScope(), m_end);
&gt; +        m_extent = adjustPositionForEnd(m_start.containerNode()-&gt;treeScope(), m_end, m_start.containerNode());

Again, why do we need to call treeScope here? You can just call it inside the function, right?

&gt; Source/WebCore/editing/VisibleSelection.cpp:504
&gt; -        m_extent = adjustPositionAfter(m_end.anchorNode()-&gt;treeScope(), m_start);
&gt; +        m_extent = adjustPositionForStart(m_end.containerNode()-&gt;treeScope(), m_start, m_end.containerNode());

Ditto.

&gt; LayoutTests/editing/shadow/breaking-editing-boundaries.html:10
&gt; +&lt;div contenteditable&gt;
&gt; +    BEFORE&lt;div id=&quot;host&quot; contenteditable=&quot;false&quot;&gt;DRAG FROM&lt;span id=&quot;target&quot;&gt; &lt;/span&gt;HERE&lt;/div&gt;    
&gt; +&lt;/div&gt;

Please add a test description.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648651</commentid>
    <comment_count>6</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-06-13 18:18:08 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 146775 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=146775&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/editing/VisibleSelection.cpp:501
&gt; &gt; -        m_extent = adjustPositionBefore(m_start.anchorNode()-&gt;treeScope(), m_end);
&gt; &gt; +        m_extent = adjustPositionForEnd(m_start.containerNode()-&gt;treeScope(), m_end, m_start.containerNode());
&gt; 
&gt; Again, why do we need to call treeScope here? You can just call it inside the function, right?

Ah, OK. I didn&apos;t understand what you said...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648677</commentid>
    <comment_count>7</comment_count>
      <attachid>147466</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-06-13 18:57:43 -0700</bug_when>
    <thetext>Created attachment 147466
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648700</commentid>
    <comment_count>8</comment_count>
      <attachid>147466</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-13 19:31:15 -0700</bug_when>
    <thetext>Comment on attachment 147466
Patch

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

&gt; Source/WebCore/editing/VisibleSelection.cpp:468
&gt; +    if (Node* ancestor = treeScope-&gt;ancestorInThisScope(currentPosition.anchorNode())) {        

What if this position was an offset in the anchor node? Why is it okay to move it before or after the node?

&gt; Source/WebCore/editing/VisibleSelection.cpp:471
&gt; +        if (ancestor-&gt;contains(startContainerNode))
&gt; +            return positionAfterNode(ancestor);
&gt; +        return positionBeforeNode(ancestor);

Why do we need to modify position when the ancestor is in the same tree scope? That sounds red-herring.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648831</commentid>
    <comment_count>9</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-06-13 23:20:17 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 147466 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=147466&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/editing/VisibleSelection.cpp:468
&gt; &gt; +    if (Node* ancestor = treeScope-&gt;ancestorInThisScope(currentPosition.anchorNode())) {        
&gt; 
&gt; What if this position was an offset in the anchor node? Why is it okay to move it before or after the node?
&gt; 

Actually currentPosition.anchorNode()-&gt;treeScope() will not be equal to startContainerNode-&gt;treeScope() here. I should have asserted. (I&apos;ll update the patch soon)
So treeScope-&gt;ancestorInThisScope(currentPosition.containerNode()) will never return currentPosition.containerNode() itself here.

&gt; &gt; Source/WebCore/editing/VisibleSelection.cpp:471
&gt; &gt; +        if (ancestor-&gt;contains(startContainerNode))
&gt; &gt; +            return positionAfterNode(ancestor);
&gt; &gt; +        return positionBeforeNode(ancestor);
&gt; 
&gt; Why do we need to modify position when the ancestor is in the same tree scope? That sounds red-herring.

Let&apos;s think:  &apos;&lt;div id=&quot;host&quot;&gt;A&lt;div&gt;D&apos; and host having a ShadowRoot whose innerHTML is &quot;B&lt;content&gt;&lt;/content&gt;C&quot;.

When selecting from A (including) to B (including), comparePosition() will judge as B is always before to A. So m_start will be B, and m_end will be A.  A and B have the different tree scope, we have to adjust them. However, the current implementation on of adjustSelectionToAvoidCrossingShadowBoundaries() always move B to just after A (positionAfterNode(A)). This breaks the assumption m_start is before m_end. So in that case, we have to adjust A to positionBeforeNode(A).

Node that we cannot always move A to positionBeforeNode(A). When selecting from D (including) to B (including), we don&apos;t want to select A. It&apos;s like if &lt;div id=&quot;host&quot;&gt;&lt;/div&gt; is &lt;input&gt;, we don&apos;t want to select &lt;input&gt;. So in this case we want to adjust B to positionAfterNode(A).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648839</commentid>
    <comment_count>10</comment_count>
      <attachid>147497</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-06-13 23:28:21 -0700</bug_when>
    <thetext>Created attachment 147497
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648853</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-13 23:49:37 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; (From update of attachment 147466 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=147466&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/editing/VisibleSelection.cpp:468
&gt; &gt; &gt; +    if (Node* ancestor = treeScope-&gt;ancestorInThisScope(currentPosition.anchorNode())) {        
&gt; &gt; 
&gt; &gt; What if this position was an offset in the anchor node? Why is it okay to move it before or after the node?
&gt; &gt; 
&gt; 
&gt; Actually currentPosition.anchorNode()-&gt;treeScope() will not be equal to startContainerNode-&gt;treeScope() here.

Could be, but not always.

&gt; &gt; &gt; Source/WebCore/editing/VisibleSelection.cpp:471
&gt; &gt; &gt; +        if (ancestor-&gt;contains(startContainerNode))
&gt; &gt; &gt; +            return positionAfterNode(ancestor);
&gt; &gt; &gt; +        return positionBeforeNode(ancestor);
&gt; &gt; 
&gt; &gt; Why do we need to modify position when the ancestor is in the same tree scope? That sounds red-herring.
&gt; 
&gt; Let&apos;s think:  &apos;&lt;div id=&quot;host&quot;&gt;A&lt;div&gt;D&apos; and host having a ShadowRoot whose innerHTML is &quot;B&lt;content&gt;&lt;/content&gt;C&quot;.
&gt; 
&gt; When selecting from A (including) to B (including), comparePosition() will judge as B is always before to A. So m_start will be B, and m_end will be A.

You can&apos;t say m_start is B. You can&apos;t talk about a position being at some node. A position is a point in the DOM tree consisting of anchor type, anchor, and offset.

There are 5 anchor types, and anchor and offset mean different things in each type:
PositionIsOffsetInAnchor - (anchor, offset) specifies the point in DOM. (div, 2) for example means that the position is before the 3rd children of the div (i.e. there are 2 children before this position).
PositionIsBeforeAnchor - The position is before the anchor; offset is ignored. i.e. if we have &lt;div&gt;&lt;em&gt;a&lt;/em&gt;b&lt;/div&gt; and the anchor is at &quot;b&quot;, then the position is after the em element and before &quot;b&quot;. This is the same position as (PositionIsOffsetInAnchor, div, 1)
PositionIsAfterAnchor - The position is after the anchor. With the same example, the position is after &quot;b&quot; and is identical to (PositionIsOffsetInAnchor, div, 2)
PositionIsBeforeChildren - The position is the first point in the anchor. If the anchor is at the em element above, then the position is before &quot;a&quot; is identical to (PositionIsOffsetInAnchor, em, 0)
PositionIsAfterChildren - The position is the last point in the anchor. If the anchor is at the em element above, then the position is after &quot;a&quot; is identical to (PositionIsOffsetInAnchor, em, 1)

&gt; A and B have the different tree scope, we have to adjust them. However, the current implementation on of adjustSelectionToAvoidCrossingShadowBoundaries() always move B to just after A (positionAfterNode(A)). This breaks the assumption m_start is before m_end. So in that case, we have to adjust A to positionBeforeNode(A).
&gt; 
&gt; Node that we cannot always move A to positionBeforeNode(A). When selecting from D (including) to B (including), we don&apos;t want to select A. It&apos;s like if &lt;div id=&quot;host&quot;&gt;&lt;/div&gt; is &lt;input&gt;, we don&apos;t want to select &lt;input&gt;. So in this case we want to adjust B to positionAfterNode(A).

Because of this, what you&apos;re talking here is ambiguous. For example, the position immediately before the letter &quot;B&quot; can be expressed as (PositionIsOffsetInAnchor, shadow root, 0), (PositionIsBeforeChildren, shadow root), (PositionIsBeforeAnchor, &quot;B&quot;, 0), or (PositionIsOffsetInAnchor, &quot;B&quot;, 0).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648854</commentid>
    <comment_count>12</comment_count>
      <attachid>147497</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-06-13 23:50:08 -0700</bug_when>
    <thetext>Comment on attachment 147497
Patch

Oops, I&apos;ve uploaded a wrong patch...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648857</commentid>
    <comment_count>13</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-13 23:55:50 -0700</bug_when>
    <thetext>&gt; the current implementation on of adjustSelectionToAvoidCrossingShadowBoundaries() always move B to just after A (positionAfterNode(A)).

Here, for example, we need to first identify which of 6 possible positions we&apos;re talking about offset 0, offset 1, before, after positions anchored at the text node &quot;B&quot; and beforechildren, offset 0 positions anchored at the shadow root.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648866</commentid>
    <comment_count>14</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-06-14 00:02:33 -0700</bug_when>
    <thetext>&gt; &gt; Actually currentPosition.anchorNode()-&gt;treeScope() will not be equal to startContainerNode-&gt;treeScope() here.
&gt; 
&gt; Could be, but not always.

Since adjustPositionForEnd and adjustPositionForStart are used in adjustSelectionToAvoidCrossingShadowBoundaries() and it checks the the equality of treeScopes of m_start-&gt;anchorNode() and m_end-&gt;anchorNode()... if Position is valid, what kind of pattern makes them different?

&gt; Because of this, what you&apos;re talking here is ambiguous. For example, the position immediately before the letter &quot;B&quot; can be expressed as (PositionIsOffsetInAnchor, shadow root, 0), (PositionIsBeforeChildren, shadow root), (PositionIsBeforeAnchor, &quot;B&quot;, 0), or (PositionIsOffsetInAnchor, &quot;B&quot;, 0).

OK. Let me try to make this strict... (in another reply)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648869</commentid>
    <comment_count>15</comment_count>
      <attachid>147497</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-06-14 00:05:55 -0700</bug_when>
    <thetext>Comment on attachment 147497
Patch

Attachment 147497 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12958134</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648871</commentid>
    <comment_count>16</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-06-14 00:08:46 -0700</bug_when>
    <thetext>Let&apos;s think:  &apos;&lt;div id=&quot;host&quot;&gt;A&lt;div&gt;D&apos; and host having a ShadowRoot whose innerHTML is &quot;B&lt;content&gt;&lt;/content&gt;C&quot;.

When selecting from p1 (PositionIsOffsetAnchor, div, 1) to p2 (PositionIsOffsetInAnchor, shadowRoot, 0), comparePosition() will judge as p2 is always before to p1. So m_start will be p2, and m_end will be p1. The anchor nodes of p1 and p2 have the different tree scope, we have to adjust them. However, the current implementation on of adjustSelectionToAvoidCrossingShadowBoundaries() always move p2 to just after A (positionAfterNode(div), i.e. (PositionIsAfterAnchor, div)). This breaks the assumption m_start is before m_end. So in that case, we have to adjust A to positionBeforeNode(div) i.e. (PositionIsBeforeAnchor, div).

Node that we cannot always move p1 to positionBeforeNode(div). When selecting from p3 (PositionIsOffsetAnchor, D&apos;s parent, 2),  to p2, we don&apos;t want to select A. It&apos;s like if &lt;div id=&quot;host&quot;&gt;&lt;/div&gt; is &lt;input&gt;, we don&apos;t want to select &lt;input&gt;. So in this case we want to adjust p2 to positionAfterNode(div).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648873</commentid>
    <comment_count>17</comment_count>
      <attachid>147502</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-06-14 00:15:46 -0700</bug_when>
    <thetext>Created attachment 147502
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648949</commentid>
    <comment_count>18</comment_count>
      <attachid>147502</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-14 01:46:57 -0700</bug_when>
    <thetext>Comment on attachment 147502
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        For example, let&apos;s think &apos;&lt;div id=&quot;host&quot;&gt;A&lt;/div&gt;D&apos; and host has a Shadow DOM whose innerHTML is

Nit: s/let&apos;s think/consider/

&gt; Source/WebCore/ChangeLog:13
&gt; +        &apos;B&lt;content&gt;&lt;/content&gt;C&apos;. When selecting from just after A (p1 = (PositionIsOffsetInAnchor, div, 1)) to
&gt; +        B (p2 = (PositionIsOffsetInAnchor, shadowRoot, 0)), since comparePosition always judge as p2 is

How does (PositionIsOffsetInAnchor, div, 1) make sense? When we have a shadow DOM on #host, #host should be treated as an atomic node.
Selection should never be inside #host. Or is this a legacy editing offset?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648962</commentid>
    <comment_count>19</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-06-14 01:58:05 -0700</bug_when>
    <thetext>&gt; &gt; Source/WebCore/ChangeLog:13
&gt; &gt; +        &apos;B&lt;content&gt;&lt;/content&gt;C&apos;. When selecting from just after A (p1 = (PositionIsOffsetInAnchor, div, 1)) to
&gt; &gt; +        B (p2 = (PositionIsOffsetInAnchor, shadowRoot, 0)), since comparePosition always judge as p2 is
&gt; 
&gt; How does (PositionIsOffsetInAnchor, div, 1) make sense? When we have a shadow DOM on #host, #host should be treated as an atomic node.
&gt; Selection should never be inside #host. Or is this a legacy editing offset?

Yeah, Selection should never be inside #host. But before adjusting, selection could be inside the host.
So I wrote as (PositionIsOffsetInAnchor, div, 1). It&apos;s a position before calling adjustSelectionToAvoidCrossingShadowBoundaries().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648999</commentid>
    <comment_count>20</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-14 02:43:15 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; Yeah, Selection should never be inside #host. But before adjusting, selection could be inside the host.
&gt; So I wrote as (PositionIsOffsetInAnchor, div, 1). It&apos;s a position before calling adjustSelectionToAvoidCrossingShadowBoundaries().

Even before adjusting it, we should never have that position. Isn&apos;t it a legacy editing position? (i.e. m_isLegacyEditingPosition is true). If not, we need to figure out where this position is created and fix there as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649846</commentid>
    <comment_count>21</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-06-14 21:45:32 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; (In reply to comment #19)
&gt; &gt; Yeah, Selection should never be inside #host. But before adjusting, selection could be inside the host.
&gt; &gt; So I wrote as (PositionIsOffsetInAnchor, div, 1). It&apos;s a position before calling adjustSelectionToAvoidCrossingShadowBoundaries().
&gt; 
&gt; Even before adjusting it, we should never have that position. Isn&apos;t it a legacy editing position? (i.e. m_isLegacyEditingPosition is true). If not, we need to figure out where this position is created and fix there as well.

Sorry for late response. Yes. It&apos;s a legacy editing position. (m_isLegacyEditingPosition is true)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649850</commentid>
    <comment_count>22</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-14 21:47:52 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; Sorry for late response. Yes. It&apos;s a legacy editing position. (m_isLegacyEditingPosition is true)

Okay, that makes sense. In that case, (host, 0) and (host, 1) should be treated like before and after the host.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649854</commentid>
    <comment_count>23</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-06-14 21:59:25 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; (In reply to comment #21)
&gt; &gt; Sorry for late response. Yes. It&apos;s a legacy editing position. (m_isLegacyEditingPosition is true)
&gt; 
&gt; Okay, that makes sense. In that case, (host, 0) and (host, 1) should be treated like before and after the host.

Really...?
OK. I apologize I used a reduced example. Let me try to explain using the real example.

# Before that I upload a new Patch...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649856</commentid>
    <comment_count>24</comment_count>
      <attachid>147726</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-06-14 21:59:47 -0700</bug_when>
    <thetext>Created attachment 147726
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649859</commentid>
    <comment_count>25</comment_count>
      <attachid>147727</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-06-14 22:00:22 -0700</bug_when>
    <thetext>Created attachment 147727
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649865</commentid>
    <comment_count>26</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-14 22:07:34 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; (In reply to comment #22)
&gt; &gt; (In reply to comment #21)
&gt; &gt; &gt; Sorry for late response. Yes. It&apos;s a legacy editing position. (m_isLegacyEditingPosition is true)
&gt; &gt; 
&gt; &gt; Okay, that makes sense. In that case, (host, 0) and (host, 1) should be treated like before and after the host.
&gt; 
&gt; Really...?

Yes. See https://rniwa.com/2011-06-26/position-and-anchor-types/  In legacy editing positions, when the anchor node is &quot;atomic&quot;, offset 0 and offset 1 mean before and after the anchor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649867</commentid>
    <comment_count>27</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-06-14 22:09:33 -0700</bug_when>
    <thetext>In the testcase, after performing eventSender.mouseMoveTo(nestedShadowHost.offsetLeft + 10, nestedShadowHost.offsetTop + nestedShadowHost.offsetHeight / 2),
VisibleSelection::adjustSelectionToAvoidCrossingShadowBoundaries() will be executed a few times.
In one of them, &quot;if (m_baseIsFirst) { ... } &quot; is executed.

In this moment,

m_baseIsFirst = false

m_start = {
    m_anchorNode = ...snip.../SPAN[@id=&quot;shadow-host&quot;]/#shadow-root[0]/SPAN/text()
    m_offset = 1,
    m_anchorType = 0,
    m_isLegacyEditingPosition = true
}

m_end = {
    m_anchorNode = ...snip.../SPAN[@id=&quot;host&quot; and position() = 0]/text()
    m_offset = 13,
    m_anchorType = 0,
    m_isLegacyEditingPosition = true
}


This does not seem that we should treat such positons as before the host or after the host.

I&apos;m sorry for my explanation ambiguity...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649870</commentid>
    <comment_count>28</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-06-14 22:10:55 -0700</bug_when>
    <thetext>I&apos;m very sorry that my previous explanation was not correct or strict.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650018</commentid>
    <comment_count>29</comment_count>
      <attachid>147727</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-15 01:53:37 -0700</bug_when>
    <thetext>Comment on attachment 147727
Patch

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

&gt; LayoutTests/editing/shadow/breaking-editing-boundaries.html:12
&gt; +    BEFORE&lt;span id=&quot;host&quot; contenteditable=&quot;false&quot;&gt;DRAG FROM HERE&lt;span id=&quot;target&quot;&gt; &lt;/span&gt;FOO BAR&lt;/span&gt;

Nit: ALL CAPS DON&apos;T READ WELL. Please use normal capitalization.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651591</commentid>
    <comment_count>30</comment_count>
      <attachid>148141</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-06-18 11:46:14 -0700</bug_when>
    <thetext>Created attachment 148141
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651749</commentid>
    <comment_count>31</comment_count>
      <attachid>148141</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-18 14:40:35 -0700</bug_when>
    <thetext>Comment on attachment 148141
Patch for landing

Rejecting attachment 148141 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 1

ERROR: /mnt/git/webkit-commit-queue/LayoutTests/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://queues.webkit.org/results/12970785</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651782</commentid>
    <comment_count>32</comment_count>
      <attachid>148184</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-06-18 15:12:54 -0700</bug_when>
    <thetext>Created attachment 148184
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652007</commentid>
    <comment_count>33</comment_count>
      <attachid>148184</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-18 21:03:05 -0700</bug_when>
    <thetext>Comment on attachment 148184
Patch for landing

Clearing flags on attachment: 148184

Committed r120666: &lt;http://trac.webkit.org/changeset/120666&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652008</commentid>
    <comment_count>34</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-18 21:03:12 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146263</attachid>
            <date>2012-06-07 05:42:16 -0700</date>
            <delta_ts>2012-06-10 21:20:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88500-20120607214215.patch</filename>
            <type>text/plain</type>
            <size>8023</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5Njk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWJhYzlkMTM0ZWIxOGJi
MGE1ODAzODg2M2VkNjExNGM4YzE1NzgzOS4uYThiMGMxMGVlOTA5ZTNlZjdkZWY1MGFlMzYzNDk4
OTI3MjUyNTk0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTA2LTA3ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ3Jhc2hdW0Vk
aXRpbmddIFZpc2libGVTZWxlY3Rpb246OmFkanVzdFNlbGVjdGlvblRvQXZvaWRDcm9zc2luZ0Vk
aXRpbmdCb3VuZGFyaWVzKCkgY3Jhc2hlcyBpbiBzb21lIFNoYWRvdyBET00gY2FzZS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4NTAwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTGV0IE4gYmUgYSBub2Rl
IGhhdmluZyBhIFNoYWRvdyBET00uIFdoZW4gc2VsZWN0aW9uIHN0YXJ0cyBmcm9tIGluc2lkZSBv
ZiBTaGFkb3cgRE9NCisgICAgICAgIHRvIGJlZm9yZSBub2RlIE4sIG1fc3RhcnQgY29tZXMgYWZ0
ZXIgbV9lbmQuIEluIGFkanVzdFNlbGVjdGlvblRvQXZvaWRDcm9zc2luZ1NoYWRvd0JvdW5kYXJp
ZXMoKSwKKyAgICAgICAgd2Ugc2hvdWxkIGhhdmUgY2hlY2tlZCBpdC4KKworICAgICAgICBUZXN0
OiBlZGl0aW5nL3NoYWRvdy9icmVha2luZy1lZGl0aW5nLWJvdW5kYXJpZXMuaHRtbAorCisgICAg
ICAgICogZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFk
anVzdFBvc2l0aW9uRm9yRW5kKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6YWRqdXN0UG9zaXRpb25Gb3JTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpWaXNpYmxlU2Vs
ZWN0aW9uOjphZGp1c3RTZWxlY3Rpb25Ub0F2b2lkQ3Jvc3NpbmdTaGFkb3dCb3VuZGFyaWVzKToK
KyAgICAgICAgKiBlZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uaDoKKyAgICAgICAgKFZpc2libGVT
ZWxlY3Rpb24pOgorCiAyMDEyLTA2LTA3ICBBbWkgRmlzY2htYW4gIDxmaXNjaG1hbkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUGx1bWIgQ09SUyBhdHRyaWJ1dGUgaW5mb3JtYXRpb24gZnJvbSBI
VE1MTWVkaWFFbGVtZW50IHRvIG1lZGlhIHBsYXllcnMgc28gaXQgY2FuIGJlIHVzZWQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCmluZGV4IDI5NzE0OThmM2Fk
Y2I4Mjg4NzAwNzg4MzJkZWYwOGYyYTgzNmYwZDkuLmM5MjYxNTVlZWU0M2MxNjRiZTc4NjUyMWVk
OTlhODA3ODE2OWVhYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJs
ZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0
aW9uLmNwcApAQCAtNDEwLDI4ICs0MTAsNiBAQCB2b2lkIFZpc2libGVTZWxlY3Rpb246OnVwZGF0
ZVNlbGVjdGlvblR5cGUoKQogICAgICAgICBtX2FmZmluaXR5ID0gRE9XTlNUUkVBTTsKIH0KIAot
UG9zaXRpb24gVmlzaWJsZVNlbGVjdGlvbjo6YWRqdXN0UG9zaXRpb25CZWZvcmUoVHJlZVNjb3Bl
KiB0cmVlU2NvcGUsIGNvbnN0IFBvc2l0aW9uJiBjdXJyZW50UG9zaXRpb24pCi17Ci0gICAgaWYg
KE5vZGUqIGFuY2VzdG9yID0gdHJlZVNjb3BlLT5hbmNlc3RvckluVGhpc1Njb3BlKGN1cnJlbnRQ
b3NpdGlvbi5hbmNob3JOb2RlKCkpKQotICAgICAgICByZXR1cm4gcG9zaXRpb25CZWZvcmVOb2Rl
KGFuY2VzdG9yKTsKLQotICAgIGlmIChOb2RlKiBsYXN0Q2hpbGQgPSB0cmVlU2NvcGUtPnJvb3RO
b2RlKCktPmxhc3RDaGlsZCgpKQotICAgICAgICByZXR1cm4gcG9zaXRpb25BZnRlck5vZGUobGFz
dENoaWxkKTsKLQotICAgIHJldHVybiBQb3NpdGlvbigpOwotfQotCi1Qb3NpdGlvbiBWaXNpYmxl
U2VsZWN0aW9uOjphZGp1c3RQb3NpdGlvbkFmdGVyKFRyZWVTY29wZSogdHJlZVNjb3BlLCBjb25z
dCBQb3NpdGlvbiYgY3VycmVudFBvc2l0aW9uKQotewotICAgIGlmIChOb2RlKiBhbmNlc3RvciA9
IHRyZWVTY29wZS0+YW5jZXN0b3JJblRoaXNTY29wZShjdXJyZW50UG9zaXRpb24uYW5jaG9yTm9k
ZSgpKSkKLSAgICAgICAgcmV0dXJuIHBvc2l0aW9uQWZ0ZXJOb2RlKGFuY2VzdG9yKTsKLQotICAg
IGlmIChOb2RlKiBmaXJzdENoaWxkID0gdHJlZVNjb3BlLT5yb290Tm9kZSgpLT5maXJzdENoaWxk
KCkpCi0gICAgICAgIHJldHVybiBwb3NpdGlvbkJlZm9yZU5vZGUoZmlyc3RDaGlsZCk7Ci0KLSAg
ICByZXR1cm4gUG9zaXRpb24oKTsKLX0KLQogdm9pZCBWaXNpYmxlU2VsZWN0aW9uOjp2YWxpZGF0
ZShUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgc2V0QmFzZUFuZEV4dGVudFRv
RGVlcEVxdWl2YWxlbnRzKCk7CkBAIC00NzgsNiArNDU2LDM0IEBAIHZvaWQgVmlzaWJsZVNlbGVj
dGlvbjo6c2V0V2l0aG91dFZhbGlkYXRpb24oY29uc3QgUG9zaXRpb24mIGJhc2UsIGNvbnN0IFBv
c2l0aW9uCiAgICAgbV9zZWxlY3Rpb25UeXBlID0gYmFzZSA9PSBleHRlbnQgPyBDYXJldFNlbGVj
dGlvbiA6IFJhbmdlU2VsZWN0aW9uOwogfQogCitzdGF0aWMgUG9zaXRpb24gYWRqdXN0UG9zaXRp
b25Gb3JFbmQoVHJlZVNjb3BlKiB0cmVlU2NvcGUsIGNvbnN0IFBvc2l0aW9uJiBjdXJyZW50UG9z
aXRpb24sIE5vZGUqIHN0YXJ0Q29udGFpbmVyTm9kZSkKK3sKKyAgICBpZiAoTm9kZSogYW5jZXN0
b3IgPSB0cmVlU2NvcGUtPmFuY2VzdG9ySW5UaGlzU2NvcGUoY3VycmVudFBvc2l0aW9uLmFuY2hv
ck5vZGUoKSkpIHsgICAgICAgIAorICAgICAgICBpZiAoYW5jZXN0b3ItPmNvbnRhaW5zKHN0YXJ0
Q29udGFpbmVyTm9kZSkpCisgICAgICAgICAgICByZXR1cm4gcG9zaXRpb25BZnRlck5vZGUoYW5j
ZXN0b3IpOworICAgICAgICByZXR1cm4gcG9zaXRpb25CZWZvcmVOb2RlKGFuY2VzdG9yKTsKKyAg
ICB9CisKKyAgICBpZiAoTm9kZSogbGFzdENoaWxkID0gdHJlZVNjb3BlLT5yb290Tm9kZSgpLT5s
YXN0Q2hpbGQoKSkKKyAgICAgICAgcmV0dXJuIHBvc2l0aW9uQWZ0ZXJOb2RlKGxhc3RDaGlsZCk7
CisKKyAgICByZXR1cm4gUG9zaXRpb24oKTsKK30KKworc3RhdGljIFBvc2l0aW9uIGFkanVzdFBv
c2l0aW9uRm9yU3RhcnQoVHJlZVNjb3BlKiB0cmVlU2NvcGUsIGNvbnN0IFBvc2l0aW9uJiBjdXJy
ZW50UG9zaXRpb24sIE5vZGUqIGVuZENvbnRhaW5lck5vZGUpCit7CisgICAgaWYgKE5vZGUqIGFu
Y2VzdG9yID0gdHJlZVNjb3BlLT5hbmNlc3RvckluVGhpc1Njb3BlKGN1cnJlbnRQb3NpdGlvbi5h
bmNob3JOb2RlKCkpKSB7CisgICAgICAgIGlmIChhbmNlc3Rvci0+Y29udGFpbnMoZW5kQ29udGFp
bmVyTm9kZSkpCisgICAgICAgICAgICByZXR1cm4gcG9zaXRpb25CZWZvcmVOb2RlKGFuY2VzdG9y
KTsKKyAgICAgICAgcmV0dXJuIHBvc2l0aW9uQWZ0ZXJOb2RlKGFuY2VzdG9yKTsKKyAgICB9CisK
KyAgICBpZiAoTm9kZSogZmlyc3RDaGlsZCA9IHRyZWVTY29wZS0+cm9vdE5vZGUoKS0+Zmlyc3RD
aGlsZCgpKQorICAgICAgICByZXR1cm4gcG9zaXRpb25CZWZvcmVOb2RlKGZpcnN0Q2hpbGQpOwor
CisgICAgcmV0dXJuIFBvc2l0aW9uKCk7Cit9CisKIHZvaWQgVmlzaWJsZVNlbGVjdGlvbjo6YWRq
dXN0U2VsZWN0aW9uVG9Bdm9pZENyb3NzaW5nU2hhZG93Qm91bmRhcmllcygpCiB7CiAgICAgaWYg
KG1fYmFzZS5pc051bGwoKSB8fCBtX3N0YXJ0LmlzTnVsbCgpIHx8IG1fZW5kLmlzTnVsbCgpKQpA
QCAtNDg3LDEwICs0OTMsMTAgQEAgdm9pZCBWaXNpYmxlU2VsZWN0aW9uOjphZGp1c3RTZWxlY3Rp
b25Ub0F2b2lkQ3Jvc3NpbmdTaGFkb3dCb3VuZGFyaWVzKCkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgaWYgKG1fYmFzZUlzRmlyc3QpIHsKLSAgICAgICAgbV9leHRlbnQgPSBhZGp1c3RQb3NpdGlv
bkJlZm9yZShtX3N0YXJ0LmFuY2hvck5vZGUoKS0+dHJlZVNjb3BlKCksIG1fZW5kKTsKKyAgICAg
ICAgbV9leHRlbnQgPSBhZGp1c3RQb3NpdGlvbkZvckVuZChtX3N0YXJ0LmFuY2hvck5vZGUoKS0+
dHJlZVNjb3BlKCksIG1fZW5kLCBtX3N0YXJ0LmNvbnRhaW5lck5vZGUoKSk7CiAgICAgICAgIG1f
ZW5kID0gbV9leHRlbnQ7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgbV9leHRlbnQgPSBhZGp1c3RQ
b3NpdGlvbkFmdGVyKG1fZW5kLmFuY2hvck5vZGUoKS0+dHJlZVNjb3BlKCksIG1fc3RhcnQpOwor
ICAgICAgICBtX2V4dGVudCA9IGFkanVzdFBvc2l0aW9uRm9yU3RhcnQobV9lbmQuYW5jaG9yTm9k
ZSgpLT50cmVlU2NvcGUoKSwgbV9zdGFydCwgbV9lbmQuY29udGFpbmVyTm9kZSgpKTsKICAgICAg
ICAgbV9zdGFydCA9IG1fZXh0ZW50OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zp
c2libGVTZWxlY3Rpb24uaAppbmRleCAyMTk5OWJiM2NhZDRjMzQ1YTE5YWVjMzRkNjdlOWU1NGNi
YmM2ZDIxLi44YzgxMGRhNGRkMTk3ZTMxY2Y2YTVmNmY4YjhiODgyNjI5N2JiN2VmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uaApAQCAtMTIyLDkgKzEyMiw2IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBhZGp1c3RTZWxlY3Rpb25Ub0F2b2lkQ3Jvc3NpbmdFZGl0aW5n
Qm91bmRhcmllcygpOwogICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uVHlwZSgpOwogCi0gICAgUG9z
aXRpb24gYWRqdXN0UG9zaXRpb25CZWZvcmUoVHJlZVNjb3BlKiwgY29uc3QgUG9zaXRpb24mKTsK
LSAgICBQb3NpdGlvbiBhZGp1c3RQb3NpdGlvbkFmdGVyKFRyZWVTY29wZSosIGNvbnN0IFBvc2l0
aW9uJik7Ci0KICAgICAvLyBXZSBuZWVkIHRvIHN0b3JlIHRoZXNlIGFzIFBvc2l0aW9ucyBiZWNh
dXNlIFZpc2libGVTZWxlY3Rpb24gaXMKICAgICAvLyB1c2VkIHRvIHN0b3JlIHZhbHVlcyBpbiBl
ZGl0aW5nIGNvbW1hbmRzIGZvciB1c2Ugd2hlbgogICAgIC8vIHVuZG9pbmcgdGhlIGNvbW1hbmQu
IFdlIG5lZWQgdG8gYmUgYWJsZSB0byBjcmVhdGUgYSBzZWxlY3Rpb24gdGhhdCwgd2hpbGUgY3Vy
cmVudGx5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggYmNjNmM1ZjE1OTY3MzZkZTU1ZGY4MTZhMjJmMTMxM2ZjMTZjZmZjNS4u
NzdkMzZiYTc1ZTRiY2U1NGUwZjlhN2QxYzk1NGRjOWQ2N2E3YmI3YyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDEyLTA2LTA3ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBbQ3Jhc2hdW0VkaXRpbmddIFZpc2libGVTZWxlY3Rpb246OmFkanVzdFNl
bGVjdGlvblRvQXZvaWRDcm9zc2luZ0VkaXRpbmdCb3VuZGFyaWVzKCkgY3Jhc2hlcyBpbiBzb21l
IFNoYWRvdyBET00gY2FzZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg4NTAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBlZGl0aW5nL3NoYWRvdy9icmVha2luZy1lZGl0aW5nLWJvdW5kYXJpZXMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3NoYWRvdy9icmVha2luZy1lZGl0
aW5nLWJvdW5kYXJpZXMuaHRtbDogQWRkZWQuCisKIDIwMTItMDYtMDcgIEhpcm9ub3JpIEJvbm8g
IDxoYm9ub0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVXNlIGxpZ2h0IGdyYXkgZm9yIGdyYW1t
YXIgbWFya2VycyBvbiBXaW5kb3dzIGFuZCBMaW51eApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZWRpdGluZy9zaGFkb3cvYnJlYWtpbmctZWRpdGluZy1ib3VuZGFyaWVzLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2JyZWFraW5nLWVkaXRpbmctYm91bmRhcmllcy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjBkZTY0ZmNkMDZkMmVlY2Y3Njc1YmIzNjA4MTJkNzdj
MzM1NzU0MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2Jy
ZWFraW5nLWVkaXRpbmctYm91bmRhcmllcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitC
RUZPUkUKK0RSQUcgRlJPTSBIRVJFCitQQVNTCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9z
aGFkb3cvYnJlYWtpbmctZWRpdGluZy1ib3VuZGFyaWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL3NoYWRvdy9icmVha2luZy1lZGl0aW5nLWJvdW5kYXJpZXMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5m
ZTM0YTYzM2Q3OWUyYjg3N2QyMmE5ZjUzOGYzZjBlODdlZWM4MTUwCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvYnJlYWtpbmctZWRpdGluZy1ib3VuZGFyaWVz
Lmh0bWwKQEAgLTAsMCArMSwzMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5Pgor
PHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvcG9seWZpbGwuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvZG9tL3Jlc291cmNlcy9ldmVudC1z
ZW5kZXItdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorCis8ZGl2IGNvbnRlbnRlZGl0YWJsZT4K
KyAgICBCRUZPUkU8ZGl2IGlkPSJob3N0IiBjb250ZW50ZWRpdGFibGU9ImZhbHNlIj5EUkFHIEZS
T008c3BhbiBpZD0idGFyZ2V0Ij4gPC9zcGFuPkhFUkU8L2Rpdj4gICAgCis8L2Rpdj4KKzxwcmUg
aWQ9ImNvbnNvbGUiPjwvcHJlPgorCis8c2NyaXB0PgordmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2Vi
S2l0U2hhZG93Um9vdChob3N0KTsKK3NoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxkaXYgaWQ9J3No
YWRvdy1ob3N0Jz5CRUZPUkUgU0hBRE9XPHNoYWRvdyBpZD0nc2hhZG93Jz48L3NoYWRvdz5BRlRF
UiBTSEFET1c8L2Rpdj4iCisKK3ZhciBuZXN0ZWRTaGFkb3dIb3N0ID0gc2hhZG93Um9vdC5nZXRF
bGVtZW50QnlJZCgnc2hhZG93LWhvc3QnKTsKK3ZhciBuZXN0ZWRTaGFkb3dSb290ID0gbmV3IFdl
YktpdFNoYWRvd1Jvb3QobmVzdGVkU2hhZG93SG9zdCk7CituZXN0ZWRTaGFkb3dSb290LmlubmVy
SFRNTCA9ICI8ZGl2IGNvbnRlbnRlZGl0YWJsZT5CRUZPUkUgTkVTVEVEPHNoYWRvdz48L3NoYWRv
dz5BRlRFUiBORVNURUQ8L2Rpdj4iCisKKy8vIFRoaXMgc2hvdWxkIG5vdCBjYXVzZSBhIGNyYXNo
LgorZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8odGFyZ2V0Lm9mZnNldExlZnQgLSAxMCwgdGFyZ2V0
Lm9mZnNldFRvcCArIHRhcmdldC5vZmZzZXRIZWlnaHQgLyAyKTsKK2V2ZW50U2VuZGVyLm1vdXNl
RG93bigpOworbW91c2VNb3ZlVG9FbGVtKG5lc3RlZFNoYWRvd0hvc3QpOworZXZlbnRTZW5kZXIu
bW91c2VVcCgpOworZGVidWcoJ1BBU1MnKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146775</attachid>
            <date>2012-06-10 21:20:38 -0700</date>
            <delta_ts>2012-06-13 18:57:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88500-20120611132037.patch</filename>
            <type>text/plain</type>
            <size>7993</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5OTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmU5MWY2ZTUyY2ZlMGUw
ZWQ2OTMyMjM4NWRkMzdhMWVhYjRkNzgzMC4uZWMyNTM0M2E2OWQwMGE2NzA3OWFhNDRjMjc4OGQw
ODc4MmI0MDFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTA2LTA3ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ3Jhc2hdW0Vk
aXRpbmddIFZpc2libGVTZWxlY3Rpb246OmFkanVzdFNlbGVjdGlvblRvQXZvaWRDcm9zc2luZ0Vk
aXRpbmdCb3VuZGFyaWVzKCkgY3Jhc2hlcyBpbiBzb21lIFNoYWRvdyBET00gY2FzZS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4NTAwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTGV0IE4gYmUgYSBub2Rl
IGhhdmluZyBhIFNoYWRvdyBET00uIFdoZW4gc2VsZWN0aW9uIHN0YXJ0cyBmcm9tIGluc2lkZSBv
ZiBTaGFkb3cgRE9NCisgICAgICAgIHRvIGJlZm9yZSBub2RlIE4sIG1fc3RhcnQgY29tZXMgYWZ0
ZXIgbV9lbmQuIEluIGFkanVzdFNlbGVjdGlvblRvQXZvaWRDcm9zc2luZ1NoYWRvd0JvdW5kYXJp
ZXMoKSwKKyAgICAgICAgd2Ugc2hvdWxkIGhhdmUgY2hlY2tlZCBpdC4KKworICAgICAgICBUZXN0
OiBlZGl0aW5nL3NoYWRvdy9icmVha2luZy1lZGl0aW5nLWJvdW5kYXJpZXMuaHRtbAorCisgICAg
ICAgICogZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFk
anVzdFBvc2l0aW9uRm9yRW5kKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6YWRqdXN0UG9zaXRpb25Gb3JTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpWaXNpYmxlU2Vs
ZWN0aW9uOjphZGp1c3RTZWxlY3Rpb25Ub0F2b2lkQ3Jvc3NpbmdTaGFkb3dCb3VuZGFyaWVzKToK
KyAgICAgICAgKiBlZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uaDoKKyAgICAgICAgKFZpc2libGVT
ZWxlY3Rpb24pOgorCiAyMDEyLTA2LTEwICBZb3NoaWZ1bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgW0Zvcm1zXSBJbnRyb2R1Y2UgRGVjaW1hbCBiZWhpbmQgdGhlIElu
cHV0TnVtYmVyIHR5cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJs
ZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24u
Y3BwCmluZGV4IDExYjkwMTU0MTJmMTFmODY4MGUwMzViYzk3Nzg2N2NjYWQyOGQ5MDIuLjhkMDEy
M2RiOTJjM2JjMTYyNzcwMzc0NDNkZTk3NjYxZjQyNmIwZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcApAQCAtNDEwLDI4ICs0MTAsNiBAQCB2b2lkIFZp
c2libGVTZWxlY3Rpb246OnVwZGF0ZVNlbGVjdGlvblR5cGUoKQogICAgICAgICBtX2FmZmluaXR5
ID0gRE9XTlNUUkVBTTsKIH0KIAotUG9zaXRpb24gVmlzaWJsZVNlbGVjdGlvbjo6YWRqdXN0UG9z
aXRpb25CZWZvcmUoVHJlZVNjb3BlKiB0cmVlU2NvcGUsIGNvbnN0IFBvc2l0aW9uJiBjdXJyZW50
UG9zaXRpb24pCi17Ci0gICAgaWYgKE5vZGUqIGFuY2VzdG9yID0gdHJlZVNjb3BlLT5hbmNlc3Rv
ckluVGhpc1Njb3BlKGN1cnJlbnRQb3NpdGlvbi5hbmNob3JOb2RlKCkpKQotICAgICAgICByZXR1
cm4gcG9zaXRpb25CZWZvcmVOb2RlKGFuY2VzdG9yKTsKLQotICAgIGlmIChOb2RlKiBsYXN0Q2hp
bGQgPSB0cmVlU2NvcGUtPnJvb3ROb2RlKCktPmxhc3RDaGlsZCgpKQotICAgICAgICByZXR1cm4g
cG9zaXRpb25BZnRlck5vZGUobGFzdENoaWxkKTsKLQotICAgIHJldHVybiBQb3NpdGlvbigpOwot
fQotCi1Qb3NpdGlvbiBWaXNpYmxlU2VsZWN0aW9uOjphZGp1c3RQb3NpdGlvbkFmdGVyKFRyZWVT
Y29wZSogdHJlZVNjb3BlLCBjb25zdCBQb3NpdGlvbiYgY3VycmVudFBvc2l0aW9uKQotewotICAg
IGlmIChOb2RlKiBhbmNlc3RvciA9IHRyZWVTY29wZS0+YW5jZXN0b3JJblRoaXNTY29wZShjdXJy
ZW50UG9zaXRpb24uYW5jaG9yTm9kZSgpKSkKLSAgICAgICAgcmV0dXJuIHBvc2l0aW9uQWZ0ZXJO
b2RlKGFuY2VzdG9yKTsKLQotICAgIGlmIChOb2RlKiBmaXJzdENoaWxkID0gdHJlZVNjb3BlLT5y
b290Tm9kZSgpLT5maXJzdENoaWxkKCkpCi0gICAgICAgIHJldHVybiBwb3NpdGlvbkJlZm9yZU5v
ZGUoZmlyc3RDaGlsZCk7Ci0KLSAgICByZXR1cm4gUG9zaXRpb24oKTsKLX0KLQogdm9pZCBWaXNp
YmxlU2VsZWN0aW9uOjp2YWxpZGF0ZShUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAg
ICAgc2V0QmFzZUFuZEV4dGVudFRvRGVlcEVxdWl2YWxlbnRzKCk7CkBAIC00ODMsNiArNDYxLDM0
IEBAIHZvaWQgVmlzaWJsZVNlbGVjdGlvbjo6c2V0V2l0aG91dFZhbGlkYXRpb24oY29uc3QgUG9z
aXRpb24mIGJhc2UsIGNvbnN0IFBvc2l0aW9uCiAgICAgbV9zZWxlY3Rpb25UeXBlID0gYmFzZSA9
PSBleHRlbnQgPyBDYXJldFNlbGVjdGlvbiA6IFJhbmdlU2VsZWN0aW9uOwogfQogCitzdGF0aWMg
UG9zaXRpb24gYWRqdXN0UG9zaXRpb25Gb3JFbmQoVHJlZVNjb3BlKiB0cmVlU2NvcGUsIGNvbnN0
IFBvc2l0aW9uJiBjdXJyZW50UG9zaXRpb24sIE5vZGUqIHN0YXJ0Q29udGFpbmVyTm9kZSkKK3sK
KyAgICBpZiAoTm9kZSogYW5jZXN0b3IgPSB0cmVlU2NvcGUtPmFuY2VzdG9ySW5UaGlzU2NvcGUo
Y3VycmVudFBvc2l0aW9uLmFuY2hvck5vZGUoKSkpIHsgICAgICAgIAorICAgICAgICBpZiAoYW5j
ZXN0b3ItPmNvbnRhaW5zKHN0YXJ0Q29udGFpbmVyTm9kZSkpCisgICAgICAgICAgICByZXR1cm4g
cG9zaXRpb25BZnRlck5vZGUoYW5jZXN0b3IpOworICAgICAgICByZXR1cm4gcG9zaXRpb25CZWZv
cmVOb2RlKGFuY2VzdG9yKTsKKyAgICB9CisKKyAgICBpZiAoTm9kZSogbGFzdENoaWxkID0gdHJl
ZVNjb3BlLT5yb290Tm9kZSgpLT5sYXN0Q2hpbGQoKSkKKyAgICAgICAgcmV0dXJuIHBvc2l0aW9u
QWZ0ZXJOb2RlKGxhc3RDaGlsZCk7CisKKyAgICByZXR1cm4gUG9zaXRpb24oKTsKK30KKworc3Rh
dGljIFBvc2l0aW9uIGFkanVzdFBvc2l0aW9uRm9yU3RhcnQoVHJlZVNjb3BlKiB0cmVlU2NvcGUs
IGNvbnN0IFBvc2l0aW9uJiBjdXJyZW50UG9zaXRpb24sIE5vZGUqIGVuZENvbnRhaW5lck5vZGUp
Cit7CisgICAgaWYgKE5vZGUqIGFuY2VzdG9yID0gdHJlZVNjb3BlLT5hbmNlc3RvckluVGhpc1Nj
b3BlKGN1cnJlbnRQb3NpdGlvbi5hbmNob3JOb2RlKCkpKSB7CisgICAgICAgIGlmIChhbmNlc3Rv
ci0+Y29udGFpbnMoZW5kQ29udGFpbmVyTm9kZSkpCisgICAgICAgICAgICByZXR1cm4gcG9zaXRp
b25CZWZvcmVOb2RlKGFuY2VzdG9yKTsKKyAgICAgICAgcmV0dXJuIHBvc2l0aW9uQWZ0ZXJOb2Rl
KGFuY2VzdG9yKTsKKyAgICB9CisKKyAgICBpZiAoTm9kZSogZmlyc3RDaGlsZCA9IHRyZWVTY29w
ZS0+cm9vdE5vZGUoKS0+Zmlyc3RDaGlsZCgpKQorICAgICAgICByZXR1cm4gcG9zaXRpb25CZWZv
cmVOb2RlKGZpcnN0Q2hpbGQpOworCisgICAgcmV0dXJuIFBvc2l0aW9uKCk7Cit9CisKIHZvaWQg
VmlzaWJsZVNlbGVjdGlvbjo6YWRqdXN0U2VsZWN0aW9uVG9Bdm9pZENyb3NzaW5nU2hhZG93Qm91
bmRhcmllcygpCiB7CiAgICAgaWYgKG1fYmFzZS5pc051bGwoKSB8fCBtX3N0YXJ0LmlzTnVsbCgp
IHx8IG1fZW5kLmlzTnVsbCgpKQpAQCAtNDkyLDEwICs0OTgsMTAgQEAgdm9pZCBWaXNpYmxlU2Vs
ZWN0aW9uOjphZGp1c3RTZWxlY3Rpb25Ub0F2b2lkQ3Jvc3NpbmdTaGFkb3dCb3VuZGFyaWVzKCkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1fYmFzZUlzRmlyc3QpIHsKLSAgICAgICAgbV9l
eHRlbnQgPSBhZGp1c3RQb3NpdGlvbkJlZm9yZShtX3N0YXJ0LmFuY2hvck5vZGUoKS0+dHJlZVNj
b3BlKCksIG1fZW5kKTsKKyAgICAgICAgbV9leHRlbnQgPSBhZGp1c3RQb3NpdGlvbkZvckVuZCht
X3N0YXJ0LmNvbnRhaW5lck5vZGUoKS0+dHJlZVNjb3BlKCksIG1fZW5kLCBtX3N0YXJ0LmNvbnRh
aW5lck5vZGUoKSk7CiAgICAgICAgIG1fZW5kID0gbV9leHRlbnQ7CiAgICAgfSBlbHNlIHsKLSAg
ICAgICAgbV9leHRlbnQgPSBhZGp1c3RQb3NpdGlvbkFmdGVyKG1fZW5kLmFuY2hvck5vZGUoKS0+
dHJlZVNjb3BlKCksIG1fc3RhcnQpOworICAgICAgICBtX2V4dGVudCA9IGFkanVzdFBvc2l0aW9u
Rm9yU3RhcnQobV9lbmQuY29udGFpbmVyTm9kZSgpLT50cmVlU2NvcGUoKSwgbV9zdGFydCwgbV9l
bmQuY29udGFpbmVyTm9kZSgpKTsKICAgICAgICAgbV9zdGFydCA9IG1fZXh0ZW50OwogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uaAppbmRleCAyMTk5OWJi
M2NhZDRjMzQ1YTE5YWVjMzRkNjdlOWU1NGNiYmM2ZDIxLi44YzgxMGRhNGRkMTk3ZTMxY2Y2YTVm
NmY4YjhiODgyNjI5N2JiN2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zp
c2libGVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxl
Y3Rpb24uaApAQCAtMTIyLDkgKzEyMiw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhZGp1c3RTZWxl
Y3Rpb25Ub0F2b2lkQ3Jvc3NpbmdFZGl0aW5nQm91bmRhcmllcygpOwogICAgIHZvaWQgdXBkYXRl
U2VsZWN0aW9uVHlwZSgpOwogCi0gICAgUG9zaXRpb24gYWRqdXN0UG9zaXRpb25CZWZvcmUoVHJl
ZVNjb3BlKiwgY29uc3QgUG9zaXRpb24mKTsKLSAgICBQb3NpdGlvbiBhZGp1c3RQb3NpdGlvbkFm
dGVyKFRyZWVTY29wZSosIGNvbnN0IFBvc2l0aW9uJik7Ci0KICAgICAvLyBXZSBuZWVkIHRvIHN0
b3JlIHRoZXNlIGFzIFBvc2l0aW9ucyBiZWNhdXNlIFZpc2libGVTZWxlY3Rpb24gaXMKICAgICAv
LyB1c2VkIHRvIHN0b3JlIHZhbHVlcyBpbiBlZGl0aW5nIGNvbW1hbmRzIGZvciB1c2Ugd2hlbgog
ICAgIC8vIHVuZG9pbmcgdGhlIGNvbW1hbmQuIFdlIG5lZWQgdG8gYmUgYWJsZSB0byBjcmVhdGUg
YSBzZWxlY3Rpb24gdGhhdCwgd2hpbGUgY3VycmVudGx5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDhhZGM4MzY5ZTM1N2Y3
NTUxNTUzZjIzZGZhNzU0MjFkZGY1ZGY0ZC4uNTYzYjY5Mzg4ZWUwNWU5NzUwYjMwNjcxNzA3MDk5
NTgxYmM1YmM2NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA2LTA3ICBTaGlueWEgS2F3
YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ3Jhc2hdW0VkaXRpbmdd
IFZpc2libGVTZWxlY3Rpb246OmFkanVzdFNlbGVjdGlvblRvQXZvaWRDcm9zc2luZ0VkaXRpbmdC
b3VuZGFyaWVzKCkgY3Jhc2hlcyBpbiBzb21lIFNoYWRvdyBET00gY2FzZS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4NTAwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBlZGl0aW5nL3NoYWRvdy9icmVh
a2luZy1lZGl0aW5nLWJvdW5kYXJpZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBl
ZGl0aW5nL3NoYWRvdy9icmVha2luZy1lZGl0aW5nLWJvdW5kYXJpZXMuaHRtbDogQWRkZWQuCisK
IDIwMTItMDYtMTAgIFlvc2hpZnVtaSBJbm91ZSAgPHlvc2luQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBbRm9ybXNdIEludHJvZHVjZSBEZWNpbWFsIGJlaGluZCB0aGUgSW5wdXROdW1iZXIgdHlw
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvYnJlYWtpbmctZWRpdGlu
Zy1ib3VuZGFyaWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2Jy
ZWFraW5nLWVkaXRpbmctYm91bmRhcmllcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjBkZTY0
ZmNkMDZkMmVlY2Y3Njc1YmIzNjA4MTJkNzdjMzM1NzU0MAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2JyZWFraW5nLWVkaXRpbmctYm91bmRhcmllcy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitCRUZPUkUKK0RSQUcgRlJPTSBIRVJFCitQQVNTCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvYnJlYWtpbmctZWRpdGluZy1ib3VuZGFy
aWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9icmVha2luZy1lZGl0aW5nLWJv
dW5kYXJpZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZTM0YTYzM2Q3OWUyYjg3N2QyMmE5ZjUzOGYzZjBl
ODdlZWM4MTUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cv
YnJlYWtpbmctZWRpdGluZy1ib3VuZGFyaWVzLmh0bWwKQEAgLTAsMCArMSwzMyBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvZG9tL3No
YWRvdy9yZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvZG9tL3Jlc291cmNlcy9ldmVudC1zZW5kZXItdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorCis8ZGl2IGNvbnRlbnRlZGl0YWJsZT4KKyAgICBCRUZPUkU8ZGl2IGlkPSJob3N0IiBjb250
ZW50ZWRpdGFibGU9ImZhbHNlIj5EUkFHIEZST008c3BhbiBpZD0idGFyZ2V0Ij4gPC9zcGFuPkhF
UkU8L2Rpdj4gICAgCis8L2Rpdj4KKzxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorCis8c2NyaXB0
PgordmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChob3N0KTsKK3NoYWRvd1Jv
b3QuaW5uZXJIVE1MID0gIjxkaXYgaWQ9J3NoYWRvdy1ob3N0Jz5CRUZPUkUgU0hBRE9XPHNoYWRv
dyBpZD0nc2hhZG93Jz48L3NoYWRvdz5BRlRFUiBTSEFET1c8L2Rpdj4iCisKK3ZhciBuZXN0ZWRT
aGFkb3dIb3N0ID0gc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgnc2hhZG93LWhvc3QnKTsKK3Zh
ciBuZXN0ZWRTaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QobmVzdGVkU2hhZG93SG9z
dCk7CituZXN0ZWRTaGFkb3dSb290LmlubmVySFRNTCA9ICI8ZGl2IGNvbnRlbnRlZGl0YWJsZT5C
RUZPUkUgTkVTVEVEPHNoYWRvdz48L3NoYWRvdz5BRlRFUiBORVNURUQ8L2Rpdj4iCisKKy8vIFRo
aXMgc2hvdWxkIG5vdCBjYXVzZSBhIGNyYXNoLgorZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8odGFy
Z2V0Lm9mZnNldExlZnQgLSAxMCwgdGFyZ2V0Lm9mZnNldFRvcCArIHRhcmdldC5vZmZzZXRIZWln
aHQgLyAyKTsKK2V2ZW50U2VuZGVyLm1vdXNlRG93bigpOworbW91c2VNb3ZlVG9FbGVtKG5lc3Rl
ZFNoYWRvd0hvc3QpOworZXZlbnRTZW5kZXIubW91c2VVcCgpOworZGVidWcoJ1BBU1MnKTsKKwor
dmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147466</attachid>
            <date>2012-06-13 18:57:43 -0700</date>
            <delta_ts>2012-06-13 23:28:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88500-20120614105743.patch</filename>
            <type>text/plain</type>
            <size>8451</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMjY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTk4YWYwNzU0MTg0OGJk
NTlmMDg5Y2I1Nzg5NDE4YzlkYjZkNmZiOS4uNDFlZWY5ZjRmZTc1YzMyYmRmMTIxOTYxOTJjMzc1
MjU2ZGRhNTk3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTA2LTA3ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ3Jhc2hdW0Vk
aXRpbmddIFZpc2libGVTZWxlY3Rpb246OmFkanVzdFNlbGVjdGlvblRvQXZvaWRDcm9zc2luZ0Vk
aXRpbmdCb3VuZGFyaWVzKCkgY3Jhc2hlcyBpbiBzb21lIFNoYWRvdyBET00gY2FzZS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4NTAwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBzZWxlY3Rpbmcg
ZnJvbSBhIGNoaWxkIG9mIHNoYWRvdyBob3N0IHRvIGFuIGVsZW1lbnQgaW4gU2hhZG93IERPTSwg
dGhlIHN0YXJ0IHBvc2l0aW9uIG9mCisgICAgICAgIFNlbGVjdGlvbiBjb21lcyBhZnRlciB0aGUg
ZW5kIHBvc2l0aW9uIG9mIFNlbGVjdGlvbiBpbiBzb21lIGNhc2VzLiBUaGlzIGNhdXNlZCBhIGNy
YXNoLgorCisgICAgICAgIFdlIHNob3VsZCBoYXZlIGNoZWNrZWQgaXQgaW4gYWRqdXN0U2VsZWN0
aW9uVG9Bdm9pZENyb3NzaW5nU2hhZG93Qm91bmRhcmllcygpLgorCisgICAgICAgIFRlc3Q6IGVk
aXRpbmcvc2hhZG93L2JyZWFraW5nLWVkaXRpbmctYm91bmRhcmllcy5odG1sCisKKyAgICAgICAg
KiBlZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6YWRqdXN0
UG9zaXRpb25Gb3JFbmQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjph
ZGp1c3RQb3NpdGlvbkZvclN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlZpc2libGVTZWxlY3Rp
b246OmFkanVzdFNlbGVjdGlvblRvQXZvaWRDcm9zc2luZ1NoYWRvd0JvdW5kYXJpZXMpOgorICAg
ICAgICAqIGVkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5oOgorICAgICAgICAoVmlzaWJsZVNlbGVj
dGlvbik6CisKIDIwMTItMDYtMTMgIERhbmEgSmFuc2VucyAgPGRhbmFrakBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgW2Nocm9taXVtXSBDcmVhdGUgYSBDQ1N0cmVhbVZpZGVvRHJhd1F1YWQgdXNl
ZCBmb3IgU3RyZWFtVGV4dHVyZSB2aWRlbyBvdXRwdXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1Zpc2libGVTZWxlY3Rpb24uY3BwCmluZGV4IDExYjkwMTU0MTJmMTFmODY4MGUwMzViYzk3Nzg2
N2NjYWQyOGQ5MDIuLmYxMzZiZmViNWJhZjZlN2UxNDZiNTBkMjEyYWFlY2YwOGMyYTVlOGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcApAQCAtNDEwLDI4
ICs0MTAsNiBAQCB2b2lkIFZpc2libGVTZWxlY3Rpb246OnVwZGF0ZVNlbGVjdGlvblR5cGUoKQog
ICAgICAgICBtX2FmZmluaXR5ID0gRE9XTlNUUkVBTTsKIH0KIAotUG9zaXRpb24gVmlzaWJsZVNl
bGVjdGlvbjo6YWRqdXN0UG9zaXRpb25CZWZvcmUoVHJlZVNjb3BlKiB0cmVlU2NvcGUsIGNvbnN0
IFBvc2l0aW9uJiBjdXJyZW50UG9zaXRpb24pCi17Ci0gICAgaWYgKE5vZGUqIGFuY2VzdG9yID0g
dHJlZVNjb3BlLT5hbmNlc3RvckluVGhpc1Njb3BlKGN1cnJlbnRQb3NpdGlvbi5hbmNob3JOb2Rl
KCkpKQotICAgICAgICByZXR1cm4gcG9zaXRpb25CZWZvcmVOb2RlKGFuY2VzdG9yKTsKLQotICAg
IGlmIChOb2RlKiBsYXN0Q2hpbGQgPSB0cmVlU2NvcGUtPnJvb3ROb2RlKCktPmxhc3RDaGlsZCgp
KQotICAgICAgICByZXR1cm4gcG9zaXRpb25BZnRlck5vZGUobGFzdENoaWxkKTsKLQotICAgIHJl
dHVybiBQb3NpdGlvbigpOwotfQotCi1Qb3NpdGlvbiBWaXNpYmxlU2VsZWN0aW9uOjphZGp1c3RQ
b3NpdGlvbkFmdGVyKFRyZWVTY29wZSogdHJlZVNjb3BlLCBjb25zdCBQb3NpdGlvbiYgY3VycmVu
dFBvc2l0aW9uKQotewotICAgIGlmIChOb2RlKiBhbmNlc3RvciA9IHRyZWVTY29wZS0+YW5jZXN0
b3JJblRoaXNTY29wZShjdXJyZW50UG9zaXRpb24uYW5jaG9yTm9kZSgpKSkKLSAgICAgICAgcmV0
dXJuIHBvc2l0aW9uQWZ0ZXJOb2RlKGFuY2VzdG9yKTsKLQotICAgIGlmIChOb2RlKiBmaXJzdENo
aWxkID0gdHJlZVNjb3BlLT5yb290Tm9kZSgpLT5maXJzdENoaWxkKCkpCi0gICAgICAgIHJldHVy
biBwb3NpdGlvbkJlZm9yZU5vZGUoZmlyc3RDaGlsZCk7Ci0KLSAgICByZXR1cm4gUG9zaXRpb24o
KTsKLX0KLQogdm9pZCBWaXNpYmxlU2VsZWN0aW9uOjp2YWxpZGF0ZShUZXh0R3JhbnVsYXJpdHkg
Z3JhbnVsYXJpdHkpCiB7CiAgICAgc2V0QmFzZUFuZEV4dGVudFRvRGVlcEVxdWl2YWxlbnRzKCk7
CkBAIC00ODMsNiArNDYxLDM4IEBAIHZvaWQgVmlzaWJsZVNlbGVjdGlvbjo6c2V0V2l0aG91dFZh
bGlkYXRpb24oY29uc3QgUG9zaXRpb24mIGJhc2UsIGNvbnN0IFBvc2l0aW9uCiAgICAgbV9zZWxl
Y3Rpb25UeXBlID0gYmFzZSA9PSBleHRlbnQgPyBDYXJldFNlbGVjdGlvbiA6IFJhbmdlU2VsZWN0
aW9uOwogfQogCitzdGF0aWMgUG9zaXRpb24gYWRqdXN0UG9zaXRpb25Gb3JFbmQoY29uc3QgUG9z
aXRpb24mIGN1cnJlbnRQb3NpdGlvbiwgTm9kZSogc3RhcnRDb250YWluZXJOb2RlKQoreworICAg
IFRyZWVTY29wZSogdHJlZVNjb3BlID0gc3RhcnRDb250YWluZXJOb2RlLT50cmVlU2NvcGUoKTsK
KworICAgIGlmIChOb2RlKiBhbmNlc3RvciA9IHRyZWVTY29wZS0+YW5jZXN0b3JJblRoaXNTY29w
ZShjdXJyZW50UG9zaXRpb24uYW5jaG9yTm9kZSgpKSkgeyAgICAgICAgCisgICAgICAgIGlmIChh
bmNlc3Rvci0+Y29udGFpbnMoc3RhcnRDb250YWluZXJOb2RlKSkKKyAgICAgICAgICAgIHJldHVy
biBwb3NpdGlvbkFmdGVyTm9kZShhbmNlc3Rvcik7CisgICAgICAgIHJldHVybiBwb3NpdGlvbkJl
Zm9yZU5vZGUoYW5jZXN0b3IpOworICAgIH0KKworICAgIGlmIChOb2RlKiBsYXN0Q2hpbGQgPSB0
cmVlU2NvcGUtPnJvb3ROb2RlKCktPmxhc3RDaGlsZCgpKQorICAgICAgICByZXR1cm4gcG9zaXRp
b25BZnRlck5vZGUobGFzdENoaWxkKTsKKworICAgIHJldHVybiBQb3NpdGlvbigpOworfQorCitz
dGF0aWMgUG9zaXRpb24gYWRqdXN0UG9zaXRpb25Gb3JTdGFydChjb25zdCBQb3NpdGlvbiYgY3Vy
cmVudFBvc2l0aW9uLCBOb2RlKiBlbmRDb250YWluZXJOb2RlKQoreworICAgIFRyZWVTY29wZSog
dHJlZVNjb3BlID0gZW5kQ29udGFpbmVyTm9kZS0+dHJlZVNjb3BlKCk7CisgICAgCisgICAgaWYg
KE5vZGUqIGFuY2VzdG9yID0gdHJlZVNjb3BlLT5hbmNlc3RvckluVGhpc1Njb3BlKGN1cnJlbnRQ
b3NpdGlvbi5hbmNob3JOb2RlKCkpKSB7CisgICAgICAgIGlmIChhbmNlc3Rvci0+Y29udGFpbnMo
ZW5kQ29udGFpbmVyTm9kZSkpCisgICAgICAgICAgICByZXR1cm4gcG9zaXRpb25CZWZvcmVOb2Rl
KGFuY2VzdG9yKTsKKyAgICAgICAgcmV0dXJuIHBvc2l0aW9uQWZ0ZXJOb2RlKGFuY2VzdG9yKTsK
KyAgICB9CisKKyAgICBpZiAoTm9kZSogZmlyc3RDaGlsZCA9IHRyZWVTY29wZS0+cm9vdE5vZGUo
KS0+Zmlyc3RDaGlsZCgpKQorICAgICAgICByZXR1cm4gcG9zaXRpb25CZWZvcmVOb2RlKGZpcnN0
Q2hpbGQpOworCisgICAgcmV0dXJuIFBvc2l0aW9uKCk7Cit9CisKIHZvaWQgVmlzaWJsZVNlbGVj
dGlvbjo6YWRqdXN0U2VsZWN0aW9uVG9Bdm9pZENyb3NzaW5nU2hhZG93Qm91bmRhcmllcygpCiB7
CiAgICAgaWYgKG1fYmFzZS5pc051bGwoKSB8fCBtX3N0YXJ0LmlzTnVsbCgpIHx8IG1fZW5kLmlz
TnVsbCgpKQpAQCAtNDkyLDEwICs1MDIsMTAgQEAgdm9pZCBWaXNpYmxlU2VsZWN0aW9uOjphZGp1
c3RTZWxlY3Rpb25Ub0F2b2lkQ3Jvc3NpbmdTaGFkb3dCb3VuZGFyaWVzKCkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgaWYgKG1fYmFzZUlzRmlyc3QpIHsKLSAgICAgICAgbV9leHRlbnQgPSBhZGp1
c3RQb3NpdGlvbkJlZm9yZShtX3N0YXJ0LmFuY2hvck5vZGUoKS0+dHJlZVNjb3BlKCksIG1fZW5k
KTsKKyAgICAgICAgbV9leHRlbnQgPSBhZGp1c3RQb3NpdGlvbkZvckVuZChtX2VuZCwgbV9zdGFy
dC5jb250YWluZXJOb2RlKCkpOwogICAgICAgICBtX2VuZCA9IG1fZXh0ZW50OwogICAgIH0gZWxz
ZSB7Ci0gICAgICAgIG1fZXh0ZW50ID0gYWRqdXN0UG9zaXRpb25BZnRlcihtX2VuZC5hbmNob3JO
b2RlKCktPnRyZWVTY29wZSgpLCBtX3N0YXJ0KTsKKyAgICAgICAgbV9leHRlbnQgPSBhZGp1c3RQ
b3NpdGlvbkZvclN0YXJ0KG1fc3RhcnQsIG1fZW5kLmNvbnRhaW5lck5vZGUoKSk7CiAgICAgICAg
IG1fc3RhcnQgPSBtX2V4dGVudDsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNp
YmxlU2VsZWN0aW9uLmgKaW5kZXggMjE5OTliYjNjYWQ0YzM0NWExOWFlYzM0ZDY3ZTllNTRjYmJj
NmQyMS4uOGM4MTBkYTRkZDE5N2UzMWNmNmE1ZjZmOGI4Yjg4MjYyOTdiYjdlZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmgKQEAgLTEyMiw5ICsxMjIsNiBAQCBw
cml2YXRlOgogICAgIHZvaWQgYWRqdXN0U2VsZWN0aW9uVG9Bdm9pZENyb3NzaW5nRWRpdGluZ0Jv
dW5kYXJpZXMoKTsKICAgICB2b2lkIHVwZGF0ZVNlbGVjdGlvblR5cGUoKTsKIAotICAgIFBvc2l0
aW9uIGFkanVzdFBvc2l0aW9uQmVmb3JlKFRyZWVTY29wZSosIGNvbnN0IFBvc2l0aW9uJik7Ci0g
ICAgUG9zaXRpb24gYWRqdXN0UG9zaXRpb25BZnRlcihUcmVlU2NvcGUqLCBjb25zdCBQb3NpdGlv
biYpOwotCiAgICAgLy8gV2UgbmVlZCB0byBzdG9yZSB0aGVzZSBhcyBQb3NpdGlvbnMgYmVjYXVz
ZSBWaXNpYmxlU2VsZWN0aW9uIGlzCiAgICAgLy8gdXNlZCB0byBzdG9yZSB2YWx1ZXMgaW4gZWRp
dGluZyBjb21tYW5kcyBmb3IgdXNlIHdoZW4KICAgICAvLyB1bmRvaW5nIHRoZSBjb21tYW5kLiBX
ZSBuZWVkIHRvIGJlIGFibGUgdG8gY3JlYXRlIGEgc2VsZWN0aW9uIHRoYXQsIHdoaWxlIGN1cnJl
bnRseQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDMyNWQ2NzE0NTVkOTA0ZDMxMDY0YmZhNmEzYzRhZTFhZGIwYjczZDMuLmE1
ZmNiZGExNDUwNjhkODJkM2JlZGQ0NTk0ZGIwOTM3Y2UwNDI5MTEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAxMi0wNi0wNyAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgW0NyYXNoXVtFZGl0aW5nXSBWaXNpYmxlU2VsZWN0aW9uOjphZGp1c3RTZWxl
Y3Rpb25Ub0F2b2lkQ3Jvc3NpbmdFZGl0aW5nQm91bmRhcmllcygpIGNyYXNoZXMgaW4gc29tZSBT
aGFkb3cgRE9NIGNhc2UuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04ODUwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogZWRpdGluZy9zaGFkb3cvYnJlYWtpbmctZWRpdGluZy1ib3VuZGFyaWVzLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9zaGFkb3cvYnJlYWtpbmctZWRpdGlu
Zy1ib3VuZGFyaWVzLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA2LTEzICBNaW4gUWluICA8cWlubWlu
QGdvb2dsZS5jb20+CiAKICAgICAgICAgQWRkcmVzcyBzb21lIGZlZWRiYWNrcyBpbiBsYXlvdXQg
dGVzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvYnJlYWtpbmctZWRp
dGluZy1ib3VuZGFyaWVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93
L2JyZWFraW5nLWVkaXRpbmctYm91bmRhcmllcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGFh
ZjlkM2RlMTAxMDU5Yzk2YTY4OWU0NjgwZWJlZDFiZTc5OTk5MgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2JyZWFraW5nLWVkaXRpbmctYm91bmRhcmllcy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitXaGVuIHNlbGVjdGluZyBmcm9tIGEgY2hpbGQg
b2Ygc2hhZG93IGhvc3QgdG8gYW4gZWxlbWVudCBpbiBTaGFkb3cgRE9NLCBhIGNyYXNoIHNob3Vs
ZCBub3QgYmUgY2F1c2VkLiBUaGlzIGlzIGJlY2F1c2UgdGhlIHN0YXJ0IHBvc2l0aW9uIG9mIFNl
bGVjdGlvbiBjb21lcyBhZnRlciB0aGUgZW5kIHBvc2l0aW9uIG9mIFNlbGVjdGlvbi4KKworQkVG
T1JFCitEUkFHIEZST00gSEVSRSAKK1BBU1MKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3No
YWRvdy9icmVha2luZy1lZGl0aW5nLWJvdW5kYXJpZXMuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRp
bmcvc2hhZG93L2JyZWFraW5nLWVkaXRpbmctYm91bmRhcmllcy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEw
OTQ0YTQ4MzMzNzM0N2FlYmU2YzMyMjUxOGQ2MDUyMDE2YmIyNGYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9icmVha2luZy1lZGl0aW5nLWJvdW5kYXJpZXMu
aHRtbApAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9kb20vc2hhZG93L3Jlc291cmNlcy9wb2x5ZmlsbC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9kb20vcmVzb3VyY2VzL2V2ZW50LXNl
bmRlci11dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisKKzxwPldoZW4gc2VsZWN0aW5nIGZyb20g
YSBjaGlsZCBvZiBzaGFkb3cgaG9zdCB0byBhbiBlbGVtZW50IGluIFNoYWRvdyBET00sIGEgY3Jh
c2ggc2hvdWxkIG5vdCBiZSBjYXVzZWQuCitUaGlzIGlzIGJlY2F1c2UgdGhlIHN0YXJ0IHBvc2l0
aW9uIG9mIFNlbGVjdGlvbiBjb21lcyBhZnRlciB0aGUgZW5kIHBvc2l0aW9uIG9mIFNlbGVjdGlv
bi48L3A+CisKKzxkaXYgY29udGVudGVkaXRhYmxlPgorICAgIEJFRk9SRTxkaXYgaWQ9Imhvc3Qi
IGNvbnRlbnRlZGl0YWJsZT0iZmFsc2UiPkRSQUcgRlJPTSBIRVJFPHNwYW4gaWQ9InRhcmdldCI+
IDwvc3Bhbj48L2Rpdj4KKzwvZGl2PgorPHByZSBpZD0iY29uc29sZSI+PC9wcmU+CisKKzxzY3Jp
cHQ+Cit2YXIgc2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KGhvc3QpOworc2hhZG93
Um9vdC5pbm5lckhUTUwgPSAiPGRpdiBpZD0nc2hhZG93LWhvc3QnPkJFRk9SRSBTSEFET1c8c2hh
ZG93IGlkPSdzaGFkb3cnPjwvc2hhZG93PkFGVEVSIFNIQURPVzwvZGl2PiIKKwordmFyIG5lc3Rl
ZFNoYWRvd0hvc3QgPSBzaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCdzaGFkb3ctaG9zdCcpOwor
dmFyIG5lc3RlZFNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChuZXN0ZWRTaGFkb3dI
b3N0KTsKK25lc3RlZFNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxkaXYgY29udGVudGVkaXRhYmxl
PkJFRk9SRSBORVNURUQ8c2hhZG93Pjwvc2hhZG93PkFGVEVSIE5FU1RFRDwvZGl2PiIKKworLy8g
VGhpcyBzaG91bGQgbm90IGNhdXNlIGEgY3Jhc2guCitldmVudFNlbmRlci5tb3VzZU1vdmVUbyh0
YXJnZXQub2Zmc2V0TGVmdCAtIDEwLCB0YXJnZXQub2Zmc2V0VG9wICsgdGFyZ2V0Lm9mZnNldEhl
aWdodCAvIDIpOworZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Cittb3VzZU1vdmVUb0VsZW0obmVz
dGVkU2hhZG93SG9zdCk7CitldmVudFNlbmRlci5tb3VzZVVwKCk7CitkZWJ1ZygnUEFTUycpOwor
Cit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNy
Yz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147497</attachid>
            <date>2012-06-13 23:28:21 -0700</date>
            <delta_ts>2012-06-14 00:15:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88500-20120614152820.patch</filename>
            <type>text/plain</type>
            <size>9422</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMjY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTk4YWYwNzU0MTg0OGJk
NTlmMDg5Y2I1Nzg5NDE4YzlkYjZkNmZiOS4uYTc3MjllYmMwNDNkNWM4YWMyODgxNjU3NDU4NGZk
ZjFmZmVkMmMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA2LTA3ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ3Jhc2hdW0Vk
aXRpbmddIFZpc2libGVTZWxlY3Rpb246OmFkanVzdFNlbGVjdGlvblRvQXZvaWRDcm9zc2luZ0Vk
aXRpbmdCb3VuZGFyaWVzKCkgY3Jhc2hlcyBpbiBzb21lIFNoYWRvdyBET00gY2FzZS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4NTAwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBzZWxlY3Rpbmcg
ZnJvbSBhIGNoaWxkIG9mIHNoYWRvdyBob3N0IHRvIGFuIGVsZW1lbnQgaW4gU2hhZG93IERPTSwg
dGhlIHN0YXJ0IHBvc2l0aW9uIG9mCisgICAgICAgIFNlbGVjdGlvbiBjb21lcyBhZnRlciB0aGUg
ZW5kIHBvc2l0aW9uIG9mIFNlbGVjdGlvbiBpbiBzb21lIGNhc2VzLiBUaGlzIGNhdXNlZCBhIGNy
YXNoLgorCisgICAgICAgIEZvciBleGFtcGxlLCBsZXQncyB0aGluayAnPGRpdiBpZD0iaG9zdCI+
QTwvZGl2PkQnIGFuZCBob3N0IGhhcyBhIFNoYWRvdyBET00gd2hvc2UgaW5uZXJIVE1MIGlzCisg
ICAgICAgICdCPGNvbnRlbnQ+PC9jb250ZW50PkMnLiBXaGVuIHNlbGVjdGluZyBmcm9tIEEgdG8g
Qiwgc2luY2UgY29tcGFyZVBvc2l0aW9uIGFsd2F5cyBqdWRnZSBhcyBCIGlzCisgICAgICAgIGJl
Zm9yZSBBLCBtX3N0YXJ0IGFuZCBtX2VuZCBpbiBWaXNpYmxlU2VsZWN0aW9uIHdpbGwgYmUgQiBh
bmQgQS4gSG93ZXZlciwgQSBhbmQgQiBoYXZlIHRoZSBkaWZmZXJlbnQKKyAgICAgICAgdHJlZSBz
Y29wZSwgd2UgaGF2ZSB0byBhZGp1c3QgQiB0byB0aGUgc2FtZSB0cmVlIHNjb3BlLiBTaW5jZSBC
IGlzIG1fc3RhcnQsIG1fc3RhcnQgd2FzIGFkanVzdGVkIHRvCisgICAgICAgIHBvc2l0aW9uQWZ0
ZXJOb2RlKEEpLiBUaGlzIGJyZWFrcyB0aGUgYXNzdW1wdGlvbiB0aGF0IG1fc3RhcnQgaXMgYWx3
YXlzIGJlZm9yZSAob3IgZXF1YWwgdG8pIG1fZW5kLgorCisgICAgICAgIFRoaXMgcGF0Y2gga2Vl
cHMgdGhlIGFzc3VtcHRpb24uIFdoZW4gd2UgY2Fubm90IG1vdmUgbV9zdGFydCB0byBwb3NpdGlv
bkFmdGVyTm9kZShBKSwgd2UgbW92ZSBtX3N0YXJ0CisgICAgICAgIHRvIHBvc2l0aW9uQmVmb3Jl
Tm9kZShBKS4gTm90ZSB0aGF0IHdlIGNhbm5vdCBhbHdheXMgbW92ZSBtX3N0YXJ0IHRvIHBvc2l0
aW9uQmVmb3JlTm9kZShBKSwgYmVjYXVzZQorICAgICAgICB3aGVuIHNlbGVjdGluZyBEIHRvIEEg
YW5kIEEgaXMgPGlucHV0Piwgd2UgZG9uJ3Qgd2FudCB0byBzZWxlY3QgQS4gSW4gdGhpcyBjYXNl
LCBtX3N0YXJ0IHNob3VsZCBiZQorICAgICAgICBhZGp1c3RlZCB0byBwb3NpdGlvbkFmdGVyTm9k
ZShBKS4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3NoYWRvdy9icmVha2luZy1lZGl0aW5nLWJv
dW5kYXJpZXMuaHRtbAorCisgICAgICAgICogZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmFkanVzdFBvc2l0aW9uRm9yRW5kKToKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6YWRqdXN0UG9zaXRpb25Gb3JTdGFydCk6CisgICAgICAg
IChXZWJDb3JlOjpWaXNpYmxlU2VsZWN0aW9uOjphZGp1c3RTZWxlY3Rpb25Ub0F2b2lkQ3Jvc3Np
bmdTaGFkb3dCb3VuZGFyaWVzKToKKyAgICAgICAgKiBlZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24u
aDoKKyAgICAgICAgKFZpc2libGVTZWxlY3Rpb24pOgorCiAyMDEyLTA2LTEzICBEYW5hIEphbnNl
bnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gQ3JlYXRlIGEg
Q0NTdHJlYW1WaWRlb0RyYXdRdWFkIHVzZWQgZm9yIFN0cmVhbVRleHR1cmUgdmlkZW8gb3V0cHV0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcAppbmRleCAxMWI5
MDE1NDEyZjExZjg2ODBlMDM1YmM5Nzc4NjdjY2FkMjhkOTAyLi40MTRlZDEwYTI5YjY3MTk0MTFh
ZWE1ZTE4NTY5MmM3MDEzMWE1NzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1Zpc2libGVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJs
ZVNlbGVjdGlvbi5jcHAKQEAgLTQxMCwyOCArNDEwLDYgQEAgdm9pZCBWaXNpYmxlU2VsZWN0aW9u
Ojp1cGRhdGVTZWxlY3Rpb25UeXBlKCkKICAgICAgICAgbV9hZmZpbml0eSA9IERPV05TVFJFQU07
CiB9CiAKLVBvc2l0aW9uIFZpc2libGVTZWxlY3Rpb246OmFkanVzdFBvc2l0aW9uQmVmb3JlKFRy
ZWVTY29wZSogdHJlZVNjb3BlLCBjb25zdCBQb3NpdGlvbiYgY3VycmVudFBvc2l0aW9uKQotewot
ICAgIGlmIChOb2RlKiBhbmNlc3RvciA9IHRyZWVTY29wZS0+YW5jZXN0b3JJblRoaXNTY29wZShj
dXJyZW50UG9zaXRpb24uYW5jaG9yTm9kZSgpKSkKLSAgICAgICAgcmV0dXJuIHBvc2l0aW9uQmVm
b3JlTm9kZShhbmNlc3Rvcik7Ci0KLSAgICBpZiAoTm9kZSogbGFzdENoaWxkID0gdHJlZVNjb3Bl
LT5yb290Tm9kZSgpLT5sYXN0Q2hpbGQoKSkKLSAgICAgICAgcmV0dXJuIHBvc2l0aW9uQWZ0ZXJO
b2RlKGxhc3RDaGlsZCk7Ci0KLSAgICByZXR1cm4gUG9zaXRpb24oKTsKLX0KLQotUG9zaXRpb24g
VmlzaWJsZVNlbGVjdGlvbjo6YWRqdXN0UG9zaXRpb25BZnRlcihUcmVlU2NvcGUqIHRyZWVTY29w
ZSwgY29uc3QgUG9zaXRpb24mIGN1cnJlbnRQb3NpdGlvbikKLXsKLSAgICBpZiAoTm9kZSogYW5j
ZXN0b3IgPSB0cmVlU2NvcGUtPmFuY2VzdG9ySW5UaGlzU2NvcGUoY3VycmVudFBvc2l0aW9uLmFu
Y2hvck5vZGUoKSkpCi0gICAgICAgIHJldHVybiBwb3NpdGlvbkFmdGVyTm9kZShhbmNlc3Rvcik7
Ci0KLSAgICBpZiAoTm9kZSogZmlyc3RDaGlsZCA9IHRyZWVTY29wZS0+cm9vdE5vZGUoKS0+Zmly
c3RDaGlsZCgpKQotICAgICAgICByZXR1cm4gcG9zaXRpb25CZWZvcmVOb2RlKGZpcnN0Q2hpbGQp
OwotCi0gICAgcmV0dXJuIFBvc2l0aW9uKCk7Ci19Ci0KIHZvaWQgVmlzaWJsZVNlbGVjdGlvbjo6
dmFsaWRhdGUoVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5KQogewogICAgIHNldEJhc2VBbmRF
eHRlbnRUb0RlZXBFcXVpdmFsZW50cygpOwpAQCAtNDgzLDYgKzQ2MSw0MiBAQCB2b2lkIFZpc2li
bGVTZWxlY3Rpb246OnNldFdpdGhvdXRWYWxpZGF0aW9uKGNvbnN0IFBvc2l0aW9uJiBiYXNlLCBj
b25zdCBQb3NpdGlvbgogICAgIG1fc2VsZWN0aW9uVHlwZSA9IGJhc2UgPT0gZXh0ZW50ID8gQ2Fy
ZXRTZWxlY3Rpb24gOiBSYW5nZVNlbGVjdGlvbjsKIH0KIAorc3RhdGljIFBvc2l0aW9uIGFkanVz
dFBvc2l0aW9uRm9yRW5kKGNvbnN0IFBvc2l0aW9uJiBjdXJyZW50UG9zaXRpb24sIE5vZGUqIHN0
YXJ0Q29udGFpbmVyTm9kZSkKK3sKKyAgICBUcmVlU2NvcGUqIHRyZWVTY29wZSA9IHN0YXJ0Q29u
dGFpbmVyTm9kZS0+dHJlZVNjb3BlKCk7CisKKyAgICBBU1NFUlQoY3VycmVudFBvc2l0aW9uLT5j
b250YWluZXJOb2RlKCktPnRyZWVTY29wZSgpICE9IHRyZWVTY29wZSk7CisKKyAgICBpZiAoTm9k
ZSogYW5jZXN0b3IgPSB0cmVlU2NvcGUtPmFuY2VzdG9ySW5UaGlzU2NvcGUoY3VycmVudFBvc2l0
aW9uLmNvbnRhaW5lck5vZGUoKSkpIHsKKyAgICAgICAgaWYgKGFuY2VzdG9yLT5jb250YWlucyhz
dGFydENvbnRhaW5lck5vZGUpKQorICAgICAgICAgICAgcmV0dXJuIHBvc2l0aW9uQWZ0ZXJOb2Rl
KGFuY2VzdG9yKTsKKyAgICAgICAgcmV0dXJuIHBvc2l0aW9uQmVmb3JlTm9kZShhbmNlc3Rvcik7
CisgICAgfQorCisgICAgaWYgKE5vZGUqIGxhc3RDaGlsZCA9IHRyZWVTY29wZS0+cm9vdE5vZGUo
KS0+bGFzdENoaWxkKCkpCisgICAgICAgIHJldHVybiBwb3NpdGlvbkFmdGVyTm9kZShsYXN0Q2hp
bGQpOworCisgICAgcmV0dXJuIFBvc2l0aW9uKCk7Cit9CisKK3N0YXRpYyBQb3NpdGlvbiBhZGp1
c3RQb3NpdGlvbkZvclN0YXJ0KGNvbnN0IFBvc2l0aW9uJiBjdXJyZW50UG9zaXRpb24sIE5vZGUq
IGVuZENvbnRhaW5lck5vZGUpCit7CisgICAgVHJlZVNjb3BlKiB0cmVlU2NvcGUgPSBlbmRDb250
YWluZXJOb2RlLT50cmVlU2NvcGUoKTsKKworICAgIEFTU0VSVChjdXJyZW50UG9zaXRpb24tPmNv
bnRhaW5lck5vZGUoKS0+dHJlZVNjb3BlKCkgIT0gdHJlZVNjb3BlKTsKKyAgICAKKyAgICBpZiAo
Tm9kZSogYW5jZXN0b3IgPSB0cmVlU2NvcGUtPmFuY2VzdG9ySW5UaGlzU2NvcGUoY3VycmVudFBv
c2l0aW9uLmNvbnRhaW5lck5vZGUoKSkpIHsKKyAgICAgICAgaWYgKGFuY2VzdG9yLT5jb250YWlu
cyhlbmRDb250YWluZXJOb2RlKSkKKyAgICAgICAgICAgIHJldHVybiBwb3NpdGlvbkJlZm9yZU5v
ZGUoYW5jZXN0b3IpOworICAgICAgICByZXR1cm4gcG9zaXRpb25BZnRlck5vZGUoYW5jZXN0b3Ip
OworICAgIH0KKworICAgIGlmIChOb2RlKiBmaXJzdENoaWxkID0gdHJlZVNjb3BlLT5yb290Tm9k
ZSgpLT5maXJzdENoaWxkKCkpCisgICAgICAgIHJldHVybiBwb3NpdGlvbkJlZm9yZU5vZGUoZmly
c3RDaGlsZCk7CisKKyAgICByZXR1cm4gUG9zaXRpb24oKTsKK30KKwogdm9pZCBWaXNpYmxlU2Vs
ZWN0aW9uOjphZGp1c3RTZWxlY3Rpb25Ub0F2b2lkQ3Jvc3NpbmdTaGFkb3dCb3VuZGFyaWVzKCkK
IHsKICAgICBpZiAobV9iYXNlLmlzTnVsbCgpIHx8IG1fc3RhcnQuaXNOdWxsKCkgfHwgbV9lbmQu
aXNOdWxsKCkpCkBAIC00OTIsMTAgKzUwNiwxMCBAQCB2b2lkIFZpc2libGVTZWxlY3Rpb246OmFk
anVzdFNlbGVjdGlvblRvQXZvaWRDcm9zc2luZ1NoYWRvd0JvdW5kYXJpZXMoKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBpZiAobV9iYXNlSXNGaXJzdCkgewotICAgICAgICBtX2V4dGVudCA9IGFk
anVzdFBvc2l0aW9uQmVmb3JlKG1fc3RhcnQuYW5jaG9yTm9kZSgpLT50cmVlU2NvcGUoKSwgbV9l
bmQpOworICAgICAgICBtX2V4dGVudCA9IGFkanVzdFBvc2l0aW9uRm9yRW5kKG1fZW5kLCBtX3N0
YXJ0LmNvbnRhaW5lck5vZGUoKSk7CiAgICAgICAgIG1fZW5kID0gbV9leHRlbnQ7CiAgICAgfSBl
bHNlIHsKLSAgICAgICAgbV9leHRlbnQgPSBhZGp1c3RQb3NpdGlvbkFmdGVyKG1fZW5kLmFuY2hv
ck5vZGUoKS0+dHJlZVNjb3BlKCksIG1fc3RhcnQpOworICAgICAgICBtX2V4dGVudCA9IGFkanVz
dFBvc2l0aW9uRm9yU3RhcnQobV9zdGFydCwgbV9lbmQuY29udGFpbmVyTm9kZSgpKTsKICAgICAg
ICAgbV9zdGFydCA9IG1fZXh0ZW50OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zp
c2libGVTZWxlY3Rpb24uaAppbmRleCAyMTk5OWJiM2NhZDRjMzQ1YTE5YWVjMzRkNjdlOWU1NGNi
YmM2ZDIxLi44YzgxMGRhNGRkMTk3ZTMxY2Y2YTVmNmY4YjhiODgyNjI5N2JiN2VmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uaApAQCAtMTIyLDkgKzEyMiw2IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBhZGp1c3RTZWxlY3Rpb25Ub0F2b2lkQ3Jvc3NpbmdFZGl0aW5n
Qm91bmRhcmllcygpOwogICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uVHlwZSgpOwogCi0gICAgUG9z
aXRpb24gYWRqdXN0UG9zaXRpb25CZWZvcmUoVHJlZVNjb3BlKiwgY29uc3QgUG9zaXRpb24mKTsK
LSAgICBQb3NpdGlvbiBhZGp1c3RQb3NpdGlvbkFmdGVyKFRyZWVTY29wZSosIGNvbnN0IFBvc2l0
aW9uJik7Ci0KICAgICAvLyBXZSBuZWVkIHRvIHN0b3JlIHRoZXNlIGFzIFBvc2l0aW9ucyBiZWNh
dXNlIFZpc2libGVTZWxlY3Rpb24gaXMKICAgICAvLyB1c2VkIHRvIHN0b3JlIHZhbHVlcyBpbiBl
ZGl0aW5nIGNvbW1hbmRzIGZvciB1c2Ugd2hlbgogICAgIC8vIHVuZG9pbmcgdGhlIGNvbW1hbmQu
IFdlIG5lZWQgdG8gYmUgYWJsZSB0byBjcmVhdGUgYSBzZWxlY3Rpb24gdGhhdCwgd2hpbGUgY3Vy
cmVudGx5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggMzI1ZDY3MTQ1NWQ5MDRkMzEwNjRiZmE2YTNjNGFlMWFkYjBiNzNkMy4u
YTVmY2JkYTE0NTA2OGQ4MmQzYmVkZDQ1OTRkYjA5MzdjZTA0MjkxMSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDEyLTA2LTA3ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBbQ3Jhc2hdW0VkaXRpbmddIFZpc2libGVTZWxlY3Rpb246OmFkanVzdFNl
bGVjdGlvblRvQXZvaWRDcm9zc2luZ0VkaXRpbmdCb3VuZGFyaWVzKCkgY3Jhc2hlcyBpbiBzb21l
IFNoYWRvdyBET00gY2FzZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg4NTAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBlZGl0aW5nL3NoYWRvdy9icmVha2luZy1lZGl0aW5nLWJvdW5kYXJpZXMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3NoYWRvdy9icmVha2luZy1lZGl0
aW5nLWJvdW5kYXJpZXMuaHRtbDogQWRkZWQuCisKIDIwMTItMDYtMTMgIE1pbiBRaW4gIDxxaW5t
aW5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBBZGRyZXNzIHNvbWUgZmVlZGJhY2tzIGluIGxheW91
dCB0ZXN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9icmVha2luZy1l
ZGl0aW5nLWJvdW5kYXJpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFk
b3cvYnJlYWtpbmctZWRpdGluZy1ib3VuZGFyaWVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5k
YWFmOWQzZGUxMDEwNTljOTZhNjg5ZTQ2ODBlYmVkMWJlNzk5OTkyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvYnJlYWtpbmctZWRpdGluZy1ib3VuZGFyaWVz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAKK1doZW4gc2VsZWN0aW5nIGZyb20gYSBjaGls
ZCBvZiBzaGFkb3cgaG9zdCB0byBhbiBlbGVtZW50IGluIFNoYWRvdyBET00sIGEgY3Jhc2ggc2hv
dWxkIG5vdCBiZSBjYXVzZWQuIFRoaXMgaXMgYmVjYXVzZSB0aGUgc3RhcnQgcG9zaXRpb24gb2Yg
U2VsZWN0aW9uIGNvbWVzIGFmdGVyIHRoZSBlbmQgcG9zaXRpb24gb2YgU2VsZWN0aW9uLgorCitC
RUZPUkUKK0RSQUcgRlJPTSBIRVJFIAorUEFTUworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcv
c2hhZG93L2JyZWFraW5nLWVkaXRpbmctYm91bmRhcmllcy5odG1sIGIvTGF5b3V0VGVzdHMvZWRp
dGluZy9zaGFkb3cvYnJlYWtpbmctZWRpdGluZy1ib3VuZGFyaWVzLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MTA5NDRhNDgzMzM3MzQ3YWViZTZjMzIyNTE4ZDYwNTIwMTZiYjI0ZgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2JyZWFraW5nLWVkaXRpbmctYm91bmRhcmll
cy5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2RvbS9zaGFkb3cvcmVzb3VyY2VzL3BvbHlmaWxsLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2RvbS9yZXNvdXJjZXMvZXZlbnQt
c2VuZGVyLXV0aWwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKworPHA+V2hlbiBzZWxlY3RpbmcgZnJv
bSBhIGNoaWxkIG9mIHNoYWRvdyBob3N0IHRvIGFuIGVsZW1lbnQgaW4gU2hhZG93IERPTSwgYSBj
cmFzaCBzaG91bGQgbm90IGJlIGNhdXNlZC4KK1RoaXMgaXMgYmVjYXVzZSB0aGUgc3RhcnQgcG9z
aXRpb24gb2YgU2VsZWN0aW9uIGNvbWVzIGFmdGVyIHRoZSBlbmQgcG9zaXRpb24gb2YgU2VsZWN0
aW9uLjwvcD4KKworPGRpdiBjb250ZW50ZWRpdGFibGU+CisgICAgQkVGT1JFPGRpdiBpZD0iaG9z
dCIgY29udGVudGVkaXRhYmxlPSJmYWxzZSI+RFJBRyBGUk9NIEhFUkU8c3BhbiBpZD0idGFyZ2V0
Ij4gPC9zcGFuPjwvZGl2PgorPC9kaXY+Cis8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKworPHNj
cmlwdD4KK3ZhciBzaGFkb3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7CitzaGFk
b3dSb290LmlubmVySFRNTCA9ICI8ZGl2IGlkPSdzaGFkb3ctaG9zdCc+QkVGT1JFIFNIQURPVzxz
aGFkb3cgaWQ9J3NoYWRvdyc+PC9zaGFkb3c+QUZURVIgU0hBRE9XPC9kaXY+IgorCit2YXIgbmVz
dGVkU2hhZG93SG9zdCA9IHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoJ3NoYWRvdy1ob3N0Jyk7
Cit2YXIgbmVzdGVkU2hhZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KG5lc3RlZFNoYWRv
d0hvc3QpOworbmVzdGVkU2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPGRpdiBjb250ZW50ZWRpdGFi
bGU+QkVGT1JFIE5FU1RFRDxzaGFkb3c+PC9zaGFkb3c+QUZURVIgTkVTVEVEPC9kaXY+IgorCisv
LyBUaGlzIHNob3VsZCBub3QgY2F1c2UgYSBjcmFzaC4KK2V2ZW50U2VuZGVyLm1vdXNlTW92ZVRv
KHRhcmdldC5vZmZzZXRMZWZ0IC0gMTAsIHRhcmdldC5vZmZzZXRUb3AgKyB0YXJnZXQub2Zmc2V0
SGVpZ2h0IC8gMik7CitldmVudFNlbmRlci5tb3VzZURvd24oKTsKK21vdXNlTW92ZVRvRWxlbShu
ZXN0ZWRTaGFkb3dIb3N0KTsKK2V2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK2RlYnVnKCdQQVNTJyk7
CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+CisKKzxzY3JpcHQg
c3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147502</attachid>
            <date>2012-06-14 00:15:46 -0700</date>
            <delta_ts>2012-06-14 21:59:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88500-20120614161545.patch</filename>
            <type>text/plain</type>
            <size>9635</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMjY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTk4YWYwNzU0MTg0OGJk
NTlmMDg5Y2I1Nzg5NDE4YzlkYjZkNmZiOS4uZjEzZDE3ZTRiNWY4M2Q5ODUzOGU5ZjZlOGE0Nzc3
NGFmMjRiMGJmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTA2LTA3ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ3Jhc2hdW0Vk
aXRpbmddIFZpc2libGVTZWxlY3Rpb246OmFkanVzdFNlbGVjdGlvblRvQXZvaWRDcm9zc2luZ0Vk
aXRpbmdCb3VuZGFyaWVzKCkgY3Jhc2hlcyBpbiBzb21lIFNoYWRvdyBET00gY2FzZS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4NTAwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBzZWxlY3Rpbmcg
ZnJvbSBhIGNoaWxkIG9mIHNoYWRvdyBob3N0IHRvIGFuIGVsZW1lbnQgaW4gU2hhZG93IERPTSwg
dGhlIHN0YXJ0IHBvc2l0aW9uIG9mCisgICAgICAgIFNlbGVjdGlvbiBjb21lcyBhZnRlciB0aGUg
ZW5kIHBvc2l0aW9uIG9mIFNlbGVjdGlvbiBpbiBzb21lIGNhc2VzLiBUaGlzIGNhdXNlZCBhIGNy
YXNoLgorCisgICAgICAgIEZvciBleGFtcGxlLCBsZXQncyB0aGluayAnPGRpdiBpZD0iaG9zdCI+
QTwvZGl2PkQnIGFuZCBob3N0IGhhcyBhIFNoYWRvdyBET00gd2hvc2UgaW5uZXJIVE1MIGlzCisg
ICAgICAgICdCPGNvbnRlbnQ+PC9jb250ZW50PkMnLiBXaGVuIHNlbGVjdGluZyBmcm9tIGp1c3Qg
YWZ0ZXIgQSAocDEgPSAoUG9zaXRpb25Jc09mZnNldEluQW5jaG9yLCBkaXYsIDEpKSB0bworICAg
ICAgICBCIChwMiA9IChQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IsIHNoYWRvd1Jvb3QsIDApKSwg
c2luY2UgY29tcGFyZVBvc2l0aW9uIGFsd2F5cyBqdWRnZSBhcyBwMiBpcworICAgICAgICBiZWZv
cmUgcDEsIG1fc3RhcnQgYW5kIG1fZW5kIGluIFZpc2libGVTZWxlY3Rpb24gd2lsbCBiZSBwMiBh
bmQgcDEgcmVzcGVjdGl2ZWx5LgorCisgICAgICAgIEhvd2V2ZXIsIHRoZSBhbmNob3JOb2RlcyBv
ZiBwMSBhbmQgcDIgaGF2ZSB0aGUgZGlmZmVyZW50IHRyZWUgc2NvcGUsIHdlIGhhdmUgdG8gYWRq
dXN0IHAyIHRvIHRoZSBzYW1lCisgICAgICAgIHRyZWUgc2NvcGUgYXMgcDEuIFNpbmNlIHAyIGlz
IG1fc3RhcnQsIG1fc3RhcnQgd2FzIGFkanVzdGVkIHRvIHBvc2l0aW9uQWZ0ZXJOb2RlKGRpdiku
IFRoaXMgYnJlYWtzCisgICAgICAgIHRoZSBhc3N1bXB0aW9uIHRoYXQgbV9zdGFydCBpcyBhbHdh
eXMgYmVmb3JlIChvciBlcXVhbCB0bykgbV9lbmQuCisKKyAgICAgICAgVGhpcyBwYXRjaCBrZWVw
cyB0aGUgYXNzdW1wdGlvbi4gV2hlbiB3ZSBjYW5ub3QgbW92ZSBtX3N0YXJ0IHRvIHBvc2l0aW9u
QWZ0ZXJOb2RlKGRpdiksIHdlIG1vdmUgbV9zdGFydAorICAgICAgICB0byBwb3NpdGlvbkJlZm9y
ZU5vZGUoZGl2KS4gTm90ZSB0aGF0IHdlIGNhbm5vdCBhbHdheXMgbW92ZSBtX3N0YXJ0IHRvIHBv
c2l0aW9uQmVmb3JlTm9kZShkaXYpLCBiZWNhdXNlCisgICAgICAgIHdoZW4gc2VsZWN0aW5nIGp1
c3QgYWZ0ZXIgRCAocDMgPSAoUG9zaXRpb25Jc09mZnNldEluQW5jaG9yLCBEJ3MgcGFyZW50LCAy
KSwgd2UgZG9uJ3Qgd2FudCB0byBzZWxlY3QgQS4KKyAgICAgICAgSW4gdGhpcyBjYXNlLCBtX3N0
YXJ0IHNob3VsZCBiZSBhZGp1c3RlZCB0byBwb3NpdGlvbkFmdGVyTm9kZShkaXYpLgorCisgICAg
ICAgIFRlc3Q6IGVkaXRpbmcvc2hhZG93L2JyZWFraW5nLWVkaXRpbmctYm91bmRhcmllcy5odG1s
CisKKyAgICAgICAgKiBlZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6YWRqdXN0UG9zaXRpb25Gb3JFbmQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjphZGp1c3RQb3NpdGlvbkZvclN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlZp
c2libGVTZWxlY3Rpb246OmFkanVzdFNlbGVjdGlvblRvQXZvaWRDcm9zc2luZ1NoYWRvd0JvdW5k
YXJpZXMpOgorICAgICAgICAqIGVkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5oOgorICAgICAgICAo
VmlzaWJsZVNlbGVjdGlvbik6CisKIDIwMTItMDYtMTMgIERhbmEgSmFuc2VucyAgPGRhbmFrakBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBDcmVhdGUgYSBDQ1N0cmVhbVZpZGVv
RHJhd1F1YWQgdXNlZCBmb3IgU3RyZWFtVGV4dHVyZSB2aWRlbyBvdXRwdXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCmluZGV4IDExYjkwMTU0MTJmMTFmODY4
MGUwMzViYzk3Nzg2N2NjYWQyOGQ5MDIuLjQ4MWNkMTMwYWYxYjI2NGMxODFmMWZlM2Y0OGQzZGU5
Nzc3ZGE4NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNw
cApAQCAtNDEwLDI4ICs0MTAsNiBAQCB2b2lkIFZpc2libGVTZWxlY3Rpb246OnVwZGF0ZVNlbGVj
dGlvblR5cGUoKQogICAgICAgICBtX2FmZmluaXR5ID0gRE9XTlNUUkVBTTsKIH0KIAotUG9zaXRp
b24gVmlzaWJsZVNlbGVjdGlvbjo6YWRqdXN0UG9zaXRpb25CZWZvcmUoVHJlZVNjb3BlKiB0cmVl
U2NvcGUsIGNvbnN0IFBvc2l0aW9uJiBjdXJyZW50UG9zaXRpb24pCi17Ci0gICAgaWYgKE5vZGUq
IGFuY2VzdG9yID0gdHJlZVNjb3BlLT5hbmNlc3RvckluVGhpc1Njb3BlKGN1cnJlbnRQb3NpdGlv
bi5hbmNob3JOb2RlKCkpKQotICAgICAgICByZXR1cm4gcG9zaXRpb25CZWZvcmVOb2RlKGFuY2Vz
dG9yKTsKLQotICAgIGlmIChOb2RlKiBsYXN0Q2hpbGQgPSB0cmVlU2NvcGUtPnJvb3ROb2RlKCkt
Pmxhc3RDaGlsZCgpKQotICAgICAgICByZXR1cm4gcG9zaXRpb25BZnRlck5vZGUobGFzdENoaWxk
KTsKLQotICAgIHJldHVybiBQb3NpdGlvbigpOwotfQotCi1Qb3NpdGlvbiBWaXNpYmxlU2VsZWN0
aW9uOjphZGp1c3RQb3NpdGlvbkFmdGVyKFRyZWVTY29wZSogdHJlZVNjb3BlLCBjb25zdCBQb3Np
dGlvbiYgY3VycmVudFBvc2l0aW9uKQotewotICAgIGlmIChOb2RlKiBhbmNlc3RvciA9IHRyZWVT
Y29wZS0+YW5jZXN0b3JJblRoaXNTY29wZShjdXJyZW50UG9zaXRpb24uYW5jaG9yTm9kZSgpKSkK
LSAgICAgICAgcmV0dXJuIHBvc2l0aW9uQWZ0ZXJOb2RlKGFuY2VzdG9yKTsKLQotICAgIGlmIChO
b2RlKiBmaXJzdENoaWxkID0gdHJlZVNjb3BlLT5yb290Tm9kZSgpLT5maXJzdENoaWxkKCkpCi0g
ICAgICAgIHJldHVybiBwb3NpdGlvbkJlZm9yZU5vZGUoZmlyc3RDaGlsZCk7Ci0KLSAgICByZXR1
cm4gUG9zaXRpb24oKTsKLX0KLQogdm9pZCBWaXNpYmxlU2VsZWN0aW9uOjp2YWxpZGF0ZShUZXh0
R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHkpCiB7CiAgICAgc2V0QmFzZUFuZEV4dGVudFRvRGVlcEVx
dWl2YWxlbnRzKCk7CkBAIC00ODMsNiArNDYxLDQyIEBAIHZvaWQgVmlzaWJsZVNlbGVjdGlvbjo6
c2V0V2l0aG91dFZhbGlkYXRpb24oY29uc3QgUG9zaXRpb24mIGJhc2UsIGNvbnN0IFBvc2l0aW9u
CiAgICAgbV9zZWxlY3Rpb25UeXBlID0gYmFzZSA9PSBleHRlbnQgPyBDYXJldFNlbGVjdGlvbiA6
IFJhbmdlU2VsZWN0aW9uOwogfQogCitzdGF0aWMgUG9zaXRpb24gYWRqdXN0UG9zaXRpb25Gb3JF
bmQoY29uc3QgUG9zaXRpb24mIGN1cnJlbnRQb3NpdGlvbiwgTm9kZSogc3RhcnRDb250YWluZXJO
b2RlKQoreworICAgIFRyZWVTY29wZSogdHJlZVNjb3BlID0gc3RhcnRDb250YWluZXJOb2RlLT50
cmVlU2NvcGUoKTsKKworICAgIEFTU0VSVChjdXJyZW50UG9zaXRpb24uY29udGFpbmVyTm9kZSgp
LT50cmVlU2NvcGUoKSAhPSB0cmVlU2NvcGUpOworCisgICAgaWYgKE5vZGUqIGFuY2VzdG9yID0g
dHJlZVNjb3BlLT5hbmNlc3RvckluVGhpc1Njb3BlKGN1cnJlbnRQb3NpdGlvbi5jb250YWluZXJO
b2RlKCkpKSB7CisgICAgICAgIGlmIChhbmNlc3Rvci0+Y29udGFpbnMoc3RhcnRDb250YWluZXJO
b2RlKSkKKyAgICAgICAgICAgIHJldHVybiBwb3NpdGlvbkFmdGVyTm9kZShhbmNlc3Rvcik7Cisg
ICAgICAgIHJldHVybiBwb3NpdGlvbkJlZm9yZU5vZGUoYW5jZXN0b3IpOworICAgIH0KKworICAg
IGlmIChOb2RlKiBsYXN0Q2hpbGQgPSB0cmVlU2NvcGUtPnJvb3ROb2RlKCktPmxhc3RDaGlsZCgp
KQorICAgICAgICByZXR1cm4gcG9zaXRpb25BZnRlck5vZGUobGFzdENoaWxkKTsKKworICAgIHJl
dHVybiBQb3NpdGlvbigpOworfQorCitzdGF0aWMgUG9zaXRpb24gYWRqdXN0UG9zaXRpb25Gb3JT
dGFydChjb25zdCBQb3NpdGlvbiYgY3VycmVudFBvc2l0aW9uLCBOb2RlKiBlbmRDb250YWluZXJO
b2RlKQoreworICAgIFRyZWVTY29wZSogdHJlZVNjb3BlID0gZW5kQ29udGFpbmVyTm9kZS0+dHJl
ZVNjb3BlKCk7CisKKyAgICBBU1NFUlQoY3VycmVudFBvc2l0aW9uLmNvbnRhaW5lck5vZGUoKS0+
dHJlZVNjb3BlKCkgIT0gdHJlZVNjb3BlKTsKKyAgICAKKyAgICBpZiAoTm9kZSogYW5jZXN0b3Ig
PSB0cmVlU2NvcGUtPmFuY2VzdG9ySW5UaGlzU2NvcGUoY3VycmVudFBvc2l0aW9uLmNvbnRhaW5l
ck5vZGUoKSkpIHsKKyAgICAgICAgaWYgKGFuY2VzdG9yLT5jb250YWlucyhlbmRDb250YWluZXJO
b2RlKSkKKyAgICAgICAgICAgIHJldHVybiBwb3NpdGlvbkJlZm9yZU5vZGUoYW5jZXN0b3IpOwor
ICAgICAgICByZXR1cm4gcG9zaXRpb25BZnRlck5vZGUoYW5jZXN0b3IpOworICAgIH0KKworICAg
IGlmIChOb2RlKiBmaXJzdENoaWxkID0gdHJlZVNjb3BlLT5yb290Tm9kZSgpLT5maXJzdENoaWxk
KCkpCisgICAgICAgIHJldHVybiBwb3NpdGlvbkJlZm9yZU5vZGUoZmlyc3RDaGlsZCk7CisKKyAg
ICByZXR1cm4gUG9zaXRpb24oKTsKK30KKwogdm9pZCBWaXNpYmxlU2VsZWN0aW9uOjphZGp1c3RT
ZWxlY3Rpb25Ub0F2b2lkQ3Jvc3NpbmdTaGFkb3dCb3VuZGFyaWVzKCkKIHsKICAgICBpZiAobV9i
YXNlLmlzTnVsbCgpIHx8IG1fc3RhcnQuaXNOdWxsKCkgfHwgbV9lbmQuaXNOdWxsKCkpCkBAIC00
OTIsMTAgKzUwNiwxMCBAQCB2b2lkIFZpc2libGVTZWxlY3Rpb246OmFkanVzdFNlbGVjdGlvblRv
QXZvaWRDcm9zc2luZ1NoYWRvd0JvdW5kYXJpZXMoKQogICAgICAgICByZXR1cm47CiAKICAgICBp
ZiAobV9iYXNlSXNGaXJzdCkgewotICAgICAgICBtX2V4dGVudCA9IGFkanVzdFBvc2l0aW9uQmVm
b3JlKG1fc3RhcnQuYW5jaG9yTm9kZSgpLT50cmVlU2NvcGUoKSwgbV9lbmQpOworICAgICAgICBt
X2V4dGVudCA9IGFkanVzdFBvc2l0aW9uRm9yRW5kKG1fZW5kLCBtX3N0YXJ0LmNvbnRhaW5lck5v
ZGUoKSk7CiAgICAgICAgIG1fZW5kID0gbV9leHRlbnQ7CiAgICAgfSBlbHNlIHsKLSAgICAgICAg
bV9leHRlbnQgPSBhZGp1c3RQb3NpdGlvbkFmdGVyKG1fZW5kLmFuY2hvck5vZGUoKS0+dHJlZVNj
b3BlKCksIG1fc3RhcnQpOworICAgICAgICBtX2V4dGVudCA9IGFkanVzdFBvc2l0aW9uRm9yU3Rh
cnQobV9zdGFydCwgbV9lbmQuY29udGFpbmVyTm9kZSgpKTsKICAgICAgICAgbV9zdGFydCA9IG1f
ZXh0ZW50OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNp
YmxlU2VsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24u
aAppbmRleCAyMTk5OWJiM2NhZDRjMzQ1YTE5YWVjMzRkNjdlOWU1NGNiYmM2ZDIxLi44YzgxMGRh
NGRkMTk3ZTMxY2Y2YTVmNmY4YjhiODgyNjI5N2JiN2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1Zpc2libGVTZWxlY3Rpb24uaApAQCAtMTIyLDkgKzEyMiw2IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBhZGp1c3RTZWxlY3Rpb25Ub0F2b2lkQ3Jvc3NpbmdFZGl0aW5nQm91bmRhcmllcygpOwog
ICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uVHlwZSgpOwogCi0gICAgUG9zaXRpb24gYWRqdXN0UG9z
aXRpb25CZWZvcmUoVHJlZVNjb3BlKiwgY29uc3QgUG9zaXRpb24mKTsKLSAgICBQb3NpdGlvbiBh
ZGp1c3RQb3NpdGlvbkFmdGVyKFRyZWVTY29wZSosIGNvbnN0IFBvc2l0aW9uJik7Ci0KICAgICAv
LyBXZSBuZWVkIHRvIHN0b3JlIHRoZXNlIGFzIFBvc2l0aW9ucyBiZWNhdXNlIFZpc2libGVTZWxl
Y3Rpb24gaXMKICAgICAvLyB1c2VkIHRvIHN0b3JlIHZhbHVlcyBpbiBlZGl0aW5nIGNvbW1hbmRz
IGZvciB1c2Ugd2hlbgogICAgIC8vIHVuZG9pbmcgdGhlIGNvbW1hbmQuIFdlIG5lZWQgdG8gYmUg
YWJsZSB0byBjcmVhdGUgYSBzZWxlY3Rpb24gdGhhdCwgd2hpbGUgY3VycmVudGx5CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
MzI1ZDY3MTQ1NWQ5MDRkMzEwNjRiZmE2YTNjNGFlMWFkYjBiNzNkMy4uYTVmY2JkYTE0NTA2OGQ4
MmQzYmVkZDQ1OTRkYjA5MzdjZTA0MjkxMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA2
LTA3ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBb
Q3Jhc2hdW0VkaXRpbmddIFZpc2libGVTZWxlY3Rpb246OmFkanVzdFNlbGVjdGlvblRvQXZvaWRD
cm9zc2luZ0VkaXRpbmdCb3VuZGFyaWVzKCkgY3Jhc2hlcyBpbiBzb21lIFNoYWRvdyBET00gY2Fz
ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4NTAw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBlZGl0
aW5nL3NoYWRvdy9icmVha2luZy1lZGl0aW5nLWJvdW5kYXJpZXMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBlZGl0aW5nL3NoYWRvdy9icmVha2luZy1lZGl0aW5nLWJvdW5kYXJpZXMu
aHRtbDogQWRkZWQuCisKIDIwMTItMDYtMTMgIE1pbiBRaW4gIDxxaW5taW5AZ29vZ2xlLmNvbT4K
IAogICAgICAgICBBZGRyZXNzIHNvbWUgZmVlZGJhY2tzIGluIGxheW91dCB0ZXN0CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9icmVha2luZy1lZGl0aW5nLWJvdW5kYXJp
ZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvYnJlYWtpbmctZWRp
dGluZy1ib3VuZGFyaWVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kYWFmOWQzZGUxMDEwNTlj
OTZhNjg5ZTQ2ODBlYmVkMWJlNzk5OTkyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9zaGFkb3cvYnJlYWtpbmctZWRpdGluZy1ib3VuZGFyaWVzLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDkgQEAKK1doZW4gc2VsZWN0aW5nIGZyb20gYSBjaGlsZCBvZiBzaGFkb3cgaG9z
dCB0byBhbiBlbGVtZW50IGluIFNoYWRvdyBET00sIGEgY3Jhc2ggc2hvdWxkIG5vdCBiZSBjYXVz
ZWQuIFRoaXMgaXMgYmVjYXVzZSB0aGUgc3RhcnQgcG9zaXRpb24gb2YgU2VsZWN0aW9uIGNvbWVz
IGFmdGVyIHRoZSBlbmQgcG9zaXRpb24gb2YgU2VsZWN0aW9uLgorCitCRUZPUkUKK0RSQUcgRlJP
TSBIRVJFIAorUEFTUworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2JyZWFraW5n
LWVkaXRpbmctYm91bmRhcmllcy5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvYnJl
YWtpbmctZWRpdGluZy1ib3VuZGFyaWVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTA5NDRhNDgzMzM3MzQ3
YWViZTZjMzIyNTE4ZDYwNTIwMTZiYjI0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2VkaXRpbmcvc2hhZG93L2JyZWFraW5nLWVkaXRpbmctYm91bmRhcmllcy5odG1sCkBAIC0wLDAg
KzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9mYXN0L2RvbS9zaGFkb3cvcmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2RvbS9yZXNvdXJjZXMvZXZlbnQtc2VuZGVyLXV0aWwuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKworPHA+V2hlbiBzZWxlY3RpbmcgZnJvbSBhIGNoaWxkIG9mIHNo
YWRvdyBob3N0IHRvIGFuIGVsZW1lbnQgaW4gU2hhZG93IERPTSwgYSBjcmFzaCBzaG91bGQgbm90
IGJlIGNhdXNlZC4KK1RoaXMgaXMgYmVjYXVzZSB0aGUgc3RhcnQgcG9zaXRpb24gb2YgU2VsZWN0
aW9uIGNvbWVzIGFmdGVyIHRoZSBlbmQgcG9zaXRpb24gb2YgU2VsZWN0aW9uLjwvcD4KKworPGRp
diBjb250ZW50ZWRpdGFibGU+CisgICAgQkVGT1JFPGRpdiBpZD0iaG9zdCIgY29udGVudGVkaXRh
YmxlPSJmYWxzZSI+RFJBRyBGUk9NIEhFUkU8c3BhbiBpZD0idGFyZ2V0Ij4gPC9zcGFuPjwvZGl2
PgorPC9kaXY+Cis8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKworPHNjcmlwdD4KK3ZhciBzaGFk
b3dSb290ID0gbmV3IFdlYktpdFNoYWRvd1Jvb3QoaG9zdCk7CitzaGFkb3dSb290LmlubmVySFRN
TCA9ICI8ZGl2IGlkPSdzaGFkb3ctaG9zdCc+QkVGT1JFIFNIQURPVzxzaGFkb3cgaWQ9J3NoYWRv
dyc+PC9zaGFkb3c+QUZURVIgU0hBRE9XPC9kaXY+IgorCit2YXIgbmVzdGVkU2hhZG93SG9zdCA9
IHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoJ3NoYWRvdy1ob3N0Jyk7Cit2YXIgbmVzdGVkU2hh
ZG93Um9vdCA9IG5ldyBXZWJLaXRTaGFkb3dSb290KG5lc3RlZFNoYWRvd0hvc3QpOworbmVzdGVk
U2hhZG93Um9vdC5pbm5lckhUTUwgPSAiPGRpdiBjb250ZW50ZWRpdGFibGU+QkVGT1JFIE5FU1RF
RDxzaGFkb3c+PC9zaGFkb3c+QUZURVIgTkVTVEVEPC9kaXY+IgorCisvLyBUaGlzIHNob3VsZCBu
b3QgY2F1c2UgYSBjcmFzaC4KK2V2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHRhcmdldC5vZmZzZXRM
ZWZ0IC0gMTAsIHRhcmdldC5vZmZzZXRUb3AgKyB0YXJnZXQub2Zmc2V0SGVpZ2h0IC8gMik7Citl
dmVudFNlbmRlci5tb3VzZURvd24oKTsKK21vdXNlTW92ZVRvRWxlbShuZXN0ZWRTaGFkb3dIb3N0
KTsKK2V2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK2RlYnVnKCdQQVNTJyk7CisKK3ZhciBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147726</attachid>
            <date>2012-06-14 21:59:47 -0700</date>
            <delta_ts>2012-06-14 22:00:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88500-20120615135946.patch</filename>
            <type>text/plain</type>
            <size>9822</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMzg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTQ2MjRiNmU2N2M5ZjIx
MDMzY2NiMTVmMjc5ZGQ4NGNjZjE2ZGQxYy4uZTJjNWI5ZTc5ZmY2YmM3OWQwNGRkNmZkYjVlODk3
ZWJjNWYxMjhmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTA2LTA3ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ3Jhc2hdW0Vk
aXRpbmddIFZpc2libGVTZWxlY3Rpb246OmFkanVzdFNlbGVjdGlvblRvQXZvaWRDcm9zc2luZ0Vk
aXRpbmdCb3VuZGFyaWVzKCkgY3Jhc2hlcyBpbiBzb21lIFNoYWRvdyBET00gY2FzZS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4NTAwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBzZWxlY3Rpbmcg
ZnJvbSBhIGNoaWxkIG9mIHNoYWRvdyBob3N0IHRvIGFuIGVsZW1lbnQgaW4gU2hhZG93IERPTSwg
dGhlIHN0YXJ0IHBvc2l0aW9uIG9mCisgICAgICAgIFNlbGVjdGlvbiBjb21lcyBhZnRlciB0aGUg
ZW5kIHBvc2l0aW9uIG9mIFNlbGVjdGlvbiBpbiBzb21lIGNhc2VzLiBUaGlzIGNhdXNlZCBhIGNy
YXNoLgorCisgICAgICAgIEZvciBleGFtcGxlLCBsZXQncyB0aGluayAnPGRpdiBpZD0iaG9zdCI+
QTwvZGl2PkQnIGFuZCBob3N0IGhhcyBhIFNoYWRvdyBET00gd2hvc2UgaW5uZXJIVE1MIGlzCisg
ICAgICAgICdCPGNvbnRlbnQ+PC9jb250ZW50PkMnLiBXaGVuIHNlbGVjdGluZyBmcm9tIGp1c3Qg
YWZ0ZXIgQSAocDEgPSAoUG9zaXRpb25Jc09mZnNldEluQW5jaG9yLCBkaXYsIDEpKSB0bworICAg
ICAgICBCIChwMiA9IChQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IsIHNoYWRvd1Jvb3QsIDApKSwg
c2luY2UgY29tcGFyZVBvc2l0aW9uIGFsd2F5cyBqdWRnZSBhcyBwMiBpcworICAgICAgICBiZWZv
cmUgcDEsIG1fc3RhcnQgYW5kIG1fZW5kIGluIFZpc2libGVTZWxlY3Rpb24gd2lsbCBiZSBwMiBh
bmQgcDEgcmVzcGVjdGl2ZWx5LgorCisgICAgICAgIEhvd2V2ZXIsIHRoZSBhbmNob3JOb2RlcyBv
ZiBwMSBhbmQgcDIgaGF2ZSB0aGUgZGlmZmVyZW50IHRyZWUgc2NvcGUsIHdlIGhhdmUgdG8gYWRq
dXN0IHAyIHRvIHRoZSBzYW1lCisgICAgICAgIHRyZWUgc2NvcGUgYXMgcDEuIFNpbmNlIHAyIGlz
IG1fc3RhcnQsIG1fc3RhcnQgd2FzIGFkanVzdGVkIHRvIHBvc2l0aW9uQWZ0ZXJOb2RlKGRpdiku
IFRoaXMgYnJlYWtzCisgICAgICAgIHRoZSBhc3N1bXB0aW9uIHRoYXQgbV9zdGFydCBpcyBhbHdh
eXMgYmVmb3JlIChvciBlcXVhbCB0bykgbV9lbmQuCisKKyAgICAgICAgVGhpcyBwYXRjaCBrZWVw
cyB0aGUgYXNzdW1wdGlvbi4gV2hlbiB3ZSBjYW5ub3QgbW92ZSBtX3N0YXJ0IHRvIHBvc2l0aW9u
QWZ0ZXJOb2RlKGRpdiksIHdlIG1vdmUgbV9zdGFydAorICAgICAgICB0byBwb3NpdGlvbkJlZm9y
ZU5vZGUoZGl2KS4gTm90ZSB0aGF0IHdlIGNhbm5vdCBhbHdheXMgbW92ZSBtX3N0YXJ0IHRvIHBv
c2l0aW9uQmVmb3JlTm9kZShkaXYpLCBiZWNhdXNlCisgICAgICAgIHdoZW4gc2VsZWN0aW5nIGp1
c3QgYWZ0ZXIgRCAocDMgPSAoUG9zaXRpb25Jc09mZnNldEluQW5jaG9yLCBEJ3MgcGFyZW50LCAy
KSwgd2UgZG9uJ3Qgd2FudCB0byBzZWxlY3QgQS4KKyAgICAgICAgSW4gdGhpcyBjYXNlLCBtX3N0
YXJ0IHNob3VsZCBiZSBhZGp1c3RlZCB0byBwb3NpdGlvbkFmdGVyTm9kZShkaXYpLgorCisgICAg
ICAgIFRlc3Q6IGVkaXRpbmcvc2hhZG93L2JyZWFraW5nLWVkaXRpbmctYm91bmRhcmllcy5odG1s
CisKKyAgICAgICAgKiBlZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6YWRqdXN0UG9zaXRpb25Gb3JFbmQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjphZGp1c3RQb3NpdGlvbkZvclN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlZp
c2libGVTZWxlY3Rpb246OmFkanVzdFNlbGVjdGlvblRvQXZvaWRDcm9zc2luZ1NoYWRvd0JvdW5k
YXJpZXMpOgorICAgICAgICAqIGVkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5oOgorICAgICAgICAo
VmlzaWJsZVNlbGVjdGlvbik6CisKIDIwMTItMDYtMTQgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFtKU0MvVjhdICJET01TdHJpbmdbXSIgZm9yIGZ1bmN0aW9u
IHJldHVybiB2YWx1ZXMgc2hvdWxkIG5vdCBiZSBudWxsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9WaXNpYmxlU2VsZWN0aW9uLmNwcAppbmRleCAxMWI5MDE1NDEyZjExZjg2ODBlMDM1YmM5Nzc4
NjdjY2FkMjhkOTAyLi40ODFjZDEzMGFmMWIyNjRjMTgxZjFmZTNmNDhkM2RlOTc3N2RhODY1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAKQEAgLTQxMCwy
OCArNDEwLDYgQEAgdm9pZCBWaXNpYmxlU2VsZWN0aW9uOjp1cGRhdGVTZWxlY3Rpb25UeXBlKCkK
ICAgICAgICAgbV9hZmZpbml0eSA9IERPV05TVFJFQU07CiB9CiAKLVBvc2l0aW9uIFZpc2libGVT
ZWxlY3Rpb246OmFkanVzdFBvc2l0aW9uQmVmb3JlKFRyZWVTY29wZSogdHJlZVNjb3BlLCBjb25z
dCBQb3NpdGlvbiYgY3VycmVudFBvc2l0aW9uKQotewotICAgIGlmIChOb2RlKiBhbmNlc3RvciA9
IHRyZWVTY29wZS0+YW5jZXN0b3JJblRoaXNTY29wZShjdXJyZW50UG9zaXRpb24uYW5jaG9yTm9k
ZSgpKSkKLSAgICAgICAgcmV0dXJuIHBvc2l0aW9uQmVmb3JlTm9kZShhbmNlc3Rvcik7Ci0KLSAg
ICBpZiAoTm9kZSogbGFzdENoaWxkID0gdHJlZVNjb3BlLT5yb290Tm9kZSgpLT5sYXN0Q2hpbGQo
KSkKLSAgICAgICAgcmV0dXJuIHBvc2l0aW9uQWZ0ZXJOb2RlKGxhc3RDaGlsZCk7Ci0KLSAgICBy
ZXR1cm4gUG9zaXRpb24oKTsKLX0KLQotUG9zaXRpb24gVmlzaWJsZVNlbGVjdGlvbjo6YWRqdXN0
UG9zaXRpb25BZnRlcihUcmVlU2NvcGUqIHRyZWVTY29wZSwgY29uc3QgUG9zaXRpb24mIGN1cnJl
bnRQb3NpdGlvbikKLXsKLSAgICBpZiAoTm9kZSogYW5jZXN0b3IgPSB0cmVlU2NvcGUtPmFuY2Vz
dG9ySW5UaGlzU2NvcGUoY3VycmVudFBvc2l0aW9uLmFuY2hvck5vZGUoKSkpCi0gICAgICAgIHJl
dHVybiBwb3NpdGlvbkFmdGVyTm9kZShhbmNlc3Rvcik7Ci0KLSAgICBpZiAoTm9kZSogZmlyc3RD
aGlsZCA9IHRyZWVTY29wZS0+cm9vdE5vZGUoKS0+Zmlyc3RDaGlsZCgpKQotICAgICAgICByZXR1
cm4gcG9zaXRpb25CZWZvcmVOb2RlKGZpcnN0Q2hpbGQpOwotCi0gICAgcmV0dXJuIFBvc2l0aW9u
KCk7Ci19Ci0KIHZvaWQgVmlzaWJsZVNlbGVjdGlvbjo6dmFsaWRhdGUoVGV4dEdyYW51bGFyaXR5
IGdyYW51bGFyaXR5KQogewogICAgIHNldEJhc2VBbmRFeHRlbnRUb0RlZXBFcXVpdmFsZW50cygp
OwpAQCAtNDgzLDYgKzQ2MSw0MiBAQCB2b2lkIFZpc2libGVTZWxlY3Rpb246OnNldFdpdGhvdXRW
YWxpZGF0aW9uKGNvbnN0IFBvc2l0aW9uJiBiYXNlLCBjb25zdCBQb3NpdGlvbgogICAgIG1fc2Vs
ZWN0aW9uVHlwZSA9IGJhc2UgPT0gZXh0ZW50ID8gQ2FyZXRTZWxlY3Rpb24gOiBSYW5nZVNlbGVj
dGlvbjsKIH0KIAorc3RhdGljIFBvc2l0aW9uIGFkanVzdFBvc2l0aW9uRm9yRW5kKGNvbnN0IFBv
c2l0aW9uJiBjdXJyZW50UG9zaXRpb24sIE5vZGUqIHN0YXJ0Q29udGFpbmVyTm9kZSkKK3sKKyAg
ICBUcmVlU2NvcGUqIHRyZWVTY29wZSA9IHN0YXJ0Q29udGFpbmVyTm9kZS0+dHJlZVNjb3BlKCk7
CisKKyAgICBBU1NFUlQoY3VycmVudFBvc2l0aW9uLmNvbnRhaW5lck5vZGUoKS0+dHJlZVNjb3Bl
KCkgIT0gdHJlZVNjb3BlKTsKKworICAgIGlmIChOb2RlKiBhbmNlc3RvciA9IHRyZWVTY29wZS0+
YW5jZXN0b3JJblRoaXNTY29wZShjdXJyZW50UG9zaXRpb24uY29udGFpbmVyTm9kZSgpKSkgewor
ICAgICAgICBpZiAoYW5jZXN0b3ItPmNvbnRhaW5zKHN0YXJ0Q29udGFpbmVyTm9kZSkpCisgICAg
ICAgICAgICByZXR1cm4gcG9zaXRpb25BZnRlck5vZGUoYW5jZXN0b3IpOworICAgICAgICByZXR1
cm4gcG9zaXRpb25CZWZvcmVOb2RlKGFuY2VzdG9yKTsKKyAgICB9CisKKyAgICBpZiAoTm9kZSog
bGFzdENoaWxkID0gdHJlZVNjb3BlLT5yb290Tm9kZSgpLT5sYXN0Q2hpbGQoKSkKKyAgICAgICAg
cmV0dXJuIHBvc2l0aW9uQWZ0ZXJOb2RlKGxhc3RDaGlsZCk7CisKKyAgICByZXR1cm4gUG9zaXRp
b24oKTsKK30KKworc3RhdGljIFBvc2l0aW9uIGFkanVzdFBvc2l0aW9uRm9yU3RhcnQoY29uc3Qg
UG9zaXRpb24mIGN1cnJlbnRQb3NpdGlvbiwgTm9kZSogZW5kQ29udGFpbmVyTm9kZSkKK3sKKyAg
ICBUcmVlU2NvcGUqIHRyZWVTY29wZSA9IGVuZENvbnRhaW5lck5vZGUtPnRyZWVTY29wZSgpOwor
CisgICAgQVNTRVJUKGN1cnJlbnRQb3NpdGlvbi5jb250YWluZXJOb2RlKCktPnRyZWVTY29wZSgp
ICE9IHRyZWVTY29wZSk7CisgICAgCisgICAgaWYgKE5vZGUqIGFuY2VzdG9yID0gdHJlZVNjb3Bl
LT5hbmNlc3RvckluVGhpc1Njb3BlKGN1cnJlbnRQb3NpdGlvbi5jb250YWluZXJOb2RlKCkpKSB7
CisgICAgICAgIGlmIChhbmNlc3Rvci0+Y29udGFpbnMoZW5kQ29udGFpbmVyTm9kZSkpCisgICAg
ICAgICAgICByZXR1cm4gcG9zaXRpb25CZWZvcmVOb2RlKGFuY2VzdG9yKTsKKyAgICAgICAgcmV0
dXJuIHBvc2l0aW9uQWZ0ZXJOb2RlKGFuY2VzdG9yKTsKKyAgICB9CisKKyAgICBpZiAoTm9kZSog
Zmlyc3RDaGlsZCA9IHRyZWVTY29wZS0+cm9vdE5vZGUoKS0+Zmlyc3RDaGlsZCgpKQorICAgICAg
ICByZXR1cm4gcG9zaXRpb25CZWZvcmVOb2RlKGZpcnN0Q2hpbGQpOworCisgICAgcmV0dXJuIFBv
c2l0aW9uKCk7Cit9CisKIHZvaWQgVmlzaWJsZVNlbGVjdGlvbjo6YWRqdXN0U2VsZWN0aW9uVG9B
dm9pZENyb3NzaW5nU2hhZG93Qm91bmRhcmllcygpCiB7CiAgICAgaWYgKG1fYmFzZS5pc051bGwo
KSB8fCBtX3N0YXJ0LmlzTnVsbCgpIHx8IG1fZW5kLmlzTnVsbCgpKQpAQCAtNDkyLDEwICs1MDYs
MTAgQEAgdm9pZCBWaXNpYmxlU2VsZWN0aW9uOjphZGp1c3RTZWxlY3Rpb25Ub0F2b2lkQ3Jvc3Np
bmdTaGFkb3dCb3VuZGFyaWVzKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1fYmFzZUlz
Rmlyc3QpIHsKLSAgICAgICAgbV9leHRlbnQgPSBhZGp1c3RQb3NpdGlvbkJlZm9yZShtX3N0YXJ0
LmFuY2hvck5vZGUoKS0+dHJlZVNjb3BlKCksIG1fZW5kKTsKKyAgICAgICAgbV9leHRlbnQgPSBh
ZGp1c3RQb3NpdGlvbkZvckVuZChtX2VuZCwgbV9zdGFydC5jb250YWluZXJOb2RlKCkpOwogICAg
ICAgICBtX2VuZCA9IG1fZXh0ZW50OwogICAgIH0gZWxzZSB7Ci0gICAgICAgIG1fZXh0ZW50ID0g
YWRqdXN0UG9zaXRpb25BZnRlcihtX2VuZC5hbmNob3JOb2RlKCktPnRyZWVTY29wZSgpLCBtX3N0
YXJ0KTsKKyAgICAgICAgbV9leHRlbnQgPSBhZGp1c3RQb3NpdGlvbkZvclN0YXJ0KG1fc3RhcnQs
IG1fZW5kLmNvbnRhaW5lck5vZGUoKSk7CiAgICAgICAgIG1fc3RhcnQgPSBtX2V4dGVudDsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmgKaW5kZXggMjE5
OTliYjNjYWQ0YzM0NWExOWFlYzM0ZDY3ZTllNTRjYmJjNmQyMS4uOGM4MTBkYTRkZDE5N2UzMWNm
NmE1ZjZmOGI4Yjg4MjYyOTdiYjdlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9WaXNpYmxlU2VsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxl
U2VsZWN0aW9uLmgKQEAgLTEyMiw5ICsxMjIsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgYWRqdXN0
U2VsZWN0aW9uVG9Bdm9pZENyb3NzaW5nRWRpdGluZ0JvdW5kYXJpZXMoKTsKICAgICB2b2lkIHVw
ZGF0ZVNlbGVjdGlvblR5cGUoKTsKIAotICAgIFBvc2l0aW9uIGFkanVzdFBvc2l0aW9uQmVmb3Jl
KFRyZWVTY29wZSosIGNvbnN0IFBvc2l0aW9uJik7Ci0gICAgUG9zaXRpb24gYWRqdXN0UG9zaXRp
b25BZnRlcihUcmVlU2NvcGUqLCBjb25zdCBQb3NpdGlvbiYpOwotCiAgICAgLy8gV2UgbmVlZCB0
byBzdG9yZSB0aGVzZSBhcyBQb3NpdGlvbnMgYmVjYXVzZSBWaXNpYmxlU2VsZWN0aW9uIGlzCiAg
ICAgLy8gdXNlZCB0byBzdG9yZSB2YWx1ZXMgaW4gZWRpdGluZyBjb21tYW5kcyBmb3IgdXNlIHdo
ZW4KICAgICAvLyB1bmRvaW5nIHRoZSBjb21tYW5kLiBXZSBuZWVkIHRvIGJlIGFibGUgdG8gY3Jl
YXRlIGEgc2VsZWN0aW9uIHRoYXQsIHdoaWxlIGN1cnJlbnRseQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDhhOGI4MGMwZGY1
Zjc2MWI4YjViZmI1MTg2OTAwZGE4YmVkODVhZWIuLjMxOWQ5ZDBlODgzYmIyMTIwNjc2ZmQ0MDE3
MjgxOGVlNmViY2QyN2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wNi0wNyAgU2hpbnlh
IEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0NyYXNoXVtFZGl0
aW5nXSBWaXNpYmxlU2VsZWN0aW9uOjphZGp1c3RTZWxlY3Rpb25Ub0F2b2lkQ3Jvc3NpbmdFZGl0
aW5nQm91bmRhcmllcygpIGNyYXNoZXMgaW4gc29tZSBTaGFkb3cgRE9NIGNhc2UuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODUwMAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZWRpdGluZy9zaGFkb3cv
YnJlYWtpbmctZWRpdGluZy1ib3VuZGFyaWVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZWRpdGluZy9zaGFkb3cvYnJlYWtpbmctZWRpdGluZy1ib3VuZGFyaWVzLmh0bWw6IEFkZGVk
LgorCiAyMDEyLTA2LTE0ICBEYWxlIEN1cnRpcyAgPGRhbGVjdXJ0aXNAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIERpc2FibGUgY2xpY2svZGJsLWNsaWNrIG9uIE1lZGlhRG9jdW1lbnQgZm9yIENo
cm9taXVtLiBGaXggbGF5b3V0IHRlc3QgZm9yIGFsbCBwbGF0Zm9ybXMuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9icmVha2luZy1lZGl0aW5nLWJvdW5kYXJpZXMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvYnJlYWtpbmctZWRpdGluZy1i
b3VuZGFyaWVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NjAxZDkwZTUzODRmYTY1ZmYxZjNm
MTg0ZTFlMTIxMTZjMDg1YWM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zaGFkb3cvYnJlYWtpbmctZWRpdGluZy1ib3VuZGFyaWVzLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDggQEAKK1doZW4gc2VsZWN0aW5nIGZyb20gYSBjaGlsZCBvZiBzaGFkb3cgaG9zdCB0byBh
biBlbGVtZW50IGluIFNoYWRvdyBET00sIGEgY3Jhc2ggc2hvdWxkIG5vdCBiZSBjYXVzZWQuIFRo
aXMgaXMgYmVjYXVzZSB0aGUgc3RhcnQgcG9zaXRpb24gb2YgU2VsZWN0aW9uIGNvbWVzIGFmdGVy
IHRoZSBlbmQgcG9zaXRpb24gb2YgU2VsZWN0aW9uLgorCitCRUZPUkVEUkFHIEZST00gSEVSRSBG
T08gQkFSCitQQVNTCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvYnJlYWtpbmct
ZWRpdGluZy1ib3VuZGFyaWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9icmVh
a2luZy1lZGl0aW5nLWJvdW5kYXJpZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZjE1MWI2MmFkODI3NGE0
NzRiNDNhYTVkMWMyN2M5Yzg2MGZhYWJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9zaGFkb3cvYnJlYWtpbmctZWRpdGluZy1ib3VuZGFyaWVzLmh0bWwKQEAgLTAsMCAr
MSwzNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2Zhc3QvZG9tL3Jlc291cmNlcy9ldmVudC1zZW5kZXItdXRpbC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorCis8cD5XaGVuIHNlbGVjdGluZyBmcm9tIGEgY2hpbGQgb2Ygc2hh
ZG93IGhvc3QgdG8gYW4gZWxlbWVudCBpbiBTaGFkb3cgRE9NLCBhIGNyYXNoIHNob3VsZCBub3Qg
YmUgY2F1c2VkLgorVGhpcyBpcyBiZWNhdXNlIHRoZSBzdGFydCBwb3NpdGlvbiBvZiBTZWxlY3Rp
b24gY29tZXMgYWZ0ZXIgdGhlIGVuZCBwb3NpdGlvbiBvZiBTZWxlY3Rpb24uPC9wPgorCis8ZGl2
IGNvbnRlbnRlZGl0YWJsZT4KKyAgICBCRUZPUkU8c3BhbiBpZD0iaG9zdCIgY29udGVudGVkaXRh
YmxlPSJmYWxzZSI+RFJBRyBGUk9NIEhFUkU8c3BhbiBpZD0idGFyZ2V0Ij4gPC9zcGFuPkZPTyBC
QVI8L3NwYW4+Cis8L2Rpdj4KKzxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorCis8c2NyaXB0Pgor
dmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChob3N0KTsKK3NoYWRvd1Jvb3Qu
aW5uZXJIVE1MID0gIjxzcGFuIGlkPSdzaGFkb3ctaG9zdCc+QkVGT1JFIFNIQURPVzxzaGFkb3cg
aWQ9J3NoYWRvdyc+PC9zaGFkb3c+QUZURVIgU0hBRE9XPC9zcGFuPiIKKwordmFyIG5lc3RlZFNo
YWRvd0hvc3QgPSBzaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCdzaGFkb3ctaG9zdCcpOwordmFy
IG5lc3RlZFNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChuZXN0ZWRTaGFkb3dIb3N0
KTsKK25lc3RlZFNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxzcGFuIGNvbnRlbnRlZGl0YWJsZT5C
RUZPUkUgTkVTVEVEPHNoYWRvdz48L3NoYWRvdz5BRlRFUiBORVNURUQ8L3NwYW4+IgorCisvLyBU
aGlzIHNob3VsZCBub3QgY2F1c2UgYSBjcmFzaC4KK2V2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHRh
cmdldC5vZmZzZXRMZWZ0IC0gMTAsIHRhcmdldC5vZmZzZXRUb3AgKyB0YXJnZXQub2Zmc2V0SGVp
Z2h0IC8gMik7CitldmVudFNlbmRlci5tb3VzZURvd24oKTsKK2ludGVybmFscy5hZGRyZXNzKGRv
Y3VtZW50KTsKK2V2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKG5lc3RlZFNoYWRvd0hvc3Qub2Zmc2V0
TGVmdCArIDEwLCBuZXN0ZWRTaGFkb3dIb3N0Lm9mZnNldFRvcCArIG5lc3RlZFNoYWRvd0hvc3Qu
b2Zmc2V0SGVpZ2h0IC8gMik7CitldmVudFNlbmRlci5tb3VzZVVwKCk7CitkZWJ1ZygnUEFTUycp
OworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorCis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147727</attachid>
            <date>2012-06-14 22:00:22 -0700</date>
            <delta_ts>2012-06-18 11:46:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-88500-20120615140021.patch</filename>
            <type>text/plain</type>
            <size>9792</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMzg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTQ2MjRiNmU2N2M5ZjIx
MDMzY2NiMTVmMjc5ZGQ4NGNjZjE2ZGQxYy4uZTJjNWI5ZTc5ZmY2YmM3OWQwNGRkNmZkYjVlODk3
ZWJjNWYxMjhmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTA2LTA3ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ3Jhc2hdW0Vk
aXRpbmddIFZpc2libGVTZWxlY3Rpb246OmFkanVzdFNlbGVjdGlvblRvQXZvaWRDcm9zc2luZ0Vk
aXRpbmdCb3VuZGFyaWVzKCkgY3Jhc2hlcyBpbiBzb21lIFNoYWRvdyBET00gY2FzZS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4NTAwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBzZWxlY3Rpbmcg
ZnJvbSBhIGNoaWxkIG9mIHNoYWRvdyBob3N0IHRvIGFuIGVsZW1lbnQgaW4gU2hhZG93IERPTSwg
dGhlIHN0YXJ0IHBvc2l0aW9uIG9mCisgICAgICAgIFNlbGVjdGlvbiBjb21lcyBhZnRlciB0aGUg
ZW5kIHBvc2l0aW9uIG9mIFNlbGVjdGlvbiBpbiBzb21lIGNhc2VzLiBUaGlzIGNhdXNlZCBhIGNy
YXNoLgorCisgICAgICAgIEZvciBleGFtcGxlLCBsZXQncyB0aGluayAnPGRpdiBpZD0iaG9zdCI+
QTwvZGl2PkQnIGFuZCBob3N0IGhhcyBhIFNoYWRvdyBET00gd2hvc2UgaW5uZXJIVE1MIGlzCisg
ICAgICAgICdCPGNvbnRlbnQ+PC9jb250ZW50PkMnLiBXaGVuIHNlbGVjdGluZyBmcm9tIGp1c3Qg
YWZ0ZXIgQSAocDEgPSAoUG9zaXRpb25Jc09mZnNldEluQW5jaG9yLCBkaXYsIDEpKSB0bworICAg
ICAgICBCIChwMiA9IChQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IsIHNoYWRvd1Jvb3QsIDApKSwg
c2luY2UgY29tcGFyZVBvc2l0aW9uIGFsd2F5cyBqdWRnZSBhcyBwMiBpcworICAgICAgICBiZWZv
cmUgcDEsIG1fc3RhcnQgYW5kIG1fZW5kIGluIFZpc2libGVTZWxlY3Rpb24gd2lsbCBiZSBwMiBh
bmQgcDEgcmVzcGVjdGl2ZWx5LgorCisgICAgICAgIEhvd2V2ZXIsIHRoZSBhbmNob3JOb2RlcyBv
ZiBwMSBhbmQgcDIgaGF2ZSB0aGUgZGlmZmVyZW50IHRyZWUgc2NvcGUsIHdlIGhhdmUgdG8gYWRq
dXN0IHAyIHRvIHRoZSBzYW1lCisgICAgICAgIHRyZWUgc2NvcGUgYXMgcDEuIFNpbmNlIHAyIGlz
IG1fc3RhcnQsIG1fc3RhcnQgd2FzIGFkanVzdGVkIHRvIHBvc2l0aW9uQWZ0ZXJOb2RlKGRpdiku
IFRoaXMgYnJlYWtzCisgICAgICAgIHRoZSBhc3N1bXB0aW9uIHRoYXQgbV9zdGFydCBpcyBhbHdh
eXMgYmVmb3JlIChvciBlcXVhbCB0bykgbV9lbmQuCisKKyAgICAgICAgVGhpcyBwYXRjaCBrZWVw
cyB0aGUgYXNzdW1wdGlvbi4gV2hlbiB3ZSBjYW5ub3QgbW92ZSBtX3N0YXJ0IHRvIHBvc2l0aW9u
QWZ0ZXJOb2RlKGRpdiksIHdlIG1vdmUgbV9zdGFydAorICAgICAgICB0byBwb3NpdGlvbkJlZm9y
ZU5vZGUoZGl2KS4gTm90ZSB0aGF0IHdlIGNhbm5vdCBhbHdheXMgbW92ZSBtX3N0YXJ0IHRvIHBv
c2l0aW9uQmVmb3JlTm9kZShkaXYpLCBiZWNhdXNlCisgICAgICAgIHdoZW4gc2VsZWN0aW5nIGp1
c3QgYWZ0ZXIgRCAocDMgPSAoUG9zaXRpb25Jc09mZnNldEluQW5jaG9yLCBEJ3MgcGFyZW50LCAy
KSwgd2UgZG9uJ3Qgd2FudCB0byBzZWxlY3QgQS4KKyAgICAgICAgSW4gdGhpcyBjYXNlLCBtX3N0
YXJ0IHNob3VsZCBiZSBhZGp1c3RlZCB0byBwb3NpdGlvbkFmdGVyTm9kZShkaXYpLgorCisgICAg
ICAgIFRlc3Q6IGVkaXRpbmcvc2hhZG93L2JyZWFraW5nLWVkaXRpbmctYm91bmRhcmllcy5odG1s
CisKKyAgICAgICAgKiBlZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6YWRqdXN0UG9zaXRpb25Gb3JFbmQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjphZGp1c3RQb3NpdGlvbkZvclN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlZp
c2libGVTZWxlY3Rpb246OmFkanVzdFNlbGVjdGlvblRvQXZvaWRDcm9zc2luZ1NoYWRvd0JvdW5k
YXJpZXMpOgorICAgICAgICAqIGVkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5oOgorICAgICAgICAo
VmlzaWJsZVNlbGVjdGlvbik6CisKIDIwMTItMDYtMTQgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFtKU0MvVjhdICJET01TdHJpbmdbXSIgZm9yIGZ1bmN0aW9u
IHJldHVybiB2YWx1ZXMgc2hvdWxkIG5vdCBiZSBudWxsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9WaXNpYmxlU2VsZWN0aW9uLmNwcAppbmRleCAxMWI5MDE1NDEyZjExZjg2ODBlMDM1YmM5Nzc4
NjdjY2FkMjhkOTAyLi40ODFjZDEzMGFmMWIyNjRjMTgxZjFmZTNmNDhkM2RlOTc3N2RhODY1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAKQEAgLTQxMCwy
OCArNDEwLDYgQEAgdm9pZCBWaXNpYmxlU2VsZWN0aW9uOjp1cGRhdGVTZWxlY3Rpb25UeXBlKCkK
ICAgICAgICAgbV9hZmZpbml0eSA9IERPV05TVFJFQU07CiB9CiAKLVBvc2l0aW9uIFZpc2libGVT
ZWxlY3Rpb246OmFkanVzdFBvc2l0aW9uQmVmb3JlKFRyZWVTY29wZSogdHJlZVNjb3BlLCBjb25z
dCBQb3NpdGlvbiYgY3VycmVudFBvc2l0aW9uKQotewotICAgIGlmIChOb2RlKiBhbmNlc3RvciA9
IHRyZWVTY29wZS0+YW5jZXN0b3JJblRoaXNTY29wZShjdXJyZW50UG9zaXRpb24uYW5jaG9yTm9k
ZSgpKSkKLSAgICAgICAgcmV0dXJuIHBvc2l0aW9uQmVmb3JlTm9kZShhbmNlc3Rvcik7Ci0KLSAg
ICBpZiAoTm9kZSogbGFzdENoaWxkID0gdHJlZVNjb3BlLT5yb290Tm9kZSgpLT5sYXN0Q2hpbGQo
KSkKLSAgICAgICAgcmV0dXJuIHBvc2l0aW9uQWZ0ZXJOb2RlKGxhc3RDaGlsZCk7Ci0KLSAgICBy
ZXR1cm4gUG9zaXRpb24oKTsKLX0KLQotUG9zaXRpb24gVmlzaWJsZVNlbGVjdGlvbjo6YWRqdXN0
UG9zaXRpb25BZnRlcihUcmVlU2NvcGUqIHRyZWVTY29wZSwgY29uc3QgUG9zaXRpb24mIGN1cnJl
bnRQb3NpdGlvbikKLXsKLSAgICBpZiAoTm9kZSogYW5jZXN0b3IgPSB0cmVlU2NvcGUtPmFuY2Vz
dG9ySW5UaGlzU2NvcGUoY3VycmVudFBvc2l0aW9uLmFuY2hvck5vZGUoKSkpCi0gICAgICAgIHJl
dHVybiBwb3NpdGlvbkFmdGVyTm9kZShhbmNlc3Rvcik7Ci0KLSAgICBpZiAoTm9kZSogZmlyc3RD
aGlsZCA9IHRyZWVTY29wZS0+cm9vdE5vZGUoKS0+Zmlyc3RDaGlsZCgpKQotICAgICAgICByZXR1
cm4gcG9zaXRpb25CZWZvcmVOb2RlKGZpcnN0Q2hpbGQpOwotCi0gICAgcmV0dXJuIFBvc2l0aW9u
KCk7Ci19Ci0KIHZvaWQgVmlzaWJsZVNlbGVjdGlvbjo6dmFsaWRhdGUoVGV4dEdyYW51bGFyaXR5
IGdyYW51bGFyaXR5KQogewogICAgIHNldEJhc2VBbmRFeHRlbnRUb0RlZXBFcXVpdmFsZW50cygp
OwpAQCAtNDgzLDYgKzQ2MSw0MiBAQCB2b2lkIFZpc2libGVTZWxlY3Rpb246OnNldFdpdGhvdXRW
YWxpZGF0aW9uKGNvbnN0IFBvc2l0aW9uJiBiYXNlLCBjb25zdCBQb3NpdGlvbgogICAgIG1fc2Vs
ZWN0aW9uVHlwZSA9IGJhc2UgPT0gZXh0ZW50ID8gQ2FyZXRTZWxlY3Rpb24gOiBSYW5nZVNlbGVj
dGlvbjsKIH0KIAorc3RhdGljIFBvc2l0aW9uIGFkanVzdFBvc2l0aW9uRm9yRW5kKGNvbnN0IFBv
c2l0aW9uJiBjdXJyZW50UG9zaXRpb24sIE5vZGUqIHN0YXJ0Q29udGFpbmVyTm9kZSkKK3sKKyAg
ICBUcmVlU2NvcGUqIHRyZWVTY29wZSA9IHN0YXJ0Q29udGFpbmVyTm9kZS0+dHJlZVNjb3BlKCk7
CisKKyAgICBBU1NFUlQoY3VycmVudFBvc2l0aW9uLmNvbnRhaW5lck5vZGUoKS0+dHJlZVNjb3Bl
KCkgIT0gdHJlZVNjb3BlKTsKKworICAgIGlmIChOb2RlKiBhbmNlc3RvciA9IHRyZWVTY29wZS0+
YW5jZXN0b3JJblRoaXNTY29wZShjdXJyZW50UG9zaXRpb24uY29udGFpbmVyTm9kZSgpKSkgewor
ICAgICAgICBpZiAoYW5jZXN0b3ItPmNvbnRhaW5zKHN0YXJ0Q29udGFpbmVyTm9kZSkpCisgICAg
ICAgICAgICByZXR1cm4gcG9zaXRpb25BZnRlck5vZGUoYW5jZXN0b3IpOworICAgICAgICByZXR1
cm4gcG9zaXRpb25CZWZvcmVOb2RlKGFuY2VzdG9yKTsKKyAgICB9CisKKyAgICBpZiAoTm9kZSog
bGFzdENoaWxkID0gdHJlZVNjb3BlLT5yb290Tm9kZSgpLT5sYXN0Q2hpbGQoKSkKKyAgICAgICAg
cmV0dXJuIHBvc2l0aW9uQWZ0ZXJOb2RlKGxhc3RDaGlsZCk7CisKKyAgICByZXR1cm4gUG9zaXRp
b24oKTsKK30KKworc3RhdGljIFBvc2l0aW9uIGFkanVzdFBvc2l0aW9uRm9yU3RhcnQoY29uc3Qg
UG9zaXRpb24mIGN1cnJlbnRQb3NpdGlvbiwgTm9kZSogZW5kQ29udGFpbmVyTm9kZSkKK3sKKyAg
ICBUcmVlU2NvcGUqIHRyZWVTY29wZSA9IGVuZENvbnRhaW5lck5vZGUtPnRyZWVTY29wZSgpOwor
CisgICAgQVNTRVJUKGN1cnJlbnRQb3NpdGlvbi5jb250YWluZXJOb2RlKCktPnRyZWVTY29wZSgp
ICE9IHRyZWVTY29wZSk7CisgICAgCisgICAgaWYgKE5vZGUqIGFuY2VzdG9yID0gdHJlZVNjb3Bl
LT5hbmNlc3RvckluVGhpc1Njb3BlKGN1cnJlbnRQb3NpdGlvbi5jb250YWluZXJOb2RlKCkpKSB7
CisgICAgICAgIGlmIChhbmNlc3Rvci0+Y29udGFpbnMoZW5kQ29udGFpbmVyTm9kZSkpCisgICAg
ICAgICAgICByZXR1cm4gcG9zaXRpb25CZWZvcmVOb2RlKGFuY2VzdG9yKTsKKyAgICAgICAgcmV0
dXJuIHBvc2l0aW9uQWZ0ZXJOb2RlKGFuY2VzdG9yKTsKKyAgICB9CisKKyAgICBpZiAoTm9kZSog
Zmlyc3RDaGlsZCA9IHRyZWVTY29wZS0+cm9vdE5vZGUoKS0+Zmlyc3RDaGlsZCgpKQorICAgICAg
ICByZXR1cm4gcG9zaXRpb25CZWZvcmVOb2RlKGZpcnN0Q2hpbGQpOworCisgICAgcmV0dXJuIFBv
c2l0aW9uKCk7Cit9CisKIHZvaWQgVmlzaWJsZVNlbGVjdGlvbjo6YWRqdXN0U2VsZWN0aW9uVG9B
dm9pZENyb3NzaW5nU2hhZG93Qm91bmRhcmllcygpCiB7CiAgICAgaWYgKG1fYmFzZS5pc051bGwo
KSB8fCBtX3N0YXJ0LmlzTnVsbCgpIHx8IG1fZW5kLmlzTnVsbCgpKQpAQCAtNDkyLDEwICs1MDYs
MTAgQEAgdm9pZCBWaXNpYmxlU2VsZWN0aW9uOjphZGp1c3RTZWxlY3Rpb25Ub0F2b2lkQ3Jvc3Np
bmdTaGFkb3dCb3VuZGFyaWVzKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1fYmFzZUlz
Rmlyc3QpIHsKLSAgICAgICAgbV9leHRlbnQgPSBhZGp1c3RQb3NpdGlvbkJlZm9yZShtX3N0YXJ0
LmFuY2hvck5vZGUoKS0+dHJlZVNjb3BlKCksIG1fZW5kKTsKKyAgICAgICAgbV9leHRlbnQgPSBh
ZGp1c3RQb3NpdGlvbkZvckVuZChtX2VuZCwgbV9zdGFydC5jb250YWluZXJOb2RlKCkpOwogICAg
ICAgICBtX2VuZCA9IG1fZXh0ZW50OwogICAgIH0gZWxzZSB7Ci0gICAgICAgIG1fZXh0ZW50ID0g
YWRqdXN0UG9zaXRpb25BZnRlcihtX2VuZC5hbmNob3JOb2RlKCktPnRyZWVTY29wZSgpLCBtX3N0
YXJ0KTsKKyAgICAgICAgbV9leHRlbnQgPSBhZGp1c3RQb3NpdGlvbkZvclN0YXJ0KG1fc3RhcnQs
IG1fZW5kLmNvbnRhaW5lck5vZGUoKSk7CiAgICAgICAgIG1fc3RhcnQgPSBtX2V4dGVudDsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmgKaW5kZXggMjE5
OTliYjNjYWQ0YzM0NWExOWFlYzM0ZDY3ZTllNTRjYmJjNmQyMS4uOGM4MTBkYTRkZDE5N2UzMWNm
NmE1ZjZmOGI4Yjg4MjYyOTdiYjdlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9WaXNpYmxlU2VsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxl
U2VsZWN0aW9uLmgKQEAgLTEyMiw5ICsxMjIsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgYWRqdXN0
U2VsZWN0aW9uVG9Bdm9pZENyb3NzaW5nRWRpdGluZ0JvdW5kYXJpZXMoKTsKICAgICB2b2lkIHVw
ZGF0ZVNlbGVjdGlvblR5cGUoKTsKIAotICAgIFBvc2l0aW9uIGFkanVzdFBvc2l0aW9uQmVmb3Jl
KFRyZWVTY29wZSosIGNvbnN0IFBvc2l0aW9uJik7Ci0gICAgUG9zaXRpb24gYWRqdXN0UG9zaXRp
b25BZnRlcihUcmVlU2NvcGUqLCBjb25zdCBQb3NpdGlvbiYpOwotCiAgICAgLy8gV2UgbmVlZCB0
byBzdG9yZSB0aGVzZSBhcyBQb3NpdGlvbnMgYmVjYXVzZSBWaXNpYmxlU2VsZWN0aW9uIGlzCiAg
ICAgLy8gdXNlZCB0byBzdG9yZSB2YWx1ZXMgaW4gZWRpdGluZyBjb21tYW5kcyBmb3IgdXNlIHdo
ZW4KICAgICAvLyB1bmRvaW5nIHRoZSBjb21tYW5kLiBXZSBuZWVkIHRvIGJlIGFibGUgdG8gY3Jl
YXRlIGEgc2VsZWN0aW9uIHRoYXQsIHdoaWxlIGN1cnJlbnRseQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDhhOGI4MGMwZGY1
Zjc2MWI4YjViZmI1MTg2OTAwZGE4YmVkODVhZWIuLjMxOWQ5ZDBlODgzYmIyMTIwNjc2ZmQ0MDE3
MjgxOGVlNmViY2QyN2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wNi0wNyAgU2hpbnlh
IEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0NyYXNoXVtFZGl0
aW5nXSBWaXNpYmxlU2VsZWN0aW9uOjphZGp1c3RTZWxlY3Rpb25Ub0F2b2lkQ3Jvc3NpbmdFZGl0
aW5nQm91bmRhcmllcygpIGNyYXNoZXMgaW4gc29tZSBTaGFkb3cgRE9NIGNhc2UuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODUwMAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZWRpdGluZy9zaGFkb3cv
YnJlYWtpbmctZWRpdGluZy1ib3VuZGFyaWVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZWRpdGluZy9zaGFkb3cvYnJlYWtpbmctZWRpdGluZy1ib3VuZGFyaWVzLmh0bWw6IEFkZGVk
LgorCiAyMDEyLTA2LTE0ICBEYWxlIEN1cnRpcyAgPGRhbGVjdXJ0aXNAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIERpc2FibGUgY2xpY2svZGJsLWNsaWNrIG9uIE1lZGlhRG9jdW1lbnQgZm9yIENo
cm9taXVtLiBGaXggbGF5b3V0IHRlc3QgZm9yIGFsbCBwbGF0Zm9ybXMuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9icmVha2luZy1lZGl0aW5nLWJvdW5kYXJpZXMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvYnJlYWtpbmctZWRpdGluZy1i
b3VuZGFyaWVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NjAxZDkwZTUzODRmYTY1ZmYxZjNm
MTg0ZTFlMTIxMTZjMDg1YWM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zaGFkb3cvYnJlYWtpbmctZWRpdGluZy1ib3VuZGFyaWVzLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDggQEAKK1doZW4gc2VsZWN0aW5nIGZyb20gYSBjaGlsZCBvZiBzaGFkb3cgaG9zdCB0byBh
biBlbGVtZW50IGluIFNoYWRvdyBET00sIGEgY3Jhc2ggc2hvdWxkIG5vdCBiZSBjYXVzZWQuIFRo
aXMgaXMgYmVjYXVzZSB0aGUgc3RhcnQgcG9zaXRpb24gb2YgU2VsZWN0aW9uIGNvbWVzIGFmdGVy
IHRoZSBlbmQgcG9zaXRpb24gb2YgU2VsZWN0aW9uLgorCitCRUZPUkVEUkFHIEZST00gSEVSRSBG
T08gQkFSCitQQVNTCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvYnJlYWtpbmct
ZWRpdGluZy1ib3VuZGFyaWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9icmVh
a2luZy1lZGl0aW5nLWJvdW5kYXJpZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NTIwZDUxODQ2YmYwZTMy
ZDY4YzkxYzZiM2I3NTYzOGFlMmExOGNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9zaGFkb3cvYnJlYWtpbmctZWRpdGluZy1ib3VuZGFyaWVzLmh0bWwKQEAgLTAsMCAr
MSwzNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvcG9seWZpbGwuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2Zhc3QvZG9tL3Jlc291cmNlcy9ldmVudC1zZW5kZXItdXRpbC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorCis8cD5XaGVuIHNlbGVjdGluZyBmcm9tIGEgY2hpbGQgb2Ygc2hh
ZG93IGhvc3QgdG8gYW4gZWxlbWVudCBpbiBTaGFkb3cgRE9NLCBhIGNyYXNoIHNob3VsZCBub3Qg
YmUgY2F1c2VkLgorVGhpcyBpcyBiZWNhdXNlIHRoZSBzdGFydCBwb3NpdGlvbiBvZiBTZWxlY3Rp
b24gY29tZXMgYWZ0ZXIgdGhlIGVuZCBwb3NpdGlvbiBvZiBTZWxlY3Rpb24uPC9wPgorCis8ZGl2
IGNvbnRlbnRlZGl0YWJsZT4KKyAgICBCRUZPUkU8c3BhbiBpZD0iaG9zdCIgY29udGVudGVkaXRh
YmxlPSJmYWxzZSI+RFJBRyBGUk9NIEhFUkU8c3BhbiBpZD0idGFyZ2V0Ij4gPC9zcGFuPkZPTyBC
QVI8L3NwYW4+Cis8L2Rpdj4KKzxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorCis8c2NyaXB0Pgor
dmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChob3N0KTsKK3NoYWRvd1Jvb3Qu
aW5uZXJIVE1MID0gIjxzcGFuIGlkPSdzaGFkb3ctaG9zdCc+QkVGT1JFIFNIQURPVzxzaGFkb3cg
aWQ9J3NoYWRvdyc+PC9zaGFkb3c+QUZURVIgU0hBRE9XPC9zcGFuPiIKKwordmFyIG5lc3RlZFNo
YWRvd0hvc3QgPSBzaGFkb3dSb290LmdldEVsZW1lbnRCeUlkKCdzaGFkb3ctaG9zdCcpOwordmFy
IG5lc3RlZFNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0U2hhZG93Um9vdChuZXN0ZWRTaGFkb3dIb3N0
KTsKK25lc3RlZFNoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxzcGFuIGNvbnRlbnRlZGl0YWJsZT5C
RUZPUkUgTkVTVEVEPHNoYWRvdz48L3NoYWRvdz5BRlRFUiBORVNURUQ8L3NwYW4+IgorCisvLyBU
aGlzIHNob3VsZCBub3QgY2F1c2UgYSBjcmFzaC4KK2V2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHRh
cmdldC5vZmZzZXRMZWZ0IC0gMTAsIHRhcmdldC5vZmZzZXRUb3AgKyB0YXJnZXQub2Zmc2V0SGVp
Z2h0IC8gMik7CitldmVudFNlbmRlci5tb3VzZURvd24oKTsKK2V2ZW50U2VuZGVyLm1vdXNlTW92
ZVRvKG5lc3RlZFNoYWRvd0hvc3Qub2Zmc2V0TGVmdCArIDEwLCBuZXN0ZWRTaGFkb3dIb3N0Lm9m
ZnNldFRvcCArIG5lc3RlZFNoYWRvd0hvc3Qub2Zmc2V0SGVpZ2h0IC8gMik7CitldmVudFNlbmRl
ci5tb3VzZVVwKCk7CitkZWJ1ZygnUEFTUycpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0g
dHJ1ZTsKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148141</attachid>
            <date>2012-06-18 11:46:14 -0700</date>
            <delta_ts>2012-06-18 15:12:47 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-88500-20120619034613.patch</filename>
            <type>text/plain</type>
            <size>9769</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwNjAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjAzNGY5ZTVjNGQ2MjM2
N2MwMDhmMzEzODZiOTBlZDc5MTk5NTQ5My4uYTQ4MjlhNGMxZWY2YjEwNDNjNWJjNzcyYmFlOWEz
YWQ0NjFkOWRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTA2LTA3ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ3Jhc2hdW0Vk
aXRpbmddIFZpc2libGVTZWxlY3Rpb246OmFkanVzdFNlbGVjdGlvblRvQXZvaWRDcm9zc2luZ0Vk
aXRpbmdCb3VuZGFyaWVzKCkgY3Jhc2hlcyBpbiBzb21lIFNoYWRvdyBET00gY2FzZS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4NTAwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBzZWxlY3Rpbmcg
ZnJvbSBhIGNoaWxkIG9mIHNoYWRvdyBob3N0IHRvIGFuIGVsZW1lbnQgaW4gU2hhZG93IERPTSwg
dGhlIHN0YXJ0IHBvc2l0aW9uIG9mCisgICAgICAgIFNlbGVjdGlvbiBjb21lcyBhZnRlciB0aGUg
ZW5kIHBvc2l0aW9uIG9mIFNlbGVjdGlvbiBpbiBzb21lIGNhc2VzLiBUaGlzIGNhdXNlZCBhIGNy
YXNoLgorCisgICAgICAgIEZvciBleGFtcGxlLCBsZXQncyB0aGluayAnPGRpdiBpZD0iaG9zdCI+
QTwvZGl2PkQnIGFuZCBob3N0IGhhcyBhIFNoYWRvdyBET00gd2hvc2UgaW5uZXJIVE1MCisgICAg
ICAgIGlzICdCPGNvbnRlbnQ+PC9jb250ZW50PkMnLiBXaGVuIHNlbGVjdGluZyBmcm9tIGp1c3Qg
YWZ0ZXIgQSAocDEgPSAoUG9zaXRpb25Jc09mZnNldEluQW5jaG9yLAorICAgICAgICAjdGV4dCwg
MSkpIHRvIGp1c3QgYmVmb3JlIEIgKHAyID0gKFBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvciwgc2hh
ZG93Um9vdCwgMCkpLCBzaW5jZQorICAgICAgICBjb21wYXJlUG9zaXRpb24gYWx3YXlzIGp1ZGdl
IGFzIHAyIGlzIGJlZm9yZSBwMSwgbV9zdGFydCBhbmQgbV9lbmQgaW4gVmlzaWJsZVNlbGVjdGlv
bgorICAgICAgICB3aWxsIGJlIHAyIGFuZCBwMSByZXNwZWN0aXZlbHkuCisKKyAgICAgICAgSG93
ZXZlciwgdGhlIGFuY2hvck5vZGVzIG9mIHAxIGFuZCBwMiBoYXZlIHRoZSBkaWZmZXJlbnQgdHJl
ZSBzY29wZSwgd2UgaGF2ZSB0byBhZGp1c3QgcDIgdG8KKyAgICAgICAgdGhlIHNhbWUgdHJlZSBz
Y29wZSBhcyBwMS4gU2luY2UgcDIgaXMgbV9zdGFydCwgbV9zdGFydCB3YXMgYWRqdXN0ZWQgdG8g
cG9zaXRpb25BZnRlck5vZGUoZGl2KS4KKyAgICAgICAgVGhpcyBicmVha3MgdGhlIGFzc3VtcHRp
b24gdGhhdCBtX3N0YXJ0IGlzIGFsd2F5cyBiZWZvcmUgKG9yIGVxdWFsIHRvKSBtX2VuZC4KKwor
ICAgICAgICBUaGlzIHBhdGNoIGtlZXBzIHRoZSBhc3N1bXB0aW9uLiBXaGVuIHdlIGNhbm5vdCBt
b3ZlIG1fc3RhcnQgdG8gcG9zaXRpb25BZnRlck5vZGUoZGl2KSwKKyAgICAgICAgd2UgbW92ZSBt
X3N0YXJ0IHRvIHBvc2l0aW9uQmVmb3JlTm9kZShkaXYpLiBOb3RlIHRoYXQgd2UgY2Fubm90IGFs
d2F5cyBtb3ZlIG1fc3RhcnQgdG8KKyAgICAgICAgcG9zaXRpb25CZWZvcmVOb2RlKGRpdiksIGJl
Y2F1c2Ugd2hlbiBzZWxlY3RpbmcganVzdCBhZnRlciBEIChwMyA9IChQb3NpdGlvbklzT2Zmc2V0
SW5BbmNob3IsCisgICAgICAgIEQncyBwYXJlbnQsIDIpLCB3ZSBkb24ndCB3YW50IHRvIHNlbGVj
dCBBLgorCisgICAgICAgIEluIHRoaXMgY2FzZSwgbV9zdGFydCBzaG91bGQgYmUgYWRqdXN0ZWQg
dG8gcG9zaXRpb25BZnRlck5vZGUoZGl2KS4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3NoYWRv
dy9icmVha2luZy1lZGl0aW5nLWJvdW5kYXJpZXMuaHRtbAorCisgICAgICAgICogZWRpdGluZy9W
aXNpYmxlU2VsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFkanVzdFBvc2l0aW9uRm9y
RW5kKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6YWRqdXN0UG9zaXRp
b25Gb3JTdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpWaXNpYmxlU2VsZWN0aW9uOjphZGp1c3RT
ZWxlY3Rpb25Ub0F2b2lkQ3Jvc3NpbmdTaGFkb3dCb3VuZGFyaWVzKToKKyAgICAgICAgKiBlZGl0
aW5nL1Zpc2libGVTZWxlY3Rpb24uaDoKKyAgICAgICAgKFZpc2libGVTZWxlY3Rpb24pOgorCiAy
MDEyLTA2LTE4ICBUYWthc2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KIAogICAgICAg
ICB3ZWJraXQgZmFpbHMgSUVUQyBib3JkZXItcmFkaXVzLWNsaXAtMDAyCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcAppbmRleCAxMWI5MDE1NDEyZjExZjg2ODBl
MDM1YmM5Nzc4NjdjY2FkMjhkOTAyLi40ODFjZDEzMGFmMWIyNjRjMTgxZjFmZTNmNDhkM2RlOTc3
N2RhODY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAK
QEAgLTQxMCwyOCArNDEwLDYgQEAgdm9pZCBWaXNpYmxlU2VsZWN0aW9uOjp1cGRhdGVTZWxlY3Rp
b25UeXBlKCkKICAgICAgICAgbV9hZmZpbml0eSA9IERPV05TVFJFQU07CiB9CiAKLVBvc2l0aW9u
IFZpc2libGVTZWxlY3Rpb246OmFkanVzdFBvc2l0aW9uQmVmb3JlKFRyZWVTY29wZSogdHJlZVNj
b3BlLCBjb25zdCBQb3NpdGlvbiYgY3VycmVudFBvc2l0aW9uKQotewotICAgIGlmIChOb2RlKiBh
bmNlc3RvciA9IHRyZWVTY29wZS0+YW5jZXN0b3JJblRoaXNTY29wZShjdXJyZW50UG9zaXRpb24u
YW5jaG9yTm9kZSgpKSkKLSAgICAgICAgcmV0dXJuIHBvc2l0aW9uQmVmb3JlTm9kZShhbmNlc3Rv
cik7Ci0KLSAgICBpZiAoTm9kZSogbGFzdENoaWxkID0gdHJlZVNjb3BlLT5yb290Tm9kZSgpLT5s
YXN0Q2hpbGQoKSkKLSAgICAgICAgcmV0dXJuIHBvc2l0aW9uQWZ0ZXJOb2RlKGxhc3RDaGlsZCk7
Ci0KLSAgICByZXR1cm4gUG9zaXRpb24oKTsKLX0KLQotUG9zaXRpb24gVmlzaWJsZVNlbGVjdGlv
bjo6YWRqdXN0UG9zaXRpb25BZnRlcihUcmVlU2NvcGUqIHRyZWVTY29wZSwgY29uc3QgUG9zaXRp
b24mIGN1cnJlbnRQb3NpdGlvbikKLXsKLSAgICBpZiAoTm9kZSogYW5jZXN0b3IgPSB0cmVlU2Nv
cGUtPmFuY2VzdG9ySW5UaGlzU2NvcGUoY3VycmVudFBvc2l0aW9uLmFuY2hvck5vZGUoKSkpCi0g
ICAgICAgIHJldHVybiBwb3NpdGlvbkFmdGVyTm9kZShhbmNlc3Rvcik7Ci0KLSAgICBpZiAoTm9k
ZSogZmlyc3RDaGlsZCA9IHRyZWVTY29wZS0+cm9vdE5vZGUoKS0+Zmlyc3RDaGlsZCgpKQotICAg
ICAgICByZXR1cm4gcG9zaXRpb25CZWZvcmVOb2RlKGZpcnN0Q2hpbGQpOwotCi0gICAgcmV0dXJu
IFBvc2l0aW9uKCk7Ci19Ci0KIHZvaWQgVmlzaWJsZVNlbGVjdGlvbjo6dmFsaWRhdGUoVGV4dEdy
YW51bGFyaXR5IGdyYW51bGFyaXR5KQogewogICAgIHNldEJhc2VBbmRFeHRlbnRUb0RlZXBFcXVp
dmFsZW50cygpOwpAQCAtNDgzLDYgKzQ2MSw0MiBAQCB2b2lkIFZpc2libGVTZWxlY3Rpb246OnNl
dFdpdGhvdXRWYWxpZGF0aW9uKGNvbnN0IFBvc2l0aW9uJiBiYXNlLCBjb25zdCBQb3NpdGlvbgog
ICAgIG1fc2VsZWN0aW9uVHlwZSA9IGJhc2UgPT0gZXh0ZW50ID8gQ2FyZXRTZWxlY3Rpb24gOiBS
YW5nZVNlbGVjdGlvbjsKIH0KIAorc3RhdGljIFBvc2l0aW9uIGFkanVzdFBvc2l0aW9uRm9yRW5k
KGNvbnN0IFBvc2l0aW9uJiBjdXJyZW50UG9zaXRpb24sIE5vZGUqIHN0YXJ0Q29udGFpbmVyTm9k
ZSkKK3sKKyAgICBUcmVlU2NvcGUqIHRyZWVTY29wZSA9IHN0YXJ0Q29udGFpbmVyTm9kZS0+dHJl
ZVNjb3BlKCk7CisKKyAgICBBU1NFUlQoY3VycmVudFBvc2l0aW9uLmNvbnRhaW5lck5vZGUoKS0+
dHJlZVNjb3BlKCkgIT0gdHJlZVNjb3BlKTsKKworICAgIGlmIChOb2RlKiBhbmNlc3RvciA9IHRy
ZWVTY29wZS0+YW5jZXN0b3JJblRoaXNTY29wZShjdXJyZW50UG9zaXRpb24uY29udGFpbmVyTm9k
ZSgpKSkgeworICAgICAgICBpZiAoYW5jZXN0b3ItPmNvbnRhaW5zKHN0YXJ0Q29udGFpbmVyTm9k
ZSkpCisgICAgICAgICAgICByZXR1cm4gcG9zaXRpb25BZnRlck5vZGUoYW5jZXN0b3IpOworICAg
ICAgICByZXR1cm4gcG9zaXRpb25CZWZvcmVOb2RlKGFuY2VzdG9yKTsKKyAgICB9CisKKyAgICBp
ZiAoTm9kZSogbGFzdENoaWxkID0gdHJlZVNjb3BlLT5yb290Tm9kZSgpLT5sYXN0Q2hpbGQoKSkK
KyAgICAgICAgcmV0dXJuIHBvc2l0aW9uQWZ0ZXJOb2RlKGxhc3RDaGlsZCk7CisKKyAgICByZXR1
cm4gUG9zaXRpb24oKTsKK30KKworc3RhdGljIFBvc2l0aW9uIGFkanVzdFBvc2l0aW9uRm9yU3Rh
cnQoY29uc3QgUG9zaXRpb24mIGN1cnJlbnRQb3NpdGlvbiwgTm9kZSogZW5kQ29udGFpbmVyTm9k
ZSkKK3sKKyAgICBUcmVlU2NvcGUqIHRyZWVTY29wZSA9IGVuZENvbnRhaW5lck5vZGUtPnRyZWVT
Y29wZSgpOworCisgICAgQVNTRVJUKGN1cnJlbnRQb3NpdGlvbi5jb250YWluZXJOb2RlKCktPnRy
ZWVTY29wZSgpICE9IHRyZWVTY29wZSk7CisgICAgCisgICAgaWYgKE5vZGUqIGFuY2VzdG9yID0g
dHJlZVNjb3BlLT5hbmNlc3RvckluVGhpc1Njb3BlKGN1cnJlbnRQb3NpdGlvbi5jb250YWluZXJO
b2RlKCkpKSB7CisgICAgICAgIGlmIChhbmNlc3Rvci0+Y29udGFpbnMoZW5kQ29udGFpbmVyTm9k
ZSkpCisgICAgICAgICAgICByZXR1cm4gcG9zaXRpb25CZWZvcmVOb2RlKGFuY2VzdG9yKTsKKyAg
ICAgICAgcmV0dXJuIHBvc2l0aW9uQWZ0ZXJOb2RlKGFuY2VzdG9yKTsKKyAgICB9CisKKyAgICBp
ZiAoTm9kZSogZmlyc3RDaGlsZCA9IHRyZWVTY29wZS0+cm9vdE5vZGUoKS0+Zmlyc3RDaGlsZCgp
KQorICAgICAgICByZXR1cm4gcG9zaXRpb25CZWZvcmVOb2RlKGZpcnN0Q2hpbGQpOworCisgICAg
cmV0dXJuIFBvc2l0aW9uKCk7Cit9CisKIHZvaWQgVmlzaWJsZVNlbGVjdGlvbjo6YWRqdXN0U2Vs
ZWN0aW9uVG9Bdm9pZENyb3NzaW5nU2hhZG93Qm91bmRhcmllcygpCiB7CiAgICAgaWYgKG1fYmFz
ZS5pc051bGwoKSB8fCBtX3N0YXJ0LmlzTnVsbCgpIHx8IG1fZW5kLmlzTnVsbCgpKQpAQCAtNDky
LDEwICs1MDYsMTAgQEAgdm9pZCBWaXNpYmxlU2VsZWN0aW9uOjphZGp1c3RTZWxlY3Rpb25Ub0F2
b2lkQ3Jvc3NpbmdTaGFkb3dCb3VuZGFyaWVzKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYg
KG1fYmFzZUlzRmlyc3QpIHsKLSAgICAgICAgbV9leHRlbnQgPSBhZGp1c3RQb3NpdGlvbkJlZm9y
ZShtX3N0YXJ0LmFuY2hvck5vZGUoKS0+dHJlZVNjb3BlKCksIG1fZW5kKTsKKyAgICAgICAgbV9l
eHRlbnQgPSBhZGp1c3RQb3NpdGlvbkZvckVuZChtX2VuZCwgbV9zdGFydC5jb250YWluZXJOb2Rl
KCkpOwogICAgICAgICBtX2VuZCA9IG1fZXh0ZW50OwogICAgIH0gZWxzZSB7Ci0gICAgICAgIG1f
ZXh0ZW50ID0gYWRqdXN0UG9zaXRpb25BZnRlcihtX2VuZC5hbmNob3JOb2RlKCktPnRyZWVTY29w
ZSgpLCBtX3N0YXJ0KTsKKyAgICAgICAgbV9leHRlbnQgPSBhZGp1c3RQb3NpdGlvbkZvclN0YXJ0
KG1fc3RhcnQsIG1fZW5kLmNvbnRhaW5lck5vZGUoKSk7CiAgICAgICAgIG1fc3RhcnQgPSBtX2V4
dGVudDsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJs
ZVNlbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmgK
aW5kZXggMjE5OTliYjNjYWQ0YzM0NWExOWFlYzM0ZDY3ZTllNTRjYmJjNmQyMS4uOGM4MTBkYTRk
ZDE5N2UzMWNmNmE1ZjZmOGI4Yjg4MjYyOTdiYjdlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9WaXNpYmxlU2VsZWN0aW9uLmgKQEAgLTEyMiw5ICsxMjIsNiBAQCBwcml2YXRlOgogICAgIHZv
aWQgYWRqdXN0U2VsZWN0aW9uVG9Bdm9pZENyb3NzaW5nRWRpdGluZ0JvdW5kYXJpZXMoKTsKICAg
ICB2b2lkIHVwZGF0ZVNlbGVjdGlvblR5cGUoKTsKIAotICAgIFBvc2l0aW9uIGFkanVzdFBvc2l0
aW9uQmVmb3JlKFRyZWVTY29wZSosIGNvbnN0IFBvc2l0aW9uJik7Ci0gICAgUG9zaXRpb24gYWRq
dXN0UG9zaXRpb25BZnRlcihUcmVlU2NvcGUqLCBjb25zdCBQb3NpdGlvbiYpOwotCiAgICAgLy8g
V2UgbmVlZCB0byBzdG9yZSB0aGVzZSBhcyBQb3NpdGlvbnMgYmVjYXVzZSBWaXNpYmxlU2VsZWN0
aW9uIGlzCiAgICAgLy8gdXNlZCB0byBzdG9yZSB2YWx1ZXMgaW4gZWRpdGluZyBjb21tYW5kcyBm
b3IgdXNlIHdoZW4KICAgICAvLyB1bmRvaW5nIHRoZSBjb21tYW5kLiBXZSBuZWVkIHRvIGJlIGFi
bGUgdG8gY3JlYXRlIGEgc2VsZWN0aW9uIHRoYXQsIHdoaWxlIGN1cnJlbnRseQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDBi
ODI1ZDc4ZTA1ZTVkZWQxY2Y5MjVlZGU4ZTQwMmM2NWVhZTQxYmEuLmY5ODhmNGFjNGMzZDMxNWZl
ZWU4ZDA4ZDVjNmJkZDMxYTE2Zjk4YWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wNi0w
NyAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW0Ny
YXNoXVtFZGl0aW5nXSBWaXNpYmxlU2VsZWN0aW9uOjphZGp1c3RTZWxlY3Rpb25Ub0F2b2lkQ3Jv
c3NpbmdFZGl0aW5nQm91bmRhcmllcygpIGNyYXNoZXMgaW4gc29tZSBTaGFkb3cgRE9NIGNhc2Uu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODUwMAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZWRpdGlu
Zy9zaGFkb3cvYnJlYWtpbmctZWRpdGluZy1ib3VuZGFyaWVzLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZWRpdGluZy9zaGFkb3cvYnJlYWtpbmctZWRpdGluZy1ib3VuZGFyaWVzLmh0
bWw6IEFkZGVkLgorCiAyMDEyLTA2LTE4ICBUYWthc2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xl
LmNvbT4KIAogICAgICAgICB3ZWJraXQgZmFpbHMgSUVUQyBib3JkZXItcmFkaXVzLWNsaXAtMDAy
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9icmVha2luZy1lZGl0aW5n
LWJvdW5kYXJpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvYnJl
YWtpbmctZWRpdGluZy1ib3VuZGFyaWVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MmU3YzFm
MDQ4NDBhYWQyYzQwNzllNWNjNGEwN2U1MTAwYzhlZDg0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvYnJlYWtpbmctZWRpdGluZy1ib3VuZGFyaWVzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDggQEAKK1doZW4gc2VsZWN0aW5nIGZyb20gYSBjaGlsZCBvZiBz
aGFkb3cgaG9zdCB0byBhbiBlbGVtZW50IGluIFNoYWRvdyBET00sIGEgY3Jhc2ggc2hvdWxkIG5v
dCBiZSBjYXVzZWQuIFRoaXMgaXMgYmVjYXVzZSB0aGUgc3RhcnQgcG9zaXRpb24gb2YgU2VsZWN0
aW9uIGNvbWVzIGFmdGVyIHRoZSBlbmQgcG9zaXRpb24gb2YgU2VsZWN0aW9uLgorCitiZWZvcmUg
aG9zdCBkcmFnIGZyb20gaGVyZSBhZnRlciBob3N0CitQQVNTCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZWRpdGluZy9zaGFkb3cvYnJlYWtpbmctZWRpdGluZy1ib3VuZGFyaWVzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3NoYWRvdy9icmVha2luZy1lZGl0aW5nLWJvdW5kYXJpZXMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xNjgyMDlmNGJhMDAwMTRkYzc3MjEwYzIzZDk4MjM2ODk0NGEyZjRlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zaGFkb3cvYnJlYWtpbmctZWRpdGluZy1i
b3VuZGFyaWVzLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
Kzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvZG9tL3NoYWRvdy9yZXNvdXJjZXMvcG9s
eWZpbGwuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvZG9tL3Jlc291cmNl
cy9ldmVudC1zZW5kZXItdXRpbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorCis8cD5XaGVuIHNlbGVj
dGluZyBmcm9tIGEgY2hpbGQgb2Ygc2hhZG93IGhvc3QgdG8gYW4gZWxlbWVudCBpbiBTaGFkb3cg
RE9NLCBhIGNyYXNoIHNob3VsZCBub3QgYmUgY2F1c2VkLgorVGhpcyBpcyBiZWNhdXNlIHRoZSBz
dGFydCBwb3NpdGlvbiBvZiBTZWxlY3Rpb24gY29tZXMgYWZ0ZXIgdGhlIGVuZCBwb3NpdGlvbiBv
ZiBTZWxlY3Rpb24uPC9wPgorCis8ZGl2IGNvbnRlbnRlZGl0YWJsZT4KKyAgICBiZWZvcmUgaG9z
dCA8c3BhbiBpZD0iaG9zdCIgY29udGVudGVkaXRhYmxlPSJmYWxzZSI+ZHJhZyBmcm9tIGhlcmU8
c3BhbiBpZD0idGFyZ2V0Ij4gPC9zcGFuPiBhZnRlciBob3N0PC9zcGFuPgorPC9kaXY+Cis8cHJl
IGlkPSJjb25zb2xlIj48L3ByZT4KKworPHNjcmlwdD4KK3ZhciBzaGFkb3dSb290ID0gbmV3IFdl
YktpdFNoYWRvd1Jvb3QoaG9zdCk7CitzaGFkb3dSb290LmlubmVySFRNTCA9ICI8c3BhbiBpZD0n
c2hhZG93LWhvc3QnPmJlZm9yZSBzaGFkb3c8c2hhZG93IGlkPSdzaGFkb3cnPjwvc2hhZG93PmFm
dGVyIHNoYWRvdzwvc3Bhbj4iCisKK3ZhciBuZXN0ZWRTaGFkb3dIb3N0ID0gc2hhZG93Um9vdC5n
ZXRFbGVtZW50QnlJZCgnc2hhZG93LWhvc3QnKTsKK3ZhciBuZXN0ZWRTaGFkb3dSb290ID0gbmV3
IFdlYktpdFNoYWRvd1Jvb3QobmVzdGVkU2hhZG93SG9zdCk7CituZXN0ZWRTaGFkb3dSb290Lmlu
bmVySFRNTCA9ICI8c3BhbiBjb250ZW50ZWRpdGFibGU+YmVmb3JlIG5lc3RlZDxzaGFkb3c+PC9z
aGFkb3c+YWZ0ZXIgbmVzdGVkPC9zcGFuPiIKKworLy8gVGhpcyBzaG91bGQgbm90IGNhdXNlIGEg
Y3Jhc2guCitldmVudFNlbmRlci5tb3VzZU1vdmVUbyh0YXJnZXQub2Zmc2V0TGVmdCAtIDEwLCB0
YXJnZXQub2Zmc2V0VG9wICsgdGFyZ2V0Lm9mZnNldEhlaWdodCAvIDIpOworZXZlbnRTZW5kZXIu
bW91c2VEb3duKCk7CitldmVudFNlbmRlci5tb3VzZU1vdmVUbyhuZXN0ZWRTaGFkb3dIb3N0Lm9m
ZnNldExlZnQgKyAxMCwgbmVzdGVkU2hhZG93SG9zdC5vZmZzZXRUb3AgKyBuZXN0ZWRTaGFkb3dI
b3N0Lm9mZnNldEhlaWdodCAvIDIpOworZXZlbnRTZW5kZXIubW91c2VVcCgpOworZGVidWcoJ1BB
U1MnKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKworPHNj
cmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148184</attachid>
            <date>2012-06-18 15:12:54 -0700</date>
            <delta_ts>2012-06-18 21:03:05 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-88500-20120619071254.patch</filename>
            <type>text/plain</type>
            <size>9765</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwNjAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjAzNGY5ZTVjNGQ2MjM2
N2MwMDhmMzEzODZiOTBlZDc5MTk5NTQ5My4uNzU2MjNiY2JlOGViMGQwNDVmMGI3Y2U5NzY5NjMx
YmViZDdhYmZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTA2LTA3ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ3Jhc2hdW0Vk
aXRpbmddIFZpc2libGVTZWxlY3Rpb246OmFkanVzdFNlbGVjdGlvblRvQXZvaWRDcm9zc2luZ0Vk
aXRpbmdCb3VuZGFyaWVzKCkgY3Jhc2hlcyBpbiBzb21lIFNoYWRvdyBET00gY2FzZS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4NTAwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIFdoZW4gc2VsZWN0aW5nIGZy
b20gYSBjaGlsZCBvZiBzaGFkb3cgaG9zdCB0byBhbiBlbGVtZW50IGluIFNoYWRvdyBET00sIHRo
ZSBzdGFydCBwb3NpdGlvbiBvZgorICAgICAgICBTZWxlY3Rpb24gY29tZXMgYWZ0ZXIgdGhlIGVu
ZCBwb3NpdGlvbiBvZiBTZWxlY3Rpb24gaW4gc29tZSBjYXNlcy4gVGhpcyBjYXVzZWQgYSBjcmFz
aC4KKworICAgICAgICBGb3IgZXhhbXBsZSwgbGV0J3MgdGhpbmsgJzxkaXYgaWQ9Imhvc3QiPkE8
L2Rpdj5EJyBhbmQgaG9zdCBoYXMgYSBTaGFkb3cgRE9NIHdob3NlIGlubmVySFRNTAorICAgICAg
ICBpcyAnQjxjb250ZW50PjwvY29udGVudD5DJy4gV2hlbiBzZWxlY3RpbmcgZnJvbSBqdXN0IGFm
dGVyIEEgKHAxID0gKFBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvciwKKyAgICAgICAgI3RleHQsIDEp
KSB0byBqdXN0IGJlZm9yZSBCIChwMiA9IChQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IsIHNoYWRv
d1Jvb3QsIDApKSwgc2luY2UKKyAgICAgICAgY29tcGFyZVBvc2l0aW9uIGFsd2F5cyBqdWRnZSBh
cyBwMiBpcyBiZWZvcmUgcDEsIG1fc3RhcnQgYW5kIG1fZW5kIGluIFZpc2libGVTZWxlY3Rpb24K
KyAgICAgICAgd2lsbCBiZSBwMiBhbmQgcDEgcmVzcGVjdGl2ZWx5LgorCisgICAgICAgIEhvd2V2
ZXIsIHRoZSBhbmNob3JOb2RlcyBvZiBwMSBhbmQgcDIgaGF2ZSB0aGUgZGlmZmVyZW50IHRyZWUg
c2NvcGUsIHdlIGhhdmUgdG8gYWRqdXN0IHAyIHRvCisgICAgICAgIHRoZSBzYW1lIHRyZWUgc2Nv
cGUgYXMgcDEuIFNpbmNlIHAyIGlzIG1fc3RhcnQsIG1fc3RhcnQgd2FzIGFkanVzdGVkIHRvIHBv
c2l0aW9uQWZ0ZXJOb2RlKGRpdikuCisgICAgICAgIFRoaXMgYnJlYWtzIHRoZSBhc3N1bXB0aW9u
IHRoYXQgbV9zdGFydCBpcyBhbHdheXMgYmVmb3JlIChvciBlcXVhbCB0bykgbV9lbmQuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBrZWVwcyB0aGUgYXNzdW1wdGlvbi4gV2hlbiB3ZSBjYW5ub3QgbW92
ZSBtX3N0YXJ0IHRvIHBvc2l0aW9uQWZ0ZXJOb2RlKGRpdiksCisgICAgICAgIHdlIG1vdmUgbV9z
dGFydCB0byBwb3NpdGlvbkJlZm9yZU5vZGUoZGl2KS4gTm90ZSB0aGF0IHdlIGNhbm5vdCBhbHdh
eXMgbW92ZSBtX3N0YXJ0IHRvCisgICAgICAgIHBvc2l0aW9uQmVmb3JlTm9kZShkaXYpLCBiZWNh
dXNlIHdoZW4gc2VsZWN0aW5nIGp1c3QgYWZ0ZXIgRCAocDMgPSAoUG9zaXRpb25Jc09mZnNldElu
QW5jaG9yLAorICAgICAgICBEJ3MgcGFyZW50LCAyKSwgd2UgZG9uJ3Qgd2FudCB0byBzZWxlY3Qg
QS4KKworICAgICAgICBJbiB0aGlzIGNhc2UsIG1fc3RhcnQgc2hvdWxkIGJlIGFkanVzdGVkIHRv
IHBvc2l0aW9uQWZ0ZXJOb2RlKGRpdikuCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9zaGFkb3cv
YnJlYWtpbmctZWRpdGluZy1ib3VuZGFyaWVzLmh0bWwKKworICAgICAgICAqIGVkaXRpbmcvVmlz
aWJsZVNlbGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjphZGp1c3RQb3NpdGlvbkZvckVu
ZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OmFkanVzdFBvc2l0aW9u
Rm9yU3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6VmlzaWJsZVNlbGVjdGlvbjo6YWRqdXN0U2Vs
ZWN0aW9uVG9Bdm9pZENyb3NzaW5nU2hhZG93Qm91bmRhcmllcyk6CisgICAgICAgICogZWRpdGlu
Zy9WaXNpYmxlU2VsZWN0aW9uLmg6CisgICAgICAgIChWaXNpYmxlU2VsZWN0aW9uKToKKwogMjAx
Mi0wNi0xOCAgVGFrYXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CiAKICAgICAgICAg
d2Via2l0IGZhaWxzIElFVEMgYm9yZGVyLXJhZGl1cy1jbGlwLTAwMgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5jcHAKaW5kZXggMTFiOTAxNTQxMmYxMWY4NjgwZTAz
NWJjOTc3ODY3Y2NhZDI4ZDkwMi4uNDgxY2QxMzBhZjFiMjY0YzE4MWYxZmUzZjQ4ZDNkZTk3Nzdk
YTg2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlU2VsZWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVTZWxlY3Rpb24uY3BwCkBA
IC00MTAsMjggKzQxMCw2IEBAIHZvaWQgVmlzaWJsZVNlbGVjdGlvbjo6dXBkYXRlU2VsZWN0aW9u
VHlwZSgpCiAgICAgICAgIG1fYWZmaW5pdHkgPSBET1dOU1RSRUFNOwogfQogCi1Qb3NpdGlvbiBW
aXNpYmxlU2VsZWN0aW9uOjphZGp1c3RQb3NpdGlvbkJlZm9yZShUcmVlU2NvcGUqIHRyZWVTY29w
ZSwgY29uc3QgUG9zaXRpb24mIGN1cnJlbnRQb3NpdGlvbikKLXsKLSAgICBpZiAoTm9kZSogYW5j
ZXN0b3IgPSB0cmVlU2NvcGUtPmFuY2VzdG9ySW5UaGlzU2NvcGUoY3VycmVudFBvc2l0aW9uLmFu
Y2hvck5vZGUoKSkpCi0gICAgICAgIHJldHVybiBwb3NpdGlvbkJlZm9yZU5vZGUoYW5jZXN0b3Ip
OwotCi0gICAgaWYgKE5vZGUqIGxhc3RDaGlsZCA9IHRyZWVTY29wZS0+cm9vdE5vZGUoKS0+bGFz
dENoaWxkKCkpCi0gICAgICAgIHJldHVybiBwb3NpdGlvbkFmdGVyTm9kZShsYXN0Q2hpbGQpOwot
Ci0gICAgcmV0dXJuIFBvc2l0aW9uKCk7Ci19Ci0KLVBvc2l0aW9uIFZpc2libGVTZWxlY3Rpb246
OmFkanVzdFBvc2l0aW9uQWZ0ZXIoVHJlZVNjb3BlKiB0cmVlU2NvcGUsIGNvbnN0IFBvc2l0aW9u
JiBjdXJyZW50UG9zaXRpb24pCi17Ci0gICAgaWYgKE5vZGUqIGFuY2VzdG9yID0gdHJlZVNjb3Bl
LT5hbmNlc3RvckluVGhpc1Njb3BlKGN1cnJlbnRQb3NpdGlvbi5hbmNob3JOb2RlKCkpKQotICAg
ICAgICByZXR1cm4gcG9zaXRpb25BZnRlck5vZGUoYW5jZXN0b3IpOwotCi0gICAgaWYgKE5vZGUq
IGZpcnN0Q2hpbGQgPSB0cmVlU2NvcGUtPnJvb3ROb2RlKCktPmZpcnN0Q2hpbGQoKSkKLSAgICAg
ICAgcmV0dXJuIHBvc2l0aW9uQmVmb3JlTm9kZShmaXJzdENoaWxkKTsKLQotICAgIHJldHVybiBQ
b3NpdGlvbigpOwotfQotCiB2b2lkIFZpc2libGVTZWxlY3Rpb246OnZhbGlkYXRlKFRleHRHcmFu
dWxhcml0eSBncmFudWxhcml0eSkKIHsKICAgICBzZXRCYXNlQW5kRXh0ZW50VG9EZWVwRXF1aXZh
bGVudHMoKTsKQEAgLTQ4Myw2ICs0NjEsNDIgQEAgdm9pZCBWaXNpYmxlU2VsZWN0aW9uOjpzZXRX
aXRob3V0VmFsaWRhdGlvbihjb25zdCBQb3NpdGlvbiYgYmFzZSwgY29uc3QgUG9zaXRpb24KICAg
ICBtX3NlbGVjdGlvblR5cGUgPSBiYXNlID09IGV4dGVudCA/IENhcmV0U2VsZWN0aW9uIDogUmFu
Z2VTZWxlY3Rpb247CiB9CiAKK3N0YXRpYyBQb3NpdGlvbiBhZGp1c3RQb3NpdGlvbkZvckVuZChj
b25zdCBQb3NpdGlvbiYgY3VycmVudFBvc2l0aW9uLCBOb2RlKiBzdGFydENvbnRhaW5lck5vZGUp
Cit7CisgICAgVHJlZVNjb3BlKiB0cmVlU2NvcGUgPSBzdGFydENvbnRhaW5lck5vZGUtPnRyZWVT
Y29wZSgpOworCisgICAgQVNTRVJUKGN1cnJlbnRQb3NpdGlvbi5jb250YWluZXJOb2RlKCktPnRy
ZWVTY29wZSgpICE9IHRyZWVTY29wZSk7CisKKyAgICBpZiAoTm9kZSogYW5jZXN0b3IgPSB0cmVl
U2NvcGUtPmFuY2VzdG9ySW5UaGlzU2NvcGUoY3VycmVudFBvc2l0aW9uLmNvbnRhaW5lck5vZGUo
KSkpIHsKKyAgICAgICAgaWYgKGFuY2VzdG9yLT5jb250YWlucyhzdGFydENvbnRhaW5lck5vZGUp
KQorICAgICAgICAgICAgcmV0dXJuIHBvc2l0aW9uQWZ0ZXJOb2RlKGFuY2VzdG9yKTsKKyAgICAg
ICAgcmV0dXJuIHBvc2l0aW9uQmVmb3JlTm9kZShhbmNlc3Rvcik7CisgICAgfQorCisgICAgaWYg
KE5vZGUqIGxhc3RDaGlsZCA9IHRyZWVTY29wZS0+cm9vdE5vZGUoKS0+bGFzdENoaWxkKCkpCisg
ICAgICAgIHJldHVybiBwb3NpdGlvbkFmdGVyTm9kZShsYXN0Q2hpbGQpOworCisgICAgcmV0dXJu
IFBvc2l0aW9uKCk7Cit9CisKK3N0YXRpYyBQb3NpdGlvbiBhZGp1c3RQb3NpdGlvbkZvclN0YXJ0
KGNvbnN0IFBvc2l0aW9uJiBjdXJyZW50UG9zaXRpb24sIE5vZGUqIGVuZENvbnRhaW5lck5vZGUp
Cit7CisgICAgVHJlZVNjb3BlKiB0cmVlU2NvcGUgPSBlbmRDb250YWluZXJOb2RlLT50cmVlU2Nv
cGUoKTsKKworICAgIEFTU0VSVChjdXJyZW50UG9zaXRpb24uY29udGFpbmVyTm9kZSgpLT50cmVl
U2NvcGUoKSAhPSB0cmVlU2NvcGUpOworICAgIAorICAgIGlmIChOb2RlKiBhbmNlc3RvciA9IHRy
ZWVTY29wZS0+YW5jZXN0b3JJblRoaXNTY29wZShjdXJyZW50UG9zaXRpb24uY29udGFpbmVyTm9k
ZSgpKSkgeworICAgICAgICBpZiAoYW5jZXN0b3ItPmNvbnRhaW5zKGVuZENvbnRhaW5lck5vZGUp
KQorICAgICAgICAgICAgcmV0dXJuIHBvc2l0aW9uQmVmb3JlTm9kZShhbmNlc3Rvcik7CisgICAg
ICAgIHJldHVybiBwb3NpdGlvbkFmdGVyTm9kZShhbmNlc3Rvcik7CisgICAgfQorCisgICAgaWYg
KE5vZGUqIGZpcnN0Q2hpbGQgPSB0cmVlU2NvcGUtPnJvb3ROb2RlKCktPmZpcnN0Q2hpbGQoKSkK
KyAgICAgICAgcmV0dXJuIHBvc2l0aW9uQmVmb3JlTm9kZShmaXJzdENoaWxkKTsKKworICAgIHJl
dHVybiBQb3NpdGlvbigpOworfQorCiB2b2lkIFZpc2libGVTZWxlY3Rpb246OmFkanVzdFNlbGVj
dGlvblRvQXZvaWRDcm9zc2luZ1NoYWRvd0JvdW5kYXJpZXMoKQogewogICAgIGlmIChtX2Jhc2Uu
aXNOdWxsKCkgfHwgbV9zdGFydC5pc051bGwoKSB8fCBtX2VuZC5pc051bGwoKSkKQEAgLTQ5Miwx
MCArNTA2LDEwIEBAIHZvaWQgVmlzaWJsZVNlbGVjdGlvbjo6YWRqdXN0U2VsZWN0aW9uVG9Bdm9p
ZENyb3NzaW5nU2hhZG93Qm91bmRhcmllcygpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICht
X2Jhc2VJc0ZpcnN0KSB7Ci0gICAgICAgIG1fZXh0ZW50ID0gYWRqdXN0UG9zaXRpb25CZWZvcmUo
bV9zdGFydC5hbmNob3JOb2RlKCktPnRyZWVTY29wZSgpLCBtX2VuZCk7CisgICAgICAgIG1fZXh0
ZW50ID0gYWRqdXN0UG9zaXRpb25Gb3JFbmQobV9lbmQsIG1fc3RhcnQuY29udGFpbmVyTm9kZSgp
KTsKICAgICAgICAgbV9lbmQgPSBtX2V4dGVudDsKICAgICB9IGVsc2UgewotICAgICAgICBtX2V4
dGVudCA9IGFkanVzdFBvc2l0aW9uQWZ0ZXIobV9lbmQuYW5jaG9yTm9kZSgpLT50cmVlU2NvcGUo
KSwgbV9zdGFydCk7CisgICAgICAgIG1fZXh0ZW50ID0gYWRqdXN0UG9zaXRpb25Gb3JTdGFydCht
X3N0YXJ0LCBtX2VuZC5jb250YWluZXJOb2RlKCkpOwogICAgICAgICBtX3N0YXJ0ID0gbV9leHRl
bnQ7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVT
ZWxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5oCmlu
ZGV4IDIxOTk5YmIzY2FkNGMzNDVhMTlhZWMzNGQ2N2U5ZTU0Y2JiYzZkMjEuLjhjODEwZGE0ZGQx
OTdlMzFjZjZhNWY2ZjhiOGI4ODI2Mjk3YmI3ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVmlzaWJsZVNlbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VmlzaWJsZVNlbGVjdGlvbi5oCkBAIC0xMjIsOSArMTIyLDYgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGFkanVzdFNlbGVjdGlvblRvQXZvaWRDcm9zc2luZ0VkaXRpbmdCb3VuZGFyaWVzKCk7CiAgICAg
dm9pZCB1cGRhdGVTZWxlY3Rpb25UeXBlKCk7CiAKLSAgICBQb3NpdGlvbiBhZGp1c3RQb3NpdGlv
bkJlZm9yZShUcmVlU2NvcGUqLCBjb25zdCBQb3NpdGlvbiYpOwotICAgIFBvc2l0aW9uIGFkanVz
dFBvc2l0aW9uQWZ0ZXIoVHJlZVNjb3BlKiwgY29uc3QgUG9zaXRpb24mKTsKLQogICAgIC8vIFdl
IG5lZWQgdG8gc3RvcmUgdGhlc2UgYXMgUG9zaXRpb25zIGJlY2F1c2UgVmlzaWJsZVNlbGVjdGlv
biBpcwogICAgIC8vIHVzZWQgdG8gc3RvcmUgdmFsdWVzIGluIGVkaXRpbmcgY29tbWFuZHMgZm9y
IHVzZSB3aGVuCiAgICAgLy8gdW5kb2luZyB0aGUgY29tbWFuZC4gV2UgbmVlZCB0byBiZSBhYmxl
IHRvIGNyZWF0ZSBhIHNlbGVjdGlvbiB0aGF0LCB3aGlsZSBjdXJyZW50bHkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwYjgy
NWQ3OGUwNWU1ZGVkMWNmOTI1ZWRlOGU0MDJjNjVlYWU0MWJhLi5lZjNhNjRkOGE4ZGJkODNmYTY2
YTNlM2M1ZTc0MmY5MGJlMmJjMjQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDYtMDcg
IFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDcmFz
aF1bRWRpdGluZ10gVmlzaWJsZVNlbGVjdGlvbjo6YWRqdXN0U2VsZWN0aW9uVG9Bdm9pZENyb3Nz
aW5nRWRpdGluZ0JvdW5kYXJpZXMoKSBjcmFzaGVzIGluIHNvbWUgU2hhZG93IERPTSBjYXNlLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg1MDAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2EuCisKKyAgICAgICAgKiBlZGl0aW5nL3No
YWRvdy9icmVha2luZy1lZGl0aW5nLWJvdW5kYXJpZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBlZGl0aW5nL3NoYWRvdy9icmVha2luZy1lZGl0aW5nLWJvdW5kYXJpZXMuaHRtbDog
QWRkZWQuCisKIDIwMTItMDYtMTggIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUuY29t
PgogCiAgICAgICAgIHdlYmtpdCBmYWlscyBJRVRDIGJvcmRlci1yYWRpdXMtY2xpcC0wMDIKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2hhZG93L2JyZWFraW5nLWVkaXRpbmctYm91
bmRhcmllcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9icmVha2lu
Zy1lZGl0aW5nLWJvdW5kYXJpZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcyZTdjMWYwNDg0
MGFhZDJjNDA3OWU1Y2M0YTA3ZTUxMDBjOGVkODQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3NoYWRvdy9icmVha2luZy1lZGl0aW5nLWJvdW5kYXJpZXMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsOCBAQAorV2hlbiBzZWxlY3RpbmcgZnJvbSBhIGNoaWxkIG9mIHNoYWRv
dyBob3N0IHRvIGFuIGVsZW1lbnQgaW4gU2hhZG93IERPTSwgYSBjcmFzaCBzaG91bGQgbm90IGJl
IGNhdXNlZC4gVGhpcyBpcyBiZWNhdXNlIHRoZSBzdGFydCBwb3NpdGlvbiBvZiBTZWxlY3Rpb24g
Y29tZXMgYWZ0ZXIgdGhlIGVuZCBwb3NpdGlvbiBvZiBTZWxlY3Rpb24uCisKK2JlZm9yZSBob3N0
IGRyYWcgZnJvbSBoZXJlIGFmdGVyIGhvc3QKK1BBU1MKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0
aW5nL3NoYWRvdy9icmVha2luZy1lZGl0aW5nLWJvdW5kYXJpZXMuaHRtbCBiL0xheW91dFRlc3Rz
L2VkaXRpbmcvc2hhZG93L2JyZWFraW5nLWVkaXRpbmctYm91bmRhcmllcy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjE2ODIwOWY0YmEwMDAxNGRjNzcyMTBjMjNkOTgyMzY4OTQ0YTJmNGUKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NoYWRvdy9icmVha2luZy1lZGl0aW5nLWJvdW5k
YXJpZXMuaHRtbApAQCAtMCwwICsxLDM2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJv
ZHk+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9kb20vc2hhZG93L3Jlc291cmNlcy9wb2x5Zmls
bC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9kb20vcmVzb3VyY2VzL2V2
ZW50LXNlbmRlci11dGlsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pz
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisKKzxwPldoZW4gc2VsZWN0aW5n
IGZyb20gYSBjaGlsZCBvZiBzaGFkb3cgaG9zdCB0byBhbiBlbGVtZW50IGluIFNoYWRvdyBET00s
IGEgY3Jhc2ggc2hvdWxkIG5vdCBiZSBjYXVzZWQuCitUaGlzIGlzIGJlY2F1c2UgdGhlIHN0YXJ0
IHBvc2l0aW9uIG9mIFNlbGVjdGlvbiBjb21lcyBhZnRlciB0aGUgZW5kIHBvc2l0aW9uIG9mIFNl
bGVjdGlvbi48L3A+CisKKzxkaXYgY29udGVudGVkaXRhYmxlPgorICAgIGJlZm9yZSBob3N0IDxz
cGFuIGlkPSJob3N0IiBjb250ZW50ZWRpdGFibGU9ImZhbHNlIj5kcmFnIGZyb20gaGVyZTxzcGFu
IGlkPSJ0YXJnZXQiPiA8L3NwYW4+IGFmdGVyIGhvc3Q8L3NwYW4+Cis8L2Rpdj4KKzxwcmUgaWQ9
ImNvbnNvbGUiPjwvcHJlPgorCis8c2NyaXB0PgordmFyIHNoYWRvd1Jvb3QgPSBuZXcgV2ViS2l0
U2hhZG93Um9vdChob3N0KTsKK3NoYWRvd1Jvb3QuaW5uZXJIVE1MID0gIjxzcGFuIGlkPSdzaGFk
b3ctaG9zdCc+YmVmb3JlIHNoYWRvdzxzaGFkb3cgaWQ9J3NoYWRvdyc+PC9zaGFkb3c+YWZ0ZXIg
c2hhZG93PC9zcGFuPiIKKwordmFyIG5lc3RlZFNoYWRvd0hvc3QgPSBzaGFkb3dSb290LmdldEVs
ZW1lbnRCeUlkKCdzaGFkb3ctaG9zdCcpOwordmFyIG5lc3RlZFNoYWRvd1Jvb3QgPSBuZXcgV2Vi
S2l0U2hhZG93Um9vdChuZXN0ZWRTaGFkb3dIb3N0KTsKK25lc3RlZFNoYWRvd1Jvb3QuaW5uZXJI
VE1MID0gIjxzcGFuIGNvbnRlbnRlZGl0YWJsZT5iZWZvcmUgbmVzdGVkPHNoYWRvdz48L3NoYWRv
dz5hZnRlciBuZXN0ZWQ8L3NwYW4+IgorCisvLyBUaGlzIHNob3VsZCBub3QgY2F1c2UgYSBjcmFz
aC4KK2V2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHRhcmdldC5vZmZzZXRMZWZ0IC0gMTAsIHRhcmdl
dC5vZmZzZXRUb3AgKyB0YXJnZXQub2Zmc2V0SGVpZ2h0IC8gMik7CitldmVudFNlbmRlci5tb3Vz
ZURvd24oKTsKK2V2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKG5lc3RlZFNoYWRvd0hvc3Qub2Zmc2V0
TGVmdCArIDEwLCBuZXN0ZWRTaGFkb3dIb3N0Lm9mZnNldFRvcCArIG5lc3RlZFNoYWRvd0hvc3Qu
b2Zmc2V0SGVpZ2h0IC8gMik7CitldmVudFNlbmRlci5tb3VzZVVwKCk7CitkZWJ1ZygnUEFTUycp
OworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorCis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>