<?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>79206</bug_id>
          
          <creation_ts>2012-02-22 00:46:11 -0800</creation_ts>
          <short_desc>REGRESSION(r106388): Form state is restored to a wrong document</short_desc>
          <delta_ts>2012-03-01 18:30:22 -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>History</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>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>dglazkov</cc>
    
    <cc>japhet</cc>
    
    <cc>jonlee</cc>
    
    <cc>koivisto</cc>
    
    <cc>mihaip</cc>
    
    <cc>pawel.bugalski</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>561710</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-02-22 00:46:11 -0800</bug_when>
    <thetext>Note: r106388 is not a root cause of this bug, but it unveiled the bug.

When a document is loaded with FrameLoadTypeRedirectWithLockedBackForwardList, the URL of a HistoryItem can be mismatched with the URL of the actual document. So form state can be restored to a wrong document.
We don&apos;t save the form state if a form control is not changed. r106388 changed this behavior for type=hidden.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561712</commentid>
    <comment_count>1</comment_count>
      <attachid>128149</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-02-22 00:52:14 -0800</bug_when>
    <thetext>Created attachment 128149
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562032</commentid>
    <comment_count>2</comment_count>
      <attachid>128149</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-02-22 09:18:07 -0800</bug_when>
    <thetext>Comment on attachment 128149
Patch

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

