<?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>10716</bug_id>
          
          <creation_ts>2006-09-03 14:31:29 -0700</creation_ts>
          <short_desc>XMLHttpRequest.responseText is null if HTTP response is empty</short_desc>
          <delta_ts>2006-09-04 22:01:42 -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>XML</component>
          <version>420+</version>
          <rep_platform>Mac (PowerPC)</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://nypop.com/~ap/webkit/getzero.html</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="Daniel Kinzler">daniel</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>mrowe</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>54733</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Kinzler">daniel</who>
    <bug_when>2006-09-03 14:31:29 -0700</bug_when>
    <thetext>Disclaimer: I don&apos;t have Safari around to check for myself, so the below is kind of second hand and the platform is a guess. Also, I originally reported this as a comment to bug 10638, but was told to file it separately.

The Problem: apperently, responseText, status, statusText and maybe other
fields are null if the response from the server was empty. But empty content is
valid in HTTP - so responseText should be an empty string, and status and
statusText should represent what the server actually sent (200 OK, hopefully).

This bug hits safari users when using an extension i recently contributed to wikipedia - see &lt;http://bugzilla.wikimedia.org/show_bug.cgi?id=7219&gt;. Note that I will try to write a workaround, so it may not be possible to reproduce the problem on wikipedia.

I have seen reports of the same problem showing up if the server responds with
&quot;304 Not Modified&quot; (see
&lt;http://www.bitterpill.org/bp/2005-06/safari-xmlhttprequest-undefine.html&gt;) -
please check this while you are at it. As per the w3c draft, 304s should be
handeled transparently by XMLHttpRequest (as 200 OK), unless If-Modified-Since
was sent explicitely using setRequestHeader, in which case the actual response
(with code 304) should be passed on the to JS code.

Generally, this appears to be needed as a test case:

if ( readyState == 4 )
  assert ( status != null &amp;&amp; statusText != null &amp;&amp; responseText != null );

Test this especially with an empty response, for &quot;200 OK&quot; and for &quot;304 Not Modified&quot; (for both cases: explicite or implicite If-Modified-Since).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54735</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2006-09-03 15:17:35 -0700</bug_when>
    <thetext>Confirmed with ToT.  The base issue with statusText and status being null on an empty response is covered by bug 5924, and is fixed in ToT.

The responseText problem looks like it was a part of bug 5924 that didn&apos;t get fixed.  XMLHttpRequests&apos;s m_response is initialized to null in XMLHttpRequest::open.  XMLHttpRequest::receivedData bails out early if the length of data is zero, rather than setting m_response to the empty string as is expected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54769</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-09-04 05:09:21 -0700</bug_when>
    <thetext>According to the draft spec (and Firefox), responseText needs to be initialized to an empty string in XHR constructor. WinIE only makes it available in state 4 for empty responses, and throws an exception on earlier access. Either behavior seems logical; I suggest that we go by the spec.

The behavior of responseXML is somewhat different. WinIE initializes it to an empty document in the constructor, and keeps it empty after a parsing error. Firefox, on the other hand, initializes it to null, which conforms to the spec, but puts a descriptive error document on a parsing error (with empty response being an error), which doesn&apos;t conform. According to the spec, an error document should be null.

&gt; &quot;304 Not Modified&quot; &lt;...&gt; please check this while you are at it.

See bug 8210.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54779</commentid>
    <comment_count>3</comment_count>
      <attachid>10393</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-09-04 10:08:18 -0700</bug_when>
    <thetext>Created attachment 10393
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54801</commentid>
    <comment_count>4</comment_count>
      <attachid>10393</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-09-04 17:05:26 -0700</bug_when>
    <thetext>Comment on attachment 10393
proposed fix

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54812</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-09-04 22:01:42 -0700</bug_when>
    <thetext>Committed revision 16226.

re: comments in LayoutTests/ChangeLog - filed bug 10736 for responseXML. The fact the we fail to ever throw exceptions from XHR is prominent enough without additional bugs, I hope to look into it soon.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10393</attachid>
            <date>2006-09-04 10:08:18 -0700</date>
            <delta_ts>2006-09-04 17:05:26 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>10716r1_patch.txt</filename>
            <type>text/plain</type>
            <size>15011</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE2MjEzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMDYtMDktMDQgIEFsZXhleSBQcm9za3VyeWFr
b3YgIDxhcEBueXBvcC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdHMgZm9yIGh0dHA6Ly9idWd6aWxsYS5vcGVuZGFyd2luLm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTA3MTYKKyAgICAgICAgWE1MSHR0cFJlcXVlc3QucmVzcG9uc2VUZXh0IGlz
IG51bGwgaWYgSFRUUCByZXNwb25zZSBpcyBlbXB0eQorCisgICAgICAgIFRoZSByZXN1bHRzIGFy
ZSBub3QgZnVsbHkgY29ycmVjdCB5ZXQ6CisgICAgICAgIC0gYWNjZXNzaW5nIHByb3BlcnRpZXMg
dGhhdCBhcmUgbm93IHVuZGVmaW5lZCBzaG91bGQgY2F1c2UgYW4gZXhjZXB0aW9uOworICAgICAg
ICAtIG9uIGVycm9yLCByZXNwb25zZVhNTCBzaG91bGQgYmUgbnVsbCwgcmF0aGVyIHRoYW4gY29u
dGFpbiBhbiBIVE1MIGRvY3VtZW50IGRlc2NyaWJpbmcgCisgICAgICAgIHRoZSBlcnJvci4KKwor
ICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvc3VwcG9ydGVkLXhtbC1jb250ZW50
LXR5cGVzLWV4cGVjdGVkLnR4dDogVXBkYXRlZCBmb3IgcmVzcG9uc2VYTUwKKyAgICAgICAgbm93
IHJldHVybmluZyBudWxsIGZvciBuaWwgZG9jdW1lbnRzLgorCisgICAgICAgICogaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC96ZXJvLWxlbmd0aC1yZXNwb25zZS1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC96ZXJvLWxlbmd0aC1yZXNwb25zZS1zeW5j
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3plcm8t
bGVuZ3RoLXJlc3BvbnNlLXN5bmMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L3plcm8tbGVuZ3RoLXJlc3BvbnNlLmh0bWw6CisgICAgICAgIEV4dGVuZGVkIHRvIGNv
dmVyIG1vcmUgcHJvcGVydGllcy4KKwogMjAwNi0wOS0wNCAgUm9iIEJ1aXMgIDxidWlzQGtkZS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYy4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3Qvc3VwcG9ydGVkLXhtbC1jb250ZW50LXR5cGVzLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L3N1cHBvcnRlZC14bWwtY29udGVudC10eXBlcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE2MjEz
KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9zdXBwb3J0ZWQteG1s
LWNvbnRlbnQtdHlwZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00MCw0MiArNDAs
NDIgQEAgUEFTUyAtLSB0ZXN0aW5nOiBmb28mYmFyL2Jheit4bWwgLS0gcmVzcAogCiBQQVNTIC0t
IHRlc3Rpbmc6IGZvbypiYXIvYmF6K3htbCAtLSByZXNwb25zZVhNTDogW29iamVjdCBEb2N1bWVu
dF0KIAotUEFTUyAtLSB0ZXN0aW5nOiB0ZXh0L2h0bWwgLS0gcmVzcG9uc2VYTUw6IHVuZGVmaW5l
ZAorUEFTUyAtLSB0ZXN0aW5nOiB0ZXh0L2h0bWwgLS0gcmVzcG9uc2VYTUw6IG51bGwKIAotUEFT
UyAtLSB0ZXN0aW5nOiBpbWFnZS9wbmcgLS0gcmVzcG9uc2VYTUw6IHVuZGVmaW5lZAorUEFTUyAt
LSB0ZXN0aW5nOiBpbWFnZS9wbmcgLS0gcmVzcG9uc2VYTUw6IG51bGwKIAotUEFTUyAtLSB0ZXN0
aW5nOiBpbnZhbGlkIC0tIHJlc3BvbnNlWE1MOiB1bmRlZmluZWQKK1BBU1MgLS0gdGVzdGluZzog
aW52YWxpZCAtLSByZXNwb25zZVhNTDogbnVsbAogCiBGQUlMIChnb3QgZG9jdW1lbnQgLS0gcmVz
cG9uc2UgdHlwZTogZm9vIGJhci9iYXoreG1sKSAtLSB0ZXN0aW5nOiBmb28gYmFyL2Jheit4bWwg
LS0gcmVzcG9uc2VYTUw6IFtvYmplY3QgRG9jdW1lbnRdCiAKLVBBU1MgLS0gdGVzdGluZzogZm9v
W2Jhci9iYXoreG1sIC0tIHJlc3BvbnNlWE1MOiB1bmRlZmluZWQKK1BBU1MgLS0gdGVzdGluZzog
Zm9vW2Jhci9iYXoreG1sIC0tIHJlc3BvbnNlWE1MOiBudWxsCiAKLVBBU1MgLS0gdGVzdGluZzog
Zm9vXWJhci9iYXoreG1sIC0tIHJlc3BvbnNlWE1MOiB1bmRlZmluZWQKK1BBU1MgLS0gdGVzdGlu
ZzogZm9vXWJhci9iYXoreG1sIC0tIHJlc3BvbnNlWE1MOiBudWxsCiAKLVBBU1MgLS0gdGVzdGlu
ZzogZm9vKGJhci9iYXoreG1sIC0tIHJlc3BvbnNlWE1MOiB1bmRlZmluZWQKK1BBU1MgLS0gdGVz
dGluZzogZm9vKGJhci9iYXoreG1sIC0tIHJlc3BvbnNlWE1MOiBudWxsCiAKLVBBU1MgLS0gdGVz
dGluZzogZm9vKWJhci9iYXoreG1sIC0tIHJlc3BvbnNlWE1MOiB1bmRlZmluZWQKK1BBU1MgLS0g
dGVzdGluZzogZm9vKWJhci9iYXoreG1sIC0tIHJlc3BvbnNlWE1MOiBudWxsCiAKIFBBU1MgLS0g
dGVzdGluZzogZm9vCiAKLVBBU1MgLS0gdGVzdGluZzogZm9vPmJhci9iYXoreG1sIC0tIHJlc3Bv
bnNlWE1MOiB1bmRlZmluZWQKK1BBU1MgLS0gdGVzdGluZzogZm9vPmJhci9iYXoreG1sIC0tIHJl
c3BvbnNlWE1MOiBudWxsCiAKLVBBU1MgLS0gdGVzdGluZzogZm9vQGJhci9iYXoreG1sIC0tIHJl
c3BvbnNlWE1MOiB1bmRlZmluZWQKK1BBU1MgLS0gdGVzdGluZzogZm9vQGJhci9iYXoreG1sIC0t
IHJlc3BvbnNlWE1MOiBudWxsCiAKLVBBU1MgLS0gdGVzdGluZzogZm9vLGJhci9iYXoreG1sIC0t
IHJlc3BvbnNlWE1MOiB1bmRlZmluZWQKK1BBU1MgLS0gdGVzdGluZzogZm9vLGJhci9iYXoreG1s
IC0tIHJlc3BvbnNlWE1MOiBudWxsCiAKLVBBU1MgLS0gdGVzdGluZzogZm9vO2Jhci9iYXoreG1s
IC0tIHJlc3BvbnNlWE1MOiB1bmRlZmluZWQKK1BBU1MgLS0gdGVzdGluZzogZm9vO2Jhci9iYXor
eG1sIC0tIHJlc3BvbnNlWE1MOiBudWxsCiAKLVBBU1MgLS0gdGVzdGluZzogZm9vOmJhci9iYXor
eG1sIC0tIHJlc3BvbnNlWE1MOiB1bmRlZmluZWQKK1BBU1MgLS0gdGVzdGluZzogZm9vOmJhci9i
YXoreG1sIC0tIHJlc3BvbnNlWE1MOiBudWxsCiAKLVBBU1MgLS0gdGVzdGluZzogZm9vXGJhci9i
YXoreG1sIC0tIHJlc3BvbnNlWE1MOiB1bmRlZmluZWQKK1BBU1MgLS0gdGVzdGluZzogZm9vXGJh
ci9iYXoreG1sIC0tIHJlc3BvbnNlWE1MOiBudWxsCiAKLVBBU1MgLS0gdGVzdGluZzogZm9vImJh
ci9iYXoreG1sIC0tIHJlc3BvbnNlWE1MOiB1bmRlZmluZWQKK1BBU1MgLS0gdGVzdGluZzogZm9v
ImJhci9iYXoreG1sIC0tIHJlc3BvbnNlWE1MOiBudWxsCiAKLVBBU1MgLS0gdGVzdGluZzogZm9v
L2Jhci9iYXoreG1sIC0tIHJlc3BvbnNlWE1MOiB1bmRlZmluZWQKK1BBU1MgLS0gdGVzdGluZzog
Zm9vL2Jhci9iYXoreG1sIC0tIHJlc3BvbnNlWE1MOiBudWxsCiAKLVBBU1MgLS0gdGVzdGluZzog
Zm9vP2Jhci9iYXoreG1sIC0tIHJlc3BvbnNlWE1MOiB1bmRlZmluZWQKK1BBU1MgLS0gdGVzdGlu
ZzogZm9vP2Jhci9iYXoreG1sIC0tIHJlc3BvbnNlWE1MOiBudWxsCiAKLVBBU1MgLS0gdGVzdGlu
ZzogZm9vPWJhci9iYXoreG1sIC0tIHJlc3BvbnNlWE1MOiB1bmRlZmluZWQKK1BBU1MgLS0gdGVz
dGluZzogZm9vPWJhci9iYXoreG1sIC0tIHJlc3BvbnNlWE1MOiBudWxsCiAKIApJbmRleDogTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC96ZXJvLWxlbmd0aC1yZXNwb25zZS1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC96ZXJvLWxlbmd0aC1yZXNwb25zZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE2MjEz
KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC96ZXJvLWxlbmd0aC1y
ZXNwb25zZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTAgKzEsMjcgQEAKIFRl
c3QgZm9yIGJ1ZyA1OTI0IC0gemVyby1sZW5ndGggcmVzcG9uc2VzIHRvIFhNTEhUVFBSZXF1ZXN0
IG1pc2hhbmRsZWQuCiAKIGFmdGVyIGNyZWF0aW9uOiBVbmluaXRpYWxpemVkCitSZXNwb25zZVRl
eHQ6ICIiCiBhZnRlciBzZXR0aW5nIG9ucmVhZHlzdGF0ZWNoYW5nZTogVW5pbml0aWFsaXplZAog
b25yZWFkeXN0YXRlY2hhbmdlOiBMb2FkaW5nCivCoMKgU3RhdHVzOiB1bmRlZmluZWQKK8KgwqBT
dGF0dXNUZXh0OiB1bmRlZmluZWQKK8KgwqBSZXNwb25zZVRleHQ6ICIiCivCoMKgUmVzcG9uc2VY
TUw6IG51bGwKK8KgwqBSZXNwb25zZVhNTCBzZXJpYWxpemVkOiBuL2EKIGFmdGVyIG9wZW4oKTog
TG9hZGluZworYWZ0ZXIgb3ZlcnJpZGVNaW1lVHlwZSgpOiBMb2FkaW5nCiBhZnRlciBzZW5kKCk6
IExvYWRpbmcKLW9ucmVhZHlzdGF0ZWNoYW5nZTogTG9hZGVkLiBTdGF0dXM6IDIwMAotb25yZWFk
eXN0YXRlY2hhbmdlOiBDb21wbGV0ZWQuIFN0YXR1czogMjAwCitvbnJlYWR5c3RhdGVjaGFuZ2U6
IExvYWRlZAorwqDCoFN0YXR1czogMjAwCivCoMKgU3RhdHVzVGV4dDogIk9LIgorwqDCoFJlc3Bv
bnNlVGV4dDogIiIKK8KgwqBSZXNwb25zZVhNTDogbnVsbAorwqDCoFJlc3BvbnNlWE1MIHNlcmlh
bGl6ZWQ6IG4vYQorb25yZWFkeXN0YXRlY2hhbmdlOiBDb21wbGV0ZWQKK8KgwqBTdGF0dXM6IDIw
MAorwqDCoFN0YXR1c1RleHQ6ICJPSyIKK8KgwqBSZXNwb25zZVRleHQ6ICIiCivCoMKgUmVzcG9u
c2VYTUw6IFtvYmplY3QgRG9jdW1lbnRdCivCoMKgUmVzcG9uc2VYTUwgc2VyaWFsaXplZDogIjxo
dG1sPjxib2R5PjxwYXJzZXJlcnJvciBzdHlsZT0id2hpdGUtc3BhY2U6IHByZTsgYm9yZGVyOiAy
cHggc29saWQgI2M3NzsgcGFkZGluZzogMCAxZW0gMCAxZW07IG1hcmdpbjogMWVtOyBiYWNrZ3Jv
dW5kLWNvbG9yOiAjZmRkOyBjb2xvcjogYmxhY2siPjxoMz5UaGlzIHBhZ2UgY29udGFpbnMgdGhl
IGZvbGxvd2luZyBlcnJvcnM6PC9oMz48ZGl2IHN0eWxlPSJmb250LWZhbWlseTptb25vc3BhY2U7
Zm9udC1zaXplOjEycHgiPmVycm9yIG9uIGxpbmUgMSBhdCBjb2x1bW4gMTogRXh0cmEgY29udGVu
dCBhdCB0aGUgZW5kIG9mIHRoZSBkb2N1bWVudCA8L2Rpdj48aDM+QmVsb3cgaXMgYSByZW5kZXJp
bmcgb2YgdGhlIHBhZ2UgdXAgdG8gdGhlIGZpcnN0IGVycm9yLjwvaDM+PC9wYXJzZXJlcnJvcj48
L2JvZHk+PC9odG1sPiIKIApJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC96ZXJvLWxlbmd0aC1yZXNwb25zZS1zeW5jLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3plcm8tbGVuZ3RoLXJlc3Bv
bnNlLXN5bmMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNjIxMykKKysrIExheW91dFRlc3RzL2h0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvemVyby1sZW5ndGgtcmVzcG9uc2Utc3luYy1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsOCArMSwxNCBAQAogVGVzdCBmb3IgYnVnIDU5MjQg
LSB6ZXJvLWxlbmd0aCByZXNwb25zZXMgdG8gWE1MSFRUUFJlcXVlc3QgbWlzaGFuZGxlZC4KIAog
YWZ0ZXIgY3JlYXRpb246IFVuaW5pdGlhbGl6ZWQKK1Jlc3BvbnNlVGV4dDogIiIKIGFmdGVyIHNl
dHRpbmcgb25yZWFkeXN0YXRlY2hhbmdlOiBVbmluaXRpYWxpemVkCiBhZnRlciBvcGVuKCk6IExv
YWRpbmcKK2FmdGVyIG92ZXJyaWRlTWltZVR5cGUoKTogTG9hZGluZwogYWZ0ZXIgc2VuZCgpOiBD
b21wbGV0ZWQKLVN0YXR1czogMjAwCivCoMKgU3RhdHVzOiAyMDAKK8KgwqBTdGF0dXNUZXh0OiAi
T0siCivCoMKgUmVzcG9uc2VUZXh0OiAiIgorwqDCoFJlc3BvbnNlWE1MOiBbb2JqZWN0IERvY3Vt
ZW50XQorwqDCoFJlc3BvbnNlWE1MIHNlcmlhbGl6ZWQ6ICI8aHRtbD48Ym9keT48cGFyc2VyZXJy
b3Igc3R5bGU9IndoaXRlLXNwYWNlOiBwcmU7IGJvcmRlcjogMnB4IHNvbGlkICNjNzc7IHBhZGRp
bmc6IDAgMWVtIDAgMWVtOyBtYXJnaW46IDFlbTsgYmFja2dyb3VuZC1jb2xvcjogI2ZkZDsgY29s
b3I6IGJsYWNrIj48aDM+VGhpcyBwYWdlIGNvbnRhaW5zIHRoZSBmb2xsb3dpbmcgZXJyb3JzOjwv
aDM+PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk6bW9ub3NwYWNlO2ZvbnQtc2l6ZToxMnB4Ij5lcnJv
ciBvbiBsaW5lIDEgYXQgY29sdW1uIDE6IEV4dHJhIGNvbnRlbnQgYXQgdGhlIGVuZCBvZiB0aGUg
ZG9jdW1lbnQgPC9kaXY+PGgzPkJlbG93IGlzIGEgcmVuZGVyaW5nIG9mIHRoZSBwYWdlIHVwIHRv
IHRoZSBmaXJzdCBlcnJvci48L2gzPjwvcGFyc2VyZXJyb3I+PC9ib2R5PjwvaHRtbD4iCiAKSW5k
ZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvemVyby1sZW5ndGgtcmVz
cG9uc2Utc3luYy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvemVyby1sZW5ndGgtcmVzcG9uc2Utc3luYy5odG1sCShyZXZpc2lvbiAxNjIx
MykKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvemVyby1sZW5ndGgt
cmVzcG9uc2Utc3luYy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogPGh0bWw+
CiA8aGVhZD4KIDx0aXRsZT5UZXN0IFhtbEh0dHBSZXF1ZXN0IHplcm8tbGVuZ3RoIHJlc3BvbnNl
IGhhbmRsaW5nIChzeW5jKTwvdGl0bGU+Cis8bWV0YSBodHRwLWVxdWl2PSJjb250ZW50LXR5cGUi
IGNvbnRlbnQ9InRleHQvaHRtbDtjaGFyc2V0PXV0Zi04Ij4KIDxib2R5PgogPHA+VGVzdCBmb3Ig
PGEgaHJlZj0iaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD01
OTI0Ij5idWcgNTkyNDwvYT4KIC0gemVyby1sZW5ndGggcmVzcG9uc2VzIHRvIFhNTEhUVFBSZXF1
ZXN0IG1pc2hhbmRsZWQuPC9wPgpAQCAtOSw3ICsxMCw3IEBACiAgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOwogCi0gICAgdmFyIGNvbnNvbGVfbWVzc2FnZXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJvbCIpOworICAgIHZhciBjb25zb2xlX21lc3NhZ2VzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgidWwiKTsKICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNvbnNvbGVfbWVzc2FnZXMp
OwogICAgIAogICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQpAQCAtMzMsNiArMzQsOCBAQAogICAg
ICAgICAKICAgICAgICAgbG9nKCJhZnRlciBjcmVhdGlvbjogIiArIHN0YXRlTmFtZShyZXEucmVh
ZHlTdGF0ZSkpOwogICAgICAgICAKKyAgICAgICAgbG9nKCJSZXNwb25zZVRleHQ6ICIgKyBwcmV0
dHlQcmludFRleHQocmVxLnJlc3BvbnNlVGV4dCkpOworCiAgICAgICAgIGlmIChhc3luYykKICAg
ICAgICAgICAgIHJlcS5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBwcm9jZXNzU3RhdGVDaGFuZ2U7CiAg
ICAgICAgIApAQCAtNDAsNiArNDMsOCBAQAogCiAgICAgICAgIHJlcS5vcGVuKCdHRVQnLCB1cmws
IGFzeW5jKTsKICAgICAgICAgbG9nKCJhZnRlciBvcGVuKCk6ICIgKyBzdGF0ZU5hbWUocmVxLnJl
YWR5U3RhdGUpKTsKKyAgICAgICAgcmVxLm92ZXJyaWRlTWltZVR5cGUoJ3RleHQveG1sJyk7Cisg
ICAgICAgIGxvZygiYWZ0ZXIgb3ZlcnJpZGVNaW1lVHlwZSgpOiAiICsgc3RhdGVOYW1lKHJlcS5y
ZWFkeVN0YXRlKSk7CiAgICAgICAgIHJlcS5zZW5kKG51bGwpOwogICAgICAgICBsb2coImFmdGVy
IHNlbmQoKTogIiArIHN0YXRlTmFtZShyZXEucmVhZHlTdGF0ZSkpOwogCkBAIC02NCwxNiArNjks
MjggQEAKICAgICAgICAgcmV0dXJuICI/Pz8iOwogICAgIH0KICAgICAKLSAgICBmdW5jdGlvbiBw
cm9jZXNzU3RhdGVDaGFuZ2UoKXsKLSAgICAgIGlmIChyZXEucmVhZHlTdGF0ZSA8IDIpCi0gICAg
ICAgIGxvZygib25yZWFkeXN0YXRlY2hhbmdlOiAiICsgc3RhdGVOYW1lKHJlcS5yZWFkeVN0YXRl
KSk7Ci0gICAgICBlbHNlCi0gICAgICAgIGxvZygib25yZWFkeXN0YXRlY2hhbmdlOiAiICsgc3Rh
dGVOYW1lKHJlcS5yZWFkeVN0YXRlKSArICIuIFN0YXR1czogIiArIHJlcS5zdGF0dXMpOworICAg
IGZ1bmN0aW9uIHByZXR0eVByaW50VGV4dCh0ZXh0KSB7CisgICAgICAgIGlmICh0ZXh0ID09IG51
bGwpCisgICAgICAgICAgICByZXR1cm4gdGV4dDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
cmV0dXJuICciJyArIHRleHQgKyAnIic7CisgICAgfQorCisgICAgZnVuY3Rpb24gZHVtcFJlc3Bv
bnNlKCkgeworICAgICAgIHRyeSB7IGxvZyAoIsKgwqBTdGF0dXM6ICIgKyByZXEuc3RhdHVzKTsg
fSBjYXRjaCAoZXgpIHsgbG9nKCLCoMKgRXhjZXB0aW9uIGdldHRpbmcgc3RhdHVzOiAiICsgZXgu
bWVzc2FnZSk7IH0KKyAgICAgICB0cnkgeyBsb2cgKCLCoMKgU3RhdHVzVGV4dDogIiArIHByZXR0
eVByaW50VGV4dChyZXEuc3RhdHVzVGV4dCkpOyB9IGNhdGNoIChleCkgeyBsb2coIsKgwqBFeGNl
cHRpb24gZ2V0dGluZyBTdGF0dXNUZXh0OiAiICsgZXgubWVzc2FnZSk7IH0KKyAgICAgICB0cnkg
eyBsb2cgKCLCoMKgUmVzcG9uc2VUZXh0OiAiICsgcHJldHR5UHJpbnRUZXh0KHJlcS5yZXNwb25z
ZVRleHQpKTsgfSBjYXRjaCAoZXgpIHsgbG9nKCLCoMKgRXhjZXB0aW9uIGdldHRpbmcgUmVzcG9u
c2VUZXh0OiAiICsgZXgubWVzc2FnZSk7IH0KKyAgICAgICB0cnkgeyBsb2cgKCLCoMKgUmVzcG9u
c2VYTUw6ICIgKyByZXEucmVzcG9uc2VYTUwpOyB9IGNhdGNoIChleCkgeyBsb2coIsKgwqBFeGNl
cHRpb24gZ2V0dGluZyBSZXNwb25zZVhNTDogIiArIGV4Lm1lc3NhZ2UpOyB9CisgICAgICAgdHJ5
IHsgbG9nICgiwqDCoFJlc3BvbnNlWE1MIHNlcmlhbGl6ZWQ6ICIgKyAocmVxLnJlc3BvbnNlWE1M
ID8gcHJldHR5UHJpbnRUZXh0KHdpbmRvdy5YTUxTZXJpYWxpemVyID8gKG5ldyBYTUxTZXJpYWxp
emVyKCkpLnNlcmlhbGl6ZVRvU3RyaW5nKHJlcS5yZXNwb25zZVhNTCkgOiByZXEucmVzcG9uc2VY
TUwueG1sKSA6ICJuL2EiKSk7IH0gY2F0Y2ggKGV4KSB7IGxvZygiwqDCoEV4Y2VwdGlvbiBzZXJp
YWxpemluZyBSZXNwb25zZVhNTDogIiArIGV4Lm1lc3NhZ2UpOyB9CisgICAgfQorCisgICAgZnVu
Y3Rpb24gcHJvY2Vzc1N0YXRlQ2hhbmdlKCkgeworICAgICAgbG9nKCJvbnJlYWR5c3RhdGVjaGFu
Z2U6ICIgKyBzdGF0ZU5hbWUocmVxLnJlYWR5U3RhdGUpKTsKKyAgICAgIGR1bXBSZXNwb25zZSgp
OwogICAgIH0KICAgICAKLSAgICAvLyBzdGFydCBhc3luYyBzdGVwcwogICAgIGdldCgncmVzb3Vy
Y2VzL3plcm8tbGVuZ3RoLnR4dCcsIGZhbHNlKTsKLSAgICBsb2coIlN0YXR1czogIiArIHJlcS5z
dGF0dXMpOworICAgIGR1bXBSZXNwb25zZSgpOwogPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3plcm8tbGVuZ3Ro
LXJlc3BvbnNlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC96ZXJvLWxlbmd0aC1yZXNwb25zZS5odG1sCShyZXZpc2lvbiAxNjIxMykKKysr
IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvemVyby1sZW5ndGgtcmVzcG9u
c2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIDxodG1sPgogPGhlYWQ+CiA8
dGl0bGU+VGVzdCBYbWxIdHRwUmVxdWVzdCB6ZXJvLWxlbmd0aCByZXNwb25zZSBoYW5kbGluZyAo
YXN5bmMpPC90aXRsZT4KKzxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0i
dGV4dC9odG1sO2NoYXJzZXQ9dXRmLTgiPgogPGJvZHk+CiA8cD5UZXN0IGZvciA8YSBocmVmPSJo
dHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTU5MjQiPmJ1ZyA1
OTI0PC9hPgogLSB6ZXJvLWxlbmd0aCByZXNwb25zZXMgdG8gWE1MSFRUUFJlcXVlc3QgbWlzaGFu
ZGxlZC48L3A+CkBAIC05LDcgKzEwLDcgQEAKICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQogICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CiAKLSAg
ICB2YXIgY29uc29sZV9tZXNzYWdlcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9sIik7Cisg
ICAgdmFyIGNvbnNvbGVfbWVzc2FnZXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ1bCIpOwog
ICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY29uc29sZV9tZXNzYWdlcyk7CiAgICAgCiAg
ICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCkBAIC0zMyw2ICszNCw4IEBACiAgICAgICAgIAogICAg
ICAgICBsb2coImFmdGVyIGNyZWF0aW9uOiAiICsgc3RhdGVOYW1lKHJlcS5yZWFkeVN0YXRlKSk7
CiAgICAgICAgIAorICAgICAgICBsb2coIlJlc3BvbnNlVGV4dDogIiArIHByZXR0eVByaW50VGV4
dChyZXEucmVzcG9uc2VUZXh0KSk7CisKICAgICAgICAgaWYgKGFzeW5jKQogICAgICAgICAgICAg
cmVxLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IHByb2Nlc3NTdGF0ZUNoYW5nZTsKICAgICAgICAgCkBA
IC00MCw2ICs0Myw4IEBACiAKICAgICAgICAgcmVxLm9wZW4oJ0dFVCcsIHVybCwgYXN5bmMpOwog
ICAgICAgICBsb2coImFmdGVyIG9wZW4oKTogIiArIHN0YXRlTmFtZShyZXEucmVhZHlTdGF0ZSkp
OworICAgICAgICByZXEub3ZlcnJpZGVNaW1lVHlwZSgndGV4dC94bWwnKTsKKyAgICAgICAgbG9n
KCJhZnRlciBvdmVycmlkZU1pbWVUeXBlKCk6ICIgKyBzdGF0ZU5hbWUocmVxLnJlYWR5U3RhdGUp
KTsKICAgICAgICAgcmVxLnNlbmQobnVsbCk7CiAgICAgICAgIGxvZygiYWZ0ZXIgc2VuZCgpOiAi
ICsgc3RhdGVOYW1lKHJlcS5yZWFkeVN0YXRlKSk7CiAKQEAgLTY0LDExICs2OSwyNCBAQAogICAg
ICAgICByZXR1cm4gIj8/PyI7CiAgICAgfQogICAgIAotICAgIGZ1bmN0aW9uIHByb2Nlc3NTdGF0
ZUNoYW5nZSgpewotICAgICAgaWYgKHJlcS5yZWFkeVN0YXRlIDwgMikKLSAgICAgICAgbG9nKCJv
bnJlYWR5c3RhdGVjaGFuZ2U6ICIgKyBzdGF0ZU5hbWUocmVxLnJlYWR5U3RhdGUpKTsKLSAgICAg
IGVsc2UKLSAgICAgICAgbG9nKCJvbnJlYWR5c3RhdGVjaGFuZ2U6ICIgKyBzdGF0ZU5hbWUocmVx
LnJlYWR5U3RhdGUpICsgIi4gU3RhdHVzOiAiICsgcmVxLnN0YXR1cyk7CisgICAgZnVuY3Rpb24g
cHJldHR5UHJpbnRUZXh0KHRleHQpIHsKKyAgICAgICAgaWYgKHRleHQgPT0gbnVsbCkKKyAgICAg
ICAgICAgIHJldHVybiB0ZXh0OworICAgICAgICByZXR1cm4gJyInICsgdGV4dCArICciJzsKKyAg
ICB9CisgICAgCisgICAgZnVuY3Rpb24gZHVtcFJlc3BvbnNlKCkgeworCisgICAgICAgdHJ5IHsg
bG9nICgiwqDCoFN0YXR1czogIiArIHJlcS5zdGF0dXMpOyB9IGNhdGNoIChleCkgeyBsb2coIsKg
wqBFeGNlcHRpb24gZ2V0dGluZyBzdGF0dXM6ICIgKyBleC5tZXNzYWdlKTsgfQorICAgICAgIHRy
eSB7IGxvZyAoIsKgwqBTdGF0dXNUZXh0OiAiICsgcHJldHR5UHJpbnRUZXh0KHJlcS5zdGF0dXNU
ZXh0KSk7IH0gY2F0Y2ggKGV4KSB7IGxvZygiwqDCoEV4Y2VwdGlvbiBnZXR0aW5nIFN0YXR1c1Rl
eHQ6ICIgKyBleC5tZXNzYWdlKTsgfQorICAgICAgIHRyeSB7IGxvZyAoIsKgwqBSZXNwb25zZVRl
eHQ6ICIgKyBwcmV0dHlQcmludFRleHQocmVxLnJlc3BvbnNlVGV4dCkpOyB9IGNhdGNoIChleCkg
eyBsb2coIsKgwqBFeGNlcHRpb24gZ2V0dGluZyBSZXNwb25zZVRleHQ6ICIgKyBleC5tZXNzYWdl
KTsgfQorICAgICAgIHRyeSB7IGxvZyAoIsKgwqBSZXNwb25zZVhNTDogIiArIHJlcS5yZXNwb25z
ZVhNTCk7IH0gY2F0Y2ggKGV4KSB7IGxvZygiwqDCoEV4Y2VwdGlvbiBnZXR0aW5nIFJlc3BvbnNl
WE1MOiAiICsgZXgubWVzc2FnZSk7IH0KKyAgICAgICB0cnkgeyBsb2cgKCLCoMKgUmVzcG9uc2VY
TUwgc2VyaWFsaXplZDogIiArIChyZXEucmVzcG9uc2VYTUwgPyBwcmV0dHlQcmludFRleHQod2lu
ZG93LlhNTFNlcmlhbGl6ZXIgPyAobmV3IFhNTFNlcmlhbGl6ZXIoKSkuc2VyaWFsaXplVG9TdHJp
bmcocmVxLnJlc3BvbnNlWE1MKSA6IHJlcS5yZXNwb25zZVhNTC54bWwpIDogIm4vYSIpKTsgfSBj
YXRjaCAoZXgpIHsgbG9nKCLCoMKgRXhjZXB0aW9uIHNlcmlhbGl6aW5nIFJlc3BvbnNlWE1MOiAi
ICsgZXgubWVzc2FnZSk7IH0KKyAgICB9CisKKyAgICBmdW5jdGlvbiBwcm9jZXNzU3RhdGVDaGFu
Z2UoKSB7CisgICAgICAgbG9nKCJvbnJlYWR5c3RhdGVjaGFuZ2U6ICIgKyBzdGF0ZU5hbWUocmVx
LnJlYWR5U3RhdGUpKTsKKyAgICAgICBkdW1wUmVzcG9uc2UoKTsKICAgICB9CiAgICAgCiAgICAg
Ly8gc3RhcnQgYXN5bmMgc3RlcHMKSW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjIxMykKKysrIFdlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMDYtMDktMDQgIEFsZXhleSBQ
cm9za3VyeWFrb3YgIDxhcEBueXBvcC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDcxNgorICAgICAgICBYTUxIdHRwUmVxdWVzdC5yZXNwb25zZVRleHQgaXMg
bnVsbCBpZiBIVFRQIHJlc3BvbnNlIGlzIGVtcHR5CisKKyAgICAgICAgRXh0ZW5kZWQgZXhpc3Rp
bmcgdGVzdHM6CisgICAgICAgIC0gaHR0cC90ZXN0cy94bWxodHRyZXF1ZXN0L3plcm8tbGVuZ3Ro
LXJlc3BvbnNlLmh0bWwKKyAgICAgICAgLSBodHRwL3Rlc3RzL3htbGh0dHJlcXVlc3QvemVyby1s
ZW5ndGgtcmVzcG9uc2Utc3luYy5odG1sCisKKyAgICAgICAgKiB4bWwveG1saHR0cHJlcXVlc3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OlhNTEh0dHBSZXF1ZXN0KTog
SW5pdGlhbGl6ZSByZXNwb25zZVRleHQgdG8gYW4gZW1wdHkgc3RyaW5nLgorICAgICAgICAoV2Vi
Q29yZTo6WE1MSHR0cFJlcXVlc3Q6Om9wZW4pOiBSZXNldCByZXNwb25zZVRleHQgdG8gYW4gZW1w
dHkgc3RyaW5nLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3QuY3BwOgor
ICAgICAgICAoS0pTOjpKU1hNTEh0dHBSZXF1ZXN0OjpnZXRWYWx1ZVByb3BlcnR5KTogUmV0dXJu
IG51bGwgcmF0aGVyIHRoYW4gdW5kZWZpbmVkCisgICAgICAgIGZvciBuaWwgcmVzcG9uc2VYTUwu
CisKIDIwMDYtMDktMDQgIEVyaWMgU2VpZGVsICA8ZXJpY0Blc2VpZGVsLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBhbmRlcnNjYS4KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxI
dHRwUmVxdWVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0
dHBSZXF1ZXN0LmNwcAkocmV2aXNpb24gMTYyMTMpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pT
WE1MSHR0cFJlcXVlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Niw3ICs5Niw3IEBAIEpTVmFs
dWUqIEpTWE1MSHR0cFJlcXVlc3Q6OmdldFZhbHVlUHJvcGUKICAgY2FzZSBSZXNwb25zZVhNTDoK
ICAgICBpZiAoRG9jdW1lbnQqIHJlc3BvbnNlWE1MID0gbV9pbXBsLT5nZXRSZXNwb25zZVhNTCgp
KQogICAgICAgcmV0dXJuIHRvSlMoZXhlYywgcmVzcG9uc2VYTUwpOwotICAgIHJldHVybiBqc1Vu
ZGVmaW5lZCgpOworICAgIHJldHVybiBqc051bGwoKTsKICAgY2FzZSBTdGF0dXM6IHsKICAgICBp
bnQgc3RhdHVzID0gbV9pbXBsLT5nZXRTdGF0dXMoKTsKICAgICByZXR1cm4gc3RhdHVzID4gMCA/
IGpzTnVtYmVyKHN0YXR1cykgOiBqc1VuZGVmaW5lZCgpOwpJbmRleDogV2ViQ29yZS94bWwveG1s
aHR0cHJlcXVlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUveG1sL3htbGh0dHByZXF1ZXN0
LmNwcAkocmV2aXNpb24gMTYyMTMpCisrKyBXZWJDb3JlL3htbC94bWxodHRwcmVxdWVzdC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE4OSw2ICsxODksNyBAQCBYTUxIdHRwUmVxdWVzdDo6WE1MSHR0
cFJlcXVlc3QoRG9jdW1lbnQgCiAgICAgLCBtX2FzeW5jKHRydWUpCiAgICAgLCBtX2pvYigwKQog
ICAgICwgbV9zdGF0ZShVbmluaXRpYWxpemVkKQorICAgICwgbV9yZXNwb25zZSgiIiwgMCkKICAg
ICAsIG1fY3JlYXRlZERvY3VtZW50KGZhbHNlKQogICAgICwgbV9hYm9ydGVkKGZhbHNlKQogewpA
QCAtMjQ0LDcgKzI0NSw3IEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6Om9wZW4oY29uc3QgU3RyaW5n
JiAKICAgICAvLyBjbGVhciBzdHVmZiBmcm9tIHBvc3NpYmxlIHByZXZpb3VzIGxvYWQKICAgICBt
X3JlcXVlc3RIZWFkZXJzID0gRGVwcmVjYXRlZFN0cmluZygpOwogICAgIG1fcmVzcG9uc2VIZWFk
ZXJzID0gU3RyaW5nKCk7Ci0gICAgbV9yZXNwb25zZSA9IERlcHJlY2F0ZWRTdHJpbmcoKTsKKyAg
ICBtX3Jlc3BvbnNlID0gIiI7CiAgICAgbV9jcmVhdGVkRG9jdW1lbnQgPSBmYWxzZTsKICAgICBt
X3Jlc3BvbnNlWE1MID0gMDsKIAo=
</data>
<flag name="review"
          id="3316"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>