<?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>98021</bug_id>
          
          <creation_ts>2012-10-01 05:39:04 -0700</creation_ts>
          <short_desc>Wrong display with &quot;tr:nth-child(even) td&quot; and missing &lt;tbody&gt;</short_desc>
          <delta_ts>2012-11-27 12:02:26 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tables</component>
          <version>420+</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>101448</dup_id>
          
          <bug_file_loc>http://robin-gloster.de/webkit.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Robin Gloster">robin</reporter>
          <assigned_to name="Takashi Sakamoto">tasak</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>tasak</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>731610</commentid>
    <comment_count>0</comment_count>
    <who name="Robin Gloster">robin</who>
    <bug_when>2012-10-01 05:39:04 -0700</bug_when>
    <thetext>I have a table and want to color the background of alternating rows using:

table tr:nth-child(even) td {
  background: #eee;
}

This works if tbody is present, otherwise the first colored row gets mixed up.

See http://robin-gloster.de/webkit.html for page without tbody
See http://robin-gloster.de/webkit2.html for working page with tbody
See http://robin-gloster.de/webkit.css for the css</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733543</commentid>
    <comment_count>1</comment_count>
      <attachid>166850</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-10-03 03:52:23 -0700</bug_when>
    <thetext>Created attachment 166850
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733550</commentid>
    <comment_count>2</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-10-03 04:10:40 -0700</bug_when>
    <thetext>Hello,

This bug is caused by sibling style cache.
If some positional rules are applied to the given element, the element cannot use sibling style cache.
To know whether there exists any positional rule or not, sibling style cache looks at the parent style of the element, i.e. childrenAffectedByPositinalRules. The value is set in SelectorChecker::checkSelector.

So,
&lt;style&gt;
table tr:nth-child(even) td { background: #eee; }
&lt;/style&gt;
&lt;table&gt;
  &lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

while resolving styles for the first &lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;/tr&gt;, since &lt;th&gt; doesn&apos;t match any rules, &lt;tr&gt;&apos;s style will be created but its parent&apos;s childrenAffectedByPositionalRules will be false.

In the next line, i.e. &lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;, the &lt;tr&gt;&apos;s style is the same as the first &lt;tr&gt;&apos;s style, because the &lt;tr&gt;&apos;s parent&apos;s childenAffectedByPositionalRules is false.

Since&lt;td&gt; matches the rightmost selector of &quot;table tr:nth-child(even) td&quot;, checkSelector checks whether there exists any ancestor which matches &quot;tr:nth-child(even)&quot; or not. In checkSelector,

        case CSSSelector::PseudoNthChild:
...
                if (m_mode == ResolvingStyle) {
                    RenderStyle* childStyle = context.elementStyle ? context.elementStyle : element-&gt;renderStyle();
...
                        childStyle-&gt;setChildIndex(count);
...

to avoid calculating child position again and again, the &lt;tr&gt;&apos;s style is updated to have the &lt;tr&gt;&apos;s position. However, the &lt;tr&gt;&apos;s style is the same as the previous sibling &lt;tr&gt;.

Best regards,
Takashi Sakamoto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737393</commentid>
    <comment_count>3</comment_count>
      <attachid>167684</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-10-08 21:36:19 -0700</bug_when>
    <thetext>Created attachment 167684
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>737885</commentid>
    <comment_count>4</comment_count>
      <attachid>167684</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-10-09 09:51:14 -0700</bug_when>
    <thetext>Comment on attachment 167684
Patch

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

&gt; Source/WebCore/css/SelectorChecker.cpp:1391
&gt; +inline int SelectorChecker::DOMTraversalStrategy&lt;SelectorChecker::SelectorCheckingContext&gt;::countElementsBefore(const SelectorChecker::SelectorCheckingContext&amp; context,  Element* element, bool resolvingState)

I think a better name for this “resolving state” boolean would be shouldSetChildIndex.

Also, there’s an extra stray space here after the comma.

&gt; Source/WebCore/css/SelectorChecker.cpp:1410
&gt; +    if (resolvingState) {
&gt; +        const Element* previousSibling = element-&gt;previousElementSibling();
&gt; +        RenderStyle* childStyle = context.elementStyle ? context.elementStyle : element-&gt;renderStyle();
&gt; +        // Don&apos;t setChildIndex if childStyle is a shared style.
&gt; +        if (childStyle &amp;&amp; !(previousSibling &amp;&amp; previousSibling-&gt;renderStyle() == childStyle))
&gt; +            childStyle-&gt;setChildIndex(count + 1);
&gt; +    }

A better way to express the “don’t set the child index if the style is shared” is to make a named local variable. I’d write the code like this:

    if (shouldSetChildIndex) {
        if (RenderStyle* childStyle = context.elementStyle ? context.elementStyle : element-&gt;renderStyle()) {
            const Element* previousSibling = element-&gt;previousElementSibling();
            bool isSharedStyle = previousSibling &amp;&amp; previousSibling-&gt;renderStyle() == childStyle;
            if (!isSharedStyle)
                childStyle-&gt;setIndex(count + 1);
        }
    }

This way, the code comments itself so you don’t need that comment.

Will doing these additional previousElementSibling linked list walks have a measurable performance impact?

I think it’s really unfortunate here that the “count + 1” rule is hardcoded here as well as at the call site.

I don’t understand why this code has to be moved inside the countElementsBefore function. The block of code here doesn’t seem to take advantage of the state at all. It seems like we just added the previousElementSibling logic, but this logic could have been added in checkOneSelector without moving the code.

&gt; Source/WebCore/css/SelectorChecker.h:91
&gt; +        static int countElementsBefore(const Context&amp;, Element*, bool);

This bool needs an argument name. The rule is that arguments with meanings that are obvious given the type can be omitted, but this bool does not qualify. Frankly the qualified name arguments for types in the surrounding functions also don’t, and need an argument name, but this is an even more extreme example.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738450</commentid>
    <comment_count>5</comment_count>
      <attachid>167896</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-10-09 19:33:13 -0700</bug_when>
    <thetext>Created attachment 167896
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738477</commentid>
    <comment_count>6</comment_count>
      <attachid>167904</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-10-09 20:30:44 -0700</bug_when>
    <thetext>Created attachment 167904
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>738482</commentid>
    <comment_count>7</comment_count>
      <attachid>167684</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-10-09 20:39:32 -0700</bug_when>
    <thetext>Comment on attachment 167684
Patch

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

Thank you for reviewing.

&gt;&gt; Source/WebCore/css/SelectorChecker.cpp:1391
&gt;&gt; +inline int SelectorChecker::DOMTraversalStrategy&lt;SelectorChecker::SelectorCheckingContext&gt;::countElementsBefore(const SelectorChecker::SelectorCheckingContext&amp; context,  Element* element, bool resolvingState)
&gt; 
&gt; I think a better name for this “resolving state” boolean would be shouldSetChildIndex.
&gt; 
&gt; Also, there’s an extra stray space here after the comma.

I reverted the code.

&gt;&gt; Source/WebCore/css/SelectorChecker.cpp:1410
&gt;&gt; +    }
&gt; 
&gt; A better way to express the “don’t set the child index if the style is shared” is to make a named local variable. I’d write the code like this:
&gt; 
&gt;     if (shouldSetChildIndex) {
&gt;         if (RenderStyle* childStyle = context.elementStyle ? context.elementStyle : element-&gt;renderStyle()) {
&gt;             const Element* previousSibling = element-&gt;previousElementSibling();
&gt;             bool isSharedStyle = previousSibling &amp;&amp; previousSibling-&gt;renderStyle() == childStyle;
&gt;             if (!isSharedStyle)
&gt;                 childStyle-&gt;setIndex(count + 1);
&gt;         }
&gt;     }
&gt; 
&gt; This way, the code comments itself so you don’t need that comment.
&gt; 
&gt; Will doing these additional previousElementSibling linked list walks have a measurable performance impact?
&gt; 
&gt; I think it’s really unfortunate here that the “count + 1” rule is hardcoded here as well as at the call site.
&gt; 
&gt; I don’t understand why this code has to be moved inside the countElementsBefore function. The block of code here doesn’t seem to take advantage of the state at all. It seems like we just added the previousElementSibling logic, but this logic could have been added in checkOneSelector without moving the code.

&gt; I don’t understand why this code has to be moved inside the countElementsBefore function.

I agree with you. I&apos;m afraid that some new checkSelector has its own &quot;previousElementSibling&quot; and my patch will break styles.
So I talked with a guy who are working on another checkSelector. He was planning to use only CollectingStyle in his new checkSelector. So I reverted the code, i.e. checkSelector does setChildIndex.

&gt;&gt; Source/WebCore/css/SelectorChecker.h:91
&gt;&gt; +        static int countElementsBefore(const Context&amp;, Element*, bool);
&gt; 
&gt; This bool needs an argument name. The rule is that arguments with meanings that are obvious given the type can be omitted, but this bool does not qualify. Frankly the qualified name arguments for types in the surrounding functions also don’t, and need an argument name, but this is an even more extreme example.

I reverted the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>741721</commentid>
    <comment_count>8</comment_count>
      <attachid>168620</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-10-14 21:23:15 -0700</bug_when>
    <thetext>Created attachment 168620
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755389</commentid>
    <comment_count>9</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-10-31 09:46:00 -0700</bug_when>
    <thetext>CC&apos;ing some good reviewers for a CSS change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758287</commentid>
    <comment_count>10</comment_count>
      <attachid>172279</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-11-05 00:13:56 -0800</bug_when>
    <thetext>Created attachment 172279
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759593</commentid>
    <comment_count>11</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-11-06 06:15:30 -0800</bug_when>
    <thetext>Why is the style shared at this point, and wouldn&apos;t it be better to trigger it to unshare?

Btw, it would be great if we could more directly tell if a style is shared. With all the RefPtr everywhere looking at the refCount is probably not the best solution, but it could be flag on the style. If we had that, it would be great thing to assert on in several other places we assume non shared styles.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759856</commentid>
    <comment_count>12</comment_count>
      <attachid>172279</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-11-06 10:48:29 -0800</bug_when>
    <thetext>Comment on attachment 172279
Patch

This feels like wrong approach. The style shouldn&apos;t get shared in the first place in cases where nth-child rules might apply.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760442</commentid>
    <comment_count>13</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-11-07 00:47:40 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; Why is the style shared at this point, and wouldn&apos;t it be better to trigger it to unshare?

I agree, if possible, we should disable sharing the style in StyleResolver::locatedShareStyle. But from the viewpoint of current WebKit implementation, it is very hard. Because WebKit always tries to check css selectors from right to left.

I will show an example:

&lt;style&gt;
table tr:nth-child(even) td { background: #eee; }
&lt;/style&gt;
&lt;table&gt;
  &lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;

The css selectors &quot;table tr:nth-child(even) td&quot; does&apos;t match any element defined in the line: &quot;&lt;tr&gt;&lt;th&gt;&lt;/th&gt;&lt;/tr&gt;&quot;, because &lt;tr&gt; doesn&apos;t match &quot;td&quot; and &lt;th&gt; doesn&apos;t match &quot;td&quot;. No checkSelector for &quot;nth-child&quot; is invoked. So there is no way to know whether &lt;tr&gt; has nth-child(even) or not.

When we see the next line &quot;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&quot;, we can reach checkSelector for &quot;nth-child&quot;, because &lt;td&gt; matches &quot;table tr:nth-child(even) td&quot;&apos;s rightmost selector. Now we find that &lt;tr&gt; has nth-child(even) and the style should not be shared. But it is too late.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760466</commentid>
    <comment_count>14</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-11-07 01:35:42 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; When we see the next line &quot;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&quot;, we can reach checkSelector for &quot;nth-child&quot;, because &lt;td&gt; matches &quot;table tr:nth-child(even) td&quot;&apos;s rightmost selector. Now we find that &lt;tr&gt; has nth-child(even) and the style should not be shared. But it is too late.

It shouldn&apos;t be too late. What I don&apos;t understand here is that sharing also skips the selector matching. In this case we are in the process of selector matching, so why is the style already shared? During the slow path the base style should be a completely new one, and if the fundamentals of the this system has changed, then you would need to have a copy-on-write system, and it would need to be triggered at this point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760469</commentid>
    <comment_count>15</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-11-07 01:40:52 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; When we see the next line &quot;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&quot;, we can reach checkSelector for &quot;nth-child&quot;, because &lt;td&gt; matches &quot;table tr:nth-child(even) td&quot;&apos;s rightmost selector. Now we find that &lt;tr&gt; has nth-child(even) and the style should not be shared. But it is too late.
&gt; 
&gt; It shouldn&apos;t be too late. What I don&apos;t understand here is that sharing also skips the selector matching. In this case we are in the process of selector matching, so why is the style already shared? During the slow path the base style should be a completely new one, and if the fundamentals of the this system has changed, then you would need to have a copy-on-write system, and it would need to be triggered at this point.

No wait, strike that. It is not the style being created that is shared, it is the parent style. 

I guess that leaves three options: 
1) Detect nth selectors earlier and disable sharing, we do this for some other tricky selectors.
2) A system to change an already shared style to become unshared. We have copy-on-write for subparts of the renderstyle, perhaps renderstyle itself could work similarly.
3) We could move child-index out of style and into Elements, probably in ElementRareData. We could move other dynamic settings with it, most of the bitfield flags that is set on parent elements would be good to move. This would also save us copying them to new styles in recalcStyle.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760539</commentid>
    <comment_count>16</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-11-07 05:00:04 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; 3) We could move child-index out of style and into Elements, probably in ElementRareData. We could move other dynamic settings with it, most of the bitfield flags that is set on parent elements would be good to move. This would also save us copying them to new styles in recalcStyle.