&gt; Source/WebCore/loader/HistoryController.cpp:203
&gt; +    if (itemToRestore-&gt;urlString() == doc-&gt;url().string()) {

Are we supposed to just compare URLs as strings like this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562079</commentid>
    <comment_count>3</comment_count>
      <attachid>128149</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-22 10:03:12 -0800</bug_when>
    <thetext>Comment on attachment 128149
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        When a document is loaded with FrameLoadTypeRedirectWithLockedBackForwardList,
&gt; +        the URL of a HistoryItem can be mismatched with the URL of the
&gt; +        actual document. It was possible to store form state to a wrong
&gt; +        document.

Is it expected that it can be mismatched?

It sounds like there is already a check for this somewhere that is giving a wrong answer, and this patch adds another check on top of it. Can the original check be fixed instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562647</commentid>
    <comment_count>4</comment_count>
      <attachid>128149</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-02-22 18:01:04 -0800</bug_when>
    <thetext>Comment on attachment 128149
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:11
&gt;&gt; +        document.
&gt; 
&gt; Is it expected that it can be mismatched?
&gt; 
&gt; It sounds like there is already a check for this somewhere that is giving a wrong answer, and this patch adds another check on top of it. Can the original check be fixed instead?

I&apos;m not familiar with loader/history code, but my understanding is that it&apos;s expected.

When this bug happens, HistoryController::restoreDocumentState() is called through DocumentWriter::createDocument() -&gt; FrameLoader::didBeginDocument().  I think HistoryController::restoreDOcumentState() is the best place to check this if the assumption of the URL mismatch is correct.

&gt;&gt; Source/WebCore/loader/HistoryController.cpp:203
&gt;&gt; +    if (itemToRestore-&gt;urlString() == doc-&gt;url().string()) {
&gt; 
&gt; Are we supposed to just compare URLs as strings like this?

I&apos;ll change this to KURL comparison.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562652</commentid>
    <comment_count>5</comment_count>
      <attachid>128354</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-02-22 18:03:38 -0800</bug_when>
    <thetext>Created attachment 128354
Patch 2

string -&gt; KURL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563770</commentid>
    <comment_count>6</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-02-23 17:56:26 -0800</bug_when>
    <thetext>I need comments from loader/history experts.
Adam, Antti, Brady, Mihai?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563969</commentid>
    <comment_count>7</comment_count>
      <attachid>128354</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-23 23:10:18 -0800</bug_when>
    <thetext>Comment on attachment 128354
Patch 2

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

&gt; Source/WebCore/loader/HistoryController.cpp:203
&gt; +    if (itemToRestore-&gt;url() == doc-&gt;url()) {

This doesn&apos;t seem right.  What if I load two documents sequentially with the same URL?  The history system confuses me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563977</commentid>
    <comment_count>8</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-02-23 23:17:52 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 128354 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=128354&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/HistoryController.cpp:203
&gt; &gt; +    if (itemToRestore-&gt;url() == doc-&gt;url()) {
&gt; 
&gt; This doesn&apos;t seem right.  What if I load two documents sequentially with the same URL?  The history system confuses me.

This problem has come up before in a few other places, though I can&apos;t recall any right now.  A solution I think is reasonable:

We have HistoryItems tagged with unique IDs.  Perhaps we could start tagging Documents with a unique ID and if a Document is created as a result of back/forward navigation, it could adopt the unique ID of its associated HistoryItem.

Then the form value restoration could be comparing the HistoryItem&apos;s id to the Document&apos;s ID.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563998</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-23 23:40:19 -0800</bug_when>
    <thetext>Don&apos;t we already have a sequence number for documents?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564019</commentid>
    <comment_count>10</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-02-24 00:12:36 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; &gt; This doesn&apos;t seem right.  What if I load two documents sequentially with the same URL?  The history system confuses me.
&gt; 
&gt; This problem has come up before in a few other places, though I can&apos;t recall any right now.  A solution I think is reasonable:
&gt; 
&gt; We have HistoryItems tagged with unique IDs.  Perhaps we could start tagging Documents with a unique ID and if a Document is created as a result of back/forward navigation, it could adopt the unique ID of its associated HistoryItem.
&gt; 
&gt; Then the form value restoration could be comparing the HistoryItem&apos;s id to the Document&apos;s ID.

Adding RefPtr&lt;HistoryItem&gt; member to Document would be enough.  The member is set at somewhere inside of FrameLoader::loadItem(), right?

(In reply to comment #9)
&gt; Don&apos;t we already have a sequence number for documents?

We have m_docID.  However I think we can&apos;t use it because of SameDocumentNavigation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564355</commentid>
    <comment_count>11</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-02-24 09:04:23 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #8)
&gt; &gt; &gt; This doesn&apos;t seem right.  What if I load two documents sequentially with the same URL?  The history system confuses me.
&gt; &gt; 
&gt; &gt; This problem has come up before in a few other places, though I can&apos;t recall any right now.  A solution I think is reasonable:
&gt; &gt; 
&gt; &gt; We have HistoryItems tagged with unique IDs.  Perhaps we could start tagging Documents with a unique ID and if a Document is created as a result of back/forward navigation, it could adopt the unique ID of its associated HistoryItem.
&gt; &gt; 
&gt; &gt; Then the form value restoration could be comparing the HistoryItem&apos;s id to the Document&apos;s ID.
&gt; 

&gt; (In reply to comment #9)
&gt; &gt; Don&apos;t we already have a sequence number for documents?
&gt; 
&gt; We have m_docID.  However I think we can&apos;t use it because of SameDocumentNavigation.

Yup, totally remember the document id existing for this reason!

&gt; Adding RefPtr&lt;HistoryItem&gt; member to Document would be enough.  The member is set at somewhere inside of FrameLoader::loadItem(), right?

This sounds fine to me.  I&apos;m not 100% sure FrameLoader::loadItem() is exactly right but I don&apos;t have code in front of me.  It should basically be wherever the Document is actually constructed, or the closest point to that where it&apos;s practical during back/forward navigation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565365</commentid>
    <comment_count>12</comment_count>
      <attachid>128961</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-02-26 23:16:13 -0800</bug_when>
    <thetext>Created attachment 128961
Patch 3

HistoryItem::isCurrentDocument</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565376</commentid>
    <comment_count>13</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-02-26 23:28:06 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; &gt; Adding RefPtr&lt;HistoryItem&gt; member to Document would be enough.  The member is set at somewhere inside of FrameLoader::loadItem(), right?
&gt; 
&gt; This sounds fine to me.  I&apos;m not 100% sure FrameLoader::loadItem() is exactly right but I don&apos;t have code in front of me.  It should basically be wherever the Document is actually constructed, or the closest point to that where it&apos;s practical during back/forward navigation.

I tried to add RefPtr&lt;HistoryItem&gt;, and failed.
FrameLoader::loadItem() was not used in this case.
I needed to pass the current HistoryItem to a document if the loadType() was not FrameLoadTypeRedirectWithLockedBackForwardList, or the URL was different from the current HistoryItem, however I felt it was nonsense because HistoryController::restoreDocumentState() already has switch-case for loadType().

I found HistoryController::saveDocumentState() used HisotryItem::isCurrentDocument().  Using it in HistoryController::restoreDocumentState() is consistent and reasonable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565691</commentid>
    <comment_count>14</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-02-27 08:55:29 -0800</bug_when>
    <thetext>I would like to review this with code in front of me before it&apos;s landed but won&apos;t be at my work machine for a few hours.  So in case someone else reviews in the next few hours please hold off landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565817</commentid>
    <comment_count>15</comment_count>
      <attachid>128961</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-02-27 10:56:51 -0800</bug_when>
    <thetext>Comment on attachment 128961
Patch 3

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

&gt; Source/WebCore/loader/HistoryController.cpp:206
&gt; +    if (itemToRestore-&gt;isCurrentDocument(doc)) {
&gt; +        LOG(Loading, &quot;WebCoreLoading %s: restoring form state from %p&quot;, m_frame-&gt;tree()-&gt;uniqueName().string().utf8().data(), itemToRestore);
&gt; +        doc-&gt;setStateForNewFormElements(itemToRestore-&gt;documentState());
&gt; +    }

Doesn&apos;t this code do the exact same wrong thing Adam and I alluded to? 

(HistoryItem::isCurrentDocument() just does a URL compare)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566384</commentid>
    <comment_count>16</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-02-27 22:22:48 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 128961 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=128961&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/loader/HistoryController.cpp:206
&gt; &gt; +    if (itemToRestore-&gt;isCurrentDocument(doc)) {
&gt; &gt; +        LOG(Loading, &quot;WebCoreLoading %s: restoring form state from %p&quot;, m_frame-&gt;tree()-&gt;uniqueName().string().utf8().data(), itemToRestore);
&gt; &gt; +        doc-&gt;setStateForNewFormElements(itemToRestore-&gt;documentState());
&gt; &gt; +    }
&gt; 
&gt; Doesn&apos;t this code do the exact same wrong thing Adam and I alluded to? 
&gt; 
&gt; (HistoryItem::isCurrentDocument() just does a URL compare)

Yes, this is almost equivalent to my &quot;Patch 2&quot;.

I think adding an ID to Document in order to identify the originator HistoryItem doesn&apos;t work.
* In LayoutTests/fast/history/saves-satet-after-fragment-nav.html, we expect restoring a form state even if a document is loaded with a different HistoryItem.
* We have history.replaceState(), so we need to check URL equality anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566418</commentid>
    <comment_count>17</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-02-27 23:13:10 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #15)
&gt; &gt; (From update of attachment 128961 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=128961&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/loader/HistoryController.cpp:206
&gt; &gt; &gt; +    if (itemToRestore-&gt;isCurrentDocument(doc)) {
&gt; &gt; &gt; +        LOG(Loading, &quot;WebCoreLoading %s: restoring form state from %p&quot;, m_frame-&gt;tree()-&gt;uniqueName().string().utf8().data(), itemToRestore);
&gt; &gt; &gt; +        doc-&gt;setStateForNewFormElements(itemToRestore-&gt;documentState());
&gt; &gt; &gt; +    }
&gt; &gt; 
&gt; &gt; Doesn&apos;t this code do the exact same wrong thing Adam and I alluded to? 
&gt; &gt; 
&gt; &gt; (HistoryItem::isCurrentDocument() just does a URL compare)
&gt; 
&gt; Yes, this is almost equivalent to my &quot;Patch 2&quot;.

Maybe we&apos;re on different wavelengths here, maybe you can try to help me understand...

&gt; I think adding an ID to Document in order to identify the originator HistoryItem doesn&apos;t work.
&gt; * In LayoutTests/fast/history/saves-satet-after-fragment-nav.html, we expect restoring a form state even if a document is loaded with a different HistoryItem.

Isn&apos;t this whole patch about loading a new document with a different HistoryItem?  And that&apos;s the behavior we&apos;re trying to get right?

&gt; * We have history.replaceState(), so we need to check URL equality anyway.

history.replaceState() doesn&apos;t change the unique identity of the document but *does* change the URL...  but it only affects the current document anyway so I&apos;m not sure why it&apos;s relevant.

Plus none of this discussion has touched on the concern of what happens if you get the exact same URL in the history list twice in a row; which is actually quite possible with replaceState or pushState.  


(Also, this discussion has raised the gnarly fact that the HTML5 history state APIs have a name collision with what we previously called &quot;document state&quot; as attached to our history items, and we should probably rename to reduce that confusion.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566532</commentid>
    <comment_count>18</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-02-28 02:37:51 -0800</bug_when>
    <thetext>(In reply to comment #17)

I&apos;m sorry for my confusing comment.  I tried to fix HistoryItem::isCurrentDocument(), and had some extra issues.

The fix of this bug is:
  A form state in a HistoryItem should be restored only if the document is directly loaded from the HistoryItem. (not redirection)

I have no good idea of a way to distinguish a direct load and a redirect load in DocumentWriter::begin(), in which we create a Document.  Would you make some implementation advice please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567058</commentid>
    <comment_count>19</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-02-28 13:50:48 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #17)
&gt; 
&gt; I&apos;m sorry for my confusing comment.  I tried to fix HistoryItem::isCurrentDocument(), and had some extra issues.
&gt; 
&gt; The fix of this bug is:
&gt;   A form state in a HistoryItem should be restored only if the document is directly loaded from the HistoryItem. (not redirection)
&gt; 
&gt; I have no good idea of a way to distinguish a direct load and a redirect load in DocumentWriter::begin(), in which we create a Document.  Would you make some implementation advice please?

Why not create the Document with it&apos;s originating history item, but then the first time the document is redirected clear the item?

Then, when it&apos;s time to restore forms:
-If you have the item to restore from, you know it&apos;s a match.
-If you have no item, you know you were redirected and shouldn&apos;t restore the forms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567353</commentid>
    <comment_count>20</comment_count>
      <attachid>129382</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-02-28 21:29:46 -0800</bug_when>
    <thetext>Created attachment 129382
Patch 4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567355</commentid>
    <comment_count>21</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-02-28 21:33:29 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; Created an attachment (id=129382) [details]
&gt; Patch 4

I tried to add new member to Document, but I realized loaders knew necessary information, and stop adding new member to Document.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567697</commentid>
    <comment_count>22</comment_count>
      <attachid>129382</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-02-29 10:09:21 -0800</bug_when>
    <thetext>Comment on attachment 129382
Patch 4

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

I like this approach!

But have a few problems with this patch:

&gt; Source/WebCore/loader/FrameLoader.cpp:3174
&gt; +    m_requestedHistoryItem = item;

m_requestedHistoryItem is set in ::loadItem(), but never cleared unless a new loadItem takes place.

Nominally this doesn&apos;t seem so bad - Just an extra HistoryItem hanging around that will be destroyed when the FrameLoader is.

But HistoryItems can be surprisingly heavyweight objects, and I think we should clear it out once we don&apos;t need it anymore.  Perhaps as the very last part of didFinishLoad?

&gt; Source/WebCore/loader/FrameLoader.cpp:3187
&gt; +bool FrameLoader::didLoadWithLoadItem() const
&gt; +{
&gt; +    return m_requestedHistoryItem.get() == history()-&gt;currentItem();
&gt; +}

This method name makes me cringe.  Plus, what the method does seems unnecessarily specific to this problem.

I would suggest one of two things:
1 - Make it an accessor for the requestedItem, and have HistoryController do the specific comparison it needs.
2 - Rename it &quot;isRequestedItemCurrent&quot; or &quot;wasCurrentItemRequested&quot;

In fact, I hate both of those names too...  I&apos;d personally do number 1...  ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568349</commentid>
    <comment_count>23</comment_count>
      <attachid>129632</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-02-29 22:19:10 -0800</bug_when>
    <thetext>Created attachment 129632
Patch 5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568352</commentid>
    <comment_count>24</comment_count>
      <attachid>129382</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-02-29 22:21:41 -0800</bug_when>
    <thetext>Comment on attachment 129382
Patch 4

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

Thank you for the comments.

&gt;&gt; Source/WebCore/loader/FrameLoader.cpp:3174
&gt;&gt; +    m_requestedHistoryItem = item;
&gt; 
&gt; m_requestedHistoryItem is set in ::loadItem(), but never cleared unless a new loadItem takes place.
&gt; 
&gt; Nominally this doesn&apos;t seem so bad - Just an extra HistoryItem hanging around that will be destroyed when the FrameLoader is.
&gt; 
&gt; But HistoryItems can be surprisingly heavyweight objects, and I think we should clear it out once we don&apos;t need it anymore.  Perhaps as the very last part of didFinishLoad?

didFinishLoad() of what class?
I added code to clear the HistoryItem to a place where m_isComplete is set to true.

&gt;&gt; Source/WebCore/loader/FrameLoader.cpp:3187
&gt;&gt; +}
&gt; 
&gt; This method name makes me cringe.  Plus, what the method does seems unnecessarily specific to this problem.
&gt; 
&gt; I would suggest one of two things:
&gt; 1 - Make it an accessor for the requestedItem, and have HistoryController do the specific comparison it needs.
&gt; 2 - Rename it &quot;isRequestedItemCurrent&quot; or &quot;wasCurrentItemRequested&quot;
&gt; 
&gt; In fact, I hate both of those names too...  I&apos;d personally do number 1...  ;)

Took 1!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568398</commentid>
    <comment_count>25</comment_count>
      <attachid>129632</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-29 23:50:33 -0800</bug_when>
    <thetext>Comment on attachment 129632
Patch 5

Attachment 129632 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11769257

New failing tests:
fast/dom/shadow/multiple-shadowroot-rendering.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568871</commentid>
    <comment_count>26</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-03-01 13:41:51 -0800</bug_when>
    <thetext>(In reply to comment #24)
&gt; (From update of attachment 129382 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=129382&amp;action=review
&gt; 
&gt; Thank you for the comments.
&gt; 
&gt; &gt;&gt; Source/WebCore/loader/FrameLoader.cpp:3174
&gt; &gt;&gt; +    m_requestedHistoryItem = item;
&gt; &gt; 
&gt; &gt; m_requestedHistoryItem is set in ::loadItem(), but never cleared unless a new loadItem takes place.
&gt; &gt; 
&gt; &gt; Nominally this doesn&apos;t seem so bad - Just an extra HistoryItem hanging around that will be destroyed when the FrameLoader is.
&gt; &gt; 
&gt; &gt; But HistoryItems can be surprisingly heavyweight objects, and I think we should clear it out once we don&apos;t need it anymore.  Perhaps as the very last part of didFinishLoad?
&gt; 
&gt; didFinishLoad() of what class?

I was going to say FrameLoader...

&gt; I added code to clear the HistoryItem to a place where m_isComplete is set to true.

Not sure this is the right approach, about to look at the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>568873</commentid>
    <comment_count>27</comment_count>
      <attachid>129632</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2012-03-01 13:44:54 -0800</bug_when>
    <thetext>Comment on attachment 129632
Patch 5

I take back my comment I submitted before reviewing.  This looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569055</commentid>
    <comment_count>28</comment_count>
      <attachid>129632</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-03-01 16:40:59 -0800</bug_when>
    <thetext>Comment on attachment 129632
Patch 5

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569146</commentid>
    <comment_count>29</comment_count>
      <attachid>129632</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-01 18:30:15 -0800</bug_when>
    <thetext>Comment on attachment 129632
Patch 5

Clearing flags on attachment: 129632

Committed r109480: &lt;http://trac.webkit.org/changeset/109480&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>569147</commentid>
    <comment_count>30</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-01 18:30:22 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128149</attachid>
            <date>2012-02-22 00:52:14 -0800</date>
            <delta_ts>2012-02-22 18:03:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79206-20120222175212.patch</filename>
            <type>text/plain</type>
            <size>5775</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4Mzk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2U2NjE1MjA2ZjVkZmMw
MDNkZWZiYjVjMzgxODBkNTNhMWM2Yzc1OC4uMTc0OTViZGQ1ZmVjYWQyNDk5YzcyZmY4Nzk5ODQ2
NDEwNmI4NjQ1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAyLTIyICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSRUdSRVNTSU9OKHIxMDYz
ODgpOiBGb3JtIHN0YXRlIGlzIHJlc3RvcmVkIHRvIGEgd3JvbmcgZG9jdW1lbnQuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTIwNgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gYSBkb2N1bWVudCBp
cyBsb2FkZWQgd2l0aCBGcmFtZUxvYWRUeXBlUmVkaXJlY3RXaXRoTG9ja2VkQmFja0ZvcndhcmRM
aXN0LAorICAgICAgICB0aGUgVVJMIG9mIGEgSGlzdG9yeUl0ZW0gY2FuIGJlIG1pc21hdGNoZWQg
d2l0aCB0aGUgVVJMIG9mIHRoZQorICAgICAgICBhY3R1YWwgZG9jdW1lbnQuIEl0IHdhcyBwb3Nz
aWJsZSB0byBzdG9yZSBmb3JtIHN0YXRlIHRvIGEgd3JvbmcKKyAgICAgICAgZG9jdW1lbnQuCisK
KyAgICAgICAgVGVzdDogZmFzdC9sb2FkZXIvZm9ybS1zdGF0ZS1yZXN0b3JlLXdpdGgtbG9ja2Vk
LWJhY2stZm9yd2FyZC1saXN0Lmh0bWwKKworICAgICAgICAqIGxvYWRlci9IaXN0b3J5Q29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5Q29udHJvbGxlcjo6cmVzdG9yZURv
Y3VtZW50U3RhdGUpOgorICAgICAgICBSZXN0b3JlIGZvcm0gc3RhdGUgb25seSBpZiB0aGUgY3Vy
cmVudCBoaXN0b3J5IGl0ZW0gVVJMIGlzIGVxdWFsCisgICAgICAgIHRvIHRoZSBkb2N1bWVudCBV
UkwuCisKIDIwMTItMDItMjEgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4K
IAogICAgICAgICBUaGUgdGlsZSBjYWNoZSBzaG91bGQga2VlcCB0cmFjayBvZiB0aGUgdGlsZSBj
b3ZlcmFnZSByZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNw
cAppbmRleCAzNzliNmQzNTdlZjI0MzY1ZjMxZDhkMGY2MzRkNmVjNjk4N2IxN2M1Li40NTc0NGVh
NDM5YTkzMmZmYTJjMDg2OWMzMDdmNGNkYThkMjEyY2M3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAKQEAgLTIwMCw5ICsyMDAsMTAgQEAgdm9pZCBIaXN0
b3J5Q29udHJvbGxlcjo6cmVzdG9yZURvY3VtZW50U3RhdGUoKQogICAgIAogICAgIGlmICghaXRl
bVRvUmVzdG9yZSkKICAgICAgICAgcmV0dXJuOwotCi0gICAgTE9HKExvYWRpbmcsICJXZWJDb3Jl
TG9hZGluZyAlczogcmVzdG9yaW5nIGZvcm0gc3RhdGUgZnJvbSAlcCIsIG1fZnJhbWUtPnRyZWUo
KS0+dW5pcXVlTmFtZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIGl0ZW1Ub1Jlc3RvcmUpOwot
ICAgIGRvYy0+c2V0U3RhdGVGb3JOZXdGb3JtRWxlbWVudHMoaXRlbVRvUmVzdG9yZS0+ZG9jdW1l
bnRTdGF0ZSgpKTsKKyAgICBpZiAoaXRlbVRvUmVzdG9yZS0+dXJsU3RyaW5nKCkgPT0gZG9jLT51
cmwoKS5zdHJpbmcoKSkgeworICAgICAgICBMT0coTG9hZGluZywgIldlYkNvcmVMb2FkaW5nICVz
OiByZXN0b3JpbmcgZm9ybSBzdGF0ZSBmcm9tICVwIiwgbV9mcmFtZS0+dHJlZSgpLT51bmlxdWVO
YW1lKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgaXRlbVRvUmVzdG9yZSk7CisgICAgICAgIGRv
Yy0+c2V0U3RhdGVGb3JOZXdGb3JtRWxlbWVudHMoaXRlbVRvUmVzdG9yZS0+ZG9jdW1lbnRTdGF0
ZSgpKTsKKyAgICB9CiB9CiAKIHZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6OmludmFsaWRhdGVDdXJy
ZW50SXRlbUNhY2hlZFBhZ2UoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQzMDVjODUwNjJhNDY5ZjlmZjcyM2I1NGNiMzYx
OTg1ZDg3ZmJkM2YuLmQ4NDRlODFmODE0MjY0YjZkZmEzMDEwMTM5OGYzMjU5MjQyOGI0NzMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wMi0yMiAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgUkVHUkVTU0lPTihyMTA2Mzg4KTogRm9ybSBzdGF0ZSBpcyBy
ZXN0b3JlZCB0byBhIHdyb25nIGRvY3VtZW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkyMDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvbG9hZGVyL2Zvcm0tc3RhdGUtcmVzdG9yZS13aXRo
LWxvY2tlZC1iYWNrLWZvcndhcmQtbGlzdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvbG9hZGVyL2Zvcm0tc3RhdGUtcmVzdG9yZS13aXRoLWxvY2tlZC1iYWNrLWZvcndhcmQt
bGlzdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2xvYWRlci9yZXNvdXJjZXMvZm9ybS1z
dGF0ZS1yZXN0b3JlLXdpdGgtbG9ja2VkLWJhY2stZm9yd2FyZC1saXN0LTIuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9sb2FkZXIvcmVzb3VyY2VzL2Zvcm0tc3RhdGUtcmVzdG9yZS13aXRo
LWxvY2tlZC1iYWNrLWZvcndhcmQtbGlzdC0zLmh0bWw6IEFkZGVkLgorCiAyMDEyLTAyLTIxICBD
c2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBVbnJl
dmlld2VkIGdhcmRlbmluZy4gVHlwbyBmaXguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2xvYWRlci9mb3JtLXN0YXRlLXJlc3RvcmUtd2l0aC1sb2NrZWQtYmFjay1mb3J3YXJkLWxpc3Qt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvZm9ybS1zdGF0ZS1yZXN0b3Jl
LXdpdGgtbG9ja2VkLWJhY2stZm9yd2FyZC1saXN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
MjgyNmZjMzY1Y2VmODcxMTBlMzkyYzY0MzFjMTU4ZGZjZjljYTViCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvZm9ybS1zdGF0ZS1yZXN0b3JlLXdpdGgtbG9ja2Vk
LWJhY2stZm9yd2FyZC1saXN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1BBU1MgbG9j
YXRpb24uc2VhcmNoIGlzICI/VGVzdE5hbWUxPU9rMSZUZXN0TmFtZTI9T2syIgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9mb3JtLXN0YXRlLXJlc3RvcmUtd2l0aC1sb2Nr
ZWQtYmFjay1mb3J3YXJkLWxpc3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2Zvcm0t
c3RhdGUtcmVzdG9yZS13aXRoLWxvY2tlZC1iYWNrLWZvcndhcmQtbGlzdC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjgzZDVkMjIyMTc4MGU4OTg0N2EyMjgxYjdlYmNiYWE0MmYxMDg2NWEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9mb3JtLXN0YXRlLXJlc3RvcmUtd2l0aC1s
b2NrZWQtYmFjay1mb3J3YXJkLWxpc3QuaHRtbApAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGJvZHkgb25Mb2FkPSJkb2N1bWVudC5mb3Jtc1swXS5zdWJtaXQoKTsi
PgorPGZvcm0gbWV0aG9kPVBPU1QgYWN0aW9uPSJyZXNvdXJjZXMvZm9ybS1zdGF0ZS1yZXN0b3Jl
LXdpdGgtbG9ja2VkLWJhY2stZm9yd2FyZC1saXN0LTIuaHRtbCI+Cis8aW5wdXQgbmFtZT0iVGVz
dE5hbWUxIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJCYWQxIj4KKzxpbnB1dCBuYW1lPSJUZXN0TmFt
ZTIiIHR5cGU9ImhpZGRlbiIgdmFsdWU9IkJhZDIiPgorPC9mb3JtPgorPHNjcmlwdD4KK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwor
fQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2xvYWRlci9yZXNvdXJjZXMvZm9ybS1zdGF0ZS1yZXN0b3JlLXdpdGgtbG9ja2VkLWJhY2st
Zm9yd2FyZC1saXN0LTIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3Jlc291cmNlcy9m
b3JtLXN0YXRlLXJlc3RvcmUtd2l0aC1sb2NrZWQtYmFjay1mb3J3YXJkLWxpc3QtMi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjA0ZDdjZWU2Mjc0OTRmMDEwMzM4MjJkMjgzNGFmZmE1ODBjMmU4ZTEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9yZXNvdXJjZXMvZm9ybS1zdGF0
ZS1yZXN0b3JlLXdpdGgtbG9ja2VkLWJhY2stZm9yd2FyZC1saXN0LTIuaHRtbApAQCAtMCwwICsx
LDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keSBvbkxvYWQ9ImRvY3VtZW50LmZv
cm1zWzBdLnN1Ym1pdCgpOyI+Cis8Zm9ybSBtZXRob2Q9IkdFVCIgYWN0aW9uPSJmb3JtLXN0YXRl
LXJlc3RvcmUtd2l0aC1sb2NrZWQtYmFjay1mb3J3YXJkLWxpc3QtMy5odG1sIj4KKzxpbnB1dCBu
YW1lPSJUZXN0TmFtZTEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9Ik9rMSI+Cis8aW5wdXQgbmFtZT0i
VGVzdE5hbWUyIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJPazIiPgorPC9mb3JtPgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvcmVzb3VyY2VzL2Zv
cm0tc3RhdGUtcmVzdG9yZS13aXRoLWxvY2tlZC1iYWNrLWZvcndhcmQtbGlzdC0zLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2xvYWRlci9yZXNvdXJjZXMvZm9ybS1zdGF0ZS1yZXN0b3JlLXdpdGgt
bG9ja2VkLWJhY2stZm9yd2FyZC1saXN0LTMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZDU0NjY4ZGFlM2Jj
NzY0Yzg2YTMxOGUzYjUzOGFiOTdkMmFhOTNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9sb2FkZXIvcmVzb3VyY2VzL2Zvcm0tc3RhdGUtcmVzdG9yZS13aXRoLWxvY2tlZC1i
YWNrLWZvcndhcmQtbGlzdC0zLmh0bWwKQEAgLTAsMCArMSw5IEBACis8IURPQ1RZUEUgaHRtbD4K
Kzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0Pgorc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsb2NhdGlvbi5zZWFy
Y2giLCAnP1Rlc3ROYW1lMT1PazEmVGVzdE5hbWUyPU9rMicpOworaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cis8
L3NjcmlwdD4KKzwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128354</attachid>
            <date>2012-02-22 18:03:38 -0800</date>
            <delta_ts>2012-02-26 23:16:06 -0800</delta_ts>
            <desc>Patch 2</desc>
            <filename>bug-79206-20120223110336.patch</filename>
            <type>text/plain</type>
            <size>5760</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4Mzk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2U2NjE1MjA2ZjVkZmMw
MDNkZWZiYjVjMzgxODBkNTNhMWM2Yzc1OC4uMTc0OTViZGQ1ZmVjYWQyNDk5YzcyZmY4Nzk5ODQ2
NDEwNmI4NjQ1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAyLTIyICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSRUdSRVNTSU9OKHIxMDYz
ODgpOiBGb3JtIHN0YXRlIGlzIHJlc3RvcmVkIHRvIGEgd3JvbmcgZG9jdW1lbnQuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTIwNgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gYSBkb2N1bWVudCBp
cyBsb2FkZWQgd2l0aCBGcmFtZUxvYWRUeXBlUmVkaXJlY3RXaXRoTG9ja2VkQmFja0ZvcndhcmRM
aXN0LAorICAgICAgICB0aGUgVVJMIG9mIGEgSGlzdG9yeUl0ZW0gY2FuIGJlIG1pc21hdGNoZWQg
d2l0aCB0aGUgVVJMIG9mIHRoZQorICAgICAgICBhY3R1YWwgZG9jdW1lbnQuIEl0IHdhcyBwb3Nz
aWJsZSB0byBzdG9yZSBmb3JtIHN0YXRlIHRvIGEgd3JvbmcKKyAgICAgICAgZG9jdW1lbnQuCisK
KyAgICAgICAgVGVzdDogZmFzdC9sb2FkZXIvZm9ybS1zdGF0ZS1yZXN0b3JlLXdpdGgtbG9ja2Vk
LWJhY2stZm9yd2FyZC1saXN0Lmh0bWwKKworICAgICAgICAqIGxvYWRlci9IaXN0b3J5Q29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5Q29udHJvbGxlcjo6cmVzdG9yZURv
Y3VtZW50U3RhdGUpOgorICAgICAgICBSZXN0b3JlIGZvcm0gc3RhdGUgb25seSBpZiB0aGUgY3Vy
cmVudCBoaXN0b3J5IGl0ZW0gVVJMIGlzIGVxdWFsCisgICAgICAgIHRvIHRoZSBkb2N1bWVudCBV
UkwuCisKIDIwMTItMDItMjEgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4K
IAogICAgICAgICBUaGUgdGlsZSBjYWNoZSBzaG91bGQga2VlcCB0cmFjayBvZiB0aGUgdGlsZSBj
b3ZlcmFnZSByZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNw
cAppbmRleCAzNzliNmQzNTdlZjI0MzY1ZjMxZDhkMGY2MzRkNmVjNjk4N2IxN2M1Li5hNmNmZDc0
YTA4NTc2N2E0N2NhZmI5YzkxY2NlMzFmMzY4MWZkODE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAKQEAgLTIwMCw5ICsyMDAsMTAgQEAgdm9pZCBIaXN0
b3J5Q29udHJvbGxlcjo6cmVzdG9yZURvY3VtZW50U3RhdGUoKQogICAgIAogICAgIGlmICghaXRl
bVRvUmVzdG9yZSkKICAgICAgICAgcmV0dXJuOwotCi0gICAgTE9HKExvYWRpbmcsICJXZWJDb3Jl
TG9hZGluZyAlczogcmVzdG9yaW5nIGZvcm0gc3RhdGUgZnJvbSAlcCIsIG1fZnJhbWUtPnRyZWUo
KS0+dW5pcXVlTmFtZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIGl0ZW1Ub1Jlc3RvcmUpOwot
ICAgIGRvYy0+c2V0U3RhdGVGb3JOZXdGb3JtRWxlbWVudHMoaXRlbVRvUmVzdG9yZS0+ZG9jdW1l
bnRTdGF0ZSgpKTsKKyAgICBpZiAoaXRlbVRvUmVzdG9yZS0+dXJsKCkgPT0gZG9jLT51cmwoKSkg
eworICAgICAgICBMT0coTG9hZGluZywgIldlYkNvcmVMb2FkaW5nICVzOiByZXN0b3JpbmcgZm9y
bSBzdGF0ZSBmcm9tICVwIiwgbV9mcmFtZS0+dHJlZSgpLT51bmlxdWVOYW1lKCkuc3RyaW5nKCku
dXRmOCgpLmRhdGEoKSwgaXRlbVRvUmVzdG9yZSk7CisgICAgICAgIGRvYy0+c2V0U3RhdGVGb3JO
ZXdGb3JtRWxlbWVudHMoaXRlbVRvUmVzdG9yZS0+ZG9jdW1lbnRTdGF0ZSgpKTsKKyAgICB9CiB9
CiAKIHZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6OmludmFsaWRhdGVDdXJyZW50SXRlbUNhY2hlZFBh
Z2UoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IGQzMDVjODUwNjJhNDY5ZjlmZjcyM2I1NGNiMzYxOTg1ZDg3ZmJkM2YuLmQ4
NDRlODFmODE0MjY0YjZkZmEzMDEwMTM5OGYzMjU5MjQyOGI0NzMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAxMi0wMi0yMiAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUkVHUkVTU0lPTihyMTA2Mzg4KTogRm9ybSBzdGF0ZSBpcyByZXN0b3JlZCB0byBhIHdy
b25nIGRvY3VtZW50LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzkyMDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGZhc3QvbG9hZGVyL2Zvcm0tc3RhdGUtcmVzdG9yZS13aXRoLWxvY2tlZC1iYWNrLWZv
cndhcmQtbGlzdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbG9hZGVyL2Zv
cm0tc3RhdGUtcmVzdG9yZS13aXRoLWxvY2tlZC1iYWNrLWZvcndhcmQtbGlzdC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2xvYWRlci9yZXNvdXJjZXMvZm9ybS1zdGF0ZS1yZXN0b3JlLXdp
dGgtbG9ja2VkLWJhY2stZm9yd2FyZC1saXN0LTIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9sb2FkZXIvcmVzb3VyY2VzL2Zvcm0tc3RhdGUtcmVzdG9yZS13aXRoLWxvY2tlZC1iYWNrLWZv
cndhcmQtbGlzdC0zLmh0bWw6IEFkZGVkLgorCiAyMDEyLTAyLTIxICBDc2FiYSBPc3p0cm9nb27D
oWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBVbnJldmlld2VkIGdhcmRlbmlu
Zy4gVHlwbyBmaXguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9mb3JtLXN0
YXRlLXJlc3RvcmUtd2l0aC1sb2NrZWQtYmFjay1mb3J3YXJkLWxpc3QtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvZm9ybS1zdGF0ZS1yZXN0b3JlLXdpdGgtbG9ja2VkLWJh
Y2stZm9yd2FyZC1saXN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMjgyNmZjMzY1Y2VmODcx
MTBlMzkyYzY0MzFjMTU4ZGZjZjljYTViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9sb2FkZXIvZm9ybS1zdGF0ZS1yZXN0b3JlLXdpdGgtbG9ja2VkLWJhY2stZm9yd2FyZC1s
aXN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1BBU1MgbG9jYXRpb24uc2VhcmNoIGlz
ICI/VGVzdE5hbWUxPU9rMSZUZXN0TmFtZTI9T2syIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2xvYWRlci9mb3JtLXN0YXRlLXJlc3RvcmUtd2l0aC1sb2NrZWQtYmFjay1mb3J3YXJk
LWxpc3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2Zvcm0tc3RhdGUtcmVzdG9yZS13
aXRoLWxvY2tlZC1iYWNrLWZvcndhcmQtbGlzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgzZDVkMjIyMTc4
MGU4OTg0N2EyMjgxYjdlYmNiYWE0MmYxMDg2NWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2xvYWRlci9mb3JtLXN0YXRlLXJlc3RvcmUtd2l0aC1sb2NrZWQtYmFjay1mb3J3
YXJkLWxpc3QuaHRtbApAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGJvZHkgb25Mb2FkPSJkb2N1bWVudC5mb3Jtc1swXS5zdWJtaXQoKTsiPgorPGZvcm0gbWV0aG9k
PVBPU1QgYWN0aW9uPSJyZXNvdXJjZXMvZm9ybS1zdGF0ZS1yZXN0b3JlLXdpdGgtbG9ja2VkLWJh
Y2stZm9yd2FyZC1saXN0LTIuaHRtbCI+Cis8aW5wdXQgbmFtZT0iVGVzdE5hbWUxIiB0eXBlPSJo
aWRkZW4iIHZhbHVlPSJCYWQxIj4KKzxpbnB1dCBuYW1lPSJUZXN0TmFtZTIiIHR5cGU9ImhpZGRl
biIgdmFsdWU9IkJhZDIiPgorPC9mb3JtPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9yZXNv
dXJjZXMvZm9ybS1zdGF0ZS1yZXN0b3JlLXdpdGgtbG9ja2VkLWJhY2stZm9yd2FyZC1saXN0LTIu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3Jlc291cmNlcy9mb3JtLXN0YXRlLXJlc3Rv
cmUtd2l0aC1sb2NrZWQtYmFjay1mb3J3YXJkLWxpc3QtMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0ZDdj
ZWU2Mjc0OTRmMDEwMzM4MjJkMjgzNGFmZmE1ODBjMmU4ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2xvYWRlci9yZXNvdXJjZXMvZm9ybS1zdGF0ZS1yZXN0b3JlLXdpdGgt
bG9ja2VkLWJhY2stZm9yd2FyZC1saXN0LTIuaHRtbApAQCAtMCwwICsxLDkgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8Ym9keSBvbkxvYWQ9ImRvY3VtZW50LmZvcm1zWzBdLnN1Ym1pdCgp
OyI+Cis8Zm9ybSBtZXRob2Q9IkdFVCIgYWN0aW9uPSJmb3JtLXN0YXRlLXJlc3RvcmUtd2l0aC1s
b2NrZWQtYmFjay1mb3J3YXJkLWxpc3QtMy5odG1sIj4KKzxpbnB1dCBuYW1lPSJUZXN0TmFtZTEi
IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ik9rMSI+Cis8aW5wdXQgbmFtZT0iVGVzdE5hbWUyIiB0eXBl
PSJoaWRkZW4iIHZhbHVlPSJPazIiPgorPC9mb3JtPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvcmVzb3VyY2VzL2Zvcm0tc3RhdGUtcmVzdG9y
ZS13aXRoLWxvY2tlZC1iYWNrLWZvcndhcmQtbGlzdC0zLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2xvYWRlci9yZXNvdXJjZXMvZm9ybS1zdGF0ZS1yZXN0b3JlLXdpdGgtbG9ja2VkLWJhY2stZm9y
d2FyZC1saXN0LTMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZDU0NjY4ZGFlM2JjNzY0Yzg2YTMxOGUzYjUz
OGFiOTdkMmFhOTNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIv
cmVzb3VyY2VzL2Zvcm0tc3RhdGUtcmVzdG9yZS13aXRoLWxvY2tlZC1iYWNrLWZvcndhcmQtbGlz
dC0zLmh0bWwKQEAgLTAsMCArMSw5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0Pgorc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsb2NhdGlvbi5zZWFyY2giLCAnP1Rlc3ROYW1l
MT1PazEmVGVzdE5hbWUyPU9rMicpOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cis8L3NjcmlwdD4KKzwvYm9k
eT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128961</attachid>
            <date>2012-02-26 23:16:13 -0800</date>
            <delta_ts>2012-02-28 21:29:40 -0800</delta_ts>
            <desc>Patch 3</desc>
            <filename>bug-79206-20120227161611.patch</filename>
            <type>text/plain</type>
            <size>5933</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4OTUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmQxZGI5NGIwNzEwMDZh
ZWE5NWQ3MzViMDQ0NzA5NGVlYzA2MWNlZi4uYTk2NDI5ZDdiZGRiY2M5YjkyZTZkNmE1ZTg3OTZl
MWZkYTZmZGM4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTAyLTI2ICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSRUdSRVNTSU9OKHIxMDYz
ODgpOiBGb3JtIHN0YXRlIGlzIHJlc3RvcmVkIHRvIGEgd3JvbmcgZG9jdW1lbnQuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTIwNgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gYSBkb2N1bWVudCBp
cyBsb2FkZWQgd2l0aCBGcmFtZUxvYWRUeXBlUmVkaXJlY3RXaXRoTG9ja2VkQmFja0ZvcndhcmRM
aXN0LAorICAgICAgICB0aGUgVVJMIG9mIGEgSGlzdG9yeUl0ZW0gY2FuIGJlIG1pc21hdGNoZWQg
d2l0aCB0aGUgVVJMIG9mIHRoZQorICAgICAgICBhY3R1YWwgZG9jdW1lbnQuIEl0IHdhcyBwb3Nz
aWJsZSB0byBzdG9yZSBmb3JtIHN0YXRlIHRvIGEgd3JvbmcKKyAgICAgICAgZG9jdW1lbnQuCisK
KyAgICAgICAgVGVzdDogZmFzdC9sb2FkZXIvZm9ybS1zdGF0ZS1yZXN0b3JlLXdpdGgtbG9ja2Vk
LWJhY2stZm9yd2FyZC1saXN0Lmh0bWwKKworICAgICAgICAqIGxvYWRlci9IaXN0b3J5Q29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5Q29udHJvbGxlcjo6cmVzdG9yZURv
Y3VtZW50U3RhdGUpOgorICAgICAgICBSZXN0b3JlIGZvcm0gc3RhdGUgb25seSBpZiB0aGUgY3Vy
cmVudCBoaXN0b3J5IGl0ZW0gVVJMIGlzIGVxdWFsIHRvIHRoZQorICAgICAgICBkb2N1bWVudCBV
UkwuIFVzaW5nIEhpc290cnlJdGVtOjppc0N1cnJlbnREb2N1bWVudCgpIGlzIGNvbnNpc3RlbnQg
d2l0aAorICAgICAgICBIaXN0b3J5Q29udHJvbGxlcjo6c2F2ZURvY3VtZW50U3RhdGUoKS4KKwog
MjAxMi0wMi0yNiAgRGlyayBTY2h1bHplICA8a3JpdEB3ZWJraXQub3JnPgogCiAgICAgICAgIENs
ZWFudXAgb2YgQWRvYmVzIGNvcHlyaWdodCB0ZXh0LiBUaGUgdGV4dCBnb3QgaGFybW9uaXplZCB3
aXRoIGNvcHlyaWdodCB0ZXh0cyBvZiBvdGhlciBjb21wYW5pZXMuIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAKaW5kZXggMzc5YjZkMzU3ZWYyNDM2NWYzMWQ4
ZDBmNjM0ZDZlYzY5ODdiMTdjNS4uOGM3ZTMxYzIwYWExOGQ4OWFjNzQyZmNlMGE2ZjFjZGRlYTVh
Yzc4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCkBA
IC0yMDAsOSArMjAwLDEwIEBAIHZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6OnJlc3RvcmVEb2N1bWVu
dFN0YXRlKCkKICAgICAKICAgICBpZiAoIWl0ZW1Ub1Jlc3RvcmUpCiAgICAgICAgIHJldHVybjsK
LQotICAgIExPRyhMb2FkaW5nLCAiV2ViQ29yZUxvYWRpbmcgJXM6IHJlc3RvcmluZyBmb3JtIHN0
YXRlIGZyb20gJXAiLCBtX2ZyYW1lLT50cmVlKCktPnVuaXF1ZU5hbWUoKS5zdHJpbmcoKS51dGY4
KCkuZGF0YSgpLCBpdGVtVG9SZXN0b3JlKTsKLSAgICBkb2MtPnNldFN0YXRlRm9yTmV3Rm9ybUVs
ZW1lbnRzKGl0ZW1Ub1Jlc3RvcmUtPmRvY3VtZW50U3RhdGUoKSk7CisgICAgaWYgKGl0ZW1Ub1Jl
c3RvcmUtPmlzQ3VycmVudERvY3VtZW50KGRvYykpIHsKKyAgICAgICAgTE9HKExvYWRpbmcsICJX
ZWJDb3JlTG9hZGluZyAlczogcmVzdG9yaW5nIGZvcm0gc3RhdGUgZnJvbSAlcCIsIG1fZnJhbWUt
PnRyZWUoKS0+dW5pcXVlTmFtZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIGl0ZW1Ub1Jlc3Rv
cmUpOworICAgICAgICBkb2MtPnNldFN0YXRlRm9yTmV3Rm9ybUVsZW1lbnRzKGl0ZW1Ub1Jlc3Rv
cmUtPmRvY3VtZW50U3RhdGUoKSk7CisgICAgfQogfQogCiB2b2lkIEhpc3RvcnlDb250cm9sbGVy
OjppbnZhbGlkYXRlQ3VycmVudEl0ZW1DYWNoZWRQYWdlKCkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhNWZhMDg0NjI1NGI0
Mzc0Yzc0M2FmNTUwOWQ2MGQ5M2RhMTBmYjI3Li42NjFlN2JiNDFkZWYyMjA0YzZkN2Q1NjJiN2E3
NTlmYmYxNGQxOThmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDItMjYgIEtlbnQgVGFt
dXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04ocjEwNjM4OCk6
IEZvcm0gc3RhdGUgaXMgcmVzdG9yZWQgdG8gYSB3cm9uZyBkb2N1bWVudC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MjA2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2xvYWRlci9mb3JtLXN0
YXRlLXJlc3RvcmUtd2l0aC1sb2NrZWQtYmFjay1mb3J3YXJkLWxpc3QtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2xvYWRlci9mb3JtLXN0YXRlLXJlc3RvcmUtd2l0aC1sb2Nr
ZWQtYmFjay1mb3J3YXJkLWxpc3QuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9sb2FkZXIv
cmVzb3VyY2VzL2Zvcm0tc3RhdGUtcmVzdG9yZS13aXRoLWxvY2tlZC1iYWNrLWZvcndhcmQtbGlz
dC0yLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbG9hZGVyL3Jlc291cmNlcy9mb3JtLXN0
YXRlLXJlc3RvcmUtd2l0aC1sb2NrZWQtYmFjay1mb3J3YXJkLWxpc3QtMy5odG1sOiBBZGRlZC4K
KwogMjAxMi0wMi0yNiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHVwZGF0ZSBleHBlY3RhdGlvbiBmaWxlcyBkdWUgdG8gc2xpZ2h0IGNoYW5n
ZXMgaW4gdGhlIHRleHQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2Zvcm0t
c3RhdGUtcmVzdG9yZS13aXRoLWxvY2tlZC1iYWNrLWZvcndhcmQtbGlzdC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9mb3JtLXN0YXRlLXJlc3RvcmUtd2l0aC1sb2NrZWQt
YmFjay1mb3J3YXJkLWxpc3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyODI2ZmMzNjVjZWY4
NzExMGUzOTJjNjQzMWMxNThkZmNmOWNhNWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2xvYWRlci9mb3JtLXN0YXRlLXJlc3RvcmUtd2l0aC1sb2NrZWQtYmFjay1mb3J3YXJk
LWxpc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorUEFTUyBsb2NhdGlvbi5zZWFyY2gg
aXMgIj9UZXN0TmFtZTE9T2sxJlRlc3ROYW1lMj1PazIiCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvbG9hZGVyL2Zvcm0tc3RhdGUtcmVzdG9yZS13aXRoLWxvY2tlZC1iYWNrLWZvcndh
cmQtbGlzdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvZm9ybS1zdGF0ZS1yZXN0b3Jl
LXdpdGgtbG9ja2VkLWJhY2stZm9yd2FyZC1saXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODNkNWQyMjIx
NzgwZTg5ODQ3YTIyODFiN2ViY2JhYTQyZjEwODY1YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvbG9hZGVyL2Zvcm0tc3RhdGUtcmVzdG9yZS13aXRoLWxvY2tlZC1iYWNrLWZv
cndhcmQtbGlzdC5odG1sCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8Ym9keSBvbkxvYWQ9ImRvY3VtZW50LmZvcm1zWzBdLnN1Ym1pdCgpOyI+Cis8Zm9ybSBtZXRo
b2Q9UE9TVCBhY3Rpb249InJlc291cmNlcy9mb3JtLXN0YXRlLXJlc3RvcmUtd2l0aC1sb2NrZWQt
YmFjay1mb3J3YXJkLWxpc3QtMi5odG1sIj4KKzxpbnB1dCBuYW1lPSJUZXN0TmFtZTEiIHR5cGU9
ImhpZGRlbiIgdmFsdWU9IkJhZDEiPgorPGlucHV0IG5hbWU9IlRlc3ROYW1lMiIgdHlwZT0iaGlk
ZGVuIiB2YWx1ZT0iQmFkMiI+Cis8L2Zvcm0+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3Jl
c291cmNlcy9mb3JtLXN0YXRlLXJlc3RvcmUtd2l0aC1sb2NrZWQtYmFjay1mb3J3YXJkLWxpc3Qt
Mi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvcmVzb3VyY2VzL2Zvcm0tc3RhdGUtcmVz
dG9yZS13aXRoLWxvY2tlZC1iYWNrLWZvcndhcmQtbGlzdC0yLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDRk
N2NlZTYyNzQ5NGYwMTAzMzgyMmQyODM0YWZmYTU4MGMyZThlMQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3Jlc291cmNlcy9mb3JtLXN0YXRlLXJlc3RvcmUtd2l0
aC1sb2NrZWQtYmFjay1mb3J3YXJkLWxpc3QtMi5odG1sCkBAIC0wLDAgKzEsOSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5IG9uTG9hZD0iZG9jdW1lbnQuZm9ybXNbMF0uc3VibWl0
KCk7Ij4KKzxmb3JtIG1ldGhvZD0iR0VUIiBhY3Rpb249ImZvcm0tc3RhdGUtcmVzdG9yZS13aXRo
LWxvY2tlZC1iYWNrLWZvcndhcmQtbGlzdC0zLmh0bWwiPgorPGlucHV0IG5hbWU9IlRlc3ROYW1l
MSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iT2sxIj4KKzxpbnB1dCBuYW1lPSJUZXN0TmFtZTIiIHR5
cGU9ImhpZGRlbiIgdmFsdWU9Ik9rMiI+Cis8L2Zvcm0+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9yZXNvdXJjZXMvZm9ybS1zdGF0ZS1yZXN0
b3JlLXdpdGgtbG9ja2VkLWJhY2stZm9yd2FyZC1saXN0LTMuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvbG9hZGVyL3Jlc291cmNlcy9mb3JtLXN0YXRlLXJlc3RvcmUtd2l0aC1sb2NrZWQtYmFjay1m
b3J3YXJkLWxpc3QtMy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZkNTQ2NjhkYWUzYmM3NjRjODZhMzE4ZTNi
NTM4YWI5N2QyYWE5M2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRl
ci9yZXNvdXJjZXMvZm9ybS1zdGF0ZS1yZXN0b3JlLXdpdGgtbG9ja2VkLWJhY2stZm9yd2FyZC1s
aXN0LTMuaHRtbApAQCAtMCwwICsxLDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxvY2F0aW9uLnNlYXJjaCIsICc/VGVzdE5h
bWUxPU9rMSZUZXN0TmFtZTI9T2syJyk7CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKzwvc2NyaXB0PgorPC9i
b2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129382</attachid>
            <date>2012-02-28 21:29:46 -0800</date>
            <delta_ts>2012-02-29 22:21:41 -0800</delta_ts>
            <desc>Patch 4</desc>
            <filename>bug-79206-20120229142944.patch</filename>
            <type>text/plain</type>
            <size>8034</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MTcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTc3NzRjMmZjOWM0NTlh
YzhiNTYzOTQ4MGU0ZjVhYjBjNjNmYjQ2My4uMGFhMGY1YzY1Y2MzY2RiODY3YzExMGM0YjcxNDAw
NDU0NDQ0ZjkyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTAyLTIyICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSRUdSRVNTSU9OKHIxMDYz
ODgpOiBGb3JtIHN0YXRlIGlzIHJlc3RvcmVkIHRvIGEgd3JvbmcgZG9jdW1lbnQuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTIwNgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHNvbWUgY2FzZXMsIHRo
ZSBVUkwgb2YgdGhlIGN1cnJlbnQgSGlzdG9yeUl0ZW0gYW5kIHRoZSBkb2N1bWVudAorICAgICAg
ICBVUkwgYXJlIG1pc21hdGNoZWQuCisgICAgICAgIEEgZm9ybSBzdGF0ZSBzaG91bGQgYmUgcmVz
dG9yZWQgb25seSBpZiB0aGUgZG9jdW1lbnQgd2FzIGxvYWRlZAorICAgICAgICB3aXRoIGEgSGlz
dG9yeUl0ZW0gYW5kIHRoZSBkb2N1bWVudCBpcyBub3QgbG9hZGVkIGFzIGEKKyAgICAgICAgcmVk
aXJlY3Rpb24uCisgICAgICAgIAorICAgICAgICBUZXN0OiBmYXN0L2xvYWRlci9mb3JtLXN0YXRl
LXJlc3RvcmUtd2l0aC1sb2NrZWQtYmFjay1mb3J3YXJkLWxpc3QuaHRtbAorCisgICAgICAgICog
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjps
b2FkSXRlbSk6CisgICAgICAgIFNhdmUgdGhlIHJlcXVlc3RlZCBIaXN0b3J5SXRlbSBmb3IgZGlk
TG9hZFdpdGhMb2RJdGVtKCkuCisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6ZGlkTG9h
ZFdpdGhMb2FkSXRlbSk6CisgICAgICAgIEFkZGVkLiBJdCByZXR1cm5zIHRydWUgaWYgdGhlIGN1
cnJlbnQgSGlzdG9yeUl0ZW0gd2FzIGxvYWRlZCB3aXRoIGxvYWRJdGVtKCkuCisgICAgICAgICog
bG9hZGVyL0ZyYW1lTG9hZGVyLmg6CisgICAgICAgIChGcmFtZUxvYWRlcik6IEFkZGVkIGRpZExv
YWRXaXRoTG9hZEl0ZW0oKS4KKyAgICAgICAgKiBsb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUNvbnRyb2xsZXI6OnJlc3RvcmVEb2N1bWVudFN0
YXRlKToKKyAgICAgICAgUmVzdG9yZSBhIGZvcm0gc3RhdGUgb25seSBpZiBkaWRMb2FkV2lkdGhM
b2FkSXRlbSgpIGFuZCBub3QgcmVkaXJlY3Rpb24uCisKIDIwMTItMDItMjggIEpvbmF0aGFuIEJh
Y2tlciAgPGJhY2tlckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBSZXNldCBk
YW1hZ2UgdHJhY2tlciBvbiB2aXNpYmlsaXR5IGNoYW5nZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwCmluZGV4IDU2MzU1MzlkNzdkZWNlZTQ2YWI2NDg4NGRlZTQzOGMyYTM0Njli
M2YuLjA0NDc0ZDJlMjNkNzA5ODMwYTgwMDRlN2ExNjRkZDUxOWM3OGQwMzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMzE3MSw2ICszMTcxLDcgQEAgdm9pZCBGcmFt
ZUxvYWRlcjo6bG9hZERpZmZlcmVudERvY3VtZW50SXRlbShIaXN0b3J5SXRlbSogaXRlbSwgRnJh
bWVMb2FkVHlwZSBsb2EKIC8vIExvYWRzIGNvbnRlbnQgaW50byB0aGlzIGZyYW1lLCBhcyBzcGVj
aWZpZWQgYnkgaGlzdG9yeSBpdGVtCiB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkSXRlbShIaXN0b3J5
SXRlbSogaXRlbSwgRnJhbWVMb2FkVHlwZSBsb2FkVHlwZSkKIHsKKyAgICBtX3JlcXVlc3RlZEhp
c3RvcnlJdGVtID0gaXRlbTsKICAgICBIaXN0b3J5SXRlbSogY3VycmVudEl0ZW0gPSBoaXN0b3J5
KCktPmN1cnJlbnRJdGVtKCk7CiAgICAgYm9vbCBzYW1lRG9jdW1lbnROYXZpZ2F0aW9uID0gY3Vy
cmVudEl0ZW0gJiYgaXRlbS0+c2hvdWxkRG9TYW1lRG9jdW1lbnROYXZpZ2F0aW9uVG8oY3VycmVu
dEl0ZW0pOwogCkBAIC0zMTgwLDYgKzMxODEsMTEgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZEl0
ZW0oSGlzdG9yeUl0ZW0qIGl0ZW0sIEZyYW1lTG9hZFR5cGUgbG9hZFR5cGUpCiAgICAgICAgIGxv
YWREaWZmZXJlbnREb2N1bWVudEl0ZW0oaXRlbSwgbG9hZFR5cGUpOwogfQogCitib29sIEZyYW1l
TG9hZGVyOjpkaWRMb2FkV2l0aExvYWRJdGVtKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yZXF1
ZXN0ZWRIaXN0b3J5SXRlbS5nZXQoKSA9PSBoaXN0b3J5KCktPmN1cnJlbnRJdGVtKCk7Cit9CisK
IHZvaWQgRnJhbWVMb2FkZXI6Om1haW5SZWNlaXZlZENvbXBsZXRlRXJyb3IoRG9jdW1lbnRMb2Fk
ZXIqIGxvYWRlciwgY29uc3QgUmVzb3VyY2VFcnJvciYpCiB7CiAgICAgbG9hZGVyLT5zZXRQcmlt
YXJ5TG9hZENvbXBsZXRlKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRl
eCAyMTgwMjhjNjQ3MmY5NWZiNDYzZmUxMDc1YmE5OGU2NDdjNGNjM2I5Li5iMjZjNWJhYzc2ZmZh
YWNlOTZjNGUwMjg2Y2Q3NjcxNTM1MDQ4ZDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuaApAQCAtMTE5LDYgKzExOSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgb3BlbihDYWNoZWRG
cmFtZUJhc2UmKTsKICAgICB2b2lkIGxvYWRJdGVtKEhpc3RvcnlJdGVtKiwgRnJhbWVMb2FkVHlw
ZSk7CisgICAgYm9vbCBkaWRMb2FkV2l0aExvYWRJdGVtKCkgY29uc3Q7CiAKICAgICBzdGF0aWMg
dm9pZCByZXBvcnRMb2NhbExvYWRGYWlsZWQoRnJhbWUqLCBjb25zdCBTdHJpbmcmIHVybCk7CiAK
QEAgLTQzNyw2ICs0MzgsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBLVVJMIG1fcHJldmlv
dXNVcmw7CisgICAgUmVmUHRyPEhpc3RvcnlJdGVtPiBtX3JlcXVlc3RlZEhpc3RvcnlJdGVtOwog
fTsKIAogLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgY3JlYXRlV2luZG93KCkgaW4gSlNE
T01XaW5kb3dCYXNlLmNwcCwgZm9yIGV4YW1wbGUsIGZvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9IaXN0b3J5Q29udHJvbGxlci5jcHAKaW5kZXggMzc5YjZkMzU3ZWYyNDM2NWYzMWQ4ZDBmNjM0
ZDZlYzY5ODdiMTdjNS4uMjFkNjU2OWZiMDQ5YWExOTE5MDI3ZDhlMzdhNmM2YjhkYzlmOTc3ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCkBAIC0yMDAs
OSArMjAwLDEwIEBAIHZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6OnJlc3RvcmVEb2N1bWVudFN0YXRl
KCkKICAgICAKICAgICBpZiAoIWl0ZW1Ub1Jlc3RvcmUpCiAgICAgICAgIHJldHVybjsKLQotICAg
IExPRyhMb2FkaW5nLCAiV2ViQ29yZUxvYWRpbmcgJXM6IHJlc3RvcmluZyBmb3JtIHN0YXRlIGZy
b20gJXAiLCBtX2ZyYW1lLT50cmVlKCktPnVuaXF1ZU5hbWUoKS5zdHJpbmcoKS51dGY4KCkuZGF0
YSgpLCBpdGVtVG9SZXN0b3JlKTsKLSAgICBkb2MtPnNldFN0YXRlRm9yTmV3Rm9ybUVsZW1lbnRz
KGl0ZW1Ub1Jlc3RvcmUtPmRvY3VtZW50U3RhdGUoKSk7CisgICAgaWYgKG1fZnJhbWUtPmxvYWRl
cigpLT5kaWRMb2FkV2l0aExvYWRJdGVtKCkgJiYgIW1fZnJhbWUtPmxvYWRlcigpLT5kb2N1bWVu
dExvYWRlcigpLT5pc0NsaWVudFJlZGlyZWN0KCkpIHsKKyAgICAgICAgTE9HKExvYWRpbmcsICJX
ZWJDb3JlTG9hZGluZyAlczogcmVzdG9yaW5nIGZvcm0gc3RhdGUgZnJvbSAlcCIsIG1fZnJhbWUt
PnRyZWUoKS0+dW5pcXVlTmFtZSgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIGl0ZW1Ub1Jlc3Rv
cmUpOworICAgICAgICBkb2MtPnNldFN0YXRlRm9yTmV3Rm9ybUVsZW1lbnRzKGl0ZW1Ub1Jlc3Rv
cmUtPmRvY3VtZW50U3RhdGUoKSk7CisgICAgfQogfQogCiB2b2lkIEhpc3RvcnlDb250cm9sbGVy
OjppbnZhbGlkYXRlQ3VycmVudEl0ZW1DYWNoZWRQYWdlKCkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxODY1NzNkMzZkMGU3
MDlkMmNhYmJlZmYyODY3ZGQ1MDQwNTcxNDUxLi5iNGEzMzJjZWI2MGQ1MTZmYWUzYzk0MTJmZmFh
MjM5NTllOTg5OGQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDItMjIgIEtlbnQgVGFt
dXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJFR1JFU1NJT04ocjEwNjM4OCk6
IEZvcm0gc3RhdGUgaXMgcmVzdG9yZWQgdG8gYSB3cm9uZyBkb2N1bWVudC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5MjA2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2xvYWRlci9mb3JtLXN0
YXRlLXJlc3RvcmUtd2l0aC1sb2NrZWQtYmFjay1mb3J3YXJkLWxpc3QtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2xvYWRlci9mb3JtLXN0YXRlLXJlc3RvcmUtd2l0aC1sb2Nr
ZWQtYmFjay1mb3J3YXJkLWxpc3QuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9sb2FkZXIv
cmVzb3VyY2VzL2Zvcm0tc3RhdGUtcmVzdG9yZS13aXRoLWxvY2tlZC1iYWNrLWZvcndhcmQtbGlz
dC0yLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbG9hZGVyL3Jlc291cmNlcy9mb3JtLXN0
YXRlLXJlc3RvcmUtd2l0aC1sb2NrZWQtYmFjay1mb3J3YXJkLWxpc3QtMy5odG1sOiBBZGRlZC4K
KwogMjAxMi0wMi0yOCAgQWRhbSBLbGVpbiAgPGFkYW1rQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBVbnJldmlld2VkIGdhcmRlbmluZywgbWFyayBhbm90aGVyIGNvbXBvc2l0aW5nIHRlc3QgYXMg
Zmxha3kuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9mb3JtLXN0YXRlLXJl
c3RvcmUtd2l0aC1sb2NrZWQtYmFjay1mb3J3YXJkLWxpc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9sb2FkZXIvZm9ybS1zdGF0ZS1yZXN0b3JlLXdpdGgtbG9ja2VkLWJhY2stZm9y
d2FyZC1saXN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMjgyNmZjMzY1Y2VmODcxMTBlMzky
YzY0MzFjMTU4ZGZjZjljYTViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9s
b2FkZXIvZm9ybS1zdGF0ZS1yZXN0b3JlLXdpdGgtbG9ja2VkLWJhY2stZm9yd2FyZC1saXN0LWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDIgQEAKK1BBU1MgbG9jYXRpb24uc2VhcmNoIGlzICI/VGVz
dE5hbWUxPU9rMSZUZXN0TmFtZTI9T2syIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2xvYWRlci9mb3JtLXN0YXRlLXJlc3RvcmUtd2l0aC1sb2NrZWQtYmFjay1mb3J3YXJkLWxpc3Qu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2Zvcm0tc3RhdGUtcmVzdG9yZS13aXRoLWxv
Y2tlZC1iYWNrLWZvcndhcmQtbGlzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgzZDVkMjIyMTc4MGU4OTg0
N2EyMjgxYjdlYmNiYWE0MmYxMDg2NWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2xvYWRlci9mb3JtLXN0YXRlLXJlc3RvcmUtd2l0aC1sb2NrZWQtYmFjay1mb3J3YXJkLWxp
c3QuaHRtbApAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHkg
b25Mb2FkPSJkb2N1bWVudC5mb3Jtc1swXS5zdWJtaXQoKTsiPgorPGZvcm0gbWV0aG9kPVBPU1Qg
YWN0aW9uPSJyZXNvdXJjZXMvZm9ybS1zdGF0ZS1yZXN0b3JlLXdpdGgtbG9ja2VkLWJhY2stZm9y
d2FyZC1saXN0LTIuaHRtbCI+Cis8aW5wdXQgbmFtZT0iVGVzdE5hbWUxIiB0eXBlPSJoaWRkZW4i
IHZhbHVlPSJCYWQxIj4KKzxpbnB1dCBuYW1lPSJUZXN0TmFtZTIiIHR5cGU9ImhpZGRlbiIgdmFs
dWU9IkJhZDIiPgorPC9mb3JtPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9yZXNvdXJjZXMv
Zm9ybS1zdGF0ZS1yZXN0b3JlLXdpdGgtbG9ja2VkLWJhY2stZm9yd2FyZC1saXN0LTIuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3Jlc291cmNlcy9mb3JtLXN0YXRlLXJlc3RvcmUtd2l0
aC1sb2NrZWQtYmFjay1mb3J3YXJkLWxpc3QtMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0ZDdjZWU2Mjc0
OTRmMDEwMzM4MjJkMjgzNGFmZmE1ODBjMmU4ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2xvYWRlci9yZXNvdXJjZXMvZm9ybS1zdGF0ZS1yZXN0b3JlLXdpdGgtbG9ja2Vk
LWJhY2stZm9yd2FyZC1saXN0LTIuaHRtbApAQCAtMCwwICsxLDkgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8Ym9keSBvbkxvYWQ9ImRvY3VtZW50LmZvcm1zWzBdLnN1Ym1pdCgpOyI+Cis8
Zm9ybSBtZXRob2Q9IkdFVCIgYWN0aW9uPSJmb3JtLXN0YXRlLXJlc3RvcmUtd2l0aC1sb2NrZWQt
YmFjay1mb3J3YXJkLWxpc3QtMy5odG1sIj4KKzxpbnB1dCBuYW1lPSJUZXN0TmFtZTEiIHR5cGU9
ImhpZGRlbiIgdmFsdWU9Ik9rMSI+Cis8aW5wdXQgbmFtZT0iVGVzdE5hbWUyIiB0eXBlPSJoaWRk
ZW4iIHZhbHVlPSJPazIiPgorPC9mb3JtPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvcmVzb3VyY2VzL2Zvcm0tc3RhdGUtcmVzdG9yZS13aXRo
LWxvY2tlZC1iYWNrLWZvcndhcmQtbGlzdC0zLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRl
ci9yZXNvdXJjZXMvZm9ybS1zdGF0ZS1yZXN0b3JlLXdpdGgtbG9ja2VkLWJhY2stZm9yd2FyZC1s
aXN0LTMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZDU0NjY4ZGFlM2JjNzY0Yzg2YTMxOGUzYjUzOGFiOTdk
MmFhOTNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvcmVzb3Vy
Y2VzL2Zvcm0tc3RhdGUtcmVzdG9yZS13aXRoLWxvY2tlZC1iYWNrLWZvcndhcmQtbGlzdC0zLmh0
bWwKQEAgLTAsMCArMSw5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJsb2NhdGlvbi5zZWFyY2giLCAnP1Rlc3ROYW1lMT1PazEm
VGVzdE5hbWUyPU9rMicpOworaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cis8L3NjcmlwdD4KKzwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129632</attachid>
            <date>2012-02-29 22:19:10 -0800</date>
            <delta_ts>2012-03-01 18:30:15 -0800</delta_ts>
            <desc>Patch 5</desc>
            <filename>bug-79206-20120301151908.patch</filename>
            <type>text/plain</type>
            <size>7953</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzdlMjZjMTcxNThhNjk1
YWMwNzExYWFmZDFhMTc4MzJkMmUxNjMwNi4uMDg1YTllNWJkOWE2OTA0Y2Y5ZDYxZjNjMWY4YmU0
N2JkODI5Mzg3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTAyLTI5ICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSRUdSRVNTSU9OKHIxMDYz
ODgpOiBGb3JtIHN0YXRlIGlzIHJlc3RvcmVkIHRvIGEgd3JvbmcgZG9jdW1lbnQuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTIwNgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIHNvbWUgY2FzZXMsIHRo
ZSBVUkwgb2YgdGhlIGN1cnJlbnQgSGlzdG9yeUl0ZW0gYW5kIHRoZSBkb2N1bWVudAorICAgICAg
ICBVUkwgYXJlIG1pc21hdGNoZWQuCisgICAgICAgIEEgZm9ybSBzdGF0ZSBzaG91bGQgYmUgcmVz
dG9yZWQgb25seSBpZiB0aGUgZG9jdW1lbnQgd2FzIGxvYWRlZAorICAgICAgICB3aXRoIGEgSGlz
dG9yeUl0ZW0gYW5kIHRoZSBkb2N1bWVudCBpcyBub3QgbG9hZGVkIGFzIGEKKyAgICAgICAgcmVk
aXJlY3Rpb24uCisKKyAgICAgICAgVGVzdDogZmFzdC9sb2FkZXIvZm9ybS1zdGF0ZS1yZXN0b3Jl
LXdpdGgtbG9ja2VkLWJhY2stZm9yd2FyZC1saXN0Lmh0bWwKKworICAgICAgICAqIGxvYWRlci9G
cmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6Y2hlY2tDb21w
bGV0ZWQpOiBDbGVhciBtX3JlcXVlc3RlZEhpc3RvcnlJdGVtLgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OmxvYWRJdGVtKToKKyAgICAgICAgU2F2ZSB0aGUgcmVxdWVzdGVkIEhpc3Rv
cnlJdGVtIGZvciBkaWRMb2FkV2l0aExvZEl0ZW0oKS4KKyAgICAgICAgKiBsb2FkZXIvRnJhbWVM
b2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpyZXF1ZXN0ZWRIaXN0b3J5
SXRlbSk6CisgICAgICAgIEFkZGVkLiBBY2Nlc3NvciBmb3IgbV9yZXF1ZXN0ZWRIaXN0b3J5SXRl
bS4KKyAgICAgICAgKiBsb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SGlzdG9yeUNvbnRyb2xsZXI6OnJlc3RvcmVEb2N1bWVudFN0YXRlKToKKyAgICAgICAg
UmVzdG9yZSBhIGZvcm0gc3RhdGUgb25seSBpZiB0aGUgY3VycmVudCBkb2N1bWVudCB3YXMgbG9h
ZGVkIHdpdGgKKyAgICAgICAgRnJhbWVMb2FkZXI6OmxvYWRJdGVtKCkgYW5kIG5vdCByZWRpcmVj
dGlvbi4KKwogMjAxMi0wMi0yOSAgRXJpayBBcnZpZHNzb24gIDxhcnZAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJlbmFtZSBET01TZWxlY3Rpb24gdG8gU2VsZWN0aW9uCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCA1NjM1NTM5ZDc3ZGVjZWU0NmFiNjQ4ODRkZWU0Mzhj
MmEzNDY5YjNmLi40YmFiZDc5NTNjYjMxMTlkMDdmZWRkNmVkMWVlOThmMjI2NGI0YjBhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTczNiw2ICs3MzYsNyBAQCB2b2lk
IEZyYW1lTG9hZGVyOjpjaGVja0NvbXBsZXRlZCgpCiAKICAgICAvLyBPSywgY29tcGxldGVkLgog
ICAgIG1faXNDb21wbGV0ZSA9IHRydWU7CisgICAgbV9yZXF1ZXN0ZWRIaXN0b3J5SXRlbSA9IDA7
CiAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2V0UmVhZHlTdGF0ZShEb2N1bWVudDo6Q29tcGxl
dGUpOwogCiAgICAgUmVmUHRyPEZyYW1lPiBwcm90ZWN0KG1fZnJhbWUpOwpAQCAtMzE3MSw2ICsz
MTcyLDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZERpZmZlcmVudERvY3VtZW50SXRlbShIaXN0
b3J5SXRlbSogaXRlbSwgRnJhbWVMb2FkVHlwZSBsb2EKIC8vIExvYWRzIGNvbnRlbnQgaW50byB0
aGlzIGZyYW1lLCBhcyBzcGVjaWZpZWQgYnkgaGlzdG9yeSBpdGVtCiB2b2lkIEZyYW1lTG9hZGVy
Ojpsb2FkSXRlbShIaXN0b3J5SXRlbSogaXRlbSwgRnJhbWVMb2FkVHlwZSBsb2FkVHlwZSkKIHsK
KyAgICBtX3JlcXVlc3RlZEhpc3RvcnlJdGVtID0gaXRlbTsKICAgICBIaXN0b3J5SXRlbSogY3Vy
cmVudEl0ZW0gPSBoaXN0b3J5KCktPmN1cnJlbnRJdGVtKCk7CiAgICAgYm9vbCBzYW1lRG9jdW1l
bnROYXZpZ2F0aW9uID0gY3VycmVudEl0ZW0gJiYgaXRlbS0+c2hvdWxkRG9TYW1lRG9jdW1lbnRO
YXZpZ2F0aW9uVG8oY3VycmVudEl0ZW0pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5o
CmluZGV4IDIxODAyOGM2NDcyZjk1ZmI0NjNmZTEwNzViYTk4ZTY0N2M0Y2MzYjkuLmRmMzU3ZDZj
ZGY3MmMwNjJhNGUzYThmYWFmZTBlMzFkMzhmMTc2M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5oCkBAIC0xMTksNiArMTE5LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBvcGVuKENh
Y2hlZEZyYW1lQmFzZSYpOwogICAgIHZvaWQgbG9hZEl0ZW0oSGlzdG9yeUl0ZW0qLCBGcmFtZUxv
YWRUeXBlKTsKKyAgICBIaXN0b3J5SXRlbSogcmVxdWVzdGVkSGlzdG9yeUl0ZW0oKSBjb25zdCB7
IHJldHVybiBtX3JlcXVlc3RlZEhpc3RvcnlJdGVtLmdldCgpOyB9CiAKICAgICBzdGF0aWMgdm9p
ZCByZXBvcnRMb2NhbExvYWRGYWlsZWQoRnJhbWUqLCBjb25zdCBTdHJpbmcmIHVybCk7CiAKQEAg
LTQzNyw2ICs0MzgsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBLVVJMIG1fcHJldmlvdXNV
cmw7CisgICAgUmVmUHRyPEhpc3RvcnlJdGVtPiBtX3JlcXVlc3RlZEhpc3RvcnlJdGVtOwogfTsK
IAogLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYnkgY3JlYXRlV2luZG93KCkgaW4gSlNET01X
aW5kb3dCYXNlLmNwcCwgZm9yIGV4YW1wbGUsIGZvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9I
aXN0b3J5Q29udHJvbGxlci5jcHAKaW5kZXggMzc5YjZkMzU3ZWYyNDM2NWYzMWQ4ZDBmNjM0ZDZl
YzY5ODdiMTdjNS4uZTQ0YmExZTg2OTlmMDM0YzdjZTc4YTU0OTMwMmIyZDRkZTZiYTBlMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCkBAIC0yMDAsOSAr
MjAwLDEwIEBAIHZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6OnJlc3RvcmVEb2N1bWVudFN0YXRlKCkK
ICAgICAKICAgICBpZiAoIWl0ZW1Ub1Jlc3RvcmUpCiAgICAgICAgIHJldHVybjsKLQotICAgIExP
RyhMb2FkaW5nLCAiV2ViQ29yZUxvYWRpbmcgJXM6IHJlc3RvcmluZyBmb3JtIHN0YXRlIGZyb20g
JXAiLCBtX2ZyYW1lLT50cmVlKCktPnVuaXF1ZU5hbWUoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgp
LCBpdGVtVG9SZXN0b3JlKTsKLSAgICBkb2MtPnNldFN0YXRlRm9yTmV3Rm9ybUVsZW1lbnRzKGl0
ZW1Ub1Jlc3RvcmUtPmRvY3VtZW50U3RhdGUoKSk7CisgICAgaWYgKG1fZnJhbWUtPmxvYWRlcigp
LT5yZXF1ZXN0ZWRIaXN0b3J5SXRlbSgpID09IG1fY3VycmVudEl0ZW0uZ2V0KCkgJiYgIW1fZnJh
bWUtPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpLT5pc0NsaWVudFJlZGlyZWN0KCkpIHsKKyAg
ICAgICAgTE9HKExvYWRpbmcsICJXZWJDb3JlTG9hZGluZyAlczogcmVzdG9yaW5nIGZvcm0gc3Rh
dGUgZnJvbSAlcCIsIG1fZnJhbWUtPnRyZWUoKS0+dW5pcXVlTmFtZSgpLnN0cmluZygpLnV0Zjgo
KS5kYXRhKCksIGl0ZW1Ub1Jlc3RvcmUpOworICAgICAgICBkb2MtPnNldFN0YXRlRm9yTmV3Rm9y
bUVsZW1lbnRzKGl0ZW1Ub1Jlc3RvcmUtPmRvY3VtZW50U3RhdGUoKSk7CisgICAgfQogfQogCiB2
b2lkIEhpc3RvcnlDb250cm9sbGVyOjppbnZhbGlkYXRlQ3VycmVudEl0ZW1DYWNoZWRQYWdlKCkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiYzEzODA4NzU3ODg3Y2RiYjI0ZjU4NGI1NzM4NDJiYmM2ZTI2NDI2Li41OTNkYzRi
OTA0N2QwNDYyZTQ2NTQ3YTRmNTg5ODA5ZDBkYWZkYWYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTItMDItMjkgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJFR1JFU1NJT04ocjEwNjM4OCk6IEZvcm0gc3RhdGUgaXMgcmVzdG9yZWQgdG8gYSB3cm9uZyBk
b2N1bWVudC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTc5MjA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBmYXN0L2xvYWRlci9mb3JtLXN0YXRlLXJlc3RvcmUtd2l0aC1sb2NrZWQtYmFjay1mb3J3YXJk
LWxpc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2xvYWRlci9mb3JtLXN0
YXRlLXJlc3RvcmUtd2l0aC1sb2NrZWQtYmFjay1mb3J3YXJkLWxpc3QuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9sb2FkZXIvcmVzb3VyY2VzL2Zvcm0tc3RhdGUtcmVzdG9yZS13aXRoLWxv
Y2tlZC1iYWNrLWZvcndhcmQtbGlzdC0yLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbG9h
ZGVyL3Jlc291cmNlcy9mb3JtLXN0YXRlLXJlc3RvcmUtd2l0aC1sb2NrZWQtYmFjay1mb3J3YXJk
LWxpc3QtMy5odG1sOiBBZGRlZC4KKwogMjAxMi0wMi0yOSAgU2hpbnlhIEthd2FuYWthICA8c2hp
bnlha0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgY3JlYXRlQ29udGVudFdpdGhTZWxlY3QgaW4g
c2hhZG93LXRlc3QtZHJpdmVyLmpzIGlzIG5vdCBpbnR1aXRpdmUuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2xvYWRlci9mb3JtLXN0YXRlLXJlc3RvcmUtd2l0aC1sb2NrZWQtYmFjay1m
b3J3YXJkLWxpc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvZm9ybS1z
dGF0ZS1yZXN0b3JlLXdpdGgtbG9ja2VkLWJhY2stZm9yd2FyZC1saXN0LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hMjgyNmZjMzY1Y2VmODcxMTBlMzkyYzY0MzFjMTU4ZGZjZjljYTViCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvZm9ybS1zdGF0ZS1yZXN0b3Jl
LXdpdGgtbG9ja2VkLWJhY2stZm9yd2FyZC1saXN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIg
QEAKK1BBU1MgbG9jYXRpb24uc2VhcmNoIGlzICI/VGVzdE5hbWUxPU9rMSZUZXN0TmFtZTI9T2sy
IgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9mb3JtLXN0YXRlLXJlc3Rv
cmUtd2l0aC1sb2NrZWQtYmFjay1mb3J3YXJkLWxpc3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
bG9hZGVyL2Zvcm0tc3RhdGUtcmVzdG9yZS13aXRoLWxvY2tlZC1iYWNrLWZvcndhcmQtbGlzdC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjgzZDVkMjIyMTc4MGU4OTg0N2EyMjgxYjdlYmNiYWE0MmYxMDg2NWEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9mb3JtLXN0YXRlLXJl
c3RvcmUtd2l0aC1sb2NrZWQtYmFjay1mb3J3YXJkLWxpc3QuaHRtbApAQCAtMCwwICsxLDE1IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHkgb25Mb2FkPSJkb2N1bWVudC5mb3Jtc1sw
XS5zdWJtaXQoKTsiPgorPGZvcm0gbWV0aG9kPVBPU1QgYWN0aW9uPSJyZXNvdXJjZXMvZm9ybS1z
dGF0ZS1yZXN0b3JlLXdpdGgtbG9ja2VkLWJhY2stZm9yd2FyZC1saXN0LTIuaHRtbCI+Cis8aW5w
dXQgbmFtZT0iVGVzdE5hbWUxIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJCYWQxIj4KKzxpbnB1dCBu
YW1lPSJUZXN0TmFtZTIiIHR5cGU9ImhpZGRlbiIgdmFsdWU9IkJhZDIiPgorPC9mb3JtPgorPHNj
cmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVu
dGlsRG9uZSgpOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2xvYWRlci9yZXNvdXJjZXMvZm9ybS1zdGF0ZS1yZXN0b3JlLXdpdGgt
bG9ja2VkLWJhY2stZm9yd2FyZC1saXN0LTIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbG9hZGVy
L3Jlc291cmNlcy9mb3JtLXN0YXRlLXJlc3RvcmUtd2l0aC1sb2NrZWQtYmFjay1mb3J3YXJkLWxp
c3QtMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0ZDdjZWU2Mjc0OTRmMDEwMzM4MjJkMjgzNGFmZmE1ODBj
MmU4ZTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9yZXNvdXJj
ZXMvZm9ybS1zdGF0ZS1yZXN0b3JlLXdpdGgtbG9ja2VkLWJhY2stZm9yd2FyZC1saXN0LTIuaHRt
bApAQCAtMCwwICsxLDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keSBvbkxvYWQ9
ImRvY3VtZW50LmZvcm1zWzBdLnN1Ym1pdCgpOyI+Cis8Zm9ybSBtZXRob2Q9IkdFVCIgYWN0aW9u
PSJmb3JtLXN0YXRlLXJlc3RvcmUtd2l0aC1sb2NrZWQtYmFjay1mb3J3YXJkLWxpc3QtMy5odG1s
Ij4KKzxpbnB1dCBuYW1lPSJUZXN0TmFtZTEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9Ik9rMSI+Cis8
aW5wdXQgbmFtZT0iVGVzdE5hbWUyIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJPazIiPgorPC9mb3Jt
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIv
cmVzb3VyY2VzL2Zvcm0tc3RhdGUtcmVzdG9yZS13aXRoLWxvY2tlZC1iYWNrLWZvcndhcmQtbGlz
dC0zLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9yZXNvdXJjZXMvZm9ybS1zdGF0ZS1y
ZXN0b3JlLXdpdGgtbG9ja2VkLWJhY2stZm9yd2FyZC1saXN0LTMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
ZDU0NjY4ZGFlM2JjNzY0Yzg2YTMxOGUzYjUzOGFiOTdkMmFhOTNjCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvcmVzb3VyY2VzL2Zvcm0tc3RhdGUtcmVzdG9yZS13
aXRoLWxvY2tlZC1iYWNrLWZvcndhcmQtbGlzdC0zLmh0bWwKQEAgLTAsMCArMSw5IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgorc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJs
b2NhdGlvbi5zZWFyY2giLCAnP1Rlc3ROYW1lMT1PazEmVGVzdE5hbWUyPU9rMicpOworaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3Rp
ZnlEb25lKCk7Cis8L3NjcmlwdD4KKzwvYm9keT4K
</data>

          </attachment>
      

    </bug>

</bugzilla>