<?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>86344</bug_id>
          
          <creation_ts>2012-05-14 01:58:01 -0700</creation_ts>
          <short_desc>[BlackBerry] xhr request to non existent file response is 0 and not 404.</short_desc>
          <delta_ts>2012-05-16 04:17:59 -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>WebKit BlackBerry</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Other</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>
          <dependson>86606</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Jason Liu">jasonliuwebkit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dannin</cc>
    
    <cc>joenotcharles</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>staikos</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>622757</commentid>
    <comment_count>0</comment_count>
    <who name="Jason Liu">jasonliuwebkit</who>
    <bug_when>2012-05-14 01:58:01 -0700</bug_when>
    <thetext>Get 2 reponses captured instead of 4
We seem to be ignoring the response when an error code comes back. In this case
response should be 404 not 0

I&apos;m seeing this on the cibc site. Possible root cause to the login issue


&lt;script&gt;
var d = (function () {  
  var xhr = XMLHttpRequest ? new XMLHttpRequest() : 
                             new ActiveXObject(&quot;Microsoft.XMLHTTP&quot;); 
  xhr.open(&quot;HEAD&quot;, &apos;nothing.txt&apos;, true); 
  xhr.onreadystatechange = function(){ 

    console.log(xhr.responseText); 

    console.log(xhr, xhr.status); 

  }; 
  xhr.onerror = function () { 
    error(xhr, xhr.status); 
  }; 
  xhr.send(); 
});
d();
&lt;/script&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622782</commentid>
    <comment_count>1</comment_count>
      <attachid>141678</attachid>
    <who name="Jason Liu">jasonliuwebkit</who>
    <bug_when>2012-05-14 03:21:06 -0700</bug_when>
    <thetext>Created attachment 141678
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622819</commentid>
    <comment_count>2</comment_count>
      <attachid>141678</attachid>
    <who name="George Staikos">staikos</who>
    <bug_when>2012-05-14 04:17:19 -0700</bug_when>
    <thetext>Comment on attachment 141678
Patch

1) Why are you changing a platform independent test and then a platform specific file?
2) Should this really be special cased to HEAD?  Seems like a hack around a deeper problem.  Is the issue really just that HEAD returns no data?  Is this a CURL quirk?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622828</commentid>
    <comment_count>3</comment_count>
    <who name="Jason Liu">jasonliuwebkit</who>
    <bug_when>2012-05-14 04:36:58 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 141678 [details])
&gt; 1) Why are you changing a platform independent test and then a platform specific file?

This test case is written by myself for &quot;[BlackBerry] Missing readyState 2 when a XMLHttpRequest calls xmlhttp.open(&quot;HEAD&quot;,&quot;notExist.html&quot;,true).
    https://bugs.webkit.org/show_bug.cgi?id=83866&quot;

And I think this bug is similar to 83866. Just another point to fix.

&gt; 2) Should this really be special cased to HEAD?  Seems like a hack around a deeper problem.  Is the issue really just that HEAD returns no data?  Is this a CURL quirk?

If it is not HEAD, we can receive data and the response will be sent to webkit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622834</commentid>
    <comment_count>4</comment_count>
    <who name="George Staikos">staikos</who>
    <bug_when>2012-05-14 04:44:27 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 141678 [details] [details])
&gt; &gt; 1) Why are you changing a platform independent test and then a platform specific file?
&gt; 
&gt; This test case is written by myself for &quot;[BlackBerry] Missing readyState 2 when a XMLHttpRequest calls xmlhttp.open(&quot;HEAD&quot;,&quot;notExist.html&quot;,true).
&gt;     https://bugs.webkit.org/show_bug.cgi?id=83866&quot;
&gt; 
&gt; And I think this bug is similar to 83866. Just another point to fix.

  Ok, so the testcase was not quite correct to begin with.  You should maybe be more clear in your commit log.

&gt; &gt; 2) Should this really be special cased to HEAD?  Seems like a hack around a deeper problem.  Is the issue really just that HEAD returns no data?  Is this a CURL quirk?
&gt; 
&gt; If it is not HEAD, we can receive data and the response will be sent to webkit.

   Is HEAD the only method that will behave like this?  It still feels odd to me.  What if HTTP GET or POST truly returns an empty file?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622849</commentid>
    <comment_count>5</comment_count>
    <who name="Jason Liu">jasonliuwebkit</who>
    <bug_when>2012-05-14 05:03:25 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; (In reply to comment #2)
&gt; &gt; &gt; (From update of attachment 141678 [details] [details] [details])
&gt; &gt; &gt; 1) Why are you changing a platform independent test and then a platform specific file?
&gt; &gt; 
&gt; &gt; This test case is written by myself for &quot;[BlackBerry] Missing readyState 2 when a XMLHttpRequest calls xmlhttp.open(&quot;HEAD&quot;,&quot;notExist.html&quot;,true).
&gt; &gt;     https://bugs.webkit.org/show_bug.cgi?id=83866&quot;
&gt; &gt; 
&gt; &gt; And I think this bug is similar to 83866. Just another point to fix.
&gt; 
&gt;   Ok, so the testcase was not quite correct to begin with.  You should maybe be more clear in your commit log.
&gt; 
&gt; &gt; &gt; 2) Should this really be special cased to HEAD?  Seems like a hack around a deeper problem.  Is the issue really just that HEAD returns no data?  Is this a CURL quirk?
&gt; &gt; 
&gt; &gt; If it is not HEAD, we can receive data and the response will be sent to webkit.
&gt; 
&gt;    Is HEAD the only method that will behave like this?  It still feels odd to me.  What if HTTP GET or POST truly returns an empty file?
    If HTTP GET/POST returns an empty file, status code will be 2xx.
    And isError() will be false, So we can send response correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622930</commentid>
    <comment_count>6</comment_count>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2012-05-14 06:47:33 -0700</bug_when>
    <thetext>The updated LayoutTest looks right to me, but I don&apos;t like the webkit change.

If I understand you right:

For a non-existent file, curl is returning 404 for GET  but 0 for HEAD.  I don&apos;t see anything in the spec that says it should be doing this, so it sounds like a curl bug.

For a 0-length file, curl is returning 200 (with no body) for GET, and I can&apos;t tell from this writeup what it&apos;s doing for HEAD.  But I think it should be returning 200 here too. (Obviously with no body.)

So instead of changing NetworkJob, I think we should be converting the 0 to 404 in the platform layer, as soon as it&apos;s returned from libcurl.  And we should file a bug against libcurl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623014</commentid>
    <comment_count>7</comment_count>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2012-05-14 08:35:17 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; If I understand you right:
&gt; 
&gt; For a non-existent file, curl is returning 404 for GET  but 0 for HEAD.  I don&apos;t see anything in the spec that says it should be doing this, so it sounds like a curl bug.

Nevermind, I&apos;m not understanding right.

The problem is in handleNotifyClose:

sendResponseIfNeeded();
if (isClientAvailable()) {
    RecursionGuard guard(m_callingClient);

    if (isError(m_extendedStatusCode) &amp;&amp; !m_dataReceived &amp;&amp; m_handle-&gt;firstRequest().httpMethod() != &quot;HEAD&quot;) {
        String domain = m_extendedStatusCode &lt; 0 ? ResourceError::platformErrorDomain : ResourceError::httpErrorDomain;
        ResourceError error(domain, m_extendedStatusCode, m_response.url().string(), m_response.httpStatusText());
        m_handle-&gt;client()-&gt;didFail(m_handle.get(), error);
    } else
        m_handle-&gt;client()-&gt;didFinishLoading(m_handle.get(), 0);
}

I&apos;m not sure when that &quot;HEAD&quot; check got added, but it needs to match the check in sendResponseIfNeeded, since that gets called immediately beforehand.

The intent is that on error we either call &quot;didFail&quot; with the error message, if an error code was returned but no data, or &quot;didReceiveResponse&quot; followed by &quot;didFinishLoading&quot;, if an error code was returned but there was data to display (such as a custom 404 page).  didReceiveResponse is sent by sendResponseIfNeeded.

So on a HEAD request, which never has data, if a 404 is received we return from sendResponseIfNeeded without calling didReceiveResponse, but then call didFinishLoading.

I guess the HEAD check was added so that didFail is never called on HEAD - it should call didReceiveResponse followed by didFinishLoading even without any data.