I said that because I have previosly been working on a patch that moved some of these flags out, though not childIndex. I have updated my old patch and added childIndex to the flags moved, and uploaded the patch to bug #101448</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761355</commentid>
    <comment_count>17</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-11-07 22:36:35 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #14)
&gt; &gt; (In reply to comment #13)
&gt; &gt; &gt; When we see the next line &quot;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&quot;, we can reach checkSelector for &quot;nth-child&quot;, because &lt;td&gt; matches &quot;table tr:nth-child(even) td&quot;&apos;s rightmost selector. Now we find that &lt;tr&gt; has nth-child(even) and the style should not be shared. But it is too late.
&gt; &gt; 
&gt; &gt; It shouldn&apos;t be too late. What I don&apos;t understand here is that sharing also skips the selector matching. In this case we are in the process of selector matching, so why is the style already shared? During the slow path the base style should be a completely new one, and if the fundamentals of the this system has changed, then you would need to have a copy-on-write system, and it would need to be triggered at this point.
&gt; 
&gt; No wait, strike that. It is not the style being created that is shared, it is the parent style. 

Yes, it is the parent style. I think, updating the parent style in checkSelector causes this issue.

&gt; 3) We could move child-index out of style and into Elements, probably in ElementRareData. We could move other dynamic settings with it, most of the bitfield flags that is set on parent elements would be good to move. This would also save us copying them to new styles in recalcStyle.

I see. This can make us avoid updating the parent style in checkSelector. It looks better solution than my way.

I will cancel my patch&apos;s review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>761356</commentid>
    <comment_count>18</comment_count>
      <attachid>172279</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-11-07 22:38:35 -0800</bug_when>
    <thetext>Comment on attachment 172279
Patch

I will cancel this review, because the patch for bug #101448 will fix this issue and the solution looks better than this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777076</commentid>
    <comment_count>19</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-11-27 12:02:13 -0800</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 10448 ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777078</commentid>
    <comment_count>20</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-11-27 12:02:26 -0800</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 101448 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166850</attachid>
            <date>2012-10-03 03:52:23 -0700</date>
            <delta_ts>2012-10-08 21:36:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98021-20121003195135.patch</filename>
            <type>text/plain</type>
            <size>5698</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMjQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzY3YmEzOWM1NDZiMGYw
ZDJmNjA2OGZiMWYxYjQyMTc3ODBlZDNlNy4uZDE5NjJiOWNhNGJlNDRhZjI1ZjUzMjczOGQyMDEx
MjdmOGI1Y2I4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTEwLTAzICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBXcm9uZyBkaXNwbGF5
IHdpdGggInRyOm50aC1jaGlsZChldmVuKSB0ZCIgYW5kIG1pc3NpbmcgPHRib2R5PgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgwMjEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGJ1ZyBpcyBjYXVz
ZWQgYnkgc2libGluZyBzdHlsZSBjYWNoZS4gSWYgdGhlcmUgZXhpc3QgPHRyPjx0aD4gYW5kCisg
ICAgICAgIDx0cj48dGQ+IGluIHRoZSBzYW1lIDx0Ym9keT4sIHRoZSA8dHI+PHRoPiBkb2Vzbid0
IG1hdGNoIHRoZSBzZWxlY3RvcgorICAgICAgICAidHI6bnRoLWNoaWxkKGV2ZW4pIHRkIi4gU28g
aXQgaXMgbm90IHBvc3NpYmxlIHRvIG1ha2UgdGhlIHRyCisgICAgICAgIG9mICI8dHI+PHRoPiIg
aGF2ZSBjaGlsZHJlbkFmZmVjdGVkQnlGb3dhcmRQb3NpdGlvbmFsUnVsZXMuIFRoaXMgbWVhbnMs
CisgICAgICAgIHRoZSA8dHI+J3Mgc3R5bGUgY2FuIGJlIHNoYXJlZCBieSB0aGUgbmV4dCB0ciwg
aS5lLiA8dHI+PHRkPidzLgorICAgICAgICBTbyB1cGRhdGluZyBjaGlsZCBpbmRleCBvZiB0aGUg
dHIgb2YgIjx0cj48dGQ+IiBhbHNvIGNoYW5nZXMKKyAgICAgICAgdGhlIHByZXZpb3VzIHNpYmxp
bmcncyBjaGlsZCBpbmRleC4KKworICAgICAgICBUZXN0OiBmYXN0L2Nzcy9udGgtY2hpbGQtbm90
LWluLXJpZ2h0bW9zdC5odG1sCisKKyAgICAgICAgKiBjc3MvU2VsZWN0b3JDaGVja2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmVTZWxlY3Rvcik6Cisg
ICAgICAgIENoZWNrIHdoZXRoZXIgdGhlIHN0eWxlIG9mIHRoZSBwcmV2aW91cyBzaWJsaW5nIGlz
IHNoYXJlZCB3aXRoIHRoZQorICAgICAgICBlbGVtZW50LiBJZiBzaGFyZWQsIGF2b2lkIHVwZGF0
aW5nIHNldENoaWxkSW5kZXguCisKIDIwMTItMTAtMDIgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFtNYWNdW0Nocm9taXVtLU1hY10gSW1wbGVtZW50IExvY2Fs
ZU1hYzo6ZGF0ZUZvcm1hdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9y
Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAppbmRl
eCA0MDNiMjE4YWY5ZmNiYzZmNmI0YmM0ZmQyYzAzNjdlYWNiYjVhNjkxLi4xMDkyZTJjMTYxY2Yw
ODJmNTVjNzBmZmEzYmQ5Nzk2NzBmYmU1MDE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU2VsZWN0b3JDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JD
aGVja2VyLmNwcApAQCAtOTMxLDggKzkzMSw5IEBAIGJvb2wgU2VsZWN0b3JDaGVja2VyOjpjaGVj
a09uZVNlbGVjdG9yKGNvbnN0IFNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0JiBjb250ZXh0KSBjCiAg
ICAgICAgICAgICBpZiAoIXNlbGVjdG9yLT5wYXJzZU50aCgpKQogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgaWYgKEVsZW1lbnQqIHBhcmVudEVsZW1lbnQgPSBlbGVtZW50LT5w
YXJlbnRFbGVtZW50KCkpIHsKKyAgICAgICAgICAgICAgICBjb25zdCBFbGVtZW50KiBwcmV2aW91
c1NpYmxpbmcgPSBlbGVtZW50LT5wcmV2aW91c0VsZW1lbnRTaWJsaW5nKCk7CiAgICAgICAgICAg
ICAgICAgaW50IGNvdW50ID0gMTsKLSAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IEVsZW1lbnQq
IHNpYmxpbmcgPSBlbGVtZW50LT5wcmV2aW91c0VsZW1lbnRTaWJsaW5nKCk7IHNpYmxpbmc7IHNp
YmxpbmcgPSBzaWJsaW5nLT5wcmV2aW91c0VsZW1lbnRTaWJsaW5nKCkpIHsKKyAgICAgICAgICAg
ICAgICBmb3IgKGNvbnN0IEVsZW1lbnQqIHNpYmxpbmcgPSBwcmV2aW91c1NpYmxpbmc7IHNpYmxp
bmc7IHNpYmxpbmcgPSBzaWJsaW5nLT5wcmV2aW91c0VsZW1lbnRTaWJsaW5nKCkpIHsKICAgICAg
ICAgICAgICAgICAgICAgUmVuZGVyU3R5bGUqIHMgPSBzaWJsaW5nLT5yZW5kZXJTdHlsZSgpOwog
ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbmRleCA9IHMgPyBzLT5jaGlsZEluZGV4KCkg
OiAwOwogICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXgpIHsKQEAgLTk0NSw3ICs5NDYsOCBA
QCBib29sIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmVTZWxlY3Rvcihjb25zdCBTZWxlY3RvckNo
ZWNraW5nQ29udGV4dCYgY29udGV4dCkgYwogICAgICAgICAgICAgICAgIGlmIChtX21vZGUgPT0g
UmVzb2x2aW5nU3R5bGUpIHsKICAgICAgICAgICAgICAgICAgICAgUmVuZGVyU3R5bGUqIGNoaWxk
U3R5bGUgPSBjb250ZXh0LmVsZW1lbnRTdHlsZSA/IGNvbnRleHQuZWxlbWVudFN0eWxlIDogZWxl
bWVudC0+cmVuZGVyU3R5bGUoKTsKICAgICAgICAgICAgICAgICAgICAgUmVuZGVyU3R5bGUqIHBh
cmVudFN0eWxlID0gY29udGV4dC5lbGVtZW50U3R5bGUgPyBjb250ZXh0LmVsZW1lbnRQYXJlbnRT
dHlsZSA6IHBhcmVudEVsZW1lbnQtPnJlbmRlclN0eWxlKCk7Ci0gICAgICAgICAgICAgICAgICAg
IGlmIChjaGlsZFN0eWxlKQorICAgICAgICAgICAgICAgICAgICAvLyBEb24ndCBzZXRDaGlsZElu
ZGV4IGlmIGNoaWxkU3R5bGUgaXMgYSBzaGFyZWQgc3R5bGUuCisgICAgICAgICAgICAgICAgICAg
IGlmIChjaGlsZFN0eWxlICYmICEocHJldmlvdXNTaWJsaW5nICYmIHByZXZpb3VzU2libGluZy0+
cmVuZGVyU3R5bGUoKSA9PSBjaGlsZFN0eWxlKSkKICAgICAgICAgICAgICAgICAgICAgICAgIGNo
aWxkU3R5bGUtPnNldENoaWxkSW5kZXgoY291bnQpOwogICAgICAgICAgICAgICAgICAgICBpZiAo
cGFyZW50U3R5bGUpCiAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRTdHlsZS0+c2V0Q2hp
bGRyZW5BZmZlY3RlZEJ5Rm9yd2FyZFBvc2l0aW9uYWxSdWxlcygpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGJjNGQ2ZjBl
Yzc2NWM5ZGRlZWYxMDI5ZWFjMDNhZGE1YWMyZTgxZTIuLjUxOWM1YWE3MTkwMzQyYTBiMDBjMmVk
YWUxNGI1ZTk3MGRkY2MyNGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEgKzEsMTEgQEAKKzIwMTItMTAtMDMgIFRha2Fz
aGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUuY29tPgorCisgICAgICAgIFdyb25nIGRpc3BsYXkg
d2l0aCAidHI6bnRoLWNoaWxkKGV2ZW4pIHRkIiBhbmQgbWlzc2luZyA8dGJvZHk+CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODAyMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9jc3MvbnRoLWNo
aWxkLW5vdC1pbi1yaWdodG1vc3QtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9jc3MvbnRoLWNoaWxkLW5vdC1pbi1yaWdodG1vc3QuaHRtbDogQWRkZWQuCisKID09IFJvbGxl
ZCBvdmVyIHRvIENoYW5nZUxvZy0yMDEyLTEwLTAyID09CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9udGgtY2hpbGQtbm90LWluLXJpZ2h0bW9zdC1leHBlY3RlZC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9jc3MvbnRoLWNoaWxkLW5vdC1pbi1yaWdodG1vc3QtZXhwZWN0ZWQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42MzFjMDgwNDc5MGE2N2MyZDQwODY2N2Y1ZmNkN2M5OGYzMjU1MTVkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvbnRoLWNoaWxkLW5vdC1pbi1y
aWdodG1vc3QtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE3IEBACis8IWRvY3R5cGUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisuYXBwbGllZCB7CisgIGJhY2tncm91bmQ6ICNlZWU7
Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXY+PHA+ZHVtbXk8L3A+PC9kaXY+
CisgIDxkaXY+PHNwYW4gY2xhc3M9ImFwcGxpZWQiPjE8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcGxp
ZWQiPjI8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcGxpZWQiPjM8L3NwYW4+PC9kaXY+CisgIDxkaXY+
PHNwYW4+NDwvc3Bhbj48c3Bhbj41PC9zcGFuPjxzcGFuPjY8L3NwYW4+PC9kaXY+CisgIDxkaXY+
PHNwYW4gY2xhc3M9ImFwcGxpZWQiPjc8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcGxpZWQiPjg8L3Nw
YW4+PHNwYW4gY2xhc3M9ImFwcGxpZWQiPjk8L3NwYW4+PC9kaXY+CisgIDxkaXY+PHNwYW4+MTA8
L3NwYW4+PHNwYW4+MTE8L3NwYW4+PHNwYW4+MTI8L3NwYW4+PC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9udGgtY2hpbGQtbm90LWluLXJp
Z2h0bW9zdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvbnRoLWNoaWxkLW5vdC1pbi1yaWdo
dG1vc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMDEyMDBiZTQ5ODkwNzlkZTA3OGExOGIwYjgwZTkzMTA5
NDUwYTJlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvbnRoLWNoaWxk
LW5vdC1pbi1yaWdodG1vc3QuaHRtbApAQCAtMCwwICsxLDIxIEBACis8IWRvY3R5cGUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitkaXY6bnRoLWNoaWxkKGV2ZW4pIHNwYW4geworICBi
YWNrZ3JvdW5kOiAjZWVlOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8IS0tIFRl
c3QgZm9yIGJ1ZyA5ODAyMSwgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk4MDIxIC0tPgorICA8IS0tIFdyb25nIGRpc3BsYXkgd2l0aCAidHI6bnRoLWNoaWxkKGV2ZW4p
IHRkIiBhbmQgbWlzc2luZyAmbHQ7dGJvZHkmZ3Q7IC0tPgorICA8IS0tIElmIHRlc3QgcGFzc2Vz
LCAxLCAyLCAzLCA3LCA4LCBhbmQgOSdzIGJhY2tncm91bmQtY29sb3IgaXMgI2VlZS4gLS0+Cisg
IDwhLS0gNCwgNSwgNiwgMTAsIDExLCBhbmQgMTIncyBiYWNrZ3JvdW5kIGNvbG9yIGlzIGRlZmF1
bHQuLS0+CisgIDxkaXY+PHA+ZHVtbXk8L3A+PC9kaXY+CisgIDxkaXY+PHNwYW4+MTwvc3Bhbj48
c3Bhbj4yPC9zcGFuPjxzcGFuPjM8L3NwYW4+PC9kaXY+CisgIDxkaXY+PHNwYW4+NDwvc3Bhbj48
c3Bhbj41PC9zcGFuPjxzcGFuPjY8L3NwYW4+PC9kaXY+CisgIDxkaXY+PHNwYW4+Nzwvc3Bhbj48
c3Bhbj44PC9zcGFuPjxzcGFuPjk8L3NwYW4+PC9kaXY+CisgIDxkaXY+PHNwYW4+MTA8L3NwYW4+
PHNwYW4+MTE8L3NwYW4+PHNwYW4+MTI8L3NwYW4+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167684</attachid>
            <date>2012-10-08 21:36:19 -0700</date>
            <delta_ts>2012-10-09 20:39:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98021-20121009133521.patch</filename>
            <type>text/plain</type>
            <size>7707</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTMwYTU2YzRhZWQ5YjQx
