<?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>99983</bug_id>
          
          <creation_ts>2012-10-22 05:29:46 -0700</creation_ts>
          <short_desc>XMLHttpRequest Content-Type should be taken from Blob type</short_desc>
          <delta_ts>2012-12-07 01:07:31 -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>XML</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>100927</dependson>
    
    <dependson>104352</dependson>
          <blocked>11049</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexander Shalamov">alexander.shalamov</reporter>
          <assigned_to name="Alexander Shalamov">alexander.shalamov</assigned_to>
          <cc>ap</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>747454</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Shalamov">alexander.shalamov</who>
    <bug_when>2012-10-22 05:29:46 -0700</bug_when>
    <thetext>When Blob object is sent using XMLHttpRequest::send method, Content-Type should be the type of the Blob object.
http://www.w3.org/TR/XMLHttpRequest/#the-send-method</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747473</commentid>
    <comment_count>1</comment_count>
      <attachid>169890</attachid>
    <who name="Alexander Shalamov">alexander.shalamov</who>
    <bug_when>2012-10-22 06:00:06 -0700</bug_when>
    <thetext>Created attachment 169890
Patch 1

- Added layout test for XHR::send(Blob)
- Set Content-Type header for XHR if Blob object has type</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747631</commentid>
    <comment_count>2</comment_count>
      <attachid>169890</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-22 09:49:34 -0700</bug_when>
    <thetext>Comment on attachment 169890
Patch 1

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

Thank you for splitting the work into smaller chunks! This one looks pretty non-controversial, and should be good to go soon.

&gt; LayoutTests/http/tests/xmlhttprequest/post-blob-content-type.html:12
&gt; +     var blob = new Blob([&quot;Test content&quot;], {type: &quot;text/plain;charset=UTF-8&quot;});

Can you please add some test cases that don&apos;t look like default charset? With text/plain, one can&apos;t help but wonder if the result here is real, or just a fallback to some default.

Also, please add test cases where Blob Content-Type contains newlines of various kinds, or is otherwise invalid. You are adding a new HTTP header injection attack vector in this patch, so you should test it very carefully.

&gt; LayoutTests/http/tests/xmlhttprequest/post-blob-content-type.html:14
&gt; +     xhr.open(&quot;POST&quot;, &quot;print-content-type.cgi&quot;, false);

It would be nice to test both sync and async XHR. If you are only testing one, make it async, because that&apos;s the common case.

&gt; Source/WebCore/ChangeLog:3
&gt; +        [XMLHttpRequest] Content-Type and encoding is set incorrectly for Blob objects