And we don&apos;t want to get rid of the didFail branch entirely, because for top-level requests that&apos;s where we format our custom error page.

So the code change looks good to me.  But I think &quot;isError(m_extendedStatusCode) &amp;&amp; !m_dataReceived &amp;&amp; m_handle-&gt;firstRequest().httpMethod() != &quot;HEAD&quot;&quot; should be put into a helper function so that if it&apos;s changed again it only needs to be changed in one place.

Also, are we sure that an XHR &quot;GET&quot; for to a server that returns just 404 with no data doesn&apos;t have the same problem?  Maybe we should also change the &quot;HEAD&quot; check to a check for TargetIsMainFrame || TargetIsSubframe (since we only ever need to call didFail and create an error page for errors that will actually be displayed in a frame), or a check for TargetIsXHR (if didFail has side effects that we should be triggering everywhere expect in an XHR).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623852</commentid>
    <comment_count>8</comment_count>
      <attachid>141904</attachid>
    <who name="Jason Liu">jasonliuwebkit</who>
    <bug_when>2012-05-15 02:52:54 -0700</bug_when>
    <thetext>Created attachment 141904
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623853</commentid>
    <comment_count>9</comment_count>
      <attachid>141905</attachid>
    <who name="Jason Liu">jasonliuwebkit</who>
    <bug_when>2012-05-15 02:56:26 -0700</bug_when>
    <thetext>Created attachment 141905
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>623858</commentid>
    <comment_count>10</comment_count>
    <who name="Jason Liu">jasonliuwebkit</who>
    <bug_when>2012-05-15 03:10:18 -0700</bug_when>
    <thetext>&gt; So the code change looks good to me.  But I think &quot;isError(m_extendedStatusCode) &amp;&amp; !m_dataReceived &amp;&amp; m_handle-&gt;firstRequest().httpMethod() != &quot;HEAD&quot;&quot; should be put into a helper function so that if it&apos;s changed again it only needs to be changed in one place.
&gt; 
&gt; Also, are we sure that an XHR &quot;GET&quot; for to a server that returns just 404 with no data doesn&apos;t have the same problem?  Maybe we should also change the &quot;HEAD&quot; check to a check for TargetIsMainFrame || TargetIsSubframe (since we only ever need to call didFail and create an error page for errors that will actually be displayed in a frame), or a check for TargetIsXHR (if didFail has side effects that we should be triggering everywhere expect in an XHR).

hi,Joe
This is a good suggestion. 
I&apos;ve written function shouldNotifyClientFailed() for this &quot;if&quot; condition sentence. and a new patch attached.

I tested with google&apos;s chrome and Safari.
They don&apos;t treat 404 for &quot;GET&quot; without content as a failure, but we do.
So I think we should only treat (status&lt;0) as a failure to XMLHttpRequest instead of adding &quot;HEAD&quot; check.

Do you think so?

Thanks for your help.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624113</commentid>
    <comment_count>11</comment_count>
    <who name="Joe Mason">joenotcharles</who>
    <bug_when>2012-05-15 08:30:59 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; I tested with google&apos;s chrome and Safari.
&gt; They don&apos;t treat 404 for &quot;GET&quot; without content as a failure, but we do.
&gt; So I think we should only treat (status&lt;0) as a failure to XMLHttpRequest instead of adding &quot;HEAD&quot; check.
&gt; 
&gt; Do you think so?

I agree!

Thanks for checking.  Can you add a cross-platform layout test for that too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625052</commentid>
    <comment_count>12</comment_count>
      <attachid>142172</attachid>
    <who name="Jason Liu">jasonliuwebkit</who>
    <bug_when>2012-05-16 00:17:45 -0700</bug_when>
    <thetext>Created attachment 142172
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625159</commentid>
    <comment_count>13</comment_count>
      <attachid>142172</attachid>
    <who name="George Staikos">staikos</who>
    <bug_when>2012-05-16 02:10:01 -0700</bug_when>
    <thetext>Comment on attachment 142172
Patch

Much better</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625162</commentid>
    <comment_count>14</comment_count>
    <who name="Jason Liu">jasonliuwebkit</who>
    <bug_when>2012-05-16 02:11:58 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 142172 [details])
&gt; Much better

Thank you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625196</commentid>
    <comment_count>15</comment_count>
      <attachid>142172</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-16 02:45:32 -0700</bug_when>
    <thetext>Comment on attachment 142172
Patch

Clearing flags on attachment: 142172

Committed r117246: &lt;http://trac.webkit.org/changeset/117246&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625197</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-16 02:45:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141678</attachid>
            <date>2012-05-14 03:21:06 -0700</date>
            <delta_ts>2012-05-15 02:52:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86344-20120514182104.patch</filename>
            <type>text/plain</type>
            <size>3269</size>
            <attacher name="Jason Liu">jasonliuwebkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2OTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTZhY2ZmZmQ1OTdiYWVh
MzAwNDljYzlmY2U3ODZhOTcwOTM1NTM2YS4uMjcyMTAxYjgzMzg1NTE0NzU5NGJkM2ZjYTJkZDIz
ZjlhZTI0NWY3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA1LTE0ICBKYXNv
biBMaXUgIDxqYXNvbi5saXVAdG9yY2htb2JpbGUuY29tLmNuPgorCisgICAgICAgIFtCbGFja0Jl
cnJ5XSB4aHIgcmVxdWVzdCB0byBub24gZXhpc3RlbnQgZmlsZSByZXNwb25zZSBpcyAwIGFuZCBu
b3QgNDA0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODYzNDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisg
ICAgICAgIFdlIHJlY2VpdmUgNDA0IGZvciBhIFhNTEh0dHBSZXF1ZXN0IHdoaWNoIGNhbGxzIG9w
ZW4oIkhFQUQiLCAibm90RXhpc3QuaHRtbCIsIHRydWUpLgorICAgICAgICBUaGVyZSBhcmUgbm8g
ZGF0YSByZWNlaXZlZCBiZWNhdXNlIGl0cyBtZXRob2QgaXMgSEVBRC4KKyAgICAgICAgVGhpcyBj
YXNlIHNob3VsZCBub3QgdHJlYXRlZCBhcyBhIGZhaWx1cmUuIEFuZCB3ZSBzaG91bGQgc2VuZCBy
ZXNwb25zZSB0byB3ZWJraXQsIHRvby4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LWNoZWNrLWhlYWQtcmVhZHlzdGF0ZS1mb3ItNDA0Lmh0
bWwKKworICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3b3JrSm9iLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtKb2I6OnNlbmRSZXNwb25zZUlmTmVlZGVkKToK
KwogMjAxMi0wNS0xMyAgTm9lbCBHb3Jkb24gIDxub2VsLmdvcmRvbkBnbWFpbC5jb20+CiAKICAg
ICAgICAgW2Nocm9taXVtXSBSZW1vdmUgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMveGJtIGZyb20g
V2ViQ29yZS5neXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
YmxhY2tiZXJyeS9OZXR3b3JrSm9iLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvYmxhY2tiZXJyeS9OZXR3b3JrSm9iLmNwcAppbmRleCA4MzU0YjEwYzEzNDhjYWU1N2I4Zjg3
ZTgyY2E0NjM3ODEyYzhiZWNmLi42YWZiNjg2YTFkNTQzZWY0MzMyMDg5N2I3M2M0MDA2OGRmZDcz
NTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVy
cnkvTmV0d29ya0pvYi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9i
bGFja2JlcnJ5L05ldHdvcmtKb2IuY3BwCkBAIC01NzQsNyArNTc0LDcgQEAgdm9pZCBOZXR3b3Jr
Sm9iOjpzZW5kUmVzcG9uc2VJZk5lZWRlZCgpCiAKICAgICBtX3Jlc3BvbnNlU2VudCA9IHRydWU7
CiAKLSAgICBpZiAoaXNFcnJvcihtX2V4dGVuZGVkU3RhdHVzQ29kZSkgJiYgIW1fZGF0YVJlY2Vp
dmVkKQorICAgIGlmIChpc0Vycm9yKG1fZXh0ZW5kZWRTdGF0dXNDb2RlKSAmJiAhbV9kYXRhUmVj
ZWl2ZWQgJiYgbV9oYW5kbGUtPmZpcnN0UmVxdWVzdCgpLmh0dHBNZXRob2QoKSAhPSAiSEVBRCIp
CiAgICAgICAgIHJldHVybjsKIAogICAgIFN0cmluZyB1cmxGaWxlbmFtZTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwNzk1
ZTYzM2EwOThmOTY2YTViNDZjNjMyODYwNTE2NTJkYWEyYTQ5Li45MDZlZGRjNmVlYjRhYjdkZTg4
ZjFiY2UxZDUzOGVmYjI1NjUwNzdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTItMDUtMTQg
IEphc29uIExpdSAgPGphc29uLmxpdUB0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAgW0Js
YWNrQmVycnldIHhociByZXF1ZXN0IHRvIG5vbiBleGlzdGVudCBmaWxlIHJlc3BvbnNlIGlzIDAg
YW5kIG5vdCA0MDQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04NjM0NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1jaGVjay1oZWFk
LXJlYWR5c3RhdGUtZm9yLTQwNC5odG1sOgorCiAyMDEyLTA1LTEzICBGaWxpcCBQaXpsbyAgPGZw
aXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgREZHIHBlcmZvcm1zIGluY29ycmVjdCBjb25zdGFu
dCBmb2xkaW5nIG9uIGRvdWJsZS10by11aW50MzIgY29udmVyc2lvbiBpbgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1jaGVj
ay1oZWFkLXJlYWR5c3RhdGUtZm9yLTQwNC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1jaGVjay1oZWFkLXJlYWR5c3RhdGUtZm9yLTQw
NC5odG1sCmluZGV4IDg4OTZjOGU4MjQzODU2YjFjYTkyMTFmNzJjYzYwMzc1NzdhMTMxYTYuLjcw
ZjFlYzQ0ZmJiYmVlYmVjNDk0NThiMTc1NjZkMmE0Y2I4MzUxMTMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtY2hlY2staGVh
ZC1yZWFkeXN0YXRlLWZvci00MDQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LWNoZWNrLWhlYWQtcmVhZHlzdGF0ZS1mb3ItNDA0
Lmh0bWwKQEAgLTE0LDcgKzE0LDcgQEAKICAgICB4bWxodHRwLm9ucmVhZHlzdGF0ZWNoYW5nZSA9
IGZ1bmN0aW9uKCkgewogICAgICAgICBpZiAoeG1saHR0cC5yZWFkeVN0YXRlKSB7CiAgICAgICAg
ICAgICByZXMgPSByZXMgKyB4bWxodHRwLnJlYWR5U3RhdGU7Ci0gICAgICAgICAgICBpZihyZXMg
PT0gIjEyNCIpeworICAgICAgICAgICAgaWYocmVzID09ICIxMjQiICYmIHhtbGh0dHAuc3RhdHVz
ID09IDQwNCkgewogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1
bHQnKS5pbm5lclRleHQgPSAiUEFTUyI7CiAKICAgICAgICAgICAgICAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141904</attachid>
            <date>2012-05-15 02:52:54 -0700</date>
            <delta_ts>2012-05-15 02:56:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86344-20120515175252.patch</filename>
            <type>text/plain</type>
            <size>5926</size>
            <attacher name="Jason Liu">jasonliuwebkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2OTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTZhY2ZmZmQ1OTdiYWVh