Njk3MjgwYTY2OGU0MTgzM2MzNmNhNzc5OC4uNGE1NjI4ZTU0NjI1MmZhMDBiYzBhMTg1ZTM4NmUy
NDkxMGU4OGUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTEwLTAzICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBXcm9uZyBkaXNwbGF5
IHdpdGggInRyOm50aC1jaGlsZChldmVuKSB0ZCIgYW5kIG1pc3NpbmcgPHRib2R5PgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgwMjEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGJ1ZyBpcyBjYXVz
ZWQgYnkgc2libGluZyBzdHlsZSBjYWNoZS4gSWYgdGhlcmUgZXhpc3QgPHRyPjx0aD4gYW5kCisg
ICAgICAgIDx0cj48dGQ+IGluIHRoZSBzYW1lIDx0Ym9keT4sIHRoZSA8dHI+PHRoPiBkb2Vzbid0
IG1hdGNoIHRoZSBzZWxlY3RvcgorICAgICAgICAidHI6bnRoLWNoaWxkKGV2ZW4pIHRkIi4gU28g
aXQgaXMgbm90IHBvc3NpYmxlIHRvIG1ha2UgdGhlIHRyCisgICAgICAgIG9mICI8dHI+PHRoPiIg
aGF2ZSBjaGlsZHJlbkFmZmVjdGVkQnlGb3dhcmRQb3NpdGlvbmFsUnVsZXMuIFRoaXMgbWVhbnMs
CisgICAgICAgIHRoZSA8dHI+J3Mgc3R5bGUgY2FuIGJlIHNoYXJlZCBieSB0aGUgbmV4dCB0ciwg
aS5lLiA8dHI+PHRkPidzLgorICAgICAgICBTbyB1cGRhdGluZyBjaGlsZCBpbmRleCBvZiB0aGUg
dHIgb2YgIjx0cj48dGQ+IiBhbHNvIGNoYW5nZXMKKyAgICAgICAgdGhlIHByZXZpb3VzIHNpYmxp
bmcncyBjaGlsZCBpbmRleC4KKworICAgICAgICBUZXN0OiBmYXN0L2Nzcy9udGgtY2hpbGQtbm90
LWluLXJpZ2h0bW9zdC5odG1sCisKKyAgICAgICAgKiBjc3MvU2VsZWN0b3JDaGVja2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmVTZWxlY3Rvcik6Cisg
ICAgICAgIE1vZGlmaWVkIHRoZSBjb2RlIHdoaWNoIGludm9rZXMgY291bnRFbGVtZW50c0JlZm9y
ZS4KKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ2hlY2tlcjo6RE9NVHJhdmVyc2FsU3RyYXRl
Z3k6OmNvdW50RWxlbWVudHNCZWZvcmUpOgorICAgICAgICBBZGRlZCBvbmUgbmV3IGFyZ3VtZW50
IHRvIGNvdW50RWxlbWVudHNCZWZvcmUgdG8ga25vdyByZXNvbGl2aW5nIHN0YXRlCisgICAgICAg
IG9yIG5vdC4gSWYgcmVzb2x2aW5nIHN0YXRlLCBuZWVkIHRvIHVwZGF0ZSB0aGUgZWxlbWVudCdz
IGNoaWxkIGluZGV4LgorICAgICAgICBIb3dldmVyIGlmIHRoZSBzdHlsZSBvZiB0aGUgcHJldmlv
dXMgc2libGluZyBpcyBzaGFyZWQgd2l0aCB0aGUKKyAgICAgICAgZWxlbWVudC4gSWYgc2hhcmVk
LCBhdm9pZCB1cGRhdGluZyBzZXRDaGlsZEluZGV4LgorCiAyMDEyLTEwLTA4ICBBbGVjIEZsZXR0
ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KIAogICAgICAgICBJbmRleGVkREI6IHJlbW92ZSBh
dXRvZ2VuZXJhdGVkIG9iamVjdFN0b3JlL2luZGV4IGlkIGNvZGUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1Nl
bGVjdG9yQ2hlY2tlci5jcHAKaW5kZXggYmY1ODAzZDIwNzhlZjcxOTc0MDZhZWUwNmVjODM3ODBi
MjIwNmU4NS4uMTJkNTMzODhjMGJmMTRjMTVhZmMwY2Q5N2YxMjkzY2U2MGQ4ZWFiZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKQEAgLTkwOSwxNiArOTA5LDEyIEBAIGJv
b2wgU2VsZWN0b3JDaGVja2VyOjpjaGVja09uZVNlbGVjdG9yKGNvbnN0IENoZWNraW5nQ29udGV4
dCYgY29udGV4dCkgY29uc3QKICAgICAgICAgICAgIGlmICghc2VsZWN0b3ItPnBhcnNlTnRoKCkp
CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBpZiAoRWxlbWVudCogcGFyZW50
RWxlbWVudCA9IGVsZW1lbnQtPnBhcmVudEVsZW1lbnQoKSkgewotICAgICAgICAgICAgICAgIGlu
dCBjb3VudCA9IDEgKyBET01UcmF2ZXJzYWxTdHJhdGVneTxDaGVja2luZ0NvbnRleHQ+Ojpjb3Vu
dEVsZW1lbnRzQmVmb3JlKGNvbnRleHQsIGVsZW1lbnQpOworICAgICAgICAgICAgICAgIGludCBj
b3VudCA9IDEgKyBET01UcmF2ZXJzYWxTdHJhdGVneTxDaGVja2luZ0NvbnRleHQ+Ojpjb3VudEVs
ZW1lbnRzQmVmb3JlKGNvbnRleHQsIGVsZW1lbnQsIG1fbW9kZSA9PSBSZXNvbHZpbmdTdHlsZSk7
CiAgICAgICAgICAgICAgICAgaWYgKG1fbW9kZSA9PSBSZXNvbHZpbmdTdHlsZSkgewotICAgICAg
ICAgICAgICAgICAgICBSZW5kZXJTdHlsZSogY2hpbGRTdHlsZSA9IGNvbnRleHQuZWxlbWVudFN0
eWxlID8gY29udGV4dC5lbGVtZW50U3R5bGUgOiBlbGVtZW50LT5yZW5kZXJTdHlsZSgpOwogICAg
ICAgICAgICAgICAgICAgICBSZW5kZXJTdHlsZSogcGFyZW50U3R5bGUgPSBjb250ZXh0LmVsZW1l
bnRTdHlsZSA/IGNvbnRleHQuZWxlbWVudFBhcmVudFN0eWxlIDogcGFyZW50RWxlbWVudC0+cmVu
ZGVyU3R5bGUoKTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkU3R5bGUpCi0gICAgICAg
ICAgICAgICAgICAgICAgICBjaGlsZFN0eWxlLT5zZXRDaGlsZEluZGV4KGNvdW50KTsKICAgICAg
ICAgICAgICAgICAgICAgaWYgKHBhcmVudFN0eWxlKQogICAgICAgICAgICAgICAgICAgICAgICAg
cGFyZW50U3R5bGUtPnNldENoaWxkcmVuQWZmZWN0ZWRCeUZvcndhcmRQb3NpdGlvbmFsUnVsZXMo
KTsKICAgICAgICAgICAgICAgICB9Ci0KICAgICAgICAgICAgICAgICBpZiAoc2VsZWN0b3ItPm1h
dGNoTnRoKGNvdW50KSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
ICAgICB9CkBAIC0xMzkyLDcgKzEzODgsNyBAQCBpbmxpbmUgYm9vbCBTZWxlY3RvckNoZWNrZXI6
OkRPTVRyYXZlcnNhbFN0cmF0ZWd5PFNlbGVjdG9yQ2hlY2tlcjo6U2VsZWN0b3JDaGVjawogfQog
CiB0ZW1wbGF0ZTw+Ci1pbmxpbmUgaW50IFNlbGVjdG9yQ2hlY2tlcjo6RE9NVHJhdmVyc2FsU3Ry
YXRlZ3k8U2VsZWN0b3JDaGVja2VyOjpTZWxlY3RvckNoZWNraW5nQ29udGV4dD46OmNvdW50RWxl
bWVudHNCZWZvcmUoY29uc3QgU2VsZWN0b3JDaGVja2VyOjpTZWxlY3RvckNoZWNraW5nQ29udGV4
dCYsIEVsZW1lbnQqIGVsZW1lbnQpCitpbmxpbmUgaW50IFNlbGVjdG9yQ2hlY2tlcjo6RE9NVHJh
dmVyc2FsU3RyYXRlZ3k8U2VsZWN0b3JDaGVja2VyOjpTZWxlY3RvckNoZWNraW5nQ29udGV4dD46
OmNvdW50RWxlbWVudHNCZWZvcmUoY29uc3QgU2VsZWN0b3JDaGVja2VyOjpTZWxlY3RvckNoZWNr
aW5nQ29udGV4dCYgY29udGV4dCwgIEVsZW1lbnQqIGVsZW1lbnQsIGJvb2wgcmVzb2x2aW5nU3Rh
dGUpCiB7CiAgICAgaW50IGNvdW50ID0gMDsKICAgICBmb3IgKGNvbnN0IEVsZW1lbnQqIHNpYmxp
bmcgPSBlbGVtZW50LT5wcmV2aW91c0VsZW1lbnRTaWJsaW5nKCk7IHNpYmxpbmc7IHNpYmxpbmcg
PSBzaWJsaW5nLT5wcmV2aW91c0VsZW1lbnRTaWJsaW5nKCkpIHsKQEAgLTE0MDUsNiArMTQwMSwx
MyBAQCBpbmxpbmUgaW50IFNlbGVjdG9yQ2hlY2tlcjo6RE9NVHJhdmVyc2FsU3RyYXRlZ3k8U2Vs
ZWN0b3JDaGVja2VyOjpTZWxlY3RvckNoZWNraQogICAgICAgICBjb3VudCsrOwogICAgIH0KIAor
ICAgIGlmIChyZXNvbHZpbmdTdGF0ZSkgeworICAgICAgICBjb25zdCBFbGVtZW50KiBwcmV2aW91
c1NpYmxpbmcgPSBlbGVtZW50LT5wcmV2aW91c0VsZW1lbnRTaWJsaW5nKCk7CisgICAgICAgIFJl
bmRlclN0eWxlKiBjaGlsZFN0eWxlID0gY29udGV4dC5lbGVtZW50U3R5bGUgPyBjb250ZXh0LmVs
ZW1lbnRTdHlsZSA6IGVsZW1lbnQtPnJlbmRlclN0eWxlKCk7CisgICAgICAgIC8vIERvbid0IHNl
dENoaWxkSW5kZXggaWYgY2hpbGRTdHlsZSBpcyBhIHNoYXJlZCBzdHlsZS4KKyAgICAgICAgaWYg
KGNoaWxkU3R5bGUgJiYgIShwcmV2aW91c1NpYmxpbmcgJiYgcHJldmlvdXNTaWJsaW5nLT5yZW5k
ZXJTdHlsZSgpID09IGNoaWxkU3R5bGUpKQorICAgICAgICAgICAgY2hpbGRTdHlsZS0+c2V0Q2hp
bGRJbmRleChjb3VudCArIDEpOworICAgIH0KICAgICByZXR1cm4gY291bnQ7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuaAppbmRleCAxZjM0OTBjNjQ3NjRiMGQyMDIxYzczZGVj
OGYxOTFmYmIxNjIzYTFiLi4yZDczNmJmNjY3NjUyYTZkNzAyOGEwMjMxYjU3ZmM5NTU1YTcyY2Yz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5oCkBAIC04OCw3ICs4OCw3IEBAIHB1
YmxpYzoKICAgICAgICAgc3RhdGljIGJvb2wgaXNGaXJzdE9mVHlwZShjb25zdCBDb250ZXh0Jiwg
RWxlbWVudCosIGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKICAgICAgICAgc3RhdGljIGJvb2wgaXNM
YXN0T2ZUeXBlKGNvbnN0IENvbnRleHQmLCBFbGVtZW50KiwgY29uc3QgUXVhbGlmaWVkTmFtZSYp
OwogCi0gICAgICAgIHN0YXRpYyBpbnQgY291bnRFbGVtZW50c0JlZm9yZShjb25zdCBDb250ZXh0
JiwgRWxlbWVudCopOworICAgICAgICBzdGF0aWMgaW50IGNvdW50RWxlbWVudHNCZWZvcmUoY29u
c3QgQ29udGV4dCYsIEVsZW1lbnQqLCBib29sKTsKICAgICAgICAgc3RhdGljIGludCBjb3VudEVs
ZW1lbnRzQWZ0ZXIoY29uc3QgQ29udGV4dCYsIEVsZW1lbnQqKTsKICAgICAgICAgc3RhdGljIGlu
dCBjb3VudEVsZW1lbnRzT2ZUeXBlQmVmb3JlKGNvbnN0IENvbnRleHQmLCBFbGVtZW50KiwgY29u
c3QgUXVhbGlmaWVkTmFtZSYpOwogICAgICAgICBzdGF0aWMgaW50IGNvdW50RWxlbWVudHNPZlR5
cGVBZnRlcihjb25zdCBDb250ZXh0JiwgRWxlbWVudCosIGNvbnN0IFF1YWxpZmllZE5hbWUmKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkN2ZkYzZiODcxMTc5Yjg4NGZmM2RlOTQ4NDYzYmFiZmVkZDE2ZGI4Li40ODcwMTBh
NDg0YjJjNGYyZWFlOTE0YmZlY2IwMzNmODZhZjIzMjE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTItMTAtMDMgIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUuY29tPgorCisgICAg
ICAgIFdyb25nIGRpc3BsYXkgd2l0aCAidHI6bnRoLWNoaWxkKGV2ZW4pIHRkIiBhbmQgbWlzc2lu
ZyA8dGJvZHk+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05ODAyMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogZmFzdC9jc3MvbnRoLWNoaWxkLW5vdC1pbi1yaWdodG1vc3QtZXhwZWN0ZWQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9jc3MvbnRoLWNoaWxkLW5vdC1pbi1yaWdodG1vc3QuaHRtbDog
QWRkZWQuCisKIDIwMTItMTAtMDggIEFscGhhIExhbSAgPGhjbGFtQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBOb3QgcmV2aWV3ZWQuIFJlYmFzZWxpbmVzIGZvciBDaHJvbWl1bS4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL250aC1jaGlsZC1ub3QtaW4tcmlnaHRtb3N0LWV4cGVj
dGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9udGgtY2hpbGQtbm90LWluLXJpZ2h0bW9z
dC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzMWMwODA0NzkwYTY3YzJkNDA4NjY3ZjVmY2Q3
Yzk4ZjMyNTUxNWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9udGgt
Y2hpbGQtbm90LWluLXJpZ2h0bW9zdC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTcgQEAKKzwh
ZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy5hcHBsaWVkIHsKKyAgYmFj
a2dyb3VuZDogI2VlZTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdj48cD5k
dW1teTwvcD48L2Rpdj4KKyAgPGRpdj48c3BhbiBjbGFzcz0iYXBwbGllZCI+MTwvc3Bhbj48c3Bh
biBjbGFzcz0iYXBwbGllZCI+Mjwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwbGllZCI+Mzwvc3Bhbj48
L2Rpdj4KKyAgPGRpdj48c3Bhbj40PC9zcGFuPjxzcGFuPjU8L3NwYW4+PHNwYW4+Njwvc3Bhbj48
L2Rpdj4KKyAgPGRpdj48c3BhbiBjbGFzcz0iYXBwbGllZCI+Nzwvc3Bhbj48c3BhbiBjbGFzcz0i
YXBwbGllZCI+ODwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwbGllZCI+OTwvc3Bhbj48L2Rpdj4KKyAg
PGRpdj48c3Bhbj4xMDwvc3Bhbj48c3Bhbj4xMTwvc3Bhbj48c3Bhbj4xMjwvc3Bhbj48L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL250aC1j
aGlsZC1ub3QtaW4tcmlnaHRtb3N0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9udGgtY2hp
bGQtbm90LWluLXJpZ2h0bW9zdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwMTIwMGJlNDk4OTA3OWRlMDc4
YTE4YjBiODBlOTMxMDk0NTBhMmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9udGgtY2hpbGQtbm90LWluLXJpZ2h0bW9zdC5odG1sCkBAIC0wLDAgKzEsMjEgQEAKKzwh
ZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK2RpdjpudGgtY2hpbGQoZXZl
bikgc3BhbiB7CisgIGJhY2tncm91bmQ6ICNlZWU7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJv
ZHk+CisgIDwhLS0gVGVzdCBmb3IgYnVnIDk4MDIxLCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTgwMjEgLS0+CisgIDwhLS0gV3JvbmcgZGlzcGxheSB3aXRoICJ0cjpu
dGgtY2hpbGQoZXZlbikgdGQiIGFuZCBtaXNzaW5nICZsdDt0Ym9keSZndDsgLS0+CisgIDwhLS0g
SWYgdGVzdCBwYXNzZXMsIDEsIDIsIDMsIDcsIDgsIGFuZCA5J3MgYmFja2dyb3VuZC1jb2xvciBp
cyAjZWVlLiAtLT4KKyAgPCEtLSA0LCA1LCA2LCAxMCwgMTEsIGFuZCAxMidzIGJhY2tncm91bmQg
Y29sb3IgaXMgZGVmYXVsdC4tLT4KKyAgPGRpdj48cD5kdW1teTwvcD48L2Rpdj4KKyAgPGRpdj48
c3Bhbj4xPC9zcGFuPjxzcGFuPjI8L3NwYW4+PHNwYW4+Mzwvc3Bhbj48L2Rpdj4KKyAgPGRpdj48
c3Bhbj40PC9zcGFuPjxzcGFuPjU8L3NwYW4+PHNwYW4+Njwvc3Bhbj48L2Rpdj4KKyAgPGRpdj48
c3Bhbj43PC9zcGFuPjxzcGFuPjg8L3NwYW4+PHNwYW4+OTwvc3Bhbj48L2Rpdj4KKyAgPGRpdj48
c3Bhbj4xMDwvc3Bhbj48c3Bhbj4xMTwvc3Bhbj48c3Bhbj4xMjwvc3Bhbj48L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167896</attachid>
            <date>2012-10-09 19:33:13 -0700</date>
            <delta_ts>2012-10-09 20:30:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98021-20121010113213.patch</filename>
            <type>text/plain</type>
            <size>7955</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwODM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzcyYThhMTA0Yzg0YmM1
