<?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>76686</bug_id>
          
          <creation_ts>2012-01-19 22:52:28 -0800</creation_ts>
          <short_desc>HistoryItem not updated properly when a form submission begins before a previous form submission has finished</short_desc>
          <delta_ts>2012-04-02 13:14:30 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>History</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Fisher (:fishd, Google)">fishd</reporter>
          <assigned_to name="Darin Fisher (:fishd, Google)">fishd</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>creis</cc>
    
    <cc>dglazkov</cc>
    
    <cc>gustavo.noronha</cc>
    
    <cc>gustavo</cc>
    
    <cc>japhet</cc>
    
    <cc>mihaip</cc>
    
    <cc>shezbaig.wk</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>539289</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-01-19 22:52:28 -0800</bug_when>
    <thetext>HistoryItem not updated properly when a form submission begins before a previous form submission has finished

Given content such as the following:

a.php:
  &lt;form method=&quot;post&quot; action=&quot;b.php&quot;&gt;...&lt;/form&gt;

b.php:
  &lt;form method=&quot;post&quot; action=&quot;c.php&quot;&gt;...&lt;/form&gt;
  &lt;script&gt;document.forms[0].submit()&lt;/script&gt;

c.php:
  &lt;b&gt;hello world&lt;/b&gt;

The submission to c.php that occurs while b.php is still loading (following the form submission from a.php to b.php) results in WebKit failing to properly update the HistoryItem.  While the browser will think it is on c.php, navigating away from c.php and then back again will actually cause a form submission to b.php to be repeated!

I believe this occurs because FrameLoader::loadPostRequest() fails to call DocumentLoader::setIsClientRedirect() in the same manner that FrameLoader::loadURL() does.  It should do so after calling loadWithNavigationAction() based on the prior value of m_quickRedirectComing.  As a result, HistoryController::updateForRedirectWithLockedBackForwardList() does not see the isClientRedirect() flag set to true, and it thus fails to call updateCurrentItem().

Incidentally, this bug does not exist if the testcase is placed in a subframe.  That appears to be due to the code in updateForRedirectWithLockedBackForwardList(), which will re-create the HistoryItems for subframes only.  I&apos;m not sure what to make of that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576296</commentid>
    <comment_count>1</comment_count>
      <attachid>131357</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-03-12 11:15:58 -0700</bug_when>
    <thetext>Created attachment 131357
layout tests

Here&apos;s a pair of layout tests for this bug.  One uses the GET method and the other uses the POST method.  WebKit currently fails the POST test.  In both cases, the session history entry for the initial page should be replaced with a session history entry for the second page, but that doesn&apos;t happen in the POST case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576299</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-03-12 11:17:31 -0700</bug_when>
    <thetext>The error diff for the POST test looks like this:

 ============== Back Forward List ==============
-        (file test):fast/history/resources/form-submission-before-load-page2.html  **nav target**
+        (file test):fast/history/form-submission-before-load-post.html  **nav target**
 curr-&gt;  (file test):fast/history/resources/form-submission-before-load-page3.html  **nav target**
 ===============================================</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579874</commentid>
    <comment_count>3</comment_count>
      <attachid>132143</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-03-15 16:30:01 -0700</bug_when>
    <thetext>Created attachment 132143
v1 patch

Here&apos;s a very simple patch that corrects the bug.  This copies logic from
the end of FrameLoader::loadURL().  I&apos;m not super keen on just copying that
code, but at least it is a small amount of code.  I considered moving this
code into loadWithNavigationAction, but I couldn&apos;t convince myself that it
was correct to run it in all cases as loadWithNavigationAction gets called
elsewhere under different conditions.

I&apos;ve included a layout test for the case that passed before my change,
namely that of using GET instead of POST.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579955</commentid>
    <comment_count>4</comment_count>
      <attachid>132143</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-15 17:38:20 -0700</bug_when>
    <thetext>Comment on attachment 132143
v1 patch

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

New failing tests:
fast/loader/form-submission-before-load-get.html
fast/loader/form-submission-before-load-post.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581264</commentid>
    <comment_count>5</comment_count>
      <attachid>132447</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-03-16 23:11:03 -0700</bug_when>
    <thetext>Created attachment 132447
v2 patch

Now, with corrected test expectations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582217</commentid>
    <comment_count>6</comment_count>
      <attachid>132665</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-03-19 14:08:03 -0700</bug_when>
    <thetext>Created attachment 132665
v3 patch

With some comments in the test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582281</commentid>
    <comment_count>7</comment_count>
      <attachid>132665</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-03-19 14:47:53 -0700</bug_when>
    <thetext>Comment on attachment 132665
v3 patch

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

&gt; Source/WebCore/loader/FrameLoader.cpp:2669
&gt; -    } else
&gt; +    } else {
&gt; +        // must grab this now, since this load may stop the previous load and clear this flag
&gt; +        bool isRedirect = m_quickRedirectComing;
&gt;          loadWithNavigationAction(workingResourceRequest, action, lockHistory, loadType, formState.release());    
&gt; +        if (isRedirect) {
&gt; +            m_quickRedirectComing = false;
&gt; +            if (m_provisionalDocumentLoader)
&gt; +                m_provisionalDocumentLoader-&gt;setIsClientRedirect(true);
&gt; +        }
&gt; +    }

Is there any sense in factoring this logic out into a helper? I notice it&apos;s identical to code in loadURL().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582315</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-03-19 15:22:44 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Is there any sense in factoring this logic out into a helper? I notice it&apos;s identical to code in loadURL().

I could imagine factoring out the body of the isRedirect branch:

...
    bool isRedirect = m_quickRedirectComing;
    loadWithNavigationAction(workingResourceRequest, action, ...);
    if (isRedirect)
        didClientRedirect();
...

void FrameLoader::didClientRedirect() {
    m_quickRedirectComing = false;
    if (m_provisionalDocumentLoader)
        m_provisionalDocumentLoader-&gt;setIsClientRedirect(true);
}

Is that what you had in mind?  Is didClientRedirect a good name for this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>582437</commentid>
    <comment_count>9</comment_count>
      <attachid>132665</attachid>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2012-03-19 16:38:42 -0700</bug_when>
    <thetext>Comment on attachment 132665
v3 patch