MzAwNDljYzlmY2U3ODZhOTcwOTM1NTM2YS4uMzcyZmYyM2MwMWQ0ODk0NzQzMjZjZGM1MzdlZTA3
OTdhYTAxMGU2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA1LTE0ICBKYXNv
biBMaXUgIDxqYXNvbi5saXVAdG9yY2htb2JpbGUuY29tLmNuPgorCisgICAgICAgIFtCbGFja0Jl
cnJ5XSB4aHIgcmVxdWVzdCB0byBub24gZXhpc3RlbnQgZmlsZSByZXNwb25zZSBpcyAwIGFuZCBu
b3QgNDA0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODYzNDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
ZSByZWNlaXZlIDQwNCBmb3IgYSBYTUxIdHRwUmVxdWVzdCB3aGljaCBjYWxscyBvcGVuKCJIRUFE
IiwgIm5vdEV4aXN0Lmh0bWwiLCB0cnVlKS4KKyAgICAgICAgVGhlcmUgYXJlIG5vIGRhdGEgcmVj
ZWl2ZWQgYmVjYXVzZSBpdHMgbWV0aG9kIGlzIEhFQUQuCisgICAgICAgIFRoaXMgY2FzZSBzaG91
bGQgbm90IHRyZWF0ZWQgYXMgYSBmYWlsdXJlLgorCisgICAgICAgIEFkZCBzaG91bGROb3RpZnlD
bGllbnRGYWlsZWQoKSB0byBtYWtlIFhNTEh0dHBSZXF1ZXN0IGFzIGEgc3BlY2lhbCBjYXNlLgor
ICAgICAgICBYTUxIdHRwUmVxdWVzdCB3aWxsIGZhaWwgd2hlbiBzdGF0dXMgY29kZSBpcyBzbWFs
bGVyIHRoYW4gemVyby4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L3htbGh0dHByZXF1ZXN0LWNoZWNrLWhlYWQtcmVhZHlzdGF0ZS1mb3ItNDA0Lmh0bWwKKworICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3b3JrSm9iLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok5ldHdvcmtKb2I6OnNlbmRSZXNwb25zZUlmTmVlZGVkKToKKwogMjAxMi0w
NS0xMyAgTm9lbCBHb3Jkb24gIDxub2VsLmdvcmRvbkBnbWFpbC5jb20+CiAKICAgICAgICAgW2No
cm9taXVtXSBSZW1vdmUgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMveGJtIGZyb20gV2ViQ29yZS5n
eXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJy
eS9OZXR3b3JrSm9iLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2ti
ZXJyeS9OZXR3b3JrSm9iLmNwcAppbmRleCA4MzU0YjEwYzEzNDhjYWU1N2I4Zjg3ZTgyY2E0NjM3
ODEyYzhiZWNmLi4xZTgxMTk2MWIxZjRlNzY4MTNkYWY1NzAwNmVlZDU3YmEwOTAwNGI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29y
a0pvYi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5
L05ldHdvcmtKb2IuY3BwCkBAIC00NDksNyArNDQ5LDcgQEAgdm9pZCBOZXR3b3JrSm9iOjpoYW5k
bGVOb3RpZnlDbG9zZShpbnQgc3RhdHVzKQogICAgICAgICBlbHNlIGlmIChpc1VuYXV0aG9yaXpl
ZChtX2V4dGVuZGVkU3RhdHVzQ29kZSkpCiAgICAgICAgICAgICBwdXJnZUNyZWRlbnRpYWxzKCk7
CiAKLSAgICAgICAgaWYgKHNob3VsZE5vdGlmeUNsaWVudEZpbmlzaGVkKCkpIHsKKyAgICAgICAg
aWYgKHNob3VsZFJlbGVhc2VDbGllbnRSZXNvdXJjZSgpKSB7CiAgICAgICAgICAgICBpZiAoaXNS
ZWRpcmVjdChtX2V4dGVuZGVkU3RhdHVzQ29kZSkgJiYgKG1fcmVkaXJlY3RDb3VudCA+PSBzX3Jl
ZGlyZWN0TWF4aW11bSkpCiAgICAgICAgICAgICAgICAgbV9leHRlbmRlZFN0YXR1c0NvZGUgPSBC
bGFja0JlcnJ5OjpQbGF0Zm9ybTo6RmlsdGVyU3RyZWFtOjpTdGF0dXNUb29NYW55UmVkaXJlY3Rz
OwogCkBAIC00NTcsNyArNDU3LDcgQEAgdm9pZCBOZXR3b3JrSm9iOjpoYW5kbGVOb3RpZnlDbG9z
ZShpbnQgc3RhdHVzKQogICAgICAgICAgICAgaWYgKGlzQ2xpZW50QXZhaWxhYmxlKCkpIHsKIAog
ICAgICAgICAgICAgICAgIFJlY3Vyc2lvbkd1YXJkIGd1YXJkKG1fY2FsbGluZ0NsaWVudCk7Ci0g
ICAgICAgICAgICAgICAgaWYgKGlzRXJyb3IobV9leHRlbmRlZFN0YXR1c0NvZGUpICYmICFtX2Rh
dGFSZWNlaXZlZCAmJiBtX2hhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkuaHR0cE1ldGhvZCgpICE9ICJI
RUFEIikgeworICAgICAgICAgICAgICAgIGlmIChzaG91bGROb3RpZnlDbGllbnRGYWlsZWQoKSkg
ewogICAgICAgICAgICAgICAgICAgICBTdHJpbmcgZG9tYWluID0gbV9leHRlbmRlZFN0YXR1c0Nv
ZGUgPCAwID8gUmVzb3VyY2VFcnJvcjo6cGxhdGZvcm1FcnJvckRvbWFpbiA6IFJlc291cmNlRXJy
b3I6Omh0dHBFcnJvckRvbWFpbjsKICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VFcnJvciBl
cnJvcihkb21haW4sIG1fZXh0ZW5kZWRTdGF0dXNDb2RlLCBtX3Jlc3BvbnNlLnVybCgpLnN0cmlu
ZygpLCBtX3Jlc3BvbnNlLmh0dHBTdGF0dXNUZXh0KCkpOwogICAgICAgICAgICAgICAgICAgICBt
X2hhbmRsZS0+Y2xpZW50KCktPmRpZEZhaWwobV9oYW5kbGUuZ2V0KCksIGVycm9yKTsKQEAgLTQ3
Niw3ICs0NzYsNyBAQCB2b2lkIE5ldHdvcmtKb2I6OmhhbmRsZU5vdGlmeUNsb3NlKGludCBzdGF0
dXMpCiAgICAgbV9tdWx0aXBhcnRSZXNwb25zZSA9IG51bGxwdHI7CiB9CiAKLWJvb2wgTmV0d29y
a0pvYjo6c2hvdWxkTm90aWZ5Q2xpZW50RmluaXNoZWQoKQorYm9vbCBOZXR3b3JrSm9iOjpzaG91
bGRSZWxlYXNlQ2xpZW50UmVzb3VyY2UoKQogewogICAgIGlmIChtX3JlZGlyZWN0Q291bnQgPj0g
c19yZWRpcmVjdE1heGltdW0pCiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtNDkwLDYgKzQ5MCwx
MyBAQCBib29sIE5ldHdvcmtKb2I6OnNob3VsZE5vdGlmeUNsaWVudEZpbmlzaGVkKCkKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBOZXR3b3JrSm9iOjpzaG91bGROb3RpZnlDbGllbnRGYWls
ZWQoKSBjb25zdAoreworICAgIGlmIChtX2hhbmRsZS0+Zmlyc3RSZXF1ZXN0KCkudGFyZ2V0VHlw
ZSgpID09IFJlc291cmNlUmVxdWVzdDo6VGFyZ2V0SXNYSFIpCisgICAgICAgIHJldHVybiBtX2V4
dGVuZGVkU3RhdHVzQ29kZSA8IDA7CisgICAgcmV0dXJuIGlzRXJyb3IobV9leHRlbmRlZFN0YXR1
c0NvZGUpICYmICFtX2RhdGFSZWNlaXZlZDsKK30KKwogYm9vbCBOZXR3b3JrSm9iOjpyZXRyeUFz
RlRQRGlyZWN0b3J5KCkKIHsKICAgICBtX25lZWRzUmV0cnlBc0ZUUERpcmVjdG9yeSA9IGZhbHNl
OwpAQCAtNTc0LDcgKzU4MSw3IEBAIHZvaWQgTmV0d29ya0pvYjo6c2VuZFJlc3BvbnNlSWZOZWVk
ZWQoKQogCiAgICAgbV9yZXNwb25zZVNlbnQgPSB0cnVlOwogCi0gICAgaWYgKGlzRXJyb3IobV9l
eHRlbmRlZFN0YXR1c0NvZGUpICYmICFtX2RhdGFSZWNlaXZlZCkKKyAgICBpZiAoc2hvdWxkTm90
aWZ5Q2xpZW50RmFpbGVkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIFN0cmluZyB1cmxGaWxl
bmFtZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2ti
ZXJyeS9OZXR3b3JrSm9iLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNr
YmVycnkvTmV0d29ya0pvYi5oCmluZGV4IDJiYjU1Nzk2MGNmNTJlNjJhNjIzN2Q4ZDMwOTE0ZGY1
ZWE0MjgzZTkuLjExYmQyYWE1OTA4ZjFhOTIxZDRjYzEwNzZiYzdlNWRjZTk1YjNkNWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3b3Jr
Sm9iLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05l
dHdvcmtKb2IuaApAQCAtOTUsNyArOTUsOCBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBzaG91bGRT
ZW5kQ2xpZW50RGF0YSgpIGNvbnN0OwogCi0gICAgYm9vbCBzaG91bGROb3RpZnlDbGllbnRGaW5p
c2hlZCgpOworICAgIGJvb2wgc2hvdWxkUmVsZWFzZUNsaWVudFJlc291cmNlKCk7CisgICAgYm9v
bCBzaG91bGROb3RpZnlDbGllbnRGYWlsZWQoKSBjb25zdDsKIAogICAgIGJvb2wgc2hvdWxkRGVm
ZXJMb2FkaW5nKCkgY29uc3QKICAgICB7CkBAIC0xMzMsNyArMTM0LDcgQEAgcHJpdmF0ZToKIAog
ICAgIHZvaWQgcHVyZ2VDcmVkZW50aWFscygpOwogCi0gICAgYm9vbCBpc0Vycm9yKGludCBzdGF0
dXNDb2RlKQorICAgIGJvb2wgaXNFcnJvcihpbnQgc3RhdHVzQ29kZSkgY29uc3QKICAgICB7CiAg
ICAgICAgIHJldHVybiBzdGF0dXNDb2RlIDwgMCB8fCAoNDAwIDw9IHN0YXR1c0NvZGUgJiYgc3Rh
dHVzQ29kZSA8IDYwMCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDA3OTVlNjMzYTA5OGY5NjZhNWI0NmM2MzI4
NjA1MTY1MmRhYTJhNDkuLjkwNmVkZGM2ZWViNGFiN2RlODhmMWJjZTFkNTM4ZWZiMjU2NTA3N2Eg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMi0wNS0xNCAgSmFzb24gTGl1ICA8amFzb24ubGl1
QHRvcmNobW9iaWxlLmNvbS5jbj4KKworICAgICAgICBbQmxhY2tCZXJyeV0geGhyIHJlcXVlc3Qg
dG8gbm9uIGV4aXN0ZW50IGZpbGUgcmVzcG9uc2UgaXMgMCBhbmQgbm90IDQwNC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MzQ0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LWNoZWNrLWhlYWQtcmVhZHlzdGF0ZS1mb3ItNDA0Lmh0
bWw6CisKIDIwMTItMDUtMTMgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAg
ICAgICBERkcgcGVyZm9ybXMgaW5jb3JyZWN0IGNvbnN0YW50IGZvbGRpbmcgb24gZG91YmxlLXRv
LXVpbnQzMiBjb252ZXJzaW9uIGluCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LWNoZWNrLWhlYWQtcmVhZHlzdGF0ZS1mb3It
NDA0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHBy
ZXF1ZXN0LWNoZWNrLWhlYWQtcmVhZHlzdGF0ZS1mb3ItNDA0Lmh0bWwKaW5kZXggODg5NmM4ZTgy
NDM4NTZiMWNhOTIxMWY3MmNjNjAzNzU3N2ExMzFhNi4uNzBmMWVjNDRmYmJiZWViZWM0OTQ1OGIx
NzU2NmQyYTRjYjgzNTExMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1jaGVjay1oZWFkLXJlYWR5c3RhdGUtZm9yLTQwNC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJl
cXVlc3QtY2hlY2staGVhZC1yZWFkeXN0YXRlLWZvci00MDQuaHRtbApAQCAtMTQsNyArMTQsNyBA
QAogICAgIHhtbGh0dHAub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7CiAgICAgICAg
IGlmICh4bWxodHRwLnJlYWR5U3RhdGUpIHsKICAgICAgICAgICAgIHJlcyA9IHJlcyArIHhtbGh0
dHAucmVhZHlTdGF0ZTsKLSAgICAgICAgICAgIGlmKHJlcyA9PSAiMTI0Iil7CisgICAgICAgICAg
ICBpZihyZXMgPT0gIjEyNCIgJiYgeG1saHR0cC5zdGF0dXMgPT0gNDA0KSB7CiAgICAgICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVyVGV4dCA9ICJQQVNT
IjsKIAogICAgICAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141905</attachid>
            <date>2012-05-15 02:56:26 -0700</date>
            <delta_ts>2012-05-16 00:17:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86344-20120515175623.patch</filename>
            <type>text/plain</type>
            <size>5927</size>
            <attacher name="Jason Liu">jasonliuwebkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2OTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTZhY2ZmZmQ1OTdiYWVh