NDVmMjhlNWY4ZWU1NTE3N2JlNTllMjlhOC4uNTdiODlmYTYzNTVhNjU5M2YwYmE4NWJjMWMwYmJk
ZmI4N2FkMTY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTEwLTAzICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBXcm9uZyBkaXNwbGF5
IHdpdGggInRyOm50aC1jaGlsZChldmVuKSB0ZCIgYW5kIG1pc3NpbmcgPHRib2R5PgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgwMjEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGJ1ZyBpcyBjYXVz
ZWQgYnkgc2libGluZyBzdHlsZSBjYWNoZS4gSWYgdGhlcmUgZXhpc3QgPHRyPjx0aD4gYW5kCisg
ICAgICAgIDx0cj48dGQ+IGluIHRoZSBzYW1lIDx0Ym9keT4sIHRoZSA8dHI+PHRoPiBkb2Vzbid0
IG1hdGNoIHRoZSBzZWxlY3RvcgorICAgICAgICAidHI6bnRoLWNoaWxkKGV2ZW4pIHRkIi4gU28g
aXQgaXMgbm90IHBvc3NpYmxlIHRvIG1ha2UgdGhlIHRyCisgICAgICAgIG9mICI8dHI+PHRoPiIg
aGF2ZSBjaGlsZHJlbkFmZmVjdGVkQnlGb3dhcmRQb3NpdGlvbmFsUnVsZXMuIFRoaXMgbWVhbnMs
CisgICAgICAgIHRoZSA8dHI+J3Mgc3R5bGUgY2FuIGJlIHNoYXJlZCBieSB0aGUgbmV4dCB0ciwg
aS5lLiA8dHI+PHRkPidzLgorICAgICAgICBTbyB1cGRhdGluZyBjaGlsZCBpbmRleCBvZiB0aGUg
dHIgb2YgIjx0cj48dGQ+IiBhbHNvIGNoYW5nZXMKKyAgICAgICAgdGhlIHByZXZpb3VzIHNpYmxp
bmcncyBjaGlsZCBpbmRleC4KKworICAgICAgICBUZXN0OiBmYXN0L2Nzcy9udGgtY2hpbGQtbm90
LWluLXJpZ2h0bW9zdC5odG1sCisKKyAgICAgICAgKiBjc3MvU2VsZWN0b3JDaGVja2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmVTZWxlY3Rvcik6Cisg
ICAgICAgIE1vZGlmaWVkIHRoZSBjb2RlIHdoaWNoIGludm9rZXMgY291bnRFbGVtZW50c0JlZm9y
ZS4KKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ2hlY2tlcjo6RE9NVHJhdmVyc2FsU3RyYXRl
Z3k6OmNvdW50RWxlbWVudHNCZWZvcmUpOgorICAgICAgICBBZGRlZCBvbmUgbmV3IGFyZ3VtZW50
IHRvIGNvdW50RWxlbWVudHNCZWZvcmUgdG8ga25vdyByZXNvbGl2aW5nIHN0YXRlCisgICAgICAg
IG9yIG5vdC4gSWYgcmVzb2x2aW5nIHN0YXRlLCBuZWVkIHRvIHVwZGF0ZSB0aGUgZWxlbWVudCdz
IGNoaWxkIGluZGV4LgorICAgICAgICBIb3dldmVyIGlmIHRoZSBzdHlsZSBvZiB0aGUgcHJldmlv
dXMgc2libGluZyBpcyBzaGFyZWQgd2l0aCB0aGUKKyAgICAgICAgZWxlbWVudC4gSWYgc2hhcmVk
LCBhdm9pZCB1cGRhdGluZyBzZXRDaGlsZEluZGV4LgorCiAyMDEyLTEwLTA5ICBKb2UgTWFzb24g
IDxqbWFzb25AcmltLmNvbT4KIAogICAgICAgICBDaGVjayBmb3IgbnVsbCBtX2ZyYW1lIGluIE5l
dHdvcmtKb2IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHAKaW5kZXggYmY1ODAz
ZDIwNzhlZjcxOTc0MDZhZWUwNmVjODM3ODBiMjIwNmU4NS4uZmVjODg3OWU4NDZjYTYxOWFkM2Uw
Mzc2MjMzNDBmMTE1MzhkN2FmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVj
dG9yQ2hlY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5j
cHAKQEAgLTkwOSwxNiArOTA5LDEyIEBAIGJvb2wgU2VsZWN0b3JDaGVja2VyOjpjaGVja09uZVNl
bGVjdG9yKGNvbnN0IENoZWNraW5nQ29udGV4dCYgY29udGV4dCkgY29uc3QKICAgICAgICAgICAg
IGlmICghc2VsZWN0b3ItPnBhcnNlTnRoKCkpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICBpZiAoRWxlbWVudCogcGFyZW50RWxlbWVudCA9IGVsZW1lbnQtPnBhcmVudEVsZW1l
bnQoKSkgewotICAgICAgICAgICAgICAgIGludCBjb3VudCA9IDEgKyBET01UcmF2ZXJzYWxTdHJh
dGVneTxDaGVja2luZ0NvbnRleHQ+Ojpjb3VudEVsZW1lbnRzQmVmb3JlKGNvbnRleHQsIGVsZW1l
bnQpOworICAgICAgICAgICAgICAgIGludCBjb3VudCA9IDEgKyBET01UcmF2ZXJzYWxTdHJhdGVn
eTxDaGVja2luZ0NvbnRleHQ+Ojpjb3VudEVsZW1lbnRzQmVmb3JlKGNvbnRleHQsIGVsZW1lbnQs
IG1fbW9kZSA9PSBSZXNvbHZpbmdTdHlsZSk7CiAgICAgICAgICAgICAgICAgaWYgKG1fbW9kZSA9
PSBSZXNvbHZpbmdTdHlsZSkgewotICAgICAgICAgICAgICAgICAgICBSZW5kZXJTdHlsZSogY2hp
bGRTdHlsZSA9IGNvbnRleHQuZWxlbWVudFN0eWxlID8gY29udGV4dC5lbGVtZW50U3R5bGUgOiBl
bGVtZW50LT5yZW5kZXJTdHlsZSgpOwogICAgICAgICAgICAgICAgICAgICBSZW5kZXJTdHlsZSog
cGFyZW50U3R5bGUgPSBjb250ZXh0LmVsZW1lbnRTdHlsZSA/IGNvbnRleHQuZWxlbWVudFBhcmVu
dFN0eWxlIDogcGFyZW50RWxlbWVudC0+cmVuZGVyU3R5bGUoKTsKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKGNoaWxkU3R5bGUpCi0gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZFN0eWxlLT5z
ZXRDaGlsZEluZGV4KGNvdW50KTsKICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmVudFN0eWxl
KQogICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50U3R5bGUtPnNldENoaWxkcmVuQWZmZWN0
ZWRCeUZvcndhcmRQb3NpdGlvbmFsUnVsZXMoKTsKICAgICAgICAgICAgICAgICB9Ci0KICAgICAg
ICAgICAgICAgICBpZiAoc2VsZWN0b3ItPm1hdGNoTnRoKGNvdW50KSkKICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9CkBAIC0xMzkyLDEwICsxMzg4LDExIEBA
IGlubGluZSBib29sIFNlbGVjdG9yQ2hlY2tlcjo6RE9NVHJhdmVyc2FsU3RyYXRlZ3k8U2VsZWN0
b3JDaGVja2VyOjpTZWxlY3RvckNoZWNrCiB9CiAKIHRlbXBsYXRlPD4KLWlubGluZSBpbnQgU2Vs
ZWN0b3JDaGVja2VyOjpET01UcmF2ZXJzYWxTdHJhdGVneTxTZWxlY3RvckNoZWNrZXI6OlNlbGVj
dG9yQ2hlY2tpbmdDb250ZXh0Pjo6Y291bnRFbGVtZW50c0JlZm9yZShjb25zdCBTZWxlY3RvckNo
ZWNrZXI6OlNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0JiwgRWxlbWVudCogZWxlbWVudCkKK2lubGlu
ZSBpbnQgU2VsZWN0b3JDaGVja2VyOjpET01UcmF2ZXJzYWxTdHJhdGVneTxTZWxlY3RvckNoZWNr
ZXI6OlNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0Pjo6Y291bnRFbGVtZW50c0JlZm9yZShjb25zdCBT
ZWxlY3RvckNoZWNrZXI6OlNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0JiBjb250ZXh0LCBFbGVtZW50
KiBlbGVtZW50LCBib29sIHNob3VsZFNldENoaWxkSW5kZXgpCiB7CiAgICAgaW50IGNvdW50ID0g
MDsKLSAgICBmb3IgKGNvbnN0IEVsZW1lbnQqIHNpYmxpbmcgPSBlbGVtZW50LT5wcmV2aW91c0Vs
ZW1lbnRTaWJsaW5nKCk7IHNpYmxpbmc7IHNpYmxpbmcgPSBzaWJsaW5nLT5wcmV2aW91c0VsZW1l
bnRTaWJsaW5nKCkpIHsKKyAgICBjb25zdCBFbGVtZW50KiBwcmV2aW91c0VsZW1lbnQgPSBlbGVt
ZW50LT5wcmV2aW91c0VsZW1lbnRTaWJsaW5nKCk7CisgICAgZm9yIChjb25zdCBFbGVtZW50KiBz
aWJsaW5nID0gcHJldmlvdXNFbGVtZW50OyBzaWJsaW5nOyBzaWJsaW5nID0gc2libGluZy0+cHJl
dmlvdXNFbGVtZW50U2libGluZygpKSB7CiAgICAgICAgIFJlbmRlclN0eWxlKiBzID0gc2libGlu
Zy0+cmVuZGVyU3R5bGUoKTsKICAgICAgICAgdW5zaWduZWQgaW5kZXggPSBzID8gcy0+Y2hpbGRJ
bmRleCgpIDogMDsKICAgICAgICAgaWYgKGluZGV4KSB7CkBAIC0xNDA1LDYgKzE0MDIsMTMgQEAg
aW5saW5lIGludCBTZWxlY3RvckNoZWNrZXI6OkRPTVRyYXZlcnNhbFN0cmF0ZWd5PFNlbGVjdG9y
Q2hlY2tlcjo6U2VsZWN0b3JDaGVja2kKICAgICAgICAgY291bnQrKzsKICAgICB9CiAKKyAgICBp
ZiAoc2hvdWxkU2V0Q2hpbGRJbmRleCkgeworICAgICAgICBpZiAoUmVuZGVyU3R5bGUqIGNoaWxk
U3R5bGUgPSBjb250ZXh0LmVsZW1lbnRTdHlsZSA/IGNvbnRleHQuZWxlbWVudFN0eWxlIDogZWxl
bWVudC0+cmVuZGVyU3R5bGUoKSkgeworICAgICAgICAgICAgYm9vbCBpc1NoYXJlZFN0eWxlID0g
cHJldmlvdXNFbGVtZW50ICYmIHByZXZpb3VzRWxlbWVudC0+cmVuZGVyU3R5bGUoKSA9PSBjaGls
ZFN0eWxlOworICAgICAgICAgICAgaWYgKCFpc1NoYXJlZFN0eWxlKQorICAgICAgICAgICAgICAg
IGNoaWxkU3R5bGUtPnNldENoaWxkSW5kZXgoY291bnQgKyAxKTsKKyAgICAgICAgfQorICAgIH0K
ICAgICByZXR1cm4gY291bnQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
ZWxlY3RvckNoZWNrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuaApp
bmRleCAxZjM0OTBjNjQ3NjRiMGQyMDIxYzczZGVjOGYxOTFmYmIxNjIzYTFiLi5iNTZlMDE3MGM3
YTM3ODE4NzA5NjE5MmExNjRhZmM2ZmRmNWQzYjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU2VsZWN0b3JDaGVja2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9y
Q2hlY2tlci5oCkBAIC04OCw3ICs4OCw3IEBAIHB1YmxpYzoKICAgICAgICAgc3RhdGljIGJvb2wg
aXNGaXJzdE9mVHlwZShjb25zdCBDb250ZXh0JiwgRWxlbWVudCosIGNvbnN0IFF1YWxpZmllZE5h
bWUmKTsKICAgICAgICAgc3RhdGljIGJvb2wgaXNMYXN0T2ZUeXBlKGNvbnN0IENvbnRleHQmLCBF
bGVtZW50KiwgY29uc3QgUXVhbGlmaWVkTmFtZSYpOwogCi0gICAgICAgIHN0YXRpYyBpbnQgY291
bnRFbGVtZW50c0JlZm9yZShjb25zdCBDb250ZXh0JiwgRWxlbWVudCopOworICAgICAgICBzdGF0
aWMgaW50IGNvdW50RWxlbWVudHNCZWZvcmUoY29uc3QgQ29udGV4dCYsIEVsZW1lbnQqLCBib29s
IHNob3VsZFNldENoaWxkSW5kZXgpOwogICAgICAgICBzdGF0aWMgaW50IGNvdW50RWxlbWVudHNB
ZnRlcihjb25zdCBDb250ZXh0JiwgRWxlbWVudCopOwogICAgICAgICBzdGF0aWMgaW50IGNvdW50
RWxlbWVudHNPZlR5cGVCZWZvcmUoY29uc3QgQ29udGV4dCYsIEVsZW1lbnQqLCBjb25zdCBRdWFs
aWZpZWROYW1lJik7CiAgICAgICAgIHN0YXRpYyBpbnQgY291bnRFbGVtZW50c09mVHlwZUFmdGVy
KGNvbnN0IENvbnRleHQmLCBFbGVtZW50KiwgY29uc3QgUXVhbGlmaWVkTmFtZSYpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGRhMTRjNGEzZjBkOTA1NjI5ZDkzNjU1YjY5OTZkOTdhZWNiMGNlY2EuLmZhMGM3NzVlZmQ1ZjFj
YWMzZGVjNGU3NTJmYTU2YjAyNjQ2MTkxYzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0x
MC0wMyAgVGFrYXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisKKyAgICAgICAgV3Jv
bmcgZGlzcGxheSB3aXRoICJ0cjpudGgtY2hpbGQoZXZlbikgdGQiIGFuZCBtaXNzaW5nIDx0Ym9k
eT4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4MDIx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0
L2Nzcy9udGgtY2hpbGQtbm90LWluLXJpZ2h0bW9zdC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L2Nzcy9udGgtY2hpbGQtbm90LWluLXJpZ2h0bW9zdC5odG1sOiBBZGRlZC4K
KwogMjAxMi0xMC0wOSAgSmVmZnJleSBQZmF1ICA8anBmYXVAYXBwbGUuY29tPgogCiAgICAgICAg
IFtNYWNdIFVucmV2aWV3ZWQsIHNraXBwaW5nIGh0dHAvdGVzdHMvc2VjdXJpdHkvc3ZnLWltYWdl
LWxlYWsuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvbnRoLWNoaWxkLW5v
dC1pbi1yaWdodG1vc3QtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL250aC1j
aGlsZC1ub3QtaW4tcmlnaHRtb3N0LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjMxYzA4MDQ3
OTBhNjdjMmQ0MDg2NjdmNWZjZDdjOThmMzI1NTE1ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvY3NzL250aC1jaGlsZC1ub3QtaW4tcmlnaHRtb3N0LWV4cGVjdGVkLmh0bWwK
QEAgLTAsMCArMSwxNyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxl
PgorLmFwcGxpZWQgeworICBiYWNrZ3JvdW5kOiAjZWVlOworfQorPC9zdHlsZT4KKzwvaGVhZD4K
Kzxib2R5PgorICA8ZGl2PjxwPmR1bW15PC9wPjwvZGl2PgorICA8ZGl2PjxzcGFuIGNsYXNzPSJh
cHBsaWVkIj4xPC9zcGFuPjxzcGFuIGNsYXNzPSJhcHBsaWVkIj4yPC9zcGFuPjxzcGFuIGNsYXNz
PSJhcHBsaWVkIj4zPC9zcGFuPjwvZGl2PgorICA8ZGl2PjxzcGFuPjQ8L3NwYW4+PHNwYW4+NTwv
c3Bhbj48c3Bhbj42PC9zcGFuPjwvZGl2PgorICA8ZGl2PjxzcGFuIGNsYXNzPSJhcHBsaWVkIj43
PC9zcGFuPjxzcGFuIGNsYXNzPSJhcHBsaWVkIj44PC9zcGFuPjxzcGFuIGNsYXNzPSJhcHBsaWVk
Ij45PC9zcGFuPjwvZGl2PgorICA8ZGl2PjxzcGFuPjEwPC9zcGFuPjxzcGFuPjExPC9zcGFuPjxz
cGFuPjEyPC9zcGFuPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvbnRoLWNoaWxkLW5vdC1pbi1yaWdodG1vc3QuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvY3NzL250aC1jaGlsZC1ub3QtaW4tcmlnaHRtb3N0Lmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjAxMjAwYmU0OTg5MDc5ZGUwNzhhMThiMGI4MGU5MzEwOTQ1MGEyZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL250aC1jaGlsZC1ub3QtaW4tcmlnaHRtb3N0Lmh0bWwK
QEAgLTAsMCArMSwyMSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxl
PgorZGl2Om50aC1jaGlsZChldmVuKSBzcGFuIHsKKyAgYmFja2dyb3VuZDogI2VlZTsKK30KKzwv
c3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPCEtLSBUZXN0IGZvciBidWcgOTgwMjEsIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODAyMSAtLT4KKyAgPCEtLSBXcm9u
ZyBkaXNwbGF5IHdpdGggInRyOm50aC1jaGlsZChldmVuKSB0ZCIgYW5kIG1pc3NpbmcgJmx0O3Ri
b2R5Jmd0OyAtLT4KKyAgPCEtLSBJZiB0ZXN0IHBhc3NlcywgMSwgMiwgMywgNywgOCwgYW5kIDkn
cyBiYWNrZ3JvdW5kLWNvbG9yIGlzICNlZWUuIC0tPgorICA8IS0tIDQsIDUsIDYsIDEwLCAxMSwg
YW5kIDEyJ3MgYmFja2dyb3VuZCBjb2xvciBpcyBkZWZhdWx0Li0tPgorICA8ZGl2PjxwPmR1bW15
PC9wPjwvZGl2PgorICA8ZGl2PjxzcGFuPjE8L3NwYW4+PHNwYW4+Mjwvc3Bhbj48c3Bhbj4zPC9z
cGFuPjwvZGl2PgorICA8ZGl2PjxzcGFuPjQ8L3NwYW4+PHNwYW4+NTwvc3Bhbj48c3Bhbj42PC9z
cGFuPjwvZGl2PgorICA8ZGl2PjxzcGFuPjc8L3NwYW4+PHNwYW4+ODwvc3Bhbj48c3Bhbj45PC9z
cGFuPjwvZGl2PgorICA8ZGl2PjxzcGFuPjEwPC9zcGFuPjxzcGFuPjExPC9zcGFuPjxzcGFuPjEy
PC9zcGFuPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167904</attachid>
            <date>2012-10-09 20:30:44 -0700</date>
            <delta_ts>2012-10-14 21:23:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98021-20121010122944.patch</filename>
            <type>text/plain</type>
            <size>5741</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwODM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzcyYThhMTA0Yzg0YmM1