[] prefixes are primarily meant for platform specific bug that people working on cross-platform code can ignore. I think that some reviewers may be filtering out e-mails about patches where title starts with &quot;[&quot;.

That&apos;s not appropriate for XMLHTtpRequest, because all ports care about it.

&gt; Source/WebCore/ChangeLog:9
&gt; +        Fix XMLHttpRequest::send(Blob*) method, so that the Content-Type is set according to W3C specification.
&gt; +        http://www.w3.org/TR/XMLHttpRequest/#the-send-method

Do any browsers agree with the specification?

&gt; Source/WebCore/xml/XMLHttpRequest.cpp:619
&gt; +        String contentType = getRequestHeader(&quot;Content-Type&quot;);
&gt; +        const String&amp; blobType = body-&gt;type();

This looks curious. Why is one variable a String, and another a reference?

That&apos;s not dictated by function return type.

&gt; Source/WebCore/xml/XMLHttpRequest.cpp:621
&gt; +        if (!blobType.isEmpty() &amp;&amp; contentType.isEmpty())
&gt; +            setRequestHeaderInternal(&quot;Content-Type&quot;, blobType);

What does the spec say about cross-origin XHR? One presumably needs CORS headers to send POST requests with arbitrary content types cross origin. I can&apos;t tell it from memory if our code will handle this case correctly.

In any case, please add a test (we usually do 127.0.0.1 vs localhost to test cross origin requests).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748566</commentid>
    <comment_count>3</comment_count>
    <who name="Alexander Shalamov">alexander.shalamov</who>
    <bug_when>2012-10-23 06:25:15 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Also, please add test cases where Blob Content-Type contains newlines of various kinds, or is otherwise invalid. You are adding a new HTTP header injection attack vector in this patch, so you should test it very carefully.

I checked ports that use libsoup (gtk, efl) and invalid header value is handled in libsoup.
Briefly checked chromium stack and I couldn&apos;t find any place where they check if header value is valid.

Is there http header name / value sanity checking code in WebCore that I can reuse? I couldn&apos;t find anything.

Also checked how mozilla and opera handle header values with newline characters:
Mozilla - doesn&apos;t send request
Opera - doesn&apos;t set invalid header (Behaves like like gtk / elf pors)
 
&gt; &gt; LayoutTests/http/tests/xmlhttprequest/post-blob-content-type.html:14
&gt; &gt; +     xhr.open(&quot;POST&quot;, &quot;print-content-type.cgi&quot;, false);
&gt; 
&gt; It would be nice to test both sync and async XHR. If you are only testing one, make it async, because that&apos;s the common case.

I will modify test to use both.

&gt; &gt; Source/WebCore/ChangeLog:9
&gt; &gt; +        Fix XMLHttpRequest::send(Blob*) method, so that the Content-Type is set according to W3C specification.
&gt; &gt; +        http://www.w3.org/TR/XMLHttpRequest/#the-send-method
&gt; 
&gt; Do any browsers agree with the specification?

Mozilla sets content-type according to the spec. Opera doesn&apos;t set anything and they added Blob support recently in 12.10 beta.
IE10 should have support, but I can&apos;t test it, since I don&apos;t have Win8 environment.
 
&gt; &gt; Source/WebCore/xml/XMLHttpRequest.cpp:619
&gt; &gt; +        String contentType = getRequestHeader(&quot;Content-Type&quot;);
&gt; &gt; +        const String&amp; blobType = body-&gt;type();
&gt; 
&gt; This looks curious. Why is one variable a String, and another a reference?
&gt; That&apos;s not dictated by function return type.

Will make contentType const String&amp; to avoid one copy.

&gt; &gt; Source/WebCore/xml/XMLHttpRequest.cpp:621
&gt; &gt; +        if (!blobType.isEmpty() &amp;&amp; contentType.isEmpty())
&gt; &gt; +            setRequestHeaderInternal(&quot;Content-Type&quot;, blobType);
&gt; 
&gt; What does the spec say about cross-origin XHR? One presumably needs CORS headers to send POST requests with arbitrary content types cross origin. I can&apos;t tell it from memory if our code will handle this case correctly.
&gt; 
&gt; In any case, please add a test (we usually do 127.0.0.1 vs localhost to test cross origin requests).

I will add test for cross-origin XHR and double check spec for FileAPI (http://dev.w3.org/2006/webapi/FileAPI/#use-cases-scheme)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748706</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-23 09:13:14 -0700</bug_when>
    <thetext>&gt; Is there http header name / value sanity checking code in WebCore that I can reuse? I couldn&apos;t find anything.

You could take a look at XMLHttpRequest&apos;s setRequestHeader implementation. Also, perhaps Blob itself performs the validation?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751826</commentid>
    <comment_count>5</comment_count>
      <attachid>170880</attachid>
    <who name="Alexander Shalamov">alexander.shalamov</who>
    <bug_when>2012-10-26 04:01:15 -0700</bug_when>
    <thetext>Created attachment 170880
Patch 2

- Added sync and async tests
- Added test for unicode characters in blob mime type (Specification doesn&apos;t say if exception should be thrown, Opera and WebKit throw exception. Mozilla doesn&apos;t.)
- Added test for newline characters inside blob MIME type string
- Added cross-origin request tests
- Added validation check for mime type value</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751959</commentid>
    <comment_count>6</comment_count>
      <attachid>170880</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-26 06:11:15 -0700</bug_when>
    <thetext>Comment on attachment 170880
Patch 2

Attachment 170880 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14606095

New failing tests:
http/tests/xmlhttprequest/post-blob-content-type.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752530</commentid>
    <comment_count>7</comment_count>
      <attachid>170880</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-26 16:06:13 -0700</bug_when>
    <thetext>Comment on attachment 170880
Patch 2

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

Looks good, r- for failing test.

&gt; LayoutTests/http/tests/xmlhttprequest/post-blob-content-type-expected.txt:9
&gt; +PASS Sync test: Blob Content-Type: &quot;invalid/type\r\ncharset;=koi8-r&quot;. Sent Content-type: &quot;&quot;

I&apos;d have added separate tests for CR, LF, CRLF, and for Unicode newlines. Also, for a boundary - unexpected things may happen if the request becomes multipart. Also, quote marks.

Please consider any tests you can think of - as mentioned before, we&apos;re adding a new attack vector, and should be super vigilant.

&gt; LayoutTests/http/tests/xmlhttprequest/post-blob-content-type-expected.txt:18
&gt; +PASS Async test: Should fail.

So is it a PASS or a FAIL then? :)

I would prefer the test split into multiple files. That way, long-term maintenance is much easier. A series of shouldBe is best when we are checking a long list of very similar cases, but these are quite different.

You could make test machinery simpler and easier to understand.

Filename of a separate case is a very prominent place for a brief description, so if a test fails, you already have an idea of what went wrong simply by looking at its name. It&apos;s much easier to get rid of these &quot;pass must fail&quot; mysteries, too.

&gt; LayoutTests/http/tests/xmlhttprequest/post-blob-content-type.html:4
&gt; +  &lt;script src=&quot;../../js-test-resources/js-test-pre.js&quot;&gt;&lt;/script&gt;

No need for the relative path here - as this is an HTTP test, you can start form the root. Not a big deal - will just make it easier to move the test into a different directory if needed, for example.

&gt; LayoutTests/http/tests/xmlhttprequest/post-blob-content-type.html:116
&gt; +        if (async) xhr.onloadend = reportResult;

I usually don&apos;t object against non-WebKit coding style in tests, but this one has logic complicated enough that I feel tempted to.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778945</commentid>
    <comment_count>8</comment_count>
      <attachid>176711</attachid>
    <who name="Alexander Shalamov">alexander.shalamov</who>
    <bug_when>2012-11-29 05:35:12 -0800</bug_when>
    <thetext>Created attachment 176711
Patch 3

- rebased to master
- use isValidContentType to validate blob mime type</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778948</commentid>
    <comment_count>9</comment_count>
      <attachid>176711</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-11-29 05:39:46 -0800</bug_when>
    <thetext>Comment on attachment 176711
Patch 3

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

&gt; Source/WebCore/xml/XMLHttpRequest.cpp:652
&gt; +            else

WebKit Coding style says to use { } for this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778950</commentid>
    <comment_count>10</comment_count>
      <attachid>176712</attachid>
    <who name="Alexander Shalamov">alexander.shalamov</who>
    <bug_when>2012-11-29 05:42:35 -0800</bug_when>
    <thetext>Created attachment 176712
Patch 4

- added {}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780519</commentid>
    <comment_count>11</comment_count>
      <attachid>176712</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-30 16:16:18 -0800</bug_when>
    <thetext>Comment on attachment 176712
Patch 4

Attachment 176712 did not pass win-ews (win):
Output: http://queues.webkit.org/results/15055592</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780555</commentid>
    <comment_count>12</comment_count>
      <attachid>176712</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-11-30 16:59:22 -0800</bug_when>
    <thetext>Comment on attachment 176712
Patch 4

I&apos;m not happy about the test, but OK.

You&apos;ll need to add a file that implements isValidContentType to the Windows project.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781389</commentid>
    <comment_count>13</comment_count>
      <attachid>177242</attachid>
    <who name="Alexander Shalamov">alexander.shalamov</who>
    <bug_when>2012-12-03 06:20:49 -0800</bug_when>
    <thetext>Created attachment 177242
Patch 5

- added WebCore::isValidContentType(const WTF::String&amp;) to symbols file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781570</commentid>
    <comment_count>14</comment_count>
      <attachid>177242</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-12-03 10:04:34 -0800</bug_when>
    <thetext>Comment on attachment 177242
Patch 5

Attachment 177242 did not pass win-ews (win):
Output: http://queues.webkit.org/results/15117438</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783692</commentid>
    <comment_count>15</comment_count>
      <attachid>177736</attachid>
    <who name="Alexander Shalamov">alexander.shalamov</who>
    <bug_when>2012-12-05 06:07:16 -0800</bug_when>
    <thetext>Created attachment 177736
Patch 6

- added ParsedContentType to visual studio project file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785284</commentid>
    <comment_count>16</comment_count>
      <attachid>177736</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-06 14:33:43 -0800</bug_when>
    <thetext>Comment on attachment 177736
Patch 6

Clearing flags on attachment: 177736

Committed r136893: &lt;http://trac.webkit.org/changeset/136893&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785285</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-06 14:33:48 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169890</attachid>
            <date>2012-10-22 06:00:06 -0700</date>
            <delta_ts>2012-10-26 04:01:15 -0700</delta_ts>
            <desc>Patch 1</desc>
            <filename>webcore_xhr_mime_blob_1.patch</filename>
            <type>text/plain</type>
            <size>4322</size>
            <attacher name="Alexander Shalamov">alexander.shalamov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhYTQ4Yzg3Li4zODA3MTc2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMTAt
MjIgIEFsZXhhbmRlciBTaGFsYW1vdiAgPGFsZXhhbmRlci5zaGFsYW1vdkBpbnRlbC5jb20+CisK
KyAgICAgICAgW1hNTEh0dHBSZXF1ZXN0XSBDb250ZW50LVR5cGUgYW5kIGVuY29kaW5nIGlzIHNl
dCBpbmNvcnJlY3RseSBmb3IgQmxvYiBvYmplY3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTk4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRlc3RzIHRoYXQgY2hlY2sgaWYgY29udGVudCB0
eXBlIGlzIHNldCBjb3JyZWN0bHkgd2hlbiBibG9iIG9iamVjdCBpcyBzZW50LgorCisgICAgICAg
ICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9wb3N0LWJsb2ItY29udGVudC10eXBlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9wb3N0
LWJsb2ItY29udGVudC10eXBlLmh0bWw6IEFkZGVkLgorCiAyMDEyLTEwLTIxICBEaXJrIFByYW5r
ZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHN1cHByZXNz
aW5nIGZhaWx1cmUgdW50aWwgSSBjYW4gZmlndXJlIG91dCB3aGF0J3MgZ29pbmcgb24uCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Bvc3QtYmxvYi1j
b250ZW50LXR5cGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC9wb3N0LWJsb2ItY29udGVudC10eXBlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi44ZjcwMzVlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9wb3N0LWJsb2ItY29udGVudC10eXBlLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUZXN0IHZlcmlmaWVzIHRoYXQgY29udGVudCBN
SU1FIHR5cGUgaXMgc2V0IGNvcnJlY3RseSB3aGVuIEJsb2IgaXMgc2VudCB1c2luZyBYTUxIdHRw
UmVxdWVzdC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgeGhyLnJlc3Bv
bnNlVGV4dC50cmltKCkudG9Mb3dlckNhc2UoKSBpcyAidGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04
IgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcG9zdC1ibG9i
LWNvbnRlbnQtdHlwZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9wb3N0LWJsb2ItY29udGVudC10eXBlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMjE4ODY1OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3QvcG9zdC1ibG9iLWNvbnRlbnQtdHlwZS5odG1sCkBAIC0wLDAgKzEs
MjEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHNjcmlwdCBzcmM9Ii4u
Ly4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgZGVzY3JpcHRp
b24oIlRlc3QgdmVyaWZpZXMgdGhhdCBjb250ZW50IE1JTUUgdHlwZSBpcyBzZXQgY29ycmVjdGx5
ICIgKworICAgICAgICAgICAgICAgICJ3aGVuIEJsb2IgaXMgc2VudCB1c2luZyAiICsKKyAgICAg
ICAgICAgICAgICAiPGEgaHJlZj0naHR0cDovL3d3dy53My5vcmcvVFIvWE1MSHR0cFJlcXVlc3Qv
I3RoZS1zZW5kLW1ldGhvZCc+WE1MSHR0cFJlcXVlc3QuPC9hPiIpOworCisgICAgIHZhciBibG9i
ID0gbmV3IEJsb2IoWyJUZXN0IGNvbnRlbnQiXSwge3R5cGU6ICJ0ZXh0L3BsYWluO2NoYXJzZXQ9
VVRGLTgifSk7CisgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICAgeGhy
Lm9wZW4oIlBPU1QiLCAicHJpbnQtY29udGVudC10eXBlLmNnaSIsIGZhbHNlKTsKKyAgICAgeGhy
LnNlbmQoYmxvYik7CisgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygieGhyLnJlc3BvbnNlVGV4
dC50cmltKCkudG9Mb3dlckNhc2UoKSIsICJ0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgiKTsKKwor
ICA8L3NjcmlwdD4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRl
c3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmRk
YmUxYS4uYmJlNTFhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTEwLTIyICBB
bGV4YW5kZXIgU2hhbGFtb3YgIDxhbGV4YW5kZXIuc2hhbGFtb3ZAaW50ZWwuY29tPgorCisgICAg
ICAgIFtYTUxIdHRwUmVxdWVzdF0gQ29udGVudC1UeXBlIGFuZCBlbmNvZGluZyBpcyBzZXQgaW5j
b3JyZWN0bHkgZm9yIEJsb2Igb2JqZWN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTk5ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBGaXggWE1MSHR0cFJlcXVlc3Q6OnNlbmQoQmxvYiopIG1ldGhvZCwg
c28gdGhhdCB0aGUgQ29udGVudC1UeXBlIGlzIHNldCBhY2NvcmRpbmcgdG8gVzNDIHNwZWNpZmlj
YXRpb24uCisgICAgICAgIGh0dHA6Ly93d3cudzMub3JnL1RSL1hNTEh0dHBSZXF1ZXN0LyN0aGUt
c2VuZC1tZXRob2QKKworICAgICAgICBBZGRlZCB0ZXN0IHRoYXQgY2hlY2sgaWYgY29udGVudCB0
eXBlIGlzIHNldCBjb3JyZWN0bHkgd2hlbiBibG9iIG9iamVjdCBpcyBzZW50LgorCisgICAgICAg
IFRlc3Q6IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcG9zdC1ibG9iLWNvbnRlbnQtdHlwZS5o
dG1sCisKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6WE1MSHR0cFJlcXVlc3Q6OnNlbmQpOgorICAgICAgICAgICAgU2V0IGNvcnJlY3QgTUlNRSB0
eXBlIGZvciBCbG9iIG9iamVjdHMuCisKIDIwMTItMTAtMjEgIEtlbnQgVGFtdXJhICA8dGtlbnRA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFBhZ2UgcG9wdXA6IEZpeCBjcmFzaCBieSBldmVudHMg
YWZ0ZXIgY2xvc2luZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1
ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggZjYx
NjkwOC4uYTI1ZjdkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1
ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC02
MTUsNyArNjE1LDExIEBAIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OnNlbmQoQmxvYiogYm9keSwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtX21ldGhvZCAhPSAi
R0VUIiAmJiBtX21ldGhvZCAhPSAiSEVBRCIgJiYgbV91cmwucHJvdG9jb2xJc0luSFRUUEZhbWls
eSgpKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBTaG91bGQgd2Ugc2V0IGEgQ29udGVudC1UeXBlIGlm
IG9uZSBpcyBub3Qgc2V0LgorICAgICAgICBTdHJpbmcgY29udGVudFR5cGUgPSBnZXRSZXF1ZXN0
SGVhZGVyKCJDb250ZW50LVR5cGUiKTsKKyAgICAgICAgY29uc3QgU3RyaW5nJiBibG9iVHlwZSA9
IGJvZHktPnR5cGUoKTsKKyAgICAgICAgaWYgKCFibG9iVHlwZS5pc0VtcHR5KCkgJiYgY29udGVu
dFR5cGUuaXNFbXB0eSgpKQorICAgICAgICAgICAgc2V0UmVxdWVzdEhlYWRlckludGVybmFsKCJD
b250ZW50LVR5cGUiLCBibG9iVHlwZSk7CisKICAgICAgICAgLy8gRklYTUU6IGFkZCBzdXBwb3J0
IGZvciB1cGxvYWRpbmcgYnVuZGxlcy4KICAgICAgICAgbV9yZXF1ZXN0RW50aXR5Qm9keSA9IEZv
cm1EYXRhOjpjcmVhdGUoKTsKICAgICAgICAgaWYgKGJvZHktPmlzRmlsZSgpKQo=
</data>
<flag name="review"
          id="183330"
          type_id="1"
          status="-"
          setter="ap"
    />
    <flag name="commit-queue"
          id="183331"
          type_id="3"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170880</attachid>
            <date>2012-10-26 04:01:15 -0700</date>
            <delta_ts>2012-11-29 05:35:12 -0800</delta_ts>
            <desc>Patch 2</desc>
            <filename>webcore_xhr_mime_blob_2.patch</filename>
            <type>text/plain</type>
            <size>8964</size>
            <attacher name="Alexander Shalamov">alexander.shalamov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlZWNlYTFkLi5kZjNmNzNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMTAt
MjYgIEFsZXhhbmRlciBTaGFsYW1vdiAgPGFsZXhhbmRlci5zaGFsYW1vdkBpbnRlbC5jb20+CisK
KyAgICAgICAgWE1MSHR0cFJlcXVlc3QgQ29udGVudC1UeXBlIHNob3VsZCBiZSB0YWtlbiBmcm9t
IEJsb2IgdHlwZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTk5ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGRlZCB0ZXN0cyB0aGF0IGNoZWNrIGlmIGNvbnRlbnQgdHlwZSBpcyBzZXQgY29ycmVjdGx5
IHdoZW4gYmxvYiBvYmplY3QgaXMgc2VudC4KKworICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QvcG9zdC1ibG9iLWNvbnRlbnQtdHlwZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcG9zdC1ibG9iLWNvbnRlbnQtdHlwZS5o
dG1sOiBBZGRlZC4KKwogMjAxMi0xMC0yNCAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFtRdF0gVW5yZXZpZXdlZCBnYXJkZW5pbmcsIHNraXAgYSBuZXcg
ZmFpbGluZyB0ZXN0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC9wb3N0LWJsb2ItY29udGVudC10eXBlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcG9zdC1ibG9iLWNvbnRlbnQtdHlwZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmM2NDhmOQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcG9zdC1i
bG9iLWNvbnRlbnQtdHlwZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMyBAQAorQ09OU09MRSBN
RVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vbG9jYWxob3N0OjgwMDAv
eG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2FjY2Vzcy1jb250cm9sLWFsbG93LWxpc3RzLnBocC4g
T3JpZ2luIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29u
dHJvbC1BbGxvdy1PcmlnaW4uCitDT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5v
dCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvYWNj
ZXNzLWNvbnRyb2wtYWxsb3ctbGlzdHMucGhwLiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4MDAw
IGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KK1Rlc3QgdmVy
aWZpZXMgdGhhdCBjb250ZW50IE1JTUUgdHlwZSBpcyBzZXQgY29ycmVjdGx5IHdoZW4gQmxvYiBp
cyBzZW50IHVzaW5nIFhNTEh0dHBSZXF1ZXN0LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
CisKKworUEFTUyBTeW5jIHRlc3Q6IEJsb2IgQ29udGVudC1UeXBlOiAidGV4dC9wbGFpbjtjaGFy
c2V0PXV0Zi04Ii4gU2VudCBDb250ZW50LXR5cGU6ICJ0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgi
CitQQVNTIFN5bmMgdGVzdDogQmxvYiBDb250ZW50LVR5cGU6ICJpbnZhbGlkL3R5cGVcclxuY2hh
cnNldDs9a29pOC1yIi4gU2VudCBDb250ZW50LXR5cGU6ICIiCitQQVNTIFN5bmMgdGVzdDogQmxv
YiBDb250ZW50LVR5cGU6ICIiLiBTZW50IENvbnRlbnQtdHlwZTogIiIKK1BBU1MgRXhjZXB0aW9u
IHNob3VsZCBiZSB0aHJvd24uCitQQVNTIEV4Y2VwdGlvbiBzaG91bGQgYmUgdGhyb3duLgorUEFT
UyBTeW5jIHRlc3Q6IEJsb2IgQ29udGVudC1UeXBlOiAidGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04
Ii4gU2VudCBDb250ZW50LXR5cGU6ICJ0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgiCitQQVNTIEFz
eW5jIHRlc3Q6IEJsb2IgQ29udGVudC1UeXBlOiAidGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04Ii4g
U2VudCBDb250ZW50LXR5cGU6ICJ0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgiCitQQVNTIEFzeW5j
IHRlc3Q6IEJsb2IgQ29udGVudC1UeXBlOiAiaW52YWxpZC90eXBlXHJcbmNoYXJzZXQ7PWtvaTgt
ciIuIFNlbnQgQ29udGVudC10eXBlOiAiIgorUEFTUyBBc3luYyB0ZXN0OiBCbG9iIENvbnRlbnQt
VHlwZTogIiIuIFNlbnQgQ29udGVudC10eXBlOiAiIgorUEFTUyBFeGNlcHRpb24gc2hvdWxkIGJl
IHRocm93bi4KK1BBU1MgQXN5bmMgdGVzdDogU2hvdWxkIGZhaWwuCitQQVNTIEFzeW5jIHRlc3Q6
IEJsb2IgQ29udGVudC1UeXBlOiAidGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04Ii4gU2VudCBDb250
ZW50LXR5cGU6ICJ0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgiCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9wb3N0LWJsb2ItY29udGVudC10eXBlLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Bvc3QtYmxvYi1jb250ZW50LXR5
cGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOTgwNzFlCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9wb3N0
LWJsb2ItY29udGVudC10eXBlLmh0bWwKQEAgLTAsMCArMSwxMjcgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKyAgPHNjcmlwdCBzcmM9Ii4uLy4uL2pzLXRlc3QtcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgZGVzY3JpcHRpb24oIlRlc3QgdmVyaWZpZXMgdGhh
dCBjb250ZW50IE1JTUUgdHlwZSBpcyBzZXQgY29ycmVjdGx5ICIgKworICAgICAgICAgICAgICAg
ICJ3aGVuIEJsb2IgaXMgc2VudCB1c2luZyAiICsKKyAgICAgICAgICAgICAgICAiPGEgaHJlZj0n
aHR0cDovL3d3dy53My5vcmcvVFIvWE1MSHR0cFJlcXVlc3QvI3RoZS1zZW5kLW1ldGhvZCc+WE1M
SHR0cFJlcXVlc3QuPC9hPiIpOworCisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwor
ICAgIHZhciBhc3luY1Rlc3RDYXNlID0gMDsKKyAgICB2YXIgeGhyOworICAgIHZhciBibG9iOwor
ICAgIHZhciB0ZXN0VXJsID0gIi94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvYWNjZXNzLWNvbnRy
b2wtYWxsb3ctbGlzdHMucGhwIjsKKworICAgIHZhciB0ZXN0Q2FzZXMgPSBbeworICAgICAgICBt
aW1lOiAidGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04IiwKKyAgICAgICAgZXhwZWN0ZWRNaW1lOiAi
dGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04IgorICAgIH0sIHsKKyAgICAgICAgbWltZTogIkludmFs
aWQvVHlwZVxyXG5jaGFyc2V0Oz1rb2k4LXIiLAorICAgICAgICBleHBlY3RlZE1pbWU6ICIiCisg
ICAgfSwgeworICAgICAgICBtaW1lOiAiIiwKKyAgICAgICAgZXhwZWN0ZWRNaW1lOiAiIgorICAg
IH0sIHsKKyAgICAgICAgbWltZTogIlx1MDQyMlx1MDQzNVx1MDQ0MVx1MDQ0MiIsCisgICAgICAg
IGV4cGVjdGVkTWltZTogIiIsCisgICAgICAgIHNob3VsZEZhaWw6IHRydWUKKyAgICB9LCB7Cisg
ICAgICAgIG1pbWU6ICJ0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgiLAorICAgICAgICBleHBlY3Rl
ZE1pbWU6ICJ0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgiLAorICAgICAgICBzaG91bGRGYWlsOiB0
cnVlLAorICAgICAgICB1cmw6ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLAorICAgICAgICBhbGxv
d09yaWdpbjogIiIKKyAgICB9LCB7CisgICAgICAgIG1pbWU6ICJ0ZXh0L3BsYWluO2NoYXJzZXQ9
dXRmLTgiLAorICAgICAgICBleHBlY3RlZE1pbWU6ICJ0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgi
LAorICAgICAgICB1cmw6ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLAorICAgICAgICBhbGxvd09y
aWdpbjogIj9vcmlnaW49aHR0cDovLzEyNy4wLjAuMTo4MDAwIgorICAgIH1dOworCisKKyAgICBm
dW5jdGlvbiBjcmVhdGVCbG9iKG1pbWVUeXBlKSB7CisgICAgICAgIGlmIChtaW1lVHlwZSAhPT0g
IiIpCisgICAgICAgICAgICBibG9iID0gbmV3IEJsb2IoWyJUZXN0IGNvbnRlbnQiXSwge3R5cGU6
IG1pbWVUeXBlfSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGJsb2IgPSBuZXcgQmxvYihb
IlRlc3QgY29udGVudCJdKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiByZXBvcnRSZXN1bHQoZSkg
eworICAgICAgICB2YXIgaXNBc3luYyA9IHR5cGVvZiBlID09ICdvYmplY3QnOworICAgICAgICB2
YXIgdGVzdENhc2VOdW1iZXIgPSBpc0FzeW5jID8gYXN5bmNUZXN0Q2FzZSA6IGU7CisgICAgICAg
IHZhciBzeW5jID0gaXNBc3luYyA/ICJBc3luYyB0ZXN0OiAiIDogIlN5bmMgdGVzdDogIjsKKwor
ICAgICAgICB2YXIgcmVzcG9uc2UgPSAiIjsKKyAgICAgICAgaWYgKHhoci5zdGF0dXMgPT09IDIw
MCkgeworICAgICAgICAgICAgcmVzcG9uc2UgPSBKU09OLnBhcnNlKHhoci5yZXNwb25zZSlbJ2Nv
bnRlbnQtdHlwZSddIHx8ICIiOworICAgICAgICAgICAgaWYgKCByZXNwb25zZSAgPT09IHRlc3RD
YXNlc1t0ZXN0Q2FzZU51bWJlcl0uZXhwZWN0ZWRNaW1lKQorICAgICAgICAgICAgICAgIHRlc3RQ
YXNzZWQoc3luYyArICJCbG9iIENvbnRlbnQtVHlwZTogXCIiICsgYmxvYi50eXBlLnJlcGxhY2Uo
LyhccikvZ20sICJcXHIiKS5yZXBsYWNlKC8oXG4pL2dtLCAiXFxuIikgKyAiXCIuIFNlbnQgQ29u
dGVudC10eXBlOiBcIiIgKyByZXNwb25zZSArICJcIiIpOworICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQoc3luYyArICJDb250ZW50LXR5cGU6ICIgKyByZXNwb25z
ZSArICIgU2hvdWxkIGJlOiAiICsgdGVzdENhc2VzW3Rlc3RDYXNlTnVtYmVyXS5leHBlY3RlZE1p
bWUpOworCisgICAgICAgIH0gZWxzZSBpZiAoeGhyLnN0YXR1cyA9PT0gMCAmJiBpc0FzeW5jICYm
IHRlc3RDYXNlc1t0ZXN0Q2FzZU51bWJlcl0uc2hvdWxkRmFpbCl7CisgICAgICAgICAgICB0ZXN0
UGFzc2VkKHN5bmMgKyAiU2hvdWxkIGZhaWwuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICB0ZXN0RmFpbGVkKCJVbmtub3duIGVycm9yIik7CisgICAgICAgIH0KKworICAgICAgICBp
ZiAoaXNBc3luYykgcnVuTmV4dEFzeW5jVGVzdCgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1
bk5leHRBc3luY1Rlc3QoKSB7CisgICAgICAgIGFzeW5jVGVzdENhc2UrKzsKKyAgICAgICAgcnVu
QXN5bmNUZXN0cygpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blN5bmNUZXN0cygpIHsKKyAg
ICAgICAgdmFyIHRlc3RDb3VudCA9IHRlc3RDYXNlcy5sZW5ndGg7CisgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgdGVzdENvdW50OyBpKyspIHsKKyAgICAgICAgICAgIHJ1blRlc3QoaSwgZmFs
c2UpOworICAgICAgICB9CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuQXN5bmNUZXN0cygpIHsK
KyAgICAgICAgaWYgKGFzeW5jVGVzdENhc2UgPT09IHRlc3RDYXNlcy5sZW5ndGgpIHsKKyAgICAg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgcnVuVGVzdChhc3luY1Rlc3RDYXNlLCB0cnVlKTsKKyAgICAgICAg
fQorICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QodGVzdE51bWJlciwgYXN5bmMpIHsKKyAg
ICAgICAgdmFyIG1pbWUgPSB0ZXN0Q2FzZXNbdGVzdE51bWJlcl0ubWltZTsKKyAgICAgICAgdmFy
IGV4cGVjdGVkTWltZSA9IHRlc3RDYXNlc1t0ZXN0TnVtYmVyXS5leHBlY3RlZE1pbWU7CisgICAg
ICAgIHZhciB1cmwgPSB0ZXN0Q2FzZXNbdGVzdE51bWJlcl0udXJsICE9PSB1bmRlZmluZWQgPyB0
ZXN0Q2FzZXNbdGVzdE51bWJlcl0udXJsICsgdGVzdFVybCA6IHRlc3RVcmw7CisgICAgICAgIHVy
bCArPSB0ZXN0Q2FzZXNbdGVzdE51bWJlcl0uYWxsb3dPcmlnaW4gfHwgIiI7CisgICAgICAgIGlm
ICh0ZXN0Q2FzZXNbdGVzdE51bWJlcl0uc2hvdWxkRmFpbCAhPT0gdW5kZWZpbmVkKSB7CisgICAg
ICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIHRlc3RCbG9iQ29udGVudFR5cGUodXJsLCBt
aW1lLCBleHBlY3RlZE1pbWUsIGFzeW5jKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAg
ICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJFeGNlcHRpb24gc2hvdWxkIGJlIHRocm93bi4iKQor
ICAgICAgICAgICAgICAgIGlmIChhc3luYykgcnVuTmV4dEFzeW5jVGVzdCgpOworICAgICAgICAg
ICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVzdEJsb2JDb250ZW50VHlwZSh1
cmwsIG1pbWUsIGV4cGVjdGVkTWltZSwgYXN5bmMpOworICAgICAgICAgICAgaWYgKCFhc3luYykg
cmVwb3J0UmVzdWx0KHRlc3ROdW1iZXIpOworICAgICAgICB9CisgICAgfQorCisgICAgZnVuY3Rp
b24gdGVzdEJsb2JDb250ZW50VHlwZSh1cmwsIG1pbWVUeXBlLCBleHBlY3RlZE1pbWVUeXBlLCBh
c3luYykgeworICAgICAgICBjcmVhdGVCbG9iKG1pbWVUeXBlKTsKKyAgICAgICAgeGhyID0gbmV3
IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgICAgIGlmIChhc3luYykgeGhyLm9ubG9hZGVuZCA9IHJl
cG9ydFJlc3VsdDsKKyAgICAgICAgeGhyLm9wZW4oIlBPU1QiLCB1cmwsIGFzeW5jKTsKKyAgICAg
ICAgeGhyLnNlbmQoYmxvYik7CisgICAgfQorCisgICAgcnVuU3luY1Rlc3RzKCk7CisgICAgcnVu
QXN5bmNUZXN0cygpOworCisgIDwvc2NyaXB0PgorICA8c2NyaXB0IHNyYz0iLi4vLi4vanMtdGVz
dC1yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxNDYzNmE3Li5jZTc4MTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTItMTAtMjYgIEFsZXhhbmRlciBTaGFsYW1vdiAgPGFsZXhhbmRlci5zaGFsYW1vdkBp
bnRlbC5jb20+CisKKyAgICAgICAgWE1MSHR0cFJlcXVlc3QgQ29udGVudC1UeXBlIHNob3VsZCBi
ZSB0YWtlbiBmcm9tIEJsb2IgdHlwZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTk5ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBGaXggWE1MSHR0cFJlcXVlc3Q6OnNlbmQoQmxvYiopIG1ldGhvZCwgc28g
dGhhdCB0aGUgQ29udGVudC1UeXBlIGlzIHNldCBhY2NvcmRpbmcgdG8gVzNDIHNwZWNpZmljYXRp
b24uCisgICAgICAgIGh0dHA6Ly93d3cudzMub3JnL1RSL1hNTEh0dHBSZXF1ZXN0LyN0aGUtc2Vu
ZC1tZXRob2QKKworICAgICAgICBBZGRlZCB0ZXN0IHRoYXQgY2hlY2sgaWYgY29udGVudCB0eXBl
IGlzIHNldCBjb3JyZWN0bHkgd2hlbiBibG9iIG9iamVjdCBpcyBzZW50LgorCisgICAgICAgIFRl
c3Q6IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcG9zdC1ibG9iLWNvbnRlbnQtdHlwZS5odG1s
CisKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
WE1MSHR0cFJlcXVlc3Q6OnNlbmQpOgorICAgICAgICAgICAgU2V0IGNvcnJlY3QgTUlNRSB0eXBl
IGZvciBCbG9iIG9iamVjdHMuCisKIDIwMTItMTAtMjUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBbVjhdIFdlIGNhbiBtZXJnZSBET01EYXRhU3RvcmUsIFNjb3Bl
ZERPTURhdGFTdG9yZSwgYW5kIFN0YXRpY0RPTURhdGFTdG9yZSBpbnRvIG9uZSBjbGFzcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggNjg3NjA3Mi4uZDNlNWJhOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC02MzcsNyArNjM3LDExIEBAIHZv
aWQgWE1MSHR0cFJlcXVlc3Q6OnNlbmQoQmxvYiogYm9keSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIGlmIChtX21ldGhvZCAhPSAiR0VUIiAmJiBtX21ldGhvZCAh
PSAiSEVBRCIgJiYgbV91cmwucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKSB7Ci0gICAgICAgIC8v
IEZJWE1FOiBTaG91bGQgd2Ugc2V0IGEgQ29udGVudC1UeXBlIGlmIG9uZSBpcyBub3Qgc2V0Lgor
ICAgICAgICBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlID0gZ2V0UmVxdWVzdEhlYWRlcigiQ29u
dGVudC1UeXBlIik7CisgICAgICAgIGNvbnN0IFN0cmluZyYgYmxvYlR5cGUgPSBib2R5LT50eXBl
KCk7CisgICAgICAgIGlmICghYmxvYlR5cGUuaXNFbXB0eSgpICYmIGNvbnRlbnRUeXBlLmlzRW1w
dHkoKSAmJiBpc1ZhbGlkSFRUUEhlYWRlclZhbHVlKGJsb2JUeXBlKSkKKyAgICAgICAgICAgIHNl
dFJlcXVlc3RIZWFkZXJJbnRlcm5hbCgiQ29udGVudC1UeXBlIiwgYmxvYlR5cGUpOworCiAgICAg
ICAgIC8vIEZJWE1FOiBhZGQgc3VwcG9ydCBmb3IgdXBsb2FkaW5nIGJ1bmRsZXMuCiAgICAgICAg
IG1fcmVxdWVzdEVudGl0eUJvZHkgPSBGb3JtRGF0YTo6Y3JlYXRlKCk7CiAgICAgICAgIGlmIChi
b2R5LT5pc0ZpbGUoKSkK
</data>
<flag name="review"
          id="184634"
          type_id="1"
          status="-"
          setter="ap"
    />
    <flag name="commit-queue"
          id="184635"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176711</attachid>
            <date>2012-11-29 05:35:12 -0800</date>
            <delta_ts>2012-11-29 05:42:35 -0800</delta_ts>
            <desc>Patch 3</desc>
            <filename>webcore_xhr_mime_blob_3.patch</filename>
            <type>text/plain</type>
            <size>12511</size>
            <attacher name="Alexander Shalamov">alexander.shalamov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1N2FlMzVkLi44ZGFmNDViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMTAt
MjYgIEFsZXhhbmRlciBTaGFsYW1vdiAgPGFsZXhhbmRlci5zaGFsYW1vdkBpbnRlbC5jb20+CisK
KyAgICAgICAgWE1MSHR0cFJlcXVlc3QgQ29udGVudC1UeXBlIHNob3VsZCBiZSB0YWtlbiBmcm9t
IEJsb2IgdHlwZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTk5ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGRlZCB0ZXN0cyB0aGF0IGNoZWNrIGlmIGNvbnRlbnQgdHlwZSBpcyBzZXQgY29ycmVjdGx5
IHdoZW4gYmxvYiBvYmplY3QgaXMgc2VudC4KKworICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QvcG9zdC1ibG9iLWNvbnRlbnQtdHlwZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcG9zdC1ibG9iLWNvbnRlbnQtdHlwZS5o
dG1sOiBBZGRlZC4KKwogMjAxMi0xMS0yOSAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIExheW91dCBUZXN0IGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvc2Ny
aXB0LWFzLXRleHQtbG9hZGluZy1sb25nLXVybC5odG1sIGlzIGZhaWxpbmcKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcG9zdC1ibG9iLWNvbnRlbnQt
dHlwZS1hc3luYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L3Bvc3QtYmxvYi1jb250ZW50LXR5cGUtYXN5bmMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2ODRmZTQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Bvc3QtYmxvYi1jb250ZW50LXR5
cGUtYXN5bmMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjMgQEAKK0NPTlNPTEUgTUVTU0FHRTog
WE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHBy
ZXF1ZXN0L3Jlc291cmNlcy9hY2Nlc3MtY29udHJvbC1hbGxvdy1saXN0cy5waHAuIE9yaWdpbiBo
dHRwOi8vMTI3LjAuMC4xOjgwMDAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxs
b3ctT3JpZ2luLgorVGVzdCB2ZXJpZmllcyB0aGF0IGNvbnRlbnQgTUlNRSB0eXBlIGlzIHNldCBj
b3JyZWN0bHkgd2hlbiBCbG9iIGlzIHNlbnQgdXNpbmcgWE1MSHR0cFJlcXVlc3QgYXN5bmNocm9u
b3VzbHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGV4cGVjdGVkTWlt
ZVR5cGUgaXMgInRleHQvcGxhaW47Y2hhcnNldD11dGYtOCIKK1BBU1MgZXhwZWN0ZWRNaW1lVHlw
ZSBpcyAiIgorUEFTUyBleHBlY3RlZE1pbWVUeXBlIGlzICIiCitQQVNTIGV4cGVjdGVkTWltZVR5
cGUgaXMgIiIKK1BBU1MgZXhwZWN0ZWRNaW1lVHlwZSBpcyAiIgorUEFTUyBleHBlY3RlZE1pbWVU
eXBlIGlzICIiCitQQVNTIGV4cGVjdGVkTWltZVR5cGUgaXMgIiIKK1BBU1MgZXhwZWN0ZWRNaW1l
VHlwZSBpcyAiIgorUEFTUyBleHBlY3RlZE1pbWVUeXBlIGlzICJtdWx0aXBhcnQvbWl4ZWQ7Ym91
bmRhcnk9XCItLWJsb2ItYm91bmRhcnlcIiIKK1BBU1MgZXhwZWN0ZWRNaW1lVHlwZSBpcyAiIgor
UEFTUyBFeGNlcHRpb24gc2hvdWxkIGJlIHRocm93bi4KK1BBU1MgQ3Jvc3Mtb3JpZ2luIHJlcXVl
c3Qgd2l0aG91dCBDT1JTIGhlYWRlcnMgc2hvdWxkIGZhaWwuCitQQVNTIGV4cGVjdGVkTWltZVR5
cGUgaXMgInRleHQvcGxhaW47Y2hhcnNldD11dGYtOCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Bvc3QtYmxvYi1jb250ZW50LXR5cGUtYXN5bmMuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcG9zdC1ibG9iLWNvbnRlbnQt
dHlwZS1hc3luYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmMGI4
N2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L3Bvc3QtYmxvYi1jb250ZW50LXR5cGUtYXN5bmMuaHRtbApAQCAtMCwwICsxLDc0IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxz
Y3JpcHQgc3JjPSJwb3N0LWJsb2ItY29udGVudC10eXBlLXRlc3RzLmpzIj48L3NjcmlwdD4KKyAg
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgIGRlc2NyaXB0aW9uKCJUZXN0IHZl
cmlmaWVzIHRoYXQgY29udGVudCBNSU1FIHR5cGUgaXMgc2V0IGNvcnJlY3RseSAiICsKKyAgICAg
ICAgICAgICAgICAid2hlbiBCbG9iIGlzIHNlbnQgdXNpbmcgIiArCisgICAgICAgICAgICAgICAg
IjxhIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1RSL1hNTEh0dHBSZXF1ZXN0LyN0aGUtc2VuZC1t
ZXRob2QnPlhNTEh0dHBSZXF1ZXN0IGFzeW5jaHJvbm91c2x5LjwvYT4iKTsKKworICAgIHZhciB4
aHI7CisgICAgdmFyIGV4cGVjdGVkTWltZVR5cGU7CisgICAgd2luZG93LmpzVGVzdElzQXN5bmMg
PSB0cnVlOworICAgIHZhciBhc3luY1Rlc3RDYXNlID0gMDsKKworICAgIGZ1bmN0aW9uIHJ1bk5l
eHRBc3luY1Rlc3QoKSB7CisgICAgICAgIGFzeW5jVGVzdENhc2UrKzsKKyAgICAgICAgcnVuQXN5
bmNUZXN0cygpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJlcG9ydFJlc3VsdChlKSB7CisgICAg
ICAgIGlmICh4aHIuc3RhdHVzID09PSAyMDApIHsKKyAgICAgICAgICAgIGV4cGVjdGVkTWltZVR5
cGUgPSBKU09OLnBhcnNlKHhoci5yZXNwb25zZSlbJ2NvbnRlbnQtdHlwZSddIHx8ICIiOworICAg
ICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJleHBlY3RlZE1pbWVUeXBlIiwgeGhyQmxv
YlRlc3RDYXNlc1thc3luY1Rlc3RDYXNlXS5leHBlY3RlZE1pbWUpOworICAgICAgICB9IGVsc2Ug
aWYgKHhoci5zdGF0dXMgPT09IDAgJiYgeGhyQmxvYlRlc3RDYXNlc1thc3luY1Rlc3RDYXNlXS5z
aG91bGRUaHJvdyl7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDcm9zcy1vcmlnaW4gcmVxdWVz
dCB3aXRob3V0IENPUlMgaGVhZGVycyBzaG91bGQgZmFpbC4iKTsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlVua25vd24gZXJyb3IiKTsKKyAgICAgICAgfQorCisg
ICAgICAgIHJ1bk5leHRBc3luY1Rlc3QoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5Bc3lu
Y1Rlc3RzKCkgeworICAgICAgICBpZiAoYXN5bmNUZXN0Q2FzZSA+PSB4aHJCbG9iVGVzdENhc2Vz
Lmxlbmd0aCkgeworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB2YXIgbWltZSA9IHhockJsb2JUZXN0
Q2FzZXNbYXN5bmNUZXN0Q2FzZV0ubWltZTsKKyAgICAgICAgICAgIHZhciB1cmwgPSB4aHJCbG9i
VGVzdENhc2VzW2FzeW5jVGVzdENhc2VdLnVybCAhPT0gdW5kZWZpbmVkID8geGhyQmxvYlRlc3RD
YXNlc1thc3luY1Rlc3RDYXNlXS51cmwgKyB4aHJCbG9iVGVzdFVybCA6IHhockJsb2JUZXN0VXJs
OworICAgICAgICAgICAgdXJsICs9IHhockJsb2JUZXN0Q2FzZXNbYXN5bmNUZXN0Q2FzZV0uYWxs
b3dPcmlnaW4gfHwgIiI7CisgICAgICAgICAgICBpZiAoeGhyQmxvYlRlc3RDYXNlc1thc3luY1Rl
c3RDYXNlXS5zaG91bGRUaHJvdyAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICAgICAgdHJ5
IHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEJsb2JDb250ZW50VHlwZUFzeW5jKHVybCwgbWlt
ZSk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgICAgICAgICB0
ZXN0UGFzc2VkKCJFeGNlcHRpb24gc2hvdWxkIGJlIHRocm93bi4iKQorICAgICAgICAgICAgICAg
ICAgICBydW5OZXh0QXN5bmNUZXN0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEJsb2JDb250ZW50VHlwZUFzeW5jKHVybCwgbWlt
ZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0QmxvYkNvbnRlbnRUeXBl
QXN5bmModXJsLCBtaW1lVHlwZSkgeworICAgICAgICB2YXIgYmxvYjsKKyAgICAgICAgaWYgKG1p
bWVUeXBlICE9PSAiIikKKyAgICAgICAgICAgIGJsb2IgPSBuZXcgQmxvYihbIlRlc3QgY29udGVu
dCJdLCB7dHlwZTogbWltZVR5cGV9KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYmxvYiA9
IG5ldyBCbG9iKFsiVGVzdCBjb250ZW50Il0pOworCisgICAgICAgIHhociA9IG5ldyBYTUxIdHRw
UmVxdWVzdCgpOworICAgICAgICB4aHIub25sb2FkZW5kID0gcmVwb3J0UmVzdWx0OworICAgICAg
ICB4aHIub3BlbigiUE9TVCIsIHVybCwgdHJ1ZSk7CisgICAgICAgIHhoci5zZW5kKGJsb2IpOwor
ICAgIH0KKworICAgIHJ1bkFzeW5jVGVzdHMoKTsKKworICA8L3NjcmlwdD4KKyAgPHNjcmlwdCBz
cmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9wb3N0LWJsb2ItY29udGVudC10eXBlLXN5bmMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9wb3N0LWJsb2ItY29udGVudC10eXBlLXN5bmMt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJlMzMzNDUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L3Bvc3QtYmxvYi1jb250ZW50LXR5cGUtc3luYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMyBA
QAorQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vbG9j
YWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2FjY2Vzcy1jb250cm9sLWFsbG93
LWxpc3RzLnBocC4gT3JpZ2luIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCBpcyBub3QgYWxsb3dlZCBi
eSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCitUZXN0IHZlcmlmaWVzIHRoYXQgY29udGVu
dCBNSU1FIHR5cGUgaXMgc2V0IGNvcnJlY3RseSB3aGVuIEJsb2IgaXMgc2VudCB1c2luZyBYTUxI
dHRwUmVxdWVzdCBzeW5jaHJvbm91c2x5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBleHBlY3RlZE1pbWVUeXBlIGlzICJ0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgiCitQ
QVNTIGV4cGVjdGVkTWltZVR5cGUgaXMgIiIKK1BBU1MgZXhwZWN0ZWRNaW1lVHlwZSBpcyAiIgor
UEFTUyBleHBlY3RlZE1pbWVUeXBlIGlzICIiCitQQVNTIGV4cGVjdGVkTWltZVR5cGUgaXMgIiIK
K1BBU1MgZXhwZWN0ZWRNaW1lVHlwZSBpcyAiIgorUEFTUyBleHBlY3RlZE1pbWVUeXBlIGlzICIi
CitQQVNTIGV4cGVjdGVkTWltZVR5cGUgaXMgIiIKK1BBU1MgZXhwZWN0ZWRNaW1lVHlwZSBpcyAi
bXVsdGlwYXJ0L21peGVkO2JvdW5kYXJ5PVwiLS1ibG9iLWJvdW5kYXJ5XCIiCitQQVNTIGV4cGVj
dGVkTWltZVR5cGUgaXMgIiIKK1BBU1MgRXhjZXB0aW9uIHNob3VsZCBiZSB0aHJvd24uCitQQVNT
IEV4Y2VwdGlvbiBzaG91bGQgYmUgdGhyb3duLgorUEFTUyBleHBlY3RlZE1pbWVUeXBlIGlzICJ0
ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9wb3N0LWJsb2ItY29udGVudC10eXBlLXN5bmMuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcG9zdC1ibG9iLWNvbnRlbnQtdHlwZS1zeW5j
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2E5OTI5ZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcG9zdC1i
bG9iLWNvbnRlbnQtdHlwZS1zeW5jLmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8c2NyaXB0IHNyYz0i
cG9zdC1ibG9iLWNvbnRlbnQtdHlwZS10ZXN0cy5qcyI+PC9zY3JpcHQ+CisgIDxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICBkZXNjcmlwdGlvbigiVGVzdCB2ZXJpZmllcyB0aGF0
IGNvbnRlbnQgTUlNRSB0eXBlIGlzIHNldCBjb3JyZWN0bHkgIiArCisgICAgICAgICAgICAgICAg
IndoZW4gQmxvYiBpcyBzZW50IHVzaW5nICIgKworICAgICAgICAgICAgICAgICI8YSBocmVmPSdo
dHRwOi8vd3d3LnczLm9yZy9UUi9YTUxIdHRwUmVxdWVzdC8jdGhlLXNlbmQtbWV0aG9kJz5YTUxI
dHRwUmVxdWVzdCBzeW5jaHJvbm91c2x5LjwvYT4iKTsKKworICAgIHZhciB4aHI7CisgICAgdmFy
IGV4cGVjdGVkTWltZVR5cGU7CisKKyAgICBmdW5jdGlvbiBydW5TeW5jVGVzdHMoKSB7CisgICAg
ICAgIHZhciB0ZXN0Q291bnQgPSB4aHJCbG9iVGVzdENhc2VzLmxlbmd0aDsKKyAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCB0ZXN0Q291bnQ7IGkrKykgeworICAgICAgICAgICAgdmFyIG1pbWUg
PSB4aHJCbG9iVGVzdENhc2VzW2ldLm1pbWU7CisgICAgICAgICAgICB2YXIgZXhwZWN0ZWRNaW1l
ID0geGhyQmxvYlRlc3RDYXNlc1tpXS5leHBlY3RlZE1pbWU7CisgICAgICAgICAgICB2YXIgdXJs
ID0geGhyQmxvYlRlc3RDYXNlc1tpXS51cmwgIT09IHVuZGVmaW5lZCA/IHhockJsb2JUZXN0Q2Fz
ZXNbaV0udXJsICsgeGhyQmxvYlRlc3RVcmwgOiB4aHJCbG9iVGVzdFVybDsKKyAgICAgICAgICAg
IHVybCArPSB4aHJCbG9iVGVzdENhc2VzW2ldLmFsbG93T3JpZ2luIHx8ICIiOworICAgICAgICAg
ICAgaWYgKHhockJsb2JUZXN0Q2FzZXNbaV0uc2hvdWxkVGhyb3cgIT09IHVuZGVmaW5lZCkgewor
ICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RCbG9iQ29udGVu
dFR5cGVTeW5jKHVybCwgbWltZSwgZXhwZWN0ZWRNaW1lKTsKKyAgICAgICAgICAgICAgICB9IGNh
dGNoIChlKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkV4Y2VwdGlvbiBzaG91
bGQgYmUgdGhyb3duLiIpCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgICB0ZXN0QmxvYkNvbnRlbnRUeXBlU3luYyh1cmwsIG1pbWUsIGV4cGVj
dGVkTWltZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmdW5jdGlv
biB0ZXN0QmxvYkNvbnRlbnRUeXBlU3luYyh1cmwsIG1pbWVUeXBlLCBleHBlY3RlZE1pbWUpIHsK
KyAgICAgICAgdmFyIGJsb2I7CisgICAgICAgIGlmIChtaW1lVHlwZSAhPT0gIiIpCisgICAgICAg
ICAgICBibG9iID0gbmV3IEJsb2IoWyJUZXN0IGNvbnRlbnQiXSwge3R5cGU6IG1pbWVUeXBlfSk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGJsb2IgPSBuZXcgQmxvYihbIlRlc3QgY29udGVu
dCJdKTsKKworICAgICAgICB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICAgICAgeGhy
Lm9wZW4oIlBPU1QiLCB1cmwsIGZhbHNlKTsKKyAgICAgICAgeGhyLnNlbmQoYmxvYik7CisgICAg
ICAgIGlmICh4aHIuc3RhdHVzID09PSAyMDApIHsKKyAgICAgICAgICAgIGV4cGVjdGVkTWltZVR5
cGUgPSBKU09OLnBhcnNlKHhoci5yZXNwb25zZSlbJ2NvbnRlbnQtdHlwZSddIHx8ICIiOworICAg
ICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJleHBlY3RlZE1pbWVUeXBlIiwgZXhwZWN0
ZWRNaW1lKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJVbmtub3du
IGVycm9yIik7CisKKyAgICB9CisKKyAgICBydW5TeW5jVGVzdHMoKTsKKworICA8L3NjcmlwdD4K
KyAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC9wb3N0LWJsb2ItY29udGVudC10eXBlLXRlc3RzLmpzIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9wb3N0LWJsb2ItY29udGVudC10eXBlLXRl
c3RzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyZjI5YmMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Bvc3Qt
YmxvYi1jb250ZW50LXR5cGUtdGVzdHMuanMKQEAgLTAsMCArMSw0OCBAQAordmFyIHhockJsb2JU
ZXN0VXJsID0gJy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvYWNjZXNzLWNvbnRyb2wtYWxsb3ct
bGlzdHMucGhwJzsKKwordmFyIHhockJsb2JUZXN0Q2FzZXMgPSBbeworICAgIG1pbWU6ICd0ZXh0
L3BsYWluO2NoYXJzZXQ9dXRmLTgnLAorICAgIGV4cGVjdGVkTWltZTogJ3RleHQvcGxhaW47Y2hh
cnNldD11dGYtOCcKK30sIHsKKyAgICBtaW1lOiAnSW52YWxpZC9UeXBlXHJcbjtjaGFyc2V0PWtv
aTgtcicsCisgICAgZXhwZWN0ZWRNaW1lOiAnJworfSwgeworICAgIG1pbWU6ICdBU0NJSS9DUlxy
O2NoYXJzZXQ9aW52YWxpZCcsCisgICAgZXhwZWN0ZWRNaW1lOiAnJworfSwgeworICAgIG1pbWU6
ICdBU0NJSS9MRlxuO2NoYXJzZXQ9VVRGLTE2QkUnLAorICAgIGV4cGVjdGVkTWltZTogJycKK30s
IHsKKyAgICBtaW1lOiAnVW5pY29kZS9DUkxGXHUwMDBEXHUwMDBBO2NoYXJzZXQ9VmVudHVyYS1V
UycsCisgICAgZXhwZWN0ZWRNaW1lOiAnJworfSwgeworICAgIG1pbWU6ICdVbmljb2RlL0NSXHUw
MDBEY2hhcnNldD13aW5kb3dzLTEyNTEnLAorICAgIGV4cGVjdGVkTWltZTogJycKK30sIHsKKyAg
ICBtaW1lOiAnVW5pY29kZS9MRlx1MDAwQWNoYXJzZXQ9d2luZG93cy0xMjUyJywKKyAgICBleHBl
Y3RlZE1pbWU6ICcnCit9LCB7CisgICAgbWltZTogJ211bHRpcGFydC9taXhlZDtib3VuZGFyeT0i
LS1ibG9iLWJvdW5kYXJ5JywKKyAgICBleHBlY3RlZE1pbWU6ICcnCit9LCB7CisgICAgbWltZTog
J211bHRpcGFydC9taXhlZDtib3VuZGFyeT0iLS1ibG9iLWJvdW5kYXJ5IicsCisgICAgZXhwZWN0
ZWRNaW1lOiAnbXVsdGlwYXJ0L21peGVkO2JvdW5kYXJ5PSItLWJsb2ItYm91bmRhcnkiJworfSwg
eworICAgIG1pbWU6ICcnLAorICAgIGV4cGVjdGVkTWltZTogJycKK30sIHsKKyAgICBtaW1lOiAn
XHUwNDIyXHUwNDM1XHUwNDQxXHUwNDQyJywKKyAgICBleHBlY3RlZE1pbWU6ICcnLAorICAgIHNo
b3VsZFRocm93OiB0cnVlCit9LCB7CisgICAgbWltZTogJ3RleHQvcGxhaW47Y2hhcnNldD11dGYt
OCcsCisgICAgZXhwZWN0ZWRNaW1lOiAndGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04JywKKyAgICBz
aG91bGRUaHJvdzogdHJ1ZSwKKyAgICB1cmw6ICdodHRwOi8vbG9jYWxob3N0OjgwMDAnLAorICAg
IGFsbG93T3JpZ2luOiAnJworfSwgeworICAgIG1pbWU6ICd0ZXh0L3BsYWluO2NoYXJzZXQ9dXRm
LTgnLAorICAgIGV4cGVjdGVkTWltZTogJ3RleHQvcGxhaW47Y2hhcnNldD11dGYtOCcsCisgICAg
dXJsOiAnaHR0cDovL2xvY2FsaG9zdDo4MDAwJywKKyAgICBhbGxvd09yaWdpbjogJz9vcmlnaW49
aHR0cDovLzEyNy4wLjAuMTo4MDAwJworfV07ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGM4YjFiNjguLmZhNWQ0MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBA
QAorMjAxMi0xMC0yNiAgQWxleGFuZGVyIFNoYWxhbW92ICA8YWxleGFuZGVyLnNoYWxhbW92QGlu
dGVsLmNvbT4KKworICAgICAgICBYTUxIdHRwUmVxdWVzdCBDb250ZW50LVR5cGUgc2hvdWxkIGJl
IHRha2VuIGZyb20gQmxvYiB0eXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05OTk4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEZpeCBYTUxIdHRwUmVxdWVzdDo6c2VuZChCbG9iKikgbWV0aG9kLCBzbyB0
aGF0IHRoZSBDb250ZW50LVR5cGUgaXMgc2V0IGFjY29yZGluZyB0byBXM0Mgc3BlY2lmaWNhdGlv
bi4KKyAgICAgICAgaHR0cDovL3d3dy53My5vcmcvVFIvWE1MSHR0cFJlcXVlc3QvI3RoZS1zZW5k
LW1ldGhvZAorCisgICAgICAgIEFkZGVkIHRlc3QgdGhhdCBjaGVjayBpZiBjb250ZW50IHR5cGUg
aXMgc2V0IGNvcnJlY3RseSB3aGVuIGJsb2Igb2JqZWN0IGlzIHNlbnQuCisKKyAgICAgICAgVGVz
dDogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9wb3N0LWJsb2ItY29udGVudC10eXBlLmh0bWwK
KworICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpY
TUxIdHRwUmVxdWVzdDo6c2VuZCk6CisgICAgICAgICAgICBTZXQgY29ycmVjdCBNSU1FIHR5cGUg
Zm9yIEJsb2Igb2JqZWN0cy4KKwogMjAxMi0xMS0yOSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2
aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEz
NjExMS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IDI5NTM2ZGEuLmVk
YWNiYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtNDIsNiArNDIs
NyBAQAogI2luY2x1ZGUgIkhpc3RvZ3JhbVN1cHBvcnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgorI2luY2x1ZGUgIlBh
cnNlZENvbnRlbnRUeXBlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUg
IlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgpAQCAtNjQz
LDcgKzY0NCwxNiBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpzZW5kKEJsb2IqIGJvZHksIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9tZXRob2QgIT0gIkdF
VCIgJiYgbV9tZXRob2QgIT0gIkhFQUQiICYmIG1fdXJsLnByb3RvY29sSXNJbkhUVFBGYW1pbHko
KSkgewotICAgICAgICAvLyBGSVhNRTogU2hvdWxkIHdlIHNldCBhIENvbnRlbnQtVHlwZSBpZiBv
bmUgaXMgbm90IHNldC4KKyAgICAgICAgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSA9IGdldFJl
cXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIpOworICAgICAgICBpZiAoY29udGVudFR5cGUuaXNF
bXB0eSgpKSB7CisgICAgICAgICAgICBjb25zdCBTdHJpbmcmIGJsb2JUeXBlID0gYm9keS0+dHlw
ZSgpOworICAgICAgICAgICAgaWYgKCFibG9iVHlwZS5pc0VtcHR5KCkgJiYgaXNWYWxpZENvbnRl
bnRUeXBlKGJsb2JUeXBlKSkKKyAgICAgICAgICAgICAgICBzZXRSZXF1ZXN0SGVhZGVySW50ZXJu
YWwoIkNvbnRlbnQtVHlwZSIsIGJsb2JUeXBlKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICAvLyBGcm9tIEZpbGVBUEkgc3BlYywgd2hlbmV2ZXIgbWVkaWEgdHlwZSBjYW5ub3Qg
YmUgZGV0ZXJtaW5lZCwgZW1wdHkgc3RyaW5nIG11c3QgYmUgcmV0dXJuZWQuCisgICAgICAgICAg
ICAgICAgc2V0UmVxdWVzdEhlYWRlckludGVybmFsKCJDb250ZW50LVR5cGUiLCAiIik7CisgICAg
ICAgIH0KKwogICAgICAgICAvLyBGSVhNRTogYWRkIHN1cHBvcnQgZm9yIHVwbG9hZGluZyBidW5k
bGVzLgogICAgICAgICBtX3JlcXVlc3RFbnRpdHlCb2R5ID0gRm9ybURhdGE6OmNyZWF0ZSgpOwog
ICAgICAgICBpZiAoYm9keS0+aXNGaWxlKCkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176712</attachid>
            <date>2012-11-29 05:42:35 -0800</date>
            <delta_ts>2012-12-03 06:20:49 -0800</delta_ts>
            <desc>Patch 4</desc>
            <filename>webcore_xhr_mime_blob_4.patch</filename>
            <type>text/plain</type>
            <size>12528</size>
            <attacher name="Alexander Shalamov">alexander.shalamov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1N2FlMzVkLi44ZGFmNDViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMTAt
MjYgIEFsZXhhbmRlciBTaGFsYW1vdiAgPGFsZXhhbmRlci5zaGFsYW1vdkBpbnRlbC5jb20+CisK
KyAgICAgICAgWE1MSHR0cFJlcXVlc3QgQ29udGVudC1UeXBlIHNob3VsZCBiZSB0YWtlbiBmcm9t
IEJsb2IgdHlwZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTk5ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGRlZCB0ZXN0cyB0aGF0IGNoZWNrIGlmIGNvbnRlbnQgdHlwZSBpcyBzZXQgY29ycmVjdGx5
IHdoZW4gYmxvYiBvYmplY3QgaXMgc2VudC4KKworICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QvcG9zdC1ibG9iLWNvbnRlbnQtdHlwZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcG9zdC1ibG9iLWNvbnRlbnQtdHlwZS5o
dG1sOiBBZGRlZC4KKwogMjAxMi0xMS0yOSAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIExheW91dCBUZXN0IGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvc2Ny
aXB0LWFzLXRleHQtbG9hZGluZy1sb25nLXVybC5odG1sIGlzIGZhaWxpbmcKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcG9zdC1ibG9iLWNvbnRlbnQt
dHlwZS1hc3luYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L3Bvc3QtYmxvYi1jb250ZW50LXR5cGUtYXN5bmMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA2ODRmZTQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Bvc3QtYmxvYi1jb250ZW50LXR5
cGUtYXN5bmMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjMgQEAKK0NPTlNPTEUgTUVTU0FHRTog
WE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHBy
ZXF1ZXN0L3Jlc291cmNlcy9hY2Nlc3MtY29udHJvbC1hbGxvdy1saXN0cy5waHAuIE9yaWdpbiBo
dHRwOi8vMTI3LjAuMC4xOjgwMDAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxs
b3ctT3JpZ2luLgorVGVzdCB2ZXJpZmllcyB0aGF0IGNvbnRlbnQgTUlNRSB0eXBlIGlzIHNldCBj
b3JyZWN0bHkgd2hlbiBCbG9iIGlzIHNlbnQgdXNpbmcgWE1MSHR0cFJlcXVlc3QgYXN5bmNocm9u
b3VzbHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGV4cGVjdGVkTWlt
ZVR5cGUgaXMgInRleHQvcGxhaW47Y2hhcnNldD11dGYtOCIKK1BBU1MgZXhwZWN0ZWRNaW1lVHlw
ZSBpcyAiIgorUEFTUyBleHBlY3RlZE1pbWVUeXBlIGlzICIiCitQQVNTIGV4cGVjdGVkTWltZVR5
cGUgaXMgIiIKK1BBU1MgZXhwZWN0ZWRNaW1lVHlwZSBpcyAiIgorUEFTUyBleHBlY3RlZE1pbWVU
eXBlIGlzICIiCitQQVNTIGV4cGVjdGVkTWltZVR5cGUgaXMgIiIKK1BBU1MgZXhwZWN0ZWRNaW1l
VHlwZSBpcyAiIgorUEFTUyBleHBlY3RlZE1pbWVUeXBlIGlzICJtdWx0aXBhcnQvbWl4ZWQ7Ym91
bmRhcnk9XCItLWJsb2ItYm91bmRhcnlcIiIKK1BBU1MgZXhwZWN0ZWRNaW1lVHlwZSBpcyAiIgor
UEFTUyBFeGNlcHRpb24gc2hvdWxkIGJlIHRocm93bi4KK1BBU1MgQ3Jvc3Mtb3JpZ2luIHJlcXVl
c3Qgd2l0aG91dCBDT1JTIGhlYWRlcnMgc2hvdWxkIGZhaWwuCitQQVNTIGV4cGVjdGVkTWltZVR5
cGUgaXMgInRleHQvcGxhaW47Y2hhcnNldD11dGYtOCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Bvc3QtYmxvYi1jb250ZW50LXR5cGUtYXN5bmMuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcG9zdC1ibG9iLWNvbnRlbnQt
dHlwZS1hc3luYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmMGI4
N2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L3Bvc3QtYmxvYi1jb250ZW50LXR5cGUtYXN5bmMuaHRtbApAQCAtMCwwICsxLDc0IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxz
Y3JpcHQgc3JjPSJwb3N0LWJsb2ItY29udGVudC10eXBlLXRlc3RzLmpzIj48L3NjcmlwdD4KKyAg
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgIGRlc2NyaXB0aW9uKCJUZXN0IHZl
cmlmaWVzIHRoYXQgY29udGVudCBNSU1FIHR5cGUgaXMgc2V0IGNvcnJlY3RseSAiICsKKyAgICAg
ICAgICAgICAgICAid2hlbiBCbG9iIGlzIHNlbnQgdXNpbmcgIiArCisgICAgICAgICAgICAgICAg
IjxhIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1RSL1hNTEh0dHBSZXF1ZXN0LyN0aGUtc2VuZC1t
ZXRob2QnPlhNTEh0dHBSZXF1ZXN0IGFzeW5jaHJvbm91c2x5LjwvYT4iKTsKKworICAgIHZhciB4
aHI7CisgICAgdmFyIGV4cGVjdGVkTWltZVR5cGU7CisgICAgd2luZG93LmpzVGVzdElzQXN5bmMg
PSB0cnVlOworICAgIHZhciBhc3luY1Rlc3RDYXNlID0gMDsKKworICAgIGZ1bmN0aW9uIHJ1bk5l
eHRBc3luY1Rlc3QoKSB7CisgICAgICAgIGFzeW5jVGVzdENhc2UrKzsKKyAgICAgICAgcnVuQXN5
bmNUZXN0cygpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJlcG9ydFJlc3VsdChlKSB7CisgICAg
ICAgIGlmICh4aHIuc3RhdHVzID09PSAyMDApIHsKKyAgICAgICAgICAgIGV4cGVjdGVkTWltZVR5
cGUgPSBKU09OLnBhcnNlKHhoci5yZXNwb25zZSlbJ2NvbnRlbnQtdHlwZSddIHx8ICIiOworICAg
ICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJleHBlY3RlZE1pbWVUeXBlIiwgeGhyQmxv
YlRlc3RDYXNlc1thc3luY1Rlc3RDYXNlXS5leHBlY3RlZE1pbWUpOworICAgICAgICB9IGVsc2Ug
aWYgKHhoci5zdGF0dXMgPT09IDAgJiYgeGhyQmxvYlRlc3RDYXNlc1thc3luY1Rlc3RDYXNlXS5z
aG91bGRUaHJvdyl7CisgICAgICAgICAgICB0ZXN0UGFzc2VkKCJDcm9zcy1vcmlnaW4gcmVxdWVz
dCB3aXRob3V0IENPUlMgaGVhZGVycyBzaG91bGQgZmFpbC4iKTsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIHRlc3RGYWlsZWQoIlVua25vd24gZXJyb3IiKTsKKyAgICAgICAgfQorCisg
ICAgICAgIHJ1bk5leHRBc3luY1Rlc3QoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5Bc3lu
Y1Rlc3RzKCkgeworICAgICAgICBpZiAoYXN5bmNUZXN0Q2FzZSA+PSB4aHJCbG9iVGVzdENhc2Vz
Lmxlbmd0aCkgeworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB2YXIgbWltZSA9IHhockJsb2JUZXN0
Q2FzZXNbYXN5bmNUZXN0Q2FzZV0ubWltZTsKKyAgICAgICAgICAgIHZhciB1cmwgPSB4aHJCbG9i
VGVzdENhc2VzW2FzeW5jVGVzdENhc2VdLnVybCAhPT0gdW5kZWZpbmVkID8geGhyQmxvYlRlc3RD
YXNlc1thc3luY1Rlc3RDYXNlXS51cmwgKyB4aHJCbG9iVGVzdFVybCA6IHhockJsb2JUZXN0VXJs
OworICAgICAgICAgICAgdXJsICs9IHhockJsb2JUZXN0Q2FzZXNbYXN5bmNUZXN0Q2FzZV0uYWxs
b3dPcmlnaW4gfHwgIiI7CisgICAgICAgICAgICBpZiAoeGhyQmxvYlRlc3RDYXNlc1thc3luY1Rl
c3RDYXNlXS5zaG91bGRUaHJvdyAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICAgICAgdHJ5
IHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdEJsb2JDb250ZW50VHlwZUFzeW5jKHVybCwgbWlt
ZSk7CisgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgICAgICAgICB0
ZXN0UGFzc2VkKCJFeGNlcHRpb24gc2hvdWxkIGJlIHRocm93bi4iKQorICAgICAgICAgICAgICAg
ICAgICBydW5OZXh0QXN5bmNUZXN0KCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICAgICAgdGVzdEJsb2JDb250ZW50VHlwZUFzeW5jKHVybCwgbWlt
ZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0QmxvYkNvbnRlbnRUeXBl
QXN5bmModXJsLCBtaW1lVHlwZSkgeworICAgICAgICB2YXIgYmxvYjsKKyAgICAgICAgaWYgKG1p
bWVUeXBlICE9PSAiIikKKyAgICAgICAgICAgIGJsb2IgPSBuZXcgQmxvYihbIlRlc3QgY29udGVu
dCJdLCB7dHlwZTogbWltZVR5cGV9KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYmxvYiA9
IG5ldyBCbG9iKFsiVGVzdCBjb250ZW50Il0pOworCisgICAgICAgIHhociA9IG5ldyBYTUxIdHRw
UmVxdWVzdCgpOworICAgICAgICB4aHIub25sb2FkZW5kID0gcmVwb3J0UmVzdWx0OworICAgICAg
ICB4aHIub3BlbigiUE9TVCIsIHVybCwgdHJ1ZSk7CisgICAgICAgIHhoci5zZW5kKGJsb2IpOwor
ICAgIH0KKworICAgIHJ1bkFzeW5jVGVzdHMoKTsKKworICA8L3NjcmlwdD4KKyAgPHNjcmlwdCBz
cmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9wb3N0LWJsb2ItY29udGVudC10eXBlLXN5bmMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9wb3N0LWJsb2ItY29udGVudC10eXBlLXN5bmMt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJlMzMzNDUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L3Bvc3QtYmxvYi1jb250ZW50LXR5cGUtc3luYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMyBA
QAorQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vbG9j
YWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2FjY2Vzcy1jb250cm9sLWFsbG93
LWxpc3RzLnBocC4gT3JpZ2luIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCBpcyBub3QgYWxsb3dlZCBi
eSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCitUZXN0IHZlcmlmaWVzIHRoYXQgY29udGVu
dCBNSU1FIHR5cGUgaXMgc2V0IGNvcnJlY3RseSB3aGVuIEJsb2IgaXMgc2VudCB1c2luZyBYTUxI
dHRwUmVxdWVzdCBzeW5jaHJvbm91c2x5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBleHBlY3RlZE1pbWVUeXBlIGlzICJ0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgiCitQ
QVNTIGV4cGVjdGVkTWltZVR5cGUgaXMgIiIKK1BBU1MgZXhwZWN0ZWRNaW1lVHlwZSBpcyAiIgor
UEFTUyBleHBlY3RlZE1pbWVUeXBlIGlzICIiCitQQVNTIGV4cGVjdGVkTWltZVR5cGUgaXMgIiIK
K1BBU1MgZXhwZWN0ZWRNaW1lVHlwZSBpcyAiIgorUEFTUyBleHBlY3RlZE1pbWVUeXBlIGlzICIi
CitQQVNTIGV4cGVjdGVkTWltZVR5cGUgaXMgIiIKK1BBU1MgZXhwZWN0ZWRNaW1lVHlwZSBpcyAi
bXVsdGlwYXJ0L21peGVkO2JvdW5kYXJ5PVwiLS1ibG9iLWJvdW5kYXJ5XCIiCitQQVNTIGV4cGVj
dGVkTWltZVR5cGUgaXMgIiIKK1BBU1MgRXhjZXB0aW9uIHNob3VsZCBiZSB0aHJvd24uCitQQVNT
IEV4Y2VwdGlvbiBzaG91bGQgYmUgdGhyb3duLgorUEFTUyBleHBlY3RlZE1pbWVUeXBlIGlzICJ0
ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9wb3N0LWJsb2ItY29udGVudC10eXBlLXN5bmMuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcG9zdC1ibG9iLWNvbnRlbnQtdHlwZS1zeW5j
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2E5OTI5ZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcG9zdC1i
bG9iLWNvbnRlbnQtdHlwZS1zeW5jLmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8c2NyaXB0IHNyYz0i
cG9zdC1ibG9iLWNvbnRlbnQtdHlwZS10ZXN0cy5qcyI+PC9zY3JpcHQ+CisgIDxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICBkZXNjcmlwdGlvbigiVGVzdCB2ZXJpZmllcyB0aGF0
IGNvbnRlbnQgTUlNRSB0eXBlIGlzIHNldCBjb3JyZWN0bHkgIiArCisgICAgICAgICAgICAgICAg
IndoZW4gQmxvYiBpcyBzZW50IHVzaW5nICIgKworICAgICAgICAgICAgICAgICI8YSBocmVmPSdo
dHRwOi8vd3d3LnczLm9yZy9UUi9YTUxIdHRwUmVxdWVzdC8jdGhlLXNlbmQtbWV0aG9kJz5YTUxI
dHRwUmVxdWVzdCBzeW5jaHJvbm91c2x5LjwvYT4iKTsKKworICAgIHZhciB4aHI7CisgICAgdmFy
IGV4cGVjdGVkTWltZVR5cGU7CisKKyAgICBmdW5jdGlvbiBydW5TeW5jVGVzdHMoKSB7CisgICAg
ICAgIHZhciB0ZXN0Q291bnQgPSB4aHJCbG9iVGVzdENhc2VzLmxlbmd0aDsKKyAgICAgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCB0ZXN0Q291bnQ7IGkrKykgeworICAgICAgICAgICAgdmFyIG1pbWUg
PSB4aHJCbG9iVGVzdENhc2VzW2ldLm1pbWU7CisgICAgICAgICAgICB2YXIgZXhwZWN0ZWRNaW1l
ID0geGhyQmxvYlRlc3RDYXNlc1tpXS5leHBlY3RlZE1pbWU7CisgICAgICAgICAgICB2YXIgdXJs
ID0geGhyQmxvYlRlc3RDYXNlc1tpXS51cmwgIT09IHVuZGVmaW5lZCA/IHhockJsb2JUZXN0Q2Fz
ZXNbaV0udXJsICsgeGhyQmxvYlRlc3RVcmwgOiB4aHJCbG9iVGVzdFVybDsKKyAgICAgICAgICAg
IHVybCArPSB4aHJCbG9iVGVzdENhc2VzW2ldLmFsbG93T3JpZ2luIHx8ICIiOworICAgICAgICAg
ICAgaWYgKHhockJsb2JUZXN0Q2FzZXNbaV0uc2hvdWxkVGhyb3cgIT09IHVuZGVmaW5lZCkgewor
ICAgICAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RCbG9iQ29udGVu
dFR5cGVTeW5jKHVybCwgbWltZSwgZXhwZWN0ZWRNaW1lKTsKKyAgICAgICAgICAgICAgICB9IGNh
dGNoIChlKSB7CisgICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkV4Y2VwdGlvbiBzaG91
bGQgYmUgdGhyb3duLiIpCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgICB0ZXN0QmxvYkNvbnRlbnRUeXBlU3luYyh1cmwsIG1pbWUsIGV4cGVj
dGVkTWltZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmdW5jdGlv
biB0ZXN0QmxvYkNvbnRlbnRUeXBlU3luYyh1cmwsIG1pbWVUeXBlLCBleHBlY3RlZE1pbWUpIHsK
KyAgICAgICAgdmFyIGJsb2I7CisgICAgICAgIGlmIChtaW1lVHlwZSAhPT0gIiIpCisgICAgICAg
ICAgICBibG9iID0gbmV3IEJsb2IoWyJUZXN0IGNvbnRlbnQiXSwge3R5cGU6IG1pbWVUeXBlfSk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGJsb2IgPSBuZXcgQmxvYihbIlRlc3QgY29udGVu
dCJdKTsKKworICAgICAgICB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICAgICAgeGhy
Lm9wZW4oIlBPU1QiLCB1cmwsIGZhbHNlKTsKKyAgICAgICAgeGhyLnNlbmQoYmxvYik7CisgICAg
ICAgIGlmICh4aHIuc3RhdHVzID09PSAyMDApIHsKKyAgICAgICAgICAgIGV4cGVjdGVkTWltZVR5
cGUgPSBKU09OLnBhcnNlKHhoci5yZXNwb25zZSlbJ2NvbnRlbnQtdHlwZSddIHx8ICIiOworICAg
ICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJleHBlY3RlZE1pbWVUeXBlIiwgZXhwZWN0
ZWRNaW1lKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJVbmtub3du
IGVycm9yIik7CisKKyAgICB9CisKKyAgICBydW5TeW5jVGVzdHMoKTsKKworICA8L3NjcmlwdD4K
KyAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC9wb3N0LWJsb2ItY29udGVudC10eXBlLXRlc3RzLmpzIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9wb3N0LWJsb2ItY29udGVudC10eXBlLXRl
c3RzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmIyZjI5YmMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Bvc3Qt
YmxvYi1jb250ZW50LXR5cGUtdGVzdHMuanMKQEAgLTAsMCArMSw0OCBAQAordmFyIHhockJsb2JU
ZXN0VXJsID0gJy94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvYWNjZXNzLWNvbnRyb2wtYWxsb3ct
bGlzdHMucGhwJzsKKwordmFyIHhockJsb2JUZXN0Q2FzZXMgPSBbeworICAgIG1pbWU6ICd0ZXh0
L3BsYWluO2NoYXJzZXQ9dXRmLTgnLAorICAgIGV4cGVjdGVkTWltZTogJ3RleHQvcGxhaW47Y2hh
cnNldD11dGYtOCcKK30sIHsKKyAgICBtaW1lOiAnSW52YWxpZC9UeXBlXHJcbjtjaGFyc2V0PWtv
aTgtcicsCisgICAgZXhwZWN0ZWRNaW1lOiAnJworfSwgeworICAgIG1pbWU6ICdBU0NJSS9DUlxy
O2NoYXJzZXQ9aW52YWxpZCcsCisgICAgZXhwZWN0ZWRNaW1lOiAnJworfSwgeworICAgIG1pbWU6
ICdBU0NJSS9MRlxuO2NoYXJzZXQ9VVRGLTE2QkUnLAorICAgIGV4cGVjdGVkTWltZTogJycKK30s
IHsKKyAgICBtaW1lOiAnVW5pY29kZS9DUkxGXHUwMDBEXHUwMDBBO2NoYXJzZXQ9VmVudHVyYS1V
UycsCisgICAgZXhwZWN0ZWRNaW1lOiAnJworfSwgeworICAgIG1pbWU6ICdVbmljb2RlL0NSXHUw
MDBEY2hhcnNldD13aW5kb3dzLTEyNTEnLAorICAgIGV4cGVjdGVkTWltZTogJycKK30sIHsKKyAg
ICBtaW1lOiAnVW5pY29kZS9MRlx1MDAwQWNoYXJzZXQ9d2luZG93cy0xMjUyJywKKyAgICBleHBl
Y3RlZE1pbWU6ICcnCit9LCB7CisgICAgbWltZTogJ211bHRpcGFydC9taXhlZDtib3VuZGFyeT0i
LS1ibG9iLWJvdW5kYXJ5JywKKyAgICBleHBlY3RlZE1pbWU6ICcnCit9LCB7CisgICAgbWltZTog
J211bHRpcGFydC9taXhlZDtib3VuZGFyeT0iLS1ibG9iLWJvdW5kYXJ5IicsCisgICAgZXhwZWN0
ZWRNaW1lOiAnbXVsdGlwYXJ0L21peGVkO2JvdW5kYXJ5PSItLWJsb2ItYm91bmRhcnkiJworfSwg
eworICAgIG1pbWU6ICcnLAorICAgIGV4cGVjdGVkTWltZTogJycKK30sIHsKKyAgICBtaW1lOiAn
XHUwNDIyXHUwNDM1XHUwNDQxXHUwNDQyJywKKyAgICBleHBlY3RlZE1pbWU6ICcnLAorICAgIHNo
b3VsZFRocm93OiB0cnVlCit9LCB7CisgICAgbWltZTogJ3RleHQvcGxhaW47Y2hhcnNldD11dGYt
OCcsCisgICAgZXhwZWN0ZWRNaW1lOiAndGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04JywKKyAgICBz
aG91bGRUaHJvdzogdHJ1ZSwKKyAgICB1cmw6ICdodHRwOi8vbG9jYWxob3N0OjgwMDAnLAorICAg
IGFsbG93T3JpZ2luOiAnJworfSwgeworICAgIG1pbWU6ICd0ZXh0L3BsYWluO2NoYXJzZXQ9dXRm
LTgnLAorICAgIGV4cGVjdGVkTWltZTogJ3RleHQvcGxhaW47Y2hhcnNldD11dGYtOCcsCisgICAg
dXJsOiAnaHR0cDovL2xvY2FsaG9zdDo4MDAwJywKKyAgICBhbGxvd09yaWdpbjogJz9vcmlnaW49
aHR0cDovLzEyNy4wLjAuMTo4MDAwJworfV07ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGM4YjFiNjguLmZhNWQ0MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBA
QAorMjAxMi0xMC0yNiAgQWxleGFuZGVyIFNoYWxhbW92ICA8YWxleGFuZGVyLnNoYWxhbW92QGlu
dGVsLmNvbT4KKworICAgICAgICBYTUxIdHRwUmVxdWVzdCBDb250ZW50LVR5cGUgc2hvdWxkIGJl
IHRha2VuIGZyb20gQmxvYiB0eXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05OTk4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEZpeCBYTUxIdHRwUmVxdWVzdDo6c2VuZChCbG9iKikgbWV0aG9kLCBzbyB0
aGF0IHRoZSBDb250ZW50LVR5cGUgaXMgc2V0IGFjY29yZGluZyB0byBXM0Mgc3BlY2lmaWNhdGlv
bi4KKyAgICAgICAgaHR0cDovL3d3dy53My5vcmcvVFIvWE1MSHR0cFJlcXVlc3QvI3RoZS1zZW5k
LW1ldGhvZAorCisgICAgICAgIEFkZGVkIHRlc3QgdGhhdCBjaGVjayBpZiBjb250ZW50IHR5cGUg
aXMgc2V0IGNvcnJlY3RseSB3aGVuIGJsb2Igb2JqZWN0IGlzIHNlbnQuCisKKyAgICAgICAgVGVz
dDogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9wb3N0LWJsb2ItY29udGVudC10eXBlLmh0bWwK
KworICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpY
TUxIdHRwUmVxdWVzdDo6c2VuZCk6CisgICAgICAgICAgICBTZXQgY29ycmVjdCBNSU1FIHR5cGUg
Zm9yIEJsb2Igb2JqZWN0cy4KKwogMjAxMi0xMS0yOSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2
aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEz
NjExMS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IDI5NTM2ZGEuLjJh
M2E1MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtNDIsNiArNDIs
NyBAQAogI2luY2x1ZGUgIkhpc3RvZ3JhbVN1cHBvcnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgorI2luY2x1ZGUgIlBh
cnNlZENvbnRlbnRUeXBlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUg
IlJlc291cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgpAQCAtNjQz
LDcgKzY0NCwxNyBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpzZW5kKEJsb2IqIGJvZHksIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9tZXRob2QgIT0gIkdF
VCIgJiYgbV9tZXRob2QgIT0gIkhFQUQiICYmIG1fdXJsLnByb3RvY29sSXNJbkhUVFBGYW1pbHko
KSkgewotICAgICAgICAvLyBGSVhNRTogU2hvdWxkIHdlIHNldCBhIENvbnRlbnQtVHlwZSBpZiBv
bmUgaXMgbm90IHNldC4KKyAgICAgICAgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSA9IGdldFJl
cXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIpOworICAgICAgICBpZiAoY29udGVudFR5cGUuaXNF
bXB0eSgpKSB7CisgICAgICAgICAgICBjb25zdCBTdHJpbmcmIGJsb2JUeXBlID0gYm9keS0+dHlw
ZSgpOworICAgICAgICAgICAgaWYgKCFibG9iVHlwZS5pc0VtcHR5KCkgJiYgaXNWYWxpZENvbnRl
bnRUeXBlKGJsb2JUeXBlKSkKKyAgICAgICAgICAgICAgICBzZXRSZXF1ZXN0SGVhZGVySW50ZXJu
YWwoIkNvbnRlbnQtVHlwZSIsIGJsb2JUeXBlKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAg
ICAgICAgICAgIC8vIEZyb20gRmlsZUFQSSBzcGVjLCB3aGVuZXZlciBtZWRpYSB0eXBlIGNhbm5v
dCBiZSBkZXRlcm1pbmVkLCBlbXB0eSBzdHJpbmcgbXVzdCBiZSByZXR1cm5lZC4KKyAgICAgICAg
ICAgICAgICBzZXRSZXF1ZXN0SGVhZGVySW50ZXJuYWwoIkNvbnRlbnQtVHlwZSIsICIiKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorCiAgICAgICAgIC8vIEZJWE1FOiBhZGQgc3VwcG9ydCBm
b3IgdXBsb2FkaW5nIGJ1bmRsZXMuCiAgICAgICAgIG1fcmVxdWVzdEVudGl0eUJvZHkgPSBGb3Jt
RGF0YTo6Y3JlYXRlKCk7CiAgICAgICAgIGlmIChib2R5LT5pc0ZpbGUoKSkK
</data>
<flag name="review"
          id="192578"
          type_id="1"
          status="+"
          setter="ap"
    />
    <flag name="commit-queue"
          id="192579"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177242</attachid>
            <date>2012-12-03 06:20:49 -0800</date>
            <delta_ts>2012-12-05 06:07:16 -0800</delta_ts>
            <desc>Patch 5</desc>
            <filename>webcore_xhr_mime_blob_5.patch</filename>
            <type>text/plain</type>
            <size>13771</size>
            <attacher name="Alexander Shalamov">alexander.shalamov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0YjA1MzgwLi40NDFjMTc3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMTAt
MjYgIEFsZXhhbmRlciBTaGFsYW1vdiAgPGFsZXhhbmRlci5zaGFsYW1vdkBpbnRlbC5jb20+CisK
KyAgICAgICAgWE1MSHR0cFJlcXVlc3QgQ29udGVudC1UeXBlIHNob3VsZCBiZSB0YWtlbiBmcm9t
IEJsb2IgdHlwZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTk5ODMKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgorCisg
ICAgICAgIEFkZGVkIHRlc3RzIHRoYXQgY2hlY2sgaWYgY29udGVudCB0eXBlIGlzIHNldCBjb3Jy
ZWN0bHkgd2hlbiBibG9iIG9iamVjdCBpcyBzZW50LgorCisgICAgICAgICogaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9wb3N0LWJsb2ItY29udGVudC10eXBlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9wb3N0LWJsb2ItY29udGVudC10
eXBlLmh0bWw6IEFkZGVkLgorCiAyMDEyLTEyLTAzICBBbGV4aXMgTWVuYXJkICA8YWxleGlzQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBFbmFibGUgQ1NTMyBiYWNrZ3JvdW5kLXBvc2l0aW9u
IG9mZnNldHMgYnkgZGVmYXVsdC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QvcG9zdC1ibG9iLWNvbnRlbnQtdHlwZS1hc3luYy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Bvc3QtYmxvYi1jb250ZW50
LXR5cGUtYXN5bmMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjA2ODRmZTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L3Bvc3QtYmxvYi1jb250ZW50LXR5cGUtYXN5bmMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMjMgQEAKK0NPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxv
YWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9hY2Nlc3Mt
Y29udHJvbC1hbGxvdy1saXN0cy5waHAuIE9yaWdpbiBodHRwOi8vMTI3LjAuMC4xOjgwMDAgaXMg
bm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgorVGVzdCB2ZXJpZmll
cyB0aGF0IGNvbnRlbnQgTUlNRSB0eXBlIGlzIHNldCBjb3JyZWN0bHkgd2hlbiBCbG9iIGlzIHNl
bnQgdXNpbmcgWE1MSHR0cFJlcXVlc3QgYXN5bmNocm9ub3VzbHkuCisKK09uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KKworCitQQVNTIGV4cGVjdGVkTWltZVR5cGUgaXMgInRleHQvcGxhaW47Y2hh
cnNldD11dGYtOCIKK1BBU1MgZXhwZWN0ZWRNaW1lVHlwZSBpcyAiIgorUEFTUyBleHBlY3RlZE1p
bWVUeXBlIGlzICIiCitQQVNTIGV4cGVjdGVkTWltZVR5cGUgaXMgIiIKK1BBU1MgZXhwZWN0ZWRN
aW1lVHlwZSBpcyAiIgorUEFTUyBleHBlY3RlZE1pbWVUeXBlIGlzICIiCitQQVNTIGV4cGVjdGVk
TWltZVR5cGUgaXMgIiIKK1BBU1MgZXhwZWN0ZWRNaW1lVHlwZSBpcyAiIgorUEFTUyBleHBlY3Rl
ZE1pbWVUeXBlIGlzICJtdWx0aXBhcnQvbWl4ZWQ7Ym91bmRhcnk9XCItLWJsb2ItYm91bmRhcnlc
IiIKK1BBU1MgZXhwZWN0ZWRNaW1lVHlwZSBpcyAiIgorUEFTUyBFeGNlcHRpb24gc2hvdWxkIGJl
IHRocm93bi4KK1BBU1MgQ3Jvc3Mtb3JpZ2luIHJlcXVlc3Qgd2l0aG91dCBDT1JTIGhlYWRlcnMg
c2hvdWxkIGZhaWwuCitQQVNTIGV4cGVjdGVkTWltZVR5cGUgaXMgInRleHQvcGxhaW47Y2hhcnNl
dD11dGYtOCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Bv
c3QtYmxvYi1jb250ZW50LXR5cGUtYXN5bmMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QvcG9zdC1ibG9iLWNvbnRlbnQtdHlwZS1hc3luYy5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmMGI4N2QKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Bvc3QtYmxvYi1jb250ZW50LXR5
cGUtYXN5bmMuaHRtbApAQCAtMCwwICsxLDc0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+CisgIDxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxzY3JpcHQgc3JjPSJwb3N0LWJsb2ItY29u
dGVudC10eXBlLXRlc3RzLmpzIj48L3NjcmlwdD4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPgorICAgIGRlc2NyaXB0aW9uKCJUZXN0IHZlcmlmaWVzIHRoYXQgY29udGVudCBNSU1F
IHR5cGUgaXMgc2V0IGNvcnJlY3RseSAiICsKKyAgICAgICAgICAgICAgICAid2hlbiBCbG9iIGlz
IHNlbnQgdXNpbmcgIiArCisgICAgICAgICAgICAgICAgIjxhIGhyZWY9J2h0dHA6Ly93d3cudzMu
b3JnL1RSL1hNTEh0dHBSZXF1ZXN0LyN0aGUtc2VuZC1tZXRob2QnPlhNTEh0dHBSZXF1ZXN0IGFz
eW5jaHJvbm91c2x5LjwvYT4iKTsKKworICAgIHZhciB4aHI7CisgICAgdmFyIGV4cGVjdGVkTWlt
ZVR5cGU7CisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgIHZhciBhc3luY1Rl
c3RDYXNlID0gMDsKKworICAgIGZ1bmN0aW9uIHJ1bk5leHRBc3luY1Rlc3QoKSB7CisgICAgICAg
IGFzeW5jVGVzdENhc2UrKzsKKyAgICAgICAgcnVuQXN5bmNUZXN0cygpOworICAgIH0KKworICAg
IGZ1bmN0aW9uIHJlcG9ydFJlc3VsdChlKSB7CisgICAgICAgIGlmICh4aHIuc3RhdHVzID09PSAy
MDApIHsKKyAgICAgICAgICAgIGV4cGVjdGVkTWltZVR5cGUgPSBKU09OLnBhcnNlKHhoci5yZXNw
b25zZSlbJ2NvbnRlbnQtdHlwZSddIHx8ICIiOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJleHBlY3RlZE1pbWVUeXBlIiwgeGhyQmxvYlRlc3RDYXNlc1thc3luY1Rlc3RDYXNl
XS5leHBlY3RlZE1pbWUpOworICAgICAgICB9IGVsc2UgaWYgKHhoci5zdGF0dXMgPT09IDAgJiYg
eGhyQmxvYlRlc3RDYXNlc1thc3luY1Rlc3RDYXNlXS5zaG91bGRUaHJvdyl7CisgICAgICAgICAg
ICB0ZXN0UGFzc2VkKCJDcm9zcy1vcmlnaW4gcmVxdWVzdCB3aXRob3V0IENPUlMgaGVhZGVycyBz
aG91bGQgZmFpbC4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQo
IlVua25vd24gZXJyb3IiKTsKKyAgICAgICAgfQorCisgICAgICAgIHJ1bk5leHRBc3luY1Rlc3Qo
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5Bc3luY1Rlc3RzKCkgeworICAgICAgICBpZiAo
YXN5bmNUZXN0Q2FzZSA+PSB4aHJCbG9iVGVzdENhc2VzLmxlbmd0aCkgeworICAgICAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0gZWxzZSB7Cisg
ICAgICAgICAgICB2YXIgbWltZSA9IHhockJsb2JUZXN0Q2FzZXNbYXN5bmNUZXN0Q2FzZV0ubWlt
ZTsKKyAgICAgICAgICAgIHZhciB1cmwgPSB4aHJCbG9iVGVzdENhc2VzW2FzeW5jVGVzdENhc2Vd
LnVybCAhPT0gdW5kZWZpbmVkID8geGhyQmxvYlRlc3RDYXNlc1thc3luY1Rlc3RDYXNlXS51cmwg
KyB4aHJCbG9iVGVzdFVybCA6IHhockJsb2JUZXN0VXJsOworICAgICAgICAgICAgdXJsICs9IHho
ckJsb2JUZXN0Q2FzZXNbYXN5bmNUZXN0Q2FzZV0uYWxsb3dPcmlnaW4gfHwgIiI7CisgICAgICAg
ICAgICBpZiAoeGhyQmxvYlRlc3RDYXNlc1thc3luY1Rlc3RDYXNlXS5zaG91bGRUaHJvdyAhPT0g
dW5kZWZpbmVkKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAg
dGVzdEJsb2JDb250ZW50VHlwZUFzeW5jKHVybCwgbWltZSk7CisgICAgICAgICAgICAgICAgfSBj
YXRjaCAoZSkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJFeGNlcHRpb24gc2hv
dWxkIGJlIHRocm93bi4iKQorICAgICAgICAgICAgICAgICAgICBydW5OZXh0QXN5bmNUZXN0KCk7
CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAg
dGVzdEJsb2JDb250ZW50VHlwZUFzeW5jKHVybCwgbWltZSk7CisgICAgICAgIH0KKyAgICB9CisK
KyAgICBmdW5jdGlvbiB0ZXN0QmxvYkNvbnRlbnRUeXBlQXN5bmModXJsLCBtaW1lVHlwZSkgewor
ICAgICAgICB2YXIgYmxvYjsKKyAgICAgICAgaWYgKG1pbWVUeXBlICE9PSAiIikKKyAgICAgICAg
ICAgIGJsb2IgPSBuZXcgQmxvYihbIlRlc3QgY29udGVudCJdLCB7dHlwZTogbWltZVR5cGV9KTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgYmxvYiA9IG5ldyBCbG9iKFsiVGVzdCBjb250ZW50
Il0pOworCisgICAgICAgIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgICAgICB4aHIu
b25sb2FkZW5kID0gcmVwb3J0UmVzdWx0OworICAgICAgICB4aHIub3BlbigiUE9TVCIsIHVybCwg
dHJ1ZSk7CisgICAgICAgIHhoci5zZW5kKGJsb2IpOworICAgIH0KKworICAgIHJ1bkFzeW5jVGVz
dHMoKTsKKworICA8L3NjcmlwdD4KKyAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9wb3N0LWJsb2ItY29udGVudC10
eXBlLXN5bmMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9wb3N0LWJsb2ItY29udGVudC10eXBlLXN5bmMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJlMzMzNDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Bvc3QtYmxvYi1jb250ZW50LXR5cGUt
c3luYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMyBAQAorQ09OU09MRSBNRVNTQUdFOiBYTUxI
dHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVl
c3QvcmVzb3VyY2VzL2FjY2Vzcy1jb250cm9sLWFsbG93LWxpc3RzLnBocC4gT3JpZ2luIGh0dHA6
Ly8xMjcuMC4wLjE6ODAwMCBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1P
cmlnaW4uCitUZXN0IHZlcmlmaWVzIHRoYXQgY29udGVudCBNSU1FIHR5cGUgaXMgc2V0IGNvcnJl
Y3RseSB3aGVuIEJsb2IgaXMgc2VudCB1c2luZyBYTUxIdHRwUmVxdWVzdCBzeW5jaHJvbm91c2x5
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBleHBlY3RlZE1pbWVUeXBl
IGlzICJ0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgiCitQQVNTIGV4cGVjdGVkTWltZVR5cGUgaXMg
IiIKK1BBU1MgZXhwZWN0ZWRNaW1lVHlwZSBpcyAiIgorUEFTUyBleHBlY3RlZE1pbWVUeXBlIGlz
ICIiCitQQVNTIGV4cGVjdGVkTWltZVR5cGUgaXMgIiIKK1BBU1MgZXhwZWN0ZWRNaW1lVHlwZSBp
cyAiIgorUEFTUyBleHBlY3RlZE1pbWVUeXBlIGlzICIiCitQQVNTIGV4cGVjdGVkTWltZVR5cGUg
aXMgIiIKK1BBU1MgZXhwZWN0ZWRNaW1lVHlwZSBpcyAibXVsdGlwYXJ0L21peGVkO2JvdW5kYXJ5
PVwiLS1ibG9iLWJvdW5kYXJ5XCIiCitQQVNTIGV4cGVjdGVkTWltZVR5cGUgaXMgIiIKK1BBU1Mg
RXhjZXB0aW9uIHNob3VsZCBiZSB0aHJvd24uCitQQVNTIEV4Y2VwdGlvbiBzaG91bGQgYmUgdGhy
b3duLgorUEFTUyBleHBlY3RlZE1pbWVUeXBlIGlzICJ0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgi
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9wb3N0LWJsb2It
Y29udGVudC10eXBlLXN5bmMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvcG9zdC1ibG9iLWNvbnRlbnQtdHlwZS1zeW5jLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uY2E5OTI5ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcG9zdC1ibG9iLWNvbnRlbnQtdHlwZS1zeW5jLmh0
bWwKQEAgLTAsMCArMSw1OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICA8
c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorICA8c2NyaXB0IHNyYz0icG9zdC1ibG9iLWNvbnRlbnQtdHlwZS10
ZXN0cy5qcyI+PC9zY3JpcHQ+CisgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAg
ICBkZXNjcmlwdGlvbigiVGVzdCB2ZXJpZmllcyB0aGF0IGNvbnRlbnQgTUlNRSB0eXBlIGlzIHNl
dCBjb3JyZWN0bHkgIiArCisgICAgICAgICAgICAgICAgIndoZW4gQmxvYiBpcyBzZW50IHVzaW5n
ICIgKworICAgICAgICAgICAgICAgICI8YSBocmVmPSdodHRwOi8vd3d3LnczLm9yZy9UUi9YTUxI
dHRwUmVxdWVzdC8jdGhlLXNlbmQtbWV0aG9kJz5YTUxIdHRwUmVxdWVzdCBzeW5jaHJvbm91c2x5
LjwvYT4iKTsKKworICAgIHZhciB4aHI7CisgICAgdmFyIGV4cGVjdGVkTWltZVR5cGU7CisKKyAg
ICBmdW5jdGlvbiBydW5TeW5jVGVzdHMoKSB7CisgICAgICAgIHZhciB0ZXN0Q291bnQgPSB4aHJC
bG9iVGVzdENhc2VzLmxlbmd0aDsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0Q291
bnQ7IGkrKykgeworICAgICAgICAgICAgdmFyIG1pbWUgPSB4aHJCbG9iVGVzdENhc2VzW2ldLm1p
bWU7CisgICAgICAgICAgICB2YXIgZXhwZWN0ZWRNaW1lID0geGhyQmxvYlRlc3RDYXNlc1tpXS5l
eHBlY3RlZE1pbWU7CisgICAgICAgICAgICB2YXIgdXJsID0geGhyQmxvYlRlc3RDYXNlc1tpXS51
cmwgIT09IHVuZGVmaW5lZCA/IHhockJsb2JUZXN0Q2FzZXNbaV0udXJsICsgeGhyQmxvYlRlc3RV
cmwgOiB4aHJCbG9iVGVzdFVybDsKKyAgICAgICAgICAgIHVybCArPSB4aHJCbG9iVGVzdENhc2Vz
W2ldLmFsbG93T3JpZ2luIHx8ICIiOworICAgICAgICAgICAgaWYgKHhockJsb2JUZXN0Q2FzZXNb
aV0uc2hvdWxkVGhyb3cgIT09IHVuZGVmaW5lZCkgeworICAgICAgICAgICAgICAgIHRyeSB7Cisg
ICAgICAgICAgICAgICAgICAgIHRlc3RCbG9iQ29udGVudFR5cGVTeW5jKHVybCwgbWltZSwgZXhw
ZWN0ZWRNaW1lKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAg
ICAgICAgIHRlc3RQYXNzZWQoIkV4Y2VwdGlvbiBzaG91bGQgYmUgdGhyb3duLiIpCisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB0ZXN0Qmxv
YkNvbnRlbnRUeXBlU3luYyh1cmwsIG1pbWUsIGV4cGVjdGVkTWltZSk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmdW5jdGlvbiB0ZXN0QmxvYkNvbnRlbnRUeXBlU3lu
Yyh1cmwsIG1pbWVUeXBlLCBleHBlY3RlZE1pbWUpIHsKKyAgICAgICAgdmFyIGJsb2I7CisgICAg
ICAgIGlmIChtaW1lVHlwZSAhPT0gIiIpCisgICAgICAgICAgICBibG9iID0gbmV3IEJsb2IoWyJU
ZXN0IGNvbnRlbnQiXSwge3R5cGU6IG1pbWVUeXBlfSk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIGJsb2IgPSBuZXcgQmxvYihbIlRlc3QgY29udGVudCJdKTsKKworICAgICAgICB4aHIgPSBu
ZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICAgICAgeGhyLm9wZW4oIlBPU1QiLCB1cmwsIGZhbHNl
KTsKKyAgICAgICAgeGhyLnNlbmQoYmxvYik7CisgICAgICAgIGlmICh4aHIuc3RhdHVzID09PSAy
MDApIHsKKyAgICAgICAgICAgIGV4cGVjdGVkTWltZVR5cGUgPSBKU09OLnBhcnNlKHhoci5yZXNw
b25zZSlbJ2NvbnRlbnQtdHlwZSddIHx8ICIiOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJleHBlY3RlZE1pbWVUeXBlIiwgZXhwZWN0ZWRNaW1lKTsKKyAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICB0ZXN0RmFpbGVkKCJVbmtub3duIGVycm9yIik7CisKKyAgICB9CisKKyAg
ICBydW5TeW5jVGVzdHMoKTsKKworICA8L3NjcmlwdD4KKyAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0
LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9wb3N0LWJs
b2ItY29udGVudC10eXBlLXRlc3RzLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC9wb3N0LWJsb2ItY29udGVudC10eXBlLXRlc3RzLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLmIyZjI5YmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Bvc3QtYmxvYi1jb250ZW50LXR5cGUtdGVzdHMu
anMKQEAgLTAsMCArMSw0OCBAQAordmFyIHhockJsb2JUZXN0VXJsID0gJy94bWxodHRwcmVxdWVz
dC9yZXNvdXJjZXMvYWNjZXNzLWNvbnRyb2wtYWxsb3ctbGlzdHMucGhwJzsKKwordmFyIHhockJs
b2JUZXN0Q2FzZXMgPSBbeworICAgIG1pbWU6ICd0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgnLAor
ICAgIGV4cGVjdGVkTWltZTogJ3RleHQvcGxhaW47Y2hhcnNldD11dGYtOCcKK30sIHsKKyAgICBt
aW1lOiAnSW52YWxpZC9UeXBlXHJcbjtjaGFyc2V0PWtvaTgtcicsCisgICAgZXhwZWN0ZWRNaW1l
OiAnJworfSwgeworICAgIG1pbWU6ICdBU0NJSS9DUlxyO2NoYXJzZXQ9aW52YWxpZCcsCisgICAg
ZXhwZWN0ZWRNaW1lOiAnJworfSwgeworICAgIG1pbWU6ICdBU0NJSS9MRlxuO2NoYXJzZXQ9VVRG
LTE2QkUnLAorICAgIGV4cGVjdGVkTWltZTogJycKK30sIHsKKyAgICBtaW1lOiAnVW5pY29kZS9D
UkxGXHUwMDBEXHUwMDBBO2NoYXJzZXQ9VmVudHVyYS1VUycsCisgICAgZXhwZWN0ZWRNaW1lOiAn
JworfSwgeworICAgIG1pbWU6ICdVbmljb2RlL0NSXHUwMDBEY2hhcnNldD13aW5kb3dzLTEyNTEn
LAorICAgIGV4cGVjdGVkTWltZTogJycKK30sIHsKKyAgICBtaW1lOiAnVW5pY29kZS9MRlx1MDAw
QWNoYXJzZXQ9d2luZG93cy0xMjUyJywKKyAgICBleHBlY3RlZE1pbWU6ICcnCit9LCB7CisgICAg
bWltZTogJ211bHRpcGFydC9taXhlZDtib3VuZGFyeT0iLS1ibG9iLWJvdW5kYXJ5JywKKyAgICBl
eHBlY3RlZE1pbWU6ICcnCit9LCB7CisgICAgbWltZTogJ211bHRpcGFydC9taXhlZDtib3VuZGFy
eT0iLS1ibG9iLWJvdW5kYXJ5IicsCisgICAgZXhwZWN0ZWRNaW1lOiAnbXVsdGlwYXJ0L21peGVk
O2JvdW5kYXJ5PSItLWJsb2ItYm91bmRhcnkiJworfSwgeworICAgIG1pbWU6ICcnLAorICAgIGV4
cGVjdGVkTWltZTogJycKK30sIHsKKyAgICBtaW1lOiAnXHUwNDIyXHUwNDM1XHUwNDQxXHUwNDQy
JywKKyAgICBleHBlY3RlZE1pbWU6ICcnLAorICAgIHNob3VsZFRocm93OiB0cnVlCit9LCB7Cisg
ICAgbWltZTogJ3RleHQvcGxhaW47Y2hhcnNldD11dGYtOCcsCisgICAgZXhwZWN0ZWRNaW1lOiAn
dGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04JywKKyAgICBzaG91bGRUaHJvdzogdHJ1ZSwKKyAgICB1
cmw6ICdodHRwOi8vbG9jYWxob3N0OjgwMDAnLAorICAgIGFsbG93T3JpZ2luOiAnJworfSwgewor
ICAgIG1pbWU6ICd0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgnLAorICAgIGV4cGVjdGVkTWltZTog
J3RleHQvcGxhaW47Y2hhcnNldD11dGYtOCcsCisgICAgdXJsOiAnaHR0cDovL2xvY2FsaG9zdDo4
MDAwJywKKyAgICBhbGxvd09yaWdpbjogJz9vcmlnaW49aHR0cDovLzEyNy4wLjAuMTo4MDAwJwor
fV07ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDY4M2Q5NmIuLjFj
NGU3MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMi0xMC0yNiAgQWxleGFuZGVy
IFNoYWxhbW92ICA8YWxleGFuZGVyLnNoYWxhbW92QGludGVsLmNvbT4KKworICAgICAgICBYTUxI
dHRwUmVxdWVzdCBDb250ZW50LVR5cGUgc2hvdWxkIGJlIHRha2VuIGZyb20gQmxvYiB0eXBlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTk4MworCisg
ICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCisKKyAgICAgICAgRml4IFhN
TEh0dHBSZXF1ZXN0OjpzZW5kKEJsb2IqKSBtZXRob2QsIHNvIHRoYXQgdGhlIENvbnRlbnQtVHlw
ZSBpcyBzZXQgYWNjb3JkaW5nIHRvIFczQyBzcGVjaWZpY2F0aW9uLgorICAgICAgICBodHRwOi8v
d3d3LnczLm9yZy9UUi9YTUxIdHRwUmVxdWVzdC8jdGhlLXNlbmQtbWV0aG9kCisKKyAgICAgICAg
QWRkZWQgdGVzdCB0aGF0IGNoZWNrIGlmIGNvbnRlbnQgdHlwZSBpcyBzZXQgY29ycmVjdGx5IHdo
ZW4gYmxvYiBvYmplY3QgaXMgc2VudC4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L3Bvc3QtYmxvYi1jb250ZW50LXR5cGUuaHRtbAorCisgICAgICAgICogeG1sL1hN
TEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpzZW5k
KToKKyAgICAgICAgICAgIFNldCBjb3JyZWN0IE1JTUUgdHlwZSBmb3IgQmxvYiBvYmplY3RzLgor
CiAyMDEyLTEyLTAzICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTM2Mzc3LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3ht
bC9YTUxIdHRwUmVxdWVzdC5jcHAKaW5kZXggMjk1MzZkYS4uMmEzYTUxNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCkBAIC00Miw2ICs0Miw3IEBACiAjaW5jbHVkZSAiSGlz
dG9ncmFtU3VwcG9ydC5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgog
I2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCisjaW5jbHVkZSAiUGFyc2VkQ29udGVudFR5cGUuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0Lmgi
CiAjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCkBAIC02NDMsNyArNjQ0LDE3IEBAIHZvaWQg
WE1MSHR0cFJlcXVlc3Q6OnNlbmQoQmxvYiogYm9keSwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGlmIChtX21ldGhvZCAhPSAiR0VUIiAmJiBtX21ldGhvZCAhPSAi
SEVBRCIgJiYgbV91cmwucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKSB7Ci0gICAgICAgIC8vIEZJ
WE1FOiBTaG91bGQgd2Ugc2V0IGEgQ29udGVudC1UeXBlIGlmIG9uZSBpcyBub3Qgc2V0LgorICAg
ICAgICBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlID0gZ2V0UmVxdWVzdEhlYWRlcigiQ29udGVu
dC1UeXBlIik7CisgICAgICAgIGlmIChjb250ZW50VHlwZS5pc0VtcHR5KCkpIHsKKyAgICAgICAg
ICAgIGNvbnN0IFN0cmluZyYgYmxvYlR5cGUgPSBib2R5LT50eXBlKCk7CisgICAgICAgICAgICBp
ZiAoIWJsb2JUeXBlLmlzRW1wdHkoKSAmJiBpc1ZhbGlkQ29udGVudFR5cGUoYmxvYlR5cGUpKQor
ICAgICAgICAgICAgICAgIHNldFJlcXVlc3RIZWFkZXJJbnRlcm5hbCgiQ29udGVudC1UeXBlIiwg
YmxvYlR5cGUpOworICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gRnJvbSBG
aWxlQVBJIHNwZWMsIHdoZW5ldmVyIG1lZGlhIHR5cGUgY2Fubm90IGJlIGRldGVybWluZWQsIGVt
cHR5IHN0cmluZyBtdXN0IGJlIHJldHVybmVkLgorICAgICAgICAgICAgICAgIHNldFJlcXVlc3RI
ZWFkZXJJbnRlcm5hbCgiQ29udGVudC1UeXBlIiwgIiIpOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisKICAgICAgICAgLy8gRklYTUU6IGFkZCBzdXBwb3J0IGZvciB1cGxvYWRpbmcgYnVuZGxl
cy4KICAgICAgICAgbV9yZXF1ZXN0RW50aXR5Qm9keSA9IEZvcm1EYXRhOjpjcmVhdGUoKTsKICAg
ICAgICAgaWYgKGJvZHktPmlzRmlsZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDNkZjM0MjguLjFiYTFiZGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0xMi0wMyAgQWxleGFuZGVyIFNoYWxh
bW92ICA8YWxleGFuZGVyLnNoYWxhbW92QGludGVsLmNvbT4KKworICAgICAgICBYTUxIdHRwUmVx
dWVzdCBDb250ZW50LVR5cGUgc2hvdWxkIGJlIHRha2VuIGZyb20gQmxvYiB0eXBlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTk4MworCisgICAgICAg
IFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCisKKyAgICAgICAgQWRkZWQgV2ViQ29y
ZTo6aXNWYWxpZENvbnRlbnRUeXBlKGNvbnN0IFdURjo6U3RyaW5nJikgdG8gc3ltYm9sIGZpbGUu
CisKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi5kZWY6CisKIDIwMTItMTItMDMgIE1pa2hhaWwgUG96
ZG55YWtvdiAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CiAKICAgICAgICAgQ1NTIERl
dmljZSBBZGFwdGF0aW9uOiB3aW5kb3cuaW5uZXJXaWR0aCByZXR1cm5zIHdyb25nIHZhbHVlIGlm
IENTUyB2aWV3cG9ydCBkZXNjcmlwdG9ycyBhcmUgYXBwbGllZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvd2luL1dlYktpdDIuZGVmLmluIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIu
ZGVmLmluCmluZGV4IDI1Yjk5OWYuLjY4NjRjMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L3dpbi9XZWJLaXQyLmRlZi5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYu
aW4KQEAgLTM4MCwzICszODAsNCBAQCBFWFBPUlRTCiAgICAgICAgID9zb2xpZENvbG9yQEJpdG1h
cEltYWdlQFdlYkNvcmVAQE1CRT9BVkNvbG9yQDJAWFoKICAgICAgICAgP2RyYXdAQml0bWFwSW1h
Z2VAV2ViQ29yZUBATUFFWFBBVkdyYXBoaWNzQ29udGV4dEAyQEFCVkZsb2F0UmVjdEAyQDFXNENv
bG9yU3BhY2VAMkBXNENvbXBvc2l0ZU9wZXJhdG9yQDJAVzRSZXNwZWN0SW1hZ2VPcmllbnRhdGlv
bkVudW1AMkBAWgogICAgICAgICA/ZnJhbWVDb3VudEBCaXRtYXBJbWFnZUBXZWJDb3JlQEBNQUVJ
WFoKKyAgICAgICAgP2lzVmFsaWRDb250ZW50VHlwZUBXZWJDb3JlQEBZQV9OQUJWU3RyaW5nQFdU
RkBAQFoKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>
<flag name="commit-queue"
          id="193299"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177736</attachid>
            <date>2012-12-05 06:07:16 -0800</date>
            <delta_ts>2012-12-06 14:33:43 -0800</delta_ts>
            <desc>Patch 6</desc>
            <filename>webcore_xhr_mime_blob_6.patch</filename>
            <type>text/plain</type>
            <size>13146</size>
            <attacher name="Alexander Shalamov">alexander.shalamov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3NGY2MjY2Li5lZTdjNDRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMTAt
MjYgIEFsZXhhbmRlciBTaGFsYW1vdiAgPGFsZXhhbmRlci5zaGFsYW1vdkBpbnRlbC5jb20+CisK
KyAgICAgICAgWE1MSHR0cFJlcXVlc3QgQ29udGVudC1UeXBlIHNob3VsZCBiZSB0YWtlbiBmcm9t
IEJsb2IgdHlwZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTk5ODMKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgorCisg
ICAgICAgIEFkZGVkIHRlc3RzIHRoYXQgY2hlY2sgaWYgY29udGVudCB0eXBlIGlzIHNldCBjb3Jy
ZWN0bHkgd2hlbiBibG9iIG9iamVjdCBpcyBzZW50LgorCisgICAgICAgICogaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9wb3N0LWJsb2ItY29udGVudC10eXBlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9wb3N0LWJsb2ItY29udGVudC10
eXBlLmh0bWw6IEFkZGVkLgorCiAyMDEyLTEyLTA1ICBUaGlhZ28gTWFyY29zIFAuIFNhbnRvcyAg
PHRoaWFnby5zYW50b3NAaW50ZWwuY29tPgogCiAgICAgICAgIFtFRkxdIFVucmV2aWV3ZWQgZ2Fy
ZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9wb3N0LWJsb2ItY29udGVudC10eXBlLWFzeW5jLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcG9zdC1ibG9iLWNvbnRlbnQtdHlwZS1hc3luYy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDY4NGZlNAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
cG9zdC1ibG9iLWNvbnRlbnQtdHlwZS1hc3luYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMyBA
QAorQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vbG9j
YWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2FjY2Vzcy1jb250cm9sLWFsbG93
LWxpc3RzLnBocC4gT3JpZ2luIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCBpcyBub3QgYWxsb3dlZCBi
eSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCitUZXN0IHZlcmlmaWVzIHRoYXQgY29udGVu
dCBNSU1FIHR5cGUgaXMgc2V0IGNvcnJlY3RseSB3aGVuIEJsb2IgaXMgc2VudCB1c2luZyBYTUxI
dHRwUmVxdWVzdCBhc3luY2hyb25vdXNseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgor
CisKK1BBU1MgZXhwZWN0ZWRNaW1lVHlwZSBpcyAidGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04Igor
UEFTUyBleHBlY3RlZE1pbWVUeXBlIGlzICIiCitQQVNTIGV4cGVjdGVkTWltZVR5cGUgaXMgIiIK
K1BBU1MgZXhwZWN0ZWRNaW1lVHlwZSBpcyAiIgorUEFTUyBleHBlY3RlZE1pbWVUeXBlIGlzICIi
CitQQVNTIGV4cGVjdGVkTWltZVR5cGUgaXMgIiIKK1BBU1MgZXhwZWN0ZWRNaW1lVHlwZSBpcyAi
IgorUEFTUyBleHBlY3RlZE1pbWVUeXBlIGlzICIiCitQQVNTIGV4cGVjdGVkTWltZVR5cGUgaXMg
Im11bHRpcGFydC9taXhlZDtib3VuZGFyeT1cIi0tYmxvYi1ib3VuZGFyeVwiIgorUEFTUyBleHBl
Y3RlZE1pbWVUeXBlIGlzICIiCitQQVNTIEV4Y2VwdGlvbiBzaG91bGQgYmUgdGhyb3duLgorUEFT
UyBDcm9zcy1vcmlnaW4gcmVxdWVzdCB3aXRob3V0IENPUlMgaGVhZGVycyBzaG91bGQgZmFpbC4K
K1BBU1MgZXhwZWN0ZWRNaW1lVHlwZSBpcyAidGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04IgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcG9zdC1ibG9iLWNvbnRl
bnQtdHlwZS1hc3luYy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9wb3N0LWJsb2ItY29udGVudC10eXBlLWFzeW5jLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uZWYwYjg3ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcG9zdC1ibG9iLWNvbnRlbnQtdHlwZS1hc3luYy5odG1s
CkBAIC0wLDAgKzEsNzQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgPHNj
cmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKyAgPHNjcmlwdCBzcmM9InBvc3QtYmxvYi1jb250ZW50LXR5cGUtdGVz
dHMuanMiPjwvc2NyaXB0PgorICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAg
ZGVzY3JpcHRpb24oIlRlc3QgdmVyaWZpZXMgdGhhdCBjb250ZW50IE1JTUUgdHlwZSBpcyBzZXQg
Y29ycmVjdGx5ICIgKworICAgICAgICAgICAgICAgICJ3aGVuIEJsb2IgaXMgc2VudCB1c2luZyAi
ICsKKyAgICAgICAgICAgICAgICAiPGEgaHJlZj0naHR0cDovL3d3dy53My5vcmcvVFIvWE1MSHR0
cFJlcXVlc3QvI3RoZS1zZW5kLW1ldGhvZCc+WE1MSHR0cFJlcXVlc3QgYXN5bmNocm9ub3VzbHku
PC9hPiIpOworCisgICAgdmFyIHhocjsKKyAgICB2YXIgZXhwZWN0ZWRNaW1lVHlwZTsKKyAgICB3
aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisgICAgdmFyIGFzeW5jVGVzdENhc2UgPSAwOwor
CisgICAgZnVuY3Rpb24gcnVuTmV4dEFzeW5jVGVzdCgpIHsKKyAgICAgICAgYXN5bmNUZXN0Q2Fz
ZSsrOworICAgICAgICBydW5Bc3luY1Rlc3RzKCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gcmVw
b3J0UmVzdWx0KGUpIHsKKyAgICAgICAgaWYgKHhoci5zdGF0dXMgPT09IDIwMCkgeworICAgICAg
ICAgICAgZXhwZWN0ZWRNaW1lVHlwZSA9IEpTT04ucGFyc2UoeGhyLnJlc3BvbnNlKVsnY29udGVu
dC10eXBlJ10gfHwgIiI7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV4cGVj
dGVkTWltZVR5cGUiLCB4aHJCbG9iVGVzdENhc2VzW2FzeW5jVGVzdENhc2VdLmV4cGVjdGVkTWlt
ZSk7CisgICAgICAgIH0gZWxzZSBpZiAoeGhyLnN0YXR1cyA9PT0gMCAmJiB4aHJCbG9iVGVzdENh
c2VzW2FzeW5jVGVzdENhc2VdLnNob3VsZFRocm93KXsKKyAgICAgICAgICAgIHRlc3RQYXNzZWQo
IkNyb3NzLW9yaWdpbiByZXF1ZXN0IHdpdGhvdXQgQ09SUyBoZWFkZXJzIHNob3VsZCBmYWlsLiIp
OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdGVzdEZhaWxlZCgiVW5rbm93biBlcnJv
ciIpOworICAgICAgICB9CisKKyAgICAgICAgcnVuTmV4dEFzeW5jVGVzdCgpOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIHJ1bkFzeW5jVGVzdHMoKSB7CisgICAgICAgIGlmIChhc3luY1Rlc3RDYXNl
ID49IHhockJsb2JUZXN0Q2FzZXMubGVuZ3RoKSB7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHZh
ciBtaW1lID0geGhyQmxvYlRlc3RDYXNlc1thc3luY1Rlc3RDYXNlXS5taW1lOworICAgICAgICAg
ICAgdmFyIHVybCA9IHhockJsb2JUZXN0Q2FzZXNbYXN5bmNUZXN0Q2FzZV0udXJsICE9PSB1bmRl
ZmluZWQgPyB4aHJCbG9iVGVzdENhc2VzW2FzeW5jVGVzdENhc2VdLnVybCArIHhockJsb2JUZXN0
VXJsIDogeGhyQmxvYlRlc3RVcmw7CisgICAgICAgICAgICB1cmwgKz0geGhyQmxvYlRlc3RDYXNl
c1thc3luY1Rlc3RDYXNlXS5hbGxvd09yaWdpbiB8fCAiIjsKKyAgICAgICAgICAgIGlmICh4aHJC
bG9iVGVzdENhc2VzW2FzeW5jVGVzdENhc2VdLnNob3VsZFRocm93ICE9PSB1bmRlZmluZWQpIHsK
KyAgICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICB0ZXN0QmxvYkNvbnRl
bnRUeXBlQXN5bmModXJsLCBtaW1lKTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7Cisg
ICAgICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoIkV4Y2VwdGlvbiBzaG91bGQgYmUgdGhyb3du
LiIpCisgICAgICAgICAgICAgICAgICAgIHJ1bk5leHRBc3luY1Rlc3QoKTsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0QmxvYkNvbnRl
bnRUeXBlQXN5bmModXJsLCBtaW1lKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGZ1bmN0aW9u
IHRlc3RCbG9iQ29udGVudFR5cGVBc3luYyh1cmwsIG1pbWVUeXBlKSB7CisgICAgICAgIHZhciBi
bG9iOworICAgICAgICBpZiAobWltZVR5cGUgIT09ICIiKQorICAgICAgICAgICAgYmxvYiA9IG5l
dyBCbG9iKFsiVGVzdCBjb250ZW50Il0sIHt0eXBlOiBtaW1lVHlwZX0pOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBibG9iID0gbmV3IEJsb2IoWyJUZXN0IGNvbnRlbnQiXSk7CisKKyAgICAg
ICAgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgICAgIHhoci5vbmxvYWRlbmQgPSBy
ZXBvcnRSZXN1bHQ7CisgICAgICAgIHhoci5vcGVuKCJQT1NUIiwgdXJsLCB0cnVlKTsKKyAgICAg
ICAgeGhyLnNlbmQoYmxvYik7CisgICAgfQorCisgICAgcnVuQXN5bmNUZXN0cygpOworCisgIDwv
c2NyaXB0PgorICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Bvc3QtYmxvYi1jb250ZW50LXR5cGUtc3luYy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Bvc3QtYmxv
Yi1jb250ZW50LXR5cGUtc3luYy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uMmUzMzM0NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvcG9zdC1ibG9iLWNvbnRlbnQtdHlwZS1zeW5jLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDIzIEBACitDT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNh
bm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMv
YWNjZXNzLWNvbnRyb2wtYWxsb3ctbGlzdHMucGhwLiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4
MDAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KK1Rlc3Qg
dmVyaWZpZXMgdGhhdCBjb250ZW50IE1JTUUgdHlwZSBpcyBzZXQgY29ycmVjdGx5IHdoZW4gQmxv
YiBpcyBzZW50IHVzaW5nIFhNTEh0dHBSZXF1ZXN0IHN5bmNocm9ub3VzbHkuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGV4cGVjdGVkTWltZVR5cGUgaXMgInRleHQvcGxh
aW47Y2hhcnNldD11dGYtOCIKK1BBU1MgZXhwZWN0ZWRNaW1lVHlwZSBpcyAiIgorUEFTUyBleHBl
Y3RlZE1pbWVUeXBlIGlzICIiCitQQVNTIGV4cGVjdGVkTWltZVR5cGUgaXMgIiIKK1BBU1MgZXhw
ZWN0ZWRNaW1lVHlwZSBpcyAiIgorUEFTUyBleHBlY3RlZE1pbWVUeXBlIGlzICIiCitQQVNTIGV4
cGVjdGVkTWltZVR5cGUgaXMgIiIKK1BBU1MgZXhwZWN0ZWRNaW1lVHlwZSBpcyAiIgorUEFTUyBl
eHBlY3RlZE1pbWVUeXBlIGlzICJtdWx0aXBhcnQvbWl4ZWQ7Ym91bmRhcnk9XCItLWJsb2ItYm91
bmRhcnlcIiIKK1BBU1MgZXhwZWN0ZWRNaW1lVHlwZSBpcyAiIgorUEFTUyBFeGNlcHRpb24gc2hv
dWxkIGJlIHRocm93bi4KK1BBU1MgRXhjZXB0aW9uIHNob3VsZCBiZSB0aHJvd24uCitQQVNTIGV4
cGVjdGVkTWltZVR5cGUgaXMgInRleHQvcGxhaW47Y2hhcnNldD11dGYtOCIKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Bvc3QtYmxvYi1jb250ZW50LXR5cGUt
c3luYy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9wb3N0LWJs
b2ItY29udGVudC10eXBlLXN5bmMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi5jYTk5MjlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9wb3N0LWJsb2ItY29udGVudC10eXBlLXN5bmMuaHRtbApAQCAtMCwwICsx
LDU4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgIDxzY3JpcHQgc3JjPSIv
anMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+CisgIDxzY3JpcHQgc3JjPSJwb3N0LWJsb2ItY29udGVudC10eXBlLXRlc3RzLmpzIj48L3Nj
cmlwdD4KKyAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgIGRlc2NyaXB0aW9u
KCJUZXN0IHZlcmlmaWVzIHRoYXQgY29udGVudCBNSU1FIHR5cGUgaXMgc2V0IGNvcnJlY3RseSAi
ICsKKyAgICAgICAgICAgICAgICAid2hlbiBCbG9iIGlzIHNlbnQgdXNpbmcgIiArCisgICAgICAg
ICAgICAgICAgIjxhIGhyZWY9J2h0dHA6Ly93d3cudzMub3JnL1RSL1hNTEh0dHBSZXF1ZXN0LyN0
aGUtc2VuZC1tZXRob2QnPlhNTEh0dHBSZXF1ZXN0IHN5bmNocm9ub3VzbHkuPC9hPiIpOworCisg
ICAgdmFyIHhocjsKKyAgICB2YXIgZXhwZWN0ZWRNaW1lVHlwZTsKKworICAgIGZ1bmN0aW9uIHJ1
blN5bmNUZXN0cygpIHsKKyAgICAgICAgdmFyIHRlc3RDb3VudCA9IHhockJsb2JUZXN0Q2FzZXMu
bGVuZ3RoOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRlc3RDb3VudDsgaSsrKSB7Cisg
ICAgICAgICAgICB2YXIgbWltZSA9IHhockJsb2JUZXN0Q2FzZXNbaV0ubWltZTsKKyAgICAgICAg
ICAgIHZhciBleHBlY3RlZE1pbWUgPSB4aHJCbG9iVGVzdENhc2VzW2ldLmV4cGVjdGVkTWltZTsK
KyAgICAgICAgICAgIHZhciB1cmwgPSB4aHJCbG9iVGVzdENhc2VzW2ldLnVybCAhPT0gdW5kZWZp
bmVkID8geGhyQmxvYlRlc3RDYXNlc1tpXS51cmwgKyB4aHJCbG9iVGVzdFVybCA6IHhockJsb2JU
ZXN0VXJsOworICAgICAgICAgICAgdXJsICs9IHhockJsb2JUZXN0Q2FzZXNbaV0uYWxsb3dPcmln
aW4gfHwgIiI7CisgICAgICAgICAgICBpZiAoeGhyQmxvYlRlc3RDYXNlc1tpXS5zaG91bGRUaHJv
dyAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAg
ICAgICAgdGVzdEJsb2JDb250ZW50VHlwZVN5bmModXJsLCBtaW1lLCBleHBlY3RlZE1pbWUpOwor
ICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgICAgICAgICAgdGVzdFBh
c3NlZCgiRXhjZXB0aW9uIHNob3VsZCBiZSB0aHJvd24uIikKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHRlc3RCbG9iQ29udGVudFR5cGVT
eW5jKHVybCwgbWltZSwgZXhwZWN0ZWRNaW1lKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
ICAgIH0KKworICAgIGZ1bmN0aW9uIHRlc3RCbG9iQ29udGVudFR5cGVTeW5jKHVybCwgbWltZVR5
cGUsIGV4cGVjdGVkTWltZSkgeworICAgICAgICB2YXIgYmxvYjsKKyAgICAgICAgaWYgKG1pbWVU
eXBlICE9PSAiIikKKyAgICAgICAgICAgIGJsb2IgPSBuZXcgQmxvYihbIlRlc3QgY29udGVudCJd
LCB7dHlwZTogbWltZVR5cGV9KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYmxvYiA9IG5l
dyBCbG9iKFsiVGVzdCBjb250ZW50Il0pOworCisgICAgICAgIHhociA9IG5ldyBYTUxIdHRwUmVx
dWVzdCgpOworICAgICAgICB4aHIub3BlbigiUE9TVCIsIHVybCwgZmFsc2UpOworICAgICAgICB4
aHIuc2VuZChibG9iKTsKKyAgICAgICAgaWYgKHhoci5zdGF0dXMgPT09IDIwMCkgeworICAgICAg
ICAgICAgZXhwZWN0ZWRNaW1lVHlwZSA9IEpTT04ucGFyc2UoeGhyLnJlc3BvbnNlKVsnY29udGVu
dC10eXBlJ10gfHwgIiI7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV4cGVj
dGVkTWltZVR5cGUiLCBleHBlY3RlZE1pbWUpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAg
IHRlc3RGYWlsZWQoIlVua25vd24gZXJyb3IiKTsKKworICAgIH0KKworICAgIHJ1blN5bmNUZXN0
cygpOworCisgIDwvc2NyaXB0PgorICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Bvc3QtYmxvYi1jb250ZW50LXR5
cGUtdGVzdHMuanMgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Bvc3Qt
YmxvYi1jb250ZW50LXR5cGUtdGVzdHMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uYjJmMjliYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QvcG9zdC1ibG9iLWNvbnRlbnQtdHlwZS10ZXN0cy5qcwpAQCAtMCwwICsx
LDQ4IEBACit2YXIgeGhyQmxvYlRlc3RVcmwgPSAnL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9h
Y2Nlc3MtY29udHJvbC1hbGxvdy1saXN0cy5waHAnOworCit2YXIgeGhyQmxvYlRlc3RDYXNlcyA9
IFt7CisgICAgbWltZTogJ3RleHQvcGxhaW47Y2hhcnNldD11dGYtOCcsCisgICAgZXhwZWN0ZWRN
aW1lOiAndGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04JworfSwgeworICAgIG1pbWU6ICdJbnZhbGlk
L1R5cGVcclxuO2NoYXJzZXQ9a29pOC1yJywKKyAgICBleHBlY3RlZE1pbWU6ICcnCit9LCB7Cisg
ICAgbWltZTogJ0FTQ0lJL0NSXHI7Y2hhcnNldD1pbnZhbGlkJywKKyAgICBleHBlY3RlZE1pbWU6
ICcnCit9LCB7CisgICAgbWltZTogJ0FTQ0lJL0xGXG47Y2hhcnNldD1VVEYtMTZCRScsCisgICAg
ZXhwZWN0ZWRNaW1lOiAnJworfSwgeworICAgIG1pbWU6ICdVbmljb2RlL0NSTEZcdTAwMERcdTAw
MEE7Y2hhcnNldD1WZW50dXJhLVVTJywKKyAgICBleHBlY3RlZE1pbWU6ICcnCit9LCB7CisgICAg
bWltZTogJ1VuaWNvZGUvQ1JcdTAwMERjaGFyc2V0PXdpbmRvd3MtMTI1MScsCisgICAgZXhwZWN0
ZWRNaW1lOiAnJworfSwgeworICAgIG1pbWU6ICdVbmljb2RlL0xGXHUwMDBBY2hhcnNldD13aW5k
b3dzLTEyNTInLAorICAgIGV4cGVjdGVkTWltZTogJycKK30sIHsKKyAgICBtaW1lOiAnbXVsdGlw
YXJ0L21peGVkO2JvdW5kYXJ5PSItLWJsb2ItYm91bmRhcnknLAorICAgIGV4cGVjdGVkTWltZTog
JycKK30sIHsKKyAgICBtaW1lOiAnbXVsdGlwYXJ0L21peGVkO2JvdW5kYXJ5PSItLWJsb2ItYm91
bmRhcnkiJywKKyAgICBleHBlY3RlZE1pbWU6ICdtdWx0aXBhcnQvbWl4ZWQ7Ym91bmRhcnk9Ii0t
YmxvYi1ib3VuZGFyeSInCit9LCB7CisgICAgbWltZTogJycsCisgICAgZXhwZWN0ZWRNaW1lOiAn
JworfSwgeworICAgIG1pbWU6ICdcdTA0MjJcdTA0MzVcdTA0NDFcdTA0NDInLAorICAgIGV4cGVj
dGVkTWltZTogJycsCisgICAgc2hvdWxkVGhyb3c6IHRydWUKK30sIHsKKyAgICBtaW1lOiAndGV4
dC9wbGFpbjtjaGFyc2V0PXV0Zi04JywKKyAgICBleHBlY3RlZE1pbWU6ICd0ZXh0L3BsYWluO2No
YXJzZXQ9dXRmLTgnLAorICAgIHNob3VsZFRocm93OiB0cnVlLAorICAgIHVybDogJ2h0dHA6Ly9s
b2NhbGhvc3Q6ODAwMCcsCisgICAgYWxsb3dPcmlnaW46ICcnCit9LCB7CisgICAgbWltZTogJ3Rl
eHQvcGxhaW47Y2hhcnNldD11dGYtOCcsCisgICAgZXhwZWN0ZWRNaW1lOiAndGV4dC9wbGFpbjtj
aGFyc2V0PXV0Zi04JywKKyAgICB1cmw6ICdodHRwOi8vbG9jYWxob3N0OjgwMDAnLAorICAgIGFs
bG93T3JpZ2luOiAnP29yaWdpbj1odHRwOi8vMTI3LjAuMC4xOjgwMDAnCit9XTsKXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjEyZWEyNy4uOTdlYmI2ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTEyLTA1ICBBbGV4YW5kZXIgU2hhbGFtb3YgIDxh
bGV4YW5kZXIuc2hhbGFtb3ZAaW50ZWwuY29tPgorCisgICAgICAgIFhNTEh0dHBSZXF1ZXN0IENv
bnRlbnQtVHlwZSBzaG91bGQgYmUgdGFrZW4gZnJvbSBCbG9iIHR5cGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5OTgzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KKworICAgICAgICBGaXggWE1MSHR0cFJlcXVlc3Q6
OnNlbmQoQmxvYiopIG1ldGhvZCwgc28gdGhhdCB0aGUgQ29udGVudC1UeXBlIGlzIHNldCBhY2Nv
cmRpbmcgdG8gVzNDIHNwZWNpZmljYXRpb24uCisgICAgICAgIGh0dHA6Ly93d3cudzMub3JnL1RS
L1hNTEh0dHBSZXF1ZXN0LyN0aGUtc2VuZC1tZXRob2QKKworICAgICAgICBBZGRlZCB0ZXN0IHRo
YXQgY2hlY2sgaWYgY29udGVudCB0eXBlIGlzIHNldCBjb3JyZWN0bHkgd2hlbiBibG9iIG9iamVj
dCBpcyBzZW50LgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcG9z
dC1ibG9iLWNvbnRlbnQtdHlwZS5odG1sCisKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVlc3Q6OnNlbmQpOgorICAgICAgICAg
ICAgU2V0IGNvcnJlY3QgTUlNRSB0eXBlIGZvciBCbG9iIG9iamVjdHMuCisgICAgICAgICogV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICAgICBBZGRlZCBQYXJzZWRDb250
ZW50VHlwZSB0byBwcm9qZWN0IGZpbGUuCisKIDIwMTItMTItMDUgIFpvbHRhbiBIZXJjemVnICA8
emhlcmN6ZWdAd2Via2l0Lm9yZz4KIAogICAgICAgICBPcHRpbWl6ZSBDb2xvck1hdHJpeCBmaWx0
ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXgg
YThhZjkwZi4uOTNiYTg0MCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKQEAgLTMyNzIxLDYgKzMyNzIxLDE0IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+
CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxuZXR3b3JrXFBhcnNl
ZENvbnRlbnRUeXBlLmgiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxuZXR3b3JrXFBhcnNlZENvbnRlbnRUeXBlLmNwcCIKKwkJ
CQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBsYXRm
b3JtXG5ldHdvcmtcUGxhdGZvcm1Db29raWVKYXIuaCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCmluZGV4IDI5NTM2ZGEuLjJhM2E1MTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcApAQCAtNDIsNiArNDIsNyBAQAogI2lu
Y2x1ZGUgIkhpc3RvZ3JhbVN1cHBvcnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaCIKICNpbmNsdWRlICJNZW1vcnlDYWNoZS5oIgorI2luY2x1ZGUgIlBhcnNlZENvbnRl
bnRUeXBlLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgogI2luY2x1ZGUgIlJlc291cmNl
UmVxdWVzdC5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgpAQCAtNjQzLDcgKzY0NCwx
NyBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpzZW5kKEJsb2IqIGJvZHksIEV4Y2VwdGlvbkNvZGUm
IGVjKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9tZXRob2QgIT0gIkdFVCIgJiYgbV9t
ZXRob2QgIT0gIkhFQUQiICYmIG1fdXJsLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSkgewotICAg
ICAgICAvLyBGSVhNRTogU2hvdWxkIHdlIHNldCBhIENvbnRlbnQtVHlwZSBpZiBvbmUgaXMgbm90
IHNldC4KKyAgICAgICAgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSA9IGdldFJlcXVlc3RIZWFk
ZXIoIkNvbnRlbnQtVHlwZSIpOworICAgICAgICBpZiAoY29udGVudFR5cGUuaXNFbXB0eSgpKSB7
CisgICAgICAgICAgICBjb25zdCBTdHJpbmcmIGJsb2JUeXBlID0gYm9keS0+dHlwZSgpOworICAg
ICAgICAgICAgaWYgKCFibG9iVHlwZS5pc0VtcHR5KCkgJiYgaXNWYWxpZENvbnRlbnRUeXBlKGJs
b2JUeXBlKSkKKyAgICAgICAgICAgICAgICBzZXRSZXF1ZXN0SGVhZGVySW50ZXJuYWwoIkNvbnRl
bnQtVHlwZSIsIGJsb2JUeXBlKTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAg
IC8vIEZyb20gRmlsZUFQSSBzcGVjLCB3aGVuZXZlciBtZWRpYSB0eXBlIGNhbm5vdCBiZSBkZXRl
cm1pbmVkLCBlbXB0eSBzdHJpbmcgbXVzdCBiZSByZXR1cm5lZC4KKyAgICAgICAgICAgICAgICBz
ZXRSZXF1ZXN0SGVhZGVySW50ZXJuYWwoIkNvbnRlbnQtVHlwZSIsICIiKTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfQorCiAgICAgICAgIC8vIEZJWE1FOiBhZGQgc3VwcG9ydCBmb3IgdXBsb2Fk
aW5nIGJ1bmRsZXMuCiAgICAgICAgIG1fcmVxdWVzdEVudGl0eUJvZHkgPSBGb3JtRGF0YTo6Y3Jl
YXRlKCk7CiAgICAgICAgIGlmIChib2R5LT5pc0ZpbGUoKSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>