<?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>5744</bug_id>
          
          <creation_ts>2005-11-14 17:37:12 -0800</creation_ts>
          <short_desc>XMLHttpRequest does not apply page encoding after assigning via innerHtml</short_desc>
          <delta_ts>2006-07-06 04:10:37 -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 Misc.</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://idptest.bl.uk</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Kaye">mk</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>24035</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Kaye">mk</who>
    <bug_when>2005-11-14 17:37:12 -0800</bug_when>
    <thetext>goto to the following site :

1) http:idptest.bl.uk
2) Choose Show Catalogues from left menu.
3) Select &quot;Enoki_1962&quot; from catalogue list and click submit button.

4) The page will load and make note of the text in the bottom right area entitled Catalogue Entry. The 
text here is unicode text and onload is rendered correctly. Take note of the &quot;e&quot; character with the 
circumflex above it on the third line.

5) Click &quot;C1&quot; from the list on the left (Catalogue List). Now check the text on the right again and you will 
see it is nolonger encoded properly (check the same &quot;e&quot; character.

The data is extracted via a normal XMLHttpRequest and assigned via an div.innerHtml assignment so 
maybe the issue is with the assignment and not the load!

nb if site is not available try again later as it is a test server...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24036</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Kaye">mk</who>
    <bug_when>2005-11-14 17:38:09 -0800</bug_when>
    <thetext>that should be http://idptest.bl.uk </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24289</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2005-11-20 08:27:29 -0800</bug_when>
    <thetext>Does Firefox actually use the document encoding as a default for XMLHttpRequest encoding, or maybe it 
just defaults to UTF-8?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24777</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2005-11-28 14:15:22 -0800</bug_when>
    <thetext>Yes, it looks like Firefox defaults to UTF-8 for responses, while Safari defaults to us-ascii.

I&apos;m going to investigate this, as well as overriding encoding with overrideMimeType(), and also how 
req.responseXML is decoded.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>24888</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2005-11-29 14:01:52 -0800</bug_when>
    <thetext>Test case: &lt;http://nypop.com/~ap/webkit/xmlhttprequestenc/xmlhttprequestenc.html&gt;.

Works in Firefox; both Safari and Opera fail pretty spectacularly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>25248</commentid>
    <comment_count>5</comment_count>
      <attachid>4885</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2005-11-30 13:50:07 -0800</bug_when>
    <thetext>Created attachment 4885
proposed patch

Fixes a bunch of issues related to applying the correct encoding to
XMLHTTPRequest responses, including a complete inability to parse a response if
overrideMimeType(&apos;text/xml; charset=&lt;some_charset&gt;&apos;) was used.

There are still some FIXMEs concerning request encoding; I&apos;m going to
investigate these separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>25254</commentid>
    <comment_count>6</comment_count>
      <attachid>4885</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-11-30 16:57:57 -0800</bug_when>
    <thetext>Comment on attachment 4885
proposed patch

One style violation:
+    if (encoding.isNull() &amp;&amp; job) {
+      encoding = job-&gt;queryMetaData(&quot;charset&quot;);
+    }

(no {} around one line ifs)


Are you sure you want
mimeType.isNull()
instead of:
mimeType.isEmpty()
?

pos += 7;
A comment such as // strlen(&quot;charset&quot;) might be helpful here.

Curious, did you adapt getCharset from somewhere?  It seems like functionality
which has to already exist somewhere else.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>25255</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2005-11-30 21:37:21 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; One style violation:
&gt; (no {} around one line ifs)

  There&apos;s a sequence of ifs, some single-line, some not... To me, it&apos;s easier to read if they all folow a 
single style, even if it violates the guideline. Are you sure it&apos;s not a legitimate exception?

&gt; Are you sure you want
&gt; mimeType.isNull()
&gt; instead of:
&gt; mimeType.isEmpty()
&gt; ?

  No, I&apos;m not sure... The existing code uses both, and they appear equivalent here, but I may 
misunderstand something.

&gt; A comment such as // strlen(&quot;charset&quot;) might be helpful here.

  Agreed. I&apos;m not updating the patch just for this, but will add the comment after the more substantial 
concerns are resolved.

&gt; Curious, did you adapt getCharset from somewhere?  It seems like functionality
&gt; which has to already exist somewhere else.

  Yes, this worries me, too. I started from code in Decoder::decode(), but it doesn&apos;t look like it can be 
easily factored out and directly reused here. Another implementation is in Foundation ([NSURLResponse 
textEncodingName]), but I couldn&apos;t find a good way to reuse that, as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>25407</commentid>
    <comment_count>8</comment_count>
      <attachid>4911</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2005-12-02 13:40:52 -0800</bug_when>
    <thetext>Created attachment 4911
proposed patch

- Updated to cleanly apply to ToT.
- Replaced isNull() with isEmpty(), for better or worse :).
- Removed an unrelated change that sneaked into the previous version.
- Addressed stylistic comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>25447</commentid>
    <comment_count>9</comment_count>
      <attachid>4911</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-12-03 11:21:56 -0800</bug_when>
    <thetext>Comment on attachment 4911
proposed patch

I suggest you should change getResponseHeader to return a QString or DOMString,
get rid of the JSLocks and change the getResponseHeader callers that need a
JavaScript string to call jsString explicitly.

Otherwise, this patch looks great.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>25455</commentid>
    <comment_count>10</comment_count>
      <attachid>4920</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2005-12-03 13:17:40 -0800</bug_when>
    <thetext>Created attachment 4920
updated patch

Changed getResponseHeader to:

bool getResponseHeader(const QString&amp; name, QString&amp; value) const;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>25460</commentid>
    <comment_count>11</comment_count>
      <attachid>4920</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-12-03 15:34:59 -0800</bug_when>
    <thetext>Comment on attachment 4920
updated patch

alexey and I talked about this extensively on IRC.  Mostly about ways to clean
up the getCharset() function and make it simpler.  I&apos;m going to r- this patch
for now, and he&apos;ll post a better one tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>25475</commentid>
    <comment_count>12</comment_count>
      <attachid>4925</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2005-12-04 01:03:29 -0800</bug_when>
    <thetext>Created attachment 4925
updated patch

Slightly streamlined getCharset().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>25476</commentid>
    <comment_count>13</comment_count>
      <attachid>4925</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2005-12-04 01:13:49 -0800</bug_when>
    <thetext>Comment on attachment 4925
updated patch

We have discussed code reuse in getCharset() with MacDome on IRC. Similar code
is available in khtml::Decoder and as an SPI in Foundation.

However, the Foundation version is much less permissive (doesn&apos;t even seem to
handle quoted values), and the Decoder one has somewhat different logic that
makes code reuse quite problematic IMO.

So, I&apos;m proposing this version - while a longer-term solution may be to fix and
leverage that Foundation SPI. And/or to split out the Decoder logic to be
reusable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>25491</commentid>
    <comment_count>14</comment_count>
      <attachid>4925</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-12-04 04:29:12 -0800</bug_when>
    <thetext>Comment on attachment 4925
updated patch

The algorithm in getCharset isn&apos;t quite right. It&apos;s not correct to look for
&quot;charset&quot; and then look for a &quot;=&quot; after it -- there might be the letter &quot;x&quot;
just before the string &quot;charset&quot;, and this code would allow that. You should
fix that aspect of the getCharset function.

For getResponseHeader, I do think a separate bool is nice and clear, but there
is the distinct &quot;null&quot; value in QString that you could have used instead. I
think I&apos;d prefer that because it makes the JavaScript version more consistent
with the C++ version.

Future direction: To fit in with the rest of the DOM bindings, the way this
class should work some day is that there is an XMLHttpRequest class that is not
part of the JavaScript bindings, but rather part of the &quot;DOM&quot; implementation.
Functions like getResponseHeader which are exported should both take and return
DOM strings, just like the functions in classes like DOM::NodeImpl and
DOM::DocumentImpl.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>25501</commentid>
    <comment_count>15</comment_count>
      <attachid>4937</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2005-12-04 07:06:16 -0800</bug_when>
    <thetext>Created attachment 4937
updated patch

Addressed the comments (except for future direction).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>25509</commentid>
    <comment_count>16</comment_count>
      <attachid>4937</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-12-04 12:39:17 -0800</bug_when>
    <thetext>Comment on attachment 4937
updated patch

Still looks wrong to me. This looks for charset, and if it&apos;s not at the
beginning of a word, just returns from the entire function. That doesn&apos;t make
sense to me. I think maybe you want to do &quot;continue&quot; in that case to look for
the next occurence of the string &quot;charset&quot;.

I also think the test for word boundary seems strange. Why include all control
characters, semicolon, and quote marks? This would parse this:

    ignoreString=&quot;charset=UTF-8&quot;

as a charset option, and there&apos;s no reason to parse in a way that allows that.

The skip whitespace code actually skips all characters &lt;= &apos; &apos; which includes
things other than whitespace.

There&apos;s no reason to make this function strange in these respects. It could be
coded to match RFC 2616 instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>25524</commentid>
    <comment_count>17</comment_count>
      <attachid>4948</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2005-12-04 13:39:12 -0800</bug_when>
    <thetext>Created attachment 4948
updated patch

Sorry, stupid bugs (thought about writing &quot;continue&quot;, but then forgot).

As for testing for &lt;= &apos; &apos; - well, that&apos;s what khtml::Decoder does, and it
sounds like a good idea to make the logic similar. Actually, Decoder also
permits &quot;xcharset&quot;...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>25579</commentid>
    <comment_count>18</comment_count>
      <attachid>4948</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-12-05 06:51:00 -0800</bug_when>
    <thetext>Comment on attachment 4948
updated patch

If this function is going to share quirks with the decoder, then I think it
should be moved to be a static member function of Decoder so we can fix both at
the same time. I know you were discussing where it should go, and I think that
would be the right thing to do.

In general I&apos;m not happy with these getMIMEType and getCharset functions.
getMIMEType splits the entire string into a list and then just uses the first
piece -- that&apos;s a bit inefficient since you really just want to search for the
first &quot;;&quot; and get the whitespace-stripped sequence up until that.

But then getCharset goes the other way and instead of parsing the
semicolon-separated string into pieces and looking at each one for charset, it
scans the entire string for the substring &quot;charset&quot; and then tries to figure
things out from there.

In both cases we could write something that was both correct and relatively
efficient.

But for this patch, I think we&apos;re OK. This is good enough ot fix the bug. Lets
land it. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>25593</commentid>
    <comment_count>19</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2005-12-05 13:07:24 -0800</bug_when>
    <thetext>Filed Content-Type parsing cleanup as bug 5954.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26064</commentid>
    <comment_count>20</comment_count>
      <attachid>5118</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2005-12-16 12:28:05 -0800</bug_when>
    <thetext>Created attachment 5118
updated patch

Same as 4948, but updated for the recent ValueImp-&gt;JSValue renaming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26133</commentid>
    <comment_count>21</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-12-18 14:12:49 -0800</bug_when>
    <thetext>Is there some kind of automated test we can do? Perhaps using XMLHttpRequest to load a local file?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26173</commentid>
    <comment_count>22</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2005-12-19 03:52:21 -0800</bug_when>
    <thetext>(In reply to comment #21)
Obviously, only some aspects of the behavior could be tested with local files... And I&apos;m not sure if 
expecting XMLHttpRequest to work with local files is reasonable (my quick test worked in ToT WebKit, but 
not in Firefox or Opera).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26174</commentid>
    <comment_count>23</comment_count>
    <who name="Michael Kaye">mk</who>
    <bug_when>2005-12-19 04:33:16 -0800</bug_when>
    <thetext>re testing, you can test against the now live site that originally had the problem.

goto to the following site :

1) http://idp.bl.uk
2) Choose Show Catalogues from left menu.
3) Select &quot;Enoki_1962&quot; from catalogue list and click submit button.

4) The page will load and make note of the text in the bottom right area entitled Catalogue Entry.

5) Click &quot;C1...&quot; from the list on the left (Catalogue List) and check whether the data is still encoded 
correctly</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26194</commentid>
    <comment_count>24</comment_count>
      <attachid>5155</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2005-12-19 11:05:37 -0800</bug_when>
    <thetext>Created attachment 5155
ChangeLog entry</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26196</commentid>
    <comment_count>25</comment_count>
      <attachid>5156</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2005-12-19 11:14:09 -0800</bug_when>
    <thetext>Created attachment 5156
archived test suite

To be served by Apache; don&apos;t overlook the .htaccess file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>48391</commentid>
    <comment_count>26</comment_count>
    <who name="Michael Kaye">mk</who>
    <bug_when>2006-07-05 15:57:45 -0700</bug_when>
    <thetext>Hi I&apos;m the original reporter of this bug. Although it was marked as fixed a while ago, I note the problem still remains with the latest version of Safari (2.0.4 (419.3)), Webkit and Mac OS X (10.4.7).

Should this be the case of have the fixes not been rolled into the latest builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>48442</commentid>
    <comment_count>27</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-07-05 21:43:46 -0700</bug_when>
    <thetext>Yes, the fix is not in latest released MacOS yet. If I were to guess (Apple doesn&apos;t give details on such decisions), it might be partially because a workaround exists - as seen at &lt;http://nypop.com/~ap/webkit/xmlhttprequestenc/xmlhttprequestenc.html&gt;, some cases do work. You may try asking for a fix on Apple&apos;s release branch via &lt;http://bugreport.apple.com&gt;.

The fix should be present in OmniWeb 5.5 beta (again, no idea about its release date).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>48459</commentid>
    <comment_count>28</comment_count>
    <who name="Michael Kaye">mk</who>
    <bug_when>2006-07-06 04:10:37 -0700</bug_when>
    <thetext>Alexey,

Thanks for you comments. I have registered the bug with apple (hopefully they will action it).

Regards, Michael.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4885</attachid>
            <date>2005-11-30 13:50:07 -0800</date>
            <delta_ts>2005-12-02 13:42:13 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>XMLHTTPResponsePatch.txt</filename>
            <type>text/plain</type>
            <size>5964</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IGtodG1sL2VjbWEveG1saHR0cHJlcXVlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6
IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2VjbWEveG1saHR0cHJlcXVlc3QuY3BwLHYKcmV0cmll
dmluZyByZXZpc2lvbiAxLjQ4CmRpZmYgLXAgLXUgLXIxLjQ4IGtodG1sL2VjbWEveG1saHR0cHJl
cXVlc3QuY3BwCi0tLSBraHRtbC9lY21hL3htbGh0dHByZXF1ZXN0LmNwcAkyNyBOb3YgMjAwNSAw
Nzo1NDo1MSAtMDAwMAkxLjQ4CisrKyBraHRtbC9lY21hL3htbGh0dHByZXF1ZXN0LmNwcAkzMCBO
b3YgMjAwNSAyMTo0NToxNCAtMDAwMApAQCAtNDksNiArNDksNDUgQEAgdXNpbmcgbmFtZXNwYWNl
IERPTTo6RXZlbnROYW1lczsKIAogdXNpbmcga2h0bWw6OkRlY29kZXI7CiAKK3N0YXRpYyBpbmxp
bmUgUVN0cmluZyBnZXRNSU1FVHlwZShjb25zdCBRU3RyaW5nJiBjb250ZW50VHlwZVN0cmluZykK
K3sKKyAgICByZXR1cm4gUVN0cmluZ0xpc3Q6OnNwbGl0KCI7IiwgY29udGVudFR5cGVTdHJpbmcs
IHRydWUpWzBdLnN0cmlwV2hpdGVTcGFjZSgpOworfQorCitzdGF0aWMgUVN0cmluZyBnZXRDaGFy
c2V0KGNvbnN0IFFTdHJpbmcmIGNvbnRlbnRUeXBlU3RyaW5nKQoreworICAgIGludCBwb3MgPSAw
OworICAgIAorICAgIHdoaWxlIChwb3MgPCAoaW50KWNvbnRlbnRUeXBlU3RyaW5nLmxlbmd0aCgp
KSB7CisgICAgICAgIHBvcyA9IGNvbnRlbnRUeXBlU3RyaW5nLmZpbmQoImNoYXJzZXQiLCBwb3Ms
IGZhbHNlKTsKKyAgICAgICAgaWYgKHBvcyA9PSAtMSkKKyAgICAgICAgICAgIHJldHVybiBRU3Ry
aW5nKCk7CisgICAgCisgICAgICAgIHBvcyArPSA3OworCisgICAgICAgIC8vIHNraXAgd2hpdGVz
cGFjZS4uCisgICAgICAgIHdoaWxlIChjb250ZW50VHlwZVN0cmluZ1twb3NdIDw9ICcgJykKKyAg
ICAgICAgICAgIGlmICgrK3BvcyA9PSAoaW50KWNvbnRlbnRUeXBlU3RyaW5nLmxlbmd0aCgpKQor
ICAgICAgICAgICAgICAgIHJldHVybiBRU3RyaW5nKCk7CisgICAgCisgICAgICAgIGlmIChjb250
ZW50VHlwZVN0cmluZ1twb3MrK10gIT0gJz0nKQorICAgICAgICAgICAgY29udGludWU7CisKKyAg
ICAgICAgd2hpbGUgKGNvbnRlbnRUeXBlU3RyaW5nW3Bvc10gPD0gJyAnIHx8IGNvbnRlbnRUeXBl
U3RyaW5nW3Bvc10gPT0gJz0nIHx8IGNvbnRlbnRUeXBlU3RyaW5nW3Bvc10gPT0gJyInIHx8IGNv
bnRlbnRUeXBlU3RyaW5nW3Bvc10gPT0gJ1wnJykKKyAgICAgICAgICAgIGlmICgrK3BvcyA9PSAo
aW50KWNvbnRlbnRUeXBlU3RyaW5nLmxlbmd0aCgpKQorICAgICAgICAgICAgICAgIHJldHVybiBR
U3RyaW5nKCk7CisKKyAgICAgICAgaW50IGVuZHBvcyA9IHBvczsKKyAgICAgICAgd2hpbGUgKGNv
bnRlbnRUeXBlU3RyaW5nW2VuZHBvc10gIT0gJyAnICYmIGNvbnRlbnRUeXBlU3RyaW5nW2VuZHBv
c10gIT0gJyInICYmIGNvbnRlbnRUeXBlU3RyaW5nW2VuZHBvc10gIT0gJ1wnJyAmJiBjb250ZW50
VHlwZVN0cmluZ1tlbmRwb3NdICE9ICc7JyAmJiBjb250ZW50VHlwZVN0cmluZ1tlbmRwb3NdICE9
ICc+JykKKyAgICAgICAgICAgIGlmICgrK2VuZHBvcyA9PSAoaW50KWNvbnRlbnRUeXBlU3RyaW5n
Lmxlbmd0aCgpKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAgIAorICAgICAgICByZXR1cm4g
Y29udGVudFR5cGVTdHJpbmcubWlkKHBvcywgZW5kcG9zLXBvcyk7CisgICAgfQorICAgIAorICAg
IHJldHVybiBRU3RyaW5nKCk7Cit9CisKIG5hbWVzcGFjZSBLSlMgewogCiAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vIFhNTEh0dHBSZXF1ZXN0IE9iamVjdCAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
QEAgLTEzOCwyMCArMTc3LDggQEAgVmFsdWVJbXAgKlhNTEh0dHBSZXF1ZXN0OjpnZXRWYWx1ZVBy
b3BlcgogICAgICAgcmV0dXJuIFVuZGVmaW5lZCgpOwogICAgIH0KICAgICBpZiAoIWNyZWF0ZWRE
b2N1bWVudCkgewotICAgICAgUVN0cmluZyBtaW1lVHlwZTsKICAgICAgIAotICAgICAgaWYgKE1J
TUVUeXBlT3ZlcnJpZGUuaXNFbXB0eSgpKSB7Ci0gICAgICAgIFZhbHVlSW1wICpoZWFkZXIgPSBn
ZXRSZXNwb25zZUhlYWRlcigiQ29udGVudC1UeXBlIik7Ci0gICAgICAgIGlmIChoZWFkZXItPmlz
VW5kZWZpbmVkKCkpIHsKLSAgICAgICAgICBtaW1lVHlwZSA9ICJ0ZXh0L3htbCI7Ci0gICAgICAg
IH0gZWxzZSB7Ci0JICBtaW1lVHlwZSA9IFFTdHJpbmdMaXN0OjpzcGxpdCgiOyIsIGhlYWRlci0+
dG9TdHJpbmcoZXhlYykucXN0cmluZygpLCB0cnVlKVswXS5zdHJpcFdoaXRlU3BhY2UoKTsKLSAg
ICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAgICAgICAgbWltZVR5cGUgPSBNSU1FVHlwZU92ZXJy
aWRlOwotICAgICAgfQotICAgICAgCi0gICAgICBpZiAodHlwZUlzWE1MID0gRE9NSW1wbGVtZW50
YXRpb25JbXBsOjppc1hNTE1JTUVUeXBlKG1pbWVUeXBlKSkgeworICAgICAgaWYgKHR5cGVJc1hN
TCA9IHJlc3BvbnNlSXNYTUwoKSkgewogCXJlc3BvbnNlWE1MLnJlc2V0KGRvYy0+aW1wbGVtZW50
YXRpb24oKS0+Y3JlYXRlRG9jdW1lbnQoKSk7CiAKIAlEb2N1bWVudEltcGwgKmRvY0ltcGwgPSBy
ZXNwb25zZVhNTC5nZXQoKTsKQEAgLTQ1MCw2ICs0NzcsMTkgQEAgVmFsdWVJbXAgKlhNTEh0dHBS
ZXF1ZXN0OjpnZXRSZXNwb25zZUhlYQogICByZXR1cm4gU3RyaW5nKHJlc3BvbnNlSGVhZGVycy5t
aWQoaGVhZGVyTGluZVBvcyArIG1hdGNoTGVuZ3RoLCBlbmRPZkxpbmUgLSAoaGVhZGVyTGluZVBv
cyArIG1hdGNoTGVuZ3RoKSkuc3RyaXBXaGl0ZVNwYWNlKCkpOwogfQogCitib29sIFhNTEh0dHBS
ZXF1ZXN0OjpyZXNwb25zZUlzWE1MKCkgY29uc3QKK3sKKyAgICBRU3RyaW5nIG1pbWVUeXBlID0g
Z2V0TUlNRVR5cGUoTUlNRVR5cGVPdmVycmlkZSk7CisgICAgaWYgKG1pbWVUeXBlLmlzTnVsbCgp
KSB7CisgICAgICBKU0xvY2sgbG9jazsKKyAgICAgIG1pbWVUeXBlID0gZ2V0TUlNRVR5cGUoZ2V0
UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtVHlwZSIpLT5nZXRTdHJpbmcoKS5xc3RyaW5nKCkpOwor
ICAgIH0KKyAgICBpZiAobWltZVR5cGUuaXNOdWxsKCkpCisgICAgICBtaW1lVHlwZSA9ICJ0ZXh0
L3htbCI7CisgICAgCisgICAgcmV0dXJuIERPTUltcGxlbWVudGF0aW9uSW1wbDo6aXNYTUxNSU1F
VHlwZShtaW1lVHlwZSk7Cit9CisKIFZhbHVlSW1wICpYTUxIdHRwUmVxdWVzdDo6Z2V0U3RhdHVz
KCkgY29uc3QKIHsKICAgaWYgKHJlc3BvbnNlSGVhZGVycy5pc0VtcHR5KCkpIHsKQEAgLTU0OCwy
NSArNTg4LDMyIEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OnNsb3RSZWRpcmVjdGlvbihLSU8KICAg
fQogfQogCi12b2lkIFhNTEh0dHBSZXF1ZXN0OjpzbG90RGF0YSggS0lPOjpKb2IqLCBjb25zdCBj
aGFyICpkYXRhLCBpbnQgbGVuICkKK3ZvaWQgWE1MSHR0cFJlcXVlc3Q6OnNsb3REYXRhKEtJTzo6
Sm9iKiwgY29uc3QgY2hhciAqZGF0YSwgaW50IGxlbikKIHsKLSAgaWYgKHN0YXRlIDwgTG9hZGVk
KSB7CisgIGlmIChyZXNwb25zZUhlYWRlcnMuaXNOdWxsKCkgJiYgam9iKQogICAgIHJlc3BvbnNl
SGVhZGVycyA9IGpvYi0+cXVlcnlNZXRhRGF0YSgiSFRUUC1IZWFkZXJzIik7Ci0gICAgZW5jb2Rp
bmcgPSBqb2ItPnF1ZXJ5TWV0YURhdGEoImNoYXJzZXQiKTsKKworICBpZiAoc3RhdGUgPCBMb2Fk
ZWQpCiAgICAgY2hhbmdlU3RhdGUoTG9hZGVkKTsKLSAgfQogICAKLQotICBpZiAoIGRlY29kZXIg
PT0gTlVMTCApIHsKKyAgaWYgKGRlY29kZXIgPT0gTlVMTCkgeworICAgIGVuY29kaW5nID0gZ2V0
Q2hhcnNldChNSU1FVHlwZU92ZXJyaWRlKTsKKyAgICBpZiAoZW5jb2RpbmcuaXNOdWxsKCkpIHsK
KyAgICAgIEpTTG9jayBsb2NrOworICAgICAgZW5jb2RpbmcgPSBnZXRDaGFyc2V0KGdldFJlc3Bv
bnNlSGVhZGVyKCJDb250ZW50LVR5cGUiKS0+Z2V0U3RyaW5nKCkucXN0cmluZygpKTsKKyAgICB9
CisgICAgaWYgKGVuY29kaW5nLmlzTnVsbCgpICYmIGpvYikgeworICAgICAgZW5jb2RpbmcgPSBq
b2ItPnF1ZXJ5TWV0YURhdGEoImNoYXJzZXQiKTsKKyAgICB9CisgICAgCiAgICAgZGVjb2RlciA9
IG5ldyBEZWNvZGVyOwogICAgIGlmICghZW5jb2RpbmcuaXNOdWxsKCkpCiAgICAgICBkZWNvZGVy
LT5zZXRFbmNvZGluZyhlbmNvZGluZy5sYXRpbjEoKSwgRGVjb2Rlcjo6RW5jb2RpbmdGcm9tSFRU
UEhlYWRlcik7CiAgICAgZWxzZSB7Ci0gICAgICAvLyBGSVhNRTogSW5oZXJpdCB0aGUgZGVmYXVs
dCBlbmNvZGluZyBmcm9tIHRoZSBwYXJlbnQgZG9jdW1lbnQ/CisgICAgICAvLyBvbmx5IGFsbG93
IERlY29kZXIgdG8gbG9vayBpbnNpZGUgdGhlIHJlc3BvbnNlIGlmIGl0J3MgWE1MCisgICAgICBk
ZWNvZGVyLT5zZXRFbmNvZGluZygiVVRGLTgiLCByZXNwb25zZUlzWE1MKCkgPyBEZWNvZGVyOjpE
ZWZhdWx0RW5jb2RpbmcgOiBEZWNvZGVyOjpFbmNvZGluZ0Zyb21IVFRQSGVhZGVyKTsKICAgICB9
CiAgIH0KLSAgaWYgKGxlbiA9PSAwKQotICAgIHJldHVybjsKIAogICBpZiAobGVuID09IC0xKQog
ICAgIGxlbiA9IHN0cmxlbihkYXRhKTsKSW5kZXg6IGtodG1sL2VjbWEveG1saHR0cHJlcXVlc3Qu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9lY21hL3htbGh0
dHByZXF1ZXN0LmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjEKZGlmZiAtcCAtdSAtcjEuMjEg
a2h0bWwvZWNtYS94bWxodHRwcmVxdWVzdC5oCi0tLSBraHRtbC9lY21hL3htbGh0dHByZXF1ZXN0
LmgJMjEgTm92IDIwMDUgMDE6MTk6NTcgLTAwMDAJMS4yMQorKysga2h0bWwvZWNtYS94bWxodHRw
cmVxdWVzdC5oCTMwIE5vdiAyMDA1IDIxOjQ1OjE2IC0wMDAwCkBAIC00NCwxMSArNDQsMTEgQEAg
bmFtZXNwYWNlIEtKUyB7CiAKICAgLy8gdGhlc2UgZXhhY3QgbnVtZXJpYyB2YWx1ZXMgYXJlIGlt
cG9ydGFudCBiZWNhdXNlIEpTIGV4cGVjdHMgdGhlbQogICBlbnVtIFhNTEh0dHBSZXF1ZXN0U3Rh
dGUgewotICAgIFVuaW5pdGlhbGl6ZWQgPSAwLAotICAgIExvYWRpbmcgPSAxLAotICAgIExvYWRl
ZCA9IDIsCi0gICAgSW50ZXJhY3RpdmUgPSAzLAotICAgIENvbXBsZXRlZCA9IDQKKyAgICBVbmlu
aXRpYWxpemVkID0gMCwgIC8vIG9wZW4oKSBoYXMgbm90IGJlZW4gY2FsbGVkIHlldAorICAgIExv
YWRpbmcgPSAxLCAgICAgICAgLy8gc2VuZCgpIGhhcyBub3QgYmVlbiBjYWxsZWQgeWV0CisgICAg
TG9hZGVkID0gMiwgICAgICAgICAvLyBzZW5kKCkgaGFzIGJlZW4gY2FsbGVkLCBoZWFkZXJzIGFu
ZCBzdGF0dXMgYXJlIGF2YWlsYWJsZQorICAgIEludGVyYWN0aXZlID0gMywgICAgLy8gRG93bmxv
YWRpbmcsIHJlc3BvbnNlVGV4dCBob2xkcyB0aGUgcGFydGlhbCBkYXRhCisgICAgQ29tcGxldGVk
ID0gNCAgICAgICAvLyBGaW5pc2hlZCB3aXRoIGFsbCBvcGVyYXRpb25zCiAgIH07CiAKICAgY2xh
c3MgWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3RvckltcCA6IHB1YmxpYyBPYmplY3RJbXAgewpAQCAt
MTAyLDcgKzEwMiw4IEBAIG5hbWVzcGFjZSBLSlMgewogICAgIHZvaWQgc2V0UmVxdWVzdEhlYWRl
cihjb25zdCBRU3RyaW5nJiBuYW1lLCBjb25zdCBRU3RyaW5nICZ2YWx1ZSk7CiAgICAgVmFsdWVJ
bXAgKmdldEFsbFJlc3BvbnNlSGVhZGVycygpIGNvbnN0OwogICAgIFZhbHVlSW1wICpnZXRSZXNw
b25zZUhlYWRlcihjb25zdCBRU3RyaW5nJiBuYW1lKSBjb25zdDsKLQorICAgIGJvb2wgcmVzcG9u
c2VJc1hNTCgpIGNvbnN0OworICAgIAogICAgIHZvaWQgY2hhbmdlU3RhdGUoWE1MSHR0cFJlcXVl
c3RTdGF0ZSBuZXdTdGF0ZSk7CiAKICAgICBzdGF0aWMgUVB0ckRpY3Q8IFFQdHJEaWN0PFhNTEh0
dHBSZXF1ZXN0PiA+ICZyZXF1ZXN0c0J5RG9jdW1lbnQoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4911</attachid>
            <date>2005-12-02 13:40:52 -0800</date>
            <delta_ts>2005-12-03 13:17:40 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>XMLHTTPResponsePatch.txt</filename>
            <type>text/plain</type>
            <size>5941</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IGtodG1sL2VjbWEveG1saHR0cHJlcXVlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6
IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2VjbWEveG1saHR0cHJlcXVlc3QuY3BwLHYKcmV0cmll
dmluZyByZXZpc2lvbiAxLjQ5CmRpZmYgLXAgLXUgLXIxLjQ5IGtodG1sL2VjbWEveG1saHR0cHJl
cXVlc3QuY3BwCi0tLSBraHRtbC9lY21hL3htbGh0dHByZXF1ZXN0LmNwcAkyIERlYyAyMDA1IDAz
OjQ4OjA2IC0wMDAwCTEuNDkKKysrIGtodG1sL2VjbWEveG1saHR0cHJlcXVlc3QuY3BwCTIgRGVj
IDIwMDUgMjE6NDU6MjkgLTAwMDAKQEAgLTQ5LDYgKzQ5LDQ1IEBAIHVzaW5nIG5hbWVzcGFjZSBE
T006OkV2ZW50TmFtZXM7CiAKIHVzaW5nIGtodG1sOjpEZWNvZGVyOwogCitzdGF0aWMgaW5saW5l
IFFTdHJpbmcgZ2V0TUlNRVR5cGUoY29uc3QgUVN0cmluZyYgY29udGVudFR5cGVTdHJpbmcpCit7
CisgICAgcmV0dXJuIFFTdHJpbmdMaXN0OjpzcGxpdCgiOyIsIGNvbnRlbnRUeXBlU3RyaW5nLCB0
cnVlKVswXS5zdHJpcFdoaXRlU3BhY2UoKTsKK30KKworc3RhdGljIFFTdHJpbmcgZ2V0Q2hhcnNl
dChjb25zdCBRU3RyaW5nJiBjb250ZW50VHlwZVN0cmluZykKK3sKKyAgICBpbnQgcG9zID0gMDsK
KyAgICAKKyAgICB3aGlsZSAocG9zIDwgKGludCljb250ZW50VHlwZVN0cmluZy5sZW5ndGgoKSkg
eworICAgICAgICBwb3MgPSBjb250ZW50VHlwZVN0cmluZy5maW5kKCJjaGFyc2V0IiwgcG9zLCBm
YWxzZSk7CisgICAgICAgIGlmIChwb3MgPT0gLTEpCisgICAgICAgICAgICByZXR1cm4gUVN0cmlu
ZygpOworICAgIAorICAgICAgICBwb3MgKz0gNzsgLy8gc3RybGVuKCJjaGFyc2V0IikKKworICAg
ICAgICAvLyBza2lwIHdoaXRlc3BhY2UuLgorICAgICAgICB3aGlsZSAoY29udGVudFR5cGVTdHJp
bmdbcG9zXSA8PSAnICcpCisgICAgICAgICAgICBpZiAoKytwb3MgPT0gKGludCljb250ZW50VHlw
ZVN0cmluZy5sZW5ndGgoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gUVN0cmluZygpOworICAg
IAorICAgICAgICBpZiAoY29udGVudFR5cGVTdHJpbmdbcG9zKytdICE9ICc9JykKKyAgICAgICAg
ICAgIGNvbnRpbnVlOworCisgICAgICAgIHdoaWxlIChjb250ZW50VHlwZVN0cmluZ1twb3NdIDw9
ICcgJyB8fCBjb250ZW50VHlwZVN0cmluZ1twb3NdID09ICc9JyB8fCBjb250ZW50VHlwZVN0cmlu
Z1twb3NdID09ICciJyB8fCBjb250ZW50VHlwZVN0cmluZ1twb3NdID09ICdcJycpCisgICAgICAg
ICAgICBpZiAoKytwb3MgPT0gKGludCljb250ZW50VHlwZVN0cmluZy5sZW5ndGgoKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gUVN0cmluZygpOworCisgICAgICAgIGludCBlbmRwb3MgPSBwb3M7
CisgICAgICAgIHdoaWxlIChjb250ZW50VHlwZVN0cmluZ1tlbmRwb3NdICE9ICcgJyAmJiBjb250
ZW50VHlwZVN0cmluZ1tlbmRwb3NdICE9ICciJyAmJiBjb250ZW50VHlwZVN0cmluZ1tlbmRwb3Nd
ICE9ICdcJycgJiYgY29udGVudFR5cGVTdHJpbmdbZW5kcG9zXSAhPSAnOycpCisgICAgICAgICAg
ICBpZiAoKytlbmRwb3MgPT0gKGludCljb250ZW50VHlwZVN0cmluZy5sZW5ndGgoKSkKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAKKyAgICAgICAgcmV0dXJuIGNvbnRlbnRUeXBlU3RyaW5n
Lm1pZChwb3MsIGVuZHBvcy1wb3MpOworICAgIH0KKyAgICAKKyAgICByZXR1cm4gUVN0cmluZygp
OworfQorCiBuYW1lc3BhY2UgS0pTIHsKIAogLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBYTUxIdHRw
UmVxdWVzdCBPYmplY3QgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCkBAIC0xMzcsMjEgKzE3Niw5
IEBAIFZhbHVlSW1wICpYTUxIdHRwUmVxdWVzdDo6Z2V0VmFsdWVQcm9wZXIKICAgICBpZiAoc3Rh
dGUgIT0gQ29tcGxldGVkKSB7CiAgICAgICByZXR1cm4gVW5kZWZpbmVkKCk7CiAgICAgfQorCiAg
ICAgaWYgKCFjcmVhdGVkRG9jdW1lbnQpIHsKLSAgICAgIFFTdHJpbmcgbWltZVR5cGU7Ci0gICAg
ICAKLSAgICAgIGlmIChNSU1FVHlwZU92ZXJyaWRlLmlzRW1wdHkoKSkgewotICAgICAgICBWYWx1
ZUltcCAqaGVhZGVyID0gZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtVHlwZSIpOwotICAgICAg
ICBpZiAoaGVhZGVyLT5pc1VuZGVmaW5lZCgpKSB7Ci0gICAgICAgICAgbWltZVR5cGUgPSAidGV4
dC94bWwiOwotICAgICAgICB9IGVsc2UgewotCSAgbWltZVR5cGUgPSBRU3RyaW5nTGlzdDo6c3Bs
aXQoIjsiLCBoZWFkZXItPnRvU3RyaW5nKGV4ZWMpLnFzdHJpbmcoKSwgdHJ1ZSlbMF0uc3RyaXBX
aGl0ZVNwYWNlKCk7Ci0gICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIG1pbWVUeXBl
ID0gTUlNRVR5cGVPdmVycmlkZTsKLSAgICAgIH0KLSAgICAgIAotICAgICAgaWYgKHR5cGVJc1hN
TCA9IERPTUltcGxlbWVudGF0aW9uSW1wbDo6aXNYTUxNSU1FVHlwZShtaW1lVHlwZSkpIHsKKyAg
ICAgIGlmICh0eXBlSXNYTUwgPSByZXNwb25zZUlzWE1MKCkpIHsKIAlyZXNwb25zZVhNTCA9IGRv
Yy0+aW1wbGVtZW50YXRpb24oKS0+Y3JlYXRlRG9jdW1lbnQoKTsKIAogCURvY3VtZW50SW1wbCAq
ZG9jSW1wbCA9IHJlc3BvbnNlWE1MLmdldCgpOwpAQCAtNDUwLDYgKzQ3NywxOSBAQCBWYWx1ZUlt
cCAqWE1MSHR0cFJlcXVlc3Q6OmdldFJlc3BvbnNlSGVhCiAgIHJldHVybiBTdHJpbmcocmVzcG9u
c2VIZWFkZXJzLm1pZChoZWFkZXJMaW5lUG9zICsgbWF0Y2hMZW5ndGgsIGVuZE9mTGluZSAtICho
ZWFkZXJMaW5lUG9zICsgbWF0Y2hMZW5ndGgpKS5zdHJpcFdoaXRlU3BhY2UoKSk7CiB9CiAKK2Jv
b2wgWE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNlSXNYTUwoKSBjb25zdAoreworICAgIFFTdHJpbmcg
bWltZVR5cGUgPSBnZXRNSU1FVHlwZShNSU1FVHlwZU92ZXJyaWRlKTsKKyAgICBpZiAobWltZVR5
cGUuaXNFbXB0eSgpKSB7CisgICAgICBKU0xvY2sgbG9jazsKKyAgICAgIG1pbWVUeXBlID0gZ2V0
TUlNRVR5cGUoZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtVHlwZSIpLT5nZXRTdHJpbmcoKS5x
c3RyaW5nKCkpOworICAgIH0KKyAgICBpZiAobWltZVR5cGUuaXNFbXB0eSgpKQorICAgICAgbWlt
ZVR5cGUgPSAidGV4dC94bWwiOworICAgIAorICAgIHJldHVybiBET01JbXBsZW1lbnRhdGlvbklt
cGw6OmlzWE1MTUlNRVR5cGUobWltZVR5cGUpOworfQorCiBWYWx1ZUltcCAqWE1MSHR0cFJlcXVl
c3Q6OmdldFN0YXR1cygpIGNvbnN0CiB7CiAgIGlmIChyZXNwb25zZUhlYWRlcnMuaXNFbXB0eSgp
KSB7CkBAIC01NDgsMjEgKzU4OCwyOSBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpzbG90UmVkaXJl
Y3Rpb24oS0lPCiAgIH0KIH0KIAotdm9pZCBYTUxIdHRwUmVxdWVzdDo6c2xvdERhdGEoIEtJTzo6
Sm9iKiwgY29uc3QgY2hhciAqZGF0YSwgaW50IGxlbiApCit2b2lkIFhNTEh0dHBSZXF1ZXN0Ojpz
bG90RGF0YShLSU86OkpvYiosIGNvbnN0IGNoYXIgKmRhdGEsIGludCBsZW4pCiB7Ci0gIGlmIChz
dGF0ZSA8IExvYWRlZCkgeworICBpZiAocmVzcG9uc2VIZWFkZXJzLmlzRW1wdHkoKSAmJiBqb2Ip
CiAgICAgcmVzcG9uc2VIZWFkZXJzID0gam9iLT5xdWVyeU1ldGFEYXRhKCJIVFRQLUhlYWRlcnMi
KTsKLSAgICBlbmNvZGluZyA9IGpvYi0+cXVlcnlNZXRhRGF0YSgiY2hhcnNldCIpOworCisgIGlm
IChzdGF0ZSA8IExvYWRlZCkKICAgICBjaGFuZ2VTdGF0ZShMb2FkZWQpOwotICB9CiAgIAotCi0g
IGlmICggZGVjb2RlciA9PSBOVUxMICkgeworICBpZiAoZGVjb2RlciA9PSBOVUxMKSB7CisgICAg
ZW5jb2RpbmcgPSBnZXRDaGFyc2V0KE1JTUVUeXBlT3ZlcnJpZGUpOworICAgIGlmIChlbmNvZGlu
Zy5pc0VtcHR5KCkpIHsKKyAgICAgIEpTTG9jayBsb2NrOworICAgICAgZW5jb2RpbmcgPSBnZXRD
aGFyc2V0KGdldFJlc3BvbnNlSGVhZGVyKCJDb250ZW50LVR5cGUiKS0+Z2V0U3RyaW5nKCkucXN0
cmluZygpKTsKKyAgICB9CisgICAgaWYgKGVuY29kaW5nLmlzRW1wdHkoKSAmJiBqb2IpCisgICAg
ICBlbmNvZGluZyA9IGpvYi0+cXVlcnlNZXRhRGF0YSgiY2hhcnNldCIpOworICAgIAogICAgIGRl
Y29kZXIgPSBuZXcgRGVjb2RlcjsKLSAgICBpZiAoIWVuY29kaW5nLmlzTnVsbCgpKQorICAgIGlm
ICghZW5jb2RpbmcuaXNFbXB0eSgpKQogICAgICAgZGVjb2Rlci0+c2V0RW5jb2RpbmcoZW5jb2Rp
bmcubGF0aW4xKCksIERlY29kZXI6OkVuY29kaW5nRnJvbUhUVFBIZWFkZXIpOwogICAgIGVsc2Ug
ewotICAgICAgLy8gRklYTUU6IEluaGVyaXQgdGhlIGRlZmF1bHQgZW5jb2RpbmcgZnJvbSB0aGUg
cGFyZW50IGRvY3VtZW50PworICAgICAgLy8gb25seSBhbGxvdyBEZWNvZGVyIHRvIGxvb2sgaW5z
aWRlIHRoZSByZXNwb25zZSBpZiBpdCdzIFhNTAorICAgICAgZGVjb2Rlci0+c2V0RW5jb2Rpbmco
IlVURi04IiwgcmVzcG9uc2VJc1hNTCgpID8gRGVjb2Rlcjo6RGVmYXVsdEVuY29kaW5nIDogRGVj
b2Rlcjo6RW5jb2RpbmdGcm9tSFRUUEhlYWRlcik7CiAgICAgfQogICB9CiAgIGlmIChsZW4gPT0g
MCkKSW5kZXg6IGtodG1sL2VjbWEveG1saHR0cHJlcXVlc3QuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxl
OiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9lY21hL3htbGh0dHByZXF1ZXN0LmgsdgpyZXRyaWV2
aW5nIHJldmlzaW9uIDEuMjIKZGlmZiAtcCAtdSAtcjEuMjIga2h0bWwvZWNtYS94bWxodHRwcmVx
dWVzdC5oCi0tLSBraHRtbC9lY21hL3htbGh0dHByZXF1ZXN0LmgJMSBEZWMgMjAwNSAxMDozMjox
MCAtMDAwMAkxLjIyCisrKyBraHRtbC9lY21hL3htbGh0dHByZXF1ZXN0LmgJMiBEZWMgMjAwNSAy
MTo0NTozMSAtMDAwMApAQCAtNDQsMTEgKzQ0LDExIEBAIG5hbWVzcGFjZSBLSlMgewogCiAgIC8v
IHRoZXNlIGV4YWN0IG51bWVyaWMgdmFsdWVzIGFyZSBpbXBvcnRhbnQgYmVjYXVzZSBKUyBleHBl
Y3RzIHRoZW0KICAgZW51bSBYTUxIdHRwUmVxdWVzdFN0YXRlIHsKLSAgICBVbmluaXRpYWxpemVk
ID0gMCwKLSAgICBMb2FkaW5nID0gMSwKLSAgICBMb2FkZWQgPSAyLAotICAgIEludGVyYWN0aXZl
ID0gMywKLSAgICBDb21wbGV0ZWQgPSA0CisgICAgVW5pbml0aWFsaXplZCA9IDAsICAvLyBvcGVu
KCkgaGFzIG5vdCBiZWVuIGNhbGxlZCB5ZXQKKyAgICBMb2FkaW5nID0gMSwgICAgICAgIC8vIHNl
bmQoKSBoYXMgbm90IGJlZW4gY2FsbGVkIHlldAorICAgIExvYWRlZCA9IDIsICAgICAgICAgLy8g
c2VuZCgpIGhhcyBiZWVuIGNhbGxlZCwgaGVhZGVycyBhbmQgc3RhdHVzIGFyZSBhdmFpbGFibGUK
KyAgICBJbnRlcmFjdGl2ZSA9IDMsICAgIC8vIERvd25sb2FkaW5nLCByZXNwb25zZVRleHQgaG9s
ZHMgdGhlIHBhcnRpYWwgZGF0YQorICAgIENvbXBsZXRlZCA9IDQgICAgICAgLy8gRmluaXNoZWQg
d2l0aCBhbGwgb3BlcmF0aW9ucwogICB9OwogCiAgIGNsYXNzIFhNTEh0dHBSZXF1ZXN0Q29uc3Ry
dWN0b3JJbXAgOiBwdWJsaWMgT2JqZWN0SW1wIHsKQEAgLTEwMiw3ICsxMDIsOCBAQCBuYW1lc3Bh
Y2UgS0pTIHsKICAgICB2b2lkIHNldFJlcXVlc3RIZWFkZXIoY29uc3QgUVN0cmluZyYgbmFtZSwg
Y29uc3QgUVN0cmluZyAmdmFsdWUpOwogICAgIFZhbHVlSW1wICpnZXRBbGxSZXNwb25zZUhlYWRl
cnMoKSBjb25zdDsKICAgICBWYWx1ZUltcCAqZ2V0UmVzcG9uc2VIZWFkZXIoY29uc3QgUVN0cmlu
ZyYgbmFtZSkgY29uc3Q7Ci0KKyAgICBib29sIHJlc3BvbnNlSXNYTUwoKSBjb25zdDsKKyAgICAK
ICAgICB2b2lkIGNoYW5nZVN0YXRlKFhNTEh0dHBSZXF1ZXN0U3RhdGUgbmV3U3RhdGUpOwogCiAg
ICAgc3RhdGljIFFQdHJEaWN0PCBRUHRyRGljdDxYTUxIdHRwUmVxdWVzdD4gPiAmcmVxdWVzdHNC
eURvY3VtZW50KCk7Cg==
</data>
<flag name="review"
          id="931"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4920</attachid>
            <date>2005-12-03 13:17:40 -0800</date>
            <delta_ts>2005-12-04 01:03:29 -0800</delta_ts>
            <desc>updated patch</desc>
            <filename>XMLHTTPResponsePatch.txt</filename>
            <type>text/plain</type>
            <size>7346</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IGtodG1sL2VjbWEveG1saHR0cHJlcXVlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6
IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2VjbWEveG1saHR0cHJlcXVlc3QuY3BwLHYKcmV0cmll
dmluZyByZXZpc2lvbiAxLjQ5CmRpZmYgLXAgLXUgLXIxLjQ5IGtodG1sL2VjbWEveG1saHR0cHJl
cXVlc3QuY3BwCi0tLSBraHRtbC9lY21hL3htbGh0dHByZXF1ZXN0LmNwcAkyIERlYyAyMDA1IDAz
OjQ4OjA2IC0wMDAwCTEuNDkKKysrIGtodG1sL2VjbWEveG1saHR0cHJlcXVlc3QuY3BwCTMgRGVj
IDIwMDUgMjE6MTg6MTAgLTAwMDAKQEAgLTQ5LDYgKzQ5LDQ1IEBAIHVzaW5nIG5hbWVzcGFjZSBE
T006OkV2ZW50TmFtZXM7CiAKIHVzaW5nIGtodG1sOjpEZWNvZGVyOwogCitzdGF0aWMgaW5saW5l
IFFTdHJpbmcgZ2V0TUlNRVR5cGUoY29uc3QgUVN0cmluZyYgY29udGVudFR5cGVTdHJpbmcpCit7
CisgICAgcmV0dXJuIFFTdHJpbmdMaXN0OjpzcGxpdCgiOyIsIGNvbnRlbnRUeXBlU3RyaW5nLCB0
cnVlKVswXS5zdHJpcFdoaXRlU3BhY2UoKTsKK30KKworc3RhdGljIFFTdHJpbmcgZ2V0Q2hhcnNl
dChjb25zdCBRU3RyaW5nJiBjb250ZW50VHlwZVN0cmluZykKK3sKKyAgICBpbnQgcG9zID0gMDsK
KyAgICAKKyAgICB3aGlsZSAocG9zIDwgKGludCljb250ZW50VHlwZVN0cmluZy5sZW5ndGgoKSkg
eworICAgICAgICBwb3MgPSBjb250ZW50VHlwZVN0cmluZy5maW5kKCJjaGFyc2V0IiwgcG9zLCBm
YWxzZSk7CisgICAgICAgIGlmIChwb3MgPT0gLTEpCisgICAgICAgICAgICByZXR1cm4gUVN0cmlu
ZygpOworICAgIAorICAgICAgICBwb3MgKz0gNzsgLy8gc3RybGVuKCJjaGFyc2V0IikKKworICAg
ICAgICAvLyBza2lwIHdoaXRlc3BhY2UuLgorICAgICAgICB3aGlsZSAoY29udGVudFR5cGVTdHJp
bmdbcG9zXSA8PSAnICcpCisgICAgICAgICAgICBpZiAoKytwb3MgPT0gKGludCljb250ZW50VHlw
ZVN0cmluZy5sZW5ndGgoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gUVN0cmluZygpOworICAg
IAorICAgICAgICBpZiAoY29udGVudFR5cGVTdHJpbmdbcG9zKytdICE9ICc9JykKKyAgICAgICAg
ICAgIGNvbnRpbnVlOworCisgICAgICAgIHdoaWxlIChjb250ZW50VHlwZVN0cmluZ1twb3NdIDw9
ICcgJyB8fCBjb250ZW50VHlwZVN0cmluZ1twb3NdID09ICc9JyB8fCBjb250ZW50VHlwZVN0cmlu
Z1twb3NdID09ICciJyB8fCBjb250ZW50VHlwZVN0cmluZ1twb3NdID09ICdcJycpCisgICAgICAg
ICAgICBpZiAoKytwb3MgPT0gKGludCljb250ZW50VHlwZVN0cmluZy5sZW5ndGgoKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gUVN0cmluZygpOworCisgICAgICAgIGludCBlbmRwb3MgPSBwb3M7
CisgICAgICAgIHdoaWxlIChjb250ZW50VHlwZVN0cmluZ1tlbmRwb3NdICE9ICcgJyAmJiBjb250
ZW50VHlwZVN0cmluZ1tlbmRwb3NdICE9ICciJyAmJiBjb250ZW50VHlwZVN0cmluZ1tlbmRwb3Nd
ICE9ICdcJycgJiYgY29udGVudFR5cGVTdHJpbmdbZW5kcG9zXSAhPSAnOycpCisgICAgICAgICAg
ICBpZiAoKytlbmRwb3MgPT0gKGludCljb250ZW50VHlwZVN0cmluZy5sZW5ndGgoKSkKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAKKyAgICAgICAgcmV0dXJuIGNvbnRlbnRUeXBlU3RyaW5n
Lm1pZChwb3MsIGVuZHBvcy1wb3MpOworICAgIH0KKyAgICAKKyAgICByZXR1cm4gUVN0cmluZygp
OworfQorCiBuYW1lc3BhY2UgS0pTIHsKIAogLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBYTUxIdHRw
UmVxdWVzdCBPYmplY3QgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCkBAIC0xMzcsMjEgKzE3Niw5
IEBAIFZhbHVlSW1wICpYTUxIdHRwUmVxdWVzdDo6Z2V0VmFsdWVQcm9wZXIKICAgICBpZiAoc3Rh
dGUgIT0gQ29tcGxldGVkKSB7CiAgICAgICByZXR1cm4gVW5kZWZpbmVkKCk7CiAgICAgfQorCiAg
ICAgaWYgKCFjcmVhdGVkRG9jdW1lbnQpIHsKLSAgICAgIFFTdHJpbmcgbWltZVR5cGU7Ci0gICAg
ICAKLSAgICAgIGlmIChNSU1FVHlwZU92ZXJyaWRlLmlzRW1wdHkoKSkgewotICAgICAgICBWYWx1
ZUltcCAqaGVhZGVyID0gZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtVHlwZSIpOwotICAgICAg
ICBpZiAoaGVhZGVyLT5pc1VuZGVmaW5lZCgpKSB7Ci0gICAgICAgICAgbWltZVR5cGUgPSAidGV4
dC94bWwiOwotICAgICAgICB9IGVsc2UgewotCSAgbWltZVR5cGUgPSBRU3RyaW5nTGlzdDo6c3Bs
aXQoIjsiLCBoZWFkZXItPnRvU3RyaW5nKGV4ZWMpLnFzdHJpbmcoKSwgdHJ1ZSlbMF0uc3RyaXBX
aGl0ZVNwYWNlKCk7Ci0gICAgICAgIH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIG1pbWVUeXBl
ID0gTUlNRVR5cGVPdmVycmlkZTsKLSAgICAgIH0KLSAgICAgIAotICAgICAgaWYgKHR5cGVJc1hN
TCA9IERPTUltcGxlbWVudGF0aW9uSW1wbDo6aXNYTUxNSU1FVHlwZShtaW1lVHlwZSkpIHsKKyAg
ICAgIGlmICh0eXBlSXNYTUwgPSByZXNwb25zZUlzWE1MKCkpIHsKIAlyZXNwb25zZVhNTCA9IGRv
Yy0+aW1wbGVtZW50YXRpb24oKS0+Y3JlYXRlRG9jdW1lbnQoKTsKIAogCURvY3VtZW50SW1wbCAq
ZG9jSW1wbCA9IHJlc3BvbnNlWE1MLmdldCgpOwpAQCAtNDIyLDExICs0NDksMTAgQEAgVmFsdWVJ
bXAgKlhNTEh0dHBSZXF1ZXN0OjpnZXRBbGxSZXNwb25zZQogICByZXR1cm4gU3RyaW5nKHJlc3Bv
bnNlSGVhZGVycy5taWQoZW5kT2ZMaW5lICsgMSkgKyAiXG4iKTsKIH0KIAotVmFsdWVJbXAgKlhN
TEh0dHBSZXF1ZXN0OjpnZXRSZXNwb25zZUhlYWRlcihjb25zdCBRU3RyaW5nJiBuYW1lKSBjb25z
dAorYm9vbCBYTUxIdHRwUmVxdWVzdDo6Z2V0UmVzcG9uc2VIZWFkZXIoY29uc3QgUVN0cmluZyYg
bmFtZSwgUVN0cmluZyYgdmFsdWUpIGNvbnN0CiB7Ci0gIGlmIChyZXNwb25zZUhlYWRlcnMuaXNF
bXB0eSgpKSB7Ci0gICAgcmV0dXJuIFVuZGVmaW5lZCgpOwotICB9CisgIGlmIChyZXNwb25zZUhl
YWRlcnMuaXNFbXB0eSgpKQorICAgIHJldHVybiBmYWxzZTsKIAogICBRUmVnRXhwIGhlYWRlckxp
bmVQYXR0ZXJuKG5hbWUgKyAiOiIsIGZhbHNlKTsKIApAQCAtNDQwLDE0ICs0NjYsMjcgQEAgVmFs
dWVJbXAgKlhNTEh0dHBSZXF1ZXN0OjpnZXRSZXNwb25zZUhlYQogICAgIGhlYWRlckxpbmVQb3Mg
PSBoZWFkZXJMaW5lUGF0dGVybi5tYXRjaChyZXNwb25zZUhlYWRlcnMsIGhlYWRlckxpbmVQb3Mg
KyAxLCAmbWF0Y2hMZW5ndGgpOwogICB9CiAKLQotICBpZiAoaGVhZGVyTGluZVBvcyA9PSAtMSkg
ewotICAgIHJldHVybiBVbmRlZmluZWQoKTsKLSAgfQorICBpZiAoaGVhZGVyTGluZVBvcyA9PSAt
MSkKKyAgICByZXR1cm4gZmFsc2U7CiAgICAgCiAgIGludCBlbmRPZkxpbmUgPSByZXNwb25zZUhl
YWRlcnMuZmluZCgiXG4iLCBoZWFkZXJMaW5lUG9zICsgbWF0Y2hMZW5ndGgpOworICB2YWx1ZSA9
IHJlc3BvbnNlSGVhZGVycy5taWQoaGVhZGVyTGluZVBvcyArIG1hdGNoTGVuZ3RoLCBlbmRPZkxp
bmUgLSAoaGVhZGVyTGluZVBvcyArIG1hdGNoTGVuZ3RoKSkuc3RyaXBXaGl0ZVNwYWNlKCk7Cisg
IAorICByZXR1cm4gdHJ1ZTsKK30KIAotICByZXR1cm4gU3RyaW5nKHJlc3BvbnNlSGVhZGVycy5t
aWQoaGVhZGVyTGluZVBvcyArIG1hdGNoTGVuZ3RoLCBlbmRPZkxpbmUgLSAoaGVhZGVyTGluZVBv
cyArIG1hdGNoTGVuZ3RoKSkuc3RyaXBXaGl0ZVNwYWNlKCkpOworYm9vbCBYTUxIdHRwUmVxdWVz
dDo6cmVzcG9uc2VJc1hNTCgpIGNvbnN0Cit7CisgICAgUVN0cmluZyBtaW1lVHlwZSA9IGdldE1J
TUVUeXBlKE1JTUVUeXBlT3ZlcnJpZGUpOworICAgIGlmIChtaW1lVHlwZS5pc0VtcHR5KCkpIHsK
KyAgICAgIFFTdHJpbmcgY29udGVudFR5cGU7CisgICAgICBpZiAoZ2V0UmVzcG9uc2VIZWFkZXIo
IkNvbnRlbnQtVHlwZSIsIGNvbnRlbnRUeXBlKSkKKyAgICAgICAgbWltZVR5cGUgPSBnZXRNSU1F
VHlwZShjb250ZW50VHlwZSk7CisgICAgfQorICAgIGlmIChtaW1lVHlwZS5pc0VtcHR5KCkpCisg
ICAgICBtaW1lVHlwZSA9ICJ0ZXh0L3htbCI7CisgICAgCisgICAgcmV0dXJuIERPTUltcGxlbWVu
dGF0aW9uSW1wbDo6aXNYTUxNSU1FVHlwZShtaW1lVHlwZSk7CiB9CiAKIFZhbHVlSW1wICpYTUxI
dHRwUmVxdWVzdDo6Z2V0U3RhdHVzKCkgY29uc3QKQEAgLTU0OCwyMSArNTg3LDMwIEBAIHZvaWQg
WE1MSHR0cFJlcXVlc3Q6OnNsb3RSZWRpcmVjdGlvbihLSU8KICAgfQogfQogCi12b2lkIFhNTEh0
dHBSZXF1ZXN0OjpzbG90RGF0YSggS0lPOjpKb2IqLCBjb25zdCBjaGFyICpkYXRhLCBpbnQgbGVu
ICkKK3ZvaWQgWE1MSHR0cFJlcXVlc3Q6OnNsb3REYXRhKEtJTzo6Sm9iKiwgY29uc3QgY2hhciAq
ZGF0YSwgaW50IGxlbikKIHsKLSAgaWYgKHN0YXRlIDwgTG9hZGVkKSB7CisgIGlmIChyZXNwb25z
ZUhlYWRlcnMuaXNFbXB0eSgpICYmIGpvYikKICAgICByZXNwb25zZUhlYWRlcnMgPSBqb2ItPnF1
ZXJ5TWV0YURhdGEoIkhUVFAtSGVhZGVycyIpOwotICAgIGVuY29kaW5nID0gam9iLT5xdWVyeU1l
dGFEYXRhKCJjaGFyc2V0Iik7CisKKyAgaWYgKHN0YXRlIDwgTG9hZGVkKQogICAgIGNoYW5nZVN0
YXRlKExvYWRlZCk7Ci0gIH0KICAgCi0KLSAgaWYgKCBkZWNvZGVyID09IE5VTEwgKSB7CisgIGlm
IChkZWNvZGVyID09IE5VTEwpIHsKKyAgICBlbmNvZGluZyA9IGdldENoYXJzZXQoTUlNRVR5cGVP
dmVycmlkZSk7CisgICAgaWYgKGVuY29kaW5nLmlzRW1wdHkoKSkgeworICAgICAgUVN0cmluZyBj
b250ZW50VHlwZTsKKyAgICAgIGlmIChnZXRSZXNwb25zZUhlYWRlcigiQ29udGVudC1UeXBlIiwg
Y29udGVudFR5cGUpKQorICAgICAgICBlbmNvZGluZyA9IGdldENoYXJzZXQoY29udGVudFR5cGUp
OworICAgIH0KKyAgICBpZiAoZW5jb2RpbmcuaXNFbXB0eSgpICYmIGpvYikKKyAgICAgIGVuY29k
aW5nID0gam9iLT5xdWVyeU1ldGFEYXRhKCJjaGFyc2V0Iik7CisgICAgCiAgICAgZGVjb2RlciA9
IG5ldyBEZWNvZGVyOwotICAgIGlmICghZW5jb2RpbmcuaXNOdWxsKCkpCisgICAgaWYgKCFlbmNv
ZGluZy5pc0VtcHR5KCkpCiAgICAgICBkZWNvZGVyLT5zZXRFbmNvZGluZyhlbmNvZGluZy5sYXRp
bjEoKSwgRGVjb2Rlcjo6RW5jb2RpbmdGcm9tSFRUUEhlYWRlcik7CiAgICAgZWxzZSB7Ci0gICAg
ICAvLyBGSVhNRTogSW5oZXJpdCB0aGUgZGVmYXVsdCBlbmNvZGluZyBmcm9tIHRoZSBwYXJlbnQg
ZG9jdW1lbnQ/CisgICAgICAvLyBvbmx5IGFsbG93IERlY29kZXIgdG8gbG9vayBpbnNpZGUgdGhl
IHJlc3BvbnNlIGlmIGl0J3MgWE1MCisgICAgICBkZWNvZGVyLT5zZXRFbmNvZGluZygiVVRGLTgi
LCByZXNwb25zZUlzWE1MKCkgPyBEZWNvZGVyOjpEZWZhdWx0RW5jb2RpbmcgOiBEZWNvZGVyOjpF
bmNvZGluZ0Zyb21IVFRQSGVhZGVyKTsKICAgICB9CiAgIH0KICAgaWYgKGxlbiA9PSAwKQpAQCAt
NjQ3LDggKzY5NSwxMiBAQCBWYWx1ZUltcCAqWE1MSHR0cFJlcXVlc3RQcm90b0Z1bmM6OmNhbGxB
CiAgICAgaWYgKGFyZ3Muc2l6ZSgpICE9IDEpIHsKICAgICAgIHJldHVybiBVbmRlZmluZWQoKTsK
ICAgICB9CisgICAgCisgICAgUVN0cmluZyBoZWFkZXI7CisgICAgaWYgKCFyZXF1ZXN0LT5nZXRS
ZXNwb25zZUhlYWRlcihhcmdzWzBdLT50b1N0cmluZyhleGVjKS5xc3RyaW5nKCksIGhlYWRlcikp
CisgICAgICByZXR1cm4gVW5kZWZpbmVkKCk7CiAKLSAgICByZXR1cm4gcmVxdWVzdC0+Z2V0UmVz
cG9uc2VIZWFkZXIoYXJnc1swXS0+dG9TdHJpbmcoZXhlYykucXN0cmluZygpKTsKKyAgICByZXR1
cm4ganNTdHJpbmcoaGVhZGVyKTsKICAgfQogICBjYXNlIFhNTEh0dHBSZXF1ZXN0OjpPcGVuOgog
ICAgIHsKSW5kZXg6IGtodG1sL2VjbWEveG1saHR0cHJlcXVlc3QuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm
aWxlOiAvY3ZzL3Jvb3QvV2ViQ29yZS9raHRtbC9lY21hL3htbGh0dHByZXF1ZXN0LmgsdgpyZXRy
aWV2aW5nIHJldmlzaW9uIDEuMjIKZGlmZiAtcCAtdSAtcjEuMjIga2h0bWwvZWNtYS94bWxodHRw
cmVxdWVzdC5oCi0tLSBraHRtbC9lY21hL3htbGh0dHByZXF1ZXN0LmgJMSBEZWMgMjAwNSAxMDoz
MjoxMCAtMDAwMAkxLjIyCisrKyBraHRtbC9lY21hL3htbGh0dHByZXF1ZXN0LmgJMyBEZWMgMjAw
NSAyMToxODoxNiAtMDAwMApAQCAtNDQsMTEgKzQ0LDExIEBAIG5hbWVzcGFjZSBLSlMgewogCiAg
IC8vIHRoZXNlIGV4YWN0IG51bWVyaWMgdmFsdWVzIGFyZSBpbXBvcnRhbnQgYmVjYXVzZSBKUyBl
eHBlY3RzIHRoZW0KICAgZW51bSBYTUxIdHRwUmVxdWVzdFN0YXRlIHsKLSAgICBVbmluaXRpYWxp
emVkID0gMCwKLSAgICBMb2FkaW5nID0gMSwKLSAgICBMb2FkZWQgPSAyLAotICAgIEludGVyYWN0
aXZlID0gMywKLSAgICBDb21wbGV0ZWQgPSA0CisgICAgVW5pbml0aWFsaXplZCA9IDAsICAvLyBv
cGVuKCkgaGFzIG5vdCBiZWVuIGNhbGxlZCB5ZXQKKyAgICBMb2FkaW5nID0gMSwgICAgICAgIC8v
IHNlbmQoKSBoYXMgbm90IGJlZW4gY2FsbGVkIHlldAorICAgIExvYWRlZCA9IDIsICAgICAgICAg
Ly8gc2VuZCgpIGhhcyBiZWVuIGNhbGxlZCwgaGVhZGVycyBhbmQgc3RhdHVzIGFyZSBhdmFpbGFi
bGUKKyAgICBJbnRlcmFjdGl2ZSA9IDMsICAgIC8vIERvd25sb2FkaW5nLCByZXNwb25zZVRleHQg
aG9sZHMgdGhlIHBhcnRpYWwgZGF0YQorICAgIENvbXBsZXRlZCA9IDQgICAgICAgLy8gRmluaXNo
ZWQgd2l0aCBhbGwgb3BlcmF0aW9ucwogICB9OwogCiAgIGNsYXNzIFhNTEh0dHBSZXF1ZXN0Q29u
c3RydWN0b3JJbXAgOiBwdWJsaWMgT2JqZWN0SW1wIHsKQEAgLTEwMSw4ICsxMDEsOSBAQCBuYW1l
c3BhY2UgS0pTIHsKICAgICB2b2lkIGFib3J0KCk7CiAgICAgdm9pZCBzZXRSZXF1ZXN0SGVhZGVy
KGNvbnN0IFFTdHJpbmcmIG5hbWUsIGNvbnN0IFFTdHJpbmcgJnZhbHVlKTsKICAgICBWYWx1ZUlt
cCAqZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkgY29uc3Q7Ci0gICAgVmFsdWVJbXAgKmdldFJlc3Bv
bnNlSGVhZGVyKGNvbnN0IFFTdHJpbmcmIG5hbWUpIGNvbnN0OwotCisgICAgYm9vbCBnZXRSZXNw
b25zZUhlYWRlcihjb25zdCBRU3RyaW5nJiBuYW1lLCBRU3RyaW5nJiB2YWx1ZSkgY29uc3Q7Cisg
ICAgYm9vbCByZXNwb25zZUlzWE1MKCkgY29uc3Q7CisgICAgCiAgICAgdm9pZCBjaGFuZ2VTdGF0
ZShYTUxIdHRwUmVxdWVzdFN0YXRlIG5ld1N0YXRlKTsKIAogICAgIHN0YXRpYyBRUHRyRGljdDwg
UVB0ckRpY3Q8WE1MSHR0cFJlcXVlc3Q+ID4gJnJlcXVlc3RzQnlEb2N1bWVudCgpOwo=
</data>
<flag name="review"
          id="936"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4925</attachid>
            <date>2005-12-04 01:03:29 -0800</date>
            <delta_ts>2005-12-04 07:06:16 -0800</delta_ts>
            <desc>updated patch</desc>
            <filename>XMLHTTPResponsePatch.txt</filename>
            <type>text/plain</type>
            <size>7360</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IGtodG1sL2VjbWEveG1saHR0cHJlcXVlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6
IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2VjbWEveG1saHR0cHJlcXVlc3QuY3BwLHYKcmV0cmll
dmluZyByZXZpc2lvbiAxLjQ5CmRpZmYgLXAgLXUgLXIxLjQ5IGtodG1sL2VjbWEveG1saHR0cHJl
cXVlc3QuY3BwCi0tLSBraHRtbC9lY21hL3htbGh0dHByZXF1ZXN0LmNwcAkyIERlYyAyMDA1IDAz
OjQ4OjA2IC0wMDAwCTEuNDkKKysrIGtodG1sL2VjbWEveG1saHR0cHJlcXVlc3QuY3BwCTQgRGVj
IDIwMDUgMDk6MDc6MzcgLTAwMDAKQEAgLTQ5LDYgKzQ5LDQ0IEBAIHVzaW5nIG5hbWVzcGFjZSBE
T006OkV2ZW50TmFtZXM7CiAKIHVzaW5nIGtodG1sOjpEZWNvZGVyOwogCitzdGF0aWMgaW5saW5l
IFFTdHJpbmcgZ2V0TUlNRVR5cGUoY29uc3QgUVN0cmluZyYgY29udGVudFR5cGVTdHJpbmcpCit7
CisgICAgcmV0dXJuIFFTdHJpbmdMaXN0OjpzcGxpdCgiOyIsIGNvbnRlbnRUeXBlU3RyaW5nLCB0
cnVlKVswXS5zdHJpcFdoaXRlU3BhY2UoKTsKK30KKworc3RhdGljIFFTdHJpbmcgZ2V0Q2hhcnNl
dChjb25zdCBRU3RyaW5nJiBjb250ZW50VHlwZVN0cmluZykKK3sKKyAgICBpbnQgcG9zID0gMDsK
KyAgICBpbnQgbGVuZ3RoID0gKGludCljb250ZW50VHlwZVN0cmluZy5sZW5ndGgoKTsKKyAgICAK
KyAgICB3aGlsZSAocG9zIDwgbGVuZ3RoKSB7CisgICAgICAgIHBvcyA9IGNvbnRlbnRUeXBlU3Ry
aW5nLmZpbmQoImNoYXJzZXQiLCBwb3MsIGZhbHNlKTsKKyAgICAgICAgaWYgKHBvcyA9PSAtMSkK
KyAgICAgICAgICAgIHJldHVybiBRU3RyaW5nKCk7CisgICAgCisgICAgICAgIHBvcyArPSA3OyAv
LyBzdHJsZW4oImNoYXJzZXQiKQorCisgICAgICAgIC8vIHNraXAgd2hpdGVzcGFjZQorICAgICAg
ICB3aGlsZSAocG9zICE9IGxlbmd0aCAmJiBjb250ZW50VHlwZVN0cmluZ1twb3NdIDw9ICcgJykK
KyAgICAgICAgICAgICsrcG9zOworICAgIAorICAgICAgICBpZiAoY29udGVudFR5cGVTdHJpbmdb
cG9zKytdICE9ICc9JykgLy8gdGhpcyAiY2hhcnNldCIgc3Vic3RyaW5nIHdhc24ndCBhIHBhcmFt
ZXRlciBuYW1lLCBidXQgdGhlcmUgbWF5IGJlIG90aGVycworICAgICAgICAgICAgY29udGludWU7
CisKKyAgICAgICAgd2hpbGUgKHBvcyAhPSBsZW5ndGggJiYgKGNvbnRlbnRUeXBlU3RyaW5nW3Bv
c10gPD0gJyAnIHx8IGNvbnRlbnRUeXBlU3RyaW5nW3Bvc10gPT0gJyInIHx8IGNvbnRlbnRUeXBl
U3RyaW5nW3Bvc10gPT0gJ1wnJykpCisgICAgICAgICAgICArK3BvczsKKworICAgICAgICAvLyB3
ZSBkb24ndCBoYW5kbGUgc3BhY2VzIHdpdGhpbiBxdW90ZWQgcGFyYW1ldGVyIHZhbHVlcywgYmVj
YXVzZSBjaGFyc2V0IG5hbWVzIGNhbm5vdCBoYXZlIGFueQorICAgICAgICBpbnQgZW5kcG9zID0g
cG9zOworICAgICAgICB3aGlsZSAocG9zICE9IGxlbmd0aCAmJiBjb250ZW50VHlwZVN0cmluZ1tl
bmRwb3NdID4gJyAnICYmIGNvbnRlbnRUeXBlU3RyaW5nW2VuZHBvc10gIT0gJyInICYmIGNvbnRl
bnRUeXBlU3RyaW5nW2VuZHBvc10gIT0gJ1wnJyAmJiBjb250ZW50VHlwZVN0cmluZ1tlbmRwb3Nd
ICE9ICc7JykKKyAgICAgICAgICAgICsrZW5kcG9zOworICAgIAorICAgICAgICByZXR1cm4gY29u
dGVudFR5cGVTdHJpbmcubWlkKHBvcywgZW5kcG9zLXBvcyk7CisgICAgfQorICAgIAorICAgIHJl
dHVybiBRU3RyaW5nKCk7Cit9CisKIG5hbWVzcGFjZSBLSlMgewogCiAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vIFhNTEh0dHBSZXF1ZXN0IE9iamVjdCAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KQEAg
LTEzNywyMSArMTc1LDkgQEAgVmFsdWVJbXAgKlhNTEh0dHBSZXF1ZXN0OjpnZXRWYWx1ZVByb3Bl
cgogICAgIGlmIChzdGF0ZSAhPSBDb21wbGV0ZWQpIHsKICAgICAgIHJldHVybiBVbmRlZmluZWQo
KTsKICAgICB9CisKICAgICBpZiAoIWNyZWF0ZWREb2N1bWVudCkgewotICAgICAgUVN0cmluZyBt
aW1lVHlwZTsKLSAgICAgIAotICAgICAgaWYgKE1JTUVUeXBlT3ZlcnJpZGUuaXNFbXB0eSgpKSB7
Ci0gICAgICAgIFZhbHVlSW1wICpoZWFkZXIgPSBnZXRSZXNwb25zZUhlYWRlcigiQ29udGVudC1U
eXBlIik7Ci0gICAgICAgIGlmIChoZWFkZXItPmlzVW5kZWZpbmVkKCkpIHsKLSAgICAgICAgICBt
aW1lVHlwZSA9ICJ0ZXh0L3htbCI7Ci0gICAgICAgIH0gZWxzZSB7Ci0JICBtaW1lVHlwZSA9IFFT
dHJpbmdMaXN0OjpzcGxpdCgiOyIsIGhlYWRlci0+dG9TdHJpbmcoZXhlYykucXN0cmluZygpLCB0
cnVlKVswXS5zdHJpcFdoaXRlU3BhY2UoKTsKLSAgICAgICAgfQotICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgbWltZVR5cGUgPSBNSU1FVHlwZU92ZXJyaWRlOwotICAgICAgfQotICAgICAgCi0gICAg
ICBpZiAodHlwZUlzWE1MID0gRE9NSW1wbGVtZW50YXRpb25JbXBsOjppc1hNTE1JTUVUeXBlKG1p
bWVUeXBlKSkgeworICAgICAgaWYgKHR5cGVJc1hNTCA9IHJlc3BvbnNlSXNYTUwoKSkgewogCXJl
c3BvbnNlWE1MID0gZG9jLT5pbXBsZW1lbnRhdGlvbigpLT5jcmVhdGVEb2N1bWVudCgpOwogCiAJ
RG9jdW1lbnRJbXBsICpkb2NJbXBsID0gcmVzcG9uc2VYTUwuZ2V0KCk7CkBAIC00MjIsMTEgKzQ0
OCwxMCBAQCBWYWx1ZUltcCAqWE1MSHR0cFJlcXVlc3Q6OmdldEFsbFJlc3BvbnNlCiAgIHJldHVy
biBTdHJpbmcocmVzcG9uc2VIZWFkZXJzLm1pZChlbmRPZkxpbmUgKyAxKSArICJcbiIpOwogfQog
Ci1WYWx1ZUltcCAqWE1MSHR0cFJlcXVlc3Q6OmdldFJlc3BvbnNlSGVhZGVyKGNvbnN0IFFTdHJp
bmcmIG5hbWUpIGNvbnN0Citib29sIFhNTEh0dHBSZXF1ZXN0OjpnZXRSZXNwb25zZUhlYWRlcihj
b25zdCBRU3RyaW5nJiBuYW1lLCBRU3RyaW5nJiB2YWx1ZSkgY29uc3QKIHsKLSAgaWYgKHJlc3Bv
bnNlSGVhZGVycy5pc0VtcHR5KCkpIHsKLSAgICByZXR1cm4gVW5kZWZpbmVkKCk7Ci0gIH0KKyAg
aWYgKHJlc3BvbnNlSGVhZGVycy5pc0VtcHR5KCkpCisgICAgcmV0dXJuIGZhbHNlOwogCiAgIFFS
ZWdFeHAgaGVhZGVyTGluZVBhdHRlcm4obmFtZSArICI6IiwgZmFsc2UpOwogCkBAIC00NDAsMTQg
KzQ2NSwyNyBAQCBWYWx1ZUltcCAqWE1MSHR0cFJlcXVlc3Q6OmdldFJlc3BvbnNlSGVhCiAgICAg
aGVhZGVyTGluZVBvcyA9IGhlYWRlckxpbmVQYXR0ZXJuLm1hdGNoKHJlc3BvbnNlSGVhZGVycywg
aGVhZGVyTGluZVBvcyArIDEsICZtYXRjaExlbmd0aCk7CiAgIH0KIAotCi0gIGlmIChoZWFkZXJM
aW5lUG9zID09IC0xKSB7Ci0gICAgcmV0dXJuIFVuZGVmaW5lZCgpOwotICB9CisgIGlmIChoZWFk
ZXJMaW5lUG9zID09IC0xKQorICAgIHJldHVybiBmYWxzZTsKICAgICAKICAgaW50IGVuZE9mTGlu
ZSA9IHJlc3BvbnNlSGVhZGVycy5maW5kKCJcbiIsIGhlYWRlckxpbmVQb3MgKyBtYXRjaExlbmd0
aCk7CisgIHZhbHVlID0gcmVzcG9uc2VIZWFkZXJzLm1pZChoZWFkZXJMaW5lUG9zICsgbWF0Y2hM
ZW5ndGgsIGVuZE9mTGluZSAtIChoZWFkZXJMaW5lUG9zICsgbWF0Y2hMZW5ndGgpKS5zdHJpcFdo
aXRlU3BhY2UoKTsKKyAgCisgIHJldHVybiB0cnVlOworfQogCi0gIHJldHVybiBTdHJpbmcocmVz
cG9uc2VIZWFkZXJzLm1pZChoZWFkZXJMaW5lUG9zICsgbWF0Y2hMZW5ndGgsIGVuZE9mTGluZSAt
IChoZWFkZXJMaW5lUG9zICsgbWF0Y2hMZW5ndGgpKS5zdHJpcFdoaXRlU3BhY2UoKSk7Citib29s
IFhNTEh0dHBSZXF1ZXN0OjpyZXNwb25zZUlzWE1MKCkgY29uc3QKK3sKKyAgICBRU3RyaW5nIG1p
bWVUeXBlID0gZ2V0TUlNRVR5cGUoTUlNRVR5cGVPdmVycmlkZSk7CisgICAgaWYgKG1pbWVUeXBl
LmlzRW1wdHkoKSkgeworICAgICAgUVN0cmluZyBjb250ZW50VHlwZTsKKyAgICAgIGlmIChnZXRS
ZXNwb25zZUhlYWRlcigiQ29udGVudC1UeXBlIiwgY29udGVudFR5cGUpKQorICAgICAgICBtaW1l
VHlwZSA9IGdldE1JTUVUeXBlKGNvbnRlbnRUeXBlKTsKKyAgICB9CisgICAgaWYgKG1pbWVUeXBl
LmlzRW1wdHkoKSkKKyAgICAgIG1pbWVUeXBlID0gInRleHQveG1sIjsKKyAgICAKKyAgICByZXR1
cm4gRE9NSW1wbGVtZW50YXRpb25JbXBsOjppc1hNTE1JTUVUeXBlKG1pbWVUeXBlKTsKIH0KIAog
VmFsdWVJbXAgKlhNTEh0dHBSZXF1ZXN0OjpnZXRTdGF0dXMoKSBjb25zdApAQCAtNTQ4LDIxICs1
ODYsMzAgQEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6c2xvdFJlZGlyZWN0aW9uKEtJTwogICB9CiB9
CiAKLXZvaWQgWE1MSHR0cFJlcXVlc3Q6OnNsb3REYXRhKCBLSU86OkpvYiosIGNvbnN0IGNoYXIg
KmRhdGEsIGludCBsZW4gKQordm9pZCBYTUxIdHRwUmVxdWVzdDo6c2xvdERhdGEoS0lPOjpKb2Iq
LCBjb25zdCBjaGFyICpkYXRhLCBpbnQgbGVuKQogewotICBpZiAoc3RhdGUgPCBMb2FkZWQpIHsK
KyAgaWYgKHJlc3BvbnNlSGVhZGVycy5pc0VtcHR5KCkgJiYgam9iKQogICAgIHJlc3BvbnNlSGVh
ZGVycyA9IGpvYi0+cXVlcnlNZXRhRGF0YSgiSFRUUC1IZWFkZXJzIik7Ci0gICAgZW5jb2Rpbmcg
PSBqb2ItPnF1ZXJ5TWV0YURhdGEoImNoYXJzZXQiKTsKKworICBpZiAoc3RhdGUgPCBMb2FkZWQp
CiAgICAgY2hhbmdlU3RhdGUoTG9hZGVkKTsKLSAgfQogICAKLQotICBpZiAoIGRlY29kZXIgPT0g
TlVMTCApIHsKKyAgaWYgKGRlY29kZXIgPT0gTlVMTCkgeworICAgIGVuY29kaW5nID0gZ2V0Q2hh
cnNldChNSU1FVHlwZU92ZXJyaWRlKTsKKyAgICBpZiAoZW5jb2RpbmcuaXNFbXB0eSgpKSB7Cisg
ICAgICBRU3RyaW5nIGNvbnRlbnRUeXBlOworICAgICAgaWYgKGdldFJlc3BvbnNlSGVhZGVyKCJD
b250ZW50LVR5cGUiLCBjb250ZW50VHlwZSkpCisgICAgICAgIGVuY29kaW5nID0gZ2V0Q2hhcnNl
dChjb250ZW50VHlwZSk7CisgICAgfQorICAgIGlmIChlbmNvZGluZy5pc0VtcHR5KCkgJiYgam9i
KQorICAgICAgZW5jb2RpbmcgPSBqb2ItPnF1ZXJ5TWV0YURhdGEoImNoYXJzZXQiKTsKKyAgICAK
ICAgICBkZWNvZGVyID0gbmV3IERlY29kZXI7Ci0gICAgaWYgKCFlbmNvZGluZy5pc051bGwoKSkK
KyAgICBpZiAoIWVuY29kaW5nLmlzRW1wdHkoKSkKICAgICAgIGRlY29kZXItPnNldEVuY29kaW5n
KGVuY29kaW5nLmxhdGluMSgpLCBEZWNvZGVyOjpFbmNvZGluZ0Zyb21IVFRQSGVhZGVyKTsKICAg
ICBlbHNlIHsKLSAgICAgIC8vIEZJWE1FOiBJbmhlcml0IHRoZSBkZWZhdWx0IGVuY29kaW5nIGZy
b20gdGhlIHBhcmVudCBkb2N1bWVudD8KKyAgICAgIC8vIG9ubHkgYWxsb3cgRGVjb2RlciB0byBs
b29rIGluc2lkZSB0aGUgcmVzcG9uc2UgaWYgaXQncyBYTUwKKyAgICAgIGRlY29kZXItPnNldEVu
Y29kaW5nKCJVVEYtOCIsIHJlc3BvbnNlSXNYTUwoKSA/IERlY29kZXI6OkRlZmF1bHRFbmNvZGlu
ZyA6IERlY29kZXI6OkVuY29kaW5nRnJvbUhUVFBIZWFkZXIpOwogICAgIH0KICAgfQogICBpZiAo
bGVuID09IDApCkBAIC02NDcsOCArNjk0LDEyIEBAIFZhbHVlSW1wICpYTUxIdHRwUmVxdWVzdFBy
b3RvRnVuYzo6Y2FsbEEKICAgICBpZiAoYXJncy5zaXplKCkgIT0gMSkgewogICAgICAgcmV0dXJu
IFVuZGVmaW5lZCgpOwogICAgIH0KKyAgICAKKyAgICBRU3RyaW5nIGhlYWRlcjsKKyAgICBpZiAo
IXJlcXVlc3QtPmdldFJlc3BvbnNlSGVhZGVyKGFyZ3NbMF0tPnRvU3RyaW5nKGV4ZWMpLnFzdHJp
bmcoKSwgaGVhZGVyKSkKKyAgICAgIHJldHVybiBVbmRlZmluZWQoKTsKIAotICAgIHJldHVybiBy
ZXF1ZXN0LT5nZXRSZXNwb25zZUhlYWRlcihhcmdzWzBdLT50b1N0cmluZyhleGVjKS5xc3RyaW5n
KCkpOworICAgIHJldHVybiBqc1N0cmluZyhoZWFkZXIpOwogICB9CiAgIGNhc2UgWE1MSHR0cFJl
cXVlc3Q6Ok9wZW46CiAgICAgewpJbmRleDoga2h0bWwvZWNtYS94bWxodHRwcmVxdWVzdC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2VjbWEveG1saHR0cHJl
cXVlc3QuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yMgpkaWZmIC1wIC11IC1yMS4yMiBraHRt
bC9lY21hL3htbGh0dHByZXF1ZXN0LmgKLS0tIGtodG1sL2VjbWEveG1saHR0cHJlcXVlc3QuaAkx
IERlYyAyMDA1IDEwOjMyOjEwIC0wMDAwCTEuMjIKKysrIGtodG1sL2VjbWEveG1saHR0cHJlcXVl
c3QuaAk0IERlYyAyMDA1IDA5OjA3OjQxIC0wMDAwCkBAIC00NCwxMSArNDQsMTEgQEAgbmFtZXNw
YWNlIEtKUyB7CiAKICAgLy8gdGhlc2UgZXhhY3QgbnVtZXJpYyB2YWx1ZXMgYXJlIGltcG9ydGFu
dCBiZWNhdXNlIEpTIGV4cGVjdHMgdGhlbQogICBlbnVtIFhNTEh0dHBSZXF1ZXN0U3RhdGUgewot
ICAgIFVuaW5pdGlhbGl6ZWQgPSAwLAotICAgIExvYWRpbmcgPSAxLAotICAgIExvYWRlZCA9IDIs
Ci0gICAgSW50ZXJhY3RpdmUgPSAzLAotICAgIENvbXBsZXRlZCA9IDQKKyAgICBVbmluaXRpYWxp
emVkID0gMCwgIC8vIG9wZW4oKSBoYXMgbm90IGJlZW4gY2FsbGVkIHlldAorICAgIExvYWRpbmcg
PSAxLCAgICAgICAgLy8gc2VuZCgpIGhhcyBub3QgYmVlbiBjYWxsZWQgeWV0CisgICAgTG9hZGVk
ID0gMiwgICAgICAgICAvLyBzZW5kKCkgaGFzIGJlZW4gY2FsbGVkLCBoZWFkZXJzIGFuZCBzdGF0
dXMgYXJlIGF2YWlsYWJsZQorICAgIEludGVyYWN0aXZlID0gMywgICAgLy8gRG93bmxvYWRpbmcs
IHJlc3BvbnNlVGV4dCBob2xkcyB0aGUgcGFydGlhbCBkYXRhCisgICAgQ29tcGxldGVkID0gNCAg
ICAgICAvLyBGaW5pc2hlZCB3aXRoIGFsbCBvcGVyYXRpb25zCiAgIH07CiAKICAgY2xhc3MgWE1M
SHR0cFJlcXVlc3RDb25zdHJ1Y3RvckltcCA6IHB1YmxpYyBPYmplY3RJbXAgewpAQCAtMTAxLDgg
KzEwMSw5IEBAIG5hbWVzcGFjZSBLSlMgewogICAgIHZvaWQgYWJvcnQoKTsKICAgICB2b2lkIHNl
dFJlcXVlc3RIZWFkZXIoY29uc3QgUVN0cmluZyYgbmFtZSwgY29uc3QgUVN0cmluZyAmdmFsdWUp
OwogICAgIFZhbHVlSW1wICpnZXRBbGxSZXNwb25zZUhlYWRlcnMoKSBjb25zdDsKLSAgICBWYWx1
ZUltcCAqZ2V0UmVzcG9uc2VIZWFkZXIoY29uc3QgUVN0cmluZyYgbmFtZSkgY29uc3Q7Ci0KKyAg
ICBib29sIGdldFJlc3BvbnNlSGVhZGVyKGNvbnN0IFFTdHJpbmcmIG5hbWUsIFFTdHJpbmcmIHZh
bHVlKSBjb25zdDsKKyAgICBib29sIHJlc3BvbnNlSXNYTUwoKSBjb25zdDsKKyAgICAKICAgICB2
b2lkIGNoYW5nZVN0YXRlKFhNTEh0dHBSZXF1ZXN0U3RhdGUgbmV3U3RhdGUpOwogCiAgICAgc3Rh
dGljIFFQdHJEaWN0PCBRUHRyRGljdDxYTUxIdHRwUmVxdWVzdD4gPiAmcmVxdWVzdHNCeURvY3Vt
ZW50KCk7Cg==
</data>
<flag name="review"
          id="939"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4937</attachid>
            <date>2005-12-04 07:06:16 -0800</date>
            <delta_ts>2005-12-04 13:39:12 -0800</delta_ts>
            <desc>updated patch</desc>
            <filename>XMLHTTPResponsePatch.txt</filename>
            <type>text/plain</type>
            <size>7433</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IGtodG1sL2VjbWEveG1saHR0cHJlcXVlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6
IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2VjbWEveG1saHR0cHJlcXVlc3QuY3BwLHYKcmV0cmll
dmluZyByZXZpc2lvbiAxLjQ5CmRpZmYgLXAgLXUgLXIxLjQ5IGtodG1sL2VjbWEveG1saHR0cHJl
cXVlc3QuY3BwCi0tLSBraHRtbC9lY21hL3htbGh0dHByZXF1ZXN0LmNwcAkyIERlYyAyMDA1IDAz
OjQ4OjA2IC0wMDAwCTEuNDkKKysrIGtodG1sL2VjbWEveG1saHR0cHJlcXVlc3QuY3BwCTQgRGVj
IDIwMDUgMTU6MDc6MzQgLTAwMDAKQEAgLTQ5LDYgKzQ5LDQ4IEBAIHVzaW5nIG5hbWVzcGFjZSBE
T006OkV2ZW50TmFtZXM7CiAKIHVzaW5nIGtodG1sOjpEZWNvZGVyOwogCitzdGF0aWMgaW5saW5l
IFFTdHJpbmcgZ2V0TUlNRVR5cGUoY29uc3QgUVN0cmluZyYgY29udGVudFR5cGVTdHJpbmcpCit7
CisgICAgcmV0dXJuIFFTdHJpbmdMaXN0OjpzcGxpdCgiOyIsIGNvbnRlbnRUeXBlU3RyaW5nLCB0
cnVlKVswXS5zdHJpcFdoaXRlU3BhY2UoKTsKK30KKworc3RhdGljIFFTdHJpbmcgZ2V0Q2hhcnNl
dChjb25zdCBRU3RyaW5nJiBjb250ZW50VHlwZVN0cmluZykKK3sKKyAgICBpbnQgcG9zID0gMDsK
KyAgICBpbnQgbGVuZ3RoID0gKGludCljb250ZW50VHlwZVN0cmluZy5sZW5ndGgoKTsKKyAgICAK
KyAgICB3aGlsZSAocG9zIDwgbGVuZ3RoKSB7CisgICAgICAgIHBvcyA9IGNvbnRlbnRUeXBlU3Ry
aW5nLmZpbmQoImNoYXJzZXQiLCBwb3MsIGZhbHNlKTsKKyAgICAgICAgaWYgKHBvcyA8PSAwKQor
ICAgICAgICAgICAgcmV0dXJuIFFTdHJpbmcoKTsKKyAgICAgICAgCisgICAgICAgIC8vIGlzIHdo
YXQgd2UgZm91bmQgYSBiZWdpbm5pbmcgb2YgYSB3b3JkPworICAgICAgICBpZiAoY29udGVudFR5
cGVTdHJpbmdbcG9zLTFdID4gJyAnICYmIGNvbnRlbnRUeXBlU3RyaW5nW3Bvcy0xXSAhPSAnOycg
JiYgY29udGVudFR5cGVTdHJpbmdbcG9zLTFdICE9ICciJyAmJiBjb250ZW50VHlwZVN0cmluZ1tw
b3MtMV0gIT0gJ1wnJykKKyAgICAgICAgICAgIHJldHVybiBRU3RyaW5nKCk7CisgICAgICAgIAor
ICAgICAgICBwb3MgKz0gNzsgLy8gc3RybGVuKCJjaGFyc2V0IikKKworICAgICAgICAvLyBza2lw
IHdoaXRlc3BhY2UKKyAgICAgICAgd2hpbGUgKHBvcyAhPSBsZW5ndGggJiYgY29udGVudFR5cGVT
dHJpbmdbcG9zXSA8PSAnICcpCisgICAgICAgICAgICArK3BvczsKKyAgICAKKyAgICAgICAgaWYg
KGNvbnRlbnRUeXBlU3RyaW5nW3BvcysrXSAhPSAnPScpIC8vIHRoaXMgImNoYXJzZXQiIHN1YnN0
cmluZyB3YXNuJ3QgYSBwYXJhbWV0ZXIgbmFtZSwgYnV0IHRoZXJlIG1heSBiZSBvdGhlcnMKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIHdoaWxlIChwb3MgIT0gbGVuZ3RoICYmIChj
b250ZW50VHlwZVN0cmluZ1twb3NdIDw9ICcgJyB8fCBjb250ZW50VHlwZVN0cmluZ1twb3NdID09
ICciJyB8fCBjb250ZW50VHlwZVN0cmluZ1twb3NdID09ICdcJycpKQorICAgICAgICAgICAgKytw
b3M7CisKKyAgICAgICAgLy8gd2UgZG9uJ3QgaGFuZGxlIHNwYWNlcyB3aXRoaW4gcXVvdGVkIHBh
cmFtZXRlciB2YWx1ZXMsIGJlY2F1c2UgY2hhcnNldCBuYW1lcyBjYW5ub3QgaGF2ZSBhbnkKKyAg
ICAgICAgaW50IGVuZHBvcyA9IHBvczsKKyAgICAgICAgd2hpbGUgKHBvcyAhPSBsZW5ndGggJiYg
Y29udGVudFR5cGVTdHJpbmdbZW5kcG9zXSA+ICcgJyAmJiBjb250ZW50VHlwZVN0cmluZ1tlbmRw
b3NdICE9ICciJyAmJiBjb250ZW50VHlwZVN0cmluZ1tlbmRwb3NdICE9ICdcJycgJiYgY29udGVu
dFR5cGVTdHJpbmdbZW5kcG9zXSAhPSAnOycpCisgICAgICAgICAgICArK2VuZHBvczsKKyAgICAK
KyAgICAgICAgcmV0dXJuIGNvbnRlbnRUeXBlU3RyaW5nLm1pZChwb3MsIGVuZHBvcy1wb3MpOwor
ICAgIH0KKyAgICAKKyAgICByZXR1cm4gUVN0cmluZygpOworfQorCiBuYW1lc3BhY2UgS0pTIHsK
IAogLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBYTUxIdHRwUmVxdWVzdCBPYmplY3QgLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vCkBAIC0xMzcsMjEgKzE3OSw5IEBAIFZhbHVlSW1wICpYTUxIdHRwUmVx
dWVzdDo6Z2V0VmFsdWVQcm9wZXIKICAgICBpZiAoc3RhdGUgIT0gQ29tcGxldGVkKSB7CiAgICAg
ICByZXR1cm4gVW5kZWZpbmVkKCk7CiAgICAgfQorCiAgICAgaWYgKCFjcmVhdGVkRG9jdW1lbnQp
IHsKLSAgICAgIFFTdHJpbmcgbWltZVR5cGU7Ci0gICAgICAKLSAgICAgIGlmIChNSU1FVHlwZU92
ZXJyaWRlLmlzRW1wdHkoKSkgewotICAgICAgICBWYWx1ZUltcCAqaGVhZGVyID0gZ2V0UmVzcG9u
c2VIZWFkZXIoIkNvbnRlbnQtVHlwZSIpOwotICAgICAgICBpZiAoaGVhZGVyLT5pc1VuZGVmaW5l
ZCgpKSB7Ci0gICAgICAgICAgbWltZVR5cGUgPSAidGV4dC94bWwiOwotICAgICAgICB9IGVsc2Ug
ewotCSAgbWltZVR5cGUgPSBRU3RyaW5nTGlzdDo6c3BsaXQoIjsiLCBoZWFkZXItPnRvU3RyaW5n
KGV4ZWMpLnFzdHJpbmcoKSwgdHJ1ZSlbMF0uc3RyaXBXaGl0ZVNwYWNlKCk7Ci0gICAgICAgIH0K
LSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIG1pbWVUeXBlID0gTUlNRVR5cGVPdmVycmlkZTsKLSAg
ICAgIH0KLSAgICAgIAotICAgICAgaWYgKHR5cGVJc1hNTCA9IERPTUltcGxlbWVudGF0aW9uSW1w
bDo6aXNYTUxNSU1FVHlwZShtaW1lVHlwZSkpIHsKKyAgICAgIGlmICh0eXBlSXNYTUwgPSByZXNw
b25zZUlzWE1MKCkpIHsKIAlyZXNwb25zZVhNTCA9IGRvYy0+aW1wbGVtZW50YXRpb24oKS0+Y3Jl
YXRlRG9jdW1lbnQoKTsKIAogCURvY3VtZW50SW1wbCAqZG9jSW1wbCA9IHJlc3BvbnNlWE1MLmdl
dCgpOwpAQCAtNDIyLDExICs0NTIsMTAgQEAgVmFsdWVJbXAgKlhNTEh0dHBSZXF1ZXN0OjpnZXRB
bGxSZXNwb25zZQogICByZXR1cm4gU3RyaW5nKHJlc3BvbnNlSGVhZGVycy5taWQoZW5kT2ZMaW5l
ICsgMSkgKyAiXG4iKTsKIH0KIAotVmFsdWVJbXAgKlhNTEh0dHBSZXF1ZXN0OjpnZXRSZXNwb25z
ZUhlYWRlcihjb25zdCBRU3RyaW5nJiBuYW1lKSBjb25zdAorUVN0cmluZyBYTUxIdHRwUmVxdWVz
dDo6Z2V0UmVzcG9uc2VIZWFkZXIoY29uc3QgUVN0cmluZyYgbmFtZSkgY29uc3QKIHsKLSAgaWYg
KHJlc3BvbnNlSGVhZGVycy5pc0VtcHR5KCkpIHsKLSAgICByZXR1cm4gVW5kZWZpbmVkKCk7Ci0g
IH0KKyAgaWYgKHJlc3BvbnNlSGVhZGVycy5pc0VtcHR5KCkpCisgICAgcmV0dXJuIFFTdHJpbmco
KTsKIAogICBRUmVnRXhwIGhlYWRlckxpbmVQYXR0ZXJuKG5hbWUgKyAiOiIsIGZhbHNlKTsKIApA
QCAtNDQwLDE0ICs0NjksMjMgQEAgVmFsdWVJbXAgKlhNTEh0dHBSZXF1ZXN0OjpnZXRSZXNwb25z
ZUhlYQogICAgIGhlYWRlckxpbmVQb3MgPSBoZWFkZXJMaW5lUGF0dGVybi5tYXRjaChyZXNwb25z
ZUhlYWRlcnMsIGhlYWRlckxpbmVQb3MgKyAxLCAmbWF0Y2hMZW5ndGgpOwogICB9CiAKLQotICBp
ZiAoaGVhZGVyTGluZVBvcyA9PSAtMSkgewotICAgIHJldHVybiBVbmRlZmluZWQoKTsKLSAgfQor
ICBpZiAoaGVhZGVyTGluZVBvcyA9PSAtMSkKKyAgICByZXR1cm4gUVN0cmluZygpOwogICAgIAog
ICBpbnQgZW5kT2ZMaW5lID0gcmVzcG9uc2VIZWFkZXJzLmZpbmQoIlxuIiwgaGVhZGVyTGluZVBv
cyArIG1hdGNoTGVuZ3RoKTsKKyAgCisgIHJldHVybiByZXNwb25zZUhlYWRlcnMubWlkKGhlYWRl
ckxpbmVQb3MgKyBtYXRjaExlbmd0aCwgZW5kT2ZMaW5lIC0gKGhlYWRlckxpbmVQb3MgKyBtYXRj
aExlbmd0aCkpLnN0cmlwV2hpdGVTcGFjZSgpOworfQogCi0gIHJldHVybiBTdHJpbmcocmVzcG9u
c2VIZWFkZXJzLm1pZChoZWFkZXJMaW5lUG9zICsgbWF0Y2hMZW5ndGgsIGVuZE9mTGluZSAtICho
ZWFkZXJMaW5lUG9zICsgbWF0Y2hMZW5ndGgpKS5zdHJpcFdoaXRlU3BhY2UoKSk7Citib29sIFhN
TEh0dHBSZXF1ZXN0OjpyZXNwb25zZUlzWE1MKCkgY29uc3QKK3sKKyAgICBRU3RyaW5nIG1pbWVU
eXBlID0gZ2V0TUlNRVR5cGUoTUlNRVR5cGVPdmVycmlkZSk7CisgICAgaWYgKG1pbWVUeXBlLmlz
RW1wdHkoKSkKKyAgICAgICAgbWltZVR5cGUgPSBnZXRNSU1FVHlwZShnZXRSZXNwb25zZUhlYWRl
cigiQ29udGVudC1UeXBlIikpOworICAgIGlmIChtaW1lVHlwZS5pc0VtcHR5KCkpCisgICAgICBt
aW1lVHlwZSA9ICJ0ZXh0L3htbCI7CisgICAgCisgICAgcmV0dXJuIERPTUltcGxlbWVudGF0aW9u
SW1wbDo6aXNYTUxNSU1FVHlwZShtaW1lVHlwZSk7CiB9CiAKIFZhbHVlSW1wICpYTUxIdHRwUmVx
dWVzdDo6Z2V0U3RhdHVzKCkgY29uc3QKQEAgLTU0OCwyMSArNTg2LDI3IEBAIHZvaWQgWE1MSHR0
cFJlcXVlc3Q6OnNsb3RSZWRpcmVjdGlvbihLSU8KICAgfQogfQogCi12b2lkIFhNTEh0dHBSZXF1
ZXN0OjpzbG90RGF0YSggS0lPOjpKb2IqLCBjb25zdCBjaGFyICpkYXRhLCBpbnQgbGVuICkKK3Zv
aWQgWE1MSHR0cFJlcXVlc3Q6OnNsb3REYXRhKEtJTzo6Sm9iKiwgY29uc3QgY2hhciAqZGF0YSwg
aW50IGxlbikKIHsKLSAgaWYgKHN0YXRlIDwgTG9hZGVkKSB7CisgIGlmIChyZXNwb25zZUhlYWRl
cnMuaXNFbXB0eSgpICYmIGpvYikKICAgICByZXNwb25zZUhlYWRlcnMgPSBqb2ItPnF1ZXJ5TWV0
YURhdGEoIkhUVFAtSGVhZGVycyIpOwotICAgIGVuY29kaW5nID0gam9iLT5xdWVyeU1ldGFEYXRh
KCJjaGFyc2V0Iik7CisKKyAgaWYgKHN0YXRlIDwgTG9hZGVkKQogICAgIGNoYW5nZVN0YXRlKExv
YWRlZCk7Ci0gIH0KICAgCi0KLSAgaWYgKCBkZWNvZGVyID09IE5VTEwgKSB7CisgIGlmIChkZWNv
ZGVyID09IE5VTEwpIHsKKyAgICBlbmNvZGluZyA9IGdldENoYXJzZXQoTUlNRVR5cGVPdmVycmlk
ZSk7CisgICAgaWYgKGVuY29kaW5nLmlzRW1wdHkoKSkKKyAgICAgIGVuY29kaW5nID0gZ2V0Q2hh
cnNldChnZXRSZXNwb25zZUhlYWRlcigiQ29udGVudC1UeXBlIikpOworICAgIGlmIChlbmNvZGlu
Zy5pc0VtcHR5KCkgJiYgam9iKQorICAgICAgZW5jb2RpbmcgPSBqb2ItPnF1ZXJ5TWV0YURhdGEo
ImNoYXJzZXQiKTsKKyAgICAKICAgICBkZWNvZGVyID0gbmV3IERlY29kZXI7Ci0gICAgaWYgKCFl
bmNvZGluZy5pc051bGwoKSkKKyAgICBpZiAoIWVuY29kaW5nLmlzRW1wdHkoKSkKICAgICAgIGRl
Y29kZXItPnNldEVuY29kaW5nKGVuY29kaW5nLmxhdGluMSgpLCBEZWNvZGVyOjpFbmNvZGluZ0Zy
b21IVFRQSGVhZGVyKTsKICAgICBlbHNlIHsKLSAgICAgIC8vIEZJWE1FOiBJbmhlcml0IHRoZSBk
ZWZhdWx0IGVuY29kaW5nIGZyb20gdGhlIHBhcmVudCBkb2N1bWVudD8KKyAgICAgIC8vIG9ubHkg
YWxsb3cgRGVjb2RlciB0byBsb29rIGluc2lkZSB0aGUgcmVzcG9uc2UgaWYgaXQncyBYTUwKKyAg
ICAgIGRlY29kZXItPnNldEVuY29kaW5nKCJVVEYtOCIsIHJlc3BvbnNlSXNYTUwoKSA/IERlY29k
ZXI6OkRlZmF1bHRFbmNvZGluZyA6IERlY29kZXI6OkVuY29kaW5nRnJvbUhUVFBIZWFkZXIpOwog
ICAgIH0KICAgfQogICBpZiAobGVuID09IDApCkBAIC02NDcsOCArNjkxLDEzIEBAIFZhbHVlSW1w
ICpYTUxIdHRwUmVxdWVzdFByb3RvRnVuYzo6Y2FsbEEKICAgICBpZiAoYXJncy5zaXplKCkgIT0g
MSkgewogICAgICAgcmV0dXJuIFVuZGVmaW5lZCgpOwogICAgIH0KKyAgICAKKyAgICBRU3RyaW5n
IGhlYWRlciA9IHJlcXVlc3QtPmdldFJlc3BvbnNlSGVhZGVyKGFyZ3NbMF0tPnRvU3RyaW5nKGV4
ZWMpLnFzdHJpbmcoKSk7CisKKyAgICBpZiAoaGVhZGVyLmlzTnVsbCgpKQorICAgICAgcmV0dXJu
IFVuZGVmaW5lZCgpOwogCi0gICAgcmV0dXJuIHJlcXVlc3QtPmdldFJlc3BvbnNlSGVhZGVyKGFy
Z3NbMF0tPnRvU3RyaW5nKGV4ZWMpLnFzdHJpbmcoKSk7CisgICAgcmV0dXJuIGpzU3RyaW5nKGhl
YWRlcik7CiAgIH0KICAgY2FzZSBYTUxIdHRwUmVxdWVzdDo6T3BlbjoKICAgICB7CkluZGV4OiBr
aHRtbC9lY21hL3htbGh0dHByZXF1ZXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9yb290
L1dlYkNvcmUva2h0bWwvZWNtYS94bWxodHRwcmVxdWVzdC5oLHYKcmV0cmlldmluZyByZXZpc2lv
biAxLjIyCmRpZmYgLXAgLXUgLXIxLjIyIGtodG1sL2VjbWEveG1saHR0cHJlcXVlc3QuaAotLS0g
a2h0bWwvZWNtYS94bWxodHRwcmVxdWVzdC5oCTEgRGVjIDIwMDUgMTA6MzI6MTAgLTAwMDAJMS4y
MgorKysga2h0bWwvZWNtYS94bWxodHRwcmVxdWVzdC5oCTQgRGVjIDIwMDUgMTU6MDc6MzkgLTAw
MDAKQEAgLTQ0LDExICs0NCwxMSBAQCBuYW1lc3BhY2UgS0pTIHsKIAogICAvLyB0aGVzZSBleGFj
dCBudW1lcmljIHZhbHVlcyBhcmUgaW1wb3J0YW50IGJlY2F1c2UgSlMgZXhwZWN0cyB0aGVtCiAg
IGVudW0gWE1MSHR0cFJlcXVlc3RTdGF0ZSB7Ci0gICAgVW5pbml0aWFsaXplZCA9IDAsCi0gICAg
TG9hZGluZyA9IDEsCi0gICAgTG9hZGVkID0gMiwKLSAgICBJbnRlcmFjdGl2ZSA9IDMsCi0gICAg
Q29tcGxldGVkID0gNAorICAgIFVuaW5pdGlhbGl6ZWQgPSAwLCAgLy8gb3BlbigpIGhhcyBub3Qg
YmVlbiBjYWxsZWQgeWV0CisgICAgTG9hZGluZyA9IDEsICAgICAgICAvLyBzZW5kKCkgaGFzIG5v
dCBiZWVuIGNhbGxlZCB5ZXQKKyAgICBMb2FkZWQgPSAyLCAgICAgICAgIC8vIHNlbmQoKSBoYXMg
YmVlbiBjYWxsZWQsIGhlYWRlcnMgYW5kIHN0YXR1cyBhcmUgYXZhaWxhYmxlCisgICAgSW50ZXJh
Y3RpdmUgPSAzLCAgICAvLyBEb3dubG9hZGluZywgcmVzcG9uc2VUZXh0IGhvbGRzIHRoZSBwYXJ0
aWFsIGRhdGEKKyAgICBDb21wbGV0ZWQgPSA0ICAgICAgIC8vIEZpbmlzaGVkIHdpdGggYWxsIG9w
ZXJhdGlvbnMKICAgfTsKIAogICBjbGFzcyBYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9ySW1wIDog
cHVibGljIE9iamVjdEltcCB7CkBAIC0xMDEsOCArMTAxLDkgQEAgbmFtZXNwYWNlIEtKUyB7CiAg
ICAgdm9pZCBhYm9ydCgpOwogICAgIHZvaWQgc2V0UmVxdWVzdEhlYWRlcihjb25zdCBRU3RyaW5n
JiBuYW1lLCBjb25zdCBRU3RyaW5nICZ2YWx1ZSk7CiAgICAgVmFsdWVJbXAgKmdldEFsbFJlc3Bv
bnNlSGVhZGVycygpIGNvbnN0OwotICAgIFZhbHVlSW1wICpnZXRSZXNwb25zZUhlYWRlcihjb25z
dCBRU3RyaW5nJiBuYW1lKSBjb25zdDsKLQorICAgIFFTdHJpbmcgZ2V0UmVzcG9uc2VIZWFkZXIo
Y29uc3QgUVN0cmluZyYgbmFtZSkgY29uc3Q7CisgICAgYm9vbCByZXNwb25zZUlzWE1MKCkgY29u
c3Q7CisgICAgCiAgICAgdm9pZCBjaGFuZ2VTdGF0ZShYTUxIdHRwUmVxdWVzdFN0YXRlIG5ld1N0
YXRlKTsKIAogICAgIHN0YXRpYyBRUHRyRGljdDwgUVB0ckRpY3Q8WE1MSHR0cFJlcXVlc3Q+ID4g
JnJlcXVlc3RzQnlEb2N1bWVudCgpOwo=
</data>
<flag name="review"
          id="947"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4948</attachid>
            <date>2005-12-04 13:39:12 -0800</date>
            <delta_ts>2005-12-18 14:13:20 -0800</delta_ts>
            <desc>updated patch</desc>
            <filename>XMLHTTPResponsePatch.txt</filename>
            <type>text/plain</type>
            <size>7369</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IGtodG1sL2VjbWEveG1saHR0cHJlcXVlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6