NDVmMjhlNWY4ZWU1NTE3N2JlNTllMjlhOC4uNzBlMTk1M2QwY2Y5ZGMyMWMyYmM2YWEyNmYyZDQ0
ZWUzZTUwYTdlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTEwLTAzICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBXcm9uZyBkaXNwbGF5
IHdpdGggInRyOm50aC1jaGlsZChldmVuKSB0ZCIgYW5kIG1pc3NpbmcgPHRib2R5PgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgwMjEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGJ1ZyBpcyBjYXVz
ZWQgYnkgc2libGluZyBzdHlsZSBjYWNoZS4gSWYgdGhlcmUgZXhpc3QgPHRyPjx0aD4gYW5kCisg
ICAgICAgIDx0cj48dGQ+IGluIHRoZSBzYW1lIDx0Ym9keT4sIHRoZSA8dHI+PHRoPiBkb2Vzbid0
IG1hdGNoIHRoZSBzZWxlY3RvcgorICAgICAgICAidHI6bnRoLWNoaWxkKGV2ZW4pIHRkIi4gU28g
aXQgaXMgbm90IHBvc3NpYmxlIHRvIG1ha2UgdGhlIHRyCisgICAgICAgIG9mICI8dHI+PHRoPiIg
aGF2ZSBjaGlsZHJlbkFmZmVjdGVkQnlGb3dhcmRQb3NpdGlvbmFsUnVsZXMuIFRoaXMgbWVhbnMs
CisgICAgICAgIHRoZSA8dHI+J3Mgc3R5bGUgY2FuIGJlIHNoYXJlZCBieSB0aGUgbmV4dCB0ciwg
aS5lLiA8dHI+PHRkPidzLgorICAgICAgICBTbyB1cGRhdGluZyBjaGlsZCBpbmRleCBvZiB0aGUg
dHIgb2YgIjx0cj48dGQ+IiBhbHNvIGNoYW5nZXMKKyAgICAgICAgdGhlIHByZXZpb3VzIHNpYmxp
bmcncyBjaGlsZCBpbmRleC4KKworICAgICAgICBUZXN0OiBmYXN0L2Nzcy9udGgtY2hpbGQtbm90
LWluLXJpZ2h0bW9zdC5odG1sCisKKyAgICAgICAgKiBjc3MvU2VsZWN0b3JDaGVja2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmVTZWxlY3Rvcik6Cisg
ICAgICAgIElmIG1fbW9kZSBpcyBSZXNvbHZpbmdTdHlsZSwgY2hlY2sgd2hldGhlciB0aGUgY2hp
bGQgc3R5bGUgaXMgc2hhcmVkCisgICAgICAgIG9uZSBvciBub3QuIElmIHRoZSBjaGlsZCBzdHls
ZSBpcyBzaGFyZWQsIGF2b2lkIHNldENoaWxkSW5kZXguCisKIDIwMTItMTAtMDkgIEpvZSBNYXNv
biAgPGptYXNvbkByaW0uY29tPgogCiAgICAgICAgIENoZWNrIGZvciBudWxsIG1fZnJhbWUgaW4g
TmV0d29ya0pvYgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAppbmRleCBiZjU4
MDNkMjA3OGVmNzE5NzQwNmFlZTA2ZWM4Mzc4MGIyMjA2ZTg1Li5mYjMxZWIxOTgzZDU2YzVkZTY5
NzEzMjk5ZGZhMDUxYWVhNWI5ODRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2Vs
ZWN0b3JDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2Vy
LmNwcApAQCAtOTExLDE0ICs5MTEsMTYgQEAgYm9vbCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25l
U2VsZWN0b3IoY29uc3QgQ2hlY2tpbmdDb250ZXh0JiBjb250ZXh0KSBjb25zdAogICAgICAgICAg
ICAgaWYgKEVsZW1lbnQqIHBhcmVudEVsZW1lbnQgPSBlbGVtZW50LT5wYXJlbnRFbGVtZW50KCkp
IHsKICAgICAgICAgICAgICAgICBpbnQgY291bnQgPSAxICsgRE9NVHJhdmVyc2FsU3RyYXRlZ3k8
Q2hlY2tpbmdDb250ZXh0Pjo6Y291bnRFbGVtZW50c0JlZm9yZShjb250ZXh0LCBlbGVtZW50KTsK
ICAgICAgICAgICAgICAgICBpZiAobV9tb2RlID09IFJlc29sdmluZ1N0eWxlKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIFJlbmRlclN0eWxlKiBjaGlsZFN0eWxlID0gY29udGV4dC5lbGVtZW50U3R5
bGUgPyBjb250ZXh0LmVsZW1lbnRTdHlsZSA6IGVsZW1lbnQtPnJlbmRlclN0eWxlKCk7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChSZW5kZXJTdHlsZSogY2hpbGRTdHlsZSA9IGNvbnRleHQuZWxl
bWVudFN0eWxlID8gY29udGV4dC5lbGVtZW50U3R5bGUgOiBlbGVtZW50LT5yZW5kZXJTdHlsZSgp
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBFbGVtZW50KiBwcmV2aW91c0VsZW1l
bnQgPSBlbGVtZW50LT5wcmV2aW91c0VsZW1lbnRTaWJsaW5nKCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBib29sIGlzU2hhcmVkU3R5bGUgPSBwcmV2aW91c0VsZW1lbnQgJiYgcHJldmlvdXNF
bGVtZW50LT5yZW5kZXJTdHlsZSgpID09IGNoaWxkU3R5bGU7CisgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAoIWlzU2hhcmVkU3R5bGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hp
bGRTdHlsZS0+c2V0Q2hpbGRJbmRleChjb3VudCk7CisgICAgICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgICAgICAgUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlID0gY29udGV4dC5lbGVt
ZW50U3R5bGUgPyBjb250ZXh0LmVsZW1lbnRQYXJlbnRTdHlsZSA6IHBhcmVudEVsZW1lbnQtPnJl
bmRlclN0eWxlKCk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChjaGlsZFN0eWxlKQotICAgICAg
ICAgICAgICAgICAgICAgICAgY2hpbGRTdHlsZS0+c2V0Q2hpbGRJbmRleChjb3VudCk7CiAgICAg
ICAgICAgICAgICAgICAgIGlmIChwYXJlbnRTdHlsZSkKICAgICAgICAgICAgICAgICAgICAgICAg
IHBhcmVudFN0eWxlLT5zZXRDaGlsZHJlbkFmZmVjdGVkQnlGb3J3YXJkUG9zaXRpb25hbFJ1bGVz
KCk7CiAgICAgICAgICAgICAgICAgfQotCiAgICAgICAgICAgICAgICAgaWYgKHNlbGVjdG9yLT5t
YXRjaE50aChjb3VudCkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICAgICAgfQpAQCAtMTQwNCw3ICsxNDA2LDYgQEAgaW5saW5lIGludCBTZWxlY3RvckNoZWNrZXI6
OkRPTVRyYXZlcnNhbFN0cmF0ZWd5PFNlbGVjdG9yQ2hlY2tlcjo6U2VsZWN0b3JDaGVja2kKICAg
ICAgICAgfQogICAgICAgICBjb3VudCsrOwogICAgIH0KLQogICAgIHJldHVybiBjb3VudDsKIH0K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IGRhMTRjNGEzZjBkOTA1NjI5ZDkzNjU1YjY5OTZkOTdhZWNiMGNlY2EuLmZhMGM3
NzVlZmQ1ZjFjYWMzZGVjNGU3NTJmYTU2YjAyNjQ2MTkxYzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBA
QAorMjAxMi0xMC0wMyAgVGFrYXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisKKyAg
ICAgICAgV3JvbmcgZGlzcGxheSB3aXRoICJ0cjpudGgtY2hpbGQoZXZlbikgdGQiIGFuZCBtaXNz
aW5nIDx0Ym9keT4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTk4MDIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBmYXN0L2Nzcy9udGgtY2hpbGQtbm90LWluLXJpZ2h0bW9zdC1leHBlY3RlZC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9udGgtY2hpbGQtbm90LWluLXJpZ2h0bW9zdC5odG1s
OiBBZGRlZC4KKwogMjAxMi0xMC0wOSAgSmVmZnJleSBQZmF1ICA8anBmYXVAYXBwbGUuY29tPgog
CiAgICAgICAgIFtNYWNdIFVucmV2aWV3ZWQsIHNraXBwaW5nIGh0dHAvdGVzdHMvc2VjdXJpdHkv
c3ZnLWltYWdlLWxlYWsuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvbnRo
LWNoaWxkLW5vdC1pbi1yaWdodG1vc3QtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL250aC1jaGlsZC1ub3QtaW4tcmlnaHRtb3N0LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjMxYzA4MDQ3OTBhNjdjMmQ0MDg2NjdmNWZjZDdjOThmMzI1NTE1ZAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL250aC1jaGlsZC1ub3QtaW4tcmlnaHRtb3N0LWV4cGVj
dGVkLmh0bWwKQEAgLTAsMCArMSwxNyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPHN0eWxlPgorLmFwcGxpZWQgeworICBiYWNrZ3JvdW5kOiAjZWVlOworfQorPC9zdHlsZT4K
KzwvaGVhZD4KKzxib2R5PgorICA8ZGl2PjxwPmR1bW15PC9wPjwvZGl2PgorICA8ZGl2PjxzcGFu
IGNsYXNzPSJhcHBsaWVkIj4xPC9zcGFuPjxzcGFuIGNsYXNzPSJhcHBsaWVkIj4yPC9zcGFuPjxz
cGFuIGNsYXNzPSJhcHBsaWVkIj4zPC9zcGFuPjwvZGl2PgorICA8ZGl2PjxzcGFuPjQ8L3NwYW4+
PHNwYW4+NTwvc3Bhbj48c3Bhbj42PC9zcGFuPjwvZGl2PgorICA8ZGl2PjxzcGFuIGNsYXNzPSJh
cHBsaWVkIj43PC9zcGFuPjxzcGFuIGNsYXNzPSJhcHBsaWVkIj44PC9zcGFuPjxzcGFuIGNsYXNz
PSJhcHBsaWVkIj45PC9zcGFuPjwvZGl2PgorICA8ZGl2PjxzcGFuPjEwPC9zcGFuPjxzcGFuPjEx
PC9zcGFuPjxzcGFuPjEyPC9zcGFuPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvbnRoLWNoaWxkLW5vdC1pbi1yaWdodG1vc3QuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzL250aC1jaGlsZC1ub3QtaW4tcmlnaHRtb3N0Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjAxMjAwYmU0OTg5MDc5ZGUwNzhhMThiMGI4MGU5MzEwOTQ1MGEyZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL250aC1jaGlsZC1ub3QtaW4tcmlnaHRt
b3N0Lmh0bWwKQEAgLTAsMCArMSwyMSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPHN0eWxlPgorZGl2Om50aC1jaGlsZChldmVuKSBzcGFuIHsKKyAgYmFja2dyb3VuZDogI2Vl
ZTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPCEtLSBUZXN0IGZvciBidWcgOTgw
MjEsIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODAyMSAtLT4KKyAg
PCEtLSBXcm9uZyBkaXNwbGF5IHdpdGggInRyOm50aC1jaGlsZChldmVuKSB0ZCIgYW5kIG1pc3Np
bmcgJmx0O3Rib2R5Jmd0OyAtLT4KKyAgPCEtLSBJZiB0ZXN0IHBhc3NlcywgMSwgMiwgMywgNywg
OCwgYW5kIDkncyBiYWNrZ3JvdW5kLWNvbG9yIGlzICNlZWUuIC0tPgorICA8IS0tIDQsIDUsIDYs
IDEwLCAxMSwgYW5kIDEyJ3MgYmFja2dyb3VuZCBjb2xvciBpcyBkZWZhdWx0Li0tPgorICA8ZGl2
PjxwPmR1bW15PC9wPjwvZGl2PgorICA8ZGl2PjxzcGFuPjE8L3NwYW4+PHNwYW4+Mjwvc3Bhbj48
c3Bhbj4zPC9zcGFuPjwvZGl2PgorICA8ZGl2PjxzcGFuPjQ8L3NwYW4+PHNwYW4+NTwvc3Bhbj48
c3Bhbj42PC9zcGFuPjwvZGl2PgorICA8ZGl2PjxzcGFuPjc8L3NwYW4+PHNwYW4+ODwvc3Bhbj48
c3Bhbj45PC9zcGFuPjwvZGl2PgorICA8ZGl2PjxzcGFuPjEwPC9zcGFuPjxzcGFuPjExPC9zcGFu
PjxzcGFuPjEyPC9zcGFuPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168620</attachid>
            <date>2012-10-14 21:23:15 -0700</date>
            <delta_ts>2012-11-05 00:13:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98021-20121015132206.patch</filename>
            <type>text/plain</type>
            <size>5626</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODUzNTgzNmI5ZDg3NDNh
