<?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>8099</bug_id>
          
          <creation_ts>2006-03-31 01:28:21 -0800</creation_ts>
          <short_desc>REGRESSION: XMLHttpRequest lowercase post requests broken</short_desc>
          <delta_ts>2019-02-06 09:03:54 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</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></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jonas Munk">jonasmunk</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>cdumez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>38061</commentid>
    <comment_count>0</comment_count>
    <who name="Jonas Munk">jonasmunk</who>
    <bug_when>2006-03-31 01:28:21 -0800</bug_when>
    <thetext>Think this is a easy to fix regression – from the latest request method fixes :-)

When using req.open(&quot;post&quot;,url,true) (with lowercase &quot;post&quot; instead of uppercase &quot;POST&quot; the request method is sent as lowercase &quot;post&quot;.

Of course there is no such thing as a lowercase http POST request and at least PHP doesn&apos;t understand it.

Safari 2.0.3 (417.9.2) translates req.open(&quot;post&quot;,url,true) into a uppercase POST.

I noticed this because Prototype and Scriptaculous sometimes calls open() with lowercase &quot;post&quot;.

I know you SHOULD use uppercase when calling open() but it seems not everyone does it :-( and Prototype gets used by many people – so I think its a good idea to translate post into POST

Note: haven&apos;t checked GET, PUT etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38210</commentid>
    <comment_count>1</comment_count>
      <attachid>7447</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-04-01 14:13:36 -0800</bug_when>
    <thetext>Created attachment 7447
proposed fix

Firefox does uppercase the method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38219</commentid>
    <comment_count>2</comment_count>
      <attachid>7447</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-04-01 15:23:06 -0800</bug_when>
    <thetext>Comment on attachment 7447
proposed fix

Whose job should it be to do this uppercasing? Should this be in TransferJob so we don&apos;t have to do it two different places in XMLHttpRequest?

Can m_method be changed into a String instead of a DeprecatedString so that we can do comparisons on it using equalIgnoringCase instead of constantly calling lower() on it?

Anyway, r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38269</commentid>
    <comment_count>3</comment_count>
      <attachid>7458</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-04-02 06:14:49 -0700</bug_when>
    <thetext>Created attachment 7458
revised fix

&gt; Whose job should it be to do this uppercasing? Should this be in TransferJob so
&gt; we don&apos;t have to do it two different places in XMLHttpRequest?

  &quot;Get&quot; or &quot;put&quot; are valid methods, different from &quot;GET&quot; and &quot;PUT&quot;, so TransferJob probably shouldn&apos;t change their case. However, I have now found that Firefox has more complex logic - it uppercases methods it knows about, and leaves others untouched. This is a bit weird, but since we are matching their quirk here, we should probably honor this further complication, too. This new patch uses a list of headers from Firefox (nsHttpAtomList.h).

&gt; Can m_method be changed into a String instead of a DeprecatedString so that we
&gt; can do comparisons on it using equalIgnoringCase instead of constantly calling
&gt; lower() on it?

  This new patch does comparisons via ==; since there are many other uses of DeprecatedString in this class, I think that they should rather be all changed is a separate cleanup patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38301</commentid>
    <comment_count>4</comment_count>
      <attachid>7458</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-04-02 16:41:55 -0700</bug_when>
    <thetext>Comment on attachment 7458
revised fix

The number of different methods listed in XMLHttpRequest::open is great enought that we might even want to use a HashSet. If we use CaseInsensitiveHash, we won&apos;t even need to call upper! You can call find, then get the value out of the hash, something like this:

    HashSet&lt;String, CaseInsensitiveHash&gt;::const_iterator it = knownMethods.find(method);
    if (it != knownMethods.end())
        m_method = *it;

The only obstacle is that currently we only have CaseInsensitiveHash defined for StringImpl*, not String or RefPtr&lt;StringImpl*&gt;. But since this is only a single global set, we could just ref the StringImpl* instances and then use a HashSet&lt;StringImpl*, CaseInsensitiveHash&gt;.

I suggest the comment:

+    // Methods names are case-sensitive, but Firefox uppercases methods it knows

be changed to something more like:

    // Method names are case sensitive. But since Firefox uppercases method names it knows, we&apos;ll do the same.

The code is good as-is. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38397</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-04-03 09:36:55 -0700</bug_when>
    <thetext>Perhaps it would also be possible to use AtomicStrings in a way similar to HTMLNames - but since the HTTP request itself is so slow, I am not sure if optimizing these comparisons is necessary.

Landed with a changed comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1503061</commentid>
    <comment_count>6</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2019-02-06 09:03:54 -0800</bug_when>
    <thetext>Mass moving XML DOM bugs to the &quot;DOM&quot; Component.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>7447</attachid>
            <date>2006-04-01 14:13:36 -0800</date>
            <delta_ts>2006-04-02 06:14:49 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>8099r1_patch.txt</filename>
            <type>text/plain</type>
            <size>4113</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvbWV0aG9kcy1sb3dl
ci1jYXNlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L21ldGhvZHMtbG93ZXItY2FzZS1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L21ldGhvZHMtbG93
ZXItY2FzZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNyBAQAorVGVzdHMg
Zm9yIGJ1ZyA4MDk5IC0gWE1MSHR0cFJlcXVlc3QgbG93ZXJjYXNlIHBvc3QgcmVxdWVzdHMgYnJv
a2VuLgorCitHRVQoIiIpOiBHRVQodW5kZWZpbmVkIGJ5dGVzKSwgQ29udGVudC1UeXBlOiB1bmRl
ZmluZWQKK1BPU1QoIiIpOiBQT1NUKDAgYnl0ZXMpLCBDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9u
L3htbAorR0VUKCIiKTogR0VUKHVuZGVmaW5lZCBieXRlcyksIENvbnRlbnQtVHlwZTogdW5kZWZp
bmVkCitQT1NUKCIiKTogUE9TVCgwIGJ5dGVzKSwgQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi94
bWwKKwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9tZXRob2Rz
LWxvd2VyLWNhc2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L21ldGhvZHMtbG93ZXItY2FzZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9tZXRob2RzLWxvd2VyLWNhc2UuaHRt
bAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1OCBAQAorPGh0bWw+Cis8Ym9keT4KKzxwPlRlc3Rz
IGZvciA8YSBocmVmPSJodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dp
P2lkPTgwOTkiPiBidWcgODA5OTwvYT4gLSAKK1hNTEh0dHBSZXF1ZXN0IGxvd2VyY2FzZSBwb3N0
IHJlcXVlc3RzIGJyb2tlbi48L3A+Cis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQor
ICAgIAorICAgIHZhciBjb25zb2xlX21lc3NhZ2VzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
b2wiKTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNvbnNvbGVfbWVzc2FnZXMpOwor
ICAgIAorICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQorICAgIHsKKyAgICAgICAgdmFyIGl0ZW0g
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsaSIpOworICAgICAgICBpdGVtLmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UpKTsKKyAgICAgICAgY29uc29sZV9tZXNz
YWdlcy5hcHBlbmRDaGlsZChpdGVtKTsKKyAgICB9CisKKyAgICAvLyBzeW5jCisgICAgcmVxID0g
bmV3IFhNTEh0dHBSZXF1ZXN0OworICAgIHJlcS5vcGVuKCJnZXQiLCAibWV0aG9kcy5jZ2kiLCBm
YWxzZSk7CisgICAgcmVxLnNlbmQoIiIpOworICAgIGxvZygnR0VUKCIiKTogJyArIHJlcS5nZXRS
ZXNwb25zZUhlYWRlcigiUkVRTUVUSE9EIikgKyAiKCIgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIo
IlJFUUxFTkdUSCIpICsgIiBieXRlcyksIENvbnRlbnQtVHlwZTogIiArIHJlcS5nZXRSZXNwb25z
ZUhlYWRlcigiUkVRVFlQRSIpKTsKKworICAgIHJlcS5vcGVuKCJwb3N0IiwgIm1ldGhvZHMuY2dp
IiwgZmFsc2UpOworICAgIHJlcS5zZW5kKCIiKTsKKyAgICBsb2coJ1BPU1QoIiIpOiAnICsgcmVx
LmdldFJlc3BvbnNlSGVhZGVyKCJSRVFNRVRIT0QiKSArICIoIiArIHJlcS5nZXRSZXNwb25zZUhl
YWRlcigiUkVRTEVOR1RIIikgKyAiIGJ5dGVzKSwgQ29udGVudC1UeXBlOiAiICsgcmVxLmdldFJl
c3BvbnNlSGVhZGVyKCJSRVFUWVBFIikpOworCisgICAgLy8gYXN5bmMKKyAgICB2YXIgYXN5bmNT
dGVwID0gMTsKKworICAgIHJlcS5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBwcm9jZXNzU3RhdGVDaGFu
Z2U7CisgICAgcmVxLm9wZW4oImdldCIsICJtZXRob2RzLmNnaSIsIHRydWUpOworICAgIHJlcS5z
ZW5kKCIiKTsKKworICAgIGZ1bmN0aW9uIHByb2Nlc3NTdGF0ZUNoYW5nZSgpIHsKKyAgICAKKyAg
ICAgIGlmIChyZXEucmVhZHlTdGF0ZSA9PSA0KXsKKyAgICAgICAgaWYgKHJlcS5zdGF0dXMgPT0g
MjAwKXsKKyAgICAgICAgICBpZiAoYXN5bmNTdGVwID09IDEpIHsKKyAgICAgICAgICAgIGFzeW5j
U3RlcCA9IDI7CisgICAgICAgICAgICBsb2coJ0dFVCgiIik6ICcgKyByZXEuZ2V0UmVzcG9uc2VI
ZWFkZXIoIlJFUU1FVEhPRCIpICsgIigiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFMRU5H
VEgiKSArICIgYnl0ZXMpLCBDb250ZW50LVR5cGU6ICIgKyByZXEuZ2V0UmVzcG9uc2VIZWFkZXIo
IlJFUVRZUEUiKSk7CisgICAgICAgICAgICByZXEub3BlbigicG9zdCIsICJtZXRob2RzLmNnaSIs
IHRydWUpOworICAgICAgICAgICAgcmVxLnNlbmQoIiIpOworICAgICAgICAgIH0gZWxzZSBpZiAo
YXN5bmNTdGVwID09IDIpIHsKKyAgICAgICAgICAgIGxvZygnUE9TVCgiIik6ICcgKyByZXEuZ2V0
UmVzcG9uc2VIZWFkZXIoIlJFUU1FVEhPRCIpICsgIigiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVy
KCJSRVFMRU5HVEgiKSArICIgYnl0ZXMpLCBDb250ZW50LVR5cGU6ICIgKyByZXEuZ2V0UmVzcG9u
c2VIZWFkZXIoIlJFUVRZUEUiKSk7CisgICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQorICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25l
KCk7CisgICAgICAgICAgfQorICAgICAgICB9CisgICAgICB9CisgICAgfQorCis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IFdlYkNvcmUveG1sL3htbGh0dHByZXF1ZXN0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3htbC94bWxodHRwcmVxdWVzdC5jcHAJKHJldmlzaW9uIDEz
NjI3KQorKysgV2ViQ29yZS94bWwveG1saHR0cHJlcXVlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMDYsMTIgKzMwNiwxMiBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpzZW5kKGNvbnN0IFN0cmlu
ZyYgCiAgICAgICAgIGlmICghbV9lbmNvZGluZy5pc1ZhbGlkKCkpICAgLy8gRklYTUU6IHJlcG9y
dCBhbiBlcnJvcj8KICAgICAgICAgICAgIG1fZW5jb2RpbmcgPSBUZXh0RW5jb2RpbmcoVVRGOEVu
Y29kaW5nKTsKIAotICAgICAgICBtX2pvYiA9IG5ldyBUcmFuc2ZlckpvYihtX2FzeW5jID8gdGhp
cyA6IDAsIG1fbWV0aG9kLCBtX3VybCwgbV9lbmNvZGluZy5mcm9tVW5pY29kZShib2R5LmRlcHJl
Y2F0ZWRTdHJpbmcoKSkpOworICAgICAgICBtX2pvYiA9IG5ldyBUcmFuc2ZlckpvYihtX2FzeW5j
ID8gdGhpcyA6IDAsIFN0cmluZyhtX21ldGhvZCkudXBwZXIoKSwgbV91cmwsIG1fZW5jb2Rpbmcu
ZnJvbVVuaWNvZGUoYm9keS5kZXByZWNhdGVkU3RyaW5nKCkpKTsKICAgICB9IGVsc2UgewogICAg
ICAgICAvLyBGSVhNRTogSEVBRCByZXF1ZXN0cyBqdXN0IGNyYXNoOyBzZWUgPHJkYXI6Ly80NDYw
ODk5PiBhbmQgdGhlIGNvbW1lbnRlZCBvdXQgdGVzdHMgaW4gaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9tZXRob2RzLmh0bWwuCiAgICAgICAgIGlmIChtX21ldGhvZC5sb3dlcigpID09ICJoZWFk
IikKICAgICAgICAgICAgIG1fbWV0aG9kID0gIkdFVCI7Ci0gICAgICAgIG1fam9iID0gbmV3IFRy
YW5zZmVySm9iKG1fYXN5bmMgPyB0aGlzIDogMCwgbV9tZXRob2QsIG1fdXJsKTsKKyAgICAgICAg
bV9qb2IgPSBuZXcgVHJhbnNmZXJKb2IobV9hc3luYyA/IHRoaXMgOiAwLCBTdHJpbmcobV9tZXRo
b2QpLnVwcGVyKCksIG1fdXJsKTsKICAgICB9CiAKICAgICBpZiAobV9yZXF1ZXN0SGVhZGVycy5s
ZW5ndGgoKSkK
</data>
<flag name="review"
          id="2019"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>7458</attachid>
            <date>2006-04-02 06:14:49 -0700</date>
            <delta_ts>2006-04-02 16:41:55 -0700</delta_ts>
            <desc>revised fix</desc>
            <filename>8099r2_patch.txt</filename>
            <type>text/plain</type>
            <size>6112</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvbWV0aG9kcy1sb3dl
ci1jYXNlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L21ldGhvZHMtbG93ZXItY2FzZS1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L21ldGhvZHMtbG93
ZXItY2FzZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOSBAQAorVGVzdHMg
Zm9yIGJ1ZyA4MDk5IC0gWE1MSHR0cFJlcXVlc3QgbG93ZXJjYXNlIHBvc3QgcmVxdWVzdHMgYnJv
a2VuLgorCitnZXQoIiIpOiBHRVQodW5kZWZpbmVkIGJ5dGVzKSwgQ29udGVudC1UeXBlOiB1bmRl
ZmluZWQKK3Bvc3QoIiIpOiBQT1NUKDAgYnl0ZXMpLCBDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9u
L3htbAorRG9JdCgiIik6IERvSXQoMCBieXRlcyksIENvbnRlbnQtVHlwZTogYXBwbGljYXRpb24v
eG1sCitnZXQoIiIpOiBHRVQodW5kZWZpbmVkIGJ5dGVzKSwgQ29udGVudC1UeXBlOiB1bmRlZmlu
ZWQKK3Bvc3QoIiIpOiBQT1NUKDAgYnl0ZXMpLCBDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL3ht
bAorRG9JdCgiIik6IERvSXQoMCBieXRlcyksIENvbnRlbnQtVHlwZTogYXBwbGljYXRpb24veG1s
CisKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvbWV0aG9kcy1s
b3dlci1jYXNlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9tZXRob2RzLWxvd2VyLWNhc2UuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvbWV0aG9kcy1sb3dlci1jYXNlLmh0bWwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzEgQEAKKzxodG1sPgorPGJvZHk+Cis8cD5UZXN0cyBm
b3IgPGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9p
ZD04MDk5Ij4gYnVnIDgwOTk8L2E+IC0gCitYTUxIdHRwUmVxdWVzdCBsb3dlcmNhc2UgcG9zdCBy
ZXF1ZXN0cyBicm9rZW4uPC9wPgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
KyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKyAg
ICAKKyAgICB2YXIgY29uc29sZV9tZXNzYWdlcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9s
Iik7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjb25zb2xlX21lc3NhZ2VzKTsKKyAg
ICAKKyAgICBmdW5jdGlvbiBsb2cobWVzc2FnZSkKKyAgICB7CisgICAgICAgIHZhciBpdGVtID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGkiKTsKKyAgICAgICAgaXRlbS5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlKSk7CisgICAgICAgIGNvbnNvbGVfbWVzc2Fn
ZXMuYXBwZW5kQ2hpbGQoaXRlbSk7CisgICAgfQorCisgICAgLy8gc3luYworICAgIHJlcSA9IG5l
dyBYTUxIdHRwUmVxdWVzdDsKKyAgICByZXEub3BlbigiZ2V0IiwgIm1ldGhvZHMuY2dpIiwgZmFs
c2UpOworICAgIHJlcS5zZW5kKCIiKTsKKyAgICBsb2coJ2dldCgiIik6ICcgKyByZXEuZ2V0UmVz
cG9uc2VIZWFkZXIoIlJFUU1FVEhPRCIpICsgIigiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJS
RVFMRU5HVEgiKSArICIgYnl0ZXMpLCBDb250ZW50LVR5cGU6ICIgKyByZXEuZ2V0UmVzcG9uc2VI
ZWFkZXIoIlJFUVRZUEUiKSk7CisKKyAgICByZXEub3BlbigicG9zdCIsICJtZXRob2RzLmNnaSIs
IGZhbHNlKTsKKyAgICByZXEuc2VuZCgiIik7CisgICAgbG9nKCdwb3N0KCIiKTogJyArIHJlcS5n
ZXRSZXNwb25zZUhlYWRlcigiUkVRTUVUSE9EIikgKyAiKCIgKyByZXEuZ2V0UmVzcG9uc2VIZWFk
ZXIoIlJFUUxFTkdUSCIpICsgIiBieXRlcyksIENvbnRlbnQtVHlwZTogIiArIHJlcS5nZXRSZXNw
b25zZUhlYWRlcigiUkVRVFlQRSIpKTsKKworICAgIHJlcS5vcGVuKCJEb0l0IiwgIm1ldGhvZHMu
Y2dpIiwgZmFsc2UpOworICAgIHJlcS5zZW5kKCIiKTsKKyAgICBsb2coJ0RvSXQoIiIpOiAnICsg
cmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFNRVRIT0QiKSArICIoIiArIHJlcS5nZXRSZXNwb25z
ZUhlYWRlcigiUkVRTEVOR1RIIikgKyAiIGJ5dGVzKSwgQ29udGVudC1UeXBlOiAiICsgcmVxLmdl
dFJlc3BvbnNlSGVhZGVyKCJSRVFUWVBFIikpOworCisgICAgLy8gYXN5bmMKKyAgICB2YXIgYXN5
bmNTdGVwID0gMTsKKworICAgIHJlcS5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBwcm9jZXNzU3RhdGVD
aGFuZ2U7CisgICAgcmVxLm9wZW4oImdldCIsICJtZXRob2RzLmNnaSIsIHRydWUpOworICAgIHJl
cS5zZW5kKCIiKTsKKworICAgIGZ1bmN0aW9uIHByb2Nlc3NTdGF0ZUNoYW5nZSgpIHsKKyAgICAK
KyAgICAgIGlmIChyZXEucmVhZHlTdGF0ZSA9PSA0KXsKKyAgICAgICAgaWYgKHJlcS5zdGF0dXMg
PT0gMjAwKXsKKyAgICAgICAgICBpZiAoYXN5bmNTdGVwID09IDEpIHsKKyAgICAgICAgICAgIGFz
eW5jU3RlcCA9IDI7CisgICAgICAgICAgICBsb2coJ2dldCgiIik6ICcgKyByZXEuZ2V0UmVzcG9u
c2VIZWFkZXIoIlJFUU1FVEhPRCIpICsgIigiICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFM
RU5HVEgiKSArICIgYnl0ZXMpLCBDb250ZW50LVR5cGU6ICIgKyByZXEuZ2V0UmVzcG9uc2VIZWFk
ZXIoIlJFUVRZUEUiKSk7CisgICAgICAgICAgICByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsK
KyAgICAgICAgICAgIHJlcS5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBwcm9jZXNzU3RhdGVDaGFuZ2U7
CisgICAgICAgICAgICByZXEub3BlbigicG9zdCIsICJtZXRob2RzLmNnaSIsIHRydWUpOworICAg
ICAgICAgICAgcmVxLnNlbmQoIiIpOworICAgICAgICAgIH0gZWxzZSBpZiAoYXN5bmNTdGVwID09
IDIpIHsKKyAgICAgICAgICAgIGFzeW5jU3RlcCA9IDM7CisgICAgICAgICAgICBsb2coJ3Bvc3Qo
IiIpOiAnICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFNRVRIT0QiKSArICIoIiArIHJlcS5n
ZXRSZXNwb25zZUhlYWRlcigiUkVRTEVOR1RIIikgKyAiIGJ5dGVzKSwgQ29udGVudC1UeXBlOiAi
ICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFUWVBFIikpOworICAgICAgICAgICAgcmVxID0g
bmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgICAgICAgICByZXEub25yZWFkeXN0YXRlY2hhbmdl
ID0gcHJvY2Vzc1N0YXRlQ2hhbmdlOworICAgICAgICAgICAgcmVxLm9wZW4oIkRvSXQiLCAibWV0
aG9kcy5jZ2kiLCB0cnVlKTsKKyAgICAgICAgICAgIHJlcS5zZW5kKCIiKTsKKyAgICAgICAgICB9
IGVsc2UgaWYgKGFzeW5jU3RlcCA9PSAzKSB7CisgICAgICAgICAgICBsb2coJ0RvSXQoIiIpOiAn
ICsgcmVxLmdldFJlc3BvbnNlSGVhZGVyKCJSRVFNRVRIT0QiKSArICIoIiArIHJlcS5nZXRSZXNw
b25zZUhlYWRlcigiUkVRTEVOR1RIIikgKyAiIGJ5dGVzKSwgQ29udGVudC1UeXBlOiAiICsgcmVx
LmdldFJlc3BvbnNlSGVhZGVyKCJSRVFUWVBFIikpOworICAgICAgICAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpOworICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgfQorICAgIH0KKwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBXZWJDb3JlL3htbC94bWxodHRwcmVx
dWVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94bWwveG1saHR0cHJlcXVlc3QuY3BwCShy
ZXZpc2lvbiAxMzYzNikKKysrIFdlYkNvcmUveG1sL3htbGh0dHByZXF1ZXN0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjcxLDcgKzI3MSwxNiBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpvcGVuKGNv
bnN0IFN0cmluZyYgCiAgICAgaWYgKCFwYXNzd29yZC5pc051bGwoKSkKICAgICAgICAgbV91cmwu
c2V0UGFzcyhwYXNzd29yZC5kZXByZWNhdGVkU3RyaW5nKCkpOwogCi0gICAgbV9tZXRob2QgPSBt
ZXRob2QuZGVwcmVjYXRlZFN0cmluZygpOworICAgIC8vIE1ldGhvZHMgbmFtZXMgYXJlIGNhc2Ut
c2Vuc2l0aXZlLCBidXQgRmlyZWZveCB1cHBlcmNhc2VzIG1ldGhvZHMgaXQga25vd3MKKyAgICBT
dHJpbmcgbWV0aG9kVXBwZXIobWV0aG9kLnVwcGVyKCkpOworICAgIGlmIChtZXRob2RVcHBlciA9
PSAiQ09OTkVDVCIgfHwgbWV0aG9kVXBwZXIgPT0gIkNPUFkiIHx8IG1ldGhvZFVwcGVyID09ICJE
RUxFVEUiIHx8IG1ldGhvZFVwcGVyID09ICJHRVQiIHx8IG1ldGhvZFVwcGVyID09ICJIRUFEIgor
ICAgICAgICB8fCBtZXRob2RVcHBlciA9PSAiSU5ERVgiIHx8IG1ldGhvZFVwcGVyID09ICJMT0NL
IiB8fCBtZXRob2RVcHBlciA9PSAiTS1QT1NUIiB8fCBtZXRob2RVcHBlciA9PSAiTUtDT0wiIHx8
IG1ldGhvZFVwcGVyID09ICJNT1ZFIiAKKyAgICAgICAgfHwgbWV0aG9kVXBwZXIgPT0gIk9QVElP
TlMiIHx8IG1ldGhvZFVwcGVyID09ICJQT1NUIiB8fCBtZXRob2RVcHBlciA9PSAiUFJPUEZJTkQi
IHx8IG1ldGhvZFVwcGVyID09ICJQUk9QUEFUQ0giIHx8IG1ldGhvZFVwcGVyID09ICJQVVQiIAor
ICAgICAgICB8fCBtZXRob2RVcHBlciA9PSAiVFJBQ0UiIHx8IG1ldGhvZFVwcGVyID09ICJVTkxP
Q0siKQorICAgICAgICBtX21ldGhvZCA9IG1ldGhvZFVwcGVyLmRlcHJlY2F0ZWRTdHJpbmcoKTsK
KyAgICBlbHNlCisgICAgICAgIG1fbWV0aG9kID0gbWV0aG9kLmRlcHJlY2F0ZWRTdHJpbmcoKTsK
KwogICAgIG1fYXN5bmMgPSBhc3luYzsKIAogICAgIGNoYW5nZVN0YXRlKExvYWRpbmcpOwpAQCAt
MjkxLDcgKzMwMCw3IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OnNlbmQoY29uc3QgU3RyaW5nJiAK
IAogICAgIG1fYWJvcnRlZCA9IGZhbHNlOwogCi0gICAgaWYgKCFib2R5LmlzTnVsbCgpICYmIG1f
bWV0aG9kLmxvd2VyKCkgIT0gImdldCIgJiYgbV9tZXRob2QubG93ZXIoKSAhPSAiaGVhZCIgJiYg
KG1fdXJsLnByb3RvY29sKCkubG93ZXIoKSA9PSAiaHR0cCIgfHwgbV91cmwucHJvdG9jb2woKS5s
b3dlcigpID09ICJodHRwcyIpKSB7CisgICAgaWYgKCFib2R5LmlzTnVsbCgpICYmIG1fbWV0aG9k
ICE9ICJHRVQiICYmIG1fbWV0aG9kICE9ICJIRUFEIiAmJiAobV91cmwucHJvdG9jb2woKS5sb3dl
cigpID09ICJodHRwIiB8fCBtX3VybC5wcm90b2NvbCgpLmxvd2VyKCkgPT0gImh0dHBzIikpIHsK
ICAgICAgICAgU3RyaW5nIGNvbnRlbnRUeXBlID0gZ2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1U
eXBlIik7CiAgICAgICAgIFN0cmluZyBjaGFyc2V0OwogICAgICAgICBpZiAoY29udGVudFR5cGUu
aXNFbXB0eSgpKQpAQCAtMzA5LDcgKzMxOCw3IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OnNlbmQo
Y29uc3QgU3RyaW5nJiAKICAgICAgICAgbV9qb2IgPSBuZXcgVHJhbnNmZXJKb2IobV9hc3luYyA/
IHRoaXMgOiAwLCBtX21ldGhvZCwgbV91cmwsIG1fZW5jb2RpbmcuZnJvbVVuaWNvZGUoYm9keS5k
ZXByZWNhdGVkU3RyaW5nKCkpKTsKICAgICB9IGVsc2UgewogICAgICAgICAvLyBGSVhNRTogSEVB
RCByZXF1ZXN0cyBqdXN0IGNyYXNoOyBzZWUgPHJkYXI6Ly80NDYwODk5PiBhbmQgdGhlIGNvbW1l
bnRlZCBvdXQgdGVzdHMgaW4gaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9tZXRob2RzLmh0bWwu
Ci0gICAgICAgIGlmIChtX21ldGhvZC5sb3dlcigpID09ICJoZWFkIikKKyAgICAgICAgaWYgKG1f
bWV0aG9kID09ICJIRUFEIikKICAgICAgICAgICAgIG1fbWV0aG9kID0gIkdFVCI7CiAgICAgICAg
IG1fam9iID0gbmV3IFRyYW5zZmVySm9iKG1fYXN5bmMgPyB0aGlzIDogMCwgbV9tZXRob2QsIG1f
dXJsKTsKICAgICB9Cg==
</data>
<flag name="review"
          id="2027"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>