Attachment 132665 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11991054</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593689</commentid>
    <comment_count>10</comment_count>
      <attachid>132665</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2012-04-02 12:33:11 -0700</bug_when>
    <thetext>Comment on attachment 132665
v3 patch

As discussed offline with Nate, I&apos;m going to go ahead and commit this.  I think
refactoring is best as a separate task.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593734</commentid>
    <comment_count>11</comment_count>
      <attachid>132665</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-02 13:14:24 -0700</bug_when>
    <thetext>Comment on attachment 132665
v3 patch

Clearing flags on attachment: 132665

Committed r112924: &lt;http://trac.webkit.org/changeset/112924&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593735</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-02 13:14:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131357</attachid>
            <date>2012-03-12 11:15:58 -0700</date>
            <delta_ts>2012-03-15 16:30:01 -0700</delta_ts>
            <desc>layout tests</desc>
            <filename>tests.txt</filename>
            <type>text/plain</type>
            <size>3122</size>
            <attacher name="Darin Fisher (:fishd, Google)">fishd</attacher>
            
              <data encoding="base64">SW5kZXg6IGZvcm0tc3VibWlzc2lvbi1iZWZvcmUtbG9hZC1nZXQuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBmb3JtLXN1Ym1pc3Npb24tYmVmb3JlLWxvYWQtZ2V0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBm
b3JtLXN1Ym1pc3Npb24tYmVmb3JlLWxvYWQtZ2V0Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMTAgQEAKKzxmb3JtIG1ldGhvZD0iZ2V0IiBhY3Rpb249InJlc291cmNlcy9mb3JtLXN1Ym1p
c3Npb24tYmVmb3JlLWxvYWQtcGFnZTIuaHRtbCI+PC9mb3JtPgorPHNjcmlwdD4KK2lmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5jbGVh
ckJhY2tGb3J3YXJkTGlzdCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBCYWNrRm9y
d2FyZExpc3QoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorZG9jdW1lbnQuZm9ybXNb
MF0uc3VibWl0KCk7Cis8L3NjcmlwdD4KSW5kZXg6IGZvcm0tc3VibWlzc2lvbi1iZWZvcmUtbG9h
ZC1wb3N0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBmb3JtLXN1Ym1pc3Npb24tYmVmb3Jl
LWxvYWQtcG9zdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBmb3JtLXN1Ym1pc3Npb24t
YmVmb3JlLWxvYWQtcG9zdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNiBA
QAorRG9uZS4KKworPT09PT09PT09PT09PT0gQmFjayBGb3J3YXJkIExpc3QgPT09PT09PT09PT09
PT0KKyAgICAgICAgKGZpbGUgdGVzdCk6ZmFzdC9oaXN0b3J5L3Jlc291cmNlcy9mb3JtLXN1Ym1p
c3Npb24tYmVmb3JlLWxvYWQtcGFnZTIuaHRtbCAgKipuYXYgdGFyZ2V0KioKK2N1cnItPiAgKGZp
bGUgdGVzdCk6ZmFzdC9oaXN0b3J5L3Jlc291cmNlcy9mb3JtLXN1Ym1pc3Npb24tYmVmb3JlLWxv
YWQtcGFnZTMuaHRtbCAgKipuYXYgdGFyZ2V0KioKKz09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09CkluZGV4OiBmb3JtLXN1Ym1pc3Npb24tYmVmb3JlLWxvYWQt
cG9zdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIGZvcm0tc3VibWlzc2lvbi1iZWZvcmUtbG9hZC1wb3N0
Lmh0bWwJKHJldmlzaW9uIDApCisrKyBmb3JtLXN1Ym1pc3Npb24tYmVmb3JlLWxvYWQtcG9zdC5o
dG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwIEBACis8Zm9ybSBtZXRob2Q9InBvc3QiIGFj
dGlvbj0icmVzb3VyY2VzL2Zvcm0tc3VibWlzc2lvbi1iZWZvcmUtbG9hZC1wYWdlMi5odG1sIj48
L2Zvcm0+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmNsZWFyQmFja0ZvcndhcmRMaXN0KCk7CisgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEJhY2tGb3J3YXJkTGlzdCgpOworICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7Cit9Citkb2N1bWVudC5mb3Jtc1swXS5zdWJtaXQoKTsKKzwvc2NyaXB0PgpJbmRleDog
Zm9ybS1zdWJtaXNzaW9uLWJlZm9yZS1sb2FkLWdldC1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gZm9ybS1zdWJtaXNzaW9uLWJlZm9yZS1sb2FkLWdldC1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBmb3JtLXN1Ym1pc3Npb24tYmVmb3JlLWxvYWQtZ2V0LWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw2IEBACitEb25lLgorCis9PT09PT09PT09PT09PSBCYWNrIEZv
cndhcmQgTGlzdCA9PT09PT09PT09PT09PQorICAgICAgICAoZmlsZSB0ZXN0KTpmYXN0L2hpc3Rv
cnkvcmVzb3VyY2VzL2Zvcm0tc3VibWlzc2lvbi1iZWZvcmUtbG9hZC1wYWdlMi5odG1sPyAgKipu
YXYgdGFyZ2V0KioKK2N1cnItPiAgKGZpbGUgdGVzdCk6ZmFzdC9oaXN0b3J5L3Jlc291cmNlcy9m
b3JtLXN1Ym1pc3Npb24tYmVmb3JlLWxvYWQtcGFnZTMuaHRtbCAgKipuYXYgdGFyZ2V0KioKKz09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkluZGV4OiByZXNv
dXJjZXMvZm9ybS1zdWJtaXNzaW9uLWJlZm9yZS1sb2FkLXBhZ2UyLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gcmVzb3VyY2VzL2Zvcm0tc3VibWlzc2lvbi1iZWZvcmUtbG9hZC1wYWdlMi5odG1sCShyZXZp
c2lvbiAwKQorKysgcmVzb3VyY2VzL2Zvcm0tc3VibWlzc2lvbi1iZWZvcmUtbG9hZC1wYWdlMi5o
dG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcgQEAKKzxzY3JpcHQ+CitvbmxvYWQgPSBmdW5j
dGlvbigpIHsKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICBsb2NhdGlvbiA9
ICdmb3JtLXN1Ym1pc3Npb24tYmVmb3JlLWxvYWQtcGFnZTMuaHRtbCc7CisgICAgfSwgMCk7Cit9
Cis8L3NjcmlwdD4KSW5kZXg6IHJlc291cmNlcy9mb3JtLXN1Ym1pc3Npb24tYmVmb3JlLWxvYWQt
cGFnZTMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZXNvdXJjZXMvZm9ybS1zdWJtaXNzaW9uLWJlZm9y
ZS1sb2FkLXBhZ2UzLmh0bWwJKHJldmlzaW9uIDApCisrKyByZXNvdXJjZXMvZm9ybS1zdWJtaXNz
aW9uLWJlZm9yZS1sb2FkLXBhZ2UzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNSBAQAor
RG9uZS4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKzwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132143</attachid>
            <date>2012-03-15 16:30:01 -0700</date>
            <delta_ts>2012-03-16 23:11:03 -0700</delta_ts>
            <desc>v1 patch</desc>
            <filename>form_1.txt</filename>
            <type>text/plain</type>
            <size>6671</size>
            <attacher name="Darin Fisher (:fishd, Google)">fishd</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMDg3NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAzLTE1ICBEYXJpbiBG
aXNoZXIgIDxkYXJpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSGlzdG9yeUl0ZW0gbm90IHVw
ZGF0ZWQgcHJvcGVybHkgd2hlbiBhIGZvcm0gc3VibWlzc2lvbiBiZWdpbnMgYmVmb3JlIGEKKyAg
ICAgICAgcHJldmlvdXMgZm9ybSBzdWJtaXNzaW9uIGhhcyBmaW5pc2hlZC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2Njg2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogTGF5b3V0VGVzdHMvZmFz
dC9sb2FkZXIvZm9ybS1zdWJtaXNzaW9uLWJlZm9yZS1sb2FkLXtnZXQscG9zdH0uaHRtbAorCisg
ICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
TG9hZGVyOjpsb2FkUG9zdFJlcXVlc3QpOgorCiAyMDEyLTAzLTE1ICBEYXZpZCBMZXZpbiAgPGxl
dmluQGNocm9taXVtLm9yZz4KIAogICAgICAgICBWYXJpb3VzIGF1dG9yZXNpemUgZml4ZXMuCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHJldmlzaW9uIDExMDQwMykK
KysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI2NTcsOCArMjY1NywxNiBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkUG9zdFJlcXVlc3Qo
Y29uc3QKICAgICAgICAgICAgIHRhcmdldEZyYW1lLT5sb2FkZXIoKS0+bG9hZFdpdGhOYXZpZ2F0
aW9uQWN0aW9uKHdvcmtpbmdSZXNvdXJjZVJlcXVlc3QsIGFjdGlvbiwgbG9ja0hpc3RvcnksIGxv
YWRUeXBlLCBmb3JtU3RhdGUucmVsZWFzZSgpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAg
cG9saWN5Q2hlY2tlcigpLT5jaGVja05ld1dpbmRvd1BvbGljeShhY3Rpb24sIEZyYW1lTG9hZGVy
OjpjYWxsQ29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3ksIHdvcmtpbmdSZXNvdXJjZVJl
cXVlc3QsIGZvcm1TdGF0ZS5yZWxlYXNlKCksIGZyYW1lTmFtZSwgdGhpcyk7Ci0gICAgfSBlbHNl
CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gbXVzdCBncmFiIHRoaXMgbm93LCBzaW5jZSB0aGlz
IGxvYWQgbWF5IHN0b3AgdGhlIHByZXZpb3VzIGxvYWQgYW5kIGNsZWFyIHRoaXMgZmxhZworICAg
ICAgICBib29sIGlzUmVkaXJlY3QgPSBtX3F1aWNrUmVkaXJlY3RDb21pbmc7CiAgICAgICAgIGxv
YWRXaXRoTmF2aWdhdGlvbkFjdGlvbih3b3JraW5nUmVzb3VyY2VSZXF1ZXN0LCBhY3Rpb24sIGxv
Y2tIaXN0b3J5LCBsb2FkVHlwZSwgZm9ybVN0YXRlLnJlbGVhc2UoKSk7ICAgIAorICAgICAgICBp
ZiAoaXNSZWRpcmVjdCkgeworICAgICAgICAgICAgbV9xdWlja1JlZGlyZWN0Q29taW5nID0gZmFs
c2U7CisgICAgICAgICAgICBpZiAobV9wcm92aXNpb25hbERvY3VtZW50TG9hZGVyKQorICAgICAg
ICAgICAgICAgIG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlci0+c2V0SXNDbGllbnRSZWRpcmVj
dCh0cnVlKTsKKyAgICAgICAgfQorICAgIH0KIH0KIAogdW5zaWduZWQgbG9uZyBGcmFtZUxvYWRl
cjo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIFN0b3JlZENyZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVycm9yJiBl
cnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSkKSW5k
ZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDExMDg3OSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDEyLTAzLTE1ICBEYXJpbiBGaXNoZXIgIDxkYXJp
bkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSGlzdG9yeUl0ZW0gbm90IHVwZGF0ZWQgcHJvcGVy
bHkgd2hlbiBhIGZvcm0gc3VibWlzc2lvbiBiZWdpbnMgYmVmb3JlIGEKKyAgICAgICAgcHJldmlv
dXMgZm9ybSBzdWJtaXNzaW9uIGhhcyBmaW5pc2hlZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2Njg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2xvYWRlci9mb3JtLXN1Ym1pc3Npb24tYmVm
b3JlLWxvYWQtZ2V0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9sb2FkZXIv
Zm9ybS1zdWJtaXNzaW9uLWJlZm9yZS1sb2FkLWdldC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2xvYWRlci9mb3JtLXN1Ym1pc3Npb24tYmVmb3JlLWxvYWQtcG9zdC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvbG9hZGVyL2Zvcm0tc3VibWlzc2lvbi1iZWZvcmUtbG9h
ZC1wb3N0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbG9hZGVyL3Jlc291cmNlcy9mb3Jt
LXN1Ym1pc3Npb24tYmVmb3JlLWxvYWQtcGFnZTIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9sb2FkZXIvcmVzb3VyY2VzL2Zvcm0tc3VibWlzc2lvbi1iZWZvcmUtbG9hZC1wYWdlMy5odG1s
OiBBZGRlZC4KKwogMjAxMi0wMy0xNSAgTGV2aSBXZWludHJhdWIgIDxsZXZpd0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBnYXJkZW5pbmcuIE5ldyBmbGFreSB0ZXN0cyBhbmQg
bmV3IGZhaWx1cmUgbW9kZXMgZm9yIG9sZCBmbGFreSB0ZXN0cy4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvbG9hZGVyL2Zvcm0tc3VibWlzc2lvbi1iZWZvcmUtbG9hZC1nZXQtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2Zvcm0tc3VibWlzc2lvbi1i
ZWZvcmUtbG9hZC1nZXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9sb2FkZXIvZm9ybS1zdWJtaXNzaW9uLWJlZm9yZS1sb2FkLWdldC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNiBAQAorRG9uZS4KKworPT09PT09PT09PT09PT0gQmFj
ayBGb3J3YXJkIExpc3QgPT09PT09PT09PT09PT0KKyAgICAgICAgKGZpbGUgdGVzdCk6ZmFzdC9o
aXN0b3J5L3Jlc291cmNlcy9mb3JtLXN1Ym1pc3Npb24tYmVmb3JlLWxvYWQtcGFnZTIuaHRtbD8g
ICoqbmF2IHRhcmdldCoqCitjdXJyLT4gIChmaWxlIHRlc3QpOmZhc3QvaGlzdG9yeS9yZXNvdXJj
ZXMvZm9ybS1zdWJtaXNzaW9uLWJlZm9yZS1sb2FkLXBhZ2UzLmh0bWwgICoqbmF2IHRhcmdldCoq
Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvZm9ybS1zdWJtaXNzaW9uLWJlZm9yZS1sb2FkLWdldC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2Zvcm0tc3VibWlzc2lv
bi1iZWZvcmUtbG9hZC1nZXQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
bG9hZGVyL2Zvcm0tc3VibWlzc2lvbi1iZWZvcmUtbG9hZC1nZXQuaHRtbAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwxMCBAQAorPGZvcm0gbWV0aG9kPSJnZXQiIGFjdGlvbj0icmVzb3VyY2VzL2Zv
cm0tc3VibWlzc2lvbi1iZWZvcmUtbG9hZC1wYWdlMi5odG1sIj48L2Zvcm0+Cis8c2NyaXB0Pgor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmNsZWFyQmFja0ZvcndhcmRMaXN0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEJhY2tGb3J3YXJkTGlzdCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cit9Citkb2N1bWVu
dC5mb3Jtc1swXS5zdWJtaXQoKTsKKzwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9s
b2FkZXIvZm9ybS1zdWJtaXNzaW9uLWJlZm9yZS1sb2FkLXBvc3QtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2Zvcm0tc3VibWlzc2lvbi1iZWZvcmUt
bG9hZC1wb3N0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
bG9hZGVyL2Zvcm0tc3VibWlzc2lvbi1iZWZvcmUtbG9hZC1wb3N0LWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw2IEBACitEb25lLgorCis9PT09PT09PT09PT09PSBCYWNrIEZv
cndhcmQgTGlzdCA9PT09PT09PT09PT09PQorICAgICAgICAoZmlsZSB0ZXN0KTpmYXN0L2hpc3Rv
cnkvcmVzb3VyY2VzL2Zvcm0tc3VibWlzc2lvbi1iZWZvcmUtbG9hZC1wYWdlMi5odG1sICAqKm5h
diB0YXJnZXQqKgorY3Vyci0+ICAoZmlsZSB0ZXN0KTpmYXN0L2hpc3RvcnkvcmVzb3VyY2VzL2Zv
cm0tc3VibWlzc2lvbi1iZWZvcmUtbG9hZC1wYWdlMy5odG1sICAqKm5hdiB0YXJnZXQqKgorPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvbG9hZGVyL2Zvcm0tc3VibWlzc2lvbi1iZWZvcmUtbG9hZC1wb3N0Lmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvZm9ybS1zdWJtaXNzaW9uLWJl
Zm9yZS1sb2FkLXBvc3QuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvbG9h
ZGVyL2Zvcm0tc3VibWlzc2lvbi1iZWZvcmUtbG9hZC1wb3N0Lmh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTAgQEAKKzxmb3JtIG1ldGhvZD0icG9zdCIgYWN0aW9uPSJyZXNvdXJjZXMvZm9y
bS1zdWJtaXNzaW9uLWJlZm9yZS1sb2FkLXBhZ2UyLmh0bWwiPjwvZm9ybT4KKzxzY3JpcHQ+Citp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuY2xlYXJCYWNrRm9yd2FyZExpc3QoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QmFja0ZvcndhcmRMaXN0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK30KK2RvY3VtZW50
LmZvcm1zWzBdLnN1Ym1pdCgpOworPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2xv
YWRlci9yZXNvdXJjZXMvZm9ybS1zdWJtaXNzaW9uLWJlZm9yZS1sb2FkLXBhZ2UyLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvcmVzb3VyY2VzL2Zvcm0tc3VibWlz
c2lvbi1iZWZvcmUtbG9hZC1wYWdlMi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9sb2FkZXIvcmVzb3VyY2VzL2Zvcm0tc3VibWlzc2lvbi1iZWZvcmUtbG9hZC1wYWdlMi5o
dG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcgQEAKKzxzY3JpcHQ+CitvbmxvYWQgPSBmdW5j
dGlvbigpIHsKKyAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAgICAgICBsb2NhdGlvbiA9
ICdmb3JtLXN1Ym1pc3Npb24tYmVmb3JlLWxvYWQtcGFnZTMuaHRtbCc7CisgICAgfSwgMCk7Cit9
Cis8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3Jlc291cmNlcy9mb3Jt
LXN1Ym1pc3Npb24tYmVmb3JlLWxvYWQtcGFnZTMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2xvYWRlci9yZXNvdXJjZXMvZm9ybS1zdWJtaXNzaW9uLWJlZm9yZS1sb2FkLXBh
Z2UzLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9yZXNvdXJj
ZXMvZm9ybS1zdWJtaXNzaW9uLWJlZm9yZS1sb2FkLXBhZ2UzLmh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNSBAQAorRG9uZS4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKzwvc2NyaXB0
Pgo=
</data>
<flag name="commit-queue"
          id="135696"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132447</attachid>
            <date>2012-03-16 23:11:03 -0700</date>
            <delta_ts>2012-03-19 14:08:03 -0700</delta_ts>
            <desc>v2 patch</desc>
            <filename>form_2.txt</filename>
            <type>text/plain</type>
            <size>6667</size>
            <attacher name="Darin Fisher (:fishd, Google)">fishd</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMDg3NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAzLTE1ICBEYXJpbiBG
aXNoZXIgIDxkYXJpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSGlzdG9yeUl0ZW0gbm90IHVw
ZGF0ZWQgcHJvcGVybHkgd2hlbiBhIGZvcm0gc3VibWlzc2lvbiBiZWdpbnMgYmVmb3JlIGEKKyAg
ICAgICAgcHJldmlvdXMgZm9ybSBzdWJtaXNzaW9uIGhhcyBmaW5pc2hlZC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2Njg2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogTGF5b3V0VGVzdHMvZmFz
dC9sb2FkZXIvZm9ybS1zdWJtaXNzaW9uLWJlZm9yZS1sb2FkLXtnZXQscG9zdH0uaHRtbAorCisg
ICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
TG9hZGVyOjpsb2FkUG9zdFJlcXVlc3QpOgorCiAyMDEyLTAzLTE1ICBEYXZpZCBMZXZpbiAgPGxl
dmluQGNocm9taXVtLm9yZz4KIAogICAgICAgICBWYXJpb3VzIGF1dG9yZXNpemUgZml4ZXMuCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHJldmlzaW9uIDExMDQwMykK
KysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI2NTcsOCArMjY1NywxNiBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkUG9zdFJlcXVlc3Qo
Y29uc3QKICAgICAgICAgICAgIHRhcmdldEZyYW1lLT5sb2FkZXIoKS0+bG9hZFdpdGhOYXZpZ2F0
aW9uQWN0aW9uKHdvcmtpbmdSZXNvdXJjZVJlcXVlc3QsIGFjdGlvbiwgbG9ja0hpc3RvcnksIGxv
YWRUeXBlLCBmb3JtU3RhdGUucmVsZWFzZSgpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAg
cG9saWN5Q2hlY2tlcigpLT5jaGVja05ld1dpbmRvd1BvbGljeShhY3Rpb24sIEZyYW1lTG9hZGVy
OjpjYWxsQ29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3ksIHdvcmtpbmdSZXNvdXJjZVJl
cXVlc3QsIGZvcm1TdGF0ZS5yZWxlYXNlKCksIGZyYW1lTmFtZSwgdGhpcyk7Ci0gICAgfSBlbHNl
CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gbXVzdCBncmFiIHRoaXMgbm93LCBzaW5jZSB0aGlz
IGxvYWQgbWF5IHN0b3AgdGhlIHByZXZpb3VzIGxvYWQgYW5kIGNsZWFyIHRoaXMgZmxhZworICAg
ICAgICBib29sIGlzUmVkaXJlY3QgPSBtX3F1aWNrUmVkaXJlY3RDb21pbmc7CiAgICAgICAgIGxv
YWRXaXRoTmF2aWdhdGlvbkFjdGlvbih3b3JraW5nUmVzb3VyY2VSZXF1ZXN0LCBhY3Rpb24sIGxv
Y2tIaXN0b3J5LCBsb2FkVHlwZSwgZm9ybVN0YXRlLnJlbGVhc2UoKSk7ICAgIAorICAgICAgICBp
ZiAoaXNSZWRpcmVjdCkgeworICAgICAgICAgICAgbV9xdWlja1JlZGlyZWN0Q29taW5nID0gZmFs
c2U7CisgICAgICAgICAgICBpZiAobV9wcm92aXNpb25hbERvY3VtZW50TG9hZGVyKQorICAgICAg
ICAgICAgICAgIG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlci0+c2V0SXNDbGllbnRSZWRpcmVj
dCh0cnVlKTsKKyAgICAgICAgfQorICAgIH0KIH0KIAogdW5zaWduZWQgbG9uZyBGcmFtZUxvYWRl
cjo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIFN0b3JlZENyZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVycm9yJiBl
cnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSkKSW5k
ZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDExMDg3OSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDEyLTAzLTE1ICBEYXJpbiBGaXNoZXIgIDxkYXJp
bkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSGlzdG9yeUl0ZW0gbm90IHVwZGF0ZWQgcHJvcGVy
bHkgd2hlbiBhIGZvcm0gc3VibWlzc2lvbiBiZWdpbnMgYmVmb3JlIGEKKyAgICAgICAgcHJldmlv
dXMgZm9ybSBzdWJtaXNzaW9uIGhhcyBmaW5pc2hlZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2Njg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2xvYWRlci9mb3JtLXN1Ym1pc3Npb24tYmVm
b3JlLWxvYWQtZ2V0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9sb2FkZXIv
Zm9ybS1zdWJtaXNzaW9uLWJlZm9yZS1sb2FkLWdldC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2xvYWRlci9mb3JtLXN1Ym1pc3Npb24tYmVmb3JlLWxvYWQtcG9zdC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvbG9hZGVyL2Zvcm0tc3VibWlzc2lvbi1iZWZvcmUtbG9h
ZC1wb3N0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbG9hZGVyL3Jlc291cmNlcy9mb3Jt
LXN1Ym1pc3Npb24tYmVmb3JlLWxvYWQtcGFnZTIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9sb2FkZXIvcmVzb3VyY2VzL2Zvcm0tc3VibWlzc2lvbi1iZWZvcmUtbG9hZC1wYWdlMy5odG1s
OiBBZGRlZC4KKwogMjAxMi0wMy0xNSAgTGV2aSBXZWludHJhdWIgIDxsZXZpd0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBnYXJkZW5pbmcuIE5ldyBmbGFreSB0ZXN0cyBhbmQg
bmV3IGZhaWx1cmUgbW9kZXMgZm9yIG9sZCBmbGFreSB0ZXN0cy4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvbG9hZGVyL2Zvcm0tc3VibWlzc2lvbi1iZWZvcmUtbG9hZC1nZXQtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2Zvcm0tc3VibWlzc2lvbi1i
ZWZvcmUtbG9hZC1nZXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9sb2FkZXIvZm9ybS1zdWJtaXNzaW9uLWJlZm9yZS1sb2FkLWdldC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNiBAQAorRG9uZS4KKworPT09PT09PT09PT09PT0gQmFj
ayBGb3J3YXJkIExpc3QgPT09PT09PT09PT09PT0KKyAgICAgICAgKGZpbGUgdGVzdCk6ZmFzdC9s
b2FkZXIvcmVzb3VyY2VzL2Zvcm0tc3VibWlzc2lvbi1iZWZvcmUtbG9hZC1wYWdlMi5odG1sPyAg
KipuYXYgdGFyZ2V0KioKK2N1cnItPiAgKGZpbGUgdGVzdCk6ZmFzdC9sb2FkZXIvcmVzb3VyY2Vz
L2Zvcm0tc3VibWlzc2lvbi1iZWZvcmUtbG9hZC1wYWdlMy5odG1sICAqKm5hdiB0YXJnZXQqKgor
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvbG9hZGVyL2Zvcm0tc3VibWlzc2lvbi1iZWZvcmUtbG9hZC1nZXQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9mb3JtLXN1Ym1pc3Npb24t
YmVmb3JlLWxvYWQtZ2V0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2xv
YWRlci9mb3JtLXN1Ym1pc3Npb24tYmVmb3JlLWxvYWQtZ2V0Lmh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTAgQEAKKzxmb3JtIG1ldGhvZD0iZ2V0IiBhY3Rpb249InJlc291cmNlcy9mb3Jt
LXN1Ym1pc3Npb24tYmVmb3JlLWxvYWQtcGFnZTIuaHRtbCI+PC9mb3JtPgorPHNjcmlwdD4KK2lm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5jbGVhckJhY2tGb3J3YXJkTGlzdCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBC
YWNrRm9yd2FyZExpc3QoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorZG9jdW1lbnQu
Zm9ybXNbMF0uc3VibWl0KCk7Cis8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbG9h
ZGVyL2Zvcm0tc3VibWlzc2lvbi1iZWZvcmUtbG9hZC1wb3N0LWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9mb3JtLXN1Ym1pc3Npb24tYmVmb3JlLWxv
YWQtcG9zdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2xv
YWRlci9mb3JtLXN1Ym1pc3Npb24tYmVmb3JlLWxvYWQtcG9zdC1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsNiBAQAorRG9uZS4KKworPT09PT09PT09PT09PT0gQmFjayBGb3J3
YXJkIExpc3QgPT09PT09PT09PT09PT0KKyAgICAgICAgKGZpbGUgdGVzdCk6ZmFzdC9sb2FkZXIv
cmVzb3VyY2VzL2Zvcm0tc3VibWlzc2lvbi1iZWZvcmUtbG9hZC1wYWdlMi5odG1sICAqKm5hdiB0
YXJnZXQqKgorY3Vyci0+ICAoZmlsZSB0ZXN0KTpmYXN0L2xvYWRlci9yZXNvdXJjZXMvZm9ybS1z
dWJtaXNzaW9uLWJlZm9yZS1sb2FkLXBhZ2UzLmh0bWwgICoqbmF2IHRhcmdldCoqCis9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9sb2FkZXIvZm9ybS1zdWJtaXNzaW9uLWJlZm9yZS1sb2FkLXBvc3QuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9mb3JtLXN1Ym1pc3Npb24tYmVmb3Jl
LWxvYWQtcG9zdC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIv
Zm9ybS1zdWJtaXNzaW9uLWJlZm9yZS1sb2FkLXBvc3QuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwxMCBAQAorPGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249InJlc291cmNlcy9mb3JtLXN1
Ym1pc3Npb24tYmVmb3JlLWxvYWQtcGFnZTIuaHRtbCI+PC9mb3JtPgorPHNjcmlwdD4KK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5j
bGVhckJhY2tGb3J3YXJkTGlzdCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBCYWNr
Rm9yd2FyZExpc3QoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorZG9jdW1lbnQuZm9y
bXNbMF0uc3VibWl0KCk7Cis8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbG9hZGVy
L3Jlc291cmNlcy9mb3JtLXN1Ym1pc3Npb24tYmVmb3JlLWxvYWQtcGFnZTIuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9yZXNvdXJjZXMvZm9ybS1zdWJtaXNzaW9u
LWJlZm9yZS1sb2FkLXBhZ2UyLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2xvYWRlci9yZXNvdXJjZXMvZm9ybS1zdWJtaXNzaW9uLWJlZm9yZS1sb2FkLXBhZ2UyLmh0bWwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNyBAQAorPHNjcmlwdD4KK29ubG9hZCA9IGZ1bmN0aW9u
KCkgeworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgIGxvY2F0aW9uID0gJ2Zv
cm0tc3VibWlzc2lvbi1iZWZvcmUtbG9hZC1wYWdlMy5odG1sJzsKKyAgICB9LCAwKTsKK30KKzwv
c2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvcmVzb3VyY2VzL2Zvcm0tc3Vi
bWlzc2lvbi1iZWZvcmUtbG9hZC1wYWdlMy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvbG9hZGVyL3Jlc291cmNlcy9mb3JtLXN1Ym1pc3Npb24tYmVmb3JlLWxvYWQtcGFnZTMu
aHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL3Jlc291cmNlcy9m
b3JtLXN1Ym1pc3Npb24tYmVmb3JlLWxvYWQtcGFnZTMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw1IEBACitEb25lLgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132665</attachid>
            <date>2012-03-19 14:08:03 -0700</date>
            <delta_ts>2012-04-02 13:14:24 -0700</delta_ts>
            <desc>v3 patch</desc>
            <filename>form_3.txt</filename>
            <type>text/plain</type>
            <size>6986</size>
            <attacher name="Darin Fisher (:fishd, Google)">fishd</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExMDg3NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAzLTE1ICBEYXJpbiBG
aXNoZXIgIDxkYXJpbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSGlzdG9yeUl0ZW0gbm90IHVw
ZGF0ZWQgcHJvcGVybHkgd2hlbiBhIGZvcm0gc3VibWlzc2lvbiBiZWdpbnMgYmVmb3JlIGEKKyAg
ICAgICAgcHJldmlvdXMgZm9ybSBzdWJtaXNzaW9uIGhhcyBmaW5pc2hlZC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2Njg2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogTGF5b3V0VGVzdHMvZmFz
dC9sb2FkZXIvZm9ybS1zdWJtaXNzaW9uLWJlZm9yZS1sb2FkLXtnZXQscG9zdH0uaHRtbAorCisg
ICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
TG9hZGVyOjpsb2FkUG9zdFJlcXVlc3QpOgorCiAyMDEyLTAzLTE1ICBEYXZpZCBMZXZpbiAgPGxl
dmluQGNocm9taXVtLm9yZz4KIAogICAgICAgICBWYXJpb3VzIGF1dG9yZXNpemUgZml4ZXMuCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHJldmlzaW9uIDExMDQwMykK
KysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI2NTcsOCArMjY1NywxNiBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkUG9zdFJlcXVlc3Qo
Y29uc3QKICAgICAgICAgICAgIHRhcmdldEZyYW1lLT5sb2FkZXIoKS0+bG9hZFdpdGhOYXZpZ2F0
aW9uQWN0aW9uKHdvcmtpbmdSZXNvdXJjZVJlcXVlc3QsIGFjdGlvbiwgbG9ja0hpc3RvcnksIGxv
YWRUeXBlLCBmb3JtU3RhdGUucmVsZWFzZSgpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAg
cG9saWN5Q2hlY2tlcigpLT5jaGVja05ld1dpbmRvd1BvbGljeShhY3Rpb24sIEZyYW1lTG9hZGVy
OjpjYWxsQ29udGludWVMb2FkQWZ0ZXJOZXdXaW5kb3dQb2xpY3ksIHdvcmtpbmdSZXNvdXJjZVJl
cXVlc3QsIGZvcm1TdGF0ZS5yZWxlYXNlKCksIGZyYW1lTmFtZSwgdGhpcyk7Ci0gICAgfSBlbHNl
CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gbXVzdCBncmFiIHRoaXMgbm93LCBzaW5jZSB0aGlz
IGxvYWQgbWF5IHN0b3AgdGhlIHByZXZpb3VzIGxvYWQgYW5kIGNsZWFyIHRoaXMgZmxhZworICAg
ICAgICBib29sIGlzUmVkaXJlY3QgPSBtX3F1aWNrUmVkaXJlY3RDb21pbmc7CiAgICAgICAgIGxv
YWRXaXRoTmF2aWdhdGlvbkFjdGlvbih3b3JraW5nUmVzb3VyY2VSZXF1ZXN0LCBhY3Rpb24sIGxv
Y2tIaXN0b3J5LCBsb2FkVHlwZSwgZm9ybVN0YXRlLnJlbGVhc2UoKSk7ICAgIAorICAgICAgICBp
ZiAoaXNSZWRpcmVjdCkgeworICAgICAgICAgICAgbV9xdWlja1JlZGlyZWN0Q29taW5nID0gZmFs
c2U7CisgICAgICAgICAgICBpZiAobV9wcm92aXNpb25hbERvY3VtZW50TG9hZGVyKQorICAgICAg
ICAgICAgICAgIG1fcHJvdmlzaW9uYWxEb2N1bWVudExvYWRlci0+c2V0SXNDbGllbnRSZWRpcmVj
dCh0cnVlKTsKKyAgICAgICAgfQorICAgIH0KIH0KIAogdW5zaWduZWQgbG9uZyBGcmFtZUxvYWRl
cjo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIFN0b3JlZENyZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVycm9yJiBl
cnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSkKSW5k
ZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDExMDg3OSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDEyLTAzLTE1ICBEYXJpbiBGaXNoZXIgIDxkYXJp
bkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSGlzdG9yeUl0ZW0gbm90IHVwZGF0ZWQgcHJvcGVy
bHkgd2hlbiBhIGZvcm0gc3VibWlzc2lvbiBiZWdpbnMgYmVmb3JlIGEKKyAgICAgICAgcHJldmlv
dXMgZm9ybSBzdWJtaXNzaW9uIGhhcyBmaW5pc2hlZC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2Njg2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2xvYWRlci9mb3JtLXN1Ym1pc3Npb24tYmVm
b3JlLWxvYWQtZ2V0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9sb2FkZXIv
Zm9ybS1zdWJtaXNzaW9uLWJlZm9yZS1sb2FkLWdldC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2xvYWRlci9mb3JtLXN1Ym1pc3Npb24tYmVmb3JlLWxvYWQtcG9zdC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvbG9hZGVyL2Zvcm0tc3VibWlzc2lvbi1iZWZvcmUtbG9h
ZC1wb3N0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbG9hZGVyL3Jlc291cmNlcy9mb3Jt
LXN1Ym1pc3Npb24tYmVmb3JlLWxvYWQtcGFnZTIuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9sb2FkZXIvcmVzb3VyY2VzL2Zvcm0tc3VibWlzc2lvbi1iZWZvcmUtbG9hZC1wYWdlMy5odG1s
OiBBZGRlZC4KKwogMjAxMi0wMy0xNSAgTGV2aSBXZWludHJhdWIgIDxsZXZpd0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBnYXJkZW5pbmcuIE5ldyBmbGFreSB0ZXN0cyBhbmQg
bmV3IGZhaWx1cmUgbW9kZXMgZm9yIG9sZCBmbGFreSB0ZXN0cy4KSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvbG9hZGVyL2Zvcm0tc3VibWlzc2lvbi1iZWZvcmUtbG9hZC1nZXQtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2Zvcm0tc3VibWlzc2lvbi1i
ZWZvcmUtbG9hZC1nZXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9sb2FkZXIvZm9ybS1zdWJtaXNzaW9uLWJlZm9yZS1sb2FkLWdldC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNiBAQAorRG9uZS4KKworPT09PT09PT09PT09PT0gQmFj
ayBGb3J3YXJkIExpc3QgPT09PT09PT09PT09PT0KKyAgICAgICAgKGZpbGUgdGVzdCk6ZmFzdC9s
b2FkZXIvcmVzb3VyY2VzL2Zvcm0tc3VibWlzc2lvbi1iZWZvcmUtbG9hZC1wYWdlMi5odG1sPyAg
KipuYXYgdGFyZ2V0KioKK2N1cnItPiAgKGZpbGUgdGVzdCk6ZmFzdC9sb2FkZXIvcmVzb3VyY2Vz
L2Zvcm0tc3VibWlzc2lvbi1iZWZvcmUtbG9hZC1wYWdlMy5odG1sICAqKm5hdiB0YXJnZXQqKgor
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvbG9hZGVyL2Zvcm0tc3VibWlzc2lvbi1iZWZvcmUtbG9hZC1nZXQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9mb3JtLXN1Ym1pc3Npb24t
YmVmb3JlLWxvYWQtZ2V0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2xv
YWRlci9mb3JtLXN1Ym1pc3Npb24tYmVmb3JlLWxvYWQtZ2V0Lmh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTIgQEAKKzxmb3JtIG1ldGhvZD0iZ2V0IiBhY3Rpb249InJlc291cmNlcy9mb3Jt
LXN1Ym1pc3Npb24tYmVmb3JlLWxvYWQtcGFnZTIuaHRtbCI+PC9mb3JtPgorPHNjcmlwdD4KK2lm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5jbGVhckJhY2tGb3J3YXJkTGlzdCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBC
YWNrRm9yd2FyZExpc3QoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorLy8gVGVzdCB0
aGF0IHN1Ym1pdHRpbmcgdGhlIGZvcm0sIHVzaW5nIGEgR0VUIG1ldGhvZCwgYmVmb3JlIHRoZSAn
bG9hZCcgZXZlbnQKKy8vIHJlc3VsdHMgaW4gdGhlIGN1cnJlbnQgc2Vzc2lvbiBoaXN0b3J5IGl0
ZW0gYmVpbmcgcmVwbGFjZWQgYnkgdGhlIG5leHQgb25lLgorZG9jdW1lbnQuZm9ybXNbMF0uc3Vi
bWl0KCk7Cis8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbG9hZGVyL2Zvcm0tc3Vi
bWlzc2lvbi1iZWZvcmUtbG9hZC1wb3N0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2xvYWRlci9mb3JtLXN1Ym1pc3Npb24tYmVmb3JlLWxvYWQtcG9zdC1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9mb3JtLXN1
Ym1pc3Npb24tYmVmb3JlLWxvYWQtcG9zdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNiBAQAorRG9uZS4KKworPT09PT09PT09PT09PT0gQmFjayBGb3J3YXJkIExpc3QgPT09
PT09PT09PT09PT0KKyAgICAgICAgKGZpbGUgdGVzdCk6ZmFzdC9sb2FkZXIvcmVzb3VyY2VzL2Zv
cm0tc3VibWlzc2lvbi1iZWZvcmUtbG9hZC1wYWdlMi5odG1sICAqKm5hdiB0YXJnZXQqKgorY3Vy
ci0+ICAoZmlsZSB0ZXN0KTpmYXN0L2xvYWRlci9yZXNvdXJjZXMvZm9ybS1zdWJtaXNzaW9uLWJl
Zm9yZS1sb2FkLXBhZ2UzLmh0bWwgICoqbmF2IHRhcmdldCoqCis9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9sb2Fk
ZXIvZm9ybS1zdWJtaXNzaW9uLWJlZm9yZS1sb2FkLXBvc3QuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2xvYWRlci9mb3JtLXN1Ym1pc3Npb24tYmVmb3JlLWxvYWQtcG9zdC5o
dG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvZm9ybS1zdWJtaXNz
aW9uLWJlZm9yZS1sb2FkLXBvc3QuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMiBAQAor
PGZvcm0gbWV0aG9kPSJwb3N0IiBhY3Rpb249InJlc291cmNlcy9mb3JtLXN1Ym1pc3Npb24tYmVm
b3JlLWxvYWQtcGFnZTIuaHRtbCI+PC9mb3JtPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5jbGVhckJhY2tGb3J3
YXJkTGlzdCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBCYWNrRm9yd2FyZExpc3Qo
KTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQorLy8gVGVzdCB0aGF0IHN1Ym1pdHRpbmcg
dGhlIGZvcm0sIHVzaW5nIGEgUE9TVCBtZXRob2QsIGJlZm9yZSB0aGUgJ2xvYWQnIGV2ZW50Cisv
LyByZXN1bHRzIGluIHRoZSBjdXJyZW50IHNlc3Npb24gaGlzdG9yeSBpdGVtIGJlaW5nIHJlcGxh
Y2VkIGJ5IHRoZSBuZXh0IG9uZS4KK2RvY3VtZW50LmZvcm1zWzBdLnN1Ym1pdCgpOworPC9zY3Jp
cHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9yZXNvdXJjZXMvZm9ybS1zdWJtaXNz
aW9uLWJlZm9yZS1sb2FkLXBhZ2UyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9sb2FkZXIvcmVzb3VyY2VzL2Zvcm0tc3VibWlzc2lvbi1iZWZvcmUtbG9hZC1wYWdlMi5odG1s
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9sb2FkZXIvcmVzb3VyY2VzL2Zvcm0t
c3VibWlzc2lvbi1iZWZvcmUtbG9hZC1wYWdlMi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDcgQEAKKzxzY3JpcHQ+CitvbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICBzZXRUaW1lb3V0KGZ1
bmN0aW9uKCkgeworICAgICAgICBsb2NhdGlvbiA9ICdmb3JtLXN1Ym1pc3Npb24tYmVmb3JlLWxv
YWQtcGFnZTMuaHRtbCc7CisgICAgfSwgMCk7Cit9Cis8L3NjcmlwdD4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvbG9hZGVyL3Jlc291cmNlcy9mb3JtLXN1Ym1pc3Npb24tYmVmb3JlLWxvYWQtcGFn
ZTMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2xvYWRlci9yZXNvdXJjZXMv
Zm9ybS1zdWJtaXNzaW9uLWJlZm9yZS1sb2FkLXBhZ2UzLmh0bWwJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2xvYWRlci9yZXNvdXJjZXMvZm9ybS1zdWJtaXNzaW9uLWJlZm9yZS1s
b2FkLXBhZ2UzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNSBAQAorRG9uZS4KKzxzY3Jp
cHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250
cm9sbGVyLm5vdGlmeURvbmUoKTsKKzwvc2NyaXB0Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>