ZDBiMDUzMThhY2I3OTcyYThkNDdkNzQ5Ni4uNDRjZTdhMTFjNDMzNmM5ODhjNjI3MzE3ZTZkYmM1
OTc4YmE1NzFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTEwLTAzICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBXcm9uZyBkaXNwbGF5
IHdpdGggInRyOm50aC1jaGlsZChldmVuKSB0ZCIgYW5kIG1pc3NpbmcgPHRib2R5PgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgwMjEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGJ1ZyBpcyBjYXVz
ZWQgYnkgc2libGluZyBzdHlsZSBjYWNoZS4gSWYgdGhlcmUgZXhpc3QgPHRyPjx0aD4gYW5kCisg
ICAgICAgIDx0cj48dGQ+IGluIHRoZSBzYW1lIDx0Ym9keT4sIHRoZSA8dHI+PHRoPiBkb2Vzbid0
IG1hdGNoIHRoZSBzZWxlY3RvcgorICAgICAgICAidHI6bnRoLWNoaWxkKGV2ZW4pIHRkIi4gU28g
aXQgaXMgbm90IHBvc3NpYmxlIHRvIG1ha2UgdGhlIHRyCisgICAgICAgIG9mICI8dHI+PHRoPiIg
aGF2ZSBjaGlsZHJlbkFmZmVjdGVkQnlGb3dhcmRQb3NpdGlvbmFsUnVsZXMuIFRoaXMgbWVhbnMs
CisgICAgICAgIHRoZSA8dHI+J3Mgc3R5bGUgY2FuIGJlIHNoYXJlZCBieSB0aGUgbmV4dCB0ciwg
aS5lLiA8dHI+PHRkPidzLgorICAgICAgICBTbyB1cGRhdGluZyBjaGlsZCBpbmRleCBvZiB0aGUg
dHIgb2YgIjx0cj48dGQ+IiBhbHNvIGNoYW5nZXMKKyAgICAgICAgdGhlIHByZXZpb3VzIHNpYmxp
bmcncyBjaGlsZCBpbmRleC4KKworICAgICAgICBUZXN0OiBmYXN0L2Nzcy9udGgtY2hpbGQtbm90
LWluLXJpZ2h0bW9zdC5odG1sCisKKyAgICAgICAgKiBjc3MvU2VsZWN0b3JDaGVja2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmVTZWxlY3Rvcik6Cisg
ICAgICAgIElmIG1fbW9kZSBpcyBSZXNvbHZpbmdTdHlsZSwgY2hlY2sgd2hldGhlciB0aGUgY2hp
bGQgc3R5bGUgaXMgc2hhcmVkCisgICAgICAgIG9uZSBvciBub3QuIElmIHRoZSBjaGlsZCBzdHls
ZSBpcyBzaGFyZWQsIGF2b2lkIHNldENoaWxkSW5kZXguCisKIDIwMTItMTAtMTQgIFNhbSBXZWlu
aWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBTaW1wbGlmeSB1c2VyIGNvbnRlbnQgaW4g
V2ViS2l0MiBieSB1c2luZyBXZWJDb3JlOjpVc2VyU3R5bGVTaGVldCBhbmQgV2ViQ29yZTo6VXNl
clNjcmlwdCBkaXJlY3RseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9y
Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmNwcAppbmRl
eCA3YTEwN2M1YzFhNWU0ZGFlYjEwNGM3ZDljYTBkMWMzZjhlZTIxZTgyLi43YzhjN2QzMWFmN2M3
ZWNlMmY2MjNkNTM0MjlhZjk1ODM4YjcwM2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU2VsZWN0b3JDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JD
aGVja2VyLmNwcApAQCAtOTExLDE0ICs5MTEsMTYgQEAgYm9vbCBTZWxlY3RvckNoZWNrZXI6OmNo
ZWNrT25lU2VsZWN0b3IoY29uc3QgU2VsZWN0b3JDaGVja2luZ0NvbnRleHQmIGNvbnRleHQsIGMK
ICAgICAgICAgICAgIGlmIChFbGVtZW50KiBwYXJlbnRFbGVtZW50ID0gZWxlbWVudC0+cGFyZW50
RWxlbWVudCgpKSB7CiAgICAgICAgICAgICAgICAgaW50IGNvdW50ID0gMSArIHNpYmxpbmdUcmF2
ZXJzYWxTdHJhdGVneS5jb3VudEVsZW1lbnRzQmVmb3JlKGVsZW1lbnQpOwogICAgICAgICAgICAg
ICAgIGlmIChtX21vZGUgPT0gUmVzb2x2aW5nU3R5bGUpIHsKLSAgICAgICAgICAgICAgICAgICAg
UmVuZGVyU3R5bGUqIGNoaWxkU3R5bGUgPSBjb250ZXh0LmVsZW1lbnRTdHlsZSA/IGNvbnRleHQu
ZWxlbWVudFN0eWxlIDogZWxlbWVudC0+cmVuZGVyU3R5bGUoKTsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKFJlbmRlclN0eWxlKiBjaGlsZFN0eWxlID0gY29udGV4dC5lbGVtZW50U3R5bGUgPyBj
b250ZXh0LmVsZW1lbnRTdHlsZSA6IGVsZW1lbnQtPnJlbmRlclN0eWxlKCkpIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IEVsZW1lbnQqIHByZXZpb3VzRWxlbWVudCA9IGVsZW1lbnQt
PnByZXZpb3VzRWxlbWVudFNpYmxpbmcoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wg
aXNTaGFyZWRTdHlsZSA9IHByZXZpb3VzRWxlbWVudCAmJiBwcmV2aW91c0VsZW1lbnQtPnJlbmRl
clN0eWxlKCkgPT0gY2hpbGRTdHlsZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNT
aGFyZWRTdHlsZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZFN0eWxlLT5zZXRD
aGlsZEluZGV4KGNvdW50KTsKKyAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
ICAgICBSZW5kZXJTdHlsZSogcGFyZW50U3R5bGUgPSBjb250ZXh0LmVsZW1lbnRTdHlsZSA/IGNv
bnRleHQuZWxlbWVudFBhcmVudFN0eWxlIDogcGFyZW50RWxlbWVudC0+cmVuZGVyU3R5bGUoKTsK
LSAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkU3R5bGUpCi0gICAgICAgICAgICAgICAgICAg
ICAgICBjaGlsZFN0eWxlLT5zZXRDaGlsZEluZGV4KGNvdW50KTsKICAgICAgICAgICAgICAgICAg
ICAgaWYgKHBhcmVudFN0eWxlKQogICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50U3R5bGUt
PnNldENoaWxkcmVuQWZmZWN0ZWRCeUZvcndhcmRQb3NpdGlvbmFsUnVsZXMoKTsKICAgICAgICAg
ICAgICAgICB9Ci0KICAgICAgICAgICAgICAgICBpZiAoc2VsZWN0b3ItPm1hdGNoTnRoKGNvdW50
KSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggZjMxMDZjNWJiOTdiMTY2YmE2NTliODE4YTJlNjQ1MDI4NGMwMDhlMC4uMDRlN2JjMjU5MDQ1
Y2IzYTg0ZDY2NmQwNjgyMGM1MWUwZmNhMzljNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEy
LTEwLTAzICBUYWthc2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBX
cm9uZyBkaXNwbGF5IHdpdGggInRyOm50aC1jaGlsZChldmVuKSB0ZCIgYW5kIG1pc3NpbmcgPHRi
b2R5PgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgw
MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZh
c3QvY3NzL250aC1jaGlsZC1ub3QtaW4tcmlnaHRtb3N0LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvY3NzL250aC1jaGlsZC1ub3QtaW4tcmlnaHRtb3N0Lmh0bWw6IEFkZGVk
LgorCiAyMDEyLTEwLTE0ICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAogICAgICAgICBB
bGxvdyBub3RpZmljYXRpb24gb3JpZ2luIHBlcm1pc3Npb24gcmVxdWVzdCB3aGVuIG5vIGpzIGNh
bGxiYWNrIGlzIHByb3ZpZGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9udGgt
Y2hpbGQtbm90LWluLXJpZ2h0bW9zdC1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9j
c3MvbnRoLWNoaWxkLW5vdC1pbi1yaWdodG1vc3QtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
MzFjMDgwNDc5MGE2N2MyZDQwODY2N2Y1ZmNkN2M5OGYzMjU1MTVkCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvbnRoLWNoaWxkLW5vdC1pbi1yaWdodG1vc3QtZXhwZWN0
ZWQuaHRtbApAQCAtMCwwICsxLDE3IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8c3R5bGU+CisuYXBwbGllZCB7CisgIGJhY2tncm91bmQ6ICNlZWU7Cit9Cis8L3N0eWxlPgor
PC9oZWFkPgorPGJvZHk+CisgIDxkaXY+PHA+ZHVtbXk8L3A+PC9kaXY+CisgIDxkaXY+PHNwYW4g
Y2xhc3M9ImFwcGxpZWQiPjE8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcGxpZWQiPjI8L3NwYW4+PHNw
YW4gY2xhc3M9ImFwcGxpZWQiPjM8L3NwYW4+PC9kaXY+CisgIDxkaXY+PHNwYW4+NDwvc3Bhbj48
c3Bhbj41PC9zcGFuPjxzcGFuPjY8L3NwYW4+PC9kaXY+CisgIDxkaXY+PHNwYW4gY2xhc3M9ImFw
cGxpZWQiPjc8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcGxpZWQiPjg8L3NwYW4+PHNwYW4gY2xhc3M9
ImFwcGxpZWQiPjk8L3NwYW4+PC9kaXY+CisgIDxkaXY+PHNwYW4+MTA8L3NwYW4+PHNwYW4+MTE8
L3NwYW4+PHNwYW4+MTI8L3NwYW4+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9udGgtY2hpbGQtbm90LWluLXJpZ2h0bW9zdC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9jc3MvbnRoLWNoaWxkLW5vdC1pbi1yaWdodG1vc3QuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yMDEyMDBiZTQ5ODkwNzlkZTA3OGExOGIwYjgwZTkzMTA5NDUwYTJlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvbnRoLWNoaWxkLW5vdC1pbi1yaWdodG1v
c3QuaHRtbApAQCAtMCwwICsxLDIxIEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8c3R5bGU+CitkaXY6bnRoLWNoaWxkKGV2ZW4pIHNwYW4geworICBiYWNrZ3JvdW5kOiAjZWVl
OworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8IS0tIFRlc3QgZm9yIGJ1ZyA5ODAy
MSwgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4MDIxIC0tPgorICA8
IS0tIFdyb25nIGRpc3BsYXkgd2l0aCAidHI6bnRoLWNoaWxkKGV2ZW4pIHRkIiBhbmQgbWlzc2lu
ZyAmbHQ7dGJvZHkmZ3Q7IC0tPgorICA8IS0tIElmIHRlc3QgcGFzc2VzLCAxLCAyLCAzLCA3LCA4
LCBhbmQgOSdzIGJhY2tncm91bmQtY29sb3IgaXMgI2VlZS4gLS0+CisgIDwhLS0gNCwgNSwgNiwg
MTAsIDExLCBhbmQgMTIncyBiYWNrZ3JvdW5kIGNvbG9yIGlzIGRlZmF1bHQuLS0+CisgIDxkaXY+
PHA+ZHVtbXk8L3A+PC9kaXY+CisgIDxkaXY+PHNwYW4+MTwvc3Bhbj48c3Bhbj4yPC9zcGFuPjxz
cGFuPjM8L3NwYW4+PC9kaXY+CisgIDxkaXY+PHNwYW4+NDwvc3Bhbj48c3Bhbj41PC9zcGFuPjxz
cGFuPjY8L3NwYW4+PC9kaXY+CisgIDxkaXY+PHNwYW4+Nzwvc3Bhbj48c3Bhbj44PC9zcGFuPjxz
cGFuPjk8L3NwYW4+PC9kaXY+CisgIDxkaXY+PHNwYW4+MTA8L3NwYW4+PHNwYW4+MTE8L3NwYW4+
PHNwYW4+MTI8L3NwYW4+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172279</attachid>
            <date>2012-11-05 00:13:56 -0800</date>
            <delta_ts>2012-11-07 22:38:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98021-20121105171211.patch</filename>
            <type>text/plain</type>
            <size>5590</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNDI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjE0YTliNzE2N2ViMmFj