IC9jdnMvcm9vdC9XZWJDb3JlL2todG1sL2VjbWEveG1saHR0cHJlcXVlc3QuY3BwLHYKcmV0cmll
dmluZyByZXZpc2lvbiAxLjQ5CmRpZmYgLXAgLXUgLXIxLjQ5IGtodG1sL2VjbWEveG1saHR0cHJl
cXVlc3QuY3BwCi0tLSBraHRtbC9lY21hL3htbGh0dHByZXF1ZXN0LmNwcAkyIERlYyAyMDA1IDAz
OjQ4OjA2IC0wMDAwCTEuNDkKKysrIGtodG1sL2VjbWEveG1saHR0cHJlcXVlc3QuY3BwCTQgRGVj
IDIwMDUgMjE6MzI6NTUgLTAwMDAKQEAgLTQ5LDYgKzQ5LDUwIEBAIHVzaW5nIG5hbWVzcGFjZSBE
T006OkV2ZW50TmFtZXM7CiAKIHVzaW5nIGtodG1sOjpEZWNvZGVyOwogCitzdGF0aWMgaW5saW5l
IFFTdHJpbmcgZ2V0TUlNRVR5cGUoY29uc3QgUVN0cmluZyYgY29udGVudFR5cGVTdHJpbmcpCit7
CisgICAgcmV0dXJuIFFTdHJpbmdMaXN0OjpzcGxpdCgiOyIsIGNvbnRlbnRUeXBlU3RyaW5nLCB0
cnVlKVswXS5zdHJpcFdoaXRlU3BhY2UoKTsKK30KKworc3RhdGljIFFTdHJpbmcgZ2V0Q2hhcnNl
dChjb25zdCBRU3RyaW5nJiBjb250ZW50VHlwZVN0cmluZykKK3sKKyAgICBpbnQgcG9zID0gMDsK
KyAgICBpbnQgbGVuZ3RoID0gKGludCljb250ZW50VHlwZVN0cmluZy5sZW5ndGgoKTsKKyAgICAK
KyAgICB3aGlsZSAocG9zIDwgbGVuZ3RoKSB7CisgICAgICAgIHBvcyA9IGNvbnRlbnRUeXBlU3Ry
aW5nLmZpbmQoImNoYXJzZXQiLCBwb3MsIGZhbHNlKTsKKyAgICAgICAgaWYgKHBvcyA8PSAwKQor
ICAgICAgICAgICAgcmV0dXJuIFFTdHJpbmcoKTsKKyAgICAgICAgCisgICAgICAgIC8vIGlzIHdo
YXQgd2UgZm91bmQgYSBiZWdpbm5pbmcgb2YgYSB3b3JkPworICAgICAgICBpZiAoY29udGVudFR5
cGVTdHJpbmdbcG9zLTFdID4gJyAnICYmIGNvbnRlbnRUeXBlU3RyaW5nW3Bvcy0xXSAhPSAnOycp
IHsKKyAgICAgICAgICAgIHBvcyArPSA3OworICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
IH0KKyAgICAgICAgCisgICAgICAgIHBvcyArPSA3OworCisgICAgICAgIC8vIHNraXAgd2hpdGVz
cGFjZQorICAgICAgICB3aGlsZSAocG9zICE9IGxlbmd0aCAmJiBjb250ZW50VHlwZVN0cmluZ1tw
b3NdIDw9ICcgJykKKyAgICAgICAgICAgICsrcG9zOworICAgIAorICAgICAgICBpZiAoY29udGVu
dFR5cGVTdHJpbmdbcG9zKytdICE9ICc9JykgLy8gdGhpcyAiY2hhcnNldCIgc3Vic3RyaW5nIHdh
c24ndCBhIHBhcmFtZXRlciBuYW1lLCBidXQgdGhlcmUgbWF5IGJlIG90aGVycworICAgICAgICAg
ICAgY29udGludWU7CisKKyAgICAgICAgd2hpbGUgKHBvcyAhPSBsZW5ndGggJiYgKGNvbnRlbnRU
eXBlU3RyaW5nW3Bvc10gPD0gJyAnIHx8IGNvbnRlbnRUeXBlU3RyaW5nW3Bvc10gPT0gJyInIHx8
IGNvbnRlbnRUeXBlU3RyaW5nW3Bvc10gPT0gJ1wnJykpCisgICAgICAgICAgICArK3BvczsKKwor
ICAgICAgICAvLyB3ZSBkb24ndCBoYW5kbGUgc3BhY2VzIHdpdGhpbiBxdW90ZWQgcGFyYW1ldGVy
IHZhbHVlcywgYmVjYXVzZSBjaGFyc2V0IG5hbWVzIGNhbm5vdCBoYXZlIGFueQorICAgICAgICBp
bnQgZW5kcG9zID0gcG9zOworICAgICAgICB3aGlsZSAocG9zICE9IGxlbmd0aCAmJiBjb250ZW50
VHlwZVN0cmluZ1tlbmRwb3NdID4gJyAnICYmIGNvbnRlbnRUeXBlU3RyaW5nW2VuZHBvc10gIT0g
JyInICYmIGNvbnRlbnRUeXBlU3RyaW5nW2VuZHBvc10gIT0gJ1wnJyAmJiBjb250ZW50VHlwZVN0
cmluZ1tlbmRwb3NdICE9ICc7JykKKyAgICAgICAgICAgICsrZW5kcG9zOworICAgIAorICAgICAg
ICByZXR1cm4gY29udGVudFR5cGVTdHJpbmcubWlkKHBvcywgZW5kcG9zLXBvcyk7CisgICAgfQor
ICAgIAorICAgIHJldHVybiBRU3RyaW5nKCk7Cit9CisKIG5hbWVzcGFjZSBLSlMgewogCiAvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vIFhNTEh0dHBSZXF1ZXN0IE9iamVjdCAvLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KQEAgLTEzNywyMSArMTgxLDkgQEAgVmFsdWVJbXAgKlhNTEh0dHBSZXF1ZXN0Ojpn
ZXRWYWx1ZVByb3BlcgogICAgIGlmIChzdGF0ZSAhPSBDb21wbGV0ZWQpIHsKICAgICAgIHJldHVy
biBVbmRlZmluZWQoKTsKICAgICB9CisKICAgICBpZiAoIWNyZWF0ZWREb2N1bWVudCkgewotICAg
ICAgUVN0cmluZyBtaW1lVHlwZTsKLSAgICAgIAotICAgICAgaWYgKE1JTUVUeXBlT3ZlcnJpZGUu
aXNFbXB0eSgpKSB7Ci0gICAgICAgIFZhbHVlSW1wICpoZWFkZXIgPSBnZXRSZXNwb25zZUhlYWRl
cigiQ29udGVudC1UeXBlIik7Ci0gICAgICAgIGlmIChoZWFkZXItPmlzVW5kZWZpbmVkKCkpIHsK
LSAgICAgICAgICBtaW1lVHlwZSA9ICJ0ZXh0L3htbCI7Ci0gICAgICAgIH0gZWxzZSB7Ci0JICBt
aW1lVHlwZSA9IFFTdHJpbmdMaXN0OjpzcGxpdCgiOyIsIGhlYWRlci0+dG9TdHJpbmcoZXhlYyku
cXN0cmluZygpLCB0cnVlKVswXS5zdHJpcFdoaXRlU3BhY2UoKTsKLSAgICAgICAgfQotICAgICAg
fSBlbHNlIHsKLSAgICAgICAgbWltZVR5cGUgPSBNSU1FVHlwZU92ZXJyaWRlOwotICAgICAgfQot
ICAgICAgCi0gICAgICBpZiAodHlwZUlzWE1MID0gRE9NSW1wbGVtZW50YXRpb25JbXBsOjppc1hN
TE1JTUVUeXBlKG1pbWVUeXBlKSkgeworICAgICAgaWYgKHR5cGVJc1hNTCA9IHJlc3BvbnNlSXNY
TUwoKSkgewogCXJlc3BvbnNlWE1MID0gZG9jLT5pbXBsZW1lbnRhdGlvbigpLT5jcmVhdGVEb2N1
bWVudCgpOwogCiAJRG9jdW1lbnRJbXBsICpkb2NJbXBsID0gcmVzcG9uc2VYTUwuZ2V0KCk7CkBA
IC00MjIsMTEgKzQ1NCwxMCBAQCBWYWx1ZUltcCAqWE1MSHR0cFJlcXVlc3Q6OmdldEFsbFJlc3Bv
bnNlCiAgIHJldHVybiBTdHJpbmcocmVzcG9uc2VIZWFkZXJzLm1pZChlbmRPZkxpbmUgKyAxKSAr
ICJcbiIpOwogfQogCi1WYWx1ZUltcCAqWE1MSHR0cFJlcXVlc3Q6OmdldFJlc3BvbnNlSGVhZGVy
KGNvbnN0IFFTdHJpbmcmIG5hbWUpIGNvbnN0CitRU3RyaW5nIFhNTEh0dHBSZXF1ZXN0OjpnZXRS
ZXNwb25zZUhlYWRlcihjb25zdCBRU3RyaW5nJiBuYW1lKSBjb25zdAogewotICBpZiAocmVzcG9u
c2VIZWFkZXJzLmlzRW1wdHkoKSkgewotICAgIHJldHVybiBVbmRlZmluZWQoKTsKLSAgfQorICBp
ZiAocmVzcG9uc2VIZWFkZXJzLmlzRW1wdHkoKSkKKyAgICByZXR1cm4gUVN0cmluZygpOwogCiAg
IFFSZWdFeHAgaGVhZGVyTGluZVBhdHRlcm4obmFtZSArICI6IiwgZmFsc2UpOwogCkBAIC00NDAs
MTQgKzQ3MSwyMyBAQCBWYWx1ZUltcCAqWE1MSHR0cFJlcXVlc3Q6OmdldFJlc3BvbnNlSGVhCiAg
ICAgaGVhZGVyTGluZVBvcyA9IGhlYWRlckxpbmVQYXR0ZXJuLm1hdGNoKHJlc3BvbnNlSGVhZGVy
cywgaGVhZGVyTGluZVBvcyArIDEsICZtYXRjaExlbmd0aCk7CiAgIH0KIAotCi0gIGlmIChoZWFk
ZXJMaW5lUG9zID09IC0xKSB7Ci0gICAgcmV0dXJuIFVuZGVmaW5lZCgpOwotICB9CisgIGlmICho
ZWFkZXJMaW5lUG9zID09IC0xKQorICAgIHJldHVybiBRU3RyaW5nKCk7CiAgICAgCiAgIGludCBl
bmRPZkxpbmUgPSByZXNwb25zZUhlYWRlcnMuZmluZCgiXG4iLCBoZWFkZXJMaW5lUG9zICsgbWF0
Y2hMZW5ndGgpOworICAKKyAgcmV0dXJuIHJlc3BvbnNlSGVhZGVycy5taWQoaGVhZGVyTGluZVBv
cyArIG1hdGNoTGVuZ3RoLCBlbmRPZkxpbmUgLSAoaGVhZGVyTGluZVBvcyArIG1hdGNoTGVuZ3Ro
KSkuc3RyaXBXaGl0ZVNwYWNlKCk7Cit9CiAKLSAgcmV0dXJuIFN0cmluZyhyZXNwb25zZUhlYWRl
cnMubWlkKGhlYWRlckxpbmVQb3MgKyBtYXRjaExlbmd0aCwgZW5kT2ZMaW5lIC0gKGhlYWRlckxp
bmVQb3MgKyBtYXRjaExlbmd0aCkpLnN0cmlwV2hpdGVTcGFjZSgpKTsKK2Jvb2wgWE1MSHR0cFJl
cXVlc3Q6OnJlc3BvbnNlSXNYTUwoKSBjb25zdAoreworICAgIFFTdHJpbmcgbWltZVR5cGUgPSBn
ZXRNSU1FVHlwZShNSU1FVHlwZU92ZXJyaWRlKTsKKyAgICBpZiAobWltZVR5cGUuaXNFbXB0eSgp
KQorICAgICAgICBtaW1lVHlwZSA9IGdldE1JTUVUeXBlKGdldFJlc3BvbnNlSGVhZGVyKCJDb250
ZW50LVR5cGUiKSk7CisgICAgaWYgKG1pbWVUeXBlLmlzRW1wdHkoKSkKKyAgICAgIG1pbWVUeXBl
ID0gInRleHQveG1sIjsKKyAgICAKKyAgICByZXR1cm4gRE9NSW1wbGVtZW50YXRpb25JbXBsOjpp
c1hNTE1JTUVUeXBlKG1pbWVUeXBlKTsKIH0KIAogVmFsdWVJbXAgKlhNTEh0dHBSZXF1ZXN0Ojpn
ZXRTdGF0dXMoKSBjb25zdApAQCAtNTQ4LDIxICs1ODgsMjcgQEAgdm9pZCBYTUxIdHRwUmVxdWVz
dDo6c2xvdFJlZGlyZWN0aW9uKEtJTwogICB9CiB9CiAKLXZvaWQgWE1MSHR0cFJlcXVlc3Q6OnNs
b3REYXRhKCBLSU86OkpvYiosIGNvbnN0IGNoYXIgKmRhdGEsIGludCBsZW4gKQordm9pZCBYTUxI
dHRwUmVxdWVzdDo6c2xvdERhdGEoS0lPOjpKb2IqLCBjb25zdCBjaGFyICpkYXRhLCBpbnQgbGVu
KQogewotICBpZiAoc3RhdGUgPCBMb2FkZWQpIHsKKyAgaWYgKHJlc3BvbnNlSGVhZGVycy5pc0Vt
cHR5KCkgJiYgam9iKQogICAgIHJlc3BvbnNlSGVhZGVycyA9IGpvYi0+cXVlcnlNZXRhRGF0YSgi
SFRUUC1IZWFkZXJzIik7Ci0gICAgZW5jb2RpbmcgPSBqb2ItPnF1ZXJ5TWV0YURhdGEoImNoYXJz
ZXQiKTsKKworICBpZiAoc3RhdGUgPCBMb2FkZWQpCiAgICAgY2hhbmdlU3RhdGUoTG9hZGVkKTsK
LSAgfQogICAKLQotICBpZiAoIGRlY29kZXIgPT0gTlVMTCApIHsKKyAgaWYgKGRlY29kZXIgPT0g
TlVMTCkgeworICAgIGVuY29kaW5nID0gZ2V0Q2hhcnNldChNSU1FVHlwZU92ZXJyaWRlKTsKKyAg
ICBpZiAoZW5jb2RpbmcuaXNFbXB0eSgpKQorICAgICAgZW5jb2RpbmcgPSBnZXRDaGFyc2V0KGdl
dFJlc3BvbnNlSGVhZGVyKCJDb250ZW50LVR5cGUiKSk7CisgICAgaWYgKGVuY29kaW5nLmlzRW1w
dHkoKSAmJiBqb2IpCisgICAgICBlbmNvZGluZyA9IGpvYi0+cXVlcnlNZXRhRGF0YSgiY2hhcnNl
dCIpOworICAgIAogICAgIGRlY29kZXIgPSBuZXcgRGVjb2RlcjsKLSAgICBpZiAoIWVuY29kaW5n
LmlzTnVsbCgpKQorICAgIGlmICghZW5jb2RpbmcuaXNFbXB0eSgpKQogICAgICAgZGVjb2Rlci0+
c2V0RW5jb2RpbmcoZW5jb2RpbmcubGF0aW4xKCksIERlY29kZXI6OkVuY29kaW5nRnJvbUhUVFBI
ZWFkZXIpOwogICAgIGVsc2UgewotICAgICAgLy8gRklYTUU6IEluaGVyaXQgdGhlIGRlZmF1bHQg
ZW5jb2RpbmcgZnJvbSB0aGUgcGFyZW50IGRvY3VtZW50PworICAgICAgLy8gb25seSBhbGxvdyBE
ZWNvZGVyIHRvIGxvb2sgaW5zaWRlIHRoZSByZXNwb25zZSBpZiBpdCdzIFhNTAorICAgICAgZGVj
b2Rlci0+c2V0RW5jb2RpbmcoIlVURi04IiwgcmVzcG9uc2VJc1hNTCgpID8gRGVjb2Rlcjo6RGVm
YXVsdEVuY29kaW5nIDogRGVjb2Rlcjo6RW5jb2RpbmdGcm9tSFRUUEhlYWRlcik7CiAgICAgfQog
ICB9CiAgIGlmIChsZW4gPT0gMCkKQEAgLTY0Nyw4ICs2OTMsMTMgQEAgVmFsdWVJbXAgKlhNTEh0
dHBSZXF1ZXN0UHJvdG9GdW5jOjpjYWxsQQogICAgIGlmIChhcmdzLnNpemUoKSAhPSAxKSB7CiAg
ICAgICByZXR1cm4gVW5kZWZpbmVkKCk7CiAgICAgfQorICAgIAorICAgIFFTdHJpbmcgaGVhZGVy
ID0gcmVxdWVzdC0+Z2V0UmVzcG9uc2VIZWFkZXIoYXJnc1swXS0+dG9TdHJpbmcoZXhlYykucXN0
cmluZygpKTsKKworICAgIGlmIChoZWFkZXIuaXNOdWxsKCkpCisgICAgICByZXR1cm4gVW5kZWZp
bmVkKCk7CiAKLSAgICByZXR1cm4gcmVxdWVzdC0+Z2V0UmVzcG9uc2VIZWFkZXIoYXJnc1swXS0+
dG9TdHJpbmcoZXhlYykucXN0cmluZygpKTsKKyAgICByZXR1cm4ganNTdHJpbmcoaGVhZGVyKTsK
ICAgfQogICBjYXNlIFhNTEh0dHBSZXF1ZXN0OjpPcGVuOgogICAgIHsKSW5kZXg6IGtodG1sL2Vj
bWEveG1saHR0cHJlcXVlc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvV2ViQ29y
ZS9raHRtbC9lY21hL3htbGh0dHByZXF1ZXN0LmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMjIK
ZGlmZiAtcCAtdSAtcjEuMjIga2h0bWwvZWNtYS94bWxodHRwcmVxdWVzdC5oCi0tLSBraHRtbC9l
Y21hL3htbGh0dHByZXF1ZXN0LmgJMSBEZWMgMjAwNSAxMDozMjoxMCAtMDAwMAkxLjIyCisrKyBr
aHRtbC9lY21hL3htbGh0dHByZXF1ZXN0LmgJNCBEZWMgMjAwNSAyMTozMjo1NyAtMDAwMApAQCAt
NDQsMTEgKzQ0LDExIEBAIG5hbWVzcGFjZSBLSlMgewogCiAgIC8vIHRoZXNlIGV4YWN0IG51bWVy
aWMgdmFsdWVzIGFyZSBpbXBvcnRhbnQgYmVjYXVzZSBKUyBleHBlY3RzIHRoZW0KICAgZW51bSBY
TUxIdHRwUmVxdWVzdFN0YXRlIHsKLSAgICBVbmluaXRpYWxpemVkID0gMCwKLSAgICBMb2FkaW5n
ID0gMSwKLSAgICBMb2FkZWQgPSAyLAotICAgIEludGVyYWN0aXZlID0gMywKLSAgICBDb21wbGV0
ZWQgPSA0CisgICAgVW5pbml0aWFsaXplZCA9IDAsICAvLyBvcGVuKCkgaGFzIG5vdCBiZWVuIGNh
bGxlZCB5ZXQKKyAgICBMb2FkaW5nID0gMSwgICAgICAgIC8vIHNlbmQoKSBoYXMgbm90IGJlZW4g
Y2FsbGVkIHlldAorICAgIExvYWRlZCA9IDIsICAgICAgICAgLy8gc2VuZCgpIGhhcyBiZWVuIGNh
bGxlZCwgaGVhZGVycyBhbmQgc3RhdHVzIGFyZSBhdmFpbGFibGUKKyAgICBJbnRlcmFjdGl2ZSA9
IDMsICAgIC8vIERvd25sb2FkaW5nLCByZXNwb25zZVRleHQgaG9sZHMgdGhlIHBhcnRpYWwgZGF0
YQorICAgIENvbXBsZXRlZCA9IDQgICAgICAgLy8gRmluaXNoZWQgd2l0aCBhbGwgb3BlcmF0aW9u
cwogICB9OwogCiAgIGNsYXNzIFhNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3JJbXAgOiBwdWJsaWMg
T2JqZWN0SW1wIHsKQEAgLTEwMSw4ICsxMDEsOSBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICB2b2lk
IGFib3J0KCk7CiAgICAgdm9pZCBzZXRSZXF1ZXN0SGVhZGVyKGNvbnN0IFFTdHJpbmcmIG5hbWUs
IGNvbnN0IFFTdHJpbmcgJnZhbHVlKTsKICAgICBWYWx1ZUltcCAqZ2V0QWxsUmVzcG9uc2VIZWFk
ZXJzKCkgY29uc3Q7Ci0gICAgVmFsdWVJbXAgKmdldFJlc3BvbnNlSGVhZGVyKGNvbnN0IFFTdHJp
bmcmIG5hbWUpIGNvbnN0OwotCisgICAgUVN0cmluZyBnZXRSZXNwb25zZUhlYWRlcihjb25zdCBR
U3RyaW5nJiBuYW1lKSBjb25zdDsKKyAgICBib29sIHJlc3BvbnNlSXNYTUwoKSBjb25zdDsKKyAg
ICAKICAgICB2b2lkIGNoYW5nZVN0YXRlKFhNTEh0dHBSZXF1ZXN0U3RhdGUgbmV3U3RhdGUpOwog
CiAgICAgc3RhdGljIFFQdHJEaWN0PCBRUHRyRGljdDxYTUxIdHRwUmVxdWVzdD4gPiAmcmVxdWVz
dHNCeURvY3VtZW50KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5118</attachid>
            <date>2005-12-16 12:28:05 -0800</date>
            <delta_ts>2005-12-17 20:24:20 -0800</delta_ts>
            <desc>updated patch</desc>
            <filename>XmlHttpReqPatch2.txt</filename>
            <type>text/plain</type>
            <size>7445</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUva2h0bWwvZWNtYS94bWxodHRwcmVxdWVzdC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS
Q1MgZmlsZTogL2N2cy9yb290L1dlYkNvcmUva2h0bWwvZWNtYS94bWxodHRwcmVxdWVzdC5jcHAs
dgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNTIKZGlmZiAtcCAtdSAtcjEuNTIgV2ViQ29yZS9raHRt
bC9lY21hL3htbGh0dHByZXF1ZXN0LmNwcAotLS0gV2ViQ29yZS9raHRtbC9lY21hL3htbGh0dHBy
ZXF1ZXN0LmNwcAkxNiBEZWMgMjAwNSAwODowODoxNCAtMDAwMAkxLjUyCisrKyBXZWJDb3JlL2to
dG1sL2VjbWEveG1saHR0cHJlcXVlc3QuY3BwCTE2IERlYyAyMDA1IDIwOjI2OjQwIC0wMDAwCkBA
IC00OSw2ICs0OSw1MCBAQCB1c2luZyBuYW1lc3BhY2UgRE9NOjpFdmVudE5hbWVzOwogCiB1c2lu
ZyBraHRtbDo6RGVjb2RlcjsKIAorc3RhdGljIGlubGluZSBRU3RyaW5nIGdldE1JTUVUeXBlKGNv
bnN0IFFTdHJpbmcmIGNvbnRlbnRUeXBlU3RyaW5nKQoreworICAgIHJldHVybiBRU3RyaW5nTGlz
dDo6c3BsaXQoIjsiLCBjb250ZW50VHlwZVN0cmluZywgdHJ1ZSlbMF0uc3RyaXBXaGl0ZVNwYWNl
KCk7Cit9CisKK3N0YXRpYyBRU3RyaW5nIGdldENoYXJzZXQoY29uc3QgUVN0cmluZyYgY29udGVu
dFR5cGVTdHJpbmcpCit7CisgICAgaW50IHBvcyA9IDA7CisgICAgaW50IGxlbmd0aCA9IChpbnQp
Y29udGVudFR5cGVTdHJpbmcubGVuZ3RoKCk7CisgICAgCisgICAgd2hpbGUgKHBvcyA8IGxlbmd0
aCkgeworICAgICAgICBwb3MgPSBjb250ZW50VHlwZVN0cmluZy5maW5kKCJjaGFyc2V0IiwgcG9z
LCBmYWxzZSk7CisgICAgICAgIGlmIChwb3MgPD0gMCkKKyAgICAgICAgICAgIHJldHVybiBRU3Ry
aW5nKCk7CisgICAgICAgIAorICAgICAgICAvLyBpcyB3aGF0IHdlIGZvdW5kIGEgYmVnaW5uaW5n
IG9mIGEgd29yZD8KKyAgICAgICAgaWYgKGNvbnRlbnRUeXBlU3RyaW5nW3Bvcy0xXSA+ICcgJyAm
JiBjb250ZW50VHlwZVN0cmluZ1twb3MtMV0gIT0gJzsnKSB7CisgICAgICAgICAgICBwb3MgKz0g
NzsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBw
b3MgKz0gNzsKKworICAgICAgICAvLyBza2lwIHdoaXRlc3BhY2UKKyAgICAgICAgd2hpbGUgKHBv
cyAhPSBsZW5ndGggJiYgY29udGVudFR5cGVTdHJpbmdbcG9zXSA8PSAnICcpCisgICAgICAgICAg
ICArK3BvczsKKyAgICAKKyAgICAgICAgaWYgKGNvbnRlbnRUeXBlU3RyaW5nW3BvcysrXSAhPSAn
PScpIC8vIHRoaXMgImNoYXJzZXQiIHN1YnN0cmluZyB3YXNuJ3QgYSBwYXJhbWV0ZXIgbmFtZSwg
YnV0IHRoZXJlIG1heSBiZSBvdGhlcnMKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAg
IHdoaWxlIChwb3MgIT0gbGVuZ3RoICYmIChjb250ZW50VHlwZVN0cmluZ1twb3NdIDw9ICcgJyB8
fCBjb250ZW50VHlwZVN0cmluZ1twb3NdID09ICciJyB8fCBjb250ZW50VHlwZVN0cmluZ1twb3Nd
ID09ICdcJycpKQorICAgICAgICAgICAgKytwb3M7CisKKyAgICAgICAgLy8gd2UgZG9uJ3QgaGFu
ZGxlIHNwYWNlcyB3aXRoaW4gcXVvdGVkIHBhcmFtZXRlciB2YWx1ZXMsIGJlY2F1c2UgY2hhcnNl
dCBuYW1lcyBjYW5ub3QgaGF2ZSBhbnkKKyAgICAgICAgaW50IGVuZHBvcyA9IHBvczsKKyAgICAg
ICAgd2hpbGUgKHBvcyAhPSBsZW5ndGggJiYgY29udGVudFR5cGVTdHJpbmdbZW5kcG9zXSA+ICcg
JyAmJiBjb250ZW50VHlwZVN0cmluZ1tlbmRwb3NdICE9ICciJyAmJiBjb250ZW50VHlwZVN0cmlu
Z1tlbmRwb3NdICE9ICdcJycgJiYgY29udGVudFR5cGVTdHJpbmdbZW5kcG9zXSAhPSAnOycpCisg
ICAgICAgICAgICArK2VuZHBvczsKKyAgICAKKyAgICAgICAgcmV0dXJuIGNvbnRlbnRUeXBlU3Ry
aW5nLm1pZChwb3MsIGVuZHBvcy1wb3MpOworICAgIH0KKyAgICAKKyAgICByZXR1cm4gUVN0cmlu
ZygpOworfQorCiBuYW1lc3BhY2UgS0pTIHsKIAogLy8vLy8vLy8vLy8vLy8vLy8vLy8vLyBYTUxI
dHRwUmVxdWVzdCBPYmplY3QgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCkBAIC0xMzcsMjEgKzE4
MSw5IEBAIEpTVmFsdWUgKlhNTEh0dHBSZXF1ZXN0OjpnZXRWYWx1ZVByb3BlcnQKICAgICBpZiAo
c3RhdGUgIT0gQ29tcGxldGVkKSB7CiAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICB9
CisKICAgICBpZiAoIWNyZWF0ZWREb2N1bWVudCkgewotICAgICAgUVN0cmluZyBtaW1lVHlwZTsK
LSAgICAgIAotICAgICAgaWYgKE1JTUVUeXBlT3ZlcnJpZGUuaXNFbXB0eSgpKSB7Ci0gICAgICAg
IEpTVmFsdWUgKmhlYWRlciA9IGdldFJlc3BvbnNlSGVhZGVyKCJDb250ZW50LVR5cGUiKTsKLSAg
ICAgICAgaWYgKGhlYWRlci0+aXNVbmRlZmluZWQoKSkgewotICAgICAgICAgIG1pbWVUeXBlID0g
InRleHQveG1sIjsKLSAgICAgICAgfSBlbHNlIHsKLQkgIG1pbWVUeXBlID0gUVN0cmluZ0xpc3Q6
OnNwbGl0KCI7IiwgaGVhZGVyLT50b1N0cmluZyhleGVjKS5xc3RyaW5nKCksIHRydWUpWzBdLnN0
cmlwV2hpdGVTcGFjZSgpOwotICAgICAgICB9Ci0gICAgICB9IGVsc2UgewotICAgICAgICBtaW1l
VHlwZSA9IE1JTUVUeXBlT3ZlcnJpZGU7Ci0gICAgICB9Ci0gICAgICAKLSAgICAgIGlmICh0eXBl
SXNYTUwgPSBET01JbXBsZW1lbnRhdGlvbkltcGw6OmlzWE1MTUlNRVR5cGUobWltZVR5cGUpKSB7
CisgICAgICBpZiAodHlwZUlzWE1MID0gcmVzcG9uc2VJc1hNTCgpKSB7CiAJcmVzcG9uc2VYTUwg
PSBkb2MtPmltcGxlbWVudGF0aW9uKCktPmNyZWF0ZURvY3VtZW50KCk7CiAKIAlEb2N1bWVudElt
cGwgKmRvY0ltcGwgPSByZXNwb25zZVhNTC5nZXQoKTsKQEAgLTQyMiwxMSArNDU0LDEwIEBAIEpT
VmFsdWUgKlhNTEh0dHBSZXF1ZXN0OjpnZXRBbGxSZXNwb25zZUgKICAgcmV0dXJuIGpzU3RyaW5n
KHJlc3BvbnNlSGVhZGVycy5taWQoZW5kT2ZMaW5lICsgMSkgKyAiXG4iKTsKIH0KIAotSlNWYWx1
ZSAqWE1MSHR0cFJlcXVlc3Q6OmdldFJlc3BvbnNlSGVhZGVyKGNvbnN0IFFTdHJpbmcmIG5hbWUp
IGNvbnN0CitRU3RyaW5nIFhNTEh0dHBSZXF1ZXN0OjpnZXRSZXNwb25zZUhlYWRlcihjb25zdCBR
U3RyaW5nJiBuYW1lKSBjb25zdAogewotICBpZiAocmVzcG9uc2VIZWFkZXJzLmlzRW1wdHkoKSkg
ewotICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICB9CisgIGlmIChyZXNwb25zZUhlYWRlcnMu
aXNFbXB0eSgpKQorICAgIHJldHVybiBRU3RyaW5nKCk7CiAKICAgUVJlZ0V4cCBoZWFkZXJMaW5l
UGF0dGVybihuYW1lICsgIjoiLCBmYWxzZSk7CiAKQEAgLTQ0MCwxNCArNDcxLDIzIEBAIEpTVmFs
dWUgKlhNTEh0dHBSZXF1ZXN0OjpnZXRSZXNwb25zZUhlYWQKICAgICBoZWFkZXJMaW5lUG9zID0g
aGVhZGVyTGluZVBhdHRlcm4ubWF0Y2gocmVzcG9uc2VIZWFkZXJzLCBoZWFkZXJMaW5lUG9zICsg
MSwgJm1hdGNoTGVuZ3RoKTsKICAgfQogCi0KLSAgaWYgKGhlYWRlckxpbmVQb3MgPT0gLTEpIHsK
LSAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgfQorICBpZiAoaGVhZGVyTGluZVBvcyA9PSAt
MSkKKyAgICByZXR1cm4gUVN0cmluZygpOwogICAgIAogICBpbnQgZW5kT2ZMaW5lID0gcmVzcG9u
c2VIZWFkZXJzLmZpbmQoIlxuIiwgaGVhZGVyTGluZVBvcyArIG1hdGNoTGVuZ3RoKTsKKyAgCisg
IHJldHVybiByZXNwb25zZUhlYWRlcnMubWlkKGhlYWRlckxpbmVQb3MgKyBtYXRjaExlbmd0aCwg
ZW5kT2ZMaW5lIC0gKGhlYWRlckxpbmVQb3MgKyBtYXRjaExlbmd0aCkpLnN0cmlwV2hpdGVTcGFj
ZSgpOworfQogCi0gIHJldHVybiBqc1N0cmluZyhyZXNwb25zZUhlYWRlcnMubWlkKGhlYWRlckxp
bmVQb3MgKyBtYXRjaExlbmd0aCwgZW5kT2ZMaW5lIC0gKGhlYWRlckxpbmVQb3MgKyBtYXRjaExl
bmd0aCkpLnN0cmlwV2hpdGVTcGFjZSgpKTsKK2Jvb2wgWE1MSHR0cFJlcXVlc3Q6OnJlc3BvbnNl
SXNYTUwoKSBjb25zdAoreworICAgIFFTdHJpbmcgbWltZVR5cGUgPSBnZXRNSU1FVHlwZShNSU1F
VHlwZU92ZXJyaWRlKTsKKyAgICBpZiAobWltZVR5cGUuaXNFbXB0eSgpKQorICAgICAgICBtaW1l
VHlwZSA9IGdldE1JTUVUeXBlKGdldFJlc3BvbnNlSGVhZGVyKCJDb250ZW50LVR5cGUiKSk7Cisg
ICAgaWYgKG1pbWVUeXBlLmlzRW1wdHkoKSkKKyAgICAgIG1pbWVUeXBlID0gInRleHQveG1sIjsK
KyAgICAKKyAgICByZXR1cm4gRE9NSW1wbGVtZW50YXRpb25JbXBsOjppc1hNTE1JTUVUeXBlKG1p
bWVUeXBlKTsKIH0KIAogSlNWYWx1ZSAqWE1MSHR0cFJlcXVlc3Q6OmdldFN0YXR1cygpIGNvbnN0
CkBAIC01NDgsMjEgKzU4OCwyNyBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpzbG90UmVkaXJlY3Rp
b24oS0lPCiAgIH0KIH0KIAotdm9pZCBYTUxIdHRwUmVxdWVzdDo6c2xvdERhdGEoIEtJTzo6Sm9i
KiwgY29uc3QgY2hhciAqZGF0YSwgaW50IGxlbiApCit2b2lkIFhNTEh0dHBSZXF1ZXN0OjpzbG90
RGF0YShLSU86OkpvYiosIGNvbnN0IGNoYXIgKmRhdGEsIGludCBsZW4pCiB7Ci0gIGlmIChzdGF0
ZSA8IExvYWRlZCkgeworICBpZiAocmVzcG9uc2VIZWFkZXJzLmlzRW1wdHkoKSAmJiBqb2IpCiAg
ICAgcmVzcG9uc2VIZWFkZXJzID0gam9iLT5xdWVyeU1ldGFEYXRhKCJIVFRQLUhlYWRlcnMiKTsK
LSAgICBlbmNvZGluZyA9IGpvYi0+cXVlcnlNZXRhRGF0YSgiY2hhcnNldCIpOworCisgIGlmIChz
dGF0ZSA8IExvYWRlZCkKICAgICBjaGFuZ2VTdGF0ZShMb2FkZWQpOwotICB9CiAgIAotCi0gIGlm
ICggZGVjb2RlciA9PSBOVUxMICkgeworICBpZiAoZGVjb2RlciA9PSBOVUxMKSB7CisgICAgZW5j
b2RpbmcgPSBnZXRDaGFyc2V0KE1JTUVUeXBlT3ZlcnJpZGUpOworICAgIGlmIChlbmNvZGluZy5p
c0VtcHR5KCkpCisgICAgICBlbmNvZGluZyA9IGdldENoYXJzZXQoZ2V0UmVzcG9uc2VIZWFkZXIo
IkNvbnRlbnQtVHlwZSIpKTsKKyAgICBpZiAoZW5jb2RpbmcuaXNFbXB0eSgpICYmIGpvYikKKyAg
ICAgIGVuY29kaW5nID0gam9iLT5xdWVyeU1ldGFEYXRhKCJjaGFyc2V0Iik7CisgICAgCiAgICAg
ZGVjb2RlciA9IG5ldyBEZWNvZGVyOwotICAgIGlmICghZW5jb2RpbmcuaXNOdWxsKCkpCisgICAg
aWYgKCFlbmNvZGluZy5pc0VtcHR5KCkpCiAgICAgICBkZWNvZGVyLT5zZXRFbmNvZGluZyhlbmNv
ZGluZy5sYXRpbjEoKSwgRGVjb2Rlcjo6RW5jb2RpbmdGcm9tSFRUUEhlYWRlcik7CiAgICAgZWxz
ZSB7Ci0gICAgICAvLyBGSVhNRTogSW5oZXJpdCB0aGUgZGVmYXVsdCBlbmNvZGluZyBmcm9tIHRo
ZSBwYXJlbnQgZG9jdW1lbnQ/CisgICAgICAvLyBvbmx5IGFsbG93IERlY29kZXIgdG8gbG9vayBp
bnNpZGUgdGhlIHJlc3BvbnNlIGlmIGl0J3MgWE1MCisgICAgICBkZWNvZGVyLT5zZXRFbmNvZGlu
ZygiVVRGLTgiLCByZXNwb25zZUlzWE1MKCkgPyBEZWNvZGVyOjpEZWZhdWx0RW5jb2RpbmcgOiBE
ZWNvZGVyOjpFbmNvZGluZ0Zyb21IVFRQSGVhZGVyKTsKICAgICB9CiAgIH0KICAgaWYgKGxlbiA9
PSAwKQpAQCAtNjQ3LDggKzY5MywxMyBAQCBKU1ZhbHVlICpYTUxIdHRwUmVxdWVzdFByb3RvRnVu
Yzo6Y2FsbEFzCiAgICAgaWYgKGFyZ3Muc2l6ZSgpICE9IDEpIHsKICAgICAgIHJldHVybiBqc1Vu
ZGVmaW5lZCgpOwogICAgIH0KKyAgICAKKyAgICBRU3RyaW5nIGhlYWRlciA9IHJlcXVlc3QtPmdl
dFJlc3BvbnNlSGVhZGVyKGFyZ3NbMF0tPnRvU3RyaW5nKGV4ZWMpLnFzdHJpbmcoKSk7CisKKyAg
ICBpZiAoaGVhZGVyLmlzTnVsbCgpKQorICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAKLSAg
ICByZXR1cm4gcmVxdWVzdC0+Z2V0UmVzcG9uc2VIZWFkZXIoYXJnc1swXS0+dG9TdHJpbmcoZXhl
YykucXN0cmluZygpKTsKKyAgICByZXR1cm4ganNTdHJpbmcoaGVhZGVyKTsKICAgfQogICBjYXNl
IFhNTEh0dHBSZXF1ZXN0OjpPcGVuOgogICAgIHsKSW5kZXg6IFdlYkNvcmUva2h0bWwvZWNtYS94
bWxodHRwcmVxdWVzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9XZWJDb3JlL2to
dG1sL2VjbWEveG1saHR0cHJlcXVlc3QuaCx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4yMwpkaWZm
IC1wIC11IC1yMS4yMyBXZWJDb3JlL2todG1sL2VjbWEveG1saHR0cHJlcXVlc3QuaAotLS0gV2Vi
Q29yZS9raHRtbC9lY21hL3htbGh0dHByZXF1ZXN0LmgJMTEgRGVjIDIwMDUgMDI6MDY6MDggLTAw
MDAJMS4yMworKysgV2ViQ29yZS9raHRtbC9lY21hL3htbGh0dHByZXF1ZXN0LmgJMTYgRGVjIDIw
MDUgMjA6MjY6NDYgLTAwMDAKQEAgLTQ0LDExICs0NCwxMSBAQCBuYW1lc3BhY2UgS0pTIHsKIAog
ICAvLyB0aGVzZSBleGFjdCBudW1lcmljIHZhbHVlcyBhcmUgaW1wb3J0YW50IGJlY2F1c2UgSlMg
ZXhwZWN0cyB0aGVtCiAgIGVudW0gWE1MSHR0cFJlcXVlc3RTdGF0ZSB7Ci0gICAgVW5pbml0aWFs
aXplZCA9IDAsCi0gICAgTG9hZGluZyA9IDEsCi0gICAgTG9hZGVkID0gMiwKLSAgICBJbnRlcmFj
dGl2ZSA9IDMsCi0gICAgQ29tcGxldGVkID0gNAorICAgIFVuaW5pdGlhbGl6ZWQgPSAwLCAgLy8g
b3BlbigpIGhhcyBub3QgYmVlbiBjYWxsZWQgeWV0CisgICAgTG9hZGluZyA9IDEsICAgICAgICAv
LyBzZW5kKCkgaGFzIG5vdCBiZWVuIGNhbGxlZCB5ZXQKKyAgICBMb2FkZWQgPSAyLCAgICAgICAg
IC8vIHNlbmQoKSBoYXMgYmVlbiBjYWxsZWQsIGhlYWRlcnMgYW5kIHN0YXR1cyBhcmUgYXZhaWxh
YmxlCisgICAgSW50ZXJhY3RpdmUgPSAzLCAgICAvLyBEb3dubG9hZGluZywgcmVzcG9uc2VUZXh0
IGhvbGRzIHRoZSBwYXJ0aWFsIGRhdGEKKyAgICBDb21wbGV0ZWQgPSA0ICAgICAgIC8vIEZpbmlz
aGVkIHdpdGggYWxsIG9wZXJhdGlvbnMKICAgfTsKIAogICBjbGFzcyBYTUxIdHRwUmVxdWVzdENv
bnN0cnVjdG9ySW1wIDogcHVibGljIEpTT2JqZWN0IHsKQEAgLTEwMSw4ICsxMDEsOSBAQCBuYW1l
c3BhY2UgS0pTIHsKICAgICB2b2lkIGFib3J0KCk7CiAgICAgdm9pZCBzZXRSZXF1ZXN0SGVhZGVy
KGNvbnN0IFFTdHJpbmcmIG5hbWUsIGNvbnN0IFFTdHJpbmcgJnZhbHVlKTsKICAgICBKU1ZhbHVl
ICpnZXRBbGxSZXNwb25zZUhlYWRlcnMoKSBjb25zdDsKLSAgICBKU1ZhbHVlICpnZXRSZXNwb25z
ZUhlYWRlcihjb25zdCBRU3RyaW5nJiBuYW1lKSBjb25zdDsKLQorICAgIFFTdHJpbmcgZ2V0UmVz
cG9uc2VIZWFkZXIoY29uc3QgUVN0cmluZyYgbmFtZSkgY29uc3Q7CisgICAgYm9vbCByZXNwb25z
ZUlzWE1MKCkgY29uc3Q7CisgICAgCiAgICAgdm9pZCBjaGFuZ2VTdGF0ZShYTUxIdHRwUmVxdWVz
dFN0YXRlIG5ld1N0YXRlKTsKIAogICAgIHN0YXRpYyBRUHRyRGljdDwgUVB0ckRpY3Q8WE1MSHR0
cFJlcXVlc3Q+ID4gJnJlcXVlc3RzQnlEb2N1bWVudCgpOwo=
</data>
<flag name="review"
          id="1027"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>5155</attachid>
            <date>2005-12-19 11:05:37 -0800</date>
            <delta_ts>2005-12-19 11:05:37 -0800</delta_ts>
            <desc>ChangeLog entry</desc>
            <filename>changelog.txt</filename>
            <type>text/plain</type>
            <size>968</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">MjAwNS0xMi0xOSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQG55cG9wLmNvbT4KCiAgICAgICAg