MzAwNDljYzlmY2U3ODZhOTcwOTM1NTM2YS4uM2E4YTJjYmRmMWNlZDljMmNhYWI4YmMyYzlhOWRh
NzRjODdhNGNmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA1LTE0ICBKYXNv
biBMaXUgIDxqYXNvbi5saXVAdG9yY2htb2JpbGUuY29tLmNuPgorCisgICAgICAgIFtCbGFja0Jl
cnJ5XSB4aHIgcmVxdWVzdCB0byBub24gZXhpc3RlbnQgZmlsZSByZXNwb25zZSBpcyAwIGFuZCBu
b3QgNDA0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODYzNDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
ZSByZWNlaXZlIDQwNCBmb3IgYSBYTUxIdHRwUmVxdWVzdCB3aGljaCBjYWxscyBvcGVuKCJIRUFE
IiwgIm5vdEV4aXN0Lmh0bWwiLCB0cnVlKS4KKyAgICAgICAgVGhlcmUgYXJlIG5vIGRhdGEgcmVj
ZWl2ZWQgYmVjYXVzZSBpdHMgbWV0aG9kIGlzIEhFQUQuCisgICAgICAgIFRoaXMgY2FzZSBzaG91
bGQgbm90IHRyZWF0ZWQgYXMgYSBmYWlsdXJlLgorCisgICAgICAgIEFkZCBzaG91bGROb3RpZnlD
bGllbnRGYWlsZWQoKSB0byB0cmVhdCBYTUxIdHRwUmVxdWVzdCBhcyBhIHNwZWNpYWwgY2FzZS4K
KyAgICAgICAgWE1MSHR0cFJlcXVlc3Qgd2lsbCBmYWlsIHdoZW4gc3RhdHVzIGNvZGUgaXMgc21h
bGxlciB0aGFuIHplcm8uCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC94bWxodHRwcmVxdWVzdC1jaGVjay1oZWFkLXJlYWR5c3RhdGUtZm9yLTQwNC5odG1sCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29ya0pvYi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpOZXR3b3JrSm9iOjpzZW5kUmVzcG9uc2VJZk5lZWRlZCk6CisKIDIwMTIt
MDUtMTMgIE5vZWwgR29yZG9uICA8bm9lbC5nb3Jkb25AZ21haWwuY29tPgogCiAgICAgICAgIFtj
aHJvbWl1bV0gUmVtb3ZlIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL3hibSBmcm9tIFdlYkNvcmUu
Z3lwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVy
cnkvTmV0d29ya0pvYi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNr
YmVycnkvTmV0d29ya0pvYi5jcHAKaW5kZXggODM1NGIxMGMxMzQ4Y2FlNTdiOGY4N2U4MmNhNDYz
NzgxMmM4YmVjZi4uMWU4MTE5NjFiMWY0ZTc2ODEzZGFmNTcwMDZlZWQ1N2JhMDkwMDRiOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdv
cmtKb2IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJy
eS9OZXR3b3JrSm9iLmNwcApAQCAtNDQ5LDcgKzQ0OSw3IEBAIHZvaWQgTmV0d29ya0pvYjo6aGFu
ZGxlTm90aWZ5Q2xvc2UoaW50IHN0YXR1cykKICAgICAgICAgZWxzZSBpZiAoaXNVbmF1dGhvcml6
ZWQobV9leHRlbmRlZFN0YXR1c0NvZGUpKQogICAgICAgICAgICAgcHVyZ2VDcmVkZW50aWFscygp
OwogCi0gICAgICAgIGlmIChzaG91bGROb3RpZnlDbGllbnRGaW5pc2hlZCgpKSB7CisgICAgICAg
IGlmIChzaG91bGRSZWxlYXNlQ2xpZW50UmVzb3VyY2UoKSkgewogICAgICAgICAgICAgaWYgKGlz
UmVkaXJlY3QobV9leHRlbmRlZFN0YXR1c0NvZGUpICYmIChtX3JlZGlyZWN0Q291bnQgPj0gc19y
ZWRpcmVjdE1heGltdW0pKQogICAgICAgICAgICAgICAgIG1fZXh0ZW5kZWRTdGF0dXNDb2RlID0g
QmxhY2tCZXJyeTo6UGxhdGZvcm06OkZpbHRlclN0cmVhbTo6U3RhdHVzVG9vTWFueVJlZGlyZWN0
czsKIApAQCAtNDU3LDcgKzQ1Nyw3IEBAIHZvaWQgTmV0d29ya0pvYjo6aGFuZGxlTm90aWZ5Q2xv
c2UoaW50IHN0YXR1cykKICAgICAgICAgICAgIGlmIChpc0NsaWVudEF2YWlsYWJsZSgpKSB7CiAK
ICAgICAgICAgICAgICAgICBSZWN1cnNpb25HdWFyZCBndWFyZChtX2NhbGxpbmdDbGllbnQpOwot
ICAgICAgICAgICAgICAgIGlmIChpc0Vycm9yKG1fZXh0ZW5kZWRTdGF0dXNDb2RlKSAmJiAhbV9k
YXRhUmVjZWl2ZWQgJiYgbV9oYW5kbGUtPmZpcnN0UmVxdWVzdCgpLmh0dHBNZXRob2QoKSAhPSAi
SEVBRCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoc2hvdWxkTm90aWZ5Q2xpZW50RmFpbGVkKCkp
IHsKICAgICAgICAgICAgICAgICAgICAgU3RyaW5nIGRvbWFpbiA9IG1fZXh0ZW5kZWRTdGF0dXND
b2RlIDwgMCA/IFJlc291cmNlRXJyb3I6OnBsYXRmb3JtRXJyb3JEb21haW4gOiBSZXNvdXJjZUVy
cm9yOjpodHRwRXJyb3JEb21haW47CiAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlRXJyb3Ig
ZXJyb3IoZG9tYWluLCBtX2V4dGVuZGVkU3RhdHVzQ29kZSwgbV9yZXNwb25zZS51cmwoKS5zdHJp
bmcoKSwgbV9yZXNwb25zZS5odHRwU3RhdHVzVGV4dCgpKTsKICAgICAgICAgICAgICAgICAgICAg
bV9oYW5kbGUtPmNsaWVudCgpLT5kaWRGYWlsKG1faGFuZGxlLmdldCgpLCBlcnJvcik7CkBAIC00
NzYsNyArNDc2LDcgQEAgdm9pZCBOZXR3b3JrSm9iOjpoYW5kbGVOb3RpZnlDbG9zZShpbnQgc3Rh
dHVzKQogICAgIG1fbXVsdGlwYXJ0UmVzcG9uc2UgPSBudWxscHRyOwogfQogCi1ib29sIE5ldHdv
cmtKb2I6OnNob3VsZE5vdGlmeUNsaWVudEZpbmlzaGVkKCkKK2Jvb2wgTmV0d29ya0pvYjo6c2hv
dWxkUmVsZWFzZUNsaWVudFJlc291cmNlKCkKIHsKICAgICBpZiAobV9yZWRpcmVjdENvdW50ID49
IHNfcmVkaXJlY3RNYXhpbXVtKQogICAgICAgICByZXR1cm4gdHJ1ZTsKQEAgLTQ5MCw2ICs0OTAs
MTMgQEAgYm9vbCBOZXR3b3JrSm9iOjpzaG91bGROb3RpZnlDbGllbnRGaW5pc2hlZCgpCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgTmV0d29ya0pvYjo6c2hvdWxkTm90aWZ5Q2xpZW50RmFp
bGVkKCkgY29uc3QKK3sKKyAgICBpZiAobV9oYW5kbGUtPmZpcnN0UmVxdWVzdCgpLnRhcmdldFR5
cGUoKSA9PSBSZXNvdXJjZVJlcXVlc3Q6OlRhcmdldElzWEhSKQorICAgICAgICByZXR1cm4gbV9l
eHRlbmRlZFN0YXR1c0NvZGUgPCAwOworICAgIHJldHVybiBpc0Vycm9yKG1fZXh0ZW5kZWRTdGF0
dXNDb2RlKSAmJiAhbV9kYXRhUmVjZWl2ZWQ7Cit9CisKIGJvb2wgTmV0d29ya0pvYjo6cmV0cnlB
c0ZUUERpcmVjdG9yeSgpCiB7CiAgICAgbV9uZWVkc1JldHJ5QXNGVFBEaXJlY3RvcnkgPSBmYWxz
ZTsKQEAgLTU3NCw3ICs1ODEsNyBAQCB2b2lkIE5ldHdvcmtKb2I6OnNlbmRSZXNwb25zZUlmTmVl
ZGVkKCkKIAogICAgIG1fcmVzcG9uc2VTZW50ID0gdHJ1ZTsKIAotICAgIGlmIChpc0Vycm9yKG1f
ZXh0ZW5kZWRTdGF0dXNDb2RlKSAmJiAhbV9kYXRhUmVjZWl2ZWQpCisgICAgaWYgKHNob3VsZE5v
dGlmeUNsaWVudEZhaWxlZCgpKQogICAgICAgICByZXR1cm47CiAKICAgICBTdHJpbmcgdXJsRmls
ZW5hbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNr
YmVycnkvTmV0d29ya0pvYi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFj
a2JlcnJ5L05ldHdvcmtKb2IuaAppbmRleCAyYmI1NTc5NjBjZjUyZTYyYTYyMzdkOGQzMDkxNGRm
NWVhNDI4M2U5Li4xMWJkMmFhNTkwOGYxYTkyMWQ0Y2MxMDc2YmM3ZTVkY2U5NWIzZDVkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvTmV0d29y
a0pvYi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9O
ZXR3b3JrSm9iLmgKQEAgLTk1LDcgKzk1LDggQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgc2hvdWxk
U2VuZENsaWVudERhdGEoKSBjb25zdDsKIAotICAgIGJvb2wgc2hvdWxkTm90aWZ5Q2xpZW50Rmlu
aXNoZWQoKTsKKyAgICBib29sIHNob3VsZFJlbGVhc2VDbGllbnRSZXNvdXJjZSgpOworICAgIGJv
b2wgc2hvdWxkTm90aWZ5Q2xpZW50RmFpbGVkKCkgY29uc3Q7CiAKICAgICBib29sIHNob3VsZERl
ZmVyTG9hZGluZygpIGNvbnN0CiAgICAgewpAQCAtMTMzLDcgKzEzNCw3IEBAIHByaXZhdGU6CiAK
ICAgICB2b2lkIHB1cmdlQ3JlZGVudGlhbHMoKTsKIAotICAgIGJvb2wgaXNFcnJvcihpbnQgc3Rh
dHVzQ29kZSkKKyAgICBib29sIGlzRXJyb3IoaW50IHN0YXR1c0NvZGUpIGNvbnN0CiAgICAgewog
ICAgICAgICByZXR1cm4gc3RhdHVzQ29kZSA8IDAgfHwgKDQwMCA8PSBzdGF0dXNDb2RlICYmIHN0
YXR1c0NvZGUgPCA2MDApOwogICAgIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwNzk1ZTYzM2EwOThmOTY2YTViNDZjNjMy
ODYwNTE2NTJkYWEyYTQ5Li45MDZlZGRjNmVlYjRhYjdkZTg4ZjFiY2UxZDUzOGVmYjI1NjUwNzdh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTItMDUtMTQgIEphc29uIExpdSAgPGphc29uLmxp
dUB0b3JjaG1vYmlsZS5jb20uY24+CisKKyAgICAgICAgW0JsYWNrQmVycnldIHhociByZXF1ZXN0
IHRvIG5vbiBleGlzdGVudCBmaWxlIHJlc3BvbnNlIGlzIDAgYW5kIG5vdCA0MDQuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjM0NAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1jaGVjay1oZWFkLXJlYWR5c3RhdGUtZm9yLTQwNC5o
dG1sOgorCiAyMDEyLTA1LTEzICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAg
ICAgICAgREZHIHBlcmZvcm1zIGluY29ycmVjdCBjb25zdGFudCBmb2xkaW5nIG9uIGRvdWJsZS10
by11aW50MzIgY29udmVyc2lvbiBpbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1jaGVjay1oZWFkLXJlYWR5c3RhdGUtZm9y
LTQwNC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRw
cmVxdWVzdC1jaGVjay1oZWFkLXJlYWR5c3RhdGUtZm9yLTQwNC5odG1sCmluZGV4IDg4OTZjOGU4
MjQzODU2YjFjYTkyMTFmNzJjYzYwMzc1NzdhMTMxYTYuLjcwZjFlYzQ0ZmJiYmVlYmVjNDk0NThi
MTc1NjZkMmE0Y2I4MzUxMTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtY2hlY2staGVhZC1yZWFkeXN0YXRlLWZvci00MDQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHBy
ZXF1ZXN0LWNoZWNrLWhlYWQtcmVhZHlzdGF0ZS1mb3ItNDA0Lmh0bWwKQEAgLTE0LDcgKzE0LDcg
QEAKICAgICB4bWxodHRwLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgewogICAgICAg
ICBpZiAoeG1saHR0cC5yZWFkeVN0YXRlKSB7CiAgICAgICAgICAgICByZXMgPSByZXMgKyB4bWxo
dHRwLnJlYWR5U3RhdGU7Ci0gICAgICAgICAgICBpZihyZXMgPT0gIjEyNCIpeworICAgICAgICAg
ICAgaWYocmVzID09ICIxMjQiICYmIHhtbGh0dHAuc3RhdHVzID09IDQwNCkgewogICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5pbm5lclRleHQgPSAiUEFT
UyI7CiAKICAgICAgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142172</attachid>
            <date>2012-05-16 00:17:45 -0700</date>
            <delta_ts>2012-05-16 02:45:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86344-20120516151741.patch</filename>
            <type>text/plain</type>
            <size>8822</size>
            <attacher name="Jason Liu">jasonliuwebkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2OTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTZhY2ZmZmQ1OTdiYWVh