NWM0MDU4NTc4NTAxYWM5MmViZTcyYmU1MC4uZjE5OGMyNmYyMjk2ZGZlNTU4ZmUyNWY0ZDRiYzA4
OTFjYzExMjA5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTEwLTAzICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBXcm9uZyBkaXNwbGF5
IHdpdGggInRyOm50aC1jaGlsZChldmVuKSB0ZCIgYW5kIG1pc3NpbmcgPHRib2R5PgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgwMjEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGJ1ZyBpcyBjYXVz
ZWQgYnkgc2libGluZyBzdHlsZSBjYWNoZS4gSWYgdGhlcmUgZXhpc3QgPHRyPjx0aD4gYW5kCisg
ICAgICAgIDx0cj48dGQ+IGluIHRoZSBzYW1lIDx0Ym9keT4sIHRoZSA8dHI+PHRoPiBkb2Vzbid0
IG1hdGNoIHRoZSBzZWxlY3RvcgorICAgICAgICAidHI6bnRoLWNoaWxkKGV2ZW4pIHRkIi4gU28g
aXQgaXMgbm90IHBvc3NpYmxlIHRvIG1ha2UgdGhlIHRyCisgICAgICAgIG9mICI8dHI+PHRoPiIg
aGF2ZSBjaGlsZHJlbkFmZmVjdGVkQnlGb3dhcmRQb3NpdGlvbmFsUnVsZXMuIFRoaXMgbWVhbnMs
CisgICAgICAgIHRoZSA8dHI+J3Mgc3R5bGUgY2FuIGJlIHNoYXJlZCBieSB0aGUgbmV4dCB0ciwg
aS5lLiA8dHI+PHRkPidzLgorICAgICAgICBTbyB1cGRhdGluZyBjaGlsZCBpbmRleCBvZiB0aGUg
dHIgb2YgIjx0cj48dGQ+IiBhbHNvIGNoYW5nZXMKKyAgICAgICAgdGhlIHByZXZpb3VzIHNpYmxp
bmcncyBjaGlsZCBpbmRleC4KKworICAgICAgICBUZXN0OiBmYXN0L2Nzcy9udGgtY2hpbGQtbm90
LWluLXJpZ2h0bW9zdC5odG1sCisKKyAgICAgICAgKiBjc3MvU2VsZWN0b3JDaGVja2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmVTZWxlY3Rvcik6Cisg
ICAgICAgIElmIG1fbW9kZSBpcyBSZXNvbHZpbmdTdHlsZSwgY2hlY2sgd2hldGhlciB0aGUgY2hp
bGQgc3R5bGUgaXMgc2hhcmVkCisgICAgICAgIG9uZSBvciBub3QuIElmIHRoZSBjaGlsZCBzdHls
ZSBpcyBzaGFyZWQsIGF2b2lkIHNldENoaWxkSW5kZXguCisKIDIwMTItMTEtMDQgIEtlbnQgVGFt
dXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEJhc2VDaG9vc2VyT25seURhdGVB
bmRUaW1lSW5wdXRUeXBlIHNob3VsZCBoYXZlIEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBl
IGJlaGF2aW9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCmluZGV4IGI2NjA1
MGZlNDc1MDcyM2Q3MTRhYzU5NjBkODgzMmZkZDhiNTMwNmQuLjJiOWNjMTkzMmY2OTQyOTNmOGI0
N2QyZjhlNTkyOWEyYjc1ZjI5MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxl
Y3RvckNoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIu
Y3BwCkBAIC05MDksMTQgKzkwOSwxNiBAQCBib29sIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmVT
ZWxlY3Rvcihjb25zdCBTZWxlY3RvckNoZWNraW5nQ29udGV4dCYgY29udGV4dCwgYwogICAgICAg
ICAgICAgaWYgKEVsZW1lbnQqIHBhcmVudEVsZW1lbnQgPSBlbGVtZW50LT5wYXJlbnRFbGVtZW50
KCkpIHsKICAgICAgICAgICAgICAgICBpbnQgY291bnQgPSAxICsgc2libGluZ1RyYXZlcnNhbFN0
cmF0ZWd5LmNvdW50RWxlbWVudHNCZWZvcmUoZWxlbWVudCk7CiAgICAgICAgICAgICAgICAgaWYg
KG1fbW9kZSA9PSBSZXNvbHZpbmdTdHlsZSkgewotICAgICAgICAgICAgICAgICAgICBSZW5kZXJT
dHlsZSogY2hpbGRTdHlsZSA9IGNvbnRleHQuZWxlbWVudFN0eWxlID8gY29udGV4dC5lbGVtZW50
U3R5bGUgOiBlbGVtZW50LT5yZW5kZXJTdHlsZSgpOworICAgICAgICAgICAgICAgICAgICBpZiAo
UmVuZGVyU3R5bGUqIGNoaWxkU3R5bGUgPSBjb250ZXh0LmVsZW1lbnRTdHlsZSA/IGNvbnRleHQu
ZWxlbWVudFN0eWxlIDogZWxlbWVudC0+cmVuZGVyU3R5bGUoKSkgeworICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgRWxlbWVudCogcHJldmlvdXNFbGVtZW50ID0gZWxlbWVudC0+cHJldmlv
dXNFbGVtZW50U2libGluZygpOworICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc1NoYXJl
ZFN0eWxlID0gcHJldmlvdXNFbGVtZW50ICYmIHByZXZpb3VzRWxlbWVudC0+cmVuZGVyU3R5bGUo
KSA9PSBjaGlsZFN0eWxlOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1NoYXJlZFN0
eWxlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkU3R5bGUtPnNldENoaWxkSW5k
ZXgoY291bnQpOworICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIFJl
bmRlclN0eWxlKiBwYXJlbnRTdHlsZSA9IGNvbnRleHQuZWxlbWVudFN0eWxlID8gY29udGV4dC5l
bGVtZW50UGFyZW50U3R5bGUgOiBwYXJlbnRFbGVtZW50LT5yZW5kZXJTdHlsZSgpOwotICAgICAg
ICAgICAgICAgICAgICBpZiAoY2hpbGRTdHlsZSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGNo
aWxkU3R5bGUtPnNldENoaWxkSW5kZXgoY291bnQpOwogICAgICAgICAgICAgICAgICAgICBpZiAo
cGFyZW50U3R5bGUpCiAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRTdHlsZS0+c2V0Q2hp
bGRyZW5BZmZlY3RlZEJ5Rm9yd2FyZFBvc2l0aW9uYWxSdWxlcygpOwogICAgICAgICAgICAgICAg
IH0KLQogICAgICAgICAgICAgICAgIGlmIChzZWxlY3Rvci0+bWF0Y2hOdGgoY291bnQpKQogICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmNjJm
NzAyMTM1ZGUyNzNhOWE4ZDZhMThjM2Q5NTdhMmRhMjYzMWIxLi4zNzA2OWI2NTA2Y2NhZWJiNGMw
NTc1MTliZmRiNTYyNTdjZDJmMWEyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMTAtMDMg
IFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUuY29tPgorCisgICAgICAgIFdyb25nIGRp
c3BsYXkgd2l0aCAidHI6bnRoLWNoaWxkKGV2ZW4pIHRkIiBhbmQgbWlzc2luZyA8dGJvZHk+Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODAyMQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9jc3Mv
bnRoLWNoaWxkLW5vdC1pbi1yaWdodG1vc3QtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9jc3MvbnRoLWNoaWxkLW5vdC1pbi1yaWdodG1vc3QuaHRtbDogQWRkZWQuCisKIDIw
MTItMTEtMDQgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMzM0MTYuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9udGgtY2hpbGQtbm90LWluLXJpZ2h0bW9zdC1leHBlY3RlZC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvbnRoLWNoaWxkLW5vdC1pbi1yaWdodG1vc3QtZXhwZWN0
ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi42MzFjMDgwNDc5MGE2N2MyZDQwODY2N2Y1ZmNkN2M5OGYzMjU1
MTVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvbnRoLWNoaWxkLW5v
dC1pbi1yaWdodG1vc3QtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE3IEBACis8IWRvY3R5cGUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisuYXBwbGllZCB7CisgIGJhY2tncm91bmQ6
ICNlZWU7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXY+PHA+ZHVtbXk8L3A+
PC9kaXY+CisgIDxkaXY+PHNwYW4gY2xhc3M9ImFwcGxpZWQiPjE8L3NwYW4+PHNwYW4gY2xhc3M9
ImFwcGxpZWQiPjI8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcGxpZWQiPjM8L3NwYW4+PC9kaXY+Cisg
IDxkaXY+PHNwYW4+NDwvc3Bhbj48c3Bhbj41PC9zcGFuPjxzcGFuPjY8L3NwYW4+PC9kaXY+Cisg
IDxkaXY+PHNwYW4gY2xhc3M9ImFwcGxpZWQiPjc8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcGxpZWQi
Pjg8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcGxpZWQiPjk8L3NwYW4+PC9kaXY+CisgIDxkaXY+PHNw
YW4+MTA8L3NwYW4+PHNwYW4+MTE8L3NwYW4+PHNwYW4+MTI8L3NwYW4+PC9kaXY+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9udGgtY2hpbGQtbm90
LWluLXJpZ2h0bW9zdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvbnRoLWNoaWxkLW5vdC1p
bi1yaWdodG1vc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMDEyMDBiZTQ5ODkwNzlkZTA3OGExOGIwYjgw
ZTkzMTA5NDUwYTJlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvbnRo
LWNoaWxkLW5vdC1pbi1yaWdodG1vc3QuaHRtbApAQCAtMCwwICsxLDIxIEBACis8IWRvY3R5cGUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CitkaXY6bnRoLWNoaWxkKGV2ZW4pIHNwYW4g
eworICBiYWNrZ3JvdW5kOiAjZWVlOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICA8
IS0tIFRlc3QgZm9yIGJ1ZyA5ODAyMSwgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk4MDIxIC0tPgorICA8IS0tIFdyb25nIGRpc3BsYXkgd2l0aCAidHI6bnRoLWNoaWxk
KGV2ZW4pIHRkIiBhbmQgbWlzc2luZyAmbHQ7dGJvZHkmZ3Q7IC0tPgorICA8IS0tIElmIHRlc3Qg
cGFzc2VzLCAxLCAyLCAzLCA3LCA4LCBhbmQgOSdzIGJhY2tncm91bmQtY29sb3IgaXMgI2VlZS4g
LS0+CisgIDwhLS0gNCwgNSwgNiwgMTAsIDExLCBhbmQgMTIncyBiYWNrZ3JvdW5kIGNvbG9yIGlz
IGRlZmF1bHQuLS0+CisgIDxkaXY+PHA+ZHVtbXk8L3A+PC9kaXY+CisgIDxkaXY+PHNwYW4+MTwv
c3Bhbj48c3Bhbj4yPC9zcGFuPjxzcGFuPjM8L3NwYW4+PC9kaXY+CisgIDxkaXY+PHNwYW4+NDwv
c3Bhbj48c3Bhbj41PC9zcGFuPjxzcGFuPjY8L3NwYW4+PC9kaXY+CisgIDxkaXY+PHNwYW4+Nzwv
c3Bhbj48c3Bhbj44PC9zcGFuPjxzcGFuPjk8L3NwYW4+PC9kaXY+CisgIDxkaXY+PHNwYW4+MTA8
L3NwYW4+PHNwYW4+MTE8L3NwYW4+PHNwYW4+MTI8L3NwYW4+PC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>