UmV2aWV3ZWQgYnkgRGFyaW4uCgogICAgICAgIC0gZml4IGh0dHA6Ly9idWd6aWxsYS5vcGVuZGFy
d2luLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc0NAogICAgICAgICAgWE1MSHR0cFJlcXVlc3QgZG9l
cyBub3QgYXBwbHkgcGFnZSBlbmNvZGluZyBhZnRlciBhc3NpZ25pbmcgdmlhIGlubmVySHRtbAoK
ICAgICAgICAqIGtodG1sL2VjbWEveG1saHR0cHJlcXVlc3QuY3BwOgogICAgICAgIChnZXRNSU1F
VHlwZSk6IEEgaGVscGVyIGZ1bmN0aW9uIHRvIGdldCBNSU1FIHR5cGUgZnJvbSBhIENvbnRlbnQt
VHlwZSBzdHJpbmcuCiAgICAgICAgKGdldENoYXJzZXQpOiBBIGhlbHBlciBmdW5jdGlvbiB0byBn
ZXQgY2hhcnNldCBmcm9tIGEgQ29udGVudC1UeXBlIHN0cmluZy4KICAgICAgICAoS0pTOjpYTUxI
dHRwUmVxdWVzdDo6Z2V0VmFsdWVQcm9wZXJ0eSk6IEZhY3RvcmVkIG91dCByZXNwb25zZUlzWE1M
KCkuCiAgICAgICAgKEtKUzo6WE1MSHR0cFJlcXVlc3Q6OmdldFJlc3BvbnNlSGVhZGVyKTogUmV0
dXJuIFFTdHJpbmcgaW5zdGVhZCBvZiBKU1ZhbHVlCiAgICAgICAgICAodG8gZ2V0IHJpZCBvZiB1
bm5lY2Vzc2FyeSBKU0xvY2tzKS4KICAgICAgICAoS0pTOjpYTUxIdHRwUmVxdWVzdDo6cmVzcG9u
c2VJc1hNTCk6IEEgbmV3IG1ldGhvZCB0aGF0IGFuYWx5c2VzIENvbnRlbnQtVHlwZS4KICAgICAg
ICAoS0pTOjpYTUxIdHRwUmVxdWVzdDo6c2xvdERhdGEpOiBVc2UgYSBjb3JyZWN0IGNoYXJzZXQg
Zm9yIHJlc3BvbnNlcywgc2VlIGJ1ZyBmb3IgZGV0YWlscy4KICAgICAgICAoS0pTOjpYTUxIdHRw
UmVxdWVzdFByb3RvRnVuYzo6Y2FsbEFzRnVuY3Rpb24pOiBVcGRhdGUgZm9yIGdldFJlc3BvbnNl
SGVhZGVyKCkgY2hhbmdlcwogICAgICAgICoga2h0bWwvZWNtYS94bWxodHRwcmVxdWVzdC5oOgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>5156</attachid>
            <date>2005-12-19 11:14:09 -0800</date>
            <delta_ts>2005-12-19 11:14:09 -0800</delta_ts>
            <desc>archived test suite</desc>
            <filename>xmlhttprequestenc.tgz</filename>
            <type>application/x-gzip</type>
            <size>1747</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">H4sIAOIEp0MAA+1cy27bRhT1VvqKCRexhNoS33IiyYEbJO0iLyRKG6AoCpocSWwpkiVHtoTCQP+k
v1AU6KaL/kLdPygKdNNFkU/onRlSpiRTki2Fcuw5gMHHvO5jzp3LGSWjgdcnJIzw90McE+zb9Z2N
A+lywzDQDkKqrCj0qjQMlV5TyEiRNV1TdFoTilXVMHeQsXlR5jGMiRUhtGOFi+v5OChCnKIxmvN/
rU8s28ZxvLExFFk2dT3f/6qhpf5XFU2FYl1RlR0kb0yCBbjj/m89dT0cIynCoTdWa2REpMPykeM8
7ltRjAk6dX0nOI33FdVQEC0ut+qsyWF5qqk+3/S7wD3YjxY1Umsw/RaNB8UXTbdtqluJef7PvYGA
MPDWGWMx/xVd00zOf62hAvFpsWyqgv9FoEWdC7TsY8uBC3GJhw874Hj0buB9DvPgNZ8HKMJxGPgx
RjAjAsf1e6hv+Y4HN606b1VuDTCxEJ08+9DIPWlLduDDDCL7ZBxiCSVPbYngEanTgZs2p32bxwoI
Ba3jwBnDJbYjNySH5XLpBNwDLePAw98MYFmyehA/2sgJ7OEAeqvZEbYIfuJh+lSRAk+qNsulSTHt
r2aFIfYhxrieU5nti9bmo1jx2LffEBxC9wp72x36NnEDH3lBr5I0qJZLP5RLrIFL8GCBKJ7LRCnR
alMizDTogDleBA6ejMBazco51QPtktY6m5Kyh0llGHl7XJNEULeLKjyq1t49f5ZxaRXR4hIQHXTw
8SmaLq4wKc4Q9sDprCaJxvwm0+YIRj7B714ef4ttUPl5DOFDZQN1Oq+4+tCHbRG7jyp4VF3agWtH
QRx0yWwfZf6XKJQqyHqqBT7Y0RkDkwmGGeX3MHQeRgHNYt7Ql4/ZyyZvz1qAKSu7nz3p7O6hjMWa
SXEMhq74Q8+DN8mI91gNdP8+YhWg12GM7rUhpMlMDtKPglNUkajMKAmeqGvB0uXsIV79IZLQJ5nm
1YlAZBj5tIB5dNqhX7qk//IER5ELE4SJmtCoA5y6vZ5ez8+reTlIzPrcHWBqzUrGsjdjKmTJPa9n
pQomRoiKRHtitmHFqN1GejWdEhkh21xIWoJ4w0zMg6DHncaW5WwwVJvpWxoHpSNa9BC98izXRzSW
76G3naf7B9AGObhrDT1yoV+6btAgV530QyPV7kXOCf4h0RCn5clUnJNPzZFPWyrfVFoZh9h2uy52
EJQzJ9HVD0fxClJP0ZFroCUa7LJlLaSjNlG6sGUHXlFLLUdLfQ0tZ6f69TTVN6ypnqOpsVTT5Nsi
15N76HhIUq0d7KPj8bR1rmeTiR0g9q2oo5Gjo3mpjhAKVyETVKuBOEmmEX867li9F9YA/ORDHrFb
/Ur+umbTRIGmFTF9ou+/sLwhhp6kGspquLreV1DbzFG7ka92/uyFYrCF7VmRRUPhjbGHegWDNHIM
cpBvkMsm+YwpVpnniyNcMaZDWeSFUW5MHlzgfq3QcpBj7gcf3NzLw8p2TJ6Y2bjCevsgY8QZc0F7
y4+7oCoYCkLVxYowH79Qxe35QYR5O6iYNWl1Md3OpjPTVJAnURREcGuxL9G3r589TBKry/KqM5ol
nfHUul5HLHmDb1hM0yt4VsqTfJcnq5mAx23VtWB81hUb/HqJz1xuzBUZ2Ti8CGp4VAOXs29fapvm
RGg1X0h1uZTrpj/rya5dIvuaedS1dF19wV9PX301fa+STS3Qt9hU6NqWKXGyGfnzOM2qZnS9WSnR
uvqbC4JNvvo3PzW6vl2YWRqLwlu+XW5RhrT2zDpYNcqummZ9QIPflBxp3Wn7YNbmlyRa82YsInda
UzF6KEJ44gz3OIzLpbmsKM0gy/V6dpN+wYZ4SLf4oHZSc9m2PNRcuo1Pd+Va9fS0oFVPjg/q/Fhj
26crNx/z538TF29sjGXn//A6Of/XDEWT2fm/2RDnf0Xg/Kc/fzz//fyX81/h+tv5z9uWR6BY5PBf
3WQAWMp/5YL/uqlT/qvi/L8Y/PH+v7//ef/vX9uWQ2A7yOG/tiX+m4reEPwvEIL/dxt5+f9ovZ/8
TWEZ/xVZT/nfaGga479sCv4XgdYj8DQ6wVHsBn5bUmqyNPmFX1vK7ttIj+C7mm6yHKYxo1Vnj+Ir
+yNGbv6/wQCwdP1vmOnv/2XTYL//Vw2x/heCxfxPfpYrmH9rkZv/b4f/9ML4r4v1vxAI/t9t5PBf
L5T/pj7hv6kn67/493+F4BL+T9g+ezYgWH/7kMv/rez/wXd/mv9rgv9FQOz/3W3k8N8okv+KbF78
/w8Gy/81sf9XDK6W/4uMQEBAQEBAQEBAQOBjxv9/oN39AFAAAA==
</data>

          </attachment>
      

    </bug>

</bugzilla>