MzAwNDljYzlmY2U3ODZhOTcwOTM1NTM2YS4uZjViMTk4YmFkNzM5YmFiY2E0YjUwNTE1OTAyMDk1
NzllZGNjOGU2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTA1LTE0ICBKYXNv
biBMaXUgIDxqYXNvbi5saXVAdG9yY2htb2JpbGUuY29tLmNuPgorCisgICAgICAgIFtCbGFja0Jl
cnJ5XSB4aHIgcmVxdWVzdCB0byBub24gZXhpc3RlbnQgZmlsZSByZXNwb25zZSBpcyAwIGFuZCBu
b3QgNDA0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODYzNDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBO
ZXR3b3JrSm9iIHJlY2VpdmVzIDQwNCBmb3IgYSBYTUxIdHRwUmVxdWVzdCB3aGljaCBjYWxscyBv
cGVuKCJIRUFEIiwgIm5vdEV4aXN0Lmh0bWwiLCB0cnVlKS4KKyAgICAgICAgVGhlcmUgYXJlIG5v
IGRhdGEgcmVjZWl2ZWQgYmVjYXVzZSBpdHMgbWV0aG9kIGlzIEhFQUQuCisgICAgICAgIFRoaXMg
Y2FzZSBzaG91bGQgbm90IGJlIHRyZWF0ZWQgYXMgYSBmYWlsdXJlLgorCisgICAgICAgIEFkZCBz
aG91bGROb3RpZnlDbGllbnRGYWlsZWQoKSB0byB0cmVhdCBYTUxIdHRwUmVxdWVzdCBhcyBhIHNw
ZWNpYWwgY2FzZS4KKyAgICAgICAgWE1MSHR0cFJlcXVlc3Qgd2lsbCBmYWlsIHdoZW4gc3RhdHVz
IGNvZGUgaXMgc21hbGxlciB0aGFuIHplcm8uCisKKyAgICAgICAgSWYgd2UgdXNlICJHRVQiIGFu
ZCByZWNlaXZlIDQwNCB3aXRob3V0IGJvZHksIE5ldHdvcmtKb2Igd29uJ3QgZ28gdGhyb3VnaCBm
YWlsaW5nIGNvZGUgcGF0aCwgdG9vLgorICAgICAgICBTbyBhZGQgaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC94bWxodHRwcmVxdWVzdC1jaGVjay1nZXQtcmVhZHlzdGF0ZS1mb3ItNDA0LXdpdGhv
dXQtYm9keS5odG1sCisgICAgICAgIHRvIGNoZWNrIHRoaXMgY2FzZS4KKworICAgICAgICBUZXN0
OiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LWNoZWNrLWhlYWQtcmVh
ZHlzdGF0ZS1mb3ItNDA0Lmh0bWwKKyAgICAgICAgICAgICAgaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC94bWxodHRwcmVxdWVzdC1jaGVjay1nZXQtcmVhZHlzdGF0ZS1mb3ItNDA0LXdpdGhvdXQt
Ym9keS5odG1sCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtK
b2IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya0pvYjo6c2VuZFJlc3BvbnNlSWZOZWVk
ZWQpOgorCiAyMDEyLTA1LTEzICBOb2VsIEdvcmRvbiAgPG5vZWwuZ29yZG9uQGdtYWlsLmNvbT4K
IAogICAgICAgICBbY2hyb21pdW1dIFJlbW92ZSBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy94Ym0g
ZnJvbSBXZWJDb3JlLmd5cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9ibGFja2JlcnJ5L05ldHdvcmtKb2IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtKb2IuY3BwCmluZGV4IDgzNTRiMTBjMTM0OGNhZTU3
YjhmODdlODJjYTQ2Mzc4MTJjOGJlY2YuLjFlODExOTYxYjFmNGU3NjgxM2RhZjU3MDA2ZWVkNTdi
YTA5MDA0YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxh
Y2tiZXJyeS9OZXR3b3JrSm9iLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2JsYWNrYmVycnkvTmV0d29ya0pvYi5jcHAKQEAgLTQ0OSw3ICs0NDksNyBAQCB2b2lkIE5l
dHdvcmtKb2I6OmhhbmRsZU5vdGlmeUNsb3NlKGludCBzdGF0dXMpCiAgICAgICAgIGVsc2UgaWYg
KGlzVW5hdXRob3JpemVkKG1fZXh0ZW5kZWRTdGF0dXNDb2RlKSkKICAgICAgICAgICAgIHB1cmdl
Q3JlZGVudGlhbHMoKTsKIAotICAgICAgICBpZiAoc2hvdWxkTm90aWZ5Q2xpZW50RmluaXNoZWQo
KSkgeworICAgICAgICBpZiAoc2hvdWxkUmVsZWFzZUNsaWVudFJlc291cmNlKCkpIHsKICAgICAg
ICAgICAgIGlmIChpc1JlZGlyZWN0KG1fZXh0ZW5kZWRTdGF0dXNDb2RlKSAmJiAobV9yZWRpcmVj
dENvdW50ID49IHNfcmVkaXJlY3RNYXhpbXVtKSkKICAgICAgICAgICAgICAgICBtX2V4dGVuZGVk
U3RhdHVzQ29kZSA9IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpGaWx0ZXJTdHJlYW06OlN0YXR1c1Rv
b01hbnlSZWRpcmVjdHM7CiAKQEAgLTQ1Nyw3ICs0NTcsNyBAQCB2b2lkIE5ldHdvcmtKb2I6Omhh
bmRsZU5vdGlmeUNsb3NlKGludCBzdGF0dXMpCiAgICAgICAgICAgICBpZiAoaXNDbGllbnRBdmFp
bGFibGUoKSkgewogCiAgICAgICAgICAgICAgICAgUmVjdXJzaW9uR3VhcmQgZ3VhcmQobV9jYWxs
aW5nQ2xpZW50KTsKLSAgICAgICAgICAgICAgICBpZiAoaXNFcnJvcihtX2V4dGVuZGVkU3RhdHVz
Q29kZSkgJiYgIW1fZGF0YVJlY2VpdmVkICYmIG1faGFuZGxlLT5maXJzdFJlcXVlc3QoKS5odHRw
TWV0aG9kKCkgIT0gIkhFQUQiKSB7CisgICAgICAgICAgICAgICAgaWYgKHNob3VsZE5vdGlmeUNs
aWVudEZhaWxlZCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIFN0cmluZyBkb21haW4gPSBtX2V4
dGVuZGVkU3RhdHVzQ29kZSA8IDAgPyBSZXNvdXJjZUVycm9yOjpwbGF0Zm9ybUVycm9yRG9tYWlu
IDogUmVzb3VyY2VFcnJvcjo6aHR0cEVycm9yRG9tYWluOwogICAgICAgICAgICAgICAgICAgICBS
ZXNvdXJjZUVycm9yIGVycm9yKGRvbWFpbiwgbV9leHRlbmRlZFN0YXR1c0NvZGUsIG1fcmVzcG9u
c2UudXJsKCkuc3RyaW5nKCksIG1fcmVzcG9uc2UuaHR0cFN0YXR1c1RleHQoKSk7CiAgICAgICAg
ICAgICAgICAgICAgIG1faGFuZGxlLT5jbGllbnQoKS0+ZGlkRmFpbChtX2hhbmRsZS5nZXQoKSwg
ZXJyb3IpOwpAQCAtNDc2LDcgKzQ3Niw3IEBAIHZvaWQgTmV0d29ya0pvYjo6aGFuZGxlTm90aWZ5
Q2xvc2UoaW50IHN0YXR1cykKICAgICBtX211bHRpcGFydFJlc3BvbnNlID0gbnVsbHB0cjsKIH0K
IAotYm9vbCBOZXR3b3JrSm9iOjpzaG91bGROb3RpZnlDbGllbnRGaW5pc2hlZCgpCitib29sIE5l
dHdvcmtKb2I6OnNob3VsZFJlbGVhc2VDbGllbnRSZXNvdXJjZSgpCiB7CiAgICAgaWYgKG1fcmVk
aXJlY3RDb3VudCA+PSBzX3JlZGlyZWN0TWF4aW11bSkKICAgICAgICAgcmV0dXJuIHRydWU7CkBA
IC00OTAsNiArNDkwLDEzIEBAIGJvb2wgTmV0d29ya0pvYjo6c2hvdWxkTm90aWZ5Q2xpZW50Rmlu
aXNoZWQoKQogICAgIHJldHVybiB0cnVlOwogfQogCitib29sIE5ldHdvcmtKb2I6OnNob3VsZE5v
dGlmeUNsaWVudEZhaWxlZCgpIGNvbnN0Cit7CisgICAgaWYgKG1faGFuZGxlLT5maXJzdFJlcXVl
c3QoKS50YXJnZXRUeXBlKCkgPT0gUmVzb3VyY2VSZXF1ZXN0OjpUYXJnZXRJc1hIUikKKyAgICAg
ICAgcmV0dXJuIG1fZXh0ZW5kZWRTdGF0dXNDb2RlIDwgMDsKKyAgICByZXR1cm4gaXNFcnJvciht
X2V4dGVuZGVkU3RhdHVzQ29kZSkgJiYgIW1fZGF0YVJlY2VpdmVkOworfQorCiBib29sIE5ldHdv
cmtKb2I6OnJldHJ5QXNGVFBEaXJlY3RvcnkoKQogewogICAgIG1fbmVlZHNSZXRyeUFzRlRQRGly
ZWN0b3J5ID0gZmFsc2U7CkBAIC01NzQsNyArNTgxLDcgQEAgdm9pZCBOZXR3b3JrSm9iOjpzZW5k
UmVzcG9uc2VJZk5lZWRlZCgpCiAKICAgICBtX3Jlc3BvbnNlU2VudCA9IHRydWU7CiAKLSAgICBp
ZiAoaXNFcnJvcihtX2V4dGVuZGVkU3RhdHVzQ29kZSkgJiYgIW1fZGF0YVJlY2VpdmVkKQorICAg
IGlmIChzaG91bGROb3RpZnlDbGllbnRGYWlsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
U3RyaW5nIHVybEZpbGVuYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9ibGFja2JlcnJ5L05ldHdvcmtKb2IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvYmxhY2tiZXJyeS9OZXR3b3JrSm9iLmgKaW5kZXggMmJiNTU3OTYwY2Y1MmU2MmE2
MjM3ZDhkMzA5MTRkZjVlYTQyODNlOS4uMTFiZDJhYTU5MDhmMWE5MjFkNGNjMTA3NmJjN2U1ZGNl
OTViM2Q1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFj
a2JlcnJ5L05ldHdvcmtKb2IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2JsYWNrYmVycnkvTmV0d29ya0pvYi5oCkBAIC05NSw3ICs5NSw4IEBAIHByaXZhdGU6CiAKICAg
ICBib29sIHNob3VsZFNlbmRDbGllbnREYXRhKCkgY29uc3Q7CiAKLSAgICBib29sIHNob3VsZE5v
dGlmeUNsaWVudEZpbmlzaGVkKCk7CisgICAgYm9vbCBzaG91bGRSZWxlYXNlQ2xpZW50UmVzb3Vy
Y2UoKTsKKyAgICBib29sIHNob3VsZE5vdGlmeUNsaWVudEZhaWxlZCgpIGNvbnN0OwogCiAgICAg
Ym9vbCBzaG91bGREZWZlckxvYWRpbmcoKSBjb25zdAogICAgIHsKQEAgLTEzMyw3ICsxMzQsNyBA
QCBwcml2YXRlOgogCiAgICAgdm9pZCBwdXJnZUNyZWRlbnRpYWxzKCk7CiAKLSAgICBib29sIGlz
RXJyb3IoaW50IHN0YXR1c0NvZGUpCisgICAgYm9vbCBpc0Vycm9yKGludCBzdGF0dXNDb2RlKSBj
b25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIHN0YXR1c0NvZGUgPCAwIHx8ICg0MDAgPD0gc3Rh
dHVzQ29kZSAmJiBzdGF0dXNDb2RlIDwgNjAwKTsKICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDc5NWU2MzNhMDk4
Zjk2NmE1YjQ2YzYzMjg2MDUxNjUyZGFhMmE0OS4uOTA2ZWRkYzZlZWI0YWI3ZGU4OGYxYmNlMWQ1
MzhlZmIyNTY1MDc3YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEyLTA1LTE0ICBKYXNvbiBM
aXUgIDxqYXNvbi5saXVAdG9yY2htb2JpbGUuY29tLmNuPgorCisgICAgICAgIFtCbGFja0JlcnJ5
XSB4aHIgcmVxdWVzdCB0byBub24gZXhpc3RlbnQgZmlsZSByZXNwb25zZSBpcyAwIGFuZCBub3Qg
NDA0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYz
NDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3QtY2hlY2staGVhZC1yZWFkeXN0
YXRlLWZvci00MDQuaHRtbDoKKwogMjAxMi0wNS0xMyAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBw
bGUuY29tPgogCiAgICAgICAgIERGRyBwZXJmb3JtcyBpbmNvcnJlY3QgY29uc3RhbnQgZm9sZGlu
ZyBvbiBkb3VibGUtdG8tdWludDMyIGNvbnZlcnNpb24gaW4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL3N0YXR1cy00MDQtd2l0aG91
dC1ib2R5LnBocCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVzb3Vy
Y2VzL3N0YXR1cy00MDQtd2l0aG91dC1ib2R5LnBocApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYWZmMTA2MzEwZmI3
ZGRiZTRhYTMzZWJiYzBhNGNiZDVmMzhhODI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvc3RhdHVzLTQwNC13aXRob3V0
LWJvZHkucGhwCkBAIC0wLDAgKzEsNCBAQAorPD9waHAKKyAgICBoZWFkZXIoJ2h0dHAvMS4xIDQw
NCBOb3QgRm91bmQnKTsKKyAgICBleGl0KCk7Cis/PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1jaGVjay1nZXQtcmVhZHlz
dGF0ZS1mb3ItNDA0LXdpdGhvdXQtYm9keS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LWNoZWNrLWdldC1yZWFkeXN0YXRl
LWZvci00MDQtd2l0aG91dC1ib2R5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNjVkODcwN2E5
N2UyNDc4ZTllNWQxYjAyODZhMzgyYzc0YTU3NDkyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1jaGVjay1nZXQt
cmVhZHlzdGF0ZS1mb3ItNDA0LXdpdGhvdXQtYm9keS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
IEBACitUaGlzIHRlc3RzIHRoZSByZWFkeVN0YXRlIG9mIGEgWE1MSHR0cFJlcXVzZXQgd2hpY2gg
aXMgc2VuZGVkIHdpdGggYSAiR0VUIiBtZXRob2QuIEFuZCB0aGUgcmVzcG9uc2UncyBzdGF0dXMg
aXMgNDA0IHdpdGhvdXQgYm9keS4KKworUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1jaGVjay1nZXQtcmVhZHlzdGF0
ZS1mb3ItNDA0LXdpdGhvdXQtYm9keS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1jaGVjay1nZXQtcmVhZHlzdGF0ZS1mb3ItNDA0LXdp
dGhvdXQtYm9keS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2OTI4MjEyZjgwODdjNjc0MzExMjcwNzJiOGI3
MzUxMjYwMjdmZmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LWNoZWNrLWdldC1yZWFkeXN0YXRlLWZvci00MDQt
d2l0aG91dC1ib2R5Lmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KK2Z1bmN0aW9uIGxvYWRYTUxEb2MoKSB7CisKKyAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOworICAgIH0KKworICAgIHZhciByZXMgPSAiIjsKKyAgICB2YXIgeG1saHR0
cCA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHhtbGh0dHAub25yZWFkeXN0YXRlY2hhbmdl
ID0gZnVuY3Rpb24oKSB7CisgICAgICAgIGlmICh4bWxodHRwLnJlYWR5U3RhdGUpIHsKKyAgICAg
ICAgICAgIHJlcyA9IHJlcyArIHhtbGh0dHAucmVhZHlTdGF0ZTsKKyAgICAgICAgICAgIGlmKHJl
cyA9PSAiMTI0IiAmJiB4bWxodHRwLnN0YXR1cyA9PSA0MDQpIHsKKyAgICAgICAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJUZXh0ID0gIlBBU1MiOworCisg
ICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAg
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgeG1saHR0cC5vcGVuKCJHRVQiLCAicmVzb3Vy
Y2VzL3N0YXR1cy00MDQtd2l0aG91dC1ib2R5LnBocCIsIHRydWUpOworICAgIHhtbGh0dHAuc2Vu
ZCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9ImxvYWRYTUxEb2MoKSI+
Cis8cD5UaGlzIHRlc3RzIHRoZSByZWFkeVN0YXRlIG9mIGEgWE1MSHR0cFJlcXVzZXQgd2hpY2gg
aXMgc2VuZGVkIHdpdGggYSAiR0VUIiBtZXRob2QuIEFuZCB0aGUgcmVzcG9uc2UncyBzdGF0dXMg
aXMgNDA0IHdpdGhvdXQgYm9keS48L3A+Cis8cCBpZD0icmVzdWx0Ij5GQUlMPC9wPgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC94bWxodHRwcmVxdWVzdC1jaGVjay1oZWFkLXJlYWR5c3RhdGUtZm9yLTQwNC5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1jaGVj
ay1oZWFkLXJlYWR5c3RhdGUtZm9yLTQwNC5odG1sCmluZGV4IDg4OTZjOGU4MjQzODU2YjFjYTky
MTFmNzJjYzYwMzc1NzdhMTMxYTYuLjcwZjFlYzQ0ZmJiYmVlYmVjNDk0NThiMTc1NjZkMmE0Y2I4
MzUxMTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
eG1saHR0cHJlcXVlc3QtY2hlY2staGVhZC1yZWFkeXN0YXRlLWZvci00MDQuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LWNoZWNr
LWhlYWQtcmVhZHlzdGF0ZS1mb3ItNDA0Lmh0bWwKQEAgLTE0LDcgKzE0LDcgQEAKICAgICB4bWxo
dHRwLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgewogICAgICAgICBpZiAoeG1saHR0
cC5yZWFkeVN0YXRlKSB7CiAgICAgICAgICAgICByZXMgPSByZXMgKyB4bWxodHRwLnJlYWR5U3Rh
dGU7Ci0gICAgICAgICAgICBpZihyZXMgPT0gIjEyNCIpeworICAgICAgICAgICAgaWYocmVzID09
ICIxMjQiICYmIHhtbGh0dHAuc3RhdHVzID09IDQwNCkgewogICAgICAgICAgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5pbm5lclRleHQgPSAiUEFTUyI7CiAKICAgICAg
ICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>